From 7726b62769a84b5c7fc824118cfb2f41523cb64d Mon Sep 17 00:00:00 2001 From: patrickelectric Date: Sat, 10 Aug 2024 21:07:59 +0000 Subject: [PATCH] deploy: c93fd578d7bca76a0644b49b22622e9774c7ab15 --- mavlink/ardupilotmega/enum.MavMessage.html | 530 +++++++++--------- mavlink/ardupilotmega/struct.AdsbFlags.html | 12 +- mavlink/ardupilotmega/struct.AisFlags.html | 18 +- .../struct.AttitudeTargetTypemask.html | 14 +- .../ardupilotmega/struct.CameraCapFlags.html | 16 +- .../ardupilotmega/struct.EkfStatusFlags.html | 14 +- .../ardupilotmega/struct.EscFailureFlags.html | 14 +- .../struct.EstimatorStatusFlags.html | 16 +- .../struct.GimbalDeviceCapFlags.html | 16 +- .../struct.GimbalDeviceErrorFlags.html | 16 +- .../struct.GimbalDeviceFlags.html | 14 +- .../struct.GimbalManagerCapFlags.html | 12 +- .../struct.GoproHeartbeatFlags.html | 16 +- .../struct.GpsInputIgnoreFlags.html | 10 +- .../struct.HighresImuUpdatedFlags.html | 18 +- .../struct.HilSensorUpdatedFlags.html | 16 +- .../ardupilotmega/struct.HlFailureFlag.html | 18 +- mavlink/ardupilotmega/struct.LimitModule.html | 16 +- .../struct.MavEventCurrentSequenceFlags.html | 12 +- .../struct.MavGeneratorStatusFlag.html | 16 +- mavlink/ardupilotmega/struct.MavModeFlag.html | 16 +- .../ardupilotmega/struct.MavPowerStatus.html | 18 +- .../struct.MavProtocolCapability.html | 14 +- .../struct.MavSysStatusSensor.html | 10 +- .../struct.MavWinchStatusFlag.html | 16 +- .../struct.PositionTargetTypemask.html | 12 +- mavlink/ardupilotmega/struct.RallyFlags.html | 14 +- .../struct.SerialControlFlag.html | 16 +- mavlink/ardupilotmega/struct.TuneFormat.html | 18 +- .../struct.UavionixAdsbOutDynamicState.html | 14 +- .../struct.UavionixAdsbOutRfSelect.html | 16 +- .../struct.UavionixAdsbRfHealth.html | 16 +- .../struct.UtmDataAvailFlags.html | 18 +- mavlink/common/enum.MavMessage.html | 398 ++++++------- mavlink/common/struct.AdsbFlags.html | 10 +- mavlink/common/struct.AisFlags.html | 18 +- .../common/struct.AttitudeTargetTypemask.html | 8 +- mavlink/common/struct.CameraCapFlags.html | 18 +- mavlink/common/struct.EscFailureFlags.html | 4 +- .../common/struct.EstimatorStatusFlags.html | 14 +- .../common/struct.GimbalDeviceCapFlags.html | 16 +- .../common/struct.GimbalDeviceErrorFlags.html | 16 +- mavlink/common/struct.GimbalDeviceFlags.html | 16 +- .../common/struct.GimbalManagerCapFlags.html | 14 +- .../common/struct.GpsInputIgnoreFlags.html | 16 +- .../common/struct.HighresImuUpdatedFlags.html | 16 +- .../common/struct.HilSensorUpdatedFlags.html | 16 +- mavlink/common/struct.HlFailureFlag.html | 14 +- .../struct.MavEventCurrentSequenceFlags.html | 18 +- .../common/struct.MavGeneratorStatusFlag.html | 12 +- mavlink/common/struct.MavModeFlag.html | 12 +- mavlink/common/struct.MavPowerStatus.html | 16 +- .../common/struct.MavProtocolCapability.html | 18 +- mavlink/common/struct.MavSysStatusSensor.html | 18 +- mavlink/common/struct.MavWinchStatusFlag.html | 14 +- .../common/struct.PositionTargetTypemask.html | 14 +- mavlink/common/struct.SerialControlFlag.html | 14 +- mavlink/common/struct.TuneFormat.html | 14 +- mavlink/common/struct.UtmDataAvailFlags.html | 14 +- mavlink/uavionix/enum.MavMessage.html | 400 ++++++------- mavlink/uavionix/struct.AdsbFlags.html | 16 +- mavlink/uavionix/struct.AisFlags.html | 12 +- .../struct.AttitudeTargetTypemask.html | 10 +- mavlink/uavionix/struct.CameraCapFlags.html | 14 +- mavlink/uavionix/struct.EscFailureFlags.html | 16 +- .../uavionix/struct.EstimatorStatusFlags.html | 16 +- .../uavionix/struct.GimbalDeviceCapFlags.html | 16 +- .../struct.GimbalDeviceErrorFlags.html | 16 +- .../uavionix/struct.GimbalDeviceFlags.html | 12 +- .../struct.GimbalManagerCapFlags.html | 14 +- .../uavionix/struct.GpsInputIgnoreFlags.html | 16 +- .../struct.HighresImuUpdatedFlags.html | 16 +- .../struct.HilSensorUpdatedFlags.html | 10 +- mavlink/uavionix/struct.HlFailureFlag.html | 18 +- .../struct.MavEventCurrentSequenceFlags.html | 16 +- .../struct.MavGeneratorStatusFlag.html | 18 +- mavlink/uavionix/struct.MavModeFlag.html | 16 +- mavlink/uavionix/struct.MavPowerStatus.html | 14 +- .../struct.MavProtocolCapability.html | 14 +- .../uavionix/struct.MavSysStatusSensor.html | 16 +- .../uavionix/struct.MavWinchStatusFlag.html | 18 +- .../struct.PositionTargetTypemask.html | 16 +- .../uavionix/struct.SerialControlFlag.html | 14 +- mavlink/uavionix/struct.TuneFormat.html | 18 +- .../struct.UavionixAdsbOutDynamicState.html | 14 +- .../struct.UavionixAdsbOutRfSelect.html | 12 +- .../uavionix/struct.UavionixAdsbRfHealth.html | 8 +- .../uavionix/struct.UtmDataAvailFlags.html | 14 +- mavlink_core/bytes/index.html | 2 +- mavlink_core/bytes/struct.Bytes.html | 2 +- mavlink_core/bytes_mut/index.html | 2 +- mavlink_core/bytes_mut/struct.BytesMut.html | 2 +- mavlink_core/error/enum.MessageReadError.html | 2 +- mavlink_core/error/enum.ParserError.html | 2 +- mavlink_core/fn.read_v2_msg.html | 2 +- mavlink_core/fn.read_v2_raw_message.html | 2 +- mavlink_core/fn.write_v1_msg.html | 2 +- mavlink_core/fn.write_v2_msg.html | 2 +- mavlink_core/fn.write_versioned_msg.html | 2 +- mavlink_core/index.html | 2 +- mavlink_core/struct.MAVLinkV2MessageRaw.html | 6 +- search-index.js | 4 +- .../out/ardupilotmega.rs.html | 2 +- .../out/common.rs.html | 2 +- .../out/icarous.rs.html | 2 +- .../out/uavionix.rs.html | 2 +- src/mavlink_core/bytes.rs.html | 66 +-- src/mavlink_core/bytes_mut.rs.html | 54 +- .../connection/direct_serial.rs.html | 2 +- src/mavlink_core/connection/file.rs.html | 2 +- src/mavlink_core/connection/mod.rs.html | 2 +- src/mavlink_core/connection/tcp.rs.html | 2 +- src/mavlink_core/connection/udp.rs.html | 2 +- src/mavlink_core/error.rs.html | 2 +- src/mavlink_core/lib.rs.html | 28 +- src/mavlink_core/peek_reader.rs.html | 2 +- src/mavlink_core/utils.rs.html | 2 +- 117 files changed, 1351 insertions(+), 1435 deletions(-) diff --git a/mavlink/ardupilotmega/enum.MavMessage.html b/mavlink/ardupilotmega/enum.MavMessage.html index 5a845e87b8..3df9ea0ec1 100644 --- a/mavlink/ardupilotmega/enum.MavMessage.html +++ b/mavlink/ardupilotmega/enum.MavMessage.html @@ -1,301 +1,301 @@ MavMessage in mavlink::ardupilotmega - Rust

Enum mavlink::ardupilotmega::MavMessage

source ยท
#[repr(u32)]
pub enum MavMessage { -
Show 296 variants OPEN_DRONE_ID_ARM_STATUS(OPEN_DRONE_ID_ARM_STATUS_DATA), - STORAGE_INFORMATION(STORAGE_INFORMATION_DATA), - MEMINFO(MEMINFO_DATA), - HEARTBEAT(HEARTBEAT_DATA), - MCU_STATUS(MCU_STATUS_DATA), - ALTITUDE(ALTITUDE_DATA), - COMMAND_ACK(COMMAND_ACK_DATA), - DEBUG(DEBUG_DATA), - PARAM_EXT_ACK(PARAM_EXT_ACK_DATA), - REMOTE_LOG_BLOCK_STATUS(REMOTE_LOG_BLOCK_STATUS_DATA), - OPTICAL_FLOW_RAD(OPTICAL_FLOW_RAD_DATA), - GPS_RTCM_DATA(GPS_RTCM_DATA_DATA), - REQUEST_EVENT(REQUEST_EVENT_DATA), +
Show 296 variants GIMBAL_CONTROL(GIMBAL_CONTROL_DATA), + FENCE_FETCH_POINT(FENCE_FETCH_POINT_DATA), + COMPONENT_METADATA(COMPONENT_METADATA_DATA), + PARAM_EXT_REQUEST_READ(PARAM_EXT_REQUEST_READ_DATA), + WINCH_STATUS(WINCH_STATUS_DATA), + PARAM_REQUEST_READ(PARAM_REQUEST_READ_DATA), + GIMBAL_MANAGER_SET_ATTITUDE(GIMBAL_MANAGER_SET_ATTITUDE_DATA), + AUTOPILOT_VERSION_REQUEST(AUTOPILOT_VERSION_REQUEST_DATA), + TRAJECTORY_REPRESENTATION_WAYPOINTS(TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA), + POSITION_TARGET_LOCAL_NED(POSITION_TARGET_LOCAL_NED_DATA), + MANUAL_SETPOINT(MANUAL_SETPOINT_DATA), + OPEN_DRONE_ID_ARM_STATUS(OPEN_DRONE_ID_ARM_STATUS_DATA), + AUTOPILOT_VERSION(AUTOPILOT_VERSION_DATA), + DATA16(DATA16_DATA), + MISSION_CURRENT(MISSION_CURRENT_DATA), + COMMAND_LONG(COMMAND_LONG_DATA), + ATTITUDE_TARGET(ATTITUDE_TARGET_DATA), + MAG_CAL_PROGRESS(MAG_CAL_PROGRESS_DATA), + MOUNT_CONFIGURE(MOUNT_CONFIGURE_DATA), + HIL_SENSOR(HIL_SENSOR_DATA), + REMOTE_LOG_DATA_BLOCK(REMOTE_LOG_DATA_BLOCK_DATA), + GIMBAL_TORQUE_CMD_REPORT(GIMBAL_TORQUE_CMD_REPORT_DATA), + CAMERA_FOV_STATUS(CAMERA_FOV_STATUS_DATA), + AUTOPILOT_STATE_FOR_GIMBAL_DEVICE(AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA), + TERRAIN_REQUEST(TERRAIN_REQUEST_DATA), + GPS_INJECT_DATA(GPS_INJECT_DATA_DATA), + LOCAL_POSITION_NED(LOCAL_POSITION_NED_DATA), + UAVCAN_NODE_STATUS(UAVCAN_NODE_STATUS_DATA), + MISSION_REQUEST(MISSION_REQUEST_DATA), + REQUEST_DATA_STREAM(REQUEST_DATA_STREAM_DATA), + HOME_POSITION(HOME_POSITION_DATA), + GPS2_RTK(GPS2_RTK_DATA), + WHEEL_DISTANCE(WHEEL_DISTANCE_DATA), LOCAL_POSITION_NED_COV(LOCAL_POSITION_NED_COV_DATA), - VISION_POSITION_DELTA(VISION_POSITION_DELTA_DATA), - PLAY_TUNE(PLAY_TUNE_DATA), - OSD_PARAM_SHOW_CONFIG_REPLY(OSD_PARAM_SHOW_CONFIG_REPLY_DATA), - CELLULAR_CONFIG(CELLULAR_CONFIG_DATA), - SET_ATTITUDE_TARGET(SET_ATTITUDE_TARGET_DATA), - GPS_GLOBAL_ORIGIN(GPS_GLOBAL_ORIGIN_DATA), - DISTANCE_SENSOR(DISTANCE_SENSOR_DATA), - EXTENDED_SYS_STATE(EXTENDED_SYS_STATE_DATA), - LANDING_TARGET(LANDING_TARGET_DATA), - NAV_CONTROLLER_OUTPUT(NAV_CONTROLLER_OUTPUT_DATA), - NAMED_VALUE_FLOAT(NAMED_VALUE_FLOAT_DATA), - ESTIMATOR_STATUS(ESTIMATOR_STATUS_DATA), - SET_HOME_POSITION(SET_HOME_POSITION_DATA), + OPEN_DRONE_ID_OPERATOR_ID(OPEN_DRONE_ID_OPERATOR_ID_DATA), + ATT_POS_MOCAP(ATT_POS_MOCAP_DATA), + DATA32(DATA32_DATA), + LED_CONTROL(LED_CONTROL_DATA), + PROTOCOL_VERSION(PROTOCOL_VERSION_DATA), + TERRAIN_CHECK(TERRAIN_CHECK_DATA), + OPEN_DRONE_ID_SYSTEM_UPDATE(OPEN_DRONE_ID_SYSTEM_UPDATE_DATA), UAVIONIX_ADSB_OUT_CFG(UAVIONIX_ADSB_OUT_CFG_DATA), - MOUNT_CONFIGURE(MOUNT_CONFIGURE_DATA), - PARAM_EXT_REQUEST_READ(PARAM_EXT_REQUEST_READ_DATA), - CAMERA_FEEDBACK(CAMERA_FEEDBACK_DATA), - SERIAL_CONTROL(SERIAL_CONTROL_DATA), - CAMERA_CAPTURE_STATUS(CAMERA_CAPTURE_STATUS_DATA), - V2_EXTENSION(V2_EXTENSION_DATA), - COMPONENT_METADATA(COMPONENT_METADATA_DATA), - DIGICAM_CONFIGURE(DIGICAM_CONFIGURE_DATA), - BUTTON_CHANGE(BUTTON_CHANGE_DATA), - STATUSTEXT(STATUSTEXT_DATA), - CAN_FRAME(CAN_FRAME_DATA), - ISBD_LINK_STATUS(ISBD_LINK_STATUS_DATA), - SENSOR_OFFSETS(SENSOR_OFFSETS_DATA), + DATA96(DATA96_DATA), + UTM_GLOBAL_POSITION(UTM_GLOBAL_POSITION_DATA), + GOPRO_SET_REQUEST(GOPRO_SET_REQUEST_DATA), + ESC_TELEMETRY_5_TO_8(ESC_TELEMETRY_5_TO_8_DATA), + WIND_COV(WIND_COV_DATA), + MISSION_REQUEST_LIST(MISSION_REQUEST_LIST_DATA), + PLAY_TUNE(PLAY_TUNE_DATA), + VISION_POSITION_ESTIMATE(VISION_POSITION_ESTIMATE_DATA), + LOG_REQUEST_END(LOG_REQUEST_END_DATA), + OPEN_DRONE_ID_SYSTEM(OPEN_DRONE_ID_SYSTEM_DATA), + LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET(LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA), + FENCE_POINT(FENCE_POINT_DATA), + FILE_TRANSFER_PROTOCOL(FILE_TRANSFER_PROTOCOL_DATA), + HIL_CONTROLS(HIL_CONTROLS_DATA), + TIME_ESTIMATE_TO_TARGET(TIME_ESTIMATE_TO_TARGET_DATA), + PING(PING_DATA), + CUBEPILOT_RAW_RC(CUBEPILOT_RAW_RC_DATA), + PARAM_SET(PARAM_SET_DATA), + SYSTEM_TIME(SYSTEM_TIME_DATA), + MOUNT_CONTROL(MOUNT_CONTROL_DATA), + SIMSTATE(SIMSTATE_DATA), + SCALED_PRESSURE2(SCALED_PRESSURE2_DATA), + AHRS2(AHRS2_DATA), + PLAY_TUNE_V2(PLAY_TUNE_V2_DATA), + GIMBAL_DEVICE_SET_ATTITUDE(GIMBAL_DEVICE_SET_ATTITUDE_DATA), + SIM_STATE(SIM_STATE_DATA), + HIL_STATE(HIL_STATE_DATA), + GOPRO_GET_REQUEST(GOPRO_GET_REQUEST_DATA), + RANGEFINDER(RANGEFINDER_DATA), + OSD_PARAM_CONFIG_REPLY(OSD_PARAM_CONFIG_REPLY_DATA), BATTERY2(BATTERY2_DATA), + PARAM_EXT_VALUE(PARAM_EXT_VALUE_DATA), + GPS_RTK(GPS_RTK_DATA), + MESSAGE_INTERVAL(MESSAGE_INTERVAL_DATA), + UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT(UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA), SCALED_IMU(SCALED_IMU_DATA), - VIDEO_STREAM_STATUS(VIDEO_STREAM_STATUS_DATA), - BATTERY_STATUS(BATTERY_STATUS_DATA), - DEVICE_OP_WRITE(DEVICE_OP_WRITE_DATA), - HIGHRES_IMU(HIGHRES_IMU_DATA), - GOPRO_HEARTBEAT(GOPRO_HEARTBEAT_DATA), - WATER_DEPTH(WATER_DEPTH_DATA), - HIL_SENSOR(HIL_SENSOR_DATA), + HIGH_LATENCY(HIGH_LATENCY_DATA), + CAMERA_IMAGE_CAPTURED(CAMERA_IMAGE_CAPTURED_DATA), + LIMITS_STATUS(LIMITS_STATUS_DATA), + AUTH_KEY(AUTH_KEY_DATA), + DATA_TRANSMISSION_HANDSHAKE(DATA_TRANSMISSION_HANDSHAKE_DATA), + CHANGE_OPERATOR_CONTROL(CHANGE_OPERATOR_CONTROL_DATA), + LINK_NODE_STATUS(LINK_NODE_STATUS_DATA), + PID_TUNING(PID_TUNING_DATA), + ADAP_TUNING(ADAP_TUNING_DATA), + ESC_INFO(ESC_INFO_DATA), + TUNNEL(TUNNEL_DATA), + OPTICAL_FLOW_RAD(OPTICAL_FLOW_RAD_DATA), + TERRAIN_DATA(TERRAIN_DATA_DATA), + AHRS(AHRS_DATA), + SETUP_SIGNING(SETUP_SIGNING_DATA), + MISSION_WRITE_PARTIAL_LIST(MISSION_WRITE_PARTIAL_LIST_DATA), + GPS_INPUT(GPS_INPUT_DATA), + VFR_HUD(VFR_HUD_DATA), POWER_STATUS(POWER_STATUS_DATA), - SYS_STATUS(SYS_STATUS_DATA), - CAN_FILTER_MODIFY(CAN_FILTER_MODIFY_DATA), - RC_CHANNELS_SCALED(RC_CHANNELS_SCALED_DATA), - OPEN_DRONE_ID_SELF_ID(OPEN_DRONE_ID_SELF_ID_DATA), - PARAM_REQUEST_READ(PARAM_REQUEST_READ_DATA), - PLAY_TUNE_V2(PLAY_TUNE_V2_DATA), - TERRAIN_CHECK(TERRAIN_CHECK_DATA), - GPS_RTK(GPS_RTK_DATA), - FOLLOW_TARGET(FOLLOW_TARGET_DATA), - WIND(WIND_DATA), - MISSION_CURRENT(MISSION_CURRENT_DATA), - GIMBAL_TORQUE_CMD_REPORT(GIMBAL_TORQUE_CMD_REPORT_DATA), + MISSION_SET_CURRENT(MISSION_SET_CURRENT_DATA), + RALLY_POINT(RALLY_POINT_DATA), GOPRO_SET_RESPONSE(GOPRO_SET_RESPONSE_DATA), - GPS_INJECT_DATA(GPS_INJECT_DATA_DATA), - SMART_BATTERY_INFO(SMART_BATTERY_INFO_DATA), + DEVICE_OP_WRITE_REPLY(DEVICE_OP_WRITE_REPLY_DATA), + ESC_TELEMETRY_9_TO_12(ESC_TELEMETRY_9_TO_12_DATA), ACTUATOR_CONTROL_TARGET(ACTUATOR_CONTROL_TARGET_DATA), + RALLY_FETCH_POINT(RALLY_FETCH_POINT_DATA), CUBEPILOT_FIRMWARE_UPDATE_RESP(CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA), - DATA_TRANSMISSION_HANDSHAKE(DATA_TRANSMISSION_HANDSHAKE_DATA), - HYGROMETER_SENSOR(HYGROMETER_SENSOR_DATA), - SYSTEM_TIME(SYSTEM_TIME_DATA), - LOG_REQUEST_END(LOG_REQUEST_END_DATA), - PROTOCOL_VERSION(PROTOCOL_VERSION_DATA), - AIRSPEED_AUTOCAL(AIRSPEED_AUTOCAL_DATA), + V2_EXTENSION(V2_EXTENSION_DATA), GLOBAL_POSITION_INT(GLOBAL_POSITION_INT_DATA), - ENCAPSULATED_DATA(ENCAPSULATED_DATA_DATA), - UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT(UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA), - GOPRO_SET_REQUEST(GOPRO_SET_REQUEST_DATA), - LOG_REQUEST_LIST(LOG_REQUEST_LIST_DATA), - GIMBAL_MANAGER_SET_PITCHYAW(GIMBAL_MANAGER_SET_PITCHYAW_DATA), - OPEN_DRONE_ID_MESSAGE_PACK(OPEN_DRONE_ID_MESSAGE_PACK_DATA), - GIMBAL_MANAGER_INFORMATION(GIMBAL_MANAGER_INFORMATION_DATA), - DEBUG_VECT(DEBUG_VECT_DATA), + TRAJECTORY_REPRESENTATION_BEZIER(TRAJECTORY_REPRESENTATION_BEZIER_DATA), + RAW_RPM(RAW_RPM_DATA), + SET_HOME_POSITION(SET_HOME_POSITION_DATA), + RESOURCE_REQUEST(RESOURCE_REQUEST_DATA), + ESC_STATUS(ESC_STATUS_DATA), + WIND(WIND_DATA), + EXTENDED_SYS_STATE(EXTENDED_SYS_STATE_DATA), + COMMAND_ACK(COMMAND_ACK_DATA), + PARAM_VALUE(PARAM_VALUE_DATA), + HEARTBEAT(HEARTBEAT_DATA), + GIMBAL_DEVICE_INFORMATION(GIMBAL_DEVICE_INFORMATION_DATA), + DEBUG(DEBUG_DATA), + MOUNT_ORIENTATION(MOUNT_ORIENTATION_DATA), RC_CHANNELS(RC_CHANNELS_DATA), - SAFETY_ALLOWED_AREA(SAFETY_ALLOWED_AREA_DATA), - SAFETY_SET_ALLOWED_AREA(SAFETY_SET_ALLOWED_AREA_DATA), + VICON_POSITION_ESTIMATE(VICON_POSITION_ESTIMATE_DATA), + CAMERA_CAPTURE_STATUS(CAMERA_CAPTURE_STATUS_DATA), + CONTROL_SYSTEM_STATE(CONTROL_SYSTEM_STATE_DATA), + CAMERA_SETTINGS(CAMERA_SETTINGS_DATA), + SERIAL_CONTROL(SERIAL_CONTROL_DATA), + CAN_FILTER_MODIFY(CAN_FILTER_MODIFY_DATA), + PARAM_EXT_ACK(PARAM_EXT_ACK_DATA), + CAMERA_TRACKING_IMAGE_STATUS(CAMERA_TRACKING_IMAGE_STATUS_DATA), + COMMAND_CANCEL(COMMAND_CANCEL_DATA), + SET_MAG_OFFSETS(SET_MAG_OFFSETS_DATA), + ADSB_VEHICLE(ADSB_VEHICLE_DATA), + DIGICAM_CONTROL(DIGICAM_CONTROL_DATA), + GPS2_RAW(GPS2_RAW_DATA), + OPEN_DRONE_ID_LOCATION(OPEN_DRONE_ID_LOCATION_DATA), + REQUEST_EVENT(REQUEST_EVENT_DATA), + CAMERA_STATUS(CAMERA_STATUS_DATA), + HYGROMETER_SENSOR(HYGROMETER_SENSOR_DATA), + STORAGE_INFORMATION(STORAGE_INFORMATION_DATA), MISSION_ACK(MISSION_ACK_DATA), - UTM_GLOBAL_POSITION(UTM_GLOBAL_POSITION_DATA), - FLIGHT_INFORMATION(FLIGHT_INFORMATION_DATA), - ESC_TELEMETRY_1_TO_4(ESC_TELEMETRY_1_TO_4_DATA), LOGGING_ACK(LOGGING_ACK_DATA), - OPEN_DRONE_ID_LOCATION(OPEN_DRONE_ID_LOCATION_DATA), - HIGH_LATENCY2(HIGH_LATENCY2_DATA), - TIME_ESTIMATE_TO_TARGET(TIME_ESTIMATE_TO_TARGET_DATA), + MEMINFO(MEMINFO_DATA), + DEVICE_OP_READ(DEVICE_OP_READ_DATA), + VISION_POSITION_DELTA(VISION_POSITION_DELTA_DATA), + ESTIMATOR_STATUS(ESTIMATOR_STATUS_DATA), + OSD_PARAM_SHOW_CONFIG_REPLY(OSD_PARAM_SHOW_CONFIG_REPLY_DATA), + MEMORY_VECT(MEMORY_VECT_DATA), + EKF_STATUS_REPORT(EKF_STATUS_REPORT_DATA), + PARAM_EXT_SET(PARAM_EXT_SET_DATA), + HWSTATUS(HWSTATUS_DATA), ICAROUS_KINEMATIC_BANDS(ICAROUS_KINEMATIC_BANDS_DATA), - FENCE_FETCH_POINT(FENCE_FETCH_POINT_DATA), - HIL_STATE(HIL_STATE_DATA), - DEBUG_FLOAT_ARRAY(DEBUG_FLOAT_ARRAY_DATA), - CUBEPILOT_RAW_RC(CUBEPILOT_RAW_RC_DATA), - ORBIT_EXECUTION_STATUS(ORBIT_EXECUTION_STATUS_DATA), - OPEN_DRONE_ID_BASIC_ID(OPEN_DRONE_ID_BASIC_ID_DATA), - VFR_HUD(VFR_HUD_DATA), - OSD_PARAM_CONFIG_REPLY(OSD_PARAM_CONFIG_REPLY_DATA), - LIMITS_STATUS(LIMITS_STATUS_DATA), - UAVCAN_NODE_STATUS(UAVCAN_NODE_STATUS_DATA), - RESOURCE_REQUEST(RESOURCE_REQUEST_DATA), - MISSION_ITEM_REACHED(MISSION_ITEM_REACHED_DATA), + OBSTACLE_DISTANCE(OBSTACLE_DISTANCE_DATA), + AIS_VESSEL(AIS_VESSEL_DATA), GOPRO_GET_RESPONSE(GOPRO_GET_RESPONSE_DATA), - GENERATOR_STATUS(GENERATOR_STATUS_DATA), - HIL_CONTROLS(HIL_CONTROLS_DATA), + CAN_FRAME(CAN_FRAME_DATA), + GLOBAL_VISION_POSITION_ESTIMATE(GLOBAL_VISION_POSITION_ESTIMATE_DATA), + OPTICAL_FLOW(OPTICAL_FLOW_DATA), + SERVO_OUTPUT_RAW(SERVO_OUTPUT_RAW_DATA), + LOG_ERASE(LOG_ERASE_DATA), + EVENT(EVENT_DATA), + DEBUG_VECT(DEBUG_VECT_DATA), + RAW_IMU(RAW_IMU_DATA), + AHRS3(AHRS3_DATA), + ISBD_LINK_STATUS(ISBD_LINK_STATUS_DATA), + HERELINK_VIDEO_STREAM_INFORMATION(HERELINK_VIDEO_STREAM_INFORMATION_DATA), + HIL_ACTUATOR_CONTROLS(HIL_ACTUATOR_CONTROLS_DATA), + ENCAPSULATED_DATA(ENCAPSULATED_DATA_DATA), + UAVCAN_NODE_INFO(UAVCAN_NODE_INFO_DATA), + HIL_STATE_QUATERNION(HIL_STATE_QUATERNION_DATA), + LOGGING_DATA_ACKED(LOGGING_DATA_ACKED_DATA), + FLIGHT_INFORMATION(FLIGHT_INFORMATION_DATA), + DEVICE_OP_READ_REPLY(DEVICE_OP_READ_REPLY_DATA), + GPS_RAW_INT(GPS_RAW_INT_DATA), + GIMBAL_DEVICE_ATTITUDE_STATUS(GIMBAL_DEVICE_ATTITUDE_STATUS_DATA), + RPM(RPM_DATA), + AOA_SSA(AOA_SSA_DATA), + OPEN_DRONE_ID_MESSAGE_PACK(OPEN_DRONE_ID_MESSAGE_PACK_DATA), + WATER_DEPTH(WATER_DEPTH_DATA), + CAMERA_TRACKING_GEO_STATUS(CAMERA_TRACKING_GEO_STATUS_DATA), + CAMERA_INFORMATION(CAMERA_INFORMATION_DATA), + BUTTON_CHANGE(BUTTON_CHANGE_DATA), + RAW_PRESSURE(RAW_PRESSURE_DATA), + HIGHRES_IMU(HIGHRES_IMU_DATA), + PARAM_MAP_RC(PARAM_MAP_RC_DATA), + NAMED_VALUE_INT(NAMED_VALUE_INT_DATA), + TERRAIN_REPORT(TERRAIN_REPORT_DATA), + RC_CHANNELS_SCALED(RC_CHANNELS_SCALED_DATA), + ORBIT_EXECUTION_STATUS(ORBIT_EXECUTION_STATUS_DATA), + SCALED_IMU3(SCALED_IMU3_DATA), + SENSOR_OFFSETS(SENSOR_OFFSETS_DATA), + RC_CHANNELS_OVERRIDE(RC_CHANNELS_OVERRIDE_DATA), + RADIO(RADIO_DATA), + POSITION_TARGET_GLOBAL_INT(POSITION_TARGET_GLOBAL_INT_DATA), + MANUAL_CONTROL(MANUAL_CONTROL_DATA), CHANGE_OPERATOR_CONTROL_ACK(CHANGE_OPERATOR_CONTROL_ACK_DATA), - LOGGING_DATA_ACKED(LOGGING_DATA_ACKED_DATA), - SET_POSITION_TARGET_GLOBAL_INT(SET_POSITION_TARGET_GLOBAL_INT_DATA), - UAVCAN_NODE_INFO(UAVCAN_NODE_INFO_DATA), - SUPPORTED_TUNES(SUPPORTED_TUNES_DATA), - CHANGE_OPERATOR_CONTROL(CHANGE_OPERATOR_CONTROL_DATA), - LOCAL_POSITION_NED(LOCAL_POSITION_NED_DATA), - COMMAND_INT(COMMAND_INT_DATA), - FENCE_STATUS(FENCE_STATUS_DATA), - ADAP_TUNING(ADAP_TUNING_DATA), - VICON_POSITION_ESTIMATE(VICON_POSITION_ESTIMATE_DATA), - MISSION_WRITE_PARTIAL_LIST(MISSION_WRITE_PARTIAL_LIST_DATA), - RALLY_POINT(RALLY_POINT_DATA), - GPS_STATUS(GPS_STATUS_DATA), - OSD_PARAM_CONFIG(OSD_PARAM_CONFIG_DATA), - AHRS2(AHRS2_DATA), + SCALED_PRESSURE3(SCALED_PRESSURE3_DATA), + PARAM_EXT_REQUEST_LIST(PARAM_EXT_REQUEST_LIST_DATA), + MISSION_CLEAR_ALL(MISSION_CLEAR_ALL_DATA), + GIMBAL_MANAGER_INFORMATION(GIMBAL_MANAGER_INFORMATION_DATA), + CELLULAR_CONFIG(CELLULAR_CONFIG_DATA), + LOG_ENTRY(LOG_ENTRY_DATA), + VIBRATION(VIBRATION_DATA), + SYS_STATUS(SYS_STATUS_DATA), + GLOBAL_POSITION_INT_COV(GLOBAL_POSITION_INT_COV_DATA), ATTITUDE_QUATERNION_COV(ATTITUDE_QUATERNION_COV_DATA), - OBSTACLE_DISTANCE_3D(OBSTACLE_DISTANCE_3D_DATA), - VISION_POSITION_ESTIMATE(VISION_POSITION_ESTIMATE_DATA), - GIMBAL_MANAGER_STATUS(GIMBAL_MANAGER_STATUS_DATA), - ACTUATOR_OUTPUT_STATUS(ACTUATOR_OUTPUT_STATUS_DATA), - ESC_STATUS(ESC_STATUS_DATA), - RANGEFINDER(RANGEFINDER_DATA), - REMOTE_LOG_DATA_BLOCK(REMOTE_LOG_DATA_BLOCK_DATA), - FENCE_POINT(FENCE_POINT_DATA), - ESC_TELEMETRY_5_TO_8(ESC_TELEMETRY_5_TO_8_DATA), - WIND_COV(WIND_COV_DATA), - FILE_TRANSFER_PROTOCOL(FILE_TRANSFER_PROTOCOL_DATA), + ATTITUDE_QUATERNION(ATTITUDE_QUATERNION_DATA), + FENCE_STATUS(FENCE_STATUS_DATA), + ICAROUS_HEARTBEAT(ICAROUS_HEARTBEAT_DATA), + HIL_GPS(HIL_GPS_DATA), + TIMESYNC(TIMESYNC_DATA), + GPS_RTCM_DATA(GPS_RTCM_DATA_DATA), + GIMBAL_MANAGER_SET_MANUAL_CONTROL(GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA), + SMART_BATTERY_INFO(SMART_BATTERY_INFO_DATA), + DATA64(DATA64_DATA), + DISTANCE_SENSOR(DISTANCE_SENSOR_DATA), + EFI_STATUS(EFI_STATUS_DATA), + SET_MODE(SET_MODE_DATA), MISSION_ITEM(MISSION_ITEM_DATA), - MANUAL_SETPOINT(MANUAL_SETPOINT_DATA), - OPTICAL_FLOW(OPTICAL_FLOW_DATA), - WHEEL_DISTANCE(WHEEL_DISTANCE_DATA), - SERVO_OUTPUT_RAW(SERVO_OUTPUT_RAW_DATA), - POSITION_TARGET_LOCAL_NED(POSITION_TARGET_LOCAL_NED_DATA), - LOG_ENTRY(LOG_ENTRY_DATA), - PARAM_SET(PARAM_SET_DATA), - AP_ADC(AP_ADC_DATA), - SET_POSITION_TARGET_LOCAL_NED(SET_POSITION_TARGET_LOCAL_NED_DATA), - DEVICE_OP_WRITE_REPLY(DEVICE_OP_WRITE_REPLY_DATA), + NAMED_VALUE_FLOAT(NAMED_VALUE_FLOAT_DATA), + RESPONSE_EVENT_ERROR(RESPONSE_EVENT_ERROR_DATA), + SCALED_IMU2(SCALED_IMU2_DATA), + ATTITUDE(ATTITUDE_DATA), + LANDING_TARGET(LANDING_TARGET_DATA), + OPEN_DRONE_ID_AUTHENTICATION(OPEN_DRONE_ID_AUTHENTICATION_DATA), + NAV_CONTROLLER_OUTPUT(NAV_CONTROLLER_OUTPUT_DATA), + LOG_REQUEST_LIST(LOG_REQUEST_LIST_DATA), + GPS_GLOBAL_ORIGIN(GPS_GLOBAL_ORIGIN_DATA), + SUPPORTED_TUNES(SUPPORTED_TUNES_DATA), MOUNT_STATUS(MOUNT_STATUS_DATA), - DATA16(DATA16_DATA), - SIMSTATE(SIMSTATE_DATA), - MAG_CAL_REPORT(MAG_CAL_REPORT_DATA), - SCALED_PRESSURE2(SCALED_PRESSURE2_DATA), - CUBEPILOT_FIRMWARE_UPDATE_START(CUBEPILOT_FIRMWARE_UPDATE_START_DATA), - SET_MODE(SET_MODE_DATA), - SETUP_SIGNING(SETUP_SIGNING_DATA), - PARAM_EXT_SET(PARAM_EXT_SET_DATA), - HOME_POSITION(HOME_POSITION_DATA), - RAW_RPM(RAW_RPM_DATA), - ESC_INFO(ESC_INFO_DATA), - AUTH_KEY(AUTH_KEY_DATA), - DIGICAM_CONTROL(DIGICAM_CONTROL_DATA), - GPS2_RTK(GPS2_RTK_DATA), - TERRAIN_DATA(TERRAIN_DATA_DATA), CANFD_FRAME(CANFD_FRAME_DATA), - SET_ACTUATOR_CONTROL_TARGET(SET_ACTUATOR_CONTROL_TARGET_DATA), - TIMESYNC(TIMESYNC_DATA), + WIFI_CONFIG_AP(WIFI_CONFIG_AP_DATA), + MISSION_ITEM_REACHED(MISSION_ITEM_REACHED_DATA), COMPASSMOT_STATUS(COMPASSMOT_STATUS_DATA), - MISSION_REQUEST_INT(MISSION_REQUEST_INT_DATA), UAVIONIX_ADSB_OUT_DYNAMIC(UAVIONIX_ADSB_OUT_DYNAMIC_DATA), - DATA96(DATA96_DATA), - CAMERA_TRACKING_GEO_STATUS(CAMERA_TRACKING_GEO_STATUS_DATA), + AP_ADC(AP_ADC_DATA), + OSD_PARAM_SHOW_CONFIG(OSD_PARAM_SHOW_CONFIG_DATA), + CUBEPILOT_FIRMWARE_UPDATE_START(CUBEPILOT_FIRMWARE_UPDATE_START_DATA), + RADIO_STATUS(RADIO_STATUS_DATA), LOG_DATA(LOG_DATA_DATA), - HERELINK_VIDEO_STREAM_INFORMATION(HERELINK_VIDEO_STREAM_INFORMATION_DATA), - MISSION_REQUEST_PARTIAL_LIST(MISSION_REQUEST_PARTIAL_LIST_DATA), - MISSION_SET_CURRENT(MISSION_SET_CURRENT_DATA), - SCALED_PRESSURE(SCALED_PRESSURE_DATA), - PID_TUNING(PID_TUNING_DATA), - HIGH_LATENCY(HIGH_LATENCY_DATA), - PARAM_EXT_REQUEST_LIST(PARAM_EXT_REQUEST_LIST_DATA), - CAMERA_FOV_STATUS(CAMERA_FOV_STATUS_DATA), - WINCH_STATUS(WINCH_STATUS_DATA), - HERELINK_TELEM(HERELINK_TELEM_DATA), - VIDEO_STREAM_INFORMATION(VIDEO_STREAM_INFORMATION_DATA), + DEBUG_FLOAT_ARRAY(DEBUG_FLOAT_ARRAY_DATA), + ODOMETRY(ODOMETRY_DATA), HIL_OPTICAL_FLOW(HIL_OPTICAL_FLOW_DATA), - CELLULAR_STATUS(CELLULAR_STATUS_DATA), - TERRAIN_REPORT(TERRAIN_REPORT_DATA), - LOG_ERASE(LOG_ERASE_DATA), - OPEN_DRONE_ID_OPERATOR_ID(OPEN_DRONE_ID_OPERATOR_ID_DATA), - SET_MAG_OFFSETS(SET_MAG_OFFSETS_DATA), - GPS2_RAW(GPS2_RAW_DATA), CURRENT_EVENT_SEQUENCE(CURRENT_EVENT_SEQUENCE_DATA), - OPEN_DRONE_ID_SYSTEM(OPEN_DRONE_ID_SYSTEM_DATA), - AHRS(AHRS_DATA), - ATTITUDE(ATTITUDE_DATA), LOGGING_DATA(LOGGING_DATA_DATA), + SET_ACTUATOR_CONTROL_TARGET(SET_ACTUATOR_CONTROL_TARGET_DATA), + SET_POSITION_TARGET_GLOBAL_INT(SET_POSITION_TARGET_GLOBAL_INT_DATA), + SCALED_PRESSURE(SCALED_PRESSURE_DATA), + HIGH_LATENCY2(HIGH_LATENCY2_DATA), + GENERATOR_STATUS(GENERATOR_STATUS_DATA), + MISSION_REQUEST_INT(MISSION_REQUEST_INT_DATA), + OPEN_DRONE_ID_SELF_ID(OPEN_DRONE_ID_SELF_ID_DATA), CAMERA_TRIGGER(CAMERA_TRIGGER_DATA), - AIS_VESSEL(AIS_VESSEL_DATA), - GLOBAL_VISION_POSITION_ESTIMATE(GLOBAL_VISION_POSITION_ESTIMATE_DATA), - MISSION_ITEM_INT(MISSION_ITEM_INT_DATA), - RAW_PRESSURE(RAW_PRESSURE_DATA), - TERRAIN_REQUEST(TERRAIN_REQUEST_DATA), - MANUAL_CONTROL(MANUAL_CONTROL_DATA), - VIBRATION(VIBRATION_DATA), - RC_CHANNELS_OVERRIDE(RC_CHANNELS_OVERRIDE_DATA), - ICAROUS_HEARTBEAT(ICAROUS_HEARTBEAT_DATA), - GIMBAL_DEVICE_INFORMATION(GIMBAL_DEVICE_INFORMATION_DATA), - GIMBAL_REPORT(GIMBAL_REPORT_DATA), - CONTROL_SYSTEM_STATE(CONTROL_SYSTEM_STATE_DATA), - RESPONSE_EVENT_ERROR(RESPONSE_EVENT_ERROR_DATA), - GIMBAL_MANAGER_SET_ATTITUDE(GIMBAL_MANAGER_SET_ATTITUDE_DATA), - AOA_SSA(AOA_SSA_DATA), - SCALED_PRESSURE3(SCALED_PRESSURE3_DATA), - NAMED_VALUE_INT(NAMED_VALUE_INT_DATA), - CAMERA_TRACKING_IMAGE_STATUS(CAMERA_TRACKING_IMAGE_STATUS_DATA), - LINK_NODE_STATUS(LINK_NODE_STATUS_DATA), - MAG_CAL_PROGRESS(MAG_CAL_PROGRESS_DATA), - LOG_REQUEST_DATA(LOG_REQUEST_DATA_DATA), - PARAM_REQUEST_LIST(PARAM_REQUEST_LIST_DATA), - GPS_RAW_INT(GPS_RAW_INT_DATA), - AUTOPILOT_VERSION_REQUEST(AUTOPILOT_VERSION_REQUEST_DATA), - TUNNEL(TUNNEL_DATA), - OSD_PARAM_SHOW_CONFIG(OSD_PARAM_SHOW_CONFIG_DATA), - TRAJECTORY_REPRESENTATION_BEZIER(TRAJECTORY_REPRESENTATION_BEZIER_DATA), - VISION_SPEED_ESTIMATE(VISION_SPEED_ESTIMATE_DATA), - OBSTACLE_DISTANCE(OBSTACLE_DISTANCE_DATA), - SCALED_IMU2(SCALED_IMU2_DATA), - MISSION_REQUEST(MISSION_REQUEST_DATA), - LED_CONTROL(LED_CONTROL_DATA), - SCALED_IMU3(SCALED_IMU3_DATA), - TRAJECTORY_REPRESENTATION_WAYPOINTS(TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA), + SET_POSITION_TARGET_LOCAL_NED(SET_POSITION_TARGET_LOCAL_NED_DATA), + DIGICAM_CONFIGURE(DIGICAM_CONFIGURE_DATA), + DEVICE_OP_WRITE(DEVICE_OP_WRITE_DATA), COLLISION(COLLISION_DATA), MISSION_COUNT(MISSION_COUNT_DATA), - ATT_POS_MOCAP(ATT_POS_MOCAP_DATA), - DATA32(DATA32_DATA), - PARAM_EXT_VALUE(PARAM_EXT_VALUE_DATA), - AUTOPILOT_VERSION(AUTOPILOT_VERSION_DATA), - GIMBAL_MANAGER_SET_MANUAL_CONTROL(GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA), - DATA64(DATA64_DATA), - ODOMETRY(ODOMETRY_DATA), - PING(PING_DATA), - MESSAGE_INTERVAL(MESSAGE_INTERVAL_DATA), - HIL_ACTUATOR_CONTROLS(HIL_ACTUATOR_CONTROLS_DATA), - EKF_STATUS_REPORT(EKF_STATUS_REPORT_DATA), - AHRS3(AHRS3_DATA), - HIL_STATE_QUATERNION(HIL_STATE_QUATERNION_DATA), - GIMBAL_DEVICE_ATTITUDE_STATUS(GIMBAL_DEVICE_ATTITUDE_STATUS_DATA), - SET_GPS_GLOBAL_ORIGIN(SET_GPS_GLOBAL_ORIGIN_DATA), - POSITION_TARGET_GLOBAL_INT(POSITION_TARGET_GLOBAL_INT_DATA), - ATTITUDE_TARGET(ATTITUDE_TARGET_DATA), - RADIO(RADIO_DATA), - PARAM_VALUE(PARAM_VALUE_DATA), - OPEN_DRONE_ID_SYSTEM_UPDATE(OPEN_DRONE_ID_SYSTEM_UPDATE_DATA), - ADSB_VEHICLE(ADSB_VEHICLE_DATA), - DEVICE_OP_READ(DEVICE_OP_READ_DATA), - EVENT(EVENT_DATA), - COMMAND_LONG(COMMAND_LONG_DATA), - RADIO_STATUS(RADIO_STATUS_DATA), - MEMORY_VECT(MEMORY_VECT_DATA), - REQUEST_DATA_STREAM(REQUEST_DATA_STREAM_DATA), - WIFI_CONFIG_AP(WIFI_CONFIG_AP_DATA), - ESC_TELEMETRY_9_TO_12(ESC_TELEMETRY_9_TO_12_DATA), - HIL_RC_INPUTS_RAW(HIL_RC_INPUTS_RAW_DATA), - RAW_IMU(RAW_IMU_DATA), - EFI_STATUS(EFI_STATUS_DATA), - MISSION_REQUEST_LIST(MISSION_REQUEST_LIST_DATA), - OPEN_DRONE_ID_AUTHENTICATION(OPEN_DRONE_ID_AUTHENTICATION_DATA), - LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET(LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA), - CAMERA_INFORMATION(CAMERA_INFORMATION_DATA), - ATTITUDE_QUATERNION(ATTITUDE_QUATERNION_DATA), - SIM_STATE(SIM_STATE_DATA), - MOUNT_CONTROL(MOUNT_CONTROL_DATA), - COMMAND_CANCEL(COMMAND_CANCEL_DATA), - CAMERA_STATUS(CAMERA_STATUS_DATA), + BATTERY_STATUS(BATTERY_STATUS_DATA), DEEPSTALL(DEEPSTALL_DATA), + MISSION_REQUEST_PARTIAL_LIST(MISSION_REQUEST_PARTIAL_LIST_DATA), + GIMBAL_MANAGER_STATUS(GIMBAL_MANAGER_STATUS_DATA), + STATUSTEXT(STATUSTEXT_DATA), + CAMERA_FEEDBACK(CAMERA_FEEDBACK_DATA), + PARAM_REQUEST_LIST(PARAM_REQUEST_LIST_DATA), + HIL_RC_INPUTS_RAW(HIL_RC_INPUTS_RAW_DATA), + OBSTACLE_DISTANCE_3D(OBSTACLE_DISTANCE_3D_DATA), + MISSION_ITEM_INT(MISSION_ITEM_INT_DATA), + GIMBAL_MANAGER_SET_PITCHYAW(GIMBAL_MANAGER_SET_PITCHYAW_DATA), + REMOTE_LOG_BLOCK_STATUS(REMOTE_LOG_BLOCK_STATUS_DATA), + MAG_CAL_REPORT(MAG_CAL_REPORT_DATA), + CELLULAR_STATUS(CELLULAR_STATUS_DATA), + DATA_STREAM(DATA_STREAM_DATA), + SAFETY_ALLOWED_AREA(SAFETY_ALLOWED_AREA_DATA), + OPEN_DRONE_ID_BASIC_ID(OPEN_DRONE_ID_BASIC_ID_DATA), + SET_GPS_GLOBAL_ORIGIN(SET_GPS_GLOBAL_ORIGIN_DATA), + VIDEO_STREAM_STATUS(VIDEO_STREAM_STATUS_DATA), COMPONENT_INFORMATION(COMPONENT_INFORMATION_DATA), - GOPRO_GET_REQUEST(GOPRO_GET_REQUEST_DATA), - RPM(RPM_DATA), - CAMERA_IMAGE_CAPTURED(CAMERA_IMAGE_CAPTURED_DATA), - GLOBAL_POSITION_INT_COV(GLOBAL_POSITION_INT_COV_DATA), - GPS_INPUT(GPS_INPUT_DATA), - GIMBAL_CONTROL(GIMBAL_CONTROL_DATA), - MOUNT_ORIENTATION(MOUNT_ORIENTATION_DATA), - DEVICE_OP_READ_REPLY(DEVICE_OP_READ_REPLY_DATA), + VIDEO_STREAM_INFORMATION(VIDEO_STREAM_INFORMATION_DATA), + SET_ATTITUDE_TARGET(SET_ATTITUDE_TARGET_DATA), + GOPRO_HEARTBEAT(GOPRO_HEARTBEAT_DATA), RC_CHANNELS_RAW(RC_CHANNELS_RAW_DATA), - DATA_STREAM(DATA_STREAM_DATA), - MISSION_CLEAR_ALL(MISSION_CLEAR_ALL_DATA), - HIL_GPS(HIL_GPS_DATA), - PARAM_MAP_RC(PARAM_MAP_RC_DATA), - GIMBAL_DEVICE_SET_ATTITUDE(GIMBAL_DEVICE_SET_ATTITUDE_DATA), - CAMERA_SETTINGS(CAMERA_SETTINGS_DATA), - AUTOPILOT_STATE_FOR_GIMBAL_DEVICE(AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA), + ACTUATOR_OUTPUT_STATUS(ACTUATOR_OUTPUT_STATUS_DATA), + HERELINK_TELEM(HERELINK_TELEM_DATA), + SAFETY_SET_ALLOWED_AREA(SAFETY_SET_ALLOWED_AREA_DATA), + AIRSPEED_AUTOCAL(AIRSPEED_AUTOCAL_DATA), + ESC_TELEMETRY_1_TO_4(ESC_TELEMETRY_1_TO_4_DATA), + GIMBAL_REPORT(GIMBAL_REPORT_DATA), + VISION_SPEED_ESTIMATE(VISION_SPEED_ESTIMATE_DATA), ONBOARD_COMPUTER_STATUS(ONBOARD_COMPUTER_STATUS_DATA), - HWSTATUS(HWSTATUS_DATA), - RALLY_FETCH_POINT(RALLY_FETCH_POINT_DATA), -
}

Variantsยง

ยง

OPEN_DRONE_ID_ARM_STATUS(OPEN_DRONE_ID_ARM_STATUS_DATA)

ยง

STORAGE_INFORMATION(STORAGE_INFORMATION_DATA)

ยง

MEMINFO(MEMINFO_DATA)

ยง

HEARTBEAT(HEARTBEAT_DATA)

ยง

MCU_STATUS(MCU_STATUS_DATA)

ยง

ALTITUDE(ALTITUDE_DATA)

ยง

COMMAND_ACK(COMMAND_ACK_DATA)

ยง

DEBUG(DEBUG_DATA)

ยง

PARAM_EXT_ACK(PARAM_EXT_ACK_DATA)

ยง

REMOTE_LOG_BLOCK_STATUS(REMOTE_LOG_BLOCK_STATUS_DATA)

ยง

OPTICAL_FLOW_RAD(OPTICAL_FLOW_RAD_DATA)

ยง

GPS_RTCM_DATA(GPS_RTCM_DATA_DATA)

ยง

REQUEST_EVENT(REQUEST_EVENT_DATA)

ยง

LOCAL_POSITION_NED_COV(LOCAL_POSITION_NED_COV_DATA)

ยง

VISION_POSITION_DELTA(VISION_POSITION_DELTA_DATA)

ยง

PLAY_TUNE(PLAY_TUNE_DATA)

ยง

OSD_PARAM_SHOW_CONFIG_REPLY(OSD_PARAM_SHOW_CONFIG_REPLY_DATA)

ยง

CELLULAR_CONFIG(CELLULAR_CONFIG_DATA)

ยง

SET_ATTITUDE_TARGET(SET_ATTITUDE_TARGET_DATA)

ยง

GPS_GLOBAL_ORIGIN(GPS_GLOBAL_ORIGIN_DATA)

ยง

DISTANCE_SENSOR(DISTANCE_SENSOR_DATA)

ยง

EXTENDED_SYS_STATE(EXTENDED_SYS_STATE_DATA)

ยง

LANDING_TARGET(LANDING_TARGET_DATA)

ยง

NAV_CONTROLLER_OUTPUT(NAV_CONTROLLER_OUTPUT_DATA)

ยง

NAMED_VALUE_FLOAT(NAMED_VALUE_FLOAT_DATA)

ยง

ESTIMATOR_STATUS(ESTIMATOR_STATUS_DATA)

ยง

SET_HOME_POSITION(SET_HOME_POSITION_DATA)

ยง

UAVIONIX_ADSB_OUT_CFG(UAVIONIX_ADSB_OUT_CFG_DATA)

ยง

MOUNT_CONFIGURE(MOUNT_CONFIGURE_DATA)

ยง

PARAM_EXT_REQUEST_READ(PARAM_EXT_REQUEST_READ_DATA)

ยง

CAMERA_FEEDBACK(CAMERA_FEEDBACK_DATA)

ยง

SERIAL_CONTROL(SERIAL_CONTROL_DATA)

ยง

CAMERA_CAPTURE_STATUS(CAMERA_CAPTURE_STATUS_DATA)

ยง

V2_EXTENSION(V2_EXTENSION_DATA)

ยง

COMPONENT_METADATA(COMPONENT_METADATA_DATA)

ยง

DIGICAM_CONFIGURE(DIGICAM_CONFIGURE_DATA)

ยง

BUTTON_CHANGE(BUTTON_CHANGE_DATA)

ยง

STATUSTEXT(STATUSTEXT_DATA)

ยง

CAN_FRAME(CAN_FRAME_DATA)

ยง

SENSOR_OFFSETS(SENSOR_OFFSETS_DATA)

ยง

BATTERY2(BATTERY2_DATA)

ยง

SCALED_IMU(SCALED_IMU_DATA)

ยง

VIDEO_STREAM_STATUS(VIDEO_STREAM_STATUS_DATA)

ยง

BATTERY_STATUS(BATTERY_STATUS_DATA)

ยง

DEVICE_OP_WRITE(DEVICE_OP_WRITE_DATA)

ยง

HIGHRES_IMU(HIGHRES_IMU_DATA)

ยง

GOPRO_HEARTBEAT(GOPRO_HEARTBEAT_DATA)

ยง

WATER_DEPTH(WATER_DEPTH_DATA)

ยง

HIL_SENSOR(HIL_SENSOR_DATA)

ยง

POWER_STATUS(POWER_STATUS_DATA)

ยง

SYS_STATUS(SYS_STATUS_DATA)

ยง

CAN_FILTER_MODIFY(CAN_FILTER_MODIFY_DATA)

ยง

RC_CHANNELS_SCALED(RC_CHANNELS_SCALED_DATA)

ยง

OPEN_DRONE_ID_SELF_ID(OPEN_DRONE_ID_SELF_ID_DATA)

ยง

PARAM_REQUEST_READ(PARAM_REQUEST_READ_DATA)

ยง

PLAY_TUNE_V2(PLAY_TUNE_V2_DATA)

ยง

TERRAIN_CHECK(TERRAIN_CHECK_DATA)

ยง

GPS_RTK(GPS_RTK_DATA)

ยง

FOLLOW_TARGET(FOLLOW_TARGET_DATA)

ยง

WIND(WIND_DATA)

ยง

MISSION_CURRENT(MISSION_CURRENT_DATA)

ยง

GIMBAL_TORQUE_CMD_REPORT(GIMBAL_TORQUE_CMD_REPORT_DATA)

ยง

GOPRO_SET_RESPONSE(GOPRO_SET_RESPONSE_DATA)

ยง

GPS_INJECT_DATA(GPS_INJECT_DATA_DATA)

ยง

SMART_BATTERY_INFO(SMART_BATTERY_INFO_DATA)

ยง

ACTUATOR_CONTROL_TARGET(ACTUATOR_CONTROL_TARGET_DATA)

ยง

CUBEPILOT_FIRMWARE_UPDATE_RESP(CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA)

ยง

DATA_TRANSMISSION_HANDSHAKE(DATA_TRANSMISSION_HANDSHAKE_DATA)

ยง

HYGROMETER_SENSOR(HYGROMETER_SENSOR_DATA)

ยง

SYSTEM_TIME(SYSTEM_TIME_DATA)

ยง

LOG_REQUEST_END(LOG_REQUEST_END_DATA)

ยง

PROTOCOL_VERSION(PROTOCOL_VERSION_DATA)

ยง

AIRSPEED_AUTOCAL(AIRSPEED_AUTOCAL_DATA)

ยง

GLOBAL_POSITION_INT(GLOBAL_POSITION_INT_DATA)

ยง

ENCAPSULATED_DATA(ENCAPSULATED_DATA_DATA)

ยง

UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT(UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA)

ยง

GOPRO_SET_REQUEST(GOPRO_SET_REQUEST_DATA)

ยง

LOG_REQUEST_LIST(LOG_REQUEST_LIST_DATA)

ยง

GIMBAL_MANAGER_SET_PITCHYAW(GIMBAL_MANAGER_SET_PITCHYAW_DATA)

ยง

OPEN_DRONE_ID_MESSAGE_PACK(OPEN_DRONE_ID_MESSAGE_PACK_DATA)

ยง

GIMBAL_MANAGER_INFORMATION(GIMBAL_MANAGER_INFORMATION_DATA)

ยง

DEBUG_VECT(DEBUG_VECT_DATA)

ยง

RC_CHANNELS(RC_CHANNELS_DATA)

ยง

SAFETY_ALLOWED_AREA(SAFETY_ALLOWED_AREA_DATA)

ยง

SAFETY_SET_ALLOWED_AREA(SAFETY_SET_ALLOWED_AREA_DATA)

ยง

MISSION_ACK(MISSION_ACK_DATA)

ยง

UTM_GLOBAL_POSITION(UTM_GLOBAL_POSITION_DATA)

ยง

FLIGHT_INFORMATION(FLIGHT_INFORMATION_DATA)

ยง

ESC_TELEMETRY_1_TO_4(ESC_TELEMETRY_1_TO_4_DATA)

ยง

LOGGING_ACK(LOGGING_ACK_DATA)

ยง

OPEN_DRONE_ID_LOCATION(OPEN_DRONE_ID_LOCATION_DATA)

ยง

HIGH_LATENCY2(HIGH_LATENCY2_DATA)

ยง

TIME_ESTIMATE_TO_TARGET(TIME_ESTIMATE_TO_TARGET_DATA)

ยง

ICAROUS_KINEMATIC_BANDS(ICAROUS_KINEMATIC_BANDS_DATA)

ยง

FENCE_FETCH_POINT(FENCE_FETCH_POINT_DATA)

ยง

HIL_STATE(HIL_STATE_DATA)

ยง

DEBUG_FLOAT_ARRAY(DEBUG_FLOAT_ARRAY_DATA)

ยง

CUBEPILOT_RAW_RC(CUBEPILOT_RAW_RC_DATA)

ยง

ORBIT_EXECUTION_STATUS(ORBIT_EXECUTION_STATUS_DATA)

ยง

OPEN_DRONE_ID_BASIC_ID(OPEN_DRONE_ID_BASIC_ID_DATA)

ยง

VFR_HUD(VFR_HUD_DATA)

ยง

OSD_PARAM_CONFIG_REPLY(OSD_PARAM_CONFIG_REPLY_DATA)

ยง

LIMITS_STATUS(LIMITS_STATUS_DATA)

ยง

UAVCAN_NODE_STATUS(UAVCAN_NODE_STATUS_DATA)

ยง

RESOURCE_REQUEST(RESOURCE_REQUEST_DATA)

ยง

MISSION_ITEM_REACHED(MISSION_ITEM_REACHED_DATA)

ยง

GOPRO_GET_RESPONSE(GOPRO_GET_RESPONSE_DATA)

ยง

GENERATOR_STATUS(GENERATOR_STATUS_DATA)

ยง

HIL_CONTROLS(HIL_CONTROLS_DATA)

ยง

CHANGE_OPERATOR_CONTROL_ACK(CHANGE_OPERATOR_CONTROL_ACK_DATA)

ยง

LOGGING_DATA_ACKED(LOGGING_DATA_ACKED_DATA)

ยง

SET_POSITION_TARGET_GLOBAL_INT(SET_POSITION_TARGET_GLOBAL_INT_DATA)

ยง

UAVCAN_NODE_INFO(UAVCAN_NODE_INFO_DATA)

ยง

SUPPORTED_TUNES(SUPPORTED_TUNES_DATA)

ยง

CHANGE_OPERATOR_CONTROL(CHANGE_OPERATOR_CONTROL_DATA)

ยง

LOCAL_POSITION_NED(LOCAL_POSITION_NED_DATA)

ยง

COMMAND_INT(COMMAND_INT_DATA)

ยง

FENCE_STATUS(FENCE_STATUS_DATA)

ยง

ADAP_TUNING(ADAP_TUNING_DATA)

ยง

VICON_POSITION_ESTIMATE(VICON_POSITION_ESTIMATE_DATA)

ยง

MISSION_WRITE_PARTIAL_LIST(MISSION_WRITE_PARTIAL_LIST_DATA)

ยง

RALLY_POINT(RALLY_POINT_DATA)

ยง

GPS_STATUS(GPS_STATUS_DATA)

ยง

OSD_PARAM_CONFIG(OSD_PARAM_CONFIG_DATA)

ยง

AHRS2(AHRS2_DATA)

ยง

ATTITUDE_QUATERNION_COV(ATTITUDE_QUATERNION_COV_DATA)

ยง

OBSTACLE_DISTANCE_3D(OBSTACLE_DISTANCE_3D_DATA)

ยง

VISION_POSITION_ESTIMATE(VISION_POSITION_ESTIMATE_DATA)

ยง

GIMBAL_MANAGER_STATUS(GIMBAL_MANAGER_STATUS_DATA)

ยง

ACTUATOR_OUTPUT_STATUS(ACTUATOR_OUTPUT_STATUS_DATA)

ยง

ESC_STATUS(ESC_STATUS_DATA)

ยง

RANGEFINDER(RANGEFINDER_DATA)

ยง

REMOTE_LOG_DATA_BLOCK(REMOTE_LOG_DATA_BLOCK_DATA)

ยง

FENCE_POINT(FENCE_POINT_DATA)

ยง

ESC_TELEMETRY_5_TO_8(ESC_TELEMETRY_5_TO_8_DATA)

ยง

WIND_COV(WIND_COV_DATA)

ยง

FILE_TRANSFER_PROTOCOL(FILE_TRANSFER_PROTOCOL_DATA)

ยง

MISSION_ITEM(MISSION_ITEM_DATA)

ยง

MANUAL_SETPOINT(MANUAL_SETPOINT_DATA)

ยง

OPTICAL_FLOW(OPTICAL_FLOW_DATA)

ยง

WHEEL_DISTANCE(WHEEL_DISTANCE_DATA)

ยง

SERVO_OUTPUT_RAW(SERVO_OUTPUT_RAW_DATA)

ยง

POSITION_TARGET_LOCAL_NED(POSITION_TARGET_LOCAL_NED_DATA)

ยง

LOG_ENTRY(LOG_ENTRY_DATA)

ยง

PARAM_SET(PARAM_SET_DATA)

ยง

AP_ADC(AP_ADC_DATA)

ยง

SET_POSITION_TARGET_LOCAL_NED(SET_POSITION_TARGET_LOCAL_NED_DATA)

ยง

DEVICE_OP_WRITE_REPLY(DEVICE_OP_WRITE_REPLY_DATA)

ยง

MOUNT_STATUS(MOUNT_STATUS_DATA)

ยง

DATA16(DATA16_DATA)

ยง

SIMSTATE(SIMSTATE_DATA)

ยง

MAG_CAL_REPORT(MAG_CAL_REPORT_DATA)

ยง

SCALED_PRESSURE2(SCALED_PRESSURE2_DATA)

ยง

CUBEPILOT_FIRMWARE_UPDATE_START(CUBEPILOT_FIRMWARE_UPDATE_START_DATA)

ยง

SET_MODE(SET_MODE_DATA)

ยง

SETUP_SIGNING(SETUP_SIGNING_DATA)

ยง

PARAM_EXT_SET(PARAM_EXT_SET_DATA)

ยง

HOME_POSITION(HOME_POSITION_DATA)

ยง

RAW_RPM(RAW_RPM_DATA)

ยง

ESC_INFO(ESC_INFO_DATA)

ยง

AUTH_KEY(AUTH_KEY_DATA)

ยง

DIGICAM_CONTROL(DIGICAM_CONTROL_DATA)

ยง

GPS2_RTK(GPS2_RTK_DATA)

ยง

TERRAIN_DATA(TERRAIN_DATA_DATA)

ยง

CANFD_FRAME(CANFD_FRAME_DATA)

ยง

SET_ACTUATOR_CONTROL_TARGET(SET_ACTUATOR_CONTROL_TARGET_DATA)

ยง

TIMESYNC(TIMESYNC_DATA)

ยง

COMPASSMOT_STATUS(COMPASSMOT_STATUS_DATA)

ยง

MISSION_REQUEST_INT(MISSION_REQUEST_INT_DATA)

ยง

UAVIONIX_ADSB_OUT_DYNAMIC(UAVIONIX_ADSB_OUT_DYNAMIC_DATA)

ยง

DATA96(DATA96_DATA)

ยง

CAMERA_TRACKING_GEO_STATUS(CAMERA_TRACKING_GEO_STATUS_DATA)

ยง

LOG_DATA(LOG_DATA_DATA)

ยง

MISSION_REQUEST_PARTIAL_LIST(MISSION_REQUEST_PARTIAL_LIST_DATA)

ยง

MISSION_SET_CURRENT(MISSION_SET_CURRENT_DATA)

ยง

SCALED_PRESSURE(SCALED_PRESSURE_DATA)

ยง

PID_TUNING(PID_TUNING_DATA)

ยง

HIGH_LATENCY(HIGH_LATENCY_DATA)

ยง

PARAM_EXT_REQUEST_LIST(PARAM_EXT_REQUEST_LIST_DATA)

ยง

CAMERA_FOV_STATUS(CAMERA_FOV_STATUS_DATA)

ยง

WINCH_STATUS(WINCH_STATUS_DATA)

ยง

VIDEO_STREAM_INFORMATION(VIDEO_STREAM_INFORMATION_DATA)

ยง

HIL_OPTICAL_FLOW(HIL_OPTICAL_FLOW_DATA)

ยง

CELLULAR_STATUS(CELLULAR_STATUS_DATA)

ยง

TERRAIN_REPORT(TERRAIN_REPORT_DATA)

ยง

LOG_ERASE(LOG_ERASE_DATA)

ยง

OPEN_DRONE_ID_OPERATOR_ID(OPEN_DRONE_ID_OPERATOR_ID_DATA)

ยง

SET_MAG_OFFSETS(SET_MAG_OFFSETS_DATA)

ยง

GPS2_RAW(GPS2_RAW_DATA)

ยง

CURRENT_EVENT_SEQUENCE(CURRENT_EVENT_SEQUENCE_DATA)

ยง

OPEN_DRONE_ID_SYSTEM(OPEN_DRONE_ID_SYSTEM_DATA)

ยง

AHRS(AHRS_DATA)

ยง

ATTITUDE(ATTITUDE_DATA)

ยง

LOGGING_DATA(LOGGING_DATA_DATA)

ยง

CAMERA_TRIGGER(CAMERA_TRIGGER_DATA)

ยง

AIS_VESSEL(AIS_VESSEL_DATA)

ยง

GLOBAL_VISION_POSITION_ESTIMATE(GLOBAL_VISION_POSITION_ESTIMATE_DATA)

ยง

MISSION_ITEM_INT(MISSION_ITEM_INT_DATA)

ยง

RAW_PRESSURE(RAW_PRESSURE_DATA)

ยง

TERRAIN_REQUEST(TERRAIN_REQUEST_DATA)

ยง

MANUAL_CONTROL(MANUAL_CONTROL_DATA)

ยง

VIBRATION(VIBRATION_DATA)

ยง

RC_CHANNELS_OVERRIDE(RC_CHANNELS_OVERRIDE_DATA)

ยง

ICAROUS_HEARTBEAT(ICAROUS_HEARTBEAT_DATA)

ยง

GIMBAL_DEVICE_INFORMATION(GIMBAL_DEVICE_INFORMATION_DATA)

ยง

GIMBAL_REPORT(GIMBAL_REPORT_DATA)

ยง

CONTROL_SYSTEM_STATE(CONTROL_SYSTEM_STATE_DATA)

ยง

RESPONSE_EVENT_ERROR(RESPONSE_EVENT_ERROR_DATA)

ยง

GIMBAL_MANAGER_SET_ATTITUDE(GIMBAL_MANAGER_SET_ATTITUDE_DATA)

ยง

AOA_SSA(AOA_SSA_DATA)

ยง

SCALED_PRESSURE3(SCALED_PRESSURE3_DATA)

ยง

NAMED_VALUE_INT(NAMED_VALUE_INT_DATA)

ยง

CAMERA_TRACKING_IMAGE_STATUS(CAMERA_TRACKING_IMAGE_STATUS_DATA)

ยง

MAG_CAL_PROGRESS(MAG_CAL_PROGRESS_DATA)

ยง

LOG_REQUEST_DATA(LOG_REQUEST_DATA_DATA)

ยง

PARAM_REQUEST_LIST(PARAM_REQUEST_LIST_DATA)

ยง

GPS_RAW_INT(GPS_RAW_INT_DATA)

ยง

AUTOPILOT_VERSION_REQUEST(AUTOPILOT_VERSION_REQUEST_DATA)

ยง

TUNNEL(TUNNEL_DATA)

ยง

OSD_PARAM_SHOW_CONFIG(OSD_PARAM_SHOW_CONFIG_DATA)

ยง

TRAJECTORY_REPRESENTATION_BEZIER(TRAJECTORY_REPRESENTATION_BEZIER_DATA)

ยง

VISION_SPEED_ESTIMATE(VISION_SPEED_ESTIMATE_DATA)

ยง

OBSTACLE_DISTANCE(OBSTACLE_DISTANCE_DATA)

ยง

SCALED_IMU2(SCALED_IMU2_DATA)

ยง

MISSION_REQUEST(MISSION_REQUEST_DATA)

ยง

LED_CONTROL(LED_CONTROL_DATA)

ยง

SCALED_IMU3(SCALED_IMU3_DATA)

ยง

TRAJECTORY_REPRESENTATION_WAYPOINTS(TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA)

ยง

COLLISION(COLLISION_DATA)

ยง

MISSION_COUNT(MISSION_COUNT_DATA)

ยง

ATT_POS_MOCAP(ATT_POS_MOCAP_DATA)

ยง

DATA32(DATA32_DATA)

ยง

PARAM_EXT_VALUE(PARAM_EXT_VALUE_DATA)

ยง

AUTOPILOT_VERSION(AUTOPILOT_VERSION_DATA)

ยง

GIMBAL_MANAGER_SET_MANUAL_CONTROL(GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA)

ยง

DATA64(DATA64_DATA)

ยง

ODOMETRY(ODOMETRY_DATA)

ยง

PING(PING_DATA)

ยง

MESSAGE_INTERVAL(MESSAGE_INTERVAL_DATA)

ยง

HIL_ACTUATOR_CONTROLS(HIL_ACTUATOR_CONTROLS_DATA)

ยง

EKF_STATUS_REPORT(EKF_STATUS_REPORT_DATA)

ยง

AHRS3(AHRS3_DATA)

ยง

HIL_STATE_QUATERNION(HIL_STATE_QUATERNION_DATA)

ยง

GIMBAL_DEVICE_ATTITUDE_STATUS(GIMBAL_DEVICE_ATTITUDE_STATUS_DATA)

ยง

SET_GPS_GLOBAL_ORIGIN(SET_GPS_GLOBAL_ORIGIN_DATA)

ยง

POSITION_TARGET_GLOBAL_INT(POSITION_TARGET_GLOBAL_INT_DATA)

ยง

ATTITUDE_TARGET(ATTITUDE_TARGET_DATA)

ยง

RADIO(RADIO_DATA)

ยง

PARAM_VALUE(PARAM_VALUE_DATA)

ยง

OPEN_DRONE_ID_SYSTEM_UPDATE(OPEN_DRONE_ID_SYSTEM_UPDATE_DATA)

ยง

ADSB_VEHICLE(ADSB_VEHICLE_DATA)

ยง

DEVICE_OP_READ(DEVICE_OP_READ_DATA)

ยง

EVENT(EVENT_DATA)

ยง

COMMAND_LONG(COMMAND_LONG_DATA)

ยง

RADIO_STATUS(RADIO_STATUS_DATA)

ยง

MEMORY_VECT(MEMORY_VECT_DATA)

ยง

REQUEST_DATA_STREAM(REQUEST_DATA_STREAM_DATA)

ยง

WIFI_CONFIG_AP(WIFI_CONFIG_AP_DATA)

ยง

ESC_TELEMETRY_9_TO_12(ESC_TELEMETRY_9_TO_12_DATA)

ยง

HIL_RC_INPUTS_RAW(HIL_RC_INPUTS_RAW_DATA)

ยง

RAW_IMU(RAW_IMU_DATA)

ยง

EFI_STATUS(EFI_STATUS_DATA)

ยง

MISSION_REQUEST_LIST(MISSION_REQUEST_LIST_DATA)

ยง

OPEN_DRONE_ID_AUTHENTICATION(OPEN_DRONE_ID_AUTHENTICATION_DATA)

ยง

LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET(LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA)

ยง

CAMERA_INFORMATION(CAMERA_INFORMATION_DATA)

ยง

ATTITUDE_QUATERNION(ATTITUDE_QUATERNION_DATA)

ยง

SIM_STATE(SIM_STATE_DATA)

ยง

MOUNT_CONTROL(MOUNT_CONTROL_DATA)

ยง

COMMAND_CANCEL(COMMAND_CANCEL_DATA)

ยง

CAMERA_STATUS(CAMERA_STATUS_DATA)

ยง

DEEPSTALL(DEEPSTALL_DATA)

ยง

COMPONENT_INFORMATION(COMPONENT_INFORMATION_DATA)

ยง

GOPRO_GET_REQUEST(GOPRO_GET_REQUEST_DATA)

ยง

RPM(RPM_DATA)

ยง

CAMERA_IMAGE_CAPTURED(CAMERA_IMAGE_CAPTURED_DATA)

ยง

GLOBAL_POSITION_INT_COV(GLOBAL_POSITION_INT_COV_DATA)

ยง

GPS_INPUT(GPS_INPUT_DATA)

ยง

GIMBAL_CONTROL(GIMBAL_CONTROL_DATA)

ยง

MOUNT_ORIENTATION(MOUNT_ORIENTATION_DATA)

ยง

DEVICE_OP_READ_REPLY(DEVICE_OP_READ_REPLY_DATA)

ยง

RC_CHANNELS_RAW(RC_CHANNELS_RAW_DATA)

ยง

DATA_STREAM(DATA_STREAM_DATA)

ยง

MISSION_CLEAR_ALL(MISSION_CLEAR_ALL_DATA)

ยง

HIL_GPS(HIL_GPS_DATA)

ยง

PARAM_MAP_RC(PARAM_MAP_RC_DATA)

ยง

GIMBAL_DEVICE_SET_ATTITUDE(GIMBAL_DEVICE_SET_ATTITUDE_DATA)

ยง

CAMERA_SETTINGS(CAMERA_SETTINGS_DATA)

ยง

AUTOPILOT_STATE_FOR_GIMBAL_DEVICE(AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA)

ยง

ONBOARD_COMPUTER_STATUS(ONBOARD_COMPUTER_STATUS_DATA)

ยง

HWSTATUS(HWSTATUS_DATA)

ยง

RALLY_FETCH_POINT(RALLY_FETCH_POINT_DATA)

Trait Implementationsยง

sourceยง

impl Clone for MavMessage

sourceยง

fn clone(&self) -> MavMessage

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavMessage

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl<'de> Deserialize<'de> for MavMessage

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + MCU_STATUS(MCU_STATUS_DATA), + LOG_REQUEST_DATA(LOG_REQUEST_DATA_DATA), + COMMAND_INT(COMMAND_INT_DATA), + ALTITUDE(ALTITUDE_DATA), + FOLLOW_TARGET(FOLLOW_TARGET_DATA), + GPS_STATUS(GPS_STATUS_DATA), + OSD_PARAM_CONFIG(OSD_PARAM_CONFIG_DATA), +

}

Variantsยง

ยง

GIMBAL_CONTROL(GIMBAL_CONTROL_DATA)

ยง

FENCE_FETCH_POINT(FENCE_FETCH_POINT_DATA)

ยง

COMPONENT_METADATA(COMPONENT_METADATA_DATA)

ยง

PARAM_EXT_REQUEST_READ(PARAM_EXT_REQUEST_READ_DATA)

ยง

WINCH_STATUS(WINCH_STATUS_DATA)

ยง

PARAM_REQUEST_READ(PARAM_REQUEST_READ_DATA)

ยง

GIMBAL_MANAGER_SET_ATTITUDE(GIMBAL_MANAGER_SET_ATTITUDE_DATA)

ยง

AUTOPILOT_VERSION_REQUEST(AUTOPILOT_VERSION_REQUEST_DATA)

ยง

TRAJECTORY_REPRESENTATION_WAYPOINTS(TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA)

ยง

POSITION_TARGET_LOCAL_NED(POSITION_TARGET_LOCAL_NED_DATA)

ยง

MANUAL_SETPOINT(MANUAL_SETPOINT_DATA)

ยง

OPEN_DRONE_ID_ARM_STATUS(OPEN_DRONE_ID_ARM_STATUS_DATA)

ยง

AUTOPILOT_VERSION(AUTOPILOT_VERSION_DATA)

ยง

DATA16(DATA16_DATA)

ยง

MISSION_CURRENT(MISSION_CURRENT_DATA)

ยง

COMMAND_LONG(COMMAND_LONG_DATA)

ยง

ATTITUDE_TARGET(ATTITUDE_TARGET_DATA)

ยง

MAG_CAL_PROGRESS(MAG_CAL_PROGRESS_DATA)

ยง

MOUNT_CONFIGURE(MOUNT_CONFIGURE_DATA)

ยง

HIL_SENSOR(HIL_SENSOR_DATA)

ยง

REMOTE_LOG_DATA_BLOCK(REMOTE_LOG_DATA_BLOCK_DATA)

ยง

GIMBAL_TORQUE_CMD_REPORT(GIMBAL_TORQUE_CMD_REPORT_DATA)

ยง

CAMERA_FOV_STATUS(CAMERA_FOV_STATUS_DATA)

ยง

AUTOPILOT_STATE_FOR_GIMBAL_DEVICE(AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA)

ยง

TERRAIN_REQUEST(TERRAIN_REQUEST_DATA)

ยง

GPS_INJECT_DATA(GPS_INJECT_DATA_DATA)

ยง

LOCAL_POSITION_NED(LOCAL_POSITION_NED_DATA)

ยง

UAVCAN_NODE_STATUS(UAVCAN_NODE_STATUS_DATA)

ยง

MISSION_REQUEST(MISSION_REQUEST_DATA)

ยง

REQUEST_DATA_STREAM(REQUEST_DATA_STREAM_DATA)

ยง

HOME_POSITION(HOME_POSITION_DATA)

ยง

GPS2_RTK(GPS2_RTK_DATA)

ยง

WHEEL_DISTANCE(WHEEL_DISTANCE_DATA)

ยง

LOCAL_POSITION_NED_COV(LOCAL_POSITION_NED_COV_DATA)

ยง

OPEN_DRONE_ID_OPERATOR_ID(OPEN_DRONE_ID_OPERATOR_ID_DATA)

ยง

ATT_POS_MOCAP(ATT_POS_MOCAP_DATA)

ยง

DATA32(DATA32_DATA)

ยง

LED_CONTROL(LED_CONTROL_DATA)

ยง

PROTOCOL_VERSION(PROTOCOL_VERSION_DATA)

ยง

TERRAIN_CHECK(TERRAIN_CHECK_DATA)

ยง

OPEN_DRONE_ID_SYSTEM_UPDATE(OPEN_DRONE_ID_SYSTEM_UPDATE_DATA)

ยง

UAVIONIX_ADSB_OUT_CFG(UAVIONIX_ADSB_OUT_CFG_DATA)

ยง

DATA96(DATA96_DATA)

ยง

UTM_GLOBAL_POSITION(UTM_GLOBAL_POSITION_DATA)

ยง

GOPRO_SET_REQUEST(GOPRO_SET_REQUEST_DATA)

ยง

ESC_TELEMETRY_5_TO_8(ESC_TELEMETRY_5_TO_8_DATA)

ยง

WIND_COV(WIND_COV_DATA)

ยง

MISSION_REQUEST_LIST(MISSION_REQUEST_LIST_DATA)

ยง

PLAY_TUNE(PLAY_TUNE_DATA)

ยง

VISION_POSITION_ESTIMATE(VISION_POSITION_ESTIMATE_DATA)

ยง

LOG_REQUEST_END(LOG_REQUEST_END_DATA)

ยง

OPEN_DRONE_ID_SYSTEM(OPEN_DRONE_ID_SYSTEM_DATA)

ยง

LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET(LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA)

ยง

FENCE_POINT(FENCE_POINT_DATA)

ยง

FILE_TRANSFER_PROTOCOL(FILE_TRANSFER_PROTOCOL_DATA)

ยง

HIL_CONTROLS(HIL_CONTROLS_DATA)

ยง

TIME_ESTIMATE_TO_TARGET(TIME_ESTIMATE_TO_TARGET_DATA)

ยง

PING(PING_DATA)

ยง

CUBEPILOT_RAW_RC(CUBEPILOT_RAW_RC_DATA)

ยง

PARAM_SET(PARAM_SET_DATA)

ยง

SYSTEM_TIME(SYSTEM_TIME_DATA)

ยง

MOUNT_CONTROL(MOUNT_CONTROL_DATA)

ยง

SIMSTATE(SIMSTATE_DATA)

ยง

SCALED_PRESSURE2(SCALED_PRESSURE2_DATA)

ยง

AHRS2(AHRS2_DATA)

ยง

PLAY_TUNE_V2(PLAY_TUNE_V2_DATA)

ยง

GIMBAL_DEVICE_SET_ATTITUDE(GIMBAL_DEVICE_SET_ATTITUDE_DATA)

ยง

SIM_STATE(SIM_STATE_DATA)

ยง

HIL_STATE(HIL_STATE_DATA)

ยง

GOPRO_GET_REQUEST(GOPRO_GET_REQUEST_DATA)

ยง

RANGEFINDER(RANGEFINDER_DATA)

ยง

OSD_PARAM_CONFIG_REPLY(OSD_PARAM_CONFIG_REPLY_DATA)

ยง

BATTERY2(BATTERY2_DATA)

ยง

PARAM_EXT_VALUE(PARAM_EXT_VALUE_DATA)

ยง

GPS_RTK(GPS_RTK_DATA)

ยง

MESSAGE_INTERVAL(MESSAGE_INTERVAL_DATA)

ยง

UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT(UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA)

ยง

SCALED_IMU(SCALED_IMU_DATA)

ยง

HIGH_LATENCY(HIGH_LATENCY_DATA)

ยง

CAMERA_IMAGE_CAPTURED(CAMERA_IMAGE_CAPTURED_DATA)

ยง

LIMITS_STATUS(LIMITS_STATUS_DATA)

ยง

AUTH_KEY(AUTH_KEY_DATA)

ยง

DATA_TRANSMISSION_HANDSHAKE(DATA_TRANSMISSION_HANDSHAKE_DATA)

ยง

CHANGE_OPERATOR_CONTROL(CHANGE_OPERATOR_CONTROL_DATA)

ยง

PID_TUNING(PID_TUNING_DATA)

ยง

ADAP_TUNING(ADAP_TUNING_DATA)

ยง

ESC_INFO(ESC_INFO_DATA)

ยง

TUNNEL(TUNNEL_DATA)

ยง

OPTICAL_FLOW_RAD(OPTICAL_FLOW_RAD_DATA)

ยง

TERRAIN_DATA(TERRAIN_DATA_DATA)

ยง

AHRS(AHRS_DATA)

ยง

SETUP_SIGNING(SETUP_SIGNING_DATA)

ยง

MISSION_WRITE_PARTIAL_LIST(MISSION_WRITE_PARTIAL_LIST_DATA)

ยง

GPS_INPUT(GPS_INPUT_DATA)

ยง

VFR_HUD(VFR_HUD_DATA)

ยง

POWER_STATUS(POWER_STATUS_DATA)

ยง

MISSION_SET_CURRENT(MISSION_SET_CURRENT_DATA)

ยง

RALLY_POINT(RALLY_POINT_DATA)

ยง

GOPRO_SET_RESPONSE(GOPRO_SET_RESPONSE_DATA)

ยง

DEVICE_OP_WRITE_REPLY(DEVICE_OP_WRITE_REPLY_DATA)

ยง

ESC_TELEMETRY_9_TO_12(ESC_TELEMETRY_9_TO_12_DATA)

ยง

ACTUATOR_CONTROL_TARGET(ACTUATOR_CONTROL_TARGET_DATA)

ยง

RALLY_FETCH_POINT(RALLY_FETCH_POINT_DATA)

ยง

CUBEPILOT_FIRMWARE_UPDATE_RESP(CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA)

ยง

V2_EXTENSION(V2_EXTENSION_DATA)

ยง

GLOBAL_POSITION_INT(GLOBAL_POSITION_INT_DATA)

ยง

TRAJECTORY_REPRESENTATION_BEZIER(TRAJECTORY_REPRESENTATION_BEZIER_DATA)

ยง

RAW_RPM(RAW_RPM_DATA)

ยง

SET_HOME_POSITION(SET_HOME_POSITION_DATA)

ยง

RESOURCE_REQUEST(RESOURCE_REQUEST_DATA)

ยง

ESC_STATUS(ESC_STATUS_DATA)

ยง

WIND(WIND_DATA)

ยง

EXTENDED_SYS_STATE(EXTENDED_SYS_STATE_DATA)

ยง

COMMAND_ACK(COMMAND_ACK_DATA)

ยง

PARAM_VALUE(PARAM_VALUE_DATA)

ยง

HEARTBEAT(HEARTBEAT_DATA)

ยง

GIMBAL_DEVICE_INFORMATION(GIMBAL_DEVICE_INFORMATION_DATA)

ยง

DEBUG(DEBUG_DATA)

ยง

MOUNT_ORIENTATION(MOUNT_ORIENTATION_DATA)

ยง

RC_CHANNELS(RC_CHANNELS_DATA)

ยง

VICON_POSITION_ESTIMATE(VICON_POSITION_ESTIMATE_DATA)

ยง

CAMERA_CAPTURE_STATUS(CAMERA_CAPTURE_STATUS_DATA)

ยง

CONTROL_SYSTEM_STATE(CONTROL_SYSTEM_STATE_DATA)

ยง

CAMERA_SETTINGS(CAMERA_SETTINGS_DATA)

ยง

SERIAL_CONTROL(SERIAL_CONTROL_DATA)

ยง

CAN_FILTER_MODIFY(CAN_FILTER_MODIFY_DATA)

ยง

PARAM_EXT_ACK(PARAM_EXT_ACK_DATA)

ยง

CAMERA_TRACKING_IMAGE_STATUS(CAMERA_TRACKING_IMAGE_STATUS_DATA)

ยง

COMMAND_CANCEL(COMMAND_CANCEL_DATA)

ยง

SET_MAG_OFFSETS(SET_MAG_OFFSETS_DATA)

ยง

ADSB_VEHICLE(ADSB_VEHICLE_DATA)

ยง

DIGICAM_CONTROL(DIGICAM_CONTROL_DATA)

ยง

GPS2_RAW(GPS2_RAW_DATA)

ยง

OPEN_DRONE_ID_LOCATION(OPEN_DRONE_ID_LOCATION_DATA)

ยง

REQUEST_EVENT(REQUEST_EVENT_DATA)

ยง

CAMERA_STATUS(CAMERA_STATUS_DATA)

ยง

HYGROMETER_SENSOR(HYGROMETER_SENSOR_DATA)

ยง

STORAGE_INFORMATION(STORAGE_INFORMATION_DATA)

ยง

MISSION_ACK(MISSION_ACK_DATA)

ยง

LOGGING_ACK(LOGGING_ACK_DATA)

ยง

MEMINFO(MEMINFO_DATA)

ยง

DEVICE_OP_READ(DEVICE_OP_READ_DATA)

ยง

VISION_POSITION_DELTA(VISION_POSITION_DELTA_DATA)

ยง

ESTIMATOR_STATUS(ESTIMATOR_STATUS_DATA)

ยง

OSD_PARAM_SHOW_CONFIG_REPLY(OSD_PARAM_SHOW_CONFIG_REPLY_DATA)

ยง

MEMORY_VECT(MEMORY_VECT_DATA)

ยง

EKF_STATUS_REPORT(EKF_STATUS_REPORT_DATA)

ยง

PARAM_EXT_SET(PARAM_EXT_SET_DATA)

ยง

HWSTATUS(HWSTATUS_DATA)

ยง

ICAROUS_KINEMATIC_BANDS(ICAROUS_KINEMATIC_BANDS_DATA)

ยง

OBSTACLE_DISTANCE(OBSTACLE_DISTANCE_DATA)

ยง

AIS_VESSEL(AIS_VESSEL_DATA)

ยง

GOPRO_GET_RESPONSE(GOPRO_GET_RESPONSE_DATA)

ยง

CAN_FRAME(CAN_FRAME_DATA)

ยง

GLOBAL_VISION_POSITION_ESTIMATE(GLOBAL_VISION_POSITION_ESTIMATE_DATA)

ยง

OPTICAL_FLOW(OPTICAL_FLOW_DATA)

ยง

SERVO_OUTPUT_RAW(SERVO_OUTPUT_RAW_DATA)

ยง

LOG_ERASE(LOG_ERASE_DATA)

ยง

EVENT(EVENT_DATA)

ยง

DEBUG_VECT(DEBUG_VECT_DATA)

ยง

RAW_IMU(RAW_IMU_DATA)

ยง

AHRS3(AHRS3_DATA)

ยง

HIL_ACTUATOR_CONTROLS(HIL_ACTUATOR_CONTROLS_DATA)

ยง

ENCAPSULATED_DATA(ENCAPSULATED_DATA_DATA)

ยง

UAVCAN_NODE_INFO(UAVCAN_NODE_INFO_DATA)

ยง

HIL_STATE_QUATERNION(HIL_STATE_QUATERNION_DATA)

ยง

LOGGING_DATA_ACKED(LOGGING_DATA_ACKED_DATA)

ยง

FLIGHT_INFORMATION(FLIGHT_INFORMATION_DATA)

ยง

DEVICE_OP_READ_REPLY(DEVICE_OP_READ_REPLY_DATA)

ยง

GPS_RAW_INT(GPS_RAW_INT_DATA)

ยง

GIMBAL_DEVICE_ATTITUDE_STATUS(GIMBAL_DEVICE_ATTITUDE_STATUS_DATA)

ยง

RPM(RPM_DATA)

ยง

AOA_SSA(AOA_SSA_DATA)

ยง

OPEN_DRONE_ID_MESSAGE_PACK(OPEN_DRONE_ID_MESSAGE_PACK_DATA)

ยง

WATER_DEPTH(WATER_DEPTH_DATA)

ยง

CAMERA_TRACKING_GEO_STATUS(CAMERA_TRACKING_GEO_STATUS_DATA)

ยง

CAMERA_INFORMATION(CAMERA_INFORMATION_DATA)

ยง

BUTTON_CHANGE(BUTTON_CHANGE_DATA)

ยง

RAW_PRESSURE(RAW_PRESSURE_DATA)

ยง

HIGHRES_IMU(HIGHRES_IMU_DATA)

ยง

PARAM_MAP_RC(PARAM_MAP_RC_DATA)

ยง

NAMED_VALUE_INT(NAMED_VALUE_INT_DATA)

ยง

TERRAIN_REPORT(TERRAIN_REPORT_DATA)

ยง

RC_CHANNELS_SCALED(RC_CHANNELS_SCALED_DATA)

ยง

ORBIT_EXECUTION_STATUS(ORBIT_EXECUTION_STATUS_DATA)

ยง

SCALED_IMU3(SCALED_IMU3_DATA)

ยง

SENSOR_OFFSETS(SENSOR_OFFSETS_DATA)

ยง

RC_CHANNELS_OVERRIDE(RC_CHANNELS_OVERRIDE_DATA)

ยง

RADIO(RADIO_DATA)

ยง

POSITION_TARGET_GLOBAL_INT(POSITION_TARGET_GLOBAL_INT_DATA)

ยง

MANUAL_CONTROL(MANUAL_CONTROL_DATA)

ยง

CHANGE_OPERATOR_CONTROL_ACK(CHANGE_OPERATOR_CONTROL_ACK_DATA)

ยง

SCALED_PRESSURE3(SCALED_PRESSURE3_DATA)

ยง

PARAM_EXT_REQUEST_LIST(PARAM_EXT_REQUEST_LIST_DATA)

ยง

MISSION_CLEAR_ALL(MISSION_CLEAR_ALL_DATA)

ยง

GIMBAL_MANAGER_INFORMATION(GIMBAL_MANAGER_INFORMATION_DATA)

ยง

CELLULAR_CONFIG(CELLULAR_CONFIG_DATA)

ยง

LOG_ENTRY(LOG_ENTRY_DATA)

ยง

VIBRATION(VIBRATION_DATA)

ยง

SYS_STATUS(SYS_STATUS_DATA)

ยง

GLOBAL_POSITION_INT_COV(GLOBAL_POSITION_INT_COV_DATA)

ยง

ATTITUDE_QUATERNION_COV(ATTITUDE_QUATERNION_COV_DATA)

ยง

ATTITUDE_QUATERNION(ATTITUDE_QUATERNION_DATA)

ยง

FENCE_STATUS(FENCE_STATUS_DATA)

ยง

ICAROUS_HEARTBEAT(ICAROUS_HEARTBEAT_DATA)

ยง

HIL_GPS(HIL_GPS_DATA)

ยง

TIMESYNC(TIMESYNC_DATA)

ยง

GPS_RTCM_DATA(GPS_RTCM_DATA_DATA)

ยง

GIMBAL_MANAGER_SET_MANUAL_CONTROL(GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA)

ยง

SMART_BATTERY_INFO(SMART_BATTERY_INFO_DATA)

ยง

DATA64(DATA64_DATA)

ยง

DISTANCE_SENSOR(DISTANCE_SENSOR_DATA)

ยง

EFI_STATUS(EFI_STATUS_DATA)

ยง

SET_MODE(SET_MODE_DATA)

ยง

MISSION_ITEM(MISSION_ITEM_DATA)

ยง

NAMED_VALUE_FLOAT(NAMED_VALUE_FLOAT_DATA)

ยง

RESPONSE_EVENT_ERROR(RESPONSE_EVENT_ERROR_DATA)

ยง

SCALED_IMU2(SCALED_IMU2_DATA)

ยง

ATTITUDE(ATTITUDE_DATA)

ยง

LANDING_TARGET(LANDING_TARGET_DATA)

ยง

OPEN_DRONE_ID_AUTHENTICATION(OPEN_DRONE_ID_AUTHENTICATION_DATA)

ยง

NAV_CONTROLLER_OUTPUT(NAV_CONTROLLER_OUTPUT_DATA)

ยง

LOG_REQUEST_LIST(LOG_REQUEST_LIST_DATA)

ยง

GPS_GLOBAL_ORIGIN(GPS_GLOBAL_ORIGIN_DATA)

ยง

SUPPORTED_TUNES(SUPPORTED_TUNES_DATA)

ยง

MOUNT_STATUS(MOUNT_STATUS_DATA)

ยง

CANFD_FRAME(CANFD_FRAME_DATA)

ยง

WIFI_CONFIG_AP(WIFI_CONFIG_AP_DATA)

ยง

MISSION_ITEM_REACHED(MISSION_ITEM_REACHED_DATA)

ยง

COMPASSMOT_STATUS(COMPASSMOT_STATUS_DATA)

ยง

UAVIONIX_ADSB_OUT_DYNAMIC(UAVIONIX_ADSB_OUT_DYNAMIC_DATA)

ยง

AP_ADC(AP_ADC_DATA)

ยง

OSD_PARAM_SHOW_CONFIG(OSD_PARAM_SHOW_CONFIG_DATA)

ยง

CUBEPILOT_FIRMWARE_UPDATE_START(CUBEPILOT_FIRMWARE_UPDATE_START_DATA)

ยง

RADIO_STATUS(RADIO_STATUS_DATA)

ยง

LOG_DATA(LOG_DATA_DATA)

ยง

DEBUG_FLOAT_ARRAY(DEBUG_FLOAT_ARRAY_DATA)

ยง

ODOMETRY(ODOMETRY_DATA)

ยง

HIL_OPTICAL_FLOW(HIL_OPTICAL_FLOW_DATA)

ยง

CURRENT_EVENT_SEQUENCE(CURRENT_EVENT_SEQUENCE_DATA)

ยง

LOGGING_DATA(LOGGING_DATA_DATA)

ยง

SET_ACTUATOR_CONTROL_TARGET(SET_ACTUATOR_CONTROL_TARGET_DATA)

ยง

SET_POSITION_TARGET_GLOBAL_INT(SET_POSITION_TARGET_GLOBAL_INT_DATA)

ยง

SCALED_PRESSURE(SCALED_PRESSURE_DATA)

ยง

HIGH_LATENCY2(HIGH_LATENCY2_DATA)

ยง

GENERATOR_STATUS(GENERATOR_STATUS_DATA)

ยง

MISSION_REQUEST_INT(MISSION_REQUEST_INT_DATA)

ยง

OPEN_DRONE_ID_SELF_ID(OPEN_DRONE_ID_SELF_ID_DATA)

ยง

CAMERA_TRIGGER(CAMERA_TRIGGER_DATA)

ยง

SET_POSITION_TARGET_LOCAL_NED(SET_POSITION_TARGET_LOCAL_NED_DATA)

ยง

DIGICAM_CONFIGURE(DIGICAM_CONFIGURE_DATA)

ยง

DEVICE_OP_WRITE(DEVICE_OP_WRITE_DATA)

ยง

COLLISION(COLLISION_DATA)

ยง

MISSION_COUNT(MISSION_COUNT_DATA)

ยง

BATTERY_STATUS(BATTERY_STATUS_DATA)

ยง

DEEPSTALL(DEEPSTALL_DATA)

ยง

MISSION_REQUEST_PARTIAL_LIST(MISSION_REQUEST_PARTIAL_LIST_DATA)

ยง

GIMBAL_MANAGER_STATUS(GIMBAL_MANAGER_STATUS_DATA)

ยง

STATUSTEXT(STATUSTEXT_DATA)

ยง

CAMERA_FEEDBACK(CAMERA_FEEDBACK_DATA)

ยง

PARAM_REQUEST_LIST(PARAM_REQUEST_LIST_DATA)

ยง

HIL_RC_INPUTS_RAW(HIL_RC_INPUTS_RAW_DATA)

ยง

OBSTACLE_DISTANCE_3D(OBSTACLE_DISTANCE_3D_DATA)

ยง

MISSION_ITEM_INT(MISSION_ITEM_INT_DATA)

ยง

GIMBAL_MANAGER_SET_PITCHYAW(GIMBAL_MANAGER_SET_PITCHYAW_DATA)

ยง

REMOTE_LOG_BLOCK_STATUS(REMOTE_LOG_BLOCK_STATUS_DATA)

ยง

MAG_CAL_REPORT(MAG_CAL_REPORT_DATA)

ยง

CELLULAR_STATUS(CELLULAR_STATUS_DATA)

ยง

DATA_STREAM(DATA_STREAM_DATA)

ยง

SAFETY_ALLOWED_AREA(SAFETY_ALLOWED_AREA_DATA)

ยง

OPEN_DRONE_ID_BASIC_ID(OPEN_DRONE_ID_BASIC_ID_DATA)

ยง

SET_GPS_GLOBAL_ORIGIN(SET_GPS_GLOBAL_ORIGIN_DATA)

ยง

VIDEO_STREAM_STATUS(VIDEO_STREAM_STATUS_DATA)

ยง

COMPONENT_INFORMATION(COMPONENT_INFORMATION_DATA)

ยง

VIDEO_STREAM_INFORMATION(VIDEO_STREAM_INFORMATION_DATA)

ยง

SET_ATTITUDE_TARGET(SET_ATTITUDE_TARGET_DATA)

ยง

GOPRO_HEARTBEAT(GOPRO_HEARTBEAT_DATA)

ยง

RC_CHANNELS_RAW(RC_CHANNELS_RAW_DATA)

ยง

ACTUATOR_OUTPUT_STATUS(ACTUATOR_OUTPUT_STATUS_DATA)

ยง

SAFETY_SET_ALLOWED_AREA(SAFETY_SET_ALLOWED_AREA_DATA)

ยง

AIRSPEED_AUTOCAL(AIRSPEED_AUTOCAL_DATA)

ยง

ESC_TELEMETRY_1_TO_4(ESC_TELEMETRY_1_TO_4_DATA)

ยง

GIMBAL_REPORT(GIMBAL_REPORT_DATA)

ยง

VISION_SPEED_ESTIMATE(VISION_SPEED_ESTIMATE_DATA)

ยง

ONBOARD_COMPUTER_STATUS(ONBOARD_COMPUTER_STATUS_DATA)

ยง

MCU_STATUS(MCU_STATUS_DATA)

ยง

LOG_REQUEST_DATA(LOG_REQUEST_DATA_DATA)

ยง

COMMAND_INT(COMMAND_INT_DATA)

ยง

ALTITUDE(ALTITUDE_DATA)

ยง

FOLLOW_TARGET(FOLLOW_TARGET_DATA)

ยง

GPS_STATUS(GPS_STATUS_DATA)

ยง

OSD_PARAM_CONFIG(OSD_PARAM_CONFIG_DATA)

Trait Implementationsยง

sourceยง

impl Clone for MavMessage

sourceยง

fn clone(&self) -> MavMessage

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavMessage

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl<'de> Deserialize<'de> for MavMessage

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Message for MavMessage

sourceยง

fn parse( version: MavlinkVersion, id: u32, diff --git a/mavlink/ardupilotmega/struct.AdsbFlags.html b/mavlink/ardupilotmega/struct.AdsbFlags.html index ff1a4e32d6..9d34d5a7e8 100644 --- a/mavlink/ardupilotmega/struct.AdsbFlags.html +++ b/mavlink/ardupilotmega/struct.AdsbFlags.html @@ -56,17 +56,17 @@

ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl AdsbFlags

source

pub const DEFAULT: Self = Self::ADSB_FLAGS_VALID_COORDS

Trait Implementationsยง

sourceยง

impl Binary for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AdsbFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = AdsbFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AdsbFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl AdsbFlags

source

pub const DEFAULT: Self = Self::ADSB_FLAGS_VALID_COORDS

Trait Implementationsยง

sourceยง

impl Binary for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AdsbFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = AdsbFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AdsbFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for AdsbFlags

sourceยง

fn bitor(self, other: AdsbFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = AdsbFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AdsbFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = AdsbFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AdsbFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for AdsbFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

ยง

type Output = AdsbFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AdsbFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for AdsbFlags

sourceยง

fn clone(&self) -> AdsbFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for AdsbFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for AdsbFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<AdsbFlags> for AdsbFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<AdsbFlags> for AdsbFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for AdsbFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AdsbFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = AdsbFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AdsbFlags

sourceยง

fn cmp(&self, other: &AdsbFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AdsbFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = AdsbFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AdsbFlags

sourceยง

fn cmp(&self, other: &AdsbFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for AdsbFlags

sourceยง

fn eq(&self, other: &AdsbFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -76,7 +76,7 @@
ยงSafety
operator. Read more
sourceยง

impl Serialize for AdsbFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for AdsbFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = AdsbFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for AdsbFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AdsbFlags

sourceยง

impl Eq for AdsbFlags

sourceยง

impl StructuralPartialEq for AdsbFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AdsbFlags

sourceยง

impl Eq for AdsbFlags

sourceยง

impl StructuralPartialEq for AdsbFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.AisFlags.html b/mavlink/ardupilotmega/struct.AisFlags.html index 95d81937c1..392b31f645 100644 --- a/mavlink/ardupilotmega/struct.AisFlags.html +++ b/mavlink/ardupilotmega/struct.AisFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl AisFlags

source

pub const DEFAULT: Self = Self::AIS_FLAGS_POSITION_ACCURACY

Trait Implementationsยง

sourceยง

impl Binary for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AisFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = AisFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AisFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl AisFlags

source

pub const DEFAULT: Self = Self::AIS_FLAGS_POSITION_ACCURACY

Trait Implementationsยง

sourceยง

impl Binary for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AisFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = AisFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AisFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for AisFlags

sourceยง

fn bitor(self, other: AisFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = AisFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AisFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = AisFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AisFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for AisFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = AisFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AisFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for AisFlags

sourceยง

fn clone(&self) -> AisFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for AisFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for AisFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = AisFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AisFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for AisFlags

sourceยง

fn clone(&self) -> AisFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for AisFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for AisFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<AisFlags> for AisFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<AisFlags> for AisFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for AisFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AisFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = AisFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AisFlags

sourceยง

fn cmp(&self, other: &AisFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AisFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = AisFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AisFlags

sourceยง

fn cmp(&self, other: &AisFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for AisFlags

sourceยง

fn eq(&self, other: &AisFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for AisFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for AisFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = AisFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for AisFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AisFlags

sourceยง

impl Eq for AisFlags

sourceยง

impl StructuralPartialEq for AisFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = AisFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for AisFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AisFlags

sourceยง

impl Eq for AisFlags

sourceยง

impl StructuralPartialEq for AisFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.AttitudeTargetTypemask.html b/mavlink/ardupilotmega/struct.AttitudeTargetTypemask.html index d962d6b240..617961cd7b 100644 --- a/mavlink/ardupilotmega/struct.AttitudeTargetTypemask.html +++ b/mavlink/ardupilotmega/struct.AttitudeTargetTypemask.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl AttitudeTargetTypemask

source

pub const DEFAULT: Self = Self::ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE

Trait Implementationsยง

sourceยง

impl Binary for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AttitudeTargetTypemask

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AttitudeTargetTypemask

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl AttitudeTargetTypemask

source

pub const DEFAULT: Self = Self::ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE

Trait Implementationsยง

sourceยง

impl Binary for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AttitudeTargetTypemask

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AttitudeTargetTypemask

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for AttitudeTargetTypemask

sourceยง

fn bitor(self, other: AttitudeTargetTypemask) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AttitudeTargetTypemask

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AttitudeTargetTypemask

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for AttitudeTargetTypemask

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AttitudeTargetTypemask

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AttitudeTargetTypemask

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for AttitudeTargetTypemask

sourceยง

fn clone(&self) -> AttitudeTargetTypemask

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for AttitudeTargetTypemask

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for AttitudeTargetTypemask

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<AttitudeTargetTypemask> for AttitudeTargetTypemask

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<AttitudeTargetTypemask> for AttitudeTargetTypemask

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for AttitudeTargetTypemask

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AttitudeTargetTypemask

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the ! operator.
sourceยง

impl Octal for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AttitudeTargetTypemask

sourceยง

fn cmp(&self, other: &AttitudeTargetTypemask) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the ! operator.
sourceยง

impl Octal for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AttitudeTargetTypemask

sourceยง

fn cmp(&self, other: &AttitudeTargetTypemask) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for AttitudeTargetTypemask

sourceยง

fn eq(&self, other: &AttitudeTargetTypemask) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for AttitudeTargetTypemask

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for AttitudeTargetTypemask

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the - operator.
sourceยง

impl SubAssign for AttitudeTargetTypemask

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AttitudeTargetTypemask

sourceยง

impl Eq for AttitudeTargetTypemask

sourceยง

impl StructuralPartialEq for AttitudeTargetTypemask

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the - operator.
sourceยง

impl SubAssign for AttitudeTargetTypemask

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AttitudeTargetTypemask

sourceยง

impl Eq for AttitudeTargetTypemask

sourceยง

impl StructuralPartialEq for AttitudeTargetTypemask

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.CameraCapFlags.html b/mavlink/ardupilotmega/struct.CameraCapFlags.html index b0b68d847b..b13b5c9677 100644 --- a/mavlink/ardupilotmega/struct.CameraCapFlags.html +++ b/mavlink/ardupilotmega/struct.CameraCapFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl CameraCapFlags

source

pub const DEFAULT: Self = Self::CAMERA_CAP_FLAGS_CAPTURE_VIDEO

Trait Implementationsยง

sourceยง

impl Binary for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for CameraCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl CameraCapFlags

source

pub const DEFAULT: Self = Self::CAMERA_CAP_FLAGS_CAPTURE_VIDEO

Trait Implementationsยง

sourceยง

impl Binary for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for CameraCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = CameraCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for CameraCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for CameraCapFlags

sourceยง

fn bitor(self, other: CameraCapFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = CameraCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for CameraCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = CameraCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for CameraCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for CameraCapFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = CameraCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for CameraCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for CameraCapFlags

sourceยง

fn clone(&self) -> CameraCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for CameraCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for CameraCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = CameraCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for CameraCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for CameraCapFlags

sourceยง

fn clone(&self) -> CameraCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for CameraCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for CameraCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<CameraCapFlags> for CameraCapFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<CameraCapFlags> for CameraCapFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for CameraCapFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for CameraCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = CameraCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for CameraCapFlags

sourceยง

fn cmp(&self, other: &CameraCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for CameraCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = CameraCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for CameraCapFlags

sourceยง

fn cmp(&self, other: &CameraCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for CameraCapFlags

sourceยง

fn eq(&self, other: &CameraCapFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for CameraCapFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for CameraCapFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = CameraCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for CameraCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for CameraCapFlags

sourceยง

impl Eq for CameraCapFlags

sourceยง

impl StructuralPartialEq for CameraCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = CameraCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for CameraCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for CameraCapFlags

sourceยง

impl Eq for CameraCapFlags

sourceยง

impl StructuralPartialEq for CameraCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.EkfStatusFlags.html b/mavlink/ardupilotmega/struct.EkfStatusFlags.html index f077046fde..21426ba67e 100644 --- a/mavlink/ardupilotmega/struct.EkfStatusFlags.html +++ b/mavlink/ardupilotmega/struct.EkfStatusFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl EkfStatusFlags

source

pub const DEFAULT: Self = Self::EKF_ATTITUDE

Trait Implementationsยง

sourceยง

impl Binary for EkfStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for EkfStatusFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl EkfStatusFlags

source

pub const DEFAULT: Self = Self::EKF_ATTITUDE

Trait Implementationsยง

sourceยง

impl Binary for EkfStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for EkfStatusFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = EkfStatusFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for EkfStatusFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for EkfStatusFlags

sourceยง

fn bitor(self, other: EkfStatusFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = EkfStatusFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for EkfStatusFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = EkfStatusFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for EkfStatusFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for EkfStatusFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = EkfStatusFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for EkfStatusFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for EkfStatusFlags

sourceยง

fn clone(&self) -> EkfStatusFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for EkfStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for EkfStatusFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for EkfStatusFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = EkfStatusFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for EkfStatusFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for EkfStatusFlags

sourceยง

fn clone(&self) -> EkfStatusFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for EkfStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for EkfStatusFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for EkfStatusFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<EkfStatusFlags> for EkfStatusFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<EkfStatusFlags> for EkfStatusFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for EkfStatusFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for EkfStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for EkfStatusFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = EkfStatusFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for EkfStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for EkfStatusFlags

sourceยง

fn cmp(&self, other: &EkfStatusFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for EkfStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for EkfStatusFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = EkfStatusFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for EkfStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for EkfStatusFlags

sourceยง

fn cmp(&self, other: &EkfStatusFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for EkfStatusFlags

sourceยง

fn eq(&self, other: &EkfStatusFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -76,7 +76,7 @@
ยงSafety
operator. Read more
sourceยง

impl Serialize for EkfStatusFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for EkfStatusFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = EkfStatusFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for EkfStatusFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for EkfStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for EkfStatusFlags

sourceยง

impl Eq for EkfStatusFlags

sourceยง

impl StructuralPartialEq for EkfStatusFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for EkfStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for EkfStatusFlags

sourceยง

impl Eq for EkfStatusFlags

sourceยง

impl StructuralPartialEq for EkfStatusFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.EscFailureFlags.html b/mavlink/ardupilotmega/struct.EscFailureFlags.html index 4f7c0b3649..da9e704fe8 100644 --- a/mavlink/ardupilotmega/struct.EscFailureFlags.html +++ b/mavlink/ardupilotmega/struct.EscFailureFlags.html @@ -56,16 +56,16 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl EscFailureFlags

source

pub const DEFAULT: Self = Self::ESC_FAILURE_NONE

Trait Implementationsยง

sourceยง

impl Binary for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for EscFailureFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = EscFailureFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for EscFailureFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl EscFailureFlags

source

pub const DEFAULT: Self = Self::ESC_FAILURE_NONE

Trait Implementationsยง

sourceยง

impl Binary for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for EscFailureFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = EscFailureFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for EscFailureFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for EscFailureFlags

sourceยง

fn bitor(self, other: EscFailureFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = EscFailureFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for EscFailureFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = EscFailureFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for EscFailureFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for EscFailureFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = EscFailureFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for EscFailureFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = EscFailureFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for EscFailureFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for EscFailureFlags

sourceยง

fn clone(&self) -> EscFailureFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for EscFailureFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for EscFailureFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<EscFailureFlags> for EscFailureFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<EscFailureFlags> for EscFailureFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for EscFailureFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for EscFailureFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+ Self: Sized,
Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for EscFailureFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

ยง

type Output = EscFailureFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for EscFailureFlags

sourceยง

fn cmp(&self, other: &EscFailureFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where @@ -75,8 +75,8 @@
ยงSafety
operator. Read more

1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for EscFailureFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for EscFailureFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = EscFailureFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for EscFailureFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for EscFailureFlags

sourceยง

impl Eq for EscFailureFlags

sourceยง

impl StructuralPartialEq for EscFailureFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = EscFailureFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for EscFailureFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for EscFailureFlags

sourceยง

impl Eq for EscFailureFlags

sourceยง

impl StructuralPartialEq for EscFailureFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.EstimatorStatusFlags.html b/mavlink/ardupilotmega/struct.EstimatorStatusFlags.html index 595006ced1..21408f8d57 100644 --- a/mavlink/ardupilotmega/struct.EstimatorStatusFlags.html +++ b/mavlink/ardupilotmega/struct.EstimatorStatusFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl EstimatorStatusFlags

source

pub const DEFAULT: Self = Self::ESTIMATOR_ATTITUDE

Trait Implementationsยง

sourceยง

impl Binary for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for EstimatorStatusFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for EstimatorStatusFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl EstimatorStatusFlags

source

pub const DEFAULT: Self = Self::ESTIMATOR_ATTITUDE

Trait Implementationsยง

sourceยง

impl Binary for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for EstimatorStatusFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for EstimatorStatusFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for EstimatorStatusFlags

sourceยง

fn bitor(self, other: EstimatorStatusFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for EstimatorStatusFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for EstimatorStatusFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for EstimatorStatusFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

ยง

type Output = EstimatorStatusFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for EstimatorStatusFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for EstimatorStatusFlags

sourceยง

fn clone(&self) -> EstimatorStatusFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for EstimatorStatusFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for EstimatorStatusFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

sourceยง

impl Clone for EstimatorStatusFlags

sourceยง

fn clone(&self) -> EstimatorStatusFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for EstimatorStatusFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for EstimatorStatusFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<EstimatorStatusFlags> for EstimatorStatusFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<EstimatorStatusFlags> for EstimatorStatusFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for EstimatorStatusFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for EstimatorStatusFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for EstimatorStatusFlags

sourceยง

fn cmp(&self, other: &EstimatorStatusFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for EstimatorStatusFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for EstimatorStatusFlags

sourceยง

fn cmp(&self, other: &EstimatorStatusFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for EstimatorStatusFlags

sourceยง

fn eq(&self, other: &EstimatorStatusFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for EstimatorStatusFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for EstimatorStatusFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for EstimatorStatusFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for EstimatorStatusFlags

sourceยง

impl Eq for EstimatorStatusFlags

sourceยง

impl StructuralPartialEq for EstimatorStatusFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = EstimatorStatusFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for EstimatorStatusFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for EstimatorStatusFlags

sourceยง

impl Eq for EstimatorStatusFlags

sourceยง

impl StructuralPartialEq for EstimatorStatusFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.GimbalDeviceCapFlags.html b/mavlink/ardupilotmega/struct.GimbalDeviceCapFlags.html index aeb44a03f9..abd4bea376 100644 --- a/mavlink/ardupilotmega/struct.GimbalDeviceCapFlags.html +++ b/mavlink/ardupilotmega/struct.GimbalDeviceCapFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl GimbalDeviceCapFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl GimbalDeviceCapFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GimbalDeviceCapFlags

sourceยง

fn bitor(self, other: GimbalDeviceCapFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GimbalDeviceCapFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GimbalDeviceCapFlags

sourceยง

fn clone(&self) -> GimbalDeviceCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for GimbalDeviceCapFlags

sourceยง

fn clone(&self) -> GimbalDeviceCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GimbalDeviceCapFlags> for GimbalDeviceCapFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GimbalDeviceCapFlags> for GimbalDeviceCapFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GimbalDeviceCapFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceCapFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceCapFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GimbalDeviceCapFlags

sourceยง

fn eq(&self, other: &GimbalDeviceCapFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for GimbalDeviceCapFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GimbalDeviceCapFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceCapFlags

sourceยง

impl Eq for GimbalDeviceCapFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/ardupilotmega/struct.GimbalDeviceErrorFlags.html b/mavlink/ardupilotmega/struct.GimbalDeviceErrorFlags.html index 145f48a4e1..039f8937d6 100644 --- a/mavlink/ardupilotmega/struct.GimbalDeviceErrorFlags.html +++ b/mavlink/ardupilotmega/struct.GimbalDeviceErrorFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl GimbalDeviceErrorFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceErrorFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceErrorFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl GimbalDeviceErrorFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceErrorFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceErrorFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GimbalDeviceErrorFlags

sourceยง

fn bitor(self, other: GimbalDeviceErrorFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceErrorFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceErrorFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GimbalDeviceErrorFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceErrorFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GimbalDeviceErrorFlags

sourceยง

fn clone(&self) -> GimbalDeviceErrorFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceErrorFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceErrorFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceErrorFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for GimbalDeviceErrorFlags

sourceยง

fn clone(&self) -> GimbalDeviceErrorFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceErrorFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceErrorFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GimbalDeviceErrorFlags> for GimbalDeviceErrorFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GimbalDeviceErrorFlags> for GimbalDeviceErrorFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GimbalDeviceErrorFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceErrorFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceErrorFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceErrorFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceErrorFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceErrorFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GimbalDeviceErrorFlags

sourceยง

fn eq(&self, other: &GimbalDeviceErrorFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for GimbalDeviceErrorFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GimbalDeviceErrorFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceErrorFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceErrorFlags

sourceยง

impl Eq for GimbalDeviceErrorFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceErrorFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceErrorFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceErrorFlags

sourceยง

impl Eq for GimbalDeviceErrorFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceErrorFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.GimbalDeviceFlags.html b/mavlink/ardupilotmega/struct.GimbalDeviceFlags.html index b562b9d68d..89ea47d453 100644 --- a/mavlink/ardupilotmega/struct.GimbalDeviceFlags.html +++ b/mavlink/ardupilotmega/struct.GimbalDeviceFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl GimbalDeviceFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_FLAGS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl GimbalDeviceFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_FLAGS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = GimbalDeviceFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GimbalDeviceFlags

sourceยง

fn bitor(self, other: GimbalDeviceFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GimbalDeviceFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GimbalDeviceFlags

sourceยง

fn clone(&self) -> GimbalDeviceFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = GimbalDeviceFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for GimbalDeviceFlags

sourceยง

fn clone(&self) -> GimbalDeviceFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GimbalDeviceFlags> for GimbalDeviceFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GimbalDeviceFlags> for GimbalDeviceFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GimbalDeviceFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = GimbalDeviceFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GimbalDeviceFlags

sourceยง

fn eq(&self, other: &GimbalDeviceFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for GimbalDeviceFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GimbalDeviceFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceFlags

sourceยง

impl Eq for GimbalDeviceFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = GimbalDeviceFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceFlags

sourceยง

impl Eq for GimbalDeviceFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.GimbalManagerCapFlags.html b/mavlink/ardupilotmega/struct.GimbalManagerCapFlags.html index 8bd4acee9d..a9b21fbd87 100644 --- a/mavlink/ardupilotmega/struct.GimbalManagerCapFlags.html +++ b/mavlink/ardupilotmega/struct.GimbalManagerCapFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl GimbalManagerCapFlags

source

pub const DEFAULT: Self = Self::GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalManagerCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalManagerCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl GimbalManagerCapFlags

source

pub const DEFAULT: Self = Self::GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalManagerCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalManagerCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GimbalManagerCapFlags

sourceยง

fn bitor(self, other: GimbalManagerCapFlags) -> Self

Returns the union of the two sets of flags.

ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalManagerCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GimbalManagerCapFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalManagerCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GimbalManagerCapFlags

sourceยง

fn clone(&self) -> GimbalManagerCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalManagerCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalManagerCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalManagerCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for GimbalManagerCapFlags

sourceยง

fn clone(&self) -> GimbalManagerCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalManagerCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalManagerCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GimbalManagerCapFlags> for GimbalManagerCapFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GimbalManagerCapFlags> for GimbalManagerCapFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GimbalManagerCapFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalManagerCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalManagerCapFlags

sourceยง

fn cmp(&self, other: &GimbalManagerCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalManagerCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalManagerCapFlags

sourceยง

fn cmp(&self, other: &GimbalManagerCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GimbalManagerCapFlags

sourceยง

fn eq(&self, other: &GimbalManagerCapFlags) -> bool

This method tests for self and other values to be equal, and is used diff --git a/mavlink/ardupilotmega/struct.GoproHeartbeatFlags.html b/mavlink/ardupilotmega/struct.GoproHeartbeatFlags.html index 1c407273c2..108e2d6a0a 100644 --- a/mavlink/ardupilotmega/struct.GoproHeartbeatFlags.html +++ b/mavlink/ardupilotmega/struct.GoproHeartbeatFlags.html @@ -57,16 +57,16 @@
ยงSafety

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

sourceยง

impl GoproHeartbeatFlags

source

pub const DEFAULT: Self = Self::GOPRO_FLAG_RECORDING

Trait Implementationsยง

sourceยง

impl Binary for GoproHeartbeatFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GoproHeartbeatFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = GoproHeartbeatFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GoproHeartbeatFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
ยง

type Output = GoproHeartbeatFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GoproHeartbeatFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GoproHeartbeatFlags

sourceยง

fn bitor(self, other: GoproHeartbeatFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = GoproHeartbeatFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GoproHeartbeatFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = GoproHeartbeatFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GoproHeartbeatFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GoproHeartbeatFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GoproHeartbeatFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GoproHeartbeatFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GoproHeartbeatFlags

sourceยง

fn clone(&self) -> GoproHeartbeatFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GoproHeartbeatFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GoproHeartbeatFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GoproHeartbeatFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = GoproHeartbeatFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GoproHeartbeatFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for GoproHeartbeatFlags

sourceยง

fn clone(&self) -> GoproHeartbeatFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GoproHeartbeatFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GoproHeartbeatFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GoproHeartbeatFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GoproHeartbeatFlags> for GoproHeartbeatFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GoproHeartbeatFlags> for GoproHeartbeatFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GoproHeartbeatFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GoproHeartbeatFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GoproHeartbeatFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GoproHeartbeatFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GoproHeartbeatFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GoproHeartbeatFlags

sourceยง

fn cmp(&self, other: &GoproHeartbeatFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GoproHeartbeatFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GoproHeartbeatFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = GoproHeartbeatFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GoproHeartbeatFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GoproHeartbeatFlags

sourceยง

fn cmp(&self, other: &GoproHeartbeatFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GoproHeartbeatFlags

sourceยง

fn eq(&self, other: &GoproHeartbeatFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for GoproHeartbeatFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GoproHeartbeatFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = GoproHeartbeatFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GoproHeartbeatFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for GoproHeartbeatFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GoproHeartbeatFlags

sourceยง

impl Eq for GoproHeartbeatFlags

sourceยง

impl StructuralPartialEq for GoproHeartbeatFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = GoproHeartbeatFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GoproHeartbeatFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for GoproHeartbeatFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GoproHeartbeatFlags

sourceยง

impl Eq for GoproHeartbeatFlags

sourceยง

impl StructuralPartialEq for GoproHeartbeatFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.GpsInputIgnoreFlags.html b/mavlink/ardupilotmega/struct.GpsInputIgnoreFlags.html index dfd4020f1d..0ab8dbc51e 100644 --- a/mavlink/ardupilotmega/struct.GpsInputIgnoreFlags.html +++ b/mavlink/ardupilotmega/struct.GpsInputIgnoreFlags.html @@ -62,11 +62,11 @@
ยงSafety
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GpsInputIgnoreFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GpsInputIgnoreFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GpsInputIgnoreFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GpsInputIgnoreFlags

sourceยง

fn clone(&self) -> GpsInputIgnoreFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GpsInputIgnoreFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GpsInputIgnoreFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

sourceยง

impl Clone for GpsInputIgnoreFlags

sourceยง

fn clone(&self) -> GpsInputIgnoreFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GpsInputIgnoreFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GpsInputIgnoreFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GpsInputIgnoreFlags> for GpsInputIgnoreFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GpsInputIgnoreFlags> for GpsInputIgnoreFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GpsInputIgnoreFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GpsInputIgnoreFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GpsInputIgnoreFlags

sourceยง

fn cmp(&self, other: &GpsInputIgnoreFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GpsInputIgnoreFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GpsInputIgnoreFlags

sourceยง

fn cmp(&self, other: &GpsInputIgnoreFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GpsInputIgnoreFlags

sourceยง

fn eq(&self, other: &GpsInputIgnoreFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for GpsInputIgnoreFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GpsInputIgnoreFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GpsInputIgnoreFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GpsInputIgnoreFlags

sourceยง

impl Eq for GpsInputIgnoreFlags

sourceยง

impl StructuralPartialEq for GpsInputIgnoreFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GpsInputIgnoreFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GpsInputIgnoreFlags

sourceยง

impl Eq for GpsInputIgnoreFlags

sourceยง

impl StructuralPartialEq for GpsInputIgnoreFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.HighresImuUpdatedFlags.html b/mavlink/ardupilotmega/struct.HighresImuUpdatedFlags.html index 56492bf0ce..b103badd9c 100644 --- a/mavlink/ardupilotmega/struct.HighresImuUpdatedFlags.html +++ b/mavlink/ardupilotmega/struct.HighresImuUpdatedFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl HighresImuUpdatedFlags

source

pub const DEFAULT: Self = Self::HIGHRES_IMU_UPDATED_NONE

Trait Implementationsยง

sourceยง

impl Binary for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HighresImuUpdatedFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HighresImuUpdatedFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl HighresImuUpdatedFlags

source

pub const DEFAULT: Self = Self::HIGHRES_IMU_UPDATED_NONE

Trait Implementationsยง

sourceยง

impl Binary for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HighresImuUpdatedFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HighresImuUpdatedFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for HighresImuUpdatedFlags

sourceยง

fn bitor(self, other: HighresImuUpdatedFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HighresImuUpdatedFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HighresImuUpdatedFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for HighresImuUpdatedFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HighresImuUpdatedFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for HighresImuUpdatedFlags

sourceยง

fn clone(&self) -> HighresImuUpdatedFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HighresImuUpdatedFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HighresImuUpdatedFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HighresImuUpdatedFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for HighresImuUpdatedFlags

sourceยง

fn clone(&self) -> HighresImuUpdatedFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HighresImuUpdatedFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HighresImuUpdatedFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<HighresImuUpdatedFlags> for HighresImuUpdatedFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<HighresImuUpdatedFlags> for HighresImuUpdatedFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for HighresImuUpdatedFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HighresImuUpdatedFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HighresImuUpdatedFlags

sourceยง

fn cmp(&self, other: &HighresImuUpdatedFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HighresImuUpdatedFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HighresImuUpdatedFlags

sourceยง

fn cmp(&self, other: &HighresImuUpdatedFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for HighresImuUpdatedFlags

sourceยง

fn eq(&self, other: &HighresImuUpdatedFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for HighresImuUpdatedFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for HighresImuUpdatedFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HighresImuUpdatedFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HighresImuUpdatedFlags

sourceยง

impl Eq for HighresImuUpdatedFlags

sourceยง

impl StructuralPartialEq for HighresImuUpdatedFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HighresImuUpdatedFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HighresImuUpdatedFlags

sourceยง

impl Eq for HighresImuUpdatedFlags

sourceยง

impl StructuralPartialEq for HighresImuUpdatedFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.HilSensorUpdatedFlags.html b/mavlink/ardupilotmega/struct.HilSensorUpdatedFlags.html index fa7f566478..a582dddd34 100644 --- a/mavlink/ardupilotmega/struct.HilSensorUpdatedFlags.html +++ b/mavlink/ardupilotmega/struct.HilSensorUpdatedFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl HilSensorUpdatedFlags

source

pub const DEFAULT: Self = Self::HIL_SENSOR_UPDATED_NONE

Trait Implementationsยง

sourceยง

impl Binary for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HilSensorUpdatedFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HilSensorUpdatedFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl HilSensorUpdatedFlags

source

pub const DEFAULT: Self = Self::HIL_SENSOR_UPDATED_NONE

Trait Implementationsยง

sourceยง

impl Binary for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HilSensorUpdatedFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HilSensorUpdatedFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for HilSensorUpdatedFlags

sourceยง

fn bitor(self, other: HilSensorUpdatedFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HilSensorUpdatedFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HilSensorUpdatedFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for HilSensorUpdatedFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HilSensorUpdatedFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for HilSensorUpdatedFlags

sourceยง

fn clone(&self) -> HilSensorUpdatedFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HilSensorUpdatedFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HilSensorUpdatedFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HilSensorUpdatedFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for HilSensorUpdatedFlags

sourceยง

fn clone(&self) -> HilSensorUpdatedFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HilSensorUpdatedFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HilSensorUpdatedFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<HilSensorUpdatedFlags> for HilSensorUpdatedFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<HilSensorUpdatedFlags> for HilSensorUpdatedFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for HilSensorUpdatedFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HilSensorUpdatedFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HilSensorUpdatedFlags

sourceยง

fn cmp(&self, other: &HilSensorUpdatedFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HilSensorUpdatedFlags

sourceยง

fn cmp(&self, other: &HilSensorUpdatedFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for HilSensorUpdatedFlags

sourceยง

fn eq(&self, other: &HilSensorUpdatedFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for HilSensorUpdatedFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for HilSensorUpdatedFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HilSensorUpdatedFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HilSensorUpdatedFlags

sourceยง

impl Eq for HilSensorUpdatedFlags

sourceยง

impl StructuralPartialEq for HilSensorUpdatedFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HilSensorUpdatedFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HilSensorUpdatedFlags

sourceยง

impl Eq for HilSensorUpdatedFlags

sourceยง

impl StructuralPartialEq for HilSensorUpdatedFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.HlFailureFlag.html b/mavlink/ardupilotmega/struct.HlFailureFlag.html index 188a18f9f4..b360cbfa1e 100644 --- a/mavlink/ardupilotmega/struct.HlFailureFlag.html +++ b/mavlink/ardupilotmega/struct.HlFailureFlag.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl HlFailureFlag

source

pub const DEFAULT: Self = Self::HL_FAILURE_FLAG_GPS

Trait Implementationsยง

sourceยง

impl Binary for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HlFailureFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HlFailureFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl HlFailureFlag

source

pub const DEFAULT: Self = Self::HL_FAILURE_FLAG_GPS

Trait Implementationsยง

sourceยง

impl Binary for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HlFailureFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = HlFailureFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HlFailureFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for HlFailureFlag

sourceยง

fn bitor(self, other: HlFailureFlag) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HlFailureFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = HlFailureFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HlFailureFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for HlFailureFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HlFailureFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for HlFailureFlag

sourceยง

fn clone(&self) -> HlFailureFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HlFailureFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HlFailureFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = HlFailureFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HlFailureFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for HlFailureFlag

sourceยง

fn clone(&self) -> HlFailureFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HlFailureFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HlFailureFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<HlFailureFlag> for HlFailureFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<HlFailureFlag> for HlFailureFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for HlFailureFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HlFailureFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HlFailureFlag

sourceยง

fn cmp(&self, other: &HlFailureFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HlFailureFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = HlFailureFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HlFailureFlag

sourceยง

fn cmp(&self, other: &HlFailureFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for HlFailureFlag

sourceยง

fn eq(&self, other: &HlFailureFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for HlFailureFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for HlFailureFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HlFailureFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HlFailureFlag

sourceยง

impl Eq for HlFailureFlag

sourceยง

impl StructuralPartialEq for HlFailureFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = HlFailureFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HlFailureFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HlFailureFlag

sourceยง

impl Eq for HlFailureFlag

sourceยง

impl StructuralPartialEq for HlFailureFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.LimitModule.html b/mavlink/ardupilotmega/struct.LimitModule.html index 7d75a4fa05..8c4ddf0621 100644 --- a/mavlink/ardupilotmega/struct.LimitModule.html +++ b/mavlink/ardupilotmega/struct.LimitModule.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl LimitModule

source

pub const DEFAULT: Self = Self::LIMIT_GPSLOCK

Trait Implementationsยง

sourceยง

impl Binary for LimitModule

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for LimitModule

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = LimitModule

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for LimitModule

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl LimitModule

source

pub const DEFAULT: Self = Self::LIMIT_GPSLOCK

Trait Implementationsยง

sourceยง

impl Binary for LimitModule

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for LimitModule

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = LimitModule

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for LimitModule

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for LimitModule

sourceยง

fn bitor(self, other: LimitModule) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = LimitModule

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for LimitModule

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = LimitModule

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for LimitModule

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for LimitModule

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = LimitModule

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for LimitModule

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for LimitModule

sourceยง

fn clone(&self) -> LimitModule

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for LimitModule

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for LimitModule

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for LimitModule

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = LimitModule

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for LimitModule

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for LimitModule

sourceยง

fn clone(&self) -> LimitModule

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for LimitModule

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for LimitModule

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for LimitModule

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<LimitModule> for LimitModule

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<LimitModule> for LimitModule

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for LimitModule

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for LimitModule

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for LimitModule

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = LimitModule

The resulting type after applying the ! operator.
sourceยง

impl Octal for LimitModule

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for LimitModule

sourceยง

fn cmp(&self, other: &LimitModule) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for LimitModule

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for LimitModule

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = LimitModule

The resulting type after applying the ! operator.
sourceยง

impl Octal for LimitModule

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for LimitModule

sourceยง

fn cmp(&self, other: &LimitModule) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for LimitModule

sourceยง

fn eq(&self, other: &LimitModule) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for LimitModule

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for LimitModule

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = LimitModule

The resulting type after applying the - operator.
sourceยง

impl SubAssign for LimitModule

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = LimitModule

The resulting type after applying the - operator.
sourceยง

impl SubAssign for LimitModule

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for LimitModule

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for LimitModule

sourceยง

impl Eq for LimitModule

sourceยง

impl StructuralPartialEq for LimitModule

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/ardupilotmega/struct.MavEventCurrentSequenceFlags.html b/mavlink/ardupilotmega/struct.MavEventCurrentSequenceFlags.html index e63f33cd76..1a9c9befab 100644 --- a/mavlink/ardupilotmega/struct.MavEventCurrentSequenceFlags.html +++ b/mavlink/ardupilotmega/struct.MavEventCurrentSequenceFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl MavEventCurrentSequenceFlags

source

pub const DEFAULT: Self = Self::MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET

Trait Implementationsยง

sourceยง

impl Binary for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavEventCurrentSequenceFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl MavEventCurrentSequenceFlags

source

pub const DEFAULT: Self = Self::MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET

Trait Implementationsยง

sourceยง

impl Binary for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavEventCurrentSequenceFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavEventCurrentSequenceFlags

sourceยง

fn bitor(self, other: MavEventCurrentSequenceFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavEventCurrentSequenceFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for MavEventCurrentSequenceFlags

sourceยง

fn clone(&self) -> MavEventCurrentSequenceFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavEventCurrentSequenceFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavEventCurrentSequenceFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavEventCurrentSequenceFlags> for MavEventCurrentSequenceFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavEventCurrentSequenceFlags> for MavEventCurrentSequenceFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavEventCurrentSequenceFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavEventCurrentSequenceFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavEventCurrentSequenceFlags

sourceยง

fn cmp(&self, other: &MavEventCurrentSequenceFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavEventCurrentSequenceFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavEventCurrentSequenceFlags

sourceยง

fn cmp(&self, other: &MavEventCurrentSequenceFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavEventCurrentSequenceFlags

sourceยง

fn eq(&self, other: &MavEventCurrentSequenceFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -76,7 +76,7 @@
ยงSafety
operator. Read more
sourceยง

impl Serialize for MavEventCurrentSequenceFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavEventCurrentSequenceFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavEventCurrentSequenceFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavEventCurrentSequenceFlags

sourceยง

impl Eq for MavEventCurrentSequenceFlags

sourceยง

impl StructuralPartialEq for MavEventCurrentSequenceFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavEventCurrentSequenceFlags

sourceยง

impl Eq for MavEventCurrentSequenceFlags

sourceยง

impl StructuralPartialEq for MavEventCurrentSequenceFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.MavGeneratorStatusFlag.html b/mavlink/ardupilotmega/struct.MavGeneratorStatusFlag.html index aeec530005..b594bb132a 100644 --- a/mavlink/ardupilotmega/struct.MavGeneratorStatusFlag.html +++ b/mavlink/ardupilotmega/struct.MavGeneratorStatusFlag.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl MavGeneratorStatusFlag

source

pub const DEFAULT: Self = Self::MAV_GENERATOR_STATUS_FLAG_OFF

Trait Implementationsยง

sourceยง

impl Binary for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavGeneratorStatusFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavGeneratorStatusFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavGeneratorStatusFlag

source

pub const DEFAULT: Self = Self::MAV_GENERATOR_STATUS_FLAG_OFF

Trait Implementationsยง

sourceยง

impl Binary for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavGeneratorStatusFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavGeneratorStatusFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavGeneratorStatusFlag

sourceยง

fn bitor(self, other: MavGeneratorStatusFlag) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavGeneratorStatusFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavGeneratorStatusFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavGeneratorStatusFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavGeneratorStatusFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavGeneratorStatusFlag

sourceยง

fn clone(&self) -> MavGeneratorStatusFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavGeneratorStatusFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavGeneratorStatusFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavGeneratorStatusFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for MavGeneratorStatusFlag

sourceยง

fn clone(&self) -> MavGeneratorStatusFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavGeneratorStatusFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavGeneratorStatusFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavGeneratorStatusFlag> for MavGeneratorStatusFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavGeneratorStatusFlag> for MavGeneratorStatusFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavGeneratorStatusFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavGeneratorStatusFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavGeneratorStatusFlag

sourceยง

fn cmp(&self, other: &MavGeneratorStatusFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavGeneratorStatusFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavGeneratorStatusFlag

sourceยง

fn cmp(&self, other: &MavGeneratorStatusFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavGeneratorStatusFlag

sourceยง

fn eq(&self, other: &MavGeneratorStatusFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -76,7 +76,7 @@
ยงSafety
operator. Read more
sourceยง

impl Serialize for MavGeneratorStatusFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavGeneratorStatusFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavGeneratorStatusFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavGeneratorStatusFlag

sourceยง

impl Eq for MavGeneratorStatusFlag

sourceยง

impl StructuralPartialEq for MavGeneratorStatusFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavGeneratorStatusFlag

sourceยง

impl Eq for MavGeneratorStatusFlag

sourceยง

impl StructuralPartialEq for MavGeneratorStatusFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.MavModeFlag.html b/mavlink/ardupilotmega/struct.MavModeFlag.html index c3c5bb6e25..f5e9be0ecc 100644 --- a/mavlink/ardupilotmega/struct.MavModeFlag.html +++ b/mavlink/ardupilotmega/struct.MavModeFlag.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl MavModeFlag

source

pub const DEFAULT: Self = Self::MAV_MODE_FLAG_SAFETY_ARMED

Trait Implementationsยง

sourceยง

impl Binary for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavModeFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavModeFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavModeFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavModeFlag

source

pub const DEFAULT: Self = Self::MAV_MODE_FLAG_SAFETY_ARMED

Trait Implementationsยง

sourceยง

impl Binary for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavModeFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavModeFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavModeFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavModeFlag

sourceยง

fn bitor(self, other: MavModeFlag) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavModeFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavModeFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavModeFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavModeFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavModeFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavModeFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavModeFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = MavModeFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavModeFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for MavModeFlag

sourceยง

fn clone(&self) -> MavModeFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavModeFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavModeFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavModeFlag> for MavModeFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavModeFlag> for MavModeFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavModeFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavModeFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavModeFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavModeFlag

sourceยง

fn cmp(&self, other: &MavModeFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavModeFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavModeFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavModeFlag

sourceยง

fn cmp(&self, other: &MavModeFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavModeFlag

sourceยง

fn eq(&self, other: &MavModeFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavModeFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavModeFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavModeFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavModeFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavModeFlag

sourceยง

impl Eq for MavModeFlag

sourceยง

impl StructuralPartialEq for MavModeFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = MavModeFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavModeFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavModeFlag

sourceยง

impl Eq for MavModeFlag

sourceยง

impl StructuralPartialEq for MavModeFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.MavPowerStatus.html b/mavlink/ardupilotmega/struct.MavPowerStatus.html index 1bef076bde..d7e29393ab 100644 --- a/mavlink/ardupilotmega/struct.MavPowerStatus.html +++ b/mavlink/ardupilotmega/struct.MavPowerStatus.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl MavPowerStatus

source

pub const DEFAULT: Self = Self::MAV_POWER_STATUS_BRICK_VALID

Trait Implementationsยง

sourceยง

impl Binary for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavPowerStatus

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavPowerStatus

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavPowerStatus

source

pub const DEFAULT: Self = Self::MAV_POWER_STATUS_BRICK_VALID

Trait Implementationsยง

sourceยง

impl Binary for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavPowerStatus

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavPowerStatus

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavPowerStatus

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavPowerStatus

sourceยง

fn bitor(self, other: MavPowerStatus) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavPowerStatus

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavPowerStatus

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavPowerStatus

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavPowerStatus

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavPowerStatus

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavPowerStatus

sourceยง

fn clone(&self) -> MavPowerStatus

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavPowerStatus

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavPowerStatus

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = MavPowerStatus

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavPowerStatus

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for MavPowerStatus

sourceยง

fn clone(&self) -> MavPowerStatus

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavPowerStatus

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavPowerStatus

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavPowerStatus> for MavPowerStatus

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavPowerStatus> for MavPowerStatus

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavPowerStatus

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavPowerStatus

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavPowerStatus

sourceยง

fn cmp(&self, other: &MavPowerStatus) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavPowerStatus

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavPowerStatus

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavPowerStatus

sourceยง

fn cmp(&self, other: &MavPowerStatus) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavPowerStatus

sourceยง

fn eq(&self, other: &MavPowerStatus) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavPowerStatus

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavPowerStatus

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavPowerStatus

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavPowerStatus

sourceยง

impl Eq for MavPowerStatus

sourceยง

impl StructuralPartialEq for MavPowerStatus

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = MavPowerStatus

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavPowerStatus

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavPowerStatus

sourceยง

impl Eq for MavPowerStatus

sourceยง

impl StructuralPartialEq for MavPowerStatus

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.MavProtocolCapability.html b/mavlink/ardupilotmega/struct.MavProtocolCapability.html index b355cfb512..99b3185071 100644 --- a/mavlink/ardupilotmega/struct.MavProtocolCapability.html +++ b/mavlink/ardupilotmega/struct.MavProtocolCapability.html @@ -57,16 +57,16 @@
ยงSafety

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

sourceยง

impl MavProtocolCapability

source

pub const DEFAULT: Self = Self::MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT

Trait Implementationsยง

sourceยง

impl Binary for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavProtocolCapability

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavProtocolCapability

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavProtocolCapability

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
ยง

type Output = MavProtocolCapability

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavProtocolCapability

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavProtocolCapability

sourceยง

fn bitor(self, other: MavProtocolCapability) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavProtocolCapability

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavProtocolCapability

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavProtocolCapability

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavProtocolCapability

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavProtocolCapability

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavProtocolCapability

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavProtocolCapability

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavProtocolCapability

sourceยง

fn clone(&self) -> MavProtocolCapability

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavProtocolCapability

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavProtocolCapability

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = MavProtocolCapability

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavProtocolCapability

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for MavProtocolCapability

sourceยง

fn clone(&self) -> MavProtocolCapability

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavProtocolCapability

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavProtocolCapability

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavProtocolCapability> for MavProtocolCapability

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavProtocolCapability> for MavProtocolCapability

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavProtocolCapability

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavProtocolCapability

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavProtocolCapability

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavProtocolCapability

sourceยง

fn cmp(&self, other: &MavProtocolCapability) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = MavProtocolCapability

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavProtocolCapability

sourceยง

fn cmp(&self, other: &MavProtocolCapability) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavProtocolCapability

sourceยง

fn eq(&self, other: &MavProtocolCapability) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavProtocolCapability

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavProtocolCapability

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavProtocolCapability

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavProtocolCapability

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavProtocolCapability

sourceยง

impl Eq for MavProtocolCapability

sourceยง

impl StructuralPartialEq for MavProtocolCapability

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = MavProtocolCapability

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavProtocolCapability

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavProtocolCapability

sourceยง

impl Eq for MavProtocolCapability

sourceยง

impl StructuralPartialEq for MavProtocolCapability

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.MavSysStatusSensor.html b/mavlink/ardupilotmega/struct.MavSysStatusSensor.html index fa772344dc..218c000222 100644 --- a/mavlink/ardupilotmega/struct.MavSysStatusSensor.html +++ b/mavlink/ardupilotmega/struct.MavSysStatusSensor.html @@ -57,16 +57,16 @@
ยงSafety

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

sourceยง

impl MavSysStatusSensor

source

pub const DEFAULT: Self = Self::MAV_SYS_STATUS_SENSOR_3D_GYRO

Trait Implementationsยง

sourceยง

impl Binary for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavSysStatusSensor

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavSysStatusSensor

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
ยง

type Output = MavSysStatusSensor

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavSysStatusSensor

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavSysStatusSensor

sourceยง

fn bitor(self, other: MavSysStatusSensor) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavSysStatusSensor

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavSysStatusSensor

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavSysStatusSensor

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavSysStatusSensor

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavSysStatusSensor

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = MavSysStatusSensor

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavSysStatusSensor

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for MavSysStatusSensor

sourceยง

fn clone(&self) -> MavSysStatusSensor

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavSysStatusSensor

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavSysStatusSensor

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavSysStatusSensor> for MavSysStatusSensor

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavSysStatusSensor> for MavSysStatusSensor

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavSysStatusSensor

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavSysStatusSensor

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavSysStatusSensor

sourceยง

fn cmp(&self, other: &MavSysStatusSensor) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = MavSysStatusSensor

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavSysStatusSensor

sourceยง

fn cmp(&self, other: &MavSysStatusSensor) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavSysStatusSensor

sourceยง

fn eq(&self, other: &MavSysStatusSensor) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavSysStatusSensor

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavSysStatusSensor

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavSysStatusSensor

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = MavSysStatusSensor

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavSysStatusSensor

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavSysStatusSensor

sourceยง

impl Eq for MavSysStatusSensor

sourceยง

impl StructuralPartialEq for MavSysStatusSensor

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/ardupilotmega/struct.MavWinchStatusFlag.html b/mavlink/ardupilotmega/struct.MavWinchStatusFlag.html index ee4f777cd3..07c772c27d 100644 --- a/mavlink/ardupilotmega/struct.MavWinchStatusFlag.html +++ b/mavlink/ardupilotmega/struct.MavWinchStatusFlag.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl MavWinchStatusFlag

source

pub const DEFAULT: Self = Self::MAV_WINCH_STATUS_HEALTHY

Trait Implementationsยง

sourceยง

impl Binary for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavWinchStatusFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavWinchStatusFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavWinchStatusFlag

source

pub const DEFAULT: Self = Self::MAV_WINCH_STATUS_HEALTHY

Trait Implementationsยง

sourceยง

impl Binary for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavWinchStatusFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavWinchStatusFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavWinchStatusFlag

sourceยง

fn bitor(self, other: MavWinchStatusFlag) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavWinchStatusFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavWinchStatusFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavWinchStatusFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavWinchStatusFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavWinchStatusFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for MavWinchStatusFlag

sourceยง

fn clone(&self) -> MavWinchStatusFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavWinchStatusFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavWinchStatusFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavWinchStatusFlag> for MavWinchStatusFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavWinchStatusFlag> for MavWinchStatusFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavWinchStatusFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavWinchStatusFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavWinchStatusFlag

sourceยง

fn cmp(&self, other: &MavWinchStatusFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavWinchStatusFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavWinchStatusFlag

sourceยง

fn cmp(&self, other: &MavWinchStatusFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavWinchStatusFlag

sourceยง

fn eq(&self, other: &MavWinchStatusFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavWinchStatusFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavWinchStatusFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavWinchStatusFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavWinchStatusFlag

sourceยง

impl Eq for MavWinchStatusFlag

sourceยง

impl StructuralPartialEq for MavWinchStatusFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = MavWinchStatusFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavWinchStatusFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavWinchStatusFlag

sourceยง

impl Eq for MavWinchStatusFlag

sourceยง

impl StructuralPartialEq for MavWinchStatusFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.PositionTargetTypemask.html b/mavlink/ardupilotmega/struct.PositionTargetTypemask.html index ecb34824e9..5597220d2e 100644 --- a/mavlink/ardupilotmega/struct.PositionTargetTypemask.html +++ b/mavlink/ardupilotmega/struct.PositionTargetTypemask.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl PositionTargetTypemask

source

pub const DEFAULT: Self = Self::POSITION_TARGET_TYPEMASK_X_IGNORE

Trait Implementationsยง

sourceยง

impl Binary for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for PositionTargetTypemask

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for PositionTargetTypemask

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl PositionTargetTypemask

source

pub const DEFAULT: Self = Self::POSITION_TARGET_TYPEMASK_X_IGNORE

Trait Implementationsยง

sourceยง

impl Binary for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for PositionTargetTypemask

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = PositionTargetTypemask

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for PositionTargetTypemask

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for PositionTargetTypemask

sourceยง

fn bitor(self, other: PositionTargetTypemask) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for PositionTargetTypemask

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = PositionTargetTypemask

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for PositionTargetTypemask

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for PositionTargetTypemask

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for PositionTargetTypemask

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = PositionTargetTypemask

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for PositionTargetTypemask

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for PositionTargetTypemask

sourceยง

fn clone(&self) -> PositionTargetTypemask

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for PositionTargetTypemask

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for PositionTargetTypemask

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<PositionTargetTypemask> for PositionTargetTypemask

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<PositionTargetTypemask> for PositionTargetTypemask

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for PositionTargetTypemask

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for PositionTargetTypemask

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the ! operator.
sourceยง

impl Octal for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for PositionTargetTypemask

sourceยง

fn cmp(&self, other: &PositionTargetTypemask) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = PositionTargetTypemask

The resulting type after applying the ! operator.
sourceยง

impl Octal for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for PositionTargetTypemask

sourceยง

fn cmp(&self, other: &PositionTargetTypemask) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for PositionTargetTypemask

sourceยง

fn eq(&self, other: &PositionTargetTypemask) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for PositionTargetTypemask

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for PositionTargetTypemask

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the - operator.
sourceยง

impl SubAssign for PositionTargetTypemask

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = PositionTargetTypemask

The resulting type after applying the - operator.
sourceยง

impl SubAssign for PositionTargetTypemask

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for PositionTargetTypemask

sourceยง

impl Eq for PositionTargetTypemask

sourceยง

impl StructuralPartialEq for PositionTargetTypemask

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/ardupilotmega/struct.RallyFlags.html b/mavlink/ardupilotmega/struct.RallyFlags.html index 8c76d93200..6c79cf2636 100644 --- a/mavlink/ardupilotmega/struct.RallyFlags.html +++ b/mavlink/ardupilotmega/struct.RallyFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl RallyFlags

source

pub const DEFAULT: Self = Self::FAVORABLE_WIND

Trait Implementationsยง

sourceยง

impl Binary for RallyFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for RallyFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl RallyFlags

source

pub const DEFAULT: Self = Self::FAVORABLE_WIND

Trait Implementationsยง

sourceยง

impl Binary for RallyFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for RallyFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = RallyFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for RallyFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for RallyFlags

sourceยง

fn bitor(self, other: RallyFlags) -> Self

Returns the union of the two sets of flags.

ยง

type Output = RallyFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for RallyFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for RallyFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = RallyFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for RallyFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for RallyFlags

sourceยง

fn clone(&self) -> RallyFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for RallyFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for RallyFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for RallyFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = RallyFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for RallyFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for RallyFlags

sourceยง

fn clone(&self) -> RallyFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for RallyFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for RallyFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for RallyFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<RallyFlags> for RallyFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<RallyFlags> for RallyFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for RallyFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for RallyFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for RallyFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = RallyFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for RallyFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for RallyFlags

sourceยง

fn cmp(&self, other: &RallyFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for RallyFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for RallyFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = RallyFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for RallyFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for RallyFlags

sourceยง

fn cmp(&self, other: &RallyFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for RallyFlags

sourceยง

fn eq(&self, other: &RallyFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for RallyFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for RallyFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = RallyFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for RallyFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for RallyFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for RallyFlags

sourceยง

impl Eq for RallyFlags

sourceยง

impl StructuralPartialEq for RallyFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = RallyFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for RallyFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for RallyFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for RallyFlags

sourceยง

impl Eq for RallyFlags

sourceยง

impl StructuralPartialEq for RallyFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.SerialControlFlag.html b/mavlink/ardupilotmega/struct.SerialControlFlag.html index efc7beb078..cc9d13568b 100644 --- a/mavlink/ardupilotmega/struct.SerialControlFlag.html +++ b/mavlink/ardupilotmega/struct.SerialControlFlag.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl SerialControlFlag

source

pub const DEFAULT: Self = Self::SERIAL_CONTROL_FLAG_REPLY

Trait Implementationsยง

sourceยง

impl Binary for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for SerialControlFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for SerialControlFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl SerialControlFlag

source

pub const DEFAULT: Self = Self::SERIAL_CONTROL_FLAG_REPLY

Trait Implementationsยง

sourceยง

impl Binary for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for SerialControlFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = SerialControlFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for SerialControlFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for SerialControlFlag

sourceยง

fn bitor(self, other: SerialControlFlag) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for SerialControlFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = SerialControlFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for SerialControlFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for SerialControlFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for SerialControlFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for SerialControlFlag

sourceยง

fn clone(&self) -> SerialControlFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for SerialControlFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for SerialControlFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = SerialControlFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for SerialControlFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for SerialControlFlag

sourceยง

fn clone(&self) -> SerialControlFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for SerialControlFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for SerialControlFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<SerialControlFlag> for SerialControlFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<SerialControlFlag> for SerialControlFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for SerialControlFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for SerialControlFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for SerialControlFlag

sourceยง

fn cmp(&self, other: &SerialControlFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for SerialControlFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = SerialControlFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for SerialControlFlag

sourceยง

fn cmp(&self, other: &SerialControlFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for SerialControlFlag

sourceยง

fn eq(&self, other: &SerialControlFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for SerialControlFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for SerialControlFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for SerialControlFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = SerialControlFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for SerialControlFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for SerialControlFlag

sourceยง

impl Eq for SerialControlFlag

sourceยง

impl StructuralPartialEq for SerialControlFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/ardupilotmega/struct.TuneFormat.html b/mavlink/ardupilotmega/struct.TuneFormat.html index e5819972a1..2679294941 100644 --- a/mavlink/ardupilotmega/struct.TuneFormat.html +++ b/mavlink/ardupilotmega/struct.TuneFormat.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl TuneFormat

source

pub const DEFAULT: Self = Self::TUNE_FORMAT_QBASIC1_1

Trait Implementationsยง

sourceยง

impl Binary for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for TuneFormat

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = TuneFormat

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for TuneFormat

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl TuneFormat

source

pub const DEFAULT: Self = Self::TUNE_FORMAT_QBASIC1_1

Trait Implementationsยง

sourceยง

impl Binary for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for TuneFormat

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = TuneFormat

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for TuneFormat

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for TuneFormat

sourceยง

fn bitor(self, other: TuneFormat) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = TuneFormat

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for TuneFormat

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = TuneFormat

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for TuneFormat

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for TuneFormat

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = TuneFormat

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for TuneFormat

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for TuneFormat

sourceยง

fn clone(&self) -> TuneFormat

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for TuneFormat

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for TuneFormat

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = TuneFormat

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for TuneFormat

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for TuneFormat

sourceยง

fn clone(&self) -> TuneFormat

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for TuneFormat

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for TuneFormat

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<TuneFormat> for TuneFormat

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<TuneFormat> for TuneFormat

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for TuneFormat

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for TuneFormat

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = TuneFormat

The resulting type after applying the ! operator.
sourceยง

impl Octal for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for TuneFormat

sourceยง

fn cmp(&self, other: &TuneFormat) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for TuneFormat

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = TuneFormat

The resulting type after applying the ! operator.
sourceยง

impl Octal for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for TuneFormat

sourceยง

fn cmp(&self, other: &TuneFormat) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for TuneFormat

sourceยง

fn eq(&self, other: &TuneFormat) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for TuneFormat

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for TuneFormat

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = TuneFormat

The resulting type after applying the - operator.
sourceยง

impl SubAssign for TuneFormat

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for TuneFormat

sourceยง

impl Eq for TuneFormat

sourceยง

impl StructuralPartialEq for TuneFormat

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = TuneFormat

The resulting type after applying the - operator.
sourceยง

impl SubAssign for TuneFormat

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for TuneFormat

sourceยง

impl Eq for TuneFormat

sourceยง

impl StructuralPartialEq for TuneFormat

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.UavionixAdsbOutDynamicState.html b/mavlink/ardupilotmega/struct.UavionixAdsbOutDynamicState.html index b4ce7780ba..dccefa4bd8 100644 --- a/mavlink/ardupilotmega/struct.UavionixAdsbOutDynamicState.html +++ b/mavlink/ardupilotmega/struct.UavionixAdsbOutDynamicState.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl UavionixAdsbOutDynamicState

source

pub const DEFAULT: Self = Self::UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE

Trait Implementationsยง

sourceยง

impl Binary for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UavionixAdsbOutDynamicState

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UavionixAdsbOutDynamicState

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl UavionixAdsbOutDynamicState

source

pub const DEFAULT: Self = Self::UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE

Trait Implementationsยง

sourceยง

impl Binary for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UavionixAdsbOutDynamicState

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UavionixAdsbOutDynamicState

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for UavionixAdsbOutDynamicState

sourceยง

fn bitor(self, other: UavionixAdsbOutDynamicState) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UavionixAdsbOutDynamicState

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UavionixAdsbOutDynamicState

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for UavionixAdsbOutDynamicState

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UavionixAdsbOutDynamicState

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for UavionixAdsbOutDynamicState

sourceยง

fn clone(&self) -> UavionixAdsbOutDynamicState

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UavionixAdsbOutDynamicState

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UavionixAdsbOutDynamicState

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UavionixAdsbOutDynamicState

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for UavionixAdsbOutDynamicState

sourceยง

fn clone(&self) -> UavionixAdsbOutDynamicState

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UavionixAdsbOutDynamicState

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UavionixAdsbOutDynamicState

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<UavionixAdsbOutDynamicState> for UavionixAdsbOutDynamicState

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<UavionixAdsbOutDynamicState> for UavionixAdsbOutDynamicState

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for UavionixAdsbOutDynamicState

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UavionixAdsbOutDynamicState

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the ! operator.
sourceยง

impl Octal for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UavionixAdsbOutDynamicState

sourceยง

fn cmp(&self, other: &UavionixAdsbOutDynamicState) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the ! operator.
sourceยง

impl Octal for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UavionixAdsbOutDynamicState

sourceยง

fn cmp(&self, other: &UavionixAdsbOutDynamicState) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for UavionixAdsbOutDynamicState

sourceยง

fn eq(&self, other: &UavionixAdsbOutDynamicState) -> bool

This method tests for self and other values to be equal, and is used @@ -76,7 +76,7 @@
ยงSafety
operator. Read more
sourceยง

impl Serialize for UavionixAdsbOutDynamicState

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for UavionixAdsbOutDynamicState

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UavionixAdsbOutDynamicState

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UavionixAdsbOutDynamicState

sourceยง

impl Eq for UavionixAdsbOutDynamicState

sourceยง

impl StructuralPartialEq for UavionixAdsbOutDynamicState

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UavionixAdsbOutDynamicState

sourceยง

impl Eq for UavionixAdsbOutDynamicState

sourceยง

impl StructuralPartialEq for UavionixAdsbOutDynamicState

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.UavionixAdsbOutRfSelect.html b/mavlink/ardupilotmega/struct.UavionixAdsbOutRfSelect.html index 00a69c3ee6..cfd3258700 100644 --- a/mavlink/ardupilotmega/struct.UavionixAdsbOutRfSelect.html +++ b/mavlink/ardupilotmega/struct.UavionixAdsbOutRfSelect.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl UavionixAdsbOutRfSelect

source

pub const DEFAULT: Self = Self::UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY

Trait Implementationsยง

sourceยง

impl Binary for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UavionixAdsbOutRfSelect

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UavionixAdsbOutRfSelect

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl UavionixAdsbOutRfSelect

source

pub const DEFAULT: Self = Self::UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY

Trait Implementationsยง

sourceยง

impl Binary for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UavionixAdsbOutRfSelect

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UavionixAdsbOutRfSelect

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for UavionixAdsbOutRfSelect

sourceยง

fn bitor(self, other: UavionixAdsbOutRfSelect) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UavionixAdsbOutRfSelect

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UavionixAdsbOutRfSelect

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for UavionixAdsbOutRfSelect

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UavionixAdsbOutRfSelect

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for UavionixAdsbOutRfSelect

sourceยง

fn clone(&self) -> UavionixAdsbOutRfSelect

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UavionixAdsbOutRfSelect

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UavionixAdsbOutRfSelect

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UavionixAdsbOutRfSelect

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for UavionixAdsbOutRfSelect

sourceยง

fn clone(&self) -> UavionixAdsbOutRfSelect

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UavionixAdsbOutRfSelect

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UavionixAdsbOutRfSelect

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<UavionixAdsbOutRfSelect> for UavionixAdsbOutRfSelect

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<UavionixAdsbOutRfSelect> for UavionixAdsbOutRfSelect

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for UavionixAdsbOutRfSelect

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UavionixAdsbOutRfSelect

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the ! operator.
sourceยง

impl Octal for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UavionixAdsbOutRfSelect

sourceยง

fn cmp(&self, other: &UavionixAdsbOutRfSelect) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UavionixAdsbOutRfSelect

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the ! operator.
sourceยง

impl Octal for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UavionixAdsbOutRfSelect

sourceยง

fn cmp(&self, other: &UavionixAdsbOutRfSelect) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for UavionixAdsbOutRfSelect

sourceยง

fn eq(&self, other: &UavionixAdsbOutRfSelect) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for UavionixAdsbOutRfSelect

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for UavionixAdsbOutRfSelect

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UavionixAdsbOutRfSelect

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UavionixAdsbOutRfSelect

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UavionixAdsbOutRfSelect

sourceยง

impl Eq for UavionixAdsbOutRfSelect

sourceยง

impl StructuralPartialEq for UavionixAdsbOutRfSelect

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/ardupilotmega/struct.UavionixAdsbRfHealth.html b/mavlink/ardupilotmega/struct.UavionixAdsbRfHealth.html index 208919faf7..968d607417 100644 --- a/mavlink/ardupilotmega/struct.UavionixAdsbRfHealth.html +++ b/mavlink/ardupilotmega/struct.UavionixAdsbRfHealth.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl UavionixAdsbRfHealth

source

pub const DEFAULT: Self = Self::UAVIONIX_ADSB_RF_HEALTH_INITIALIZING

Trait Implementationsยง

sourceยง

impl Binary for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UavionixAdsbRfHealth

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl UavionixAdsbRfHealth

source

pub const DEFAULT: Self = Self::UAVIONIX_ADSB_RF_HEALTH_INITIALIZING

Trait Implementationsยง

sourceยง

impl Binary for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UavionixAdsbRfHealth

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UavionixAdsbRfHealth

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for UavionixAdsbRfHealth

sourceยง

fn bitor(self, other: UavionixAdsbRfHealth) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UavionixAdsbRfHealth

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UavionixAdsbRfHealth

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for UavionixAdsbRfHealth

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UavionixAdsbRfHealth

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for UavionixAdsbRfHealth

sourceยง

fn clone(&self) -> UavionixAdsbRfHealth

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UavionixAdsbRfHealth

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UavionixAdsbRfHealth

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UavionixAdsbRfHealth

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for UavionixAdsbRfHealth

sourceยง

fn clone(&self) -> UavionixAdsbRfHealth

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UavionixAdsbRfHealth

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UavionixAdsbRfHealth

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<UavionixAdsbRfHealth> for UavionixAdsbRfHealth

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<UavionixAdsbRfHealth> for UavionixAdsbRfHealth

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for UavionixAdsbRfHealth

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UavionixAdsbRfHealth

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the ! operator.
sourceยง

impl Octal for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UavionixAdsbRfHealth

sourceยง

fn cmp(&self, other: &UavionixAdsbRfHealth) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UavionixAdsbRfHealth

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the ! operator.
sourceยง

impl Octal for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UavionixAdsbRfHealth

sourceยง

fn cmp(&self, other: &UavionixAdsbRfHealth) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for UavionixAdsbRfHealth

sourceยง

fn eq(&self, other: &UavionixAdsbRfHealth) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for UavionixAdsbRfHealth

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for UavionixAdsbRfHealth

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UavionixAdsbRfHealth

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UavionixAdsbRfHealth

sourceยง

impl Eq for UavionixAdsbRfHealth

sourceยง

impl StructuralPartialEq for UavionixAdsbRfHealth

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UavionixAdsbRfHealth

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UavionixAdsbRfHealth

sourceยง

impl Eq for UavionixAdsbRfHealth

sourceยง

impl StructuralPartialEq for UavionixAdsbRfHealth

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/ardupilotmega/struct.UtmDataAvailFlags.html b/mavlink/ardupilotmega/struct.UtmDataAvailFlags.html index c43e99b3c1..19d41683c7 100644 --- a/mavlink/ardupilotmega/struct.UtmDataAvailFlags.html +++ b/mavlink/ardupilotmega/struct.UtmDataAvailFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl UtmDataAvailFlags

source

pub const DEFAULT: Self = Self::UTM_DATA_AVAIL_FLAGS_TIME_VALID

Trait Implementationsยง

sourceยง

impl Binary for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UtmDataAvailFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UtmDataAvailFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl UtmDataAvailFlags

source

pub const DEFAULT: Self = Self::UTM_DATA_AVAIL_FLAGS_TIME_VALID

Trait Implementationsยง

sourceยง

impl Binary for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UtmDataAvailFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UtmDataAvailFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for UtmDataAvailFlags

sourceยง

fn bitor(self, other: UtmDataAvailFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UtmDataAvailFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UtmDataAvailFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for UtmDataAvailFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UtmDataAvailFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for UtmDataAvailFlags

sourceยง

fn clone(&self) -> UtmDataAvailFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UtmDataAvailFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UtmDataAvailFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = UtmDataAvailFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UtmDataAvailFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for UtmDataAvailFlags

sourceยง

fn clone(&self) -> UtmDataAvailFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UtmDataAvailFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UtmDataAvailFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<UtmDataAvailFlags> for UtmDataAvailFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<UtmDataAvailFlags> for UtmDataAvailFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for UtmDataAvailFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UtmDataAvailFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UtmDataAvailFlags

sourceยง

fn cmp(&self, other: &UtmDataAvailFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UtmDataAvailFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UtmDataAvailFlags

sourceยง

fn cmp(&self, other: &UtmDataAvailFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for UtmDataAvailFlags

sourceยง

fn eq(&self, other: &UtmDataAvailFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for UtmDataAvailFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for UtmDataAvailFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UtmDataAvailFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UtmDataAvailFlags

sourceยง

impl Eq for UtmDataAvailFlags

sourceยง

impl StructuralPartialEq for UtmDataAvailFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = UtmDataAvailFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UtmDataAvailFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UtmDataAvailFlags

sourceยง

impl Eq for UtmDataAvailFlags

sourceยง

impl StructuralPartialEq for UtmDataAvailFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/enum.MavMessage.html b/mavlink/common/enum.MavMessage.html index b913959667..981cc83a48 100644 --- a/mavlink/common/enum.MavMessage.html +++ b/mavlink/common/enum.MavMessage.html @@ -1,226 +1,226 @@ MavMessage in mavlink::common - Rust

Enum mavlink::common::MavMessage

source ยท
#[repr(u32)]
pub enum MavMessage { -
Show 221 variants RC_CHANNELS_RAW(RC_CHANNELS_RAW_DATA), - TIME_ESTIMATE_TO_TARGET(TIME_ESTIMATE_TO_TARGET_DATA), - MESSAGE_INTERVAL(MESSAGE_INTERVAL_DATA), - RESPONSE_EVENT_ERROR(RESPONSE_EVENT_ERROR_DATA), - TRAJECTORY_REPRESENTATION_WAYPOINTS(TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA), +
Show 221 variants AUTOPILOT_STATE_FOR_GIMBAL_DEVICE(AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA), + ORBIT_EXECUTION_STATUS(ORBIT_EXECUTION_STATUS_DATA), + REQUEST_EVENT(REQUEST_EVENT_DATA), + SET_MODE(SET_MODE_DATA), + CANFD_FRAME(CANFD_FRAME_DATA), + VIDEO_STREAM_INFORMATION(VIDEO_STREAM_INFORMATION_DATA), + SAFETY_SET_ALLOWED_AREA(SAFETY_SET_ALLOWED_AREA_DATA), + COMMAND_INT(COMMAND_INT_DATA), + RC_CHANNELS_OVERRIDE(RC_CHANNELS_OVERRIDE_DATA), + SCALED_IMU2(SCALED_IMU2_DATA), + ACTUATOR_CONTROL_TARGET(ACTUATOR_CONTROL_TARGET_DATA), + DATA_STREAM(DATA_STREAM_DATA), MISSION_ITEM_REACHED(MISSION_ITEM_REACHED_DATA), + HIL_RC_INPUTS_RAW(HIL_RC_INPUTS_RAW_DATA), + HIGHRES_IMU(HIGHRES_IMU_DATA), + FOLLOW_TARGET(FOLLOW_TARGET_DATA), + STATUSTEXT(STATUSTEXT_DATA), + ACTUATOR_OUTPUT_STATUS(ACTUATOR_OUTPUT_STATUS_DATA), TRAJECTORY_REPRESENTATION_BEZIER(TRAJECTORY_REPRESENTATION_BEZIER_DATA), - RAW_IMU(RAW_IMU_DATA), - SET_POSITION_TARGET_GLOBAL_INT(SET_POSITION_TARGET_GLOBAL_INT_DATA), - POSITION_TARGET_GLOBAL_INT(POSITION_TARGET_GLOBAL_INT_DATA), - HIL_OPTICAL_FLOW(HIL_OPTICAL_FLOW_DATA), - LANDING_TARGET(LANDING_TARGET_DATA), - MAG_CAL_REPORT(MAG_CAL_REPORT_DATA), - UAVCAN_NODE_INFO(UAVCAN_NODE_INFO_DATA), + CAMERA_SETTINGS(CAMERA_SETTINGS_DATA), + GLOBAL_VISION_POSITION_ESTIMATE(GLOBAL_VISION_POSITION_ESTIMATE_DATA), + OPTICAL_FLOW_RAD(OPTICAL_FLOW_RAD_DATA), + NAMED_VALUE_FLOAT(NAMED_VALUE_FLOAT_DATA), + RESOURCE_REQUEST(RESOURCE_REQUEST_DATA), + HIL_CONTROLS(HIL_CONTROLS_DATA), + GPS_INPUT(GPS_INPUT_DATA), CAMERA_TRACKING_GEO_STATUS(CAMERA_TRACKING_GEO_STATUS_DATA), - LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET(LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA), - ISBD_LINK_STATUS(ISBD_LINK_STATUS_DATA), - SMART_BATTERY_INFO(SMART_BATTERY_INFO_DATA), - ACTUATOR_OUTPUT_STATUS(ACTUATOR_OUTPUT_STATUS_DATA), - COMPONENT_INFORMATION(COMPONENT_INFORMATION_DATA), - TERRAIN_REQUEST(TERRAIN_REQUEST_DATA), - STORAGE_INFORMATION(STORAGE_INFORMATION_DATA), - CAN_FILTER_MODIFY(CAN_FILTER_MODIFY_DATA), - SCALED_PRESSURE(SCALED_PRESSURE_DATA), - LOG_DATA(LOG_DATA_DATA), - HIGH_LATENCY2(HIGH_LATENCY2_DATA), - OPEN_DRONE_ID_LOCATION(OPEN_DRONE_ID_LOCATION_DATA), - OPEN_DRONE_ID_AUTHENTICATION(OPEN_DRONE_ID_AUTHENTICATION_DATA), - ESC_STATUS(ESC_STATUS_DATA), - V2_EXTENSION(V2_EXTENSION_DATA), - ORBIT_EXECUTION_STATUS(ORBIT_EXECUTION_STATUS_DATA), - HIGH_LATENCY(HIGH_LATENCY_DATA), - SUPPORTED_TUNES(SUPPORTED_TUNES_DATA), - AIS_VESSEL(AIS_VESSEL_DATA), - FILE_TRANSFER_PROTOCOL(FILE_TRANSFER_PROTOCOL_DATA), - HIGHRES_IMU(HIGHRES_IMU_DATA), + HOME_POSITION(HOME_POSITION_DATA), + PARAM_SET(PARAM_SET_DATA), + UAVCAN_NODE_STATUS(UAVCAN_NODE_STATUS_DATA), + ONBOARD_COMPUTER_STATUS(ONBOARD_COMPUTER_STATUS_DATA), + ATTITUDE_QUATERNION(ATTITUDE_QUATERNION_DATA), MISSION_REQUEST_PARTIAL_LIST(MISSION_REQUEST_PARTIAL_LIST_DATA), - COLLISION(COLLISION_DATA), - DEBUG(DEBUG_DATA), + MISSION_CURRENT(MISSION_CURRENT_DATA), + RADIO_STATUS(RADIO_STATUS_DATA), + HIL_STATE(HIL_STATE_DATA), + TERRAIN_DATA(TERRAIN_DATA_DATA), + SCALED_PRESSURE2(SCALED_PRESSURE2_DATA), + ATT_POS_MOCAP(ATT_POS_MOCAP_DATA), + GPS_STATUS(GPS_STATUS_DATA), + MISSION_ITEM(MISSION_ITEM_DATA), + VISION_SPEED_ESTIMATE(VISION_SPEED_ESTIMATE_DATA), + SCALED_IMU(SCALED_IMU_DATA), + MISSION_COUNT(MISSION_COUNT_DATA), + PARAM_MAP_RC(PARAM_MAP_RC_DATA), + LOG_DATA(LOG_DATA_DATA), + EXTENDED_SYS_STATE(EXTENDED_SYS_STATE_DATA), SETUP_SIGNING(SETUP_SIGNING_DATA), - SCALED_PRESSURE3(SCALED_PRESSURE3_DATA), - SCALED_IMU2(SCALED_IMU2_DATA), - LOGGING_ACK(LOGGING_ACK_DATA), - VICON_POSITION_ESTIMATE(VICON_POSITION_ESTIMATE_DATA), + RC_CHANNELS_RAW(RC_CHANNELS_RAW_DATA), + GIMBAL_MANAGER_SET_ATTITUDE(GIMBAL_MANAGER_SET_ATTITUDE_DATA), + UAVCAN_NODE_INFO(UAVCAN_NODE_INFO_DATA), + COMPONENT_METADATA(COMPONENT_METADATA_DATA), + OPEN_DRONE_ID_AUTHENTICATION(OPEN_DRONE_ID_AUTHENTICATION_DATA), + SYSTEM_TIME(SYSTEM_TIME_DATA), + PARAM_VALUE(PARAM_VALUE_DATA), + MANUAL_SETPOINT(MANUAL_SETPOINT_DATA), + MISSION_SET_CURRENT(MISSION_SET_CURRENT_DATA), + OPTICAL_FLOW(OPTICAL_FLOW_DATA), + POWER_STATUS(POWER_STATUS_DATA), + TERRAIN_REQUEST(TERRAIN_REQUEST_DATA), + PARAM_REQUEST_READ(PARAM_REQUEST_READ_DATA), + TERRAIN_REPORT(TERRAIN_REPORT_DATA), + GPS_GLOBAL_ORIGIN(GPS_GLOBAL_ORIGIN_DATA), + HIL_STATE_QUATERNION(HIL_STATE_QUATERNION_DATA), + TERRAIN_CHECK(TERRAIN_CHECK_DATA), + MISSION_REQUEST_LIST(MISSION_REQUEST_LIST_DATA), + EFI_STATUS(EFI_STATUS_DATA), + SET_HOME_POSITION(SET_HOME_POSITION_DATA), + FLIGHT_INFORMATION(FLIGHT_INFORMATION_DATA), + LOGGING_DATA(LOGGING_DATA_DATA), + PARAM_EXT_SET(PARAM_EXT_SET_DATA), + MOUNT_ORIENTATION(MOUNT_ORIENTATION_DATA), + RC_CHANNELS_SCALED(RC_CHANNELS_SCALED_DATA), + GPS2_RTK(GPS2_RTK_DATA), + ATTITUDE(ATTITUDE_DATA), ESC_INFO(ESC_INFO_DATA), - PARAM_EXT_VALUE(PARAM_EXT_VALUE_DATA), + CELLULAR_STATUS(CELLULAR_STATUS_DATA), + UTM_GLOBAL_POSITION(UTM_GLOBAL_POSITION_DATA), + TUNNEL(TUNNEL_DATA), + ENCAPSULATED_DATA(ENCAPSULATED_DATA_DATA), + MEMORY_VECT(MEMORY_VECT_DATA), PLAY_TUNE_V2(PLAY_TUNE_V2_DATA), - OPEN_DRONE_ID_ARM_STATUS(OPEN_DRONE_ID_ARM_STATUS_DATA), - GIMBAL_MANAGER_STATUS(GIMBAL_MANAGER_STATUS_DATA), - MANUAL_CONTROL(MANUAL_CONTROL_DATA), - PROTOCOL_VERSION(PROTOCOL_VERSION_DATA), - CHANGE_OPERATOR_CONTROL(CHANGE_OPERATOR_CONTROL_DATA), - LOCAL_POSITION_NED(LOCAL_POSITION_NED_DATA), - HIL_SENSOR(HIL_SENSOR_DATA), - FOLLOW_TARGET(FOLLOW_TARGET_DATA), - OPEN_DRONE_ID_MESSAGE_PACK(OPEN_DRONE_ID_MESSAGE_PACK_DATA), - PARAM_MAP_RC(PARAM_MAP_RC_DATA), HYGROMETER_SENSOR(HYGROMETER_SENSOR_DATA), - STATUSTEXT(STATUSTEXT_DATA), - HIL_STATE(HIL_STATE_DATA), - POWER_STATUS(POWER_STATUS_DATA), - HEARTBEAT(HEARTBEAT_DATA), - WIND_COV(WIND_COV_DATA), - AUTOPILOT_STATE_FOR_GIMBAL_DEVICE(AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA), - GLOBAL_POSITION_INT(GLOBAL_POSITION_INT_DATA), - HIL_RC_INPUTS_RAW(HIL_RC_INPUTS_RAW_DATA), - GPS2_RAW(GPS2_RAW_DATA), - GENERATOR_STATUS(GENERATOR_STATUS_DATA), - VISION_SPEED_ESTIMATE(VISION_SPEED_ESTIMATE_DATA), - PARAM_REQUEST_READ(PARAM_REQUEST_READ_DATA), - SET_ATTITUDE_TARGET(SET_ATTITUDE_TARGET_DATA), + CELLULAR_CONFIG(CELLULAR_CONFIG_DATA), + MAG_CAL_REPORT(MAG_CAL_REPORT_DATA), + TIMESYNC(TIMESYNC_DATA), + COMPONENT_INFORMATION(COMPONENT_INFORMATION_DATA), + NAMED_VALUE_INT(NAMED_VALUE_INT_DATA), + GIMBAL_DEVICE_INFORMATION(GIMBAL_DEVICE_INFORMATION_DATA), + SAFETY_ALLOWED_AREA(SAFETY_ALLOWED_AREA_DATA), + ODOMETRY(ODOMETRY_DATA), + OPEN_DRONE_ID_SYSTEM(OPEN_DRONE_ID_SYSTEM_DATA), + ALTITUDE(ALTITUDE_DATA), PARAM_EXT_ACK(PARAM_EXT_ACK_DATA), - GIMBAL_MANAGER_SET_PITCHYAW(GIMBAL_MANAGER_SET_PITCHYAW_DATA), - PARAM_EXT_REQUEST_READ(PARAM_EXT_REQUEST_READ_DATA), - CONTROL_SYSTEM_STATE(CONTROL_SYSTEM_STATE_DATA), - TERRAIN_CHECK(TERRAIN_CHECK_DATA), - NAV_CONTROLLER_OUTPUT(NAV_CONTROLLER_OUTPUT_DATA), - MISSION_CURRENT(MISSION_CURRENT_DATA), - PARAM_REQUEST_LIST(PARAM_REQUEST_LIST_DATA), - RADIO_STATUS(RADIO_STATUS_DATA), + RESPONSE_EVENT_ERROR(RESPONSE_EVENT_ERROR_DATA), + RAW_PRESSURE(RAW_PRESSURE_DATA), + MISSION_ITEM_INT(MISSION_ITEM_INT_DATA), + SCALED_IMU3(SCALED_IMU3_DATA), + MESSAGE_INTERVAL(MESSAGE_INTERVAL_DATA), + DEBUG_VECT(DEBUG_VECT_DATA), + CAMERA_CAPTURE_STATUS(CAMERA_CAPTURE_STATUS_DATA), LOG_REQUEST_END(LOG_REQUEST_END_DATA), - VIBRATION(VIBRATION_DATA), - AUTOPILOT_VERSION(AUTOPILOT_VERSION_DATA), - MISSION_SET_CURRENT(MISSION_SET_CURRENT_DATA), - CAMERA_SETTINGS(CAMERA_SETTINGS_DATA), - MISSION_WRITE_PARTIAL_LIST(MISSION_WRITE_PARTIAL_LIST_DATA), - VIDEO_STREAM_STATUS(VIDEO_STREAM_STATUS_DATA), - EVENT(EVENT_DATA), - CANFD_FRAME(CANFD_FRAME_DATA), + FILE_TRANSFER_PROTOCOL(FILE_TRANSFER_PROTOCOL_DATA), + PARAM_EXT_REQUEST_READ(PARAM_EXT_REQUEST_READ_DATA), WINCH_STATUS(WINCH_STATUS_DATA), - DEBUG_FLOAT_ARRAY(DEBUG_FLOAT_ARRAY_DATA), - MISSION_ITEM_INT(MISSION_ITEM_INT_DATA), + OPEN_DRONE_ID_SELF_ID(OPEN_DRONE_ID_SELF_ID_DATA), + ISBD_LINK_STATUS(ISBD_LINK_STATUS_DATA), + TIME_ESTIMATE_TO_TARGET(TIME_ESTIMATE_TO_TARGET_DATA), + CAN_FILTER_MODIFY(CAN_FILTER_MODIFY_DATA), + GIMBAL_MANAGER_SET_MANUAL_CONTROL(GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA), + OPEN_DRONE_ID_MESSAGE_PACK(OPEN_DRONE_ID_MESSAGE_PACK_DATA), + TRAJECTORY_REPRESENTATION_WAYPOINTS(TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA), + GENERATOR_STATUS(GENERATOR_STATUS_DATA), + ESTIMATOR_STATUS(ESTIMATOR_STATUS_DATA), + GPS_RTCM_DATA(GPS_RTCM_DATA_DATA), + CHANGE_OPERATOR_CONTROL_ACK(CHANGE_OPERATOR_CONTROL_ACK_DATA), + POSITION_TARGET_LOCAL_NED(POSITION_TARGET_LOCAL_NED_DATA), + HIL_SENSOR(HIL_SENSOR_DATA), + DISTANCE_SENSOR(DISTANCE_SENSOR_DATA), + VIBRATION(VIBRATION_DATA), + CAMERA_TRIGGER(CAMERA_TRIGGER_DATA), + LOG_REQUEST_LIST(LOG_REQUEST_LIST_DATA), + PROTOCOL_VERSION(PROTOCOL_VERSION_DATA), + CONTROL_SYSTEM_STATE(CONTROL_SYSTEM_STATE_DATA), CAMERA_FOV_STATUS(CAMERA_FOV_STATUS_DATA), + SUPPORTED_TUNES(SUPPORTED_TUNES_DATA), OPEN_DRONE_ID_SYSTEM_UPDATE(OPEN_DRONE_ID_SYSTEM_UPDATE_DATA), - ATTITUDE_TARGET(ATTITUDE_TARGET_DATA), - MISSION_REQUEST_LIST(MISSION_REQUEST_LIST_DATA), - TUNNEL(TUNNEL_DATA), - PLAY_TUNE(PLAY_TUNE_DATA), - SET_POSITION_TARGET_LOCAL_NED(SET_POSITION_TARGET_LOCAL_NED_DATA), + WIND_COV(WIND_COV_DATA), + V2_EXTENSION(V2_EXTENSION_DATA), + CAMERA_INFORMATION(CAMERA_INFORMATION_DATA), + COLLISION(COLLISION_DATA), + PARAM_REQUEST_LIST(PARAM_REQUEST_LIST_DATA), + HIL_OPTICAL_FLOW(HIL_OPTICAL_FLOW_DATA), + GPS_INJECT_DATA(GPS_INJECT_DATA_DATA), + OBSTACLE_DISTANCE(OBSTACLE_DISTANCE_DATA), + REQUEST_DATA_STREAM(REQUEST_DATA_STREAM_DATA), + PING(PING_DATA), + GPS_RTK(GPS_RTK_DATA), + GLOBAL_POSITION_INT(GLOBAL_POSITION_INT_DATA), + POSITION_TARGET_GLOBAL_INT(POSITION_TARGET_GLOBAL_INT_DATA), + HEARTBEAT(HEARTBEAT_DATA), + CAN_FRAME(CAN_FRAME_DATA), + PARAM_EXT_VALUE(PARAM_EXT_VALUE_DATA), + GPS_RAW_INT(GPS_RAW_INT_DATA), + SERVO_OUTPUT_RAW(SERVO_OUTPUT_RAW_DATA), + NAV_CONTROLLER_OUTPUT(NAV_CONTROLLER_OUTPUT_DATA), MISSION_CLEAR_ALL(MISSION_CLEAR_ALL_DATA), - ONBOARD_COMPUTER_STATUS(ONBOARD_COMPUTER_STATUS_DATA), - RAW_PRESSURE(RAW_PRESSURE_DATA), - LOCAL_POSITION_NED_COV(LOCAL_POSITION_NED_COV_DATA), SET_ACTUATOR_CONTROL_TARGET(SET_ACTUATOR_CONTROL_TARGET_DATA), - GPS_RAW_INT(GPS_RAW_INT_DATA), - SAFETY_SET_ALLOWED_AREA(SAFETY_SET_ALLOWED_AREA_DATA), - LOG_REQUEST_DATA(LOG_REQUEST_DATA_DATA), - BUTTON_CHANGE(BUTTON_CHANGE_DATA), - RC_CHANNELS_SCALED(RC_CHANNELS_SCALED_DATA), - SCALED_IMU(SCALED_IMU_DATA), - NAMED_VALUE_INT(NAMED_VALUE_INT_DATA), - ENCAPSULATED_DATA(ENCAPSULATED_DATA_DATA), - COMMAND_INT(COMMAND_INT_DATA), - OPTICAL_FLOW_RAD(OPTICAL_FLOW_RAD_DATA), - CAMERA_INFORMATION(CAMERA_INFORMATION_DATA), - WIFI_CONFIG_AP(WIFI_CONFIG_AP_DATA), - TERRAIN_REPORT(TERRAIN_REPORT_DATA), - GLOBAL_VISION_POSITION_ESTIMATE(GLOBAL_VISION_POSITION_ESTIMATE_DATA), - BATTERY_STATUS(BATTERY_STATUS_DATA), - OPEN_DRONE_ID_BASIC_ID(OPEN_DRONE_ID_BASIC_ID_DATA), - CHANGE_OPERATOR_CONTROL_ACK(CHANGE_OPERATOR_CONTROL_ACK_DATA), - HIL_ACTUATOR_CONTROLS(HIL_ACTUATOR_CONTROLS_DATA), - REQUEST_EVENT(REQUEST_EVENT_DATA), - SYS_STATUS(SYS_STATUS_DATA), - POSITION_TARGET_LOCAL_NED(POSITION_TARGET_LOCAL_NED_DATA), - COMMAND_LONG(COMMAND_LONG_DATA), - GIMBAL_DEVICE_ATTITUDE_STATUS(GIMBAL_DEVICE_ATTITUDE_STATUS_DATA), + CAMERA_TRACKING_IMAGE_STATUS(CAMERA_TRACKING_IMAGE_STATUS_DATA), + GIMBAL_MANAGER_SET_PITCHYAW(GIMBAL_MANAGER_SET_PITCHYAW_DATA), + EVENT(EVENT_DATA), + VICON_POSITION_ESTIMATE(VICON_POSITION_ESTIMATE_DATA), + OPEN_DRONE_ID_ARM_STATUS(OPEN_DRONE_ID_ARM_STATUS_DATA), + SET_POSITION_TARGET_LOCAL_NED(SET_POSITION_TARGET_LOCAL_NED_DATA), + MISSION_ACK(MISSION_ACK_DATA), + CHANGE_OPERATOR_CONTROL(CHANGE_OPERATOR_CONTROL_DATA), + MANUAL_CONTROL(MANUAL_CONTROL_DATA), + RC_CHANNELS(RC_CHANNELS_DATA), + LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET(LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA), + HIGH_LATENCY2(HIGH_LATENCY2_DATA), + LOG_ERASE(LOG_ERASE_DATA), + DEBUG(DEBUG_DATA), + STORAGE_INFORMATION(STORAGE_INFORMATION_DATA), + LINK_NODE_STATUS(LINK_NODE_STATUS_DATA), ATTITUDE_QUATERNION_COV(ATTITUDE_QUATERNION_COV_DATA), - MISSION_REQUEST(MISSION_REQUEST_DATA), - HIL_CONTROLS(HIL_CONTROLS_DATA), - DATA_TRANSMISSION_HANDSHAKE(DATA_TRANSMISSION_HANDSHAKE_DATA), - ESTIMATOR_STATUS(ESTIMATOR_STATUS_DATA), - SERIAL_CONTROL(SERIAL_CONTROL_DATA), - LOGGING_DATA(LOGGING_DATA_DATA), - EXTENDED_SYS_STATE(EXTENDED_SYS_STATE_DATA), - SET_HOME_POSITION(SET_HOME_POSITION_DATA), - MEMORY_VECT(MEMORY_VECT_DATA), - RAW_RPM(RAW_RPM_DATA), - GLOBAL_POSITION_INT_COV(GLOBAL_POSITION_INT_COV_DATA), - GPS2_RTK(GPS2_RTK_DATA), - GPS_GLOBAL_ORIGIN(GPS_GLOBAL_ORIGIN_DATA), - OPTICAL_FLOW(OPTICAL_FLOW_DATA), - TERRAIN_DATA(TERRAIN_DATA_DATA), - FLIGHT_INFORMATION(FLIGHT_INFORMATION_DATA), - SCALED_PRESSURE2(SCALED_PRESSURE2_DATA), - CAMERA_CAPTURE_STATUS(CAMERA_CAPTURE_STATUS_DATA), - SAFETY_ALLOWED_AREA(SAFETY_ALLOWED_AREA_DATA), - DATA_STREAM(DATA_STREAM_DATA), - ATTITUDE(ATTITUDE_DATA), - HIL_STATE_QUATERNION(HIL_STATE_QUATERNION_DATA), - LOGGING_DATA_ACKED(LOGGING_DATA_ACKED_DATA), - VIDEO_STREAM_INFORMATION(VIDEO_STREAM_INFORMATION_DATA), - DISTANCE_SENSOR(DISTANCE_SENSOR_DATA), + LOGGING_ACK(LOGGING_ACK_DATA), AUTH_KEY(AUTH_KEY_DATA), - RC_CHANNELS_OVERRIDE(RC_CHANNELS_OVERRIDE_DATA), - PARAM_EXT_SET(PARAM_EXT_SET_DATA), - ADSB_VEHICLE(ADSB_VEHICLE_DATA), - SERVO_OUTPUT_RAW(SERVO_OUTPUT_RAW_DATA), + CAMERA_IMAGE_CAPTURED(CAMERA_IMAGE_CAPTURED_DATA), + GIMBAL_DEVICE_SET_ATTITUDE(GIMBAL_DEVICE_SET_ATTITUDE_DATA), + OPEN_DRONE_ID_OPERATOR_ID(OPEN_DRONE_ID_OPERATOR_ID_DATA), + SYS_STATUS(SYS_STATUS_DATA), + SET_POSITION_TARGET_GLOBAL_INT(SET_POSITION_TARGET_GLOBAL_INT_DATA), SIM_STATE(SIM_STATE_DATA), - FENCE_STATUS(FENCE_STATUS_DATA), - ATTITUDE_QUATERNION(ATTITUDE_QUATERNION_DATA), - ATT_POS_MOCAP(ATT_POS_MOCAP_DATA), - MISSION_REQUEST_INT(MISSION_REQUEST_INT_DATA), - COMMAND_ACK(COMMAND_ACK_DATA), - MISSION_COUNT(MISSION_COUNT_DATA), + ADSB_VEHICLE(ADSB_VEHICLE_DATA), + BUTTON_CHANGE(BUTTON_CHANGE_DATA), + ESC_STATUS(ESC_STATUS_DATA), VISION_POSITION_ESTIMATE(VISION_POSITION_ESTIMATE_DATA), - TIMESYNC(TIMESYNC_DATA), - GPS_INPUT(GPS_INPUT_DATA), - CAMERA_IMAGE_CAPTURED(CAMERA_IMAGE_CAPTURED_DATA), - CAMERA_TRACKING_IMAGE_STATUS(CAMERA_TRACKING_IMAGE_STATUS_DATA), - GIMBAL_MANAGER_INFORMATION(GIMBAL_MANAGER_INFORMATION_DATA), - UAVCAN_NODE_STATUS(UAVCAN_NODE_STATUS_DATA), - GPS_INJECT_DATA(GPS_INJECT_DATA_DATA), + AUTOPILOT_VERSION(AUTOPILOT_VERSION_DATA), + PLAY_TUNE(PLAY_TUNE_DATA), PARAM_EXT_REQUEST_LIST(PARAM_EXT_REQUEST_LIST_DATA), - PARAM_SET(PARAM_SET_DATA), - GPS_RTK(GPS_RTK_DATA), - COMMAND_CANCEL(COMMAND_CANCEL_DATA), - LOG_ENTRY(LOG_ENTRY_DATA), - MISSION_ITEM(MISSION_ITEM_DATA), - ACTUATOR_CONTROL_TARGET(ACTUATOR_CONTROL_TARGET_DATA), - SCALED_IMU3(SCALED_IMU3_DATA), + SET_ATTITUDE_TARGET(SET_ATTITUDE_TARGET_DATA), + LOG_REQUEST_DATA(LOG_REQUEST_DATA_DATA), + COMMAND_ACK(COMMAND_ACK_DATA), + GLOBAL_POSITION_INT_COV(GLOBAL_POSITION_INT_COV_DATA), + SCALED_PRESSURE3(SCALED_PRESSURE3_DATA), + LOGGING_DATA_ACKED(LOGGING_DATA_ACKED_DATA), + HIGH_LATENCY(HIGH_LATENCY_DATA), + VIDEO_STREAM_STATUS(VIDEO_STREAM_STATUS_DATA), VFR_HUD(VFR_HUD_DATA), - RESOURCE_REQUEST(RESOURCE_REQUEST_DATA), - GPS_RTCM_DATA(GPS_RTCM_DATA_DATA), - OBSTACLE_DISTANCE(OBSTACLE_DISTANCE_DATA), - NAMED_VALUE_FLOAT(NAMED_VALUE_FLOAT_DATA), - LOG_REQUEST_LIST(LOG_REQUEST_LIST_DATA), - LINK_NODE_STATUS(LINK_NODE_STATUS_DATA), - GPS_STATUS(GPS_STATUS_DATA), - MANUAL_SETPOINT(MANUAL_SETPOINT_DATA), - RC_CHANNELS(RC_CHANNELS_DATA), - ALTITUDE(ALTITUDE_DATA), - ODOMETRY(ODOMETRY_DATA), + COMMAND_LONG(COMMAND_LONG_DATA), + GIMBAL_MANAGER_STATUS(GIMBAL_MANAGER_STATUS_DATA), + RAW_RPM(RAW_RPM_DATA), + WIFI_CONFIG_AP(WIFI_CONFIG_AP_DATA), + DEBUG_FLOAT_ARRAY(DEBUG_FLOAT_ARRAY_DATA), + LOCAL_POSITION_NED_COV(LOCAL_POSITION_NED_COV_DATA), + SMART_BATTERY_INFO(SMART_BATTERY_INFO_DATA), + CURRENT_EVENT_SEQUENCE(CURRENT_EVENT_SEQUENCE_DATA), + ATTITUDE_TARGET(ATTITUDE_TARGET_DATA), + LOCAL_POSITION_NED(LOCAL_POSITION_NED_DATA), + RAW_IMU(RAW_IMU_DATA), + HIL_ACTUATOR_CONTROLS(HIL_ACTUATOR_CONTROLS_DATA), + SERIAL_CONTROL(SERIAL_CONTROL_DATA), + MISSION_REQUEST_INT(MISSION_REQUEST_INT_DATA), + BATTERY_STATUS(BATTERY_STATUS_DATA), + OPEN_DRONE_ID_BASIC_ID(OPEN_DRONE_ID_BASIC_ID_DATA), + OPEN_DRONE_ID_LOCATION(OPEN_DRONE_ID_LOCATION_DATA), + SET_GPS_GLOBAL_ORIGIN(SET_GPS_GLOBAL_ORIGIN_DATA), + COMMAND_CANCEL(COMMAND_CANCEL_DATA), + GPS2_RAW(GPS2_RAW_DATA), WHEEL_DISTANCE(WHEEL_DISTANCE_DATA), - HOME_POSITION(HOME_POSITION_DATA), - OPEN_DRONE_ID_SELF_ID(OPEN_DRONE_ID_SELF_ID_DATA), - OPEN_DRONE_ID_SYSTEM(OPEN_DRONE_ID_SYSTEM_DATA), - CAMERA_TRIGGER(CAMERA_TRIGGER_DATA), - SET_MODE(SET_MODE_DATA), - EFI_STATUS(EFI_STATUS_DATA), - PING(PING_DATA), - PARAM_VALUE(PARAM_VALUE_DATA), + DATA_TRANSMISSION_HANDSHAKE(DATA_TRANSMISSION_HANDSHAKE_DATA), + FENCE_STATUS(FENCE_STATUS_DATA), + MISSION_WRITE_PARTIAL_LIST(MISSION_WRITE_PARTIAL_LIST_DATA), + MISSION_REQUEST(MISSION_REQUEST_DATA), + GIMBAL_MANAGER_INFORMATION(GIMBAL_MANAGER_INFORMATION_DATA), + GIMBAL_DEVICE_ATTITUDE_STATUS(GIMBAL_DEVICE_ATTITUDE_STATUS_DATA), + LANDING_TARGET(LANDING_TARGET_DATA), + AIS_VESSEL(AIS_VESSEL_DATA), HIL_GPS(HIL_GPS_DATA), - GIMBAL_DEVICE_INFORMATION(GIMBAL_DEVICE_INFORMATION_DATA), - CAN_FRAME(CAN_FRAME_DATA), - OPEN_DRONE_ID_OPERATOR_ID(OPEN_DRONE_ID_OPERATOR_ID_DATA), - CELLULAR_CONFIG(CELLULAR_CONFIG_DATA), - COMPONENT_METADATA(COMPONENT_METADATA_DATA), - GIMBAL_MANAGER_SET_ATTITUDE(GIMBAL_MANAGER_SET_ATTITUDE_DATA), - GIMBAL_DEVICE_SET_ATTITUDE(GIMBAL_DEVICE_SET_ATTITUDE_DATA), - REQUEST_DATA_STREAM(REQUEST_DATA_STREAM_DATA), - SYSTEM_TIME(SYSTEM_TIME_DATA), - GIMBAL_MANAGER_SET_MANUAL_CONTROL(GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA), - UTM_GLOBAL_POSITION(UTM_GLOBAL_POSITION_DATA), - LOG_ERASE(LOG_ERASE_DATA), - SET_GPS_GLOBAL_ORIGIN(SET_GPS_GLOBAL_ORIGIN_DATA), - CELLULAR_STATUS(CELLULAR_STATUS_DATA), - MOUNT_ORIENTATION(MOUNT_ORIENTATION_DATA), - CURRENT_EVENT_SEQUENCE(CURRENT_EVENT_SEQUENCE_DATA), - MISSION_ACK(MISSION_ACK_DATA), - DEBUG_VECT(DEBUG_VECT_DATA), -
}

Variantsยง

ยง

RC_CHANNELS_RAW(RC_CHANNELS_RAW_DATA)

ยง

TIME_ESTIMATE_TO_TARGET(TIME_ESTIMATE_TO_TARGET_DATA)

ยง

MESSAGE_INTERVAL(MESSAGE_INTERVAL_DATA)

ยง

RESPONSE_EVENT_ERROR(RESPONSE_EVENT_ERROR_DATA)

ยง

TRAJECTORY_REPRESENTATION_WAYPOINTS(TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA)

ยง

MISSION_ITEM_REACHED(MISSION_ITEM_REACHED_DATA)

ยง

TRAJECTORY_REPRESENTATION_BEZIER(TRAJECTORY_REPRESENTATION_BEZIER_DATA)

ยง

RAW_IMU(RAW_IMU_DATA)

ยง

SET_POSITION_TARGET_GLOBAL_INT(SET_POSITION_TARGET_GLOBAL_INT_DATA)

ยง

POSITION_TARGET_GLOBAL_INT(POSITION_TARGET_GLOBAL_INT_DATA)

ยง

HIL_OPTICAL_FLOW(HIL_OPTICAL_FLOW_DATA)

ยง

LANDING_TARGET(LANDING_TARGET_DATA)

ยง

MAG_CAL_REPORT(MAG_CAL_REPORT_DATA)

ยง

UAVCAN_NODE_INFO(UAVCAN_NODE_INFO_DATA)

ยง

CAMERA_TRACKING_GEO_STATUS(CAMERA_TRACKING_GEO_STATUS_DATA)

ยง

LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET(LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA)

ยง

SMART_BATTERY_INFO(SMART_BATTERY_INFO_DATA)

ยง

ACTUATOR_OUTPUT_STATUS(ACTUATOR_OUTPUT_STATUS_DATA)

ยง

COMPONENT_INFORMATION(COMPONENT_INFORMATION_DATA)

ยง

TERRAIN_REQUEST(TERRAIN_REQUEST_DATA)

ยง

STORAGE_INFORMATION(STORAGE_INFORMATION_DATA)

ยง

CAN_FILTER_MODIFY(CAN_FILTER_MODIFY_DATA)

ยง

SCALED_PRESSURE(SCALED_PRESSURE_DATA)

ยง

LOG_DATA(LOG_DATA_DATA)

ยง

HIGH_LATENCY2(HIGH_LATENCY2_DATA)

ยง

OPEN_DRONE_ID_LOCATION(OPEN_DRONE_ID_LOCATION_DATA)

ยง

OPEN_DRONE_ID_AUTHENTICATION(OPEN_DRONE_ID_AUTHENTICATION_DATA)

ยง

ESC_STATUS(ESC_STATUS_DATA)

ยง

V2_EXTENSION(V2_EXTENSION_DATA)

ยง

ORBIT_EXECUTION_STATUS(ORBIT_EXECUTION_STATUS_DATA)

ยง

HIGH_LATENCY(HIGH_LATENCY_DATA)

ยง

SUPPORTED_TUNES(SUPPORTED_TUNES_DATA)

ยง

AIS_VESSEL(AIS_VESSEL_DATA)

ยง

FILE_TRANSFER_PROTOCOL(FILE_TRANSFER_PROTOCOL_DATA)

ยง

HIGHRES_IMU(HIGHRES_IMU_DATA)

ยง

MISSION_REQUEST_PARTIAL_LIST(MISSION_REQUEST_PARTIAL_LIST_DATA)

ยง

COLLISION(COLLISION_DATA)

ยง

DEBUG(DEBUG_DATA)

ยง

SETUP_SIGNING(SETUP_SIGNING_DATA)

ยง

SCALED_PRESSURE3(SCALED_PRESSURE3_DATA)

ยง

SCALED_IMU2(SCALED_IMU2_DATA)

ยง

LOGGING_ACK(LOGGING_ACK_DATA)

ยง

VICON_POSITION_ESTIMATE(VICON_POSITION_ESTIMATE_DATA)

ยง

ESC_INFO(ESC_INFO_DATA)

ยง

PARAM_EXT_VALUE(PARAM_EXT_VALUE_DATA)

ยง

PLAY_TUNE_V2(PLAY_TUNE_V2_DATA)

ยง

OPEN_DRONE_ID_ARM_STATUS(OPEN_DRONE_ID_ARM_STATUS_DATA)

ยง

GIMBAL_MANAGER_STATUS(GIMBAL_MANAGER_STATUS_DATA)

ยง

MANUAL_CONTROL(MANUAL_CONTROL_DATA)

ยง

PROTOCOL_VERSION(PROTOCOL_VERSION_DATA)

ยง

CHANGE_OPERATOR_CONTROL(CHANGE_OPERATOR_CONTROL_DATA)

ยง

LOCAL_POSITION_NED(LOCAL_POSITION_NED_DATA)

ยง

HIL_SENSOR(HIL_SENSOR_DATA)

ยง

FOLLOW_TARGET(FOLLOW_TARGET_DATA)

ยง

OPEN_DRONE_ID_MESSAGE_PACK(OPEN_DRONE_ID_MESSAGE_PACK_DATA)

ยง

PARAM_MAP_RC(PARAM_MAP_RC_DATA)

ยง

HYGROMETER_SENSOR(HYGROMETER_SENSOR_DATA)

ยง

STATUSTEXT(STATUSTEXT_DATA)

ยง

HIL_STATE(HIL_STATE_DATA)

ยง

POWER_STATUS(POWER_STATUS_DATA)

ยง

HEARTBEAT(HEARTBEAT_DATA)

ยง

WIND_COV(WIND_COV_DATA)

ยง

AUTOPILOT_STATE_FOR_GIMBAL_DEVICE(AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA)

ยง

GLOBAL_POSITION_INT(GLOBAL_POSITION_INT_DATA)

ยง

HIL_RC_INPUTS_RAW(HIL_RC_INPUTS_RAW_DATA)

ยง

GPS2_RAW(GPS2_RAW_DATA)

ยง

GENERATOR_STATUS(GENERATOR_STATUS_DATA)

ยง

VISION_SPEED_ESTIMATE(VISION_SPEED_ESTIMATE_DATA)

ยง

PARAM_REQUEST_READ(PARAM_REQUEST_READ_DATA)

ยง

SET_ATTITUDE_TARGET(SET_ATTITUDE_TARGET_DATA)

ยง

PARAM_EXT_ACK(PARAM_EXT_ACK_DATA)

ยง

GIMBAL_MANAGER_SET_PITCHYAW(GIMBAL_MANAGER_SET_PITCHYAW_DATA)

ยง

PARAM_EXT_REQUEST_READ(PARAM_EXT_REQUEST_READ_DATA)

ยง

CONTROL_SYSTEM_STATE(CONTROL_SYSTEM_STATE_DATA)

ยง

TERRAIN_CHECK(TERRAIN_CHECK_DATA)

ยง

NAV_CONTROLLER_OUTPUT(NAV_CONTROLLER_OUTPUT_DATA)

ยง

MISSION_CURRENT(MISSION_CURRENT_DATA)

ยง

PARAM_REQUEST_LIST(PARAM_REQUEST_LIST_DATA)

ยง

RADIO_STATUS(RADIO_STATUS_DATA)

ยง

LOG_REQUEST_END(LOG_REQUEST_END_DATA)

ยง

VIBRATION(VIBRATION_DATA)

ยง

AUTOPILOT_VERSION(AUTOPILOT_VERSION_DATA)

ยง

MISSION_SET_CURRENT(MISSION_SET_CURRENT_DATA)

ยง

CAMERA_SETTINGS(CAMERA_SETTINGS_DATA)

ยง

MISSION_WRITE_PARTIAL_LIST(MISSION_WRITE_PARTIAL_LIST_DATA)

ยง

VIDEO_STREAM_STATUS(VIDEO_STREAM_STATUS_DATA)

ยง

EVENT(EVENT_DATA)

ยง

CANFD_FRAME(CANFD_FRAME_DATA)

ยง

WINCH_STATUS(WINCH_STATUS_DATA)

ยง

DEBUG_FLOAT_ARRAY(DEBUG_FLOAT_ARRAY_DATA)

ยง

MISSION_ITEM_INT(MISSION_ITEM_INT_DATA)

ยง

CAMERA_FOV_STATUS(CAMERA_FOV_STATUS_DATA)

ยง

OPEN_DRONE_ID_SYSTEM_UPDATE(OPEN_DRONE_ID_SYSTEM_UPDATE_DATA)

ยง

ATTITUDE_TARGET(ATTITUDE_TARGET_DATA)

ยง

MISSION_REQUEST_LIST(MISSION_REQUEST_LIST_DATA)

ยง

TUNNEL(TUNNEL_DATA)

ยง

PLAY_TUNE(PLAY_TUNE_DATA)

ยง

SET_POSITION_TARGET_LOCAL_NED(SET_POSITION_TARGET_LOCAL_NED_DATA)

ยง

MISSION_CLEAR_ALL(MISSION_CLEAR_ALL_DATA)

ยง

ONBOARD_COMPUTER_STATUS(ONBOARD_COMPUTER_STATUS_DATA)

ยง

RAW_PRESSURE(RAW_PRESSURE_DATA)

ยง

LOCAL_POSITION_NED_COV(LOCAL_POSITION_NED_COV_DATA)

ยง

SET_ACTUATOR_CONTROL_TARGET(SET_ACTUATOR_CONTROL_TARGET_DATA)

ยง

GPS_RAW_INT(GPS_RAW_INT_DATA)

ยง

SAFETY_SET_ALLOWED_AREA(SAFETY_SET_ALLOWED_AREA_DATA)

ยง

LOG_REQUEST_DATA(LOG_REQUEST_DATA_DATA)

ยง

BUTTON_CHANGE(BUTTON_CHANGE_DATA)

ยง

RC_CHANNELS_SCALED(RC_CHANNELS_SCALED_DATA)

ยง

SCALED_IMU(SCALED_IMU_DATA)

ยง

NAMED_VALUE_INT(NAMED_VALUE_INT_DATA)

ยง

ENCAPSULATED_DATA(ENCAPSULATED_DATA_DATA)

ยง

COMMAND_INT(COMMAND_INT_DATA)

ยง

OPTICAL_FLOW_RAD(OPTICAL_FLOW_RAD_DATA)

ยง

CAMERA_INFORMATION(CAMERA_INFORMATION_DATA)

ยง

WIFI_CONFIG_AP(WIFI_CONFIG_AP_DATA)

ยง

TERRAIN_REPORT(TERRAIN_REPORT_DATA)

ยง

GLOBAL_VISION_POSITION_ESTIMATE(GLOBAL_VISION_POSITION_ESTIMATE_DATA)

ยง

BATTERY_STATUS(BATTERY_STATUS_DATA)

ยง

OPEN_DRONE_ID_BASIC_ID(OPEN_DRONE_ID_BASIC_ID_DATA)

ยง

CHANGE_OPERATOR_CONTROL_ACK(CHANGE_OPERATOR_CONTROL_ACK_DATA)

ยง

HIL_ACTUATOR_CONTROLS(HIL_ACTUATOR_CONTROLS_DATA)

ยง

REQUEST_EVENT(REQUEST_EVENT_DATA)

ยง

SYS_STATUS(SYS_STATUS_DATA)

ยง

POSITION_TARGET_LOCAL_NED(POSITION_TARGET_LOCAL_NED_DATA)

ยง

COMMAND_LONG(COMMAND_LONG_DATA)

ยง

GIMBAL_DEVICE_ATTITUDE_STATUS(GIMBAL_DEVICE_ATTITUDE_STATUS_DATA)

ยง

ATTITUDE_QUATERNION_COV(ATTITUDE_QUATERNION_COV_DATA)

ยง

MISSION_REQUEST(MISSION_REQUEST_DATA)

ยง

HIL_CONTROLS(HIL_CONTROLS_DATA)

ยง

DATA_TRANSMISSION_HANDSHAKE(DATA_TRANSMISSION_HANDSHAKE_DATA)

ยง

ESTIMATOR_STATUS(ESTIMATOR_STATUS_DATA)

ยง

SERIAL_CONTROL(SERIAL_CONTROL_DATA)

ยง

LOGGING_DATA(LOGGING_DATA_DATA)

ยง

EXTENDED_SYS_STATE(EXTENDED_SYS_STATE_DATA)

ยง

SET_HOME_POSITION(SET_HOME_POSITION_DATA)

ยง

MEMORY_VECT(MEMORY_VECT_DATA)

ยง

RAW_RPM(RAW_RPM_DATA)

ยง

GLOBAL_POSITION_INT_COV(GLOBAL_POSITION_INT_COV_DATA)

ยง

GPS2_RTK(GPS2_RTK_DATA)

ยง

GPS_GLOBAL_ORIGIN(GPS_GLOBAL_ORIGIN_DATA)

ยง

OPTICAL_FLOW(OPTICAL_FLOW_DATA)

ยง

TERRAIN_DATA(TERRAIN_DATA_DATA)

ยง

FLIGHT_INFORMATION(FLIGHT_INFORMATION_DATA)

ยง

SCALED_PRESSURE2(SCALED_PRESSURE2_DATA)

ยง

CAMERA_CAPTURE_STATUS(CAMERA_CAPTURE_STATUS_DATA)

ยง

SAFETY_ALLOWED_AREA(SAFETY_ALLOWED_AREA_DATA)

ยง

DATA_STREAM(DATA_STREAM_DATA)

ยง

ATTITUDE(ATTITUDE_DATA)

ยง

HIL_STATE_QUATERNION(HIL_STATE_QUATERNION_DATA)

ยง

LOGGING_DATA_ACKED(LOGGING_DATA_ACKED_DATA)

ยง

VIDEO_STREAM_INFORMATION(VIDEO_STREAM_INFORMATION_DATA)

ยง

DISTANCE_SENSOR(DISTANCE_SENSOR_DATA)

ยง

AUTH_KEY(AUTH_KEY_DATA)

ยง

RC_CHANNELS_OVERRIDE(RC_CHANNELS_OVERRIDE_DATA)

ยง

PARAM_EXT_SET(PARAM_EXT_SET_DATA)

ยง

ADSB_VEHICLE(ADSB_VEHICLE_DATA)

ยง

SERVO_OUTPUT_RAW(SERVO_OUTPUT_RAW_DATA)

ยง

SIM_STATE(SIM_STATE_DATA)

ยง

FENCE_STATUS(FENCE_STATUS_DATA)

ยง

ATTITUDE_QUATERNION(ATTITUDE_QUATERNION_DATA)

ยง

ATT_POS_MOCAP(ATT_POS_MOCAP_DATA)

ยง

MISSION_REQUEST_INT(MISSION_REQUEST_INT_DATA)

ยง

COMMAND_ACK(COMMAND_ACK_DATA)

ยง

MISSION_COUNT(MISSION_COUNT_DATA)

ยง

VISION_POSITION_ESTIMATE(VISION_POSITION_ESTIMATE_DATA)

ยง

TIMESYNC(TIMESYNC_DATA)

ยง

GPS_INPUT(GPS_INPUT_DATA)

ยง

CAMERA_IMAGE_CAPTURED(CAMERA_IMAGE_CAPTURED_DATA)

ยง

CAMERA_TRACKING_IMAGE_STATUS(CAMERA_TRACKING_IMAGE_STATUS_DATA)

ยง

GIMBAL_MANAGER_INFORMATION(GIMBAL_MANAGER_INFORMATION_DATA)

ยง

UAVCAN_NODE_STATUS(UAVCAN_NODE_STATUS_DATA)

ยง

GPS_INJECT_DATA(GPS_INJECT_DATA_DATA)

ยง

PARAM_EXT_REQUEST_LIST(PARAM_EXT_REQUEST_LIST_DATA)

ยง

PARAM_SET(PARAM_SET_DATA)

ยง

GPS_RTK(GPS_RTK_DATA)

ยง

COMMAND_CANCEL(COMMAND_CANCEL_DATA)

ยง

LOG_ENTRY(LOG_ENTRY_DATA)

ยง

MISSION_ITEM(MISSION_ITEM_DATA)

ยง

ACTUATOR_CONTROL_TARGET(ACTUATOR_CONTROL_TARGET_DATA)

ยง

SCALED_IMU3(SCALED_IMU3_DATA)

ยง

VFR_HUD(VFR_HUD_DATA)

ยง

RESOURCE_REQUEST(RESOURCE_REQUEST_DATA)

ยง

GPS_RTCM_DATA(GPS_RTCM_DATA_DATA)

ยง

OBSTACLE_DISTANCE(OBSTACLE_DISTANCE_DATA)

ยง

NAMED_VALUE_FLOAT(NAMED_VALUE_FLOAT_DATA)

ยง

LOG_REQUEST_LIST(LOG_REQUEST_LIST_DATA)

ยง

GPS_STATUS(GPS_STATUS_DATA)

ยง

MANUAL_SETPOINT(MANUAL_SETPOINT_DATA)

ยง

RC_CHANNELS(RC_CHANNELS_DATA)

ยง

ALTITUDE(ALTITUDE_DATA)

ยง

ODOMETRY(ODOMETRY_DATA)

ยง

WHEEL_DISTANCE(WHEEL_DISTANCE_DATA)

ยง

HOME_POSITION(HOME_POSITION_DATA)

ยง

OPEN_DRONE_ID_SELF_ID(OPEN_DRONE_ID_SELF_ID_DATA)

ยง

OPEN_DRONE_ID_SYSTEM(OPEN_DRONE_ID_SYSTEM_DATA)

ยง

CAMERA_TRIGGER(CAMERA_TRIGGER_DATA)

ยง

SET_MODE(SET_MODE_DATA)

ยง

EFI_STATUS(EFI_STATUS_DATA)

ยง

PING(PING_DATA)

ยง

PARAM_VALUE(PARAM_VALUE_DATA)

ยง

HIL_GPS(HIL_GPS_DATA)

ยง

GIMBAL_DEVICE_INFORMATION(GIMBAL_DEVICE_INFORMATION_DATA)

ยง

CAN_FRAME(CAN_FRAME_DATA)

ยง

OPEN_DRONE_ID_OPERATOR_ID(OPEN_DRONE_ID_OPERATOR_ID_DATA)

ยง

CELLULAR_CONFIG(CELLULAR_CONFIG_DATA)

ยง

COMPONENT_METADATA(COMPONENT_METADATA_DATA)

ยง

GIMBAL_MANAGER_SET_ATTITUDE(GIMBAL_MANAGER_SET_ATTITUDE_DATA)

ยง

GIMBAL_DEVICE_SET_ATTITUDE(GIMBAL_DEVICE_SET_ATTITUDE_DATA)

ยง

REQUEST_DATA_STREAM(REQUEST_DATA_STREAM_DATA)

ยง

SYSTEM_TIME(SYSTEM_TIME_DATA)

ยง

GIMBAL_MANAGER_SET_MANUAL_CONTROL(GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA)

ยง

UTM_GLOBAL_POSITION(UTM_GLOBAL_POSITION_DATA)

ยง

LOG_ERASE(LOG_ERASE_DATA)

ยง

SET_GPS_GLOBAL_ORIGIN(SET_GPS_GLOBAL_ORIGIN_DATA)

ยง

CELLULAR_STATUS(CELLULAR_STATUS_DATA)

ยง

MOUNT_ORIENTATION(MOUNT_ORIENTATION_DATA)

ยง

CURRENT_EVENT_SEQUENCE(CURRENT_EVENT_SEQUENCE_DATA)

ยง

MISSION_ACK(MISSION_ACK_DATA)

ยง

DEBUG_VECT(DEBUG_VECT_DATA)

Trait Implementationsยง

sourceยง

impl Clone for MavMessage

sourceยง

fn clone(&self) -> MavMessage

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavMessage

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl<'de> Deserialize<'de> for MavMessage

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + LOG_ENTRY(LOG_ENTRY_DATA), + SCALED_PRESSURE(SCALED_PRESSURE_DATA), +

}

Variantsยง

ยง

AUTOPILOT_STATE_FOR_GIMBAL_DEVICE(AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA)

ยง

ORBIT_EXECUTION_STATUS(ORBIT_EXECUTION_STATUS_DATA)

ยง

REQUEST_EVENT(REQUEST_EVENT_DATA)

ยง

SET_MODE(SET_MODE_DATA)

ยง

CANFD_FRAME(CANFD_FRAME_DATA)

ยง

VIDEO_STREAM_INFORMATION(VIDEO_STREAM_INFORMATION_DATA)

ยง

SAFETY_SET_ALLOWED_AREA(SAFETY_SET_ALLOWED_AREA_DATA)

ยง

COMMAND_INT(COMMAND_INT_DATA)

ยง

RC_CHANNELS_OVERRIDE(RC_CHANNELS_OVERRIDE_DATA)

ยง

SCALED_IMU2(SCALED_IMU2_DATA)

ยง

ACTUATOR_CONTROL_TARGET(ACTUATOR_CONTROL_TARGET_DATA)

ยง

DATA_STREAM(DATA_STREAM_DATA)

ยง

MISSION_ITEM_REACHED(MISSION_ITEM_REACHED_DATA)

ยง

HIL_RC_INPUTS_RAW(HIL_RC_INPUTS_RAW_DATA)

ยง

HIGHRES_IMU(HIGHRES_IMU_DATA)

ยง

FOLLOW_TARGET(FOLLOW_TARGET_DATA)

ยง

STATUSTEXT(STATUSTEXT_DATA)

ยง

ACTUATOR_OUTPUT_STATUS(ACTUATOR_OUTPUT_STATUS_DATA)

ยง

TRAJECTORY_REPRESENTATION_BEZIER(TRAJECTORY_REPRESENTATION_BEZIER_DATA)

ยง

CAMERA_SETTINGS(CAMERA_SETTINGS_DATA)

ยง

GLOBAL_VISION_POSITION_ESTIMATE(GLOBAL_VISION_POSITION_ESTIMATE_DATA)

ยง

OPTICAL_FLOW_RAD(OPTICAL_FLOW_RAD_DATA)

ยง

NAMED_VALUE_FLOAT(NAMED_VALUE_FLOAT_DATA)

ยง

RESOURCE_REQUEST(RESOURCE_REQUEST_DATA)

ยง

HIL_CONTROLS(HIL_CONTROLS_DATA)

ยง

GPS_INPUT(GPS_INPUT_DATA)

ยง

CAMERA_TRACKING_GEO_STATUS(CAMERA_TRACKING_GEO_STATUS_DATA)

ยง

HOME_POSITION(HOME_POSITION_DATA)

ยง

PARAM_SET(PARAM_SET_DATA)

ยง

UAVCAN_NODE_STATUS(UAVCAN_NODE_STATUS_DATA)

ยง

ONBOARD_COMPUTER_STATUS(ONBOARD_COMPUTER_STATUS_DATA)

ยง

ATTITUDE_QUATERNION(ATTITUDE_QUATERNION_DATA)

ยง

MISSION_REQUEST_PARTIAL_LIST(MISSION_REQUEST_PARTIAL_LIST_DATA)

ยง

MISSION_CURRENT(MISSION_CURRENT_DATA)

ยง

RADIO_STATUS(RADIO_STATUS_DATA)

ยง

HIL_STATE(HIL_STATE_DATA)

ยง

TERRAIN_DATA(TERRAIN_DATA_DATA)

ยง

SCALED_PRESSURE2(SCALED_PRESSURE2_DATA)

ยง

ATT_POS_MOCAP(ATT_POS_MOCAP_DATA)

ยง

GPS_STATUS(GPS_STATUS_DATA)

ยง

MISSION_ITEM(MISSION_ITEM_DATA)

ยง

VISION_SPEED_ESTIMATE(VISION_SPEED_ESTIMATE_DATA)

ยง

SCALED_IMU(SCALED_IMU_DATA)

ยง

MISSION_COUNT(MISSION_COUNT_DATA)

ยง

PARAM_MAP_RC(PARAM_MAP_RC_DATA)

ยง

LOG_DATA(LOG_DATA_DATA)

ยง

EXTENDED_SYS_STATE(EXTENDED_SYS_STATE_DATA)

ยง

SETUP_SIGNING(SETUP_SIGNING_DATA)

ยง

RC_CHANNELS_RAW(RC_CHANNELS_RAW_DATA)

ยง

GIMBAL_MANAGER_SET_ATTITUDE(GIMBAL_MANAGER_SET_ATTITUDE_DATA)

ยง

UAVCAN_NODE_INFO(UAVCAN_NODE_INFO_DATA)

ยง

COMPONENT_METADATA(COMPONENT_METADATA_DATA)

ยง

OPEN_DRONE_ID_AUTHENTICATION(OPEN_DRONE_ID_AUTHENTICATION_DATA)

ยง

SYSTEM_TIME(SYSTEM_TIME_DATA)

ยง

PARAM_VALUE(PARAM_VALUE_DATA)

ยง

MANUAL_SETPOINT(MANUAL_SETPOINT_DATA)

ยง

MISSION_SET_CURRENT(MISSION_SET_CURRENT_DATA)

ยง

OPTICAL_FLOW(OPTICAL_FLOW_DATA)

ยง

POWER_STATUS(POWER_STATUS_DATA)

ยง

TERRAIN_REQUEST(TERRAIN_REQUEST_DATA)

ยง

PARAM_REQUEST_READ(PARAM_REQUEST_READ_DATA)

ยง

TERRAIN_REPORT(TERRAIN_REPORT_DATA)

ยง

GPS_GLOBAL_ORIGIN(GPS_GLOBAL_ORIGIN_DATA)

ยง

HIL_STATE_QUATERNION(HIL_STATE_QUATERNION_DATA)

ยง

TERRAIN_CHECK(TERRAIN_CHECK_DATA)

ยง

MISSION_REQUEST_LIST(MISSION_REQUEST_LIST_DATA)

ยง

EFI_STATUS(EFI_STATUS_DATA)

ยง

SET_HOME_POSITION(SET_HOME_POSITION_DATA)

ยง

FLIGHT_INFORMATION(FLIGHT_INFORMATION_DATA)

ยง

LOGGING_DATA(LOGGING_DATA_DATA)

ยง

PARAM_EXT_SET(PARAM_EXT_SET_DATA)

ยง

MOUNT_ORIENTATION(MOUNT_ORIENTATION_DATA)

ยง

RC_CHANNELS_SCALED(RC_CHANNELS_SCALED_DATA)

ยง

GPS2_RTK(GPS2_RTK_DATA)

ยง

ATTITUDE(ATTITUDE_DATA)

ยง

ESC_INFO(ESC_INFO_DATA)

ยง

CELLULAR_STATUS(CELLULAR_STATUS_DATA)

ยง

UTM_GLOBAL_POSITION(UTM_GLOBAL_POSITION_DATA)

ยง

TUNNEL(TUNNEL_DATA)

ยง

ENCAPSULATED_DATA(ENCAPSULATED_DATA_DATA)

ยง

MEMORY_VECT(MEMORY_VECT_DATA)

ยง

PLAY_TUNE_V2(PLAY_TUNE_V2_DATA)

ยง

HYGROMETER_SENSOR(HYGROMETER_SENSOR_DATA)

ยง

CELLULAR_CONFIG(CELLULAR_CONFIG_DATA)

ยง

MAG_CAL_REPORT(MAG_CAL_REPORT_DATA)

ยง

TIMESYNC(TIMESYNC_DATA)

ยง

COMPONENT_INFORMATION(COMPONENT_INFORMATION_DATA)

ยง

NAMED_VALUE_INT(NAMED_VALUE_INT_DATA)

ยง

GIMBAL_DEVICE_INFORMATION(GIMBAL_DEVICE_INFORMATION_DATA)

ยง

SAFETY_ALLOWED_AREA(SAFETY_ALLOWED_AREA_DATA)

ยง

ODOMETRY(ODOMETRY_DATA)

ยง

OPEN_DRONE_ID_SYSTEM(OPEN_DRONE_ID_SYSTEM_DATA)

ยง

ALTITUDE(ALTITUDE_DATA)

ยง

PARAM_EXT_ACK(PARAM_EXT_ACK_DATA)

ยง

RESPONSE_EVENT_ERROR(RESPONSE_EVENT_ERROR_DATA)

ยง

RAW_PRESSURE(RAW_PRESSURE_DATA)

ยง

MISSION_ITEM_INT(MISSION_ITEM_INT_DATA)

ยง

SCALED_IMU3(SCALED_IMU3_DATA)

ยง

MESSAGE_INTERVAL(MESSAGE_INTERVAL_DATA)

ยง

DEBUG_VECT(DEBUG_VECT_DATA)

ยง

CAMERA_CAPTURE_STATUS(CAMERA_CAPTURE_STATUS_DATA)

ยง

LOG_REQUEST_END(LOG_REQUEST_END_DATA)

ยง

FILE_TRANSFER_PROTOCOL(FILE_TRANSFER_PROTOCOL_DATA)

ยง

PARAM_EXT_REQUEST_READ(PARAM_EXT_REQUEST_READ_DATA)

ยง

WINCH_STATUS(WINCH_STATUS_DATA)

ยง

OPEN_DRONE_ID_SELF_ID(OPEN_DRONE_ID_SELF_ID_DATA)

ยง

TIME_ESTIMATE_TO_TARGET(TIME_ESTIMATE_TO_TARGET_DATA)

ยง

CAN_FILTER_MODIFY(CAN_FILTER_MODIFY_DATA)

ยง

GIMBAL_MANAGER_SET_MANUAL_CONTROL(GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA)

ยง

OPEN_DRONE_ID_MESSAGE_PACK(OPEN_DRONE_ID_MESSAGE_PACK_DATA)

ยง

TRAJECTORY_REPRESENTATION_WAYPOINTS(TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA)

ยง

GENERATOR_STATUS(GENERATOR_STATUS_DATA)

ยง

ESTIMATOR_STATUS(ESTIMATOR_STATUS_DATA)

ยง

GPS_RTCM_DATA(GPS_RTCM_DATA_DATA)

ยง

CHANGE_OPERATOR_CONTROL_ACK(CHANGE_OPERATOR_CONTROL_ACK_DATA)

ยง

POSITION_TARGET_LOCAL_NED(POSITION_TARGET_LOCAL_NED_DATA)

ยง

HIL_SENSOR(HIL_SENSOR_DATA)

ยง

DISTANCE_SENSOR(DISTANCE_SENSOR_DATA)

ยง

VIBRATION(VIBRATION_DATA)

ยง

CAMERA_TRIGGER(CAMERA_TRIGGER_DATA)

ยง

LOG_REQUEST_LIST(LOG_REQUEST_LIST_DATA)

ยง

PROTOCOL_VERSION(PROTOCOL_VERSION_DATA)

ยง

CONTROL_SYSTEM_STATE(CONTROL_SYSTEM_STATE_DATA)

ยง

CAMERA_FOV_STATUS(CAMERA_FOV_STATUS_DATA)

ยง

SUPPORTED_TUNES(SUPPORTED_TUNES_DATA)

ยง

OPEN_DRONE_ID_SYSTEM_UPDATE(OPEN_DRONE_ID_SYSTEM_UPDATE_DATA)

ยง

WIND_COV(WIND_COV_DATA)

ยง

V2_EXTENSION(V2_EXTENSION_DATA)

ยง

CAMERA_INFORMATION(CAMERA_INFORMATION_DATA)

ยง

COLLISION(COLLISION_DATA)

ยง

PARAM_REQUEST_LIST(PARAM_REQUEST_LIST_DATA)

ยง

HIL_OPTICAL_FLOW(HIL_OPTICAL_FLOW_DATA)

ยง

GPS_INJECT_DATA(GPS_INJECT_DATA_DATA)

ยง

OBSTACLE_DISTANCE(OBSTACLE_DISTANCE_DATA)

ยง

REQUEST_DATA_STREAM(REQUEST_DATA_STREAM_DATA)

ยง

PING(PING_DATA)

ยง

GPS_RTK(GPS_RTK_DATA)

ยง

GLOBAL_POSITION_INT(GLOBAL_POSITION_INT_DATA)

ยง

POSITION_TARGET_GLOBAL_INT(POSITION_TARGET_GLOBAL_INT_DATA)

ยง

HEARTBEAT(HEARTBEAT_DATA)

ยง

CAN_FRAME(CAN_FRAME_DATA)

ยง

PARAM_EXT_VALUE(PARAM_EXT_VALUE_DATA)

ยง

GPS_RAW_INT(GPS_RAW_INT_DATA)

ยง

SERVO_OUTPUT_RAW(SERVO_OUTPUT_RAW_DATA)

ยง

NAV_CONTROLLER_OUTPUT(NAV_CONTROLLER_OUTPUT_DATA)

ยง

MISSION_CLEAR_ALL(MISSION_CLEAR_ALL_DATA)

ยง

SET_ACTUATOR_CONTROL_TARGET(SET_ACTUATOR_CONTROL_TARGET_DATA)

ยง

CAMERA_TRACKING_IMAGE_STATUS(CAMERA_TRACKING_IMAGE_STATUS_DATA)

ยง

GIMBAL_MANAGER_SET_PITCHYAW(GIMBAL_MANAGER_SET_PITCHYAW_DATA)

ยง

EVENT(EVENT_DATA)

ยง

VICON_POSITION_ESTIMATE(VICON_POSITION_ESTIMATE_DATA)

ยง

OPEN_DRONE_ID_ARM_STATUS(OPEN_DRONE_ID_ARM_STATUS_DATA)

ยง

SET_POSITION_TARGET_LOCAL_NED(SET_POSITION_TARGET_LOCAL_NED_DATA)

ยง

MISSION_ACK(MISSION_ACK_DATA)

ยง

CHANGE_OPERATOR_CONTROL(CHANGE_OPERATOR_CONTROL_DATA)

ยง

MANUAL_CONTROL(MANUAL_CONTROL_DATA)

ยง

RC_CHANNELS(RC_CHANNELS_DATA)

ยง

LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET(LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA)

ยง

HIGH_LATENCY2(HIGH_LATENCY2_DATA)

ยง

LOG_ERASE(LOG_ERASE_DATA)

ยง

DEBUG(DEBUG_DATA)

ยง

STORAGE_INFORMATION(STORAGE_INFORMATION_DATA)

ยง

ATTITUDE_QUATERNION_COV(ATTITUDE_QUATERNION_COV_DATA)

ยง

LOGGING_ACK(LOGGING_ACK_DATA)

ยง

AUTH_KEY(AUTH_KEY_DATA)

ยง

CAMERA_IMAGE_CAPTURED(CAMERA_IMAGE_CAPTURED_DATA)

ยง

GIMBAL_DEVICE_SET_ATTITUDE(GIMBAL_DEVICE_SET_ATTITUDE_DATA)

ยง

OPEN_DRONE_ID_OPERATOR_ID(OPEN_DRONE_ID_OPERATOR_ID_DATA)

ยง

SYS_STATUS(SYS_STATUS_DATA)

ยง

SET_POSITION_TARGET_GLOBAL_INT(SET_POSITION_TARGET_GLOBAL_INT_DATA)

ยง

SIM_STATE(SIM_STATE_DATA)

ยง

ADSB_VEHICLE(ADSB_VEHICLE_DATA)

ยง

BUTTON_CHANGE(BUTTON_CHANGE_DATA)

ยง

ESC_STATUS(ESC_STATUS_DATA)

ยง

VISION_POSITION_ESTIMATE(VISION_POSITION_ESTIMATE_DATA)

ยง

AUTOPILOT_VERSION(AUTOPILOT_VERSION_DATA)

ยง

PLAY_TUNE(PLAY_TUNE_DATA)

ยง

PARAM_EXT_REQUEST_LIST(PARAM_EXT_REQUEST_LIST_DATA)

ยง

SET_ATTITUDE_TARGET(SET_ATTITUDE_TARGET_DATA)

ยง

LOG_REQUEST_DATA(LOG_REQUEST_DATA_DATA)

ยง

COMMAND_ACK(COMMAND_ACK_DATA)

ยง

GLOBAL_POSITION_INT_COV(GLOBAL_POSITION_INT_COV_DATA)

ยง

SCALED_PRESSURE3(SCALED_PRESSURE3_DATA)

ยง

LOGGING_DATA_ACKED(LOGGING_DATA_ACKED_DATA)

ยง

HIGH_LATENCY(HIGH_LATENCY_DATA)

ยง

VIDEO_STREAM_STATUS(VIDEO_STREAM_STATUS_DATA)

ยง

VFR_HUD(VFR_HUD_DATA)

ยง

COMMAND_LONG(COMMAND_LONG_DATA)

ยง

GIMBAL_MANAGER_STATUS(GIMBAL_MANAGER_STATUS_DATA)

ยง

RAW_RPM(RAW_RPM_DATA)

ยง

WIFI_CONFIG_AP(WIFI_CONFIG_AP_DATA)

ยง

DEBUG_FLOAT_ARRAY(DEBUG_FLOAT_ARRAY_DATA)

ยง

LOCAL_POSITION_NED_COV(LOCAL_POSITION_NED_COV_DATA)

ยง

SMART_BATTERY_INFO(SMART_BATTERY_INFO_DATA)

ยง

CURRENT_EVENT_SEQUENCE(CURRENT_EVENT_SEQUENCE_DATA)

ยง

ATTITUDE_TARGET(ATTITUDE_TARGET_DATA)

ยง

LOCAL_POSITION_NED(LOCAL_POSITION_NED_DATA)

ยง

RAW_IMU(RAW_IMU_DATA)

ยง

HIL_ACTUATOR_CONTROLS(HIL_ACTUATOR_CONTROLS_DATA)

ยง

SERIAL_CONTROL(SERIAL_CONTROL_DATA)

ยง

MISSION_REQUEST_INT(MISSION_REQUEST_INT_DATA)

ยง

BATTERY_STATUS(BATTERY_STATUS_DATA)

ยง

OPEN_DRONE_ID_BASIC_ID(OPEN_DRONE_ID_BASIC_ID_DATA)

ยง

OPEN_DRONE_ID_LOCATION(OPEN_DRONE_ID_LOCATION_DATA)

ยง

SET_GPS_GLOBAL_ORIGIN(SET_GPS_GLOBAL_ORIGIN_DATA)

ยง

COMMAND_CANCEL(COMMAND_CANCEL_DATA)

ยง

GPS2_RAW(GPS2_RAW_DATA)

ยง

WHEEL_DISTANCE(WHEEL_DISTANCE_DATA)

ยง

DATA_TRANSMISSION_HANDSHAKE(DATA_TRANSMISSION_HANDSHAKE_DATA)

ยง

FENCE_STATUS(FENCE_STATUS_DATA)

ยง

MISSION_WRITE_PARTIAL_LIST(MISSION_WRITE_PARTIAL_LIST_DATA)

ยง

MISSION_REQUEST(MISSION_REQUEST_DATA)

ยง

GIMBAL_MANAGER_INFORMATION(GIMBAL_MANAGER_INFORMATION_DATA)

ยง

GIMBAL_DEVICE_ATTITUDE_STATUS(GIMBAL_DEVICE_ATTITUDE_STATUS_DATA)

ยง

LANDING_TARGET(LANDING_TARGET_DATA)

ยง

AIS_VESSEL(AIS_VESSEL_DATA)

ยง

HIL_GPS(HIL_GPS_DATA)

ยง

LOG_ENTRY(LOG_ENTRY_DATA)

ยง

SCALED_PRESSURE(SCALED_PRESSURE_DATA)

Trait Implementationsยง

sourceยง

impl Clone for MavMessage

sourceยง

fn clone(&self) -> MavMessage

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavMessage

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl<'de> Deserialize<'de> for MavMessage

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Message for MavMessage

sourceยง

fn parse( version: MavlinkVersion, id: u32, diff --git a/mavlink/common/struct.AdsbFlags.html b/mavlink/common/struct.AdsbFlags.html index fda82d0901..d0fd666287 100644 --- a/mavlink/common/struct.AdsbFlags.html +++ b/mavlink/common/struct.AdsbFlags.html @@ -59,14 +59,14 @@

ยงSafety
sourceยง

impl AdsbFlags

source

pub const DEFAULT: Self = Self::ADSB_FLAGS_VALID_COORDS

Trait Implementationsยง

sourceยง

impl Binary for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AdsbFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = AdsbFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AdsbFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for AdsbFlags

sourceยง

fn bitor(self, other: AdsbFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = AdsbFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AdsbFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = AdsbFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AdsbFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for AdsbFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = AdsbFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AdsbFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = AdsbFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AdsbFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for AdsbFlags

sourceยง

fn clone(&self) -> AdsbFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for AdsbFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for AdsbFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<AdsbFlags> for AdsbFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<AdsbFlags> for AdsbFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for AdsbFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AdsbFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = AdsbFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AdsbFlags

sourceยง

fn cmp(&self, other: &AdsbFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AdsbFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = AdsbFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AdsbFlags

sourceยง

fn cmp(&self, other: &AdsbFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for AdsbFlags

sourceยง

fn eq(&self, other: &AdsbFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -76,7 +76,7 @@
ยงSafety
operator. Read more
sourceยง

impl Serialize for AdsbFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for AdsbFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = AdsbFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for AdsbFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AdsbFlags

sourceยง

impl Eq for AdsbFlags

sourceยง

impl StructuralPartialEq for AdsbFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AdsbFlags

sourceยง

impl Eq for AdsbFlags

sourceยง

impl StructuralPartialEq for AdsbFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.AisFlags.html b/mavlink/common/struct.AisFlags.html index 9f94364951..ce7e048215 100644 --- a/mavlink/common/struct.AisFlags.html +++ b/mavlink/common/struct.AisFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl AisFlags

source

pub const DEFAULT: Self = Self::AIS_FLAGS_POSITION_ACCURACY

Trait Implementationsยง

sourceยง

impl Binary for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AisFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = AisFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AisFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl AisFlags

source

pub const DEFAULT: Self = Self::AIS_FLAGS_POSITION_ACCURACY

Trait Implementationsยง

sourceยง

impl Binary for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AisFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = AisFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AisFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for AisFlags

sourceยง

fn bitor(self, other: AisFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = AisFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AisFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = AisFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AisFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for AisFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = AisFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AisFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for AisFlags

sourceยง

fn clone(&self) -> AisFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for AisFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for AisFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = AisFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AisFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for AisFlags

sourceยง

fn clone(&self) -> AisFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for AisFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for AisFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<AisFlags> for AisFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<AisFlags> for AisFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for AisFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AisFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = AisFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AisFlags

sourceยง

fn cmp(&self, other: &AisFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AisFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = AisFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AisFlags

sourceยง

fn cmp(&self, other: &AisFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for AisFlags

sourceยง

fn eq(&self, other: &AisFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for AisFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for AisFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = AisFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for AisFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AisFlags

sourceยง

impl Eq for AisFlags

sourceยง

impl StructuralPartialEq for AisFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = AisFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for AisFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AisFlags

sourceยง

impl Eq for AisFlags

sourceยง

impl StructuralPartialEq for AisFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.AttitudeTargetTypemask.html b/mavlink/common/struct.AttitudeTargetTypemask.html index e07b0a2af8..7ae9ca8870 100644 --- a/mavlink/common/struct.AttitudeTargetTypemask.html +++ b/mavlink/common/struct.AttitudeTargetTypemask.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl AttitudeTargetTypemask

source

pub const DEFAULT: Self = Self::ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE

Trait Implementationsยง

sourceยง

impl Binary for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AttitudeTargetTypemask

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl AttitudeTargetTypemask

source

pub const DEFAULT: Self = Self::ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE

Trait Implementationsยง

sourceยง

impl Binary for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AttitudeTargetTypemask

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AttitudeTargetTypemask

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for AttitudeTargetTypemask

sourceยง

fn bitor(self, other: AttitudeTargetTypemask) -> Self

Returns the union of the two sets of flags.

ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AttitudeTargetTypemask

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for AttitudeTargetTypemask

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AttitudeTargetTypemask

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AttitudeTargetTypemask

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for AttitudeTargetTypemask

sourceยง

fn clone(&self) -> AttitudeTargetTypemask

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for AttitudeTargetTypemask

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for AttitudeTargetTypemask

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<AttitudeTargetTypemask> for AttitudeTargetTypemask

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<AttitudeTargetTypemask> for AttitudeTargetTypemask

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for AttitudeTargetTypemask

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AttitudeTargetTypemask

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the ! operator.
sourceยง

impl Octal for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AttitudeTargetTypemask

sourceยง

fn cmp(&self, other: &AttitudeTargetTypemask) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the ! operator.
sourceยง

impl Octal for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AttitudeTargetTypemask

sourceยง

fn cmp(&self, other: &AttitudeTargetTypemask) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for AttitudeTargetTypemask

sourceยง

fn eq(&self, other: &AttitudeTargetTypemask) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for AttitudeTargetTypemask

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for AttitudeTargetTypemask

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the - operator.
sourceยง

impl SubAssign for AttitudeTargetTypemask

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the - operator.
sourceยง

impl SubAssign for AttitudeTargetTypemask

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AttitudeTargetTypemask

sourceยง

impl Eq for AttitudeTargetTypemask

sourceยง

impl StructuralPartialEq for AttitudeTargetTypemask

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/common/struct.CameraCapFlags.html b/mavlink/common/struct.CameraCapFlags.html index 626e2ffc2b..8ab53bf75e 100644 --- a/mavlink/common/struct.CameraCapFlags.html +++ b/mavlink/common/struct.CameraCapFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl CameraCapFlags

source

pub const DEFAULT: Self = Self::CAMERA_CAP_FLAGS_CAPTURE_VIDEO

Trait Implementationsยง

sourceยง

impl Binary for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for CameraCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = CameraCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for CameraCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl CameraCapFlags

source

pub const DEFAULT: Self = Self::CAMERA_CAP_FLAGS_CAPTURE_VIDEO

Trait Implementationsยง

sourceยง

impl Binary for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for CameraCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = CameraCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for CameraCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for CameraCapFlags

sourceยง

fn bitor(self, other: CameraCapFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = CameraCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for CameraCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = CameraCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for CameraCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for CameraCapFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = CameraCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for CameraCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for CameraCapFlags

sourceยง

fn clone(&self) -> CameraCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for CameraCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for CameraCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = CameraCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for CameraCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for CameraCapFlags

sourceยง

fn clone(&self) -> CameraCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for CameraCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for CameraCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<CameraCapFlags> for CameraCapFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<CameraCapFlags> for CameraCapFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for CameraCapFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for CameraCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = CameraCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for CameraCapFlags

sourceยง

fn cmp(&self, other: &CameraCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for CameraCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = CameraCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for CameraCapFlags

sourceยง

fn cmp(&self, other: &CameraCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for CameraCapFlags

sourceยง

fn eq(&self, other: &CameraCapFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for CameraCapFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for CameraCapFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = CameraCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for CameraCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for CameraCapFlags

sourceยง

impl Eq for CameraCapFlags

sourceยง

impl StructuralPartialEq for CameraCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = CameraCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for CameraCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for CameraCapFlags

sourceยง

impl Eq for CameraCapFlags

sourceยง

impl StructuralPartialEq for CameraCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.EscFailureFlags.html b/mavlink/common/struct.EscFailureFlags.html index 3f3833c8e5..f8e1322961 100644 --- a/mavlink/common/struct.EscFailureFlags.html +++ b/mavlink/common/struct.EscFailureFlags.html @@ -65,8 +65,8 @@
ยงSafety
sourceยง

impl Clone for EscFailureFlags

sourceยง

fn clone(&self) -> EscFailureFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for EscFailureFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for EscFailureFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<EscFailureFlags> for EscFailureFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<EscFailureFlags> for EscFailureFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for EscFailureFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for EscFailureFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = EscFailureFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for EscFailureFlags

sourceยง

fn cmp(&self, other: &EscFailureFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for EscFailureFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = EscFailureFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for EscFailureFlags

sourceยง

fn cmp(&self, other: &EscFailureFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for EscFailureFlags

sourceยง

fn eq(&self, other: &EscFailureFlags) -> bool

This method tests for self and other values to be equal, and is used diff --git a/mavlink/common/struct.EstimatorStatusFlags.html b/mavlink/common/struct.EstimatorStatusFlags.html index 0cc2a0c865..879c2a6c29 100644 --- a/mavlink/common/struct.EstimatorStatusFlags.html +++ b/mavlink/common/struct.EstimatorStatusFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl EstimatorStatusFlags

source

pub const DEFAULT: Self = Self::ESTIMATOR_ATTITUDE

Trait Implementationsยง

sourceยง

impl Binary for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for EstimatorStatusFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for EstimatorStatusFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl EstimatorStatusFlags

source

pub const DEFAULT: Self = Self::ESTIMATOR_ATTITUDE

Trait Implementationsยง

sourceยง

impl Binary for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for EstimatorStatusFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for EstimatorStatusFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for EstimatorStatusFlags

sourceยง

fn bitor(self, other: EstimatorStatusFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for EstimatorStatusFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for EstimatorStatusFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for EstimatorStatusFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for EstimatorStatusFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for EstimatorStatusFlags

sourceยง

fn clone(&self) -> EstimatorStatusFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for EstimatorStatusFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for EstimatorStatusFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = EstimatorStatusFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for EstimatorStatusFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for EstimatorStatusFlags

sourceยง

fn clone(&self) -> EstimatorStatusFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for EstimatorStatusFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for EstimatorStatusFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<EstimatorStatusFlags> for EstimatorStatusFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<EstimatorStatusFlags> for EstimatorStatusFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for EstimatorStatusFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for EstimatorStatusFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for EstimatorStatusFlags

sourceยง

fn cmp(&self, other: &EstimatorStatusFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = EstimatorStatusFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for EstimatorStatusFlags

sourceยง

fn cmp(&self, other: &EstimatorStatusFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for EstimatorStatusFlags

sourceยง

fn eq(&self, other: &EstimatorStatusFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for EstimatorStatusFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for EstimatorStatusFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for EstimatorStatusFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for EstimatorStatusFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for EstimatorStatusFlags

sourceยง

impl Eq for EstimatorStatusFlags

sourceยง

impl StructuralPartialEq for EstimatorStatusFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/common/struct.GimbalDeviceCapFlags.html b/mavlink/common/struct.GimbalDeviceCapFlags.html index 993dac8a21..f126b66064 100644 --- a/mavlink/common/struct.GimbalDeviceCapFlags.html +++ b/mavlink/common/struct.GimbalDeviceCapFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl GimbalDeviceCapFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl GimbalDeviceCapFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GimbalDeviceCapFlags

sourceยง

fn bitor(self, other: GimbalDeviceCapFlags) -> Self

Returns the union of the two sets of flags.

ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GimbalDeviceCapFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GimbalDeviceCapFlags

sourceยง

fn clone(&self) -> GimbalDeviceCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for GimbalDeviceCapFlags

sourceยง

fn clone(&self) -> GimbalDeviceCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GimbalDeviceCapFlags> for GimbalDeviceCapFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GimbalDeviceCapFlags> for GimbalDeviceCapFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GimbalDeviceCapFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceCapFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceCapFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GimbalDeviceCapFlags

sourceยง

fn eq(&self, other: &GimbalDeviceCapFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for GimbalDeviceCapFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GimbalDeviceCapFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceCapFlags

sourceยง

impl Eq for GimbalDeviceCapFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceCapFlags

sourceยง

impl Eq for GimbalDeviceCapFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.GimbalDeviceErrorFlags.html b/mavlink/common/struct.GimbalDeviceErrorFlags.html index 3a84b9e565..d66111b8e9 100644 --- a/mavlink/common/struct.GimbalDeviceErrorFlags.html +++ b/mavlink/common/struct.GimbalDeviceErrorFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl GimbalDeviceErrorFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceErrorFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceErrorFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl GimbalDeviceErrorFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceErrorFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceErrorFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GimbalDeviceErrorFlags

sourceยง

fn bitor(self, other: GimbalDeviceErrorFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceErrorFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceErrorFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GimbalDeviceErrorFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceErrorFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GimbalDeviceErrorFlags

sourceยง

fn clone(&self) -> GimbalDeviceErrorFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceErrorFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceErrorFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

sourceยง

impl Clone for GimbalDeviceErrorFlags

sourceยง

fn clone(&self) -> GimbalDeviceErrorFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceErrorFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceErrorFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GimbalDeviceErrorFlags> for GimbalDeviceErrorFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GimbalDeviceErrorFlags> for GimbalDeviceErrorFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GimbalDeviceErrorFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceErrorFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceErrorFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceErrorFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceErrorFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceErrorFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceErrorFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GimbalDeviceErrorFlags

sourceยง

fn eq(&self, other: &GimbalDeviceErrorFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for GimbalDeviceErrorFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GimbalDeviceErrorFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceErrorFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceErrorFlags

sourceยง

impl Eq for GimbalDeviceErrorFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceErrorFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceErrorFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceErrorFlags

sourceยง

impl Eq for GimbalDeviceErrorFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceErrorFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.GimbalDeviceFlags.html b/mavlink/common/struct.GimbalDeviceFlags.html index 5c7c921b08..eb85b2e746 100644 --- a/mavlink/common/struct.GimbalDeviceFlags.html +++ b/mavlink/common/struct.GimbalDeviceFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl GimbalDeviceFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_FLAGS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl GimbalDeviceFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_FLAGS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GimbalDeviceFlags

sourceยง

fn bitor(self, other: GimbalDeviceFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GimbalDeviceFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GimbalDeviceFlags

sourceยง

fn clone(&self) -> GimbalDeviceFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = GimbalDeviceFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for GimbalDeviceFlags

sourceยง

fn clone(&self) -> GimbalDeviceFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GimbalDeviceFlags> for GimbalDeviceFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GimbalDeviceFlags> for GimbalDeviceFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GimbalDeviceFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GimbalDeviceFlags

sourceยง

fn eq(&self, other: &GimbalDeviceFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -76,7 +76,7 @@
ยงSafety
operator. Read more
sourceยง

impl Serialize for GimbalDeviceFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GimbalDeviceFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = GimbalDeviceFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceFlags

sourceยง

impl Eq for GimbalDeviceFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceFlags

sourceยง

impl Eq for GimbalDeviceFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.GimbalManagerCapFlags.html b/mavlink/common/struct.GimbalManagerCapFlags.html index 3bc3abacf0..0b8b9e1d2a 100644 --- a/mavlink/common/struct.GimbalManagerCapFlags.html +++ b/mavlink/common/struct.GimbalManagerCapFlags.html @@ -57,16 +57,16 @@
ยงSafety

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

sourceยง

impl GimbalManagerCapFlags

source

pub const DEFAULT: Self = Self::GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalManagerCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalManagerCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalManagerCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GimbalManagerCapFlags

sourceยง

fn bitor(self, other: GimbalManagerCapFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalManagerCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalManagerCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GimbalManagerCapFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalManagerCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GimbalManagerCapFlags

sourceยง

fn clone(&self) -> GimbalManagerCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalManagerCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalManagerCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalManagerCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for GimbalManagerCapFlags

sourceยง

fn clone(&self) -> GimbalManagerCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalManagerCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalManagerCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GimbalManagerCapFlags> for GimbalManagerCapFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GimbalManagerCapFlags> for GimbalManagerCapFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GimbalManagerCapFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalManagerCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalManagerCapFlags

sourceยง

fn cmp(&self, other: &GimbalManagerCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalManagerCapFlags

sourceยง

fn cmp(&self, other: &GimbalManagerCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GimbalManagerCapFlags

sourceยง

fn eq(&self, other: &GimbalManagerCapFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for GimbalManagerCapFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GimbalManagerCapFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalManagerCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalManagerCapFlags

sourceยง

impl Eq for GimbalManagerCapFlags

sourceยง

impl StructuralPartialEq for GimbalManagerCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalManagerCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalManagerCapFlags

sourceยง

impl Eq for GimbalManagerCapFlags

sourceยง

impl StructuralPartialEq for GimbalManagerCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.GpsInputIgnoreFlags.html b/mavlink/common/struct.GpsInputIgnoreFlags.html index 93d1a55834..2b80d9f801 100644 --- a/mavlink/common/struct.GpsInputIgnoreFlags.html +++ b/mavlink/common/struct.GpsInputIgnoreFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl GpsInputIgnoreFlags

source

pub const DEFAULT: Self = Self::GPS_INPUT_IGNORE_FLAG_ALT

Trait Implementationsยง

sourceยง

impl Binary for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GpsInputIgnoreFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GpsInputIgnoreFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl GpsInputIgnoreFlags

source

pub const DEFAULT: Self = Self::GPS_INPUT_IGNORE_FLAG_ALT

Trait Implementationsยง

sourceยง

impl Binary for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GpsInputIgnoreFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GpsInputIgnoreFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GpsInputIgnoreFlags

sourceยง

fn bitor(self, other: GpsInputIgnoreFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GpsInputIgnoreFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GpsInputIgnoreFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GpsInputIgnoreFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GpsInputIgnoreFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GpsInputIgnoreFlags

sourceยง

fn clone(&self) -> GpsInputIgnoreFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GpsInputIgnoreFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GpsInputIgnoreFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GpsInputIgnoreFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for GpsInputIgnoreFlags

sourceยง

fn clone(&self) -> GpsInputIgnoreFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GpsInputIgnoreFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GpsInputIgnoreFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GpsInputIgnoreFlags> for GpsInputIgnoreFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GpsInputIgnoreFlags> for GpsInputIgnoreFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GpsInputIgnoreFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GpsInputIgnoreFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GpsInputIgnoreFlags

sourceยง

fn cmp(&self, other: &GpsInputIgnoreFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GpsInputIgnoreFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GpsInputIgnoreFlags

sourceยง

fn cmp(&self, other: &GpsInputIgnoreFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GpsInputIgnoreFlags

sourceยง

fn eq(&self, other: &GpsInputIgnoreFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for GpsInputIgnoreFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GpsInputIgnoreFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GpsInputIgnoreFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GpsInputIgnoreFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GpsInputIgnoreFlags

sourceยง

impl Eq for GpsInputIgnoreFlags

sourceยง

impl StructuralPartialEq for GpsInputIgnoreFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/common/struct.HighresImuUpdatedFlags.html b/mavlink/common/struct.HighresImuUpdatedFlags.html index 55d292bacf..8032eb2aac 100644 --- a/mavlink/common/struct.HighresImuUpdatedFlags.html +++ b/mavlink/common/struct.HighresImuUpdatedFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl HighresImuUpdatedFlags

source

pub const DEFAULT: Self = Self::HIGHRES_IMU_UPDATED_NONE

Trait Implementationsยง

sourceยง

impl Binary for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HighresImuUpdatedFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HighresImuUpdatedFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl HighresImuUpdatedFlags

source

pub const DEFAULT: Self = Self::HIGHRES_IMU_UPDATED_NONE

Trait Implementationsยง

sourceยง

impl Binary for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HighresImuUpdatedFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HighresImuUpdatedFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for HighresImuUpdatedFlags

sourceยง

fn bitor(self, other: HighresImuUpdatedFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HighresImuUpdatedFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HighresImuUpdatedFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for HighresImuUpdatedFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HighresImuUpdatedFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HighresImuUpdatedFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for HighresImuUpdatedFlags

sourceยง

fn clone(&self) -> HighresImuUpdatedFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HighresImuUpdatedFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HighresImuUpdatedFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<HighresImuUpdatedFlags> for HighresImuUpdatedFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<HighresImuUpdatedFlags> for HighresImuUpdatedFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for HighresImuUpdatedFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HighresImuUpdatedFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HighresImuUpdatedFlags

sourceยง

fn cmp(&self, other: &HighresImuUpdatedFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HighresImuUpdatedFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HighresImuUpdatedFlags

sourceยง

fn cmp(&self, other: &HighresImuUpdatedFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for HighresImuUpdatedFlags

sourceยง

fn eq(&self, other: &HighresImuUpdatedFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for HighresImuUpdatedFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for HighresImuUpdatedFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HighresImuUpdatedFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HighresImuUpdatedFlags

sourceยง

impl Eq for HighresImuUpdatedFlags

sourceยง

impl StructuralPartialEq for HighresImuUpdatedFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HighresImuUpdatedFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HighresImuUpdatedFlags

sourceยง

impl Eq for HighresImuUpdatedFlags

sourceยง

impl StructuralPartialEq for HighresImuUpdatedFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.HilSensorUpdatedFlags.html b/mavlink/common/struct.HilSensorUpdatedFlags.html index 97a665afad..859ba0fc66 100644 --- a/mavlink/common/struct.HilSensorUpdatedFlags.html +++ b/mavlink/common/struct.HilSensorUpdatedFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl HilSensorUpdatedFlags

source

pub const DEFAULT: Self = Self::HIL_SENSOR_UPDATED_NONE

Trait Implementationsยง

sourceยง

impl Binary for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HilSensorUpdatedFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HilSensorUpdatedFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl HilSensorUpdatedFlags

source

pub const DEFAULT: Self = Self::HIL_SENSOR_UPDATED_NONE

Trait Implementationsยง

sourceยง

impl Binary for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HilSensorUpdatedFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HilSensorUpdatedFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for HilSensorUpdatedFlags

sourceยง

fn bitor(self, other: HilSensorUpdatedFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HilSensorUpdatedFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HilSensorUpdatedFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for HilSensorUpdatedFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HilSensorUpdatedFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for HilSensorUpdatedFlags

sourceยง

fn clone(&self) -> HilSensorUpdatedFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HilSensorUpdatedFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HilSensorUpdatedFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

sourceยง

impl Clone for HilSensorUpdatedFlags

sourceยง

fn clone(&self) -> HilSensorUpdatedFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HilSensorUpdatedFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HilSensorUpdatedFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<HilSensorUpdatedFlags> for HilSensorUpdatedFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<HilSensorUpdatedFlags> for HilSensorUpdatedFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for HilSensorUpdatedFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HilSensorUpdatedFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HilSensorUpdatedFlags

sourceยง

fn cmp(&self, other: &HilSensorUpdatedFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HilSensorUpdatedFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HilSensorUpdatedFlags

sourceยง

fn cmp(&self, other: &HilSensorUpdatedFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for HilSensorUpdatedFlags

sourceยง

fn eq(&self, other: &HilSensorUpdatedFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for HilSensorUpdatedFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for HilSensorUpdatedFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HilSensorUpdatedFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HilSensorUpdatedFlags

sourceยง

impl Eq for HilSensorUpdatedFlags

sourceยง

impl StructuralPartialEq for HilSensorUpdatedFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HilSensorUpdatedFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HilSensorUpdatedFlags

sourceยง

impl Eq for HilSensorUpdatedFlags

sourceยง

impl StructuralPartialEq for HilSensorUpdatedFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.HlFailureFlag.html b/mavlink/common/struct.HlFailureFlag.html index fa62932026..be3f765396 100644 --- a/mavlink/common/struct.HlFailureFlag.html +++ b/mavlink/common/struct.HlFailureFlag.html @@ -57,16 +57,16 @@
ยงSafety

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

sourceยง

impl HlFailureFlag

source

pub const DEFAULT: Self = Self::HL_FAILURE_FLAG_GPS

Trait Implementationsยง

sourceยง

impl Binary for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HlFailureFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HlFailureFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
ยง

type Output = HlFailureFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HlFailureFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for HlFailureFlag

sourceยง

fn bitor(self, other: HlFailureFlag) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HlFailureFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = HlFailureFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HlFailureFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for HlFailureFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HlFailureFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for HlFailureFlag

sourceยง

fn clone(&self) -> HlFailureFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HlFailureFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HlFailureFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = HlFailureFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HlFailureFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for HlFailureFlag

sourceยง

fn clone(&self) -> HlFailureFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HlFailureFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HlFailureFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<HlFailureFlag> for HlFailureFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<HlFailureFlag> for HlFailureFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for HlFailureFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HlFailureFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HlFailureFlag

sourceยง

fn cmp(&self, other: &HlFailureFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = HlFailureFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HlFailureFlag

sourceยง

fn cmp(&self, other: &HlFailureFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for HlFailureFlag

sourceยง

fn eq(&self, other: &HlFailureFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for HlFailureFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for HlFailureFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HlFailureFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HlFailureFlag

sourceยง

impl Eq for HlFailureFlag

sourceยง

impl StructuralPartialEq for HlFailureFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = HlFailureFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HlFailureFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HlFailureFlag

sourceยง

impl Eq for HlFailureFlag

sourceยง

impl StructuralPartialEq for HlFailureFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.MavEventCurrentSequenceFlags.html b/mavlink/common/struct.MavEventCurrentSequenceFlags.html index 3abb896080..d1120f10fa 100644 --- a/mavlink/common/struct.MavEventCurrentSequenceFlags.html +++ b/mavlink/common/struct.MavEventCurrentSequenceFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl MavEventCurrentSequenceFlags

source

pub const DEFAULT: Self = Self::MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET

Trait Implementationsยง

sourceยง

impl Binary for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavEventCurrentSequenceFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavEventCurrentSequenceFlags

source

pub const DEFAULT: Self = Self::MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET

Trait Implementationsยง

sourceยง

impl Binary for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavEventCurrentSequenceFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavEventCurrentSequenceFlags

sourceยง

fn bitor(self, other: MavEventCurrentSequenceFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavEventCurrentSequenceFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavEventCurrentSequenceFlags

sourceยง

fn clone(&self) -> MavEventCurrentSequenceFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavEventCurrentSequenceFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavEventCurrentSequenceFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for MavEventCurrentSequenceFlags

sourceยง

fn clone(&self) -> MavEventCurrentSequenceFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavEventCurrentSequenceFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavEventCurrentSequenceFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavEventCurrentSequenceFlags> for MavEventCurrentSequenceFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavEventCurrentSequenceFlags> for MavEventCurrentSequenceFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavEventCurrentSequenceFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavEventCurrentSequenceFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavEventCurrentSequenceFlags

sourceยง

fn cmp(&self, other: &MavEventCurrentSequenceFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavEventCurrentSequenceFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavEventCurrentSequenceFlags

sourceยง

fn cmp(&self, other: &MavEventCurrentSequenceFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavEventCurrentSequenceFlags

sourceยง

fn eq(&self, other: &MavEventCurrentSequenceFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavEventCurrentSequenceFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavEventCurrentSequenceFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavEventCurrentSequenceFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavEventCurrentSequenceFlags

sourceยง

impl Eq for MavEventCurrentSequenceFlags

sourceยง

impl StructuralPartialEq for MavEventCurrentSequenceFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavEventCurrentSequenceFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavEventCurrentSequenceFlags

sourceยง

impl Eq for MavEventCurrentSequenceFlags

sourceยง

impl StructuralPartialEq for MavEventCurrentSequenceFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.MavGeneratorStatusFlag.html b/mavlink/common/struct.MavGeneratorStatusFlag.html index afb50a092a..6a80a61149 100644 --- a/mavlink/common/struct.MavGeneratorStatusFlag.html +++ b/mavlink/common/struct.MavGeneratorStatusFlag.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl MavGeneratorStatusFlag

source

pub const DEFAULT: Self = Self::MAV_GENERATOR_STATUS_FLAG_OFF

Trait Implementationsยง

sourceยง

impl Binary for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavGeneratorStatusFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavGeneratorStatusFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavGeneratorStatusFlag

source

pub const DEFAULT: Self = Self::MAV_GENERATOR_STATUS_FLAG_OFF

Trait Implementationsยง

sourceยง

impl Binary for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavGeneratorStatusFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavGeneratorStatusFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavGeneratorStatusFlag

sourceยง

fn bitor(self, other: MavGeneratorStatusFlag) -> Self

Returns the union of the two sets of flags.

ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavGeneratorStatusFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavGeneratorStatusFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavGeneratorStatusFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavGeneratorStatusFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for MavGeneratorStatusFlag

sourceยง

fn clone(&self) -> MavGeneratorStatusFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavGeneratorStatusFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavGeneratorStatusFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavGeneratorStatusFlag> for MavGeneratorStatusFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavGeneratorStatusFlag> for MavGeneratorStatusFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavGeneratorStatusFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavGeneratorStatusFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavGeneratorStatusFlag

sourceยง

fn cmp(&self, other: &MavGeneratorStatusFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavGeneratorStatusFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavGeneratorStatusFlag

sourceยง

fn cmp(&self, other: &MavGeneratorStatusFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavGeneratorStatusFlag

sourceยง

fn eq(&self, other: &MavGeneratorStatusFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavGeneratorStatusFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavGeneratorStatusFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavGeneratorStatusFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavGeneratorStatusFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavGeneratorStatusFlag

sourceยง

impl Eq for MavGeneratorStatusFlag

sourceยง

impl StructuralPartialEq for MavGeneratorStatusFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/common/struct.MavModeFlag.html b/mavlink/common/struct.MavModeFlag.html index 66d7a3a249..86885be5d4 100644 --- a/mavlink/common/struct.MavModeFlag.html +++ b/mavlink/common/struct.MavModeFlag.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl MavModeFlag

source

pub const DEFAULT: Self = Self::MAV_MODE_FLAG_SAFETY_ARMED

Trait Implementationsยง

sourceยง

impl Binary for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavModeFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl MavModeFlag

source

pub const DEFAULT: Self = Self::MAV_MODE_FLAG_SAFETY_ARMED

Trait Implementationsยง

sourceยง

impl Binary for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavModeFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = MavModeFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavModeFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavModeFlag

sourceยง

fn bitor(self, other: MavModeFlag) -> Self

Returns the union of the two sets of flags.

ยง

type Output = MavModeFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavModeFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavModeFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavModeFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavModeFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavModeFlag

sourceยง

fn clone(&self) -> MavModeFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavModeFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavModeFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = MavModeFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavModeFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for MavModeFlag

sourceยง

fn clone(&self) -> MavModeFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavModeFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavModeFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavModeFlag> for MavModeFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavModeFlag> for MavModeFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavModeFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavModeFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavModeFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavModeFlag

sourceยง

fn cmp(&self, other: &MavModeFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavModeFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavModeFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavModeFlag

sourceยง

fn cmp(&self, other: &MavModeFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavModeFlag

sourceยง

fn eq(&self, other: &MavModeFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavModeFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavModeFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavModeFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavModeFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = MavModeFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavModeFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavModeFlag

sourceยง

impl Eq for MavModeFlag

sourceยง

impl StructuralPartialEq for MavModeFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/common/struct.MavPowerStatus.html b/mavlink/common/struct.MavPowerStatus.html index bca43e30ec..69ef09f56d 100644 --- a/mavlink/common/struct.MavPowerStatus.html +++ b/mavlink/common/struct.MavPowerStatus.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl MavPowerStatus

source

pub const DEFAULT: Self = Self::MAV_POWER_STATUS_BRICK_VALID

Trait Implementationsยง

sourceยง

impl Binary for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavPowerStatus

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavPowerStatus

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavPowerStatus

source

pub const DEFAULT: Self = Self::MAV_POWER_STATUS_BRICK_VALID

Trait Implementationsยง

sourceยง

impl Binary for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavPowerStatus

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavPowerStatus

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavPowerStatus

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavPowerStatus

sourceยง

fn bitor(self, other: MavPowerStatus) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavPowerStatus

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavPowerStatus

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavPowerStatus

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavPowerStatus

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavPowerStatus

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = MavPowerStatus

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavPowerStatus

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for MavPowerStatus

sourceยง

fn clone(&self) -> MavPowerStatus

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavPowerStatus

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavPowerStatus

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavPowerStatus> for MavPowerStatus

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavPowerStatus> for MavPowerStatus

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavPowerStatus

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavPowerStatus

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavPowerStatus

sourceยง

fn cmp(&self, other: &MavPowerStatus) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavPowerStatus

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavPowerStatus

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavPowerStatus

sourceยง

fn cmp(&self, other: &MavPowerStatus) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavPowerStatus

sourceยง

fn eq(&self, other: &MavPowerStatus) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavPowerStatus

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavPowerStatus

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavPowerStatus

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavPowerStatus

sourceยง

impl Eq for MavPowerStatus

sourceยง

impl StructuralPartialEq for MavPowerStatus

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = MavPowerStatus

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavPowerStatus

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavPowerStatus

sourceยง

impl Eq for MavPowerStatus

sourceยง

impl StructuralPartialEq for MavPowerStatus

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.MavProtocolCapability.html b/mavlink/common/struct.MavProtocolCapability.html index 485b4dba49..47395ac6ff 100644 --- a/mavlink/common/struct.MavProtocolCapability.html +++ b/mavlink/common/struct.MavProtocolCapability.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl MavProtocolCapability

source

pub const DEFAULT: Self = Self::MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT

Trait Implementationsยง

sourceยง

impl Binary for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavProtocolCapability

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavProtocolCapability

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavProtocolCapability

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavProtocolCapability

source

pub const DEFAULT: Self = Self::MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT

Trait Implementationsยง

sourceยง

impl Binary for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavProtocolCapability

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavProtocolCapability

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavProtocolCapability

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavProtocolCapability

sourceยง

fn bitor(self, other: MavProtocolCapability) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavProtocolCapability

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavProtocolCapability

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavProtocolCapability

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavProtocolCapability

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavProtocolCapability

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavProtocolCapability

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavProtocolCapability

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavProtocolCapability

sourceยง

fn clone(&self) -> MavProtocolCapability

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavProtocolCapability

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavProtocolCapability

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = MavProtocolCapability

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavProtocolCapability

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for MavProtocolCapability

sourceยง

fn clone(&self) -> MavProtocolCapability

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavProtocolCapability

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavProtocolCapability

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavProtocolCapability> for MavProtocolCapability

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavProtocolCapability> for MavProtocolCapability

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavProtocolCapability

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavProtocolCapability

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavProtocolCapability

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavProtocolCapability

sourceยง

fn cmp(&self, other: &MavProtocolCapability) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavProtocolCapability

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavProtocolCapability

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavProtocolCapability

sourceยง

fn cmp(&self, other: &MavProtocolCapability) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavProtocolCapability

sourceยง

fn eq(&self, other: &MavProtocolCapability) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavProtocolCapability

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavProtocolCapability

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavProtocolCapability

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavProtocolCapability

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavProtocolCapability

sourceยง

impl Eq for MavProtocolCapability

sourceยง

impl StructuralPartialEq for MavProtocolCapability

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = MavProtocolCapability

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavProtocolCapability

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavProtocolCapability

sourceยง

impl Eq for MavProtocolCapability

sourceยง

impl StructuralPartialEq for MavProtocolCapability

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.MavSysStatusSensor.html b/mavlink/common/struct.MavSysStatusSensor.html index 2e73e14a27..b63f7f2a19 100644 --- a/mavlink/common/struct.MavSysStatusSensor.html +++ b/mavlink/common/struct.MavSysStatusSensor.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl MavSysStatusSensor

source

pub const DEFAULT: Self = Self::MAV_SYS_STATUS_SENSOR_3D_GYRO

Trait Implementationsยง

sourceยง

impl Binary for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavSysStatusSensor

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavSysStatusSensor

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavSysStatusSensor

source

pub const DEFAULT: Self = Self::MAV_SYS_STATUS_SENSOR_3D_GYRO

Trait Implementationsยง

sourceยง

impl Binary for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavSysStatusSensor

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavSysStatusSensor

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavSysStatusSensor

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavSysStatusSensor

sourceยง

fn bitor(self, other: MavSysStatusSensor) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavSysStatusSensor

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavSysStatusSensor

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavSysStatusSensor

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavSysStatusSensor

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavSysStatusSensor

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavSysStatusSensor

sourceยง

fn clone(&self) -> MavSysStatusSensor

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavSysStatusSensor

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavSysStatusSensor

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = MavSysStatusSensor

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavSysStatusSensor

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for MavSysStatusSensor

sourceยง

fn clone(&self) -> MavSysStatusSensor

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavSysStatusSensor

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavSysStatusSensor

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavSysStatusSensor> for MavSysStatusSensor

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavSysStatusSensor> for MavSysStatusSensor

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavSysStatusSensor

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavSysStatusSensor

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavSysStatusSensor

sourceยง

fn cmp(&self, other: &MavSysStatusSensor) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavSysStatusSensor

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavSysStatusSensor

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavSysStatusSensor

sourceยง

fn cmp(&self, other: &MavSysStatusSensor) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavSysStatusSensor

sourceยง

fn eq(&self, other: &MavSysStatusSensor) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavSysStatusSensor

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavSysStatusSensor

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavSysStatusSensor

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavSysStatusSensor

sourceยง

impl Eq for MavSysStatusSensor

sourceยง

impl StructuralPartialEq for MavSysStatusSensor

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = MavSysStatusSensor

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavSysStatusSensor

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavSysStatusSensor

sourceยง

impl Eq for MavSysStatusSensor

sourceยง

impl StructuralPartialEq for MavSysStatusSensor

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.MavWinchStatusFlag.html b/mavlink/common/struct.MavWinchStatusFlag.html index c57263c98c..918535694e 100644 --- a/mavlink/common/struct.MavWinchStatusFlag.html +++ b/mavlink/common/struct.MavWinchStatusFlag.html @@ -57,16 +57,16 @@
ยงSafety

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

sourceยง

impl MavWinchStatusFlag

source

pub const DEFAULT: Self = Self::MAV_WINCH_STATUS_HEALTHY

Trait Implementationsยง

sourceยง

impl Binary for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavWinchStatusFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavWinchStatusFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavWinchStatusFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavWinchStatusFlag

sourceยง

fn bitor(self, other: MavWinchStatusFlag) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavWinchStatusFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavWinchStatusFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavWinchStatusFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavWinchStatusFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavWinchStatusFlag

sourceยง

fn clone(&self) -> MavWinchStatusFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavWinchStatusFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavWinchStatusFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = MavWinchStatusFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavWinchStatusFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for MavWinchStatusFlag

sourceยง

fn clone(&self) -> MavWinchStatusFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavWinchStatusFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavWinchStatusFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavWinchStatusFlag> for MavWinchStatusFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavWinchStatusFlag> for MavWinchStatusFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavWinchStatusFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavWinchStatusFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavWinchStatusFlag

sourceยง

fn cmp(&self, other: &MavWinchStatusFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavWinchStatusFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavWinchStatusFlag

sourceยง

fn cmp(&self, other: &MavWinchStatusFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavWinchStatusFlag

sourceยง

fn eq(&self, other: &MavWinchStatusFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -76,7 +76,7 @@
ยงSafety
operator. Read more
sourceยง

impl Serialize for MavWinchStatusFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavWinchStatusFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = MavWinchStatusFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavWinchStatusFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavWinchStatusFlag

sourceยง

impl Eq for MavWinchStatusFlag

sourceยง

impl StructuralPartialEq for MavWinchStatusFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavWinchStatusFlag

sourceยง

impl Eq for MavWinchStatusFlag

sourceยง

impl StructuralPartialEq for MavWinchStatusFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.PositionTargetTypemask.html b/mavlink/common/struct.PositionTargetTypemask.html index aa6ea0352d..2fb065a4e0 100644 --- a/mavlink/common/struct.PositionTargetTypemask.html +++ b/mavlink/common/struct.PositionTargetTypemask.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl PositionTargetTypemask

source

pub const DEFAULT: Self = Self::POSITION_TARGET_TYPEMASK_X_IGNORE

Trait Implementationsยง

sourceยง

impl Binary for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for PositionTargetTypemask

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for PositionTargetTypemask

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl PositionTargetTypemask

source

pub const DEFAULT: Self = Self::POSITION_TARGET_TYPEMASK_X_IGNORE

Trait Implementationsยง

sourceยง

impl Binary for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for PositionTargetTypemask

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = PositionTargetTypemask

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for PositionTargetTypemask

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for PositionTargetTypemask

sourceยง

fn bitor(self, other: PositionTargetTypemask) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for PositionTargetTypemask

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = PositionTargetTypemask

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for PositionTargetTypemask

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for PositionTargetTypemask

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for PositionTargetTypemask

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = PositionTargetTypemask

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for PositionTargetTypemask

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for PositionTargetTypemask

sourceยง

fn clone(&self) -> PositionTargetTypemask

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for PositionTargetTypemask

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for PositionTargetTypemask

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<PositionTargetTypemask> for PositionTargetTypemask

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<PositionTargetTypemask> for PositionTargetTypemask

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for PositionTargetTypemask

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for PositionTargetTypemask

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the ! operator.
sourceยง

impl Octal for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for PositionTargetTypemask

sourceยง

fn cmp(&self, other: &PositionTargetTypemask) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = PositionTargetTypemask

The resulting type after applying the ! operator.
sourceยง

impl Octal for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for PositionTargetTypemask

sourceยง

fn cmp(&self, other: &PositionTargetTypemask) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for PositionTargetTypemask

sourceยง

fn eq(&self, other: &PositionTargetTypemask) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for PositionTargetTypemask

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for PositionTargetTypemask

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the - operator.
sourceยง

impl SubAssign for PositionTargetTypemask

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for PositionTargetTypemask

sourceยง

impl Eq for PositionTargetTypemask

sourceยง

impl StructuralPartialEq for PositionTargetTypemask

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = PositionTargetTypemask

The resulting type after applying the - operator.
sourceยง

impl SubAssign for PositionTargetTypemask

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for PositionTargetTypemask

sourceยง

impl Eq for PositionTargetTypemask

sourceยง

impl StructuralPartialEq for PositionTargetTypemask

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.SerialControlFlag.html b/mavlink/common/struct.SerialControlFlag.html index 84f1bc0e45..8171a009b1 100644 --- a/mavlink/common/struct.SerialControlFlag.html +++ b/mavlink/common/struct.SerialControlFlag.html @@ -57,16 +57,16 @@
ยงSafety

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

sourceยง

impl SerialControlFlag

source

pub const DEFAULT: Self = Self::SERIAL_CONTROL_FLAG_REPLY

Trait Implementationsยง

sourceยง

impl Binary for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for SerialControlFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for SerialControlFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
ยง

type Output = SerialControlFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for SerialControlFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for SerialControlFlag

sourceยง

fn bitor(self, other: SerialControlFlag) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for SerialControlFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = SerialControlFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for SerialControlFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for SerialControlFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for SerialControlFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for SerialControlFlag

sourceยง

fn clone(&self) -> SerialControlFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for SerialControlFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for SerialControlFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = SerialControlFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for SerialControlFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for SerialControlFlag

sourceยง

fn clone(&self) -> SerialControlFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for SerialControlFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for SerialControlFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<SerialControlFlag> for SerialControlFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<SerialControlFlag> for SerialControlFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for SerialControlFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for SerialControlFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for SerialControlFlag

sourceยง

fn cmp(&self, other: &SerialControlFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for SerialControlFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = SerialControlFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for SerialControlFlag

sourceยง

fn cmp(&self, other: &SerialControlFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for SerialControlFlag

sourceยง

fn eq(&self, other: &SerialControlFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for SerialControlFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for SerialControlFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for SerialControlFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = SerialControlFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for SerialControlFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for SerialControlFlag

sourceยง

impl Eq for SerialControlFlag

sourceยง

impl StructuralPartialEq for SerialControlFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/common/struct.TuneFormat.html b/mavlink/common/struct.TuneFormat.html index d0246eebde..793e8de228 100644 --- a/mavlink/common/struct.TuneFormat.html +++ b/mavlink/common/struct.TuneFormat.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl TuneFormat

source

pub const DEFAULT: Self = Self::TUNE_FORMAT_QBASIC1_1

Trait Implementationsยง

sourceยง

impl Binary for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for TuneFormat

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = TuneFormat

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for TuneFormat

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl TuneFormat

source

pub const DEFAULT: Self = Self::TUNE_FORMAT_QBASIC1_1

Trait Implementationsยง

sourceยง

impl Binary for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for TuneFormat

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = TuneFormat

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for TuneFormat

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for TuneFormat

sourceยง

fn bitor(self, other: TuneFormat) -> Self

Returns the union of the two sets of flags.

ยง

type Output = TuneFormat

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for TuneFormat

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for TuneFormat

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

ยง

type Output = TuneFormat

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for TuneFormat

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for TuneFormat

sourceยง

fn clone(&self) -> TuneFormat

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for TuneFormat

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for TuneFormat

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

sourceยง

impl Clone for TuneFormat

sourceยง

fn clone(&self) -> TuneFormat

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for TuneFormat

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for TuneFormat

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<TuneFormat> for TuneFormat

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<TuneFormat> for TuneFormat

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for TuneFormat

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for TuneFormat

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = TuneFormat

The resulting type after applying the ! operator.
sourceยง

impl Octal for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for TuneFormat

sourceยง

fn cmp(&self, other: &TuneFormat) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for TuneFormat

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = TuneFormat

The resulting type after applying the ! operator.
sourceยง

impl Octal for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for TuneFormat

sourceยง

fn cmp(&self, other: &TuneFormat) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for TuneFormat

sourceยง

fn eq(&self, other: &TuneFormat) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for TuneFormat

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for TuneFormat

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = TuneFormat

The resulting type after applying the - operator.
sourceยง

impl SubAssign for TuneFormat

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for TuneFormat

sourceยง

impl Eq for TuneFormat

sourceยง

impl StructuralPartialEq for TuneFormat

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = TuneFormat

The resulting type after applying the - operator.
sourceยง

impl SubAssign for TuneFormat

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for TuneFormat

sourceยง

impl Eq for TuneFormat

sourceยง

impl StructuralPartialEq for TuneFormat

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/common/struct.UtmDataAvailFlags.html b/mavlink/common/struct.UtmDataAvailFlags.html index b8530e80bf..c741e403d5 100644 --- a/mavlink/common/struct.UtmDataAvailFlags.html +++ b/mavlink/common/struct.UtmDataAvailFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl UtmDataAvailFlags

source

pub const DEFAULT: Self = Self::UTM_DATA_AVAIL_FLAGS_TIME_VALID

Trait Implementationsยง

sourceยง

impl Binary for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UtmDataAvailFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UtmDataAvailFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl UtmDataAvailFlags

source

pub const DEFAULT: Self = Self::UTM_DATA_AVAIL_FLAGS_TIME_VALID

Trait Implementationsยง

sourceยง

impl Binary for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UtmDataAvailFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UtmDataAvailFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for UtmDataAvailFlags

sourceยง

fn bitor(self, other: UtmDataAvailFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UtmDataAvailFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UtmDataAvailFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for UtmDataAvailFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UtmDataAvailFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for UtmDataAvailFlags

sourceยง

fn clone(&self) -> UtmDataAvailFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UtmDataAvailFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UtmDataAvailFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = UtmDataAvailFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UtmDataAvailFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for UtmDataAvailFlags

sourceยง

fn clone(&self) -> UtmDataAvailFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UtmDataAvailFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UtmDataAvailFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<UtmDataAvailFlags> for UtmDataAvailFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<UtmDataAvailFlags> for UtmDataAvailFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for UtmDataAvailFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UtmDataAvailFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UtmDataAvailFlags

sourceยง

fn cmp(&self, other: &UtmDataAvailFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = UtmDataAvailFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UtmDataAvailFlags

sourceยง

fn cmp(&self, other: &UtmDataAvailFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for UtmDataAvailFlags

sourceยง

fn eq(&self, other: &UtmDataAvailFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for UtmDataAvailFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for UtmDataAvailFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UtmDataAvailFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UtmDataAvailFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UtmDataAvailFlags

sourceยง

impl Eq for UtmDataAvailFlags

sourceยง

impl StructuralPartialEq for UtmDataAvailFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/uavionix/enum.MavMessage.html b/mavlink/uavionix/enum.MavMessage.html index b62f5d1028..13d653c714 100644 --- a/mavlink/uavionix/enum.MavMessage.html +++ b/mavlink/uavionix/enum.MavMessage.html @@ -1,229 +1,229 @@ MavMessage in mavlink::uavionix - Rust

Enum mavlink::uavionix::MavMessage

source ยท
#[repr(u32)]
pub enum MavMessage { -
Show 224 variants RC_CHANNELS_RAW(RC_CHANNELS_RAW_DATA), - UAVCAN_NODE_STATUS(UAVCAN_NODE_STATUS_DATA), - LOCAL_POSITION_NED(LOCAL_POSITION_NED_DATA), - BATTERY_STATUS(BATTERY_STATUS_DATA), +
Show 224 variants MISSION_ACK(MISSION_ACK_DATA), + COMMAND_CANCEL(COMMAND_CANCEL_DATA), + CAMERA_TRACKING_IMAGE_STATUS(CAMERA_TRACKING_IMAGE_STATUS_DATA), + PARAM_VALUE(PARAM_VALUE_DATA), + SUPPORTED_TUNES(SUPPORTED_TUNES_DATA), + OPEN_DRONE_ID_OPERATOR_ID(OPEN_DRONE_ID_OPERATOR_ID_DATA), + SET_HOME_POSITION(SET_HOME_POSITION_DATA), + CAMERA_TRACKING_GEO_STATUS(CAMERA_TRACKING_GEO_STATUS_DATA), + MISSION_ITEM(MISSION_ITEM_DATA), + MISSION_CURRENT(MISSION_CURRENT_DATA), + RAW_RPM(RAW_RPM_DATA), + VIDEO_STREAM_INFORMATION(VIDEO_STREAM_INFORMATION_DATA), + CELLULAR_CONFIG(CELLULAR_CONFIG_DATA), + PLAY_TUNE(PLAY_TUNE_DATA), + CURRENT_EVENT_SEQUENCE(CURRENT_EVENT_SEQUENCE_DATA), + ESC_STATUS(ESC_STATUS_DATA), + GPS2_RTK(GPS2_RTK_DATA), + DEBUG(DEBUG_DATA), + GIMBAL_MANAGER_INFORMATION(GIMBAL_MANAGER_INFORMATION_DATA), + NAV_CONTROLLER_OUTPUT(NAV_CONTROLLER_OUTPUT_DATA), + PARAM_EXT_ACK(PARAM_EXT_ACK_DATA), TERRAIN_REPORT(TERRAIN_REPORT_DATA), - OPEN_DRONE_ID_SELF_ID(OPEN_DRONE_ID_SELF_ID_DATA), - UTM_GLOBAL_POSITION(UTM_GLOBAL_POSITION_DATA), + HIL_RC_INPUTS_RAW(HIL_RC_INPUTS_RAW_DATA), + ODOMETRY(ODOMETRY_DATA), + HIGH_LATENCY(HIGH_LATENCY_DATA), + PARAM_REQUEST_READ(PARAM_REQUEST_READ_DATA), + ATTITUDE(ATTITUDE_DATA), + PARAM_SET(PARAM_SET_DATA), + HIGHRES_IMU(HIGHRES_IMU_DATA), + SIM_STATE(SIM_STATE_DATA), SCALED_PRESSURE3(SCALED_PRESSURE3_DATA), - LOG_DATA(LOG_DATA_DATA), - CHANGE_OPERATOR_CONTROL(CHANGE_OPERATOR_CONTROL_DATA), - WIND_COV(WIND_COV_DATA), - LINK_NODE_STATUS(LINK_NODE_STATUS_DATA), - GPS_INJECT_DATA(GPS_INJECT_DATA_DATA), - ESTIMATOR_STATUS(ESTIMATOR_STATUS_DATA), - VIDEO_STREAM_INFORMATION(VIDEO_STREAM_INFORMATION_DATA), - GIMBAL_DEVICE_SET_ATTITUDE(GIMBAL_DEVICE_SET_ATTITUDE_DATA), + PROTOCOL_VERSION(PROTOCOL_VERSION_DATA), + GPS_RTK(GPS_RTK_DATA), + CHANGE_OPERATOR_CONTROL_ACK(CHANGE_OPERATOR_CONTROL_ACK_DATA), CANFD_FRAME(CANFD_FRAME_DATA), - AUTOPILOT_VERSION(AUTOPILOT_VERSION_DATA), - MISSION_WRITE_PARTIAL_LIST(MISSION_WRITE_PARTIAL_LIST_DATA), - PARAM_EXT_ACK(PARAM_EXT_ACK_DATA), - RADIO_STATUS(RADIO_STATUS_DATA), - RC_CHANNELS(RC_CHANNELS_DATA), + CAMERA_SETTINGS(CAMERA_SETTINGS_DATA), + TRAJECTORY_REPRESENTATION_WAYPOINTS(TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA), + OPTICAL_FLOW(OPTICAL_FLOW_DATA), GPS_INPUT(GPS_INPUT_DATA), + WIND_COV(WIND_COV_DATA), + HYGROMETER_SENSOR(HYGROMETER_SENSOR_DATA), + CAN_FRAME(CAN_FRAME_DATA), + CAMERA_IMAGE_CAPTURED(CAMERA_IMAGE_CAPTURED_DATA), + HIL_STATE_QUATERNION(HIL_STATE_QUATERNION_DATA), + OPEN_DRONE_ID_ARM_STATUS(OPEN_DRONE_ID_ARM_STATUS_DATA), + MESSAGE_INTERVAL(MESSAGE_INTERVAL_DATA), + SCALED_IMU(SCALED_IMU_DATA), STORAGE_INFORMATION(STORAGE_INFORMATION_DATA), - PARAM_REQUEST_LIST(PARAM_REQUEST_LIST_DATA), - AUTOPILOT_STATE_FOR_GIMBAL_DEVICE(AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA), + FENCE_STATUS(FENCE_STATUS_DATA), + NAMED_VALUE_INT(NAMED_VALUE_INT_DATA), + VFR_HUD(VFR_HUD_DATA), + ESC_INFO(ESC_INFO_DATA), + RADIO_STATUS(RADIO_STATUS_DATA), + TIME_ESTIMATE_TO_TARGET(TIME_ESTIMATE_TO_TARGET_DATA), + HIL_GPS(HIL_GPS_DATA), + GPS_RTCM_DATA(GPS_RTCM_DATA_DATA), + LOG_REQUEST_END(LOG_REQUEST_END_DATA), + FILE_TRANSFER_PROTOCOL(FILE_TRANSFER_PROTOCOL_DATA), + TRAJECTORY_REPRESENTATION_BEZIER(TRAJECTORY_REPRESENTATION_BEZIER_DATA), + POWER_STATUS(POWER_STATUS_DATA), + ATTITUDE_QUATERNION_COV(ATTITUDE_QUATERNION_COV_DATA), + COMPONENT_METADATA(COMPONENT_METADATA_DATA), + GPS_INJECT_DATA(GPS_INJECT_DATA_DATA), GIMBAL_MANAGER_SET_ATTITUDE(GIMBAL_MANAGER_SET_ATTITUDE_DATA), - PROTOCOL_VERSION(PROTOCOL_VERSION_DATA), - NAMED_VALUE_FLOAT(NAMED_VALUE_FLOAT_DATA), - PLAY_TUNE(PLAY_TUNE_DATA), - VICON_POSITION_ESTIMATE(VICON_POSITION_ESTIMATE_DATA), - PARAM_REQUEST_READ(PARAM_REQUEST_READ_DATA), - PARAM_VALUE(PARAM_VALUE_DATA), - SAFETY_ALLOWED_AREA(SAFETY_ALLOWED_AREA_DATA), - GPS_RAW_INT(GPS_RAW_INT_DATA), - MOUNT_ORIENTATION(MOUNT_ORIENTATION_DATA), - COMPONENT_INFORMATION(COMPONENT_INFORMATION_DATA), - CAMERA_TRACKING_GEO_STATUS(CAMERA_TRACKING_GEO_STATUS_DATA), - CAN_FILTER_MODIFY(CAN_FILTER_MODIFY_DATA), - GIMBAL_DEVICE_ATTITUDE_STATUS(GIMBAL_DEVICE_ATTITUDE_STATUS_DATA), - HIL_RC_INPUTS_RAW(HIL_RC_INPUTS_RAW_DATA), - MISSION_CURRENT(MISSION_CURRENT_DATA), - ESC_STATUS(ESC_STATUS_DATA), - UAVCAN_NODE_INFO(UAVCAN_NODE_INFO_DATA), - MAG_CAL_REPORT(MAG_CAL_REPORT_DATA), - HIL_ACTUATOR_CONTROLS(HIL_ACTUATOR_CONTROLS_DATA), - OPEN_DRONE_ID_BASIC_ID(OPEN_DRONE_ID_BASIC_ID_DATA), - ATTITUDE_QUATERNION(ATTITUDE_QUATERNION_DATA), - V2_EXTENSION(V2_EXTENSION_DATA), - PARAM_EXT_VALUE(PARAM_EXT_VALUE_DATA), - HEARTBEAT(HEARTBEAT_DATA), + POSITION_TARGET_GLOBAL_INT(POSITION_TARGET_GLOBAL_INT_DATA), ENCAPSULATED_DATA(ENCAPSULATED_DATA_DATA), - ATTITUDE_TARGET(ATTITUDE_TARGET_DATA), - OPTICAL_FLOW(OPTICAL_FLOW_DATA), - MISSION_ITEM_REACHED(MISSION_ITEM_REACHED_DATA), - UAVIONIX_ADSB_OUT_DYNAMIC(UAVIONIX_ADSB_OUT_DYNAMIC_DATA), - ISBD_LINK_STATUS(ISBD_LINK_STATUS_DATA), - RAW_PRESSURE(RAW_PRESSURE_DATA), - CELLULAR_STATUS(CELLULAR_STATUS_DATA), - EVENT(EVENT_DATA), - PARAM_EXT_REQUEST_READ(PARAM_EXT_REQUEST_READ_DATA), - CAMERA_TRACKING_IMAGE_STATUS(CAMERA_TRACKING_IMAGE_STATUS_DATA), - SUPPORTED_TUNES(SUPPORTED_TUNES_DATA), - GIMBAL_MANAGER_INFORMATION(GIMBAL_MANAGER_INFORMATION_DATA), - SETUP_SIGNING(SETUP_SIGNING_DATA), - FOLLOW_TARGET(FOLLOW_TARGET_DATA), - LOG_ENTRY(LOG_ENTRY_DATA), - DEBUG_FLOAT_ARRAY(DEBUG_FLOAT_ARRAY_DATA), - COMPONENT_METADATA(COMPONENT_METADATA_DATA), + VICON_POSITION_ESTIMATE(VICON_POSITION_ESTIMATE_DATA), + OPEN_DRONE_ID_SELF_ID(OPEN_DRONE_ID_SELF_ID_DATA), + UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT(UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA), + PARAM_EXT_REQUEST_LIST(PARAM_EXT_REQUEST_LIST_DATA), + SET_MODE(SET_MODE_DATA), SYSTEM_TIME(SYSTEM_TIME_DATA), - SCALED_PRESSURE(SCALED_PRESSURE_DATA), - TIMESYNC(TIMESYNC_DATA), - EFI_STATUS(EFI_STATUS_DATA), - CONTROL_SYSTEM_STATE(CONTROL_SYSTEM_STATE_DATA), - GLOBAL_VISION_POSITION_ESTIMATE(GLOBAL_VISION_POSITION_ESTIMATE_DATA), - BUTTON_CHANGE(BUTTON_CHANGE_DATA), - ATT_POS_MOCAP(ATT_POS_MOCAP_DATA), - ATTITUDE_QUATERNION_COV(ATTITUDE_QUATERNION_COV_DATA), - CURRENT_EVENT_SEQUENCE(CURRENT_EVENT_SEQUENCE_DATA), - SET_ACTUATOR_CONTROL_TARGET(SET_ACTUATOR_CONTROL_TARGET_DATA), - SCALED_IMU3(SCALED_IMU3_DATA), - STATUSTEXT(STATUSTEXT_DATA), - GPS2_RAW(GPS2_RAW_DATA), - MISSION_SET_CURRENT(MISSION_SET_CURRENT_DATA), - SMART_BATTERY_INFO(SMART_BATTERY_INFO_DATA), - TERRAIN_REQUEST(TERRAIN_REQUEST_DATA), + ADSB_VEHICLE(ADSB_VEHICLE_DATA), + POSITION_TARGET_LOCAL_NED(POSITION_TARGET_LOCAL_NED_DATA), + HIL_OPTICAL_FLOW(HIL_OPTICAL_FLOW_DATA), + MISSION_REQUEST_LIST(MISSION_REQUEST_LIST_DATA), + PING(PING_DATA), + NAMED_VALUE_FLOAT(NAMED_VALUE_FLOAT_DATA), + HIL_ACTUATOR_CONTROLS(HIL_ACTUATOR_CONTROLS_DATA), + CAMERA_FOV_STATUS(CAMERA_FOV_STATUS_DATA), + SCALED_PRESSURE2(SCALED_PRESSURE2_DATA), + TUNNEL(TUNNEL_DATA), + DATA_STREAM(DATA_STREAM_DATA), + GPS_STATUS(GPS_STATUS_DATA), + COMMAND_ACK(COMMAND_ACK_DATA), DISTANCE_SENSOR(DISTANCE_SENSOR_DATA), - MISSION_ITEM_INT(MISSION_ITEM_INT_DATA), - GENERATOR_STATUS(GENERATOR_STATUS_DATA), - DEBUG(DEBUG_DATA), + WIFI_CONFIG_AP(WIFI_CONFIG_AP_DATA), + OPEN_DRONE_ID_SYSTEM(OPEN_DRONE_ID_SYSTEM_DATA), + MISSION_CLEAR_ALL(MISSION_CLEAR_ALL_DATA), + OPTICAL_FLOW_RAD(OPTICAL_FLOW_RAD_DATA), + ACTUATOR_OUTPUT_STATUS(ACTUATOR_OUTPUT_STATUS_DATA), WHEEL_DISTANCE(WHEEL_DISTANCE_DATA), - RAW_IMU(RAW_IMU_DATA), - MEMORY_VECT(MEMORY_VECT_DATA), - POSITION_TARGET_GLOBAL_INT(POSITION_TARGET_GLOBAL_INT_DATA), + ATTITUDE_TARGET(ATTITUDE_TARGET_DATA), + HEARTBEAT(HEARTBEAT_DATA), + MISSION_COUNT(MISSION_COUNT_DATA), AUTH_KEY(AUTH_KEY_DATA), - SCALED_IMU2(SCALED_IMU2_DATA), - SYS_STATUS(SYS_STATUS_DATA), - LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET(LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA), - SET_POSITION_TARGET_LOCAL_NED(SET_POSITION_TARGET_LOCAL_NED_DATA), - HIL_OPTICAL_FLOW(HIL_OPTICAL_FLOW_DATA), - TRAJECTORY_REPRESENTATION_BEZIER(TRAJECTORY_REPRESENTATION_BEZIER_DATA), - VISION_POSITION_ESTIMATE(VISION_POSITION_ESTIMATE_DATA), - PING(PING_DATA), - LOGGING_DATA(LOGGING_DATA_DATA), - VIBRATION(VIBRATION_DATA), + SET_ACTUATOR_CONTROL_TARGET(SET_ACTUATOR_CONTROL_TARGET_DATA), REQUEST_DATA_STREAM(REQUEST_DATA_STREAM_DATA), EXTENDED_SYS_STATE(EXTENDED_SYS_STATE_DATA), - POSITION_TARGET_LOCAL_NED(POSITION_TARGET_LOCAL_NED_DATA), - SET_MODE(SET_MODE_DATA), - LOGGING_DATA_ACKED(LOGGING_DATA_ACKED_DATA), - GPS_GLOBAL_ORIGIN(GPS_GLOBAL_ORIGIN_DATA), - GLOBAL_POSITION_INT_COV(GLOBAL_POSITION_INT_COV_DATA), - CAMERA_CAPTURE_STATUS(CAMERA_CAPTURE_STATUS_DATA), - DATA_STREAM(DATA_STREAM_DATA), + GIMBAL_MANAGER_SET_PITCHYAW(GIMBAL_MANAGER_SET_PITCHYAW_DATA), + SYS_STATUS(SYS_STATUS_DATA), + GENERATOR_STATUS(GENERATOR_STATUS_DATA), + GIMBAL_DEVICE_INFORMATION(GIMBAL_DEVICE_INFORMATION_DATA), + REQUEST_EVENT(REQUEST_EVENT_DATA), + LOCAL_POSITION_NED_COV(LOCAL_POSITION_NED_COV_DATA), + SCALED_PRESSURE(SCALED_PRESSURE_DATA), + RESOURCE_REQUEST(RESOURCE_REQUEST_DATA), + MISSION_REQUEST(MISSION_REQUEST_DATA), + CAMERA_TRIGGER(CAMERA_TRIGGER_DATA), + OPEN_DRONE_ID_SYSTEM_UPDATE(OPEN_DRONE_ID_SYSTEM_UPDATE_DATA), + RAW_PRESSURE(RAW_PRESSURE_DATA), ACTUATOR_CONTROL_TARGET(ACTUATOR_CONTROL_TARGET_DATA), - TERRAIN_CHECK(TERRAIN_CHECK_DATA), - RAW_RPM(RAW_RPM_DATA), - RC_CHANNELS_OVERRIDE(RC_CHANNELS_OVERRIDE_DATA), OPEN_DRONE_ID_AUTHENTICATION(OPEN_DRONE_ID_AUTHENTICATION_DATA), - UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT(UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA), - PARAM_SET(PARAM_SET_DATA), - HIL_STATE(HIL_STATE_DATA), - LOG_REQUEST_DATA(LOG_REQUEST_DATA_DATA), - MANUAL_SETPOINT(MANUAL_SETPOINT_DATA), - SET_ATTITUDE_TARGET(SET_ATTITUDE_TARGET_DATA), - OPEN_DRONE_ID_ARM_STATUS(OPEN_DRONE_ID_ARM_STATUS_DATA), - GIMBAL_MANAGER_SET_PITCHYAW(GIMBAL_MANAGER_SET_PITCHYAW_DATA), - COLLISION(COLLISION_DATA), - SET_POSITION_TARGET_GLOBAL_INT(SET_POSITION_TARGET_GLOBAL_INT_DATA), + LOCAL_POSITION_NED(LOCAL_POSITION_NED_DATA), + GLOBAL_VISION_POSITION_ESTIMATE(GLOBAL_VISION_POSITION_ESTIMATE_DATA), + MAG_CAL_REPORT(MAG_CAL_REPORT_DATA), + CELLULAR_STATUS(CELLULAR_STATUS_DATA), + DEBUG_FLOAT_ARRAY(DEBUG_FLOAT_ARRAY_DATA), + GIMBAL_DEVICE_ATTITUDE_STATUS(GIMBAL_DEVICE_ATTITUDE_STATUS_DATA), + OPEN_DRONE_ID_MESSAGE_PACK(OPEN_DRONE_ID_MESSAGE_PACK_DATA), + GIMBAL_DEVICE_SET_ATTITUDE(GIMBAL_DEVICE_SET_ATTITUDE_DATA), + MISSION_ITEM_INT(MISSION_ITEM_INT_DATA), + TERRAIN_CHECK(TERRAIN_CHECK_DATA), SAFETY_SET_ALLOWED_AREA(SAFETY_SET_ALLOWED_AREA_DATA), - PLAY_TUNE_V2(PLAY_TUNE_V2_DATA), - OPEN_DRONE_ID_LOCATION(OPEN_DRONE_ID_LOCATION_DATA), - VFR_HUD(VFR_HUD_DATA), - CAMERA_INFORMATION(CAMERA_INFORMATION_DATA), - FENCE_STATUS(FENCE_STATUS_DATA), - HIGH_LATENCY(HIGH_LATENCY_DATA), - HIGH_LATENCY2(HIGH_LATENCY2_DATA), - LOG_ERASE(LOG_ERASE_DATA), - OBSTACLE_DISTANCE(OBSTACLE_DISTANCE_DATA), - ESC_INFO(ESC_INFO_DATA), - TUNNEL(TUNNEL_DATA), - HIGHRES_IMU(HIGHRES_IMU_DATA), - HIL_GPS(HIL_GPS_DATA), - OPEN_DRONE_ID_SYSTEM_UPDATE(OPEN_DRONE_ID_SYSTEM_UPDATE_DATA), + UAVIONIX_ADSB_OUT_DYNAMIC(UAVIONIX_ADSB_OUT_DYNAMIC_DATA), + VISION_POSITION_ESTIMATE(VISION_POSITION_ESTIMATE_DATA), + ORBIT_EXECUTION_STATUS(ORBIT_EXECUTION_STATUS_DATA), + SET_POSITION_TARGET_LOCAL_NED(SET_POSITION_TARGET_LOCAL_NED_DATA), + ALTITUDE(ALTITUDE_DATA), + CHANGE_OPERATOR_CONTROL(CHANGE_OPERATOR_CONTROL_DATA), + MISSION_REQUEST_INT(MISSION_REQUEST_INT_DATA), + LOG_REQUEST_LIST(LOG_REQUEST_LIST_DATA), + RC_CHANNELS(RC_CHANNELS_DATA), VIDEO_STREAM_STATUS(VIDEO_STREAM_STATUS_DATA), - NAMED_VALUE_INT(NAMED_VALUE_INT_DATA), - MISSION_ACK(MISSION_ACK_DATA), + MISSION_WRITE_PARTIAL_LIST(MISSION_WRITE_PARTIAL_LIST_DATA), + ATT_POS_MOCAP(ATT_POS_MOCAP_DATA), + UAVCAN_NODE_STATUS(UAVCAN_NODE_STATUS_DATA), + ONBOARD_COMPUTER_STATUS(ONBOARD_COMPUTER_STATUS_DATA), + RAW_IMU(RAW_IMU_DATA), + AUTOPILOT_STATE_FOR_GIMBAL_DEVICE(AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA), + MANUAL_CONTROL(MANUAL_CONTROL_DATA), + SERVO_OUTPUT_RAW(SERVO_OUTPUT_RAW_DATA), + ATTITUDE_QUATERNION(ATTITUDE_QUATERNION_DATA), + MISSION_ITEM_REACHED(MISSION_ITEM_REACHED_DATA), DATA_TRANSMISSION_HANDSHAKE(DATA_TRANSMISSION_HANDSHAKE_DATA), - CAMERA_FOV_STATUS(CAMERA_FOV_STATUS_DATA), - MESSAGE_INTERVAL(MESSAGE_INTERVAL_DATA), - LOG_REQUEST_LIST(LOG_REQUEST_LIST_DATA), - CAMERA_SETTINGS(CAMERA_SETTINGS_DATA), - SIM_STATE(SIM_STATE_DATA), - TERRAIN_DATA(TERRAIN_DATA_DATA), - OPEN_DRONE_ID_SYSTEM(OPEN_DRONE_ID_SYSTEM_DATA), - OPTICAL_FLOW_RAD(OPTICAL_FLOW_RAD_DATA), - WINCH_STATUS(WINCH_STATUS_DATA), - SCALED_IMU(SCALED_IMU_DATA), + STATUSTEXT(STATUSTEXT_DATA), + LOGGING_DATA(LOGGING_DATA_DATA), + RC_CHANNELS_SCALED(RC_CHANNELS_SCALED_DATA), + MEMORY_VECT(MEMORY_VECT_DATA), + LOG_ENTRY(LOG_ENTRY_DATA), + HIL_CONTROLS(HIL_CONTROLS_DATA), + LOG_REQUEST_DATA(LOG_REQUEST_DATA_DATA), + TERRAIN_REQUEST(TERRAIN_REQUEST_DATA), + ISBD_LINK_STATUS(ISBD_LINK_STATUS_DATA), + SET_POSITION_TARGET_GLOBAL_INT(SET_POSITION_TARGET_GLOBAL_INT_DATA), + HIL_SENSOR(HIL_SENSOR_DATA), + V2_EXTENSION(V2_EXTENSION_DATA), + COMMAND_LONG(COMMAND_LONG_DATA), UAVIONIX_ADSB_OUT_CFG(UAVIONIX_ADSB_OUT_CFG_DATA), - GIMBAL_MANAGER_SET_MANUAL_CONTROL(GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA), - SET_HOME_POSITION(SET_HOME_POSITION_DATA), - MISSION_CLEAR_ALL(MISSION_CLEAR_ALL_DATA), - OPEN_DRONE_ID_OPERATOR_ID(OPEN_DRONE_ID_OPERATOR_ID_DATA), - COMMAND_CANCEL(COMMAND_CANCEL_DATA), - MISSION_COUNT(MISSION_COUNT_DATA), - WIFI_CONFIG_AP(WIFI_CONFIG_AP_DATA), - MANUAL_CONTROL(MANUAL_CONTROL_DATA), - FILE_TRANSFER_PROTOCOL(FILE_TRANSFER_PROTOCOL_DATA), - GIMBAL_MANAGER_STATUS(GIMBAL_MANAGER_STATUS_DATA), - GIMBAL_DEVICE_INFORMATION(GIMBAL_DEVICE_INFORMATION_DATA), - HOME_POSITION(HOME_POSITION_DATA), - VISION_SPEED_ESTIMATE(VISION_SPEED_ESTIMATE_DATA), + ESTIMATOR_STATUS(ESTIMATOR_STATUS_DATA), + HIGH_LATENCY2(HIGH_LATENCY2_DATA), + AUTOPILOT_VERSION(AUTOPILOT_VERSION_DATA), + DEBUG_VECT(DEBUG_VECT_DATA), + COMPONENT_INFORMATION(COMPONENT_INFORMATION_DATA), + PARAM_MAP_RC(PARAM_MAP_RC_DATA), + CAMERA_INFORMATION(CAMERA_INFORMATION_DATA), + VIBRATION(VIBRATION_DATA), + OBSTACLE_DISTANCE(OBSTACLE_DISTANCE_DATA), + RC_CHANNELS_RAW(RC_CHANNELS_RAW_DATA), + UAVCAN_NODE_INFO(UAVCAN_NODE_INFO_DATA), + EVENT(EVENT_DATA), FLIGHT_INFORMATION(FLIGHT_INFORMATION_DATA), - POWER_STATUS(POWER_STATUS_DATA), - LOG_REQUEST_END(LOG_REQUEST_END_DATA), - SCALED_PRESSURE2(SCALED_PRESSURE2_DATA), - CELLULAR_CONFIG(CELLULAR_CONFIG_DATA), - AIS_VESSEL(AIS_VESSEL_DATA), - NAV_CONTROLLER_OUTPUT(NAV_CONTROLLER_OUTPUT_DATA), - RESOURCE_REQUEST(RESOURCE_REQUEST_DATA), PARAM_EXT_SET(PARAM_EXT_SET_DATA), - CAMERA_IMAGE_CAPTURED(CAMERA_IMAGE_CAPTURED_DATA), - COMMAND_ACK(COMMAND_ACK_DATA), - RC_CHANNELS_SCALED(RC_CHANNELS_SCALED_DATA), - TRAJECTORY_REPRESENTATION_WAYPOINTS(TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA), - MISSION_ITEM(MISSION_ITEM_DATA), - COMMAND_LONG(COMMAND_LONG_DATA), - MISSION_REQUEST_INT(MISSION_REQUEST_INT_DATA), - GLOBAL_POSITION_INT(GLOBAL_POSITION_INT_DATA), - ADSB_VEHICLE(ADSB_VEHICLE_DATA), - SET_GPS_GLOBAL_ORIGIN(SET_GPS_GLOBAL_ORIGIN_DATA), - GPS_STATUS(GPS_STATUS_DATA), - GPS2_RTK(GPS2_RTK_DATA), + CAMERA_CAPTURE_STATUS(CAMERA_CAPTURE_STATUS_DATA), LANDING_TARGET(LANDING_TARGET_DATA), - SERVO_OUTPUT_RAW(SERVO_OUTPUT_RAW_DATA), - ALTITUDE(ALTITUDE_DATA), - HYGROMETER_SENSOR(HYGROMETER_SENSOR_DATA), + TIMESYNC(TIMESYNC_DATA), + EFI_STATUS(EFI_STATUS_DATA), + VISION_SPEED_ESTIMATE(VISION_SPEED_ESTIMATE_DATA), + GPS2_RAW(GPS2_RAW_DATA), COMMAND_INT(COMMAND_INT_DATA), - HIL_SENSOR(HIL_SENSOR_DATA), - ODOMETRY(ODOMETRY_DATA), - CAN_FRAME(CAN_FRAME_DATA), - PARAM_EXT_REQUEST_LIST(PARAM_EXT_REQUEST_LIST_DATA), - GPS_RTCM_DATA(GPS_RTCM_DATA_DATA), - GPS_RTK(GPS_RTK_DATA), - ATTITUDE(ATTITUDE_DATA), + MISSION_SET_CURRENT(MISSION_SET_CURRENT_DATA), + LOG_ERASE(LOG_ERASE_DATA), + LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET(LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA), + HIL_STATE(HIL_STATE_DATA), + BUTTON_CHANGE(BUTTON_CHANGE_DATA), + GPS_RAW_INT(GPS_RAW_INT_DATA), + COLLISION(COLLISION_DATA), + AIS_VESSEL(AIS_VESSEL_DATA), + TERRAIN_DATA(TERRAIN_DATA_DATA), + GPS_GLOBAL_ORIGIN(GPS_GLOBAL_ORIGIN_DATA), + OPEN_DRONE_ID_LOCATION(OPEN_DRONE_ID_LOCATION_DATA), + SCALED_IMU2(SCALED_IMU2_DATA), + RESPONSE_EVENT_ERROR(RESPONSE_EVENT_ERROR_DATA), + GIMBAL_MANAGER_STATUS(GIMBAL_MANAGER_STATUS_DATA), SERIAL_CONTROL(SERIAL_CONTROL_DATA), - MISSION_REQUEST_LIST(MISSION_REQUEST_LIST_DATA), - CAMERA_TRIGGER(CAMERA_TRIGGER_DATA), - ACTUATOR_OUTPUT_STATUS(ACTUATOR_OUTPUT_STATUS_DATA), - TIME_ESTIMATE_TO_TARGET(TIME_ESTIMATE_TO_TARGET_DATA), - MISSION_REQUEST_PARTIAL_LIST(MISSION_REQUEST_PARTIAL_LIST_DATA), - DEBUG_VECT(DEBUG_VECT_DATA), - ORBIT_EXECUTION_STATUS(ORBIT_EXECUTION_STATUS_DATA), + WINCH_STATUS(WINCH_STATUS_DATA), + PARAM_REQUEST_LIST(PARAM_REQUEST_LIST_DATA), + LOGGING_DATA_ACKED(LOGGING_DATA_ACKED_DATA), + GLOBAL_POSITION_INT_COV(GLOBAL_POSITION_INT_COV_DATA), LOGGING_ACK(LOGGING_ACK_DATA), - ONBOARD_COMPUTER_STATUS(ONBOARD_COMPUTER_STATUS_DATA), - HIL_CONTROLS(HIL_CONTROLS_DATA), - RESPONSE_EVENT_ERROR(RESPONSE_EVENT_ERROR_DATA), - OPEN_DRONE_ID_MESSAGE_PACK(OPEN_DRONE_ID_MESSAGE_PACK_DATA), - HIL_STATE_QUATERNION(HIL_STATE_QUATERNION_DATA), - CHANGE_OPERATOR_CONTROL_ACK(CHANGE_OPERATOR_CONTROL_ACK_DATA), - LOCAL_POSITION_NED_COV(LOCAL_POSITION_NED_COV_DATA), - PARAM_MAP_RC(PARAM_MAP_RC_DATA), - REQUEST_EVENT(REQUEST_EVENT_DATA), - MISSION_REQUEST(MISSION_REQUEST_DATA), -
}

Variantsยง

ยง

RC_CHANNELS_RAW(RC_CHANNELS_RAW_DATA)

ยง

UAVCAN_NODE_STATUS(UAVCAN_NODE_STATUS_DATA)

ยง

LOCAL_POSITION_NED(LOCAL_POSITION_NED_DATA)

ยง

BATTERY_STATUS(BATTERY_STATUS_DATA)

ยง

TERRAIN_REPORT(TERRAIN_REPORT_DATA)

ยง

OPEN_DRONE_ID_SELF_ID(OPEN_DRONE_ID_SELF_ID_DATA)

ยง

UTM_GLOBAL_POSITION(UTM_GLOBAL_POSITION_DATA)

ยง

SCALED_PRESSURE3(SCALED_PRESSURE3_DATA)

ยง

LOG_DATA(LOG_DATA_DATA)

ยง

CHANGE_OPERATOR_CONTROL(CHANGE_OPERATOR_CONTROL_DATA)

ยง

WIND_COV(WIND_COV_DATA)

ยง

GPS_INJECT_DATA(GPS_INJECT_DATA_DATA)

ยง

ESTIMATOR_STATUS(ESTIMATOR_STATUS_DATA)

ยง

VIDEO_STREAM_INFORMATION(VIDEO_STREAM_INFORMATION_DATA)

ยง

GIMBAL_DEVICE_SET_ATTITUDE(GIMBAL_DEVICE_SET_ATTITUDE_DATA)

ยง

CANFD_FRAME(CANFD_FRAME_DATA)

ยง

AUTOPILOT_VERSION(AUTOPILOT_VERSION_DATA)

ยง

MISSION_WRITE_PARTIAL_LIST(MISSION_WRITE_PARTIAL_LIST_DATA)

ยง

PARAM_EXT_ACK(PARAM_EXT_ACK_DATA)

ยง

RADIO_STATUS(RADIO_STATUS_DATA)

ยง

RC_CHANNELS(RC_CHANNELS_DATA)

ยง

GPS_INPUT(GPS_INPUT_DATA)

ยง

STORAGE_INFORMATION(STORAGE_INFORMATION_DATA)

ยง

PARAM_REQUEST_LIST(PARAM_REQUEST_LIST_DATA)

ยง

AUTOPILOT_STATE_FOR_GIMBAL_DEVICE(AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA)

ยง

GIMBAL_MANAGER_SET_ATTITUDE(GIMBAL_MANAGER_SET_ATTITUDE_DATA)

ยง

PROTOCOL_VERSION(PROTOCOL_VERSION_DATA)

ยง

NAMED_VALUE_FLOAT(NAMED_VALUE_FLOAT_DATA)

ยง

PLAY_TUNE(PLAY_TUNE_DATA)

ยง

VICON_POSITION_ESTIMATE(VICON_POSITION_ESTIMATE_DATA)

ยง

PARAM_REQUEST_READ(PARAM_REQUEST_READ_DATA)

ยง

PARAM_VALUE(PARAM_VALUE_DATA)

ยง

SAFETY_ALLOWED_AREA(SAFETY_ALLOWED_AREA_DATA)

ยง

GPS_RAW_INT(GPS_RAW_INT_DATA)

ยง

MOUNT_ORIENTATION(MOUNT_ORIENTATION_DATA)

ยง

COMPONENT_INFORMATION(COMPONENT_INFORMATION_DATA)

ยง

CAMERA_TRACKING_GEO_STATUS(CAMERA_TRACKING_GEO_STATUS_DATA)

ยง

CAN_FILTER_MODIFY(CAN_FILTER_MODIFY_DATA)

ยง

GIMBAL_DEVICE_ATTITUDE_STATUS(GIMBAL_DEVICE_ATTITUDE_STATUS_DATA)

ยง

HIL_RC_INPUTS_RAW(HIL_RC_INPUTS_RAW_DATA)

ยง

MISSION_CURRENT(MISSION_CURRENT_DATA)

ยง

ESC_STATUS(ESC_STATUS_DATA)

ยง

UAVCAN_NODE_INFO(UAVCAN_NODE_INFO_DATA)

ยง

MAG_CAL_REPORT(MAG_CAL_REPORT_DATA)

ยง

HIL_ACTUATOR_CONTROLS(HIL_ACTUATOR_CONTROLS_DATA)

ยง

OPEN_DRONE_ID_BASIC_ID(OPEN_DRONE_ID_BASIC_ID_DATA)

ยง

ATTITUDE_QUATERNION(ATTITUDE_QUATERNION_DATA)

ยง

V2_EXTENSION(V2_EXTENSION_DATA)

ยง

PARAM_EXT_VALUE(PARAM_EXT_VALUE_DATA)

ยง

HEARTBEAT(HEARTBEAT_DATA)

ยง

ENCAPSULATED_DATA(ENCAPSULATED_DATA_DATA)

ยง

ATTITUDE_TARGET(ATTITUDE_TARGET_DATA)

ยง

OPTICAL_FLOW(OPTICAL_FLOW_DATA)

ยง

MISSION_ITEM_REACHED(MISSION_ITEM_REACHED_DATA)

ยง

UAVIONIX_ADSB_OUT_DYNAMIC(UAVIONIX_ADSB_OUT_DYNAMIC_DATA)

ยง

RAW_PRESSURE(RAW_PRESSURE_DATA)

ยง

CELLULAR_STATUS(CELLULAR_STATUS_DATA)

ยง

EVENT(EVENT_DATA)

ยง

PARAM_EXT_REQUEST_READ(PARAM_EXT_REQUEST_READ_DATA)

ยง

CAMERA_TRACKING_IMAGE_STATUS(CAMERA_TRACKING_IMAGE_STATUS_DATA)

ยง

SUPPORTED_TUNES(SUPPORTED_TUNES_DATA)

ยง

GIMBAL_MANAGER_INFORMATION(GIMBAL_MANAGER_INFORMATION_DATA)

ยง

SETUP_SIGNING(SETUP_SIGNING_DATA)

ยง

FOLLOW_TARGET(FOLLOW_TARGET_DATA)

ยง

LOG_ENTRY(LOG_ENTRY_DATA)

ยง

DEBUG_FLOAT_ARRAY(DEBUG_FLOAT_ARRAY_DATA)

ยง

COMPONENT_METADATA(COMPONENT_METADATA_DATA)

ยง

SYSTEM_TIME(SYSTEM_TIME_DATA)

ยง

SCALED_PRESSURE(SCALED_PRESSURE_DATA)

ยง

TIMESYNC(TIMESYNC_DATA)

ยง

EFI_STATUS(EFI_STATUS_DATA)

ยง

CONTROL_SYSTEM_STATE(CONTROL_SYSTEM_STATE_DATA)

ยง

GLOBAL_VISION_POSITION_ESTIMATE(GLOBAL_VISION_POSITION_ESTIMATE_DATA)

ยง

BUTTON_CHANGE(BUTTON_CHANGE_DATA)

ยง

ATT_POS_MOCAP(ATT_POS_MOCAP_DATA)

ยง

ATTITUDE_QUATERNION_COV(ATTITUDE_QUATERNION_COV_DATA)

ยง

CURRENT_EVENT_SEQUENCE(CURRENT_EVENT_SEQUENCE_DATA)

ยง

SET_ACTUATOR_CONTROL_TARGET(SET_ACTUATOR_CONTROL_TARGET_DATA)

ยง

SCALED_IMU3(SCALED_IMU3_DATA)

ยง

STATUSTEXT(STATUSTEXT_DATA)

ยง

GPS2_RAW(GPS2_RAW_DATA)

ยง

MISSION_SET_CURRENT(MISSION_SET_CURRENT_DATA)

ยง

SMART_BATTERY_INFO(SMART_BATTERY_INFO_DATA)

ยง

TERRAIN_REQUEST(TERRAIN_REQUEST_DATA)

ยง

DISTANCE_SENSOR(DISTANCE_SENSOR_DATA)

ยง

MISSION_ITEM_INT(MISSION_ITEM_INT_DATA)

ยง

GENERATOR_STATUS(GENERATOR_STATUS_DATA)

ยง

DEBUG(DEBUG_DATA)

ยง

WHEEL_DISTANCE(WHEEL_DISTANCE_DATA)

ยง

RAW_IMU(RAW_IMU_DATA)

ยง

MEMORY_VECT(MEMORY_VECT_DATA)

ยง

POSITION_TARGET_GLOBAL_INT(POSITION_TARGET_GLOBAL_INT_DATA)

ยง

AUTH_KEY(AUTH_KEY_DATA)

ยง

SCALED_IMU2(SCALED_IMU2_DATA)

ยง

SYS_STATUS(SYS_STATUS_DATA)

ยง

LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET(LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA)

ยง

SET_POSITION_TARGET_LOCAL_NED(SET_POSITION_TARGET_LOCAL_NED_DATA)

ยง

HIL_OPTICAL_FLOW(HIL_OPTICAL_FLOW_DATA)

ยง

TRAJECTORY_REPRESENTATION_BEZIER(TRAJECTORY_REPRESENTATION_BEZIER_DATA)

ยง

VISION_POSITION_ESTIMATE(VISION_POSITION_ESTIMATE_DATA)

ยง

PING(PING_DATA)

ยง

LOGGING_DATA(LOGGING_DATA_DATA)

ยง

VIBRATION(VIBRATION_DATA)

ยง

REQUEST_DATA_STREAM(REQUEST_DATA_STREAM_DATA)

ยง

EXTENDED_SYS_STATE(EXTENDED_SYS_STATE_DATA)

ยง

POSITION_TARGET_LOCAL_NED(POSITION_TARGET_LOCAL_NED_DATA)

ยง

SET_MODE(SET_MODE_DATA)

ยง

LOGGING_DATA_ACKED(LOGGING_DATA_ACKED_DATA)

ยง

GPS_GLOBAL_ORIGIN(GPS_GLOBAL_ORIGIN_DATA)

ยง

GLOBAL_POSITION_INT_COV(GLOBAL_POSITION_INT_COV_DATA)

ยง

CAMERA_CAPTURE_STATUS(CAMERA_CAPTURE_STATUS_DATA)

ยง

DATA_STREAM(DATA_STREAM_DATA)

ยง

ACTUATOR_CONTROL_TARGET(ACTUATOR_CONTROL_TARGET_DATA)

ยง

TERRAIN_CHECK(TERRAIN_CHECK_DATA)

ยง

RAW_RPM(RAW_RPM_DATA)

ยง

RC_CHANNELS_OVERRIDE(RC_CHANNELS_OVERRIDE_DATA)

ยง

OPEN_DRONE_ID_AUTHENTICATION(OPEN_DRONE_ID_AUTHENTICATION_DATA)

ยง

UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT(UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA)

ยง

PARAM_SET(PARAM_SET_DATA)

ยง

HIL_STATE(HIL_STATE_DATA)

ยง

LOG_REQUEST_DATA(LOG_REQUEST_DATA_DATA)

ยง

MANUAL_SETPOINT(MANUAL_SETPOINT_DATA)

ยง

SET_ATTITUDE_TARGET(SET_ATTITUDE_TARGET_DATA)

ยง

OPEN_DRONE_ID_ARM_STATUS(OPEN_DRONE_ID_ARM_STATUS_DATA)

ยง

GIMBAL_MANAGER_SET_PITCHYAW(GIMBAL_MANAGER_SET_PITCHYAW_DATA)

ยง

COLLISION(COLLISION_DATA)

ยง

SET_POSITION_TARGET_GLOBAL_INT(SET_POSITION_TARGET_GLOBAL_INT_DATA)

ยง

SAFETY_SET_ALLOWED_AREA(SAFETY_SET_ALLOWED_AREA_DATA)

ยง

PLAY_TUNE_V2(PLAY_TUNE_V2_DATA)

ยง

OPEN_DRONE_ID_LOCATION(OPEN_DRONE_ID_LOCATION_DATA)

ยง

VFR_HUD(VFR_HUD_DATA)

ยง

CAMERA_INFORMATION(CAMERA_INFORMATION_DATA)

ยง

FENCE_STATUS(FENCE_STATUS_DATA)

ยง

HIGH_LATENCY(HIGH_LATENCY_DATA)

ยง

HIGH_LATENCY2(HIGH_LATENCY2_DATA)

ยง

LOG_ERASE(LOG_ERASE_DATA)

ยง

OBSTACLE_DISTANCE(OBSTACLE_DISTANCE_DATA)

ยง

ESC_INFO(ESC_INFO_DATA)

ยง

TUNNEL(TUNNEL_DATA)

ยง

HIGHRES_IMU(HIGHRES_IMU_DATA)

ยง

HIL_GPS(HIL_GPS_DATA)

ยง

OPEN_DRONE_ID_SYSTEM_UPDATE(OPEN_DRONE_ID_SYSTEM_UPDATE_DATA)

ยง

VIDEO_STREAM_STATUS(VIDEO_STREAM_STATUS_DATA)

ยง

NAMED_VALUE_INT(NAMED_VALUE_INT_DATA)

ยง

MISSION_ACK(MISSION_ACK_DATA)

ยง

DATA_TRANSMISSION_HANDSHAKE(DATA_TRANSMISSION_HANDSHAKE_DATA)

ยง

CAMERA_FOV_STATUS(CAMERA_FOV_STATUS_DATA)

ยง

MESSAGE_INTERVAL(MESSAGE_INTERVAL_DATA)

ยง

LOG_REQUEST_LIST(LOG_REQUEST_LIST_DATA)

ยง

CAMERA_SETTINGS(CAMERA_SETTINGS_DATA)

ยง

SIM_STATE(SIM_STATE_DATA)

ยง

TERRAIN_DATA(TERRAIN_DATA_DATA)

ยง

OPEN_DRONE_ID_SYSTEM(OPEN_DRONE_ID_SYSTEM_DATA)

ยง

OPTICAL_FLOW_RAD(OPTICAL_FLOW_RAD_DATA)

ยง

WINCH_STATUS(WINCH_STATUS_DATA)

ยง

SCALED_IMU(SCALED_IMU_DATA)

ยง

UAVIONIX_ADSB_OUT_CFG(UAVIONIX_ADSB_OUT_CFG_DATA)

ยง

GIMBAL_MANAGER_SET_MANUAL_CONTROL(GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA)

ยง

SET_HOME_POSITION(SET_HOME_POSITION_DATA)

ยง

MISSION_CLEAR_ALL(MISSION_CLEAR_ALL_DATA)

ยง

OPEN_DRONE_ID_OPERATOR_ID(OPEN_DRONE_ID_OPERATOR_ID_DATA)

ยง

COMMAND_CANCEL(COMMAND_CANCEL_DATA)

ยง

MISSION_COUNT(MISSION_COUNT_DATA)

ยง

WIFI_CONFIG_AP(WIFI_CONFIG_AP_DATA)

ยง

MANUAL_CONTROL(MANUAL_CONTROL_DATA)

ยง

FILE_TRANSFER_PROTOCOL(FILE_TRANSFER_PROTOCOL_DATA)

ยง

GIMBAL_MANAGER_STATUS(GIMBAL_MANAGER_STATUS_DATA)

ยง

GIMBAL_DEVICE_INFORMATION(GIMBAL_DEVICE_INFORMATION_DATA)

ยง

HOME_POSITION(HOME_POSITION_DATA)

ยง

VISION_SPEED_ESTIMATE(VISION_SPEED_ESTIMATE_DATA)

ยง

FLIGHT_INFORMATION(FLIGHT_INFORMATION_DATA)

ยง

POWER_STATUS(POWER_STATUS_DATA)

ยง

LOG_REQUEST_END(LOG_REQUEST_END_DATA)

ยง

SCALED_PRESSURE2(SCALED_PRESSURE2_DATA)

ยง

CELLULAR_CONFIG(CELLULAR_CONFIG_DATA)

ยง

AIS_VESSEL(AIS_VESSEL_DATA)

ยง

NAV_CONTROLLER_OUTPUT(NAV_CONTROLLER_OUTPUT_DATA)

ยง

RESOURCE_REQUEST(RESOURCE_REQUEST_DATA)

ยง

PARAM_EXT_SET(PARAM_EXT_SET_DATA)

ยง

CAMERA_IMAGE_CAPTURED(CAMERA_IMAGE_CAPTURED_DATA)

ยง

COMMAND_ACK(COMMAND_ACK_DATA)

ยง

RC_CHANNELS_SCALED(RC_CHANNELS_SCALED_DATA)

ยง

TRAJECTORY_REPRESENTATION_WAYPOINTS(TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA)

ยง

MISSION_ITEM(MISSION_ITEM_DATA)

ยง

COMMAND_LONG(COMMAND_LONG_DATA)

ยง

MISSION_REQUEST_INT(MISSION_REQUEST_INT_DATA)

ยง

GLOBAL_POSITION_INT(GLOBAL_POSITION_INT_DATA)

ยง

ADSB_VEHICLE(ADSB_VEHICLE_DATA)

ยง

SET_GPS_GLOBAL_ORIGIN(SET_GPS_GLOBAL_ORIGIN_DATA)

ยง

GPS_STATUS(GPS_STATUS_DATA)

ยง

GPS2_RTK(GPS2_RTK_DATA)

ยง

LANDING_TARGET(LANDING_TARGET_DATA)

ยง

SERVO_OUTPUT_RAW(SERVO_OUTPUT_RAW_DATA)

ยง

ALTITUDE(ALTITUDE_DATA)

ยง

HYGROMETER_SENSOR(HYGROMETER_SENSOR_DATA)

ยง

COMMAND_INT(COMMAND_INT_DATA)

ยง

HIL_SENSOR(HIL_SENSOR_DATA)

ยง

ODOMETRY(ODOMETRY_DATA)

ยง

CAN_FRAME(CAN_FRAME_DATA)

ยง

PARAM_EXT_REQUEST_LIST(PARAM_EXT_REQUEST_LIST_DATA)

ยง

GPS_RTCM_DATA(GPS_RTCM_DATA_DATA)

ยง

GPS_RTK(GPS_RTK_DATA)

ยง

ATTITUDE(ATTITUDE_DATA)

ยง

SERIAL_CONTROL(SERIAL_CONTROL_DATA)

ยง

MISSION_REQUEST_LIST(MISSION_REQUEST_LIST_DATA)

ยง

CAMERA_TRIGGER(CAMERA_TRIGGER_DATA)

ยง

ACTUATOR_OUTPUT_STATUS(ACTUATOR_OUTPUT_STATUS_DATA)

ยง

TIME_ESTIMATE_TO_TARGET(TIME_ESTIMATE_TO_TARGET_DATA)

ยง

MISSION_REQUEST_PARTIAL_LIST(MISSION_REQUEST_PARTIAL_LIST_DATA)

ยง

DEBUG_VECT(DEBUG_VECT_DATA)

ยง

ORBIT_EXECUTION_STATUS(ORBIT_EXECUTION_STATUS_DATA)

ยง

LOGGING_ACK(LOGGING_ACK_DATA)

ยง

ONBOARD_COMPUTER_STATUS(ONBOARD_COMPUTER_STATUS_DATA)

ยง

HIL_CONTROLS(HIL_CONTROLS_DATA)

ยง

RESPONSE_EVENT_ERROR(RESPONSE_EVENT_ERROR_DATA)

ยง

OPEN_DRONE_ID_MESSAGE_PACK(OPEN_DRONE_ID_MESSAGE_PACK_DATA)

ยง

HIL_STATE_QUATERNION(HIL_STATE_QUATERNION_DATA)

ยง

CHANGE_OPERATOR_CONTROL_ACK(CHANGE_OPERATOR_CONTROL_ACK_DATA)

ยง

LOCAL_POSITION_NED_COV(LOCAL_POSITION_NED_COV_DATA)

ยง

PARAM_MAP_RC(PARAM_MAP_RC_DATA)

ยง

REQUEST_EVENT(REQUEST_EVENT_DATA)

ยง

MISSION_REQUEST(MISSION_REQUEST_DATA)

Trait Implementationsยง

sourceยง

impl Clone for MavMessage

sourceยง

fn clone(&self) -> MavMessage

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavMessage

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl<'de> Deserialize<'de> for MavMessage

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + LOG_DATA(LOG_DATA_DATA), + PARAM_EXT_VALUE(PARAM_EXT_VALUE_DATA), + PLAY_TUNE_V2(PLAY_TUNE_V2_DATA), + SET_GPS_GLOBAL_ORIGIN(SET_GPS_GLOBAL_ORIGIN_DATA), + FOLLOW_TARGET(FOLLOW_TARGET_DATA), + MANUAL_SETPOINT(MANUAL_SETPOINT_DATA), + RC_CHANNELS_OVERRIDE(RC_CHANNELS_OVERRIDE_DATA), + LINK_NODE_STATUS(LINK_NODE_STATUS_DATA), + GLOBAL_POSITION_INT(GLOBAL_POSITION_INT_DATA), + CAN_FILTER_MODIFY(CAN_FILTER_MODIFY_DATA), + PARAM_EXT_REQUEST_READ(PARAM_EXT_REQUEST_READ_DATA), + UTM_GLOBAL_POSITION(UTM_GLOBAL_POSITION_DATA), + OPEN_DRONE_ID_BASIC_ID(OPEN_DRONE_ID_BASIC_ID_DATA), + SET_ATTITUDE_TARGET(SET_ATTITUDE_TARGET_DATA), + BATTERY_STATUS(BATTERY_STATUS_DATA), + SCALED_IMU3(SCALED_IMU3_DATA), + MISSION_REQUEST_PARTIAL_LIST(MISSION_REQUEST_PARTIAL_LIST_DATA), + SETUP_SIGNING(SETUP_SIGNING_DATA), + SMART_BATTERY_INFO(SMART_BATTERY_INFO_DATA), + MOUNT_ORIENTATION(MOUNT_ORIENTATION_DATA), + HOME_POSITION(HOME_POSITION_DATA), + SAFETY_ALLOWED_AREA(SAFETY_ALLOWED_AREA_DATA), + GIMBAL_MANAGER_SET_MANUAL_CONTROL(GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA), + CONTROL_SYSTEM_STATE(CONTROL_SYSTEM_STATE_DATA), +

}

Variantsยง

ยง

MISSION_ACK(MISSION_ACK_DATA)

ยง

COMMAND_CANCEL(COMMAND_CANCEL_DATA)

ยง

CAMERA_TRACKING_IMAGE_STATUS(CAMERA_TRACKING_IMAGE_STATUS_DATA)

ยง

PARAM_VALUE(PARAM_VALUE_DATA)

ยง

SUPPORTED_TUNES(SUPPORTED_TUNES_DATA)

ยง

OPEN_DRONE_ID_OPERATOR_ID(OPEN_DRONE_ID_OPERATOR_ID_DATA)

ยง

SET_HOME_POSITION(SET_HOME_POSITION_DATA)

ยง

CAMERA_TRACKING_GEO_STATUS(CAMERA_TRACKING_GEO_STATUS_DATA)

ยง

MISSION_ITEM(MISSION_ITEM_DATA)

ยง

MISSION_CURRENT(MISSION_CURRENT_DATA)

ยง

RAW_RPM(RAW_RPM_DATA)

ยง

VIDEO_STREAM_INFORMATION(VIDEO_STREAM_INFORMATION_DATA)

ยง

CELLULAR_CONFIG(CELLULAR_CONFIG_DATA)

ยง

PLAY_TUNE(PLAY_TUNE_DATA)

ยง

CURRENT_EVENT_SEQUENCE(CURRENT_EVENT_SEQUENCE_DATA)

ยง

ESC_STATUS(ESC_STATUS_DATA)

ยง

GPS2_RTK(GPS2_RTK_DATA)

ยง

DEBUG(DEBUG_DATA)

ยง

GIMBAL_MANAGER_INFORMATION(GIMBAL_MANAGER_INFORMATION_DATA)

ยง

NAV_CONTROLLER_OUTPUT(NAV_CONTROLLER_OUTPUT_DATA)

ยง

PARAM_EXT_ACK(PARAM_EXT_ACK_DATA)

ยง

TERRAIN_REPORT(TERRAIN_REPORT_DATA)

ยง

HIL_RC_INPUTS_RAW(HIL_RC_INPUTS_RAW_DATA)

ยง

ODOMETRY(ODOMETRY_DATA)

ยง

HIGH_LATENCY(HIGH_LATENCY_DATA)

ยง

PARAM_REQUEST_READ(PARAM_REQUEST_READ_DATA)

ยง

ATTITUDE(ATTITUDE_DATA)

ยง

PARAM_SET(PARAM_SET_DATA)

ยง

HIGHRES_IMU(HIGHRES_IMU_DATA)

ยง

SIM_STATE(SIM_STATE_DATA)

ยง

SCALED_PRESSURE3(SCALED_PRESSURE3_DATA)

ยง

PROTOCOL_VERSION(PROTOCOL_VERSION_DATA)

ยง

GPS_RTK(GPS_RTK_DATA)

ยง

CHANGE_OPERATOR_CONTROL_ACK(CHANGE_OPERATOR_CONTROL_ACK_DATA)

ยง

CANFD_FRAME(CANFD_FRAME_DATA)

ยง

CAMERA_SETTINGS(CAMERA_SETTINGS_DATA)

ยง

TRAJECTORY_REPRESENTATION_WAYPOINTS(TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA)

ยง

OPTICAL_FLOW(OPTICAL_FLOW_DATA)

ยง

GPS_INPUT(GPS_INPUT_DATA)

ยง

WIND_COV(WIND_COV_DATA)

ยง

HYGROMETER_SENSOR(HYGROMETER_SENSOR_DATA)

ยง

CAN_FRAME(CAN_FRAME_DATA)

ยง

CAMERA_IMAGE_CAPTURED(CAMERA_IMAGE_CAPTURED_DATA)

ยง

HIL_STATE_QUATERNION(HIL_STATE_QUATERNION_DATA)

ยง

OPEN_DRONE_ID_ARM_STATUS(OPEN_DRONE_ID_ARM_STATUS_DATA)

ยง

MESSAGE_INTERVAL(MESSAGE_INTERVAL_DATA)

ยง

SCALED_IMU(SCALED_IMU_DATA)

ยง

STORAGE_INFORMATION(STORAGE_INFORMATION_DATA)

ยง

FENCE_STATUS(FENCE_STATUS_DATA)

ยง

NAMED_VALUE_INT(NAMED_VALUE_INT_DATA)

ยง

VFR_HUD(VFR_HUD_DATA)

ยง

ESC_INFO(ESC_INFO_DATA)

ยง

RADIO_STATUS(RADIO_STATUS_DATA)

ยง

TIME_ESTIMATE_TO_TARGET(TIME_ESTIMATE_TO_TARGET_DATA)

ยง

HIL_GPS(HIL_GPS_DATA)

ยง

GPS_RTCM_DATA(GPS_RTCM_DATA_DATA)

ยง

LOG_REQUEST_END(LOG_REQUEST_END_DATA)

ยง

FILE_TRANSFER_PROTOCOL(FILE_TRANSFER_PROTOCOL_DATA)

ยง

TRAJECTORY_REPRESENTATION_BEZIER(TRAJECTORY_REPRESENTATION_BEZIER_DATA)

ยง

POWER_STATUS(POWER_STATUS_DATA)

ยง

ATTITUDE_QUATERNION_COV(ATTITUDE_QUATERNION_COV_DATA)

ยง

COMPONENT_METADATA(COMPONENT_METADATA_DATA)

ยง

GPS_INJECT_DATA(GPS_INJECT_DATA_DATA)

ยง

GIMBAL_MANAGER_SET_ATTITUDE(GIMBAL_MANAGER_SET_ATTITUDE_DATA)

ยง

POSITION_TARGET_GLOBAL_INT(POSITION_TARGET_GLOBAL_INT_DATA)

ยง

ENCAPSULATED_DATA(ENCAPSULATED_DATA_DATA)

ยง

VICON_POSITION_ESTIMATE(VICON_POSITION_ESTIMATE_DATA)

ยง

OPEN_DRONE_ID_SELF_ID(OPEN_DRONE_ID_SELF_ID_DATA)

ยง

UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT(UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA)

ยง

PARAM_EXT_REQUEST_LIST(PARAM_EXT_REQUEST_LIST_DATA)

ยง

SET_MODE(SET_MODE_DATA)

ยง

SYSTEM_TIME(SYSTEM_TIME_DATA)

ยง

ADSB_VEHICLE(ADSB_VEHICLE_DATA)

ยง

POSITION_TARGET_LOCAL_NED(POSITION_TARGET_LOCAL_NED_DATA)

ยง

HIL_OPTICAL_FLOW(HIL_OPTICAL_FLOW_DATA)

ยง

MISSION_REQUEST_LIST(MISSION_REQUEST_LIST_DATA)

ยง

PING(PING_DATA)

ยง

NAMED_VALUE_FLOAT(NAMED_VALUE_FLOAT_DATA)

ยง

HIL_ACTUATOR_CONTROLS(HIL_ACTUATOR_CONTROLS_DATA)

ยง

CAMERA_FOV_STATUS(CAMERA_FOV_STATUS_DATA)

ยง

SCALED_PRESSURE2(SCALED_PRESSURE2_DATA)

ยง

TUNNEL(TUNNEL_DATA)

ยง

DATA_STREAM(DATA_STREAM_DATA)

ยง

GPS_STATUS(GPS_STATUS_DATA)

ยง

COMMAND_ACK(COMMAND_ACK_DATA)

ยง

DISTANCE_SENSOR(DISTANCE_SENSOR_DATA)

ยง

WIFI_CONFIG_AP(WIFI_CONFIG_AP_DATA)

ยง

OPEN_DRONE_ID_SYSTEM(OPEN_DRONE_ID_SYSTEM_DATA)

ยง

MISSION_CLEAR_ALL(MISSION_CLEAR_ALL_DATA)

ยง

OPTICAL_FLOW_RAD(OPTICAL_FLOW_RAD_DATA)

ยง

ACTUATOR_OUTPUT_STATUS(ACTUATOR_OUTPUT_STATUS_DATA)

ยง

WHEEL_DISTANCE(WHEEL_DISTANCE_DATA)

ยง

ATTITUDE_TARGET(ATTITUDE_TARGET_DATA)

ยง

HEARTBEAT(HEARTBEAT_DATA)

ยง

MISSION_COUNT(MISSION_COUNT_DATA)

ยง

AUTH_KEY(AUTH_KEY_DATA)

ยง

SET_ACTUATOR_CONTROL_TARGET(SET_ACTUATOR_CONTROL_TARGET_DATA)

ยง

REQUEST_DATA_STREAM(REQUEST_DATA_STREAM_DATA)

ยง

EXTENDED_SYS_STATE(EXTENDED_SYS_STATE_DATA)

ยง

GIMBAL_MANAGER_SET_PITCHYAW(GIMBAL_MANAGER_SET_PITCHYAW_DATA)

ยง

SYS_STATUS(SYS_STATUS_DATA)

ยง

GENERATOR_STATUS(GENERATOR_STATUS_DATA)

ยง

GIMBAL_DEVICE_INFORMATION(GIMBAL_DEVICE_INFORMATION_DATA)

ยง

REQUEST_EVENT(REQUEST_EVENT_DATA)

ยง

LOCAL_POSITION_NED_COV(LOCAL_POSITION_NED_COV_DATA)

ยง

SCALED_PRESSURE(SCALED_PRESSURE_DATA)

ยง

RESOURCE_REQUEST(RESOURCE_REQUEST_DATA)

ยง

MISSION_REQUEST(MISSION_REQUEST_DATA)

ยง

CAMERA_TRIGGER(CAMERA_TRIGGER_DATA)

ยง

OPEN_DRONE_ID_SYSTEM_UPDATE(OPEN_DRONE_ID_SYSTEM_UPDATE_DATA)

ยง

RAW_PRESSURE(RAW_PRESSURE_DATA)

ยง

ACTUATOR_CONTROL_TARGET(ACTUATOR_CONTROL_TARGET_DATA)

ยง

OPEN_DRONE_ID_AUTHENTICATION(OPEN_DRONE_ID_AUTHENTICATION_DATA)

ยง

LOCAL_POSITION_NED(LOCAL_POSITION_NED_DATA)

ยง

GLOBAL_VISION_POSITION_ESTIMATE(GLOBAL_VISION_POSITION_ESTIMATE_DATA)

ยง

MAG_CAL_REPORT(MAG_CAL_REPORT_DATA)

ยง

CELLULAR_STATUS(CELLULAR_STATUS_DATA)

ยง

DEBUG_FLOAT_ARRAY(DEBUG_FLOAT_ARRAY_DATA)

ยง

GIMBAL_DEVICE_ATTITUDE_STATUS(GIMBAL_DEVICE_ATTITUDE_STATUS_DATA)

ยง

OPEN_DRONE_ID_MESSAGE_PACK(OPEN_DRONE_ID_MESSAGE_PACK_DATA)

ยง

GIMBAL_DEVICE_SET_ATTITUDE(GIMBAL_DEVICE_SET_ATTITUDE_DATA)

ยง

MISSION_ITEM_INT(MISSION_ITEM_INT_DATA)

ยง

TERRAIN_CHECK(TERRAIN_CHECK_DATA)

ยง

SAFETY_SET_ALLOWED_AREA(SAFETY_SET_ALLOWED_AREA_DATA)

ยง

UAVIONIX_ADSB_OUT_DYNAMIC(UAVIONIX_ADSB_OUT_DYNAMIC_DATA)

ยง

VISION_POSITION_ESTIMATE(VISION_POSITION_ESTIMATE_DATA)

ยง

ORBIT_EXECUTION_STATUS(ORBIT_EXECUTION_STATUS_DATA)

ยง

SET_POSITION_TARGET_LOCAL_NED(SET_POSITION_TARGET_LOCAL_NED_DATA)

ยง

ALTITUDE(ALTITUDE_DATA)

ยง

CHANGE_OPERATOR_CONTROL(CHANGE_OPERATOR_CONTROL_DATA)

ยง

MISSION_REQUEST_INT(MISSION_REQUEST_INT_DATA)

ยง

LOG_REQUEST_LIST(LOG_REQUEST_LIST_DATA)

ยง

RC_CHANNELS(RC_CHANNELS_DATA)

ยง

VIDEO_STREAM_STATUS(VIDEO_STREAM_STATUS_DATA)

ยง

MISSION_WRITE_PARTIAL_LIST(MISSION_WRITE_PARTIAL_LIST_DATA)

ยง

ATT_POS_MOCAP(ATT_POS_MOCAP_DATA)

ยง

UAVCAN_NODE_STATUS(UAVCAN_NODE_STATUS_DATA)

ยง

ONBOARD_COMPUTER_STATUS(ONBOARD_COMPUTER_STATUS_DATA)

ยง

RAW_IMU(RAW_IMU_DATA)

ยง

AUTOPILOT_STATE_FOR_GIMBAL_DEVICE(AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA)

ยง

MANUAL_CONTROL(MANUAL_CONTROL_DATA)

ยง

SERVO_OUTPUT_RAW(SERVO_OUTPUT_RAW_DATA)

ยง

ATTITUDE_QUATERNION(ATTITUDE_QUATERNION_DATA)

ยง

MISSION_ITEM_REACHED(MISSION_ITEM_REACHED_DATA)

ยง

DATA_TRANSMISSION_HANDSHAKE(DATA_TRANSMISSION_HANDSHAKE_DATA)

ยง

STATUSTEXT(STATUSTEXT_DATA)

ยง

LOGGING_DATA(LOGGING_DATA_DATA)

ยง

RC_CHANNELS_SCALED(RC_CHANNELS_SCALED_DATA)

ยง

MEMORY_VECT(MEMORY_VECT_DATA)

ยง

LOG_ENTRY(LOG_ENTRY_DATA)

ยง

HIL_CONTROLS(HIL_CONTROLS_DATA)

ยง

LOG_REQUEST_DATA(LOG_REQUEST_DATA_DATA)

ยง

TERRAIN_REQUEST(TERRAIN_REQUEST_DATA)

ยง

SET_POSITION_TARGET_GLOBAL_INT(SET_POSITION_TARGET_GLOBAL_INT_DATA)

ยง

HIL_SENSOR(HIL_SENSOR_DATA)

ยง

V2_EXTENSION(V2_EXTENSION_DATA)

ยง

COMMAND_LONG(COMMAND_LONG_DATA)

ยง

UAVIONIX_ADSB_OUT_CFG(UAVIONIX_ADSB_OUT_CFG_DATA)

ยง

ESTIMATOR_STATUS(ESTIMATOR_STATUS_DATA)

ยง

HIGH_LATENCY2(HIGH_LATENCY2_DATA)

ยง

AUTOPILOT_VERSION(AUTOPILOT_VERSION_DATA)

ยง

DEBUG_VECT(DEBUG_VECT_DATA)

ยง

COMPONENT_INFORMATION(COMPONENT_INFORMATION_DATA)

ยง

PARAM_MAP_RC(PARAM_MAP_RC_DATA)

ยง

CAMERA_INFORMATION(CAMERA_INFORMATION_DATA)

ยง

VIBRATION(VIBRATION_DATA)

ยง

OBSTACLE_DISTANCE(OBSTACLE_DISTANCE_DATA)

ยง

RC_CHANNELS_RAW(RC_CHANNELS_RAW_DATA)

ยง

UAVCAN_NODE_INFO(UAVCAN_NODE_INFO_DATA)

ยง

EVENT(EVENT_DATA)

ยง

FLIGHT_INFORMATION(FLIGHT_INFORMATION_DATA)

ยง

PARAM_EXT_SET(PARAM_EXT_SET_DATA)

ยง

CAMERA_CAPTURE_STATUS(CAMERA_CAPTURE_STATUS_DATA)

ยง

LANDING_TARGET(LANDING_TARGET_DATA)

ยง

TIMESYNC(TIMESYNC_DATA)

ยง

EFI_STATUS(EFI_STATUS_DATA)

ยง

VISION_SPEED_ESTIMATE(VISION_SPEED_ESTIMATE_DATA)

ยง

GPS2_RAW(GPS2_RAW_DATA)

ยง

COMMAND_INT(COMMAND_INT_DATA)

ยง

MISSION_SET_CURRENT(MISSION_SET_CURRENT_DATA)

ยง

LOG_ERASE(LOG_ERASE_DATA)

ยง

LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET(LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA)

ยง

HIL_STATE(HIL_STATE_DATA)

ยง

BUTTON_CHANGE(BUTTON_CHANGE_DATA)

ยง

GPS_RAW_INT(GPS_RAW_INT_DATA)

ยง

COLLISION(COLLISION_DATA)

ยง

AIS_VESSEL(AIS_VESSEL_DATA)

ยง

TERRAIN_DATA(TERRAIN_DATA_DATA)

ยง

GPS_GLOBAL_ORIGIN(GPS_GLOBAL_ORIGIN_DATA)

ยง

OPEN_DRONE_ID_LOCATION(OPEN_DRONE_ID_LOCATION_DATA)

ยง

SCALED_IMU2(SCALED_IMU2_DATA)

ยง

RESPONSE_EVENT_ERROR(RESPONSE_EVENT_ERROR_DATA)

ยง

GIMBAL_MANAGER_STATUS(GIMBAL_MANAGER_STATUS_DATA)

ยง

SERIAL_CONTROL(SERIAL_CONTROL_DATA)

ยง

WINCH_STATUS(WINCH_STATUS_DATA)

ยง

PARAM_REQUEST_LIST(PARAM_REQUEST_LIST_DATA)

ยง

LOGGING_DATA_ACKED(LOGGING_DATA_ACKED_DATA)

ยง

GLOBAL_POSITION_INT_COV(GLOBAL_POSITION_INT_COV_DATA)

ยง

LOGGING_ACK(LOGGING_ACK_DATA)

ยง

LOG_DATA(LOG_DATA_DATA)

ยง

PARAM_EXT_VALUE(PARAM_EXT_VALUE_DATA)

ยง

PLAY_TUNE_V2(PLAY_TUNE_V2_DATA)

ยง

SET_GPS_GLOBAL_ORIGIN(SET_GPS_GLOBAL_ORIGIN_DATA)

ยง

FOLLOW_TARGET(FOLLOW_TARGET_DATA)

ยง

MANUAL_SETPOINT(MANUAL_SETPOINT_DATA)

ยง

RC_CHANNELS_OVERRIDE(RC_CHANNELS_OVERRIDE_DATA)

ยง

GLOBAL_POSITION_INT(GLOBAL_POSITION_INT_DATA)

ยง

CAN_FILTER_MODIFY(CAN_FILTER_MODIFY_DATA)

ยง

PARAM_EXT_REQUEST_READ(PARAM_EXT_REQUEST_READ_DATA)

ยง

UTM_GLOBAL_POSITION(UTM_GLOBAL_POSITION_DATA)

ยง

OPEN_DRONE_ID_BASIC_ID(OPEN_DRONE_ID_BASIC_ID_DATA)

ยง

SET_ATTITUDE_TARGET(SET_ATTITUDE_TARGET_DATA)

ยง

BATTERY_STATUS(BATTERY_STATUS_DATA)

ยง

SCALED_IMU3(SCALED_IMU3_DATA)

ยง

MISSION_REQUEST_PARTIAL_LIST(MISSION_REQUEST_PARTIAL_LIST_DATA)

ยง

SETUP_SIGNING(SETUP_SIGNING_DATA)

ยง

SMART_BATTERY_INFO(SMART_BATTERY_INFO_DATA)

ยง

MOUNT_ORIENTATION(MOUNT_ORIENTATION_DATA)

ยง

HOME_POSITION(HOME_POSITION_DATA)

ยง

SAFETY_ALLOWED_AREA(SAFETY_ALLOWED_AREA_DATA)

ยง

GIMBAL_MANAGER_SET_MANUAL_CONTROL(GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA)

ยง

CONTROL_SYSTEM_STATE(CONTROL_SYSTEM_STATE_DATA)

Trait Implementationsยง

sourceยง

impl Clone for MavMessage

sourceยง

fn clone(&self) -> MavMessage

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavMessage

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl<'de> Deserialize<'de> for MavMessage

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Message for MavMessage

sourceยง

fn parse( version: MavlinkVersion, id: u32, diff --git a/mavlink/uavionix/struct.AdsbFlags.html b/mavlink/uavionix/struct.AdsbFlags.html index b70ed09cd0..666c51cb8a 100644 --- a/mavlink/uavionix/struct.AdsbFlags.html +++ b/mavlink/uavionix/struct.AdsbFlags.html @@ -57,16 +57,16 @@

ยงSafety

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

sourceยง

impl AdsbFlags

source

pub const DEFAULT: Self = Self::ADSB_FLAGS_VALID_COORDS

Trait Implementationsยง

sourceยง

impl Binary for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AdsbFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = AdsbFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AdsbFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
ยง

type Output = AdsbFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AdsbFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for AdsbFlags

sourceยง

fn bitor(self, other: AdsbFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = AdsbFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AdsbFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = AdsbFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AdsbFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for AdsbFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = AdsbFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AdsbFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for AdsbFlags

sourceยง

fn clone(&self) -> AdsbFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for AdsbFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for AdsbFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = AdsbFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AdsbFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for AdsbFlags

sourceยง

fn clone(&self) -> AdsbFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for AdsbFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for AdsbFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<AdsbFlags> for AdsbFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<AdsbFlags> for AdsbFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for AdsbFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AdsbFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = AdsbFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AdsbFlags

sourceยง

fn cmp(&self, other: &AdsbFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AdsbFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = AdsbFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AdsbFlags

sourceยง

fn cmp(&self, other: &AdsbFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for AdsbFlags

sourceยง

fn eq(&self, other: &AdsbFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for AdsbFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for AdsbFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = AdsbFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for AdsbFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AdsbFlags

sourceยง

impl Eq for AdsbFlags

sourceยง

impl StructuralPartialEq for AdsbFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = AdsbFlags

The resulting type after applying the - operator.

sourceยง

impl SubAssign for AdsbFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for AdsbFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AdsbFlags

sourceยง

impl Eq for AdsbFlags

sourceยง

impl StructuralPartialEq for AdsbFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.AisFlags.html b/mavlink/uavionix/struct.AisFlags.html index ab571cd36f..f67759262d 100644 --- a/mavlink/uavionix/struct.AisFlags.html +++ b/mavlink/uavionix/struct.AisFlags.html @@ -57,16 +57,16 @@
ยงSafety

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

sourceยง

impl AisFlags

source

pub const DEFAULT: Self = Self::AIS_FLAGS_POSITION_ACCURACY

Trait Implementationsยง

sourceยง

impl Binary for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AisFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = AisFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AisFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
ยง

type Output = AisFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AisFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for AisFlags

sourceยง

fn bitor(self, other: AisFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = AisFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AisFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = AisFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AisFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for AisFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

ยง

type Output = AisFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AisFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for AisFlags

sourceยง

fn clone(&self) -> AisFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for AisFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for AisFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

sourceยง

impl Clone for AisFlags

sourceยง

fn clone(&self) -> AisFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for AisFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for AisFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<AisFlags> for AisFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<AisFlags> for AisFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for AisFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AisFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = AisFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AisFlags

sourceยง

fn cmp(&self, other: &AisFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AisFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = AisFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AisFlags

sourceยง

fn cmp(&self, other: &AisFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for AisFlags

sourceยง

fn eq(&self, other: &AisFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -76,7 +76,7 @@
ยงSafety
operator. Read more
sourceยง

impl Serialize for AisFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for AisFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = AisFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for AisFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AisFlags

sourceยง

impl Eq for AisFlags

sourceยง

impl StructuralPartialEq for AisFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for AisFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AisFlags

sourceยง

impl Eq for AisFlags

sourceยง

impl StructuralPartialEq for AisFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.AttitudeTargetTypemask.html b/mavlink/uavionix/struct.AttitudeTargetTypemask.html index 80368aca4a..3a7b008d94 100644 --- a/mavlink/uavionix/struct.AttitudeTargetTypemask.html +++ b/mavlink/uavionix/struct.AttitudeTargetTypemask.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl AttitudeTargetTypemask

source

pub const DEFAULT: Self = Self::ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE

Trait Implementationsยง

sourceยง

impl Binary for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AttitudeTargetTypemask

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AttitudeTargetTypemask

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl AttitudeTargetTypemask

source

pub const DEFAULT: Self = Self::ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE

Trait Implementationsยง

sourceยง

impl Binary for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for AttitudeTargetTypemask

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for AttitudeTargetTypemask

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for AttitudeTargetTypemask

sourceยง

fn bitor(self, other: AttitudeTargetTypemask) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AttitudeTargetTypemask

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for AttitudeTargetTypemask

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for AttitudeTargetTypemask

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for AttitudeTargetTypemask

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for AttitudeTargetTypemask

sourceยง

fn clone(&self) -> AttitudeTargetTypemask

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for AttitudeTargetTypemask

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for AttitudeTargetTypemask

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<AttitudeTargetTypemask> for AttitudeTargetTypemask

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<AttitudeTargetTypemask> for AttitudeTargetTypemask

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for AttitudeTargetTypemask

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for AttitudeTargetTypemask

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the ! operator.
sourceยง

impl Octal for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AttitudeTargetTypemask

sourceยง

fn cmp(&self, other: &AttitudeTargetTypemask) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the ! operator.
sourceยง

impl Octal for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for AttitudeTargetTypemask

sourceยง

fn cmp(&self, other: &AttitudeTargetTypemask) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for AttitudeTargetTypemask

sourceยง

fn eq(&self, other: &AttitudeTargetTypemask) -> bool

This method tests for self and other values to be equal, and is used @@ -76,7 +76,7 @@
ยงSafety
operator. Read more
sourceยง

impl Serialize for AttitudeTargetTypemask

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for AttitudeTargetTypemask

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = AttitudeTargetTypemask

The resulting type after applying the - operator.
sourceยง

impl SubAssign for AttitudeTargetTypemask

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AttitudeTargetTypemask

sourceยง

impl Eq for AttitudeTargetTypemask

sourceยง

impl StructuralPartialEq for AttitudeTargetTypemask

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for AttitudeTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for AttitudeTargetTypemask

sourceยง

impl Eq for AttitudeTargetTypemask

sourceยง

impl StructuralPartialEq for AttitudeTargetTypemask

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.CameraCapFlags.html b/mavlink/uavionix/struct.CameraCapFlags.html index 63c7b6dd95..b43ae319ae 100644 --- a/mavlink/uavionix/struct.CameraCapFlags.html +++ b/mavlink/uavionix/struct.CameraCapFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl CameraCapFlags

source

pub const DEFAULT: Self = Self::CAMERA_CAP_FLAGS_CAPTURE_VIDEO

Trait Implementationsยง

sourceยง

impl Binary for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for CameraCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl CameraCapFlags

source

pub const DEFAULT: Self = Self::CAMERA_CAP_FLAGS_CAPTURE_VIDEO

Trait Implementationsยง

sourceยง

impl Binary for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for CameraCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = CameraCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for CameraCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for CameraCapFlags

sourceยง

fn bitor(self, other: CameraCapFlags) -> Self

Returns the union of the two sets of flags.

ยง

type Output = CameraCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for CameraCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for CameraCapFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = CameraCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for CameraCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for CameraCapFlags

sourceยง

fn clone(&self) -> CameraCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for CameraCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for CameraCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = CameraCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for CameraCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for CameraCapFlags

sourceยง

fn clone(&self) -> CameraCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for CameraCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for CameraCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<CameraCapFlags> for CameraCapFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<CameraCapFlags> for CameraCapFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for CameraCapFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for CameraCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = CameraCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for CameraCapFlags

sourceยง

fn cmp(&self, other: &CameraCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for CameraCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = CameraCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for CameraCapFlags

sourceยง

fn cmp(&self, other: &CameraCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for CameraCapFlags

sourceยง

fn eq(&self, other: &CameraCapFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for CameraCapFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for CameraCapFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = CameraCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for CameraCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for CameraCapFlags

sourceยง

impl Eq for CameraCapFlags

sourceยง

impl StructuralPartialEq for CameraCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = CameraCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for CameraCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for CameraCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for CameraCapFlags

sourceยง

impl Eq for CameraCapFlags

sourceยง

impl StructuralPartialEq for CameraCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.EscFailureFlags.html b/mavlink/uavionix/struct.EscFailureFlags.html index 02029e217e..6c730a7800 100644 --- a/mavlink/uavionix/struct.EscFailureFlags.html +++ b/mavlink/uavionix/struct.EscFailureFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl EscFailureFlags

source

pub const DEFAULT: Self = Self::ESC_FAILURE_NONE

Trait Implementationsยง

sourceยง

impl Binary for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for EscFailureFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = EscFailureFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for EscFailureFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl EscFailureFlags

source

pub const DEFAULT: Self = Self::ESC_FAILURE_NONE

Trait Implementationsยง

sourceยง

impl Binary for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for EscFailureFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = EscFailureFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for EscFailureFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for EscFailureFlags

sourceยง

fn bitor(self, other: EscFailureFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = EscFailureFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for EscFailureFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = EscFailureFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for EscFailureFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for EscFailureFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = EscFailureFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for EscFailureFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for EscFailureFlags

sourceยง

fn clone(&self) -> EscFailureFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for EscFailureFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for EscFailureFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = EscFailureFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for EscFailureFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for EscFailureFlags

sourceยง

fn clone(&self) -> EscFailureFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for EscFailureFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for EscFailureFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<EscFailureFlags> for EscFailureFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<EscFailureFlags> for EscFailureFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for EscFailureFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for EscFailureFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = EscFailureFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for EscFailureFlags

sourceยง

fn cmp(&self, other: &EscFailureFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for EscFailureFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = EscFailureFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for EscFailureFlags

sourceยง

fn cmp(&self, other: &EscFailureFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for EscFailureFlags

sourceยง

fn eq(&self, other: &EscFailureFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -76,7 +76,7 @@
ยงSafety
operator. Read more
sourceยง

impl Serialize for EscFailureFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for EscFailureFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = EscFailureFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for EscFailureFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for EscFailureFlags

sourceยง

impl Eq for EscFailureFlags

sourceยง

impl StructuralPartialEq for EscFailureFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for EscFailureFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for EscFailureFlags

sourceยง

impl Eq for EscFailureFlags

sourceยง

impl StructuralPartialEq for EscFailureFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.EstimatorStatusFlags.html b/mavlink/uavionix/struct.EstimatorStatusFlags.html index d215284da9..b2d6dd9986 100644 --- a/mavlink/uavionix/struct.EstimatorStatusFlags.html +++ b/mavlink/uavionix/struct.EstimatorStatusFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl EstimatorStatusFlags

source

pub const DEFAULT: Self = Self::ESTIMATOR_ATTITUDE

Trait Implementationsยง

sourceยง

impl Binary for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for EstimatorStatusFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl EstimatorStatusFlags

source

pub const DEFAULT: Self = Self::ESTIMATOR_ATTITUDE

Trait Implementationsยง

sourceยง

impl Binary for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for EstimatorStatusFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = EstimatorStatusFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for EstimatorStatusFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for EstimatorStatusFlags

sourceยง

fn bitor(self, other: EstimatorStatusFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for EstimatorStatusFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for EstimatorStatusFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for EstimatorStatusFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for EstimatorStatusFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for EstimatorStatusFlags

sourceยง

fn clone(&self) -> EstimatorStatusFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for EstimatorStatusFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for EstimatorStatusFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = EstimatorStatusFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for EstimatorStatusFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for EstimatorStatusFlags

sourceยง

fn clone(&self) -> EstimatorStatusFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for EstimatorStatusFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for EstimatorStatusFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<EstimatorStatusFlags> for EstimatorStatusFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<EstimatorStatusFlags> for EstimatorStatusFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for EstimatorStatusFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for EstimatorStatusFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for EstimatorStatusFlags

sourceยง

fn cmp(&self, other: &EstimatorStatusFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for EstimatorStatusFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for EstimatorStatusFlags

sourceยง

fn cmp(&self, other: &EstimatorStatusFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for EstimatorStatusFlags

sourceยง

fn eq(&self, other: &EstimatorStatusFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for EstimatorStatusFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for EstimatorStatusFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = EstimatorStatusFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for EstimatorStatusFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for EstimatorStatusFlags

sourceยง

impl Eq for EstimatorStatusFlags

sourceยง

impl StructuralPartialEq for EstimatorStatusFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = EstimatorStatusFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for EstimatorStatusFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for EstimatorStatusFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for EstimatorStatusFlags

sourceยง

impl Eq for EstimatorStatusFlags

sourceยง

impl StructuralPartialEq for EstimatorStatusFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.GimbalDeviceCapFlags.html b/mavlink/uavionix/struct.GimbalDeviceCapFlags.html index bd7a3e034f..7390eb1413 100644 --- a/mavlink/uavionix/struct.GimbalDeviceCapFlags.html +++ b/mavlink/uavionix/struct.GimbalDeviceCapFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl GimbalDeviceCapFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl GimbalDeviceCapFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GimbalDeviceCapFlags

sourceยง

fn bitor(self, other: GimbalDeviceCapFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GimbalDeviceCapFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GimbalDeviceCapFlags

sourceยง

fn clone(&self) -> GimbalDeviceCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for GimbalDeviceCapFlags

sourceยง

fn clone(&self) -> GimbalDeviceCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GimbalDeviceCapFlags> for GimbalDeviceCapFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GimbalDeviceCapFlags> for GimbalDeviceCapFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GimbalDeviceCapFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceCapFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceCapFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GimbalDeviceCapFlags

sourceยง

fn eq(&self, other: &GimbalDeviceCapFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for GimbalDeviceCapFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GimbalDeviceCapFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceCapFlags

sourceยง

impl Eq for GimbalDeviceCapFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = GimbalDeviceCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for GimbalDeviceCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceCapFlags

sourceยง

impl Eq for GimbalDeviceCapFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.GimbalDeviceErrorFlags.html b/mavlink/uavionix/struct.GimbalDeviceErrorFlags.html index 23f59e7a1f..602e290026 100644 --- a/mavlink/uavionix/struct.GimbalDeviceErrorFlags.html +++ b/mavlink/uavionix/struct.GimbalDeviceErrorFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl GimbalDeviceErrorFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceErrorFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl GimbalDeviceErrorFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceErrorFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceErrorFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GimbalDeviceErrorFlags

sourceยง

fn bitor(self, other: GimbalDeviceErrorFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceErrorFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceErrorFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GimbalDeviceErrorFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceErrorFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GimbalDeviceErrorFlags

sourceยง

fn clone(&self) -> GimbalDeviceErrorFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceErrorFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceErrorFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceErrorFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for GimbalDeviceErrorFlags

sourceยง

fn clone(&self) -> GimbalDeviceErrorFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceErrorFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceErrorFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GimbalDeviceErrorFlags> for GimbalDeviceErrorFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GimbalDeviceErrorFlags> for GimbalDeviceErrorFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GimbalDeviceErrorFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceErrorFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceErrorFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceErrorFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceErrorFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceErrorFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceErrorFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GimbalDeviceErrorFlags

sourceยง

fn eq(&self, other: &GimbalDeviceErrorFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for GimbalDeviceErrorFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GimbalDeviceErrorFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceErrorFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceErrorFlags

sourceยง

impl Eq for GimbalDeviceErrorFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceErrorFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = GimbalDeviceErrorFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceErrorFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for GimbalDeviceErrorFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceErrorFlags

sourceยง

impl Eq for GimbalDeviceErrorFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceErrorFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.GimbalDeviceFlags.html b/mavlink/uavionix/struct.GimbalDeviceFlags.html index 5f2855cde5..35f1f90bbc 100644 --- a/mavlink/uavionix/struct.GimbalDeviceFlags.html +++ b/mavlink/uavionix/struct.GimbalDeviceFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl GimbalDeviceFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_FLAGS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl GimbalDeviceFlags

source

pub const DEFAULT: Self = Self::GIMBAL_DEVICE_FLAGS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalDeviceFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalDeviceFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GimbalDeviceFlags

sourceยง

fn bitor(self, other: GimbalDeviceFlags) -> Self

Returns the union of the two sets of flags.

ยง

type Output = GimbalDeviceFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalDeviceFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GimbalDeviceFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalDeviceFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for GimbalDeviceFlags

sourceยง

fn clone(&self) -> GimbalDeviceFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalDeviceFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalDeviceFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GimbalDeviceFlags> for GimbalDeviceFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GimbalDeviceFlags> for GimbalDeviceFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GimbalDeviceFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalDeviceFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = GimbalDeviceFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalDeviceFlags

sourceยง

fn cmp(&self, other: &GimbalDeviceFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GimbalDeviceFlags

sourceยง

fn eq(&self, other: &GimbalDeviceFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -76,7 +76,7 @@
ยงSafety
operator. Read more
sourceยง

impl Serialize for GimbalDeviceFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GimbalDeviceFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = GimbalDeviceFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalDeviceFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceFlags

sourceยง

impl Eq for GimbalDeviceFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for GimbalDeviceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalDeviceFlags

sourceยง

impl Eq for GimbalDeviceFlags

sourceยง

impl StructuralPartialEq for GimbalDeviceFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.GimbalManagerCapFlags.html b/mavlink/uavionix/struct.GimbalManagerCapFlags.html index 336cf3278b..c5e5ee832d 100644 --- a/mavlink/uavionix/struct.GimbalManagerCapFlags.html +++ b/mavlink/uavionix/struct.GimbalManagerCapFlags.html @@ -57,16 +57,16 @@
ยงSafety

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

sourceยง

impl GimbalManagerCapFlags

source

pub const DEFAULT: Self = Self::GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT

Trait Implementationsยง

sourceยง

impl Binary for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GimbalManagerCapFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalManagerCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GimbalManagerCapFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GimbalManagerCapFlags

sourceยง

fn bitor(self, other: GimbalManagerCapFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalManagerCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GimbalManagerCapFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GimbalManagerCapFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalManagerCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GimbalManagerCapFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for GimbalManagerCapFlags

sourceยง

fn clone(&self) -> GimbalManagerCapFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GimbalManagerCapFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GimbalManagerCapFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GimbalManagerCapFlags> for GimbalManagerCapFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GimbalManagerCapFlags> for GimbalManagerCapFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GimbalManagerCapFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalManagerCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalManagerCapFlags

sourceยง

fn cmp(&self, other: &GimbalManagerCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GimbalManagerCapFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GimbalManagerCapFlags

sourceยง

fn cmp(&self, other: &GimbalManagerCapFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GimbalManagerCapFlags

sourceยง

fn eq(&self, other: &GimbalManagerCapFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for GimbalManagerCapFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GimbalManagerCapFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalManagerCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalManagerCapFlags

sourceยง

impl Eq for GimbalManagerCapFlags

sourceยง

impl StructuralPartialEq for GimbalManagerCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = GimbalManagerCapFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GimbalManagerCapFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for GimbalManagerCapFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GimbalManagerCapFlags

sourceยง

impl Eq for GimbalManagerCapFlags

sourceยง

impl StructuralPartialEq for GimbalManagerCapFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.GpsInputIgnoreFlags.html b/mavlink/uavionix/struct.GpsInputIgnoreFlags.html index 9cebb269d8..c4717dab01 100644 --- a/mavlink/uavionix/struct.GpsInputIgnoreFlags.html +++ b/mavlink/uavionix/struct.GpsInputIgnoreFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl GpsInputIgnoreFlags

source

pub const DEFAULT: Self = Self::GPS_INPUT_IGNORE_FLAG_ALT

Trait Implementationsยง

sourceยง

impl Binary for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GpsInputIgnoreFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl GpsInputIgnoreFlags

source

pub const DEFAULT: Self = Self::GPS_INPUT_IGNORE_FLAG_ALT

Trait Implementationsยง

sourceยง

impl Binary for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for GpsInputIgnoreFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for GpsInputIgnoreFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for GpsInputIgnoreFlags

sourceยง

fn bitor(self, other: GpsInputIgnoreFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GpsInputIgnoreFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for GpsInputIgnoreFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for GpsInputIgnoreFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GpsInputIgnoreFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for GpsInputIgnoreFlags

sourceยง

fn clone(&self) -> GpsInputIgnoreFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GpsInputIgnoreFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GpsInputIgnoreFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for GpsInputIgnoreFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for GpsInputIgnoreFlags

sourceยง

fn clone(&self) -> GpsInputIgnoreFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for GpsInputIgnoreFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for GpsInputIgnoreFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<GpsInputIgnoreFlags> for GpsInputIgnoreFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<GpsInputIgnoreFlags> for GpsInputIgnoreFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for GpsInputIgnoreFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GpsInputIgnoreFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GpsInputIgnoreFlags

sourceยง

fn cmp(&self, other: &GpsInputIgnoreFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for GpsInputIgnoreFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for GpsInputIgnoreFlags

sourceยง

fn cmp(&self, other: &GpsInputIgnoreFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for GpsInputIgnoreFlags

sourceยง

fn eq(&self, other: &GpsInputIgnoreFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for GpsInputIgnoreFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for GpsInputIgnoreFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GpsInputIgnoreFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GpsInputIgnoreFlags

sourceยง

impl Eq for GpsInputIgnoreFlags

sourceยง

impl StructuralPartialEq for GpsInputIgnoreFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = GpsInputIgnoreFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for GpsInputIgnoreFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for GpsInputIgnoreFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for GpsInputIgnoreFlags

sourceยง

impl Eq for GpsInputIgnoreFlags

sourceยง

impl StructuralPartialEq for GpsInputIgnoreFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.HighresImuUpdatedFlags.html b/mavlink/uavionix/struct.HighresImuUpdatedFlags.html index 22cdc48f40..57f54ac2ca 100644 --- a/mavlink/uavionix/struct.HighresImuUpdatedFlags.html +++ b/mavlink/uavionix/struct.HighresImuUpdatedFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl HighresImuUpdatedFlags

source

pub const DEFAULT: Self = Self::HIGHRES_IMU_UPDATED_NONE

Trait Implementationsยง

sourceยง

impl Binary for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HighresImuUpdatedFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HighresImuUpdatedFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl HighresImuUpdatedFlags

source

pub const DEFAULT: Self = Self::HIGHRES_IMU_UPDATED_NONE

Trait Implementationsยง

sourceยง

impl Binary for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HighresImuUpdatedFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HighresImuUpdatedFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for HighresImuUpdatedFlags

sourceยง

fn bitor(self, other: HighresImuUpdatedFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HighresImuUpdatedFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HighresImuUpdatedFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for HighresImuUpdatedFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HighresImuUpdatedFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for HighresImuUpdatedFlags

sourceยง

fn clone(&self) -> HighresImuUpdatedFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HighresImuUpdatedFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HighresImuUpdatedFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HighresImuUpdatedFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for HighresImuUpdatedFlags

sourceยง

fn clone(&self) -> HighresImuUpdatedFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HighresImuUpdatedFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HighresImuUpdatedFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<HighresImuUpdatedFlags> for HighresImuUpdatedFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<HighresImuUpdatedFlags> for HighresImuUpdatedFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for HighresImuUpdatedFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HighresImuUpdatedFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HighresImuUpdatedFlags

sourceยง

fn cmp(&self, other: &HighresImuUpdatedFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HighresImuUpdatedFlags

sourceยง

fn cmp(&self, other: &HighresImuUpdatedFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for HighresImuUpdatedFlags

sourceยง

fn eq(&self, other: &HighresImuUpdatedFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for HighresImuUpdatedFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for HighresImuUpdatedFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HighresImuUpdatedFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HighresImuUpdatedFlags

sourceยง

impl Eq for HighresImuUpdatedFlags

sourceยง

impl StructuralPartialEq for HighresImuUpdatedFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = HighresImuUpdatedFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HighresImuUpdatedFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for HighresImuUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HighresImuUpdatedFlags

sourceยง

impl Eq for HighresImuUpdatedFlags

sourceยง

impl StructuralPartialEq for HighresImuUpdatedFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.HilSensorUpdatedFlags.html b/mavlink/uavionix/struct.HilSensorUpdatedFlags.html index 1e26710a54..53f93e6ed2 100644 --- a/mavlink/uavionix/struct.HilSensorUpdatedFlags.html +++ b/mavlink/uavionix/struct.HilSensorUpdatedFlags.html @@ -57,16 +57,16 @@
ยงSafety

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

sourceยง

impl HilSensorUpdatedFlags

source

pub const DEFAULT: Self = Self::HIL_SENSOR_UPDATED_NONE

Trait Implementationsยง

sourceยง

impl Binary for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HilSensorUpdatedFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HilSensorUpdatedFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HilSensorUpdatedFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for HilSensorUpdatedFlags

sourceยง

fn bitor(self, other: HilSensorUpdatedFlags) -> Self

Returns the union of the two sets of flags.

ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HilSensorUpdatedFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for HilSensorUpdatedFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HilSensorUpdatedFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for HilSensorUpdatedFlags

sourceยง

fn clone(&self) -> HilSensorUpdatedFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HilSensorUpdatedFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HilSensorUpdatedFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HilSensorUpdatedFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for HilSensorUpdatedFlags

sourceยง

fn clone(&self) -> HilSensorUpdatedFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HilSensorUpdatedFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HilSensorUpdatedFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<HilSensorUpdatedFlags> for HilSensorUpdatedFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<HilSensorUpdatedFlags> for HilSensorUpdatedFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for HilSensorUpdatedFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HilSensorUpdatedFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HilSensorUpdatedFlags

sourceยง

fn cmp(&self, other: &HilSensorUpdatedFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HilSensorUpdatedFlags

sourceยง

fn cmp(&self, other: &HilSensorUpdatedFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for HilSensorUpdatedFlags

sourceยง

fn eq(&self, other: &HilSensorUpdatedFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for HilSensorUpdatedFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for HilSensorUpdatedFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HilSensorUpdatedFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = HilSensorUpdatedFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HilSensorUpdatedFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for HilSensorUpdatedFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HilSensorUpdatedFlags

sourceยง

impl Eq for HilSensorUpdatedFlags

sourceยง

impl StructuralPartialEq for HilSensorUpdatedFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/uavionix/struct.HlFailureFlag.html b/mavlink/uavionix/struct.HlFailureFlag.html index 779a4fa86b..559111fe9e 100644 --- a/mavlink/uavionix/struct.HlFailureFlag.html +++ b/mavlink/uavionix/struct.HlFailureFlag.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl HlFailureFlag

source

pub const DEFAULT: Self = Self::HL_FAILURE_FLAG_GPS

Trait Implementationsยง

sourceยง

impl Binary for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HlFailureFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HlFailureFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl HlFailureFlag

source

pub const DEFAULT: Self = Self::HL_FAILURE_FLAG_GPS

Trait Implementationsยง

sourceยง

impl Binary for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for HlFailureFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = HlFailureFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for HlFailureFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for HlFailureFlag

sourceยง

fn bitor(self, other: HlFailureFlag) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HlFailureFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = HlFailureFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for HlFailureFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for HlFailureFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HlFailureFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for HlFailureFlag

sourceยง

fn clone(&self) -> HlFailureFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HlFailureFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HlFailureFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = HlFailureFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for HlFailureFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for HlFailureFlag

sourceยง

fn clone(&self) -> HlFailureFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for HlFailureFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for HlFailureFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<HlFailureFlag> for HlFailureFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<HlFailureFlag> for HlFailureFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for HlFailureFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HlFailureFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HlFailureFlag

sourceยง

fn cmp(&self, other: &HlFailureFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for HlFailureFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = HlFailureFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for HlFailureFlag

sourceยง

fn cmp(&self, other: &HlFailureFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for HlFailureFlag

sourceยง

fn eq(&self, other: &HlFailureFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for HlFailureFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for HlFailureFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = HlFailureFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HlFailureFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HlFailureFlag

sourceยง

impl Eq for HlFailureFlag

sourceยง

impl StructuralPartialEq for HlFailureFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = HlFailureFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for HlFailureFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for HlFailureFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for HlFailureFlag

sourceยง

impl Eq for HlFailureFlag

sourceยง

impl StructuralPartialEq for HlFailureFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.MavEventCurrentSequenceFlags.html b/mavlink/uavionix/struct.MavEventCurrentSequenceFlags.html index 0390630097..4568f4d84b 100644 --- a/mavlink/uavionix/struct.MavEventCurrentSequenceFlags.html +++ b/mavlink/uavionix/struct.MavEventCurrentSequenceFlags.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl MavEventCurrentSequenceFlags

source

pub const DEFAULT: Self = Self::MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET

Trait Implementationsยง

sourceยง

impl Binary for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavEventCurrentSequenceFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavEventCurrentSequenceFlags

source

pub const DEFAULT: Self = Self::MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET

Trait Implementationsยง

sourceยง

impl Binary for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavEventCurrentSequenceFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavEventCurrentSequenceFlags

sourceยง

fn bitor(self, other: MavEventCurrentSequenceFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavEventCurrentSequenceFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavEventCurrentSequenceFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavEventCurrentSequenceFlags

sourceยง

fn clone(&self) -> MavEventCurrentSequenceFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavEventCurrentSequenceFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavEventCurrentSequenceFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

sourceยง

impl Clone for MavEventCurrentSequenceFlags

sourceยง

fn clone(&self) -> MavEventCurrentSequenceFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavEventCurrentSequenceFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavEventCurrentSequenceFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavEventCurrentSequenceFlags> for MavEventCurrentSequenceFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavEventCurrentSequenceFlags> for MavEventCurrentSequenceFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavEventCurrentSequenceFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavEventCurrentSequenceFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavEventCurrentSequenceFlags

sourceยง

fn cmp(&self, other: &MavEventCurrentSequenceFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavEventCurrentSequenceFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavEventCurrentSequenceFlags

sourceยง

fn cmp(&self, other: &MavEventCurrentSequenceFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavEventCurrentSequenceFlags

sourceยง

fn eq(&self, other: &MavEventCurrentSequenceFlags) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavEventCurrentSequenceFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavEventCurrentSequenceFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavEventCurrentSequenceFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavEventCurrentSequenceFlags

sourceยง

impl Eq for MavEventCurrentSequenceFlags

sourceยง

impl StructuralPartialEq for MavEventCurrentSequenceFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = MavEventCurrentSequenceFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavEventCurrentSequenceFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for MavEventCurrentSequenceFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavEventCurrentSequenceFlags

sourceยง

impl Eq for MavEventCurrentSequenceFlags

sourceยง

impl StructuralPartialEq for MavEventCurrentSequenceFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.MavGeneratorStatusFlag.html b/mavlink/uavionix/struct.MavGeneratorStatusFlag.html index a227ebf4ce..e4668000bc 100644 --- a/mavlink/uavionix/struct.MavGeneratorStatusFlag.html +++ b/mavlink/uavionix/struct.MavGeneratorStatusFlag.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl MavGeneratorStatusFlag

source

pub const DEFAULT: Self = Self::MAV_GENERATOR_STATUS_FLAG_OFF

Trait Implementationsยง

sourceยง

impl Binary for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavGeneratorStatusFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavGeneratorStatusFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavGeneratorStatusFlag

source

pub const DEFAULT: Self = Self::MAV_GENERATOR_STATUS_FLAG_OFF

Trait Implementationsยง

sourceยง

impl Binary for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavGeneratorStatusFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavGeneratorStatusFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavGeneratorStatusFlag

sourceยง

fn bitor(self, other: MavGeneratorStatusFlag) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavGeneratorStatusFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavGeneratorStatusFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavGeneratorStatusFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavGeneratorStatusFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavGeneratorStatusFlag

sourceยง

fn clone(&self) -> MavGeneratorStatusFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavGeneratorStatusFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavGeneratorStatusFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavGeneratorStatusFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for MavGeneratorStatusFlag

sourceยง

fn clone(&self) -> MavGeneratorStatusFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavGeneratorStatusFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavGeneratorStatusFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavGeneratorStatusFlag> for MavGeneratorStatusFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavGeneratorStatusFlag> for MavGeneratorStatusFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavGeneratorStatusFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavGeneratorStatusFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavGeneratorStatusFlag

sourceยง

fn cmp(&self, other: &MavGeneratorStatusFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavGeneratorStatusFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavGeneratorStatusFlag

sourceยง

fn cmp(&self, other: &MavGeneratorStatusFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavGeneratorStatusFlag

sourceยง

fn eq(&self, other: &MavGeneratorStatusFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavGeneratorStatusFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavGeneratorStatusFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavGeneratorStatusFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavGeneratorStatusFlag

sourceยง

impl Eq for MavGeneratorStatusFlag

sourceยง

impl StructuralPartialEq for MavGeneratorStatusFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = MavGeneratorStatusFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavGeneratorStatusFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for MavGeneratorStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavGeneratorStatusFlag

sourceยง

impl Eq for MavGeneratorStatusFlag

sourceยง

impl StructuralPartialEq for MavGeneratorStatusFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.MavModeFlag.html b/mavlink/uavionix/struct.MavModeFlag.html index b36b06fc7b..7c7e84b4d9 100644 --- a/mavlink/uavionix/struct.MavModeFlag.html +++ b/mavlink/uavionix/struct.MavModeFlag.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl MavModeFlag

source

pub const DEFAULT: Self = Self::MAV_MODE_FLAG_SAFETY_ARMED

Trait Implementationsยง

sourceยง

impl Binary for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavModeFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavModeFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavModeFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavModeFlag

source

pub const DEFAULT: Self = Self::MAV_MODE_FLAG_SAFETY_ARMED

Trait Implementationsยง

sourceยง

impl Binary for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavModeFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavModeFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavModeFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavModeFlag

sourceยง

fn bitor(self, other: MavModeFlag) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavModeFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavModeFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavModeFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavModeFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavModeFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavModeFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavModeFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = MavModeFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavModeFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for MavModeFlag

sourceยง

fn clone(&self) -> MavModeFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavModeFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavModeFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavModeFlag> for MavModeFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavModeFlag> for MavModeFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavModeFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavModeFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavModeFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavModeFlag

sourceยง

fn cmp(&self, other: &MavModeFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavModeFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavModeFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavModeFlag

sourceยง

fn cmp(&self, other: &MavModeFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavModeFlag

sourceยง

fn eq(&self, other: &MavModeFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavModeFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavModeFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavModeFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavModeFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavModeFlag

sourceยง

impl Eq for MavModeFlag

sourceยง

impl StructuralPartialEq for MavModeFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = MavModeFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavModeFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for MavModeFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavModeFlag

sourceยง

impl Eq for MavModeFlag

sourceยง

impl StructuralPartialEq for MavModeFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.MavPowerStatus.html b/mavlink/uavionix/struct.MavPowerStatus.html index 071677c37f..f776019439 100644 --- a/mavlink/uavionix/struct.MavPowerStatus.html +++ b/mavlink/uavionix/struct.MavPowerStatus.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl MavPowerStatus

source

pub const DEFAULT: Self = Self::MAV_POWER_STATUS_BRICK_VALID

Trait Implementationsยง

sourceยง

impl Binary for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavPowerStatus

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavPowerStatus

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavPowerStatus

source

pub const DEFAULT: Self = Self::MAV_POWER_STATUS_BRICK_VALID

Trait Implementationsยง

sourceยง

impl Binary for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavPowerStatus

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavPowerStatus

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavPowerStatus

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavPowerStatus

sourceยง

fn bitor(self, other: MavPowerStatus) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavPowerStatus

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavPowerStatus

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavPowerStatus

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavPowerStatus

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavPowerStatus

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavPowerStatus

sourceยง

fn clone(&self) -> MavPowerStatus

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavPowerStatus

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavPowerStatus

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = MavPowerStatus

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavPowerStatus

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for MavPowerStatus

sourceยง

fn clone(&self) -> MavPowerStatus

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavPowerStatus

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavPowerStatus

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavPowerStatus> for MavPowerStatus

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavPowerStatus> for MavPowerStatus

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavPowerStatus

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavPowerStatus

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavPowerStatus

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavPowerStatus

sourceยง

fn cmp(&self, other: &MavPowerStatus) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = MavPowerStatus

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavPowerStatus

sourceยง

fn cmp(&self, other: &MavPowerStatus) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavPowerStatus

sourceยง

fn eq(&self, other: &MavPowerStatus) -> bool

This method tests for self and other values to be equal, and is used @@ -76,7 +76,7 @@
ยงSafety
operator. Read more
sourceยง

impl Serialize for MavPowerStatus

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavPowerStatus

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = MavPowerStatus

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavPowerStatus

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavPowerStatus

sourceยง

impl Eq for MavPowerStatus

sourceยง

impl StructuralPartialEq for MavPowerStatus

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for MavPowerStatus

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavPowerStatus

sourceยง

impl Eq for MavPowerStatus

sourceยง

impl StructuralPartialEq for MavPowerStatus

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.MavProtocolCapability.html b/mavlink/uavionix/struct.MavProtocolCapability.html index 5961f48bc5..c4808608ea 100644 --- a/mavlink/uavionix/struct.MavProtocolCapability.html +++ b/mavlink/uavionix/struct.MavProtocolCapability.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl MavProtocolCapability

source

pub const DEFAULT: Self = Self::MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT

Trait Implementationsยง

sourceยง

impl Binary for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavProtocolCapability

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl MavProtocolCapability

source

pub const DEFAULT: Self = Self::MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT

Trait Implementationsยง

sourceยง

impl Binary for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavProtocolCapability

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = MavProtocolCapability

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavProtocolCapability

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavProtocolCapability

sourceยง

fn bitor(self, other: MavProtocolCapability) -> Self

Returns the union of the two sets of flags.

ยง

type Output = MavProtocolCapability

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavProtocolCapability

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavProtocolCapability

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavProtocolCapability

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavProtocolCapability

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavProtocolCapability

sourceยง

fn clone(&self) -> MavProtocolCapability

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavProtocolCapability

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavProtocolCapability

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = MavProtocolCapability

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavProtocolCapability

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for MavProtocolCapability

sourceยง

fn clone(&self) -> MavProtocolCapability

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavProtocolCapability

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavProtocolCapability

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavProtocolCapability> for MavProtocolCapability

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavProtocolCapability> for MavProtocolCapability

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavProtocolCapability

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavProtocolCapability

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavProtocolCapability

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavProtocolCapability

sourceยง

fn cmp(&self, other: &MavProtocolCapability) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavProtocolCapability

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavProtocolCapability

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavProtocolCapability

sourceยง

fn cmp(&self, other: &MavProtocolCapability) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavProtocolCapability

sourceยง

fn eq(&self, other: &MavProtocolCapability) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavProtocolCapability

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavProtocolCapability

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavProtocolCapability

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavProtocolCapability

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavProtocolCapability

sourceยง

impl Eq for MavProtocolCapability

sourceยง

impl StructuralPartialEq for MavProtocolCapability

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = MavProtocolCapability

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavProtocolCapability

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for MavProtocolCapability

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavProtocolCapability

sourceยง

impl Eq for MavProtocolCapability

sourceยง

impl StructuralPartialEq for MavProtocolCapability

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.MavSysStatusSensor.html b/mavlink/uavionix/struct.MavSysStatusSensor.html index 1b9e61098e..014ac6fa7b 100644 --- a/mavlink/uavionix/struct.MavSysStatusSensor.html +++ b/mavlink/uavionix/struct.MavSysStatusSensor.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl MavSysStatusSensor

source

pub const DEFAULT: Self = Self::MAV_SYS_STATUS_SENSOR_3D_GYRO

Trait Implementationsยง

sourceยง

impl Binary for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavSysStatusSensor

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavSysStatusSensor

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavSysStatusSensor

source

pub const DEFAULT: Self = Self::MAV_SYS_STATUS_SENSOR_3D_GYRO

Trait Implementationsยง

sourceยง

impl Binary for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavSysStatusSensor

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavSysStatusSensor

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavSysStatusSensor

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavSysStatusSensor

sourceยง

fn bitor(self, other: MavSysStatusSensor) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavSysStatusSensor

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavSysStatusSensor

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavSysStatusSensor

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavSysStatusSensor

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavSysStatusSensor

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavSysStatusSensor

sourceยง

fn clone(&self) -> MavSysStatusSensor

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavSysStatusSensor

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavSysStatusSensor

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = MavSysStatusSensor

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavSysStatusSensor

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for MavSysStatusSensor

sourceยง

fn clone(&self) -> MavSysStatusSensor

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavSysStatusSensor

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavSysStatusSensor

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavSysStatusSensor> for MavSysStatusSensor

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavSysStatusSensor> for MavSysStatusSensor

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavSysStatusSensor

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavSysStatusSensor

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavSysStatusSensor

sourceยง

fn cmp(&self, other: &MavSysStatusSensor) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavSysStatusSensor

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavSysStatusSensor

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavSysStatusSensor

sourceยง

fn cmp(&self, other: &MavSysStatusSensor) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavSysStatusSensor

sourceยง

fn eq(&self, other: &MavSysStatusSensor) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavSysStatusSensor

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavSysStatusSensor

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavSysStatusSensor

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavSysStatusSensor

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = MavSysStatusSensor

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavSysStatusSensor

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for MavSysStatusSensor

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavSysStatusSensor

sourceยง

impl Eq for MavSysStatusSensor

sourceยง

impl StructuralPartialEq for MavSysStatusSensor

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/uavionix/struct.MavWinchStatusFlag.html b/mavlink/uavionix/struct.MavWinchStatusFlag.html index d49a163005..8e49e9b2cc 100644 --- a/mavlink/uavionix/struct.MavWinchStatusFlag.html +++ b/mavlink/uavionix/struct.MavWinchStatusFlag.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl MavWinchStatusFlag

source

pub const DEFAULT: Self = Self::MAV_WINCH_STATUS_HEALTHY

Trait Implementationsยง

sourceยง

impl Binary for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavWinchStatusFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavWinchStatusFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl MavWinchStatusFlag

source

pub const DEFAULT: Self = Self::MAV_WINCH_STATUS_HEALTHY

Trait Implementationsยง

sourceยง

impl Binary for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for MavWinchStatusFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for MavWinchStatusFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for MavWinchStatusFlag

sourceยง

fn bitor(self, other: MavWinchStatusFlag) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavWinchStatusFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for MavWinchStatusFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for MavWinchStatusFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavWinchStatusFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for MavWinchStatusFlag

sourceยง

fn clone(&self) -> MavWinchStatusFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavWinchStatusFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavWinchStatusFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = MavWinchStatusFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for MavWinchStatusFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for MavWinchStatusFlag

sourceยง

fn clone(&self) -> MavWinchStatusFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MavWinchStatusFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for MavWinchStatusFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<MavWinchStatusFlag> for MavWinchStatusFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<MavWinchStatusFlag> for MavWinchStatusFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for MavWinchStatusFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavWinchStatusFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavWinchStatusFlag

sourceยง

fn cmp(&self, other: &MavWinchStatusFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for MavWinchStatusFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for MavWinchStatusFlag

sourceยง

fn cmp(&self, other: &MavWinchStatusFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for MavWinchStatusFlag

sourceยง

fn eq(&self, other: &MavWinchStatusFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for MavWinchStatusFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for MavWinchStatusFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = MavWinchStatusFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavWinchStatusFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavWinchStatusFlag

sourceยง

impl Eq for MavWinchStatusFlag

sourceยง

impl StructuralPartialEq for MavWinchStatusFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = MavWinchStatusFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for MavWinchStatusFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for MavWinchStatusFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for MavWinchStatusFlag

sourceยง

impl Eq for MavWinchStatusFlag

sourceยง

impl StructuralPartialEq for MavWinchStatusFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.PositionTargetTypemask.html b/mavlink/uavionix/struct.PositionTargetTypemask.html index db2fc8b9d5..993ce4dc46 100644 --- a/mavlink/uavionix/struct.PositionTargetTypemask.html +++ b/mavlink/uavionix/struct.PositionTargetTypemask.html @@ -57,16 +57,16 @@
ยงSafety

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

sourceยง

impl PositionTargetTypemask

source

pub const DEFAULT: Self = Self::POSITION_TARGET_TYPEMASK_X_IGNORE

Trait Implementationsยง

sourceยง

impl Binary for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for PositionTargetTypemask

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for PositionTargetTypemask

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
ยง

type Output = PositionTargetTypemask

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for PositionTargetTypemask

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for PositionTargetTypemask

sourceยง

fn bitor(self, other: PositionTargetTypemask) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for PositionTargetTypemask

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = PositionTargetTypemask

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for PositionTargetTypemask

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for PositionTargetTypemask

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for PositionTargetTypemask

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for PositionTargetTypemask

sourceยง

fn clone(&self) -> PositionTargetTypemask

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for PositionTargetTypemask

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for PositionTargetTypemask

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = PositionTargetTypemask

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for PositionTargetTypemask

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for PositionTargetTypemask

sourceยง

fn clone(&self) -> PositionTargetTypemask

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for PositionTargetTypemask

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for PositionTargetTypemask

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<PositionTargetTypemask> for PositionTargetTypemask

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<PositionTargetTypemask> for PositionTargetTypemask

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for PositionTargetTypemask

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for PositionTargetTypemask

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the ! operator.
sourceยง

impl Octal for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for PositionTargetTypemask

sourceยง

fn cmp(&self, other: &PositionTargetTypemask) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for PositionTargetTypemask

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = PositionTargetTypemask

The resulting type after applying the ! operator.
sourceยง

impl Octal for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for PositionTargetTypemask

sourceยง

fn cmp(&self, other: &PositionTargetTypemask) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for PositionTargetTypemask

sourceยง

fn eq(&self, other: &PositionTargetTypemask) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for PositionTargetTypemask

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for PositionTargetTypemask

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = PositionTargetTypemask

The resulting type after applying the - operator.
sourceยง

impl SubAssign for PositionTargetTypemask

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for PositionTargetTypemask

sourceยง

impl Eq for PositionTargetTypemask

sourceยง

impl StructuralPartialEq for PositionTargetTypemask

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = PositionTargetTypemask

The resulting type after applying the - operator.
sourceยง

impl SubAssign for PositionTargetTypemask

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for PositionTargetTypemask

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for PositionTargetTypemask

sourceยง

impl Eq for PositionTargetTypemask

sourceยง

impl StructuralPartialEq for PositionTargetTypemask

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.SerialControlFlag.html b/mavlink/uavionix/struct.SerialControlFlag.html index 2c19654793..7546840458 100644 --- a/mavlink/uavionix/struct.SerialControlFlag.html +++ b/mavlink/uavionix/struct.SerialControlFlag.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl SerialControlFlag

source

pub const DEFAULT: Self = Self::SERIAL_CONTROL_FLAG_REPLY

Trait Implementationsยง

sourceยง

impl Binary for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for SerialControlFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for SerialControlFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl SerialControlFlag

source

pub const DEFAULT: Self = Self::SERIAL_CONTROL_FLAG_REPLY

Trait Implementationsยง

sourceยง

impl Binary for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for SerialControlFlag

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = SerialControlFlag

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for SerialControlFlag

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for SerialControlFlag

sourceยง

fn bitor(self, other: SerialControlFlag) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for SerialControlFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = SerialControlFlag

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for SerialControlFlag

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for SerialControlFlag

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for SerialControlFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for SerialControlFlag

sourceยง

fn clone(&self) -> SerialControlFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for SerialControlFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for SerialControlFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = SerialControlFlag

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for SerialControlFlag

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for SerialControlFlag

sourceยง

fn clone(&self) -> SerialControlFlag

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for SerialControlFlag

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for SerialControlFlag

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<SerialControlFlag> for SerialControlFlag

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<SerialControlFlag> for SerialControlFlag

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for SerialControlFlag

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for SerialControlFlag

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for SerialControlFlag

sourceยง

fn cmp(&self, other: &SerialControlFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where +

ยง

type Output = SerialControlFlag

The resulting type after applying the ! operator.
sourceยง

impl Octal for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for SerialControlFlag

sourceยง

fn cmp(&self, other: &SerialControlFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for SerialControlFlag

sourceยง

fn eq(&self, other: &SerialControlFlag) -> bool

This method tests for self and other values to be equal, and is used @@ -75,7 +75,7 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for SerialControlFlag

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for SerialControlFlag

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = SerialControlFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for SerialControlFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = SerialControlFlag

The resulting type after applying the - operator.
sourceยง

impl SubAssign for SerialControlFlag

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for SerialControlFlag

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for SerialControlFlag

sourceยง

impl Eq for SerialControlFlag

sourceยง

impl StructuralPartialEq for SerialControlFlag

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink/uavionix/struct.TuneFormat.html b/mavlink/uavionix/struct.TuneFormat.html index 74e6ffbde2..a5c6f2c2dd 100644 --- a/mavlink/uavionix/struct.TuneFormat.html +++ b/mavlink/uavionix/struct.TuneFormat.html @@ -56,17 +56,17 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

sourceยง

impl TuneFormat

source

pub const DEFAULT: Self = Self::TUNE_FORMAT_QBASIC1_1

Trait Implementationsยง

sourceยง

impl Binary for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for TuneFormat

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = TuneFormat

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for TuneFormat

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl TuneFormat

source

pub const DEFAULT: Self = Self::TUNE_FORMAT_QBASIC1_1

Trait Implementationsยง

sourceยง

impl Binary for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for TuneFormat

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = TuneFormat

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for TuneFormat

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for TuneFormat

sourceยง

fn bitor(self, other: TuneFormat) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = TuneFormat

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for TuneFormat

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = TuneFormat

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for TuneFormat

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for TuneFormat

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = TuneFormat

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for TuneFormat

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for TuneFormat

sourceยง

fn clone(&self) -> TuneFormat

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for TuneFormat

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for TuneFormat

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = TuneFormat

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for TuneFormat

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for TuneFormat

sourceยง

fn clone(&self) -> TuneFormat

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for TuneFormat

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for TuneFormat

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<TuneFormat> for TuneFormat

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<TuneFormat> for TuneFormat

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for TuneFormat

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for TuneFormat

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = TuneFormat

The resulting type after applying the ! operator.
sourceยง

impl Octal for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for TuneFormat

sourceยง

fn cmp(&self, other: &TuneFormat) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for TuneFormat

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = TuneFormat

The resulting type after applying the ! operator.
sourceยง

impl Octal for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for TuneFormat

sourceยง

fn cmp(&self, other: &TuneFormat) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for TuneFormat

sourceยง

fn eq(&self, other: &TuneFormat) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for TuneFormat

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for TuneFormat

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = TuneFormat

The resulting type after applying the - operator.
sourceยง

impl SubAssign for TuneFormat

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for TuneFormat

sourceยง

impl Eq for TuneFormat

sourceยง

impl StructuralPartialEq for TuneFormat

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = TuneFormat

The resulting type after applying the - operator.
sourceยง

impl SubAssign for TuneFormat

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for TuneFormat

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for TuneFormat

sourceยง

impl Eq for TuneFormat

sourceยง

impl StructuralPartialEq for TuneFormat

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.UavionixAdsbOutDynamicState.html b/mavlink/uavionix/struct.UavionixAdsbOutDynamicState.html index 2d84667a10..6dfb13a85a 100644 --- a/mavlink/uavionix/struct.UavionixAdsbOutDynamicState.html +++ b/mavlink/uavionix/struct.UavionixAdsbOutDynamicState.html @@ -57,16 +57,16 @@
ยงSafety

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

sourceยง

impl UavionixAdsbOutDynamicState

source

pub const DEFAULT: Self = Self::UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE

Trait Implementationsยง

sourceยง

impl Binary for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UavionixAdsbOutDynamicState

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UavionixAdsbOutDynamicState

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UavionixAdsbOutDynamicState

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for UavionixAdsbOutDynamicState

sourceยง

fn bitor(self, other: UavionixAdsbOutDynamicState) -> Self

Returns the union of the two sets of flags.

ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UavionixAdsbOutDynamicState

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for UavionixAdsbOutDynamicState

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UavionixAdsbOutDynamicState

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for UavionixAdsbOutDynamicState

sourceยง

fn clone(&self) -> UavionixAdsbOutDynamicState

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UavionixAdsbOutDynamicState

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UavionixAdsbOutDynamicState

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UavionixAdsbOutDynamicState

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for UavionixAdsbOutDynamicState

sourceยง

fn clone(&self) -> UavionixAdsbOutDynamicState

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UavionixAdsbOutDynamicState

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UavionixAdsbOutDynamicState

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<UavionixAdsbOutDynamicState> for UavionixAdsbOutDynamicState

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<UavionixAdsbOutDynamicState> for UavionixAdsbOutDynamicState

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for UavionixAdsbOutDynamicState

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UavionixAdsbOutDynamicState

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

-
ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the ! operator.
sourceยง

impl Octal for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UavionixAdsbOutDynamicState

sourceยง

fn cmp(&self, other: &UavionixAdsbOutDynamicState) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UavionixAdsbOutDynamicState

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+
ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the ! operator.
sourceยง

impl Octal for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UavionixAdsbOutDynamicState

sourceยง

fn cmp(&self, other: &UavionixAdsbOutDynamicState) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
sourceยง

impl PartialEq for UavionixAdsbOutDynamicState

sourceยง

fn eq(&self, other: &UavionixAdsbOutDynamicState) -> bool

This method tests for self and other values to be equal, and is used @@ -75,8 +75,8 @@
ยงSafety
operator. Read more
1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for UavionixAdsbOutDynamicState

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for UavionixAdsbOutDynamicState

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UavionixAdsbOutDynamicState

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UavionixAdsbOutDynamicState

sourceยง

impl Eq for UavionixAdsbOutDynamicState

sourceยง

impl StructuralPartialEq for UavionixAdsbOutDynamicState

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

ยง

type Output = UavionixAdsbOutDynamicState

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UavionixAdsbOutDynamicState

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
sourceยง

impl UpperHex for UavionixAdsbOutDynamicState

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UavionixAdsbOutDynamicState

sourceยง

impl Eq for UavionixAdsbOutDynamicState

sourceยง

impl StructuralPartialEq for UavionixAdsbOutDynamicState

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.UavionixAdsbOutRfSelect.html b/mavlink/uavionix/struct.UavionixAdsbOutRfSelect.html index 1dddd33aeb..186b9d36d7 100644 --- a/mavlink/uavionix/struct.UavionixAdsbOutRfSelect.html +++ b/mavlink/uavionix/struct.UavionixAdsbOutRfSelect.html @@ -56,16 +56,16 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl UavionixAdsbOutRfSelect

source

pub const DEFAULT: Self = Self::UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY

Trait Implementationsยง

sourceยง

impl Binary for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UavionixAdsbOutRfSelect

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
sourceยง

impl UavionixAdsbOutRfSelect

source

pub const DEFAULT: Self = Self::UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY

Trait Implementationsยง

sourceยง

impl Binary for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UavionixAdsbOutRfSelect

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UavionixAdsbOutRfSelect

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for UavionixAdsbOutRfSelect

sourceยง

fn bitor(self, other: UavionixAdsbOutRfSelect) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UavionixAdsbOutRfSelect

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UavionixAdsbOutRfSelect

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for UavionixAdsbOutRfSelect

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UavionixAdsbOutRfSelect

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for UavionixAdsbOutRfSelect

sourceยง

fn clone(&self) -> UavionixAdsbOutRfSelect

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UavionixAdsbOutRfSelect

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UavionixAdsbOutRfSelect

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UavionixAdsbOutRfSelect

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for UavionixAdsbOutRfSelect

sourceยง

fn clone(&self) -> UavionixAdsbOutRfSelect

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UavionixAdsbOutRfSelect

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UavionixAdsbOutRfSelect

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<UavionixAdsbOutRfSelect> for UavionixAdsbOutRfSelect

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<UavionixAdsbOutRfSelect> for UavionixAdsbOutRfSelect

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for UavionixAdsbOutRfSelect

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UavionixAdsbOutRfSelect

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+ Self: Sized,
Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UavionixAdsbOutRfSelect

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the ! operator.
sourceยง

impl Octal for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UavionixAdsbOutRfSelect

sourceยง

fn cmp(&self, other: &UavionixAdsbOutRfSelect) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where @@ -76,7 +76,7 @@
ยงSafety
operator. Read more

sourceยง

impl Serialize for UavionixAdsbOutRfSelect

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for UavionixAdsbOutRfSelect

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = UavionixAdsbOutRfSelect

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UavionixAdsbOutRfSelect

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UavionixAdsbOutRfSelect

sourceยง

impl Eq for UavionixAdsbOutRfSelect

sourceยง

impl StructuralPartialEq for UavionixAdsbOutRfSelect

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for UavionixAdsbOutRfSelect

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UavionixAdsbOutRfSelect

sourceยง

impl Eq for UavionixAdsbOutRfSelect

sourceยง

impl StructuralPartialEq for UavionixAdsbOutRfSelect

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.UavionixAdsbRfHealth.html b/mavlink/uavionix/struct.UavionixAdsbRfHealth.html index 8ab80be5ca..fb2569b041 100644 --- a/mavlink/uavionix/struct.UavionixAdsbRfHealth.html +++ b/mavlink/uavionix/struct.UavionixAdsbRfHealth.html @@ -56,12 +56,12 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl UavionixAdsbRfHealth

source

pub const DEFAULT: Self = Self::UAVIONIX_ADSB_RF_HEALTH_INITIALIZING

Trait Implementationsยง

sourceยง

impl Binary for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UavionixAdsbRfHealth

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UavionixAdsbRfHealth

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl UavionixAdsbRfHealth

source

pub const DEFAULT: Self = Self::UAVIONIX_ADSB_RF_HEALTH_INITIALIZING

Trait Implementationsยง

sourceยง

impl Binary for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UavionixAdsbRfHealth

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UavionixAdsbRfHealth

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for UavionixAdsbRfHealth

sourceยง

fn bitor(self, other: UavionixAdsbRfHealth) -> Self

Returns the union of the two sets of flags.

ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UavionixAdsbRfHealth

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for UavionixAdsbRfHealth

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UavionixAdsbRfHealth

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UavionixAdsbRfHealth

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

sourceยง

impl Clone for UavionixAdsbRfHealth

sourceยง

fn clone(&self) -> UavionixAdsbRfHealth

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UavionixAdsbRfHealth

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UavionixAdsbRfHealth

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<UavionixAdsbRfHealth> for UavionixAdsbRfHealth

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<UavionixAdsbRfHealth> for UavionixAdsbRfHealth

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for UavionixAdsbRfHealth

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, @@ -76,7 +76,7 @@
ยงSafety
operator. Read more

sourceยง

impl Serialize for UavionixAdsbRfHealth

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for UavionixAdsbRfHealth

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

ยง

type Output = UavionixAdsbRfHealth

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UavionixAdsbRfHealth

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

-
sourceยง

impl UpperHex for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UavionixAdsbRfHealth

sourceยง

impl Eq for UavionixAdsbRfHealth

sourceยง

impl StructuralPartialEq for UavionixAdsbRfHealth

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +

sourceยง

impl UpperHex for UavionixAdsbRfHealth

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UavionixAdsbRfHealth

sourceยง

impl Eq for UavionixAdsbRfHealth

sourceยง

impl StructuralPartialEq for UavionixAdsbRfHealth

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink/uavionix/struct.UtmDataAvailFlags.html b/mavlink/uavionix/struct.UtmDataAvailFlags.html index 657a597ea8..1676271d5f 100644 --- a/mavlink/uavionix/struct.UtmDataAvailFlags.html +++ b/mavlink/uavionix/struct.UtmDataAvailFlags.html @@ -56,16 +56,16 @@
ยงSafety
between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-
sourceยง

impl UtmDataAvailFlags

source

pub const DEFAULT: Self = Self::UTM_DATA_AVAIL_FLAGS_TIME_VALID

Trait Implementationsยง

sourceยง

impl Binary for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UtmDataAvailFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UtmDataAvailFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

+
sourceยง

impl UtmDataAvailFlags

source

pub const DEFAULT: Self = Self::UTM_DATA_AVAIL_FLAGS_TIME_VALID

Trait Implementationsยง

sourceยง

impl Binary for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl BitAnd for UtmDataAvailFlags

sourceยง

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

+
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the & operator.
sourceยง

impl BitAndAssign for UtmDataAvailFlags

sourceยง

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

sourceยง

impl BitOr for UtmDataAvailFlags

sourceยง

fn bitor(self, other: UtmDataAvailFlags) -> Self

Returns the union of the two sets of flags.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UtmDataAvailFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

+
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the | operator.
sourceยง

impl BitOrAssign for UtmDataAvailFlags

sourceยง

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

sourceยง

impl BitXor for UtmDataAvailFlags

sourceยง

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UtmDataAvailFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

-
sourceยง

impl Clone for UtmDataAvailFlags

sourceยง

fn clone(&self) -> UtmDataAvailFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UtmDataAvailFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UtmDataAvailFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

ยง

type Output = UtmDataAvailFlags

The resulting type after applying the ^ operator.
sourceยง

impl BitXorAssign for UtmDataAvailFlags

sourceยง

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

+
sourceยง

impl Clone for UtmDataAvailFlags

sourceยง

fn clone(&self) -> UtmDataAvailFlags

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for UtmDataAvailFlags

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl<'de> Deserialize<'de> for UtmDataAvailFlags

sourceยง

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
sourceยง

impl Extend<UtmDataAvailFlags> for UtmDataAvailFlags

sourceยง

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
sourceยง

fn extend_one(&mut self, item: A)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
sourceยง

fn extend_reserve(&mut self, additional: usize)

๐Ÿ”ฌThis is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
sourceยง

impl FromIterator<UtmDataAvailFlags> for UtmDataAvailFlags

sourceยง

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
sourceยง

impl Hash for UtmDataAvailFlags

sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UtmDataAvailFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

+ Self: Sized,
Feeds a slice of this type into the given Hasher. Read more
sourceยง

impl LowerHex for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Not for UtmDataAvailFlags

sourceยง

fn not(self) -> Self

Returns the complement of this set of flags.

ยง

type Output = UtmDataAvailFlags

The resulting type after applying the ! operator.
sourceยง

impl Octal for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Ord for UtmDataAvailFlags

sourceยง

fn cmp(&self, other: &UtmDataAvailFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 ยท sourceยง

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 ยท sourceยง

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 ยท sourceยง

fn clamp(self, min: Self, max: Self) -> Self
where @@ -75,7 +75,7 @@
ยงSafety
operator. Read more

1.0.0 ยท sourceยง

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 ยท sourceยง

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
sourceยง

impl Serialize for UtmDataAvailFlags

sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
sourceยง

impl Sub for UtmDataAvailFlags

sourceยง

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

-
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UtmDataAvailFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

+
ยง

type Output = UtmDataAvailFlags

The resulting type after applying the - operator.
sourceยง

impl SubAssign for UtmDataAvailFlags

sourceยง

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

sourceยง

impl UpperHex for UtmDataAvailFlags

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Copy for UtmDataAvailFlags

sourceยง

impl Eq for UtmDataAvailFlags

sourceยง

impl StructuralPartialEq for UtmDataAvailFlags

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where diff --git a/mavlink_core/bytes/index.html b/mavlink_core/bytes/index.html index de5e91e5d1..adae8a4da3 100644 --- a/mavlink_core/bytes/index.html +++ b/mavlink_core/bytes/index.html @@ -1 +1 @@ -mavlink_core::bytes - Rust

Module mavlink_core::bytes

source ยท

Structsยง

\ No newline at end of file +mavlink_core::bytes - Rust

Module mavlink_core::bytes

source ยท

Structsยง

\ No newline at end of file diff --git a/mavlink_core/bytes/struct.Bytes.html b/mavlink_core/bytes/struct.Bytes.html index ca5ad331c0..b8e871eb29 100644 --- a/mavlink_core/bytes/struct.Bytes.html +++ b/mavlink_core/bytes/struct.Bytes.html @@ -1,4 +1,4 @@ -Bytes in mavlink_core::bytes - Rust

Struct mavlink_core::bytes::Bytes

source ยท
pub struct Bytes<'a> { /* private fields */ }

Implementationsยง

sourceยง

impl<'a> Bytes<'a>

source

pub fn new(data: &'a [u8]) -> Self

source

pub fn remaining_bytes(&self) -> &'a [u8] โ“˜

source

pub fn get_bytes(&mut self, count: usize) -> &[u8] โ“˜

source

pub fn get_array<const SIZE: usize>(&mut self) -> [u8; SIZE]

source

pub fn get_u8(&mut self) -> u8

source

pub fn get_i8(&mut self) -> i8

source

pub fn get_u16_le(&mut self) -> u16

source

pub fn get_i16_le(&mut self) -> i16

source

pub fn get_u24_le(&mut self) -> u32

source

pub fn get_i24_le(&mut self) -> i32

source

pub fn get_u32_le(&mut self) -> u32

source

pub fn get_i32_le(&mut self) -> i32

source

pub fn get_u64_le(&mut self) -> u64

source

pub fn get_i64_le(&mut self) -> i64

source

pub fn get_f32_le(&mut self) -> f32

source

pub fn get_f64_le(&mut self) -> f64

Auto Trait Implementationsยง

ยง

impl<'a> Freeze for Bytes<'a>

ยง

impl<'a> RefUnwindSafe for Bytes<'a>

ยง

impl<'a> Send for Bytes<'a>

ยง

impl<'a> Sync for Bytes<'a>

ยง

impl<'a> Unpin for Bytes<'a>

ยง

impl<'a> UnwindSafe for Bytes<'a>

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +Bytes in mavlink_core::bytes - Rust

Struct mavlink_core::bytes::Bytes

source ยท
pub struct Bytes<'a> { /* private fields */ }

Implementationsยง

sourceยง

impl<'a> Bytes<'a>

source

pub fn new(data: &'a [u8]) -> Self

source

pub fn remaining_bytes(&self) -> &'a [u8] โ“˜

source

pub fn get_bytes(&mut self, count: usize) -> &[u8] โ“˜

source

pub fn get_array<const SIZE: usize>(&mut self) -> [u8; SIZE]

source

pub fn get_u8(&mut self) -> u8

source

pub fn get_i8(&mut self) -> i8

source

pub fn get_u16_le(&mut self) -> u16

source

pub fn get_i16_le(&mut self) -> i16

source

pub fn get_u24_le(&mut self) -> u32

source

pub fn get_i24_le(&mut self) -> i32

source

pub fn get_u32_le(&mut self) -> u32

source

pub fn get_i32_le(&mut self) -> i32

source

pub fn get_u64_le(&mut self) -> u64

source

pub fn get_i64_le(&mut self) -> i64

source

pub fn get_f32_le(&mut self) -> f32

source

pub fn get_f64_le(&mut self) -> f64

Auto Trait Implementationsยง

ยง

impl<'a> Freeze for Bytes<'a>

ยง

impl<'a> RefUnwindSafe for Bytes<'a>

ยง

impl<'a> Send for Bytes<'a>

ยง

impl<'a> Sync for Bytes<'a>

ยง

impl<'a> Unpin for Bytes<'a>

ยง

impl<'a> UnwindSafe for Bytes<'a>

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink_core/bytes_mut/index.html b/mavlink_core/bytes_mut/index.html index d3a51c4e20..068b5e266c 100644 --- a/mavlink_core/bytes_mut/index.html +++ b/mavlink_core/bytes_mut/index.html @@ -1 +1 @@ -mavlink_core::bytes_mut - Rust

Module mavlink_core::bytes_mut

source ยท

Structsยง

\ No newline at end of file +mavlink_core::bytes_mut - Rust

Module mavlink_core::bytes_mut

source ยท

Structsยง

\ No newline at end of file diff --git a/mavlink_core/bytes_mut/struct.BytesMut.html b/mavlink_core/bytes_mut/struct.BytesMut.html index ab412567e9..1dfa875503 100644 --- a/mavlink_core/bytes_mut/struct.BytesMut.html +++ b/mavlink_core/bytes_mut/struct.BytesMut.html @@ -1,4 +1,4 @@ -BytesMut in mavlink_core::bytes_mut - Rust

Struct mavlink_core::bytes_mut::BytesMut

source ยท
pub struct BytesMut<'a> { /* private fields */ }

Implementationsยง

sourceยง

impl<'a> BytesMut<'a>

source

pub fn new(data: &'a mut [u8]) -> Self

source

pub fn len(&self) -> usize

source

pub fn is_empty(&self) -> bool

source

pub fn remaining(&self) -> usize

source

pub fn put_slice(&mut self, src: &[u8])

source

pub fn put_u8(&mut self, val: u8)

source

pub fn put_i8(&mut self, val: i8)

source

pub fn put_u16_le(&mut self, val: u16)

source

pub fn put_i16_le(&mut self, val: i16)

source

pub fn put_u24_le(&mut self, val: u32)

source

pub fn put_i24_le(&mut self, val: i32)

source

pub fn put_u32_le(&mut self, val: u32)

source

pub fn put_i32_le(&mut self, val: i32)

source

pub fn put_u64_le(&mut self, val: u64)

source

pub fn put_i64_le(&mut self, val: i64)

source

pub fn put_f32_le(&mut self, val: f32)

source

pub fn put_f64_le(&mut self, val: f64)

Auto Trait Implementationsยง

ยง

impl<'a> Freeze for BytesMut<'a>

ยง

impl<'a> RefUnwindSafe for BytesMut<'a>

ยง

impl<'a> Send for BytesMut<'a>

ยง

impl<'a> Sync for BytesMut<'a>

ยง

impl<'a> Unpin for BytesMut<'a>

ยง

impl<'a> !UnwindSafe for BytesMut<'a>

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +BytesMut in mavlink_core::bytes_mut - Rust

Struct mavlink_core::bytes_mut::BytesMut

source ยท
pub struct BytesMut<'a> { /* private fields */ }

Implementationsยง

sourceยง

impl<'a> BytesMut<'a>

source

pub fn new(data: &'a mut [u8]) -> Self

source

pub fn len(&self) -> usize

source

pub fn is_empty(&self) -> bool

source

pub fn remaining(&self) -> usize

source

pub fn put_slice(&mut self, src: &[u8])

source

pub fn put_u8(&mut self, val: u8)

source

pub fn put_i8(&mut self, val: i8)

source

pub fn put_u16_le(&mut self, val: u16)

source

pub fn put_i16_le(&mut self, val: i16)

source

pub fn put_u24_le(&mut self, val: u32)

source

pub fn put_i24_le(&mut self, val: i32)

source

pub fn put_u32_le(&mut self, val: u32)

source

pub fn put_i32_le(&mut self, val: i32)

source

pub fn put_u64_le(&mut self, val: u64)

source

pub fn put_i64_le(&mut self, val: i64)

source

pub fn put_f32_le(&mut self, val: f32)

source

pub fn put_f64_le(&mut self, val: f64)

Auto Trait Implementationsยง

ยง

impl<'a> Freeze for BytesMut<'a>

ยง

impl<'a> RefUnwindSafe for BytesMut<'a>

ยง

impl<'a> Send for BytesMut<'a>

ยง

impl<'a> Sync for BytesMut<'a>

ยง

impl<'a> Unpin for BytesMut<'a>

ยง

impl<'a> !UnwindSafe for BytesMut<'a>

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink_core/error/enum.MessageReadError.html b/mavlink_core/error/enum.MessageReadError.html index 0bbe891beb..184bcb7226 100644 --- a/mavlink_core/error/enum.MessageReadError.html +++ b/mavlink_core/error/enum.MessageReadError.html @@ -1,7 +1,7 @@ MessageReadError in mavlink_core::error - Rust

Enum mavlink_core::error::MessageReadError

source ยท
pub enum MessageReadError {
     Io(Error),
     Parse(ParserError),
-}

Variantsยง

Trait Implementationsยง

sourceยง

impl Debug for MessageReadError

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Display for MessageReadError

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Error for MessageReadError

1.30.0 ยท sourceยง

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 ยท sourceยง

fn description(&self) -> &str

๐Ÿ‘ŽDeprecated since 1.42.0: use the Display impl or to_string()
1.0.0 ยท sourceยง

fn cause(&self) -> Option<&dyn Error>

๐Ÿ‘ŽDeprecated since 1.33.0: replaced by Error::source, which can support downcasting
sourceยง

fn provide<'a>(&'a self, request: &mut Request<'a>)

๐Ÿ”ฌThis is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
sourceยง

impl From<Error> for MessageReadError

sourceยง

fn from(e: Error) -> Self

Converts to this type from the input type.
sourceยง

impl From<ParserError> for MessageReadError

sourceยง

fn from(e: ParserError) -> Self

Converts to this type from the input type.

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +}

Variantsยง

Trait Implementationsยง

sourceยง

impl Debug for MessageReadError

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Display for MessageReadError

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Error for MessageReadError

1.30.0 ยท sourceยง

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 ยท sourceยง

fn description(&self) -> &str

๐Ÿ‘ŽDeprecated since 1.42.0: use the Display impl or to_string()
1.0.0 ยท sourceยง

fn cause(&self) -> Option<&dyn Error>

๐Ÿ‘ŽDeprecated since 1.33.0: replaced by Error::source, which can support downcasting
sourceยง

fn provide<'a>(&'a self, request: &mut Request<'a>)

๐Ÿ”ฌThis is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
sourceยง

impl From<Error> for MessageReadError

sourceยง

fn from(e: Error) -> Self

Converts to this type from the input type.
sourceยง

impl From<ParserError> for MessageReadError

sourceยง

fn from(e: ParserError) -> Self

Converts to this type from the input type.

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink_core/error/enum.ParserError.html b/mavlink_core/error/enum.ParserError.html index 973760c92b..602ffe848f 100644 --- a/mavlink_core/error/enum.ParserError.html +++ b/mavlink_core/error/enum.ParserError.html @@ -10,7 +10,7 @@ UnknownMessage { id: u32, }, -}

Variantsยง

ยง

InvalidFlag

Fields

ยงflag_type: &'static str
ยงvalue: u32
ยง

InvalidEnum

Fields

ยงenum_type: &'static str
ยงvalue: u32
ยง

UnknownMessage

Fields

Trait Implementationsยง

sourceยง

impl Debug for ParserError

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Display for ParserError

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Error for ParserError

1.30.0 ยท sourceยง

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 ยท sourceยง

fn description(&self) -> &str

๐Ÿ‘ŽDeprecated since 1.42.0: use the Display impl or to_string()
1.0.0 ยท sourceยง

fn cause(&self) -> Option<&dyn Error>

๐Ÿ‘ŽDeprecated since 1.33.0: replaced by Error::source, which can support downcasting
sourceยง

fn provide<'a>(&'a self, request: &mut Request<'a>)

๐Ÿ”ฌThis is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
sourceยง

impl From<ParserError> for MessageReadError

sourceยง

fn from(e: ParserError) -> Self

Converts to this type from the input type.

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +}

Variantsยง

ยง

InvalidFlag

Fields

ยงflag_type: &'static str
ยงvalue: u32
ยง

InvalidEnum

Fields

ยงenum_type: &'static str
ยงvalue: u32
ยง

UnknownMessage

Fields

Trait Implementationsยง

sourceยง

impl Debug for ParserError

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Display for ParserError

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Error for ParserError

1.30.0 ยท sourceยง

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 ยท sourceยง

fn description(&self) -> &str

๐Ÿ‘ŽDeprecated since 1.42.0: use the Display impl or to_string()
1.0.0 ยท sourceยง

fn cause(&self) -> Option<&dyn Error>

๐Ÿ‘ŽDeprecated since 1.33.0: replaced by Error::source, which can support downcasting
sourceยง

fn provide<'a>(&'a self, request: &mut Request<'a>)

๐Ÿ”ฌThis is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
sourceยง

impl From<ParserError> for MessageReadError

sourceยง

fn from(e: ParserError) -> Self

Converts to this type from the input type.

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/mavlink_core/fn.read_v2_msg.html b/mavlink_core/fn.read_v2_msg.html index 0c42a8540d..2d7c7865e6 100644 --- a/mavlink_core/fn.read_v2_msg.html +++ b/mavlink_core/fn.read_v2_msg.html @@ -1,4 +1,4 @@ -read_v2_msg in mavlink_core - Rust

Function mavlink_core::read_v2_msg

source ยท
pub fn read_v2_msg<M: Message, R: Read>(
+read_v2_msg in mavlink_core - Rust

Function mavlink_core::read_v2_msg

source ยท
pub fn read_v2_msg<M: Message, R: Read>(
     read: &mut PeekReader<R>,
 ) -> Result<(MavHeader, M), MessageReadError>
Expand description

Read a MAVLink v2 message from a Read stream.

\ No newline at end of file diff --git a/mavlink_core/fn.read_v2_raw_message.html b/mavlink_core/fn.read_v2_raw_message.html index 20a44b3d1f..a51c52b55c 100644 --- a/mavlink_core/fn.read_v2_raw_message.html +++ b/mavlink_core/fn.read_v2_raw_message.html @@ -1,4 +1,4 @@ -read_v2_raw_message in mavlink_core - Rust

Function mavlink_core::read_v2_raw_message

source ยท
pub fn read_v2_raw_message<M: Message, R: Read>(
+read_v2_raw_message in mavlink_core - Rust

Function mavlink_core::read_v2_raw_message

source ยท
pub fn read_v2_raw_message<M: Message, R: Read>(
     reader: &mut PeekReader<R>,
 ) -> Result<MAVLinkV2MessageRaw, MessageReadError>
Expand description

Return a raw buffer with the mavlink message V2 maximum size is 280 bytes: <https://mavlink.io/en/guide/serialization.html>

diff --git a/mavlink_core/fn.write_v1_msg.html b/mavlink_core/fn.write_v1_msg.html index a868e14e33..48f3d4749a 100644 --- a/mavlink_core/fn.write_v1_msg.html +++ b/mavlink_core/fn.write_v1_msg.html @@ -1,4 +1,4 @@ -write_v1_msg in mavlink_core - Rust

Function mavlink_core::write_v1_msg

source ยท
pub fn write_v1_msg<M: Message, W: Write>(
+write_v1_msg in mavlink_core - Rust

Function mavlink_core::write_v1_msg

source ยท
pub fn write_v1_msg<M: Message, W: Write>(
     w: &mut W,
     header: MavHeader,
     data: &M,
diff --git a/mavlink_core/fn.write_v2_msg.html b/mavlink_core/fn.write_v2_msg.html
index e921bec0b7..9744c1dfaa 100644
--- a/mavlink_core/fn.write_v2_msg.html
+++ b/mavlink_core/fn.write_v2_msg.html
@@ -1,4 +1,4 @@
-write_v2_msg in mavlink_core - Rust

Function mavlink_core::write_v2_msg

source ยท
pub fn write_v2_msg<M: Message, W: Write>(
+write_v2_msg in mavlink_core - Rust

Function mavlink_core::write_v2_msg

source ยท
pub fn write_v2_msg<M: Message, W: Write>(
     w: &mut W,
     header: MavHeader,
     data: &M,
diff --git a/mavlink_core/fn.write_versioned_msg.html b/mavlink_core/fn.write_versioned_msg.html
index 4074fba64a..b411679c6e 100644
--- a/mavlink_core/fn.write_versioned_msg.html
+++ b/mavlink_core/fn.write_versioned_msg.html
@@ -1,4 +1,4 @@
-write_versioned_msg in mavlink_core - Rust

Function mavlink_core::write_versioned_msg

source ยท
pub fn write_versioned_msg<M: Message, W: Write>(
+write_versioned_msg in mavlink_core - Rust

Function mavlink_core::write_versioned_msg

source ยท
pub fn write_versioned_msg<M: Message, W: Write>(
     w: &mut W,
     version: MavlinkVersion,
     header: MavHeader,
diff --git a/mavlink_core/index.html b/mavlink_core/index.html
index ccc45ba49a..de9f258303 100644
--- a/mavlink_core/index.html
+++ b/mavlink_core/index.html
@@ -1,4 +1,4 @@
-mavlink_core - Rust

Crate mavlink_core

source ยท
Expand description

The MAVLink message set.

+mavlink_core - Rust

Crate mavlink_core

source ยท
Expand description

The MAVLink message set.

ยงMessage sets and the Message trait

Each message set has its own module with corresponding data types, including a MavMessage enum that represents all possible messages in that message set. The Message trait is used to diff --git a/mavlink_core/struct.MAVLinkV2MessageRaw.html b/mavlink_core/struct.MAVLinkV2MessageRaw.html index 431f5b8775..65af48b960 100644 --- a/mavlink_core/struct.MAVLinkV2MessageRaw.html +++ b/mavlink_core/struct.MAVLinkV2MessageRaw.html @@ -1,10 +1,10 @@ -MAVLinkV2MessageRaw in mavlink_core - Rust

Struct mavlink_core::MAVLinkV2MessageRaw

source ยท
pub struct MAVLinkV2MessageRaw(/* private fields */);

Implementationsยง

sourceยง

impl MAVLinkV2MessageRaw

source

pub const fn new() -> Self

source

pub fn header(&mut self) -> &[u8] โ“˜

source

pub fn payload_length(&self) -> u8

source

pub fn incompatibility_flags(&self) -> u8

source

pub fn compatibility_flags(&self) -> u8

source

pub fn sequence(&self) -> u8

source

pub fn system_id(&self) -> u8

source

pub fn component_id(&self) -> u8

source

pub fn message_id(&self) -> u32

source

pub fn payload(&self) -> &[u8] โ“˜

source

pub fn checksum(&self) -> u16

source

pub fn has_valid_crc<M: Message>(&self) -> bool

source

pub fn raw_bytes(&self) -> &[u8] โ“˜

source

pub fn serialize_message<M: Message>(&mut self, header: MavHeader, message: &M)

source

pub fn serialize_message_data<D: MessageData>( +MAVLinkV2MessageRaw in mavlink_core - Rust

Struct mavlink_core::MAVLinkV2MessageRaw

source ยท
pub struct MAVLinkV2MessageRaw(/* private fields */);

Implementationsยง

sourceยง

impl MAVLinkV2MessageRaw

source

pub const fn new() -> Self

source

pub fn header(&mut self) -> &[u8] โ“˜

source

pub fn payload_length(&self) -> u8

source

pub fn incompatibility_flags(&self) -> u8

source

pub fn compatibility_flags(&self) -> u8

source

pub fn sequence(&self) -> u8

source

pub fn system_id(&self) -> u8

source

pub fn component_id(&self) -> u8

source

pub fn message_id(&self) -> u32

source

pub fn payload(&self) -> &[u8] โ“˜

source

pub fn checksum(&self) -> u16

source

pub fn has_valid_crc<M: Message>(&self) -> bool

source

pub fn raw_bytes(&self) -> &[u8] โ“˜

source

pub fn serialize_message<M: Message>(&mut self, header: MavHeader, message: &M)

source

pub fn serialize_message_data<D: MessageData>( &mut self, header: MavHeader, message_data: &D, -)

Trait Implementationsยง

sourceยง

impl Clone for MAVLinkV2MessageRaw

sourceยง

fn clone(&self) -> MAVLinkV2MessageRaw

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MAVLinkV2MessageRaw

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MAVLinkV2MessageRaw

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl PartialEq for MAVLinkV2MessageRaw

sourceยง

fn eq(&self, other: &MAVLinkV2MessageRaw) -> bool

This method tests for self and other values to be equal, and is used +)

Trait Implementationsยง

sourceยง

impl Clone for MAVLinkV2MessageRaw

sourceยง

fn clone(&self) -> MAVLinkV2MessageRaw

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl Debug for MAVLinkV2MessageRaw

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl Default for MAVLinkV2MessageRaw

sourceยง

fn default() -> Self

Returns the โ€œdefault valueโ€ for a type. Read more
sourceยง

impl PartialEq for MAVLinkV2MessageRaw

sourceยง

fn eq(&self, other: &MAVLinkV2MessageRaw) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 ยท sourceยง

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
sourceยง

impl Copy for MAVLinkV2MessageRaw

sourceยง

impl Eq for MAVLinkV2MessageRaw

sourceยง

impl StructuralPartialEq for MAVLinkV2MessageRaw

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

sourceยง

impl Copy for MAVLinkV2MessageRaw

sourceยง

impl Eq for MAVLinkV2MessageRaw

sourceยง

impl StructuralPartialEq for MAVLinkV2MessageRaw

Auto Trait Implementationsยง

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/search-index.js b/search-index.js index cecb75c728..be5c04c573 100644 --- a/search-index.js +++ b/search-index.js @@ -5,9 +5,9 @@ var searchIndex = new Map(JSON.parse('[\ ["ioctl_rs",{"t":"SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHHHHHHH","n":["FIOASYNC","FIOCLEX","FIOGETOWN","FIONBIO","FIONCLEX","FIONREAD","FIOSETOWN","SIOCADDMULTI","SIOCADDRT","SIOCDARP","SIOCDELMULTI","SIOCDELRT","SIOCDRARP","SIOCGARP","SIOCGIFADDR","SIOCGIFBRDADDR","SIOCGIFCONF","SIOCGIFDSTADDR","SIOCGIFENCAP","SIOCGIFFLAGS","SIOCGIFHWADDR","SIOCGIFMAP","SIOCGIFMEM","SIOCGIFMETRIC","SIOCGIFMTU","SIOCGIFNAME","SIOCGIFNETMASK","SIOCGIFSLAVE","SIOCGPGRP","SIOCGRARP","SIOCGSTAMP","SIOCSARP","SIOCSIFADDR","SIOCSIFBRDADDR","SIOCSIFDSTADDR","SIOCSIFENCAP","SIOCSIFFLAGS","SIOCSIFHWADDR","SIOCSIFLINK","SIOCSIFMAP","SIOCSIFMEM","SIOCSIFMETRIC","SIOCSIFMTU","SIOCSIFNETMASK","SIOCSIFSLAVE","SIOCSPGRP","SIOCSRARP","TCFLSH","TCGETA","TCGETS","TCSBRK","TCSBRKP","TCSETA","TCSETAF","TCSETAW","TCSETS","TCSETSF","TCSETSW","TCXONC","TIOCCONS","TIOCEXCL","TIOCGETD","TIOCGLCKTRMIOS","TIOCGPGRP","TIOCGSERIAL","TIOCGSOFTCAR","TIOCGWINSZ","TIOCINQ","TIOCLINUX","TIOCMBIC","TIOCMBIS","TIOCMGET","TIOCMSET","TIOCM_CAR","TIOCM_CD","TIOCM_CTS","TIOCM_DSR","TIOCM_DTR","TIOCM_LE","TIOCM_RI","TIOCM_RNG","TIOCM_RTS","TIOCM_SR","TIOCM_ST","TIOCNOTTY","TIOCNXCL","TIOCOUTQ","TIOCPKT","TIOCSCTTY","TIOCSERCONFIG","TIOCSERGETLSR","TIOCSERGETMULTI","TIOCSERGSTRUCT","TIOCSERGWILD","TIOCSERSETMULTI","TIOCSERSWILD","TIOCSETD","TIOCSLCKTRMIOS","TIOCSPGRP","TIOCSSERIAL","TIOCSSOFTCAR","TIOCSTI","TIOCSWINSZ","ioctl","tiocexcl","tiocmbic","tiocmbis","tiocmget","tiocmset","tiocnxcl"],"q":[[0,"ioctl_rs"],[110,"std::os::fd::raw"],[111,"std::io::error"],[112,"libc::unix"],[113,"ioctl_rs::os::linux"]],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"f":"````````````````````````````````````````````````````````````````````````````````````````````````````````{b{{f{d}}}}{{bh}{{f{d}}}}0{b{{f{h}}}}12","D":"l","p":[[8,"RawFd",110],[1,"unit"],[8,"Result",111],[8,"c_int",112]],"r":[[0,113],[1,113],[2,113],[3,113],[4,113],[5,113],[6,113],[7,113],[8,113],[9,113],[10,113],[11,113],[12,113],[13,113],[14,113],[15,113],[16,113],[17,113],[18,113],[19,113],[20,113],[21,113],[22,113],[23,113],[24,113],[25,113],[26,113],[27,113],[28,113],[29,113],[30,113],[31,113],[32,113],[33,113],[34,113],[35,113],[36,113],[37,113],[38,113],[39,113],[40,113],[41,113],[42,113],[43,113],[44,113],[45,113],[46,113],[47,113],[48,113],[49,113],[50,113],[51,113],[52,113],[53,113],[54,113],[55,113],[56,113],[57,113],[58,113],[59,113],[60,113],[61,113],[62,113],[63,113],[64,113],[65,113],[66,113],[67,113],[68,113],[69,113],[70,113],[71,113],[72,113],[73,113],[74,113],[75,113],[76,113],[77,113],[78,113],[79,113],[80,113],[81,113],[82,113],[83,113],[84,113],[85,113],[86,113],[87,113],[88,113],[89,113],[90,113],[91,113],[92,113],[93,113],[94,113],[95,113],[96,113],[97,113],[98,113],[99,113],[100,113],[101,113],[102,113]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAGgAAQAAAGgA"}],\ ["lazy_static",{"t":"KHQ","n":["LazyStatic","initialize","lazy_static"],"q":[[0,"lazy_static"]],"i":[0,0,0],"f":"`{{{b{c}}}df}`","D":"f","p":[[1,"reference"],[1,"unit"],[10,"LazyStatic",0]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAMA"}],\ ["libc",{"t":"SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHSSSSSSSSSSHSSSSSSSSHSHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHHHHHSSSHHHHHHHSHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSGSSSSSSSSSSSFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSIFFIIFIFFIIFFIIFIFIFIISSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHHHSHSSSSSSSGSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHSSHSSSSSSSSHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHSSSSSSSHSSSSSSSSSSSHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSISSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHSSSSSHSSSSSSSSSSHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHHHHSSSSSSSHHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSHSHSHHHHSSSSHHSHSHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSUUFUFFFUFFHFIOOOOIOIIIIIOOIFIIIIOOOOOOOOOOOHOFFFOOHHOOOOOHHHHOHOOOOOOFHHOFOOOOOOOOOOHOHOOOHOOOOOOOHOOOHOOHHFHOOOOOOOOOOOOOOOOOOOOOFFFFHHHHHHOOOHOHIIINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHOOOOOOOIIIOOIOOOOOOIIOOOOIIIIIIIGOHOOIOFFOOOOOFIFIOHHHHHHOOOOOOOOOHOHHHOOOHHHHHHHHIOIHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFHHHHOOOOFOOOOOHOOOOHFOOHHOHHOOOOOOOOOOOOOOOOHOOOOOOOOOOOIHOFFHHHFHHHHOOOOHHHOOOOOOOOHOOOOOOOOOOOFHOHHHHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOHHHHHHOOOOHHHFHHHOOOOOOHOHHIHOOHHHHHHHHHOOHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOHOOHHFHHFHHHHHHHOOOFHHHHHHFFFOOFFFFFFHHHHHHHHHFHOOOOOOOOOOOOOOOOOOHFHFHNOOHHOOHHHGGOHHHOOOHHHHOHHOOHHHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOIHHHHHHHIFOOHHHHHHHHHHHHHHHOOHHOHHFHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHOOIOOOOOOOOHHFFHHHHHHHOOOOHIOFOOOOOOOOOOOHOOOOOOFHFOHHHIOOOOOOIIHOHOFHHOOOOOOOFOOFOOOOOOOFOOOOOOOOOOOOOOOOOOOOOFFFFFIFIOOOOHIIHFHHHFFFFFOOIIIIOOOOOOOOOINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIFHHHOOFOFFFFOOOOOFOOOOHHHHHHHHHHHHHOOOOFFOOOOOOFOOOHOOOOOOOIOHHOOOOOOOOOOOOHHHFOOOOOOOOOOOOHFHHHHHHOIHHHHIHHHHHHHHHOHOOHHHFHFHHHHHHOOFOOOFOOOHHHHHHHHHOHOHHHHHHHHHHHHHHHHHHFOOOOOOFOOIOOOOOHHFHOOHOOHHHHHHHIOOOOHHOOOOOOOOOOOOOOOOOOHHFFIOOOOOIHOHOOFHHHHOOOOOOOOOOOOOIHOOOHIHOOIHHFFOFOOFIOOOOOFFOOOOOOOOOOOOOOOHHHFOOOOOOIIOOOOHHFHHHHHHHFOOOOOOOOOOOOOOOOOOOOOOOOOOFOOOOFHHHOHHOOOIOOOOIOHHHFHOOHHHHHHHHHHHHHHHHHHFHHHHHHHHHHHHHHFHHOOOHHHHHHHOHOIHHHHOOOOFHHHHHHHHHHHHHHHHHHFHHFHHHHHFHHHHHFHHHHHHHHFHHHHHHHHHHHHIHHHHHFHHHHHHHHHHHHFHIHHHFHHHHHHHHHHFHHHHHHHHHHHHHIIHFFFIHHHHHHHHHOOOOOOOHHHHHHHHHOOOOOOOOHHOOOOOOOOOOOOOOOOHHHHHHHHHHHHHOOOHHHHHHFHHFIOOHHHHHHOOOOHOOOOOOOOOHHOOOOOIOOOOIFFOOHOOOOOOOOOOOOOOOOOOOFOOOOOOOOOOOOOOOOFOOOOOOOOOOOOOOOOOOIOOOOOOOOOOOOHOHFOOHHHHHHOFOOOOHOHHHHIFFFFFFFOOFOFOFFOFHHHHOHOHHOOOHOOHFHHHHOFHHFFOOOOOHOOOOHHHHHHFOOHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHOOOOOOOOOOOOOOOOOOOOOOOOOOOOHOOHHIHHHFHNOONONNNNNFHHHHHOOOOFHIFHHOHFOOHHFHHFHHOOOOOOOOOOOOOOOOOOOOOOOOIHOOOOOOOOOOOOOOHFFFFFFFFFFFFFFFHHIOOOOOOOOOIHHFHHOOOOOOOOOHOOOOOOOOOOOOOOOOOOOOIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFOOOOFHFHFHFHOFHFHFHFOHHHHHHHHHHHHHHHHHHHHHHHOHHHHHHHHHHHHHHHOOOOOOOOOOOOOOOOOOOOOOOOIOOOOOOHHHOOOOOOOHHHHHHHHFHHOHOOHIHHHHHHHHHHFFOOHOOOIHHHHHHIHHHHFFFGOFFFFFOOOOOOOOOOOHHHFOOOOOHOOOHOOHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOFFOOIFFFFFIIIIIIHHHHHHHHHHOOOOIHFFFHOOOOOOOOOOOOFHHHHFHFOOOOOOOOOOHHHHHHHOIHHOOFHHHOOOOFFFFFFFFFFO","n":["ABDAY_1","ABDAY_2","ABDAY_3","ABDAY_4","ABDAY_5","ABDAY_6","ABDAY_7","ABMON_1","ABMON_10","ABMON_11","ABMON_12","ABMON_2","ABMON_3","ABMON_4","ABMON_5","ABMON_6","ABMON_7","ABMON_8","ABMON_9","ABS_CNT","ABS_MAX","ACCOUNTING","ADDR_COMPAT_LAYOUT","ADDR_LIMIT_32BIT","ADDR_LIMIT_3GB","ADDR_NO_RANDOMIZE","ADFS_SUPER_MAGIC","ADJ_ESTERROR","ADJ_FREQUENCY","ADJ_MAXERROR","ADJ_MICRO","ADJ_NANO","ADJ_OFFSET","ADJ_OFFSET_SINGLESHOT","ADJ_OFFSET_SS_READ","ADJ_SETOFFSET","ADJ_STATUS","ADJ_TAI","ADJ_TICK","ADJ_TIMECONST","AFFS_SUPER_MAGIC","AFS_SUPER_MAGIC","AF_ALG","AF_APPLETALK","AF_ASH","AF_ATMPVC","AF_ATMSVC","AF_AX25","AF_BLUETOOTH","AF_BRIDGE","AF_CAIF","AF_CAN","AF_DECnet","AF_ECONET","AF_IB","AF_IEEE802154","AF_INET","AF_INET6","AF_IPX","AF_IRDA","AF_ISDN","AF_IUCV","AF_KEY","AF_LLC","AF_LOCAL","AF_MPLS","AF_NETBEUI","AF_NETLINK","AF_NETROM","AF_NFC","AF_PACKET","AF_PHONET","AF_PPPOX","AF_RDS","AF_ROSE","AF_ROUTE","AF_RXRPC","AF_SECURITY","AF_SNA","AF_TIPC","AF_UNIX","AF_UNSPEC","AF_VSOCK","AF_WANPIPE","AF_X25","AF_XDP","AIO_ALLDONE","AIO_CANCELED","AIO_NOTCANCELED","AI_ADDRCONFIG","AI_ALL","AI_CANONNAME","AI_NUMERICHOST","AI_NUMERICSERV","AI_PASSIVE","AI_V4MAPPED","ALG_OP_DECRYPT","ALG_OP_ENCRYPT","ALG_SET_AEAD_ASSOCLEN","ALG_SET_AEAD_AUTHSIZE","ALG_SET_DRBG_ENTROPY","ALG_SET_IV","ALG_SET_KEY","ALG_SET_KEY_BY_KEY_SERIAL","ALG_SET_OP","ALT_DIGITS","AM_STR","ARPD_FLUSH","ARPD_LOOKUP","ARPD_UPDATE","ARPHRD_ADAPT","ARPHRD_APPLETLK","ARPHRD_ARCNET","ARPHRD_ASH","ARPHRD_ATM","ARPHRD_AX25","ARPHRD_BIF","ARPHRD_CAN","ARPHRD_CHAOS","ARPHRD_CISCO","ARPHRD_CSLIP","ARPHRD_CSLIP6","ARPHRD_DDCMP","ARPHRD_DLCI","ARPHRD_ECONET","ARPHRD_EETHER","ARPHRD_ETHER","ARPHRD_EUI64","ARPHRD_FCAL","ARPHRD_FCFABRIC","ARPHRD_FCPL","ARPHRD_FCPP","ARPHRD_FDDI","ARPHRD_FRAD","ARPHRD_HDLC","ARPHRD_HIPPI","ARPHRD_HWX25","ARPHRD_IEEE1394","ARPHRD_IEEE802","ARPHRD_IEEE80211","ARPHRD_IEEE80211_PRISM","ARPHRD_IEEE80211_RADIOTAP","ARPHRD_IEEE802154","ARPHRD_IEEE802_TR","ARPHRD_INFINIBAND","ARPHRD_IPDDP","ARPHRD_IPGRE","ARPHRD_IRDA","ARPHRD_LAPB","ARPHRD_LOCALTLK","ARPHRD_LOOPBACK","ARPHRD_METRICOM","ARPHRD_NETROM","ARPHRD_NONE","ARPHRD_PIMREG","ARPHRD_PPP","ARPHRD_PRONET","ARPHRD_RAWHDLC","ARPHRD_ROSE","ARPHRD_RSRVD","ARPHRD_SIT","ARPHRD_SKIP","ARPHRD_SLIP","ARPHRD_SLIP6","ARPHRD_TUNNEL","ARPHRD_TUNNEL6","ARPHRD_VOID","ARPHRD_X25","ARPOP_InREPLY","ARPOP_InREQUEST","ARPOP_NAK","ARPOP_REPLY","ARPOP_REQUEST","ARPOP_RREPLY","ARPOP_RREQUEST","ATF_COM","ATF_DONTPUB","ATF_MAGIC","ATF_NETMASK","ATF_PERM","ATF_PUBL","ATF_USETRAILERS","AT_BASE","AT_BASE_PLATFORM","AT_CLKTCK","AT_EACCESS","AT_EGID","AT_EMPTY_PATH","AT_ENTRY","AT_EUID","AT_EXECFD","AT_EXECFN","AT_FDCWD","AT_FLAGS","AT_GID","AT_HWCAP","AT_HWCAP2","AT_IGNORE","AT_MINSIGSTKSZ","AT_NOTELF","AT_NO_AUTOMOUNT","AT_NULL","AT_PAGESZ","AT_PHDR","AT_PHENT","AT_PHNUM","AT_PLATFORM","AT_RANDOM","AT_RECURSIVE","AT_REMOVEDIR","AT_SECURE","AT_STATX_DONT_SYNC","AT_STATX_FORCE_SYNC","AT_STATX_SYNC_AS_STAT","AT_STATX_SYNC_TYPE","AT_SYMLINK_FOLLOW","AT_SYMLINK_NOFOLLOW","AT_SYSINFO_EHDR","AT_UID","AUTOFS_SUPER_MAGIC","B0","B1000000","B110","B115200","B1152000","B1200","B134","B150","B1500000","B1800","B19200","B200","B2000000","B230400","B2400","B2500000","B300","B3000000","B3500000","B38400","B4000000","B460800","B4800","B50","B500000","B57600","B576000","B600","B75","B921600","B9600","BINDERFS_SUPER_MAGIC","BLKIOMIN","BLKIOOPT","BLKPBSZGET","BLKSSZGET","BOOT_TIME","BOTHER","BPF_ABS","BPF_ADD","BPF_ALU","BPF_AND","BPF_B","BPF_DIV","BPF_FS_MAGIC","BPF_H","BPF_IMM","BPF_IND","BPF_JA","BPF_JEQ","BPF_JGE","BPF_JGT","BPF_JMP","BPF_JSET","BPF_JUMP","BPF_K","BPF_LD","BPF_LDX","BPF_LEN","BPF_LL_OFF","BPF_LSH","BPF_MAXINSNS","BPF_MEM","BPF_MEMWORDS","BPF_MISC","BPF_MISCOP","BPF_MOD","BPF_MSH","BPF_MUL","BPF_NEG","BPF_NET_OFF","BPF_OR","BPF_RET","BPF_RSH","BPF_RVAL","BPF_ST","BPF_STMT","BPF_STX","BPF_SUB","BPF_W","BPF_X","BPF_XOR","BRKINT","BS0","BS1","BSDLY","BTRFS_SUPER_MAGIC","BUFSIZ","BUS_ADRALN","BUS_ADRERR","BUS_MCEERR_AO","BUS_MCEERR_AR","BUS_OBJERR","CANFD_BRS","CANFD_ESI","CANFD_MAX_DLC","CANFD_MAX_DLEN","CANFD_MTU","CANXL_HDR_SIZE","CANXL_MAX_DLC","CANXL_MAX_DLC_MASK","CANXL_MAX_DLEN","CANXL_MAX_MTU","CANXL_MIN_DLC","CANXL_MIN_DLEN","CANXL_MIN_MTU","CANXL_MTU","CANXL_PRIO_BITS","CANXL_PRIO_MASK","CANXL_SEC","CANXL_XLF","CAN_BCM","CAN_EFF_FLAG","CAN_EFF_ID_BITS","CAN_EFF_MASK","CAN_ERR_FLAG","CAN_ERR_MASK","CAN_INV_FILTER","CAN_ISOTP","CAN_J1939","CAN_MAX_DLC","CAN_MAX_DLEN","CAN_MCNET","CAN_MTU","CAN_NPROTO","CAN_RAW","CAN_RAW_ERR_FILTER","CAN_RAW_FD_FRAMES","CAN_RAW_FILTER","CAN_RAW_FILTER_MAX","CAN_RAW_JOIN_FILTERS","CAN_RAW_LOOPBACK","CAN_RAW_RECV_OWN_MSGS","CAN_RAW_XL_FRAMES","CAN_RTR_FLAG","CAN_SFF_ID_BITS","CAN_SFF_MASK","CAN_TP16","CAN_TP20","CBAUD","CBAUDEX","CGROUP2_SUPER_MAGIC","CGROUP_SUPER_MAGIC","CIBAUD","CLD_CONTINUED","CLD_DUMPED","CLD_EXITED","CLD_KILLED","CLD_STOPPED","CLD_TRAPPED","CLOCAL","CLOCK_BOOTTIME","CLOCK_BOOTTIME_ALARM","CLOCK_MONOTONIC","CLOCK_MONOTONIC_COARSE","CLOCK_MONOTONIC_RAW","CLOCK_PROCESS_CPUTIME_ID","CLOCK_REALTIME","CLOCK_REALTIME_ALARM","CLOCK_REALTIME_COARSE","CLOCK_TAI","CLOCK_THREAD_CPUTIME_ID","CLONE_CHILD_CLEARTID","CLONE_CHILD_SETTID","CLONE_CLEAR_SIGHAND","CLONE_DETACHED","CLONE_FILES","CLONE_FS","CLONE_INTO_CGROUP","CLONE_IO","CLONE_NEWCGROUP","CLONE_NEWIPC","CLONE_NEWNET","CLONE_NEWNS","CLONE_NEWPID","CLONE_NEWTIME","CLONE_NEWUSER","CLONE_NEWUTS","CLONE_PARENT","CLONE_PARENT_SETTID","CLONE_PIDFD","CLONE_PTRACE","CLONE_SETTLS","CLONE_SIGHAND","CLONE_SYSVSEM","CLONE_THREAD","CLONE_UNTRACED","CLONE_VFORK","CLONE_VM","CLOSE_RANGE_CLOEXEC","CLOSE_RANGE_UNSHARE","CMSG_DATA","CMSG_FIRSTHDR","CMSG_LEN","CMSG_NXTHDR","CMSG_SPACE","CMSPAR","CODA_SUPER_MAGIC","CODESET","CPU_ALLOC_SIZE","CPU_CLR","CPU_COUNT","CPU_COUNT_S","CPU_EQUAL","CPU_ISSET","CPU_SET","CPU_SETSIZE","CPU_ZERO","CR0","CR1","CR2","CR3","CRAMFS_MAGIC","CRDLY","CREAD","CRNCYSTR","CRTSCTS","CS","CS5","CS6","CS7","CS8","CSIGNAL","CSIZE","CSTOPB","CTL_ABI","CTL_BUS","CTL_BUS_ISA","CTL_CPU","CTL_DEBUG","CTL_DEV","CTL_FS","CTL_KERN","CTL_NET","CTL_VM","CTRL_ATTR_FAMILY_ID","CTRL_ATTR_FAMILY_NAME","CTRL_ATTR_HDRSIZE","CTRL_ATTR_MAXATTR","CTRL_ATTR_MCAST_GROUPS","CTRL_ATTR_MCAST_GRP_ID","CTRL_ATTR_MCAST_GRP_NAME","CTRL_ATTR_MCAST_GRP_UNSPEC","CTRL_ATTR_OPS","CTRL_ATTR_OP_FLAGS","CTRL_ATTR_OP_ID","CTRL_ATTR_OP_UNSPEC","CTRL_ATTR_UNSPEC","CTRL_ATTR_VERSION","CTRL_CMD_DELFAMILY","CTRL_CMD_DELMCAST_GRP","CTRL_CMD_DELOPS","CTRL_CMD_GETFAMILY","CTRL_CMD_GETMCAST_GRP","CTRL_CMD_GETOPS","CTRL_CMD_NEWFAMILY","CTRL_CMD_NEWMCAST_GRP","CTRL_CMD_NEWOPS","CTRL_CMD_UNSPEC","DAY_1","DAY_2","DAY_3","DAY_4","DAY_5","DAY_6","DAY_7","DCCP_SERVICE_LIST_MAX_LEN","DCCP_SOCKOPT_AVAILABLE_CCIDS","DCCP_SOCKOPT_CCID","DCCP_SOCKOPT_CCID_RX_INFO","DCCP_SOCKOPT_CCID_TX_INFO","DCCP_SOCKOPT_CHANGE_L","DCCP_SOCKOPT_CHANGE_R","DCCP_SOCKOPT_GET_CUR_MPS","DCCP_SOCKOPT_PACKET_SIZE","DCCP_SOCKOPT_QPOLICY_ID","DCCP_SOCKOPT_QPOLICY_TXQLEN","DCCP_SOCKOPT_RECV_CSCOV","DCCP_SOCKOPT_RX_CCID","DCCP_SOCKOPT_SEND_CSCOV","DCCP_SOCKOPT_SERVER_TIMEWAIT","DCCP_SOCKOPT_SERVICE","DCCP_SOCKOPT_TX_CCID","DEAD_PROCESS","DEBUGFS_MAGIC","DEVPTS_SUPER_MAGIC","DIR","DS","DT_BLK","DT_CHR","DT_DIR","DT_FIFO","DT_LNK","DT_REG","DT_SOCK","DT_UNKNOWN","D_FMT","D_T_FMT","Dl_info","E2BIG","EACCES","EADDRINUSE","EADDRNOTAVAIL","EADV","EAFNOSUPPORT","EAGAIN","EAI_AGAIN","EAI_BADFLAGS","EAI_FAIL","EAI_FAMILY","EAI_MEMORY","EAI_NODATA","EAI_NONAME","EAI_OVERFLOW","EAI_SERVICE","EAI_SOCKTYPE","EAI_SYSTEM","EALREADY","EBADE","EBADF","EBADFD","EBADMSG","EBADR","EBADRQC","EBADSLT","EBFONT","EBUSY","ECANCELED","ECHILD","ECHO","ECHOCTL","ECHOE","ECHOK","ECHOKE","ECHONL","ECHOPRT","ECHRNG","ECOMM","ECONNABORTED","ECONNREFUSED","ECONNRESET","ECRYPTFS_SUPER_MAGIC","EDEADLK","EDEADLOCK","EDESTADDRREQ","EDOM","EDOTDOT","EDQUOT","EEXIST","EFAULT","EFBIG","EFD_CLOEXEC","EFD_NONBLOCK","EFD_SEMAPHORE","EFLAGS","EFS_SUPER_MAGIC","EHOSTDOWN","EHOSTUNREACH","EHWPOISON","EIDRM","EILSEQ","EINPROGRESS","EINTR","EINVAL","EIO","EISCONN","EISDIR","EISNAM","EI_ABIVERSION","EI_CLASS","EI_DATA","EI_MAG0","EI_MAG1","EI_MAG2","EI_MAG3","EI_NIDENT","EI_OSABI","EI_PAD","EI_VERSION","EKEYEXPIRED","EKEYREJECTED","EKEYREVOKED","EL2HLT","EL2NSYNC","EL3HLT","EL3RST","ELFCLASS32","ELFCLASS64","ELFCLASSNONE","ELFCLASSNUM","ELFDATA2LSB","ELFDATA2MSB","ELFDATANONE","ELFDATANUM","ELFMAG0","ELFMAG1","ELFMAG2","ELFMAG3","ELFOSABI_AIX","ELFOSABI_ARM","ELFOSABI_ARM_AEABI","ELFOSABI_FREEBSD","ELFOSABI_GNU","ELFOSABI_HPUX","ELFOSABI_IRIX","ELFOSABI_LINUX","ELFOSABI_MODESTO","ELFOSABI_NETBSD","ELFOSABI_NONE","ELFOSABI_OPENBSD","ELFOSABI_SOLARIS","ELFOSABI_STANDALONE","ELFOSABI_SYSV","ELFOSABI_TRU64","ELIBACC","ELIBBAD","ELIBEXEC","ELIBMAX","ELIBSCN","ELNRNG","ELOOP","EMEDIUMTYPE","EMFILE","EMLINK","EMPTY","EMSGSIZE","EMULTIHOP","EM_386","EM_68HC05","EM_68HC08","EM_68HC11","EM_68HC12","EM_68HC16","EM_68K","EM_860","EM_88K","EM_960","EM_AARCH64","EM_ALPHA","EM_ARC","EM_ARC_A5","EM_ARM","EM_AVR","EM_COLDFIRE","EM_CRIS","EM_D10V","EM_D30V","EM_FAKE_ALPHA","EM_FIREPATH","EM_FR20","EM_FR30","EM_FX66","EM_H8S","EM_H8_300","EM_H8_300H","EM_H8_500","EM_HUANY","EM_IA_64","EM_JAVELIN","EM_M32","EM_M32R","EM_ME16","EM_MIPS","EM_MIPS_RS3_LE","EM_MIPS_X","EM_MMA","EM_MMIX","EM_MN10200","EM_MN10300","EM_NCPU","EM_NDR1","EM_NONE","EM_OPENRISC","EM_PARISC","EM_PCP","EM_PDSP","EM_PJ","EM_PPC","EM_PPC64","EM_PRISM","EM_RCE","EM_RH32","EM_S370","EM_S390","EM_SH","EM_SPARC","EM_SPARC32PLUS","EM_SPARCV9","EM_ST100","EM_ST19","EM_ST7","EM_ST9PLUS","EM_STARCORE","EM_SVX","EM_TILEGX","EM_TILEPRO","EM_TINYJ","EM_TRICORE","EM_V800","EM_V850","EM_VAX","EM_VPP500","EM_X86_64","EM_XTENSA","EM_ZSP","ENAMETOOLONG","ENAVAIL","ENETDOWN","ENETRESET","ENETUNREACH","ENFILE","ENOANO","ENOATTR","ENOBUFS","ENOCSI","ENODATA","ENODEV","ENOENT","ENOEXEC","ENOKEY","ENOLCK","ENOLINK","ENOMEDIUM","ENOMEM","ENOMSG","ENONET","ENOPKG","ENOPROTOOPT","ENOSPC","ENOSR","ENOSTR","ENOSYS","ENOTBLK","ENOTCONN","ENOTDIR","ENOTEMPTY","ENOTNAM","ENOTRECOVERABLE","ENOTSOCK","ENOTSUP","ENOTTY","ENOTUNIQ","ENXIO","EOF","EOPNOTSUPP","EOVERFLOW","EOWNERDEAD","EPERM","EPFNOSUPPORT","EPIPE","EPOLLERR","EPOLLET","EPOLLEXCLUSIVE","EPOLLHUP","EPOLLIN","EPOLLMSG","EPOLLONESHOT","EPOLLOUT","EPOLLPRI","EPOLLRDBAND","EPOLLRDHUP","EPOLLRDNORM","EPOLLWAKEUP","EPOLLWRBAND","EPOLLWRNORM","EPOLL_CLOEXEC","EPOLL_CTL_ADD","EPOLL_CTL_DEL","EPOLL_CTL_MOD","EPROTO","EPROTONOSUPPORT","EPROTOTYPE","ERA","ERANGE","ERA_D_FMT","ERA_D_T_FMT","ERA_T_FMT","EREMCHG","EREMOTE","EREMOTEIO","ERESTART","ERFKILL","EROFS","ES","ESHUTDOWN","ESOCKTNOSUPPORT","ESPIPE","ESRCH","ESRMNT","ESTALE","ESTRPIPE","ETH_ALEN","ETH_DATA_LEN","ETH_FCS_LEN","ETH_FRAME_LEN","ETH_HLEN","ETH_P_1588","ETH_P_8021AD","ETH_P_8021AH","ETH_P_8021Q","ETH_P_80221","ETH_P_802_2","ETH_P_802_3","ETH_P_802_3_MIN","ETH_P_802_EX1","ETH_P_AARP","ETH_P_AF_IUCV","ETH_P_ALL","ETH_P_AOE","ETH_P_ARCNET","ETH_P_ARP","ETH_P_ATALK","ETH_P_ATMFATE","ETH_P_ATMMPOA","ETH_P_AX25","ETH_P_BATMAN","ETH_P_BPQ","ETH_P_CAIF","ETH_P_CANFD","ETH_P_CONTROL","ETH_P_CUST","ETH_P_DDCMP","ETH_P_DEC","ETH_P_DIAG","ETH_P_DNA_DL","ETH_P_DNA_RC","ETH_P_DNA_RT","ETH_P_DSA","ETH_P_ECONET","ETH_P_EDSA","ETH_P_FCOE","ETH_P_FIP","ETH_P_HDLC","ETH_P_IEEE802154","ETH_P_IEEEPUP","ETH_P_IEEEPUPAT","ETH_P_IP","ETH_P_IPV6","ETH_P_IPX","ETH_P_IRDA","ETH_P_LAT","ETH_P_LINK_CTL","ETH_P_LOCALTALK","ETH_P_LOOP","ETH_P_LOOPBACK","ETH_P_MACSEC","ETH_P_MOBITEX","ETH_P_MPLS_MC","ETH_P_MPLS_UC","ETH_P_MVRP","ETH_P_PAE","ETH_P_PAUSE","ETH_P_PHONET","ETH_P_PPPTALK","ETH_P_PPP_DISC","ETH_P_PPP_MP","ETH_P_PPP_SES","ETH_P_PRP","ETH_P_PUP","ETH_P_PUPAT","ETH_P_QINQ1","ETH_P_QINQ2","ETH_P_QINQ3","ETH_P_RARP","ETH_P_SCA","ETH_P_SLOW","ETH_P_SNAP","ETH_P_TDLS","ETH_P_TEB","ETH_P_TIPC","ETH_P_TRAILER","ETH_P_TR_802_2","ETH_P_WAN_PPP","ETH_P_WCCP","ETH_P_X25","ETH_ZLEN","ETIME","ETIMEDOUT","ETOOMANYREFS","ETXTBSY","ET_CORE","ET_DYN","ET_EXEC","ET_HIOS","ET_HIPROC","ET_LOOS","ET_LOPROC","ET_NONE","ET_NUM","ET_REL","EUCLEAN","EUNATCH","EUSERS","EV_CNT","EV_CURRENT","EV_MAX","EV_NONE","EV_NUM","EWOULDBLOCK","EXDEV","EXFULL","EXIT_FAILURE","EXIT_SUCCESS","EXT2_SUPER_MAGIC","EXT3_SUPER_MAGIC","EXT4_SUPER_MAGIC","EXTA","EXTB","EXTPROC","Elf32_Addr","Elf32_Chdr","Elf32_Ehdr","Elf32_Half","Elf32_Off","Elf32_Phdr","Elf32_Section","Elf32_Shdr","Elf32_Sym","Elf32_Word","Elf64_Addr","Elf64_Chdr","Elf64_Ehdr","Elf64_Half","Elf64_Off","Elf64_Phdr","Elf64_Section","Elf64_Shdr","Elf64_Sxword","Elf64_Sym","Elf64_Word","Elf64_Xword","F2FS_SUPER_MAGIC","FALLOC_FL_COLLAPSE_RANGE","FALLOC_FL_INSERT_RANGE","FALLOC_FL_KEEP_SIZE","FALLOC_FL_PUNCH_HOLE","FALLOC_FL_UNSHARE_RANGE","FALLOC_FL_ZERO_RANGE","FANOTIFY_METADATA_VERSION","FAN_ACCESS","FAN_ACCESS_PERM","FAN_ALLOW","FAN_ATTRIB","FAN_AUDIT","FAN_CLASS_CONTENT","FAN_CLASS_NOTIF","FAN_CLASS_PRE_CONTENT","FAN_CLOEXEC","FAN_CLOSE","FAN_CLOSE_NOWRITE","FAN_CLOSE_WRITE","FAN_CREATE","FAN_DELETE","FAN_DELETE_SELF","FAN_DENY","FAN_ENABLE_AUDIT","FAN_EPIDFD","FAN_EVENT_INFO_TYPE_DFID","FAN_EVENT_INFO_TYPE_DFID_NAME","FAN_EVENT_INFO_TYPE_ERROR","FAN_EVENT_INFO_TYPE_FID","FAN_EVENT_INFO_TYPE_NEW_DFID_NAME","FAN_EVENT_INFO_TYPE_OLD_DFID_NAME","FAN_EVENT_INFO_TYPE_PIDFD","FAN_EVENT_ON_CHILD","FAN_FS_ERROR","FAN_INFO","FAN_MARK_ADD","FAN_MARK_DONT_FOLLOW","FAN_MARK_EVICTABLE","FAN_MARK_FILESYSTEM","FAN_MARK_FLUSH","FAN_MARK_IGNORE","FAN_MARK_IGNORED_MASK","FAN_MARK_IGNORED_SURV_MODIFY","FAN_MARK_IGNORE_SURV","FAN_MARK_INODE","FAN_MARK_MOUNT","FAN_MARK_ONLYDIR","FAN_MARK_REMOVE","FAN_MODIFY","FAN_MOVE","FAN_MOVED_FROM","FAN_MOVED_TO","FAN_MOVE_SELF","FAN_NOFD","FAN_NONBLOCK","FAN_NOPIDFD","FAN_ONDIR","FAN_OPEN","FAN_OPEN_EXEC","FAN_OPEN_EXEC_PERM","FAN_OPEN_PERM","FAN_Q_OVERFLOW","FAN_RENAME","FAN_REPORT_DFID_NAME","FAN_REPORT_DFID_NAME_TARGET","FAN_REPORT_DIR_FID","FAN_REPORT_FID","FAN_REPORT_NAME","FAN_REPORT_PIDFD","FAN_REPORT_TARGET_FID","FAN_REPORT_TID","FAN_RESPONSE_INFO_AUDIT_RULE","FAN_RESPONSE_INFO_NONE","FAN_UNLIMITED_MARKS","FAN_UNLIMITED_QUEUE","FDPIC_FUNCPTRS","FD_CLOEXEC","FD_CLR","FD_ISSET","FD_SET","FD_SETSIZE","FD_ZERO","FF0","FF1","FFDLY","FF_CNT","FF_MAX","FICLONE","FICLONERANGE","FILE","FILENAME_MAX","FIOASYNC","FIOCLEX","FIONBIO","FIONCLEX","FIONREAD","FIOQSIZE","FLUSHO","FOPEN_MAX","FS","FS_BASE","FS_IOC32_GETFLAGS","FS_IOC32_GETVERSION","FS_IOC32_SETFLAGS","FS_IOC32_SETVERSION","FS_IOC_GETFLAGS","FS_IOC_GETVERSION","FS_IOC_SETFLAGS","FS_IOC_SETVERSION","FUSE_SUPER_MAGIC","FUTEXFS_SUPER_MAGIC","FUTEX_BITSET_MATCH_ANY","FUTEX_CLOCK_REALTIME","FUTEX_CMD_MASK","FUTEX_CMP_REQUEUE","FUTEX_CMP_REQUEUE_PI","FUTEX_FD","FUTEX_LOCK_PI","FUTEX_LOCK_PI2","FUTEX_OP","FUTEX_OP_ADD","FUTEX_OP_ANDN","FUTEX_OP_CMP_EQ","FUTEX_OP_CMP_GE","FUTEX_OP_CMP_GT","FUTEX_OP_CMP_LE","FUTEX_OP_CMP_LT","FUTEX_OP_CMP_NE","FUTEX_OP_OPARG_SHIFT","FUTEX_OP_OR","FUTEX_OP_SET","FUTEX_OP_XOR","FUTEX_PRIVATE_FLAG","FUTEX_REQUEUE","FUTEX_TRYLOCK_PI","FUTEX_UNLOCK_PI","FUTEX_WAIT","FUTEX_WAIT_BITSET","FUTEX_WAIT_REQUEUE_PI","FUTEX_WAKE","FUTEX_WAKE_BITSET","FUTEX_WAKE_OP","F_ADD_SEALS","F_CANCELLK","F_DUPFD","F_DUPFD_CLOEXEC","F_GETFD","F_GETFL","F_GETLEASE","F_GETLK","F_GETOWN","F_GETPIPE_SZ","F_GET_SEALS","F_LOCK","F_NOTIFY","F_OFD_GETLK","F_OFD_SETLK","F_OFD_SETLKW","F_OK","F_RDLCK","F_SEAL_FUTURE_WRITE","F_SEAL_GROW","F_SEAL_SEAL","F_SEAL_SHRINK","F_SEAL_WRITE","F_SETFD","F_SETFL","F_SETLEASE","F_SETLK","F_SETLKW","F_SETOWN","F_SETPIPE_SZ","F_TEST","F_TLOCK","F_ULOCK","F_UNLCK","F_WRLCK","GENL_ADMIN_PERM","GENL_CMD_CAP_DO","GENL_CMD_CAP_DUMP","GENL_CMD_CAP_HASPOL","GENL_ID_CTRL","GENL_ID_PMCRAID","GENL_ID_VFS_DQUOT","GENL_MAX_ID","GENL_MIN_ID","GENL_NAMSIZ","GENL_UNS_ADMIN_PERM","GLOB_ABORTED","GLOB_ALTDIRFUNC","GLOB_APPEND","GLOB_BRACE","GLOB_DOOFFS","GLOB_ERR","GLOB_MARK","GLOB_NOCHECK","GLOB_NOESCAPE","GLOB_NOMAGIC","GLOB_NOMATCH","GLOB_NOSORT","GLOB_NOSPACE","GLOB_ONLYDIR","GLOB_PERIOD","GLOB_TILDE","GLOB_TILDE_CHECK","GRND_INSECURE","GRND_NONBLOCK","GRND_RANDOM","GRPQUOTA","GS","GS_BASE","HOSTFS_SUPER_MAGIC","HPFS_SUPER_MAGIC","HUGETLBFS_MAGIC","HUGETLB_FLAG_ENCODE_16GB","HUGETLB_FLAG_ENCODE_16MB","HUGETLB_FLAG_ENCODE_1GB","HUGETLB_FLAG_ENCODE_1MB","HUGETLB_FLAG_ENCODE_256MB","HUGETLB_FLAG_ENCODE_2GB","HUGETLB_FLAG_ENCODE_2MB","HUGETLB_FLAG_ENCODE_32MB","HUGETLB_FLAG_ENCODE_512KB","HUGETLB_FLAG_ENCODE_512MB","HUGETLB_FLAG_ENCODE_64KB","HUGETLB_FLAG_ENCODE_8MB","HUGETLB_FLAG_ENCODE_MASK","HUGETLB_FLAG_ENCODE_SHIFT","HUPCL","HWTSTAMP_FILTER_ALL","HWTSTAMP_FILTER_NONE","HWTSTAMP_FILTER_NTP_ALL","HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ","HWTSTAMP_FILTER_PTP_V1_L4_EVENT","HWTSTAMP_FILTER_PTP_V1_L4_SYNC","HWTSTAMP_FILTER_PTP_V2_DELAY_REQ","HWTSTAMP_FILTER_PTP_V2_EVENT","HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ","HWTSTAMP_FILTER_PTP_V2_L2_EVENT","HWTSTAMP_FILTER_PTP_V2_L2_SYNC","HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ","HWTSTAMP_FILTER_PTP_V2_L4_EVENT","HWTSTAMP_FILTER_PTP_V2_L4_SYNC","HWTSTAMP_FILTER_PTP_V2_SYNC","HWTSTAMP_FILTER_SOME","HWTSTAMP_TX_OFF","HWTSTAMP_TX_ON","HWTSTAMP_TX_ONESTEP_P2P","HWTSTAMP_TX_ONESTEP_SYNC","IBSHIFT","ICANON","ICRNL","IEXTEN","IFA_ADDRESS","IFA_ANYCAST","IFA_BROADCAST","IFA_CACHEINFO","IFA_FLAGS","IFA_F_DADFAILED","IFA_F_DEPRECATED","IFA_F_HOMEADDRESS","IFA_F_MANAGETEMPADDR","IFA_F_MCAUTOJOIN","IFA_F_NODAD","IFA_F_NOPREFIXROUTE","IFA_F_OPTIMISTIC","IFA_F_PERMANENT","IFA_F_SECONDARY","IFA_F_STABLE_PRIVACY","IFA_F_TEMPORARY","IFA_F_TENTATIVE","IFA_LABEL","IFA_LOCAL","IFA_MULTICAST","IFA_UNSPEC","IFF_ALLMULTI","IFF_ATTACH_QUEUE","IFF_AUTOMEDIA","IFF_BROADCAST","IFF_DEBUG","IFF_DETACH_QUEUE","IFF_DORMANT","IFF_DYNAMIC","IFF_ECHO","IFF_LOOPBACK","IFF_LOWER_UP","IFF_MASTER","IFF_MULTICAST","IFF_MULTI_QUEUE","IFF_NAPI","IFF_NAPI_FRAGS","IFF_NOARP","IFF_NOFILTER","IFF_NOTRAILERS","IFF_NO_CARRIER","IFF_NO_PI","IFF_ONE_QUEUE","IFF_PERSIST","IFF_POINTOPOINT","IFF_PORTSEL","IFF_PROMISC","IFF_RUNNING","IFF_SLAVE","IFF_TAP","IFF_TUN","IFF_TUN_EXCL","IFF_UP","IFF_VNET_HDR","IFLA_ADDRESS","IFLA_AF_SPEC","IFLA_ALLMULTI","IFLA_ALT_IFNAME","IFLA_BROADCAST","IFLA_CARRIER","IFLA_CARRIER_CHANGES","IFLA_CARRIER_DOWN_COUNT","IFLA_CARRIER_UP_COUNT","IFLA_COST","IFLA_EVENT","IFLA_EXT_MASK","IFLA_GROUP","IFLA_GRO_MAX_SIZE","IFLA_GSO_MAX_SEGS","IFLA_GSO_MAX_SIZE","IFLA_IFALIAS","IFLA_IFNAME","IFLA_IF_NETNSID","IFLA_INFO_DATA","IFLA_INFO_KIND","IFLA_INFO_SLAVE_DATA","IFLA_INFO_SLAVE_KIND","IFLA_INFO_UNSPEC","IFLA_INFO_XSTATS","IFLA_LINK","IFLA_LINKINFO","IFLA_LINKMODE","IFLA_LINK_NETNSID","IFLA_MAP","IFLA_MASTER","IFLA_MAX_MTU","IFLA_MIN_MTU","IFLA_MTU","IFLA_NET_NS_FD","IFLA_NET_NS_PID","IFLA_NEW_IFINDEX","IFLA_NEW_NETNSID","IFLA_NUM_RX_QUEUES","IFLA_NUM_TX_QUEUES","IFLA_NUM_VF","IFLA_OPERSTATE","IFLA_PAD","IFLA_PARENT_DEV_BUS_NAME","IFLA_PARENT_DEV_NAME","IFLA_PERM_ADDRESS","IFLA_PHYS_PORT_ID","IFLA_PHYS_PORT_NAME","IFLA_PHYS_SWITCH_ID","IFLA_PORT_SELF","IFLA_PRIORITY","IFLA_PROMISCUITY","IFLA_PROP_LIST","IFLA_PROTINFO","IFLA_PROTO_DOWN","IFLA_PROTO_DOWN_REASON","IFLA_QDISC","IFLA_STATS","IFLA_STATS64","IFLA_TARGET_NETNSID","IFLA_TSO_MAX_SEGS","IFLA_TSO_MAX_SIZE","IFLA_TXQLEN","IFLA_UNSPEC","IFLA_VFINFO_LIST","IFLA_VF_PORTS","IFLA_WEIGHT","IFLA_WIRELESS","IFLA_XDP","IFNAMSIZ","IF_LINK_MODE_DEFAULT","IF_LINK_MODE_DORMANT","IF_LINK_MODE_TESTING","IF_NAMESIZE","IF_OPER_DORMANT","IF_OPER_DOWN","IF_OPER_LOWERLAYERDOWN","IF_OPER_NOTPRESENT","IF_OPER_TESTING","IF_OPER_UNKNOWN","IF_OPER_UP","IGNBRK","IGNCR","IGNPAR","IMAXBEL","INADDR_ANY","INADDR_BROADCAST","INADDR_LOOPBACK","INADDR_NONE","INIT_PROCESS","INLCR","INOTIFY_MAX_QUEUED_EVENTS","INOTIFY_MAX_USER_INSTANCES","INOTIFY_MAX_USER_WATCHES","INPCK","INPUT_PROP_CNT","INPUT_PROP_MAX","INT_MAX","INT_MIN","IN_ACCESS","IN_ALL_EVENTS","IN_ATTRIB","IN_CLOEXEC","IN_CLOSE","IN_CLOSE_NOWRITE","IN_CLOSE_WRITE","IN_CREATE","IN_DELETE","IN_DELETE_SELF","IN_DONT_FOLLOW","IN_EXCL_UNLINK","IN_IGNORED","IN_ISDIR","IN_MASK_ADD","IN_MASK_CREATE","IN_MODIFY","IN_MOVE","IN_MOVED_FROM","IN_MOVED_TO","IN_MOVE_SELF","IN_NONBLOCK","IN_ONESHOT","IN_ONLYDIR","IN_OPEN","IN_Q_OVERFLOW","IN_UNMOUNT","IP6T_SO_ORIGINAL_DST","IPC_CREAT","IPC_EXCL","IPC_INFO","IPC_NOWAIT","IPC_PRIVATE","IPC_RMID","IPC_SET","IPC_STAT","IPDEFTTL","IPOPT_CLASS","IPOPT_CLASS_MASK","IPOPT_CONTROL","IPOPT_COPIED","IPOPT_COPY","IPOPT_END","IPOPT_EOL","IPOPT_LSRR","IPOPT_MEASUREMENT","IPOPT_MINOFF","IPOPT_NOOP","IPOPT_NOP","IPOPT_NUMBER","IPOPT_NUMBER_MASK","IPOPT_OFFSET","IPOPT_OLEN","IPOPT_OPTVAL","IPOPT_RA","IPOPT_RESERVED1","IPOPT_RESERVED2","IPOPT_RR","IPOPT_SEC","IPOPT_SID","IPOPT_SSRR","IPOPT_TIMESTAMP","IPOPT_TS","IPOPT_TS_PRESPEC","IPOPT_TS_TSANDADDR","IPOPT_TS_TSONLY","IPPROTO_AH","IPPROTO_BEETPH","IPPROTO_COMP","IPPROTO_DCCP","IPPROTO_DSTOPTS","IPPROTO_EGP","IPPROTO_ENCAP","IPPROTO_ESP","IPPROTO_ETHERNET","IPPROTO_FRAGMENT","IPPROTO_GRE","IPPROTO_HOPOPTS","IPPROTO_ICMP","IPPROTO_ICMPV6","IPPROTO_IDP","IPPROTO_IGMP","IPPROTO_IP","IPPROTO_IPIP","IPPROTO_IPV6","IPPROTO_MAX","IPPROTO_MH","IPPROTO_MPLS","IPPROTO_MPTCP","IPPROTO_MTP","IPPROTO_NONE","IPPROTO_PIM","IPPROTO_PUP","IPPROTO_RAW","IPPROTO_ROUTING","IPPROTO_RSVP","IPPROTO_SCTP","IPPROTO_TCP","IPPROTO_TP","IPPROTO_UDP","IPPROTO_UDPLITE","IPTOS_ECN","IPTOS_ECN_CE","IPTOS_ECN_ECT0","IPTOS_ECN_ECT1","IPTOS_ECN_MASK","IPTOS_ECN_NOT_ECT","IPTOS_LOWDELAY","IPTOS_MINCOST","IPTOS_PREC","IPTOS_PREC_CRITIC_ECP","IPTOS_PREC_FLASH","IPTOS_PREC_FLASHOVERRIDE","IPTOS_PREC_IMMEDIATE","IPTOS_PREC_INTERNETCONTROL","IPTOS_PREC_MASK","IPTOS_PREC_NETCONTROL","IPTOS_PREC_PRIORITY","IPTOS_PREC_ROUTINE","IPTOS_RELIABILITY","IPTOS_THROUGHPUT","IPTOS_TOS","IPTOS_TOS_MASK","IPV6_2292DSTOPTS","IPV6_2292HOPLIMIT","IPV6_2292HOPOPTS","IPV6_2292PKTINFO","IPV6_2292PKTOPTIONS","IPV6_2292RTHDR","IPV6_ADDRFORM","IPV6_ADDR_PREFERENCES","IPV6_ADD_MEMBERSHIP","IPV6_AUTHHDR","IPV6_AUTOFLOWLABEL","IPV6_CHECKSUM","IPV6_DONTFRAG","IPV6_DROP_MEMBERSHIP","IPV6_DSTOPTS","IPV6_FLOWINFO","IPV6_FLOWINFO_FLOWLABEL","IPV6_FLOWINFO_PRIORITY","IPV6_FLOWINFO_SEND","IPV6_FLOWLABEL_MGR","IPV6_FREEBIND","IPV6_HDRINCL","IPV6_HOPLIMIT","IPV6_HOPOPTS","IPV6_IPSEC_POLICY","IPV6_JOIN_ANYCAST","IPV6_LEAVE_ANYCAST","IPV6_MINHOPCOUNT","IPV6_MTU","IPV6_MTU_DISCOVER","IPV6_MULTICAST_ALL","IPV6_MULTICAST_HOPS","IPV6_MULTICAST_IF","IPV6_MULTICAST_LOOP","IPV6_NEXTHOP","IPV6_ORIGDSTADDR","IPV6_PATHMTU","IPV6_PKTINFO","IPV6_PMTUDISC_DO","IPV6_PMTUDISC_DONT","IPV6_PMTUDISC_INTERFACE","IPV6_PMTUDISC_OMIT","IPV6_PMTUDISC_PROBE","IPV6_PMTUDISC_WANT","IPV6_PREFER_SRC_CGA","IPV6_PREFER_SRC_COA","IPV6_PREFER_SRC_HOME","IPV6_PREFER_SRC_NONCGA","IPV6_PREFER_SRC_PUBLIC","IPV6_PREFER_SRC_PUBTMP_DEFAULT","IPV6_PREFER_SRC_TMP","IPV6_RECVDSTOPTS","IPV6_RECVERR","IPV6_RECVFRAGSIZE","IPV6_RECVHOPLIMIT","IPV6_RECVHOPOPTS","IPV6_RECVORIGDSTADDR","IPV6_RECVPATHMTU","IPV6_RECVPKTINFO","IPV6_RECVRTHDR","IPV6_RECVTCLASS","IPV6_ROUTER_ALERT","IPV6_ROUTER_ALERT_ISOLATE","IPV6_RTHDR","IPV6_RTHDRDSTOPTS","IPV6_RTHDR_LOOSE","IPV6_RTHDR_STRICT","IPV6_TCLASS","IPV6_TRANSPARENT","IPV6_UNICAST_HOPS","IPV6_UNICAST_IF","IPV6_V6ONLY","IPV6_XFRM_POLICY","IPVERSION","IP_ADD_MEMBERSHIP","IP_ADD_SOURCE_MEMBERSHIP","IP_BIND_ADDRESS_NO_PORT","IP_BLOCK_SOURCE","IP_CHECKSUM","IP_DEFAULT_MULTICAST_LOOP","IP_DEFAULT_MULTICAST_TTL","IP_DROP_MEMBERSHIP","IP_DROP_SOURCE_MEMBERSHIP","IP_FREEBIND","IP_HDRINCL","IP_IPSEC_POLICY","IP_MINTTL","IP_MSFILTER","IP_MTU","IP_MTU_DISCOVER","IP_MULTICAST_ALL","IP_MULTICAST_IF","IP_MULTICAST_LOOP","IP_MULTICAST_TTL","IP_NODEFRAG","IP_OPTIONS","IP_ORIGDSTADDR","IP_PASSSEC","IP_PKTINFO","IP_PKTOPTIONS","IP_PMTUDISC_DO","IP_PMTUDISC_DONT","IP_PMTUDISC_INTERFACE","IP_PMTUDISC_OMIT","IP_PMTUDISC_PROBE","IP_PMTUDISC_WANT","IP_RECVERR","IP_RECVFRAGSIZE","IP_RECVOPTS","IP_RECVORIGDSTADDR","IP_RECVTOS","IP_RECVTTL","IP_RETOPTS","IP_ROUTER_ALERT","IP_TOS","IP_TRANSPARENT","IP_TTL","IP_UNBLOCK_SOURCE","IP_UNICAST_IF","IP_XFRM_POLICY","ISIG","ISOFS_SUPER_MAGIC","ISTRIP","ITIMER_PROF","ITIMER_REAL","ITIMER_VIRTUAL","IUTF8","IWEVASSOCREQIE","IWEVASSOCRESPIE","IWEVCUSTOM","IWEVEXPIRED","IWEVFIRST","IWEVGENIE","IWEVMICHAELMICFAILURE","IWEVPMKIDCAND","IWEVQUAL","IWEVREGISTERED","IWEVTXDROP","IW_AUTH_80211_AUTH_ALG","IW_AUTH_ALG_LEAP","IW_AUTH_ALG_OPEN_SYSTEM","IW_AUTH_ALG_SHARED_KEY","IW_AUTH_CIPHER_AES_CMAC","IW_AUTH_CIPHER_CCMP","IW_AUTH_CIPHER_GROUP","IW_AUTH_CIPHER_GROUP_MGMT","IW_AUTH_CIPHER_NONE","IW_AUTH_CIPHER_PAIRWISE","IW_AUTH_CIPHER_TKIP","IW_AUTH_CIPHER_WEP104","IW_AUTH_CIPHER_WEP40","IW_AUTH_DROP_UNENCRYPTED","IW_AUTH_FLAGS","IW_AUTH_INDEX","IW_AUTH_KEY_MGMT","IW_AUTH_KEY_MGMT_802_1X","IW_AUTH_KEY_MGMT_PSK","IW_AUTH_MFP","IW_AUTH_MFP_DISABLED","IW_AUTH_MFP_OPTIONAL","IW_AUTH_MFP_REQUIRED","IW_AUTH_PRIVACY_INVOKED","IW_AUTH_ROAMING_CONTROL","IW_AUTH_ROAMING_DISABLE","IW_AUTH_ROAMING_ENABLE","IW_AUTH_RX_UNENCRYPTED_EAPOL","IW_AUTH_TKIP_COUNTERMEASURES","IW_AUTH_WPA_ENABLED","IW_AUTH_WPA_VERSION","IW_AUTH_WPA_VERSION_DISABLED","IW_AUTH_WPA_VERSION_WPA","IW_AUTH_WPA_VERSION_WPA2","IW_CUSTOM_MAX","IW_ENCODE_ALG_AES_CMAC","IW_ENCODE_ALG_CCMP","IW_ENCODE_ALG_NONE","IW_ENCODE_ALG_PMK","IW_ENCODE_ALG_TKIP","IW_ENCODE_ALG_WEP","IW_ENCODE_DISABLED","IW_ENCODE_ENABLED","IW_ENCODE_EXT_GROUP_KEY","IW_ENCODE_EXT_RX_SEQ_VALID","IW_ENCODE_EXT_SET_TX_KEY","IW_ENCODE_EXT_TX_SEQ_VALID","IW_ENCODE_FLAGS","IW_ENCODE_INDEX","IW_ENCODE_MODE","IW_ENCODE_NOKEY","IW_ENCODE_OPEN","IW_ENCODE_RESTRICTED","IW_ENCODE_SEQ_MAX_SIZE","IW_ENCODE_TEMP","IW_ENCODING_TOKEN_MAX","IW_ENC_CAPA_4WAY_HANDSHAKE","IW_ENC_CAPA_CIPHER_CCMP","IW_ENC_CAPA_CIPHER_TKIP","IW_ENC_CAPA_WPA","IW_ENC_CAPA_WPA2","IW_ESSID_MAX_SIZE","IW_EV_CHAR_PK_LEN","IW_EV_LCP_PK_LEN","IW_EV_POINT_PK_LEN","IW_FREQ_AUTO","IW_FREQ_FIXED","IW_GENERIC_IE_MAX","IW_MAX_AP","IW_MAX_BITRATES","IW_MAX_ENCODING_SIZES","IW_MAX_FREQUENCIES","IW_MAX_SPY","IW_MAX_TXPOWER","IW_MICFAILURE_COUNT","IW_MICFAILURE_GROUP","IW_MICFAILURE_KEY_ID","IW_MICFAILURE_PAIRWISE","IW_MICFAILURE_STAKEY","IW_MLME_ASSOC","IW_MLME_AUTH","IW_MLME_DEAUTH","IW_MLME_DISASSOC","IW_MODE_ADHOC","IW_MODE_AUTO","IW_MODE_INFRA","IW_MODE_MASTER","IW_MODE_MESH","IW_MODE_MONITOR","IW_MODE_REPEAT","IW_MODE_SECOND","IW_PMKID_CAND_PREAUTH","IW_PMKID_LEN","IW_PMKSA_ADD","IW_PMKSA_FLUSH","IW_PMKSA_REMOVE","IW_POWER_ALL_R","IW_POWER_FORCE_S","IW_POWER_MAX","IW_POWER_MIN","IW_POWER_MODE","IW_POWER_MODIFIER","IW_POWER_MULTICAST_R","IW_POWER_ON","IW_POWER_PERIOD","IW_POWER_RELATIVE","IW_POWER_REPEATER","IW_POWER_TIMEOUT","IW_POWER_TYPE","IW_POWER_UNICAST_R","IW_PRIV_SIZE_FIXED","IW_PRIV_SIZE_MASK","IW_PRIV_TYPE_ADDR","IW_PRIV_TYPE_BYTE","IW_PRIV_TYPE_CHAR","IW_PRIV_TYPE_FLOAT","IW_PRIV_TYPE_INT","IW_PRIV_TYPE_MASK","IW_PRIV_TYPE_NONE","IW_QUAL_ALL_INVALID","IW_QUAL_ALL_UPDATED","IW_QUAL_DBM","IW_QUAL_LEVEL_INVALID","IW_QUAL_LEVEL_UPDATED","IW_QUAL_NOISE_INVALID","IW_QUAL_NOISE_UPDATED","IW_QUAL_QUAL_INVALID","IW_QUAL_QUAL_UPDATED","IW_QUAL_RCPI","IW_RETRY_LIFETIME","IW_RETRY_LIMIT","IW_RETRY_LONG","IW_RETRY_MAX","IW_RETRY_MIN","IW_RETRY_MODIFIER","IW_RETRY_ON","IW_RETRY_RELATIVE","IW_RETRY_SHORT","IW_RETRY_TYPE","IW_SCAN_ALL_ESSID","IW_SCAN_ALL_FREQ","IW_SCAN_ALL_MODE","IW_SCAN_ALL_RATE","IW_SCAN_CAPA_BSSID","IW_SCAN_CAPA_CHANNEL","IW_SCAN_CAPA_ESSID","IW_SCAN_CAPA_MODE","IW_SCAN_CAPA_NONE","IW_SCAN_CAPA_RATE","IW_SCAN_CAPA_TIME","IW_SCAN_CAPA_TYPE","IW_SCAN_DEFAULT","IW_SCAN_MAX_DATA","IW_SCAN_THIS_ESSID","IW_SCAN_THIS_FREQ","IW_SCAN_THIS_MODE","IW_SCAN_THIS_RATE","IW_SCAN_TYPE_ACTIVE","IW_SCAN_TYPE_PASSIVE","IW_TXPOW_DBM","IW_TXPOW_MWATT","IW_TXPOW_RANGE","IW_TXPOW_RELATIVE","IW_TXPOW_TYPE","IXANY","IXOFF","IXON","J1939_EE_INFO_NONE","J1939_EE_INFO_RX_ABORT","J1939_EE_INFO_RX_DPO","J1939_EE_INFO_RX_RTS","J1939_EE_INFO_TX_ABORT","J1939_FILTER_MAX","J1939_IDLE_ADDR","J1939_MAX_UNICAST_ADDR","J1939_NLA_BYTES_ACKED","J1939_NLA_DEST_ADDR","J1939_NLA_DEST_NAME","J1939_NLA_PAD","J1939_NLA_PGN","J1939_NLA_SRC_ADDR","J1939_NLA_SRC_NAME","J1939_NLA_TOTAL_SIZE","J1939_NO_ADDR","J1939_NO_NAME","J1939_NO_PGN","J1939_PGN_ADDRESS_CLAIMED","J1939_PGN_ADDRESS_COMMANDED","J1939_PGN_MAX","J1939_PGN_PDU1_MAX","J1939_PGN_REQUEST","JFFS2_SUPER_MAGIC","KERNEL_VERSION","KERN_ACCT","KERN_ACPI_VIDEO_FLAGS","KERN_BOOTLOADER_TYPE","KERN_CADPID","KERN_COMPAT_LOG","KERN_CORE_PATTERN","KERN_CORE_USES_PID","KERN_CTLALTDEL","KERN_DOMAINNAME","KERN_HOTPLUG","KERN_HPPA_PWRSW","KERN_HPPA_UNALIGNED","KERN_HZ_TIMER","KERN_IA64_UNALIGNED","KERN_IEEE_EMULATION_WARNINGS","KERN_MAX_LOCK_DEPTH","KERN_MAX_THREADS","KERN_MODPROBE","KERN_MSGMAX","KERN_MSGMNB","KERN_MSGMNI","KERN_MSGPOOL","KERN_NAMETRANS","KERN_NGROUPS_MAX","KERN_NMI_WATCHDOG","KERN_NODENAME","KERN_OSRELEASE","KERN_OSREV","KERN_OSTYPE","KERN_OVERFLOWGID","KERN_OVERFLOWUID","KERN_PANIC","KERN_PANIC_ON_NMI","KERN_PANIC_ON_OOPS","KERN_PIDMAX","KERN_PPC_HTABRECLAIM","KERN_PPC_L2CR","KERN_PPC_POWERSAVE_NAP","KERN_PPC_ZEROPAGED","KERN_PRINTK","KERN_PRINTK_RATELIMIT","KERN_PRINTK_RATELIMIT_BURST","KERN_PROF","KERN_PTY","KERN_RANDOM","KERN_RANDOMIZE","KERN_REALROOTDEV","KERN_RTSIGMAX","KERN_RTSIGNR","KERN_S390_USER_DEBUG_LOGGING","KERN_SECUREMASK","KERN_SEM","KERN_SETUID_DUMPABLE","KERN_SG_BIG_BUFF","KERN_SHMALL","KERN_SHMMAX","KERN_SHMMNI","KERN_SHMPATH","KERN_SPARC_REBOOT","KERN_SPARC_SCONS_PWROFF","KERN_SPARC_STOP_A","KERN_SPIN_RETRY","KERN_SYSRQ","KERN_TAINTED","KERN_UNKNOWN_NMI_PANIC","KERN_VERSION","KEXEC_ARCH_MASK","KEXEC_FILE_NO_INITRAMFS","KEXEC_FILE_ON_CRASH","KEXEC_FILE_UNLOAD","KEXEC_ON_CRASH","KEXEC_PRESERVE_CONTEXT","KEYCTL_ASSUME_AUTHORITY","KEYCTL_CAPABILITIES","KEYCTL_CAPS0_BIG_KEY","KEYCTL_CAPS0_CAPABILITIES","KEYCTL_CAPS0_DIFFIE_HELLMAN","KEYCTL_CAPS0_INVALIDATE","KEYCTL_CAPS0_MOVE","KEYCTL_CAPS0_PERSISTENT_KEYRINGS","KEYCTL_CAPS0_PUBLIC_KEY","KEYCTL_CAPS0_RESTRICT_KEYRING","KEYCTL_CAPS1_NS_KEYRING_NAME","KEYCTL_CAPS1_NS_KEY_TAG","KEYCTL_CHOWN","KEYCTL_CLEAR","KEYCTL_DESCRIBE","KEYCTL_DH_COMPUTE","KEYCTL_GET_KEYRING_ID","KEYCTL_GET_PERSISTENT","KEYCTL_GET_SECURITY","KEYCTL_INSTANTIATE","KEYCTL_INSTANTIATE_IOV","KEYCTL_INVALIDATE","KEYCTL_JOIN_SESSION_KEYRING","KEYCTL_LINK","KEYCTL_MOVE","KEYCTL_NEGATE","KEYCTL_PKEY_DECRYPT","KEYCTL_PKEY_ENCRYPT","KEYCTL_PKEY_QUERY","KEYCTL_PKEY_SIGN","KEYCTL_PKEY_VERIFY","KEYCTL_READ","KEYCTL_REJECT","KEYCTL_RESTRICT_KEYRING","KEYCTL_REVOKE","KEYCTL_SEARCH","KEYCTL_SESSION_TO_PARENT","KEYCTL_SETPERM","KEYCTL_SET_REQKEY_KEYRING","KEYCTL_SET_TIMEOUT","KEYCTL_SUPPORTS_DECRYPT","KEYCTL_SUPPORTS_ENCRYPT","KEYCTL_SUPPORTS_SIGN","KEYCTL_SUPPORTS_VERIFY","KEYCTL_UNLINK","KEYCTL_UPDATE","KEY_CNT","KEY_MAX","KEY_REQKEY_DEFL_DEFAULT","KEY_REQKEY_DEFL_GROUP_KEYRING","KEY_REQKEY_DEFL_NO_CHANGE","KEY_REQKEY_DEFL_PROCESS_KEYRING","KEY_REQKEY_DEFL_REQUESTOR_KEYRING","KEY_REQKEY_DEFL_SESSION_KEYRING","KEY_REQKEY_DEFL_THREAD_KEYRING","KEY_REQKEY_DEFL_USER_KEYRING","KEY_REQKEY_DEFL_USER_SESSION_KEYRING","KEY_SPEC_GROUP_KEYRING","KEY_SPEC_PROCESS_KEYRING","KEY_SPEC_REQKEY_AUTH_KEY","KEY_SPEC_REQUESTOR_KEYRING","KEY_SPEC_SESSION_KEYRING","KEY_SPEC_THREAD_KEYRING","KEY_SPEC_USER_KEYRING","KEY_SPEC_USER_SESSION_KEYRING","LC_ADDRESS","LC_ADDRESS_MASK","LC_ALL","LC_ALL_MASK","LC_COLLATE","LC_COLLATE_MASK","LC_CTYPE","LC_CTYPE_MASK","LC_IDENTIFICATION","LC_IDENTIFICATION_MASK","LC_MEASUREMENT","LC_MEASUREMENT_MASK","LC_MESSAGES","LC_MESSAGES_MASK","LC_MONETARY","LC_MONETARY_MASK","LC_NAME","LC_NAME_MASK","LC_NUMERIC","LC_NUMERIC_MASK","LC_PAPER","LC_PAPER_MASK","LC_TELEPHONE","LC_TELEPHONE_MASK","LC_TIME","LC_TIME_MASK","LED_CNT","LED_MAX","LINUX_REBOOT_CMD_CAD_OFF","LINUX_REBOOT_CMD_CAD_ON","LINUX_REBOOT_CMD_HALT","LINUX_REBOOT_CMD_KEXEC","LINUX_REBOOT_CMD_POWER_OFF","LINUX_REBOOT_CMD_RESTART","LINUX_REBOOT_CMD_RESTART2","LINUX_REBOOT_CMD_SW_SUSPEND","LINUX_REBOOT_MAGIC1","LINUX_REBOOT_MAGIC2","LINUX_REBOOT_MAGIC2A","LINUX_REBOOT_MAGIC2B","LINUX_REBOOT_MAGIC2C","LIO_NOP","LIO_NOWAIT","LIO_READ","LIO_WAIT","LIO_WRITE","LM_ID_BASE","LM_ID_NEWLM","LOCK_EX","LOCK_NB","LOCK_SH","LOCK_UN","LOGIN_PROCESS","LOG_ALERT","LOG_AUTH","LOG_AUTHPRIV","LOG_CONS","LOG_CRIT","LOG_CRON","LOG_DAEMON","LOG_DEBUG","LOG_EMERG","LOG_ERR","LOG_FACMASK","LOG_FTP","LOG_INFO","LOG_KERN","LOG_LOCAL0","LOG_LOCAL1","LOG_LOCAL2","LOG_LOCAL3","LOG_LOCAL4","LOG_LOCAL5","LOG_LOCAL6","LOG_LOCAL7","LOG_LPR","LOG_MAIL","LOG_NDELAY","LOG_NEWS","LOG_NFACILITIES","LOG_NOTICE","LOG_NOWAIT","LOG_ODELAY","LOG_PERROR","LOG_PID","LOG_PRIMASK","LOG_SYSLOG","LOG_USER","LOG_UUCP","LOG_WARNING","L_tmpnam","Lmid_t","MADV_COLD","MADV_COLLAPSE","MADV_DODUMP","MADV_DOFORK","MADV_DONTDUMP","MADV_DONTFORK","MADV_DONTNEED","MADV_DONTNEED_LOCKED","MADV_FREE","MADV_HUGEPAGE","MADV_HWPOISON","MADV_KEEPONFORK","MADV_MERGEABLE","MADV_NOHUGEPAGE","MADV_NORMAL","MADV_PAGEOUT","MADV_POPULATE_READ","MADV_POPULATE_WRITE","MADV_RANDOM","MADV_REMOVE","MADV_SEQUENTIAL","MADV_SOFT_OFFLINE","MADV_UNMERGEABLE","MADV_WILLNEED","MADV_WIPEONFORK","MAP_32BIT","MAP_ANON","MAP_ANONYMOUS","MAP_DENYWRITE","MAP_EXECUTABLE","MAP_FAILED","MAP_FILE","MAP_FIXED","MAP_FIXED_NOREPLACE","MAP_GROWSDOWN","MAP_HUGETLB","MAP_HUGE_16GB","MAP_HUGE_16MB","MAP_HUGE_1GB","MAP_HUGE_1MB","MAP_HUGE_256MB","MAP_HUGE_2GB","MAP_HUGE_2MB","MAP_HUGE_32MB","MAP_HUGE_512KB","MAP_HUGE_512MB","MAP_HUGE_64KB","MAP_HUGE_8MB","MAP_HUGE_MASK","MAP_HUGE_SHIFT","MAP_LOCKED","MAP_NONBLOCK","MAP_NORESERVE","MAP_POPULATE","MAP_PRIVATE","MAP_SHARED","MAP_SHARED_VALIDATE","MAP_STACK","MAP_SYNC","MAP_TYPE","MAXTC","MAXTTL","MAX_ADDR_LEN","MAX_IPOPTLEN","MAX_LINKS","MCAST_BLOCK_SOURCE","MCAST_EXCLUDE","MCAST_INCLUDE","MCAST_JOIN_GROUP","MCAST_JOIN_SOURCE_GROUP","MCAST_LEAVE_GROUP","MCAST_LEAVE_SOURCE_GROUP","MCAST_MSFILTER","MCAST_UNBLOCK_SOURCE","MCL_CURRENT","MCL_FUTURE","MCL_ONFAULT","MEMBARRIER_CMD_GLOBAL","MEMBARRIER_CMD_GLOBAL_EXPEDITED","MEMBARRIER_CMD_PRIVATE_EXPEDITED","MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ","MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE","MEMBARRIER_CMD_QUERY","MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED","MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED","MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ","MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE","MFD_ALLOW_SEALING","MFD_CLOEXEC","MFD_EXEC","MFD_HUGETLB","MFD_HUGE_16GB","MFD_HUGE_16MB","MFD_HUGE_1GB","MFD_HUGE_1MB","MFD_HUGE_256MB","MFD_HUGE_2GB","MFD_HUGE_2MB","MFD_HUGE_32MB","MFD_HUGE_512KB","MFD_HUGE_512MB","MFD_HUGE_64KB","MFD_HUGE_8MB","MFD_HUGE_MASK","MFD_HUGE_SHIFT","MFD_NOEXEC_SEAL","MINIX2_SUPER_MAGIC","MINIX2_SUPER_MAGIC2","MINIX3_SUPER_MAGIC","MINIX_SUPER_MAGIC","MINIX_SUPER_MAGIC2","MINSIGSTKSZ","MLOCK_ONFAULT","MMAP_PAGE_ZERO","MNT_DETACH","MNT_EXPIRE","MNT_FORCE","MODULE_INIT_IGNORE_MODVERSIONS","MODULE_INIT_IGNORE_VERMAGIC","MOD_CLKA","MOD_CLKB","MOD_ESTERROR","MOD_FREQUENCY","MOD_MAXERROR","MOD_MICRO","MOD_NANO","MOD_OFFSET","MOD_STATUS","MOD_TAI","MOD_TIMECONST","MON_1","MON_10","MON_11","MON_12","MON_2","MON_3","MON_4","MON_5","MON_6","MON_7","MON_8","MON_9","MOVE_MOUNT_BENEATH","MOVE_MOUNT_F_AUTOMOUNTS","MOVE_MOUNT_F_EMPTY_PATH","MOVE_MOUNT_F_SYMLINKS","MOVE_MOUNT_SET_GROUP","MOVE_MOUNT_T_AUTOMOUNTS","MOVE_MOUNT_T_EMPTY_PATH","MOVE_MOUNT_T_SYMLINKS","MPOL_BIND","MPOL_DEFAULT","MPOL_F_NUMA_BALANCING","MPOL_F_RELATIVE_NODES","MPOL_F_STATIC_NODES","MPOL_INTERLEAVE","MPOL_LOCAL","MPOL_PREFERRED","MREMAP_DONTUNMAP","MREMAP_FIXED","MREMAP_MAYMOVE","MSC_CNT","MSC_MAX","MSDOS_SUPER_MAGIC","MSG_CMSG_CLOEXEC","MSG_CONFIRM","MSG_COPY","MSG_CTRUNC","MSG_DONTROUTE","MSG_DONTWAIT","MSG_EOR","MSG_ERRQUEUE","MSG_EXCEPT","MSG_FASTOPEN","MSG_FIN","MSG_INFO","MSG_MORE","MSG_NOERROR","MSG_NOSIGNAL","MSG_NOTIFICATION","MSG_OOB","MSG_PEEK","MSG_RST","MSG_STAT","MSG_SYN","MSG_TRUNC","MSG_TRYHARD","MSG_WAITALL","MSG_WAITFORONE","MSG_ZEROCOPY","MS_ACTIVE","MS_ASYNC","MS_BIND","MS_DIRSYNC","MS_INVALIDATE","MS_I_VERSION","MS_KERNMOUNT","MS_LAZYTIME","MS_MANDLOCK","MS_MGC_MSK","MS_MGC_VAL","MS_MOVE","MS_NOATIME","MS_NODEV","MS_NODIRATIME","MS_NOEXEC","MS_NOSUID","MS_NOUSER","MS_POSIXACL","MS_PRIVATE","MS_RDONLY","MS_REC","MS_RELATIME","MS_REMOUNT","MS_RMT_MASK","MS_SHARED","MS_SILENT","MS_SLAVE","MS_STRICTATIME","MS_SYNC","MS_SYNCHRONOUS","MS_UNBINDABLE","M_ARENA_MAX","M_ARENA_TEST","M_CHECK_ACTION","M_GRAIN","M_KEEP","M_MMAP_MAX","M_MMAP_THRESHOLD","M_MXFAST","M_NLBLKS","M_PERTURB","M_TOP_PAD","M_TRIM_THRESHOLD","NCCS","NCP_SUPER_MAGIC","NDA_CACHEINFO","NDA_DST","NDA_IFINDEX","NDA_LINK_NETNSID","NDA_LLADDR","NDA_MASTER","NDA_PORT","NDA_PROBES","NDA_SRC_VNI","NDA_UNSPEC","NDA_VLAN","NDA_VNI","NETLINK_ADD_MEMBERSHIP","NETLINK_AUDIT","NETLINK_BROADCAST_ERROR","NETLINK_CAP_ACK","NETLINK_CONNECTOR","NETLINK_CRYPTO","NETLINK_DNRTMSG","NETLINK_DROP_MEMBERSHIP","NETLINK_ECRYPTFS","NETLINK_EXT_ACK","NETLINK_FIB_LOOKUP","NETLINK_FIREWALL","NETLINK_GENERIC","NETLINK_GET_STRICT_CHK","NETLINK_INET_DIAG","NETLINK_IP6_FW","NETLINK_ISCSI","NETLINK_KOBJECT_UEVENT","NETLINK_LISTEN_ALL_NSID","NETLINK_LIST_MEMBERSHIPS","NETLINK_NETFILTER","NETLINK_NFLOG","NETLINK_NO_ENOBUFS","NETLINK_PKTINFO","NETLINK_RDMA","NETLINK_ROUTE","NETLINK_RX_RING","NETLINK_SCSITRANSPORT","NETLINK_SELINUX","NETLINK_SOCK_DIAG","NETLINK_TX_RING","NETLINK_UNUSED","NETLINK_USERSOCK","NETLINK_XFRM","NET_802","NET_ATALK","NET_AX25","NET_BRIDGE","NET_CORE","NET_DCCP","NET_DECNET","NET_ECONET","NET_ETHER","NET_IPV4","NET_IPV6","NET_IPX","NET_IRDA","NET_LLC","NET_NETFILTER","NET_NETROM","NET_ROSE","NET_SCTP","NET_TR","NET_UNIX","NET_X25","NEW_TIME","NFNETLINK_V0","NFNLGRP_ACCT_QUOTA","NFNLGRP_CONNTRACK_DESTROY","NFNLGRP_CONNTRACK_EXP_DESTROY","NFNLGRP_CONNTRACK_EXP_NEW","NFNLGRP_CONNTRACK_EXP_UPDATE","NFNLGRP_CONNTRACK_NEW","NFNLGRP_CONNTRACK_UPDATE","NFNLGRP_NFTABLES","NFNLGRP_NFTRACE","NFNLGRP_NONE","NFNL_BATCH_GENID","NFNL_BATCH_UNSPEC","NFNL_MSG_BATCH_BEGIN","NFNL_MSG_BATCH_END","NFNL_SUBSYS_ACCT","NFNL_SUBSYS_COUNT","NFNL_SUBSYS_CTHELPER","NFNL_SUBSYS_CTNETLINK","NFNL_SUBSYS_CTNETLINK_EXP","NFNL_SUBSYS_CTNETLINK_TIMEOUT","NFNL_SUBSYS_HOOK","NFNL_SUBSYS_IPSET","NFNL_SUBSYS_NFTABLES","NFNL_SUBSYS_NFT_COMPAT","NFNL_SUBSYS_NONE","NFNL_SUBSYS_OSF","NFNL_SUBSYS_QUEUE","NFNL_SUBSYS_ULOG","NFPROTO_ARP","NFPROTO_BRIDGE","NFPROTO_DECNET","NFPROTO_INET","NFPROTO_IPV4","NFPROTO_IPV6","NFPROTO_NETDEV","NFPROTO_NUMPROTO","NFPROTO_UNSPEC","NFQA_CAP_LEN","NFQA_CFG_CMD","NFQA_CFG_FLAGS","NFQA_CFG_F_CONNTRACK","NFQA_CFG_F_FAIL_OPEN","NFQA_CFG_F_GSO","NFQA_CFG_F_MAX","NFQA_CFG_F_SECCTX","NFQA_CFG_F_UID_GID","NFQA_CFG_MASK","NFQA_CFG_PARAMS","NFQA_CFG_QUEUE_MAXLEN","NFQA_CFG_UNSPEC","NFQA_CT","NFQA_CT_INFO","NFQA_EXP","NFQA_GID","NFQA_HWADDR","NFQA_IFINDEX_INDEV","NFQA_IFINDEX_OUTDEV","NFQA_IFINDEX_PHYSINDEV","NFQA_IFINDEX_PHYSOUTDEV","NFQA_L2HDR","NFQA_MARK","NFQA_PACKET_HDR","NFQA_PAYLOAD","NFQA_PRIORITY","NFQA_SECCTX","NFQA_SKB_CSUMNOTREADY","NFQA_SKB_CSUM_NOTVERIFIED","NFQA_SKB_GSO","NFQA_SKB_INFO","NFQA_TIMESTAMP","NFQA_UID","NFQA_UNSPEC","NFQA_VERDICT_HDR","NFQA_VLAN","NFQA_VLAN_PROTO","NFQA_VLAN_TCI","NFQA_VLAN_UNSPEC","NFQNL_CFG_CMD_BIND","NFQNL_CFG_CMD_NONE","NFQNL_CFG_CMD_PF_BIND","NFQNL_CFG_CMD_PF_UNBIND","NFQNL_CFG_CMD_UNBIND","NFQNL_COPY_META","NFQNL_COPY_NONE","NFQNL_COPY_PACKET","NFQNL_MSG_CONFIG","NFQNL_MSG_PACKET","NFQNL_MSG_VERDICT","NFQNL_MSG_VERDICT_BATCH","NFS_SUPER_MAGIC","NFT_BREAK","NFT_BYTEORDER_HTON","NFT_BYTEORDER_NTOH","NFT_CHAIN_MAXNAMELEN","NFT_CMP_EQ","NFT_CMP_GT","NFT_CMP_GTE","NFT_CMP_LT","NFT_CMP_LTE","NFT_CMP_NEQ","NFT_CONTINUE","NFT_CT_BYTES","NFT_CT_DIRECTION","NFT_CT_DST","NFT_CT_EXPIRATION","NFT_CT_HELPER","NFT_CT_L3PROTOCOL","NFT_CT_LABELS","NFT_CT_MARK","NFT_CT_PKTS","NFT_CT_PROTOCOL","NFT_CT_PROTO_DST","NFT_CT_PROTO_SRC","NFT_CT_SECMARK","NFT_CT_SRC","NFT_CT_STATE","NFT_CT_STATUS","NFT_DATA_RESERVED_MASK","NFT_DATA_VALUE","NFT_DATA_VALUE_MAXLEN","NFT_DATA_VERDICT","NFT_DYNSET_F_INV","NFT_DYNSET_OP_ADD","NFT_DYNSET_OP_UPDATE","NFT_GOTO","NFT_JUMP","NFT_LIMIT_F_INV","NFT_LIMIT_PKTS","NFT_LIMIT_PKT_BYTES","NFT_LOOKUP_F_INV","NFT_META_BRI_IIFNAME","NFT_META_BRI_OIFNAME","NFT_META_CGROUP","NFT_META_CPU","NFT_META_IIF","NFT_META_IIFGROUP","NFT_META_IIFNAME","NFT_META_IIFTYPE","NFT_META_L4PROTO","NFT_META_LEN","NFT_META_MARK","NFT_META_NFPROTO","NFT_META_NFTRACE","NFT_META_OIF","NFT_META_OIFGROUP","NFT_META_OIFNAME","NFT_META_OIFTYPE","NFT_META_PKTTYPE","NFT_META_PRANDOM","NFT_META_PRIORITY","NFT_META_PROTOCOL","NFT_META_RTCLASSID","NFT_META_SECMARK","NFT_META_SKGID","NFT_META_SKUID","NFT_MSG_DELCHAIN","NFT_MSG_DELOBJ","NFT_MSG_DELRULE","NFT_MSG_DELSET","NFT_MSG_DELSETELEM","NFT_MSG_DELTABLE","NFT_MSG_GETCHAIN","NFT_MSG_GETGEN","NFT_MSG_GETOBJ","NFT_MSG_GETOBJ_RESET","NFT_MSG_GETRULE","NFT_MSG_GETSET","NFT_MSG_GETSETELEM","NFT_MSG_GETTABLE","NFT_MSG_MAX","NFT_MSG_NEWCHAIN","NFT_MSG_NEWGEN","NFT_MSG_NEWOBJ","NFT_MSG_NEWRULE","NFT_MSG_NEWSET","NFT_MSG_NEWSETELEM","NFT_MSG_NEWTABLE","NFT_MSG_TRACE","NFT_NAT_DNAT","NFT_NAT_SNAT","NFT_NG_INCREMENTAL","NFT_NG_RANDOM","NFT_OBJ_MAXNAMELEN","NFT_PAYLOAD_CSUM_INET","NFT_PAYLOAD_CSUM_NONE","NFT_PAYLOAD_LL_HEADER","NFT_PAYLOAD_NETWORK_HEADER","NFT_PAYLOAD_TRANSPORT_HEADER","NFT_QUEUE_FLAG_BYPASS","NFT_QUEUE_FLAG_CPU_FANOUT","NFT_QUEUE_FLAG_MASK","NFT_QUOTA_F_INV","NFT_RANGE_EQ","NFT_RANGE_NEQ","NFT_REG32_00","NFT_REG32_01","NFT_REG32_02","NFT_REG32_03","NFT_REG32_04","NFT_REG32_05","NFT_REG32_06","NFT_REG32_07","NFT_REG32_08","NFT_REG32_09","NFT_REG32_10","NFT_REG32_11","NFT_REG32_12","NFT_REG32_13","NFT_REG32_14","NFT_REG32_15","NFT_REG32_SIZE","NFT_REG_1","NFT_REG_2","NFT_REG_3","NFT_REG_4","NFT_REG_SIZE","NFT_REG_VERDICT","NFT_REJECT_ICMPX_ADMIN_PROHIBITED","NFT_REJECT_ICMPX_HOST_UNREACH","NFT_REJECT_ICMPX_NO_ROUTE","NFT_REJECT_ICMPX_PORT_UNREACH","NFT_REJECT_ICMPX_UNREACH","NFT_REJECT_ICMP_UNREACH","NFT_REJECT_TCP_RST","NFT_RETURN","NFT_SET_ANONYMOUS","NFT_SET_CONSTANT","NFT_SET_ELEM_INTERVAL_END","NFT_SET_EVAL","NFT_SET_INTERVAL","NFT_SET_MAP","NFT_SET_MAXNAMELEN","NFT_SET_POL_MEMORY","NFT_SET_POL_PERFORMANCE","NFT_SET_TIMEOUT","NFT_TABLE_MAXNAMELEN","NFT_TRACETYPE_POLICY","NFT_TRACETYPE_RETURN","NFT_TRACETYPE_RULE","NFT_TRACETYPE_UNSPEC","NFT_USERDATA_MAXLEN","NFULA_CFG_CMD","NFULA_CFG_FLAGS","NFULA_CFG_MODE","NFULA_CFG_NLBUFSIZ","NFULA_CFG_QTHRESH","NFULA_CFG_TIMEOUT","NFULA_CFG_UNSPEC","NFULA_CT","NFULA_CT_INFO","NFULA_GID","NFULA_HWADDR","NFULA_HWHEADER","NFULA_HWLEN","NFULA_HWTYPE","NFULA_IFINDEX_INDEV","NFULA_IFINDEX_OUTDEV","NFULA_IFINDEX_PHYSINDEV","NFULA_IFINDEX_PHYSOUTDEV","NFULA_L2HDR","NFULA_MARK","NFULA_PACKET_HDR","NFULA_PAYLOAD","NFULA_PREFIX","NFULA_SEQ","NFULA_SEQ_GLOBAL","NFULA_TIMESTAMP","NFULA_UID","NFULA_UNSPEC","NFULA_VLAN","NFULA_VLAN_PROTO","NFULA_VLAN_TCI","NFULA_VLAN_UNSPEC","NFULNL_CFG_CMD_BIND","NFULNL_CFG_CMD_NONE","NFULNL_CFG_CMD_PF_BIND","NFULNL_CFG_CMD_PF_UNBIND","NFULNL_CFG_CMD_UNBIND","NFULNL_CFG_F_CONNTRACK","NFULNL_CFG_F_SEQ","NFULNL_CFG_F_SEQ_GLOBAL","NFULNL_COPY_META","NFULNL_COPY_NONE","NFULNL_COPY_PACKET","NFULNL_MSG_CONFIG","NFULNL_MSG_PACKET","NF_ACCEPT","NF_DROP","NF_INET_FORWARD","NF_INET_LOCAL_IN","NF_INET_LOCAL_OUT","NF_INET_NUMHOOKS","NF_INET_POST_ROUTING","NF_INET_PRE_ROUTING","NF_IP6_FORWARD","NF_IP6_LOCAL_IN","NF_IP6_LOCAL_OUT","NF_IP6_NUMHOOKS","NF_IP6_POST_ROUTING","NF_IP6_PRE_ROUTING","NF_IP6_PRI_CONNTRACK","NF_IP6_PRI_CONNTRACK_DEFRAG","NF_IP6_PRI_CONNTRACK_HELPER","NF_IP6_PRI_FILTER","NF_IP6_PRI_FIRST","NF_IP6_PRI_LAST","NF_IP6_PRI_MANGLE","NF_IP6_PRI_NAT_DST","NF_IP6_PRI_NAT_SRC","NF_IP6_PRI_RAW","NF_IP6_PRI_SECURITY","NF_IP6_PRI_SELINUX_FIRST","NF_IP6_PRI_SELINUX_LAST","NF_IP_FORWARD","NF_IP_LOCAL_IN","NF_IP_LOCAL_OUT","NF_IP_NUMHOOKS","NF_IP_POST_ROUTING","NF_IP_PRE_ROUTING","NF_IP_PRI_CONNTRACK","NF_IP_PRI_CONNTRACK_CONFIRM","NF_IP_PRI_CONNTRACK_DEFRAG","NF_IP_PRI_CONNTRACK_HELPER","NF_IP_PRI_FILTER","NF_IP_PRI_FIRST","NF_IP_PRI_LAST","NF_IP_PRI_MANGLE","NF_IP_PRI_NAT_DST","NF_IP_PRI_NAT_SRC","NF_IP_PRI_RAW","NF_IP_PRI_SECURITY","NF_IP_PRI_SELINUX_FIRST","NF_IP_PRI_SELINUX_LAST","NF_MAX_VERDICT","NF_NETDEV_INGRESS","NF_NETDEV_NUMHOOKS","NF_QUEUE","NF_REPEAT","NF_STOLEN","NF_STOP","NF_VERDICT_BITS","NF_VERDICT_FLAG_QUEUE_BYPASS","NF_VERDICT_MASK","NF_VERDICT_QBITS","NF_VERDICT_QMASK","NILFS_SUPER_MAGIC","NI_DGRAM","NI_IDN","NI_MAXHOST","NI_NAMEREQD","NI_NOFQDN","NI_NUMERICHOST","NI_NUMERICSERV","NL0","NL1","NLA_ALIGN","NLA_ALIGNTO","NLA_F_NESTED","NLA_F_NET_BYTEORDER","NLA_TYPE_MASK","NLDLY","NLMSG_DONE","NLMSG_ERROR","NLMSG_MIN_TYPE","NLMSG_NOOP","NLMSG_OVERRUN","NLM_F_ACK","NLM_F_APPEND","NLM_F_ATOMIC","NLM_F_CREATE","NLM_F_DUMP","NLM_F_DUMP_FILTERED","NLM_F_DUMP_INTR","NLM_F_ECHO","NLM_F_EXCL","NLM_F_MATCH","NLM_F_MULTI","NLM_F_REPLACE","NLM_F_REQUEST","NLM_F_ROOT","NOEXPR","NOFLSH","NOSTR","NSFS_MAGIC","NTF_EXT_LEARNED","NTF_MASTER","NTF_OFFLOADED","NTF_PROXY","NTF_ROUTER","NTF_SELF","NTF_USE","NTP_API","NT_ASRS","NT_AUXV","NT_FPREGSET","NT_GWINDOWS","NT_LWPSINFO","NT_LWPSTATUS","NT_PLATFORM","NT_PRCRED","NT_PRFPREG","NT_PRFPXREG","NT_PRPSINFO","NT_PRSTATUS","NT_PRXREG","NT_PSINFO","NT_PSTATUS","NT_TASKSTRUCT","NT_UTSNAME","NUD_DELAY","NUD_FAILED","NUD_INCOMPLETE","NUD_NOARP","NUD_NONE","NUD_PERMANENT","NUD_PROBE","NUD_REACHABLE","NUD_STALE","OCFS2_SUPER_MAGIC","OCRNL","OFDEL","OFILL","OLCUC","OLD_TIME","ONLCR","ONLRET","ONOCR","OPENPROM_SUPER_MAGIC","OPEN_TREE_CLOEXEC","OPEN_TREE_CLONE","OPOST","ORIG_RAX","OVERLAYFS_SUPER_MAGIC","O_ACCMODE","O_APPEND","O_ASYNC","O_CLOEXEC","O_CREAT","O_DIRECT","O_DIRECTORY","O_DSYNC","O_EXCL","O_FSYNC","O_LARGEFILE","O_NDELAY","O_NOATIME","O_NOCTTY","O_NOFOLLOW","O_NONBLOCK","O_PATH","O_RDONLY","O_RDWR","O_RSYNC","O_SYNC","O_TMPFILE","O_TRUNC","O_WRONLY","PACKET_ADD_MEMBERSHIP","PACKET_DROP_MEMBERSHIP","PACKET_MR_ALLMULTI","PACKET_MR_MULTICAST","PACKET_MR_PROMISC","PACKET_MR_UNICAST","PARENB","PARMRK","PARODD","PATH_MAX","PENDIN","PF_ALG","PF_APPLETALK","PF_ASH","PF_ATMPVC","PF_ATMSVC","PF_AX25","PF_BLUETOOTH","PF_BRIDGE","PF_CAIF","PF_CAN","PF_DECnet","PF_DUMPCORE","PF_ECONET","PF_EXITING","PF_FORKNOEXEC","PF_IB","PF_IDLE","PF_IEEE802154","PF_INET","PF_INET6","PF_IO_WORKER","PF_IPX","PF_IRDA","PF_ISDN","PF_IUCV","PF_KEY","PF_KSWAPD","PF_KTHREAD","PF_LLC","PF_LOCAL","PF_LOCAL_THROTTLE","PF_MASKOS","PF_MASKPROC","PF_MCE_EARLY","PF_MCE_PROCESS","PF_MEMALLOC","PF_MEMALLOC_NOFS","PF_MEMALLOC_NOIO","PF_MEMALLOC_PIN","PF_MPLS","PF_NETBEUI","PF_NETLINK","PF_NETROM","PF_NFC","PF_NOFREEZE","PF_NO_SETAFFINITY","PF_NPROC_EXCEEDED","PF_PACKET","PF_PHONET","PF_POSTCOREDUMP","PF_PPPOX","PF_R","PF_RANDOMIZE","PF_RDS","PF_ROSE","PF_ROUTE","PF_RXRPC","PF_SECURITY","PF_SIGNALED","PF_SNA","PF_SUPERPRIV","PF_TIPC","PF_UNIX","PF_UNSPEC","PF_USED_MATH","PF_USER_WORKER","PF_VCPU","PF_VSOCK","PF_W","PF_WANPIPE","PF_WQ_WORKER","PF_X","PF_X25","PF_XDP","PIDFD_NONBLOCK","PIPE_BUF","PM_STR","POLLERR","POLLHUP","POLLIN","POLLNVAL","POLLOUT","POLLPRI","POLLRDBAND","POLLRDHUP","POLLRDNORM","POLLWRBAND","POLLWRNORM","POSIX_FADV_DONTNEED","POSIX_FADV_NOREUSE","POSIX_FADV_NORMAL","POSIX_FADV_RANDOM","POSIX_FADV_SEQUENTIAL","POSIX_FADV_WILLNEED","POSIX_MADV_DONTNEED","POSIX_MADV_NORMAL","POSIX_MADV_RANDOM","POSIX_MADV_SEQUENTIAL","POSIX_MADV_WILLNEED","POSIX_SPAWN_RESETIDS","POSIX_SPAWN_SETPGROUP","POSIX_SPAWN_SETSCHEDPARAM","POSIX_SPAWN_SETSCHEDULER","POSIX_SPAWN_SETSID","POSIX_SPAWN_SETSIGDEF","POSIX_SPAWN_SETSIGMASK","POSIX_SPAWN_USEVFORK","PRIO_MAX","PRIO_MIN","PRIO_PGRP","PRIO_PROCESS","PRIO_USER","PROC_SUPER_MAGIC","PROT_EXEC","PROT_GROWSDOWN","PROT_GROWSUP","PROT_NONE","PROT_READ","PROT_WRITE","PR_CAPBSET_DROP","PR_CAPBSET_READ","PR_CAP_AMBIENT","PR_CAP_AMBIENT_CLEAR_ALL","PR_CAP_AMBIENT_IS_SET","PR_CAP_AMBIENT_LOWER","PR_CAP_AMBIENT_RAISE","PR_ENDIAN_BIG","PR_ENDIAN_LITTLE","PR_ENDIAN_PPC_LITTLE","PR_FPEMU_NOPRINT","PR_FPEMU_SIGFPE","PR_FP_EXC_ASYNC","PR_FP_EXC_DISABLED","PR_FP_EXC_DIV","PR_FP_EXC_INV","PR_FP_EXC_NONRECOV","PR_FP_EXC_OVF","PR_FP_EXC_PRECISE","PR_FP_EXC_RES","PR_FP_EXC_SW_ENABLE","PR_FP_EXC_UND","PR_FP_MODE_FR","PR_FP_MODE_FRE","PR_GET_CHILD_SUBREAPER","PR_GET_DUMPABLE","PR_GET_ENDIAN","PR_GET_FPEMU","PR_GET_FPEXC","PR_GET_FP_MODE","PR_GET_KEEPCAPS","PR_GET_NAME","PR_GET_NO_NEW_PRIVS","PR_GET_PDEATHSIG","PR_GET_SECCOMP","PR_GET_SECUREBITS","PR_GET_SPECULATION_CTRL","PR_GET_THP_DISABLE","PR_GET_TID_ADDRESS","PR_GET_TIMERSLACK","PR_GET_TIMING","PR_GET_TSC","PR_GET_UNALIGN","PR_MCE_KILL","PR_MCE_KILL_CLEAR","PR_MCE_KILL_DEFAULT","PR_MCE_KILL_EARLY","PR_MCE_KILL_GET","PR_MCE_KILL_LATE","PR_MCE_KILL_SET","PR_MPX_DISABLE_MANAGEMENT","PR_MPX_ENABLE_MANAGEMENT","PR_SCHED_CORE","PR_SCHED_CORE_CREATE","PR_SCHED_CORE_GET","PR_SCHED_CORE_MAX","PR_SCHED_CORE_SCOPE_PROCESS_GROUP","PR_SCHED_CORE_SCOPE_THREAD","PR_SCHED_CORE_SCOPE_THREAD_GROUP","PR_SCHED_CORE_SHARE_FROM","PR_SCHED_CORE_SHARE_TO","PR_SET_CHILD_SUBREAPER","PR_SET_DUMPABLE","PR_SET_ENDIAN","PR_SET_FPEMU","PR_SET_FPEXC","PR_SET_FP_MODE","PR_SET_KEEPCAPS","PR_SET_MM","PR_SET_MM_ARG_END","PR_SET_MM_ARG_START","PR_SET_MM_AUXV","PR_SET_MM_BRK","PR_SET_MM_END_CODE","PR_SET_MM_END_DATA","PR_SET_MM_ENV_END","PR_SET_MM_ENV_START","PR_SET_MM_EXE_FILE","PR_SET_MM_MAP","PR_SET_MM_MAP_SIZE","PR_SET_MM_START_BRK","PR_SET_MM_START_CODE","PR_SET_MM_START_DATA","PR_SET_MM_START_STACK","PR_SET_NAME","PR_SET_NO_NEW_PRIVS","PR_SET_PDEATHSIG","PR_SET_PTRACER","PR_SET_PTRACER_ANY","PR_SET_SECCOMP","PR_SET_SECUREBITS","PR_SET_SPECULATION_CTRL","PR_SET_THP_DISABLE","PR_SET_TIMERSLACK","PR_SET_TIMING","PR_SET_TSC","PR_SET_UNALIGN","PR_SET_VMA","PR_SET_VMA_ANON_NAME","PR_SPEC_DISABLE","PR_SPEC_DISABLE_NOEXEC","PR_SPEC_ENABLE","PR_SPEC_FORCE_DISABLE","PR_SPEC_INDIRECT_BRANCH","PR_SPEC_NOT_AFFECTED","PR_SPEC_PRCTL","PR_SPEC_STORE_BYPASS","PR_TASK_PERF_EVENTS_DISABLE","PR_TASK_PERF_EVENTS_ENABLE","PR_TIMING_STATISTICAL","PR_TIMING_TIMESTAMP","PR_TSC_ENABLE","PR_TSC_SIGSEGV","PR_UNALIGN_NOPRINT","PR_UNALIGN_SIGBUS","PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP","PTHREAD_COND_INITIALIZER","PTHREAD_CREATE_DETACHED","PTHREAD_CREATE_JOINABLE","PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP","PTHREAD_EXPLICIT_SCHED","PTHREAD_INHERIT_SCHED","PTHREAD_MUTEX_ADAPTIVE_NP","PTHREAD_MUTEX_DEFAULT","PTHREAD_MUTEX_ERRORCHECK","PTHREAD_MUTEX_INITIALIZER","PTHREAD_MUTEX_NORMAL","PTHREAD_MUTEX_RECURSIVE","PTHREAD_MUTEX_ROBUST","PTHREAD_MUTEX_STALLED","PTHREAD_ONCE_INIT","PTHREAD_PRIO_INHERIT","PTHREAD_PRIO_NONE","PTHREAD_PRIO_PROTECT","PTHREAD_PROCESS_PRIVATE","PTHREAD_PROCESS_SHARED","PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP","PTHREAD_RWLOCK_INITIALIZER","PTHREAD_STACK_MIN","PTRACE_ATTACH","PTRACE_CONT","PTRACE_DETACH","PTRACE_EVENT_CLONE","PTRACE_EVENT_EXEC","PTRACE_EVENT_EXIT","PTRACE_EVENT_FORK","PTRACE_EVENT_SECCOMP","PTRACE_EVENT_STOP","PTRACE_EVENT_VFORK","PTRACE_EVENT_VFORK_DONE","PTRACE_GETEVENTMSG","PTRACE_GETFPREGS","PTRACE_GETFPXREGS","PTRACE_GETREGS","PTRACE_GETREGSET","PTRACE_GETSIGINFO","PTRACE_GETSIGMASK","PTRACE_GET_RSEQ_CONFIGURATION","PTRACE_GET_SYSCALL_INFO","PTRACE_INTERRUPT","PTRACE_KILL","PTRACE_LISTEN","PTRACE_O_EXITKILL","PTRACE_O_MASK","PTRACE_O_SUSPEND_SECCOMP","PTRACE_O_TRACECLONE","PTRACE_O_TRACEEXEC","PTRACE_O_TRACEEXIT","PTRACE_O_TRACEFORK","PTRACE_O_TRACESECCOMP","PTRACE_O_TRACESYSGOOD","PTRACE_O_TRACEVFORK","PTRACE_O_TRACEVFORKDONE","PTRACE_PEEKDATA","PTRACE_PEEKSIGINFO","PTRACE_PEEKSIGINFO_SHARED","PTRACE_PEEKTEXT","PTRACE_PEEKUSER","PTRACE_POKEDATA","PTRACE_POKETEXT","PTRACE_POKEUSER","PTRACE_SEIZE","PTRACE_SETFPREGS","PTRACE_SETFPXREGS","PTRACE_SETOPTIONS","PTRACE_SETREGS","PTRACE_SETREGSET","PTRACE_SETSIGINFO","PTRACE_SETSIGMASK","PTRACE_SINGLESTEP","PTRACE_SYSCALL","PTRACE_SYSCALL_INFO_ENTRY","PTRACE_SYSCALL_INFO_EXIT","PTRACE_SYSCALL_INFO_NONE","PTRACE_SYSCALL_INFO_SECCOMP","PTRACE_SYSEMU","PTRACE_SYSEMU_SINGLESTEP","PTRACE_TRACEME","PT_DYNAMIC","PT_GNU_EH_FRAME","PT_GNU_RELRO","PT_GNU_STACK","PT_HIOS","PT_HIPROC","PT_HISUNW","PT_INTERP","PT_LOAD","PT_LOOS","PT_LOPROC","PT_LOSUNW","PT_NOTE","PT_NULL","PT_NUM","PT_PHDR","PT_SHLIB","PT_SUNWBSS","PT_SUNWSTACK","PT_TLS","P_ALL","P_PGID","P_PID","P_PIDFD","QCMD","QFMT_VFS_OLD","QFMT_VFS_V0","QFMT_VFS_V1","QIF_ALL","QIF_BLIMITS","QIF_BTIME","QIF_ILIMITS","QIF_INODES","QIF_ITIME","QIF_LIMITS","QIF_SPACE","QIF_TIMES","QIF_USAGE","QNX4_SUPER_MAGIC","QNX6_SUPER_MAGIC","Q_GETFMT","Q_GETINFO","Q_GETQUOTA","Q_QUOTAOFF","Q_QUOTAON","Q_SETINFO","Q_SETQUOTA","Q_SYNC","R10","R11","R12","R13","R14","R15","R8","R9","RADIXCHAR","RAND_MAX","RAX","RBP","RBX","RB_AUTOBOOT","RB_DISABLE_CAD","RB_ENABLE_CAD","RB_HALT_SYSTEM","RB_KEXEC","RB_POWER_OFF","RB_SW_SUSPEND","RCX","RDI","RDTGROUP_SUPER_MAGIC","RDX","READ_IMPLIES_EXEC","REG_BADBR","REG_BADPAT","REG_BADRPT","REG_CR2","REG_CSGSFS","REG_EBRACE","REG_EBRACK","REG_ECOLLATE","REG_ECTYPE","REG_EEND","REG_EESCAPE","REG_EFL","REG_ENOSYS","REG_EPAREN","REG_ERANGE","REG_ERPAREN","REG_ERR","REG_ESIZE","REG_ESPACE","REG_ESUBREG","REG_EXTENDED","REG_ICASE","REG_NEWLINE","REG_NOMATCH","REG_NOSUB","REG_NOTBOL","REG_NOTEOL","REG_OLDMASK","REG_R10","REG_R11","REG_R12","REG_R13","REG_R14","REG_R15","REG_R8","REG_R9","REG_RAX","REG_RBP","REG_RBX","REG_RCX","REG_RDI","REG_RDX","REG_RIP","REG_RSI","REG_RSP","REG_STARTEND","REG_TRAPNO","REISERFS_SUPER_MAGIC","REL_CNT","REL_MAX","RENAME_EXCHANGE","RENAME_NOREPLACE","RENAME_WHITEOUT","REP_CNT","REP_MAX","RESOLVE_BENEATH","RESOLVE_CACHED","RESOLVE_IN_ROOT","RESOLVE_NO_MAGICLINKS","RESOLVE_NO_SYMLINKS","RESOLVE_NO_XDEV","RIP","RLIM64_INFINITY","RLIMIT_AS","RLIMIT_CORE","RLIMIT_CPU","RLIMIT_DATA","RLIMIT_FSIZE","RLIMIT_LOCKS","RLIMIT_MEMLOCK","RLIMIT_MSGQUEUE","RLIMIT_NICE","RLIMIT_NLIMITS","RLIMIT_NOFILE","RLIMIT_NPROC","RLIMIT_RSS","RLIMIT_RTPRIO","RLIMIT_RTTIME","RLIMIT_SIGPENDING","RLIMIT_STACK","RLIM_INFINITY","RLIM_NLIMITS","RLIM_SAVED_CUR","RLIM_SAVED_MAX","RSI","RSP","RTA_CACHEINFO","RTA_DST","RTA_ENCAP","RTA_ENCAP_TYPE","RTA_EXPIRES","RTA_FLOW","RTA_GATEWAY","RTA_IIF","RTA_MARK","RTA_METRICS","RTA_MFC_STATS","RTA_MP_ALGO","RTA_MULTIPATH","RTA_NEWDST","RTA_OIF","RTA_PAD","RTA_PREF","RTA_PREFSRC","RTA_PRIORITY","RTA_PROTOINFO","RTA_SESSION","RTA_SRC","RTA_TABLE","RTA_TTL_PROPAGATE","RTA_UID","RTA_UNSPEC","RTA_VIA","RTCF_DIRECTSRC","RTCF_DOREDIRECT","RTCF_LOG","RTCF_MASQ","RTCF_NAT","RTCF_VALVE","RTEXT_FILTER_BRVLAN","RTEXT_FILTER_BRVLAN_COMPRESSED","RTEXT_FILTER_CFM_CONFIG","RTEXT_FILTER_CFM_STATUS","RTEXT_FILTER_MRP","RTEXT_FILTER_SKIP_STATS","RTEXT_FILTER_VF","RTF_ADDRCLASSMASK","RTF_ADDRCONF","RTF_ALLONLINK","RTF_BROADCAST","RTF_CACHE","RTF_DEFAULT","RTF_DYNAMIC","RTF_FLOW","RTF_GATEWAY","RTF_HOST","RTF_INTERFACE","RTF_IRTT","RTF_LINKRT","RTF_LOCAL","RTF_MODIFIED","RTF_MSS","RTF_MTU","RTF_MULTICAST","RTF_NAT","RTF_NOFORWARD","RTF_NONEXTHOP","RTF_NOPMTUDISC","RTF_POLICY","RTF_REINSTATE","RTF_REJECT","RTF_STATIC","RTF_THROW","RTF_UP","RTF_WINDOW","RTF_XRESOLVE","RTLD_DEEPBIND","RTLD_DEFAULT","RTLD_DI_CONFIGADDR","RTLD_DI_LINKMAP","RTLD_DI_LMID","RTLD_DI_ORIGIN","RTLD_DI_PROFILENAME","RTLD_DI_PROFILEOUT","RTLD_DI_SERINFO","RTLD_DI_SERINFOSIZE","RTLD_DI_TLS_DATA","RTLD_DI_TLS_MODID","RTLD_GLOBAL","RTLD_LAZY","RTLD_LOCAL","RTLD_NEXT","RTLD_NODELETE","RTLD_NOLOAD","RTLD_NOW","RTMGRP_DECnet_IFADDR","RTMGRP_DECnet_ROUTE","RTMGRP_IPV4_IFADDR","RTMGRP_IPV4_MROUTE","RTMGRP_IPV4_ROUTE","RTMGRP_IPV4_RULE","RTMGRP_IPV6_IFADDR","RTMGRP_IPV6_IFINFO","RTMGRP_IPV6_MROUTE","RTMGRP_IPV6_PREFIX","RTMGRP_IPV6_ROUTE","RTMGRP_LINK","RTMGRP_NEIGH","RTMGRP_NOTIFY","RTMGRP_TC","RTMSG_AR_FAILED","RTMSG_CONTROL","RTMSG_DELDEVICE","RTMSG_DELROUTE","RTMSG_DELRULE","RTMSG_NEWDEVICE","RTMSG_NEWROUTE","RTMSG_NEWRULE","RTMSG_OVERRUN","RTM_DELACTION","RTM_DELADDR","RTM_DELADDRLABEL","RTM_DELLINK","RTM_DELMDB","RTM_DELNEIGH","RTM_DELNETCONF","RTM_DELNSID","RTM_DELQDISC","RTM_DELROUTE","RTM_DELRULE","RTM_DELTCLASS","RTM_DELTFILTER","RTM_F_CLONED","RTM_F_EQUALIZE","RTM_F_FIB_MATCH","RTM_F_LOOKUP_TABLE","RTM_F_NOTIFY","RTM_F_PREFIX","RTM_GETACTION","RTM_GETADDR","RTM_GETADDRLABEL","RTM_GETANYCAST","RTM_GETDCB","RTM_GETLINK","RTM_GETMDB","RTM_GETMULTICAST","RTM_GETNEIGH","RTM_GETNEIGHTBL","RTM_GETNETCONF","RTM_GETNSID","RTM_GETQDISC","RTM_GETROUTE","RTM_GETRULE","RTM_GETSTATS","RTM_GETTCLASS","RTM_GETTFILTER","RTM_NEWACTION","RTM_NEWADDR","RTM_NEWADDRLABEL","RTM_NEWCACHEREPORT","RTM_NEWLINK","RTM_NEWMDB","RTM_NEWNDUSEROPT","RTM_NEWNEIGH","RTM_NEWNEIGHTBL","RTM_NEWNETCONF","RTM_NEWNSID","RTM_NEWPREFIX","RTM_NEWQDISC","RTM_NEWROUTE","RTM_NEWRULE","RTM_NEWSTATS","RTM_NEWTCLASS","RTM_NEWTFILTER","RTM_SETDCB","RTM_SETLINK","RTM_SETNEIGHTBL","RTNLGRP_BRVLAN","RTNLGRP_DCB","RTNLGRP_DECnet_IFADDR","RTNLGRP_DECnet_ROUTE","RTNLGRP_DECnet_RULE","RTNLGRP_IPV4_IFADDR","RTNLGRP_IPV4_MROUTE","RTNLGRP_IPV4_MROUTE_R","RTNLGRP_IPV4_NETCONF","RTNLGRP_IPV4_ROUTE","RTNLGRP_IPV4_RULE","RTNLGRP_IPV6_IFADDR","RTNLGRP_IPV6_IFINFO","RTNLGRP_IPV6_MROUTE","RTNLGRP_IPV6_MROUTE_R","RTNLGRP_IPV6_NETCONF","RTNLGRP_IPV6_PREFIX","RTNLGRP_IPV6_ROUTE","RTNLGRP_IPV6_RULE","RTNLGRP_LINK","RTNLGRP_MCTP_IFADDR","RTNLGRP_MDB","RTNLGRP_MPLS_NETCONF","RTNLGRP_MPLS_ROUTE","RTNLGRP_ND_USEROPT","RTNLGRP_NEIGH","RTNLGRP_NEXTHOP","RTNLGRP_NONE","RTNLGRP_NOP2","RTNLGRP_NOP4","RTNLGRP_NOTIFY","RTNLGRP_NSID","RTNLGRP_PHONET_IFADDR","RTNLGRP_PHONET_ROUTE","RTNLGRP_STATS","RTNLGRP_TC","RTNLGRP_TUNNEL","RTN_ANYCAST","RTN_BLACKHOLE","RTN_BROADCAST","RTN_LOCAL","RTN_MULTICAST","RTN_NAT","RTN_PROHIBIT","RTN_THROW","RTN_UNICAST","RTN_UNREACHABLE","RTN_UNSPEC","RTN_XRESOLVE","RTPROT_BOOT","RTPROT_KERNEL","RTPROT_REDIRECT","RTPROT_STATIC","RTPROT_UNSPEC","RT_ADDRCLASS","RT_CLASS_DEFAULT","RT_CLASS_LOCAL","RT_CLASS_MAIN","RT_CLASS_MAX","RT_CLASS_UNSPEC","RT_LOCALADDR","RT_SCOPE_HOST","RT_SCOPE_LINK","RT_SCOPE_NOWHERE","RT_SCOPE_SITE","RT_SCOPE_UNIVERSE","RT_TABLE_COMPAT","RT_TABLE_DEFAULT","RT_TABLE_LOCAL","RT_TABLE_MAIN","RT_TABLE_UNSPEC","RT_TOS","RUN_LVL","RUSAGE_CHILDREN","RUSAGE_SELF","RUSAGE_THREAD","RWF_APPEND","RWF_DSYNC","RWF_HIPRI","RWF_NOWAIT","RWF_SYNC","R_OK","SA_NOCLDSTOP","SA_NOCLDWAIT","SA_NODEFER","SA_ONSTACK","SA_RESETHAND","SA_RESTART","SA_SIGINFO","SCHED_BATCH","SCHED_DEADLINE","SCHED_FIFO","SCHED_FLAG_ALL","SCHED_FLAG_DL_OVERRUN","SCHED_FLAG_KEEP_ALL","SCHED_FLAG_KEEP_PARAMS","SCHED_FLAG_KEEP_POLICY","SCHED_FLAG_RECLAIM","SCHED_FLAG_RESET_ON_FORK","SCHED_FLAG_UTIL_CLAMP","SCHED_FLAG_UTIL_CLAMP_MAX","SCHED_FLAG_UTIL_CLAMP_MIN","SCHED_IDLE","SCHED_NORMAL","SCHED_OTHER","SCHED_RESET_ON_FORK","SCHED_RR","SCM_CREDENTIALS","SCM_J1939_DEST_ADDR","SCM_J1939_DEST_NAME","SCM_J1939_ERRQUEUE","SCM_J1939_PRIO","SCM_RIGHTS","SCM_TIMESTAMP","SCM_TIMESTAMPING","SCM_TIMESTAMPING_OPT_STATS","SCM_TIMESTAMPING_PKTINFO","SCM_TIMESTAMPNS","SCM_TXTIME","SCM_WIFI_STATUS","SCTP_ABORT","SCTP_ADAPTATION_LAYER","SCTP_ADDR_OVER","SCTP_ALL_ASSOC","SCTP_ASSOCINFO","SCTP_AUTHINFO","SCTP_AUTH_ACTIVE_KEY","SCTP_AUTH_CHUNK","SCTP_AUTH_DEACTIVATE_KEY","SCTP_AUTH_DELETE_KEY","SCTP_AUTH_KEY","SCTP_AUTOCLOSE","SCTP_AUTO_ASCONF","SCTP_CONTEXT","SCTP_CURRENT_ASSOC","SCTP_DEFAULT_SEND_PARAM","SCTP_DEFAULT_SNDINFO","SCTP_DELAYED_ACK","SCTP_DELAYED_ACK_TIME","SCTP_DELAYED_SACK","SCTP_DISABLE_FRAGMENTS","SCTP_DSTADDRV4","SCTP_DSTADDRV6","SCTP_ENABLE_CHANGE_ASSOC_REQ","SCTP_ENABLE_RESET_ASSOC_REQ","SCTP_ENABLE_RESET_STREAM_REQ","SCTP_ENABLE_STRRESET_MASK","SCTP_EOF","SCTP_EVENTS","SCTP_FRAGMENT_INTERLEAVE","SCTP_FUTURE_ASSOC","SCTP_GET_ASSOC_ID_LIST","SCTP_GET_ASSOC_NUMBER","SCTP_GET_PEER_ADDR_INFO","SCTP_HMAC_IDENT","SCTP_INIT","SCTP_INITMSG","SCTP_I_WANT_MAPPED_V4_ADDR","SCTP_LOCAL_AUTH_CHUNKS","SCTP_MAXSEG","SCTP_MAX_BURST","SCTP_NODELAY","SCTP_NOTIFICATION","SCTP_NXTINFO","SCTP_PARTIAL_DELIVERY_POINT","SCTP_PEER_ADDR_PARAMS","SCTP_PEER_ADDR_THLDS","SCTP_PEER_ADDR_THLDS_V2","SCTP_PEER_AUTH_CHUNKS","SCTP_PRIMARY_ADDR","SCTP_PRINFO","SCTP_PR_INDEX","SCTP_PR_POLICY","SCTP_PR_PRIO_ENABLED","SCTP_PR_RTX_ENABLED","SCTP_PR_SCTP_ALL","SCTP_PR_SCTP_MASK","SCTP_PR_SCTP_MAX","SCTP_PR_SCTP_NONE","SCTP_PR_SCTP_PRIO","SCTP_PR_SCTP_RTX","SCTP_PR_SCTP_TTL","SCTP_PR_SET_POLICY","SCTP_PR_TTL_ENABLED","SCTP_RCVINFO","SCTP_RECVNXTINFO","SCTP_RECVRCVINFO","SCTP_REUSE_PORT","SCTP_RTOINFO","SCTP_SACK_IMMEDIATELY","SCTP_SENDALL","SCTP_SET_PEER_PRIMARY_ADDR","SCTP_SNDINFO","SCTP_SNDRCV","SCTP_STATUS","SCTP_STREAM_RESET_INCOMING","SCTP_STREAM_RESET_OUTGOING","SCTP_UNORDERED","SECCOMP_ADDFD_FLAG_SEND","SECCOMP_ADDFD_FLAG_SETFD","SECCOMP_FILTER_FLAG_LOG","SECCOMP_FILTER_FLAG_NEW_LISTENER","SECCOMP_FILTER_FLAG_SPEC_ALLOW","SECCOMP_FILTER_FLAG_TSYNC","SECCOMP_FILTER_FLAG_TSYNC_ESRCH","SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV","SECCOMP_GET_ACTION_AVAIL","SECCOMP_GET_NOTIF_SIZES","SECCOMP_MODE_DISABLED","SECCOMP_MODE_FILTER","SECCOMP_MODE_STRICT","SECCOMP_RET_ACTION","SECCOMP_RET_ACTION_FULL","SECCOMP_RET_ALLOW","SECCOMP_RET_DATA","SECCOMP_RET_ERRNO","SECCOMP_RET_KILL","SECCOMP_RET_KILL_PROCESS","SECCOMP_RET_KILL_THREAD","SECCOMP_RET_LOG","SECCOMP_RET_TRACE","SECCOMP_RET_TRAP","SECCOMP_SET_MODE_FILTER","SECCOMP_SET_MODE_STRICT","SECCOMP_USER_NOTIF_FLAG_CONTINUE","SECURITYFS_MAGIC","SEEK_CUR","SEEK_DATA","SEEK_END","SEEK_HOLE","SEEK_SET","SELFMAG","SELINUX_MAGIC","SEM_FAILED","SFD_CLOEXEC","SFD_NONBLOCK","SHM_EXEC","SHM_HUGETLB","SHM_LOCK","SHM_NORESERVE","SHM_R","SHM_RDONLY","SHM_REMAP","SHM_RND","SHM_UNLOCK","SHM_W","SHORT_INODE","SHUT_RD","SHUT_RDWR","SHUT_WR","SIGABRT","SIGALRM","SIGBUS","SIGCHLD","SIGCONT","SIGEV_NONE","SIGEV_SIGNAL","SIGEV_THREAD","SIGEV_THREAD_ID","SIGFPE","SIGHUP","SIGILL","SIGINT","SIGIO","SIGIOT","SIGKILL","SIGPIPE","SIGPOLL","SIGPROF","SIGPWR","SIGQUIT","SIGRTMAX","SIGRTMIN","SIGSEGV","SIGSTKFLT","SIGSTKSZ","SIGSTOP","SIGSYS","SIGTERM","SIGTRAP","SIGTSTP","SIGTTIN","SIGTTOU","SIGUNUSED","SIGURG","SIGUSR1","SIGUSR2","SIGVTALRM","SIGWINCH","SIGXCPU","SIGXFSZ","SIG_BLOCK","SIG_DFL","SIG_ERR","SIG_IGN","SIG_SETMASK","SIG_UNBLOCK","SIOCADDMULTI","SIOCADDRT","SIOCDARP","SIOCDELMULTI","SIOCDELRT","SIOCDIFADDR","SIOCDRARP","SIOCETHTOOL","SIOCGARP","SIOCGHWTSTAMP","SIOCGIFADDR","SIOCGIFBR","SIOCGIFBRDADDR","SIOCGIFCONF","SIOCGIFCOUNT","SIOCGIFDSTADDR","SIOCGIFENCAP","SIOCGIFFLAGS","SIOCGIFHWADDR","SIOCGIFINDEX","SIOCGIFMAP","SIOCGIFMEM","SIOCGIFMETRIC","SIOCGIFMTU","SIOCGIFNAME","SIOCGIFNETMASK","SIOCGIFPFLAGS","SIOCGIFSLAVE","SIOCGIFTXQLEN","SIOCGIWAP","SIOCGIWAPLIST","SIOCGIWAUTH","SIOCGIWENCODE","SIOCGIWENCODEEXT","SIOCGIWESSID","SIOCGIWFRAG","SIOCGIWFREQ","SIOCGIWGENIE","SIOCGIWMODE","SIOCGIWNAME","SIOCGIWNICKN","SIOCGIWNWID","SIOCGIWPOWER","SIOCGIWPRIV","SIOCGIWRANGE","SIOCGIWRATE","SIOCGIWRETRY","SIOCGIWRTS","SIOCGIWSCAN","SIOCGIWSENS","SIOCGIWSPY","SIOCGIWSTATS","SIOCGIWTHRSPY","SIOCGIWTXPOW","SIOCGMIIPHY","SIOCGMIIREG","SIOCGRARP","SIOCGSKNS","SIOCIWFIRST","SIOCIWFIRSTPRIV","SIOCIWLAST","SIOCIWLASTPRIV","SIOCOUTQNSD","SIOCSARP","SIOCSHWTSTAMP","SIOCSIFADDR","SIOCSIFBR","SIOCSIFBRDADDR","SIOCSIFDSTADDR","SIOCSIFENCAP","SIOCSIFFLAGS","SIOCSIFHWADDR","SIOCSIFHWBROADCAST","SIOCSIFLINK","SIOCSIFMAP","SIOCSIFMEM","SIOCSIFMETRIC","SIOCSIFMTU","SIOCSIFNAME","SIOCSIFNETMASK","SIOCSIFPFLAGS","SIOCSIFSLAVE","SIOCSIFTXQLEN","SIOCSIWAP","SIOCSIWAUTH","SIOCSIWCOMMIT","SIOCSIWENCODE","SIOCSIWENCODEEXT","SIOCSIWESSID","SIOCSIWFRAG","SIOCSIWFREQ","SIOCSIWGENIE","SIOCSIWMLME","SIOCSIWMODE","SIOCSIWNICKN","SIOCSIWNWID","SIOCSIWPMKSA","SIOCSIWPOWER","SIOCSIWPRIV","SIOCSIWRANGE","SIOCSIWRATE","SIOCSIWRETRY","SIOCSIWRTS","SIOCSIWSCAN","SIOCSIWSENS","SIOCSIWSPY","SIOCSIWSTATS","SIOCSIWTHRSPY","SIOCSIWTXPOW","SIOCSMIIREG","SIOCSRARP","SIOCWANDEV","SIOGIFINDEX","SI_LOAD_SHIFT","SKF_AD_ALU_XOR_X","SKF_AD_CPU","SKF_AD_HATYPE","SKF_AD_IFINDEX","SKF_AD_MARK","SKF_AD_MAX","SKF_AD_NLATTR","SKF_AD_NLATTR_NEST","SKF_AD_OFF","SKF_AD_PAY_OFFSET","SKF_AD_PKTTYPE","SKF_AD_PROTOCOL","SKF_AD_QUEUE","SKF_AD_RANDOM","SKF_AD_RXHASH","SKF_AD_VLAN_TAG","SKF_AD_VLAN_TAG_PRESENT","SKF_AD_VLAN_TPID","SKF_LL_OFF","SKF_NET_OFF","SK_MEMINFO_BACKLOG","SK_MEMINFO_DROPS","SK_MEMINFO_FWD_ALLOC","SK_MEMINFO_OPTMEM","SK_MEMINFO_RCVBUF","SK_MEMINFO_RMEM_ALLOC","SK_MEMINFO_SNDBUF","SK_MEMINFO_WMEM_ALLOC","SK_MEMINFO_WMEM_QUEUED","SMACK_MAGIC","SMB_SUPER_MAGIC","SND_CNT","SND_MAX","SOCK_CLOEXEC","SOCK_DCCP","SOCK_DGRAM","SOCK_NONBLOCK","SOCK_PACKET","SOCK_RAW","SOCK_RDM","SOCK_SEQPACKET","SOCK_STREAM","SOF_TIMESTAMPING_OPT_CMSG","SOF_TIMESTAMPING_OPT_ID","SOF_TIMESTAMPING_OPT_PKTINFO","SOF_TIMESTAMPING_OPT_STATS","SOF_TIMESTAMPING_OPT_TSONLY","SOF_TIMESTAMPING_OPT_TX_SWHW","SOF_TIMESTAMPING_RAW_HARDWARE","SOF_TIMESTAMPING_RX_HARDWARE","SOF_TIMESTAMPING_RX_SOFTWARE","SOF_TIMESTAMPING_SOFTWARE","SOF_TIMESTAMPING_SYS_HARDWARE","SOF_TIMESTAMPING_TX_ACK","SOF_TIMESTAMPING_TX_HARDWARE","SOF_TIMESTAMPING_TX_SCHED","SOF_TIMESTAMPING_TX_SOFTWARE","SOF_TXTIME_DEADLINE_MODE","SOF_TXTIME_REPORT_ERRORS","SOL_AAL","SOL_ALG","SOL_ATM","SOL_BLUETOOTH","SOL_CAIF","SOL_CAN_BASE","SOL_CAN_J1939","SOL_CAN_RAW","SOL_DCCP","SOL_DECNET","SOL_ICMPV6","SOL_IP","SOL_IPV6","SOL_IRDA","SOL_IUCV","SOL_LLC","SOL_NETBEUI","SOL_NETLINK","SOL_NFC","SOL_PACKET","SOL_PNPIPE","SOL_PPPOL2TP","SOL_RAW","SOL_RDS","SOL_RXRPC","SOL_SOCKET","SOL_TCP","SOL_TIPC","SOL_TLS","SOL_UDP","SOL_X25","SOL_XDP","SOMAXCONN","SO_ACCEPTCONN","SO_ATTACH_BPF","SO_ATTACH_FILTER","SO_ATTACH_REUSEPORT_CBPF","SO_ATTACH_REUSEPORT_EBPF","SO_BINDTODEVICE","SO_BINDTOIFINDEX","SO_BPF_EXTENSIONS","SO_BROADCAST","SO_BSDCOMPAT","SO_BUSY_POLL","SO_CNX_ADVICE","SO_COOKIE","SO_DEBUG","SO_DETACH_BPF","SO_DETACH_FILTER","SO_DETACH_REUSEPORT_BPF","SO_DOMAIN","SO_DONTROUTE","SO_EE_OFFENDER","SO_EE_ORIGIN_ICMP","SO_EE_ORIGIN_ICMP6","SO_EE_ORIGIN_LOCAL","SO_EE_ORIGIN_NONE","SO_EE_ORIGIN_TIMESTAMPING","SO_EE_ORIGIN_TXSTATUS","SO_ERROR","SO_GET_FILTER","SO_INCOMING_CPU","SO_INCOMING_NAPI_ID","SO_J1939_ERRQUEUE","SO_J1939_FILTER","SO_J1939_PROMISC","SO_J1939_SEND_PRIO","SO_KEEPALIVE","SO_LINGER","SO_LOCK_FILTER","SO_MARK","SO_MAX_PACING_RATE","SO_MEMINFO","SO_NOFCS","SO_NO_CHECK","SO_OOBINLINE","SO_ORIGINAL_DST","SO_PASSCRED","SO_PASSSEC","SO_PEEK_OFF","SO_PEERCRED","SO_PEERGROUPS","SO_PEERNAME","SO_PEERSEC","SO_PRIORITY","SO_PROTOCOL","SO_RCVBUF","SO_RCVBUFFORCE","SO_RCVLOWAT","SO_RCVTIMEO","SO_RCVTIMEO_NEW","SO_REUSEADDR","SO_REUSEPORT","SO_RXQ_OVFL","SO_SECURITY_AUTHENTICATION","SO_SECURITY_ENCRYPTION_NETWORK","SO_SECURITY_ENCRYPTION_TRANSPORT","SO_SELECT_ERR_QUEUE","SO_SNDBUF","SO_SNDBUFFORCE","SO_SNDLOWAT","SO_SNDTIMEO","SO_SNDTIMEO_NEW","SO_TIMESTAMP","SO_TIMESTAMPING","SO_TIMESTAMPING_NEW","SO_TIMESTAMPNS","SO_TIMESTAMPNS_NEW","SO_TIMESTAMP_NEW","SO_TXTIME","SO_TYPE","SO_WIFI_STATUS","SO_ZEROCOPY","SPLICE_F_GIFT","SPLICE_F_MORE","SPLICE_F_MOVE","SPLICE_F_NONBLOCK","SS","SS_DISABLE","SS_ONSTACK","STATX_ALL","STATX_ATIME","STATX_ATTR_APPEND","STATX_ATTR_AUTOMOUNT","STATX_ATTR_COMPRESSED","STATX_ATTR_DAX","STATX_ATTR_ENCRYPTED","STATX_ATTR_IMMUTABLE","STATX_ATTR_MOUNT_ROOT","STATX_ATTR_NODUMP","STATX_ATTR_VERITY","STATX_BASIC_STATS","STATX_BLOCKS","STATX_BTIME","STATX_CTIME","STATX_DIOALIGN","STATX_GID","STATX_INO","STATX_MNT_ID","STATX_MODE","STATX_MTIME","STATX_NLINK","STATX_SIZE","STATX_TYPE","STATX_UID","STATX__RESERVED","STA_CLK","STA_CLOCKERR","STA_DEL","STA_FLL","STA_FREQHOLD","STA_INS","STA_MODE","STA_NANO","STA_PLL","STA_PPSERROR","STA_PPSFREQ","STA_PPSJITTER","STA_PPSSIGNAL","STA_PPSTIME","STA_PPSWANDER","STA_RONLY","STA_UNSYNC","STDERR_FILENO","STDIN_FILENO","STDOUT_FILENO","STICKY_TIMEOUTS","ST_APPEND","ST_IMMUTABLE","ST_MANDLOCK","ST_NOATIME","ST_NODEV","ST_NODIRATIME","ST_NOEXEC","ST_NOSUID","ST_RDONLY","ST_RELATIME","ST_SYNCHRONOUS","ST_WRITE","SW_CNT","SW_MAX","SYNC_FILE_RANGE_WAIT_AFTER","SYNC_FILE_RANGE_WAIT_BEFORE","SYNC_FILE_RANGE_WRITE","SYN_CNT","SYN_MAX","SYSFS_MAGIC","SYS__sysctl","SYS_accept","SYS_accept4","SYS_access","SYS_acct","SYS_add_key","SYS_adjtimex","SYS_afs_syscall","SYS_alarm","SYS_arch_prctl","SYS_bind","SYS_bpf","SYS_brk","SYS_capget","SYS_capset","SYS_chdir","SYS_chmod","SYS_chown","SYS_chroot","SYS_clock_adjtime","SYS_clock_getres","SYS_clock_gettime","SYS_clock_nanosleep","SYS_clock_settime","SYS_clone","SYS_clone3","SYS_close","SYS_close_range","SYS_connect","SYS_copy_file_range","SYS_creat","SYS_create_module","SYS_delete_module","SYS_dup","SYS_dup2","SYS_dup3","SYS_epoll_create","SYS_epoll_create1","SYS_epoll_ctl","SYS_epoll_ctl_old","SYS_epoll_pwait","SYS_epoll_pwait2","SYS_epoll_wait","SYS_epoll_wait_old","SYS_eventfd","SYS_eventfd2","SYS_execve","SYS_execveat","SYS_exit","SYS_exit_group","SYS_faccessat","SYS_faccessat2","SYS_fadvise64","SYS_fallocate","SYS_fanotify_init","SYS_fanotify_mark","SYS_fchdir","SYS_fchmod","SYS_fchmodat","SYS_fchown","SYS_fchownat","SYS_fcntl","SYS_fdatasync","SYS_fgetxattr","SYS_finit_module","SYS_flistxattr","SYS_flock","SYS_fork","SYS_fremovexattr","SYS_fsconfig","SYS_fsetxattr","SYS_fsmount","SYS_fsopen","SYS_fspick","SYS_fstat","SYS_fstatfs","SYS_fsync","SYS_ftruncate","SYS_futex","SYS_futex_waitv","SYS_futimesat","SYS_get_kernel_syms","SYS_get_mempolicy","SYS_get_robust_list","SYS_get_thread_area","SYS_getcpu","SYS_getcwd","SYS_getdents","SYS_getdents64","SYS_getegid","SYS_geteuid","SYS_getgid","SYS_getgroups","SYS_getitimer","SYS_getpeername","SYS_getpgid","SYS_getpgrp","SYS_getpid","SYS_getpmsg","SYS_getppid","SYS_getpriority","SYS_getrandom","SYS_getresgid","SYS_getresuid","SYS_getrlimit","SYS_getrusage","SYS_getsid","SYS_getsockname","SYS_getsockopt","SYS_gettid","SYS_gettimeofday","SYS_getuid","SYS_getxattr","SYS_init_module","SYS_inotify_add_watch","SYS_inotify_init","SYS_inotify_init1","SYS_inotify_rm_watch","SYS_io_cancel","SYS_io_destroy","SYS_io_getevents","SYS_io_setup","SYS_io_submit","SYS_io_uring_enter","SYS_io_uring_register","SYS_io_uring_setup","SYS_ioctl","SYS_ioperm","SYS_iopl","SYS_ioprio_get","SYS_ioprio_set","SYS_kcmp","SYS_kexec_file_load","SYS_kexec_load","SYS_keyctl","SYS_kill","SYS_landlock_add_rule","SYS_landlock_create_ruleset","SYS_landlock_restrict_self","SYS_lchown","SYS_lgetxattr","SYS_link","SYS_linkat","SYS_listen","SYS_listxattr","SYS_llistxattr","SYS_lookup_dcookie","SYS_lremovexattr","SYS_lseek","SYS_lsetxattr","SYS_lstat","SYS_madvise","SYS_mbind","SYS_membarrier","SYS_memfd_create","SYS_memfd_secret","SYS_migrate_pages","SYS_mincore","SYS_mkdir","SYS_mkdirat","SYS_mknod","SYS_mknodat","SYS_mlock","SYS_mlock2","SYS_mlockall","SYS_mmap","SYS_modify_ldt","SYS_mount","SYS_mount_setattr","SYS_move_mount","SYS_move_pages","SYS_mprotect","SYS_mq_getsetattr","SYS_mq_notify","SYS_mq_open","SYS_mq_timedreceive","SYS_mq_timedsend","SYS_mq_unlink","SYS_mremap","SYS_msgctl","SYS_msgget","SYS_msgrcv","SYS_msgsnd","SYS_msync","SYS_munlock","SYS_munlockall","SYS_munmap","SYS_name_to_handle_at","SYS_nanosleep","SYS_newfstatat","SYS_nfsservctl","SYS_open","SYS_open_by_handle_at","SYS_open_tree","SYS_openat","SYS_openat2","SYS_pause","SYS_perf_event_open","SYS_personality","SYS_pidfd_getfd","SYS_pidfd_open","SYS_pidfd_send_signal","SYS_pipe","SYS_pipe2","SYS_pivot_root","SYS_pkey_alloc","SYS_pkey_free","SYS_pkey_mprotect","SYS_poll","SYS_ppoll","SYS_prctl","SYS_pread64","SYS_preadv","SYS_preadv2","SYS_prlimit64","SYS_process_madvise","SYS_process_mrelease","SYS_process_vm_readv","SYS_process_vm_writev","SYS_pselect6","SYS_ptrace","SYS_putpmsg","SYS_pwrite64","SYS_pwritev","SYS_pwritev2","SYS_query_module","SYS_quotactl","SYS_quotactl_fd","SYS_read","SYS_readahead","SYS_readlink","SYS_readlinkat","SYS_readv","SYS_reboot","SYS_recvfrom","SYS_recvmmsg","SYS_recvmsg","SYS_remap_file_pages","SYS_removexattr","SYS_rename","SYS_renameat","SYS_renameat2","SYS_request_key","SYS_restart_syscall","SYS_rmdir","SYS_rseq","SYS_rt_sigaction","SYS_rt_sigpending","SYS_rt_sigprocmask","SYS_rt_sigqueueinfo","SYS_rt_sigreturn","SYS_rt_sigsuspend","SYS_rt_sigtimedwait","SYS_rt_tgsigqueueinfo","SYS_sched_get_priority_max","SYS_sched_get_priority_min","SYS_sched_getaffinity","SYS_sched_getattr","SYS_sched_getparam","SYS_sched_getscheduler","SYS_sched_rr_get_interval","SYS_sched_setaffinity","SYS_sched_setattr","SYS_sched_setparam","SYS_sched_setscheduler","SYS_sched_yield","SYS_seccomp","SYS_security","SYS_select","SYS_semctl","SYS_semget","SYS_semop","SYS_semtimedop","SYS_sendfile","SYS_sendmmsg","SYS_sendmsg","SYS_sendto","SYS_set_mempolicy","SYS_set_mempolicy_home_node","SYS_set_robust_list","SYS_set_thread_area","SYS_set_tid_address","SYS_setdomainname","SYS_setfsgid","SYS_setfsuid","SYS_setgid","SYS_setgroups","SYS_sethostname","SYS_setitimer","SYS_setns","SYS_setpgid","SYS_setpriority","SYS_setregid","SYS_setresgid","SYS_setresuid","SYS_setreuid","SYS_setrlimit","SYS_setsid","SYS_setsockopt","SYS_settimeofday","SYS_setuid","SYS_setxattr","SYS_shmat","SYS_shmctl","SYS_shmdt","SYS_shmget","SYS_shutdown","SYS_sigaltstack","SYS_signalfd","SYS_signalfd4","SYS_socket","SYS_socketpair","SYS_splice","SYS_stat","SYS_statfs","SYS_statx","SYS_swapoff","SYS_swapon","SYS_symlink","SYS_symlinkat","SYS_sync","SYS_sync_file_range","SYS_syncfs","SYS_sysfs","SYS_sysinfo","SYS_syslog","SYS_tee","SYS_tgkill","SYS_time","SYS_timer_create","SYS_timer_delete","SYS_timer_getoverrun","SYS_timer_gettime","SYS_timer_settime","SYS_timerfd_create","SYS_timerfd_gettime","SYS_timerfd_settime","SYS_times","SYS_tkill","SYS_truncate","SYS_tuxcall","SYS_umask","SYS_umount2","SYS_uname","SYS_unlink","SYS_unlinkat","SYS_unshare","SYS_uselib","SYS_userfaultfd","SYS_ustat","SYS_utime","SYS_utimensat","SYS_utimes","SYS_vfork","SYS_vhangup","SYS_vmsplice","SYS_vserver","SYS_wait4","SYS_waitid","SYS_write","SYS_writev","S_IEXEC","S_IFBLK","S_IFCHR","S_IFDIR","S_IFIFO","S_IFLNK","S_IFMT","S_IFREG","S_IFSOCK","S_IREAD","S_IRGRP","S_IROTH","S_IRUSR","S_IRWXG","S_IRWXO","S_IRWXU","S_ISGID","S_ISUID","S_ISVTX","S_IWGRP","S_IWOTH","S_IWRITE","S_IWUSR","S_IXGRP","S_IXOTH","S_IXUSR","TAB0","TAB1","TAB2","TAB3","TABDLY","TCA_CHAIN","TCA_DUMP_INVISIBLE","TCA_FCNT","TCA_HW_OFFLOAD","TCA_KIND","TCA_OPTIONS","TCA_PAD","TCA_RATE","TCA_STAB","TCA_STATS","TCA_STATS2","TCA_UNSPEC","TCA_XSTATS","TCFLSH","TCGETA","TCGETS","TCGETS2","TCGETX","TCIFLUSH","TCIOFF","TCIOFLUSH","TCION","TCOFLUSH","TCOOFF","TCOON","TCP_CC_INFO","TCP_CM_INQ","TCP_CONGESTION","TCP_COOKIE_TRANSACTIONS","TCP_CORK","TCP_DEFER_ACCEPT","TCP_FASTOPEN","TCP_FASTOPEN_CONNECT","TCP_FASTOPEN_KEY","TCP_FASTOPEN_NO_COOKIE","TCP_INFO","TCP_INQ","TCP_KEEPCNT","TCP_KEEPIDLE","TCP_KEEPINTVL","TCP_LINGER2","TCP_MAXSEG","TCP_MD5SIG","TCP_MD5SIG_EXT","TCP_MD5SIG_MAXKEYLEN","TCP_NODELAY","TCP_NOTSENT_LOWAT","TCP_QUEUE_SEQ","TCP_QUICKACK","TCP_REPAIR","TCP_REPAIR_OPTIONS","TCP_REPAIR_QUEUE","TCP_REPAIR_WINDOW","TCP_SAVED_SYN","TCP_SAVE_SYN","TCP_SYNCNT","TCP_THIN_DUPACK","TCP_THIN_LINEAR_TIMEOUTS","TCP_TIMESTAMP","TCP_ULP","TCP_USER_TIMEOUT","TCP_WINDOW_CLAMP","TCP_ZEROCOPY_RECEIVE","TCSADRAIN","TCSAFLUSH","TCSANOW","TCSBRK","TCSBRKP","TCSETA","TCSETAF","TCSETAW","TCSETS","TCSETS2","TCSETSF","TCSETSF2","TCSETSW","TCSETSW2","TCSETX","TCSETXF","TCSETXW","TCXONC","TFD_CLOEXEC","TFD_NONBLOCK","TFD_TIMER_ABSTIME","TFD_TIMER_CANCEL_ON_SET","THOUSEP","TIMER_ABSTIME","TIME_BAD","TIME_DEL","TIME_ERROR","TIME_INS","TIME_OK","TIME_OOP","TIME_WAIT","TIOCCBRK","TIOCCONS","TIOCEXCL","TIOCGDEV","TIOCGETD","TIOCGEXCL","TIOCGICOUNT","TIOCGLCKTRMIOS","TIOCGPGRP","TIOCGPKT","TIOCGPTLCK","TIOCGPTN","TIOCGPTPEER","TIOCGRS485","TIOCGSERIAL","TIOCGSID","TIOCGSOFTCAR","TIOCGWINSZ","TIOCINQ","TIOCLINUX","TIOCMBIC","TIOCMBIS","TIOCMGET","TIOCMIWAIT","TIOCMSET","TIOCM_CAR","TIOCM_CD","TIOCM_CTS","TIOCM_DSR","TIOCM_DTR","TIOCM_LE","TIOCM_RI","TIOCM_RNG","TIOCM_RTS","TIOCM_SR","TIOCM_ST","TIOCNOTTY","TIOCNXCL","TIOCOUTQ","TIOCPKT","TIOCSBRK","TIOCSCTTY","TIOCSERCONFIG","TIOCSERGETLSR","TIOCSERGETMULTI","TIOCSERGSTRUCT","TIOCSERGWILD","TIOCSERSETMULTI","TIOCSERSWILD","TIOCSETD","TIOCSIG","TIOCSLCKTRMIOS","TIOCSPGRP","TIOCSPTLCK","TIOCSRS485","TIOCSSERIAL","TIOCSSOFTCAR","TIOCSTI","TIOCSWINSZ","TIOCVHANGUP","TLS_1_2_VERSION","TLS_1_2_VERSION_MAJOR","TLS_1_2_VERSION_MINOR","TLS_1_3_VERSION","TLS_1_3_VERSION_MAJOR","TLS_1_3_VERSION_MINOR","TLS_CIPHER_AES_GCM_128","TLS_CIPHER_AES_GCM_128_IV_SIZE","TLS_CIPHER_AES_GCM_128_KEY_SIZE","TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE","TLS_CIPHER_AES_GCM_128_SALT_SIZE","TLS_CIPHER_AES_GCM_128_TAG_SIZE","TLS_CIPHER_AES_GCM_256","TLS_CIPHER_AES_GCM_256_IV_SIZE","TLS_CIPHER_AES_GCM_256_KEY_SIZE","TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE","TLS_CIPHER_AES_GCM_256_SALT_SIZE","TLS_CIPHER_AES_GCM_256_TAG_SIZE","TLS_CIPHER_CHACHA20_POLY1305","TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE","TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE","TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE","TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE","TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE","TLS_GET_RECORD_TYPE","TLS_RX","TLS_SET_RECORD_TYPE","TLS_TX","TMPFS_MAGIC","TMP_MAX","TOSTOP","TRACEFS_MAGIC","TUN_FLT_ALLMULTI","TUN_F_CSUM","TUN_F_TSO4","TUN_F_TSO6","TUN_F_TSO_ECN","TUN_F_UFO","TUN_F_USO4","TUN_F_USO6","TUN_PKT_STRIP","TUN_READQ_SIZE","TUN_TAP_DEV","TUN_TUN_DEV","TUN_TX_TIMESTAMP","TUN_TYPE_MASK","T_FMT","T_FMT_AMPM","UDF_SUPER_MAGIC","UDP_CORK","UDP_ENCAP","UDP_GRO","UDP_NO_CHECK6_RX","UDP_NO_CHECK6_TX","UDP_SEGMENT","UINPUT_MAX_NAME_SIZE","UINPUT_VERSION","UIO_MAXIOV","UMOUNT_NOFOLLOW","UNAME26","USBDEVICE_SUPER_MAGIC","USER_PROCESS","USRQUOTA","UTIME_NOW","UTIME_OMIT","VDISCARD","VEOF","VEOL","VEOL2","VERASE","VINTR","VKILL","VLNEXT","VMADDR_CID_ANY","VMADDR_CID_HOST","VMADDR_CID_HYPERVISOR","VMADDR_CID_LOCAL","VMADDR_CID_RESERVED","VMADDR_PORT_ANY","VMIN","VM_BLOCK_DUMP","VM_DIRTY_BACKGROUND","VM_DIRTY_EXPIRE_CS","VM_DIRTY_RATIO","VM_DIRTY_WB_CS","VM_DROP_PAGECACHE","VM_HUGETLB_GROUP","VM_HUGETLB_PAGES","VM_LAPTOP_MODE","VM_LEGACY_VA_LAYOUT","VM_LOWMEM_RESERVE_RATIO","VM_MAX_MAP_COUNT","VM_MIN_FREE_KBYTES","VM_MIN_SLAB","VM_MIN_UNMAPPED","VM_NR_PDFLUSH_THREADS","VM_OVERCOMMIT_MEMORY","VM_OVERCOMMIT_RATIO","VM_PAGEBUF","VM_PAGE_CLUSTER","VM_PANIC_ON_OOM","VM_PERCPU_PAGELIST_FRACTION","VM_SWAPPINESS","VM_SWAP_TOKEN_TIMEOUT","VM_VDSO_ENABLED","VM_VFS_CACHE_PRESSURE","VM_ZONE_RECLAIM_MODE","VQUIT","VREPRINT","VSTART","VSTOP","VSUSP","VSWTC","VT0","VT1","VTDLY","VTIME","VWERASE","WCONTINUED","WCOREDUMP","WEXITED","WEXITSTATUS","WHOLE_SECONDS","WIFCONTINUED","WIFEXITED","WIFSIGNALED","WIFSTOPPED","WIRELESS_EXT","WNOHANG","WNOWAIT","WSTOPPED","WSTOPSIG","WTERMSIG","WUNTRACED","W_EXITCODE","W_OK","W_STOPCODE","XATTR_CREATE","XATTR_REPLACE","XDP_COPY","XDP_MMAP_OFFSETS","XDP_OPTIONS","XDP_OPTIONS_ZEROCOPY","XDP_PGOFF_RX_RING","XDP_PGOFF_TX_RING","XDP_PKT_CONTD","XDP_RING_NEED_WAKEUP","XDP_RX_RING","XDP_SHARED_UMEM","XDP_STATISTICS","XDP_TX_RING","XDP_UMEM_COMPLETION_RING","XDP_UMEM_FILL_RING","XDP_UMEM_PGOFF_COMPLETION_RING","XDP_UMEM_PGOFF_FILL_RING","XDP_UMEM_REG","XDP_UMEM_UNALIGNED_CHUNK_FLAG","XDP_USE_NEED_WAKEUP","XDP_USE_SG","XDP_ZEROCOPY","XENFS_SUPER_MAGIC","XFS_SUPER_MAGIC","XSK_UNALIGNED_BUF_ADDR_MASK","XSK_UNALIGNED_BUF_OFFSET_SHIFT","XTABS","X_OK","YESEXPR","YESSTR","_IOFBF","_IOLBF","_IONBF","_PC_2_SYMLINKS","_PC_ALLOC_SIZE_MIN","_PC_ASYNC_IO","_PC_CHOWN_RESTRICTED","_PC_FILESIZEBITS","_PC_LINK_MAX","_PC_MAX_CANON","_PC_MAX_INPUT","_PC_NAME_MAX","_PC_NO_TRUNC","_PC_PATH_MAX","_PC_PIPE_BUF","_PC_PRIO_IO","_PC_REC_INCR_XFER_SIZE","_PC_REC_MAX_XFER_SIZE","_PC_REC_MIN_XFER_SIZE","_PC_REC_XFER_ALIGN","_PC_SOCK_MAXBUF","_PC_SYMLINK_MAX","_PC_SYNC_IO","_PC_VDISABLE","_POSIX_VDISABLE","_SC_2_CHAR_TERM","_SC_2_C_BIND","_SC_2_C_DEV","_SC_2_C_VERSION","_SC_2_FORT_DEV","_SC_2_FORT_RUN","_SC_2_LOCALEDEF","_SC_2_PBS","_SC_2_PBS_ACCOUNTING","_SC_2_PBS_CHECKPOINT","_SC_2_PBS_LOCATE","_SC_2_PBS_MESSAGE","_SC_2_PBS_TRACK","_SC_2_SW_DEV","_SC_2_UPE","_SC_2_VERSION","_SC_ADVISORY_INFO","_SC_AIO_LISTIO_MAX","_SC_AIO_MAX","_SC_AIO_PRIO_DELTA_MAX","_SC_ARG_MAX","_SC_ASYNCHRONOUS_IO","_SC_ATEXIT_MAX","_SC_AVPHYS_PAGES","_SC_BARRIERS","_SC_BASE","_SC_BC_BASE_MAX","_SC_BC_DIM_MAX","_SC_BC_SCALE_MAX","_SC_BC_STRING_MAX","_SC_CHARCLASS_NAME_MAX","_SC_CHAR_BIT","_SC_CHAR_MAX","_SC_CHAR_MIN","_SC_CHILD_MAX","_SC_CLK_TCK","_SC_CLOCK_SELECTION","_SC_COLL_WEIGHTS_MAX","_SC_CPUTIME","_SC_C_LANG_SUPPORT","_SC_C_LANG_SUPPORT_R","_SC_DELAYTIMER_MAX","_SC_DEVICE_IO","_SC_DEVICE_SPECIFIC","_SC_DEVICE_SPECIFIC_R","_SC_EQUIV_CLASS_MAX","_SC_EXPR_NEST_MAX","_SC_FD_MGMT","_SC_FIFO","_SC_FILE_ATTRIBUTES","_SC_FILE_LOCKING","_SC_FILE_SYSTEM","_SC_FSYNC","_SC_GETGR_R_SIZE_MAX","_SC_GETPW_R_SIZE_MAX","_SC_HOST_NAME_MAX","_SC_INT_MAX","_SC_INT_MIN","_SC_IOV_MAX","_SC_IPV6","_SC_JOB_CONTROL","_SC_LEVEL1_DCACHE_ASSOC","_SC_LEVEL1_DCACHE_LINESIZE","_SC_LEVEL1_DCACHE_SIZE","_SC_LEVEL1_ICACHE_ASSOC","_SC_LEVEL1_ICACHE_LINESIZE","_SC_LEVEL1_ICACHE_SIZE","_SC_LEVEL2_CACHE_ASSOC","_SC_LEVEL2_CACHE_LINESIZE","_SC_LEVEL2_CACHE_SIZE","_SC_LEVEL3_CACHE_ASSOC","_SC_LEVEL3_CACHE_LINESIZE","_SC_LEVEL3_CACHE_SIZE","_SC_LEVEL4_CACHE_ASSOC","_SC_LEVEL4_CACHE_LINESIZE","_SC_LEVEL4_CACHE_SIZE","_SC_LINE_MAX","_SC_LOGIN_NAME_MAX","_SC_LONG_BIT","_SC_MAPPED_FILES","_SC_MB_LEN_MAX","_SC_MEMLOCK","_SC_MEMLOCK_RANGE","_SC_MEMORY_PROTECTION","_SC_MESSAGE_PASSING","_SC_MONOTONIC_CLOCK","_SC_MQ_OPEN_MAX","_SC_MQ_PRIO_MAX","_SC_MULTI_PROCESS","_SC_NETWORKING","_SC_NGROUPS_MAX","_SC_NL_ARGMAX","_SC_NL_LANGMAX","_SC_NL_MSGMAX","_SC_NL_NMAX","_SC_NL_SETMAX","_SC_NL_TEXTMAX","_SC_NPROCESSORS_CONF","_SC_NPROCESSORS_ONLN","_SC_NZERO","_SC_OPEN_MAX","_SC_PAGESIZE","_SC_PAGE_SIZE","_SC_PASS_MAX","_SC_PHYS_PAGES","_SC_PII","_SC_PII_INTERNET","_SC_PII_INTERNET_DGRAM","_SC_PII_INTERNET_STREAM","_SC_PII_OSI","_SC_PII_OSI_CLTS","_SC_PII_OSI_COTS","_SC_PII_OSI_M","_SC_PII_SOCKET","_SC_PII_XTI","_SC_PIPE","_SC_POLL","_SC_PRIORITIZED_IO","_SC_PRIORITY_SCHEDULING","_SC_RAW_SOCKETS","_SC_READER_WRITER_LOCKS","_SC_REALTIME_SIGNALS","_SC_REGEXP","_SC_REGEX_VERSION","_SC_RE_DUP_MAX","_SC_RTSIG_MAX","_SC_SAVED_IDS","_SC_SCHAR_MAX","_SC_SCHAR_MIN","_SC_SELECT","_SC_SEMAPHORES","_SC_SEM_NSEMS_MAX","_SC_SEM_VALUE_MAX","_SC_SHARED_MEMORY_OBJECTS","_SC_SHELL","_SC_SHRT_MAX","_SC_SHRT_MIN","_SC_SIGNALS","_SC_SIGQUEUE_MAX","_SC_SINGLE_PROCESS","_SC_SPAWN","_SC_SPIN_LOCKS","_SC_SPORADIC_SERVER","_SC_SSIZE_MAX","_SC_SS_REPL_MAX","_SC_STREAMS","_SC_STREAM_MAX","_SC_SYMLOOP_MAX","_SC_SYNCHRONIZED_IO","_SC_SYSTEM_DATABASE","_SC_SYSTEM_DATABASE_R","_SC_THREADS","_SC_THREAD_ATTR_STACKADDR","_SC_THREAD_ATTR_STACKSIZE","_SC_THREAD_CPUTIME","_SC_THREAD_DESTRUCTOR_ITERATIONS","_SC_THREAD_KEYS_MAX","_SC_THREAD_PRIORITY_SCHEDULING","_SC_THREAD_PRIO_INHERIT","_SC_THREAD_PRIO_PROTECT","_SC_THREAD_PROCESS_SHARED","_SC_THREAD_ROBUST_PRIO_INHERIT","_SC_THREAD_ROBUST_PRIO_PROTECT","_SC_THREAD_SAFE_FUNCTIONS","_SC_THREAD_SPORADIC_SERVER","_SC_THREAD_STACK_MIN","_SC_THREAD_THREADS_MAX","_SC_TIMEOUTS","_SC_TIMERS","_SC_TIMER_MAX","_SC_TRACE","_SC_TRACE_EVENT_FILTER","_SC_TRACE_EVENT_NAME_MAX","_SC_TRACE_INHERIT","_SC_TRACE_LOG","_SC_TRACE_NAME_MAX","_SC_TRACE_SYS_MAX","_SC_TRACE_USER_EVENT_MAX","_SC_TTY_NAME_MAX","_SC_TYPED_MEMORY_OBJECTS","_SC_TZNAME_MAX","_SC_T_IOV_MAX","_SC_UCHAR_MAX","_SC_UINT_MAX","_SC_UIO_MAXIOV","_SC_ULONG_MAX","_SC_USER_GROUPS","_SC_USER_GROUPS_R","_SC_USHRT_MAX","_SC_V6_ILP32_OFF32","_SC_V6_ILP32_OFFBIG","_SC_V6_LP64_OFF64","_SC_V6_LPBIG_OFFBIG","_SC_V7_ILP32_OFF32","_SC_V7_ILP32_OFFBIG","_SC_V7_LP64_OFF64","_SC_V7_LPBIG_OFFBIG","_SC_VERSION","_SC_WORD_BIT","_SC_XBS5_ILP32_OFF32","_SC_XBS5_ILP32_OFFBIG","_SC_XBS5_LP64_OFF64","_SC_XBS5_LPBIG_OFFBIG","_SC_XOPEN_CRYPT","_SC_XOPEN_ENH_I18N","_SC_XOPEN_LEGACY","_SC_XOPEN_REALTIME","_SC_XOPEN_REALTIME_THREADS","_SC_XOPEN_SHM","_SC_XOPEN_STREAMS","_SC_XOPEN_UNIX","_SC_XOPEN_VERSION","_SC_XOPEN_XCU_VERSION","_SC_XOPEN_XPG2","_SC_XOPEN_XPG3","_SC_XOPEN_XPG4","__NFT_REG_MAX","__SIZEOF_PTHREAD_BARRIERATTR_T","__SIZEOF_PTHREAD_BARRIER_T","__SIZEOF_PTHREAD_CONDATTR_T","__SIZEOF_PTHREAD_COND_T","__SIZEOF_PTHREAD_MUTEXATTR_T","__SIZEOF_PTHREAD_MUTEX_T","__SIZEOF_PTHREAD_RWLOCKATTR_T","__SIZEOF_PTHREAD_RWLOCK_T","__UT_HOSTSIZE","__UT_LINESIZE","__UT_NAMESIZE","__WALL","__WCLONE","__WNOTHREAD","__c_anonymous_ifc_ifcu","__c_anonymous_ifr_ifru","__c_anonymous_ifru_map","__c_anonymous_ptrace_syscall_info_data","__c_anonymous_ptrace_syscall_info_entry","__c_anonymous_ptrace_syscall_info_exit","__c_anonymous_ptrace_syscall_info_seccomp","__c_anonymous_sockaddr_can_can_addr","__c_anonymous_sockaddr_can_j1939","__c_anonymous_sockaddr_can_tp","__errno_location","__exit_status","__fsword_t","__glibc_reserved1","__glibc_reserved2","__glibc_reserved3","__glibc_reserved4","__kernel_rwf_t","__key","__priority_which_t","__rlimit_resource_t","__s16","__s32","__s64","__seq","__statx_timestamp_pad1","__syscall_ulong_t","__timeval","__u16","__u32","__u64","__u8","__unused1","__unused10","__unused11","__unused2","__unused3","__unused4","__unused5","__unused6","__unused7","__unused8","__unused9","_exit","_f","_libc_fpstate","_libc_fpxreg","_libc_xmmreg","_st","_xmm","abort","abs","absflat","absfuzz","absinfo","absmax","absmin","accept","accept4","access","acct","actime","addmntent","addr","addr","addr","addr","addr","addr_mask","addrinfo","adjtime","adjtimex","af","af_alg_iv","ai_addr","ai_addrlen","ai_canonname","ai_family","ai_flags","ai_next","ai_protocol","ai_socktype","aio_buf","aio_buf","aio_cancel","aio_data","aio_error","aio_fildes","aio_fildes","aio_flags","aio_fsync","aio_key","aio_lio_opcode","aio_lio_opcode","aio_nbytes","aio_nbytes","aio_offset","aio_offset","aio_read","aio_reqprio","aio_reqprio","aio_resfd","aio_return","aio_rw_flags","aio_sigevent","aio_suspend","aio_write","aiocb","alarm","ar_hln","ar_hrd","ar_op","ar_pln","ar_pro","arch","arch","arena","arena","args","args","args","arp_dev","arp_flags","arp_flags","arp_ha","arp_ha","arp_netmask","arp_netmask","arp_pa","arp_pa","arpd_request","arphdr","arpreq","arpreq_old","asctime_r","atexit","atof","atoi","atol","atoll","attack_length","attack_level","auth_keynumber","backtrace","base_addr","bind","blkcnt64_t","blkcnt_t","blksize_t","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","brk","bsearch","bufferram","bustype","button","c_cc","c_cc","c_cflag","c_cflag","c_char","c_double","c_float","c_iflag","c_iflag","c_int","c_ispeed","c_ispeed","c_lflag","c_lflag","c_line","c_line","c_long","c_longlong","c_oflag","c_oflag","c_ospeed","c_ospeed","c_schar","c_short","c_uchar","c_uint","c_ulong","c_ulonglong","c_ushort","c_void","calcnt","calloc","can_addr","can_dlc","can_err_mask_t","can_family","can_filter","can_frame","can_id","can_id","can_id","can_ifindex","can_mask","canfd_frame","canid_t","canxl_frame","cc_t","center","cfgetispeed","cfgetospeed","cfmakeraw","cfsetispeed","cfsetospeed","cfsetspeed","cgid","cgroup","ch_addralign","ch_addralign","ch_reserved","ch_size","ch_size","ch_type","ch_type","chdir","child_tid","chmod","chown","chroot","chunk_size","chunk_size","cipher_type","clearenv","clearerr","clock_adjtime","clock_getcpuclockid","clock_getres","clock_gettime","clock_nanosleep","clock_settime","clock_t","clockid","clockid_t","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_args","close","close_range","closedir","closelog","cmd","cmsg_len","cmsg_level","cmsg_type","cmsghdr","code","code","code","codes_ptr","codes_size","connect","constant","consumer","consumer","cookie","copy_file_range","cpu_set_t","cr","cr","creat","creat64","cs","ctermid","ctime_r","cuid","currency_symbol","custom_data","custom_len","cwd","cwd","d_ino","d_ino","d_name","d_name","d_off","d_off","d_reclen","d_reclen","d_type","d_type","daemon","data","data","data","data","deadband","decimal_point","delay","desc","desc","dest_offset","dev","dev_t","difftime","direction","dirent","dirent64","dirfd","dirname","dl_iterate_phdr","dl_phdr_info","dladdr","dladdr1","dlclose","dlerror","dli_fbase","dli_fname","dli_saddr","dli_sname","dlinfo","dlmopen","dlopen","dlpi_addr","dlpi_adds","dlpi_name","dlpi_phdr","dlpi_phnum","dlpi_subs","dlpi_tls_data","dlpi_tls_modid","dlsym","dma","domainname","dqb_bhardlimit","dqb_bsoftlimit","dqb_btime","dqb_curinodes","dqb_curspace","dqb_ihardlimit","dqb_isoftlimit","dqb_itime","dqb_valid","dqblk","drand48","ds","dup","dup2","dup3","duplocale","e_ehsize","e_ehsize","e_entry","e_entry","e_exit","e_flags","e_flags","e_ident","e_ident","e_machine","e_machine","e_phentsize","e_phentsize","e_phnum","e_phnum","e_phoff","e_phoff","e_shentsize","e_shentsize","e_shnum","e_shnum","e_shoff","e_shoff","e_shstrndx","e_shstrndx","e_termination","e_type","e_type","e_version","e_version","eaccess","ee_code","ee_data","ee_errno","ee_info","ee_origin","ee_pad","ee_type","effect","effect_id","eflags","element","end_level","endgrent","endmntent","endpwent","endservent","endspent","endutxent","entry","envelope","envelope","envelope","epoll_create","epoll_create1","epoll_ctl","epoll_event","epoll_pwait","epoll_wait","erand48","errcnt","error","error","es","esterror","esterror","euidaccess","event_len","eventfd","eventfd_read","eventfd_t","eventfd_write","events","events","execl","execle","execlp","execv","execve","execveat","execvp","execvpe","exit","exit","exit_signal","explicit_bzero","exponent","f_bavail","f_bavail","f_bavail","f_bavail","f_bfree","f_bfree","f_bfree","f_bfree","f_blocks","f_blocks","f_blocks","f_blocks","f_bsize","f_bsize","f_bsize","f_bsize","f_favail","f_favail","f_ffree","f_ffree","f_ffree","f_ffree","f_files","f_files","f_files","f_files","f_flag","f_flag","f_flags","f_frsize","f_frsize","f_frsize","f_frsize","f_fsid","f_fsid","f_fsid","f_fsid","f_namelen","f_namelen","f_namemax","f_namemax","f_spare","f_type","f_type","faccessat","fade_length","fade_level","fallocate","fallocate64","fanotify_event_metadata","fanotify_init","fanotify_mark","fanotify_response","fchdir","fchmod","fchmodat","fchown","fchownat","fclose","fcntl","fd","fd","fd","fd_set","fdatasync","fdopen","fdopendir","feof","ferror","fexecve","ff_condition_effect","ff_constant_effect","ff_effect","ff_effects_max","ff_effects_max","ff_envelope","ff_periodic_effect","ff_ramp_effect","ff_replay","ff_rumble_effect","ff_trigger","fflush","fgetc","fgetgrent_r","fgetpos","fgetpos64","fgetpwent_r","fgets","fgetspent_r","fgetxattr","file_clone_range","fileno","filter","flag","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flat","flistxattr","flock","flock","flock64","fmemopen","fmt","fop","fop","fopen","fopen64","fordblks","fordblks","fork","forkpty","fpathconf","fpos64_t","fpos_t","fpregs","fprintf","fputc","fputs","fr","fr","frac_digits","fread","fread_unlocked","free","freeaddrinfo","freehigh","freeifaddrs","freelocale","freeram","freeswap","fremovexattr","freopen","freopen64","freq","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","fs","fs_base","fsblkcnt_t","fscanf","fseek","fseeko","fseeko64","fsetpos","fsetpos64","fsetxattr","fsfilcnt_t","fsid_t","fsmblks","fsmblks","fstat","fstat64","fstatat","fstatat64","fstatfs","fstatfs64","fstatvfs","fstatvfs64","fsync","ftell","ftello","ftello64","ftok","ftruncate","ftruncate64","ftw","ftw","futimens","futimes","fuzz","fwrite","gai_strerror","genlmsghdr","getaddrinfo","getauxval","getchar","getchar_unlocked","getcontext","getcwd","getdomainname","getdtablesize","getegid","getentropy","getenv","geteuid","getgid","getgrent","getgrent_r","getgrgid","getgrgid_r","getgrnam","getgrnam_r","getgrouplist","getgroups","gethostid","gethostname","getifaddrs","getline","getloadavg","getlogin","getmntent","getmntent_r","getnameinfo","getopt","getopt_long","getpeername","getpgid","getpgrp","getpid","getppid","getpriority","getprotobyname","getprotobynumber","getpt","getpwent","getpwent_r","getpwnam","getpwnam_r","getpwuid","getpwuid_r","getrandom","getresgid","getresuid","getrlimit","getrlimit64","getrusage","getservbyname","getservbyport","getservent","getsid","getsockname","getsockopt","getspent","getspent_r","getspnam","getspnam_r","gettid","gettimeofday","getuid","getutxent","getutxid","getutxline","getxattr","gid","gid","gid_t","gl_flags","gl_flags","gl_offs","gl_offs","gl_pathc","gl_pathc","gl_pathv","gl_pathv","glob","glob64","glob64_t","glob_t","globfree","globfree64","gmtime","gmtime_r","gnu_basename","gnu_get_libc_release","gnu_get_libc_version","gr_gid","gr_mem","gr_name","gr_passwd","grantpt","greg_t","gregs","group","group","grouping","gs","gs_base","h_addr_list","h_addrtype","h_aliases","h_length","h_name","ha","has_arg","hasmntopt","hblkhd","hblkhd","hblks","hblks","headroom","headroom","hostent","hstrerror","hwtstamp_config","i387","iconv","iconv_close","iconv_open","iconv_t","id","id","id","id","id","id","id_t","idtype_t","if_freenameindex","if_index","if_indextoname","if_name","if_nameindex","if_nameindex","if_nametoindex","ifa_addr","ifa_data","ifa_flags","ifa_ifu","ifa_name","ifa_netmask","ifa_next","ifaddrs","ifc_ifcu","ifc_len","ifconf","ifcu_buf","ifcu_req","ifr6_addr","ifr6_ifindex","ifr6_prefixlen","ifr_ifru","ifr_name","ifreq","ifru_addr","ifru_broadaddr","ifru_data","ifru_dstaddr","ifru_flags","ifru_hwaddr","ifru_ifindex","ifru_map","ifru_metric","ifru_mtu","ifru_netmask","ifru_newname","ifru_slave","imr_address","imr_ifindex","imr_interface","imr_interface","imr_multiaddr","imr_multiaddr","imr_multiaddr","imr_sourceaddr","in6_addr","in6_ifreq","in6_pktinfo","in6_rtmsg","in_addr","in_addr_t","in_pktinfo","in_port_t","index","info","info","info","initgroups","ino64_t","ino_t","inotify_add_watch","inotify_event","inotify_init","inotify_init1","inotify_rm_watch","input_absinfo","input_event","input_id","input_keymap_entry","input_mask","instruction_pointer","instruction_pointer","int16_t","int32_t","int64_t","int8_t","int_curr_symbol","int_frac_digits","int_n_cs_precedes","int_n_sep_by_space","int_n_sign_posn","int_p_cs_precedes","int_p_sep_by_space","int_p_sign_posn","interval","intmax_t","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","intptr_t","iocb","ioctl","ioperm","iopl","iov_base","iov_len","iovec","ip","ip_mreq","ip_mreq_source","ip_mreqn","ipc_perm","ipi6_addr","ipi6_ifindex","ipi_addr","ipi_ifindex","ipi_spec_dst","ipv6_mreq","ipv6mr_interface","ipv6mr_multiaddr","irq","is_error","isalnum","isalpha","isatty","isblank","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","it_interval","it_interval","it_value","it_value","itimerspec","itimerval","iv","iv","iv","iv","ivlen","j1939","j1939_filter","jf","jitcnt","jitter","jrand48","jt","k","keepcost","keepcost","key","key","key","key_t","keycode","kill","killpg","l_len","l_len","l_linger","l_onoff","l_pid","l_pid","l_start","l_start","l_type","l_type","l_whence","l_whence","labs","lchown","lcong48","lconv","left_coeff","left_saturation","len","len","len","len","len","len","len","len","length","level","lgetxattr","linger","link","linkat","lio_listio","listen","listxattr","llistxattr","loads","locale_t","localeconv","localtime","localtime_r","lockf","loff_t","login_tty","lrand48","lremovexattr","lseek","lseek64","lsetxattr","lstat","lstat64","lutimes","machine","madvise","magic","magnitude","major","makecontext","makedev","mallinfo","mallinfo","mallinfo2","mallinfo2","malloc","malloc_info","malloc_trim","malloc_usable_size","mallopt","mask","mask","max_align_t","maxerror","maxerror","maximum","mcontext_t","mem_end","mem_start","mem_unit","memalign","memchr","memcmp","memcpy","memfd_create","memmem","memmove","memrchr","memset","metadata_len","mincore","minimum","minor","mkdir","mkdirat","mkdtemp","mkfifo","mkfifoat","mknod","mknodat","mkostemp","mkostemps","mkstemp","mkstemps","mktime","mlock","mlock2","mlockall","mmap","mmap64","mmsghdr","mnt_dir","mnt_freq","mnt_fsname","mnt_opts","mnt_passno","mnt_type","mntent","mode","mode","mode_t","modes","modtime","mon_decimal_point","mon_grouping","mon_thousands_sep","mount","mprotect","mq_attr","mq_close","mq_curmsgs","mq_flags","mq_getattr","mq_maxmsg","mq_msgsize","mq_open","mq_receive","mq_send","mq_setattr","mq_timedreceive","mq_timedsend","mq_unlink","mqd_t","mr_address","mr_alen","mr_ifindex","mr_type","mrand48","mremap","msg","msg_control","msg_controllen","msg_ctime","msg_flags","msg_hdr","msg_iov","msg_iovlen","msg_len","msg_lrpid","msg_lspid","msg_name","msg_namelen","msg_perm","msg_qbytes","msg_qnum","msg_rtime","msg_stime","msgctl","msgget","msghdr","msginfo","msglen_t","msgmap","msgmax","msgmnb","msgmni","msgpool","msgqnum_t","msgrcv","msgseg","msgsnd","msgssz","msgtql","msqid_ds","msync","munlock","munlockall","munmap","mxcr_mask","mxcr_mask","mxcsr","mxcsr","n_cs_precedes","n_sep_by_space","n_sign_posn","name","name","name","name","name","name_mask","name_t","nanosleep","negative_sign","newfd","newfd_flags","newlocale","nfds_t","nice","nl_family","nl_groups","nl_item","nl_langinfo","nl_langinfo_l","nl_mmap_hdr","nl_mmap_req","nl_pid","nl_pktinfo","nla_len","nla_type","nlattr","nlink_t","nlmsg_flags","nlmsg_len","nlmsg_pid","nlmsg_seq","nlmsg_type","nlmsgerr","nlmsghdr","nm_block_nr","nm_block_size","nm_frame_nr","nm_frame_size","nm_gid","nm_group","nm_len","nm_pid","nm_status","nm_uid","nodename","nr","nr","nr","nr","nrand48","ntp_adjtime","ntp_gettime","ntptimeval","nxt_assoc_id","nxt_flags","nxt_length","nxt_ppid","nxt_sid","off","off64_t","off_t","offset","offset","old","op","open","open64","open_how","open_memstream","open_wmemstream","openat","openat64","opendir","openlog","openpty","option","options","ordblks","ordblks","orig_rax","p_aliases","p_align","p_align","p_cs_precedes","p_filesz","p_filesz","p_flags","p_flags","p_memsz","p_memsz","p_name","p_offset","p_offset","p_paddr","p_paddr","p_proto","p_sep_by_space","p_sign_posn","p_type","p_type","p_vaddr","p_vaddr","packet_mreq","pad","pad","pad","parent_tid","passwd","pathconf","pause","pclose","period","perror","personality","pgn","pgn","pgn_mask","pgn_t","phase","pid","pid","pid","pid_t","pidfd","pipe","pipe2","poll","pollfd","popen","port","positive_sign","posix_basename","posix_fadvise","posix_fadvise64","posix_fallocate","posix_fallocate64","posix_madvise","posix_memalign","posix_openpt","posix_spawn","posix_spawn_file_actions_addchdir_np","posix_spawn_file_actions_addclose","posix_spawn_file_actions_addclosefrom_np","posix_spawn_file_actions_adddup2","posix_spawn_file_actions_addfchdir_np","posix_spawn_file_actions_addopen","posix_spawn_file_actions_addtcsetpgrp_np","posix_spawn_file_actions_destroy","posix_spawn_file_actions_init","posix_spawn_file_actions_t","posix_spawnattr_destroy","posix_spawnattr_getflags","posix_spawnattr_getpgroup","posix_spawnattr_getschedparam","posix_spawnattr_getschedpolicy","posix_spawnattr_getsigdefault","posix_spawnattr_getsigmask","posix_spawnattr_init","posix_spawnattr_setflags","posix_spawnattr_setpgroup","posix_spawnattr_setschedparam","posix_spawnattr_setschedpolicy","posix_spawnattr_setsigdefault","posix_spawnattr_setsigmask","posix_spawnattr_t","posix_spawnp","ppoll","ppsfreq","pr_policy","pr_value","prctl","pread","pread64","preadv","preadv2","preadv64","preadv64v2","precision","printf","prio","priority_t","prlimit","prlimit64","process_vm_readv","process_vm_writev","procs","producer","producer","product","protoent","pselect","pthread_atfork","pthread_attr_destroy","pthread_attr_getaffinity_np","pthread_attr_getguardsize","pthread_attr_getinheritsched","pthread_attr_getschedparam","pthread_attr_getschedpolicy","pthread_attr_getstack","pthread_attr_getstacksize","pthread_attr_init","pthread_attr_setaffinity_np","pthread_attr_setdetachstate","pthread_attr_setguardsize","pthread_attr_setinheritsched","pthread_attr_setschedparam","pthread_attr_setschedpolicy","pthread_attr_setstacksize","pthread_attr_t","pthread_barrier_destroy","pthread_barrier_init","pthread_barrier_t","pthread_barrier_wait","pthread_barrierattr_destroy","pthread_barrierattr_getpshared","pthread_barrierattr_init","pthread_barrierattr_setpshared","pthread_barrierattr_t","pthread_cancel","pthread_cond_broadcast","pthread_cond_destroy","pthread_cond_init","pthread_cond_signal","pthread_cond_t","pthread_cond_timedwait","pthread_cond_wait","pthread_condattr_destroy","pthread_condattr_getclock","pthread_condattr_getpshared","pthread_condattr_init","pthread_condattr_setclock","pthread_condattr_setpshared","pthread_condattr_t","pthread_create","pthread_detach","pthread_exit","pthread_getaffinity_np","pthread_getattr_np","pthread_getcpuclockid","pthread_getname_np","pthread_getschedparam","pthread_getspecific","pthread_join","pthread_key_create","pthread_key_delete","pthread_key_t","pthread_kill","pthread_mutex_consistent","pthread_mutex_destroy","pthread_mutex_init","pthread_mutex_lock","pthread_mutex_t","pthread_mutex_timedlock","pthread_mutex_trylock","pthread_mutex_unlock","pthread_mutexattr_destroy","pthread_mutexattr_getprotocol","pthread_mutexattr_getpshared","pthread_mutexattr_getrobust","pthread_mutexattr_init","pthread_mutexattr_setprotocol","pthread_mutexattr_setpshared","pthread_mutexattr_setrobust","pthread_mutexattr_settype","pthread_mutexattr_t","pthread_once","pthread_once_t","pthread_rwlock_destroy","pthread_rwlock_init","pthread_rwlock_rdlock","pthread_rwlock_t","pthread_rwlock_tryrdlock","pthread_rwlock_trywrlock","pthread_rwlock_unlock","pthread_rwlock_wrlock","pthread_rwlockattr_destroy","pthread_rwlockattr_getkind_np","pthread_rwlockattr_getpshared","pthread_rwlockattr_init","pthread_rwlockattr_setkind_np","pthread_rwlockattr_setpshared","pthread_rwlockattr_t","pthread_self","pthread_setaffinity_np","pthread_setname_np","pthread_setschedparam","pthread_setschedprio","pthread_setspecific","pthread_sigmask","pthread_sigqueue","pthread_spin_destroy","pthread_spin_init","pthread_spin_lock","pthread_spin_trylock","pthread_spin_unlock","pthread_spinlock_t","pthread_t","ptrace","ptrace_peeksiginfo_args","ptrace_rseq_configuration","ptrace_syscall_info","ptrdiff_t","ptsname","ptsname_r","putchar","putchar_unlocked","putenv","putgrent","putpwent","puts","pututxline","pw_dir","pw_gecos","pw_gid","pw_name","pw_passwd","pw_shell","pw_uid","pwrite","pwrite64","pwritev","pwritev2","pwritev64","pwritev64v2","qsort","qsort_r","quotactl","r10","r11","r12","r13","r14","r15","r8","r9","raise","rand","rax","rbp","rbx","rcv_assoc_id","rcv_context","rcv_cumtsn","rcv_flags","rcv_ppid","rcv_sid","rcv_ssn","rcv_tsn","rcx","rdi","rdp","rdp","rdx","read","readahead","readdir","readdir64","readdir64_r","readdir_r","readlink","readlinkat","readv","realloc","reallocarray","realpath","reboot","rec_seq","rec_seq","rec_seq","recv","recvfrom","recvmmsg","recvmsg","regcomp","regerror","regex_t","regexec","regfree","regmatch_t","regoff_t","regs","release","remap_file_pages","remove","removexattr","rename","renameat","renameat2","replay","req","request_id","request_id","res_init","reserved","reserved","resolution","resolve","response","ret_data","retval","retval","revents","rewind","rewinddir","right_coeff","right_saturation","rip","rip","rip","rlim64_t","rlim_cur","rlim_cur","rlim_max","rlim_max","rlim_t","rlimit","rlimit64","rm_eo","rm_so","rmdir","rseq_abi_pointer","rseq_abi_size","rsi","rsp","rt_class","rt_dev","rt_dst","rt_flags","rt_gateway","rt_genmask","rt_irtt","rt_metric","rt_mtu","rt_pad1","rt_pad2","rt_pad3","rt_pad4","rt_tos","rt_window","rtentry","ru_idrss","ru_inblock","ru_isrss","ru_ixrss","ru_majflt","ru_maxrss","ru_minflt","ru_msgrcv","ru_msgsnd","ru_nivcsw","ru_nsignals","ru_nswap","ru_nvcsw","ru_oublock","ru_stime","ru_utime","rusage","rx","rx","rx_dropped","rx_dropped","rx_fill_ring_empty_descs","rx_filter","rx_id","rx_invalid_descs","rx_invalid_descs","rx_ring_full","s6_addr","s_addr","s_aliases","s_name","s_port","s_proto","sa_data","sa_family","sa_family_t","sa_flags","sa_mask","sa_restorer","sa_sigaction","salg_family","salg_feat","salg_mask","salg_name","salg_type","salt","salt","salt","sbrk","scancode","scanf","sched_attr","sched_deadline","sched_flags","sched_get_priority_max","sched_get_priority_min","sched_getaffinity","sched_getcpu","sched_getparam","sched_getscheduler","sched_nice","sched_param","sched_period","sched_policy","sched_priority","sched_priority","sched_rr_get_interval","sched_runtime","sched_setaffinity","sched_setparam","sched_setscheduler","sched_yield","sctp_assoc_t","sctp_authinfo","sctp_initmsg","sctp_nxtinfo","sctp_prinfo","sctp_rcvinfo","sctp_sndinfo","sctp_sndrcvinfo","sdt","seccomp","seccomp_data","seccomp_data","seccomp_notif","seccomp_notif","seccomp_notif_addfd","seccomp_notif_resp","seccomp_notif_resp","seccomp_notif_sizes","seed48","seekdir","select","sem_close","sem_ctime","sem_destroy","sem_flg","sem_getvalue","sem_init","sem_nsems","sem_num","sem_op","sem_open","sem_otime","sem_perm","sem_post","sem_t","sem_timedwait","sem_trywait","sem_unlink","sem_wait","semaem","sembuf","semctl","semget","semid_ds","seminfo","semmap","semmni","semmns","semmnu","semmsl","semop","semopm","semume","semusz","semvmx","send","sendfile","sendfile64","sendmmsg","sendmsg","sendto","servent","set_tid","set_tid_size","setbuf","setcontext","setdomainname","setegid","setenv","seteuid","setfsgid","setfsuid","setgid","setgrent","setgroups","sethostid","sethostname","setlocale","setlogmask","setmntent","setns","setpgid","setpriority","setpwent","setregid","setresgid","setresuid","setreuid","setrlimit","setrlimit64","setservent","setsid","setsockopt","setspent","settimeofday","setuid","setutxent","setvbuf","setxattr","sgetspent_r","sh_addr","sh_addr","sh_addralign","sh_addralign","sh_entsize","sh_entsize","sh_flags","sh_flags","sh_info","sh_info","sh_link","sh_link","sh_name","sh_name","sh_offset","sh_offset","sh_size","sh_size","sh_type","sh_type","sharedram","shift","shm_atime","shm_cpid","shm_ctime","shm_dtime","shm_lpid","shm_nattch","shm_open","shm_perm","shm_segsz","shm_unlink","shmat","shmatt_t","shmctl","shmdt","shmget","shmid_ds","shutdown","si_addr","si_code","si_errno","si_pid","si_signo","si_status","si_stime","si_uid","si_utime","si_value","sigaction","sigaction","sigaddset","sigaltstack","sigdelset","sigemptyset","sigev_notify","sigev_notify_thread_id","sigev_signo","sigev_value","sigevent","sigfillset","sighandler_t","siginfo_t","sigismember","signal","signal","signalfd","signalfd_siginfo","signature","significand","sigpending","sigprocmask","sigset_t","sigsuspend","sigtimedwait","sigval","sigwait","sigwaitinfo","sin6_addr","sin6_family","sin6_flowinfo","sin6_port","sin6_scope_id","sin_addr","sin_family","sin_port","sin_zero","sinfo_assoc_id","sinfo_context","sinfo_cumtsn","sinfo_flags","sinfo_ppid","sinfo_ssn","sinfo_stream","sinfo_timetolive","sinfo_tsn","sinit_max_attempts","sinit_max_init_timeo","sinit_max_instreams","sinit_num_ostreams","sival_ptr","size","size_t","sleep","sll_addr","sll_family","sll_halen","sll_hatype","sll_ifindex","sll_pkttype","sll_protocol","smblks","smblks","snd_assoc_id","snd_context","snd_flags","snd_ppid","snd_sid","snprintf","sock_extended_err","sock_filter","sock_fprog","sock_txtime","sockaddr","sockaddr_alg","sockaddr_can","sockaddr_in","sockaddr_in6","sockaddr_ll","sockaddr_nl","sockaddr_storage","sockaddr_un","sockaddr_vm","sockaddr_xdp","socket","socketpair","socklen_t","sp_expire","sp_flag","sp_inact","sp_lstchg","sp_max","sp_min","sp_namp","sp_pwdp","sp_warn","speed_t","splice","sprintf","spwd","srand","srand48","src_fd","src_length","src_offset","srcfd","ss","ss_family","ss_flags","ss_size","ss_sp","sscanf","ssi_addr","ssi_addr_lsb","ssi_arch","ssi_band","ssi_call_addr","ssi_code","ssi_errno","ssi_fd","ssi_int","ssi_overrun","ssi_pid","ssi_ptr","ssi_signo","ssi_status","ssi_stime","ssi_syscall","ssi_tid","ssi_trapno","ssi_uid","ssi_utime","ssize_t","st_atime","st_atime","st_atime_nsec","st_atime_nsec","st_blksize","st_blksize","st_blocks","st_blocks","st_ctime","st_ctime","st_ctime_nsec","st_ctime_nsec","st_dev","st_dev","st_gid","st_gid","st_info","st_info","st_ino","st_ino","st_mode","st_mode","st_mtime","st_mtime","st_mtime_nsec","st_mtime_nsec","st_name","st_name","st_nlink","st_nlink","st_other","st_other","st_rdev","st_rdev","st_shndx","st_shndx","st_size","st_size","st_size","st_size","st_space","st_uid","st_uid","st_value","st_value","stabil","stack","stack_pointer","stack_size","stack_t","stamp","start_code","start_level","start_stack","stat","stat","stat64","stat64","statfs","statfs","statfs64","statfs64","status","statvfs","statvfs","statvfs64","statvfs64","statx","statx","statx_timestamp","stbcnt","stpcpy","stpncpy","strcasecmp","strcasestr","strcat","strchr","strchrnul","strcmp","strcoll","strcpy","strcspn","strdup","strerror","strerror_r","strftime","strftime_l","strlen","strncasecmp","strncat","strncmp","strncpy","strndup","strnlen","strong_magnitude","strpbrk","strptime","strrchr","strsignal","strspn","strstr","strtod","strtof","strtok","strtok_r","strtol","strtoll","strtoul","strtoull","strxfrm","stx_atime","stx_attributes","stx_attributes_mask","stx_blksize","stx_blocks","stx_btime","stx_ctime","stx_dev_major","stx_dev_minor","stx_dio_mem_align","stx_dio_offset_align","stx_gid","stx_ino","stx_mask","stx_mnt_id","stx_mode","stx_mtime","stx_nlink","stx_rdev_major","stx_rdev_minor","stx_size","stx_uid","sun_family","sun_path","suseconds_t","sval","svm_cid","svm_family","svm_port","svm_reserved1","svm_zero","swapcontext","swapoff","swapon","swd","swd","sxdp_family","sxdp_flags","sxdp_ifindex","sxdp_queue_id","sxdp_shared_umem_fd","symlink","symlinkat","sync","sync_file_range","syncfs","syscall","sysconf","sysctl","sysinfo","sysinfo","syslog","sysname","system","tai","tai","tcdrain","tcflag_t","tcflow","tcflush","tcgetattr","tcgetpgrp","tcgetsid","tcsendbreak","tcsetattr","tcsetpgrp","tee","telldir","termios","termios2","thousands_sep","tick","time","time","time","time","time_t","timegm","timer_create","timer_delete","timer_getoverrun","timer_gettime","timer_settime","timer_t","timerfd_create","timerfd_gettime","timerfd_settime","times","timespec","timeval","timex","timezone","tls","tls12_crypto_info_aes_gcm_128","tls12_crypto_info_aes_gcm_256","tls12_crypto_info_chacha20_poly1305","tls_crypto_info","tm","tm_gmtoff","tm_hour","tm_isdst","tm_mday","tm_min","tm_mon","tm_sec","tm_wday","tm_yday","tm_year","tm_zone","tmpfile","tmpfile64","tmpnam","tms","tms_cstime","tms_cutime","tms_stime","tms_utime","tolerance","tolower","totalhigh","totalram","totalswap","toupper","tp","trigger","truncate","truncate64","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","ttyname","ttyname_r","tv_nsec","tv_nsec","tv_sec","tv_sec","tv_sec","tv_sec","tv_usec","tv_usec","tx","tx","tx_id","tx_invalid_descs","tx_invalid_descs","tx_ring_empty_descs","tx_type","type_","type_","type_","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","u","u","u64","u_ar0","u_comm","u_debugreg","u_dsize","u_fpstate","u_fpvalid","u_ssize","u_tsize","uc_flags","uc_link","uc_mcontext","uc_sigmask","uc_stack","ucontext_t","ucred","uid","uid","uid_t","uinput_abs_setup","uinput_ff_erase","uinput_ff_upload","uinput_setup","uinput_user_dev","uint16_t","uint32_t","uint64_t","uint8_t","uintmax_t","uintptr_t","umask","umount","umount2","uname","ungetc","unlink","unlinkat","unlockpt","unsetenv","unshare","uordblks","uordblks","updated","uptime","useconds_t","uselocale","user","user_fpregs_struct","user_regs_struct","usleep","usmblks","usmblks","ut_addr_v6","ut_exit","ut_host","ut_id","ut_line","ut_pid","ut_session","ut_tv","ut_type","ut_user","utimbuf","utime","utimensat","utimes","utmpname","utmpx","utmpxname","utsname","val","val","value","value","vendor","vers","version","version","version","version","vfork","vhangup","vmsplice","wait","wait4","waitid","waitpid","waveform","wchar_t","wcslen","wcstombs","wd","weak_magnitude","winsize","wmemchr","write","writev","ws_col","ws_row","ws_xpixel","ws_ypixel","xdp_desc","xdp_mmap_offsets","xdp_mmap_offsets_v1","xdp_options","xdp_ring_offset","xdp_ring_offset_v1","xdp_statistics","xdp_statistics_v1","xdp_umem_reg","xdp_umem_reg_v1","xmm_space"],"q":[[0,"libc"],[9188,"libc::unix::linux_like::linux"],[9189,"libc::unix::linux_like::linux::gnu"],[9190,"libc::unix"],[9191,"libc::unix::linux_like"],[9192,"libc::unix::linux_like::linux::gnu::b64"],[9193,"libc::unix::linux_like::linux::gnu::b64::x86_64"],[9194,"libc::unix::linux_like::linux::gnu::b64::x86_64::not_x32"],[9195,"libc::unix::linux_like::linux::gnu::b64::x86_64::align"],[9196,"libc::unix::linux_like::linux::gnu::align"],[9197,"libc::unix::linux_like::linux::arch::generic"],[9198,"libc::unix::linux_like::linux::non_exhaustive"],[9199,"libc::unix::align"],[9200,"core::ffi"],[9201,"core::fmt"],[9202,"core::result"],[9203,"core::any"],[9204,"libc::fixed_width_ints"]],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,171,171,171,0,216,0,0,0,0,0,216,158,0,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,0,196,0,0,0,212,212,0,0,144,144,90,144,144,0,0,0,0,23,0,112,114,186,187,191,114,0,0,0,237,0,45,45,45,45,45,45,45,45,159,192,0,192,0,159,192,192,0,192,159,192,159,192,159,192,0,159,192,192,0,192,159,0,0,0,0,56,56,56,56,56,116,180,164,165,116,177,179,54,54,55,54,55,54,55,54,55,0,0,0,0,0,0,0,0,0,0,81,81,134,0,125,0,0,0,0,249,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,250,251,252,39,40,41,42,21,43,44,45,46,17,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,253,63,64,65,66,67,68,69,70,13,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,240,110,20,111,112,113,114,4,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,7,5,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,249,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,250,251,252,39,40,41,42,21,43,44,45,46,17,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,253,63,64,65,66,67,68,69,70,13,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,240,110,20,111,112,113,114,4,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,7,5,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,0,0,196,75,80,163,225,163,225,0,0,0,163,225,0,163,225,163,225,163,225,0,0,163,225,163,225,0,0,0,0,0,0,0,0,170,0,156,235,0,156,0,0,113,235,236,156,113,0,0,0,0,84,0,0,0,0,0,0,216,223,173,174,173,173,174,173,174,0,223,0,0,0,186,187,136,0,0,0,0,0,0,0,0,0,154,0,0,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,21,43,44,45,46,17,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,13,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,20,111,112,113,114,4,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,7,5,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,0,0,0,0,0,104,5,5,5,0,74,90,4,78,78,0,170,182,184,107,0,0,183,185,0,0,213,0,0,216,50,85,85,212,219,141,152,141,152,141,152,141,152,141,152,0,118,235,236,237,84,50,79,182,184,124,106,0,0,87,0,0,0,0,0,0,0,0,0,0,49,49,49,49,0,0,0,91,91,91,91,91,91,91,91,0,125,61,66,66,66,66,66,66,66,66,66,0,0,213,0,0,0,0,92,93,92,93,160,92,93,92,93,92,93,92,93,92,93,92,93,92,93,92,93,92,93,92,93,160,92,93,92,93,0,20,20,20,20,20,20,20,88,89,213,211,83,0,0,0,0,0,0,193,82,83,85,0,0,0,0,0,0,0,170,119,122,213,170,171,0,230,0,0,0,0,31,58,0,0,0,0,0,0,0,0,0,193,223,0,210,200,207,208,221,200,207,208,221,200,207,208,221,200,207,208,221,208,221,200,207,208,221,200,207,208,221,208,221,207,200,207,208,221,200,207,208,221,200,207,208,221,207,200,207,0,81,81,0,0,0,0,0,0,0,0,0,0,0,0,0,31,108,230,0,0,0,0,0,0,0,0,0,0,143,144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,127,77,118,119,120,151,154,176,182,186,190,218,223,236,237,238,76,0,0,0,0,0,240,212,219,0,0,164,165,0,0,0,0,0,215,0,0,0,183,185,50,0,0,0,0,196,0,0,196,196,0,0,0,170,249,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,250,251,252,39,40,41,42,21,43,44,45,46,17,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,253,63,64,65,66,67,68,69,70,13,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,240,110,20,111,112,113,114,4,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,7,5,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,213,213,0,0,0,0,0,0,0,0,0,0,164,165,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,212,219,0,0,76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,216,0,63,162,63,162,63,162,63,162,0,0,0,0,0,0,0,0,0,0,0,22,22,22,22,0,0,215,0,166,50,213,213,29,29,29,29,29,106,127,0,164,165,164,165,186,187,0,0,0,214,0,0,0,0,87,118,119,120,143,144,0,0,0,71,0,71,0,0,0,52,52,52,52,52,52,52,0,150,150,0,149,149,126,126,126,148,148,0,147,147,147,147,147,147,147,147,147,147,147,147,147,41,41,40,42,40,41,42,42,0,0,0,0,0,0,0,0,77,137,138,139,0,0,0,0,0,0,0,0,0,0,0,0,0,116,180,0,0,0,0,50,50,50,50,50,50,50,50,80,0,249,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,250,251,252,39,40,41,42,21,43,44,45,46,17,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,253,63,64,65,66,67,68,69,70,13,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,240,110,20,111,112,113,114,4,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,7,5,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,0,0,0,0,0,30,30,0,106,0,0,0,0,105,105,51,51,51,0,28,28,125,178,0,0,0,0,0,0,0,0,0,0,0,0,0,35,68,35,68,0,0,137,138,139,145,145,155,0,4,170,170,0,4,4,164,165,137,138,139,0,77,0,0,201,202,33,33,201,202,201,202,201,202,201,202,0,0,0,0,84,84,77,107,115,186,187,191,236,237,79,82,0,0,0,0,0,0,0,0,196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,61,0,214,85,0,0,0,0,0,0,0,0,0,0,0,0,107,230,0,170,171,76,0,125,125,196,0,0,0,0,0,0,0,0,0,230,0,76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,101,101,101,101,101,0,216,238,0,170,23,50,50,50,0,0,0,0,146,146,0,146,146,0,0,0,0,0,0,0,0,70,70,70,70,0,0,122,7,7,197,7,57,7,7,57,197,197,7,7,197,197,197,197,197,0,0,0,0,0,72,72,72,72,72,0,0,72,0,72,72,0,0,0,0,0,212,219,212,219,50,50,50,112,114,127,143,144,114,0,0,50,120,120,0,0,0,140,140,0,0,0,0,0,140,0,123,123,0,0,121,121,121,121,121,0,0,167,167,167,167,168,168,168,168,168,168,61,116,176,177,179,0,0,0,0,132,132,132,132,132,176,0,0,85,170,88,180,0,0,0,0,0,0,0,0,0,0,0,191,164,165,213,38,96,97,50,96,97,96,97,96,97,38,96,97,96,97,38,50,50,96,97,96,97,0,180,196,218,223,0,0,0,0,85,0,0,112,114,114,0,85,100,118,230,0,223,0,0,0,0,0,125,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170,133,133,0,0,0,0,0,0,0,170,0,237,0,0,0,0,0,196,182,184,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,64,64,64,64,64,64,0,0,0,0,0,0,0,0,0,213,213,213,213,213,213,213,213,0,0,213,213,213,131,131,131,131,131,131,131,131,213,213,212,219,213,0,0,0,0,0,0,0,0,0,0,0,0,0,137,138,139,0,0,0,0,0,0,0,0,0,0,0,214,61,0,0,0,0,0,0,87,106,88,89,0,104,230,76,238,108,179,88,89,31,0,0,84,84,212,213,219,0,26,135,26,135,0,0,0,110,110,0,218,218,213,213,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,183,185,188,189,188,151,111,188,189,188,239,39,37,37,37,37,21,21,0,199,199,199,199,142,142,142,142,142,137,138,139,0,77,0,0,153,153,0,0,0,0,0,0,153,0,153,153,48,153,0,153,0,0,0,0,0,0,0,0,0,0,0,0,237,193,0,117,0,117,0,0,117,0,0,0,0,0,198,0,73,0,0,198,73,73,0,198,198,0,0,0,0,0,0,175,0,0,0,0,0,175,175,175,175,175,0,175,175,175,175,0,0,0,0,0,0,0,223,223,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,98,99,196,170,217,217,217,217,217,217,0,217,217,0,0,0,0,0,0,0,0,203,203,203,203,203,203,203,203,203,203,0,0,0,0,0,0,62,62,62,62,0,0,0,0,0,0,214,0,0,218,210,0,0,0,0,0,0,0,0,44,44,44,44,44,43,43,43,43,129,129,129,129,129,129,129,129,129,128,128,128,128,34,153,0,0,46,46,46,46,46,46,46,164,165,130,130,130,130,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,65,65,65,65,65,65,65,65,0,0,0,0,0,0,124,124,124,120,213,60,204,204,204,0,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,0,205,206,205,206,205,206,205,206,205,206,205,206,205,206,205,206,94,95,205,206,205,206,205,206,205,206,94,95,205,206,94,95,205,206,94,95,94,95,205,206,219,205,206,94,95,170,223,180,223,0,106,214,83,214,0,0,0,0,0,0,0,0,170,0,0,0,0,0,0,0,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,59,59,0,178,109,109,109,109,109,0,0,0,212,219,181,181,181,181,181,0,0,0,0,0,0,0,0,0,0,0,61,0,170,171,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,170,0,74,170,171,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223,0,0,0,0,0,47,47,47,47,47,47,47,47,47,47,47,0,0,0,0,36,36,36,36,170,0,196,196,196,0,155,87,0,0,249,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,250,251,252,39,40,41,42,21,43,44,45,46,17,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,253,63,64,65,66,67,68,69,70,13,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,240,110,20,111,112,113,114,4,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,7,5,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,249,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,250,251,252,39,40,41,42,21,43,44,45,46,17,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,253,63,64,65,66,67,68,69,70,13,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,240,110,20,111,112,113,114,4,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,7,5,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,0,0,25,158,24,25,158,161,24,161,183,185,111,188,189,188,151,74,78,87,249,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,250,251,252,39,40,41,42,21,43,44,45,46,17,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,253,63,64,65,66,67,68,69,70,13,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,240,110,20,111,112,113,114,4,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,7,5,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,87,180,58,214,214,214,214,214,214,214,214,220,220,220,220,220,0,0,100,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,164,165,106,196,0,0,0,0,0,0,164,165,194,194,194,194,194,194,194,194,194,194,0,0,0,0,0,0,0,0,119,127,74,76,75,230,61,75,104,136,0,0,0,0,0,0,0,85,0,0,0,107,86,0,0,0,0,32,32,32,32,0,0,0,0,0,0,0,0,0,0,219],"f":"``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{bdff}h}``````````{dd}````````0`{{bd}h}``````````````````````````````````````````````````````````````````````````````````````````````````````````````````{jl}{nj}{A`A`}{{nj}j}1```{AbAd}{{Af{Al{AhAj}}}An}{{{Al{Aj}}}Ab}{{Af{Al{Aj}}}Ab}{{{Al{Aj}}{Al{Aj}}}B`}{{Af{Al{Aj}}}B`}4`{{{Al{AhAj}}}An}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{AbBb}An}{{AbBb}B`}1`{BbAn}`````````````````````````````````````{{AbAbAbAb}Ab}````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{BdBd}``0````````0```````````````````````````````````````````````````0```````0```````````0```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{BfBfBf}Bf}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{AbAb}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{AbAb}Ab}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{BfBf}`````{BfB`}``````````5```````````````````````````````````````````````````````````````````````````````````````````````````33{AbB`}0```````{{{Al{AhAb}}Ab}An}1```````````````````````````````````````````````````````````````````````````````````````{{}Ab}0`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{BhBj}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````3`7`3333````77`6`7````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{Al{c}}}{{Al{e}}}{}{}}00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{Al{Ahc}}}{{Al{Ahe}}}{}{}}00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000````````````````````````````````````````````````````````````````````````````````````````{{{Al{Bl}}}Bl}{{{Al{Bn}}}Bn}{{{Al{C`}}}C`}{{{Al{Cb}}}Cb}{{{Al{Cd}}}Cd}{{{Al{Cf}}}Cf}{{{Al{Ch}}}Ch}{{{Al{Cj}}}Cj}{{{Al{Cl}}}Cl}{{{Al{Cn}}}Cn}{{{Al{D`}}}D`}{{{Al{Db}}}Db}{{{Al{Dd}}}Dd}{{{Al{Df}}}Df}{{{Al{Dh}}}Dh}{{{Al{Dj}}}Dj}{{{Al{Dl}}}Dl}{{{Al{Dn}}}Dn}{{{Al{E`}}}E`}{{{Al{Eb}}}Eb}{{{Al{Ed}}}Ed}{{{Al{Bj}}}Bj}{{{Al{Ef}}}Ef}{{{Al{Eh}}}Eh}{{{Al{Ej}}}Ej}{{{Al{El}}}El}{{{Al{Bb}}}Bb}{{{Al{En}}}En}{{{Al{F`}}}F`}{{{Al{Fb}}}Fb}{{{Al{Fd}}}Fd}{{{Al{Ff}}}Ff}{{{Al{Fh}}}Fh}{{{Al{Fj}}}Fj}{{{Al{Fl}}}Fl}{{{Al{Fn}}}Fn}{{{Al{G`}}}G`}{{{Al{Gb}}}Gb}{{{Al{Gd}}}Gd}{{{Al{Gf}}}Gf}{{{Al{Gh}}}Gh}{{{Al{Gj}}}Gj}{{{Al{Gl}}}Gl}{{{Al{Gn}}}Gn}{{{Al{H`}}}H`}{{{Al{Hb}}}Hb}{{{Al{Hd}}}Hd}{{{Al{Hf}}}Hf}{{{Al{Hh}}}Hh}{{{Al{Hj}}}Hj}{{{Al{Hl}}}Hl}{{{Al{Aj}}}Aj}{{{Al{Hn}}}Hn}{{{Al{I`}}}I`}{{{Al{Ib}}}Ib}{{{Al{Id}}}Id}{{{Al{If}}}If}{{{Al{Ih}}}Ih}{{{Al{Ij}}}Ij}{{{Al{Il}}}Il}{{{Al{In}}}In}{{{Al{J`}}}J`}{{{Al{Jb}}}Jb}{{{Al{Jd}}}Jd}{{{Al{Jf}}}Jf}{{{Al{Jh}}}Jh}{{{Al{Jj}}}Jj}{{{Al{Jl}}}Jl}{{{Al{Jn}}}Jn}{{{Al{K`}}}K`}{{{Al{Kb}}}Kb}{{{Al{Kd}}}Kd}{{{Al{Kf}}}Kf}{{{Al{Kh}}}Kh}{{{Al{Kj}}}Kj}{{{Al{Kl}}}Kl}{{{Al{Kn}}}Kn}{{{Al{L`}}}L`}{{{Al{Lb}}}Lb}{{{Al{Ld}}}Ld}{{{Al{Lf}}}Lf}{{{Al{Lh}}}Lh}{{{Al{Lj}}}Lj}{{{Al{Ll}}}Ll}{{{Al{Ln}}}Ln}{{{Al{M`}}}M`}{{{Al{Mb}}}Mb}{{{Al{Md}}}Md}{{{Al{Mf}}}Mf}{{{Al{Mh}}}Mh}{{{Al{Mj}}}Mj}{{{Al{Ml}}}Ml}{{{Al{Bh}}}Bh}{{{Al{Mn}}}Mn}{{{Al{N`}}}N`}{{{Al{Nb}}}Nb}{{{Al{Nd}}}Nd}{{{Al{h}}}h}{{{Al{Nf}}}Nf}{{{Al{Nh}}}Nh}{{{Al{Nj}}}Nj}{{{Al{Nl}}}Nl}{{{Al{Nn}}}Nn}{{{Al{O`}}}O`}{{{Al{Ob}}}Ob}{{{Al{Od}}}Od}{{{Al{Of}}}Of}{{{Al{Oh}}}Oh}{{{Al{Oj}}}Oj}{{{Al{Ol}}}Ol}{{{Al{On}}}On}{{{Al{A@`}}}A@`}{{{Al{A@b}}}A@b}{{{Al{A@d}}}A@d}{{{Al{A@f}}}A@f}{{{Al{A@h}}}A@h}{{{Al{A@j}}}A@j}{{{Al{A@l}}}A@l}{{{Al{A@n}}}A@n}{{{Al{AA`}}}AA`}{{{Al{AAb}}}AAb}{{{Al{AAd}}}AAd}{{{Al{AAf}}}AAf}{{{Al{AAh}}}AAh}{{{Al{AAj}}}AAj}{{{Al{AAl}}}AAl}{{{Al{AAn}}}AAn}{{{Al{AB`}}}AB`}{{{Al{ABb}}}ABb}{{{Al{ABd}}}ABd}{{{Al{ABf}}}ABf}{{{Al{ABh}}}ABh}{{{Al{ABj}}}ABj}{{{Al{ABl}}}ABl}{{{Al{ABn}}}ABn}{{{Al{AC`}}}AC`}{{{Al{ACb}}}ACb}{{{Al{ACd}}}ACd}{{{Al{ACf}}}ACf}{{{Al{ACh}}}ACh}{{{Al{ACj}}}ACj}{{{Al{ACl}}}ACl}{{{Al{ACn}}}ACn}{{{Al{AD`}}}AD`}{{{Al{ADb}}}ADb}{{{Al{ADd}}}ADd}{{{Al{n}}}n}{{{Al{j}}}j}{{{Al{ADf}}}ADf}{{{Al{ADh}}}ADh}{{{Al{ADj}}}ADj}{{{Al{ADl}}}ADl}{{{Al{ADn}}}ADn}{{{Al{AE`}}}AE`}{{{Al{AEb}}}AEb}{{{Al{AEd}}}AEd}{{{Al{AEf}}}AEf}{{{Al{AEh}}}AEh}{{{Al{AEj}}}AEj}{{{Al{AEl}}}AEl}{{{Al{AEn}}}AEn}{{{Al{AF`}}}AF`}{{{Al{AFb}}}AFb}{{{Al{AFd}}}AFd}{{{Al{AFf}}}AFf}{{{Al{AFh}}}AFh}{{{Al{AFj}}}AFj}{{{Al{AFl}}}AFl}{{{Al{AFn}}}AFn}{{{Al{AG`}}}AG`}{{{Al{AGb}}}AGb}{{{Al{AGd}}}AGd}{{{Al{AGf}}}AGf}{{{Al{AGh}}}AGh}{{{Al{AGj}}}AGj}{{{Al{AGl}}}AGl}{{{Al{AGn}}}AGn}{{{Al{AH`}}}AH`}{{{Al{AHb}}}AHb}{{{Al{AHd}}}AHd}{{{Al{AHf}}}AHf}{{{Al{AHh}}}AHh}{{{Al{AHj}}}AHj}{{{Al{AHl}}}AHl}{{{Al{AHn}}}AHn}{{{Al{AI`}}}AI`}{{{Al{AIb}}}AIb}{{{Al{AId}}}AId}{{{Al{AIf}}}AIf}{{{Al{AIh}}}AIh}{{{Al{AIj}}}AIj}{{{Al{AIl}}}AIl}{{{Al{AIn}}}AIn}{{{Al{AJ`}}}AJ`}{{{Al{AJb}}}AJb}{{{Al{AJd}}}AJd}{{{Al{AJf}}}AJf}{{{Al{AJh}}}AJh}{{{Al{AJj}}}AJj}{{{Al{AJl}}}AJl}{{{Al{AJn}}}AJn}{{{Al{AK`}}}AK`}{{{Al{AKb}}}AKb}{{{Al{AKd}}}AKd}{{{Al{AKf}}}AKf}{{{Al{AKh}}}AKh}{{{Al{AKj}}}AKj}{{{Al{AKl}}}AKl}{{{Al{AKn}}}AKn}{{{Al{AL`}}}AL`}{{{Al{ALb}}}ALb}{{{Al{ALd}}}ALd}{{{Al{ALf}}}ALf}{{{Al{ALh}}}ALh}{{{Al{ALj}}}ALj}{{{Al{ALl}}}ALl}{{{Al{ALn}}}ALn}{{{Al{AM`}}}AM`}{{{Al{AMb}}}AMb}{{{Al{AMd}}}AMd}{{{Al{AMf}}}AMf}{{{Al{AMh}}}AMh}{{{Al{AMj}}}AMj}{{{Al{AMl}}}AMl}{{{Al{AMn}}}AMn}``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{Al{AN`}}{Al{AhANb}}}{{ANf{AnANd}}}}```````````````````````````````{cc{}}00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{ce{}{}}00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{ANhA`}`{{A`A`}ANh}```````````````````````````````1`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{Al{AIf}}}AN`}``{{{Al{AIf}}}ANj}`{{{Al{AIf}}}Ab}{{{Al{AIf}}}ANl}{{{Al{AIf}}}ANn}1{{{Al{AIf}}}Dd}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{c{{ANf{e}}}{}{}}00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000````````````````````{{{Al{c}}}AO`{}}00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000``````````````````````````````````````````````````````````````````````````````````````````````````````````````````","D":"CMj","p":[[8,"__u16",0,9188],[8,"__u32",0,9188],[8,"__u8",0,9188],[5,"sock_filter",0,9188],[5,"cmsghdr",0,9189],[8,"c_uchar",0,9190],[5,"msghdr",0,9189],[8,"c_uint",0,9190],[8,"c_int",0,9190],[8,"size_t",0,9190],[1,"usize"],[0,"mut"],[5,"cpu_set_t",0,9188],[1,"reference"],[1,"unit"],[1,"bool"],[5,"fd_set",0,9191],[1,"u8"],[1,"u32"],[5,"sock_extended_err",0,9188],[5,"sockaddr",0,9191],[5,"group",0,9190],[5,"utimbuf",0,9190],[5,"timeval",0,9190],[5,"timespec",0,9190],[5,"rlimit",0,9190],[5,"rusage",0,9190],[5,"ipv6_mreq",0,9190],[5,"hostent",0,9190],[5,"iovec",0,9190],[5,"pollfd",0,9190],[5,"winsize",0,9190],[5,"linger",0,9190],[5,"sigval",0,9190],[5,"itimerval",0,9190],[5,"tms",0,9190],[5,"servent",0,9190],[5,"protoent",0,9190],[5,"in_addr",0,9191],[5,"ip_mreq",0,9191],[5,"ip_mreqn",0,9191],[5,"ip_mreq_source",0,9191],[5,"sockaddr_in",0,9191],[5,"sockaddr_in6",0,9191],[5,"addrinfo",0,9191],[5,"sockaddr_ll",0,9191],[5,"tm",0,9191],[5,"sched_param",0,9191],[5,"Dl_info",0,9191],[5,"lconv",0,9191],[5,"in_pktinfo",0,9191],[5,"ifaddrs",0,9191],[5,"in6_rtmsg",0,9191],[5,"arpreq",0,9191],[5,"arpreq_old",0,9191],[5,"arphdr",0,9191],[5,"mmsghdr",0,9191],[5,"epoll_event",0,9191],[5,"sockaddr_un",0,9191],[5,"sockaddr_storage",0,9191],[5,"utsname",0,9191],[5,"sigevent",0,9191],[5,"glob_t",0,9188],[5,"passwd",0,9188],[5,"spwd",0,9188],[5,"dqblk",0,9188],[5,"signalfd_siginfo",0,9188],[5,"itimerspec",0,9188],[5,"fsid_t",0,9188],[5,"packet_mreq",0,9188],[5,"if_nameindex",0,9188],[5,"msginfo",0,9188],[5,"sembuf",0,9188],[5,"input_event",0,9188],[5,"input_id",0,9188],[5,"input_absinfo",0,9188],[5,"input_keymap_entry",0,9188],[5,"input_mask",0,9188],[5,"ff_replay",0,9188],[5,"ff_trigger",0,9188],[5,"ff_envelope",0,9188],[5,"ff_constant_effect",0,9188],[5,"ff_ramp_effect",0,9188],[5,"ff_condition_effect",0,9188],[5,"ff_periodic_effect",0,9188],[5,"ff_rumble_effect",0,9188],[5,"ff_effect",0,9188],[5,"uinput_ff_upload",0,9188],[5,"uinput_ff_erase",0,9188],[5,"uinput_abs_setup",0,9188],[5,"dl_phdr_info",0,9188],[5,"Elf32_Ehdr",0,9188],[5,"Elf64_Ehdr",0,9188],[5,"Elf32_Sym",0,9188],[5,"Elf64_Sym",0,9188],[5,"Elf32_Phdr",0,9188],[5,"Elf64_Phdr",0,9188],[5,"Elf32_Shdr",0,9188],[5,"Elf64_Shdr",0,9188],[5,"ucred",0,9188],[5,"mntent",0,9188],[5,"posix_spawn_file_actions_t",0,9188],[5,"posix_spawnattr_t",0,9188],[5,"genlmsghdr",0,9188],[5,"in6_pktinfo",0,9188],[5,"arpd_request",0,9188],[5,"inotify_event",0,9188],[5,"fanotify_response",0,9188],[5,"sockaddr_vm",0,9188],[5,"regmatch_t",0,9188],[5,"__c_anonymous_sockaddr_can_tp",0,9188],[5,"__c_anonymous_sockaddr_can_j1939",0,9188],[5,"can_filter",0,9188],[5,"j1939_filter",0,9188],[5,"sock_fprog",0,9188],[5,"seccomp_data",0,9188],[5,"seccomp_notif_sizes",0,9188],[5,"seccomp_notif",0,9188],[5,"seccomp_notif_resp",0,9188],[5,"seccomp_notif_addfd",0,9188],[5,"nlmsghdr",0,9188],[5,"nlmsgerr",0,9188],[5,"nlattr",0,9188],[5,"file_clone_range",0,9188],[5,"__c_anonymous_ifru_map",0,9188],[5,"in6_ifreq",0,9188],[5,"option",0,9188],[5,"sctp_initmsg",0,9188],[5,"sctp_sndrcvinfo",0,9188],[5,"sctp_sndinfo",0,9188],[5,"sctp_rcvinfo",0,9188],[5,"sctp_nxtinfo",0,9188],[5,"sctp_prinfo",0,9188],[5,"sctp_authinfo",0,9188],[5,"rlimit64",0,9188],[5,"tls_crypto_info",0,9188],[5,"tls12_crypto_info_aes_gcm_128",0,9188],[5,"tls12_crypto_info_aes_gcm_256",0,9188],[5,"tls12_crypto_info_chacha20_poly1305",0,9188],[5,"sockaddr_nl",0,9188],[5,"dirent",0,9188],[5,"sockaddr_alg",0,9188],[5,"uinput_setup",0,9188],[5,"uinput_user_dev",0,9188],[5,"af_alg_iv",0,9188],[5,"mq_attr",0,9188],[20,"__c_anonymous_ifr_ifru",0,9188],[5,"ifreq",0,9188],[20,"__c_anonymous_ifc_ifcu",0,9188],[5,"ifconf",0,9188],[5,"hwtstamp_config",0,9188],[5,"dirent64",0,9188],[5,"sched_attr",0,9188],[5,"sock_txtime",0,9188],[20,"__c_anonymous_sockaddr_can_can_addr",0,9188],[5,"sockaddr_can",0,9188],[5,"statx",0,9189],[5,"statx_timestamp",0,9189],[5,"aiocb",0,9189],[5,"__exit_status",0,9189],[5,"__timeval",0,9189],[5,"glob64_t",0,9189],[5,"termios",0,9189],[5,"mallinfo",0,9189],[5,"mallinfo2",0,9189],[5,"nl_pktinfo",0,9189],[5,"nl_mmap_req",0,9189],[5,"nl_mmap_hdr",0,9189],[5,"rtentry",0,9189],[5,"timex",0,9189],[5,"ntptimeval",0,9189],[5,"regex_t",0,9189],[5,"Elf64_Chdr",0,9189],[5,"Elf32_Chdr",0,9189],[5,"seminfo",0,9189],[5,"ptrace_peeksiginfo_args",0,9189],[5,"__c_anonymous_ptrace_syscall_info_entry",0,9189],[5,"__c_anonymous_ptrace_syscall_info_exit",0,9189],[5,"__c_anonymous_ptrace_syscall_info_seccomp",0,9189],[5,"ptrace_syscall_info",0,9189],[5,"sockaddr_xdp",0,9189],[5,"xdp_ring_offset",0,9189],[5,"xdp_mmap_offsets",0,9189],[5,"xdp_ring_offset_v1",0,9189],[5,"xdp_mmap_offsets_v1",0,9189],[5,"xdp_umem_reg",0,9189],[5,"xdp_umem_reg_v1",0,9189],[5,"xdp_statistics",0,9189],[5,"xdp_statistics_v1",0,9189],[5,"xdp_options",0,9189],[5,"xdp_desc",0,9189],[5,"iocb",0,9189],[20,"__c_anonymous_ptrace_syscall_info_data",0,9189],[5,"utmpx",0,9189],[5,"sigset_t",0,9192],[5,"sysinfo",0,9192],[5,"msqid_ds",0,9192],[5,"semid_ds",0,9192],[5,"sigaction",0,9193],[5,"statfs",0,9193],[5,"flock",0,9193],[5,"flock64",0,9193],[5,"siginfo_t",0,9193],[5,"stack_t",0,9193],[5,"stat",0,9193],[5,"stat64",0,9193],[5,"statfs64",0,9193],[5,"statvfs64",0,9193],[5,"pthread_attr_t",0,9193],[5,"_libc_fpxreg",0,9193],[5,"_libc_xmmreg",0,9193],[5,"_libc_fpstate",0,9193],[5,"user_regs_struct",0,9193],[5,"user",0,9193],[5,"mcontext_t",0,9193],[5,"ipc_perm",0,9193],[5,"shmid_ds",0,9193],[5,"ptrace_rseq_configuration",0,9193],[5,"user_fpregs_struct",0,9193],[5,"ucontext_t",0,9193],[5,"statvfs",0,9194],[5,"max_align_t",0,9195],[5,"clone_args",0,9195],[5,"sem_t",0,9196],[5,"termios2",0,9197],[5,"pthread_mutexattr_t",0,9188],[5,"pthread_rwlockattr_t",0,9188],[5,"pthread_condattr_t",0,9188],[5,"pthread_barrierattr_t",0,9188],[5,"fanotify_event_metadata",0,9188],[5,"pthread_cond_t",0,9188],[5,"pthread_mutex_t",0,9188],[5,"pthread_rwlock_t",0,9188],[5,"pthread_barrier_t",0,9188],[5,"can_frame",0,9188],[5,"canfd_frame",0,9188],[5,"canxl_frame",0,9188],[5,"open_how",0,9198],[5,"in6_addr",0,9199],[6,"c_void",0,9200],[5,"Formatter",9201],[5,"Error",9201],[6,"Result",9202],[8,"dev_t",0,9188],[8,"pid_t",0,9190],[8,"c_long",0,9194],[8,"uid_t",0,9190],[5,"TypeId",9203],[6,"DIR",0],[6,"FILE",0],[6,"fpos_t",0],[6,"timezone",0],[6,"fpos64_t",0]],"r":[[0,9188],[1,9188],[2,9188],[3,9188],[4,9188],[5,9188],[6,9188],[7,9188],[8,9188],[9,9188],[10,9188],[11,9188],[12,9188],[13,9188],[14,9188],[15,9188],[16,9188],[17,9188],[18,9188],[19,9188],[20,9188],[21,9189],[22,9191],[23,9191],[24,9191],[25,9191],[26,9191],[27,9189],[28,9189],[29,9189],[30,9189],[31,9189],[32,9189],[33,9189],[34,9189],[35,9189],[36,9189],[37,9189],[38,9189],[39,9189],[40,9191],[41,9191],[42,9191],[43,9191],[44,9191],[45,9191],[46,9191],[47,9191],[48,9191],[49,9191],[50,9191],[51,9191],[52,9191],[53,9191],[54,9189],[55,9191],[56,9191],[57,9191],[58,9191],[59,9191],[60,9191],[61,9191],[62,9191],[63,9191],[64,9191],[65,9189],[66,9191],[67,9191],[68,9191],[69,9189],[70,9191],[71,9191],[72,9191],[73,9191],[74,9191],[75,9191],[76,9191],[77,9191],[78,9191],[79,9191],[80,9191],[81,9191],[82,9189],[83,9191],[84,9191],[85,9189],[86,9188],[87,9188],[88,9188],[89,9188],[90,9188],[91,9188],[92,9188],[93,9188],[94,9188],[95,9188],[96,9188],[97,9188],[98,9188],[99,9188],[100,9188],[101,9188],[102,9188],[103,9188],[104,9188],[105,9188],[106,9188],[107,9188],[108,9188],[109,9188],[110,9191],[111,9191],[112,9191],[113,9191],[114,9191],[115,9191],[116,9191],[117,9191],[118,9191],[119,9191],[120,9191],[121,9191],[122,9191],[123,9191],[124,9191],[125,9191],[126,9191],[127,9191],[128,9191],[129,9191],[130,9191],[131,9191],[132,9191],[133,9191],[134,9191],[135,9191],[136,9191],[137,9191],[138,9191],[139,9191],[140,9191],[141,9191],[142,9191],[143,9191],[144,9191],[145,9191],[146,9191],[147,9191],[148,9191],[149,9191],[150,9191],[151,9191],[152,9191],[153,9191],[154,9191],[155,9191],[156,9191],[157,9191],[158,9191],[159,9191],[160,9191],[161,9191],[162,9191],[163,9191],[164,9191],[165,9191],[166,9191],[167,9191],[168,9191],[169,9191],[170,9191],[171,9190],[172,9190],[173,9191],[174,9191],[175,9190],[176,9191],[177,9188],[178,9191],[179,9190],[180,9190],[181,9190],[182,9188],[183,9188],[184,9188],[185,9188],[186,9188],[187,9191],[188,9188],[189,9188],[190,9188],[191,9188],[192,9191],[193,9188],[194,9188],[195,9188],[196,9188],[197,9188],[198,9188],[199,9188],[200,9191],[201,9188],[202,9188],[203,9188],[204,9188],[205,9188],[206,9188],[207,9188],[208,9191],[209,9191],[210,9188],[211,9189],[212,9189],[213,9189],[214,9189],[215,9191],[216,9191],[217,9188],[218,9188],[219,9191],[220,9193],[221,9193],[222,9193],[223,9193],[224,9193],[225,9193],[226,9193],[227,9193],[228,9193],[229,9193],[230,9193],[231,9193],[232,9193],[233,9193],[234,9193],[235,9193],[236,9193],[237,9193],[238,9193],[239,9193],[240,9193],[241,9193],[242,9193],[243,9193],[244,9193],[245,9193],[246,9193],[247,9193],[248,9193],[249,9193],[250,9193],[251,9189],[252,9197],[253,9197],[254,9197],[255,9197],[256,9189],[257,9197],[258,9188],[259,9188],[260,9188],[261,9188],[262,9188],[263,9188],[264,9191],[265,9188],[266,9188],[267,9188],[268,9188],[269,9188],[270,9188],[271,9188],[272,9188],[273,9188],[274,9188],[275,9188],[276,9188],[277,9188],[278,9188],[279,9188],[280,9188],[281,9188],[282,9188],[283,9188],[284,9188],[285,9188],[286,9188],[287,9188],[288,9188],[289,9188],[290,9188],[291,9188],[292,9188],[293,9188],[294,9188],[295,9188],[296,9188],[297,9188],[298,9188],[299,9188],[300,9188],[301,9188],[302,9191],[303,9191],[304,9193],[305,9193],[306,9191],[307,9189],[308,9191],[309,9191],[310,9191],[311,9191],[312,9191],[313,9188],[314,9188],[315,9188],[316,9188],[317,9188],[318,9188],[319,9188],[320,9188],[321,9188],[322,9188],[323,9188],[324,9188],[325,9188],[326,9188],[327,9188],[328,9188],[329,9188],[330,9188],[331,9188],[332,9188],[333,9188],[334,9188],[335,9188],[336,9188],[337,9188],[338,9188],[339,9188],[340,9188],[341,9188],[342,9188],[343,9188],[344,9188],[345,9188],[346,9188],[347,9188],[348,9188],[349,9188],[350,9188],[351,9188],[352,9188],[353,9188],[354,9188],[355,9188],[356,9188],[357,9188],[358,9188],[359,9193],[360,9193],[361,9191],[362,9191],[363,9193],[364,9191],[365,9191],[366,9191],[367,9191],[368,9191],[369,9191],[370,9193],[371,9191],[372,9191],[373,9191],[374,9191],[375,9191],[376,9191],[377,9191],[378,9191],[379,9191],[380,9191],[381,9191],[382,9191],[383,9191],[384,9189],[385,9191],[386,9191],[387,9191],[388,9189],[389,9191],[390,9191],[391,9191],[392,9191],[393,9191],[394,9191],[395,9189],[396,9191],[397,9191],[398,9191],[399,9191],[400,9188],[401,9191],[402,9191],[403,9191],[404,9191],[405,9191],[406,9191],[407,9191],[408,9191],[409,9188],[410,9188],[411,9191],[412,9191],[413,9191],[414,9188],[415,9191],[416,9188],[417,9191],[418,9188],[419,9188],[420,9188],[421,9188],[422,9188],[423,9188],[424,9188],[425,9188],[426,9189],[427,9188],[428,9191],[429,9193],[430,9193],[431,9193],[432,9191],[433,9193],[434,9193],[435,9188],[436,9191],[437,9193],[438,9191],[439,9193],[440,9193],[441,9193],[442,9188],[443,9193],[444,9193],[445,9188],[446,9188],[447,9188],[448,9188],[449,9188],[450,9188],[451,9188],[452,9188],[453,9188],[454,9188],[455,9188],[456,9188],[457,9188],[458,9188],[459,9188],[460,9188],[461,9188],[462,9188],[463,9188],[464,9188],[465,9188],[466,9188],[467,9188],[468,9188],[469,9188],[470,9188],[471,9188],[472,9188],[473,9188],[474,9188],[475,9188],[476,9188],[477,9188],[478,9188],[479,9188],[480,9188],[481,9188],[482,9188],[483,9188],[484,9188],[485,9188],[486,9188],[487,9188],[488,9188],[489,9188],[490,9188],[491,9188],[492,9188],[493,9188],[494,9188],[495,9188],[496,9188],[497,9188],[498,9188],[499,9188],[500,9188],[501,9188],[502,9188],[503,9189],[504,9191],[505,9191],[506,9190],[507,9193],[508,9190],[509,9190],[510,9190],[511,9190],[512,9190],[513,9190],[514,9190],[515,9190],[516,9188],[517,9188],[518,9191],[519,9188],[520,9188],[521,9193],[522,9193],[523,9193],[524,9193],[525,9188],[526,9188],[527,9188],[528,9188],[529,9188],[530,9188],[531,9188],[532,9188],[533,9188],[534,9188],[535,9188],[536,9188],[537,9193],[538,9193],[539,9188],[540,9193],[541,9193],[542,9193],[543,9193],[544,9193],[545,9193],[546,9188],[547,9193],[548,9188],[549,9191],[550,9193],[551,9193],[552,9193],[553,9193],[554,9193],[555,9193],[556,9193],[557,9193],[558,9193],[559,9193],[560,9193],[561,9191],[562,9193],[563,9193],[564,9193],[565,9188],[566,9193],[567,9193],[568,9188],[569,9188],[570,9188],[571,9193],[572,9193],[573,9188],[574,9193],[575,9191],[576,9193],[577,9193],[578,9193],[579,9193],[580,9193],[581,9193],[582,9188],[583,9188],[584,9188],[585,9193],[586,9188],[587,9193],[588,9188],[589,9188],[590,9188],[591,9188],[592,9188],[593,9188],[594,9188],[595,9188],[596,9188],[597,9188],[598,9188],[599,9193],[600,9193],[601,9193],[602,9193],[603,9193],[604,9193],[605,9193],[606,9188],[607,9188],[608,9188],[609,9188],[610,9188],[611,9188],[612,9188],[613,9188],[614,9188],[615,9188],[616,9188],[617,9188],[618,9188],[619,9188],[620,9189],[621,9188],[622,9188],[623,9188],[624,9188],[625,9188],[626,9188],[627,9188],[628,9188],[629,9188],[630,9188],[631,9188],[632,9188],[633,9188],[634,9193],[635,9193],[636,9193],[637,9193],[638,9193],[639,9193],[640,9193],[641,9193],[642,9188],[643,9188],[644,9189],[645,9193],[646,9193],[647,9188],[648,9188],[649,9188],[650,9188],[651,9188],[652,9188],[653,9188],[654,9188],[655,9188],[656,9188],[657,9188],[658,9188],[659,9188],[660,9188],[661,9188],[662,9188],[663,9188],[664,9188],[665,9188],[666,9188],[667,9188],[668,9188],[669,9188],[670,9188],[671,9188],[672,9188],[673,9188],[674,9188],[675,9188],[676,9188],[677,9188],[678,9188],[679,9188],[680,9188],[681,9188],[682,9188],[683,9188],[684,9188],[685,9188],[686,9188],[687,9188],[688,9188],[689,9188],[690,9188],[691,9188],[692,9188],[693,9188],[694,9188],[695,9188],[696,9188],[697,9188],[698,9188],[699,9188],[700,9188],[701,9188],[702,9188],[703,9188],[704,9188],[705,9188],[706,9188],[707,9188],[708,9188],[709,9188],[710,9188],[711,9188],[712,9188],[713,9188],[714,9188],[715,9188],[716,9188],[717,9188],[718,9188],[719,9188],[720,9188],[721,9188],[722,9188],[723,9188],[724,9188],[725,9193],[726,9193],[727,9193],[728,9193],[729,9193],[730,9188],[731,9193],[732,9188],[733,9193],[734,9193],[735,9193],[736,9188],[737,9188],[738,9188],[739,9193],[740,9193],[741,9193],[742,9193],[743,9188],[744,9193],[745,9193],[746,9193],[747,9193],[748,9188],[749,9193],[750,9193],[751,9193],[752,9188],[753,9193],[754,9188],[755,9193],[756,9193],[757,9193],[758,9193],[759,9189],[760,9188],[761,9193],[762,9188],[763,9191],[764,9193],[765,9193],[766,9193],[767,9188],[768,9193],[769,9188],[770,9191],[771,9191],[772,9191],[773,9191],[774,9191],[775,9191],[776,9191],[777,9191],[778,9191],[779,9191],[780,9191],[781,9191],[782,9191],[783,9191],[784,9191],[785,9193],[786,9191],[787,9191],[788,9191],[789,9193],[790,9193],[791,9193],[792,9188],[793,9188],[794,9188],[795,9188],[796,9188],[797,9193],[798,9193],[799,9193],[800,9193],[801,9193],[802,9188],[803,9193],[804,9193],[805,9193],[806,9188],[807,9188],[808,9193],[809,9193],[810,9193],[811,9188],[812,9188],[813,9188],[814,9188],[815,9188],[816,9188],[817,9188],[818,9188],[819,9188],[820,9188],[821,9188],[822,9188],[823,9188],[824,9188],[825,9188],[826,9188],[827,9188],[828,9188],[829,9188],[830,9188],[831,9188],[832,9188],[833,9188],[834,9188],[835,9188],[836,9188],[837,9188],[838,9188],[839,9188],[840,9188],[841,9188],[842,9188],[843,9188],[844,9188],[845,9188],[846,9188],[847,9188],[848,9188],[849,9188],[850,9188],[851,9188],[852,9188],[853,9188],[854,9188],[855,9188],[856,9188],[857,9188],[858,9188],[859,9188],[860,9188],[861,9188],[862,9188],[863,9188],[864,9188],[865,9188],[866,9188],[867,9188],[868,9188],[869,9188],[870,9188],[871,9188],[872,9188],[873,9188],[874,9188],[875,9188],[876,9188],[877,9188],[878,9188],[879,9188],[880,9188],[881,9188],[882,9188],[883,9188],[884,9188],[885,9188],[886,9188],[887,9188],[888,9188],[889,9188],[890,9188],[891,9188],[892,9188],[893,9188],[894,9188],[895,9188],[896,9193],[897,9193],[898,9193],[899,9188],[900,9188],[901,9188],[902,9188],[903,9188],[904,9188],[905,9188],[906,9188],[907,9188],[908,9188],[909,9188],[910,9193],[911,9193],[912,9193],[913,9188],[914,9188],[915,9188],[916,9188],[917,9188],[918,9188],[919,9188],[920,9193],[921,9191],[922,9191],[923,9191],[924,9191],[925,9191],[926,9193],[927,9193],[928,9193],[929,9188],[930,9189],[931,9188],[932,9188],[933,9188],[934,9188],[935,9188],[936,9188],[937,9188],[938,9188],[939,9188],[940,9189],[941,9188],[942,9188],[943,9188],[944,9188],[945,9188],[946,9188],[947,9188],[948,9188],[949,9188],[950,9188],[951,9191],[952,9188],[953,9188],[954,9188],[955,9188],[956,9188],[957,9188],[958,9188],[959,9188],[960,9188],[961,9188],[962,9188],[963,9188],[964,9188],[965,9188],[966,9188],[967,9188],[968,9188],[969,9188],[970,9188],[971,9188],[972,9188],[973,9188],[974,9188],[975,9188],[976,9188],[977,9188],[978,9188],[979,9188],[980,9188],[981,9188],[982,9188],[983,9188],[984,9188],[985,9188],[986,9188],[987,9188],[988,9188],[989,9188],[990,9188],[991,9188],[992,9188],[993,9188],[994,9188],[995,9188],[996,9188],[997,9188],[998,9188],[999,9188],[1000,9188],[1001,9188],[1002,9188],[1003,9188],[1004,9188],[1005,9188],[1006,9188],[1007,9188],[1008,9188],[1009,9188],[1010,9188],[1011,9188],[1012,9188],[1013,9188],[1014,9188],[1015,9188],[1016,9188],[1017,9188],[1018,9188],[1019,9188],[1020,9188],[1021,9188],[1022,9188],[1023,9188],[1024,9188],[1025,9188],[1026,9188],[1027,9189],[1028,9190],[1029,9191],[1030,9191],[1031,9191],[1032,9191],[1033,9191],[1034,9191],[1035,9193],[1036,9193],[1037,9188],[1038,9188],[1039,9197],[1040,9197],[1041,9190],[1042,9189],[1043,9197],[1044,9197],[1045,9197],[1046,9197],[1047,9197],[1048,9197],[1049,9193],[1050,9189],[1051,9193],[1052,9193],[1053,9197],[1054,9197],[1055,9197],[1056,9197],[1057,9197],[1058,9197],[1059,9197],[1060,9197],[1061,9191],[1062,9191],[1063,9188],[1064,9188],[1065,9188],[1066,9188],[1067,9188],[1068,9188],[1069,9188],[1070,9188],[1071,9188],[1072,9188],[1073,9188],[1074,9188],[1075,9188],[1076,9188],[1077,9188],[1078,9188],[1079,9188],[1080,9188],[1081,9188],[1082,9188],[1083,9188],[1084,9188],[1085,9188],[1086,9188],[1087,9188],[1088,9188],[1089,9188],[1090,9188],[1091,9188],[1092,9188],[1093,9188],[1094,9191],[1095,9191],[1096,9191],[1097,9191],[1098,9191],[1099,9191],[1100,9191],[1101,9193],[1102,9193],[1103,9191],[1104,9191],[1105,9188],[1106,9191],[1107,9193],[1108,9193],[1109,9193],[1110,9191],[1111,9193],[1112,9188],[1113,9191],[1114,9191],[1115,9191],[1116,9191],[1117,9191],[1118,9191],[1119,9191],[1120,9193],[1121,9193],[1122,9193],[1123,9191],[1124,9188],[1125,9188],[1126,9188],[1127,9193],[1128,9193],[1129,9188],[1130,9188],[1131,9188],[1132,9188],[1133,9188],[1134,9189],[1135,9189],[1136,9188],[1137,9188],[1138,9188],[1139,9189],[1140,9188],[1141,9189],[1142,9188],[1143,9189],[1144,9188],[1145,9188],[1146,9188],[1147,9188],[1148,9188],[1149,9189],[1150,9188],[1151,9188],[1152,9188],[1153,9189],[1154,9189],[1155,9189],[1156,9189],[1157,9188],[1158,9188],[1159,9188],[1160,9190],[1161,9193],[1162,9193],[1163,9191],[1164,9191],[1165,9191],[1166,9189],[1167,9189],[1168,9189],[1169,9189],[1170,9189],[1171,9189],[1172,9189],[1173,9189],[1174,9189],[1175,9189],[1176,9189],[1177,9189],[1178,9189],[1179,9189],[1180,9193],[1181,9188],[1182,9188],[1183,9188],[1184,9188],[1185,9188],[1186,9188],[1187,9188],[1188,9188],[1189,9188],[1190,9188],[1191,9188],[1192,9188],[1193,9188],[1194,9188],[1195,9188],[1196,9188],[1197,9188],[1198,9188],[1199,9188],[1200,9188],[1201,9197],[1202,9193],[1203,9191],[1204,9193],[1205,9188],[1206,9188],[1207,9188],[1208,9188],[1209,9189],[1210,9188],[1211,9188],[1212,9188],[1213,9189],[1214,9189],[1215,9188],[1216,9189],[1217,9188],[1218,9188],[1219,9188],[1220,9189],[1221,9188],[1222,9188],[1223,9188],[1224,9188],[1225,9188],[1226,9188],[1227,9191],[1228,9188],[1229,9191],[1230,9191],[1231,9191],[1232,9188],[1233,9188],[1234,9191],[1235,9188],[1236,9191],[1237,9188],[1238,9191],[1239,9191],[1240,9188],[1241,9188],[1242,9188],[1243,9191],[1244,9188],[1245,9191],[1246,9188],[1247,9188],[1248,9188],[1249,9188],[1250,9191],[1251,9191],[1252,9191],[1253,9191],[1254,9191],[1255,9188],[1256,9188],[1257,9188],[1258,9191],[1259,9188],[1260,9188],[1261,9188],[1262,9188],[1263,9188],[1264,9188],[1265,9188],[1266,9188],[1267,9188],[1268,9188],[1269,9188],[1270,9188],[1271,9188],[1272,9188],[1273,9188],[1274,9188],[1275,9188],[1276,9188],[1277,9188],[1278,9188],[1279,9188],[1280,9188],[1281,9188],[1282,9188],[1283,9188],[1284,9188],[1285,9188],[1286,9188],[1287,9188],[1288,9188],[1289,9188],[1290,9188],[1291,9188],[1292,9188],[1293,9188],[1294,9188],[1295,9188],[1296,9188],[1297,9188],[1298,9188],[1299,9188],[1300,9188],[1301,9188],[1302,9188],[1303,9188],[1304,9188],[1305,9188],[1306,9188],[1307,9188],[1308,9188],[1309,9188],[1310,9188],[1311,9188],[1312,9188],[1313,9188],[1314,9188],[1315,9188],[1316,9188],[1317,9188],[1318,9188],[1319,9188],[1320,9188],[1321,9188],[1322,9188],[1323,9188],[1324,9188],[1325,9188],[1326,9188],[1327,9188],[1328,9188],[1329,9190],[1330,9188],[1331,9188],[1332,9188],[1333,9190],[1334,9188],[1335,9188],[1336,9188],[1337,9188],[1338,9188],[1339,9188],[1340,9188],[1341,9191],[1342,9191],[1343,9191],[1344,9191],[1345,9190],[1346,9190],[1347,9190],[1348,9190],[1349,9189],[1350,9191],[1351,9188],[1352,9188],[1353,9188],[1354,9191],[1355,9188],[1356,9188],[1357,9190],[1358,9190],[1359,9188],[1360,9188],[1361,9188],[1362,9188],[1363,9188],[1364,9188],[1365,9188],[1366,9188],[1367,9188],[1368,9188],[1369,9188],[1370,9188],[1371,9188],[1372,9188],[1373,9188],[1374,9188],[1375,9188],[1376,9188],[1377,9188],[1378,9188],[1379,9188],[1380,9188],[1381,9188],[1382,9188],[1383,9188],[1384,9188],[1385,9188],[1386,9188],[1387,9188],[1388,9188],[1389,9188],[1390,9188],[1391,9188],[1392,9188],[1393,9188],[1394,9188],[1395,9191],[1396,9191],[1397,9191],[1398,9191],[1399,9191],[1400,9191],[1401,9191],[1402,9191],[1403,9191],[1404,9191],[1405,9191],[1406,9191],[1407,9191],[1408,9191],[1409,9191],[1410,9191],[1411,9191],[1412,9191],[1413,9191],[1414,9191],[1415,9191],[1416,9191],[1417,9191],[1418,9191],[1419,9191],[1420,9191],[1421,9191],[1422,9191],[1423,9191],[1424,9191],[1425,9191],[1426,9191],[1427,9191],[1428,9191],[1429,9191],[1430,9191],[1431,9191],[1432,9191],[1433,9191],[1434,9191],[1435,9191],[1436,9191],[1437,9190],[1438,9190],[1439,9191],[1440,9191],[1441,9190],[1442,9191],[1443,9190],[1444,9188],[1445,9191],[1446,9191],[1447,9191],[1448,9191],[1449,9191],[1450,9191],[1451,9191],[1452,9191],[1453,9191],[1454,9191],[1455,9191],[1456,9190],[1457,9191],[1458,9190],[1459,9191],[1460,9191],[1461,9191],[1462,9191],[1463,9191],[1464,9191],[1465,9188],[1466,9191],[1467,9191],[1468,9188],[1469,9191],[1470,9191],[1471,9191],[1472,9191],[1473,9191],[1474,9188],[1475,9191],[1476,9191],[1477,9191],[1478,9191],[1479,9191],[1480,9188],[1481,9188],[1482,9191],[1483,9191],[1484,9191],[1485,9191],[1486,9191],[1487,9191],[1488,9191],[1489,9191],[1490,9191],[1491,9191],[1492,9191],[1493,9191],[1494,9191],[1495,9191],[1496,9191],[1497,9188],[1498,9188],[1499,9188],[1500,9188],[1501,9188],[1502,9188],[1503,9191],[1504,9191],[1505,9191],[1506,9191],[1507,9191],[1508,9191],[1509,9191],[1510,9191],[1511,9191],[1512,9188],[1513,9191],[1514,9191],[1515,9191],[1516,9191],[1517,9191],[1518,9191],[1519,9191],[1520,9191],[1521,9191],[1522,9191],[1523,9191],[1524,9191],[1525,9191],[1526,9191],[1527,9191],[1528,9191],[1529,9191],[1530,9191],[1531,9191],[1532,9191],[1533,9191],[1534,9191],[1535,9188],[1536,9191],[1537,9191],[1538,9191],[1539,9191],[1540,9191],[1541,9191],[1542,9191],[1543,9191],[1544,9188],[1545,9191],[1546,9191],[1547,9188],[1548,9188],[1549,9191],[1550,9191],[1551,9191],[1552,9191],[1553,9191],[1554,9191],[1555,9191],[1556,9191],[1557,9191],[1558,9191],[1559,9191],[1560,9191],[1561,9191],[1562,9191],[1563,9191],[1564,9191],[1565,9191],[1566,9191],[1567,9191],[1568,9191],[1569,9191],[1570,9191],[1571,9191],[1572,9191],[1573,9191],[1574,9191],[1575,9191],[1576,9191],[1577,9191],[1578,9191],[1579,9191],[1580,9191],[1581,9191],[1582,9191],[1583,9191],[1584,9191],[1585,9191],[1586,9191],[1587,9191],[1588,9191],[1589,9188],[1590,9191],[1591,9191],[1592,9191],[1593,9191],[1594,9191],[1595,9191],[1596,9191],[1597,9191],[1598,9191],[1599,9191],[1600,9191],[1601,9191],[1602,9193],[1603,9191],[1604,9191],[1605,9188],[1606,9188],[1607,9188],[1608,9188],[1609,9188],[1610,9188],[1611,9188],[1612,9188],[1613,9188],[1614,9188],[1615,9188],[1616,9188],[1617,9188],[1618,9188],[1619,9188],[1620,9188],[1621,9188],[1622,9188],[1623,9188],[1624,9188],[1625,9188],[1626,9188],[1627,9188],[1628,9188],[1629,9188],[1630,9188],[1631,9188],[1632,9188],[1633,9188],[1634,9188],[1635,9188],[1636,9188],[1637,9188],[1638,9188],[1639,9188],[1640,9188],[1641,9188],[1642,9188],[1643,9188],[1644,9188],[1645,9188],[1646,9188],[1647,9188],[1648,9188],[1649,9188],[1650,9188],[1651,9188],[1652,9188],[1653,9188],[1654,9188],[1655,9188],[1656,9188],[1657,9188],[1658,9188],[1659,9188],[1660,9188],[1661,9188],[1662,9188],[1663,9188],[1664,9188],[1665,9188],[1666,9188],[1667,9188],[1668,9188],[1669,9188],[1670,9188],[1671,9188],[1672,9188],[1673,9188],[1674,9188],[1675,9188],[1676,9188],[1677,9188],[1678,9188],[1679,9188],[1680,9188],[1681,9188],[1682,9188],[1683,9188],[1684,9188],[1685,9188],[1686,9188],[1687,9188],[1688,9188],[1689,9188],[1690,9188],[1691,9188],[1692,9188],[1693,9188],[1694,9188],[1695,9188],[1696,9188],[1697,9188],[1698,9188],[1699,9188],[1700,9188],[1701,9188],[1702,9188],[1703,9188],[1704,9188],[1705,9188],[1706,9188],[1707,9188],[1708,9188],[1709,9188],[1710,9188],[1711,9188],[1712,9188],[1713,9188],[1714,9188],[1715,9188],[1716,9188],[1717,9188],[1718,9188],[1719,9188],[1720,9188],[1721,9188],[1722,9188],[1723,9188],[1724,9188],[1725,9188],[1726,9188],[1727,9188],[1728,9188],[1729,9188],[1730,9188],[1731,9188],[1732,9188],[1733,9188],[1734,9188],[1735,9188],[1736,9188],[1737,9188],[1738,9188],[1739,9188],[1740,9188],[1741,9188],[1742,9188],[1743,9188],[1744,9188],[1745,9188],[1746,9188],[1747,9188],[1748,9188],[1749,9188],[1750,9188],[1751,9188],[1752,9188],[1753,9188],[1754,9188],[1755,9188],[1756,9188],[1757,9188],[1758,9188],[1759,9188],[1760,9188],[1761,9188],[1762,9188],[1763,9188],[1764,9188],[1765,9188],[1766,9188],[1767,9188],[1768,9188],[1769,9188],[1770,9188],[1771,9188],[1772,9188],[1773,9188],[1774,9188],[1775,9188],[1776,9188],[1777,9188],[1778,9188],[1779,9188],[1780,9188],[1781,9188],[1782,9188],[1783,9188],[1784,9191],[1785,9193],[1786,9193],[1787,9188],[1788,9188],[1789,9188],[1790,9188],[1791,9188],[1792,9188],[1793,9188],[1794,9188],[1795,9188],[1796,9188],[1797,9188],[1798,9188],[1799,9188],[1800,9188],[1801,9188],[1802,9188],[1803,9188],[1804,9188],[1805,9188],[1806,9188],[1807,9188],[1808,9188],[1809,9188],[1810,9188],[1811,9191],[1812,9191],[1813,9188],[1814,9188],[1815,9188],[1816,9188],[1817,9188],[1818,9188],[1819,9188],[1820,9188],[1821,9188],[1822,9188],[1823,9188],[1824,9188],[1825,9188],[1826,9188],[1827,9188],[1828,9188],[1829,9188],[1830,9188],[1831,9188],[1832,9188],[1833,9188],[1834,9188],[1835,9188],[1836,9188],[1837,9188],[1838,9188],[1839,9188],[1840,9188],[1841,9188],[1842,9188],[1843,9188],[1844,9188],[1845,9188],[1846,9188],[1847,9188],[1848,9188],[1849,9188],[1850,9188],[1851,9188],[1852,9188],[1853,9188],[1854,9188],[1855,9188],[1856,9188],[1857,9188],[1858,9188],[1859,9188],[1860,9188],[1861,9188],[1862,9188],[1863,9188],[1864,9188],[1865,9188],[1866,9188],[1867,9188],[1868,9188],[1869,9188],[1870,9188],[1871,9188],[1872,9188],[1873,9188],[1874,9188],[1875,9188],[1876,9188],[1877,9188],[1878,9188],[1879,9188],[1880,9188],[1881,9188],[1882,9188],[1883,9188],[1884,9188],[1885,9188],[1886,9189],[1887,9189],[1888,9189],[1889,9189],[1890,9189],[1891,9189],[1892,9189],[1893,9189],[1894,9189],[1895,9189],[1896,9189],[1897,9188],[1898,9188],[1899,9188],[1900,9189],[1901,9188],[1902,9188],[1903,9188],[1904,9188],[1905,9188],[1906,9188],[1907,9188],[1908,9188],[1909,9189],[1910,9188],[1911,9189],[1912,9189],[1913,9189],[1914,9189],[1915,9189],[1916,9188],[1917,9188],[1918,9189],[1919,9188],[1920,9188],[1921,9188],[1922,9188],[1923,9188],[1924,9188],[1925,9189],[1926,9189],[1927,9189],[1928,9189],[1929,9188],[1930,9188],[1931,9188],[1932,9188],[1933,9188],[1934,9188],[1935,9188],[1936,9188],[1937,9188],[1938,9188],[1939,9188],[1940,9188],[1941,9188],[1942,9188],[1943,9188],[1944,9188],[1945,9188],[1946,9188],[1947,9188],[1948,9188],[1949,9188],[1950,9189],[1951,9189],[1952,9191],[1953,9189],[1954,9191],[1955,9191],[1956,9191],[1957,9191],[1958,9189],[1959,9189],[1960,9189],[1961,9189],[1962,9191],[1963,9191],[1964,9191],[1965,9191],[1966,9189],[1967,9189],[1968,9191],[1969,9191],[1970,9189],[1971,9189],[1972,9189],[1973,9189],[1974,9191],[1975,9191],[1976,9188],[1977,9188],[1978,9188],[1979,9188],[1980,9188],[1981,9188],[1982,9188],[1983,9188],[1984,9188],[1985,9188],[1986,9188],[1987,9188],[1988,9188],[1989,9188],[1990,9188],[1991,9188],[1992,9188],[1993,9188],[1994,9188],[1995,9188],[1996,9189],[1997,9189],[1998,9191],[1999,9191],[2000,9191],[2001,9191],[2002,9189],[2003,9190],[2004,9190],[2005,9191],[2006,9190],[2007,9190],[2008,9191],[2009,9190],[2010,9190],[2011,9190],[2012,9190],[2013,9190],[2014,9191],[2015,9190],[2016,9190],[2017,9190],[2018,9190],[2019,9190],[2020,9190],[2021,9190],[2022,9190],[2023,9190],[2024,9190],[2025,9190],[2026,9190],[2027,9190],[2028,9190],[2029,9188],[2030,9190],[2031,9190],[2032,9190],[2033,9191],[2034,9190],[2035,9190],[2036,9190],[2037,9190],[2038,9190],[2039,9190],[2040,9188],[2041,9189],[2042,9191],[2043,9189],[2044,9191],[2045,9191],[2046,9191],[2047,9191],[2048,9191],[2049,9191],[2050,9191],[2051,9191],[2052,9191],[2053,9191],[2054,9191],[2055,9191],[2056,9191],[2057,9191],[2058,9191],[2059,9191],[2060,9191],[2061,9191],[2062,9191],[2063,9193],[2064,9191],[2065,9191],[2066,9191],[2067,9193],[2068,9193],[2069,9193],[2070,9193],[2071,9193],[2072,9191],[2073,9191],[2074,9191],[2075,9188],[2076,9193],[2077,9193],[2078,9189],[2079,9189],[2080,9189],[2081,9189],[2082,9189],[2083,9189],[2084,9189],[2085,9189],[2086,9189],[2087,9189],[2088,9189],[2089,9189],[2090,9189],[2091,9189],[2092,9193],[2093,9193],[2094,9193],[2095,9193],[2096,9191],[2097,9191],[2098,9188],[2099,9193],[2100,9193],[2101,9191],[2102,9189],[2103,9191],[2104,9188],[2105,9191],[2106,9189],[2107,9191],[2108,9191],[2109,9191],[2110,9191],[2111,9191],[2112,9191],[2113,9191],[2114,9191],[2115,9191],[2116,9193],[2117,9193],[2118,9193],[2119,9188],[2120,9188],[2121,9188],[2122,9188],[2123,9188],[2124,9188],[2125,9188],[2126,9188],[2127,9188],[2128,9188],[2129,9188],[2130,9188],[2131,9188],[2132,9188],[2133,9188],[2134,9188],[2135,9188],[2136,9188],[2137,9188],[2138,9188],[2139,9188],[2140,9188],[2141,9188],[2142,9188],[2143,9188],[2144,9188],[2145,9188],[2146,9188],[2147,9188],[2148,9191],[2149,9191],[2150,9191],[2151,9191],[2152,9191],[2153,9193],[2154,9188],[2155,9191],[2156,9191],[2157,9191],[2158,9191],[2159,9188],[2160,9188],[2161,9189],[2162,9189],[2163,9189],[2164,9189],[2165,9189],[2166,9189],[2167,9189],[2168,9189],[2169,9189],[2170,9189],[2171,9189],[2172,9188],[2173,9188],[2174,9188],[2175,9188],[2176,9188],[2177,9188],[2178,9188],[2179,9188],[2180,9188],[2181,9188],[2182,9188],[2183,9188],[2184,9189],[2185,9189],[2186,9189],[2187,9189],[2188,9189],[2189,9189],[2190,9189],[2191,9189],[2192,9188],[2193,9188],[2194,9188],[2195,9188],[2196,9188],[2197,9188],[2198,9188],[2199,9188],[2200,9188],[2201,9188],[2202,9188],[2203,9188],[2204,9188],[2205,9191],[2206,9191],[2207,9191],[2208,9188],[2209,9191],[2210,9191],[2211,9191],[2212,9191],[2213,9191],[2214,9188],[2215,9191],[2216,9191],[2217,9188],[2218,9191],[2219,9188],[2220,9191],[2221,9188],[2222,9191],[2223,9191],[2224,9191],[2225,9188],[2226,9191],[2227,9191],[2228,9189],[2229,9191],[2230,9191],[2231,9188],[2232,9191],[2233,9191],[2234,9191],[2235,9191],[2236,9191],[2237,9191],[2238,9191],[2239,9191],[2240,9191],[2241,9191],[2242,9191],[2243,9191],[2244,9191],[2245,9191],[2246,9191],[2247,9191],[2248,9191],[2249,9188],[2250,9191],[2251,9191],[2252,9191],[2253,9191],[2254,9191],[2255,9191],[2256,9189],[2257,9191],[2258,9191],[2259,9191],[2260,9191],[2261,9191],[2262,9191],[2263,9191],[2264,9189],[2265,9189],[2266,9189],[2267,9189],[2268,9189],[2269,9189],[2270,9189],[2271,9189],[2272,9189],[2273,9189],[2274,9189],[2275,9189],[2276,9193],[2277,9191],[2278,9188],[2279,9188],[2280,9188],[2281,9189],[2282,9188],[2283,9189],[2284,9188],[2285,9188],[2286,9189],[2287,9188],[2288,9188],[2289,9188],[2290,9188],[2291,9188],[2292,9188],[2293,9188],[2294,9188],[2295,9188],[2296,9188],[2297,9188],[2298,9188],[2299,9188],[2300,9188],[2301,9188],[2302,9188],[2303,9188],[2304,9188],[2305,9188],[2306,9188],[2307,9188],[2308,9188],[2309,9188],[2310,9188],[2311,9188],[2312,9188],[2313,9188],[2314,9188],[2315,9188],[2316,9188],[2317,9188],[2318,9188],[2319,9188],[2320,9188],[2321,9188],[2322,9188],[2323,9188],[2324,9188],[2325,9188],[2326,9188],[2327,9188],[2328,9188],[2329,9188],[2330,9188],[2331,9188],[2332,9188],[2333,9188],[2334,9188],[2335,9188],[2336,9188],[2337,9188],[2338,9188],[2339,9188],[2340,9188],[2341,9188],[2342,9188],[2343,9188],[2344,9188],[2345,9189],[2346,9188],[2347,9188],[2348,9188],[2349,9188],[2350,9188],[2351,9188],[2352,9188],[2353,9188],[2354,9188],[2355,9188],[2356,9188],[2357,9188],[2358,9188],[2359,9188],[2360,9188],[2361,9188],[2362,9188],[2363,9188],[2364,9188],[2365,9188],[2366,9188],[2367,9188],[2368,9188],[2369,9188],[2370,9188],[2371,9188],[2372,9188],[2373,9188],[2374,9188],[2375,9188],[2376,9188],[2377,9188],[2378,9188],[2379,9188],[2380,9188],[2381,9188],[2382,9188],[2383,9188],[2384,9188],[2385,9188],[2386,9188],[2387,9188],[2388,9188],[2389,9188],[2390,9188],[2391,9188],[2392,9188],[2393,9188],[2394,9188],[2395,9188],[2396,9188],[2397,9188],[2398,9188],[2399,9188],[2400,9188],[2401,9188],[2402,9188],[2403,9188],[2404,9188],[2405,9188],[2406,9188],[2407,9188],[2408,9188],[2409,9188],[2410,9188],[2411,9188],[2412,9188],[2413,9188],[2414,9188],[2415,9188],[2416,9188],[2417,9188],[2418,9188],[2419,9188],[2420,9188],[2421,9188],[2422,9188],[2423,9188],[2424,9188],[2425,9188],[2426,9188],[2427,9188],[2428,9188],[2429,9188],[2430,9188],[2431,9188],[2432,9188],[2433,9188],[2434,9188],[2435,9188],[2436,9191],[2437,9188],[2438,9188],[2439,9188],[2440,9188],[2441,9188],[2442,9188],[2443,9188],[2444,9188],[2445,9188],[2446,9188],[2447,9188],[2448,9188],[2449,9188],[2450,9188],[2451,9188],[2452,9188],[2453,9188],[2454,9188],[2455,9188],[2456,9188],[2457,9188],[2458,9188],[2459,9188],[2460,9188],[2461,9188],[2462,9188],[2463,9188],[2464,9188],[2465,9188],[2466,9188],[2467,9188],[2468,9188],[2469,9188],[2470,9188],[2471,9188],[2472,9188],[2473,9188],[2474,9188],[2475,9188],[2476,9188],[2477,9188],[2478,9188],[2479,9188],[2480,9188],[2481,9188],[2482,9188],[2483,9188],[2484,9188],[2485,9188],[2486,9188],[2487,9188],[2488,9188],[2489,9188],[2490,9188],[2491,9188],[2492,9188],[2493,9188],[2494,9188],[2495,9188],[2496,9188],[2497,9188],[2498,9188],[2499,9188],[2500,9188],[2501,9188],[2502,9188],[2503,9188],[2504,9188],[2505,9188],[2506,9188],[2507,9188],[2508,9188],[2509,9188],[2510,9188],[2511,9188],[2512,9188],[2513,9188],[2514,9188],[2515,9188],[2516,9188],[2517,9188],[2518,9188],[2519,9188],[2520,9188],[2521,9188],[2522,9188],[2523,9188],[2524,9188],[2525,9188],[2526,9188],[2527,9188],[2528,9188],[2529,9188],[2530,9188],[2531,9188],[2532,9188],[2533,9188],[2534,9188],[2535,9188],[2536,9188],[2537,9188],[2538,9188],[2539,9188],[2540,9188],[2541,9188],[2542,9188],[2543,9188],[2544,9188],[2545,9188],[2546,9188],[2547,9188],[2548,9188],[2549,9188],[2550,9188],[2551,9188],[2552,9188],[2553,9188],[2554,9188],[2555,9188],[2556,9188],[2557,9188],[2558,9188],[2559,9188],[2560,9188],[2561,9188],[2562,9188],[2563,9188],[2564,9188],[2565,9188],[2566,9188],[2567,9188],[2568,9188],[2569,9188],[2570,9188],[2571,9188],[2572,9188],[2573,9188],[2574,9188],[2575,9188],[2576,9188],[2577,9188],[2578,9188],[2579,9188],[2580,9188],[2581,9188],[2582,9188],[2583,9188],[2584,9188],[2585,9188],[2586,9188],[2587,9188],[2588,9188],[2589,9188],[2590,9188],[2591,9188],[2592,9188],[2593,9188],[2594,9188],[2595,9188],[2596,9188],[2597,9188],[2598,9188],[2599,9188],[2600,9188],[2601,9188],[2602,9188],[2603,9188],[2604,9188],[2605,9188],[2606,9188],[2607,9188],[2608,9188],[2609,9188],[2610,9188],[2611,9188],[2612,9188],[2613,9188],[2614,9188],[2615,9188],[2616,9188],[2617,9188],[2618,9188],[2619,9188],[2620,9188],[2621,9188],[2622,9188],[2623,9188],[2624,9188],[2625,9188],[2626,9188],[2627,9188],[2628,9188],[2629,9188],[2630,9188],[2631,9188],[2632,9188],[2633,9188],[2634,9188],[2635,9188],[2636,9188],[2637,9188],[2638,9188],[2639,9188],[2640,9188],[2641,9188],[2642,9188],[2643,9188],[2644,9188],[2645,9188],[2646,9188],[2647,9188],[2648,9188],[2649,9188],[2650,9188],[2651,9188],[2652,9188],[2653,9188],[2654,9188],[2655,9188],[2656,9188],[2657,9188],[2658,9188],[2659,9188],[2660,9188],[2661,9188],[2662,9188],[2663,9188],[2664,9188],[2665,9188],[2666,9188],[2667,9188],[2668,9188],[2669,9188],[2670,9188],[2671,9188],[2672,9188],[2673,9188],[2674,9188],[2675,9188],[2676,9188],[2677,9188],[2678,9188],[2679,9188],[2680,9188],[2681,9188],[2682,9188],[2683,9188],[2684,9188],[2685,9188],[2686,9188],[2687,9188],[2688,9188],[2689,9188],[2690,9188],[2691,9188],[2692,9191],[2693,9188],[2694,9188],[2695,9189],[2696,9188],[2697,9188],[2698,9188],[2699,9188],[2700,9191],[2701,9191],[2702,9188],[2703,9188],[2704,9188],[2705,9188],[2706,9188],[2707,9193],[2708,9188],[2709,9188],[2710,9188],[2711,9188],[2712,9188],[2713,9188],[2714,9188],[2715,9188],[2716,9188],[2717,9188],[2718,9188],[2719,9188],[2720,9188],[2721,9188],[2722,9188],[2723,9188],[2724,9188],[2725,9188],[2726,9188],[2727,9188],[2728,9193],[2729,9188],[2730,9191],[2731,9189],[2732,9188],[2733,9189],[2734,9188],[2735,9188],[2736,9188],[2737,9188],[2738,9189],[2739,9189],[2740,9189],[2741,9189],[2742,9189],[2743,9189],[2744,9189],[2745,9189],[2746,9189],[2747,9189],[2748,9189],[2749,9189],[2750,9189],[2751,9189],[2752,9189],[2753,9189],[2754,9189],[2755,9189],[2756,9188],[2757,9188],[2758,9188],[2759,9188],[2760,9188],[2761,9188],[2762,9188],[2763,9188],[2764,9188],[2765,9191],[2766,9191],[2767,9191],[2768,9191],[2769,9193],[2770,9189],[2771,9193],[2772,9191],[2773,9191],[2774,9191],[2775,9188],[2776,9188],[2777,9191],[2778,9193],[2779,9191],[2780,9189],[2781,9193],[2782,9193],[2783,9193],[2784,9193],[2785,9193],[2786,9193],[2787,9193],[2788,9193],[2789,9193],[2790,9192],[2791,9193],[2792,9193],[2793,9193],[2794,9193],[2795,9193],[2796,9193],[2797,9191],[2798,9191],[2799,9193],[2800,9193],[2801,9193],[2802,9193],[2803,9191],[2804,9188],[2805,9188],[2806,9188],[2807,9188],[2808,9188],[2809,9188],[2810,9193],[2811,9191],[2812,9193],[2813,9191],[2814,9193],[2815,9191],[2816,9191],[2817,9191],[2818,9191],[2819,9191],[2820,9191],[2821,9191],[2822,9191],[2823,9191],[2824,9191],[2825,9191],[2826,9188],[2827,9191],[2828,9188],[2829,9188],[2830,9189],[2831,9188],[2832,9191],[2833,9191],[2834,9191],[2835,9188],[2836,9191],[2837,9191],[2838,9191],[2839,9191],[2840,9191],[2841,9188],[2842,9188],[2843,9191],[2844,9191],[2845,9188],[2846,9188],[2847,9188],[2848,9188],[2849,9188],[2850,9188],[2851,9188],[2852,9188],[2853,9188],[2854,9189],[2855,9191],[2856,9191],[2857,9191],[2858,9189],[2859,9188],[2860,9188],[2861,9188],[2862,9191],[2863,9191],[2864,9188],[2865,9191],[2866,9188],[2867,9188],[2868,9191],[2869,9191],[2870,9191],[2871,9191],[2872,9191],[2873,9188],[2874,9191],[2875,9188],[2876,9191],[2877,9191],[2878,9191],[2879,9188],[2880,9188],[2881,9188],[2882,9189],[2883,9188],[2884,9191],[2885,9188],[2886,9188],[2887,9191],[2888,9189],[2889,9189],[2890,9191],[2891,9188],[2892,9191],[2893,9191],[2894,9191],[2895,9191],[2896,9191],[2897,9191],[2898,9191],[2899,9191],[2900,9191],[2901,9193],[2902,9193],[2903,9193],[2904,9193],[2905,9191],[2906,9191],[2907,9191],[2908,9191],[2909,9189],[2910,9188],[2911,9188],[2912,9188],[2913,9188],[2914,9188],[2915,9188],[2916,9188],[2917,9188],[2918,9188],[2919,9188],[2920,9188],[2921,9188],[2922,9190],[2923,9190],[2924,9189],[2925,9189],[2926,9189],[2927,9191],[2928,9191],[2929,9191],[2930,9191],[2931,9191],[2932,9191],[2933,9191],[2934,9188],[2935,9188],[2936,9188],[2937,9188],[2938,9188],[2939,9188],[2940,9188],[2941,9188],[2942,9188],[2943,9188],[2944,9188],[2945,9188],[2946,9188],[2947,9188],[2948,9188],[2949,9188],[2950,9188],[2951,9188],[2952,9188],[2953,9188],[2954,9188],[2955,9188],[2956,9188],[2957,9188],[2958,9188],[2959,9188],[2960,9188],[2961,9188],[2962,9188],[2963,9188],[2964,9188],[2965,9188],[2966,9188],[2967,9188],[2968,9188],[2969,9188],[2970,9193],[2971,9188],[2972,9188],[2973,9188],[2974,9188],[2975,9188],[2976,9188],[2977,9188],[2978,9188],[2979,9188],[2980,9188],[2981,9188],[2982,9188],[2983,9188],[2984,9188],[2985,9188],[2986,9188],[2987,9188],[2988,9188],[2989,9188],[2990,9188],[2991,9188],[2992,9188],[2993,9188],[2994,9188],[2995,9188],[2996,9188],[2997,9188],[2998,9188],[2999,9188],[3000,9188],[3001,9188],[3002,9188],[3003,9188],[3004,9188],[3005,9188],[3006,9188],[3007,9188],[3008,9188],[3009,9188],[3010,9188],[3011,9188],[3012,9188],[3013,9188],[3014,9188],[3015,9188],[3016,9188],[3017,9188],[3018,9188],[3019,9188],[3020,9188],[3021,9188],[3022,9188],[3023,9188],[3024,9188],[3025,9193],[3026,9188],[3027,9188],[3028,9188],[3029,9188],[3030,9188],[3031,9188],[3032,9188],[3033,9193],[3034,9193],[3035,9193],[3036,9193],[3037,9193],[3038,9193],[3039,9193],[3040,9193],[3041,9188],[3042,9188],[3043,9188],[3044,9188],[3045,9188],[3046,9188],[3047,9188],[3048,9188],[3049,9194],[3050,9188],[3051,9191],[3052,9191],[3053,9194],[3054,9188],[3055,9188],[3056,9189],[3057,9188],[3058,9188],[3059,9188],[3060,9188],[3061,9188],[3062,9188],[3063,9188],[3064,9188],[3065,9188],[3066,9188],[3067,9188],[3068,9188],[3069,9188],[3070,9194],[3071,9188],[3072,9189],[3073,9189],[3074,9189],[3075,9193],[3076,9191],[3077,9191],[3078,9191],[3079,9191],[3080,9191],[3081,9188],[3082,9191],[3083,9191],[3084,9189],[3085,9193],[3086,9193],[3087,9193],[3088,9189],[3089,9189],[3090,9189],[3091,9193],[3092,9189],[3093,9189],[3094,9189],[3095,9189],[3096,9191],[3097,9191],[3098,9191],[3099,9191],[3100,9191],[3101,9191],[3102,9191],[3103,9191],[3104,9191],[3105,9191],[3106,9191],[3107,9189],[3108,9189],[3109,9193],[3110,9189],[3111,9189],[3112,9189],[3113,9189],[3114,9189],[3115,9189],[3116,9193],[3117,9193],[3118,9189],[3119,9193],[3120,9189],[3121,9189],[3122,9189],[3123,9189],[3124,9189],[3125,9189],[3126,9189],[3127,9189],[3128,9189],[3129,9193],[3130,9193],[3131,9189],[3132,9188],[3133,9188],[3134,9188],[3135,9188],[3136,9188],[3137,9188],[3138,9188],[3139,9188],[3140,9188],[3141,9188],[3142,9188],[3143,9188],[3144,9188],[3145,9188],[3146,9188],[3147,9188],[3148,9188],[3149,9188],[3150,9188],[3151,9188],[3152,9191],[3153,9191],[3154,9191],[3155,9191],[3156,9191],[3157,9188],[3158,9188],[3159,9188],[3160,9191],[3161,9191],[3162,9191],[3163,9191],[3164,9191],[3165,9191],[3166,9191],[3167,9191],[3168,9191],[3169,9191],[3170,9191],[3171,9191],[3172,9191],[3173,9191],[3174,9191],[3175,9191],[3176,9191],[3177,9191],[3178,9191],[3179,9191],[3180,9193],[3181,9193],[3182,9193],[3183,9193],[3184,9193],[3185,9193],[3186,9193],[3187,9193],[3188,9188],[3189,9191],[3190,9193],[3191,9193],[3192,9193],[3193,9188],[3194,9188],[3195,9188],[3196,9188],[3197,9188],[3198,9188],[3199,9188],[3200,9193],[3201,9193],[3202,9191],[3203,9193],[3204,9191],[3205,9188],[3206,9188],[3207,9188],[3208,9193],[3209,9193],[3210,9188],[3211,9188],[3212,9188],[3213,9188],[3214,9189],[3215,9188],[3216,9193],[3217,9188],[3218,9188],[3219,9188],[3220,9189],[3221,9193],[3222,9189],[3223,9188],[3224,9188],[3225,9188],[3226,9188],[3227,9188],[3228,9188],[3229,9188],[3230,9188],[3231,9188],[3232,9193],[3233,9193],[3234,9193],[3235,9193],[3236,9193],[3237,9193],[3238,9193],[3239,9193],[3240,9193],[3241,9193],[3242,9193],[3243,9193],[3244,9193],[3245,9193],[3246,9193],[3247,9193],[3248,9193],[3249,9193],[3250,9189],[3251,9193],[3252,9191],[3253,9188],[3254,9188],[3255,9188],[3256,9188],[3257,9188],[3258,9188],[3259,9188],[3260,9188],[3261,9188],[3262,9188],[3263,9188],[3264,9188],[3265,9188],[3266,9193],[3267,9191],[3268,9197],[3269,9197],[3270,9197],[3271,9197],[3272,9197],[3273,9197],[3274,9197],[3275,9197],[3276,9197],[3277,9197],[3278,9197],[3279,9197],[3280,9197],[3281,9197],[3282,9197],[3283,9197],[3284,9197],[3285,9197],[3286,9197],[3287,9188],[3288,9188],[3289,9193],[3290,9193],[3291,9188],[3292,9188],[3293,9189],[3294,9189],[3295,9189],[3296,9188],[3297,9188],[3298,9188],[3299,9188],[3300,9188],[3301,9188],[3302,9188],[3303,9188],[3304,9189],[3305,9188],[3306,9189],[3307,9189],[3308,9188],[3309,9188],[3310,9188],[3311,9188],[3312,9188],[3313,9188],[3314,9189],[3315,9189],[3316,9188],[3317,9189],[3318,9188],[3319,9188],[3320,9188],[3321,9188],[3322,9188],[3323,9188],[3324,9188],[3325,9188],[3326,9188],[3327,9188],[3328,9188],[3329,9188],[3330,9188],[3331,9188],[3332,9188],[3333,9188],[3334,9188],[3335,9188],[3336,9188],[3337,9188],[3338,9188],[3339,9188],[3340,9188],[3341,9188],[3342,9188],[3343,9188],[3344,9188],[3345,9188],[3346,9188],[3347,9188],[3348,9188],[3349,9188],[3350,9188],[3351,9188],[3352,9188],[3353,9188],[3354,9188],[3355,9188],[3356,9188],[3357,9188],[3358,9188],[3359,9188],[3360,9188],[3361,9193],[3362,9188],[3363,9189],[3364,9189],[3365,9189],[3366,9189],[3367,9189],[3368,9189],[3369,9189],[3370,9189],[3371,9189],[3372,9189],[3373,9193],[3374,9191],[3375,9191],[3376,9188],[3377,9188],[3378,9193],[3379,9188],[3380,9188],[3381,9188],[3382,9188],[3383,9188],[3384,9188],[3385,9188],[3386,9188],[3387,9188],[3388,9188],[3389,9188],[3390,9188],[3391,9188],[3392,9188],[3393,9188],[3394,9188],[3395,9188],[3396,9188],[3397,9188],[3398,9188],[3399,9188],[3400,9188],[3401,9188],[3402,9188],[3403,9188],[3404,9188],[3405,9188],[3406,9188],[3407,9188],[3408,9188],[3409,9188],[3410,9189],[3411,9188],[3412,9188],[3413,9188],[3414,9188],[3415,9188],[3416,9188],[3417,9188],[3418,9188],[3419,9189],[3420,9189],[3421,9188],[3422,9188],[3423,9188],[3424,9188],[3425,9188],[3426,9188],[3427,9188],[3428,9188],[3429,9188],[3430,9188],[3431,9188],[3432,9188],[3433,9188],[3434,9188],[3435,9188],[3436,9188],[3437,9188],[3438,9189],[3439,9188],[3440,9188],[3441,9188],[3442,9188],[3443,9188],[3444,9189],[3445,9188],[3446,9188],[3447,9188],[3448,9188],[3449,9188],[3450,9188],[3451,9188],[3452,9188],[3453,9188],[3454,9188],[3455,9188],[3456,9189],[3457,9188],[3458,9188],[3459,9188],[3460,9188],[3461,9188],[3462,9188],[3463,9188],[3464,9188],[3465,9188],[3466,9188],[3467,9188],[3468,9188],[3469,9188],[3470,9188],[3471,9188],[3472,9188],[3473,9188],[3474,9188],[3475,9188],[3476,9188],[3477,9188],[3478,9188],[3479,9188],[3480,9188],[3481,9188],[3482,9188],[3483,9188],[3484,9188],[3485,9188],[3486,9188],[3487,9188],[3488,9188],[3489,9188],[3490,9188],[3491,9188],[3492,9188],[3493,9188],[3494,9188],[3495,9188],[3496,9188],[3497,9188],[3498,9188],[3499,9188],[3500,9188],[3501,9188],[3502,9188],[3503,9188],[3504,9188],[3505,9188],[3506,9188],[3507,9188],[3508,9188],[3509,9188],[3510,9188],[3511,9188],[3512,9188],[3513,9188],[3514,9188],[3515,9188],[3516,9188],[3517,9188],[3518,9188],[3519,9188],[3520,9188],[3521,9188],[3522,9188],[3523,9188],[3524,9188],[3525,9188],[3526,9188],[3527,9188],[3528,9188],[3529,9188],[3530,9188],[3531,9188],[3532,9188],[3533,9188],[3534,9189],[3535,9188],[3536,9191],[3537,9188],[3538,9189],[3539,9189],[3540,9189],[3541,9189],[3542,9189],[3543,9191],[3544,9193],[3545,9193],[3546,9193],[3547,9193],[3548,9193],[3549,9193],[3550,9193],[3551,9188],[3552,9188],[3553,9188],[3554,9188],[3555,9188],[3556,9188],[3557,9188],[3558,9188],[3559,9188],[3560,9188],[3561,9188],[3562,9188],[3563,9188],[3564,9188],[3565,9188],[3566,9188],[3567,9188],[3568,9188],[3569,9191],[3570,9188],[3571,9188],[3572,9188],[3573,9188],[3574,9191],[3575,9191],[3576,9197],[3577,9197],[3578,9197],[3579,9197],[3580,9197],[3581,9197],[3582,9188],[3583,9188],[3584,9188],[3585,9188],[3586,9188],[3587,9188],[3588,9188],[3589,9188],[3590,9188],[3591,9188],[3592,9188],[3593,9188],[3594,9188],[3595,9188],[3596,9188],[3597,9188],[3598,9188],[3599,9188],[3600,9188],[3601,9188],[3602,9188],[3603,9188],[3604,9188],[3605,9188],[3606,9188],[3607,9188],[3608,9188],[3609,9188],[3610,9188],[3611,9188],[3612,9188],[3613,9188],[3614,9188],[3615,9188],[3616,9188],[3617,9188],[3618,9188],[3619,9188],[3620,9188],[3621,9188],[3622,9188],[3623,9188],[3624,9188],[3625,9188],[3626,9188],[3627,9188],[3628,9188],[3629,9188],[3630,9188],[3631,9188],[3632,9188],[3633,9188],[3634,9188],[3635,9188],[3636,9188],[3637,9188],[3638,9188],[3639,9188],[3640,9188],[3641,9188],[3642,9188],[3643,9188],[3644,9188],[3645,9188],[3646,9188],[3647,9188],[3648,9188],[3649,9188],[3650,9188],[3651,9188],[3652,9188],[3653,9188],[3654,9188],[3655,9188],[3656,9188],[3657,9188],[3658,9188],[3659,9188],[3660,9188],[3661,9188],[3662,9188],[3663,9188],[3664,9188],[3665,9188],[3666,9188],[3667,9188],[3668,9188],[3669,9188],[3670,9188],[3671,9188],[3672,9188],[3673,9188],[3674,9188],[3675,9188],[3676,9188],[3677,9188],[3678,9188],[3679,9188],[3680,9188],[3681,9188],[3682,9188],[3683,9188],[3684,9188],[3685,9188],[3686,9188],[3687,9191],[3688,9191],[3689,9188],[3690,9191],[3691,9188],[3692,9191],[3693,9188],[3694,9191],[3695,9188],[3696,9193],[3697,9193],[3698,9188],[3699,9188],[3700,9188],[3701,9188],[3702,9188],[3703,9188],[3704,9188],[3705,9188],[3706,9188],[3707,9188],[3708,9191],[3709,9191],[3710,9191],[3711,9191],[3712,9191],[3713,9191],[3714,9193],[3715,9193],[3716,9193],[3717,9191],[3718,9191],[3719,9191],[3720,9189],[3721,9191],[3722,9191],[3723,9191],[3724,9191],[3725,9193],[3726,9190],[3727,9191],[3728,9191],[3729,9193],[3730,9193],[3731,9193],[3732,9191],[3733,9191],[3734,9191],[3735,9191],[3736,9193],[3737,9193],[3738,9193],[3739,9193],[3740,9191],[3741,9191],[3742,9193],[3743,9193],[3744,9193],[3745,9193],[3746,9193],[3747,9193],[3748,9193],[3749,9193],[3750,9193],[3751,9193],[3752,9193],[3753,9193],[3754,9190],[3755,9190],[3756,9190],[3757,9193],[3758,9193],[3759,9188],[3760,9188],[3761,9188],[3762,9188],[3763,9188],[3764,9188],[3765,9188],[3766,9188],[3767,9188],[3768,9188],[3769,9188],[3770,9188],[3771,9188],[3772,9188],[3773,9188],[3774,9188],[3775,9188],[3776,9188],[3777,9188],[3778,9188],[3779,9188],[3780,9188],[3781,9188],[3782,9188],[3783,9188],[3784,9188],[3785,9188],[3786,9188],[3787,9188],[3788,9188],[3789,9188],[3790,9188],[3791,9188],[3792,9188],[3793,9188],[3794,9188],[3795,9188],[3796,9188],[3797,9188],[3798,9188],[3799,9188],[3800,9188],[3801,9188],[3802,9188],[3803,9188],[3804,9188],[3805,9188],[3806,9188],[3807,9188],[3808,9188],[3809,9188],[3810,9188],[3811,9188],[3812,9188],[3813,9188],[3814,9188],[3815,9188],[3816,9188],[3817,9188],[3818,9188],[3819,9188],[3820,9188],[3821,9188],[3822,9188],[3823,9188],[3824,9188],[3825,9188],[3826,9188],[3827,9188],[3828,9188],[3829,9188],[3830,9188],[3831,9188],[3832,9188],[3833,9188],[3834,9188],[3835,9188],[3836,9188],[3837,9188],[3838,9188],[3839,9188],[3840,9188],[3841,9188],[3842,9188],[3843,9188],[3844,9188],[3845,9188],[3846,9188],[3847,9188],[3848,9188],[3849,9188],[3850,9188],[3851,9188],[3852,9188],[3853,9188],[3854,9188],[3855,9188],[3856,9188],[3857,9188],[3858,9188],[3859,9188],[3860,9188],[3861,9188],[3862,9188],[3863,9188],[3864,9188],[3865,9188],[3866,9188],[3867,9188],[3868,9188],[3869,9188],[3870,9188],[3871,9188],[3872,9191],[3873,9188],[3874,9188],[3875,9188],[3876,9188],[3877,9188],[3878,9188],[3879,9188],[3880,9188],[3881,9188],[3882,9188],[3883,9188],[3884,9188],[3885,9188],[3886,9188],[3887,9188],[3888,9188],[3889,9188],[3890,9188],[3891,9188],[3892,9188],[3893,9188],[3894,9188],[3895,9188],[3896,9188],[3897,9188],[3898,9188],[3899,9188],[3900,9188],[3901,9188],[3902,9191],[3903,9191],[3904,9188],[3905,9188],[3906,9191],[3907,9189],[3908,9193],[3909,9189],[3910,9189],[3911,9191],[3912,9191],[3913,9189],[3914,9193],[3915,9188],[3916,9188],[3917,9188],[3918,9188],[3919,9188],[3920,9188],[3921,9188],[3922,9188],[3923,9188],[3924,9188],[3925,9188],[3926,9188],[3927,9188],[3928,9188],[3929,9188],[3930,9188],[3931,9188],[3932,9191],[3933,9191],[3934,9191],[3935,9191],[3936,9189],[3937,9188],[3938,9188],[3939,9188],[3940,9191],[3941,9191],[3942,9191],[3943,9191],[3944,9191],[3945,9191],[3946,9189],[3947,9191],[3948,9191],[3949,9191],[3950,9189],[3951,9191],[3952,9189],[3953,9189],[3954,9191],[3955,9189],[3956,9189],[3957,9197],[3958,9191],[3959,9191],[3960,9188],[3961,9191],[3962,9191],[3963,9189],[3964,9189],[3965,9197],[3966,9197],[3967,9197],[3968,9197],[3969,9197],[3970,9197],[3971,9197],[3972,9197],[3973,9197],[3974,9197],[3975,9197],[3976,9197],[3977,9197],[3978,9191],[3979,9197],[3980,9197],[3981,9197],[3982,9197],[3983,9197],[3984,9188],[3985,9188],[3986,9188],[3987,9188],[3988,9188],[3989,9188],[3990,9188],[3991,9197],[3992,9197],[3993,9197],[3994,9197],[3995,9188],[3996,9188],[3997,9188],[3998,9188],[3999,9197],[4000,9197],[4001,9197],[4002,9197],[4003,9197],[4004,9197],[4005,9197],[4006,9197],[4007,9197],[4008,9188],[4009,9197],[4010,9197],[4011,9197],[4012,9197],[4013,9197],[4014,9197],[4015,9197],[4016,9197],[4017,9197],[4018,9197],[4019,9197],[4020,9197],[4021,9197],[4022,9197],[4023,9197],[4024,9197],[4025,9197],[4026,9197],[4027,9197],[4028,9197],[4029,9197],[4030,9197],[4031,9197],[4032,9197],[4033,9197],[4034,9197],[4035,9197],[4036,9197],[4037,9197],[4038,9197],[4039,9197],[4040,9197],[4041,9197],[4042,9197],[4043,9197],[4044,9197],[4045,9191],[4046,9191],[4047,9191],[4048,9191],[4049,9193],[4050,9191],[4051,9191],[4052,9189],[4053,9189],[4054,9189],[4055,9189],[4056,9189],[4057,9189],[4058,9189],[4059,9189],[4060,9189],[4061,9189],[4062,9189],[4063,9189],[4064,9189],[4065,9189],[4066,9189],[4067,9189],[4068,9189],[4069,9189],[4070,9189],[4071,9189],[4072,9189],[4073,9189],[4074,9189],[4075,9189],[4076,9189],[4077,9189],[4078,9189],[4079,9189],[4080,9189],[4081,9189],[4082,9189],[4083,9189],[4084,9189],[4085,9189],[4086,9189],[4087,9189],[4088,9189],[4089,9189],[4090,9189],[4091,9189],[4092,9189],[4093,9189],[4094,9189],[4095,9191],[4096,9191],[4097,9191],[4098,9191],[4099,9188],[4100,9188],[4101,9188],[4102,9188],[4103,9188],[4104,9188],[4105,9188],[4106,9188],[4107,9188],[4108,9189],[4109,9188],[4110,9188],[4111,9188],[4112,9188],[4113,9188],[4114,9188],[4115,9188],[4116,9188],[4117,9188],[4118,9191],[4119,9194],[4120,9194],[4121,9194],[4122,9194],[4123,9194],[4124,9194],[4125,9194],[4126,9194],[4127,9194],[4128,9194],[4129,9194],[4130,9194],[4131,9194],[4132,9194],[4133,9194],[4134,9194],[4135,9194],[4136,9194],[4137,9194],[4138,9194],[4139,9194],[4140,9194],[4141,9194],[4142,9194],[4143,9194],[4144,9194],[4145,9194],[4146,9194],[4147,9194],[4148,9194],[4149,9194],[4150,9194],[4151,9194],[4152,9194],[4153,9194],[4154,9194],[4155,9194],[4156,9194],[4157,9194],[4158,9194],[4159,9194],[4160,9194],[4161,9194],[4162,9194],[4163,9194],[4164,9194],[4165,9194],[4166,9194],[4167,9194],[4168,9194],[4169,9194],[4170,9194],[4171,9194],[4172,9194],[4173,9194],[4174,9194],[4175,9194],[4176,9194],[4177,9194],[4178,9194],[4179,9194],[4180,9194],[4181,9194],[4182,9194],[4183,9194],[4184,9194],[4185,9194],[4186,9194],[4187,9194],[4188,9194],[4189,9194],[4190,9194],[4191,9194],[4192,9194],[4193,9194],[4194,9194],[4195,9194],[4196,9194],[4197,9194],[4198,9194],[4199,9194],[4200,9194],[4201,9194],[4202,9194],[4203,9194],[4204,9194],[4205,9194],[4206,9194],[4207,9194],[4208,9194],[4209,9194],[4210,9194],[4211,9194],[4212,9194],[4213,9194],[4214,9194],[4215,9194],[4216,9194],[4217,9194],[4218,9194],[4219,9194],[4220,9194],[4221,9194],[4222,9194],[4223,9194],[4224,9194],[4225,9194],[4226,9194],[4227,9194],[4228,9194],[4229,9194],[4230,9194],[4231,9194],[4232,9194],[4233,9194],[4234,9194],[4235,9194],[4236,9194],[4237,9194],[4238,9194],[4239,9194],[4240,9194],[4241,9194],[4242,9194],[4243,9194],[4244,9194],[4245,9194],[4246,9194],[4247,9194],[4248,9194],[4249,9194],[4250,9194],[4251,9194],[4252,9194],[4253,9194],[4254,9194],[4255,9194],[4256,9194],[4257,9194],[4258,9194],[4259,9194],[4260,9194],[4261,9194],[4262,9194],[4263,9194],[4264,9194],[4265,9194],[4266,9194],[4267,9194],[4268,9194],[4269,9194],[4270,9194],[4271,9194],[4272,9194],[4273,9194],[4274,9194],[4275,9194],[4276,9194],[4277,9194],[4278,9194],[4279,9194],[4280,9194],[4281,9194],[4282,9194],[4283,9194],[4284,9194],[4285,9194],[4286,9194],[4287,9194],[4288,9194],[4289,9194],[4290,9194],[4291,9194],[4292,9194],[4293,9194],[4294,9194],[4295,9194],[4296,9194],[4297,9194],[4298,9194],[4299,9194],[4300,9194],[4301,9194],[4302,9194],[4303,9194],[4304,9194],[4305,9194],[4306,9194],[4307,9194],[4308,9194],[4309,9194],[4310,9194],[4311,9194],[4312,9194],[4313,9194],[4314,9194],[4315,9194],[4316,9194],[4317,9194],[4318,9194],[4319,9194],[4320,9194],[4321,9194],[4322,9194],[4323,9194],[4324,9194],[4325,9194],[4326,9194],[4327,9194],[4328,9194],[4329,9194],[4330,9194],[4331,9194],[4332,9194],[4333,9194],[4334,9194],[4335,9194],[4336,9194],[4337,9194],[4338,9194],[4339,9194],[4340,9194],[4341,9194],[4342,9194],[4343,9194],[4344,9194],[4345,9194],[4346,9194],[4347,9194],[4348,9194],[4349,9194],[4350,9194],[4351,9194],[4352,9194],[4353,9194],[4354,9194],[4355,9194],[4356,9194],[4357,9194],[4358,9194],[4359,9194],[4360,9194],[4361,9194],[4362,9194],[4363,9194],[4364,9194],[4365,9194],[4366,9194],[4367,9194],[4368,9194],[4369,9194],[4370,9194],[4371,9194],[4372,9194],[4373,9194],[4374,9194],[4375,9194],[4376,9194],[4377,9194],[4378,9194],[4379,9194],[4380,9194],[4381,9194],[4382,9194],[4383,9194],[4384,9194],[4385,9194],[4386,9194],[4387,9194],[4388,9194],[4389,9194],[4390,9194],[4391,9194],[4392,9194],[4393,9194],[4394,9194],[4395,9194],[4396,9194],[4397,9194],[4398,9194],[4399,9194],[4400,9194],[4401,9194],[4402,9194],[4403,9194],[4404,9194],[4405,9194],[4406,9194],[4407,9194],[4408,9194],[4409,9194],[4410,9194],[4411,9194],[4412,9194],[4413,9194],[4414,9194],[4415,9194],[4416,9194],[4417,9194],[4418,9194],[4419,9194],[4420,9194],[4421,9194],[4422,9194],[4423,9194],[4424,9194],[4425,9194],[4426,9194],[4427,9194],[4428,9194],[4429,9194],[4430,9194],[4431,9194],[4432,9194],[4433,9194],[4434,9194],[4435,9194],[4436,9194],[4437,9194],[4438,9194],[4439,9194],[4440,9194],[4441,9194],[4442,9194],[4443,9194],[4444,9194],[4445,9194],[4446,9194],[4447,9194],[4448,9194],[4449,9194],[4450,9194],[4451,9194],[4452,9194],[4453,9194],[4454,9194],[4455,9194],[4456,9194],[4457,9194],[4458,9194],[4459,9194],[4460,9194],[4461,9194],[4462,9194],[4463,9194],[4464,9194],[4465,9194],[4466,9194],[4467,9194],[4468,9194],[4469,9194],[4470,9194],[4471,9194],[4472,9194],[4473,9194],[4474,9194],[4475,9194],[4476,9194],[4477,9194],[4478,9194],[4479,9194],[4480,9188],[4481,9191],[4482,9191],[4483,9191],[4484,9191],[4485,9191],[4486,9191],[4487,9191],[4488,9191],[4489,9188],[4490,9191],[4491,9191],[4492,9191],[4493,9191],[4494,9191],[4495,9191],[4496,9190],[4497,9190],[4498,9190],[4499,9191],[4500,9191],[4501,9188],[4502,9191],[4503,9191],[4504,9191],[4505,9191],[4506,9191],[4507,9193],[4508,9193],[4509,9193],[4510,9193],[4511,9189],[4512,9189],[4513,9188],[4514,9189],[4515,9188],[4516,9188],[4517,9189],[4518,9188],[4519,9188],[4520,9188],[4521,9188],[4522,9188],[4523,9188],[4524,9197],[4525,9197],[4526,9197],[4527,9197],[4528,9197],[4529,9191],[4530,9191],[4531,9191],[4532,9191],[4533,9191],[4534,9191],[4535,9191],[4536,9191],[4537,9191],[4538,9191],[4539,9191],[4540,9191],[4541,9191],[4542,9191],[4543,9191],[4544,9191],[4545,9191],[4546,9191],[4547,9191],[4548,9191],[4549,9191],[4550,9191],[4551,9191],[4552,9191],[4553,9191],[4554,9191],[4555,9191],[4556,9191],[4557,9191],[4558,9191],[4559,9191],[4560,9191],[4561,9191],[4562,9191],[4563,9191],[4564,9191],[4565,9191],[4566,9191],[4567,9191],[4568,9191],[4569,9191],[4570,9191],[4571,9191],[4572,9191],[4573,9191],[4574,9193],[4575,9193],[4576,9193],[4577,9197],[4578,9197],[4579,9197],[4580,9197],[4581,9197],[4582,9197],[4583,9197],[4584,9197],[4585,9197],[4586,9197],[4587,9197],[4588,9197],[4589,9197],[4590,9197],[4591,9197],[4592,9188],[4593,9188],[4594,9188],[4595,9188],[4596,9188],[4597,9191],[4598,9189],[4599,9189],[4600,9189],[4601,9189],[4602,9189],[4603,9189],[4604,9189],[4605,9197],[4606,9197],[4607,9197],[4608,9197],[4609,9197],[4610,9197],[4611,9197],[4612,9197],[4613,9197],[4614,9197],[4615,9197],[4616,9197],[4617,9197],[4618,9197],[4619,9197],[4620,9197],[4621,9197],[4622,9197],[4623,9197],[4624,9197],[4625,9197],[4626,9197],[4627,9197],[4628,9197],[4629,9197],[4630,9197],[4631,9197],[4632,9197],[4633,9197],[4634,9197],[4635,9197],[4636,9197],[4637,9197],[4638,9197],[4639,9197],[4640,9197],[4641,9197],[4642,9197],[4643,9197],[4644,9197],[4645,9197],[4646,9197],[4647,9197],[4648,9197],[4649,9197],[4650,9197],[4651,9197],[4652,9197],[4653,9197],[4654,9197],[4655,9197],[4656,9197],[4657,9197],[4658,9197],[4659,9197],[4660,9197],[4661,9197],[4662,9197],[4663,9197],[4664,9197],[4665,9188],[4666,9188],[4667,9188],[4668,9188],[4669,9188],[4670,9188],[4671,9188],[4672,9188],[4673,9188],[4674,9188],[4675,9188],[4676,9188],[4677,9188],[4678,9188],[4679,9188],[4680,9188],[4681,9188],[4682,9188],[4683,9188],[4684,9188],[4685,9188],[4686,9188],[4687,9188],[4688,9188],[4689,9188],[4690,9188],[4691,9188],[4692,9188],[4693,9191],[4694,9189],[4695,9193],[4696,9191],[4697,9188],[4698,9188],[4699,9188],[4700,9188],[4701,9188],[4702,9188],[4703,9188],[4704,9188],[4705,9188],[4706,9188],[4707,9188],[4708,9188],[4709,9188],[4710,9188],[4711,9188],[4712,9188],[4713,9191],[4714,9188],[4715,9188],[4716,9188],[4717,9188],[4718,9188],[4719,9188],[4720,9188],[4721,9188],[4722,9191],[4723,9191],[4724,9189],[4725,9191],[4726,9189],[4727,9190],[4728,9191],[4729,9191],[4730,9193],[4731,9193],[4732,9193],[4733,9193],[4734,9191],[4735,9191],[4736,9191],[4737,9191],[4738,9188],[4739,9188],[4740,9188],[4741,9188],[4742,9188],[4743,9188],[4744,9193],[4745,9188],[4746,9188],[4747,9188],[4748,9188],[4749,9188],[4750,9188],[4751,9188],[4752,9188],[4753,9188],[4754,9188],[4755,9188],[4756,9188],[4757,9188],[4758,9188],[4759,9188],[4760,9188],[4761,9188],[4762,9188],[4763,9188],[4764,9188],[4765,9188],[4766,9188],[4767,9188],[4768,9188],[4769,9188],[4770,9188],[4771,9188],[4772,9191],[4773,9193],[4774,9193],[4775,9193],[4776,9193],[4777,9193],[4778,9191],[4779,9193],[4780,9193],[4781,9193],[4782,9193],[4783,9191],[4784,9191],[4785,9191],[4786,9191],[4787,9191],[4788,9191],[4789,9191],[4790,9191],[4791,9191],[4792,9188],[4793,9191],[4794,9191],[4795,9191],[4796,9191],[4797,9191],[4798,9191],[4799,9191],[4800,9191],[4801,9191],[4802,9191],[4803,9191],[4804,9189],[4805,9189],[4806,9189],[4807,9189],[4808,9189],[4809,9189],[4810,9189],[4811,9189],[4812,9189],[4813,9189],[4814,9189],[4815,9189],[4816,9189],[4817,9189],[4818,9189],[4819,9189],[4820,9189],[4821,9189],[4822,9189],[4823,9189],[4824,9189],[4825,9191],[4826,9189],[4827,9189],[4828,9189],[4829,9193],[4830,9191],[4831,9188],[4832,9188],[4833,9191],[4834,9191],[4835,9191],[4836,9188],[4837,9188],[4838,9188],[4839,9188],[4840,9188],[4841,9188],[4842,9188],[4843,9188],[4844,9188],[4845,9188],[4846,9188],[4847,9188],[4848,9188],[4849,9188],[4850,9188],[4851,9188],[4852,9188],[4853,9188],[4854,9188],[4855,9188],[4856,9188],[4857,9188],[4858,9188],[4859,9188],[4860,9188],[4861,9189],[4862,9188],[4863,9188],[4864,9188],[4865,9188],[4866,9188],[4867,9188],[4868,9188],[4869,9188],[4870,9188],[4871,9188],[4872,9188],[4873,9188],[4874,9188],[4875,9188],[4876,9188],[4877,9188],[4878,9188],[4879,9188],[4880,9188],[4881,9188],[4882,9188],[4883,9189],[4884,9188],[4885,9188],[4886,9188],[4887,9188],[4888,9189],[4889,9189],[4890,9189],[4891,9189],[4892,9188],[4893,9188],[4894,9188],[4895,9188],[4896,9188],[4897,9189],[4898,9189],[4899,9188],[4900,9189],[4901,9189],[4902,9189],[4903,9189],[4904,9188],[4905,9189],[4906,9189],[4907,9189],[4908,9189],[4909,9189],[4910,9188],[4911,9188],[4912,9188],[4913,9188],[4914,9189],[4915,9189],[4916,9188],[4917,9188],[4918,9188],[4919,9189],[4920,9189],[4921,9189],[4922,9189],[4923,9189],[4924,9189],[4925,9189],[4926,9189],[4927,9189],[4928,9189],[4929,9189],[4930,9189],[4931,9189],[4932,9189],[4933,9189],[4934,9188],[4935,9188],[4936,9189],[4937,9188],[4938,9189],[4939,9188],[4940,9188],[4941,9188],[4942,9188],[4943,9188],[4944,9188],[4945,9188],[4946,9189],[4947,9189],[4948,9188],[4949,9189],[4950,9189],[4951,9189],[4952,9189],[4953,9189],[4954,9189],[4955,9188],[4956,9188],[4957,9188],[4958,9188],[4959,9188],[4960,9188],[4961,9188],[4962,9188],[4963,9189],[4964,9189],[4965,9189],[4966,9189],[4967,9189],[4968,9189],[4969,9189],[4970,9189],[4971,9189],[4972,9189],[4973,9189],[4974,9189],[4975,9188],[4976,9188],[4977,9188],[4978,9188],[4979,9188],[4980,9188],[4981,9189],[4982,9188],[4983,9188],[4984,9188],[4985,9189],[4986,9189],[4987,9189],[4988,9188],[4989,9188],[4990,9188],[4991,9188],[4992,9188],[4993,9189],[4994,9189],[4995,9189],[4996,9188],[4997,9189],[4998,9188],[4999,9188],[5000,9188],[5001,9189],[5002,9188],[5003,9188],[5004,9188],[5005,9188],[5006,9188],[5007,9189],[5008,9189],[5009,9188],[5010,9188],[5011,9188],[5012,9188],[5013,9188],[5014,9188],[5015,9188],[5016,9188],[5017,9188],[5018,9188],[5019,9188],[5020,9188],[5021,9188],[5022,9188],[5023,9188],[5024,9188],[5025,9188],[5026,9188],[5027,9188],[5028,9188],[5029,9188],[5030,9188],[5031,9188],[5032,9188],[5033,9188],[5034,9188],[5035,9188],[5036,9188],[5037,9188],[5038,9188],[5039,9189],[5040,9189],[5041,9189],[5042,9188],[5043,9189],[5044,9189],[5045,9189],[5046,9189],[5047,9188],[5048,9188],[5049,9188],[5050,9188],[5051,9188],[5052,9188],[5053,9188],[5054,9188],[5055,9188],[5056,9189],[5057,9188],[5058,9188],[5059,9188],[5060,9188],[5061,9188],[5062,9188],[5063,9188],[5064,9188],[5065,9188],[5066,9188],[5067,9188],[5068,9188],[5069,9188],[5070,9188],[5071,9188],[5072,9188],[5073,9188],[5074,9188],[5075,9193],[5076,9194],[5077,9193],[5078,9188],[5079,9193],[5080,9194],[5081,9192],[5082,9194],[5083,9189],[5084,9189],[5085,9189],[5086,9191],[5087,9191],[5088,9191],[5089,9188],[5090,9188],[5091,9188],[5092,9189],[5093,9189],[5094,9189],[5095,9189],[5096,9188],[5097,9188],[5098,9188],[5100,9189],[5101,9192],[5106,9189],[5108,9189],[5109,9189],[5110,9188],[5111,9188],[5112,9193],[5115,9192],[5116,9189],[5117,9188],[5118,9188],[5119,9193],[5120,9188],[5134,9193],[5135,9193],[5136,9193],[5158,9191],[5162,9188],[5196,9189],[5219,9188],[5220,9191],[5221,9191],[5222,9191],[5235,9188],[5236,9192],[5237,9193],[5709,9193],[5710,9190],[5711,9190],[5714,9190],[5721,9194],[5722,9190],[5727,9190],[5728,9190],[5729,9190],[5730,9190],[5731,9194],[5732,9190],[5733,9190],[5734,9200],[5739,9188],[5741,9188],[5742,9188],[5748,9188],[5749,9188],[5750,9188],[5751,9190],[5784,9192],[5786,9191],[6013,9195],[6022,9189],[6034,9188],[6070,9188],[6073,9188],[6074,9188],[6078,9188],[6110,9188],[6173,9191],[6187,9188],[6253,9188],[6256,9188],[6267,9191],[6274,9188],[6275,9188],[6276,9188],[6279,9188],[6280,9188],[6281,9188],[6282,9188],[6283,9188],[6284,9188],[6294,9188],[6315,9193],[6317,9193],[6329,9188],[6330,9190],[6584,9192],[6592,9192],[6593,9188],[6618,9188],[6691,9190],[6702,9189],[6703,9188],[6716,9193],[6718,9190],[6737,9190],[6739,9188],[6744,9188],[6751,9191],[6752,9188],[6757,9188],[6767,9191],[6770,9188],[6778,9188],[6800,9199],[6801,9188],[6802,9188],[6803,9191],[6804,9191],[6805,9190],[6806,9191],[6807,9190],[6813,9188],[6814,9192],[6816,9188],[6820,9188],[6821,9188],[6822,9188],[6823,9188],[6824,9188],[6827,9204],[6828,9204],[6829,9204],[6830,9204],[6840,9190],[7072,9190],[7073,9189],[7079,9190],[7081,9191],[7082,9191],[7083,9191],[7084,9193],[7090,9190],[7112,9188],[7113,9190],[7120,9188],[7132,9191],[7151,9191],[7165,9190],[7173,9190],[7178,9188],[7192,9188],[7194,9188],[7195,9189],[7197,9189],[7206,9195],[7210,9193],[7226,9188],[7244,9191],[7251,9188],[7254,9188],[7262,9188],[7276,9188],[7303,9189],[7304,9188],[7305,9192],[7311,9192],[7317,9192],[7335,9188],[7341,9188],[7345,9188],[7348,9189],[7349,9189],[7351,9189],[7354,9188],[7355,9193],[7361,9188],[7362,9188],[7381,9189],[7388,9188],[7389,9192],[7396,9198],[7404,9188],[7431,9188],[7436,9188],[7446,9188],[7451,9190],[7456,9190],[7478,9188],[7493,9188],[7509,9188],[7518,9190],[7537,9193],[7540,9188],[7546,9188],[7552,9188],[7561,9188],[7574,9188],[7580,9188],[7593,9188],[7595,9188],[7599,9188],[7610,9188],[7624,9188],[7625,9189],[7627,9189],[7628,9193],[7629,9189],[7630,9190],[7704,9189],[7707,9188],[7708,9189],[7738,9188],[7743,9192],[7744,9190],[7745,9188],[7768,9189],[7785,9190],[7804,9191],[7820,9188],[7830,9191],[7841,9188],[7842,9188],[7843,9188],[7844,9188],[7845,9188],[7846,9188],[7847,9188],[7848,9188],[7851,9188],[7853,9188],[7855,9188],[7856,9188],[7858,9188],[7875,9196],[7881,9188],[7884,9192],[7885,9189],[7902,9190],[7974,9192],[7978,9193],[7990,9193],[8000,9191],[8002,9190],[8003,9193],[8008,9188],[8013,9192],[8016,9190],[8043,9190],[8060,9188],[8061,9188],[8062,9188],[8063,9188],[8064,9191],[8065,9188],[8066,9188],[8067,9191],[8068,9191],[8069,9191],[8070,9188],[8071,9191],[8072,9191],[8073,9188],[8074,9189],[8077,9188],[8087,9191],[8090,9188],[8123,9190],[8173,9193],[8178,9193],[8180,9193],[8182,9193],[8184,9193],[8187,9194],[8189,9193],[8191,9189],[8193,9189],[8258,9193],[8283,9192],[8291,9191],[8302,9189],[8303,9197],[8310,9192],[8317,9191],[8322,9190],[8323,9190],[8324,9189],[8325,9191],[8327,9188],[8328,9188],[8329,9188],[8330,9188],[8331,9191],[8346,9190],[9090,9193],[9091,9188],[9094,9190],[9095,9188],[9096,9188],[9097,9188],[9098,9188],[9099,9188],[9100,9204],[9101,9204],[9102,9204],[9103,9204],[9104,9190],[9105,9190],[9120,9188],[9122,9193],[9123,9193],[9124,9193],[9138,9190],[9143,9189],[9145,9191],[9164,9193],[9169,9190],[9177,9189],[9178,9189],[9179,9189],[9180,9189],[9181,9189],[9182,9189],[9183,9189],[9184,9189],[9185,9189],[9186,9189]],"b":[],"c":"OjAAAAEAAAAAABEAEAAAAN0CpQXODNcMog6HEisUrBqtGq4arxrOG88bjSOOI48jkCPFIw==","e":"OzAAAAEAAPchEQABAOUB6AGpA5MFAACeBQEAogUAAKQFAwCpBQAAsQUAALMFdw4sFDoCaBZnArcZfQA2GkMAexo+AKEbgwEmHeEACR7bBQ=="}],\ -["mavlink",{"t":"TTTFFSSSKFFGKRKTPPCNNNNNNNNNNCCHNNNNNNNNNNNNCNNNOHNNNMMNNNNNNCMNNNNNNNNNNMNNNNNOCNNNNNNMNNMMONNMNNNNCONNHHHHHMNMNNNNOMMNNNNNNNNMNNONNNNNNNNNNNNNNNNNNNNCCHHHPPPPPPPPPPPPPPPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTPFPPFPFFPFTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFOPFPFPFPPFFPFTTTTTTPFPFPFPFPFPPPPGGGGGFFGGFGPFPPFPFPFTTTTTTTTTTTTPPPFPPPPFPFPFPPPPFPFPPPPPPPPFPFPPPPPPPPPPPFPFPPFPPPFPPFPPPPPPPPPPPPPPFPPPPPPPPPPPPPPPFFOPFPFPFPFPFPFPFPFPPPPPPPFPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPFPFFGGGGGGGGGGGGGOOOGOPFPFPFPFPFPFPFPFPFPFPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPPPFPFPFPFPFPFPFGGOPFTTTTTTTTPFTTTPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPTTTTTTTTPFPFPFPFPFTTTTTTTTTTPFTTPFPFFGFFPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPFPPPPFPFOPFPPPPPPFPPPPPPPPFGGGGGGPFPPPPPPPPPPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPFPFTTTTTTTTTTTTTTTTPPPPPPPPPPPFPFPFPFPFPFPFPPFFPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPPPFPFPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPPFPFPPPPPPPPPPFPFPFTTTTTTTTPFPFPFPFPPGGGFFFFGGGGGGGFGGGGGGGGGGGGFGPPPFPFPFPFTTTTTTTTTTTTTTTPPFFPFPFPFPFPFPFTTTTTTTTTTTTTTTPFPFTTTTTTTTTTTTTTPFPFPFGFFFOOOOPPPPPPPFPFPPPPFGGPFPPPPTPFPPPPPPPPPFPTTTPFPPFFPFPFPPFFPFPFPFPFPFPFGGFGPPPPPFPFPPPPPFPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTPPPPPPPPTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTPTTTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTPFOOOOPFPFPFPFPFPFPFPFPFPFPPFPFPFPFPPFPPPPPPPFPOPPPPPPPPFPFPFPFGGGGGGGGGGGGGGGGGGGFGGGGFGGGGGGFGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGFGGGGFGGGGPFPFPFPPPGPPFFPFPFPFPFPFPFPFPFPFPFPFPFPFPFPPPPPPPFPFPPPPPPPPPPPPFPFPGGGOPPPPPPPPFPFPFPFPFPFPPFPFPPPPFPFPPPFPPPPPPFPPPPPPPPPPPPPPPPPPPPPPPPPFPFPFPFTTTTTTTTTTTTPFPPPPFGGOOOGGFGGGPFPFPFPFPFPFPFPFPFPFPFPFPPPFPFPFPFPFPFPPPPPPPPPPPPPFPPFGGGPFPFPPFPFFPPFPFFPPPPPFPFPPPPPTTTTTPPPPPPPPPPPFPFPFPFPFPFPFPFPFPFPFPFPFPPOPFPFPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPFGGFGGGGGGPFPFPFPFPFPFPPPPPPPFPFTTPFGFPPPPPFPPPPPPFPPPPPPPPPPPPPPPPPFPPPPPPPPPPPPFPPPPPPTTTTTPPPPPPTTTPTTTTPFPTTTTTTTTPPPPPPFGGGGGGGFFFFGPFPFPFPFPFPFPPPPPPPFPFPFPPPPPOOOGGOGPFPFPFPPPPPPPPPPPPPPPPPPPPPFPPFFGGGPPPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONONNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTPFTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPFPPFFPFTTTTTTPFPFPFPFPPPPGGGGFFGGFGPPFPFPFTTTTTTTTTTTTPFPFPFPPPPFPFPFPPPPPPPPPPPFPFPPFPPPFPPFPPPPPPPPPPPPPPFPPPPPPPPPPPPPPPFFOPFPFPFPFPFPFPFPPPPPPPFPFFGGGGGGGGGGGPFPFPFPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPFPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPTTTTTTTTPFPFTTTTTTTTTTPFTTPFPFGFFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPPPPPPFPPPPPPPPFGGGGGGPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPFPFTTTTTTTTTTTTTTTTPPPPPPPPPPPFPFPFPFPFPPFFPFPFPFPPPPPPPPPPFPFPFTTTTTTTTPFPFPFPFPPFFFFGGFGPFPFTTTTTTTTTTTTTTTPPFFPFPFPFPFPFPFTTTTTTTTTTTTTTTPFPFTTTTTTTTTTTTTTPFPFFFFOPFPFPPPPPFPPFFPFPFPPFFPFPFPFPFPFPFGPPPPPFPPPPPFPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTPPPPPPPPTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTPTTTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTPFPFPFPFPFPFPFPFPFPPFPFPFPFPPFPPPPPPPFPOPPPPPPPPFGGGGGGGGGGGGGGGGGGFGGGGFGGGGGGFGGGGGGGGGGGGGGGGGGGGFFGGGGGFGGGGFGGGGPFPFPFPPPGPFPFPFPFPFPFPFPFPFPFPFPFPFPFPFPPPPPGPPPPPPPPFPFPFPFPFPFPPFPFPPPPFPFPPFPFPFPFPFTTTTTTTTTTTTPFPPPPFGGFGGGPFPFPFPFPFPFPFPFPPPFPFPFPFPPGGPFPFPPFPFFPPFPFFPFPPPPPTTTTTPPPPPPPPPPPFPFPFPFPFPFPFPFPFPFPFPFPFPPPPPPPPPPPPPPPPPPFPFPFGFGGGGPFPFPFPFPFPFPFPFTTPFFPPPPPFPPPPPPFPTTTTTTTTPPPPPPFGGFGPFPFPFPFPFPFPPPPPPPFPFPPPPPOGGOGPFPFPPPPPPPPPPPPPPPPPPPPPFPFGGGPPPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONONNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPGGPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOTTTTTTPPPPPPPFPFPPPGGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNOOOOOONNNNNNNNNONNNNNNNNNNNNNNNNNNNOOOOONNNNNFNNNNNNNNNNNNNNPPPPPPPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTPFTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPFPPFFPFTTTTTTPFPFPFPFPPPPGGGGFFGGFGPPFPFPFTTTTTTTTTTTTPFPFPFPPPPFPFPFPPPPPPPPPPPFPFPPFPPPFPPFPPPPPPPPPPPPPPFPPPPPPPPPPPPPPPFFOPFPFPFPFPFPFPFPPPPPPPFPFFGGGGGGGGGGGPFPFPFPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPFPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPTTTTTTTTPFPFTTTTTTTTTTPFTTPFPFGFFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPPPPPPFPPPPPPPPFGGGGGGPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPFPFTTTTTTTTTTTTTTTTPPPPPPPPPPPFPFPFPFPFPPFFPFPFPFPPPPPPPPPPFPFPFTTTTTTTTPFPFPFPFPPFFFFGGFGPFPFTTTTTTTTTTTTTTTPPFFPFPFPFPFPFPFTTTTTTTTTTTTTTTPFPFTTTTTTTTTTTTTTPFPFFFFOOPFPFPPPPPFPPFFPFPFPPFFPFPFPFPFPFPFGPPPPPFPPPPPFPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTPPPPPPPPTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTPTTTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTPFPFPFPFPFPFPFPFPFPPFPFPFPFPPFPPPPPPPFPOPPPPPPPPFGGGGGGGGGGGGGGGGGGFGGGGFGGGGGGFGGGGGGGGGGGGGGGGGGGGFFGGGGGFGGGGFGGGGPFPFPFPPPGPFPFPFPFPFPFPFPFPFPFPFPFPFPFPFPPPPPGPPPPPPPPFPFPFPFPFPFPPFPFPPPPFPFPPFPFPFPFPFTTTTTTTTTTTTPFPPPPFGGFGGGPFPFPFPFPFPFPFPFPPPFPFPFPFPPGGPFPFPPFPFFPPFPFFPFPPPPPTTTTTPPPPPPPPPPPFPFPFPFPFPFPFPFPFPFPFPFPFPPPPPPPPPPPPPPPPPPFPFPFGFGGGGPFPFPFPFPFPFPFPFTTPFFPPPPPFPPPPPPFPPPPPPPPPPPPPPPPPFPPPPPPPPPPPPFPPPPPPTTTTTPPPPPPTTTPTTTTPFPTTTTTTTTPPPPPPFGGGGGGGFFFFGPFPFPFPFPFPFPPPPPPPFPFPPPPPOOGGOGPFPFPPPPPPPPPPPPPPPPPPPPPFPFGGGPPPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONONNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOH","n":["ENCODED_LEN","EXTRA_CRC","ID","MAVLinkV1MessageRaw","MAVLinkV2MessageRaw","MAV_STX","MAV_STX_V2","MAX_FRAME_SIZE","MavConnection","MavFrame","MavHeader","MavlinkVersion","Message","Message","MessageData","NAME","V1","V2","ardupilotmega","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes_mut","calculate_crc","checksum","checksum","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","common","compatibility_flags","component_id","component_id","component_id","connect","default","default","default","default_message_from_id","deser","deser","deserialize","eq","eq","eq","eq","error","extra_crc","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_protocol_version","has_valid_crc","has_valid_crc","header","header","header","header","icarous","incompatibility_flags","into","into","into","into","into","message_id","message_id","message_id","message_id_from_name","message_name","msg","new","new","parse","payload","payload","payload_length","payload_length","peek_reader","protocol_version","raw_bytes","raw_bytes","read_v1_msg","read_v1_raw_message","read_v2_msg","read_v2_raw_message","read_versioned_msg","recv","recv_frame","send","send_default","send_frame","sequence","sequence","sequence","ser","ser","ser","serialize","serialize","serialize","serialize_message","serialize_message","serialize_message_data","serialize_message_data","set_protocol_version","system_id","system_id","system_id","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","uavionix","utils","write_v1_msg","write_v2_msg","write_versioned_msg","ACCELCAL_VEHICLE_POS_BACK","ACCELCAL_VEHICLE_POS_FAILED","ACCELCAL_VEHICLE_POS_LEFT","ACCELCAL_VEHICLE_POS_LEVEL","ACCELCAL_VEHICLE_POS_NOSEDOWN","ACCELCAL_VEHICLE_POS_NOSEUP","ACCELCAL_VEHICLE_POS_RIGHT","ACCELCAL_VEHICLE_POS_SUCCESS","ACTUATOR_CONFIGURATION_3D_MODE_OFF","ACTUATOR_CONFIGURATION_3D_MODE_ON","ACTUATOR_CONFIGURATION_BEEP","ACTUATOR_CONFIGURATION_NONE","ACTUATOR_CONFIGURATION_SPIN_DIRECTION1","ACTUATOR_CONFIGURATION_SPIN_DIRECTION2","ACTUATOR_CONTROL_TARGET","ACTUATOR_CONTROL_TARGET_DATA","ACTUATOR_OUTPUT_FUNCTION_MOTOR1","ACTUATOR_OUTPUT_FUNCTION_MOTOR10","ACTUATOR_OUTPUT_FUNCTION_MOTOR11","ACTUATOR_OUTPUT_FUNCTION_MOTOR12","ACTUATOR_OUTPUT_FUNCTION_MOTOR13","ACTUATOR_OUTPUT_FUNCTION_MOTOR14","ACTUATOR_OUTPUT_FUNCTION_MOTOR15","ACTUATOR_OUTPUT_FUNCTION_MOTOR16","ACTUATOR_OUTPUT_FUNCTION_MOTOR2","ACTUATOR_OUTPUT_FUNCTION_MOTOR3","ACTUATOR_OUTPUT_FUNCTION_MOTOR4","ACTUATOR_OUTPUT_FUNCTION_MOTOR5","ACTUATOR_OUTPUT_FUNCTION_MOTOR6","ACTUATOR_OUTPUT_FUNCTION_MOTOR7","ACTUATOR_OUTPUT_FUNCTION_MOTOR8","ACTUATOR_OUTPUT_FUNCTION_MOTOR9","ACTUATOR_OUTPUT_FUNCTION_NONE","ACTUATOR_OUTPUT_FUNCTION_SERVO1","ACTUATOR_OUTPUT_FUNCTION_SERVO10","ACTUATOR_OUTPUT_FUNCTION_SERVO11","ACTUATOR_OUTPUT_FUNCTION_SERVO12","ACTUATOR_OUTPUT_FUNCTION_SERVO13","ACTUATOR_OUTPUT_FUNCTION_SERVO14","ACTUATOR_OUTPUT_FUNCTION_SERVO15","ACTUATOR_OUTPUT_FUNCTION_SERVO16","ACTUATOR_OUTPUT_FUNCTION_SERVO2","ACTUATOR_OUTPUT_FUNCTION_SERVO3","ACTUATOR_OUTPUT_FUNCTION_SERVO4","ACTUATOR_OUTPUT_FUNCTION_SERVO5","ACTUATOR_OUTPUT_FUNCTION_SERVO6","ACTUATOR_OUTPUT_FUNCTION_SERVO7","ACTUATOR_OUTPUT_FUNCTION_SERVO8","ACTUATOR_OUTPUT_FUNCTION_SERVO9","ACTUATOR_OUTPUT_STATUS","ACTUATOR_OUTPUT_STATUS_DATA","ADAP_TUNING","ADAP_TUNING_DATA","ADSB_ALTITUDE_TYPE_GEOMETRIC","ADSB_ALTITUDE_TYPE_PRESSURE_QNH","ADSB_EMITTER_TYPE_EMERGENCY_SURFACE","ADSB_EMITTER_TYPE_GLIDER","ADSB_EMITTER_TYPE_HEAVY","ADSB_EMITTER_TYPE_HIGHLY_MANUV","ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE","ADSB_EMITTER_TYPE_LARGE","ADSB_EMITTER_TYPE_LIGHT","ADSB_EMITTER_TYPE_LIGHTER_AIR","ADSB_EMITTER_TYPE_NO_INFO","ADSB_EMITTER_TYPE_PARACHUTE","ADSB_EMITTER_TYPE_POINT_OBSTACLE","ADSB_EMITTER_TYPE_ROTOCRAFT","ADSB_EMITTER_TYPE_SERVICE_SURFACE","ADSB_EMITTER_TYPE_SMALL","ADSB_EMITTER_TYPE_SPACE","ADSB_EMITTER_TYPE_UAV","ADSB_EMITTER_TYPE_ULTRA_LIGHT","ADSB_EMITTER_TYPE_UNASSGINED3","ADSB_EMITTER_TYPE_UNASSIGNED","ADSB_EMITTER_TYPE_UNASSIGNED2","ADSB_FLAGS_BARO_VALID","ADSB_FLAGS_SIMULATED","ADSB_FLAGS_SOURCE_UAT","ADSB_FLAGS_VALID_ALTITUDE","ADSB_FLAGS_VALID_CALLSIGN","ADSB_FLAGS_VALID_COORDS","ADSB_FLAGS_VALID_HEADING","ADSB_FLAGS_VALID_SQUAWK","ADSB_FLAGS_VALID_VELOCITY","ADSB_FLAGS_VERTICAL_VELOCITY_VALID","ADSB_VEHICLE","ADSB_VEHICLE_DATA","AHRS","AHRS2","AHRS2_DATA","AHRS3","AHRS3_DATA","AHRS_DATA","AIRSPEED_AUTOCAL","AIRSPEED_AUTOCAL_DATA","AIS_FLAGS_HIGH_VELOCITY","AIS_FLAGS_LARGE_BOW_DIMENSION","AIS_FLAGS_LARGE_PORT_DIMENSION","AIS_FLAGS_LARGE_STARBOARD_DIMENSION","AIS_FLAGS_LARGE_STERN_DIMENSION","AIS_FLAGS_POSITION_ACCURACY","AIS_FLAGS_TURN_RATE_SIGN_ONLY","AIS_FLAGS_VALID_CALLSIGN","AIS_FLAGS_VALID_COG","AIS_FLAGS_VALID_DIMENSIONS","AIS_FLAGS_VALID_NAME","AIS_FLAGS_VALID_TURN_RATE","AIS_FLAGS_VALID_VELOCITY","AIS_NAV_AGROUND","AIS_NAV_AIS_SART","AIS_NAV_ANCHORED","AIS_NAV_DRAUGHT_CONSTRAINED","AIS_NAV_FISHING","AIS_NAV_MOORED","AIS_NAV_RESERVED_1","AIS_NAV_RESERVED_2","AIS_NAV_RESERVED_3","AIS_NAV_RESERVED_HSC","AIS_NAV_RESERVED_WIG","AIS_NAV_RESTRICTED_MANOEUVERABILITY","AIS_NAV_SAILING","AIS_NAV_UNKNOWN","AIS_NAV_UN_COMMANDED","AIS_TYPE_ANTI_POLLUTION","AIS_TYPE_CARGO","AIS_TYPE_CARGO_HAZARDOUS_A","AIS_TYPE_CARGO_HAZARDOUS_B","AIS_TYPE_CARGO_HAZARDOUS_C","AIS_TYPE_CARGO_HAZARDOUS_D","AIS_TYPE_CARGO_RESERVED_1","AIS_TYPE_CARGO_RESERVED_2","AIS_TYPE_CARGO_RESERVED_3","AIS_TYPE_CARGO_RESERVED_4","AIS_TYPE_CARGO_UNKNOWN","AIS_TYPE_DIVING","AIS_TYPE_DREDGING","AIS_TYPE_FISHING","AIS_TYPE_HSC","AIS_TYPE_HSC_HAZARDOUS_A","AIS_TYPE_HSC_HAZARDOUS_B","AIS_TYPE_HSC_HAZARDOUS_C","AIS_TYPE_HSC_HAZARDOUS_D","AIS_TYPE_HSC_RESERVED_1","AIS_TYPE_HSC_RESERVED_2","AIS_TYPE_HSC_RESERVED_3","AIS_TYPE_HSC_RESERVED_4","AIS_TYPE_HSC_UNKNOWN","AIS_TYPE_LAW_ENFORCEMENT","AIS_TYPE_MEDICAL_TRANSPORT","AIS_TYPE_MILITARY","AIS_TYPE_NONECOMBATANT","AIS_TYPE_OTHER","AIS_TYPE_OTHER_HAZARDOUS_A","AIS_TYPE_OTHER_HAZARDOUS_B","AIS_TYPE_OTHER_HAZARDOUS_C","AIS_TYPE_OTHER_HAZARDOUS_D","AIS_TYPE_OTHER_RESERVED_1","AIS_TYPE_OTHER_RESERVED_2","AIS_TYPE_OTHER_RESERVED_3","AIS_TYPE_OTHER_RESERVED_4","AIS_TYPE_OTHER_UNKNOWN","AIS_TYPE_PASSENGER","AIS_TYPE_PASSENGER_HAZARDOUS_A","AIS_TYPE_PASSENGER_HAZARDOUS_B","AIS_TYPE_PASSENGER_HAZARDOUS_C","AIS_TYPE_PASSENGER_HAZARDOUS_D","AIS_TYPE_PASSENGER_RESERVED_1","AIS_TYPE_PASSENGER_RESERVED_2","AIS_TYPE_PASSENGER_RESERVED_3","AIS_TYPE_PASSENGER_RESERVED_4","AIS_TYPE_PASSENGER_UNKNOWN","AIS_TYPE_PILOT","AIS_TYPE_PLEASURE","AIS_TYPE_PORT_TENDER","AIS_TYPE_RESERVED_1","AIS_TYPE_RESERVED_10","AIS_TYPE_RESERVED_11","AIS_TYPE_RESERVED_12","AIS_TYPE_RESERVED_13","AIS_TYPE_RESERVED_14","AIS_TYPE_RESERVED_15","AIS_TYPE_RESERVED_16","AIS_TYPE_RESERVED_17","AIS_TYPE_RESERVED_18","AIS_TYPE_RESERVED_19","AIS_TYPE_RESERVED_2","AIS_TYPE_RESERVED_20","AIS_TYPE_RESERVED_21","AIS_TYPE_RESERVED_3","AIS_TYPE_RESERVED_4","AIS_TYPE_RESERVED_5","AIS_TYPE_RESERVED_6","AIS_TYPE_RESERVED_7","AIS_TYPE_RESERVED_8","AIS_TYPE_RESERVED_9","AIS_TYPE_SAILING","AIS_TYPE_SAR","AIS_TYPE_SPARE_LOCAL_1","AIS_TYPE_SPARE_LOCAL_2","AIS_TYPE_TANKER","AIS_TYPE_TANKER_HAZARDOUS_A","AIS_TYPE_TANKER_HAZARDOUS_B","AIS_TYPE_TANKER_HAZARDOUS_C","AIS_TYPE_TANKER_HAZARDOUS_D","AIS_TYPE_TANKER_RESERVED_1","AIS_TYPE_TANKER_RESERVED_2","AIS_TYPE_TANKER_RESERVED_3","AIS_TYPE_TANKER_RESERVED_4","AIS_TYPE_TANKER_UNKNOWN","AIS_TYPE_TOWING","AIS_TYPE_TOWING_LARGE","AIS_TYPE_TUG","AIS_TYPE_UNKNOWN","AIS_TYPE_WIG","AIS_TYPE_WIG_HAZARDOUS_A","AIS_TYPE_WIG_HAZARDOUS_B","AIS_TYPE_WIG_HAZARDOUS_C","AIS_TYPE_WIG_HAZARDOUS_D","AIS_TYPE_WIG_RESERVED_1","AIS_TYPE_WIG_RESERVED_2","AIS_TYPE_WIG_RESERVED_3","AIS_TYPE_WIG_RESERVED_4","AIS_TYPE_WIG_RESERVED_5","AIS_VESSEL","AIS_VESSEL_DATA","ALTITUDE","ALTITUDE_DATA","AOA","AOA_SSA","AOA_SSA_DATA","AP_ADC","AP_ADC_DATA","ATTITUDE","ATTITUDE_DATA","ATTITUDE_QUATERNION","ATTITUDE_QUATERNION_COV","ATTITUDE_QUATERNION_COV_DATA","ATTITUDE_QUATERNION_DATA","ATTITUDE_TARGET","ATTITUDE_TARGET_DATA","ATTITUDE_TARGET_TYPEMASK_ATTITUDE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_PITCH_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_YAW_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_THROTTLE_IGNORE","ATTITUDE_TARGET_TYPEMASK_THRUST_BODY_SET","ATT_POS_MOCAP","ATT_POS_MOCAP_DATA","AUTH_KEY","AUTH_KEY_DATA","AUTOPILOT_STATE_FOR_GIMBAL_DEVICE","AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA","AUTOPILOT_VERSION","AUTOPILOT_VERSION_DATA","AUTOPILOT_VERSION_REQUEST","AUTOPILOT_VERSION_REQUEST_DATA","AUTOTUNE_AXIS_DEFAULT","AUTOTUNE_AXIS_PITCH","AUTOTUNE_AXIS_ROLL","AUTOTUNE_AXIS_YAW","AccelcalVehiclePos","ActuatorConfiguration","ActuatorOutputFunction","AdsbAltitudeType","AdsbEmitterType","AdsbFlags","AisFlags","AisNavStatus","AisType","AttitudeTargetTypemask","AutotuneAxis","BATTERY2","BATTERY2_DATA","BATTERY_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION","BATTERY_STATUS","BATTERY_STATUS_DATA","BUTTON_CHANGE","BUTTON_CHANGE_DATA","CAMERA_CAPTURE_STATUS","CAMERA_CAPTURE_STATUS_DATA","CAMERA_CAP_FLAGS_CAN_CAPTURE_IMAGE_IN_VIDEO_MODE","CAMERA_CAP_FLAGS_CAN_CAPTURE_VIDEO_IN_IMAGE_MODE","CAMERA_CAP_FLAGS_CAPTURE_IMAGE","CAMERA_CAP_FLAGS_CAPTURE_VIDEO","CAMERA_CAP_FLAGS_HAS_BASIC_FOCUS","CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM","CAMERA_CAP_FLAGS_HAS_IMAGE_SURVEY_MODE","CAMERA_CAP_FLAGS_HAS_MODES","CAMERA_CAP_FLAGS_HAS_TRACKING_GEO_STATUS","CAMERA_CAP_FLAGS_HAS_TRACKING_POINT","CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE","CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM","CAMERA_FEEDBACK","CAMERA_FEEDBACK_BADEXPOSURE","CAMERA_FEEDBACK_CLOSEDLOOP","CAMERA_FEEDBACK_DATA","CAMERA_FEEDBACK_OPENLOOP","CAMERA_FEEDBACK_PHOTO","CAMERA_FEEDBACK_VIDEO","CAMERA_FOV_STATUS","CAMERA_FOV_STATUS_DATA","CAMERA_IMAGE_CAPTURED","CAMERA_IMAGE_CAPTURED_DATA","CAMERA_INFORMATION","CAMERA_INFORMATION_DATA","CAMERA_MODE_IMAGE","CAMERA_MODE_IMAGE_SURVEY","CAMERA_MODE_VIDEO","CAMERA_SETTINGS","CAMERA_SETTINGS_DATA","CAMERA_STATUS","CAMERA_STATUS_DATA","CAMERA_STATUS_TYPE_DISCONNECT","CAMERA_STATUS_TYPE_ERROR","CAMERA_STATUS_TYPE_HEARTBEAT","CAMERA_STATUS_TYPE_LOWBATT","CAMERA_STATUS_TYPE_LOWSTORE","CAMERA_STATUS_TYPE_LOWSTOREV","CAMERA_STATUS_TYPE_TRIGGER","CAMERA_TRACKING_GEO_STATUS","CAMERA_TRACKING_GEO_STATUS_DATA","CAMERA_TRACKING_IMAGE_STATUS","CAMERA_TRACKING_IMAGE_STATUS_DATA","CAMERA_TRACKING_MODE_NONE","CAMERA_TRACKING_MODE_POINT","CAMERA_TRACKING_MODE_RECTANGLE","CAMERA_TRACKING_STATUS_FLAGS_ACTIVE","CAMERA_TRACKING_STATUS_FLAGS_ERROR","CAMERA_TRACKING_STATUS_FLAGS_IDLE","CAMERA_TRACKING_TARGET_DATA_EMBEDDED","CAMERA_TRACKING_TARGET_DATA_IN_STATUS","CAMERA_TRACKING_TARGET_DATA_NONE","CAMERA_TRACKING_TARGET_DATA_RENDERED","CAMERA_TRIGGER","CAMERA_TRIGGER_DATA","CANFD_FRAME","CANFD_FRAME_DATA","CAN_FILTER_ADD","CAN_FILTER_MODIFY","CAN_FILTER_MODIFY_DATA","CAN_FILTER_REMOVE","CAN_FILTER_REPLACE","CAN_FRAME","CAN_FRAME_DATA","CELLULAR_CONFIG","CELLULAR_CONFIG_BLOCKED_PUK_REQUIRED","CELLULAR_CONFIG_DATA","CELLULAR_CONFIG_RESPONSE_ACCEPTED","CELLULAR_CONFIG_RESPONSE_APN_ERROR","CELLULAR_CONFIG_RESPONSE_PIN_ERROR","CELLULAR_CONFIG_RESPONSE_REJECTED","CELLULAR_NETWORK_FAILED_REASON_NONE","CELLULAR_NETWORK_FAILED_REASON_SIM_ERROR","CELLULAR_NETWORK_FAILED_REASON_SIM_MISSING","CELLULAR_NETWORK_FAILED_REASON_UNKNOWN","CELLULAR_NETWORK_RADIO_TYPE_CDMA","CELLULAR_NETWORK_RADIO_TYPE_GSM","CELLULAR_NETWORK_RADIO_TYPE_LTE","CELLULAR_NETWORK_RADIO_TYPE_NONE","CELLULAR_NETWORK_RADIO_TYPE_WCDMA","CELLULAR_STATUS","CELLULAR_STATUS_DATA","CELLULAR_STATUS_FLAG_CONNECTED","CELLULAR_STATUS_FLAG_CONNECTING","CELLULAR_STATUS_FLAG_DISABLED","CELLULAR_STATUS_FLAG_DISABLING","CELLULAR_STATUS_FLAG_DISCONNECTING","CELLULAR_STATUS_FLAG_ENABLED","CELLULAR_STATUS_FLAG_ENABLING","CELLULAR_STATUS_FLAG_FAILED","CELLULAR_STATUS_FLAG_INITIALIZING","CELLULAR_STATUS_FLAG_LOCKED","CELLULAR_STATUS_FLAG_REGISTERED","CELLULAR_STATUS_FLAG_SEARCHING","CELLULAR_STATUS_FLAG_UNKNOWN","CHANGE_OPERATOR_CONTROL","CHANGE_OPERATOR_CONTROL_ACK","CHANGE_OPERATOR_CONTROL_ACK_DATA","CHANGE_OPERATOR_CONTROL_DATA","COG","COLLISION","COLLISION_DATA","COMMAND_ACK","COMMAND_ACK_DATA","COMMAND_CANCEL","COMMAND_CANCEL_DATA","COMMAND_INT","COMMAND_INT_DATA","COMMAND_LONG","COMMAND_LONG_DATA","COMPASSMOT_STATUS","COMPASSMOT_STATUS_DATA","COMPONENT_INFORMATION","COMPONENT_INFORMATION_DATA","COMPONENT_METADATA","COMPONENT_METADATA_DATA","COMP_METADATA_TYPE_ACTUATORS","COMP_METADATA_TYPE_COMMANDS","COMP_METADATA_TYPE_EVENTS","COMP_METADATA_TYPE_GENERAL","COMP_METADATA_TYPE_PARAMETER","COMP_METADATA_TYPE_PERIPHERALS","CONTROL_SYSTEM_STATE","CONTROL_SYSTEM_STATE_DATA","COPTER_MODE_ACRO","COPTER_MODE_ALT_HOLD","COPTER_MODE_AUTO","COPTER_MODE_AUTOROTATE","COPTER_MODE_AUTOTUNE","COPTER_MODE_AUTO_RTL","COPTER_MODE_AVOID_ADSB","COPTER_MODE_BRAKE","COPTER_MODE_CIRCLE","COPTER_MODE_DRIFT","COPTER_MODE_FLIP","COPTER_MODE_FLOWHOLD","COPTER_MODE_FOLLOW","COPTER_MODE_GUIDED","COPTER_MODE_GUIDED_NOGPS","COPTER_MODE_LAND","COPTER_MODE_LOITER","COPTER_MODE_POSHOLD","COPTER_MODE_RTL","COPTER_MODE_SMART_RTL","COPTER_MODE_SPORT","COPTER_MODE_STABILIZE","COPTER_MODE_SYSTEMID","COPTER_MODE_THROW","COPTER_MODE_ZIGZAG","CUBEPILOT_FIRMWARE_UPDATE_RESP","CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA","CUBEPILOT_FIRMWARE_UPDATE_START","CUBEPILOT_FIRMWARE_UPDATE_START_DATA","CUBEPILOT_RAW_RC","CUBEPILOT_RAW_RC_DATA","CURRENT_EVENT_SEQUENCE","CURRENT_EVENT_SEQUENCE_DATA","CameraCapFlags","CameraFeedbackFlags","CameraMode","CameraStatusTypes","CameraTrackingMode","CameraTrackingStatusFlags","CameraTrackingTargetData","CameraZoomType","CanFilterOp","CellularConfigResponse","CellularNetworkFailedReason","CellularNetworkRadioType","CellularStatusFlag","CompMetadataType","CompensationX","CompensationY","CompensationZ","CopterMode","D","DATA16","DATA16_DATA","DATA32","DATA32_DATA","DATA64","DATA64_DATA","DATA96","DATA96_DATA","DATA_STREAM","DATA_STREAM_DATA","DATA_TRANSMISSION_HANDSHAKE","DATA_TRANSMISSION_HANDSHAKE_DATA","DEBUG","DEBUG_DATA","DEBUG_FLOAT_ARRAY","DEBUG_FLOAT_ARRAY_DATA","DEBUG_VECT","DEBUG_VECT_DATA","DEEPSTALL","DEEPSTALL_DATA","DEEPSTALL_STAGE_APPROACH","DEEPSTALL_STAGE_ARC","DEEPSTALL_STAGE_ESTIMATE_WIND","DEEPSTALL_STAGE_FLY_TO_ARC","DEEPSTALL_STAGE_FLY_TO_LANDING","DEEPSTALL_STAGE_LAND","DEEPSTALL_STAGE_WAIT_FOR_BREAKOUT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEVICE_OP_BUSTYPE_I2C","DEVICE_OP_BUSTYPE_SPI","DEVICE_OP_READ","DEVICE_OP_READ_DATA","DEVICE_OP_READ_REPLY","DEVICE_OP_READ_REPLY_DATA","DEVICE_OP_WRITE","DEVICE_OP_WRITE_DATA","DEVICE_OP_WRITE_REPLY","DEVICE_OP_WRITE_REPLY_DATA","DIGICAM_CONFIGURE","DIGICAM_CONFIGURE_DATA","DIGICAM_CONTROL","DIGICAM_CONTROL_DATA","DISTANCE_SENSOR","DISTANCE_SENSOR_DATA","DeepstallStage","DeviceOpBustype","EAS2TAS","EFI_STATUS","EFI_STATUS_DATA","EKF_ATTITUDE","EKF_CONST_POS_MODE","EKF_POS_HORIZ_ABS","EKF_POS_HORIZ_REL","EKF_POS_VERT_ABS","EKF_POS_VERT_AGL","EKF_PRED_POS_HORIZ_ABS","EKF_PRED_POS_HORIZ_REL","EKF_STATUS_REPORT","EKF_STATUS_REPORT_DATA","EKF_UNINITIALIZED","EKF_VELOCITY_HORIZ","EKF_VELOCITY_VERT","ENCAPSULATED_DATA","ENCAPSULATED_DATA_DATA","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ESC_CONNECTION_TYPE_CAN","ESC_CONNECTION_TYPE_DSHOT","ESC_CONNECTION_TYPE_I2C","ESC_CONNECTION_TYPE_ONESHOT","ESC_CONNECTION_TYPE_PPM","ESC_CONNECTION_TYPE_SERIAL","ESC_FAILURE_GENERIC","ESC_FAILURE_INCONSISTENT_CMD","ESC_FAILURE_MOTOR_STUCK","ESC_FAILURE_NONE","ESC_FAILURE_OVER_CURRENT","ESC_FAILURE_OVER_RPM","ESC_FAILURE_OVER_TEMPERATURE","ESC_FAILURE_OVER_VOLTAGE","ESC_INFO","ESC_INFO_DATA","ESC_STATUS","ESC_STATUS_DATA","ESC_TELEMETRY_1_TO_4","ESC_TELEMETRY_1_TO_4_DATA","ESC_TELEMETRY_5_TO_8","ESC_TELEMETRY_5_TO_8_DATA","ESC_TELEMETRY_9_TO_12","ESC_TELEMETRY_9_TO_12_DATA","ESTIMATOR_ACCEL_ERROR","ESTIMATOR_ATTITUDE","ESTIMATOR_CONST_POS_MODE","ESTIMATOR_GPS_GLITCH","ESTIMATOR_POS_HORIZ_ABS","ESTIMATOR_POS_HORIZ_REL","ESTIMATOR_POS_VERT_ABS","ESTIMATOR_POS_VERT_AGL","ESTIMATOR_PRED_POS_HORIZ_ABS","ESTIMATOR_PRED_POS_HORIZ_REL","ESTIMATOR_STATUS","ESTIMATOR_STATUS_DATA","ESTIMATOR_VELOCITY_HORIZ","ESTIMATOR_VELOCITY_VERT","EVENT","EVENT_DATA","EXTENDED_SYS_STATE","EXTENDED_SYS_STATE_DATA","EkfStatusFlags","EscConnectionType","EscFailureFlags","EstimatorStatusFlags","FAILURE_TYPE_DELAYED","FAILURE_TYPE_GARBAGE","FAILURE_TYPE_INTERMITTENT","FAILURE_TYPE_OFF","FAILURE_TYPE_OK","FAILURE_TYPE_SLOW","FAILURE_TYPE_STUCK","FAILURE_TYPE_WRONG","FAILURE_UNIT_SENSOR_ACCEL","FAILURE_UNIT_SENSOR_AIRSPEED","FAILURE_UNIT_SENSOR_BARO","FAILURE_UNIT_SENSOR_DISTANCE_SENSOR","FAILURE_UNIT_SENSOR_GPS","FAILURE_UNIT_SENSOR_GYRO","FAILURE_UNIT_SENSOR_MAG","FAILURE_UNIT_SENSOR_OPTICAL_FLOW","FAILURE_UNIT_SENSOR_VIO","FAILURE_UNIT_SYSTEM_AVOIDANCE","FAILURE_UNIT_SYSTEM_BATTERY","FAILURE_UNIT_SYSTEM_MAVLINK_SIGNAL","FAILURE_UNIT_SYSTEM_MOTOR","FAILURE_UNIT_SYSTEM_RC_SIGNAL","FAILURE_UNIT_SYSTEM_SERVO","FAVORABLE_WIND","FENCE_ACTION_GUIDED","FENCE_ACTION_GUIDED_THR_PASS","FENCE_ACTION_HOLD","FENCE_ACTION_LAND","FENCE_ACTION_NONE","FENCE_ACTION_REPORT","FENCE_ACTION_RTL","FENCE_ACTION_TERMINATE","FENCE_BREACH_BOUNDARY","FENCE_BREACH_MAXALT","FENCE_BREACH_MINALT","FENCE_BREACH_NONE","FENCE_FETCH_POINT","FENCE_FETCH_POINT_DATA","FENCE_MITIGATE_NONE","FENCE_MITIGATE_UNKNOWN","FENCE_MITIGATE_VEL_LIMIT","FENCE_POINT","FENCE_POINT_DATA","FENCE_STATUS","FENCE_STATUS_DATA","FF","FILE_TRANSFER_PROTOCOL","FILE_TRANSFER_PROTOCOL_DATA","FIRMWARE_VERSION_TYPE_ALPHA","FIRMWARE_VERSION_TYPE_BETA","FIRMWARE_VERSION_TYPE_DEV","FIRMWARE_VERSION_TYPE_OFFICIAL","FIRMWARE_VERSION_TYPE_RC","FLIGHT_INFORMATION","FLIGHT_INFORMATION_DATA","FOCUS_TYPE_AUTO","FOCUS_TYPE_AUTO_CONTINUOUS","FOCUS_TYPE_AUTO_SINGLE","FOCUS_TYPE_CONTINUOUS","FOCUS_TYPE_METERS","FOCUS_TYPE_RANGE","FOCUS_TYPE_STEP","FOLLOW_TARGET","FOLLOW_TARGET_DATA","FailureType","FailureUnit","FenceAction","FenceBreach","FenceMitigate","FirmwareVersionType","GENERATOR_STATUS","GENERATOR_STATUS_DATA","GIMBAL_AXIS_CALIBRATION_REQUIRED_FALSE","GIMBAL_AXIS_CALIBRATION_REQUIRED_TRUE","GIMBAL_AXIS_CALIBRATION_REQUIRED_UNKNOWN","GIMBAL_AXIS_CALIBRATION_STATUS_FAILED","GIMBAL_AXIS_CALIBRATION_STATUS_IN_PROGRESS","GIMBAL_AXIS_CALIBRATION_STATUS_SUCCEEDED","GIMBAL_AXIS_PITCH","GIMBAL_AXIS_ROLL","GIMBAL_AXIS_YAW","GIMBAL_CONTROL","GIMBAL_CONTROL_DATA","GIMBAL_DEVICE_ATTITUDE_STATUS","GIMBAL_DEVICE_ATTITUDE_STATUS_DATA","GIMBAL_DEVICE_CAP_FLAGS_HAS_NEUTRAL","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_LOCK","GIMBAL_DEVICE_CAP_FLAGS_HAS_RC_INPUTS","GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_LOCK","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_LOCK","GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_INFINITE_YAW","GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_ERROR_FLAGS_AT_PITCH_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_AT_YAW_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_CALIBRATION_RUNNING","GIMBAL_DEVICE_ERROR_FLAGS_COMMS_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_ENCODER_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_MOTOR_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_NO_MANAGER","GIMBAL_DEVICE_ERROR_FLAGS_POWER_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_SOFTWARE_ERROR","GIMBAL_DEVICE_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_FLAGS_NEUTRAL","GIMBAL_DEVICE_FLAGS_PITCH_LOCK","GIMBAL_DEVICE_FLAGS_RC_EXCLUSIVE","GIMBAL_DEVICE_FLAGS_RC_MIXED","GIMBAL_DEVICE_FLAGS_RETRACT","GIMBAL_DEVICE_FLAGS_ROLL_LOCK","GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME","GIMBAL_DEVICE_FLAGS_YAW_LOCK","GIMBAL_DEVICE_INFORMATION","GIMBAL_DEVICE_INFORMATION_DATA","GIMBAL_DEVICE_SET_ATTITUDE","GIMBAL_DEVICE_SET_ATTITUDE_DATA","GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_GLOBAL","GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_LOCAL","GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_LOCK","GIMBAL_MANAGER_CAP_FLAGS_HAS_RC_INPUTS","GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_LOCK","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK","GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_INFINITE_YAW","GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_NEUTRAL","GIMBAL_MANAGER_FLAGS_PITCH_LOCK","GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE","GIMBAL_MANAGER_FLAGS_RC_MIXED","GIMBAL_MANAGER_FLAGS_RETRACT","GIMBAL_MANAGER_FLAGS_ROLL_LOCK","GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME","GIMBAL_MANAGER_FLAGS_YAW_LOCK","GIMBAL_MANAGER_INFORMATION","GIMBAL_MANAGER_INFORMATION_DATA","GIMBAL_MANAGER_SET_ATTITUDE","GIMBAL_MANAGER_SET_ATTITUDE_DATA","GIMBAL_MANAGER_SET_MANUAL_CONTROL","GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA","GIMBAL_MANAGER_SET_PITCHYAW","GIMBAL_MANAGER_SET_PITCHYAW_DATA","GIMBAL_MANAGER_STATUS","GIMBAL_MANAGER_STATUS_DATA","GIMBAL_REPORT","GIMBAL_REPORT_DATA","GIMBAL_TORQUE_CMD_REPORT","GIMBAL_TORQUE_CMD_REPORT_DATA","GLOBAL_POSITION_INT","GLOBAL_POSITION_INT_COV","GLOBAL_POSITION_INT_COV_DATA","GLOBAL_POSITION_INT_DATA","GLOBAL_VISION_POSITION_ESTIMATE","GLOBAL_VISION_POSITION_ESTIMATE_DATA","GOPRO_BURST_RATE_10_IN_1_SECOND","GOPRO_BURST_RATE_10_IN_2_SECOND","GOPRO_BURST_RATE_10_IN_3_SECOND","GOPRO_BURST_RATE_30_IN_1_SECOND","GOPRO_BURST_RATE_30_IN_2_SECOND","GOPRO_BURST_RATE_30_IN_3_SECOND","GOPRO_BURST_RATE_30_IN_6_SECOND","GOPRO_BURST_RATE_3_IN_1_SECOND","GOPRO_BURST_RATE_5_IN_1_SECOND","GOPRO_CAPTURE_MODE_BURST","GOPRO_CAPTURE_MODE_MULTI_SHOT","GOPRO_CAPTURE_MODE_PHOTO","GOPRO_CAPTURE_MODE_PLAYBACK","GOPRO_CAPTURE_MODE_SETUP","GOPRO_CAPTURE_MODE_TIME_LAPSE","GOPRO_CAPTURE_MODE_UNKNOWN","GOPRO_CAPTURE_MODE_VIDEO","GOPRO_CHARGING_DISABLED","GOPRO_CHARGING_ENABLED","GOPRO_COMMAND_BATTERY","GOPRO_COMMAND_CAPTURE_MODE","GOPRO_COMMAND_CHARGING","GOPRO_COMMAND_LOW_LIGHT","GOPRO_COMMAND_MODEL","GOPRO_COMMAND_PHOTO_BURST_RATE","GOPRO_COMMAND_PHOTO_RESOLUTION","GOPRO_COMMAND_POWER","GOPRO_COMMAND_PROTUNE","GOPRO_COMMAND_PROTUNE_COLOUR","GOPRO_COMMAND_PROTUNE_EXPOSURE","GOPRO_COMMAND_PROTUNE_GAIN","GOPRO_COMMAND_PROTUNE_SHARPNESS","GOPRO_COMMAND_PROTUNE_WHITE_BALANCE","GOPRO_COMMAND_SHUTTER","GOPRO_COMMAND_TIME","GOPRO_COMMAND_VIDEO_SETTINGS","GOPRO_FIELD_OF_VIEW_MEDIUM","GOPRO_FIELD_OF_VIEW_NARROW","GOPRO_FIELD_OF_VIEW_WIDE","GOPRO_FLAG_RECORDING","GOPRO_FRAME_RATE_100","GOPRO_FRAME_RATE_12","GOPRO_FRAME_RATE_120","GOPRO_FRAME_RATE_12_5","GOPRO_FRAME_RATE_15","GOPRO_FRAME_RATE_24","GOPRO_FRAME_RATE_240","GOPRO_FRAME_RATE_25","GOPRO_FRAME_RATE_30","GOPRO_FRAME_RATE_48","GOPRO_FRAME_RATE_50","GOPRO_FRAME_RATE_60","GOPRO_FRAME_RATE_80","GOPRO_FRAME_RATE_90","GOPRO_GET_REQUEST","GOPRO_GET_REQUEST_DATA","GOPRO_GET_RESPONSE","GOPRO_GET_RESPONSE_DATA","GOPRO_HEARTBEAT","GOPRO_HEARTBEAT_DATA","GOPRO_HEARTBEAT_STATUS_CONNECTED","GOPRO_HEARTBEAT_STATUS_DISCONNECTED","GOPRO_HEARTBEAT_STATUS_ERROR","GOPRO_HEARTBEAT_STATUS_INCOMPATIBLE","GOPRO_MODEL_HERO_3_PLUS_BLACK","GOPRO_MODEL_HERO_3_PLUS_SILVER","GOPRO_MODEL_HERO_4_BLACK","GOPRO_MODEL_HERO_4_SILVER","GOPRO_MODEL_UNKNOWN","GOPRO_PHOTO_RESOLUTION_10MP_WIDE","GOPRO_PHOTO_RESOLUTION_12MP_WIDE","GOPRO_PHOTO_RESOLUTION_5MP_MEDIUM","GOPRO_PHOTO_RESOLUTION_7MP_MEDIUM","GOPRO_PHOTO_RESOLUTION_7MP_WIDE","GOPRO_PROTUNE_COLOUR_NEUTRAL","GOPRO_PROTUNE_COLOUR_STANDARD","GOPRO_PROTUNE_EXPOSURE_NEG_0_5","GOPRO_PROTUNE_EXPOSURE_NEG_1_0","GOPRO_PROTUNE_EXPOSURE_NEG_1_5","GOPRO_PROTUNE_EXPOSURE_NEG_2_0","GOPRO_PROTUNE_EXPOSURE_NEG_2_5","GOPRO_PROTUNE_EXPOSURE_NEG_3_0","GOPRO_PROTUNE_EXPOSURE_NEG_3_5","GOPRO_PROTUNE_EXPOSURE_NEG_4_0","GOPRO_PROTUNE_EXPOSURE_NEG_4_5","GOPRO_PROTUNE_EXPOSURE_NEG_5_0","GOPRO_PROTUNE_EXPOSURE_POS_0_5","GOPRO_PROTUNE_EXPOSURE_POS_1_0","GOPRO_PROTUNE_EXPOSURE_POS_1_5","GOPRO_PROTUNE_EXPOSURE_POS_2_0","GOPRO_PROTUNE_EXPOSURE_POS_2_5","GOPRO_PROTUNE_EXPOSURE_POS_3_0","GOPRO_PROTUNE_EXPOSURE_POS_3_5","GOPRO_PROTUNE_EXPOSURE_POS_4_0","GOPRO_PROTUNE_EXPOSURE_POS_4_5","GOPRO_PROTUNE_EXPOSURE_POS_5_0","GOPRO_PROTUNE_EXPOSURE_ZERO","GOPRO_PROTUNE_GAIN_1600","GOPRO_PROTUNE_GAIN_3200","GOPRO_PROTUNE_GAIN_400","GOPRO_PROTUNE_GAIN_6400","GOPRO_PROTUNE_GAIN_800","GOPRO_PROTUNE_SHARPNESS_HIGH","GOPRO_PROTUNE_SHARPNESS_LOW","GOPRO_PROTUNE_SHARPNESS_MEDIUM","GOPRO_PROTUNE_WHITE_BALANCE_3000K","GOPRO_PROTUNE_WHITE_BALANCE_5500K","GOPRO_PROTUNE_WHITE_BALANCE_6500K","GOPRO_PROTUNE_WHITE_BALANCE_AUTO","GOPRO_PROTUNE_WHITE_BALANCE_RAW","GOPRO_REQUEST_FAILED","GOPRO_REQUEST_SUCCESS","GOPRO_RESOLUTION_1080p","GOPRO_RESOLUTION_1080p_SUPERVIEW","GOPRO_RESOLUTION_1440p","GOPRO_RESOLUTION_2_7k_16_9","GOPRO_RESOLUTION_2_7k_17_9","GOPRO_RESOLUTION_2_7k_4_3","GOPRO_RESOLUTION_2_7k_SUPERVIEW","GOPRO_RESOLUTION_480p","GOPRO_RESOLUTION_4k_16_9","GOPRO_RESOLUTION_4k_17_9","GOPRO_RESOLUTION_4k_SUPERVIEW","GOPRO_RESOLUTION_720p","GOPRO_RESOLUTION_720p_SUPERVIEW","GOPRO_RESOLUTION_960p","GOPRO_SET_REQUEST","GOPRO_SET_REQUEST_DATA","GOPRO_SET_RESPONSE","GOPRO_SET_RESPONSE_DATA","GOPRO_VIDEO_SETTINGS_TV_MODE","GPS2_RAW","GPS2_RAW_DATA","GPS2_RTK","GPS2_RTK_DATA","GPS_FIX_TYPE_2D_FIX","GPS_FIX_TYPE_3D_FIX","GPS_FIX_TYPE_DGPS","GPS_FIX_TYPE_NO_FIX","GPS_FIX_TYPE_NO_GPS","GPS_FIX_TYPE_PPP","GPS_FIX_TYPE_RTK_FIXED","GPS_FIX_TYPE_RTK_FLOAT","GPS_FIX_TYPE_STATIC","GPS_GLOBAL_ORIGIN","GPS_GLOBAL_ORIGIN_DATA","GPS_INJECT_DATA","GPS_INJECT_DATA_DATA","GPS_INPUT","GPS_INPUT_DATA","GPS_INPUT_IGNORE_FLAG_ALT","GPS_INPUT_IGNORE_FLAG_HDOP","GPS_INPUT_IGNORE_FLAG_HORIZONTAL_ACCURACY","GPS_INPUT_IGNORE_FLAG_SPEED_ACCURACY","GPS_INPUT_IGNORE_FLAG_VDOP","GPS_INPUT_IGNORE_FLAG_VEL_HORIZ","GPS_INPUT_IGNORE_FLAG_VEL_VERT","GPS_INPUT_IGNORE_FLAG_VERTICAL_ACCURACY","GPS_RAW_INT","GPS_RAW_INT_DATA","GPS_RTCM_DATA","GPS_RTCM_DATA_DATA","GPS_RTK","GPS_RTK_DATA","GPS_STATUS","GPS_STATUS_DATA","GRIPPER_ACTION_GRAB","GRIPPER_ACTION_RELEASE","GimbalAxis","GimbalAxisCalibrationRequired","GimbalAxisCalibrationStatus","GimbalDeviceCapFlags","GimbalDeviceErrorFlags","GimbalDeviceFlags","GimbalManagerCapFlags","GimbalManagerFlags","GoproBurstRate","GoproCaptureMode","GoproCharging","GoproCommand","GoproFieldOfView","GoproFrameRate","GoproHeartbeatFlags","GoproHeartbeatStatus","GoproModel","GoproPhotoResolution","GoproProtuneColour","GoproProtuneExposure","GoproProtuneGain","GoproProtuneSharpness","GoproProtuneWhiteBalance","GoproRequestStatus","GoproResolution","GoproVideoSettingsFlags","GpsFixType","GpsInputIgnoreFlags","GripperActions","HEADING_TYPE_COURSE_OVER_GROUND","HEADING_TYPE_HEADING","HEARTBEAT","HEARTBEAT_DATA","HERELINK_TELEM","HERELINK_TELEM_DATA","HERELINK_VIDEO_STREAM_INFORMATION","HERELINK_VIDEO_STREAM_INFORMATION_DATA","HIGHRES_IMU","HIGHRES_IMU_DATA","HIGHRES_IMU_UPDATED_ABS_PRESSURE","HIGHRES_IMU_UPDATED_ALL","HIGHRES_IMU_UPDATED_DIFF_PRESSURE","HIGHRES_IMU_UPDATED_NONE","HIGHRES_IMU_UPDATED_PRESSURE_ALT","HIGHRES_IMU_UPDATED_TEMPERATURE","HIGHRES_IMU_UPDATED_XACC","HIGHRES_IMU_UPDATED_XGYRO","HIGHRES_IMU_UPDATED_XMAG","HIGHRES_IMU_UPDATED_YACC","HIGHRES_IMU_UPDATED_YGYRO","HIGHRES_IMU_UPDATED_YMAG","HIGHRES_IMU_UPDATED_ZACC","HIGHRES_IMU_UPDATED_ZGYRO","HIGHRES_IMU_UPDATED_ZMAG","HIGH_LATENCY","HIGH_LATENCY2","HIGH_LATENCY2_DATA","HIGH_LATENCY_DATA","HIL_ACTUATOR_CONTROLS","HIL_ACTUATOR_CONTROLS_DATA","HIL_CONTROLS","HIL_CONTROLS_DATA","HIL_GPS","HIL_GPS_DATA","HIL_OPTICAL_FLOW","HIL_OPTICAL_FLOW_DATA","HIL_RC_INPUTS_RAW","HIL_RC_INPUTS_RAW_DATA","HIL_SENSOR","HIL_SENSOR_DATA","HIL_SENSOR_UPDATED_ABS_PRESSURE","HIL_SENSOR_UPDATED_DIFF_PRESSURE","HIL_SENSOR_UPDATED_NONE","HIL_SENSOR_UPDATED_PRESSURE_ALT","HIL_SENSOR_UPDATED_RESET","HIL_SENSOR_UPDATED_TEMPERATURE","HIL_SENSOR_UPDATED_XACC","HIL_SENSOR_UPDATED_XGYRO","HIL_SENSOR_UPDATED_XMAG","HIL_SENSOR_UPDATED_YACC","HIL_SENSOR_UPDATED_YGYRO","HIL_SENSOR_UPDATED_YMAG","HIL_SENSOR_UPDATED_ZACC","HIL_SENSOR_UPDATED_ZGYRO","HIL_SENSOR_UPDATED_ZMAG","HIL_STATE","HIL_STATE_DATA","HIL_STATE_QUATERNION","HIL_STATE_QUATERNION_DATA","HL_FAILURE_FLAG_3D_ACCEL","HL_FAILURE_FLAG_3D_GYRO","HL_FAILURE_FLAG_3D_MAG","HL_FAILURE_FLAG_ABSOLUTE_PRESSURE","HL_FAILURE_FLAG_BATTERY","HL_FAILURE_FLAG_DIFFERENTIAL_PRESSURE","HL_FAILURE_FLAG_ENGINE","HL_FAILURE_FLAG_ESTIMATOR","HL_FAILURE_FLAG_GEOFENCE","HL_FAILURE_FLAG_GPS","HL_FAILURE_FLAG_MISSION","HL_FAILURE_FLAG_OFFBOARD_LINK","HL_FAILURE_FLAG_RC_RECEIVER","HL_FAILURE_FLAG_TERRAIN","HOME_POSITION","HOME_POSITION_DATA","HWSTATUS","HWSTATUS_DATA","HYGROMETER_SENSOR","HYGROMETER_SENSOR_DATA","HeadingType","HighresImuUpdatedFlags","HilSensorUpdatedFlags","HlFailureFlag","I","I2Cerr","ICAO","ICAO_address","ICAROUS_FMS_STATE_APPROACH","ICAROUS_FMS_STATE_CLIMB","ICAROUS_FMS_STATE_CRUISE","ICAROUS_FMS_STATE_IDLE","ICAROUS_FMS_STATE_LAND","ICAROUS_FMS_STATE_TAKEOFF","ICAROUS_HEARTBEAT","ICAROUS_HEARTBEAT_DATA","ICAROUS_KINEMATIC_BANDS","ICAROUS_KINEMATIC_BANDS_DATA","ICAROUS_TRACK_BAND_TYPE_NEAR","ICAROUS_TRACK_BAND_TYPE_NONE","ICAROUS_TRACK_BAND_TYPE_RECOVERY","ISBD_LINK_STATUS","ISBD_LINK_STATUS_DATA","IcarousFmsState","IcarousTrackBandTypes","LANDING_TARGET","LANDING_TARGET_DATA","LANDING_TARGET_TYPE_LIGHT_BEACON","LANDING_TARGET_TYPE_RADIO_BEACON","LANDING_TARGET_TYPE_VISION_FIDUCIAL","LANDING_TARGET_TYPE_VISION_OTHER","LAND_IMMEDIATELY","LED_CONTROL","LED_CONTROL_DATA","LED_CONTROL_PATTERN_CUSTOM","LED_CONTROL_PATTERN_FIRMWAREUPDATE","LED_CONTROL_PATTERN_OFF","LIMITS_DISABLED","LIMITS_ENABLED","LIMITS_INIT","LIMITS_RECOVERED","LIMITS_RECOVERING","LIMITS_STATUS","LIMITS_STATUS_DATA","LIMITS_TRIGGERED","LIMIT_ALTITUDE","LIMIT_GEOFENCE","LIMIT_GPSLOCK","LINK_NODE_STATUS","LINK_NODE_STATUS_DATA","LOCAL_POSITION_NED","LOCAL_POSITION_NED_COV","LOCAL_POSITION_NED_COV_DATA","LOCAL_POSITION_NED_DATA","LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET","LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA","LOGGING_ACK","LOGGING_ACK_DATA","LOGGING_DATA","LOGGING_DATA_ACKED","LOGGING_DATA_ACKED_DATA","LOGGING_DATA_DATA","LOG_DATA","LOG_DATA_DATA","LOG_ENTRY","LOG_ENTRY_DATA","LOG_ERASE","LOG_ERASE_DATA","LOG_REQUEST_DATA","LOG_REQUEST_DATA_DATA","LOG_REQUEST_END","LOG_REQUEST_END_DATA","LOG_REQUEST_LIST","LOG_REQUEST_LIST_DATA","LandingTargetType","LedControlPattern","LimitModule","LimitsState","MAG_CAL_BAD_ORIENTATION","MAG_CAL_BAD_RADIUS","MAG_CAL_FAILED","MAG_CAL_NOT_STARTED","MAG_CAL_PROGRESS","MAG_CAL_PROGRESS_DATA","MAG_CAL_REPORT","MAG_CAL_REPORT_DATA","MAG_CAL_RUNNING_STEP_ONE","MAG_CAL_RUNNING_STEP_TWO","MAG_CAL_SUCCESS","MAG_CAL_WAITING_TO_START","MANUAL_CONTROL","MANUAL_CONTROL_DATA","MANUAL_SETPOINT","MANUAL_SETPOINT_DATA","MAVLINK_DATA_STREAM_IMG_BMP","MAVLINK_DATA_STREAM_IMG_JPEG","MAVLINK_DATA_STREAM_IMG_PGM","MAVLINK_DATA_STREAM_IMG_PNG","MAVLINK_DATA_STREAM_IMG_RAW32U","MAVLINK_DATA_STREAM_IMG_RAW8U","MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE","MAV_ARM_AUTH_DENIED_REASON_BAD_WEATHER","MAV_ARM_AUTH_DENIED_REASON_GENERIC","MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT","MAV_ARM_AUTH_DENIED_REASON_NONE","MAV_ARM_AUTH_DENIED_REASON_TIMEOUT","MAV_AUTOPILOT_AEROB","MAV_AUTOPILOT_AIRRAILS","MAV_AUTOPILOT_ARDUPILOTMEGA","MAV_AUTOPILOT_ARMAZILA","MAV_AUTOPILOT_ASLUAV","MAV_AUTOPILOT_AUTOQUAD","MAV_AUTOPILOT_FP","MAV_AUTOPILOT_GENERIC","MAV_AUTOPILOT_GENERIC_MISSION_FULL","MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY","MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY","MAV_AUTOPILOT_INVALID","MAV_AUTOPILOT_OPENPILOT","MAV_AUTOPILOT_PPZ","MAV_AUTOPILOT_PX4","MAV_AUTOPILOT_REFLEX","MAV_AUTOPILOT_RESERVED","MAV_AUTOPILOT_SLUGS","MAV_AUTOPILOT_SMACCMPILOT","MAV_AUTOPILOT_SMARTAP","MAV_AUTOPILOT_UDB","MAV_BATTERY_CHARGE_STATE_CHARGING","MAV_BATTERY_CHARGE_STATE_CRITICAL","MAV_BATTERY_CHARGE_STATE_EMERGENCY","MAV_BATTERY_CHARGE_STATE_FAILED","MAV_BATTERY_CHARGE_STATE_LOW","MAV_BATTERY_CHARGE_STATE_OK","MAV_BATTERY_CHARGE_STATE_UNDEFINED","MAV_BATTERY_CHARGE_STATE_UNHEALTHY","MAV_BATTERY_FAULT_CELL_FAIL","MAV_BATTERY_FAULT_DEEP_DISCHARGE","MAV_BATTERY_FAULT_INCOMPATIBLE_FIRMWARE","MAV_BATTERY_FAULT_INCOMPATIBLE_VOLTAGE","MAV_BATTERY_FAULT_OVER_CURRENT","MAV_BATTERY_FAULT_OVER_TEMPERATURE","MAV_BATTERY_FAULT_SPIKES","MAV_BATTERY_FAULT_UNDER_TEMPERATURE","MAV_BATTERY_FUNCTION_ALL","MAV_BATTERY_FUNCTION_AVIONICS","MAV_BATTERY_FUNCTION_PAYLOAD","MAV_BATTERY_FUNCTION_PROPULSION","MAV_BATTERY_FUNCTION_UNKNOWN","MAV_BATTERY_MODE_AUTO_DISCHARGING","MAV_BATTERY_MODE_HOT_SWAP","MAV_BATTERY_MODE_UNKNOWN","MAV_BATTERY_TYPE_LIFE","MAV_BATTERY_TYPE_LION","MAV_BATTERY_TYPE_LIPO","MAV_BATTERY_TYPE_NIMH","MAV_BATTERY_TYPE_UNKNOWN","MAV_CMD_ACCELCAL_VEHICLE_POS","MAV_CMD_ACK_ERR_ACCESS_DENIED","MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE","MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED","MAV_CMD_ACK_ERR_FAIL","MAV_CMD_ACK_ERR_NOT_SUPPORTED","MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE","MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE","MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE","MAV_CMD_ACK_OK","MAV_CMD_ACTUATOR_TEST","MAV_CMD_AIRFRAME_CONFIGURATION","MAV_CMD_ARM_AUTHORIZATION_REQUEST","MAV_CMD_BATTERY_RESET","MAV_CMD_CAMERA_STOP_TRACKING","MAV_CMD_CAMERA_TRACK_POINT","MAV_CMD_CAMERA_TRACK_RECTANGLE","MAV_CMD_CAN_FORWARD","MAV_CMD_COMPONENT_ARM_DISARM","MAV_CMD_CONDITION_CHANGE_ALT","MAV_CMD_CONDITION_DELAY","MAV_CMD_CONDITION_DISTANCE","MAV_CMD_CONDITION_GATE","MAV_CMD_CONDITION_LAST","MAV_CMD_CONDITION_YAW","MAV_CMD_CONFIGURE_ACTUATOR","MAV_CMD_CONTROL_HIGH_LATENCY","MAV_CMD_DEBUG_TRAP","MAV_CMD_DO_ACCEPT_MAG_CAL","MAV_CMD_DO_ADSB_OUT_IDENT","MAV_CMD_DO_AUTOTUNE_ENABLE","MAV_CMD_DO_AUX_FUNCTION","MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_HIGH","MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_LOW","MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_MIDDLE","MAV_CMD_DO_CANCEL_MAG_CAL","MAV_CMD_DO_CHANGE_ALTITUDE","MAV_CMD_DO_CHANGE_SPEED","MAV_CMD_DO_CONTROL_VIDEO","MAV_CMD_DO_DIGICAM_CONFIGURE","MAV_CMD_DO_DIGICAM_CONTROL","MAV_CMD_DO_ENGINE_CONTROL","MAV_CMD_DO_FENCE_ENABLE","MAV_CMD_DO_FLIGHTTERMINATION","MAV_CMD_DO_FOLLOW","MAV_CMD_DO_FOLLOW_REPOSITION","MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE","MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW","MAV_CMD_DO_GO_AROUND","MAV_CMD_DO_GRIPPER","MAV_CMD_DO_GUIDED_LIMITS","MAV_CMD_DO_GUIDED_MASTER","MAV_CMD_DO_INVERTED_FLIGHT","MAV_CMD_DO_JUMP","MAV_CMD_DO_JUMP_TAG","MAV_CMD_DO_LAND_START","MAV_CMD_DO_LAST","MAV_CMD_DO_MOTOR_TEST","MAV_CMD_DO_MOUNT_CONFIGURE","MAV_CMD_DO_MOUNT_CONTROL","MAV_CMD_DO_MOUNT_CONTROL_QUAT","MAV_CMD_DO_ORBIT","MAV_CMD_DO_PARACHUTE","MAV_CMD_DO_PAUSE_CONTINUE","MAV_CMD_DO_RALLY_LAND","MAV_CMD_DO_REPEAT_RELAY","MAV_CMD_DO_REPEAT_SERVO","MAV_CMD_DO_REPOSITION","MAV_CMD_DO_SEND_BANNER","MAV_CMD_DO_SEND_SCRIPT_MESSAGE","MAV_CMD_DO_SET_ACTUATOR","MAV_CMD_DO_SET_CAM_TRIGG_DIST","MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL","MAV_CMD_DO_SET_HOME","MAV_CMD_DO_SET_MISSION_CURRENT","MAV_CMD_DO_SET_MODE","MAV_CMD_DO_SET_PARAMETER","MAV_CMD_DO_SET_RELAY","MAV_CMD_DO_SET_RESUME_REPEAT_DIST","MAV_CMD_DO_SET_REVERSE","MAV_CMD_DO_SET_ROI","MAV_CMD_DO_SET_ROI_LOCATION","MAV_CMD_DO_SET_ROI_NONE","MAV_CMD_DO_SET_ROI_SYSID","MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET","MAV_CMD_DO_SET_SERVO","MAV_CMD_DO_SPRAYER","MAV_CMD_DO_START_MAG_CAL","MAV_CMD_DO_TRIGGER_CONTROL","MAV_CMD_DO_VTOL_TRANSITION","MAV_CMD_DO_WINCH","MAV_CMD_FIXED_MAG_CAL","MAV_CMD_FIXED_MAG_CAL_FIELD","MAV_CMD_FIXED_MAG_CAL_YAW","MAV_CMD_FLASH_BOOTLOADER","MAV_CMD_GET_HOME_POSITION","MAV_CMD_GET_MESSAGE_INTERVAL","MAV_CMD_GIMBAL_AXIS_CALIBRATION_STATUS","MAV_CMD_GIMBAL_FULL_RESET","MAV_CMD_GIMBAL_REQUEST_AXIS_CALIBRATION","MAV_CMD_GIMBAL_RESET","MAV_CMD_GUIDED_CHANGE_ALTITUDE","MAV_CMD_GUIDED_CHANGE_HEADING","MAV_CMD_GUIDED_CHANGE_SPEED","MAV_CMD_ILLUMINATOR_ON_OFF","MAV_CMD_IMAGE_START_CAPTURE","MAV_CMD_IMAGE_STOP_CAPTURE","MAV_CMD_INJECT_FAILURE","MAV_CMD_JUMP_TAG","MAV_CMD_LOGGING_START","MAV_CMD_LOGGING_STOP","MAV_CMD_MISSION_START","MAV_CMD_NAV_ALTITUDE_WAIT","MAV_CMD_NAV_ATTITUDE_TIME","MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT","MAV_CMD_NAV_DELAY","MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION","MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION","MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION","MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION","MAV_CMD_NAV_FENCE_RETURN_POINT","MAV_CMD_NAV_FOLLOW","MAV_CMD_NAV_GUIDED_ENABLE","MAV_CMD_NAV_LAND","MAV_CMD_NAV_LAND_LOCAL","MAV_CMD_NAV_LAST","MAV_CMD_NAV_LOITER_TIME","MAV_CMD_NAV_LOITER_TO_ALT","MAV_CMD_NAV_LOITER_TURNS","MAV_CMD_NAV_LOITER_UNLIM","MAV_CMD_NAV_PATHPLANNING","MAV_CMD_NAV_PAYLOAD_PLACE","MAV_CMD_NAV_RALLY_POINT","MAV_CMD_NAV_RETURN_TO_LAUNCH","MAV_CMD_NAV_ROI","MAV_CMD_NAV_SCRIPT_TIME","MAV_CMD_NAV_SET_YAW_SPEED","MAV_CMD_NAV_SPLINE_WAYPOINT","MAV_CMD_NAV_TAKEOFF","MAV_CMD_NAV_TAKEOFF_LOCAL","MAV_CMD_NAV_VTOL_LAND","MAV_CMD_NAV_VTOL_TAKEOFF","MAV_CMD_NAV_WAYPOINT","MAV_CMD_OBLIQUE_SURVEY","MAV_CMD_OVERRIDE_GOTO","MAV_CMD_PANORAMA_CREATE","MAV_CMD_PAYLOAD_CONTROL_DEPLOY","MAV_CMD_PAYLOAD_PREPARE_DEPLOY","MAV_CMD_POWER_OFF_INITIATED","MAV_CMD_PREFLIGHT_CALIBRATION","MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN","MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS","MAV_CMD_PREFLIGHT_STORAGE","MAV_CMD_PREFLIGHT_UAVCAN","MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES","MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS","MAV_CMD_REQUEST_CAMERA_IMAGE_CAPTURE","MAV_CMD_REQUEST_CAMERA_INFORMATION","MAV_CMD_REQUEST_CAMERA_SETTINGS","MAV_CMD_REQUEST_FLIGHT_INFORMATION","MAV_CMD_REQUEST_MESSAGE","MAV_CMD_REQUEST_PROTOCOL_VERSION","MAV_CMD_REQUEST_STORAGE_INFORMATION","MAV_CMD_REQUEST_VIDEO_STREAM_INFORMATION","MAV_CMD_REQUEST_VIDEO_STREAM_STATUS","MAV_CMD_RESET_CAMERA_SETTINGS","MAV_CMD_RUN_PREARM_CHECKS","MAV_CMD_SCRIPTING","MAV_CMD_SET_CAMERA_FOCUS","MAV_CMD_SET_CAMERA_MODE","MAV_CMD_SET_CAMERA_ZOOM","MAV_CMD_SET_EKF_SOURCE_SET","MAV_CMD_SET_FACTORY_TEST_MODE","MAV_CMD_SET_GUIDED_SUBMODE_CIRCLE","MAV_CMD_SET_GUIDED_SUBMODE_STANDARD","MAV_CMD_SET_MESSAGE_INTERVAL","MAV_CMD_SET_STORAGE_USAGE","MAV_CMD_SOLO_BTN_FLY_CLICK","MAV_CMD_SOLO_BTN_FLY_HOLD","MAV_CMD_SOLO_BTN_PAUSE_CLICK","MAV_CMD_SPATIAL_USER_1","MAV_CMD_SPATIAL_USER_2","MAV_CMD_SPATIAL_USER_3","MAV_CMD_SPATIAL_USER_4","MAV_CMD_SPATIAL_USER_5","MAV_CMD_START_RX_PAIR","MAV_CMD_STORAGE_FORMAT","MAV_CMD_UAVCAN_GET_NODE_INFO","MAV_CMD_USER_1","MAV_CMD_USER_2","MAV_CMD_USER_3","MAV_CMD_USER_4","MAV_CMD_USER_5","MAV_CMD_VIDEO_START_CAPTURE","MAV_CMD_VIDEO_START_STREAMING","MAV_CMD_VIDEO_STOP_CAPTURE","MAV_CMD_VIDEO_STOP_STREAMING","MAV_CMD_WAYPOINT_USER_1","MAV_CMD_WAYPOINT_USER_2","MAV_CMD_WAYPOINT_USER_3","MAV_CMD_WAYPOINT_USER_4","MAV_CMD_WAYPOINT_USER_5","MAV_COLLISION_ACTION_ASCEND_OR_DESCEND","MAV_COLLISION_ACTION_HOVER","MAV_COLLISION_ACTION_MOVE_HORIZONTALLY","MAV_COLLISION_ACTION_MOVE_PERPENDICULAR","MAV_COLLISION_ACTION_NONE","MAV_COLLISION_ACTION_REPORT","MAV_COLLISION_ACTION_RTL","MAV_COLLISION_SRC_ADSB","MAV_COLLISION_SRC_MAVLINK_GPS_GLOBAL_INT","MAV_COLLISION_THREAT_LEVEL_HIGH","MAV_COLLISION_THREAT_LEVEL_LOW","MAV_COLLISION_THREAT_LEVEL_NONE","MAV_COMP_ID_ADSB","MAV_COMP_ID_ALL","MAV_COMP_ID_AUTOPILOT1","MAV_COMP_ID_BATTERY","MAV_COMP_ID_BATTERY2","MAV_COMP_ID_CAMERA","MAV_COMP_ID_CAMERA2","MAV_COMP_ID_CAMERA3","MAV_COMP_ID_CAMERA4","MAV_COMP_ID_CAMERA5","MAV_COMP_ID_CAMERA6","MAV_COMP_ID_FLARM","MAV_COMP_ID_GIMBAL","MAV_COMP_ID_GIMBAL2","MAV_COMP_ID_GIMBAL3","MAV_COMP_ID_GIMBAL4","MAV_COMP_ID_GIMBAL5","MAV_COMP_ID_GIMBAL6","MAV_COMP_ID_GPS","MAV_COMP_ID_GPS2","MAV_COMP_ID_IMU","MAV_COMP_ID_IMU_2","MAV_COMP_ID_IMU_3","MAV_COMP_ID_LOG","MAV_COMP_ID_MAVCAN","MAV_COMP_ID_MISSIONPLANNER","MAV_COMP_ID_OBSTACLE_AVOIDANCE","MAV_COMP_ID_ODID_TXRX_1","MAV_COMP_ID_ODID_TXRX_2","MAV_COMP_ID_ODID_TXRX_3","MAV_COMP_ID_ONBOARD_COMPUTER","MAV_COMP_ID_ONBOARD_COMPUTER2","MAV_COMP_ID_ONBOARD_COMPUTER3","MAV_COMP_ID_ONBOARD_COMPUTER4","MAV_COMP_ID_OSD","MAV_COMP_ID_PAIRING_MANAGER","MAV_COMP_ID_PARACHUTE","MAV_COMP_ID_PATHPLANNER","MAV_COMP_ID_PERIPHERAL","MAV_COMP_ID_QX1_GIMBAL","MAV_COMP_ID_SERVO1","MAV_COMP_ID_SERVO10","MAV_COMP_ID_SERVO11","MAV_COMP_ID_SERVO12","MAV_COMP_ID_SERVO13","MAV_COMP_ID_SERVO14","MAV_COMP_ID_SERVO2","MAV_COMP_ID_SERVO3","MAV_COMP_ID_SERVO4","MAV_COMP_ID_SERVO5","MAV_COMP_ID_SERVO6","MAV_COMP_ID_SERVO7","MAV_COMP_ID_SERVO8","MAV_COMP_ID_SERVO9","MAV_COMP_ID_SYSTEM_CONTROL","MAV_COMP_ID_TELEMETRY_RADIO","MAV_COMP_ID_TUNNEL_NODE","MAV_COMP_ID_UART_BRIDGE","MAV_COMP_ID_UDP_BRIDGE","MAV_COMP_ID_USER1","MAV_COMP_ID_USER10","MAV_COMP_ID_USER11","MAV_COMP_ID_USER12","MAV_COMP_ID_USER13","MAV_COMP_ID_USER14","MAV_COMP_ID_USER15","MAV_COMP_ID_USER16","MAV_COMP_ID_USER17","MAV_COMP_ID_USER18","MAV_COMP_ID_USER19","MAV_COMP_ID_USER2","MAV_COMP_ID_USER20","MAV_COMP_ID_USER21","MAV_COMP_ID_USER22","MAV_COMP_ID_USER23","MAV_COMP_ID_USER24","MAV_COMP_ID_USER25","MAV_COMP_ID_USER26","MAV_COMP_ID_USER27","MAV_COMP_ID_USER28","MAV_COMP_ID_USER29","MAV_COMP_ID_USER3","MAV_COMP_ID_USER30","MAV_COMP_ID_USER31","MAV_COMP_ID_USER32","MAV_COMP_ID_USER33","MAV_COMP_ID_USER34","MAV_COMP_ID_USER35","MAV_COMP_ID_USER36","MAV_COMP_ID_USER37","MAV_COMP_ID_USER38","MAV_COMP_ID_USER39","MAV_COMP_ID_USER4","MAV_COMP_ID_USER40","MAV_COMP_ID_USER41","MAV_COMP_ID_USER42","MAV_COMP_ID_USER43","MAV_COMP_ID_USER45","MAV_COMP_ID_USER46","MAV_COMP_ID_USER47","MAV_COMP_ID_USER48","MAV_COMP_ID_USER49","MAV_COMP_ID_USER5","MAV_COMP_ID_USER50","MAV_COMP_ID_USER51","MAV_COMP_ID_USER52","MAV_COMP_ID_USER53","MAV_COMP_ID_USER54","MAV_COMP_ID_USER55","MAV_COMP_ID_USER56","MAV_COMP_ID_USER57","MAV_COMP_ID_USER58","MAV_COMP_ID_USER59","MAV_COMP_ID_USER6","MAV_COMP_ID_USER60","MAV_COMP_ID_USER61","MAV_COMP_ID_USER62","MAV_COMP_ID_USER63","MAV_COMP_ID_USER64","MAV_COMP_ID_USER65","MAV_COMP_ID_USER66","MAV_COMP_ID_USER67","MAV_COMP_ID_USER68","MAV_COMP_ID_USER69","MAV_COMP_ID_USER7","MAV_COMP_ID_USER70","MAV_COMP_ID_USER71","MAV_COMP_ID_USER72","MAV_COMP_ID_USER73","MAV_COMP_ID_USER74","MAV_COMP_ID_USER75","MAV_COMP_ID_USER8","MAV_COMP_ID_USER9","MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY","MAV_COMP_ID_WINCH","MAV_DATA_STREAM_ALL","MAV_DATA_STREAM_EXTENDED_STATUS","MAV_DATA_STREAM_EXTRA1","MAV_DATA_STREAM_EXTRA2","MAV_DATA_STREAM_EXTRA3","MAV_DATA_STREAM_POSITION","MAV_DATA_STREAM_RAW_CONTROLLER","MAV_DATA_STREAM_RAW_SENSORS","MAV_DATA_STREAM_RC_CHANNELS","MAV_DISTANCE_SENSOR_INFRARED","MAV_DISTANCE_SENSOR_LASER","MAV_DISTANCE_SENSOR_RADAR","MAV_DISTANCE_SENSOR_ULTRASOUND","MAV_DISTANCE_SENSOR_UNKNOWN","MAV_DO_REPOSITION_FLAGS_CHANGE_MODE","MAV_ESTIMATOR_TYPE_AUTOPILOT","MAV_ESTIMATOR_TYPE_GPS","MAV_ESTIMATOR_TYPE_GPS_INS","MAV_ESTIMATOR_TYPE_LIDAR","MAV_ESTIMATOR_TYPE_MOCAP","MAV_ESTIMATOR_TYPE_NAIVE","MAV_ESTIMATOR_TYPE_UNKNOWN","MAV_ESTIMATOR_TYPE_VIO","MAV_ESTIMATOR_TYPE_VISION","MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET","MAV_EVENT_ERROR_REASON_UNAVAILABLE","MAV_FRAME_BODY_FRD","MAV_FRAME_BODY_NED","MAV_FRAME_BODY_OFFSET_NED","MAV_FRAME_GLOBAL","MAV_FRAME_GLOBAL_INT","MAV_FRAME_GLOBAL_RELATIVE_ALT","MAV_FRAME_GLOBAL_RELATIVE_ALT_INT","MAV_FRAME_GLOBAL_TERRAIN_ALT","MAV_FRAME_GLOBAL_TERRAIN_ALT_INT","MAV_FRAME_LOCAL_ENU","MAV_FRAME_LOCAL_FLU","MAV_FRAME_LOCAL_FRD","MAV_FRAME_LOCAL_NED","MAV_FRAME_LOCAL_OFFSET_NED","MAV_FRAME_MISSION","MAV_FRAME_RESERVED_13","MAV_FRAME_RESERVED_14","MAV_FRAME_RESERVED_15","MAV_FRAME_RESERVED_16","MAV_FRAME_RESERVED_17","MAV_FRAME_RESERVED_18","MAV_FRAME_RESERVED_19","MAV_FTP_ERR_EOF","MAV_FTP_ERR_FAIL","MAV_FTP_ERR_FAILERRNO","MAV_FTP_ERR_FILEEXISTS","MAV_FTP_ERR_FILENOTFOUND","MAV_FTP_ERR_FILEPROTECTED","MAV_FTP_ERR_INVALIDDATASIZE","MAV_FTP_ERR_INVALIDSESSION","MAV_FTP_ERR_NONE","MAV_FTP_ERR_NOSESSIONSAVAILABLE","MAV_FTP_ERR_UNKNOWNCOMMAND","MAV_FTP_OPCODE_ACK","MAV_FTP_OPCODE_BURSTREADFILE","MAV_FTP_OPCODE_CALCFILECRC","MAV_FTP_OPCODE_CREATEDIRECTORY","MAV_FTP_OPCODE_CREATEFILE","MAV_FTP_OPCODE_LISTDIRECTORY","MAV_FTP_OPCODE_NAK","MAV_FTP_OPCODE_NONE","MAV_FTP_OPCODE_OPENFILERO","MAV_FTP_OPCODE_OPENFILEWO","MAV_FTP_OPCODE_READFILE","MAV_FTP_OPCODE_REMOVEDIRECTORY","MAV_FTP_OPCODE_REMOVEFILE","MAV_FTP_OPCODE_RENAME","MAV_FTP_OPCODE_RESETSESSION","MAV_FTP_OPCODE_TERMINATESESSION","MAV_FTP_OPCODE_TRUNCATEFILE","MAV_FTP_OPCODE_WRITEFILE","MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT","MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT","MAV_GENERATOR_STATUS_FLAG_CHARGING","MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING","MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING","MAV_GENERATOR_STATUS_FLAG_GENERATING","MAV_GENERATOR_STATUS_FLAG_IDLE","MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED","MAV_GENERATOR_STATUS_FLAG_MAXPOWER","MAV_GENERATOR_STATUS_FLAG_OFF","MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT","MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT","MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING","MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT","MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT","MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT","MAV_GENERATOR_STATUS_FLAG_READY","MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER","MAV_GENERATOR_STATUS_FLAG_START_INHIBITED","MAV_GENERATOR_STATUS_FLAG_WARMING_UP","MAV_GOTO_DO_CONTINUE","MAV_GOTO_DO_HOLD","MAV_GOTO_HOLD_AT_CURRENT_POSITION","MAV_GOTO_HOLD_AT_SPECIFIED_POSITION","MAV_LANDED_STATE_IN_AIR","MAV_LANDED_STATE_LANDING","MAV_LANDED_STATE_ON_GROUND","MAV_LANDED_STATE_TAKEOFF","MAV_LANDED_STATE_UNDEFINED","MAV_MISSION_ACCEPTED","MAV_MISSION_DENIED","MAV_MISSION_ERROR","MAV_MISSION_INVALID","MAV_MISSION_INVALID_PARAM1","MAV_MISSION_INVALID_PARAM2","MAV_MISSION_INVALID_PARAM3","MAV_MISSION_INVALID_PARAM4","MAV_MISSION_INVALID_PARAM5_X","MAV_MISSION_INVALID_PARAM6_Y","MAV_MISSION_INVALID_PARAM7","MAV_MISSION_INVALID_SEQUENCE","MAV_MISSION_NO_SPACE","MAV_MISSION_OPERATION_CANCELLED","MAV_MISSION_TYPE_ALL","MAV_MISSION_TYPE_FENCE","MAV_MISSION_TYPE_MISSION","MAV_MISSION_TYPE_RALLY","MAV_MISSION_UNSUPPORTED","MAV_MISSION_UNSUPPORTED_FRAME","MAV_MODE_AUTO_ARMED","MAV_MODE_AUTO_DISARMED","MAV_MODE_FLAG_AUTO_ENABLED","MAV_MODE_FLAG_CUSTOM_MODE_ENABLED","MAV_MODE_FLAG_DECODE_POSITION_AUTO","MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE","MAV_MODE_FLAG_DECODE_POSITION_GUIDED","MAV_MODE_FLAG_DECODE_POSITION_HIL","MAV_MODE_FLAG_DECODE_POSITION_MANUAL","MAV_MODE_FLAG_DECODE_POSITION_SAFETY","MAV_MODE_FLAG_DECODE_POSITION_STABILIZE","MAV_MODE_FLAG_DECODE_POSITION_TEST","MAV_MODE_FLAG_GUIDED_ENABLED","MAV_MODE_FLAG_HIL_ENABLED","MAV_MODE_FLAG_MANUAL_INPUT_ENABLED","MAV_MODE_FLAG_SAFETY_ARMED","MAV_MODE_FLAG_STABILIZE_ENABLED","MAV_MODE_FLAG_TEST_ENABLED","MAV_MODE_GIMBAL_ACTIVE","MAV_MODE_GIMBAL_CALIBRATING_PITCH","MAV_MODE_GIMBAL_CALIBRATING_ROLL","MAV_MODE_GIMBAL_CALIBRATING_YAW","MAV_MODE_GIMBAL_INITIALIZED","MAV_MODE_GIMBAL_RATE_CMD_TIMEOUT","MAV_MODE_GIMBAL_UNINITIALIZED","MAV_MODE_GUIDED_ARMED","MAV_MODE_GUIDED_DISARMED","MAV_MODE_MANUAL_ARMED","MAV_MODE_MANUAL_DISARMED","MAV_MODE_PREFLIGHT","MAV_MODE_STABILIZE_ARMED","MAV_MODE_STABILIZE_DISARMED","MAV_MODE_TEST_ARMED","MAV_MODE_TEST_DISARMED","MAV_MOUNT_MODE_GPS_POINT","MAV_MOUNT_MODE_HOME_LOCATION","MAV_MOUNT_MODE_MAVLINK_TARGETING","MAV_MOUNT_MODE_NEUTRAL","MAV_MOUNT_MODE_RC_TARGETING","MAV_MOUNT_MODE_RETRACT","MAV_MOUNT_MODE_SYSID_TARGET","MAV_ODID_ARM_STATUS_GOOD_TO_ARM","MAV_ODID_ARM_STATUS_PRE_ARM_FAIL_GENERIC","MAV_ODID_AUTH_TYPE_MESSAGE_SET_SIGNATURE","MAV_ODID_AUTH_TYPE_NETWORK_REMOTE_ID","MAV_ODID_AUTH_TYPE_NONE","MAV_ODID_AUTH_TYPE_OPERATOR_ID_SIGNATURE","MAV_ODID_AUTH_TYPE_SPECIFIC_AUTHENTICATION","MAV_ODID_AUTH_TYPE_UAS_ID_SIGNATURE","MAV_ODID_CATEGORY_EU_CERTIFIED","MAV_ODID_CATEGORY_EU_OPEN","MAV_ODID_CATEGORY_EU_SPECIFIC","MAV_ODID_CATEGORY_EU_UNDECLARED","MAV_ODID_CLASSIFICATION_TYPE_EU","MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED","MAV_ODID_CLASS_EU_CLASS_0","MAV_ODID_CLASS_EU_CLASS_1","MAV_ODID_CLASS_EU_CLASS_2","MAV_ODID_CLASS_EU_CLASS_3","MAV_ODID_CLASS_EU_CLASS_4","MAV_ODID_CLASS_EU_CLASS_5","MAV_ODID_CLASS_EU_CLASS_6","MAV_ODID_CLASS_EU_UNDECLARED","MAV_ODID_DESC_TYPE_EMERGENCY","MAV_ODID_DESC_TYPE_EXTENDED_STATUS","MAV_ODID_DESC_TYPE_TEXT","MAV_ODID_HEIGHT_REF_OVER_GROUND","MAV_ODID_HEIGHT_REF_OVER_TAKEOFF","MAV_ODID_HOR_ACC_0_05NM","MAV_ODID_HOR_ACC_0_1NM","MAV_ODID_HOR_ACC_0_3NM","MAV_ODID_HOR_ACC_0_5NM","MAV_ODID_HOR_ACC_10NM","MAV_ODID_HOR_ACC_10_METER","MAV_ODID_HOR_ACC_1NM","MAV_ODID_HOR_ACC_1_METER","MAV_ODID_HOR_ACC_2NM","MAV_ODID_HOR_ACC_30_METER","MAV_ODID_HOR_ACC_3_METER","MAV_ODID_HOR_ACC_4NM","MAV_ODID_HOR_ACC_UNKNOWN","MAV_ODID_ID_TYPE_CAA_REGISTRATION_ID","MAV_ODID_ID_TYPE_NONE","MAV_ODID_ID_TYPE_SERIAL_NUMBER","MAV_ODID_ID_TYPE_SPECIFIC_SESSION_ID","MAV_ODID_ID_TYPE_UTM_ASSIGNED_UUID","MAV_ODID_OPERATOR_ID_TYPE_CAA","MAV_ODID_OPERATOR_LOCATION_TYPE_FIXED","MAV_ODID_OPERATOR_LOCATION_TYPE_LIVE_GNSS","MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF","MAV_ODID_SPEED_ACC_0_3_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_10_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_1_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_3_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_UNKNOWN","MAV_ODID_STATUS_AIRBORNE","MAV_ODID_STATUS_EMERGENCY","MAV_ODID_STATUS_GROUND","MAV_ODID_STATUS_REMOTE_ID_SYSTEM_FAILURE","MAV_ODID_STATUS_UNDECLARED","MAV_ODID_TIME_ACC_0_1_SECOND","MAV_ODID_TIME_ACC_0_2_SECOND","MAV_ODID_TIME_ACC_0_3_SECOND","MAV_ODID_TIME_ACC_0_4_SECOND","MAV_ODID_TIME_ACC_0_5_SECOND","MAV_ODID_TIME_ACC_0_6_SECOND","MAV_ODID_TIME_ACC_0_7_SECOND","MAV_ODID_TIME_ACC_0_8_SECOND","MAV_ODID_TIME_ACC_0_9_SECOND","MAV_ODID_TIME_ACC_1_0_SECOND","MAV_ODID_TIME_ACC_1_1_SECOND","MAV_ODID_TIME_ACC_1_2_SECOND","MAV_ODID_TIME_ACC_1_3_SECOND","MAV_ODID_TIME_ACC_1_4_SECOND","MAV_ODID_TIME_ACC_1_5_SECOND","MAV_ODID_TIME_ACC_UNKNOWN","MAV_ODID_UA_TYPE_AEROPLANE","MAV_ODID_UA_TYPE_AIRSHIP","MAV_ODID_UA_TYPE_CAPTIVE_BALLOON","MAV_ODID_UA_TYPE_FREE_BALLOON","MAV_ODID_UA_TYPE_FREE_FALL_PARACHUTE","MAV_ODID_UA_TYPE_GLIDER","MAV_ODID_UA_TYPE_GROUND_OBSTACLE","MAV_ODID_UA_TYPE_GYROPLANE","MAV_ODID_UA_TYPE_HELICOPTER_OR_MULTIROTOR","MAV_ODID_UA_TYPE_HYBRID_LIFT","MAV_ODID_UA_TYPE_KITE","MAV_ODID_UA_TYPE_NONE","MAV_ODID_UA_TYPE_ORNITHOPTER","MAV_ODID_UA_TYPE_OTHER","MAV_ODID_UA_TYPE_ROCKET","MAV_ODID_UA_TYPE_TETHERED_POWERED_AIRCRAFT","MAV_ODID_VER_ACC_10_METER","MAV_ODID_VER_ACC_150_METER","MAV_ODID_VER_ACC_1_METER","MAV_ODID_VER_ACC_25_METER","MAV_ODID_VER_ACC_3_METER","MAV_ODID_VER_ACC_45_METER","MAV_ODID_VER_ACC_UNKNOWN","MAV_PARAM_EXT_TYPE_CUSTOM","MAV_PARAM_EXT_TYPE_INT16","MAV_PARAM_EXT_TYPE_INT32","MAV_PARAM_EXT_TYPE_INT64","MAV_PARAM_EXT_TYPE_INT8","MAV_PARAM_EXT_TYPE_REAL32","MAV_PARAM_EXT_TYPE_REAL64","MAV_PARAM_EXT_TYPE_UINT16","MAV_PARAM_EXT_TYPE_UINT32","MAV_PARAM_EXT_TYPE_UINT64","MAV_PARAM_EXT_TYPE_UINT8","MAV_PARAM_TYPE_INT16","MAV_PARAM_TYPE_INT32","MAV_PARAM_TYPE_INT64","MAV_PARAM_TYPE_INT8","MAV_PARAM_TYPE_REAL32","MAV_PARAM_TYPE_REAL64","MAV_PARAM_TYPE_UINT16","MAV_PARAM_TYPE_UINT32","MAV_PARAM_TYPE_UINT64","MAV_PARAM_TYPE_UINT8","MAV_POWER_STATUS_BRICK_VALID","MAV_POWER_STATUS_CHANGED","MAV_POWER_STATUS_PERIPH_HIPOWER_OVERCURRENT","MAV_POWER_STATUS_PERIPH_OVERCURRENT","MAV_POWER_STATUS_SERVO_VALID","MAV_POWER_STATUS_USB_CONNECTED","MAV_PROTOCOL_CAPABILITY_COMMAND_INT","MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION","MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION","MAV_PROTOCOL_CAPABILITY_FTP","MAV_PROTOCOL_CAPABILITY_MAVLINK2","MAV_PROTOCOL_CAPABILITY_MISSION_FENCE","MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT","MAV_PROTOCOL_CAPABILITY_MISSION_INT","MAV_PROTOCOL_CAPABILITY_MISSION_RALLY","MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE","MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST","MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT","MAV_PROTOCOL_CAPABILITY_RESERVED2","MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET","MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET","MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT","MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED","MAV_PROTOCOL_CAPABILITY_TERRAIN","MAV_REMOTE_LOG_DATA_BLOCK_ACK","MAV_REMOTE_LOG_DATA_BLOCK_NACK","MAV_REMOTE_LOG_DATA_BLOCK_START","MAV_REMOTE_LOG_DATA_BLOCK_STOP","MAV_RESULT_ACCEPTED","MAV_RESULT_CANCELLED","MAV_RESULT_DENIED","MAV_RESULT_FAILED","MAV_RESULT_IN_PROGRESS","MAV_RESULT_TEMPORARILY_REJECTED","MAV_RESULT_UNSUPPORTED","MAV_ROI_LOCATION","MAV_ROI_NONE","MAV_ROI_TARGET","MAV_ROI_WPINDEX","MAV_ROI_WPNEXT","MAV_SENSOR_ROTATION_CUSTOM","MAV_SENSOR_ROTATION_NONE","MAV_SENSOR_ROTATION_PITCH_180","MAV_SENSOR_ROTATION_PITCH_180_YAW_270","MAV_SENSOR_ROTATION_PITCH_180_YAW_90","MAV_SENSOR_ROTATION_PITCH_270","MAV_SENSOR_ROTATION_PITCH_315","MAV_SENSOR_ROTATION_PITCH_90","MAV_SENSOR_ROTATION_ROLL_180","MAV_SENSOR_ROTATION_ROLL_180_PITCH_270","MAV_SENSOR_ROTATION_ROLL_180_PITCH_90","MAV_SENSOR_ROTATION_ROLL_180_YAW_135","MAV_SENSOR_ROTATION_ROLL_180_YAW_225","MAV_SENSOR_ROTATION_ROLL_180_YAW_270","MAV_SENSOR_ROTATION_ROLL_180_YAW_315","MAV_SENSOR_ROTATION_ROLL_180_YAW_45","MAV_SENSOR_ROTATION_ROLL_180_YAW_90","MAV_SENSOR_ROTATION_ROLL_270","MAV_SENSOR_ROTATION_ROLL_270_PITCH_180","MAV_SENSOR_ROTATION_ROLL_270_PITCH_270","MAV_SENSOR_ROTATION_ROLL_270_PITCH_90","MAV_SENSOR_ROTATION_ROLL_270_YAW_135","MAV_SENSOR_ROTATION_ROLL_270_YAW_45","MAV_SENSOR_ROTATION_ROLL_270_YAW_90","MAV_SENSOR_ROTATION_ROLL_90","MAV_SENSOR_ROTATION_ROLL_90_PITCH_180","MAV_SENSOR_ROTATION_ROLL_90_PITCH_180_YAW_90","MAV_SENSOR_ROTATION_ROLL_90_PITCH_270","MAV_SENSOR_ROTATION_ROLL_90_PITCH_315","MAV_SENSOR_ROTATION_ROLL_90_PITCH_68_YAW_293","MAV_SENSOR_ROTATION_ROLL_90_PITCH_90","MAV_SENSOR_ROTATION_ROLL_90_YAW_135","MAV_SENSOR_ROTATION_ROLL_90_YAW_270","MAV_SENSOR_ROTATION_ROLL_90_YAW_45","MAV_SENSOR_ROTATION_ROLL_90_YAW_90","MAV_SENSOR_ROTATION_YAW_135","MAV_SENSOR_ROTATION_YAW_180","MAV_SENSOR_ROTATION_YAW_225","MAV_SENSOR_ROTATION_YAW_270","MAV_SENSOR_ROTATION_YAW_315","MAV_SENSOR_ROTATION_YAW_45","MAV_SENSOR_ROTATION_YAW_90","MAV_SEVERITY_ALERT","MAV_SEVERITY_CRITICAL","MAV_SEVERITY_DEBUG","MAV_SEVERITY_EMERGENCY","MAV_SEVERITY_ERROR","MAV_SEVERITY_INFO","MAV_SEVERITY_NOTICE","MAV_SEVERITY_WARNING","MAV_STATE_ACTIVE","MAV_STATE_BOOT","MAV_STATE_CALIBRATING","MAV_STATE_CRITICAL","MAV_STATE_EMERGENCY","MAV_STATE_FLIGHT_TERMINATION","MAV_STATE_POWEROFF","MAV_STATE_STANDBY","MAV_STATE_UNINIT","MAV_SYS_STATUS_AHRS","MAV_SYS_STATUS_EXTENSION_USED","MAV_SYS_STATUS_GEOFENCE","MAV_SYS_STATUS_LOGGING","MAV_SYS_STATUS_OBSTACLE_AVOIDANCE","MAV_SYS_STATUS_PREARM_CHECK","MAV_SYS_STATUS_RECOVERY_SYSTEM","MAV_SYS_STATUS_REVERSE_MOTOR","MAV_SYS_STATUS_SENSOR_3D_ACCEL","MAV_SYS_STATUS_SENSOR_3D_ACCEL2","MAV_SYS_STATUS_SENSOR_3D_GYRO","MAV_SYS_STATUS_SENSOR_3D_GYRO2","MAV_SYS_STATUS_SENSOR_3D_MAG","MAV_SYS_STATUS_SENSOR_3D_MAG2","MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE","MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL","MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION","MAV_SYS_STATUS_SENSOR_BATTERY","MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE","MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH","MAV_SYS_STATUS_SENSOR_GPS","MAV_SYS_STATUS_SENSOR_LASER_POSITION","MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS","MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW","MAV_SYS_STATUS_SENSOR_PROPULSION","MAV_SYS_STATUS_SENSOR_PROXIMITY","MAV_SYS_STATUS_SENSOR_RC_RECEIVER","MAV_SYS_STATUS_SENSOR_SATCOM","MAV_SYS_STATUS_SENSOR_VISION_POSITION","MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL","MAV_SYS_STATUS_SENSOR_YAW_POSITION","MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL","MAV_SYS_STATUS_TERRAIN","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED0","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED1","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED2","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED3","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED4","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED5","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED6","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED7","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED8","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED9","MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN","MAV_TYPE_ADSB","MAV_TYPE_AIRSHIP","MAV_TYPE_ANTENNA_TRACKER","MAV_TYPE_BATTERY","MAV_TYPE_CAMERA","MAV_TYPE_CHARGING_STATION","MAV_TYPE_COAXIAL","MAV_TYPE_DECAROTOR","MAV_TYPE_DODECAROTOR","MAV_TYPE_FIXED_WING","MAV_TYPE_FLAPPING_WING","MAV_TYPE_FLARM","MAV_TYPE_FREE_BALLOON","MAV_TYPE_GCS","MAV_TYPE_GENERIC","MAV_TYPE_GIMBAL","MAV_TYPE_GPS","MAV_TYPE_GROUND_ROVER","MAV_TYPE_HELICOPTER","MAV_TYPE_HEXAROTOR","MAV_TYPE_IMU","MAV_TYPE_KITE","MAV_TYPE_LOG","MAV_TYPE_OCTOROTOR","MAV_TYPE_ODID","MAV_TYPE_ONBOARD_CONTROLLER","MAV_TYPE_OSD","MAV_TYPE_PARACHUTE","MAV_TYPE_PARAFOIL","MAV_TYPE_QUADROTOR","MAV_TYPE_ROCKET","MAV_TYPE_SERVO","MAV_TYPE_SUBMARINE","MAV_TYPE_SURFACE_BOAT","MAV_TYPE_TRICOPTER","MAV_TYPE_VTOL_FIXEDROTOR","MAV_TYPE_VTOL_RESERVED5","MAV_TYPE_VTOL_TAILSITTER","MAV_TYPE_VTOL_TAILSITTER_DUOROTOR","MAV_TYPE_VTOL_TAILSITTER_QUADROTOR","MAV_TYPE_VTOL_TILTROTOR","MAV_TYPE_VTOL_TILTWING","MAV_TYPE_WINCH","MAV_VTOL_STATE_FW","MAV_VTOL_STATE_MC","MAV_VTOL_STATE_TRANSITION_TO_FW","MAV_VTOL_STATE_TRANSITION_TO_MC","MAV_VTOL_STATE_UNDEFINED","MAV_WINCH_STATUS_ABANDON_LINE","MAV_WINCH_STATUS_ARRESTING","MAV_WINCH_STATUS_CLUTCH_ENGAGED","MAV_WINCH_STATUS_DROPPING","MAV_WINCH_STATUS_FULLY_RETRACTED","MAV_WINCH_STATUS_GROUND_SENSE","MAV_WINCH_STATUS_HEALTHY","MAV_WINCH_STATUS_LOAD_LINE","MAV_WINCH_STATUS_LOAD_PAYLOAD","MAV_WINCH_STATUS_LOCKED","MAV_WINCH_STATUS_LOCKING","MAV_WINCH_STATUS_MOVING","MAV_WINCH_STATUS_REDELIVER","MAV_WINCH_STATUS_RETRACTING","MCU_STATUS","MCU_STATUS_DATA","MCU_temperature","MCU_voltage","MCU_voltage_max","MCU_voltage_min","MEMINFO","MEMINFO_DATA","MEMORY_VECT","MEMORY_VECT_DATA","MESSAGE_INTERVAL","MESSAGE_INTERVAL_DATA","MISSION_ACK","MISSION_ACK_DATA","MISSION_CLEAR_ALL","MISSION_CLEAR_ALL_DATA","MISSION_COUNT","MISSION_COUNT_DATA","MISSION_CURRENT","MISSION_CURRENT_DATA","MISSION_ITEM","MISSION_ITEM_DATA","MISSION_ITEM_INT","MISSION_ITEM_INT_DATA","MISSION_ITEM_REACHED","MISSION_ITEM_REACHED_DATA","MISSION_READ_PERSISTENT","MISSION_REQUEST","MISSION_REQUEST_DATA","MISSION_REQUEST_INT","MISSION_REQUEST_INT_DATA","MISSION_REQUEST_LIST","MISSION_REQUEST_LIST_DATA","MISSION_REQUEST_PARTIAL_LIST","MISSION_REQUEST_PARTIAL_LIST_DATA","MISSION_RESET_DEFAULT","MISSION_SET_CURRENT","MISSION_SET_CURRENT_DATA","MISSION_STATE_ACTIVE","MISSION_STATE_COMPLETE","MISSION_STATE_NOT_STARTED","MISSION_STATE_NO_MISSION","MISSION_STATE_PAUSED","MISSION_STATE_UNKNOWN","MISSION_WRITE_PARTIAL_LIST","MISSION_WRITE_PARTIAL_LIST_DATA","MISSION_WRITE_PERSISTENT","MMSI","MOTOR_TEST_COMPASS_CAL","MOTOR_TEST_ORDER_BOARD","MOTOR_TEST_ORDER_DEFAULT","MOTOR_TEST_ORDER_SEQUENCE","MOTOR_TEST_THROTTLE_PERCENT","MOTOR_TEST_THROTTLE_PILOT","MOTOR_TEST_THROTTLE_PWM","MOUNT_CONFIGURE","MOUNT_CONFIGURE_DATA","MOUNT_CONTROL","MOUNT_CONTROL_DATA","MOUNT_ORIENTATION","MOUNT_ORIENTATION_DATA","MOUNT_STATUS","MOUNT_STATUS_DATA","MagCalStatus","MavArmAuthDeniedReason","MavAutopilot","MavBatteryChargeState","MavBatteryFault","MavBatteryFunction","MavBatteryMode","MavBatteryType","MavCmd","MavCmdAck","MavCmdDoAuxFunctionSwitchLevel","MavCollisionAction","MavCollisionSrc","MavCollisionThreatLevel","MavComponent","MavDataStream","MavDistanceSensor","MavDoRepositionFlags","MavEstimatorType","MavEventCurrentSequenceFlags","MavEventErrorReason","MavFrame","MavFtpErr","MavFtpOpcode","MavGeneratorStatusFlag","MavGoto","MavLandedState","MavMessage","MavMissionResult","MavMissionType","MavMode","MavModeFlag","MavModeFlagDecodePosition","MavModeGimbal","MavMountMode","MavOdidArmStatus","MavOdidAuthType","MavOdidCategoryEu","MavOdidClassEu","MavOdidClassificationType","MavOdidDescType","MavOdidHeightRef","MavOdidHorAcc","MavOdidIdType","MavOdidOperatorIdType","MavOdidOperatorLocationType","MavOdidSpeedAcc","MavOdidStatus","MavOdidTimeAcc","MavOdidUaType","MavOdidVerAcc","MavParamExtType","MavParamType","MavPowerStatus","MavProtocolCapability","MavRemoteLogDataBlockCommands","MavRemoteLogDataBlockStatuses","MavResult","MavRoi","MavSensorOrientation","MavSeverity","MavState","MavSysStatusSensor","MavSysStatusSensorExtended","MavTunnelPayloadType","MavType","MavVtolState","MavWinchStatusFlag","MavlinkDataStreamType","MissionState","MotorTestOrder","MotorTestThrottleType","NAMED_VALUE_FLOAT","NAMED_VALUE_FLOAT_DATA","NAMED_VALUE_INT","NAMED_VALUE_INT_DATA","NAV_CONTROLLER_OUTPUT","NAV_CONTROLLER_OUTPUT_DATA","NAV_VTOL_LAND_OPTIONS_DEFAULT","NAV_VTOL_LAND_OPTIONS_FW_DESCENT","NAV_VTOL_LAND_OPTIONS_HOVER_DESCENT","NavVtolLandOptions","OBSTACLE_DISTANCE","OBSTACLE_DISTANCE_3D","OBSTACLE_DISTANCE_3D_DATA","OBSTACLE_DISTANCE_DATA","ODOMETRY","ODOMETRY_DATA","ONBOARD_COMPUTER_STATUS","ONBOARD_COMPUTER_STATUS_DATA","OPEN_DRONE_ID_ARM_STATUS","OPEN_DRONE_ID_ARM_STATUS_DATA","OPEN_DRONE_ID_AUTHENTICATION","OPEN_DRONE_ID_AUTHENTICATION_DATA","OPEN_DRONE_ID_BASIC_ID","OPEN_DRONE_ID_BASIC_ID_DATA","OPEN_DRONE_ID_LOCATION","OPEN_DRONE_ID_LOCATION_DATA","OPEN_DRONE_ID_MESSAGE_PACK","OPEN_DRONE_ID_MESSAGE_PACK_DATA","OPEN_DRONE_ID_OPERATOR_ID","OPEN_DRONE_ID_OPERATOR_ID_DATA","OPEN_DRONE_ID_SELF_ID","OPEN_DRONE_ID_SELF_ID_DATA","OPEN_DRONE_ID_SYSTEM","OPEN_DRONE_ID_SYSTEM_DATA","OPEN_DRONE_ID_SYSTEM_UPDATE","OPEN_DRONE_ID_SYSTEM_UPDATE_DATA","OPTICAL_FLOW","OPTICAL_FLOW_DATA","OPTICAL_FLOW_RAD","OPTICAL_FLOW_RAD_DATA","ORBIT_EXECUTION_STATUS","ORBIT_EXECUTION_STATUS_DATA","ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE","ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER","ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING","ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED","ORBIT_YAW_BEHAVIOUR_UNCONTROLLED","OSD_PARAM_AUX_FUNCTION","OSD_PARAM_CONFIG","OSD_PARAM_CONFIG_DATA","OSD_PARAM_CONFIG_REPLY","OSD_PARAM_CONFIG_REPLY_DATA","OSD_PARAM_FAILSAFE_ACTION","OSD_PARAM_FAILSAFE_ACTION_1","OSD_PARAM_FAILSAFE_ACTION_2","OSD_PARAM_FLIGHT_MODE","OSD_PARAM_INVALID_PARAMETER","OSD_PARAM_INVALID_PARAMETER_INDEX","OSD_PARAM_INVALID_SCREEN","OSD_PARAM_NONE","OSD_PARAM_NUM_TYPES","OSD_PARAM_SERIAL_PROTOCOL","OSD_PARAM_SERVO_FUNCTION","OSD_PARAM_SHOW_CONFIG","OSD_PARAM_SHOW_CONFIG_DATA","OSD_PARAM_SHOW_CONFIG_REPLY","OSD_PARAM_SHOW_CONFIG_REPLY_DATA","OSD_PARAM_SUCCESS","OrbitYawBehaviour","OsdParamConfigError","OsdParamConfigType","P","PARACHUTE_DISABLE","PARACHUTE_ENABLE","PARACHUTE_RELEASE","PARAM_ACK_ACCEPTED","PARAM_ACK_FAILED","PARAM_ACK_IN_PROGRESS","PARAM_ACK_VALUE_UNSUPPORTED","PARAM_EXT_ACK","PARAM_EXT_ACK_DATA","PARAM_EXT_REQUEST_LIST","PARAM_EXT_REQUEST_LIST_DATA","PARAM_EXT_REQUEST_READ","PARAM_EXT_REQUEST_READ_DATA","PARAM_EXT_SET","PARAM_EXT_SET_DATA","PARAM_EXT_VALUE","PARAM_EXT_VALUE_DATA","PARAM_MAP_RC","PARAM_MAP_RC_DATA","PARAM_READ_PERSISTENT","PARAM_REQUEST_LIST","PARAM_REQUEST_LIST_DATA","PARAM_REQUEST_READ","PARAM_REQUEST_READ_DATA","PARAM_RESET_ALL_DEFAULT","PARAM_RESET_CONFIG_DEFAULT","PARAM_RESET_SENSOR_DEFAULT","PARAM_SET","PARAM_SET_DATA","PARAM_VALUE","PARAM_VALUE_DATA","PARAM_WRITE_PERSISTENT","PID_TUNING","PID_TUNING_ACCZ","PID_TUNING_DATA","PID_TUNING_LANDING","PID_TUNING_PITCH","PID_TUNING_ROLL","PID_TUNING_STEER","PID_TUNING_YAW","PING","PING_DATA","PLANE_MODE_ACRO","PLANE_MODE_AUTO","PLANE_MODE_AUTOTUNE","PLANE_MODE_AVOID_ADSB","PLANE_MODE_CIRCLE","PLANE_MODE_CRUISE","PLANE_MODE_FLY_BY_WIRE_A","PLANE_MODE_FLY_BY_WIRE_B","PLANE_MODE_GUIDED","PLANE_MODE_INITIALIZING","PLANE_MODE_LOITER","PLANE_MODE_MANUAL","PLANE_MODE_QACRO","PLANE_MODE_QAUTOTUNE","PLANE_MODE_QHOVER","PLANE_MODE_QLAND","PLANE_MODE_QLOITER","PLANE_MODE_QRTL","PLANE_MODE_QSTABILIZE","PLANE_MODE_RTL","PLANE_MODE_STABILIZE","PLANE_MODE_TAKEOFF","PLANE_MODE_THERMAL","PLANE_MODE_TRAINING","PLAY_TUNE","PLAY_TUNE_DATA","PLAY_TUNE_V2","PLAY_TUNE_V2_DATA","POSITION_TARGET_GLOBAL_INT","POSITION_TARGET_GLOBAL_INT_DATA","POSITION_TARGET_LOCAL_NED","POSITION_TARGET_LOCAL_NED_DATA","POSITION_TARGET_TYPEMASK_AX_IGNORE","POSITION_TARGET_TYPEMASK_AY_IGNORE","POSITION_TARGET_TYPEMASK_AZ_IGNORE","POSITION_TARGET_TYPEMASK_FORCE_SET","POSITION_TARGET_TYPEMASK_VX_IGNORE","POSITION_TARGET_TYPEMASK_VY_IGNORE","POSITION_TARGET_TYPEMASK_VZ_IGNORE","POSITION_TARGET_TYPEMASK_X_IGNORE","POSITION_TARGET_TYPEMASK_YAW_IGNORE","POSITION_TARGET_TYPEMASK_YAW_RATE_IGNORE","POSITION_TARGET_TYPEMASK_Y_IGNORE","POSITION_TARGET_TYPEMASK_Z_IGNORE","POWER_STATUS","POWER_STATUS_DATA","PRECISION_LAND_MODE_DISABLED","PRECISION_LAND_MODE_OPPORTUNISTIC","PRECISION_LAND_MODE_REQUIRED","PROTOCOL_VERSION","PROTOCOL_VERSION_DATA","ParachuteAction","ParamAck","Pax","Pby","Pcz","PidTuningAxis","PlaneMode","PositionTargetTypemask","PrecisionLandMode","PreflightStorageMissionAction","PreflightStorageParameterAction","RADIO","RADIO_DATA","RADIO_STATUS","RADIO_STATUS_DATA","RALLY_FETCH_POINT","RALLY_FETCH_POINT_DATA","RALLY_POINT","RALLY_POINT_DATA","RANGEFINDER","RANGEFINDER_DATA","RAW_IMU","RAW_IMU_DATA","RAW_PRESSURE","RAW_PRESSURE_DATA","RAW_RPM","RAW_RPM_DATA","RC_CHANNELS","RC_CHANNELS_DATA","RC_CHANNELS_OVERRIDE","RC_CHANNELS_OVERRIDE_DATA","RC_CHANNELS_RAW","RC_CHANNELS_RAW_DATA","RC_CHANNELS_SCALED","RC_CHANNELS_SCALED_DATA","RC_TYPE_SPEKTRUM_DSM2","RC_TYPE_SPEKTRUM_DSMX","REMOTE_LOG_BLOCK_STATUS","REMOTE_LOG_BLOCK_STATUS_DATA","REMOTE_LOG_DATA_BLOCK","REMOTE_LOG_DATA_BLOCK_DATA","REQUEST_DATA_STREAM","REQUEST_DATA_STREAM_DATA","REQUEST_EVENT","REQUEST_EVENT_DATA","RESOURCE_REQUEST","RESOURCE_REQUEST_DATA","RESPONSE_EVENT_ERROR","RESPONSE_EVENT_ERROR_DATA","ROVER_MODE_ACRO","ROVER_MODE_AUTO","ROVER_MODE_FOLLOW","ROVER_MODE_GUIDED","ROVER_MODE_HOLD","ROVER_MODE_INITIALIZING","ROVER_MODE_LOITER","ROVER_MODE_MANUAL","ROVER_MODE_RTL","ROVER_MODE_SIMPLE","ROVER_MODE_SMART_RTL","ROVER_MODE_STEERING","RPM","RPM_DATA","RTK_BASELINE_COORDINATE_SYSTEM_ECEF","RTK_BASELINE_COORDINATE_SYSTEM_NED","RallyFlags","RcType","RoverMode","RtkBaselineCoordinateSystem","SAFETY_ALLOWED_AREA","SAFETY_ALLOWED_AREA_DATA","SAFETY_SET_ALLOWED_AREA","SAFETY_SET_ALLOWED_AREA_DATA","SCALED_IMU","SCALED_IMU2","SCALED_IMU2_DATA","SCALED_IMU3","SCALED_IMU3_DATA","SCALED_IMU_DATA","SCALED_PRESSURE","SCALED_PRESSURE2","SCALED_PRESSURE2_DATA","SCALED_PRESSURE3","SCALED_PRESSURE3_DATA","SCALED_PRESSURE_DATA","SCRIPTING_CMD_REPL_START","SCRIPTING_CMD_REPL_STOP","SCRIPTING_CMD_STOP","SCRIPTING_CMD_STOP_AND_RESTART","SENSOR_OFFSETS","SENSOR_OFFSETS_DATA","SERIAL_CONTROL","SERIAL_CONTROL_DATA","SERIAL_CONTROL_DEV_GPS1","SERIAL_CONTROL_DEV_GPS2","SERIAL_CONTROL_DEV_SHELL","SERIAL_CONTROL_DEV_TELEM1","SERIAL_CONTROL_DEV_TELEM2","SERIAL_CONTROL_FLAG_BLOCKING","SERIAL_CONTROL_FLAG_EXCLUSIVE","SERIAL_CONTROL_FLAG_MULTI","SERIAL_CONTROL_FLAG_REPLY","SERIAL_CONTROL_FLAG_RESPOND","SERIAL_CONTROL_SERIAL0","SERIAL_CONTROL_SERIAL1","SERIAL_CONTROL_SERIAL2","SERIAL_CONTROL_SERIAL3","SERIAL_CONTROL_SERIAL4","SERIAL_CONTROL_SERIAL5","SERIAL_CONTROL_SERIAL6","SERIAL_CONTROL_SERIAL7","SERIAL_CONTROL_SERIAL8","SERIAL_CONTROL_SERIAL9","SERVO_OUTPUT_RAW","SERVO_OUTPUT_RAW_DATA","SETUP_SIGNING","SETUP_SIGNING_DATA","SET_ACTUATOR_CONTROL_TARGET","SET_ACTUATOR_CONTROL_TARGET_DATA","SET_ATTITUDE_TARGET","SET_ATTITUDE_TARGET_DATA","SET_GPS_GLOBAL_ORIGIN","SET_GPS_GLOBAL_ORIGIN_DATA","SET_HOME_POSITION","SET_HOME_POSITION_DATA","SET_MAG_OFFSETS","SET_MAG_OFFSETS_DATA","SET_MODE","SET_MODE_DATA","SET_POSITION_TARGET_GLOBAL_INT","SET_POSITION_TARGET_GLOBAL_INT_DATA","SET_POSITION_TARGET_LOCAL_NED","SET_POSITION_TARGET_LOCAL_NED_DATA","SIMSTATE","SIMSTATE_DATA","SIM_STATE","SIM_STATE_DATA","SMART_BATTERY_INFO","SMART_BATTERY_INFO_DATA","SPEED_TYPE_AIRSPEED","SPEED_TYPE_GROUNDSPEED","SSA","STATUSTEXT","STATUSTEXT_DATA","STORAGE_INFORMATION","STORAGE_INFORMATION_DATA","STORAGE_STATUS_EMPTY","STORAGE_STATUS_NOT_SUPPORTED","STORAGE_STATUS_READY","STORAGE_STATUS_UNFORMATTED","STORAGE_TYPE_CF","STORAGE_TYPE_CFE","STORAGE_TYPE_HD","STORAGE_TYPE_MICROSD","STORAGE_TYPE_OTHER","STORAGE_TYPE_SD","STORAGE_TYPE_UNKNOWN","STORAGE_TYPE_USB_STICK","STORAGE_TYPE_XQD","STORAGE_USAGE_FLAG_LOGS","STORAGE_USAGE_FLAG_PHOTO","STORAGE_USAGE_FLAG_SET","STORAGE_USAGE_FLAG_VIDEO","SUB_MODE_ACRO","SUB_MODE_ALT_HOLD","SUB_MODE_AUTO","SUB_MODE_CIRCLE","SUB_MODE_GUIDED","SUB_MODE_MANUAL","SUB_MODE_POSHOLD","SUB_MODE_STABILIZE","SUB_MODE_SURFACE","SUPPORTED_TUNES","SUPPORTED_TUNES_DATA","SYSTEM_TIME","SYSTEM_TIME_DATA","SYS_STATUS","SYS_STATUS_DATA","ScriptingCmd","SerialControlDev","SerialControlFlag","SetFocusType","SpeedType","StorageStatus","StorageType","StorageUsageFlag","SubMode","TERRAIN_CHECK","TERRAIN_CHECK_DATA","TERRAIN_DATA","TERRAIN_DATA_DATA","TERRAIN_REPORT","TERRAIN_REPORT_DATA","TERRAIN_REQUEST","TERRAIN_REQUEST_DATA","TIMESYNC","TIMESYNC_DATA","TIME_ESTIMATE_TO_TARGET","TIME_ESTIMATE_TO_TARGET_DATA","TRACKER_MODE_AUTO","TRACKER_MODE_INITIALIZING","TRACKER_MODE_MANUAL","TRACKER_MODE_SCAN","TRACKER_MODE_SERVO_TEST","TRACKER_MODE_STOP","TRAJECTORY_REPRESENTATION_BEZIER","TRAJECTORY_REPRESENTATION_BEZIER_DATA","TRAJECTORY_REPRESENTATION_WAYPOINTS","TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA","TUNE_FORMAT_MML_MODERN","TUNE_FORMAT_QBASIC1_1","TUNNEL","TUNNEL_DATA","TrackerMode","TuneFormat","UAVCAN_NODE_HEALTH_CRITICAL","UAVCAN_NODE_HEALTH_ERROR","UAVCAN_NODE_HEALTH_OK","UAVCAN_NODE_HEALTH_WARNING","UAVCAN_NODE_INFO","UAVCAN_NODE_INFO_DATA","UAVCAN_NODE_MODE_INITIALIZATION","UAVCAN_NODE_MODE_MAINTENANCE","UAVCAN_NODE_MODE_OFFLINE","UAVCAN_NODE_MODE_OPERATIONAL","UAVCAN_NODE_MODE_SOFTWARE_UPDATE","UAVCAN_NODE_STATUS","UAVCAN_NODE_STATUS_DATA","UAVIONIX_ADSB_OUT_CFG","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L15M_W23M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25M_W28P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25_34M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_33M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_38M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_39P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_45M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_45M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_52M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_59P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_67M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W72P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W80M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W80M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W90M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_NO_DATA","UAVIONIX_ADSB_OUT_CFG_DATA","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_2M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_4M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_6M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_NO_DATA","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_0M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_2M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_4M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_6M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_APPLIED_BY_SENSOR","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_NO_DATA","UAVIONIX_ADSB_OUT_DOWNED_AIRCRAFT_EMERGENCY","UAVIONIX_ADSB_OUT_DYNAMIC","UAVIONIX_ADSB_OUT_DYNAMIC_DATA","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_2D","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_3D","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_DGPS","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_0","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_1","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_RTK","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_AUTOPILOT_ENABLED","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_IDENT","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_NICBARO_CROSSCHECKED","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_ON_GROUND","UAVIONIX_ADSB_OUT_GENERAL_EMERGENCY","UAVIONIX_ADSB_OUT_LIFEGUARD_EMERGENCY","UAVIONIX_ADSB_OUT_MINIMUM_FUEL_EMERGENCY","UAVIONIX_ADSB_OUT_NO_COMM_EMERGENCY","UAVIONIX_ADSB_OUT_NO_EMERGENCY","UAVIONIX_ADSB_OUT_RESERVED","UAVIONIX_ADSB_OUT_RF_SELECT_RX_ENABLED","UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY","UAVIONIX_ADSB_OUT_RF_SELECT_TX_ENABLED","UAVIONIX_ADSB_OUT_UNLAWFUL_INTERFERANCE_EMERGENCY","UAVIONIX_ADSB_RF_HEALTH_FAIL_RX","UAVIONIX_ADSB_RF_HEALTH_FAIL_TX","UAVIONIX_ADSB_RF_HEALTH_INITIALIZING","UAVIONIX_ADSB_RF_HEALTH_OK","UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT","UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA","UNDER_WAY","UTM_DATA_AVAIL_FLAGS_ALTITUDE_AVAILABLE","UTM_DATA_AVAIL_FLAGS_HORIZONTAL_VELO_AVAILABLE","UTM_DATA_AVAIL_FLAGS_NEXT_WAYPOINT_AVAILABLE","UTM_DATA_AVAIL_FLAGS_POSITION_AVAILABLE","UTM_DATA_AVAIL_FLAGS_RELATIVE_ALTITUDE_AVAILABLE","UTM_DATA_AVAIL_FLAGS_TIME_VALID","UTM_DATA_AVAIL_FLAGS_UAS_ID_AVAILABLE","UTM_DATA_AVAIL_FLAGS_VERTICAL_VELO_AVAILABLE","UTM_FLIGHT_STATE_AIRBORNE","UTM_FLIGHT_STATE_EMERGENCY","UTM_FLIGHT_STATE_GROUND","UTM_FLIGHT_STATE_NOCTRL","UTM_FLIGHT_STATE_UNKNOWN","UTM_GLOBAL_POSITION","UTM_GLOBAL_POSITION_DATA","UavcanNodeHealth","UavcanNodeMode","UavionixAdsbEmergencyStatus","UavionixAdsbOutCfgAircraftSize","UavionixAdsbOutCfgGpsOffsetLat","UavionixAdsbOutCfgGpsOffsetLon","UavionixAdsbOutDynamicGpsFix","UavionixAdsbOutDynamicState","UavionixAdsbOutRfSelect","UavionixAdsbRfHealth","UtmDataAvailFlags","UtmFlightState","V2_EXTENSION","V2_EXTENSION_DATA","VFR_HUD","VFR_HUD_DATA","VIBRATION","VIBRATION_DATA","VICON_POSITION_ESTIMATE","VICON_POSITION_ESTIMATE_DATA","VIDEO_STREAM_INFORMATION","VIDEO_STREAM_INFORMATION_DATA","VIDEO_STREAM_STATUS","VIDEO_STREAM_STATUS_DATA","VIDEO_STREAM_STATUS_FLAGS_RUNNING","VIDEO_STREAM_STATUS_FLAGS_THERMAL","VIDEO_STREAM_TYPE_MPEG_TS_H264","VIDEO_STREAM_TYPE_RTPUDP","VIDEO_STREAM_TYPE_RTSP","VIDEO_STREAM_TYPE_TCP_MPEG","VISION_POSITION_DELTA","VISION_POSITION_DELTA_DATA","VISION_POSITION_ESTIMATE","VISION_POSITION_ESTIMATE_DATA","VISION_SPEED_ESTIMATE","VISION_SPEED_ESTIMATE_DATA","VTOL_TRANSITION_HEADING_ANY","VTOL_TRANSITION_HEADING_NEXT_WAYPOINT","VTOL_TRANSITION_HEADING_SPECIFIED","VTOL_TRANSITION_HEADING_TAKEOFF","VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT","Vcc","Vcc","VelEW","VideoStreamStatusFlags","VideoStreamType","Vservo","VtolTransitionHeading","WATER_DEPTH","WATER_DEPTH_DATA","WHEEL_DISTANCE","WHEEL_DISTANCE_DATA","WIFI_CONFIG_AP","WIFI_CONFIG_AP_DATA","WIFI_CONFIG_AP_MODE_AP","WIFI_CONFIG_AP_MODE_DISABLED","WIFI_CONFIG_AP_MODE_STATION","WIFI_CONFIG_AP_MODE_UNDEFINED","WIFI_CONFIG_AP_RESPONSE_ACCEPTED","WIFI_CONFIG_AP_RESPONSE_MODE_ERROR","WIFI_CONFIG_AP_RESPONSE_PASSWORD_ERROR","WIFI_CONFIG_AP_RESPONSE_REJECTED","WIFI_CONFIG_AP_RESPONSE_SSID_ERROR","WIFI_CONFIG_AP_RESPONSE_UNDEFINED","WINCH_ABANDON_LINE","WINCH_DELIVER","WINCH_HOLD","WINCH_LOAD_LINE","WINCH_LOAD_PAYLOAD","WINCH_LOCK","WINCH_RATE_CONTROL","WINCH_RELATIVE_LENGTH_CONTROL","WINCH_RELAXED","WINCH_RETRACT","WINCH_STATUS","WINCH_STATUS_DATA","WIND","WIND_COV","WIND_COV_DATA","WIND_DATA","WifiConfigApMode","WifiConfigApResponse","WinchActions","ZOOM_TYPE_CONTINUOUS","ZOOM_TYPE_FOCAL_LENGTH","ZOOM_TYPE_RANGE","ZOOM_TYPE_STEP","abs_pressure","abs_pressure","acc","acc_x","acc_y","acc_z","accel_cal_x","accel_cal_y","accel_cal_z","accel_weight","accuracy","accuracy","accuracyHor","accuracyVel","accuracyVert","achieved","achieved","ack","action","active","actuator","adc1","adc2","adc3","adc4","adc5","adc6","address","address","address","afx","afx","afx","afx","afy","afy","afy","afy","afz","afz","afz","afz","aircraftSize","airspeed","airspeed","airspeed","airspeed","airspeed_sp","airspeed_sp","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt_camera","alt_error","alt_image","alt_msl","alt_rel","altitude","altitude","altitude","altitude","altitude","altitude","altitude","altitude","altitude","altitude_amsl","altitude_amsl","altitude_barometric","altitude_geodetic","altitude_local","altitude_minimum_delta","altitude_monotonic","altitude_relative","altitude_sp","altitude_terrain","altitude_type","angle_delta","angle_x","angle_y","angular_velocity_x","angular_velocity_x","angular_velocity_x","angular_velocity_y","angular_velocity_y","angular_velocity_y","angular_velocity_z","angular_velocity_z","angular_velocity_z","aperture","apn","approach_x","approach_x","approach_y","approach_y","approach_z","approach_z","arc_entry_lat","arc_entry_lon","area_ceiling","area_count","area_floor","area_radius","arguments","arming_time_utc","array_id","aspd_error","attempt","attitude_q","attitude_quaternion","authentication_data","authentication_type","autocontinue","autocontinue","autocontinue","autopilot","autopilot","autosaved","aux1","aux2","aux3","aux4","available_capacity","available_capacity","ax","axis","axis","ay","az","az_torque_cmd","baroAltMSL","barometer_accuracy","barometric_pressure","base_mode","base_mode","base_mode","baseline_a_mm","baseline_a_mm","baseline_b_mm","baseline_b_mm","baseline_c_mm","baseline_c_mm","baseline_coords_type","baseline_coords_type","bat_current_setpoint","battery","battery_current","battery_function","battery_function","battery_remaining","battery_remaining","battery_remaining","baudrate","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitrate","bitrate","bitrate","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","board_version","body_pitch_rate","body_pitch_rate","body_roll_rate","body_roll_rate","body_yaw_rate","body_yaw_rate","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bottom_clearance","breach_count","breach_count","breach_status","breach_time","breach_type","break_alt","brkval","bus","bus","bus","bus","bus","bus_voltage","busname","busname","bustype","bustype","buttons","cal_mask","cal_mask","cal_status","cal_status","callsign","callsign","callsign","cam_definition_uri","cam_definition_version","cam_idx","cam_idx","camera_id","camera_id","cap_flags","cap_flags","capabilities","capacity_full","capacity_full_specification","capture_mode","capture_result","category_eu","chan10_raw","chan10_raw","chan11_raw","chan11_raw","chan12_raw","chan12_raw","chan13_raw","chan14_raw","chan15_raw","chan16_raw","chan17_raw","chan18_raw","chan1_raw","chan1_raw","chan1_raw","chan1_raw","chan1_scaled","chan2_raw","chan2_raw","chan2_raw","chan2_raw","chan2_scaled","chan3_raw","chan3_raw","chan3_raw","chan3_raw","chan3_scaled","chan4_raw","chan4_raw","chan4_raw","chan4_raw","chan4_scaled","chan5_raw","chan5_raw","chan5_raw","chan5_raw","chan5_scaled","chan6_raw","chan6_raw","chan6_raw","chan6_raw","chan6_scaled","chan7_raw","chan7_raw","chan7_raw","chan7_raw","chan7_scaled","chan8_raw","chan8_raw","chan8_raw","chan8_raw","chan8_scaled","chan9_raw","chan9_raw","chancount","charging_minimum_voltage","child_frame_id","class_eu","classification_type","climb","climb_rate","climb_rate","clipping_0","clipping_1","clipping_2","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmd_id","cmd_id","cmd_id","cmd_id","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cog","cog","cog","command","command","command","command","command","command","command","command_id","command_id","commanded_action","compass_id","compass_id","compass_variance","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","completion_mask","completion_pct","confidence","config_type","config_type","confirmation","connection_type","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","control_request","control_request","controls","controls","controls","coordinate_frame","coordinate_frame","coordinate_frame","coordinate_frame","count","count","count","count","count","count","count","count","count","count","count","count","count","count","count","counter","covariance","covariance","covariance","covariance","cpu_combined","cpu_cores","crc","cross_track_error","current","current","current","current","current","current","current","current","current","current_battery","current_battery","current_battery","current_consumed","current_distance","current_height","custom0","custom1","custom2","custom_bytes","custom_cap_flags","custom_len","custom_mode","custom_mode","custom_mode","custom_mode","custom_name","custom_state","cycle_count","cylinder_head_temperature","data","data","data","data","data","data","data","data","data","data","data","data","data","data","data","data","data","data_page","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default_message_from_id","delta","delta_angle_x","delta_angle_y","delta_angle_z","delta_time","delta_velocity_x","delta_velocity_y","delta_velocity_z","demanded_rate_x","demanded_rate_y","demanded_rate_z","description","description_type","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","desired","desired","destination_component","destination_system","device","device_name","dgps_age","dgps_numch","diag_x","diag_y","diag_z","diff_pressure","diff_pressure","diff_pressure","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","dimension_bow","dimension_port","dimension_starboard","dimension_stern","direction","direction","direction_x","direction_y","direction_z","discharge_minimum_voltage","dist","distance","distance","distance","distance","distance","distance","distances","drop_rate_comm","ecu_index","el_torque_cmd","emergencyStatus","emitterType","emitter_type","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","enable_lte","enable_pin","end","end_index","end_index","energy_consumed","engine_cut_off","engine_load","eph","eph","eph","eph","epv","epv","epv","epv","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","error","error","error_count","error_rp","error_yaw","errors_comm","errors_count1","errors_count2","errors_count3","errors_count4","est_capabilities","estimator_status","estimator_type","estimator_type","event_id","event_time_boot_ms","exhaust_gas_temperature","expected_travel_distance","exposure_type","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extra_crc","extra_param","extra_param","extra_value","extra_value","f","f_dot","failed_sessions","failsafe","failure_flags","failure_flags","failure_flags","failure_reason","fan_speed","feed_forward_angular_velocity_z","fields_updated","fields_updated","file_crc","file_url","firmware_version","firmware_version","first_message_offset","first_message_offset","first_sequence","fitness","fix_type","fix_type","fix_type","fix_type","fixed","fixed","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flight_custom_version","flight_state","flight_sw_version","flight_uuid","flow_comp_m_x","flow_comp_m_y","flow_x","flow_y","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","foc_len","focal_length","focus_lock","format","format","frame","frame","frame","frame","frame","frame","frame","frame","frame_id","framerate","framerate","framerate","freemem","frequency","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","fuel_consumed","fuel_flow","gcs_system_id","general_metadata_file_crc","general_metadata_uri","generator_speed","generator_temperature","gimbal_device_id","gimbal_device_id","gimbal_device_id","gimbal_device_id","gimbal_device_id","gpsAlt","gpsFix","gpsLat","gpsLon","gpsOffsetLat","gpsOffsetLon","gps_fix_type","gps_id","gps_nsat","gpu_combined","gpu_cores","grid_spacing","grid_spacing","gridbit","ground_distance","groundspeed","groundspeed","groundspeed","group_mlx","group_mlx","gyro_cal_x","gyro_cal_y","gyro_cal_z","h_acc","h_acc","hagl_ratio","hardware_version","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hdg","hdg","hdg_acc","hdop","heading","heading","heading","heading","heading","heading_sp","health","health","healthy","height","height","height_reference","hfov","hfov","hfov","hor_velocity","horiz_accuracy","horiz_accuracy","horizontal_accuracy","horizontal_minimum_delta","humidity","hw_unique_id","hw_version_major","hw_version_minor","iar_num_hypotheses","iar_num_hypotheses","id","id","id","id","id","id","id","id","id","id","id","id","id","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_type","ids","idx","idx","idx","idx","ignition_timing","ignore_flags","image_index","image_interval","image_status","img_idx","img_idx","increment","increment","increment","ind","ind_airspeed","index","index","index","info","initial_timestamp","injection_time","input_a","input_b","input_c","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","instance","intake_manifold_pressure","intake_manifold_temperature","integrated_x","integrated_x","integrated_xgyro","integrated_xgyro","integrated_y","integrated_y","integrated_ygyro","integrated_ygyro","integrated_zgyro","integrated_zgyro","integration_time_us","integration_time_us","interference","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","interval_us","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","iso","joint_az","joint_el","joint_roll","jpg_quality","key","lac","land","land_dir","landed_state","landed_state","landed_state","landing_lat","landing_lon","last_action","last_change_ms","last_clear","last_heartbeat","last_log_num","last_page_index","last_recovery","last_sequence","last_trigger","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat_camera","lat_image","lat_int","lat_int","latitude","latitude","latitude","latitude","latitude","latitude","latitude","len","len","len","len","len","len","len","len","length","length","length","lens_id","library_version_hash","limits_state","line_length","link_rx_max","link_rx_rate","link_tx_max","link_tx_rate","link_type","lng","lng","lng","lng","lng","lng","lng","load","load_current","loaded","log_levels","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon_camera","lon_image","lon_int","lon_int","longitude","longitude","longitude","longitude","longitude","longitude","longitude","mag_declination","mag_ofs_x","mag_ofs_x","mag_ofs_y","mag_ofs_y","mag_ofs_z","mag_ofs_z","mag_ratio","manual_override_switch","mask","mavlink_version","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","max1","max2","max3","max4","max5","max_distance","max_distance","max_distance","max_value","max_value","max_version","mcc","message_id","message_id","message_id_from_name","message_name","message_rate","message_type","messages","messages_lost","messages_received","messages_sent","middleware_custom_version","middleware_sw_version","min1","min2","min3","min4","min5","min_distance","min_distance","min_distance","min_value","min_value","min_version","mission_end","mission_next_item","mnc","mode","mode","mode","mode","mode_id","mode_switch","model_name","model_name","mods_enabled","mods_required","mods_triggered","mount_mode","msg_pack_size","name","name","name","name","name","name","name","nav_bearing","nav_mode","nav_pitch","nav_roll","navigational_status","new_pin","next_alt","next_lat","next_lon","noise","noise","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","nsats","nsats","numBands","numSats","num_ids","num_logs","obstacle_id","offdiag_x","offdiag_y","offdiag_z","offset","ofs","ofs","ofs_x","ofs_y","ofs_z","omega","omegaIx","omegaIy","omegaIz","omega_dot","on_off","onboard_control_sensors_enabled","onboard_control_sensors_health","onboard_control_sensors_present","operation","operator_altitude_geo","operator_altitude_geo","operator_id","operator_id_type","operator_latitude","operator_latitude","operator_location_type","operator_longitude","operator_longitude","orientation","os_custom_version","os_sw_version","osd_index","osd_index","osd_screen","osd_screen","p1","p1x","p1x","p1y","p1y","p1z","p1z","p2","p2x","p2x","p2y","p2y","p2z","p2z","p3","p4","packets","param1","param1","param1","param1","param2","param2","param2","param2","param3","param3","param3","param3","param4","param4","param4","param4","param5","param6","param7","param_count","param_count","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_index","param_index","param_index","param_index","param_index","param_result","param_type","param_type","param_type","param_type","param_type","param_value","param_value","param_value","param_value","param_value","param_value0","param_value_max","param_value_min","parameter_rc_channel_index","parse","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","passkey","password","path_lat","path_lon","pattern","payload","payload","payload","payload","payload_length","payload_type","pending","peripherals_metadata_file_crc","peripherals_metadata_uri","pin","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch_elevator","pitch_max","pitch_max","pitch_min","pitch_min","pitch_rate","pitch_rate","pitch_rate","pitchspeed","pitchspeed","pitchspeed","pitchspeed","pitchspeed","pitchspeed","point_x","point_y","pointing_a","pointing_b","pointing_c","port","port","port","pos_horiz_accuracy","pos_horiz_ratio","pos_horiz_variance","pos_variance","pos_vert_accuracy","pos_vert_ratio","pos_vert_variance","pos_x","pos_x","pos_y","pos_y","pos_yaw","pos_yaw","pos_z","pos_z","pose_covariance","position_cov","position_delta","power_generated","press_abs","press_abs","press_abs","press_abs","press_diff","press_diff","press_diff","press_diff1","press_diff2","pressure_alt","pressure_alt","primary_control_compid","primary_control_sysid","product_id","pt_compensation","puk","q","q","q","q","q","q","q","q","q","q","q","q","q","q","q1","q1","q2","q2","q3","q3","q4","q4","q_estimated_delay_us","quality","quality","quality","quality","r","radius","radius","ram_total","ram_usage","rates","ratio","raw_press","raw_temp","read_speed","reason","rec_bottom_x","rec_bottom_y","rec_top_x","rec_top_y","recording_time_ms","rectifier_temperature","regstart","regstart","regstart","relative_alt","relative_alt","relative_alt","relative_alt","remnoise","remnoise","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remrssi","remrssi","renorm_val","req_message_rate","req_stream_id","request_id","request_id","request_id","request_id","request_id","request_id","request_id","request_id","request_id","resolution_h","resolution_h","resolution_h","resolution_h","resolution_v","resolution_v","resolution_v","resolution_v","response","resting_minimum_voltage","result","result","result","result","result","rfHealth","rfSelect","ring_pending","rl_torque_cmd","roaming","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll_ailerons","roll_max","roll_max","roll_min","roll_min","roll_rate","rollspeed","rollspeed","rollspeed","rollspeed","rollspeed","rollspeed","rotation","rotation","rotation","rpm","rpm","rpm","rpm","rpm","rpm1","rpm2","rssi","rssi","rssi","rssi","rssi","rssi","rtk_health","rtk_health","rtk_rate","rtk_rate","rtk_receiver_id","rtk_receiver_id","runtime","rx_buf","rx_overflows","rx_parse_err","rx_rate","rx_session_pending","rxerrors","rxerrors","safe_return","satellite_azimuth","satellite_elevation","satellite_prn","satellite_snr","satellite_used","satellites_visible","satellites_visible","satellites_visible","satellites_visible","satellites_visible","save_position","scale","secondary_control_compid","secondary_control_sysid","secret_key","sensor_id","sensor_id","sensor_id","sensor_size_h","sensor_size_v","sensor_type","sensor_type","seq","seq","seq","seq","seq","seq","seq","seq","seq","seqno","seqno","seqnr","sequence","sequence","sequence","sequence","sequence","sequence","sequence_oldest_available","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","serial_number","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","servo1_raw","servo2_raw","servo3_raw","servo4_raw","servo5_raw","servo6_raw","servo7_raw","servo8_raw","session","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","severity","shot","shutter_speed","sigma","sigma_dot","signal_quality","single_message_size","size","size","size","size_x","size_y","spacing","spark_dwell_time","spec_version_hash","speed","speed","speed_accuracy","speed_accuracy","speed_horizontal","speed_vertical","speed_z","squawk","squawk","src","ssid","stab_pitch","stab_roll","stab_yaw","stage","stallSpeed","start","start_index","start_index","start_stop","state","state","state_x","state_y","state_z","status","status","status","status","status","status","status","status","status","status","status","status","std_dev_horz","std_dev_vert","storage","storage_count","storage_id","storage_total","storage_type","storage_usage","stream_id","stream_id","stream_id","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_mode","successful_sessions","sw_vcs_commit","sw_version_major","sw_version_minor","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","system_status","takeoff_time_utc","target","target_altitude","target_bearing","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_data","target_distance","target_heading","target_network","target_network","target_num","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","tas_ratio","tc1","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature_air","temperature_air","temperature_board","temperature_core","tension","terrain_alt_variance","terrain_height","text","theta","theta_dot","threat_level","throttle","throttle","throttle","throttle","throttle","throttle_out","throttle_position","thrust","thrust","thrust","time","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_us","time_delta_distance_us","time_delta_distance_us","time_delta_usec","time_last_baseline_ms","time_last_baseline_ms","time_to_minimum_delta","time_unix_usec","time_until_maintenance","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_utc","time_utc","time_week","time_week_ms","timeout","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp_accuracy","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","total_capacity","totalcurrent","totalcurrent","totalcurrent","tow","tow","tracking_mode","tracking_status","tracking_status","transfer_type","true_airspeed","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","ts1","tslc","tslc","tune","tune","turn_rate","tx_buf","tx_overflows","tx_rate","tx_session_pending","txbuf","txbuf","type1","type2","type3","type4","type5","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_mask","type_mask","type_mask","type_mask","type_mask","type_mask","u","ua_type","uas_id","uas_id","uid","uid","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","update_rate","uptime","uptime_sec","uptime_sec","uri","uri","uri","uri","uri_type","usec","usec","usec","usec","used_capacity","utcTime","v1","v2","v3","v4","v_acc","v_acc","v_estimated_delay_us","valid_points","valid_points","value","value","value","value","value","value","var_horiz","var_vert","vd","vd","vd","vdop","ve","ve","ve","vel","vel","vel","vel","velNS","velVert","vel_acc","vel_acc","vel_d","vel_e","vel_n","vel_ratio","vel_variance","vel_x","vel_y","vel_yaw","vel_z","velocity","velocity_covariance","velocity_variance","vendor_id","vendor_name","vendor_name","vendor_specific_status_code","ver","ver_velocity","version","version","vert_accuracy","vert_accuracy","vertical_accuracy","vfov","vibration_x","vibration_y","vibration_z","video_status","vn","vn","vn","voltage","voltage","voltage","voltage","voltage","voltage","voltage","voltage_battery","voltages","vtol_state","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","weight","width","wind_alt","wind_heading","wind_x","wind_y","wind_z","windspeed","wn","wn","wp_dist","wp_distance","wp_num","wp_num","write_speed","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x_acc","x_pos","x_vel","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xmag","xmag","xmag","xmag","xmag","xmag","xtrack_error","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y_acc","y_pos","y_vel","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw_max","yaw_max","yaw_min","yaw_min","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rudder","yawspeed","yawspeed","yawspeed","yawspeed","yawspeed","yawspeed","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ymag","ymag","ymag","ymag","ymag","ymag","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z_acc","z_pos","z_vel","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zmag","zmag","zmag","zmag","zmag","zmag","zoom_pos","zoom_step","Bytes","borrow","borrow_mut","from","get_array","get_bytes","get_f32_le","get_f64_le","get_i16_le","get_i24_le","get_i32_le","get_i64_le","get_i8","get_u16_le","get_u24_le","get_u32_le","get_u64_le","get_u8","into","new","remaining_bytes","try_from","try_into","type_id","BytesMut","borrow","borrow_mut","from","into","is_empty","len","new","put_f32_le","put_f64_le","put_i16_le","put_i24_le","put_i32_le","put_i64_le","put_i8","put_slice","put_u16_le","put_u24_le","put_u32_le","put_u64_le","put_u8","remaining","try_from","try_into","type_id","ACTUATOR_CONFIGURATION_3D_MODE_OFF","ACTUATOR_CONFIGURATION_3D_MODE_ON","ACTUATOR_CONFIGURATION_BEEP","ACTUATOR_CONFIGURATION_NONE","ACTUATOR_CONFIGURATION_SPIN_DIRECTION1","ACTUATOR_CONFIGURATION_SPIN_DIRECTION2","ACTUATOR_CONTROL_TARGET","ACTUATOR_CONTROL_TARGET_DATA","ACTUATOR_OUTPUT_FUNCTION_MOTOR1","ACTUATOR_OUTPUT_FUNCTION_MOTOR10","ACTUATOR_OUTPUT_FUNCTION_MOTOR11","ACTUATOR_OUTPUT_FUNCTION_MOTOR12","ACTUATOR_OUTPUT_FUNCTION_MOTOR13","ACTUATOR_OUTPUT_FUNCTION_MOTOR14","ACTUATOR_OUTPUT_FUNCTION_MOTOR15","ACTUATOR_OUTPUT_FUNCTION_MOTOR16","ACTUATOR_OUTPUT_FUNCTION_MOTOR2","ACTUATOR_OUTPUT_FUNCTION_MOTOR3","ACTUATOR_OUTPUT_FUNCTION_MOTOR4","ACTUATOR_OUTPUT_FUNCTION_MOTOR5","ACTUATOR_OUTPUT_FUNCTION_MOTOR6","ACTUATOR_OUTPUT_FUNCTION_MOTOR7","ACTUATOR_OUTPUT_FUNCTION_MOTOR8","ACTUATOR_OUTPUT_FUNCTION_MOTOR9","ACTUATOR_OUTPUT_FUNCTION_NONE","ACTUATOR_OUTPUT_FUNCTION_SERVO1","ACTUATOR_OUTPUT_FUNCTION_SERVO10","ACTUATOR_OUTPUT_FUNCTION_SERVO11","ACTUATOR_OUTPUT_FUNCTION_SERVO12","ACTUATOR_OUTPUT_FUNCTION_SERVO13","ACTUATOR_OUTPUT_FUNCTION_SERVO14","ACTUATOR_OUTPUT_FUNCTION_SERVO15","ACTUATOR_OUTPUT_FUNCTION_SERVO16","ACTUATOR_OUTPUT_FUNCTION_SERVO2","ACTUATOR_OUTPUT_FUNCTION_SERVO3","ACTUATOR_OUTPUT_FUNCTION_SERVO4","ACTUATOR_OUTPUT_FUNCTION_SERVO5","ACTUATOR_OUTPUT_FUNCTION_SERVO6","ACTUATOR_OUTPUT_FUNCTION_SERVO7","ACTUATOR_OUTPUT_FUNCTION_SERVO8","ACTUATOR_OUTPUT_FUNCTION_SERVO9","ACTUATOR_OUTPUT_STATUS","ACTUATOR_OUTPUT_STATUS_DATA","ADSB_ALTITUDE_TYPE_GEOMETRIC","ADSB_ALTITUDE_TYPE_PRESSURE_QNH","ADSB_EMITTER_TYPE_EMERGENCY_SURFACE","ADSB_EMITTER_TYPE_GLIDER","ADSB_EMITTER_TYPE_HEAVY","ADSB_EMITTER_TYPE_HIGHLY_MANUV","ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE","ADSB_EMITTER_TYPE_LARGE","ADSB_EMITTER_TYPE_LIGHT","ADSB_EMITTER_TYPE_LIGHTER_AIR","ADSB_EMITTER_TYPE_NO_INFO","ADSB_EMITTER_TYPE_PARACHUTE","ADSB_EMITTER_TYPE_POINT_OBSTACLE","ADSB_EMITTER_TYPE_ROTOCRAFT","ADSB_EMITTER_TYPE_SERVICE_SURFACE","ADSB_EMITTER_TYPE_SMALL","ADSB_EMITTER_TYPE_SPACE","ADSB_EMITTER_TYPE_UAV","ADSB_EMITTER_TYPE_ULTRA_LIGHT","ADSB_EMITTER_TYPE_UNASSGINED3","ADSB_EMITTER_TYPE_UNASSIGNED","ADSB_EMITTER_TYPE_UNASSIGNED2","ADSB_FLAGS_BARO_VALID","ADSB_FLAGS_SIMULATED","ADSB_FLAGS_SOURCE_UAT","ADSB_FLAGS_VALID_ALTITUDE","ADSB_FLAGS_VALID_CALLSIGN","ADSB_FLAGS_VALID_COORDS","ADSB_FLAGS_VALID_HEADING","ADSB_FLAGS_VALID_SQUAWK","ADSB_FLAGS_VALID_VELOCITY","ADSB_FLAGS_VERTICAL_VELOCITY_VALID","ADSB_VEHICLE","ADSB_VEHICLE_DATA","AIS_FLAGS_HIGH_VELOCITY","AIS_FLAGS_LARGE_BOW_DIMENSION","AIS_FLAGS_LARGE_PORT_DIMENSION","AIS_FLAGS_LARGE_STARBOARD_DIMENSION","AIS_FLAGS_LARGE_STERN_DIMENSION","AIS_FLAGS_POSITION_ACCURACY","AIS_FLAGS_TURN_RATE_SIGN_ONLY","AIS_FLAGS_VALID_CALLSIGN","AIS_FLAGS_VALID_COG","AIS_FLAGS_VALID_DIMENSIONS","AIS_FLAGS_VALID_NAME","AIS_FLAGS_VALID_TURN_RATE","AIS_FLAGS_VALID_VELOCITY","AIS_NAV_AGROUND","AIS_NAV_AIS_SART","AIS_NAV_ANCHORED","AIS_NAV_DRAUGHT_CONSTRAINED","AIS_NAV_FISHING","AIS_NAV_MOORED","AIS_NAV_RESERVED_1","AIS_NAV_RESERVED_2","AIS_NAV_RESERVED_3","AIS_NAV_RESERVED_HSC","AIS_NAV_RESERVED_WIG","AIS_NAV_RESTRICTED_MANOEUVERABILITY","AIS_NAV_SAILING","AIS_NAV_UNKNOWN","AIS_NAV_UN_COMMANDED","AIS_TYPE_ANTI_POLLUTION","AIS_TYPE_CARGO","AIS_TYPE_CARGO_HAZARDOUS_A","AIS_TYPE_CARGO_HAZARDOUS_B","AIS_TYPE_CARGO_HAZARDOUS_C","AIS_TYPE_CARGO_HAZARDOUS_D","AIS_TYPE_CARGO_RESERVED_1","AIS_TYPE_CARGO_RESERVED_2","AIS_TYPE_CARGO_RESERVED_3","AIS_TYPE_CARGO_RESERVED_4","AIS_TYPE_CARGO_UNKNOWN","AIS_TYPE_DIVING","AIS_TYPE_DREDGING","AIS_TYPE_FISHING","AIS_TYPE_HSC","AIS_TYPE_HSC_HAZARDOUS_A","AIS_TYPE_HSC_HAZARDOUS_B","AIS_TYPE_HSC_HAZARDOUS_C","AIS_TYPE_HSC_HAZARDOUS_D","AIS_TYPE_HSC_RESERVED_1","AIS_TYPE_HSC_RESERVED_2","AIS_TYPE_HSC_RESERVED_3","AIS_TYPE_HSC_RESERVED_4","AIS_TYPE_HSC_UNKNOWN","AIS_TYPE_LAW_ENFORCEMENT","AIS_TYPE_MEDICAL_TRANSPORT","AIS_TYPE_MILITARY","AIS_TYPE_NONECOMBATANT","AIS_TYPE_OTHER","AIS_TYPE_OTHER_HAZARDOUS_A","AIS_TYPE_OTHER_HAZARDOUS_B","AIS_TYPE_OTHER_HAZARDOUS_C","AIS_TYPE_OTHER_HAZARDOUS_D","AIS_TYPE_OTHER_RESERVED_1","AIS_TYPE_OTHER_RESERVED_2","AIS_TYPE_OTHER_RESERVED_3","AIS_TYPE_OTHER_RESERVED_4","AIS_TYPE_OTHER_UNKNOWN","AIS_TYPE_PASSENGER","AIS_TYPE_PASSENGER_HAZARDOUS_A","AIS_TYPE_PASSENGER_HAZARDOUS_B","AIS_TYPE_PASSENGER_HAZARDOUS_C","AIS_TYPE_PASSENGER_HAZARDOUS_D","AIS_TYPE_PASSENGER_RESERVED_1","AIS_TYPE_PASSENGER_RESERVED_2","AIS_TYPE_PASSENGER_RESERVED_3","AIS_TYPE_PASSENGER_RESERVED_4","AIS_TYPE_PASSENGER_UNKNOWN","AIS_TYPE_PILOT","AIS_TYPE_PLEASURE","AIS_TYPE_PORT_TENDER","AIS_TYPE_RESERVED_1","AIS_TYPE_RESERVED_10","AIS_TYPE_RESERVED_11","AIS_TYPE_RESERVED_12","AIS_TYPE_RESERVED_13","AIS_TYPE_RESERVED_14","AIS_TYPE_RESERVED_15","AIS_TYPE_RESERVED_16","AIS_TYPE_RESERVED_17","AIS_TYPE_RESERVED_18","AIS_TYPE_RESERVED_19","AIS_TYPE_RESERVED_2","AIS_TYPE_RESERVED_20","AIS_TYPE_RESERVED_21","AIS_TYPE_RESERVED_3","AIS_TYPE_RESERVED_4","AIS_TYPE_RESERVED_5","AIS_TYPE_RESERVED_6","AIS_TYPE_RESERVED_7","AIS_TYPE_RESERVED_8","AIS_TYPE_RESERVED_9","AIS_TYPE_SAILING","AIS_TYPE_SAR","AIS_TYPE_SPARE_LOCAL_1","AIS_TYPE_SPARE_LOCAL_2","AIS_TYPE_TANKER","AIS_TYPE_TANKER_HAZARDOUS_A","AIS_TYPE_TANKER_HAZARDOUS_B","AIS_TYPE_TANKER_HAZARDOUS_C","AIS_TYPE_TANKER_HAZARDOUS_D","AIS_TYPE_TANKER_RESERVED_1","AIS_TYPE_TANKER_RESERVED_2","AIS_TYPE_TANKER_RESERVED_3","AIS_TYPE_TANKER_RESERVED_4","AIS_TYPE_TANKER_UNKNOWN","AIS_TYPE_TOWING","AIS_TYPE_TOWING_LARGE","AIS_TYPE_TUG","AIS_TYPE_UNKNOWN","AIS_TYPE_WIG","AIS_TYPE_WIG_HAZARDOUS_A","AIS_TYPE_WIG_HAZARDOUS_B","AIS_TYPE_WIG_HAZARDOUS_C","AIS_TYPE_WIG_HAZARDOUS_D","AIS_TYPE_WIG_RESERVED_1","AIS_TYPE_WIG_RESERVED_2","AIS_TYPE_WIG_RESERVED_3","AIS_TYPE_WIG_RESERVED_4","AIS_TYPE_WIG_RESERVED_5","AIS_VESSEL","AIS_VESSEL_DATA","ALTITUDE","ALTITUDE_DATA","ATTITUDE","ATTITUDE_DATA","ATTITUDE_QUATERNION","ATTITUDE_QUATERNION_COV","ATTITUDE_QUATERNION_COV_DATA","ATTITUDE_QUATERNION_DATA","ATTITUDE_TARGET","ATTITUDE_TARGET_DATA","ATTITUDE_TARGET_TYPEMASK_ATTITUDE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_PITCH_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_YAW_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_THROTTLE_IGNORE","ATTITUDE_TARGET_TYPEMASK_THRUST_BODY_SET","ATT_POS_MOCAP","ATT_POS_MOCAP_DATA","AUTH_KEY","AUTH_KEY_DATA","AUTOPILOT_STATE_FOR_GIMBAL_DEVICE","AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA","AUTOPILOT_VERSION","AUTOPILOT_VERSION_DATA","AUTOTUNE_AXIS_DEFAULT","AUTOTUNE_AXIS_PITCH","AUTOTUNE_AXIS_ROLL","AUTOTUNE_AXIS_YAW","ActuatorConfiguration","ActuatorOutputFunction","AdsbAltitudeType","AdsbEmitterType","AdsbFlags","AisFlags","AisNavStatus","AisType","AttitudeTargetTypemask","AutotuneAxis","BATTERY_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION","BATTERY_STATUS","BATTERY_STATUS_DATA","BUTTON_CHANGE","BUTTON_CHANGE_DATA","CAMERA_CAPTURE_STATUS","CAMERA_CAPTURE_STATUS_DATA","CAMERA_CAP_FLAGS_CAN_CAPTURE_IMAGE_IN_VIDEO_MODE","CAMERA_CAP_FLAGS_CAN_CAPTURE_VIDEO_IN_IMAGE_MODE","CAMERA_CAP_FLAGS_CAPTURE_IMAGE","CAMERA_CAP_FLAGS_CAPTURE_VIDEO","CAMERA_CAP_FLAGS_HAS_BASIC_FOCUS","CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM","CAMERA_CAP_FLAGS_HAS_IMAGE_SURVEY_MODE","CAMERA_CAP_FLAGS_HAS_MODES","CAMERA_CAP_FLAGS_HAS_TRACKING_GEO_STATUS","CAMERA_CAP_FLAGS_HAS_TRACKING_POINT","CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE","CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM","CAMERA_FOV_STATUS","CAMERA_FOV_STATUS_DATA","CAMERA_IMAGE_CAPTURED","CAMERA_IMAGE_CAPTURED_DATA","CAMERA_INFORMATION","CAMERA_INFORMATION_DATA","CAMERA_MODE_IMAGE","CAMERA_MODE_IMAGE_SURVEY","CAMERA_MODE_VIDEO","CAMERA_SETTINGS","CAMERA_SETTINGS_DATA","CAMERA_TRACKING_GEO_STATUS","CAMERA_TRACKING_GEO_STATUS_DATA","CAMERA_TRACKING_IMAGE_STATUS","CAMERA_TRACKING_IMAGE_STATUS_DATA","CAMERA_TRACKING_MODE_NONE","CAMERA_TRACKING_MODE_POINT","CAMERA_TRACKING_MODE_RECTANGLE","CAMERA_TRACKING_STATUS_FLAGS_ACTIVE","CAMERA_TRACKING_STATUS_FLAGS_ERROR","CAMERA_TRACKING_STATUS_FLAGS_IDLE","CAMERA_TRACKING_TARGET_DATA_EMBEDDED","CAMERA_TRACKING_TARGET_DATA_IN_STATUS","CAMERA_TRACKING_TARGET_DATA_NONE","CAMERA_TRACKING_TARGET_DATA_RENDERED","CAMERA_TRIGGER","CAMERA_TRIGGER_DATA","CANFD_FRAME","CANFD_FRAME_DATA","CAN_FILTER_ADD","CAN_FILTER_MODIFY","CAN_FILTER_MODIFY_DATA","CAN_FILTER_REMOVE","CAN_FILTER_REPLACE","CAN_FRAME","CAN_FRAME_DATA","CELLULAR_CONFIG","CELLULAR_CONFIG_BLOCKED_PUK_REQUIRED","CELLULAR_CONFIG_DATA","CELLULAR_CONFIG_RESPONSE_ACCEPTED","CELLULAR_CONFIG_RESPONSE_APN_ERROR","CELLULAR_CONFIG_RESPONSE_PIN_ERROR","CELLULAR_CONFIG_RESPONSE_REJECTED","CELLULAR_NETWORK_FAILED_REASON_NONE","CELLULAR_NETWORK_FAILED_REASON_SIM_ERROR","CELLULAR_NETWORK_FAILED_REASON_SIM_MISSING","CELLULAR_NETWORK_FAILED_REASON_UNKNOWN","CELLULAR_NETWORK_RADIO_TYPE_CDMA","CELLULAR_NETWORK_RADIO_TYPE_GSM","CELLULAR_NETWORK_RADIO_TYPE_LTE","CELLULAR_NETWORK_RADIO_TYPE_NONE","CELLULAR_NETWORK_RADIO_TYPE_WCDMA","CELLULAR_STATUS","CELLULAR_STATUS_DATA","CELLULAR_STATUS_FLAG_CONNECTED","CELLULAR_STATUS_FLAG_CONNECTING","CELLULAR_STATUS_FLAG_DISABLED","CELLULAR_STATUS_FLAG_DISABLING","CELLULAR_STATUS_FLAG_DISCONNECTING","CELLULAR_STATUS_FLAG_ENABLED","CELLULAR_STATUS_FLAG_ENABLING","CELLULAR_STATUS_FLAG_FAILED","CELLULAR_STATUS_FLAG_INITIALIZING","CELLULAR_STATUS_FLAG_LOCKED","CELLULAR_STATUS_FLAG_REGISTERED","CELLULAR_STATUS_FLAG_SEARCHING","CELLULAR_STATUS_FLAG_UNKNOWN","CHANGE_OPERATOR_CONTROL","CHANGE_OPERATOR_CONTROL_ACK","CHANGE_OPERATOR_CONTROL_ACK_DATA","CHANGE_OPERATOR_CONTROL_DATA","COG","COLLISION","COLLISION_DATA","COMMAND_ACK","COMMAND_ACK_DATA","COMMAND_CANCEL","COMMAND_CANCEL_DATA","COMMAND_INT","COMMAND_INT_DATA","COMMAND_LONG","COMMAND_LONG_DATA","COMPONENT_INFORMATION","COMPONENT_INFORMATION_DATA","COMPONENT_METADATA","COMPONENT_METADATA_DATA","COMP_METADATA_TYPE_ACTUATORS","COMP_METADATA_TYPE_COMMANDS","COMP_METADATA_TYPE_EVENTS","COMP_METADATA_TYPE_GENERAL","COMP_METADATA_TYPE_PARAMETER","COMP_METADATA_TYPE_PERIPHERALS","CONTROL_SYSTEM_STATE","CONTROL_SYSTEM_STATE_DATA","CURRENT_EVENT_SEQUENCE","CURRENT_EVENT_SEQUENCE_DATA","CameraCapFlags","CameraMode","CameraTrackingMode","CameraTrackingStatusFlags","CameraTrackingTargetData","CameraZoomType","CanFilterOp","CellularConfigResponse","CellularNetworkFailedReason","CellularNetworkRadioType","CellularStatusFlag","CompMetadataType","DATA_STREAM","DATA_STREAM_DATA","DATA_TRANSMISSION_HANDSHAKE","DATA_TRANSMISSION_HANDSHAKE_DATA","DEBUG","DEBUG_DATA","DEBUG_FLOAT_ARRAY","DEBUG_FLOAT_ARRAY_DATA","DEBUG_VECT","DEBUG_VECT_DATA","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DISTANCE_SENSOR","DISTANCE_SENSOR_DATA","EFI_STATUS","EFI_STATUS_DATA","ENCAPSULATED_DATA","ENCAPSULATED_DATA_DATA","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ESC_CONNECTION_TYPE_CAN","ESC_CONNECTION_TYPE_DSHOT","ESC_CONNECTION_TYPE_I2C","ESC_CONNECTION_TYPE_ONESHOT","ESC_CONNECTION_TYPE_PPM","ESC_CONNECTION_TYPE_SERIAL","ESC_FAILURE_GENERIC","ESC_FAILURE_INCONSISTENT_CMD","ESC_FAILURE_MOTOR_STUCK","ESC_FAILURE_NONE","ESC_FAILURE_OVER_CURRENT","ESC_FAILURE_OVER_RPM","ESC_FAILURE_OVER_TEMPERATURE","ESC_FAILURE_OVER_VOLTAGE","ESC_INFO","ESC_INFO_DATA","ESC_STATUS","ESC_STATUS_DATA","ESTIMATOR_ACCEL_ERROR","ESTIMATOR_ATTITUDE","ESTIMATOR_CONST_POS_MODE","ESTIMATOR_GPS_GLITCH","ESTIMATOR_POS_HORIZ_ABS","ESTIMATOR_POS_HORIZ_REL","ESTIMATOR_POS_VERT_ABS","ESTIMATOR_POS_VERT_AGL","ESTIMATOR_PRED_POS_HORIZ_ABS","ESTIMATOR_PRED_POS_HORIZ_REL","ESTIMATOR_STATUS","ESTIMATOR_STATUS_DATA","ESTIMATOR_VELOCITY_HORIZ","ESTIMATOR_VELOCITY_VERT","EVENT","EVENT_DATA","EXTENDED_SYS_STATE","EXTENDED_SYS_STATE_DATA","EscConnectionType","EscFailureFlags","EstimatorStatusFlags","FAILURE_TYPE_DELAYED","FAILURE_TYPE_GARBAGE","FAILURE_TYPE_INTERMITTENT","FAILURE_TYPE_OFF","FAILURE_TYPE_OK","FAILURE_TYPE_SLOW","FAILURE_TYPE_STUCK","FAILURE_TYPE_WRONG","FAILURE_UNIT_SENSOR_ACCEL","FAILURE_UNIT_SENSOR_AIRSPEED","FAILURE_UNIT_SENSOR_BARO","FAILURE_UNIT_SENSOR_DISTANCE_SENSOR","FAILURE_UNIT_SENSOR_GPS","FAILURE_UNIT_SENSOR_GYRO","FAILURE_UNIT_SENSOR_MAG","FAILURE_UNIT_SENSOR_OPTICAL_FLOW","FAILURE_UNIT_SENSOR_VIO","FAILURE_UNIT_SYSTEM_AVOIDANCE","FAILURE_UNIT_SYSTEM_BATTERY","FAILURE_UNIT_SYSTEM_MAVLINK_SIGNAL","FAILURE_UNIT_SYSTEM_MOTOR","FAILURE_UNIT_SYSTEM_RC_SIGNAL","FAILURE_UNIT_SYSTEM_SERVO","FENCE_ACTION_GUIDED","FENCE_ACTION_GUIDED_THR_PASS","FENCE_ACTION_HOLD","FENCE_ACTION_LAND","FENCE_ACTION_NONE","FENCE_ACTION_REPORT","FENCE_ACTION_RTL","FENCE_ACTION_TERMINATE","FENCE_BREACH_BOUNDARY","FENCE_BREACH_MAXALT","FENCE_BREACH_MINALT","FENCE_BREACH_NONE","FENCE_MITIGATE_NONE","FENCE_MITIGATE_UNKNOWN","FENCE_MITIGATE_VEL_LIMIT","FENCE_STATUS","FENCE_STATUS_DATA","FILE_TRANSFER_PROTOCOL","FILE_TRANSFER_PROTOCOL_DATA","FIRMWARE_VERSION_TYPE_ALPHA","FIRMWARE_VERSION_TYPE_BETA","FIRMWARE_VERSION_TYPE_DEV","FIRMWARE_VERSION_TYPE_OFFICIAL","FIRMWARE_VERSION_TYPE_RC","FLIGHT_INFORMATION","FLIGHT_INFORMATION_DATA","FOCUS_TYPE_AUTO","FOCUS_TYPE_AUTO_CONTINUOUS","FOCUS_TYPE_AUTO_SINGLE","FOCUS_TYPE_CONTINUOUS","FOCUS_TYPE_METERS","FOCUS_TYPE_RANGE","FOCUS_TYPE_STEP","FOLLOW_TARGET","FOLLOW_TARGET_DATA","FailureType","FailureUnit","FenceAction","FenceBreach","FenceMitigate","FirmwareVersionType","GENERATOR_STATUS","GENERATOR_STATUS_DATA","GIMBAL_DEVICE_ATTITUDE_STATUS","GIMBAL_DEVICE_ATTITUDE_STATUS_DATA","GIMBAL_DEVICE_CAP_FLAGS_HAS_NEUTRAL","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_LOCK","GIMBAL_DEVICE_CAP_FLAGS_HAS_RC_INPUTS","GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_LOCK","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_LOCK","GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_INFINITE_YAW","GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_ERROR_FLAGS_AT_PITCH_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_AT_YAW_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_CALIBRATION_RUNNING","GIMBAL_DEVICE_ERROR_FLAGS_COMMS_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_ENCODER_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_MOTOR_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_NO_MANAGER","GIMBAL_DEVICE_ERROR_FLAGS_POWER_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_SOFTWARE_ERROR","GIMBAL_DEVICE_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_FLAGS_NEUTRAL","GIMBAL_DEVICE_FLAGS_PITCH_LOCK","GIMBAL_DEVICE_FLAGS_RC_EXCLUSIVE","GIMBAL_DEVICE_FLAGS_RC_MIXED","GIMBAL_DEVICE_FLAGS_RETRACT","GIMBAL_DEVICE_FLAGS_ROLL_LOCK","GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME","GIMBAL_DEVICE_FLAGS_YAW_LOCK","GIMBAL_DEVICE_INFORMATION","GIMBAL_DEVICE_INFORMATION_DATA","GIMBAL_DEVICE_SET_ATTITUDE","GIMBAL_DEVICE_SET_ATTITUDE_DATA","GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_GLOBAL","GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_LOCAL","GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_LOCK","GIMBAL_MANAGER_CAP_FLAGS_HAS_RC_INPUTS","GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_LOCK","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK","GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_INFINITE_YAW","GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_NEUTRAL","GIMBAL_MANAGER_FLAGS_PITCH_LOCK","GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE","GIMBAL_MANAGER_FLAGS_RC_MIXED","GIMBAL_MANAGER_FLAGS_RETRACT","GIMBAL_MANAGER_FLAGS_ROLL_LOCK","GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME","GIMBAL_MANAGER_FLAGS_YAW_LOCK","GIMBAL_MANAGER_INFORMATION","GIMBAL_MANAGER_INFORMATION_DATA","GIMBAL_MANAGER_SET_ATTITUDE","GIMBAL_MANAGER_SET_ATTITUDE_DATA","GIMBAL_MANAGER_SET_MANUAL_CONTROL","GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA","GIMBAL_MANAGER_SET_PITCHYAW","GIMBAL_MANAGER_SET_PITCHYAW_DATA","GIMBAL_MANAGER_STATUS","GIMBAL_MANAGER_STATUS_DATA","GLOBAL_POSITION_INT","GLOBAL_POSITION_INT_COV","GLOBAL_POSITION_INT_COV_DATA","GLOBAL_POSITION_INT_DATA","GLOBAL_VISION_POSITION_ESTIMATE","GLOBAL_VISION_POSITION_ESTIMATE_DATA","GPS2_RAW","GPS2_RAW_DATA","GPS2_RTK","GPS2_RTK_DATA","GPS_FIX_TYPE_2D_FIX","GPS_FIX_TYPE_3D_FIX","GPS_FIX_TYPE_DGPS","GPS_FIX_TYPE_NO_FIX","GPS_FIX_TYPE_NO_GPS","GPS_FIX_TYPE_PPP","GPS_FIX_TYPE_RTK_FIXED","GPS_FIX_TYPE_RTK_FLOAT","GPS_FIX_TYPE_STATIC","GPS_GLOBAL_ORIGIN","GPS_GLOBAL_ORIGIN_DATA","GPS_INJECT_DATA","GPS_INJECT_DATA_DATA","GPS_INPUT","GPS_INPUT_DATA","GPS_INPUT_IGNORE_FLAG_ALT","GPS_INPUT_IGNORE_FLAG_HDOP","GPS_INPUT_IGNORE_FLAG_HORIZONTAL_ACCURACY","GPS_INPUT_IGNORE_FLAG_SPEED_ACCURACY","GPS_INPUT_IGNORE_FLAG_VDOP","GPS_INPUT_IGNORE_FLAG_VEL_HORIZ","GPS_INPUT_IGNORE_FLAG_VEL_VERT","GPS_INPUT_IGNORE_FLAG_VERTICAL_ACCURACY","GPS_RAW_INT","GPS_RAW_INT_DATA","GPS_RTCM_DATA","GPS_RTCM_DATA_DATA","GPS_RTK","GPS_RTK_DATA","GPS_STATUS","GPS_STATUS_DATA","GRIPPER_ACTION_GRAB","GRIPPER_ACTION_RELEASE","GimbalDeviceCapFlags","GimbalDeviceErrorFlags","GimbalDeviceFlags","GimbalManagerCapFlags","GimbalManagerFlags","GpsFixType","GpsInputIgnoreFlags","GripperActions","HEARTBEAT","HEARTBEAT_DATA","HIGHRES_IMU","HIGHRES_IMU_DATA","HIGHRES_IMU_UPDATED_ABS_PRESSURE","HIGHRES_IMU_UPDATED_ALL","HIGHRES_IMU_UPDATED_DIFF_PRESSURE","HIGHRES_IMU_UPDATED_NONE","HIGHRES_IMU_UPDATED_PRESSURE_ALT","HIGHRES_IMU_UPDATED_TEMPERATURE","HIGHRES_IMU_UPDATED_XACC","HIGHRES_IMU_UPDATED_XGYRO","HIGHRES_IMU_UPDATED_XMAG","HIGHRES_IMU_UPDATED_YACC","HIGHRES_IMU_UPDATED_YGYRO","HIGHRES_IMU_UPDATED_YMAG","HIGHRES_IMU_UPDATED_ZACC","HIGHRES_IMU_UPDATED_ZGYRO","HIGHRES_IMU_UPDATED_ZMAG","HIGH_LATENCY","HIGH_LATENCY2","HIGH_LATENCY2_DATA","HIGH_LATENCY_DATA","HIL_ACTUATOR_CONTROLS","HIL_ACTUATOR_CONTROLS_DATA","HIL_CONTROLS","HIL_CONTROLS_DATA","HIL_GPS","HIL_GPS_DATA","HIL_OPTICAL_FLOW","HIL_OPTICAL_FLOW_DATA","HIL_RC_INPUTS_RAW","HIL_RC_INPUTS_RAW_DATA","HIL_SENSOR","HIL_SENSOR_DATA","HIL_SENSOR_UPDATED_ABS_PRESSURE","HIL_SENSOR_UPDATED_DIFF_PRESSURE","HIL_SENSOR_UPDATED_NONE","HIL_SENSOR_UPDATED_PRESSURE_ALT","HIL_SENSOR_UPDATED_RESET","HIL_SENSOR_UPDATED_TEMPERATURE","HIL_SENSOR_UPDATED_XACC","HIL_SENSOR_UPDATED_XGYRO","HIL_SENSOR_UPDATED_XMAG","HIL_SENSOR_UPDATED_YACC","HIL_SENSOR_UPDATED_YGYRO","HIL_SENSOR_UPDATED_YMAG","HIL_SENSOR_UPDATED_ZACC","HIL_SENSOR_UPDATED_ZGYRO","HIL_SENSOR_UPDATED_ZMAG","HIL_STATE","HIL_STATE_DATA","HIL_STATE_QUATERNION","HIL_STATE_QUATERNION_DATA","HL_FAILURE_FLAG_3D_ACCEL","HL_FAILURE_FLAG_3D_GYRO","HL_FAILURE_FLAG_3D_MAG","HL_FAILURE_FLAG_ABSOLUTE_PRESSURE","HL_FAILURE_FLAG_BATTERY","HL_FAILURE_FLAG_DIFFERENTIAL_PRESSURE","HL_FAILURE_FLAG_ENGINE","HL_FAILURE_FLAG_ESTIMATOR","HL_FAILURE_FLAG_GEOFENCE","HL_FAILURE_FLAG_GPS","HL_FAILURE_FLAG_MISSION","HL_FAILURE_FLAG_OFFBOARD_LINK","HL_FAILURE_FLAG_RC_RECEIVER","HL_FAILURE_FLAG_TERRAIN","HOME_POSITION","HOME_POSITION_DATA","HYGROMETER_SENSOR","HYGROMETER_SENSOR_DATA","HighresImuUpdatedFlags","HilSensorUpdatedFlags","HlFailureFlag","ICAO_address","ISBD_LINK_STATUS","ISBD_LINK_STATUS_DATA","LANDING_TARGET","LANDING_TARGET_DATA","LANDING_TARGET_TYPE_LIGHT_BEACON","LANDING_TARGET_TYPE_RADIO_BEACON","LANDING_TARGET_TYPE_VISION_FIDUCIAL","LANDING_TARGET_TYPE_VISION_OTHER","LINK_NODE_STATUS","LINK_NODE_STATUS_DATA","LOCAL_POSITION_NED","LOCAL_POSITION_NED_COV","LOCAL_POSITION_NED_COV_DATA","LOCAL_POSITION_NED_DATA","LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET","LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA","LOGGING_ACK","LOGGING_ACK_DATA","LOGGING_DATA","LOGGING_DATA_ACKED","LOGGING_DATA_ACKED_DATA","LOGGING_DATA_DATA","LOG_DATA","LOG_DATA_DATA","LOG_ENTRY","LOG_ENTRY_DATA","LOG_ERASE","LOG_ERASE_DATA","LOG_REQUEST_DATA","LOG_REQUEST_DATA_DATA","LOG_REQUEST_END","LOG_REQUEST_END_DATA","LOG_REQUEST_LIST","LOG_REQUEST_LIST_DATA","LandingTargetType","MAG_CAL_BAD_ORIENTATION","MAG_CAL_BAD_RADIUS","MAG_CAL_FAILED","MAG_CAL_NOT_STARTED","MAG_CAL_REPORT","MAG_CAL_REPORT_DATA","MAG_CAL_RUNNING_STEP_ONE","MAG_CAL_RUNNING_STEP_TWO","MAG_CAL_SUCCESS","MAG_CAL_WAITING_TO_START","MANUAL_CONTROL","MANUAL_CONTROL_DATA","MANUAL_SETPOINT","MANUAL_SETPOINT_DATA","MAVLINK_DATA_STREAM_IMG_BMP","MAVLINK_DATA_STREAM_IMG_JPEG","MAVLINK_DATA_STREAM_IMG_PGM","MAVLINK_DATA_STREAM_IMG_PNG","MAVLINK_DATA_STREAM_IMG_RAW32U","MAVLINK_DATA_STREAM_IMG_RAW8U","MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE","MAV_ARM_AUTH_DENIED_REASON_BAD_WEATHER","MAV_ARM_AUTH_DENIED_REASON_GENERIC","MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT","MAV_ARM_AUTH_DENIED_REASON_NONE","MAV_ARM_AUTH_DENIED_REASON_TIMEOUT","MAV_AUTOPILOT_AEROB","MAV_AUTOPILOT_AIRRAILS","MAV_AUTOPILOT_ARDUPILOTMEGA","MAV_AUTOPILOT_ARMAZILA","MAV_AUTOPILOT_ASLUAV","MAV_AUTOPILOT_AUTOQUAD","MAV_AUTOPILOT_FP","MAV_AUTOPILOT_GENERIC","MAV_AUTOPILOT_GENERIC_MISSION_FULL","MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY","MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY","MAV_AUTOPILOT_INVALID","MAV_AUTOPILOT_OPENPILOT","MAV_AUTOPILOT_PPZ","MAV_AUTOPILOT_PX4","MAV_AUTOPILOT_REFLEX","MAV_AUTOPILOT_RESERVED","MAV_AUTOPILOT_SLUGS","MAV_AUTOPILOT_SMACCMPILOT","MAV_AUTOPILOT_SMARTAP","MAV_AUTOPILOT_UDB","MAV_BATTERY_CHARGE_STATE_CHARGING","MAV_BATTERY_CHARGE_STATE_CRITICAL","MAV_BATTERY_CHARGE_STATE_EMERGENCY","MAV_BATTERY_CHARGE_STATE_FAILED","MAV_BATTERY_CHARGE_STATE_LOW","MAV_BATTERY_CHARGE_STATE_OK","MAV_BATTERY_CHARGE_STATE_UNDEFINED","MAV_BATTERY_CHARGE_STATE_UNHEALTHY","MAV_BATTERY_FAULT_CELL_FAIL","MAV_BATTERY_FAULT_DEEP_DISCHARGE","MAV_BATTERY_FAULT_INCOMPATIBLE_FIRMWARE","MAV_BATTERY_FAULT_INCOMPATIBLE_VOLTAGE","MAV_BATTERY_FAULT_OVER_CURRENT","MAV_BATTERY_FAULT_OVER_TEMPERATURE","MAV_BATTERY_FAULT_SPIKES","MAV_BATTERY_FAULT_UNDER_TEMPERATURE","MAV_BATTERY_FUNCTION_ALL","MAV_BATTERY_FUNCTION_AVIONICS","MAV_BATTERY_FUNCTION_PAYLOAD","MAV_BATTERY_FUNCTION_PROPULSION","MAV_BATTERY_FUNCTION_UNKNOWN","MAV_BATTERY_MODE_AUTO_DISCHARGING","MAV_BATTERY_MODE_HOT_SWAP","MAV_BATTERY_MODE_UNKNOWN","MAV_BATTERY_TYPE_LIFE","MAV_BATTERY_TYPE_LION","MAV_BATTERY_TYPE_LIPO","MAV_BATTERY_TYPE_NIMH","MAV_BATTERY_TYPE_UNKNOWN","MAV_CMD_ACK_ERR_ACCESS_DENIED","MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE","MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED","MAV_CMD_ACK_ERR_FAIL","MAV_CMD_ACK_ERR_NOT_SUPPORTED","MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE","MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE","MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE","MAV_CMD_ACK_OK","MAV_CMD_ACTUATOR_TEST","MAV_CMD_AIRFRAME_CONFIGURATION","MAV_CMD_ARM_AUTHORIZATION_REQUEST","MAV_CMD_CAMERA_STOP_TRACKING","MAV_CMD_CAMERA_TRACK_POINT","MAV_CMD_CAMERA_TRACK_RECTANGLE","MAV_CMD_CAN_FORWARD","MAV_CMD_COMPONENT_ARM_DISARM","MAV_CMD_CONDITION_CHANGE_ALT","MAV_CMD_CONDITION_DELAY","MAV_CMD_CONDITION_DISTANCE","MAV_CMD_CONDITION_GATE","MAV_CMD_CONDITION_LAST","MAV_CMD_CONDITION_YAW","MAV_CMD_CONFIGURE_ACTUATOR","MAV_CMD_CONTROL_HIGH_LATENCY","MAV_CMD_DO_ADSB_OUT_IDENT","MAV_CMD_DO_AUTOTUNE_ENABLE","MAV_CMD_DO_CHANGE_ALTITUDE","MAV_CMD_DO_CHANGE_SPEED","MAV_CMD_DO_CONTROL_VIDEO","MAV_CMD_DO_DIGICAM_CONFIGURE","MAV_CMD_DO_DIGICAM_CONTROL","MAV_CMD_DO_ENGINE_CONTROL","MAV_CMD_DO_FENCE_ENABLE","MAV_CMD_DO_FLIGHTTERMINATION","MAV_CMD_DO_FOLLOW","MAV_CMD_DO_FOLLOW_REPOSITION","MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE","MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW","MAV_CMD_DO_GO_AROUND","MAV_CMD_DO_GRIPPER","MAV_CMD_DO_GUIDED_LIMITS","MAV_CMD_DO_GUIDED_MASTER","MAV_CMD_DO_INVERTED_FLIGHT","MAV_CMD_DO_JUMP","MAV_CMD_DO_JUMP_TAG","MAV_CMD_DO_LAND_START","MAV_CMD_DO_LAST","MAV_CMD_DO_MOTOR_TEST","MAV_CMD_DO_MOUNT_CONFIGURE","MAV_CMD_DO_MOUNT_CONTROL","MAV_CMD_DO_MOUNT_CONTROL_QUAT","MAV_CMD_DO_ORBIT","MAV_CMD_DO_PARACHUTE","MAV_CMD_DO_PAUSE_CONTINUE","MAV_CMD_DO_RALLY_LAND","MAV_CMD_DO_REPEAT_RELAY","MAV_CMD_DO_REPEAT_SERVO","MAV_CMD_DO_REPOSITION","MAV_CMD_DO_SET_ACTUATOR","MAV_CMD_DO_SET_CAM_TRIGG_DIST","MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL","MAV_CMD_DO_SET_HOME","MAV_CMD_DO_SET_MISSION_CURRENT","MAV_CMD_DO_SET_MODE","MAV_CMD_DO_SET_PARAMETER","MAV_CMD_DO_SET_RELAY","MAV_CMD_DO_SET_REVERSE","MAV_CMD_DO_SET_ROI","MAV_CMD_DO_SET_ROI_LOCATION","MAV_CMD_DO_SET_ROI_NONE","MAV_CMD_DO_SET_ROI_SYSID","MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET","MAV_CMD_DO_SET_SERVO","MAV_CMD_DO_TRIGGER_CONTROL","MAV_CMD_DO_VTOL_TRANSITION","MAV_CMD_DO_WINCH","MAV_CMD_FIXED_MAG_CAL_YAW","MAV_CMD_GET_HOME_POSITION","MAV_CMD_GET_MESSAGE_INTERVAL","MAV_CMD_ILLUMINATOR_ON_OFF","MAV_CMD_IMAGE_START_CAPTURE","MAV_CMD_IMAGE_STOP_CAPTURE","MAV_CMD_INJECT_FAILURE","MAV_CMD_JUMP_TAG","MAV_CMD_LOGGING_START","MAV_CMD_LOGGING_STOP","MAV_CMD_MISSION_START","MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT","MAV_CMD_NAV_DELAY","MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION","MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION","MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION","MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION","MAV_CMD_NAV_FENCE_RETURN_POINT","MAV_CMD_NAV_FOLLOW","MAV_CMD_NAV_GUIDED_ENABLE","MAV_CMD_NAV_LAND","MAV_CMD_NAV_LAND_LOCAL","MAV_CMD_NAV_LAST","MAV_CMD_NAV_LOITER_TIME","MAV_CMD_NAV_LOITER_TO_ALT","MAV_CMD_NAV_LOITER_TURNS","MAV_CMD_NAV_LOITER_UNLIM","MAV_CMD_NAV_PATHPLANNING","MAV_CMD_NAV_PAYLOAD_PLACE","MAV_CMD_NAV_RALLY_POINT","MAV_CMD_NAV_RETURN_TO_LAUNCH","MAV_CMD_NAV_ROI","MAV_CMD_NAV_SET_YAW_SPEED","MAV_CMD_NAV_SPLINE_WAYPOINT","MAV_CMD_NAV_TAKEOFF","MAV_CMD_NAV_TAKEOFF_LOCAL","MAV_CMD_NAV_VTOL_LAND","MAV_CMD_NAV_VTOL_TAKEOFF","MAV_CMD_NAV_WAYPOINT","MAV_CMD_OBLIQUE_SURVEY","MAV_CMD_OVERRIDE_GOTO","MAV_CMD_PANORAMA_CREATE","MAV_CMD_PAYLOAD_CONTROL_DEPLOY","MAV_CMD_PAYLOAD_PREPARE_DEPLOY","MAV_CMD_PREFLIGHT_CALIBRATION","MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN","MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS","MAV_CMD_PREFLIGHT_STORAGE","MAV_CMD_PREFLIGHT_UAVCAN","MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES","MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS","MAV_CMD_REQUEST_CAMERA_IMAGE_CAPTURE","MAV_CMD_REQUEST_CAMERA_INFORMATION","MAV_CMD_REQUEST_CAMERA_SETTINGS","MAV_CMD_REQUEST_FLIGHT_INFORMATION","MAV_CMD_REQUEST_MESSAGE","MAV_CMD_REQUEST_PROTOCOL_VERSION","MAV_CMD_REQUEST_STORAGE_INFORMATION","MAV_CMD_REQUEST_VIDEO_STREAM_INFORMATION","MAV_CMD_REQUEST_VIDEO_STREAM_STATUS","MAV_CMD_RESET_CAMERA_SETTINGS","MAV_CMD_RUN_PREARM_CHECKS","MAV_CMD_SET_CAMERA_FOCUS","MAV_CMD_SET_CAMERA_MODE","MAV_CMD_SET_CAMERA_ZOOM","MAV_CMD_SET_GUIDED_SUBMODE_CIRCLE","MAV_CMD_SET_GUIDED_SUBMODE_STANDARD","MAV_CMD_SET_MESSAGE_INTERVAL","MAV_CMD_SET_STORAGE_USAGE","MAV_CMD_SPATIAL_USER_1","MAV_CMD_SPATIAL_USER_2","MAV_CMD_SPATIAL_USER_3","MAV_CMD_SPATIAL_USER_4","MAV_CMD_SPATIAL_USER_5","MAV_CMD_START_RX_PAIR","MAV_CMD_STORAGE_FORMAT","MAV_CMD_UAVCAN_GET_NODE_INFO","MAV_CMD_USER_1","MAV_CMD_USER_2","MAV_CMD_USER_3","MAV_CMD_USER_4","MAV_CMD_USER_5","MAV_CMD_VIDEO_START_CAPTURE","MAV_CMD_VIDEO_START_STREAMING","MAV_CMD_VIDEO_STOP_CAPTURE","MAV_CMD_VIDEO_STOP_STREAMING","MAV_CMD_WAYPOINT_USER_1","MAV_CMD_WAYPOINT_USER_2","MAV_CMD_WAYPOINT_USER_3","MAV_CMD_WAYPOINT_USER_4","MAV_CMD_WAYPOINT_USER_5","MAV_COLLISION_ACTION_ASCEND_OR_DESCEND","MAV_COLLISION_ACTION_HOVER","MAV_COLLISION_ACTION_MOVE_HORIZONTALLY","MAV_COLLISION_ACTION_MOVE_PERPENDICULAR","MAV_COLLISION_ACTION_NONE","MAV_COLLISION_ACTION_REPORT","MAV_COLLISION_ACTION_RTL","MAV_COLLISION_SRC_ADSB","MAV_COLLISION_SRC_MAVLINK_GPS_GLOBAL_INT","MAV_COLLISION_THREAT_LEVEL_HIGH","MAV_COLLISION_THREAT_LEVEL_LOW","MAV_COLLISION_THREAT_LEVEL_NONE","MAV_COMP_ID_ADSB","MAV_COMP_ID_ALL","MAV_COMP_ID_AUTOPILOT1","MAV_COMP_ID_BATTERY","MAV_COMP_ID_BATTERY2","MAV_COMP_ID_CAMERA","MAV_COMP_ID_CAMERA2","MAV_COMP_ID_CAMERA3","MAV_COMP_ID_CAMERA4","MAV_COMP_ID_CAMERA5","MAV_COMP_ID_CAMERA6","MAV_COMP_ID_FLARM","MAV_COMP_ID_GIMBAL","MAV_COMP_ID_GIMBAL2","MAV_COMP_ID_GIMBAL3","MAV_COMP_ID_GIMBAL4","MAV_COMP_ID_GIMBAL5","MAV_COMP_ID_GIMBAL6","MAV_COMP_ID_GPS","MAV_COMP_ID_GPS2","MAV_COMP_ID_IMU","MAV_COMP_ID_IMU_2","MAV_COMP_ID_IMU_3","MAV_COMP_ID_LOG","MAV_COMP_ID_MAVCAN","MAV_COMP_ID_MISSIONPLANNER","MAV_COMP_ID_OBSTACLE_AVOIDANCE","MAV_COMP_ID_ODID_TXRX_1","MAV_COMP_ID_ODID_TXRX_2","MAV_COMP_ID_ODID_TXRX_3","MAV_COMP_ID_ONBOARD_COMPUTER","MAV_COMP_ID_ONBOARD_COMPUTER2","MAV_COMP_ID_ONBOARD_COMPUTER3","MAV_COMP_ID_ONBOARD_COMPUTER4","MAV_COMP_ID_OSD","MAV_COMP_ID_PAIRING_MANAGER","MAV_COMP_ID_PARACHUTE","MAV_COMP_ID_PATHPLANNER","MAV_COMP_ID_PERIPHERAL","MAV_COMP_ID_QX1_GIMBAL","MAV_COMP_ID_SERVO1","MAV_COMP_ID_SERVO10","MAV_COMP_ID_SERVO11","MAV_COMP_ID_SERVO12","MAV_COMP_ID_SERVO13","MAV_COMP_ID_SERVO14","MAV_COMP_ID_SERVO2","MAV_COMP_ID_SERVO3","MAV_COMP_ID_SERVO4","MAV_COMP_ID_SERVO5","MAV_COMP_ID_SERVO6","MAV_COMP_ID_SERVO7","MAV_COMP_ID_SERVO8","MAV_COMP_ID_SERVO9","MAV_COMP_ID_SYSTEM_CONTROL","MAV_COMP_ID_TELEMETRY_RADIO","MAV_COMP_ID_TUNNEL_NODE","MAV_COMP_ID_UART_BRIDGE","MAV_COMP_ID_UDP_BRIDGE","MAV_COMP_ID_USER1","MAV_COMP_ID_USER10","MAV_COMP_ID_USER11","MAV_COMP_ID_USER12","MAV_COMP_ID_USER13","MAV_COMP_ID_USER14","MAV_COMP_ID_USER15","MAV_COMP_ID_USER16","MAV_COMP_ID_USER17","MAV_COMP_ID_USER18","MAV_COMP_ID_USER19","MAV_COMP_ID_USER2","MAV_COMP_ID_USER20","MAV_COMP_ID_USER21","MAV_COMP_ID_USER22","MAV_COMP_ID_USER23","MAV_COMP_ID_USER24","MAV_COMP_ID_USER25","MAV_COMP_ID_USER26","MAV_COMP_ID_USER27","MAV_COMP_ID_USER28","MAV_COMP_ID_USER29","MAV_COMP_ID_USER3","MAV_COMP_ID_USER30","MAV_COMP_ID_USER31","MAV_COMP_ID_USER32","MAV_COMP_ID_USER33","MAV_COMP_ID_USER34","MAV_COMP_ID_USER35","MAV_COMP_ID_USER36","MAV_COMP_ID_USER37","MAV_COMP_ID_USER38","MAV_COMP_ID_USER39","MAV_COMP_ID_USER4","MAV_COMP_ID_USER40","MAV_COMP_ID_USER41","MAV_COMP_ID_USER42","MAV_COMP_ID_USER43","MAV_COMP_ID_USER45","MAV_COMP_ID_USER46","MAV_COMP_ID_USER47","MAV_COMP_ID_USER48","MAV_COMP_ID_USER49","MAV_COMP_ID_USER5","MAV_COMP_ID_USER50","MAV_COMP_ID_USER51","MAV_COMP_ID_USER52","MAV_COMP_ID_USER53","MAV_COMP_ID_USER54","MAV_COMP_ID_USER55","MAV_COMP_ID_USER56","MAV_COMP_ID_USER57","MAV_COMP_ID_USER58","MAV_COMP_ID_USER59","MAV_COMP_ID_USER6","MAV_COMP_ID_USER60","MAV_COMP_ID_USER61","MAV_COMP_ID_USER62","MAV_COMP_ID_USER63","MAV_COMP_ID_USER64","MAV_COMP_ID_USER65","MAV_COMP_ID_USER66","MAV_COMP_ID_USER67","MAV_COMP_ID_USER68","MAV_COMP_ID_USER69","MAV_COMP_ID_USER7","MAV_COMP_ID_USER70","MAV_COMP_ID_USER71","MAV_COMP_ID_USER72","MAV_COMP_ID_USER73","MAV_COMP_ID_USER74","MAV_COMP_ID_USER75","MAV_COMP_ID_USER8","MAV_COMP_ID_USER9","MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY","MAV_COMP_ID_WINCH","MAV_DATA_STREAM_ALL","MAV_DATA_STREAM_EXTENDED_STATUS","MAV_DATA_STREAM_EXTRA1","MAV_DATA_STREAM_EXTRA2","MAV_DATA_STREAM_EXTRA3","MAV_DATA_STREAM_POSITION","MAV_DATA_STREAM_RAW_CONTROLLER","MAV_DATA_STREAM_RAW_SENSORS","MAV_DATA_STREAM_RC_CHANNELS","MAV_DISTANCE_SENSOR_INFRARED","MAV_DISTANCE_SENSOR_LASER","MAV_DISTANCE_SENSOR_RADAR","MAV_DISTANCE_SENSOR_ULTRASOUND","MAV_DISTANCE_SENSOR_UNKNOWN","MAV_DO_REPOSITION_FLAGS_CHANGE_MODE","MAV_ESTIMATOR_TYPE_AUTOPILOT","MAV_ESTIMATOR_TYPE_GPS","MAV_ESTIMATOR_TYPE_GPS_INS","MAV_ESTIMATOR_TYPE_LIDAR","MAV_ESTIMATOR_TYPE_MOCAP","MAV_ESTIMATOR_TYPE_NAIVE","MAV_ESTIMATOR_TYPE_UNKNOWN","MAV_ESTIMATOR_TYPE_VIO","MAV_ESTIMATOR_TYPE_VISION","MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET","MAV_EVENT_ERROR_REASON_UNAVAILABLE","MAV_FRAME_BODY_FRD","MAV_FRAME_BODY_NED","MAV_FRAME_BODY_OFFSET_NED","MAV_FRAME_GLOBAL","MAV_FRAME_GLOBAL_INT","MAV_FRAME_GLOBAL_RELATIVE_ALT","MAV_FRAME_GLOBAL_RELATIVE_ALT_INT","MAV_FRAME_GLOBAL_TERRAIN_ALT","MAV_FRAME_GLOBAL_TERRAIN_ALT_INT","MAV_FRAME_LOCAL_ENU","MAV_FRAME_LOCAL_FLU","MAV_FRAME_LOCAL_FRD","MAV_FRAME_LOCAL_NED","MAV_FRAME_LOCAL_OFFSET_NED","MAV_FRAME_MISSION","MAV_FRAME_RESERVED_13","MAV_FRAME_RESERVED_14","MAV_FRAME_RESERVED_15","MAV_FRAME_RESERVED_16","MAV_FRAME_RESERVED_17","MAV_FRAME_RESERVED_18","MAV_FRAME_RESERVED_19","MAV_FTP_ERR_EOF","MAV_FTP_ERR_FAIL","MAV_FTP_ERR_FAILERRNO","MAV_FTP_ERR_FILEEXISTS","MAV_FTP_ERR_FILENOTFOUND","MAV_FTP_ERR_FILEPROTECTED","MAV_FTP_ERR_INVALIDDATASIZE","MAV_FTP_ERR_INVALIDSESSION","MAV_FTP_ERR_NONE","MAV_FTP_ERR_NOSESSIONSAVAILABLE","MAV_FTP_ERR_UNKNOWNCOMMAND","MAV_FTP_OPCODE_ACK","MAV_FTP_OPCODE_BURSTREADFILE","MAV_FTP_OPCODE_CALCFILECRC","MAV_FTP_OPCODE_CREATEDIRECTORY","MAV_FTP_OPCODE_CREATEFILE","MAV_FTP_OPCODE_LISTDIRECTORY","MAV_FTP_OPCODE_NAK","MAV_FTP_OPCODE_NONE","MAV_FTP_OPCODE_OPENFILERO","MAV_FTP_OPCODE_OPENFILEWO","MAV_FTP_OPCODE_READFILE","MAV_FTP_OPCODE_REMOVEDIRECTORY","MAV_FTP_OPCODE_REMOVEFILE","MAV_FTP_OPCODE_RENAME","MAV_FTP_OPCODE_RESETSESSION","MAV_FTP_OPCODE_TERMINATESESSION","MAV_FTP_OPCODE_TRUNCATEFILE","MAV_FTP_OPCODE_WRITEFILE","MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT","MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT","MAV_GENERATOR_STATUS_FLAG_CHARGING","MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING","MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING","MAV_GENERATOR_STATUS_FLAG_GENERATING","MAV_GENERATOR_STATUS_FLAG_IDLE","MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED","MAV_GENERATOR_STATUS_FLAG_MAXPOWER","MAV_GENERATOR_STATUS_FLAG_OFF","MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT","MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT","MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING","MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT","MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT","MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT","MAV_GENERATOR_STATUS_FLAG_READY","MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER","MAV_GENERATOR_STATUS_FLAG_START_INHIBITED","MAV_GENERATOR_STATUS_FLAG_WARMING_UP","MAV_GOTO_DO_CONTINUE","MAV_GOTO_DO_HOLD","MAV_GOTO_HOLD_AT_CURRENT_POSITION","MAV_GOTO_HOLD_AT_SPECIFIED_POSITION","MAV_LANDED_STATE_IN_AIR","MAV_LANDED_STATE_LANDING","MAV_LANDED_STATE_ON_GROUND","MAV_LANDED_STATE_TAKEOFF","MAV_LANDED_STATE_UNDEFINED","MAV_MISSION_ACCEPTED","MAV_MISSION_DENIED","MAV_MISSION_ERROR","MAV_MISSION_INVALID","MAV_MISSION_INVALID_PARAM1","MAV_MISSION_INVALID_PARAM2","MAV_MISSION_INVALID_PARAM3","MAV_MISSION_INVALID_PARAM4","MAV_MISSION_INVALID_PARAM5_X","MAV_MISSION_INVALID_PARAM6_Y","MAV_MISSION_INVALID_PARAM7","MAV_MISSION_INVALID_SEQUENCE","MAV_MISSION_NO_SPACE","MAV_MISSION_OPERATION_CANCELLED","MAV_MISSION_TYPE_ALL","MAV_MISSION_TYPE_FENCE","MAV_MISSION_TYPE_MISSION","MAV_MISSION_TYPE_RALLY","MAV_MISSION_UNSUPPORTED","MAV_MISSION_UNSUPPORTED_FRAME","MAV_MODE_AUTO_ARMED","MAV_MODE_AUTO_DISARMED","MAV_MODE_FLAG_AUTO_ENABLED","MAV_MODE_FLAG_CUSTOM_MODE_ENABLED","MAV_MODE_FLAG_DECODE_POSITION_AUTO","MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE","MAV_MODE_FLAG_DECODE_POSITION_GUIDED","MAV_MODE_FLAG_DECODE_POSITION_HIL","MAV_MODE_FLAG_DECODE_POSITION_MANUAL","MAV_MODE_FLAG_DECODE_POSITION_SAFETY","MAV_MODE_FLAG_DECODE_POSITION_STABILIZE","MAV_MODE_FLAG_DECODE_POSITION_TEST","MAV_MODE_FLAG_GUIDED_ENABLED","MAV_MODE_FLAG_HIL_ENABLED","MAV_MODE_FLAG_MANUAL_INPUT_ENABLED","MAV_MODE_FLAG_SAFETY_ARMED","MAV_MODE_FLAG_STABILIZE_ENABLED","MAV_MODE_FLAG_TEST_ENABLED","MAV_MODE_GUIDED_ARMED","MAV_MODE_GUIDED_DISARMED","MAV_MODE_MANUAL_ARMED","MAV_MODE_MANUAL_DISARMED","MAV_MODE_PREFLIGHT","MAV_MODE_STABILIZE_ARMED","MAV_MODE_STABILIZE_DISARMED","MAV_MODE_TEST_ARMED","MAV_MODE_TEST_DISARMED","MAV_MOUNT_MODE_GPS_POINT","MAV_MOUNT_MODE_HOME_LOCATION","MAV_MOUNT_MODE_MAVLINK_TARGETING","MAV_MOUNT_MODE_NEUTRAL","MAV_MOUNT_MODE_RC_TARGETING","MAV_MOUNT_MODE_RETRACT","MAV_MOUNT_MODE_SYSID_TARGET","MAV_ODID_ARM_STATUS_GOOD_TO_ARM","MAV_ODID_ARM_STATUS_PRE_ARM_FAIL_GENERIC","MAV_ODID_AUTH_TYPE_MESSAGE_SET_SIGNATURE","MAV_ODID_AUTH_TYPE_NETWORK_REMOTE_ID","MAV_ODID_AUTH_TYPE_NONE","MAV_ODID_AUTH_TYPE_OPERATOR_ID_SIGNATURE","MAV_ODID_AUTH_TYPE_SPECIFIC_AUTHENTICATION","MAV_ODID_AUTH_TYPE_UAS_ID_SIGNATURE","MAV_ODID_CATEGORY_EU_CERTIFIED","MAV_ODID_CATEGORY_EU_OPEN","MAV_ODID_CATEGORY_EU_SPECIFIC","MAV_ODID_CATEGORY_EU_UNDECLARED","MAV_ODID_CLASSIFICATION_TYPE_EU","MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED","MAV_ODID_CLASS_EU_CLASS_0","MAV_ODID_CLASS_EU_CLASS_1","MAV_ODID_CLASS_EU_CLASS_2","MAV_ODID_CLASS_EU_CLASS_3","MAV_ODID_CLASS_EU_CLASS_4","MAV_ODID_CLASS_EU_CLASS_5","MAV_ODID_CLASS_EU_CLASS_6","MAV_ODID_CLASS_EU_UNDECLARED","MAV_ODID_DESC_TYPE_EMERGENCY","MAV_ODID_DESC_TYPE_EXTENDED_STATUS","MAV_ODID_DESC_TYPE_TEXT","MAV_ODID_HEIGHT_REF_OVER_GROUND","MAV_ODID_HEIGHT_REF_OVER_TAKEOFF","MAV_ODID_HOR_ACC_0_05NM","MAV_ODID_HOR_ACC_0_1NM","MAV_ODID_HOR_ACC_0_3NM","MAV_ODID_HOR_ACC_0_5NM","MAV_ODID_HOR_ACC_10NM","MAV_ODID_HOR_ACC_10_METER","MAV_ODID_HOR_ACC_1NM","MAV_ODID_HOR_ACC_1_METER","MAV_ODID_HOR_ACC_2NM","MAV_ODID_HOR_ACC_30_METER","MAV_ODID_HOR_ACC_3_METER","MAV_ODID_HOR_ACC_4NM","MAV_ODID_HOR_ACC_UNKNOWN","MAV_ODID_ID_TYPE_CAA_REGISTRATION_ID","MAV_ODID_ID_TYPE_NONE","MAV_ODID_ID_TYPE_SERIAL_NUMBER","MAV_ODID_ID_TYPE_SPECIFIC_SESSION_ID","MAV_ODID_ID_TYPE_UTM_ASSIGNED_UUID","MAV_ODID_OPERATOR_ID_TYPE_CAA","MAV_ODID_OPERATOR_LOCATION_TYPE_FIXED","MAV_ODID_OPERATOR_LOCATION_TYPE_LIVE_GNSS","MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF","MAV_ODID_SPEED_ACC_0_3_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_10_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_1_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_3_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_UNKNOWN","MAV_ODID_STATUS_AIRBORNE","MAV_ODID_STATUS_EMERGENCY","MAV_ODID_STATUS_GROUND","MAV_ODID_STATUS_REMOTE_ID_SYSTEM_FAILURE","MAV_ODID_STATUS_UNDECLARED","MAV_ODID_TIME_ACC_0_1_SECOND","MAV_ODID_TIME_ACC_0_2_SECOND","MAV_ODID_TIME_ACC_0_3_SECOND","MAV_ODID_TIME_ACC_0_4_SECOND","MAV_ODID_TIME_ACC_0_5_SECOND","MAV_ODID_TIME_ACC_0_6_SECOND","MAV_ODID_TIME_ACC_0_7_SECOND","MAV_ODID_TIME_ACC_0_8_SECOND","MAV_ODID_TIME_ACC_0_9_SECOND","MAV_ODID_TIME_ACC_1_0_SECOND","MAV_ODID_TIME_ACC_1_1_SECOND","MAV_ODID_TIME_ACC_1_2_SECOND","MAV_ODID_TIME_ACC_1_3_SECOND","MAV_ODID_TIME_ACC_1_4_SECOND","MAV_ODID_TIME_ACC_1_5_SECOND","MAV_ODID_TIME_ACC_UNKNOWN","MAV_ODID_UA_TYPE_AEROPLANE","MAV_ODID_UA_TYPE_AIRSHIP","MAV_ODID_UA_TYPE_CAPTIVE_BALLOON","MAV_ODID_UA_TYPE_FREE_BALLOON","MAV_ODID_UA_TYPE_FREE_FALL_PARACHUTE","MAV_ODID_UA_TYPE_GLIDER","MAV_ODID_UA_TYPE_GROUND_OBSTACLE","MAV_ODID_UA_TYPE_GYROPLANE","MAV_ODID_UA_TYPE_HELICOPTER_OR_MULTIROTOR","MAV_ODID_UA_TYPE_HYBRID_LIFT","MAV_ODID_UA_TYPE_KITE","MAV_ODID_UA_TYPE_NONE","MAV_ODID_UA_TYPE_ORNITHOPTER","MAV_ODID_UA_TYPE_OTHER","MAV_ODID_UA_TYPE_ROCKET","MAV_ODID_UA_TYPE_TETHERED_POWERED_AIRCRAFT","MAV_ODID_VER_ACC_10_METER","MAV_ODID_VER_ACC_150_METER","MAV_ODID_VER_ACC_1_METER","MAV_ODID_VER_ACC_25_METER","MAV_ODID_VER_ACC_3_METER","MAV_ODID_VER_ACC_45_METER","MAV_ODID_VER_ACC_UNKNOWN","MAV_PARAM_EXT_TYPE_CUSTOM","MAV_PARAM_EXT_TYPE_INT16","MAV_PARAM_EXT_TYPE_INT32","MAV_PARAM_EXT_TYPE_INT64","MAV_PARAM_EXT_TYPE_INT8","MAV_PARAM_EXT_TYPE_REAL32","MAV_PARAM_EXT_TYPE_REAL64","MAV_PARAM_EXT_TYPE_UINT16","MAV_PARAM_EXT_TYPE_UINT32","MAV_PARAM_EXT_TYPE_UINT64","MAV_PARAM_EXT_TYPE_UINT8","MAV_PARAM_TYPE_INT16","MAV_PARAM_TYPE_INT32","MAV_PARAM_TYPE_INT64","MAV_PARAM_TYPE_INT8","MAV_PARAM_TYPE_REAL32","MAV_PARAM_TYPE_REAL64","MAV_PARAM_TYPE_UINT16","MAV_PARAM_TYPE_UINT32","MAV_PARAM_TYPE_UINT64","MAV_PARAM_TYPE_UINT8","MAV_POWER_STATUS_BRICK_VALID","MAV_POWER_STATUS_CHANGED","MAV_POWER_STATUS_PERIPH_HIPOWER_OVERCURRENT","MAV_POWER_STATUS_PERIPH_OVERCURRENT","MAV_POWER_STATUS_SERVO_VALID","MAV_POWER_STATUS_USB_CONNECTED","MAV_PROTOCOL_CAPABILITY_COMMAND_INT","MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION","MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION","MAV_PROTOCOL_CAPABILITY_FTP","MAV_PROTOCOL_CAPABILITY_MAVLINK2","MAV_PROTOCOL_CAPABILITY_MISSION_FENCE","MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT","MAV_PROTOCOL_CAPABILITY_MISSION_INT","MAV_PROTOCOL_CAPABILITY_MISSION_RALLY","MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE","MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST","MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT","MAV_PROTOCOL_CAPABILITY_RESERVED2","MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET","MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET","MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT","MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED","MAV_PROTOCOL_CAPABILITY_TERRAIN","MAV_RESULT_ACCEPTED","MAV_RESULT_CANCELLED","MAV_RESULT_DENIED","MAV_RESULT_FAILED","MAV_RESULT_IN_PROGRESS","MAV_RESULT_TEMPORARILY_REJECTED","MAV_RESULT_UNSUPPORTED","MAV_ROI_LOCATION","MAV_ROI_NONE","MAV_ROI_TARGET","MAV_ROI_WPINDEX","MAV_ROI_WPNEXT","MAV_SENSOR_ROTATION_CUSTOM","MAV_SENSOR_ROTATION_NONE","MAV_SENSOR_ROTATION_PITCH_180","MAV_SENSOR_ROTATION_PITCH_180_YAW_270","MAV_SENSOR_ROTATION_PITCH_180_YAW_90","MAV_SENSOR_ROTATION_PITCH_270","MAV_SENSOR_ROTATION_PITCH_315","MAV_SENSOR_ROTATION_PITCH_90","MAV_SENSOR_ROTATION_ROLL_180","MAV_SENSOR_ROTATION_ROLL_180_PITCH_270","MAV_SENSOR_ROTATION_ROLL_180_PITCH_90","MAV_SENSOR_ROTATION_ROLL_180_YAW_135","MAV_SENSOR_ROTATION_ROLL_180_YAW_225","MAV_SENSOR_ROTATION_ROLL_180_YAW_270","MAV_SENSOR_ROTATION_ROLL_180_YAW_315","MAV_SENSOR_ROTATION_ROLL_180_YAW_45","MAV_SENSOR_ROTATION_ROLL_180_YAW_90","MAV_SENSOR_ROTATION_ROLL_270","MAV_SENSOR_ROTATION_ROLL_270_PITCH_180","MAV_SENSOR_ROTATION_ROLL_270_PITCH_270","MAV_SENSOR_ROTATION_ROLL_270_PITCH_90","MAV_SENSOR_ROTATION_ROLL_270_YAW_135","MAV_SENSOR_ROTATION_ROLL_270_YAW_45","MAV_SENSOR_ROTATION_ROLL_270_YAW_90","MAV_SENSOR_ROTATION_ROLL_90","MAV_SENSOR_ROTATION_ROLL_90_PITCH_180","MAV_SENSOR_ROTATION_ROLL_90_PITCH_180_YAW_90","MAV_SENSOR_ROTATION_ROLL_90_PITCH_270","MAV_SENSOR_ROTATION_ROLL_90_PITCH_315","MAV_SENSOR_ROTATION_ROLL_90_PITCH_68_YAW_293","MAV_SENSOR_ROTATION_ROLL_90_PITCH_90","MAV_SENSOR_ROTATION_ROLL_90_YAW_135","MAV_SENSOR_ROTATION_ROLL_90_YAW_270","MAV_SENSOR_ROTATION_ROLL_90_YAW_45","MAV_SENSOR_ROTATION_ROLL_90_YAW_90","MAV_SENSOR_ROTATION_YAW_135","MAV_SENSOR_ROTATION_YAW_180","MAV_SENSOR_ROTATION_YAW_225","MAV_SENSOR_ROTATION_YAW_270","MAV_SENSOR_ROTATION_YAW_315","MAV_SENSOR_ROTATION_YAW_45","MAV_SENSOR_ROTATION_YAW_90","MAV_SEVERITY_ALERT","MAV_SEVERITY_CRITICAL","MAV_SEVERITY_DEBUG","MAV_SEVERITY_EMERGENCY","MAV_SEVERITY_ERROR","MAV_SEVERITY_INFO","MAV_SEVERITY_NOTICE","MAV_SEVERITY_WARNING","MAV_STATE_ACTIVE","MAV_STATE_BOOT","MAV_STATE_CALIBRATING","MAV_STATE_CRITICAL","MAV_STATE_EMERGENCY","MAV_STATE_FLIGHT_TERMINATION","MAV_STATE_POWEROFF","MAV_STATE_STANDBY","MAV_STATE_UNINIT","MAV_SYS_STATUS_AHRS","MAV_SYS_STATUS_EXTENSION_USED","MAV_SYS_STATUS_GEOFENCE","MAV_SYS_STATUS_LOGGING","MAV_SYS_STATUS_OBSTACLE_AVOIDANCE","MAV_SYS_STATUS_PREARM_CHECK","MAV_SYS_STATUS_RECOVERY_SYSTEM","MAV_SYS_STATUS_REVERSE_MOTOR","MAV_SYS_STATUS_SENSOR_3D_ACCEL","MAV_SYS_STATUS_SENSOR_3D_ACCEL2","MAV_SYS_STATUS_SENSOR_3D_GYRO","MAV_SYS_STATUS_SENSOR_3D_GYRO2","MAV_SYS_STATUS_SENSOR_3D_MAG","MAV_SYS_STATUS_SENSOR_3D_MAG2","MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE","MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL","MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION","MAV_SYS_STATUS_SENSOR_BATTERY","MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE","MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH","MAV_SYS_STATUS_SENSOR_GPS","MAV_SYS_STATUS_SENSOR_LASER_POSITION","MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS","MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW","MAV_SYS_STATUS_SENSOR_PROPULSION","MAV_SYS_STATUS_SENSOR_PROXIMITY","MAV_SYS_STATUS_SENSOR_RC_RECEIVER","MAV_SYS_STATUS_SENSOR_SATCOM","MAV_SYS_STATUS_SENSOR_VISION_POSITION","MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL","MAV_SYS_STATUS_SENSOR_YAW_POSITION","MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL","MAV_SYS_STATUS_TERRAIN","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED0","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED1","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED2","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED3","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED4","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED5","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED6","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED7","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED8","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED9","MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN","MAV_TYPE_ADSB","MAV_TYPE_AIRSHIP","MAV_TYPE_ANTENNA_TRACKER","MAV_TYPE_BATTERY","MAV_TYPE_CAMERA","MAV_TYPE_CHARGING_STATION","MAV_TYPE_COAXIAL","MAV_TYPE_DECAROTOR","MAV_TYPE_DODECAROTOR","MAV_TYPE_FIXED_WING","MAV_TYPE_FLAPPING_WING","MAV_TYPE_FLARM","MAV_TYPE_FREE_BALLOON","MAV_TYPE_GCS","MAV_TYPE_GENERIC","MAV_TYPE_GIMBAL","MAV_TYPE_GPS","MAV_TYPE_GROUND_ROVER","MAV_TYPE_HELICOPTER","MAV_TYPE_HEXAROTOR","MAV_TYPE_IMU","MAV_TYPE_KITE","MAV_TYPE_LOG","MAV_TYPE_OCTOROTOR","MAV_TYPE_ODID","MAV_TYPE_ONBOARD_CONTROLLER","MAV_TYPE_OSD","MAV_TYPE_PARACHUTE","MAV_TYPE_PARAFOIL","MAV_TYPE_QUADROTOR","MAV_TYPE_ROCKET","MAV_TYPE_SERVO","MAV_TYPE_SUBMARINE","MAV_TYPE_SURFACE_BOAT","MAV_TYPE_TRICOPTER","MAV_TYPE_VTOL_FIXEDROTOR","MAV_TYPE_VTOL_RESERVED5","MAV_TYPE_VTOL_TAILSITTER","MAV_TYPE_VTOL_TAILSITTER_DUOROTOR","MAV_TYPE_VTOL_TAILSITTER_QUADROTOR","MAV_TYPE_VTOL_TILTROTOR","MAV_TYPE_VTOL_TILTWING","MAV_TYPE_WINCH","MAV_VTOL_STATE_FW","MAV_VTOL_STATE_MC","MAV_VTOL_STATE_TRANSITION_TO_FW","MAV_VTOL_STATE_TRANSITION_TO_MC","MAV_VTOL_STATE_UNDEFINED","MAV_WINCH_STATUS_ABANDON_LINE","MAV_WINCH_STATUS_ARRESTING","MAV_WINCH_STATUS_CLUTCH_ENGAGED","MAV_WINCH_STATUS_DROPPING","MAV_WINCH_STATUS_FULLY_RETRACTED","MAV_WINCH_STATUS_GROUND_SENSE","MAV_WINCH_STATUS_HEALTHY","MAV_WINCH_STATUS_LOAD_LINE","MAV_WINCH_STATUS_LOAD_PAYLOAD","MAV_WINCH_STATUS_LOCKED","MAV_WINCH_STATUS_LOCKING","MAV_WINCH_STATUS_MOVING","MAV_WINCH_STATUS_REDELIVER","MAV_WINCH_STATUS_RETRACTING","MEMORY_VECT","MEMORY_VECT_DATA","MESSAGE_INTERVAL","MESSAGE_INTERVAL_DATA","MISSION_ACK","MISSION_ACK_DATA","MISSION_CLEAR_ALL","MISSION_CLEAR_ALL_DATA","MISSION_COUNT","MISSION_COUNT_DATA","MISSION_CURRENT","MISSION_CURRENT_DATA","MISSION_ITEM","MISSION_ITEM_DATA","MISSION_ITEM_INT","MISSION_ITEM_INT_DATA","MISSION_ITEM_REACHED","MISSION_ITEM_REACHED_DATA","MISSION_READ_PERSISTENT","MISSION_REQUEST","MISSION_REQUEST_DATA","MISSION_REQUEST_INT","MISSION_REQUEST_INT_DATA","MISSION_REQUEST_LIST","MISSION_REQUEST_LIST_DATA","MISSION_REQUEST_PARTIAL_LIST","MISSION_REQUEST_PARTIAL_LIST_DATA","MISSION_RESET_DEFAULT","MISSION_SET_CURRENT","MISSION_SET_CURRENT_DATA","MISSION_STATE_ACTIVE","MISSION_STATE_COMPLETE","MISSION_STATE_NOT_STARTED","MISSION_STATE_NO_MISSION","MISSION_STATE_PAUSED","MISSION_STATE_UNKNOWN","MISSION_WRITE_PARTIAL_LIST","MISSION_WRITE_PARTIAL_LIST_DATA","MISSION_WRITE_PERSISTENT","MMSI","MOTOR_TEST_COMPASS_CAL","MOTOR_TEST_ORDER_BOARD","MOTOR_TEST_ORDER_DEFAULT","MOTOR_TEST_ORDER_SEQUENCE","MOTOR_TEST_THROTTLE_PERCENT","MOTOR_TEST_THROTTLE_PILOT","MOTOR_TEST_THROTTLE_PWM","MOUNT_ORIENTATION","MOUNT_ORIENTATION_DATA","MagCalStatus","MavArmAuthDeniedReason","MavAutopilot","MavBatteryChargeState","MavBatteryFault","MavBatteryFunction","MavBatteryMode","MavBatteryType","MavCmd","MavCmdAck","MavCollisionAction","MavCollisionSrc","MavCollisionThreatLevel","MavComponent","MavDataStream","MavDistanceSensor","MavDoRepositionFlags","MavEstimatorType","MavEventCurrentSequenceFlags","MavEventErrorReason","MavFrame","MavFtpErr","MavFtpOpcode","MavGeneratorStatusFlag","MavGoto","MavLandedState","MavMessage","MavMissionResult","MavMissionType","MavMode","MavModeFlag","MavModeFlagDecodePosition","MavMountMode","MavOdidArmStatus","MavOdidAuthType","MavOdidCategoryEu","MavOdidClassEu","MavOdidClassificationType","MavOdidDescType","MavOdidHeightRef","MavOdidHorAcc","MavOdidIdType","MavOdidOperatorIdType","MavOdidOperatorLocationType","MavOdidSpeedAcc","MavOdidStatus","MavOdidTimeAcc","MavOdidUaType","MavOdidVerAcc","MavParamExtType","MavParamType","MavPowerStatus","MavProtocolCapability","MavResult","MavRoi","MavSensorOrientation","MavSeverity","MavState","MavSysStatusSensor","MavSysStatusSensorExtended","MavTunnelPayloadType","MavType","MavVtolState","MavWinchStatusFlag","MavlinkDataStreamType","MissionState","MotorTestOrder","MotorTestThrottleType","NAMED_VALUE_FLOAT","NAMED_VALUE_FLOAT_DATA","NAMED_VALUE_INT","NAMED_VALUE_INT_DATA","NAV_CONTROLLER_OUTPUT","NAV_CONTROLLER_OUTPUT_DATA","NAV_VTOL_LAND_OPTIONS_DEFAULT","NAV_VTOL_LAND_OPTIONS_FW_DESCENT","NAV_VTOL_LAND_OPTIONS_HOVER_DESCENT","NavVtolLandOptions","OBSTACLE_DISTANCE","OBSTACLE_DISTANCE_DATA","ODOMETRY","ODOMETRY_DATA","ONBOARD_COMPUTER_STATUS","ONBOARD_COMPUTER_STATUS_DATA","OPEN_DRONE_ID_ARM_STATUS","OPEN_DRONE_ID_ARM_STATUS_DATA","OPEN_DRONE_ID_AUTHENTICATION","OPEN_DRONE_ID_AUTHENTICATION_DATA","OPEN_DRONE_ID_BASIC_ID","OPEN_DRONE_ID_BASIC_ID_DATA","OPEN_DRONE_ID_LOCATION","OPEN_DRONE_ID_LOCATION_DATA","OPEN_DRONE_ID_MESSAGE_PACK","OPEN_DRONE_ID_MESSAGE_PACK_DATA","OPEN_DRONE_ID_OPERATOR_ID","OPEN_DRONE_ID_OPERATOR_ID_DATA","OPEN_DRONE_ID_SELF_ID","OPEN_DRONE_ID_SELF_ID_DATA","OPEN_DRONE_ID_SYSTEM","OPEN_DRONE_ID_SYSTEM_DATA","OPEN_DRONE_ID_SYSTEM_UPDATE","OPEN_DRONE_ID_SYSTEM_UPDATE_DATA","OPTICAL_FLOW","OPTICAL_FLOW_DATA","OPTICAL_FLOW_RAD","OPTICAL_FLOW_RAD_DATA","ORBIT_EXECUTION_STATUS","ORBIT_EXECUTION_STATUS_DATA","ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE","ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER","ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING","ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED","ORBIT_YAW_BEHAVIOUR_UNCONTROLLED","OrbitYawBehaviour","PARACHUTE_DISABLE","PARACHUTE_ENABLE","PARACHUTE_RELEASE","PARAM_ACK_ACCEPTED","PARAM_ACK_FAILED","PARAM_ACK_IN_PROGRESS","PARAM_ACK_VALUE_UNSUPPORTED","PARAM_EXT_ACK","PARAM_EXT_ACK_DATA","PARAM_EXT_REQUEST_LIST","PARAM_EXT_REQUEST_LIST_DATA","PARAM_EXT_REQUEST_READ","PARAM_EXT_REQUEST_READ_DATA","PARAM_EXT_SET","PARAM_EXT_SET_DATA","PARAM_EXT_VALUE","PARAM_EXT_VALUE_DATA","PARAM_MAP_RC","PARAM_MAP_RC_DATA","PARAM_READ_PERSISTENT","PARAM_REQUEST_LIST","PARAM_REQUEST_LIST_DATA","PARAM_REQUEST_READ","PARAM_REQUEST_READ_DATA","PARAM_RESET_ALL_DEFAULT","PARAM_RESET_CONFIG_DEFAULT","PARAM_RESET_SENSOR_DEFAULT","PARAM_SET","PARAM_SET_DATA","PARAM_VALUE","PARAM_VALUE_DATA","PARAM_WRITE_PERSISTENT","PING","PING_DATA","PLAY_TUNE","PLAY_TUNE_DATA","PLAY_TUNE_V2","PLAY_TUNE_V2_DATA","POSITION_TARGET_GLOBAL_INT","POSITION_TARGET_GLOBAL_INT_DATA","POSITION_TARGET_LOCAL_NED","POSITION_TARGET_LOCAL_NED_DATA","POSITION_TARGET_TYPEMASK_AX_IGNORE","POSITION_TARGET_TYPEMASK_AY_IGNORE","POSITION_TARGET_TYPEMASK_AZ_IGNORE","POSITION_TARGET_TYPEMASK_FORCE_SET","POSITION_TARGET_TYPEMASK_VX_IGNORE","POSITION_TARGET_TYPEMASK_VY_IGNORE","POSITION_TARGET_TYPEMASK_VZ_IGNORE","POSITION_TARGET_TYPEMASK_X_IGNORE","POSITION_TARGET_TYPEMASK_YAW_IGNORE","POSITION_TARGET_TYPEMASK_YAW_RATE_IGNORE","POSITION_TARGET_TYPEMASK_Y_IGNORE","POSITION_TARGET_TYPEMASK_Z_IGNORE","POWER_STATUS","POWER_STATUS_DATA","PRECISION_LAND_MODE_DISABLED","PRECISION_LAND_MODE_OPPORTUNISTIC","PRECISION_LAND_MODE_REQUIRED","PROTOCOL_VERSION","PROTOCOL_VERSION_DATA","ParachuteAction","ParamAck","PositionTargetTypemask","PrecisionLandMode","PreflightStorageMissionAction","PreflightStorageParameterAction","RADIO_STATUS","RADIO_STATUS_DATA","RAW_IMU","RAW_IMU_DATA","RAW_PRESSURE","RAW_PRESSURE_DATA","RAW_RPM","RAW_RPM_DATA","RC_CHANNELS","RC_CHANNELS_DATA","RC_CHANNELS_OVERRIDE","RC_CHANNELS_OVERRIDE_DATA","RC_CHANNELS_RAW","RC_CHANNELS_RAW_DATA","RC_CHANNELS_SCALED","RC_CHANNELS_SCALED_DATA","RC_TYPE_SPEKTRUM_DSM2","RC_TYPE_SPEKTRUM_DSMX","REQUEST_DATA_STREAM","REQUEST_DATA_STREAM_DATA","REQUEST_EVENT","REQUEST_EVENT_DATA","RESOURCE_REQUEST","RESOURCE_REQUEST_DATA","RESPONSE_EVENT_ERROR","RESPONSE_EVENT_ERROR_DATA","RTK_BASELINE_COORDINATE_SYSTEM_ECEF","RTK_BASELINE_COORDINATE_SYSTEM_NED","RcType","RtkBaselineCoordinateSystem","SAFETY_ALLOWED_AREA","SAFETY_ALLOWED_AREA_DATA","SAFETY_SET_ALLOWED_AREA","SAFETY_SET_ALLOWED_AREA_DATA","SCALED_IMU","SCALED_IMU2","SCALED_IMU2_DATA","SCALED_IMU3","SCALED_IMU3_DATA","SCALED_IMU_DATA","SCALED_PRESSURE","SCALED_PRESSURE2","SCALED_PRESSURE2_DATA","SCALED_PRESSURE3","SCALED_PRESSURE3_DATA","SCALED_PRESSURE_DATA","SERIAL_CONTROL","SERIAL_CONTROL_DATA","SERIAL_CONTROL_DEV_GPS1","SERIAL_CONTROL_DEV_GPS2","SERIAL_CONTROL_DEV_SHELL","SERIAL_CONTROL_DEV_TELEM1","SERIAL_CONTROL_DEV_TELEM2","SERIAL_CONTROL_FLAG_BLOCKING","SERIAL_CONTROL_FLAG_EXCLUSIVE","SERIAL_CONTROL_FLAG_MULTI","SERIAL_CONTROL_FLAG_REPLY","SERIAL_CONTROL_FLAG_RESPOND","SERIAL_CONTROL_SERIAL0","SERIAL_CONTROL_SERIAL1","SERIAL_CONTROL_SERIAL2","SERIAL_CONTROL_SERIAL3","SERIAL_CONTROL_SERIAL4","SERIAL_CONTROL_SERIAL5","SERIAL_CONTROL_SERIAL6","SERIAL_CONTROL_SERIAL7","SERIAL_CONTROL_SERIAL8","SERIAL_CONTROL_SERIAL9","SERVO_OUTPUT_RAW","SERVO_OUTPUT_RAW_DATA","SETUP_SIGNING","SETUP_SIGNING_DATA","SET_ACTUATOR_CONTROL_TARGET","SET_ACTUATOR_CONTROL_TARGET_DATA","SET_ATTITUDE_TARGET","SET_ATTITUDE_TARGET_DATA","SET_GPS_GLOBAL_ORIGIN","SET_GPS_GLOBAL_ORIGIN_DATA","SET_HOME_POSITION","SET_HOME_POSITION_DATA","SET_MODE","SET_MODE_DATA","SET_POSITION_TARGET_GLOBAL_INT","SET_POSITION_TARGET_GLOBAL_INT_DATA","SET_POSITION_TARGET_LOCAL_NED","SET_POSITION_TARGET_LOCAL_NED_DATA","SIM_STATE","SIM_STATE_DATA","SMART_BATTERY_INFO","SMART_BATTERY_INFO_DATA","STATUSTEXT","STATUSTEXT_DATA","STORAGE_INFORMATION","STORAGE_INFORMATION_DATA","STORAGE_STATUS_EMPTY","STORAGE_STATUS_NOT_SUPPORTED","STORAGE_STATUS_READY","STORAGE_STATUS_UNFORMATTED","STORAGE_TYPE_CF","STORAGE_TYPE_CFE","STORAGE_TYPE_HD","STORAGE_TYPE_MICROSD","STORAGE_TYPE_OTHER","STORAGE_TYPE_SD","STORAGE_TYPE_UNKNOWN","STORAGE_TYPE_USB_STICK","STORAGE_TYPE_XQD","STORAGE_USAGE_FLAG_LOGS","STORAGE_USAGE_FLAG_PHOTO","STORAGE_USAGE_FLAG_SET","STORAGE_USAGE_FLAG_VIDEO","SUPPORTED_TUNES","SUPPORTED_TUNES_DATA","SYSTEM_TIME","SYSTEM_TIME_DATA","SYS_STATUS","SYS_STATUS_DATA","SerialControlDev","SerialControlFlag","SetFocusType","StorageStatus","StorageType","StorageUsageFlag","TERRAIN_CHECK","TERRAIN_CHECK_DATA","TERRAIN_DATA","TERRAIN_DATA_DATA","TERRAIN_REPORT","TERRAIN_REPORT_DATA","TERRAIN_REQUEST","TERRAIN_REQUEST_DATA","TIMESYNC","TIMESYNC_DATA","TIME_ESTIMATE_TO_TARGET","TIME_ESTIMATE_TO_TARGET_DATA","TRAJECTORY_REPRESENTATION_BEZIER","TRAJECTORY_REPRESENTATION_BEZIER_DATA","TRAJECTORY_REPRESENTATION_WAYPOINTS","TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA","TUNE_FORMAT_MML_MODERN","TUNE_FORMAT_QBASIC1_1","TUNNEL","TUNNEL_DATA","TuneFormat","UAVCAN_NODE_HEALTH_CRITICAL","UAVCAN_NODE_HEALTH_ERROR","UAVCAN_NODE_HEALTH_OK","UAVCAN_NODE_HEALTH_WARNING","UAVCAN_NODE_INFO","UAVCAN_NODE_INFO_DATA","UAVCAN_NODE_MODE_INITIALIZATION","UAVCAN_NODE_MODE_MAINTENANCE","UAVCAN_NODE_MODE_OFFLINE","UAVCAN_NODE_MODE_OPERATIONAL","UAVCAN_NODE_MODE_SOFTWARE_UPDATE","UAVCAN_NODE_STATUS","UAVCAN_NODE_STATUS_DATA","UNDER_WAY","UTM_DATA_AVAIL_FLAGS_ALTITUDE_AVAILABLE","UTM_DATA_AVAIL_FLAGS_HORIZONTAL_VELO_AVAILABLE","UTM_DATA_AVAIL_FLAGS_NEXT_WAYPOINT_AVAILABLE","UTM_DATA_AVAIL_FLAGS_POSITION_AVAILABLE","UTM_DATA_AVAIL_FLAGS_RELATIVE_ALTITUDE_AVAILABLE","UTM_DATA_AVAIL_FLAGS_TIME_VALID","UTM_DATA_AVAIL_FLAGS_UAS_ID_AVAILABLE","UTM_DATA_AVAIL_FLAGS_VERTICAL_VELO_AVAILABLE","UTM_FLIGHT_STATE_AIRBORNE","UTM_FLIGHT_STATE_EMERGENCY","UTM_FLIGHT_STATE_GROUND","UTM_FLIGHT_STATE_NOCTRL","UTM_FLIGHT_STATE_UNKNOWN","UTM_GLOBAL_POSITION","UTM_GLOBAL_POSITION_DATA","UavcanNodeHealth","UavcanNodeMode","UtmDataAvailFlags","UtmFlightState","V2_EXTENSION","V2_EXTENSION_DATA","VFR_HUD","VFR_HUD_DATA","VIBRATION","VIBRATION_DATA","VICON_POSITION_ESTIMATE","VICON_POSITION_ESTIMATE_DATA","VIDEO_STREAM_INFORMATION","VIDEO_STREAM_INFORMATION_DATA","VIDEO_STREAM_STATUS","VIDEO_STREAM_STATUS_DATA","VIDEO_STREAM_STATUS_FLAGS_RUNNING","VIDEO_STREAM_STATUS_FLAGS_THERMAL","VIDEO_STREAM_TYPE_MPEG_TS_H264","VIDEO_STREAM_TYPE_RTPUDP","VIDEO_STREAM_TYPE_RTSP","VIDEO_STREAM_TYPE_TCP_MPEG","VISION_POSITION_ESTIMATE","VISION_POSITION_ESTIMATE_DATA","VISION_SPEED_ESTIMATE","VISION_SPEED_ESTIMATE_DATA","VTOL_TRANSITION_HEADING_ANY","VTOL_TRANSITION_HEADING_NEXT_WAYPOINT","VTOL_TRANSITION_HEADING_SPECIFIED","VTOL_TRANSITION_HEADING_TAKEOFF","VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT","Vcc","VideoStreamStatusFlags","VideoStreamType","Vservo","VtolTransitionHeading","WHEEL_DISTANCE","WHEEL_DISTANCE_DATA","WIFI_CONFIG_AP","WIFI_CONFIG_AP_DATA","WIFI_CONFIG_AP_MODE_AP","WIFI_CONFIG_AP_MODE_DISABLED","WIFI_CONFIG_AP_MODE_STATION","WIFI_CONFIG_AP_MODE_UNDEFINED","WIFI_CONFIG_AP_RESPONSE_ACCEPTED","WIFI_CONFIG_AP_RESPONSE_MODE_ERROR","WIFI_CONFIG_AP_RESPONSE_PASSWORD_ERROR","WIFI_CONFIG_AP_RESPONSE_REJECTED","WIFI_CONFIG_AP_RESPONSE_SSID_ERROR","WIFI_CONFIG_AP_RESPONSE_UNDEFINED","WINCH_ABANDON_LINE","WINCH_DELIVER","WINCH_HOLD","WINCH_LOAD_LINE","WINCH_LOAD_PAYLOAD","WINCH_LOCK","WINCH_RATE_CONTROL","WINCH_RELATIVE_LENGTH_CONTROL","WINCH_RELAXED","WINCH_RETRACT","WINCH_STATUS","WINCH_STATUS_DATA","WIND_COV","WIND_COV_DATA","WifiConfigApMode","WifiConfigApResponse","WinchActions","ZOOM_TYPE_CONTINUOUS","ZOOM_TYPE_FOCAL_LENGTH","ZOOM_TYPE_RANGE","ZOOM_TYPE_STEP","abs_pressure","abs_pressure","acc","acc_x","acc_y","acc_z","accuracy","accuracy","ack","action","active","actuator","address","afx","afx","afx","afx","afy","afy","afy","afy","afz","afz","afz","afz","airspeed","airspeed","airspeed","airspeed","airspeed_sp","airspeed_sp","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt_camera","alt_error","alt_image","altitude","altitude","altitude","altitude","altitude","altitude","altitude_amsl","altitude_amsl","altitude_barometric","altitude_geodetic","altitude_local","altitude_minimum_delta","altitude_monotonic","altitude_relative","altitude_sp","altitude_terrain","altitude_type","angle_x","angle_y","angular_velocity_x","angular_velocity_x","angular_velocity_x","angular_velocity_y","angular_velocity_y","angular_velocity_y","angular_velocity_z","angular_velocity_z","angular_velocity_z","apn","approach_x","approach_x","approach_y","approach_y","approach_z","approach_z","area_ceiling","area_count","area_floor","area_radius","arguments","arming_time_utc","array_id","aspd_error","attitude_q","attitude_quaternion","authentication_data","authentication_type","autocontinue","autocontinue","autocontinue","autopilot","autopilot","autosaved","aux1","aux2","aux3","aux4","available_capacity","available_capacity","ax","ay","az","barometer_accuracy","barometric_pressure","base_mode","base_mode","base_mode","baseline_a_mm","baseline_a_mm","baseline_b_mm","baseline_b_mm","baseline_c_mm","baseline_c_mm","baseline_coords_type","baseline_coords_type","bat_current_setpoint","battery","battery_current","battery_function","battery_function","battery_remaining","battery_remaining","battery_remaining","baudrate","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitrate","bitrate","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","board_version","body_pitch_rate","body_pitch_rate","body_roll_rate","body_roll_rate","body_yaw_rate","body_yaw_rate","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bottom_clearance","breach_count","breach_status","breach_time","breach_type","bus","bus","bus","bus_voltage","buttons","cal_mask","cal_status","callsign","callsign","cam_definition_uri","cam_definition_version","camera_id","cap_flags","cap_flags","capabilities","capacity_full","capacity_full_specification","capture_result","category_eu","chan10_raw","chan10_raw","chan11_raw","chan11_raw","chan12_raw","chan12_raw","chan13_raw","chan14_raw","chan15_raw","chan16_raw","chan17_raw","chan18_raw","chan1_raw","chan1_raw","chan1_raw","chan1_raw","chan1_scaled","chan2_raw","chan2_raw","chan2_raw","chan2_raw","chan2_scaled","chan3_raw","chan3_raw","chan3_raw","chan3_raw","chan3_scaled","chan4_raw","chan4_raw","chan4_raw","chan4_raw","chan4_scaled","chan5_raw","chan5_raw","chan5_raw","chan5_raw","chan5_scaled","chan6_raw","chan6_raw","chan6_raw","chan6_raw","chan6_scaled","chan7_raw","chan7_raw","chan7_raw","chan7_raw","chan7_scaled","chan8_raw","chan8_raw","chan8_raw","chan8_raw","chan8_scaled","chan9_raw","chan9_raw","chancount","charging_minimum_voltage","child_frame_id","class_eu","classification_type","climb","climb_rate","climb_rate","clipping_0","clipping_1","clipping_2","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cog","cog","cog","command","command","command","command","command","command","command","commanded_action","compass_id","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","confirmation","connection_type","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","control_request","control_request","controls","controls","controls","coordinate_frame","coordinate_frame","coordinate_frame","coordinate_frame","count","count","count","count","count","count","count","counter","covariance","covariance","covariance","covariance","cpu_combined","cpu_cores","current","current","current","current","current","current_battery","current_battery","current_consumed","current_distance","current_height","custom0","custom1","custom2","custom_cap_flags","custom_mode","custom_mode","custom_mode","custom_mode","custom_name","custom_state","cycle_count","cylinder_head_temperature","data","data","data","data","data","data","data","data","data","data","data_page","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default_message_from_id","delta","description","description_type","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","destination_component","destination_system","device","device_name","dgps_age","dgps_numch","diag_x","diag_y","diag_z","diff_pressure","diff_pressure","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","dimension_bow","dimension_port","dimension_starboard","dimension_stern","direction","discharge_minimum_voltage","dist","distance","distance","distance","distance","distances","drop_rate_comm","ecu_index","emitter_type","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","enable_lte","enable_pin","end","end_index","end_index","energy_consumed","engine_load","eph","eph","eph","eph","epv","epv","epv","epv","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","error","error_count","errors_comm","errors_count1","errors_count2","errors_count3","errors_count4","est_capabilities","estimator_status","estimator_type","estimator_type","event_time_boot_ms","exhaust_gas_temperature","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extra_crc","failed_sessions","failsafe","failure_flags","failure_flags","failure_flags","failure_reason","fan_speed","feed_forward_angular_velocity_z","fields_updated","fields_updated","file_crc","file_url","firmware_version","firmware_version","first_message_offset","first_message_offset","first_sequence","fitness","fix_type","fix_type","fix_type","fix_type","fixed","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flight_custom_version","flight_state","flight_sw_version","flight_uuid","flow_comp_m_x","flow_comp_m_y","flow_x","flow_y","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","focal_length","format","format","frame","frame","frame","frame","frame","frame","frame","frame_id","framerate","framerate","frequency","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","fuel_consumed","fuel_flow","gcs_system_id","general_metadata_file_crc","general_metadata_uri","generator_speed","generator_temperature","gimbal_device_id","gimbal_device_id","gimbal_device_id","gimbal_device_id","gimbal_device_id","gps_fix_type","gps_id","gps_nsat","gpu_combined","gpu_cores","grid_spacing","grid_spacing","gridbit","ground_distance","groundspeed","groundspeed","groundspeed","group_mlx","group_mlx","h_acc","h_acc","hagl_ratio","hardware_version","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hdg","hdg","hdg_acc","hdop","heading","heading","heading","heading","heading","heading_sp","health","health","height","height","height_reference","hfov","hfov","hfov","hor_velocity","horiz_accuracy","horiz_accuracy","horizontal_accuracy","horizontal_minimum_delta","humidity","hw_unique_id","hw_version_major","hw_version_minor","iar_num_hypotheses","iar_num_hypotheses","id","id","id","id","id","id","id","id","id","id","id","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_type","ids","ignition_timing","ignore_flags","image_index","image_interval","image_status","increment","ind","ind_airspeed","index","index","index","info","initial_timestamp","injection_time","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","intake_manifold_pressure","intake_manifold_temperature","integrated_x","integrated_x","integrated_xgyro","integrated_xgyro","integrated_y","integrated_y","integrated_ygyro","integrated_ygyro","integrated_zgyro","integrated_zgyro","integration_time_us","integration_time_us","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","interval_us","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","jpg_quality","key","lac","land","landed_state","landed_state","landed_state","last_change_ms","last_heartbeat","last_log_num","last_page_index","last_sequence","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat_camera","lat_image","lat_int","lat_int","latitude","latitude","latitude","latitude","latitude","latitude","latitude","len","len","len","len","length","length","length","lens_id","library_version_hash","line_length","link_rx_max","link_rx_rate","link_tx_max","link_tx_rate","link_type","load","load_current","loaded","log_levels","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon_camera","lon_image","lon_int","lon_int","longitude","longitude","longitude","longitude","longitude","longitude","longitude","mag_ratio","manual_override_switch","mask","mavlink_version","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","max_distance","max_distance","max_version","mcc","message_id","message_id","message_id_from_name","message_name","message_rate","message_type","messages","messages_lost","messages_received","messages_sent","middleware_custom_version","middleware_sw_version","min_distance","min_distance","min_version","mission_end","mission_next_item","mnc","mode","mode","mode","mode_id","mode_switch","model_name","model_name","msg_pack_size","name","name","name","name","name","name","name","nav_bearing","nav_mode","nav_pitch","nav_roll","navigational_status","new_pin","next_alt","next_lat","next_lon","noise","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","nsats","nsats","num_ids","num_logs","offdiag_x","offdiag_y","offdiag_z","ofs","ofs","ofs_x","ofs_y","ofs_z","on_off","onboard_control_sensors_enabled","onboard_control_sensors_health","onboard_control_sensors_present","operation","operator_altitude_geo","operator_altitude_geo","operator_id","operator_id_type","operator_latitude","operator_latitude","operator_location_type","operator_longitude","operator_longitude","orientation","os_custom_version","os_sw_version","p1x","p1x","p1y","p1y","p1z","p1z","p2x","p2x","p2y","p2y","p2z","p2z","packets","param1","param1","param1","param1","param2","param2","param2","param2","param3","param3","param3","param3","param4","param4","param4","param4","param5","param6","param7","param_count","param_count","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_index","param_index","param_index","param_index","param_index","param_result","param_type","param_type","param_type","param_type","param_type","param_value","param_value","param_value","param_value","param_value","param_value0","param_value_max","param_value_min","parameter_rc_channel_index","parse","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","passkey","password","payload","payload","payload","payload","payload_length","payload_type","pending","peripherals_metadata_file_crc","peripherals_metadata_uri","pin","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch_elevator","pitch_max","pitch_max","pitch_min","pitch_min","pitch_rate","pitch_rate","pitch_rate","pitchspeed","pitchspeed","pitchspeed","pitchspeed","pitchspeed","pitchspeed","point_x","point_y","port","port","port","pos_horiz_accuracy","pos_horiz_ratio","pos_variance","pos_vert_accuracy","pos_vert_ratio","pos_x","pos_x","pos_y","pos_y","pos_yaw","pos_yaw","pos_z","pos_z","pose_covariance","position_cov","power_generated","press_abs","press_abs","press_abs","press_abs","press_diff","press_diff","press_diff","press_diff1","press_diff2","pressure_alt","pressure_alt","primary_control_compid","primary_control_sysid","product_id","pt_compensation","puk","q","q","q","q","q","q","q","q","q","q","q","q","q","q","q1","q1","q2","q2","q3","q3","q4","q4","q_estimated_delay_us","quality","quality","quality","quality","r","radius","radius","ram_total","ram_usage","rates","read_speed","reason","rec_bottom_x","rec_bottom_y","rec_top_x","rec_top_y","recording_time_ms","rectifier_temperature","relative_alt","relative_alt","relative_alt","relative_alt","remnoise","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remrssi","req_message_rate","req_stream_id","request_id","resolution_h","resolution_h","resolution_h","resolution_v","resolution_v","resolution_v","response","resting_minimum_voltage","result","ring_pending","roaming","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll_ailerons","roll_max","roll_max","roll_min","roll_min","roll_rate","rollspeed","rollspeed","rollspeed","rollspeed","rollspeed","rollspeed","rotation","rotation","rpm","rpm","rssi","rssi","rssi","rssi","rssi","rtk_health","rtk_health","rtk_rate","rtk_rate","rtk_receiver_id","rtk_receiver_id","runtime","rx_buf","rx_overflows","rx_parse_err","rx_rate","rx_session_pending","rxerrors","safe_return","satellite_azimuth","satellite_elevation","satellite_prn","satellite_snr","satellite_used","satellites_visible","satellites_visible","satellites_visible","satellites_visible","satellites_visible","scale","secondary_control_compid","secondary_control_sysid","secret_key","sensor_id","sensor_id","sensor_id","sensor_size_h","sensor_size_v","sensor_type","seq","seq","seq","seq","seq","seq","seq","seq","seq","seqnr","sequence","sequence","sequence","sequence","sequence","sequence","sequence_oldest_available","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","serial_number","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","servo1_raw","servo2_raw","servo3_raw","servo4_raw","servo5_raw","servo6_raw","servo7_raw","servo8_raw","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","severity","signal_quality","single_message_size","size","size","size_x","size_y","spacing","spark_dwell_time","spec_version_hash","speed","speed_accuracy","speed_accuracy","speed_horizontal","speed_vertical","squawk","src","ssid","start","start_index","start_index","start_stop","state","status","status","status","status","status","status","std_dev_horz","std_dev_vert","storage","storage_count","storage_id","storage_total","storage_type","storage_usage","stream_id","stream_id","stream_id","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_mode","successful_sessions","sw_vcs_commit","sw_version_major","sw_version_minor","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","system_status","takeoff_time_utc","target","target_altitude","target_bearing","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_data","target_distance","target_heading","target_network","target_network","target_num","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","tas_ratio","tc1","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature_air","temperature_air","temperature_board","temperature_core","tension","terrain_height","text","threat_level","throttle","throttle","throttle","throttle","throttle_out","throttle_position","thrust","thrust","thrust","time","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_us","time_delta_distance_us","time_delta_distance_us","time_last_baseline_ms","time_last_baseline_ms","time_to_minimum_delta","time_unix_usec","time_until_maintenance","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_utc","time_utc","time_week","time_week_ms","timeout","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp_accuracy","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","total_capacity","tow","tow","tracking_mode","tracking_status","tracking_status","transfer_type","true_airspeed","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","ts1","tslc","tslc","tune","tune","turn_rate","tx_buf","tx_overflows","tx_rate","tx_session_pending","txbuf","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_mask","type_mask","type_mask","type_mask","type_mask","type_mask","ua_type","uas_id","uas_id","uid","uid","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","update_rate","uptime","uptime_sec","uptime_sec","uri","uri","uri","uri_type","usec","usec","usec","usec","used_capacity","v_acc","v_acc","v_estimated_delay_us","valid_points","valid_points","value","value","value","value","var_horiz","var_vert","vd","vd","vd","vdop","ve","ve","ve","vel","vel","vel","vel","vel_acc","vel_acc","vel_d","vel_e","vel_n","vel_ratio","vel_variance","vel_x","vel_y","vel_yaw","vel_z","velocity","velocity_covariance","vendor_id","vendor_name","vendor_name","vendor_specific_status_code","ver","ver_velocity","version","version","vert_accuracy","vert_accuracy","vertical_accuracy","vfov","vibration_x","vibration_y","vibration_z","video_status","vn","vn","vn","voltage","voltage","voltage_battery","voltages","vtol_state","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","weight","width","wind_alt","wind_heading","wind_x","wind_y","wind_z","windspeed","wn","wn","wp_dist","wp_distance","wp_num","wp_num","write_speed","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x_acc","x_pos","x_vel","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xmag","xmag","xmag","xmag","xmag","xmag","xtrack_error","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y_acc","y_pos","y_vel","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw_max","yaw_max","yaw_min","yaw_min","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rudder","yawspeed","yawspeed","yawspeed","yawspeed","yawspeed","yawspeed","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ymag","ymag","ymag","ymag","ymag","ymag","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z_acc","z_pos","z_vel","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zmag","zmag","zmag","zmag","zmag","zmag","InvalidEnum","InvalidFlag","Io","Io","MessageReadError","MessageWriteError","Parse","ParserError","UnknownMessage","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","enum_type","flag_type","id","value","value","DEFAULT","DEFAULT","DEFAULT","DEFAULT","ENCODED_LEN","ENCODED_LEN","ICAROUS_FMS_STATE_APPROACH","ICAROUS_FMS_STATE_CLIMB","ICAROUS_FMS_STATE_CRUISE","ICAROUS_FMS_STATE_IDLE","ICAROUS_FMS_STATE_LAND","ICAROUS_FMS_STATE_TAKEOFF","ICAROUS_HEARTBEAT","ICAROUS_HEARTBEAT_DATA","ICAROUS_KINEMATIC_BANDS","ICAROUS_KINEMATIC_BANDS_DATA","ICAROUS_TRACK_BAND_TYPE_NEAR","ICAROUS_TRACK_BAND_TYPE_NONE","ICAROUS_TRACK_BAND_TYPE_RECOVERY","IcarousFmsState","IcarousTrackBandTypes","MavMessage","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","default","default","default_message_from_id","deser","deser","deserialize","deserialize","deserialize","deserialize","deserialize","eq","eq","eq","eq","eq","extra_crc","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_i64","from_i64","from_u64","from_u64","into","into","into","into","into","max1","max2","max3","max4","max5","message_id","message_id_from_name","message_name","min1","min2","min3","min4","min5","numBands","parse","ser","ser","ser","serialize","serialize","serialize","serialize","serialize","status","to_i64","to_i64","to_owned","to_owned","to_owned","to_owned","to_owned","to_u64","to_u64","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type1","type2","type3","type4","type5","type_id","type_id","type_id","type_id","type_id","PeekReader","borrow","borrow_mut","consume","from","into","new","peek_exact","read_exact","read_u8","reader_mut","reader_ref","try_from","try_into","type_id","ACTUATOR_CONFIGURATION_3D_MODE_OFF","ACTUATOR_CONFIGURATION_3D_MODE_ON","ACTUATOR_CONFIGURATION_BEEP","ACTUATOR_CONFIGURATION_NONE","ACTUATOR_CONFIGURATION_SPIN_DIRECTION1","ACTUATOR_CONFIGURATION_SPIN_DIRECTION2","ACTUATOR_CONTROL_TARGET","ACTUATOR_CONTROL_TARGET_DATA","ACTUATOR_OUTPUT_FUNCTION_MOTOR1","ACTUATOR_OUTPUT_FUNCTION_MOTOR10","ACTUATOR_OUTPUT_FUNCTION_MOTOR11","ACTUATOR_OUTPUT_FUNCTION_MOTOR12","ACTUATOR_OUTPUT_FUNCTION_MOTOR13","ACTUATOR_OUTPUT_FUNCTION_MOTOR14","ACTUATOR_OUTPUT_FUNCTION_MOTOR15","ACTUATOR_OUTPUT_FUNCTION_MOTOR16","ACTUATOR_OUTPUT_FUNCTION_MOTOR2","ACTUATOR_OUTPUT_FUNCTION_MOTOR3","ACTUATOR_OUTPUT_FUNCTION_MOTOR4","ACTUATOR_OUTPUT_FUNCTION_MOTOR5","ACTUATOR_OUTPUT_FUNCTION_MOTOR6","ACTUATOR_OUTPUT_FUNCTION_MOTOR7","ACTUATOR_OUTPUT_FUNCTION_MOTOR8","ACTUATOR_OUTPUT_FUNCTION_MOTOR9","ACTUATOR_OUTPUT_FUNCTION_NONE","ACTUATOR_OUTPUT_FUNCTION_SERVO1","ACTUATOR_OUTPUT_FUNCTION_SERVO10","ACTUATOR_OUTPUT_FUNCTION_SERVO11","ACTUATOR_OUTPUT_FUNCTION_SERVO12","ACTUATOR_OUTPUT_FUNCTION_SERVO13","ACTUATOR_OUTPUT_FUNCTION_SERVO14","ACTUATOR_OUTPUT_FUNCTION_SERVO15","ACTUATOR_OUTPUT_FUNCTION_SERVO16","ACTUATOR_OUTPUT_FUNCTION_SERVO2","ACTUATOR_OUTPUT_FUNCTION_SERVO3","ACTUATOR_OUTPUT_FUNCTION_SERVO4","ACTUATOR_OUTPUT_FUNCTION_SERVO5","ACTUATOR_OUTPUT_FUNCTION_SERVO6","ACTUATOR_OUTPUT_FUNCTION_SERVO7","ACTUATOR_OUTPUT_FUNCTION_SERVO8","ACTUATOR_OUTPUT_FUNCTION_SERVO9","ACTUATOR_OUTPUT_STATUS","ACTUATOR_OUTPUT_STATUS_DATA","ADSB_ALTITUDE_TYPE_GEOMETRIC","ADSB_ALTITUDE_TYPE_PRESSURE_QNH","ADSB_EMITTER_TYPE_EMERGENCY_SURFACE","ADSB_EMITTER_TYPE_GLIDER","ADSB_EMITTER_TYPE_HEAVY","ADSB_EMITTER_TYPE_HIGHLY_MANUV","ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE","ADSB_EMITTER_TYPE_LARGE","ADSB_EMITTER_TYPE_LIGHT","ADSB_EMITTER_TYPE_LIGHTER_AIR","ADSB_EMITTER_TYPE_NO_INFO","ADSB_EMITTER_TYPE_PARACHUTE","ADSB_EMITTER_TYPE_POINT_OBSTACLE","ADSB_EMITTER_TYPE_ROTOCRAFT","ADSB_EMITTER_TYPE_SERVICE_SURFACE","ADSB_EMITTER_TYPE_SMALL","ADSB_EMITTER_TYPE_SPACE","ADSB_EMITTER_TYPE_UAV","ADSB_EMITTER_TYPE_ULTRA_LIGHT","ADSB_EMITTER_TYPE_UNASSGINED3","ADSB_EMITTER_TYPE_UNASSIGNED","ADSB_EMITTER_TYPE_UNASSIGNED2","ADSB_FLAGS_BARO_VALID","ADSB_FLAGS_SIMULATED","ADSB_FLAGS_SOURCE_UAT","ADSB_FLAGS_VALID_ALTITUDE","ADSB_FLAGS_VALID_CALLSIGN","ADSB_FLAGS_VALID_COORDS","ADSB_FLAGS_VALID_HEADING","ADSB_FLAGS_VALID_SQUAWK","ADSB_FLAGS_VALID_VELOCITY","ADSB_FLAGS_VERTICAL_VELOCITY_VALID","ADSB_VEHICLE","ADSB_VEHICLE_DATA","AIS_FLAGS_HIGH_VELOCITY","AIS_FLAGS_LARGE_BOW_DIMENSION","AIS_FLAGS_LARGE_PORT_DIMENSION","AIS_FLAGS_LARGE_STARBOARD_DIMENSION","AIS_FLAGS_LARGE_STERN_DIMENSION","AIS_FLAGS_POSITION_ACCURACY","AIS_FLAGS_TURN_RATE_SIGN_ONLY","AIS_FLAGS_VALID_CALLSIGN","AIS_FLAGS_VALID_COG","AIS_FLAGS_VALID_DIMENSIONS","AIS_FLAGS_VALID_NAME","AIS_FLAGS_VALID_TURN_RATE","AIS_FLAGS_VALID_VELOCITY","AIS_NAV_AGROUND","AIS_NAV_AIS_SART","AIS_NAV_ANCHORED","AIS_NAV_DRAUGHT_CONSTRAINED","AIS_NAV_FISHING","AIS_NAV_MOORED","AIS_NAV_RESERVED_1","AIS_NAV_RESERVED_2","AIS_NAV_RESERVED_3","AIS_NAV_RESERVED_HSC","AIS_NAV_RESERVED_WIG","AIS_NAV_RESTRICTED_MANOEUVERABILITY","AIS_NAV_SAILING","AIS_NAV_UNKNOWN","AIS_NAV_UN_COMMANDED","AIS_TYPE_ANTI_POLLUTION","AIS_TYPE_CARGO","AIS_TYPE_CARGO_HAZARDOUS_A","AIS_TYPE_CARGO_HAZARDOUS_B","AIS_TYPE_CARGO_HAZARDOUS_C","AIS_TYPE_CARGO_HAZARDOUS_D","AIS_TYPE_CARGO_RESERVED_1","AIS_TYPE_CARGO_RESERVED_2","AIS_TYPE_CARGO_RESERVED_3","AIS_TYPE_CARGO_RESERVED_4","AIS_TYPE_CARGO_UNKNOWN","AIS_TYPE_DIVING","AIS_TYPE_DREDGING","AIS_TYPE_FISHING","AIS_TYPE_HSC","AIS_TYPE_HSC_HAZARDOUS_A","AIS_TYPE_HSC_HAZARDOUS_B","AIS_TYPE_HSC_HAZARDOUS_C","AIS_TYPE_HSC_HAZARDOUS_D","AIS_TYPE_HSC_RESERVED_1","AIS_TYPE_HSC_RESERVED_2","AIS_TYPE_HSC_RESERVED_3","AIS_TYPE_HSC_RESERVED_4","AIS_TYPE_HSC_UNKNOWN","AIS_TYPE_LAW_ENFORCEMENT","AIS_TYPE_MEDICAL_TRANSPORT","AIS_TYPE_MILITARY","AIS_TYPE_NONECOMBATANT","AIS_TYPE_OTHER","AIS_TYPE_OTHER_HAZARDOUS_A","AIS_TYPE_OTHER_HAZARDOUS_B","AIS_TYPE_OTHER_HAZARDOUS_C","AIS_TYPE_OTHER_HAZARDOUS_D","AIS_TYPE_OTHER_RESERVED_1","AIS_TYPE_OTHER_RESERVED_2","AIS_TYPE_OTHER_RESERVED_3","AIS_TYPE_OTHER_RESERVED_4","AIS_TYPE_OTHER_UNKNOWN","AIS_TYPE_PASSENGER","AIS_TYPE_PASSENGER_HAZARDOUS_A","AIS_TYPE_PASSENGER_HAZARDOUS_B","AIS_TYPE_PASSENGER_HAZARDOUS_C","AIS_TYPE_PASSENGER_HAZARDOUS_D","AIS_TYPE_PASSENGER_RESERVED_1","AIS_TYPE_PASSENGER_RESERVED_2","AIS_TYPE_PASSENGER_RESERVED_3","AIS_TYPE_PASSENGER_RESERVED_4","AIS_TYPE_PASSENGER_UNKNOWN","AIS_TYPE_PILOT","AIS_TYPE_PLEASURE","AIS_TYPE_PORT_TENDER","AIS_TYPE_RESERVED_1","AIS_TYPE_RESERVED_10","AIS_TYPE_RESERVED_11","AIS_TYPE_RESERVED_12","AIS_TYPE_RESERVED_13","AIS_TYPE_RESERVED_14","AIS_TYPE_RESERVED_15","AIS_TYPE_RESERVED_16","AIS_TYPE_RESERVED_17","AIS_TYPE_RESERVED_18","AIS_TYPE_RESERVED_19","AIS_TYPE_RESERVED_2","AIS_TYPE_RESERVED_20","AIS_TYPE_RESERVED_21","AIS_TYPE_RESERVED_3","AIS_TYPE_RESERVED_4","AIS_TYPE_RESERVED_5","AIS_TYPE_RESERVED_6","AIS_TYPE_RESERVED_7","AIS_TYPE_RESERVED_8","AIS_TYPE_RESERVED_9","AIS_TYPE_SAILING","AIS_TYPE_SAR","AIS_TYPE_SPARE_LOCAL_1","AIS_TYPE_SPARE_LOCAL_2","AIS_TYPE_TANKER","AIS_TYPE_TANKER_HAZARDOUS_A","AIS_TYPE_TANKER_HAZARDOUS_B","AIS_TYPE_TANKER_HAZARDOUS_C","AIS_TYPE_TANKER_HAZARDOUS_D","AIS_TYPE_TANKER_RESERVED_1","AIS_TYPE_TANKER_RESERVED_2","AIS_TYPE_TANKER_RESERVED_3","AIS_TYPE_TANKER_RESERVED_4","AIS_TYPE_TANKER_UNKNOWN","AIS_TYPE_TOWING","AIS_TYPE_TOWING_LARGE","AIS_TYPE_TUG","AIS_TYPE_UNKNOWN","AIS_TYPE_WIG","AIS_TYPE_WIG_HAZARDOUS_A","AIS_TYPE_WIG_HAZARDOUS_B","AIS_TYPE_WIG_HAZARDOUS_C","AIS_TYPE_WIG_HAZARDOUS_D","AIS_TYPE_WIG_RESERVED_1","AIS_TYPE_WIG_RESERVED_2","AIS_TYPE_WIG_RESERVED_3","AIS_TYPE_WIG_RESERVED_4","AIS_TYPE_WIG_RESERVED_5","AIS_VESSEL","AIS_VESSEL_DATA","ALTITUDE","ALTITUDE_DATA","ATTITUDE","ATTITUDE_DATA","ATTITUDE_QUATERNION","ATTITUDE_QUATERNION_COV","ATTITUDE_QUATERNION_COV_DATA","ATTITUDE_QUATERNION_DATA","ATTITUDE_TARGET","ATTITUDE_TARGET_DATA","ATTITUDE_TARGET_TYPEMASK_ATTITUDE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_PITCH_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_YAW_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_THROTTLE_IGNORE","ATTITUDE_TARGET_TYPEMASK_THRUST_BODY_SET","ATT_POS_MOCAP","ATT_POS_MOCAP_DATA","AUTH_KEY","AUTH_KEY_DATA","AUTOPILOT_STATE_FOR_GIMBAL_DEVICE","AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA","AUTOPILOT_VERSION","AUTOPILOT_VERSION_DATA","AUTOTUNE_AXIS_DEFAULT","AUTOTUNE_AXIS_PITCH","AUTOTUNE_AXIS_ROLL","AUTOTUNE_AXIS_YAW","ActuatorConfiguration","ActuatorOutputFunction","AdsbAltitudeType","AdsbEmitterType","AdsbFlags","AisFlags","AisNavStatus","AisType","AttitudeTargetTypemask","AutotuneAxis","BATTERY_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION","BATTERY_STATUS","BATTERY_STATUS_DATA","BUTTON_CHANGE","BUTTON_CHANGE_DATA","CAMERA_CAPTURE_STATUS","CAMERA_CAPTURE_STATUS_DATA","CAMERA_CAP_FLAGS_CAN_CAPTURE_IMAGE_IN_VIDEO_MODE","CAMERA_CAP_FLAGS_CAN_CAPTURE_VIDEO_IN_IMAGE_MODE","CAMERA_CAP_FLAGS_CAPTURE_IMAGE","CAMERA_CAP_FLAGS_CAPTURE_VIDEO","CAMERA_CAP_FLAGS_HAS_BASIC_FOCUS","CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM","CAMERA_CAP_FLAGS_HAS_IMAGE_SURVEY_MODE","CAMERA_CAP_FLAGS_HAS_MODES","CAMERA_CAP_FLAGS_HAS_TRACKING_GEO_STATUS","CAMERA_CAP_FLAGS_HAS_TRACKING_POINT","CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE","CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM","CAMERA_FOV_STATUS","CAMERA_FOV_STATUS_DATA","CAMERA_IMAGE_CAPTURED","CAMERA_IMAGE_CAPTURED_DATA","CAMERA_INFORMATION","CAMERA_INFORMATION_DATA","CAMERA_MODE_IMAGE","CAMERA_MODE_IMAGE_SURVEY","CAMERA_MODE_VIDEO","CAMERA_SETTINGS","CAMERA_SETTINGS_DATA","CAMERA_TRACKING_GEO_STATUS","CAMERA_TRACKING_GEO_STATUS_DATA","CAMERA_TRACKING_IMAGE_STATUS","CAMERA_TRACKING_IMAGE_STATUS_DATA","CAMERA_TRACKING_MODE_NONE","CAMERA_TRACKING_MODE_POINT","CAMERA_TRACKING_MODE_RECTANGLE","CAMERA_TRACKING_STATUS_FLAGS_ACTIVE","CAMERA_TRACKING_STATUS_FLAGS_ERROR","CAMERA_TRACKING_STATUS_FLAGS_IDLE","CAMERA_TRACKING_TARGET_DATA_EMBEDDED","CAMERA_TRACKING_TARGET_DATA_IN_STATUS","CAMERA_TRACKING_TARGET_DATA_NONE","CAMERA_TRACKING_TARGET_DATA_RENDERED","CAMERA_TRIGGER","CAMERA_TRIGGER_DATA","CANFD_FRAME","CANFD_FRAME_DATA","CAN_FILTER_ADD","CAN_FILTER_MODIFY","CAN_FILTER_MODIFY_DATA","CAN_FILTER_REMOVE","CAN_FILTER_REPLACE","CAN_FRAME","CAN_FRAME_DATA","CELLULAR_CONFIG","CELLULAR_CONFIG_BLOCKED_PUK_REQUIRED","CELLULAR_CONFIG_DATA","CELLULAR_CONFIG_RESPONSE_ACCEPTED","CELLULAR_CONFIG_RESPONSE_APN_ERROR","CELLULAR_CONFIG_RESPONSE_PIN_ERROR","CELLULAR_CONFIG_RESPONSE_REJECTED","CELLULAR_NETWORK_FAILED_REASON_NONE","CELLULAR_NETWORK_FAILED_REASON_SIM_ERROR","CELLULAR_NETWORK_FAILED_REASON_SIM_MISSING","CELLULAR_NETWORK_FAILED_REASON_UNKNOWN","CELLULAR_NETWORK_RADIO_TYPE_CDMA","CELLULAR_NETWORK_RADIO_TYPE_GSM","CELLULAR_NETWORK_RADIO_TYPE_LTE","CELLULAR_NETWORK_RADIO_TYPE_NONE","CELLULAR_NETWORK_RADIO_TYPE_WCDMA","CELLULAR_STATUS","CELLULAR_STATUS_DATA","CELLULAR_STATUS_FLAG_CONNECTED","CELLULAR_STATUS_FLAG_CONNECTING","CELLULAR_STATUS_FLAG_DISABLED","CELLULAR_STATUS_FLAG_DISABLING","CELLULAR_STATUS_FLAG_DISCONNECTING","CELLULAR_STATUS_FLAG_ENABLED","CELLULAR_STATUS_FLAG_ENABLING","CELLULAR_STATUS_FLAG_FAILED","CELLULAR_STATUS_FLAG_INITIALIZING","CELLULAR_STATUS_FLAG_LOCKED","CELLULAR_STATUS_FLAG_REGISTERED","CELLULAR_STATUS_FLAG_SEARCHING","CELLULAR_STATUS_FLAG_UNKNOWN","CHANGE_OPERATOR_CONTROL","CHANGE_OPERATOR_CONTROL_ACK","CHANGE_OPERATOR_CONTROL_ACK_DATA","CHANGE_OPERATOR_CONTROL_DATA","COG","COLLISION","COLLISION_DATA","COMMAND_ACK","COMMAND_ACK_DATA","COMMAND_CANCEL","COMMAND_CANCEL_DATA","COMMAND_INT","COMMAND_INT_DATA","COMMAND_LONG","COMMAND_LONG_DATA","COMPONENT_INFORMATION","COMPONENT_INFORMATION_DATA","COMPONENT_METADATA","COMPONENT_METADATA_DATA","COMP_METADATA_TYPE_ACTUATORS","COMP_METADATA_TYPE_COMMANDS","COMP_METADATA_TYPE_EVENTS","COMP_METADATA_TYPE_GENERAL","COMP_METADATA_TYPE_PARAMETER","COMP_METADATA_TYPE_PERIPHERALS","CONTROL_SYSTEM_STATE","CONTROL_SYSTEM_STATE_DATA","CURRENT_EVENT_SEQUENCE","CURRENT_EVENT_SEQUENCE_DATA","CameraCapFlags","CameraMode","CameraTrackingMode","CameraTrackingStatusFlags","CameraTrackingTargetData","CameraZoomType","CanFilterOp","CellularConfigResponse","CellularNetworkFailedReason","CellularNetworkRadioType","CellularStatusFlag","CompMetadataType","DATA_STREAM","DATA_STREAM_DATA","DATA_TRANSMISSION_HANDSHAKE","DATA_TRANSMISSION_HANDSHAKE_DATA","DEBUG","DEBUG_DATA","DEBUG_FLOAT_ARRAY","DEBUG_FLOAT_ARRAY_DATA","DEBUG_VECT","DEBUG_VECT_DATA","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DISTANCE_SENSOR","DISTANCE_SENSOR_DATA","EFI_STATUS","EFI_STATUS_DATA","ENCAPSULATED_DATA","ENCAPSULATED_DATA_DATA","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ESC_CONNECTION_TYPE_CAN","ESC_CONNECTION_TYPE_DSHOT","ESC_CONNECTION_TYPE_I2C","ESC_CONNECTION_TYPE_ONESHOT","ESC_CONNECTION_TYPE_PPM","ESC_CONNECTION_TYPE_SERIAL","ESC_FAILURE_GENERIC","ESC_FAILURE_INCONSISTENT_CMD","ESC_FAILURE_MOTOR_STUCK","ESC_FAILURE_NONE","ESC_FAILURE_OVER_CURRENT","ESC_FAILURE_OVER_RPM","ESC_FAILURE_OVER_TEMPERATURE","ESC_FAILURE_OVER_VOLTAGE","ESC_INFO","ESC_INFO_DATA","ESC_STATUS","ESC_STATUS_DATA","ESTIMATOR_ACCEL_ERROR","ESTIMATOR_ATTITUDE","ESTIMATOR_CONST_POS_MODE","ESTIMATOR_GPS_GLITCH","ESTIMATOR_POS_HORIZ_ABS","ESTIMATOR_POS_HORIZ_REL","ESTIMATOR_POS_VERT_ABS","ESTIMATOR_POS_VERT_AGL","ESTIMATOR_PRED_POS_HORIZ_ABS","ESTIMATOR_PRED_POS_HORIZ_REL","ESTIMATOR_STATUS","ESTIMATOR_STATUS_DATA","ESTIMATOR_VELOCITY_HORIZ","ESTIMATOR_VELOCITY_VERT","EVENT","EVENT_DATA","EXTENDED_SYS_STATE","EXTENDED_SYS_STATE_DATA","EscConnectionType","EscFailureFlags","EstimatorStatusFlags","FAILURE_TYPE_DELAYED","FAILURE_TYPE_GARBAGE","FAILURE_TYPE_INTERMITTENT","FAILURE_TYPE_OFF","FAILURE_TYPE_OK","FAILURE_TYPE_SLOW","FAILURE_TYPE_STUCK","FAILURE_TYPE_WRONG","FAILURE_UNIT_SENSOR_ACCEL","FAILURE_UNIT_SENSOR_AIRSPEED","FAILURE_UNIT_SENSOR_BARO","FAILURE_UNIT_SENSOR_DISTANCE_SENSOR","FAILURE_UNIT_SENSOR_GPS","FAILURE_UNIT_SENSOR_GYRO","FAILURE_UNIT_SENSOR_MAG","FAILURE_UNIT_SENSOR_OPTICAL_FLOW","FAILURE_UNIT_SENSOR_VIO","FAILURE_UNIT_SYSTEM_AVOIDANCE","FAILURE_UNIT_SYSTEM_BATTERY","FAILURE_UNIT_SYSTEM_MAVLINK_SIGNAL","FAILURE_UNIT_SYSTEM_MOTOR","FAILURE_UNIT_SYSTEM_RC_SIGNAL","FAILURE_UNIT_SYSTEM_SERVO","FENCE_ACTION_GUIDED","FENCE_ACTION_GUIDED_THR_PASS","FENCE_ACTION_HOLD","FENCE_ACTION_LAND","FENCE_ACTION_NONE","FENCE_ACTION_REPORT","FENCE_ACTION_RTL","FENCE_ACTION_TERMINATE","FENCE_BREACH_BOUNDARY","FENCE_BREACH_MAXALT","FENCE_BREACH_MINALT","FENCE_BREACH_NONE","FENCE_MITIGATE_NONE","FENCE_MITIGATE_UNKNOWN","FENCE_MITIGATE_VEL_LIMIT","FENCE_STATUS","FENCE_STATUS_DATA","FILE_TRANSFER_PROTOCOL","FILE_TRANSFER_PROTOCOL_DATA","FIRMWARE_VERSION_TYPE_ALPHA","FIRMWARE_VERSION_TYPE_BETA","FIRMWARE_VERSION_TYPE_DEV","FIRMWARE_VERSION_TYPE_OFFICIAL","FIRMWARE_VERSION_TYPE_RC","FLIGHT_INFORMATION","FLIGHT_INFORMATION_DATA","FOCUS_TYPE_AUTO","FOCUS_TYPE_AUTO_CONTINUOUS","FOCUS_TYPE_AUTO_SINGLE","FOCUS_TYPE_CONTINUOUS","FOCUS_TYPE_METERS","FOCUS_TYPE_RANGE","FOCUS_TYPE_STEP","FOLLOW_TARGET","FOLLOW_TARGET_DATA","FailureType","FailureUnit","FenceAction","FenceBreach","FenceMitigate","FirmwareVersionType","GENERATOR_STATUS","GENERATOR_STATUS_DATA","GIMBAL_DEVICE_ATTITUDE_STATUS","GIMBAL_DEVICE_ATTITUDE_STATUS_DATA","GIMBAL_DEVICE_CAP_FLAGS_HAS_NEUTRAL","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_LOCK","GIMBAL_DEVICE_CAP_FLAGS_HAS_RC_INPUTS","GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_LOCK","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_LOCK","GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_INFINITE_YAW","GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_ERROR_FLAGS_AT_PITCH_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_AT_YAW_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_CALIBRATION_RUNNING","GIMBAL_DEVICE_ERROR_FLAGS_COMMS_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_ENCODER_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_MOTOR_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_NO_MANAGER","GIMBAL_DEVICE_ERROR_FLAGS_POWER_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_SOFTWARE_ERROR","GIMBAL_DEVICE_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_FLAGS_NEUTRAL","GIMBAL_DEVICE_FLAGS_PITCH_LOCK","GIMBAL_DEVICE_FLAGS_RC_EXCLUSIVE","GIMBAL_DEVICE_FLAGS_RC_MIXED","GIMBAL_DEVICE_FLAGS_RETRACT","GIMBAL_DEVICE_FLAGS_ROLL_LOCK","GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME","GIMBAL_DEVICE_FLAGS_YAW_LOCK","GIMBAL_DEVICE_INFORMATION","GIMBAL_DEVICE_INFORMATION_DATA","GIMBAL_DEVICE_SET_ATTITUDE","GIMBAL_DEVICE_SET_ATTITUDE_DATA","GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_GLOBAL","GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_LOCAL","GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_LOCK","GIMBAL_MANAGER_CAP_FLAGS_HAS_RC_INPUTS","GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_LOCK","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK","GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_INFINITE_YAW","GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_NEUTRAL","GIMBAL_MANAGER_FLAGS_PITCH_LOCK","GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE","GIMBAL_MANAGER_FLAGS_RC_MIXED","GIMBAL_MANAGER_FLAGS_RETRACT","GIMBAL_MANAGER_FLAGS_ROLL_LOCK","GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME","GIMBAL_MANAGER_FLAGS_YAW_LOCK","GIMBAL_MANAGER_INFORMATION","GIMBAL_MANAGER_INFORMATION_DATA","GIMBAL_MANAGER_SET_ATTITUDE","GIMBAL_MANAGER_SET_ATTITUDE_DATA","GIMBAL_MANAGER_SET_MANUAL_CONTROL","GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA","GIMBAL_MANAGER_SET_PITCHYAW","GIMBAL_MANAGER_SET_PITCHYAW_DATA","GIMBAL_MANAGER_STATUS","GIMBAL_MANAGER_STATUS_DATA","GLOBAL_POSITION_INT","GLOBAL_POSITION_INT_COV","GLOBAL_POSITION_INT_COV_DATA","GLOBAL_POSITION_INT_DATA","GLOBAL_VISION_POSITION_ESTIMATE","GLOBAL_VISION_POSITION_ESTIMATE_DATA","GPS2_RAW","GPS2_RAW_DATA","GPS2_RTK","GPS2_RTK_DATA","GPS_FIX_TYPE_2D_FIX","GPS_FIX_TYPE_3D_FIX","GPS_FIX_TYPE_DGPS","GPS_FIX_TYPE_NO_FIX","GPS_FIX_TYPE_NO_GPS","GPS_FIX_TYPE_PPP","GPS_FIX_TYPE_RTK_FIXED","GPS_FIX_TYPE_RTK_FLOAT","GPS_FIX_TYPE_STATIC","GPS_GLOBAL_ORIGIN","GPS_GLOBAL_ORIGIN_DATA","GPS_INJECT_DATA","GPS_INJECT_DATA_DATA","GPS_INPUT","GPS_INPUT_DATA","GPS_INPUT_IGNORE_FLAG_ALT","GPS_INPUT_IGNORE_FLAG_HDOP","GPS_INPUT_IGNORE_FLAG_HORIZONTAL_ACCURACY","GPS_INPUT_IGNORE_FLAG_SPEED_ACCURACY","GPS_INPUT_IGNORE_FLAG_VDOP","GPS_INPUT_IGNORE_FLAG_VEL_HORIZ","GPS_INPUT_IGNORE_FLAG_VEL_VERT","GPS_INPUT_IGNORE_FLAG_VERTICAL_ACCURACY","GPS_RAW_INT","GPS_RAW_INT_DATA","GPS_RTCM_DATA","GPS_RTCM_DATA_DATA","GPS_RTK","GPS_RTK_DATA","GPS_STATUS","GPS_STATUS_DATA","GRIPPER_ACTION_GRAB","GRIPPER_ACTION_RELEASE","GimbalDeviceCapFlags","GimbalDeviceErrorFlags","GimbalDeviceFlags","GimbalManagerCapFlags","GimbalManagerFlags","GpsFixType","GpsInputIgnoreFlags","GripperActions","HEARTBEAT","HEARTBEAT_DATA","HIGHRES_IMU","HIGHRES_IMU_DATA","HIGHRES_IMU_UPDATED_ABS_PRESSURE","HIGHRES_IMU_UPDATED_ALL","HIGHRES_IMU_UPDATED_DIFF_PRESSURE","HIGHRES_IMU_UPDATED_NONE","HIGHRES_IMU_UPDATED_PRESSURE_ALT","HIGHRES_IMU_UPDATED_TEMPERATURE","HIGHRES_IMU_UPDATED_XACC","HIGHRES_IMU_UPDATED_XGYRO","HIGHRES_IMU_UPDATED_XMAG","HIGHRES_IMU_UPDATED_YACC","HIGHRES_IMU_UPDATED_YGYRO","HIGHRES_IMU_UPDATED_YMAG","HIGHRES_IMU_UPDATED_ZACC","HIGHRES_IMU_UPDATED_ZGYRO","HIGHRES_IMU_UPDATED_ZMAG","HIGH_LATENCY","HIGH_LATENCY2","HIGH_LATENCY2_DATA","HIGH_LATENCY_DATA","HIL_ACTUATOR_CONTROLS","HIL_ACTUATOR_CONTROLS_DATA","HIL_CONTROLS","HIL_CONTROLS_DATA","HIL_GPS","HIL_GPS_DATA","HIL_OPTICAL_FLOW","HIL_OPTICAL_FLOW_DATA","HIL_RC_INPUTS_RAW","HIL_RC_INPUTS_RAW_DATA","HIL_SENSOR","HIL_SENSOR_DATA","HIL_SENSOR_UPDATED_ABS_PRESSURE","HIL_SENSOR_UPDATED_DIFF_PRESSURE","HIL_SENSOR_UPDATED_NONE","HIL_SENSOR_UPDATED_PRESSURE_ALT","HIL_SENSOR_UPDATED_RESET","HIL_SENSOR_UPDATED_TEMPERATURE","HIL_SENSOR_UPDATED_XACC","HIL_SENSOR_UPDATED_XGYRO","HIL_SENSOR_UPDATED_XMAG","HIL_SENSOR_UPDATED_YACC","HIL_SENSOR_UPDATED_YGYRO","HIL_SENSOR_UPDATED_YMAG","HIL_SENSOR_UPDATED_ZACC","HIL_SENSOR_UPDATED_ZGYRO","HIL_SENSOR_UPDATED_ZMAG","HIL_STATE","HIL_STATE_DATA","HIL_STATE_QUATERNION","HIL_STATE_QUATERNION_DATA","HL_FAILURE_FLAG_3D_ACCEL","HL_FAILURE_FLAG_3D_GYRO","HL_FAILURE_FLAG_3D_MAG","HL_FAILURE_FLAG_ABSOLUTE_PRESSURE","HL_FAILURE_FLAG_BATTERY","HL_FAILURE_FLAG_DIFFERENTIAL_PRESSURE","HL_FAILURE_FLAG_ENGINE","HL_FAILURE_FLAG_ESTIMATOR","HL_FAILURE_FLAG_GEOFENCE","HL_FAILURE_FLAG_GPS","HL_FAILURE_FLAG_MISSION","HL_FAILURE_FLAG_OFFBOARD_LINK","HL_FAILURE_FLAG_RC_RECEIVER","HL_FAILURE_FLAG_TERRAIN","HOME_POSITION","HOME_POSITION_DATA","HYGROMETER_SENSOR","HYGROMETER_SENSOR_DATA","HighresImuUpdatedFlags","HilSensorUpdatedFlags","HlFailureFlag","ICAO","ICAO_address","ISBD_LINK_STATUS","ISBD_LINK_STATUS_DATA","LANDING_TARGET","LANDING_TARGET_DATA","LANDING_TARGET_TYPE_LIGHT_BEACON","LANDING_TARGET_TYPE_RADIO_BEACON","LANDING_TARGET_TYPE_VISION_FIDUCIAL","LANDING_TARGET_TYPE_VISION_OTHER","LINK_NODE_STATUS","LINK_NODE_STATUS_DATA","LOCAL_POSITION_NED","LOCAL_POSITION_NED_COV","LOCAL_POSITION_NED_COV_DATA","LOCAL_POSITION_NED_DATA","LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET","LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA","LOGGING_ACK","LOGGING_ACK_DATA","LOGGING_DATA","LOGGING_DATA_ACKED","LOGGING_DATA_ACKED_DATA","LOGGING_DATA_DATA","LOG_DATA","LOG_DATA_DATA","LOG_ENTRY","LOG_ENTRY_DATA","LOG_ERASE","LOG_ERASE_DATA","LOG_REQUEST_DATA","LOG_REQUEST_DATA_DATA","LOG_REQUEST_END","LOG_REQUEST_END_DATA","LOG_REQUEST_LIST","LOG_REQUEST_LIST_DATA","LandingTargetType","MAG_CAL_BAD_ORIENTATION","MAG_CAL_BAD_RADIUS","MAG_CAL_FAILED","MAG_CAL_NOT_STARTED","MAG_CAL_REPORT","MAG_CAL_REPORT_DATA","MAG_CAL_RUNNING_STEP_ONE","MAG_CAL_RUNNING_STEP_TWO","MAG_CAL_SUCCESS","MAG_CAL_WAITING_TO_START","MANUAL_CONTROL","MANUAL_CONTROL_DATA","MANUAL_SETPOINT","MANUAL_SETPOINT_DATA","MAVLINK_DATA_STREAM_IMG_BMP","MAVLINK_DATA_STREAM_IMG_JPEG","MAVLINK_DATA_STREAM_IMG_PGM","MAVLINK_DATA_STREAM_IMG_PNG","MAVLINK_DATA_STREAM_IMG_RAW32U","MAVLINK_DATA_STREAM_IMG_RAW8U","MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE","MAV_ARM_AUTH_DENIED_REASON_BAD_WEATHER","MAV_ARM_AUTH_DENIED_REASON_GENERIC","MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT","MAV_ARM_AUTH_DENIED_REASON_NONE","MAV_ARM_AUTH_DENIED_REASON_TIMEOUT","MAV_AUTOPILOT_AEROB","MAV_AUTOPILOT_AIRRAILS","MAV_AUTOPILOT_ARDUPILOTMEGA","MAV_AUTOPILOT_ARMAZILA","MAV_AUTOPILOT_ASLUAV","MAV_AUTOPILOT_AUTOQUAD","MAV_AUTOPILOT_FP","MAV_AUTOPILOT_GENERIC","MAV_AUTOPILOT_GENERIC_MISSION_FULL","MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY","MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY","MAV_AUTOPILOT_INVALID","MAV_AUTOPILOT_OPENPILOT","MAV_AUTOPILOT_PPZ","MAV_AUTOPILOT_PX4","MAV_AUTOPILOT_REFLEX","MAV_AUTOPILOT_RESERVED","MAV_AUTOPILOT_SLUGS","MAV_AUTOPILOT_SMACCMPILOT","MAV_AUTOPILOT_SMARTAP","MAV_AUTOPILOT_UDB","MAV_BATTERY_CHARGE_STATE_CHARGING","MAV_BATTERY_CHARGE_STATE_CRITICAL","MAV_BATTERY_CHARGE_STATE_EMERGENCY","MAV_BATTERY_CHARGE_STATE_FAILED","MAV_BATTERY_CHARGE_STATE_LOW","MAV_BATTERY_CHARGE_STATE_OK","MAV_BATTERY_CHARGE_STATE_UNDEFINED","MAV_BATTERY_CHARGE_STATE_UNHEALTHY","MAV_BATTERY_FAULT_CELL_FAIL","MAV_BATTERY_FAULT_DEEP_DISCHARGE","MAV_BATTERY_FAULT_INCOMPATIBLE_FIRMWARE","MAV_BATTERY_FAULT_INCOMPATIBLE_VOLTAGE","MAV_BATTERY_FAULT_OVER_CURRENT","MAV_BATTERY_FAULT_OVER_TEMPERATURE","MAV_BATTERY_FAULT_SPIKES","MAV_BATTERY_FAULT_UNDER_TEMPERATURE","MAV_BATTERY_FUNCTION_ALL","MAV_BATTERY_FUNCTION_AVIONICS","MAV_BATTERY_FUNCTION_PAYLOAD","MAV_BATTERY_FUNCTION_PROPULSION","MAV_BATTERY_FUNCTION_UNKNOWN","MAV_BATTERY_MODE_AUTO_DISCHARGING","MAV_BATTERY_MODE_HOT_SWAP","MAV_BATTERY_MODE_UNKNOWN","MAV_BATTERY_TYPE_LIFE","MAV_BATTERY_TYPE_LION","MAV_BATTERY_TYPE_LIPO","MAV_BATTERY_TYPE_NIMH","MAV_BATTERY_TYPE_UNKNOWN","MAV_CMD_ACK_ERR_ACCESS_DENIED","MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE","MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED","MAV_CMD_ACK_ERR_FAIL","MAV_CMD_ACK_ERR_NOT_SUPPORTED","MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE","MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE","MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE","MAV_CMD_ACK_OK","MAV_CMD_ACTUATOR_TEST","MAV_CMD_AIRFRAME_CONFIGURATION","MAV_CMD_ARM_AUTHORIZATION_REQUEST","MAV_CMD_CAMERA_STOP_TRACKING","MAV_CMD_CAMERA_TRACK_POINT","MAV_CMD_CAMERA_TRACK_RECTANGLE","MAV_CMD_CAN_FORWARD","MAV_CMD_COMPONENT_ARM_DISARM","MAV_CMD_CONDITION_CHANGE_ALT","MAV_CMD_CONDITION_DELAY","MAV_CMD_CONDITION_DISTANCE","MAV_CMD_CONDITION_GATE","MAV_CMD_CONDITION_LAST","MAV_CMD_CONDITION_YAW","MAV_CMD_CONFIGURE_ACTUATOR","MAV_CMD_CONTROL_HIGH_LATENCY","MAV_CMD_DO_ADSB_OUT_IDENT","MAV_CMD_DO_AUTOTUNE_ENABLE","MAV_CMD_DO_CHANGE_ALTITUDE","MAV_CMD_DO_CHANGE_SPEED","MAV_CMD_DO_CONTROL_VIDEO","MAV_CMD_DO_DIGICAM_CONFIGURE","MAV_CMD_DO_DIGICAM_CONTROL","MAV_CMD_DO_ENGINE_CONTROL","MAV_CMD_DO_FENCE_ENABLE","MAV_CMD_DO_FLIGHTTERMINATION","MAV_CMD_DO_FOLLOW","MAV_CMD_DO_FOLLOW_REPOSITION","MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE","MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW","MAV_CMD_DO_GO_AROUND","MAV_CMD_DO_GRIPPER","MAV_CMD_DO_GUIDED_LIMITS","MAV_CMD_DO_GUIDED_MASTER","MAV_CMD_DO_INVERTED_FLIGHT","MAV_CMD_DO_JUMP","MAV_CMD_DO_JUMP_TAG","MAV_CMD_DO_LAND_START","MAV_CMD_DO_LAST","MAV_CMD_DO_MOTOR_TEST","MAV_CMD_DO_MOUNT_CONFIGURE","MAV_CMD_DO_MOUNT_CONTROL","MAV_CMD_DO_MOUNT_CONTROL_QUAT","MAV_CMD_DO_ORBIT","MAV_CMD_DO_PARACHUTE","MAV_CMD_DO_PAUSE_CONTINUE","MAV_CMD_DO_RALLY_LAND","MAV_CMD_DO_REPEAT_RELAY","MAV_CMD_DO_REPEAT_SERVO","MAV_CMD_DO_REPOSITION","MAV_CMD_DO_SET_ACTUATOR","MAV_CMD_DO_SET_CAM_TRIGG_DIST","MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL","MAV_CMD_DO_SET_HOME","MAV_CMD_DO_SET_MISSION_CURRENT","MAV_CMD_DO_SET_MODE","MAV_CMD_DO_SET_PARAMETER","MAV_CMD_DO_SET_RELAY","MAV_CMD_DO_SET_REVERSE","MAV_CMD_DO_SET_ROI","MAV_CMD_DO_SET_ROI_LOCATION","MAV_CMD_DO_SET_ROI_NONE","MAV_CMD_DO_SET_ROI_SYSID","MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET","MAV_CMD_DO_SET_SERVO","MAV_CMD_DO_TRIGGER_CONTROL","MAV_CMD_DO_VTOL_TRANSITION","MAV_CMD_DO_WINCH","MAV_CMD_FIXED_MAG_CAL_YAW","MAV_CMD_GET_HOME_POSITION","MAV_CMD_GET_MESSAGE_INTERVAL","MAV_CMD_ILLUMINATOR_ON_OFF","MAV_CMD_IMAGE_START_CAPTURE","MAV_CMD_IMAGE_STOP_CAPTURE","MAV_CMD_INJECT_FAILURE","MAV_CMD_JUMP_TAG","MAV_CMD_LOGGING_START","MAV_CMD_LOGGING_STOP","MAV_CMD_MISSION_START","MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT","MAV_CMD_NAV_DELAY","MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION","MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION","MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION","MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION","MAV_CMD_NAV_FENCE_RETURN_POINT","MAV_CMD_NAV_FOLLOW","MAV_CMD_NAV_GUIDED_ENABLE","MAV_CMD_NAV_LAND","MAV_CMD_NAV_LAND_LOCAL","MAV_CMD_NAV_LAST","MAV_CMD_NAV_LOITER_TIME","MAV_CMD_NAV_LOITER_TO_ALT","MAV_CMD_NAV_LOITER_TURNS","MAV_CMD_NAV_LOITER_UNLIM","MAV_CMD_NAV_PATHPLANNING","MAV_CMD_NAV_PAYLOAD_PLACE","MAV_CMD_NAV_RALLY_POINT","MAV_CMD_NAV_RETURN_TO_LAUNCH","MAV_CMD_NAV_ROI","MAV_CMD_NAV_SET_YAW_SPEED","MAV_CMD_NAV_SPLINE_WAYPOINT","MAV_CMD_NAV_TAKEOFF","MAV_CMD_NAV_TAKEOFF_LOCAL","MAV_CMD_NAV_VTOL_LAND","MAV_CMD_NAV_VTOL_TAKEOFF","MAV_CMD_NAV_WAYPOINT","MAV_CMD_OBLIQUE_SURVEY","MAV_CMD_OVERRIDE_GOTO","MAV_CMD_PANORAMA_CREATE","MAV_CMD_PAYLOAD_CONTROL_DEPLOY","MAV_CMD_PAYLOAD_PREPARE_DEPLOY","MAV_CMD_PREFLIGHT_CALIBRATION","MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN","MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS","MAV_CMD_PREFLIGHT_STORAGE","MAV_CMD_PREFLIGHT_UAVCAN","MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES","MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS","MAV_CMD_REQUEST_CAMERA_IMAGE_CAPTURE","MAV_CMD_REQUEST_CAMERA_INFORMATION","MAV_CMD_REQUEST_CAMERA_SETTINGS","MAV_CMD_REQUEST_FLIGHT_INFORMATION","MAV_CMD_REQUEST_MESSAGE","MAV_CMD_REQUEST_PROTOCOL_VERSION","MAV_CMD_REQUEST_STORAGE_INFORMATION","MAV_CMD_REQUEST_VIDEO_STREAM_INFORMATION","MAV_CMD_REQUEST_VIDEO_STREAM_STATUS","MAV_CMD_RESET_CAMERA_SETTINGS","MAV_CMD_RUN_PREARM_CHECKS","MAV_CMD_SET_CAMERA_FOCUS","MAV_CMD_SET_CAMERA_MODE","MAV_CMD_SET_CAMERA_ZOOM","MAV_CMD_SET_GUIDED_SUBMODE_CIRCLE","MAV_CMD_SET_GUIDED_SUBMODE_STANDARD","MAV_CMD_SET_MESSAGE_INTERVAL","MAV_CMD_SET_STORAGE_USAGE","MAV_CMD_SPATIAL_USER_1","MAV_CMD_SPATIAL_USER_2","MAV_CMD_SPATIAL_USER_3","MAV_CMD_SPATIAL_USER_4","MAV_CMD_SPATIAL_USER_5","MAV_CMD_START_RX_PAIR","MAV_CMD_STORAGE_FORMAT","MAV_CMD_UAVCAN_GET_NODE_INFO","MAV_CMD_USER_1","MAV_CMD_USER_2","MAV_CMD_USER_3","MAV_CMD_USER_4","MAV_CMD_USER_5","MAV_CMD_VIDEO_START_CAPTURE","MAV_CMD_VIDEO_START_STREAMING","MAV_CMD_VIDEO_STOP_CAPTURE","MAV_CMD_VIDEO_STOP_STREAMING","MAV_CMD_WAYPOINT_USER_1","MAV_CMD_WAYPOINT_USER_2","MAV_CMD_WAYPOINT_USER_3","MAV_CMD_WAYPOINT_USER_4","MAV_CMD_WAYPOINT_USER_5","MAV_COLLISION_ACTION_ASCEND_OR_DESCEND","MAV_COLLISION_ACTION_HOVER","MAV_COLLISION_ACTION_MOVE_HORIZONTALLY","MAV_COLLISION_ACTION_MOVE_PERPENDICULAR","MAV_COLLISION_ACTION_NONE","MAV_COLLISION_ACTION_REPORT","MAV_COLLISION_ACTION_RTL","MAV_COLLISION_SRC_ADSB","MAV_COLLISION_SRC_MAVLINK_GPS_GLOBAL_INT","MAV_COLLISION_THREAT_LEVEL_HIGH","MAV_COLLISION_THREAT_LEVEL_LOW","MAV_COLLISION_THREAT_LEVEL_NONE","MAV_COMP_ID_ADSB","MAV_COMP_ID_ALL","MAV_COMP_ID_AUTOPILOT1","MAV_COMP_ID_BATTERY","MAV_COMP_ID_BATTERY2","MAV_COMP_ID_CAMERA","MAV_COMP_ID_CAMERA2","MAV_COMP_ID_CAMERA3","MAV_COMP_ID_CAMERA4","MAV_COMP_ID_CAMERA5","MAV_COMP_ID_CAMERA6","MAV_COMP_ID_FLARM","MAV_COMP_ID_GIMBAL","MAV_COMP_ID_GIMBAL2","MAV_COMP_ID_GIMBAL3","MAV_COMP_ID_GIMBAL4","MAV_COMP_ID_GIMBAL5","MAV_COMP_ID_GIMBAL6","MAV_COMP_ID_GPS","MAV_COMP_ID_GPS2","MAV_COMP_ID_IMU","MAV_COMP_ID_IMU_2","MAV_COMP_ID_IMU_3","MAV_COMP_ID_LOG","MAV_COMP_ID_MAVCAN","MAV_COMP_ID_MISSIONPLANNER","MAV_COMP_ID_OBSTACLE_AVOIDANCE","MAV_COMP_ID_ODID_TXRX_1","MAV_COMP_ID_ODID_TXRX_2","MAV_COMP_ID_ODID_TXRX_3","MAV_COMP_ID_ONBOARD_COMPUTER","MAV_COMP_ID_ONBOARD_COMPUTER2","MAV_COMP_ID_ONBOARD_COMPUTER3","MAV_COMP_ID_ONBOARD_COMPUTER4","MAV_COMP_ID_OSD","MAV_COMP_ID_PAIRING_MANAGER","MAV_COMP_ID_PARACHUTE","MAV_COMP_ID_PATHPLANNER","MAV_COMP_ID_PERIPHERAL","MAV_COMP_ID_QX1_GIMBAL","MAV_COMP_ID_SERVO1","MAV_COMP_ID_SERVO10","MAV_COMP_ID_SERVO11","MAV_COMP_ID_SERVO12","MAV_COMP_ID_SERVO13","MAV_COMP_ID_SERVO14","MAV_COMP_ID_SERVO2","MAV_COMP_ID_SERVO3","MAV_COMP_ID_SERVO4","MAV_COMP_ID_SERVO5","MAV_COMP_ID_SERVO6","MAV_COMP_ID_SERVO7","MAV_COMP_ID_SERVO8","MAV_COMP_ID_SERVO9","MAV_COMP_ID_SYSTEM_CONTROL","MAV_COMP_ID_TELEMETRY_RADIO","MAV_COMP_ID_TUNNEL_NODE","MAV_COMP_ID_UART_BRIDGE","MAV_COMP_ID_UDP_BRIDGE","MAV_COMP_ID_USER1","MAV_COMP_ID_USER10","MAV_COMP_ID_USER11","MAV_COMP_ID_USER12","MAV_COMP_ID_USER13","MAV_COMP_ID_USER14","MAV_COMP_ID_USER15","MAV_COMP_ID_USER16","MAV_COMP_ID_USER17","MAV_COMP_ID_USER18","MAV_COMP_ID_USER19","MAV_COMP_ID_USER2","MAV_COMP_ID_USER20","MAV_COMP_ID_USER21","MAV_COMP_ID_USER22","MAV_COMP_ID_USER23","MAV_COMP_ID_USER24","MAV_COMP_ID_USER25","MAV_COMP_ID_USER26","MAV_COMP_ID_USER27","MAV_COMP_ID_USER28","MAV_COMP_ID_USER29","MAV_COMP_ID_USER3","MAV_COMP_ID_USER30","MAV_COMP_ID_USER31","MAV_COMP_ID_USER32","MAV_COMP_ID_USER33","MAV_COMP_ID_USER34","MAV_COMP_ID_USER35","MAV_COMP_ID_USER36","MAV_COMP_ID_USER37","MAV_COMP_ID_USER38","MAV_COMP_ID_USER39","MAV_COMP_ID_USER4","MAV_COMP_ID_USER40","MAV_COMP_ID_USER41","MAV_COMP_ID_USER42","MAV_COMP_ID_USER43","MAV_COMP_ID_USER45","MAV_COMP_ID_USER46","MAV_COMP_ID_USER47","MAV_COMP_ID_USER48","MAV_COMP_ID_USER49","MAV_COMP_ID_USER5","MAV_COMP_ID_USER50","MAV_COMP_ID_USER51","MAV_COMP_ID_USER52","MAV_COMP_ID_USER53","MAV_COMP_ID_USER54","MAV_COMP_ID_USER55","MAV_COMP_ID_USER56","MAV_COMP_ID_USER57","MAV_COMP_ID_USER58","MAV_COMP_ID_USER59","MAV_COMP_ID_USER6","MAV_COMP_ID_USER60","MAV_COMP_ID_USER61","MAV_COMP_ID_USER62","MAV_COMP_ID_USER63","MAV_COMP_ID_USER64","MAV_COMP_ID_USER65","MAV_COMP_ID_USER66","MAV_COMP_ID_USER67","MAV_COMP_ID_USER68","MAV_COMP_ID_USER69","MAV_COMP_ID_USER7","MAV_COMP_ID_USER70","MAV_COMP_ID_USER71","MAV_COMP_ID_USER72","MAV_COMP_ID_USER73","MAV_COMP_ID_USER74","MAV_COMP_ID_USER75","MAV_COMP_ID_USER8","MAV_COMP_ID_USER9","MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY","MAV_COMP_ID_WINCH","MAV_DATA_STREAM_ALL","MAV_DATA_STREAM_EXTENDED_STATUS","MAV_DATA_STREAM_EXTRA1","MAV_DATA_STREAM_EXTRA2","MAV_DATA_STREAM_EXTRA3","MAV_DATA_STREAM_POSITION","MAV_DATA_STREAM_RAW_CONTROLLER","MAV_DATA_STREAM_RAW_SENSORS","MAV_DATA_STREAM_RC_CHANNELS","MAV_DISTANCE_SENSOR_INFRARED","MAV_DISTANCE_SENSOR_LASER","MAV_DISTANCE_SENSOR_RADAR","MAV_DISTANCE_SENSOR_ULTRASOUND","MAV_DISTANCE_SENSOR_UNKNOWN","MAV_DO_REPOSITION_FLAGS_CHANGE_MODE","MAV_ESTIMATOR_TYPE_AUTOPILOT","MAV_ESTIMATOR_TYPE_GPS","MAV_ESTIMATOR_TYPE_GPS_INS","MAV_ESTIMATOR_TYPE_LIDAR","MAV_ESTIMATOR_TYPE_MOCAP","MAV_ESTIMATOR_TYPE_NAIVE","MAV_ESTIMATOR_TYPE_UNKNOWN","MAV_ESTIMATOR_TYPE_VIO","MAV_ESTIMATOR_TYPE_VISION","MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET","MAV_EVENT_ERROR_REASON_UNAVAILABLE","MAV_FRAME_BODY_FRD","MAV_FRAME_BODY_NED","MAV_FRAME_BODY_OFFSET_NED","MAV_FRAME_GLOBAL","MAV_FRAME_GLOBAL_INT","MAV_FRAME_GLOBAL_RELATIVE_ALT","MAV_FRAME_GLOBAL_RELATIVE_ALT_INT","MAV_FRAME_GLOBAL_TERRAIN_ALT","MAV_FRAME_GLOBAL_TERRAIN_ALT_INT","MAV_FRAME_LOCAL_ENU","MAV_FRAME_LOCAL_FLU","MAV_FRAME_LOCAL_FRD","MAV_FRAME_LOCAL_NED","MAV_FRAME_LOCAL_OFFSET_NED","MAV_FRAME_MISSION","MAV_FRAME_RESERVED_13","MAV_FRAME_RESERVED_14","MAV_FRAME_RESERVED_15","MAV_FRAME_RESERVED_16","MAV_FRAME_RESERVED_17","MAV_FRAME_RESERVED_18","MAV_FRAME_RESERVED_19","MAV_FTP_ERR_EOF","MAV_FTP_ERR_FAIL","MAV_FTP_ERR_FAILERRNO","MAV_FTP_ERR_FILEEXISTS","MAV_FTP_ERR_FILENOTFOUND","MAV_FTP_ERR_FILEPROTECTED","MAV_FTP_ERR_INVALIDDATASIZE","MAV_FTP_ERR_INVALIDSESSION","MAV_FTP_ERR_NONE","MAV_FTP_ERR_NOSESSIONSAVAILABLE","MAV_FTP_ERR_UNKNOWNCOMMAND","MAV_FTP_OPCODE_ACK","MAV_FTP_OPCODE_BURSTREADFILE","MAV_FTP_OPCODE_CALCFILECRC","MAV_FTP_OPCODE_CREATEDIRECTORY","MAV_FTP_OPCODE_CREATEFILE","MAV_FTP_OPCODE_LISTDIRECTORY","MAV_FTP_OPCODE_NAK","MAV_FTP_OPCODE_NONE","MAV_FTP_OPCODE_OPENFILERO","MAV_FTP_OPCODE_OPENFILEWO","MAV_FTP_OPCODE_READFILE","MAV_FTP_OPCODE_REMOVEDIRECTORY","MAV_FTP_OPCODE_REMOVEFILE","MAV_FTP_OPCODE_RENAME","MAV_FTP_OPCODE_RESETSESSION","MAV_FTP_OPCODE_TERMINATESESSION","MAV_FTP_OPCODE_TRUNCATEFILE","MAV_FTP_OPCODE_WRITEFILE","MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT","MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT","MAV_GENERATOR_STATUS_FLAG_CHARGING","MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING","MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING","MAV_GENERATOR_STATUS_FLAG_GENERATING","MAV_GENERATOR_STATUS_FLAG_IDLE","MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED","MAV_GENERATOR_STATUS_FLAG_MAXPOWER","MAV_GENERATOR_STATUS_FLAG_OFF","MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT","MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT","MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING","MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT","MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT","MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT","MAV_GENERATOR_STATUS_FLAG_READY","MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER","MAV_GENERATOR_STATUS_FLAG_START_INHIBITED","MAV_GENERATOR_STATUS_FLAG_WARMING_UP","MAV_GOTO_DO_CONTINUE","MAV_GOTO_DO_HOLD","MAV_GOTO_HOLD_AT_CURRENT_POSITION","MAV_GOTO_HOLD_AT_SPECIFIED_POSITION","MAV_LANDED_STATE_IN_AIR","MAV_LANDED_STATE_LANDING","MAV_LANDED_STATE_ON_GROUND","MAV_LANDED_STATE_TAKEOFF","MAV_LANDED_STATE_UNDEFINED","MAV_MISSION_ACCEPTED","MAV_MISSION_DENIED","MAV_MISSION_ERROR","MAV_MISSION_INVALID","MAV_MISSION_INVALID_PARAM1","MAV_MISSION_INVALID_PARAM2","MAV_MISSION_INVALID_PARAM3","MAV_MISSION_INVALID_PARAM4","MAV_MISSION_INVALID_PARAM5_X","MAV_MISSION_INVALID_PARAM6_Y","MAV_MISSION_INVALID_PARAM7","MAV_MISSION_INVALID_SEQUENCE","MAV_MISSION_NO_SPACE","MAV_MISSION_OPERATION_CANCELLED","MAV_MISSION_TYPE_ALL","MAV_MISSION_TYPE_FENCE","MAV_MISSION_TYPE_MISSION","MAV_MISSION_TYPE_RALLY","MAV_MISSION_UNSUPPORTED","MAV_MISSION_UNSUPPORTED_FRAME","MAV_MODE_AUTO_ARMED","MAV_MODE_AUTO_DISARMED","MAV_MODE_FLAG_AUTO_ENABLED","MAV_MODE_FLAG_CUSTOM_MODE_ENABLED","MAV_MODE_FLAG_DECODE_POSITION_AUTO","MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE","MAV_MODE_FLAG_DECODE_POSITION_GUIDED","MAV_MODE_FLAG_DECODE_POSITION_HIL","MAV_MODE_FLAG_DECODE_POSITION_MANUAL","MAV_MODE_FLAG_DECODE_POSITION_SAFETY","MAV_MODE_FLAG_DECODE_POSITION_STABILIZE","MAV_MODE_FLAG_DECODE_POSITION_TEST","MAV_MODE_FLAG_GUIDED_ENABLED","MAV_MODE_FLAG_HIL_ENABLED","MAV_MODE_FLAG_MANUAL_INPUT_ENABLED","MAV_MODE_FLAG_SAFETY_ARMED","MAV_MODE_FLAG_STABILIZE_ENABLED","MAV_MODE_FLAG_TEST_ENABLED","MAV_MODE_GUIDED_ARMED","MAV_MODE_GUIDED_DISARMED","MAV_MODE_MANUAL_ARMED","MAV_MODE_MANUAL_DISARMED","MAV_MODE_PREFLIGHT","MAV_MODE_STABILIZE_ARMED","MAV_MODE_STABILIZE_DISARMED","MAV_MODE_TEST_ARMED","MAV_MODE_TEST_DISARMED","MAV_MOUNT_MODE_GPS_POINT","MAV_MOUNT_MODE_HOME_LOCATION","MAV_MOUNT_MODE_MAVLINK_TARGETING","MAV_MOUNT_MODE_NEUTRAL","MAV_MOUNT_MODE_RC_TARGETING","MAV_MOUNT_MODE_RETRACT","MAV_MOUNT_MODE_SYSID_TARGET","MAV_ODID_ARM_STATUS_GOOD_TO_ARM","MAV_ODID_ARM_STATUS_PRE_ARM_FAIL_GENERIC","MAV_ODID_AUTH_TYPE_MESSAGE_SET_SIGNATURE","MAV_ODID_AUTH_TYPE_NETWORK_REMOTE_ID","MAV_ODID_AUTH_TYPE_NONE","MAV_ODID_AUTH_TYPE_OPERATOR_ID_SIGNATURE","MAV_ODID_AUTH_TYPE_SPECIFIC_AUTHENTICATION","MAV_ODID_AUTH_TYPE_UAS_ID_SIGNATURE","MAV_ODID_CATEGORY_EU_CERTIFIED","MAV_ODID_CATEGORY_EU_OPEN","MAV_ODID_CATEGORY_EU_SPECIFIC","MAV_ODID_CATEGORY_EU_UNDECLARED","MAV_ODID_CLASSIFICATION_TYPE_EU","MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED","MAV_ODID_CLASS_EU_CLASS_0","MAV_ODID_CLASS_EU_CLASS_1","MAV_ODID_CLASS_EU_CLASS_2","MAV_ODID_CLASS_EU_CLASS_3","MAV_ODID_CLASS_EU_CLASS_4","MAV_ODID_CLASS_EU_CLASS_5","MAV_ODID_CLASS_EU_CLASS_6","MAV_ODID_CLASS_EU_UNDECLARED","MAV_ODID_DESC_TYPE_EMERGENCY","MAV_ODID_DESC_TYPE_EXTENDED_STATUS","MAV_ODID_DESC_TYPE_TEXT","MAV_ODID_HEIGHT_REF_OVER_GROUND","MAV_ODID_HEIGHT_REF_OVER_TAKEOFF","MAV_ODID_HOR_ACC_0_05NM","MAV_ODID_HOR_ACC_0_1NM","MAV_ODID_HOR_ACC_0_3NM","MAV_ODID_HOR_ACC_0_5NM","MAV_ODID_HOR_ACC_10NM","MAV_ODID_HOR_ACC_10_METER","MAV_ODID_HOR_ACC_1NM","MAV_ODID_HOR_ACC_1_METER","MAV_ODID_HOR_ACC_2NM","MAV_ODID_HOR_ACC_30_METER","MAV_ODID_HOR_ACC_3_METER","MAV_ODID_HOR_ACC_4NM","MAV_ODID_HOR_ACC_UNKNOWN","MAV_ODID_ID_TYPE_CAA_REGISTRATION_ID","MAV_ODID_ID_TYPE_NONE","MAV_ODID_ID_TYPE_SERIAL_NUMBER","MAV_ODID_ID_TYPE_SPECIFIC_SESSION_ID","MAV_ODID_ID_TYPE_UTM_ASSIGNED_UUID","MAV_ODID_OPERATOR_ID_TYPE_CAA","MAV_ODID_OPERATOR_LOCATION_TYPE_FIXED","MAV_ODID_OPERATOR_LOCATION_TYPE_LIVE_GNSS","MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF","MAV_ODID_SPEED_ACC_0_3_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_10_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_1_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_3_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_UNKNOWN","MAV_ODID_STATUS_AIRBORNE","MAV_ODID_STATUS_EMERGENCY","MAV_ODID_STATUS_GROUND","MAV_ODID_STATUS_REMOTE_ID_SYSTEM_FAILURE","MAV_ODID_STATUS_UNDECLARED","MAV_ODID_TIME_ACC_0_1_SECOND","MAV_ODID_TIME_ACC_0_2_SECOND","MAV_ODID_TIME_ACC_0_3_SECOND","MAV_ODID_TIME_ACC_0_4_SECOND","MAV_ODID_TIME_ACC_0_5_SECOND","MAV_ODID_TIME_ACC_0_6_SECOND","MAV_ODID_TIME_ACC_0_7_SECOND","MAV_ODID_TIME_ACC_0_8_SECOND","MAV_ODID_TIME_ACC_0_9_SECOND","MAV_ODID_TIME_ACC_1_0_SECOND","MAV_ODID_TIME_ACC_1_1_SECOND","MAV_ODID_TIME_ACC_1_2_SECOND","MAV_ODID_TIME_ACC_1_3_SECOND","MAV_ODID_TIME_ACC_1_4_SECOND","MAV_ODID_TIME_ACC_1_5_SECOND","MAV_ODID_TIME_ACC_UNKNOWN","MAV_ODID_UA_TYPE_AEROPLANE","MAV_ODID_UA_TYPE_AIRSHIP","MAV_ODID_UA_TYPE_CAPTIVE_BALLOON","MAV_ODID_UA_TYPE_FREE_BALLOON","MAV_ODID_UA_TYPE_FREE_FALL_PARACHUTE","MAV_ODID_UA_TYPE_GLIDER","MAV_ODID_UA_TYPE_GROUND_OBSTACLE","MAV_ODID_UA_TYPE_GYROPLANE","MAV_ODID_UA_TYPE_HELICOPTER_OR_MULTIROTOR","MAV_ODID_UA_TYPE_HYBRID_LIFT","MAV_ODID_UA_TYPE_KITE","MAV_ODID_UA_TYPE_NONE","MAV_ODID_UA_TYPE_ORNITHOPTER","MAV_ODID_UA_TYPE_OTHER","MAV_ODID_UA_TYPE_ROCKET","MAV_ODID_UA_TYPE_TETHERED_POWERED_AIRCRAFT","MAV_ODID_VER_ACC_10_METER","MAV_ODID_VER_ACC_150_METER","MAV_ODID_VER_ACC_1_METER","MAV_ODID_VER_ACC_25_METER","MAV_ODID_VER_ACC_3_METER","MAV_ODID_VER_ACC_45_METER","MAV_ODID_VER_ACC_UNKNOWN","MAV_PARAM_EXT_TYPE_CUSTOM","MAV_PARAM_EXT_TYPE_INT16","MAV_PARAM_EXT_TYPE_INT32","MAV_PARAM_EXT_TYPE_INT64","MAV_PARAM_EXT_TYPE_INT8","MAV_PARAM_EXT_TYPE_REAL32","MAV_PARAM_EXT_TYPE_REAL64","MAV_PARAM_EXT_TYPE_UINT16","MAV_PARAM_EXT_TYPE_UINT32","MAV_PARAM_EXT_TYPE_UINT64","MAV_PARAM_EXT_TYPE_UINT8","MAV_PARAM_TYPE_INT16","MAV_PARAM_TYPE_INT32","MAV_PARAM_TYPE_INT64","MAV_PARAM_TYPE_INT8","MAV_PARAM_TYPE_REAL32","MAV_PARAM_TYPE_REAL64","MAV_PARAM_TYPE_UINT16","MAV_PARAM_TYPE_UINT32","MAV_PARAM_TYPE_UINT64","MAV_PARAM_TYPE_UINT8","MAV_POWER_STATUS_BRICK_VALID","MAV_POWER_STATUS_CHANGED","MAV_POWER_STATUS_PERIPH_HIPOWER_OVERCURRENT","MAV_POWER_STATUS_PERIPH_OVERCURRENT","MAV_POWER_STATUS_SERVO_VALID","MAV_POWER_STATUS_USB_CONNECTED","MAV_PROTOCOL_CAPABILITY_COMMAND_INT","MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION","MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION","MAV_PROTOCOL_CAPABILITY_FTP","MAV_PROTOCOL_CAPABILITY_MAVLINK2","MAV_PROTOCOL_CAPABILITY_MISSION_FENCE","MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT","MAV_PROTOCOL_CAPABILITY_MISSION_INT","MAV_PROTOCOL_CAPABILITY_MISSION_RALLY","MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE","MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST","MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT","MAV_PROTOCOL_CAPABILITY_RESERVED2","MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET","MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET","MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT","MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED","MAV_PROTOCOL_CAPABILITY_TERRAIN","MAV_RESULT_ACCEPTED","MAV_RESULT_CANCELLED","MAV_RESULT_DENIED","MAV_RESULT_FAILED","MAV_RESULT_IN_PROGRESS","MAV_RESULT_TEMPORARILY_REJECTED","MAV_RESULT_UNSUPPORTED","MAV_ROI_LOCATION","MAV_ROI_NONE","MAV_ROI_TARGET","MAV_ROI_WPINDEX","MAV_ROI_WPNEXT","MAV_SENSOR_ROTATION_CUSTOM","MAV_SENSOR_ROTATION_NONE","MAV_SENSOR_ROTATION_PITCH_180","MAV_SENSOR_ROTATION_PITCH_180_YAW_270","MAV_SENSOR_ROTATION_PITCH_180_YAW_90","MAV_SENSOR_ROTATION_PITCH_270","MAV_SENSOR_ROTATION_PITCH_315","MAV_SENSOR_ROTATION_PITCH_90","MAV_SENSOR_ROTATION_ROLL_180","MAV_SENSOR_ROTATION_ROLL_180_PITCH_270","MAV_SENSOR_ROTATION_ROLL_180_PITCH_90","MAV_SENSOR_ROTATION_ROLL_180_YAW_135","MAV_SENSOR_ROTATION_ROLL_180_YAW_225","MAV_SENSOR_ROTATION_ROLL_180_YAW_270","MAV_SENSOR_ROTATION_ROLL_180_YAW_315","MAV_SENSOR_ROTATION_ROLL_180_YAW_45","MAV_SENSOR_ROTATION_ROLL_180_YAW_90","MAV_SENSOR_ROTATION_ROLL_270","MAV_SENSOR_ROTATION_ROLL_270_PITCH_180","MAV_SENSOR_ROTATION_ROLL_270_PITCH_270","MAV_SENSOR_ROTATION_ROLL_270_PITCH_90","MAV_SENSOR_ROTATION_ROLL_270_YAW_135","MAV_SENSOR_ROTATION_ROLL_270_YAW_45","MAV_SENSOR_ROTATION_ROLL_270_YAW_90","MAV_SENSOR_ROTATION_ROLL_90","MAV_SENSOR_ROTATION_ROLL_90_PITCH_180","MAV_SENSOR_ROTATION_ROLL_90_PITCH_180_YAW_90","MAV_SENSOR_ROTATION_ROLL_90_PITCH_270","MAV_SENSOR_ROTATION_ROLL_90_PITCH_315","MAV_SENSOR_ROTATION_ROLL_90_PITCH_68_YAW_293","MAV_SENSOR_ROTATION_ROLL_90_PITCH_90","MAV_SENSOR_ROTATION_ROLL_90_YAW_135","MAV_SENSOR_ROTATION_ROLL_90_YAW_270","MAV_SENSOR_ROTATION_ROLL_90_YAW_45","MAV_SENSOR_ROTATION_ROLL_90_YAW_90","MAV_SENSOR_ROTATION_YAW_135","MAV_SENSOR_ROTATION_YAW_180","MAV_SENSOR_ROTATION_YAW_225","MAV_SENSOR_ROTATION_YAW_270","MAV_SENSOR_ROTATION_YAW_315","MAV_SENSOR_ROTATION_YAW_45","MAV_SENSOR_ROTATION_YAW_90","MAV_SEVERITY_ALERT","MAV_SEVERITY_CRITICAL","MAV_SEVERITY_DEBUG","MAV_SEVERITY_EMERGENCY","MAV_SEVERITY_ERROR","MAV_SEVERITY_INFO","MAV_SEVERITY_NOTICE","MAV_SEVERITY_WARNING","MAV_STATE_ACTIVE","MAV_STATE_BOOT","MAV_STATE_CALIBRATING","MAV_STATE_CRITICAL","MAV_STATE_EMERGENCY","MAV_STATE_FLIGHT_TERMINATION","MAV_STATE_POWEROFF","MAV_STATE_STANDBY","MAV_STATE_UNINIT","MAV_SYS_STATUS_AHRS","MAV_SYS_STATUS_EXTENSION_USED","MAV_SYS_STATUS_GEOFENCE","MAV_SYS_STATUS_LOGGING","MAV_SYS_STATUS_OBSTACLE_AVOIDANCE","MAV_SYS_STATUS_PREARM_CHECK","MAV_SYS_STATUS_RECOVERY_SYSTEM","MAV_SYS_STATUS_REVERSE_MOTOR","MAV_SYS_STATUS_SENSOR_3D_ACCEL","MAV_SYS_STATUS_SENSOR_3D_ACCEL2","MAV_SYS_STATUS_SENSOR_3D_GYRO","MAV_SYS_STATUS_SENSOR_3D_GYRO2","MAV_SYS_STATUS_SENSOR_3D_MAG","MAV_SYS_STATUS_SENSOR_3D_MAG2","MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE","MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL","MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION","MAV_SYS_STATUS_SENSOR_BATTERY","MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE","MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH","MAV_SYS_STATUS_SENSOR_GPS","MAV_SYS_STATUS_SENSOR_LASER_POSITION","MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS","MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW","MAV_SYS_STATUS_SENSOR_PROPULSION","MAV_SYS_STATUS_SENSOR_PROXIMITY","MAV_SYS_STATUS_SENSOR_RC_RECEIVER","MAV_SYS_STATUS_SENSOR_SATCOM","MAV_SYS_STATUS_SENSOR_VISION_POSITION","MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL","MAV_SYS_STATUS_SENSOR_YAW_POSITION","MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL","MAV_SYS_STATUS_TERRAIN","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED0","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED1","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED2","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED3","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED4","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED5","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED6","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED7","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED8","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED9","MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN","MAV_TYPE_ADSB","MAV_TYPE_AIRSHIP","MAV_TYPE_ANTENNA_TRACKER","MAV_TYPE_BATTERY","MAV_TYPE_CAMERA","MAV_TYPE_CHARGING_STATION","MAV_TYPE_COAXIAL","MAV_TYPE_DECAROTOR","MAV_TYPE_DODECAROTOR","MAV_TYPE_FIXED_WING","MAV_TYPE_FLAPPING_WING","MAV_TYPE_FLARM","MAV_TYPE_FREE_BALLOON","MAV_TYPE_GCS","MAV_TYPE_GENERIC","MAV_TYPE_GIMBAL","MAV_TYPE_GPS","MAV_TYPE_GROUND_ROVER","MAV_TYPE_HELICOPTER","MAV_TYPE_HEXAROTOR","MAV_TYPE_IMU","MAV_TYPE_KITE","MAV_TYPE_LOG","MAV_TYPE_OCTOROTOR","MAV_TYPE_ODID","MAV_TYPE_ONBOARD_CONTROLLER","MAV_TYPE_OSD","MAV_TYPE_PARACHUTE","MAV_TYPE_PARAFOIL","MAV_TYPE_QUADROTOR","MAV_TYPE_ROCKET","MAV_TYPE_SERVO","MAV_TYPE_SUBMARINE","MAV_TYPE_SURFACE_BOAT","MAV_TYPE_TRICOPTER","MAV_TYPE_VTOL_FIXEDROTOR","MAV_TYPE_VTOL_RESERVED5","MAV_TYPE_VTOL_TAILSITTER","MAV_TYPE_VTOL_TAILSITTER_DUOROTOR","MAV_TYPE_VTOL_TAILSITTER_QUADROTOR","MAV_TYPE_VTOL_TILTROTOR","MAV_TYPE_VTOL_TILTWING","MAV_TYPE_WINCH","MAV_VTOL_STATE_FW","MAV_VTOL_STATE_MC","MAV_VTOL_STATE_TRANSITION_TO_FW","MAV_VTOL_STATE_TRANSITION_TO_MC","MAV_VTOL_STATE_UNDEFINED","MAV_WINCH_STATUS_ABANDON_LINE","MAV_WINCH_STATUS_ARRESTING","MAV_WINCH_STATUS_CLUTCH_ENGAGED","MAV_WINCH_STATUS_DROPPING","MAV_WINCH_STATUS_FULLY_RETRACTED","MAV_WINCH_STATUS_GROUND_SENSE","MAV_WINCH_STATUS_HEALTHY","MAV_WINCH_STATUS_LOAD_LINE","MAV_WINCH_STATUS_LOAD_PAYLOAD","MAV_WINCH_STATUS_LOCKED","MAV_WINCH_STATUS_LOCKING","MAV_WINCH_STATUS_MOVING","MAV_WINCH_STATUS_REDELIVER","MAV_WINCH_STATUS_RETRACTING","MEMORY_VECT","MEMORY_VECT_DATA","MESSAGE_INTERVAL","MESSAGE_INTERVAL_DATA","MISSION_ACK","MISSION_ACK_DATA","MISSION_CLEAR_ALL","MISSION_CLEAR_ALL_DATA","MISSION_COUNT","MISSION_COUNT_DATA","MISSION_CURRENT","MISSION_CURRENT_DATA","MISSION_ITEM","MISSION_ITEM_DATA","MISSION_ITEM_INT","MISSION_ITEM_INT_DATA","MISSION_ITEM_REACHED","MISSION_ITEM_REACHED_DATA","MISSION_READ_PERSISTENT","MISSION_REQUEST","MISSION_REQUEST_DATA","MISSION_REQUEST_INT","MISSION_REQUEST_INT_DATA","MISSION_REQUEST_LIST","MISSION_REQUEST_LIST_DATA","MISSION_REQUEST_PARTIAL_LIST","MISSION_REQUEST_PARTIAL_LIST_DATA","MISSION_RESET_DEFAULT","MISSION_SET_CURRENT","MISSION_SET_CURRENT_DATA","MISSION_STATE_ACTIVE","MISSION_STATE_COMPLETE","MISSION_STATE_NOT_STARTED","MISSION_STATE_NO_MISSION","MISSION_STATE_PAUSED","MISSION_STATE_UNKNOWN","MISSION_WRITE_PARTIAL_LIST","MISSION_WRITE_PARTIAL_LIST_DATA","MISSION_WRITE_PERSISTENT","MMSI","MOTOR_TEST_COMPASS_CAL","MOTOR_TEST_ORDER_BOARD","MOTOR_TEST_ORDER_DEFAULT","MOTOR_TEST_ORDER_SEQUENCE","MOTOR_TEST_THROTTLE_PERCENT","MOTOR_TEST_THROTTLE_PILOT","MOTOR_TEST_THROTTLE_PWM","MOUNT_ORIENTATION","MOUNT_ORIENTATION_DATA","MagCalStatus","MavArmAuthDeniedReason","MavAutopilot","MavBatteryChargeState","MavBatteryFault","MavBatteryFunction","MavBatteryMode","MavBatteryType","MavCmd","MavCmdAck","MavCollisionAction","MavCollisionSrc","MavCollisionThreatLevel","MavComponent","MavDataStream","MavDistanceSensor","MavDoRepositionFlags","MavEstimatorType","MavEventCurrentSequenceFlags","MavEventErrorReason","MavFrame","MavFtpErr","MavFtpOpcode","MavGeneratorStatusFlag","MavGoto","MavLandedState","MavMessage","MavMissionResult","MavMissionType","MavMode","MavModeFlag","MavModeFlagDecodePosition","MavMountMode","MavOdidArmStatus","MavOdidAuthType","MavOdidCategoryEu","MavOdidClassEu","MavOdidClassificationType","MavOdidDescType","MavOdidHeightRef","MavOdidHorAcc","MavOdidIdType","MavOdidOperatorIdType","MavOdidOperatorLocationType","MavOdidSpeedAcc","MavOdidStatus","MavOdidTimeAcc","MavOdidUaType","MavOdidVerAcc","MavParamExtType","MavParamType","MavPowerStatus","MavProtocolCapability","MavResult","MavRoi","MavSensorOrientation","MavSeverity","MavState","MavSysStatusSensor","MavSysStatusSensorExtended","MavTunnelPayloadType","MavType","MavVtolState","MavWinchStatusFlag","MavlinkDataStreamType","MissionState","MotorTestOrder","MotorTestThrottleType","NAMED_VALUE_FLOAT","NAMED_VALUE_FLOAT_DATA","NAMED_VALUE_INT","NAMED_VALUE_INT_DATA","NAV_CONTROLLER_OUTPUT","NAV_CONTROLLER_OUTPUT_DATA","NAV_VTOL_LAND_OPTIONS_DEFAULT","NAV_VTOL_LAND_OPTIONS_FW_DESCENT","NAV_VTOL_LAND_OPTIONS_HOVER_DESCENT","NavVtolLandOptions","OBSTACLE_DISTANCE","OBSTACLE_DISTANCE_DATA","ODOMETRY","ODOMETRY_DATA","ONBOARD_COMPUTER_STATUS","ONBOARD_COMPUTER_STATUS_DATA","OPEN_DRONE_ID_ARM_STATUS","OPEN_DRONE_ID_ARM_STATUS_DATA","OPEN_DRONE_ID_AUTHENTICATION","OPEN_DRONE_ID_AUTHENTICATION_DATA","OPEN_DRONE_ID_BASIC_ID","OPEN_DRONE_ID_BASIC_ID_DATA","OPEN_DRONE_ID_LOCATION","OPEN_DRONE_ID_LOCATION_DATA","OPEN_DRONE_ID_MESSAGE_PACK","OPEN_DRONE_ID_MESSAGE_PACK_DATA","OPEN_DRONE_ID_OPERATOR_ID","OPEN_DRONE_ID_OPERATOR_ID_DATA","OPEN_DRONE_ID_SELF_ID","OPEN_DRONE_ID_SELF_ID_DATA","OPEN_DRONE_ID_SYSTEM","OPEN_DRONE_ID_SYSTEM_DATA","OPEN_DRONE_ID_SYSTEM_UPDATE","OPEN_DRONE_ID_SYSTEM_UPDATE_DATA","OPTICAL_FLOW","OPTICAL_FLOW_DATA","OPTICAL_FLOW_RAD","OPTICAL_FLOW_RAD_DATA","ORBIT_EXECUTION_STATUS","ORBIT_EXECUTION_STATUS_DATA","ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE","ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER","ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING","ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED","ORBIT_YAW_BEHAVIOUR_UNCONTROLLED","OrbitYawBehaviour","PARACHUTE_DISABLE","PARACHUTE_ENABLE","PARACHUTE_RELEASE","PARAM_ACK_ACCEPTED","PARAM_ACK_FAILED","PARAM_ACK_IN_PROGRESS","PARAM_ACK_VALUE_UNSUPPORTED","PARAM_EXT_ACK","PARAM_EXT_ACK_DATA","PARAM_EXT_REQUEST_LIST","PARAM_EXT_REQUEST_LIST_DATA","PARAM_EXT_REQUEST_READ","PARAM_EXT_REQUEST_READ_DATA","PARAM_EXT_SET","PARAM_EXT_SET_DATA","PARAM_EXT_VALUE","PARAM_EXT_VALUE_DATA","PARAM_MAP_RC","PARAM_MAP_RC_DATA","PARAM_READ_PERSISTENT","PARAM_REQUEST_LIST","PARAM_REQUEST_LIST_DATA","PARAM_REQUEST_READ","PARAM_REQUEST_READ_DATA","PARAM_RESET_ALL_DEFAULT","PARAM_RESET_CONFIG_DEFAULT","PARAM_RESET_SENSOR_DEFAULT","PARAM_SET","PARAM_SET_DATA","PARAM_VALUE","PARAM_VALUE_DATA","PARAM_WRITE_PERSISTENT","PING","PING_DATA","PLAY_TUNE","PLAY_TUNE_DATA","PLAY_TUNE_V2","PLAY_TUNE_V2_DATA","POSITION_TARGET_GLOBAL_INT","POSITION_TARGET_GLOBAL_INT_DATA","POSITION_TARGET_LOCAL_NED","POSITION_TARGET_LOCAL_NED_DATA","POSITION_TARGET_TYPEMASK_AX_IGNORE","POSITION_TARGET_TYPEMASK_AY_IGNORE","POSITION_TARGET_TYPEMASK_AZ_IGNORE","POSITION_TARGET_TYPEMASK_FORCE_SET","POSITION_TARGET_TYPEMASK_VX_IGNORE","POSITION_TARGET_TYPEMASK_VY_IGNORE","POSITION_TARGET_TYPEMASK_VZ_IGNORE","POSITION_TARGET_TYPEMASK_X_IGNORE","POSITION_TARGET_TYPEMASK_YAW_IGNORE","POSITION_TARGET_TYPEMASK_YAW_RATE_IGNORE","POSITION_TARGET_TYPEMASK_Y_IGNORE","POSITION_TARGET_TYPEMASK_Z_IGNORE","POWER_STATUS","POWER_STATUS_DATA","PRECISION_LAND_MODE_DISABLED","PRECISION_LAND_MODE_OPPORTUNISTIC","PRECISION_LAND_MODE_REQUIRED","PROTOCOL_VERSION","PROTOCOL_VERSION_DATA","ParachuteAction","ParamAck","PositionTargetTypemask","PrecisionLandMode","PreflightStorageMissionAction","PreflightStorageParameterAction","RADIO_STATUS","RADIO_STATUS_DATA","RAW_IMU","RAW_IMU_DATA","RAW_PRESSURE","RAW_PRESSURE_DATA","RAW_RPM","RAW_RPM_DATA","RC_CHANNELS","RC_CHANNELS_DATA","RC_CHANNELS_OVERRIDE","RC_CHANNELS_OVERRIDE_DATA","RC_CHANNELS_RAW","RC_CHANNELS_RAW_DATA","RC_CHANNELS_SCALED","RC_CHANNELS_SCALED_DATA","RC_TYPE_SPEKTRUM_DSM2","RC_TYPE_SPEKTRUM_DSMX","REQUEST_DATA_STREAM","REQUEST_DATA_STREAM_DATA","REQUEST_EVENT","REQUEST_EVENT_DATA","RESOURCE_REQUEST","RESOURCE_REQUEST_DATA","RESPONSE_EVENT_ERROR","RESPONSE_EVENT_ERROR_DATA","RTK_BASELINE_COORDINATE_SYSTEM_ECEF","RTK_BASELINE_COORDINATE_SYSTEM_NED","RcType","RtkBaselineCoordinateSystem","SAFETY_ALLOWED_AREA","SAFETY_ALLOWED_AREA_DATA","SAFETY_SET_ALLOWED_AREA","SAFETY_SET_ALLOWED_AREA_DATA","SCALED_IMU","SCALED_IMU2","SCALED_IMU2_DATA","SCALED_IMU3","SCALED_IMU3_DATA","SCALED_IMU_DATA","SCALED_PRESSURE","SCALED_PRESSURE2","SCALED_PRESSURE2_DATA","SCALED_PRESSURE3","SCALED_PRESSURE3_DATA","SCALED_PRESSURE_DATA","SERIAL_CONTROL","SERIAL_CONTROL_DATA","SERIAL_CONTROL_DEV_GPS1","SERIAL_CONTROL_DEV_GPS2","SERIAL_CONTROL_DEV_SHELL","SERIAL_CONTROL_DEV_TELEM1","SERIAL_CONTROL_DEV_TELEM2","SERIAL_CONTROL_FLAG_BLOCKING","SERIAL_CONTROL_FLAG_EXCLUSIVE","SERIAL_CONTROL_FLAG_MULTI","SERIAL_CONTROL_FLAG_REPLY","SERIAL_CONTROL_FLAG_RESPOND","SERIAL_CONTROL_SERIAL0","SERIAL_CONTROL_SERIAL1","SERIAL_CONTROL_SERIAL2","SERIAL_CONTROL_SERIAL3","SERIAL_CONTROL_SERIAL4","SERIAL_CONTROL_SERIAL5","SERIAL_CONTROL_SERIAL6","SERIAL_CONTROL_SERIAL7","SERIAL_CONTROL_SERIAL8","SERIAL_CONTROL_SERIAL9","SERVO_OUTPUT_RAW","SERVO_OUTPUT_RAW_DATA","SETUP_SIGNING","SETUP_SIGNING_DATA","SET_ACTUATOR_CONTROL_TARGET","SET_ACTUATOR_CONTROL_TARGET_DATA","SET_ATTITUDE_TARGET","SET_ATTITUDE_TARGET_DATA","SET_GPS_GLOBAL_ORIGIN","SET_GPS_GLOBAL_ORIGIN_DATA","SET_HOME_POSITION","SET_HOME_POSITION_DATA","SET_MODE","SET_MODE_DATA","SET_POSITION_TARGET_GLOBAL_INT","SET_POSITION_TARGET_GLOBAL_INT_DATA","SET_POSITION_TARGET_LOCAL_NED","SET_POSITION_TARGET_LOCAL_NED_DATA","SIM_STATE","SIM_STATE_DATA","SMART_BATTERY_INFO","SMART_BATTERY_INFO_DATA","STATUSTEXT","STATUSTEXT_DATA","STORAGE_INFORMATION","STORAGE_INFORMATION_DATA","STORAGE_STATUS_EMPTY","STORAGE_STATUS_NOT_SUPPORTED","STORAGE_STATUS_READY","STORAGE_STATUS_UNFORMATTED","STORAGE_TYPE_CF","STORAGE_TYPE_CFE","STORAGE_TYPE_HD","STORAGE_TYPE_MICROSD","STORAGE_TYPE_OTHER","STORAGE_TYPE_SD","STORAGE_TYPE_UNKNOWN","STORAGE_TYPE_USB_STICK","STORAGE_TYPE_XQD","STORAGE_USAGE_FLAG_LOGS","STORAGE_USAGE_FLAG_PHOTO","STORAGE_USAGE_FLAG_SET","STORAGE_USAGE_FLAG_VIDEO","SUPPORTED_TUNES","SUPPORTED_TUNES_DATA","SYSTEM_TIME","SYSTEM_TIME_DATA","SYS_STATUS","SYS_STATUS_DATA","SerialControlDev","SerialControlFlag","SetFocusType","StorageStatus","StorageType","StorageUsageFlag","TERRAIN_CHECK","TERRAIN_CHECK_DATA","TERRAIN_DATA","TERRAIN_DATA_DATA","TERRAIN_REPORT","TERRAIN_REPORT_DATA","TERRAIN_REQUEST","TERRAIN_REQUEST_DATA","TIMESYNC","TIMESYNC_DATA","TIME_ESTIMATE_TO_TARGET","TIME_ESTIMATE_TO_TARGET_DATA","TRAJECTORY_REPRESENTATION_BEZIER","TRAJECTORY_REPRESENTATION_BEZIER_DATA","TRAJECTORY_REPRESENTATION_WAYPOINTS","TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA","TUNE_FORMAT_MML_MODERN","TUNE_FORMAT_QBASIC1_1","TUNNEL","TUNNEL_DATA","TuneFormat","UAVCAN_NODE_HEALTH_CRITICAL","UAVCAN_NODE_HEALTH_ERROR","UAVCAN_NODE_HEALTH_OK","UAVCAN_NODE_HEALTH_WARNING","UAVCAN_NODE_INFO","UAVCAN_NODE_INFO_DATA","UAVCAN_NODE_MODE_INITIALIZATION","UAVCAN_NODE_MODE_MAINTENANCE","UAVCAN_NODE_MODE_OFFLINE","UAVCAN_NODE_MODE_OPERATIONAL","UAVCAN_NODE_MODE_SOFTWARE_UPDATE","UAVCAN_NODE_STATUS","UAVCAN_NODE_STATUS_DATA","UAVIONIX_ADSB_OUT_CFG","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L15M_W23M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25M_W28P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25_34M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_33M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_38M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_39P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_45M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_45M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_52M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_59P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_67M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W72P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W80M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W80M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W90M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_NO_DATA","UAVIONIX_ADSB_OUT_CFG_DATA","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_2M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_4M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_6M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_NO_DATA","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_0M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_2M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_4M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_6M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_APPLIED_BY_SENSOR","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_NO_DATA","UAVIONIX_ADSB_OUT_DOWNED_AIRCRAFT_EMERGENCY","UAVIONIX_ADSB_OUT_DYNAMIC","UAVIONIX_ADSB_OUT_DYNAMIC_DATA","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_2D","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_3D","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_DGPS","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_0","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_1","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_RTK","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_AUTOPILOT_ENABLED","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_IDENT","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_NICBARO_CROSSCHECKED","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_ON_GROUND","UAVIONIX_ADSB_OUT_GENERAL_EMERGENCY","UAVIONIX_ADSB_OUT_LIFEGUARD_EMERGENCY","UAVIONIX_ADSB_OUT_MINIMUM_FUEL_EMERGENCY","UAVIONIX_ADSB_OUT_NO_COMM_EMERGENCY","UAVIONIX_ADSB_OUT_NO_EMERGENCY","UAVIONIX_ADSB_OUT_RESERVED","UAVIONIX_ADSB_OUT_RF_SELECT_RX_ENABLED","UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY","UAVIONIX_ADSB_OUT_RF_SELECT_TX_ENABLED","UAVIONIX_ADSB_OUT_UNLAWFUL_INTERFERANCE_EMERGENCY","UAVIONIX_ADSB_RF_HEALTH_FAIL_RX","UAVIONIX_ADSB_RF_HEALTH_FAIL_TX","UAVIONIX_ADSB_RF_HEALTH_INITIALIZING","UAVIONIX_ADSB_RF_HEALTH_OK","UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT","UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA","UNDER_WAY","UTM_DATA_AVAIL_FLAGS_ALTITUDE_AVAILABLE","UTM_DATA_AVAIL_FLAGS_HORIZONTAL_VELO_AVAILABLE","UTM_DATA_AVAIL_FLAGS_NEXT_WAYPOINT_AVAILABLE","UTM_DATA_AVAIL_FLAGS_POSITION_AVAILABLE","UTM_DATA_AVAIL_FLAGS_RELATIVE_ALTITUDE_AVAILABLE","UTM_DATA_AVAIL_FLAGS_TIME_VALID","UTM_DATA_AVAIL_FLAGS_UAS_ID_AVAILABLE","UTM_DATA_AVAIL_FLAGS_VERTICAL_VELO_AVAILABLE","UTM_FLIGHT_STATE_AIRBORNE","UTM_FLIGHT_STATE_EMERGENCY","UTM_FLIGHT_STATE_GROUND","UTM_FLIGHT_STATE_NOCTRL","UTM_FLIGHT_STATE_UNKNOWN","UTM_GLOBAL_POSITION","UTM_GLOBAL_POSITION_DATA","UavcanNodeHealth","UavcanNodeMode","UavionixAdsbEmergencyStatus","UavionixAdsbOutCfgAircraftSize","UavionixAdsbOutCfgGpsOffsetLat","UavionixAdsbOutCfgGpsOffsetLon","UavionixAdsbOutDynamicGpsFix","UavionixAdsbOutDynamicState","UavionixAdsbOutRfSelect","UavionixAdsbRfHealth","UtmDataAvailFlags","UtmFlightState","V2_EXTENSION","V2_EXTENSION_DATA","VFR_HUD","VFR_HUD_DATA","VIBRATION","VIBRATION_DATA","VICON_POSITION_ESTIMATE","VICON_POSITION_ESTIMATE_DATA","VIDEO_STREAM_INFORMATION","VIDEO_STREAM_INFORMATION_DATA","VIDEO_STREAM_STATUS","VIDEO_STREAM_STATUS_DATA","VIDEO_STREAM_STATUS_FLAGS_RUNNING","VIDEO_STREAM_STATUS_FLAGS_THERMAL","VIDEO_STREAM_TYPE_MPEG_TS_H264","VIDEO_STREAM_TYPE_RTPUDP","VIDEO_STREAM_TYPE_RTSP","VIDEO_STREAM_TYPE_TCP_MPEG","VISION_POSITION_ESTIMATE","VISION_POSITION_ESTIMATE_DATA","VISION_SPEED_ESTIMATE","VISION_SPEED_ESTIMATE_DATA","VTOL_TRANSITION_HEADING_ANY","VTOL_TRANSITION_HEADING_NEXT_WAYPOINT","VTOL_TRANSITION_HEADING_SPECIFIED","VTOL_TRANSITION_HEADING_TAKEOFF","VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT","Vcc","VelEW","VideoStreamStatusFlags","VideoStreamType","Vservo","VtolTransitionHeading","WHEEL_DISTANCE","WHEEL_DISTANCE_DATA","WIFI_CONFIG_AP","WIFI_CONFIG_AP_DATA","WIFI_CONFIG_AP_MODE_AP","WIFI_CONFIG_AP_MODE_DISABLED","WIFI_CONFIG_AP_MODE_STATION","WIFI_CONFIG_AP_MODE_UNDEFINED","WIFI_CONFIG_AP_RESPONSE_ACCEPTED","WIFI_CONFIG_AP_RESPONSE_MODE_ERROR","WIFI_CONFIG_AP_RESPONSE_PASSWORD_ERROR","WIFI_CONFIG_AP_RESPONSE_REJECTED","WIFI_CONFIG_AP_RESPONSE_SSID_ERROR","WIFI_CONFIG_AP_RESPONSE_UNDEFINED","WINCH_ABANDON_LINE","WINCH_DELIVER","WINCH_HOLD","WINCH_LOAD_LINE","WINCH_LOAD_PAYLOAD","WINCH_LOCK","WINCH_RATE_CONTROL","WINCH_RELATIVE_LENGTH_CONTROL","WINCH_RELAXED","WINCH_RETRACT","WINCH_STATUS","WINCH_STATUS_DATA","WIND_COV","WIND_COV_DATA","WifiConfigApMode","WifiConfigApResponse","WinchActions","ZOOM_TYPE_CONTINUOUS","ZOOM_TYPE_FOCAL_LENGTH","ZOOM_TYPE_RANGE","ZOOM_TYPE_STEP","abs_pressure","abs_pressure","acc","acc_x","acc_y","acc_z","accuracy","accuracy","accuracyHor","accuracyVel","accuracyVert","ack","action","active","actuator","address","afx","afx","afx","afx","afy","afy","afy","afy","afz","afz","afz","afz","aircraftSize","airspeed","airspeed","airspeed","airspeed","airspeed_sp","airspeed_sp","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt_camera","alt_error","alt_image","altitude","altitude","altitude","altitude","altitude","altitude","altitude_amsl","altitude_amsl","altitude_barometric","altitude_geodetic","altitude_local","altitude_minimum_delta","altitude_monotonic","altitude_relative","altitude_sp","altitude_terrain","altitude_type","angle_x","angle_y","angular_velocity_x","angular_velocity_x","angular_velocity_x","angular_velocity_y","angular_velocity_y","angular_velocity_y","angular_velocity_z","angular_velocity_z","angular_velocity_z","apn","approach_x","approach_x","approach_y","approach_y","approach_z","approach_z","area_ceiling","area_count","area_floor","area_radius","arguments","arming_time_utc","array_id","aspd_error","attitude_q","attitude_quaternion","authentication_data","authentication_type","autocontinue","autocontinue","autocontinue","autopilot","autopilot","autosaved","aux1","aux2","aux3","aux4","available_capacity","available_capacity","ax","ay","az","baroAltMSL","barometer_accuracy","barometric_pressure","base_mode","base_mode","base_mode","baseline_a_mm","baseline_a_mm","baseline_b_mm","baseline_b_mm","baseline_c_mm","baseline_c_mm","baseline_coords_type","baseline_coords_type","bat_current_setpoint","battery","battery_current","battery_function","battery_function","battery_remaining","battery_remaining","battery_remaining","baudrate","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitrate","bitrate","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","board_version","body_pitch_rate","body_pitch_rate","body_roll_rate","body_roll_rate","body_yaw_rate","body_yaw_rate","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bottom_clearance","breach_count","breach_status","breach_time","breach_type","bus","bus","bus","bus_voltage","buttons","cal_mask","cal_status","callsign","callsign","callsign","cam_definition_uri","cam_definition_version","camera_id","cap_flags","cap_flags","capabilities","capacity_full","capacity_full_specification","capture_result","category_eu","chan10_raw","chan10_raw","chan11_raw","chan11_raw","chan12_raw","chan12_raw","chan13_raw","chan14_raw","chan15_raw","chan16_raw","chan17_raw","chan18_raw","chan1_raw","chan1_raw","chan1_raw","chan1_raw","chan1_scaled","chan2_raw","chan2_raw","chan2_raw","chan2_raw","chan2_scaled","chan3_raw","chan3_raw","chan3_raw","chan3_raw","chan3_scaled","chan4_raw","chan4_raw","chan4_raw","chan4_raw","chan4_scaled","chan5_raw","chan5_raw","chan5_raw","chan5_raw","chan5_scaled","chan6_raw","chan6_raw","chan6_raw","chan6_raw","chan6_scaled","chan7_raw","chan7_raw","chan7_raw","chan7_raw","chan7_scaled","chan8_raw","chan8_raw","chan8_raw","chan8_raw","chan8_scaled","chan9_raw","chan9_raw","chancount","charging_minimum_voltage","child_frame_id","class_eu","classification_type","climb","climb_rate","climb_rate","clipping_0","clipping_1","clipping_2","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cog","cog","cog","command","command","command","command","command","command","command","commanded_action","compass_id","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","confirmation","connection_type","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","control_request","control_request","controls","controls","controls","coordinate_frame","coordinate_frame","coordinate_frame","coordinate_frame","count","count","count","count","count","count","count","counter","covariance","covariance","covariance","covariance","cpu_combined","cpu_cores","current","current","current","current","current","current_battery","current_battery","current_consumed","current_distance","current_height","custom0","custom1","custom2","custom_cap_flags","custom_mode","custom_mode","custom_mode","custom_mode","custom_name","custom_state","cycle_count","cylinder_head_temperature","data","data","data","data","data","data","data","data","data","data","data_page","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default_message_from_id","delta","description","description_type","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","destination_component","destination_system","device","device_name","dgps_age","dgps_numch","diag_x","diag_y","diag_z","diff_pressure","diff_pressure","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","dimension_bow","dimension_port","dimension_starboard","dimension_stern","direction","discharge_minimum_voltage","dist","distance","distance","distance","distance","distances","drop_rate_comm","ecu_index","emergencyStatus","emitterType","emitter_type","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","enable_lte","enable_pin","end","end_index","end_index","energy_consumed","engine_load","eph","eph","eph","eph","epv","epv","epv","epv","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","error","error_count","errors_comm","errors_count1","errors_count2","errors_count3","errors_count4","est_capabilities","estimator_status","estimator_type","estimator_type","event_time_boot_ms","exhaust_gas_temperature","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extra_crc","failed_sessions","failsafe","failure_flags","failure_flags","failure_flags","failure_reason","fan_speed","feed_forward_angular_velocity_z","fields_updated","fields_updated","file_crc","file_url","firmware_version","firmware_version","first_message_offset","first_message_offset","first_sequence","fitness","fix_type","fix_type","fix_type","fix_type","fixed","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flight_custom_version","flight_state","flight_sw_version","flight_uuid","flow_comp_m_x","flow_comp_m_y","flow_x","flow_y","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","focal_length","format","format","frame","frame","frame","frame","frame","frame","frame","frame_id","framerate","framerate","frequency","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","fuel_consumed","fuel_flow","gcs_system_id","general_metadata_file_crc","general_metadata_uri","generator_speed","generator_temperature","gimbal_device_id","gimbal_device_id","gimbal_device_id","gimbal_device_id","gimbal_device_id","gpsAlt","gpsFix","gpsLat","gpsLon","gpsOffsetLat","gpsOffsetLon","gps_fix_type","gps_id","gps_nsat","gpu_combined","gpu_cores","grid_spacing","grid_spacing","gridbit","ground_distance","groundspeed","groundspeed","groundspeed","group_mlx","group_mlx","h_acc","h_acc","hagl_ratio","hardware_version","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hdg","hdg","hdg_acc","hdop","heading","heading","heading","heading","heading","heading_sp","health","health","height","height","height_reference","hfov","hfov","hfov","hor_velocity","horiz_accuracy","horiz_accuracy","horizontal_accuracy","horizontal_minimum_delta","humidity","hw_unique_id","hw_version_major","hw_version_minor","iar_num_hypotheses","iar_num_hypotheses","id","id","id","id","id","id","id","id","id","id","id","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_type","ids","ignition_timing","ignore_flags","image_index","image_interval","image_status","increment","ind","ind_airspeed","index","index","index","info","initial_timestamp","injection_time","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","intake_manifold_pressure","intake_manifold_temperature","integrated_x","integrated_x","integrated_xgyro","integrated_xgyro","integrated_y","integrated_y","integrated_ygyro","integrated_ygyro","integrated_zgyro","integrated_zgyro","integration_time_us","integration_time_us","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","interval_us","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","jpg_quality","key","lac","land","landed_state","landed_state","landed_state","last_change_ms","last_heartbeat","last_log_num","last_page_index","last_sequence","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat_camera","lat_image","lat_int","lat_int","latitude","latitude","latitude","latitude","latitude","latitude","latitude","len","len","len","len","length","length","length","lens_id","library_version_hash","line_length","link_rx_max","link_rx_rate","link_tx_max","link_tx_rate","link_type","load","load_current","loaded","log_levels","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon_camera","lon_image","lon_int","lon_int","longitude","longitude","longitude","longitude","longitude","longitude","longitude","mag_ratio","manual_override_switch","mask","mavlink_version","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","max_distance","max_distance","max_version","mcc","message_id","message_id","message_id_from_name","message_name","message_rate","message_type","messages","messages_lost","messages_received","messages_sent","middleware_custom_version","middleware_sw_version","min_distance","min_distance","min_version","mission_end","mission_next_item","mnc","mode","mode","mode","mode_id","mode_switch","model_name","model_name","msg_pack_size","name","name","name","name","name","name","name","nav_bearing","nav_mode","nav_pitch","nav_roll","navigational_status","new_pin","next_alt","next_lat","next_lon","noise","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","nsats","nsats","numSats","num_ids","num_logs","offdiag_x","offdiag_y","offdiag_z","ofs","ofs","ofs_x","ofs_y","ofs_z","on_off","onboard_control_sensors_enabled","onboard_control_sensors_health","onboard_control_sensors_present","operation","operator_altitude_geo","operator_altitude_geo","operator_id","operator_id_type","operator_latitude","operator_latitude","operator_location_type","operator_longitude","operator_longitude","orientation","os_custom_version","os_sw_version","p1x","p1x","p1y","p1y","p1z","p1z","p2x","p2x","p2y","p2y","p2z","p2z","packets","param1","param1","param1","param1","param2","param2","param2","param2","param3","param3","param3","param3","param4","param4","param4","param4","param5","param6","param7","param_count","param_count","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_index","param_index","param_index","param_index","param_index","param_result","param_type","param_type","param_type","param_type","param_type","param_value","param_value","param_value","param_value","param_value","param_value0","param_value_max","param_value_min","parameter_rc_channel_index","parse","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","passkey","password","payload","payload","payload","payload","payload_length","payload_type","pending","peripherals_metadata_file_crc","peripherals_metadata_uri","pin","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch_elevator","pitch_max","pitch_max","pitch_min","pitch_min","pitch_rate","pitch_rate","pitch_rate","pitchspeed","pitchspeed","pitchspeed","pitchspeed","pitchspeed","pitchspeed","point_x","point_y","port","port","port","pos_horiz_accuracy","pos_horiz_ratio","pos_variance","pos_vert_accuracy","pos_vert_ratio","pos_x","pos_x","pos_y","pos_y","pos_yaw","pos_yaw","pos_z","pos_z","pose_covariance","position_cov","power_generated","press_abs","press_abs","press_abs","press_abs","press_diff","press_diff","press_diff","press_diff1","press_diff2","pressure_alt","pressure_alt","primary_control_compid","primary_control_sysid","product_id","pt_compensation","puk","q","q","q","q","q","q","q","q","q","q","q","q","q","q","q1","q1","q2","q2","q3","q3","q4","q4","q_estimated_delay_us","quality","quality","quality","quality","r","radius","radius","ram_total","ram_usage","rates","read_speed","reason","rec_bottom_x","rec_bottom_y","rec_top_x","rec_top_y","recording_time_ms","rectifier_temperature","relative_alt","relative_alt","relative_alt","relative_alt","remnoise","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remrssi","req_message_rate","req_stream_id","request_id","resolution_h","resolution_h","resolution_h","resolution_v","resolution_v","resolution_v","response","resting_minimum_voltage","result","rfHealth","rfSelect","ring_pending","roaming","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll_ailerons","roll_max","roll_max","roll_min","roll_min","roll_rate","rollspeed","rollspeed","rollspeed","rollspeed","rollspeed","rollspeed","rotation","rotation","rpm","rpm","rssi","rssi","rssi","rssi","rssi","rtk_health","rtk_health","rtk_rate","rtk_rate","rtk_receiver_id","rtk_receiver_id","runtime","rx_buf","rx_overflows","rx_parse_err","rx_rate","rx_session_pending","rxerrors","safe_return","satellite_azimuth","satellite_elevation","satellite_prn","satellite_snr","satellite_used","satellites_visible","satellites_visible","satellites_visible","satellites_visible","satellites_visible","scale","secondary_control_compid","secondary_control_sysid","secret_key","sensor_id","sensor_id","sensor_id","sensor_size_h","sensor_size_v","sensor_type","seq","seq","seq","seq","seq","seq","seq","seq","seq","seqnr","sequence","sequence","sequence","sequence","sequence","sequence","sequence_oldest_available","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","serial_number","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","servo1_raw","servo2_raw","servo3_raw","servo4_raw","servo5_raw","servo6_raw","servo7_raw","servo8_raw","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","severity","signal_quality","single_message_size","size","size","size_x","size_y","spacing","spark_dwell_time","spec_version_hash","speed","speed_accuracy","speed_accuracy","speed_horizontal","speed_vertical","squawk","squawk","src","ssid","stallSpeed","start","start_index","start_index","start_stop","state","state","status","status","status","status","status","status","std_dev_horz","std_dev_vert","storage","storage_count","storage_id","storage_total","storage_type","storage_usage","stream_id","stream_id","stream_id","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_mode","successful_sessions","sw_vcs_commit","sw_version_major","sw_version_minor","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","system_status","takeoff_time_utc","target","target_altitude","target_bearing","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_data","target_distance","target_heading","target_network","target_network","target_num","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","tas_ratio","tc1","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature_air","temperature_air","temperature_board","temperature_core","tension","terrain_height","text","threat_level","throttle","throttle","throttle","throttle","throttle_out","throttle_position","thrust","thrust","thrust","time","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_us","time_delta_distance_us","time_delta_distance_us","time_last_baseline_ms","time_last_baseline_ms","time_to_minimum_delta","time_unix_usec","time_until_maintenance","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_utc","time_utc","time_week","time_week_ms","timeout","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp_accuracy","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","total_capacity","tow","tow","tracking_mode","tracking_status","tracking_status","transfer_type","true_airspeed","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","ts1","tslc","tslc","tune","tune","turn_rate","tx_buf","tx_overflows","tx_rate","tx_session_pending","txbuf","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_mask","type_mask","type_mask","type_mask","type_mask","type_mask","ua_type","uas_id","uas_id","uid","uid","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","update_rate","uptime","uptime_sec","uptime_sec","uri","uri","uri","uri_type","usec","usec","usec","usec","used_capacity","utcTime","v_acc","v_acc","v_estimated_delay_us","valid_points","valid_points","value","value","value","value","var_horiz","var_vert","vd","vd","vd","vdop","ve","ve","ve","vel","vel","vel","vel","velNS","velVert","vel_acc","vel_acc","vel_d","vel_e","vel_n","vel_ratio","vel_variance","vel_x","vel_y","vel_yaw","vel_z","velocity","velocity_covariance","vendor_id","vendor_name","vendor_name","vendor_specific_status_code","ver","ver_velocity","version","version","vert_accuracy","vert_accuracy","vertical_accuracy","vfov","vibration_x","vibration_y","vibration_z","video_status","vn","vn","vn","voltage","voltage","voltage_battery","voltages","vtol_state","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","weight","width","wind_alt","wind_heading","wind_x","wind_y","wind_z","windspeed","wn","wn","wp_dist","wp_distance","wp_num","wp_num","write_speed","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x_acc","x_pos","x_vel","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xmag","xmag","xmag","xmag","xmag","xmag","xtrack_error","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y_acc","y_pos","y_vel","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw_max","yaw_max","yaw_min","yaw_min","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rudder","yawspeed","yawspeed","yawspeed","yawspeed","yawspeed","yawspeed","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ymag","ymag","ymag","ymag","ymag","ymag","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z_acc","z_pos","z_vel","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zmag","zmag","zmag","zmag","zmag","zmag","remove_trailing_zeroes"],"q":[[0,"mavlink"],[156,"mavlink::ardupilotmega"],[15498,"mavlink::bytes"],[15522,"mavlink::bytes_mut"],[15547,"mavlink::common"],[27060,"mavlink::error"],[27102,"mavlink::error::ParserError"],[27107,"mavlink::icarous"],[27239,"mavlink::peek_reader"],[27254,"mavlink::uavionix"],[39174,"mavlink::utils"],[39175,"mavlink_core"],[39176,"core::clone"],[39177,"mavlink_core::connection"],[39178,"alloc::boxed"],[39179,"std::io::error"],[39180,"core::result"],[39181,"mavlink_core::error"],[39182,"serde::de"],[39183,"core::fmt"],[39184,"mavlink_core::peek_reader"],[39185,"std::io"],[39186,"serde::ser"],[39187,"core::any"],[39188,"core::cmp"],[39189,"core::iter::traits::collect"],[39190,"core::option"],[39191,"core::hash"],[39192,"mavlink_core::bytes"],[39193,"mavlink_core::bytes_mut"],[39194,"alloc::string"],[39195,"mavlink_core::utils"]],"i":[21,21,21,0,0,0,0,0,0,0,0,0,0,21,0,21,9,9,0,8,9,10,6,7,8,9,10,6,7,0,0,0,6,7,8,9,10,6,7,8,9,10,6,7,0,7,6,7,8,0,8,6,7,12,21,10,8,8,9,6,7,0,12,8,9,10,6,7,8,9,10,6,7,15,6,7,10,6,7,10,0,7,8,9,10,6,7,12,6,7,12,12,10,6,7,12,6,7,6,7,0,10,6,7,0,0,0,0,0,15,15,15,15,15,6,7,8,12,21,10,8,9,10,6,7,6,7,15,6,7,8,8,9,10,6,7,8,9,10,6,7,8,9,10,6,7,8,9,10,6,7,0,0,0,0,0,522,522,522,522,522,522,522,522,444,444,444,444,444,444,71,0,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,71,0,71,0,391,391,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,45,45,45,45,45,45,45,45,45,45,71,0,71,71,0,71,0,0,71,0,58,58,58,58,58,58,58,58,58,58,58,58,58,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,71,0,71,0,155,71,0,71,0,71,0,71,71,0,0,71,0,56,56,56,56,56,56,71,0,71,0,71,0,71,0,71,0,462,462,462,462,0,0,0,0,0,0,0,0,0,0,0,71,0,464,71,0,71,0,71,0,67,67,67,67,67,67,67,67,67,67,67,67,71,458,458,0,458,458,458,71,0,71,0,71,0,480,480,480,71,0,71,0,393,393,393,393,393,393,393,71,0,71,0,379,379,379,373,373,373,384,384,384,384,71,0,71,0,446,71,0,446,446,71,0,71,497,0,497,497,497,497,461,461,461,461,418,418,418,418,418,71,0,470,470,470,470,470,470,470,470,470,470,470,470,470,71,71,0,0,169,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,493,493,493,493,493,493,71,0,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,71,0,71,0,71,0,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,199,199,199,0,189,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,378,378,378,378,378,378,378,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,427,427,71,0,71,0,71,0,71,0,71,0,71,0,71,0,0,0,294,71,0,63,63,63,63,63,63,63,63,71,0,63,63,63,71,0,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,463,463,463,463,463,463,41,41,41,41,41,41,41,41,71,0,71,0,71,0,71,0,71,0,39,39,39,39,39,39,39,39,39,39,71,0,39,39,71,0,71,0,0,0,0,0,448,448,448,448,448,448,448,448,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,68,459,459,459,459,459,459,459,459,396,396,396,396,71,0,491,491,491,71,0,71,0,189,71,0,474,474,474,474,474,71,0,465,465,465,465,465,465,465,71,0,0,0,0,0,0,0,71,0,521,521,521,443,443,443,408,408,408,71,0,71,0,62,62,62,62,62,62,62,62,62,62,62,62,62,62,57,57,57,57,57,57,57,57,57,57,66,66,66,66,66,66,66,66,66,66,71,0,71,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,453,453,453,453,453,453,453,453,453,453,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,71,0,0,71,0,501,501,501,501,501,501,501,501,501,420,420,420,420,420,420,420,420,514,514,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,478,478,478,46,506,506,506,506,506,506,506,506,506,506,506,506,506,506,71,0,71,0,71,0,439,439,439,439,495,495,495,495,495,403,403,403,403,403,481,481,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,513,513,513,513,513,452,452,452,413,413,413,413,413,428,428,438,438,438,438,438,438,438,438,438,438,438,438,438,438,71,0,71,0,482,71,0,71,0,487,487,487,487,487,487,487,487,487,71,0,71,0,71,0,40,40,40,40,40,40,40,40,71,0,71,0,71,0,71,0,369,369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,454,454,71,0,71,0,71,0,71,0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,71,71,0,0,71,0,71,0,71,0,71,0,71,0,71,0,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,71,0,71,0,50,50,50,50,50,50,50,50,50,50,50,50,50,50,71,0,71,0,71,0,0,0,0,0,189,73,340,113,460,460,460,460,460,460,71,0,71,0,429,429,429,71,0,0,0,71,0,455,455,455,455,68,71,0,500,500,500,388,388,388,388,388,71,0,388,55,55,55,71,0,71,71,0,0,71,0,71,0,71,71,0,0,71,0,71,0,71,0,71,0,71,0,71,0,0,0,0,0,527,527,527,527,71,0,71,0,527,527,527,527,71,0,71,0,466,466,466,466,466,466,477,477,477,477,477,477,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,370,370,370,370,370,370,370,370,464,464,464,464,464,464,464,464,389,389,389,389,389,374,374,374,445,445,445,445,445,479,440,440,440,440,440,440,440,440,440,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,382,382,382,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,488,488,488,488,488,488,488,457,457,442,442,442,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,425,425,425,425,425,425,425,425,425,383,383,383,383,383,412,509,509,509,509,509,509,509,509,509,49,528,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,503,503,503,503,503,503,503,503,503,503,503,498,498,498,498,498,498,498,498,498,498,498,498,498,498,498,498,498,498,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,368,368,368,368,489,489,489,489,489,496,496,496,496,496,496,496,496,496,496,496,496,496,496,397,397,397,397,496,496,437,437,65,65,492,492,492,492,492,492,492,492,65,65,65,65,65,65,507,507,507,507,507,507,507,437,437,437,437,437,437,437,437,437,401,401,401,401,401,401,401,435,435,468,468,468,468,468,468,512,512,512,512,511,511,376,376,376,376,376,376,376,376,499,499,499,372,372,422,422,422,422,422,422,422,422,422,422,422,422,422,431,431,431,431,431,525,436,436,436,411,411,411,411,411,430,430,430,430,430,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,471,471,471,471,471,471,471,423,423,423,423,423,423,423,423,423,423,423,390,390,390,390,390,390,390,390,390,390,52,52,52,52,52,52,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,419,419,508,508,421,421,421,421,421,421,421,424,424,424,424,424,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,371,371,371,371,371,371,371,371,510,510,510,510,510,510,510,510,510,48,48,48,48,48,48,385,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,399,399,399,399,399,399,399,399,399,399,399,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,456,395,395,395,395,395,43,43,43,43,43,43,43,43,43,43,43,43,43,43,71,0,363,363,363,363,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,410,71,0,71,0,71,0,71,0,410,71,0,504,504,504,504,504,504,71,0,410,169,472,394,394,394,472,472,472,71,0,71,0,71,0,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,71,0,71,0,71,0,490,490,490,0,71,71,0,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,392,392,392,392,392,380,71,0,71,0,380,380,380,380,475,475,475,380,380,380,380,71,0,71,0,475,0,0,0,189,416,416,416,409,409,409,409,71,0,71,0,71,0,71,0,71,0,71,0,505,71,0,71,0,505,505,505,71,0,71,0,505,71,402,0,402,402,402,402,402,71,0,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,71,0,71,0,71,0,71,0,64,64,64,64,64,64,64,64,64,64,64,64,71,0,494,494,494,71,0,0,0,294,294,294,0,0,0,0,0,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,441,441,71,0,71,0,71,0,71,0,71,0,71,0,450,450,450,450,450,450,450,450,450,450,450,450,71,0,405,405,0,0,0,0,71,0,71,0,71,71,0,71,0,0,71,71,0,71,0,0,434,434,434,434,71,0,71,0,519,519,519,519,519,51,51,51,51,51,519,519,519,519,519,519,519,519,519,519,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,483,483,155,71,0,71,0,415,415,415,415,515,515,515,515,515,515,515,515,515,486,486,486,486,476,476,476,476,476,476,476,476,476,71,0,71,0,71,0,0,0,0,0,0,0,0,0,0,71,0,71,0,71,0,71,0,71,0,71,0,406,406,406,406,406,406,71,0,71,0,59,59,71,0,0,0,417,417,417,417,71,0,467,467,467,467,467,71,0,71,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,0,524,524,524,524,524,524,524,524,523,523,407,71,0,469,469,469,469,469,469,54,54,54,54,54,407,407,407,407,407,407,69,69,69,407,42,42,42,42,71,0,520,53,53,53,53,53,53,53,53,377,377,377,377,377,71,0,0,0,0,0,0,0,0,0,0,0,0,0,71,0,71,0,71,0,71,0,71,0,71,0,375,375,404,404,404,404,71,0,71,0,71,0,518,518,518,518,518,73,317,197,0,0,317,0,71,0,71,0,71,0,502,502,502,502,473,473,473,473,473,473,516,516,516,516,516,516,516,516,516,516,71,0,71,71,0,0,0,0,0,447,447,447,447,318,321,308,136,136,136,327,327,327,173,204,309,197,197,197,189,248,257,135,237,237,221,221,221,221,221,221,108,112,322,118,220,224,255,118,220,224,255,118,220,224,255,340,158,188,266,275,188,275,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,79,86,87,88,96,118,121,147,176,195,245,255,266,271,280,293,308,319,186,344,186,337,337,92,113,119,122,209,242,275,341,348,188,362,276,276,362,135,362,362,188,362,113,353,345,345,77,120,156,77,120,156,77,120,156,332,350,209,341,209,341,209,341,92,92,174,174,174,174,111,279,270,344,150,308,121,100,100,167,229,250,275,364,215,258,258,258,258,335,366,354,189,248,354,354,305,197,276,102,188,212,364,204,309,204,309,204,309,204,309,259,275,259,302,323,188,316,323,336,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,183,193,324,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,130,117,349,117,349,117,349,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,362,249,264,249,249,249,245,365,112,202,315,322,329,259,112,322,112,322,164,150,215,150,215,113,169,340,98,98,93,337,88,193,160,286,130,302,302,320,88,174,104,284,104,284,104,284,284,284,284,284,284,284,82,104,162,284,314,82,104,162,284,314,82,104,162,284,314,82,104,162,284,314,82,104,162,284,314,82,104,162,284,314,82,104,162,284,314,82,104,162,284,314,104,284,284,302,127,174,174,266,188,275,163,163,163,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,90,260,290,304,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,79,147,176,94,110,136,167,229,250,361,205,332,274,150,215,123,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,150,150,353,243,351,110,207,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,252,257,124,201,301,118,220,224,255,83,105,112,134,149,183,194,207,226,232,233,245,278,322,336,207,87,241,347,354,74,74,213,92,105,167,185,199,229,232,236,250,278,316,323,326,323,347,180,275,275,275,138,160,138,188,212,275,364,160,308,302,102,83,128,132,171,194,196,202,203,217,234,256,292,303,322,329,336,356,100,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,71,143,159,159,159,159,159,159,159,85,85,85,313,313,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,189,248,111,111,336,302,176,176,215,215,215,294,318,321,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,169,169,169,169,276,307,150,150,150,302,195,182,226,235,319,345,357,141,316,102,305,197,340,113,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,350,350,289,192,246,323,332,102,79,147,176,275,79,147,176,275,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,248,367,207,173,173,316,316,316,316,316,308,75,87,354,93,111,102,92,332,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,205,332,205,332,248,248,328,188,120,207,275,181,74,75,318,321,333,88,98,160,171,256,355,215,79,86,147,176,109,116,77,98,113,120,123,124,129,156,169,175,183,238,245,280,288,317,320,324,336,337,342,356,130,280,130,279,227,227,227,227,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,38,38,38,38,368,369,39,39,39,39,39,40,40,40,40,40,370,371,372,373,374,375,376,377,41,41,41,41,41,378,379,380,42,42,42,42,42,381,382,383,384,385,386,387,388,389,390,43,43,43,43,43,391,392,393,394,395,396,397,398,44,44,44,44,44,399,400,401,402,403,404,405,406,407,45,45,45,45,45,408,409,46,46,46,46,46,410,411,412,413,47,47,47,47,47,414,48,48,48,48,48,415,416,49,49,49,49,49,417,418,419,420,421,422,423,424,425,426,427,428,50,50,50,50,50,429,430,431,432,433,434,435,51,51,51,51,51,436,437,52,52,52,52,52,438,53,53,53,53,53,439,440,441,442,443,54,54,54,54,54,444,445,446,447,448,449,55,55,55,55,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,56,56,56,56,57,57,57,57,57,466,467,468,469,470,471,472,58,58,58,58,58,473,474,475,476,477,478,479,480,59,59,59,59,59,481,60,60,60,60,60,482,483,484,485,486,487,61,61,61,61,61,488,489,62,62,62,62,62,490,491,492,493,63,63,63,63,63,494,495,64,64,64,64,64,496,497,498,499,65,65,65,65,65,66,66,66,66,66,500,501,502,503,504,67,67,67,67,67,505,506,507,508,509,68,68,68,68,68,510,511,512,513,514,515,516,517,69,69,69,69,69,518,519,520,521,522,523,524,525,526,527,528,337,98,205,253,311,167,229,240,250,268,282,283,345,127,183,193,324,365,208,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,102,102,257,91,91,259,259,129,156,238,286,288,197,197,197,197,340,340,188,86,188,74,74,165,203,203,227,188,266,275,201,301,327,327,327,195,280,342,160,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,195,293,195,86,113,169,188,266,275,188,102,263,319,276,299,276,183,186,324,113,86,231,276,135,298,254,254,254,204,309,111,135,149,194,202,223,298,302,319,323,329,347,363,100,174,178,267,276,287,313,267,315,72,233,245,272,102,86,88,335,335,93,337,141,243,351,360,121,207,208,236,207,211,102,95,95,95,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,138,102,102,182,357,182,357,182,357,182,357,182,357,182,357,199,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,125,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,332,159,159,159,299,206,181,274,245,75,188,346,92,92,264,331,264,328,223,100,264,355,264,79,86,87,88,96,113,121,122,147,165,169,176,180,195,203,216,233,242,245,271,280,293,308,310,319,337,186,186,118,255,119,188,209,275,276,341,348,128,132,196,202,217,303,329,356,100,171,256,98,295,264,185,74,74,74,74,74,122,216,233,242,245,319,337,316,259,180,111,79,86,87,88,96,113,121,147,165,169,176,180,195,203,271,280,293,308,310,186,186,118,255,119,188,209,275,276,341,348,327,177,327,177,327,177,327,342,228,165,364,74,108,128,132,169,181,183,196,217,275,281,299,302,323,347,364,273,273,273,273,273,141,240,347,243,351,295,181,71,125,71,71,81,334,287,151,151,151,130,130,273,273,273,273,273,141,240,347,243,351,295,274,274,181,124,258,263,332,76,228,98,160,264,264,264,339,287,153,169,183,254,270,285,343,344,258,344,344,169,350,280,280,280,109,116,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,204,309,273,197,315,223,240,215,215,215,300,149,194,215,215,215,248,173,173,173,248,81,316,316,316,315,114,174,178,178,114,174,174,114,174,347,130,130,144,243,144,243,93,282,283,282,283,282,283,93,282,283,282,283,282,283,93,93,299,110,167,229,250,110,167,229,250,110,167,229,250,110,167,229,250,110,110,110,115,131,78,115,131,210,222,243,312,338,351,359,78,115,131,312,338,359,115,131,210,222,359,115,131,210,222,359,78,78,78,78,71,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,252,106,92,92,138,145,230,299,334,145,145,180,91,91,350,84,96,99,122,129,168,172,188,216,228,239,242,247,271,288,319,337,258,160,286,160,286,129,158,288,97,121,127,172,241,271,152,152,218,218,218,82,225,314,342,342,123,158,342,342,123,136,143,136,143,136,143,136,143,127,308,353,259,154,166,190,214,154,190,214,166,166,318,321,238,238,130,102,350,75,77,88,117,120,127,133,156,158,186,209,241,341,349,96,97,96,97,96,97,96,97,75,181,182,227,357,164,152,268,74,74,308,294,327,327,366,157,152,152,152,152,335,259,83,112,322,87,88,280,293,109,116,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,109,116,173,107,107,83,112,144,219,243,262,265,322,351,98,183,193,324,98,183,193,324,350,302,83,219,265,351,361,291,340,328,305,350,84,96,99,122,168,172,188,216,228,239,242,247,271,319,337,258,160,286,160,286,158,97,121,127,172,241,271,183,193,324,102,105,232,236,278,89,89,82,104,109,116,284,314,204,309,204,309,204,309,259,151,151,151,151,328,109,116,274,244,244,244,244,244,79,86,147,176,244,95,78,238,238,211,182,227,357,98,98,141,240,126,139,167,170,191,198,229,261,306,234,358,292,111,157,171,175,256,277,157,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,302,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,225,225,225,225,225,225,225,225,205,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,330,205,332,248,248,328,287,213,223,299,345,345,180,102,295,185,307,86,276,276,276,307,113,197,135,106,339,339,339,92,340,289,192,246,107,197,331,294,294,294,161,181,185,193,259,260,276,304,320,358,366,367,96,96,262,366,366,74,74,74,81,183,324,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,263,328,254,254,254,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,364,279,164,275,344,72,75,77,78,80,85,90,94,95,100,101,107,110,112,114,120,126,129,134,138,139,144,145,146,148,149,156,157,159,162,167,171,174,177,178,179,187,191,192,198,201,202,205,210,211,213,218,220,222,229,230,233,234,243,245,246,250,253,255,256,267,272,276,277,281,282,287,288,289,290,296,300,303,305,311,312,313,315,322,329,332,334,338,339,349,352,355,358,152,275,275,230,334,345,72,75,77,78,80,85,90,93,94,95,100,101,107,110,112,114,119,120,126,129,134,138,139,144,145,146,148,149,156,157,159,162,167,171,174,177,178,179,187,191,192,198,201,202,205,210,211,212,213,218,220,222,229,230,233,234,243,245,246,250,252,253,255,256,267,272,276,277,281,282,287,288,289,290,296,300,303,305,311,312,313,315,322,329,332,334,337,338,339,341,349,352,355,358,342,200,105,154,166,182,185,188,190,207,214,232,278,298,318,319,321,323,357,188,275,74,74,185,123,180,330,248,248,135,188,199,258,266,275,102,102,117,228,349,280,76,82,84,88,91,97,98,99,117,118,120,137,140,153,154,160,172,186,190,214,220,224,228,238,240,251,255,279,284,286,293,297,314,319,325,331,333,335,343,347,349,360,366,75,182,357,353,204,309,135,297,259,74,79,86,87,93,103,104,121,124,126,127,133,136,141,143,147,155,158,163,166,170,176,182,185,201,207,225,226,227,231,236,237,241,254,258,263,268,270,271,285,301,318,321,337,342,345,353,354,357,362,88,223,86,86,336,100,114,151,174,275,276,308,328,276,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,366,105,232,278,204,309,152,152,195,262,121,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,200,113,169,311,352,169,151,151,151,328,109,116,273,273,273,273,273,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,38,368,369,39,40,370,371,372,373,374,375,376,377,41,378,379,380,42,381,382,383,384,385,386,387,388,389,390,43,391,392,393,394,395,396,397,398,44,399,400,401,402,403,404,405,406,407,45,408,409,46,410,411,412,413,47,414,48,415,416,49,417,418,419,420,421,422,423,424,425,426,427,428,50,429,430,431,432,433,434,435,51,436,437,52,438,53,439,440,441,442,443,54,444,445,446,447,448,449,55,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,56,57,466,467,468,469,470,471,472,58,473,474,475,476,477,478,479,480,59,481,60,482,483,484,485,486,487,61,488,489,62,490,491,492,493,63,494,495,64,496,497,498,499,65,66,500,501,502,503,504,67,505,506,507,508,509,68,510,511,512,513,514,515,516,517,69,518,519,520,521,522,523,524,525,526,527,528,117,118,220,224,255,349,248,267,267,280,130,160,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,280,74,254,263,183,193,262,333,262,142,168,239,247,366,197,122,122,122,122,195,280,75,136,143,108,153,260,290,343,360,231,231,79,86,96,86,79,86,96,79,147,176,308,197,197,195,280,195,195,195,342,158,136,136,136,136,169,127,123,130,98,160,263,108,113,252,295,86,231,276,186,163,163,163,335,79,86,96,105,185,232,235,236,278,326,316,323,346,75,87,118,121,127,220,224,251,255,271,280,293,294,354,75,87,118,121,127,220,224,251,255,271,280,293,294,354,75,87,118,121,127,220,224,251,255,271,280,293,294,354,302,299,231,275,231,231,231,275,204,309,344,188,188,275,366,99,127,133,142,164,167,168,209,220,224,229,239,240,247,250,251,268,285,341,354,158,158,158,96,103,121,137,140,216,271,318,321,325,96,103,137,140,216,318,321,325,103,137,140,318,321,325,344,99,127,133,142,164,167,168,209,220,224,229,239,240,247,250,251,268,285,341,354,158,158,158,96,103,121,137,140,216,271,318,321,325,84,96,99,118,122,129,168,172,216,220,224,228,239,242,247,255,271,288,319,337,160,286,160,286,118,129,158,220,224,255,288,258,97,121,127,172,241,271,96,103,137,140,216,318,321,325,103,137,140,318,321,325,99,127,133,142,164,167,168,209,220,224,229,239,240,247,250,251,268,285,341,354,158,158,158,96,103,121,137,140,216,271,318,321,325,96,103,137,140,216,318,321,325,103,137,140,318,321,325,205,205,0,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,0,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,829,829,829,829,829,829,569,0,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,885,569,0,855,855,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,565,565,565,565,565,565,565,565,565,565,569,0,566,566,566,566,566,566,566,566,566,566,566,566,566,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,858,569,0,569,0,569,0,569,569,0,0,569,0,567,567,567,567,567,567,569,0,569,0,569,0,569,0,848,848,848,848,0,0,0,0,0,0,0,0,0,0,830,569,0,569,0,569,0,552,552,552,552,552,552,552,552,552,552,552,552,569,0,569,0,569,0,880,880,880,569,0,569,0,569,0,807,807,807,798,798,798,870,870,870,870,569,0,569,0,862,569,0,862,862,569,0,569,806,0,806,806,806,806,899,899,899,899,856,856,856,856,856,569,0,836,836,836,836,836,836,836,836,836,836,836,836,836,569,569,0,0,757,569,0,569,0,569,0,569,0,569,0,569,0,569,0,831,831,831,831,831,831,569,0,569,0,0,0,0,0,0,0,0,0,0,0,0,0,569,0,569,0,569,0,569,0,569,0,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,569,0,569,0,569,0,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,846,846,846,846,846,846,562,562,562,562,562,562,562,562,569,0,569,0,564,564,564,564,564,564,564,564,564,564,569,0,564,564,569,0,569,0,0,0,0,889,889,889,889,889,889,889,889,825,825,825,825,825,825,825,825,825,825,825,825,825,825,825,890,890,890,890,890,890,890,890,833,833,833,833,840,840,840,569,0,569,0,835,835,835,835,835,569,0,877,877,877,877,877,877,877,569,0,0,0,0,0,0,0,569,0,569,0,549,549,549,549,549,549,549,549,549,549,549,549,549,549,556,556,556,556,556,556,556,556,556,556,544,544,544,544,544,544,544,544,544,544,569,0,569,0,555,555,555,555,555,555,555,555,555,555,555,555,555,555,555,555,804,804,804,804,804,804,804,804,804,804,569,0,569,0,569,0,569,0,569,0,569,569,0,0,569,0,569,0,569,0,817,817,817,817,817,817,817,817,817,569,0,569,0,569,0,558,558,558,558,558,558,558,558,569,0,569,0,569,0,569,0,816,816,0,0,0,0,0,0,0,0,569,0,569,0,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,569,569,0,0,569,0,569,0,569,0,569,0,569,0,569,0,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,569,0,569,0,561,561,561,561,561,561,561,561,561,561,561,561,561,561,569,0,569,0,0,0,0,634,569,0,569,0,884,884,884,884,569,0,569,569,0,0,569,0,569,0,569,569,0,0,569,0,569,0,569,0,569,0,569,0,569,0,0,852,852,852,852,569,0,852,852,852,852,569,0,569,0,901,901,901,901,901,901,876,876,876,876,876,876,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,874,874,874,874,874,874,874,874,830,830,830,830,830,830,830,830,792,792,792,792,792,809,809,809,860,860,860,860,860,791,791,791,791,791,791,791,791,791,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,896,896,896,896,896,896,896,819,819,810,810,810,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,799,872,872,872,872,872,872,872,872,872,850,850,850,850,850,811,843,843,843,843,843,843,843,843,843,550,898,867,867,867,867,867,867,867,867,867,867,867,867,867,867,867,867,867,867,867,867,867,867,895,895,895,895,895,895,895,895,895,895,895,847,847,847,847,847,847,847,847,847,847,847,847,847,847,847,847,847,847,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,883,883,883,883,808,808,808,808,808,813,813,813,813,813,813,813,813,813,813,813,813,813,813,866,866,866,866,813,813,868,868,551,551,894,894,894,894,894,894,894,894,551,551,551,551,551,551,868,868,868,868,868,868,868,868,868,842,842,842,842,842,842,842,875,875,823,823,823,823,823,823,859,859,859,859,882,882,881,881,881,881,881,881,881,881,794,794,794,802,802,844,844,844,844,844,844,844,844,844,844,844,844,844,839,839,839,839,839,864,821,821,821,800,800,800,800,800,869,869,869,869,869,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,795,826,826,826,826,826,826,826,822,822,822,822,822,822,822,822,822,822,822,796,796,796,796,796,796,796,796,796,796,557,557,557,557,557,557,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,886,886,886,886,886,886,886,902,902,902,902,902,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,891,891,891,891,891,891,891,891,828,828,828,828,828,828,828,828,828,554,554,554,554,554,554,893,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,854,854,854,854,854,854,854,854,854,854,854,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,812,812,812,812,812,546,546,546,546,546,546,546,546,546,546,546,546,546,546,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,797,569,0,569,0,569,0,569,0,797,569,0,887,887,887,887,887,887,569,0,797,757,879,834,834,834,879,879,879,569,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,569,0,569,0,569,0,805,805,805,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,824,824,824,824,824,0,857,857,857,865,865,865,865,569,0,569,0,569,0,569,0,569,0,569,0,827,569,0,569,0,827,827,827,569,0,569,0,827,569,0,569,0,569,0,569,0,569,0,559,559,559,559,559,559,559,559,559,559,559,559,569,0,851,851,851,569,0,0,0,0,0,0,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,871,871,569,0,569,0,569,0,569,0,900,900,0,0,569,0,569,0,569,569,0,569,0,0,569,569,0,569,0,0,569,0,803,803,803,803,803,547,547,547,547,547,803,803,803,803,803,803,803,803,803,803,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,849,849,849,849,892,892,892,892,892,892,892,892,892,888,888,888,888,569,0,569,0,569,0,0,0,0,0,0,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,568,568,569,0,0,815,815,815,815,569,0,818,818,818,818,818,569,0,820,548,548,548,548,548,548,548,548,841,841,841,841,841,569,0,0,0,0,0,569,0,569,0,569,0,569,0,569,0,569,0,897,897,853,853,853,853,569,0,569,0,837,837,837,837,837,730,0,0,730,0,569,0,569,0,863,863,863,863,878,878,878,878,878,878,838,838,838,838,838,838,838,838,838,838,569,0,569,0,0,0,0,793,793,793,793,737,755,736,786,786,786,615,651,670,753,772,772,654,666,692,781,782,666,692,781,782,666,692,781,782,609,716,759,765,759,765,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,577,588,609,622,623,632,641,652,686,724,726,731,736,776,781,782,698,714,698,575,596,634,650,655,765,599,759,764,764,599,753,599,599,759,599,634,779,779,581,582,664,581,582,664,581,582,664,584,596,655,596,655,596,655,594,594,594,594,703,647,700,714,736,641,763,763,612,678,699,729,765,778,661,661,661,661,645,769,688,688,688,764,591,592,729,759,615,651,615,651,615,651,615,651,723,765,723,672,773,667,672,759,658,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,639,704,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,708,696,720,696,720,696,720,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,599,631,631,631,631,586,702,768,723,741,778,778,634,757,676,676,622,587,620,708,773,773,622,594,600,725,600,725,600,725,600,600,600,600,600,600,600,636,725,790,682,600,636,725,790,682,600,636,725,790,682,600,636,725,790,682,600,636,725,790,682,600,636,725,790,682,600,636,725,790,682,600,636,725,790,682,600,725,600,773,598,594,594,609,759,765,709,709,709,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,588,686,724,612,614,627,665,678,699,786,789,778,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,665,746,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,670,739,611,669,687,666,692,781,782,597,626,639,658,684,746,766,746,638,652,663,688,690,690,612,678,699,701,762,667,672,672,638,674,765,765,765,587,592,729,759,765,587,736,773,591,586,607,618,640,648,657,658,679,702,766,763,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,569,784,595,595,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,703,703,658,773,724,724,778,778,778,737,755,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,757,757,757,757,764,773,776,597,677,779,780,606,667,591,634,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,584,584,604,705,754,672,591,588,686,724,765,588,686,724,765,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,743,746,667,667,667,667,667,736,727,652,688,703,591,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,774,759,664,746,765,574,690,727,737,755,583,622,587,676,640,657,668,778,588,623,686,724,711,572,577,578,581,582,607,634,639,658,659,664,669,676,704,718,730,742,757,708,577,708,647,649,649,649,649,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,544,544,544,544,797,545,545,545,545,545,798,799,800,801,802,803,804,805,806,546,546,546,546,546,547,547,547,547,547,807,808,809,810,811,812,813,814,815,548,548,548,548,548,549,549,549,549,549,816,550,550,550,550,550,817,818,819,551,551,551,551,551,820,821,822,823,824,825,826,827,828,829,830,552,552,552,552,552,553,553,553,553,553,831,554,554,554,554,554,832,833,834,835,836,555,555,555,555,555,837,838,839,840,841,842,843,844,845,556,556,556,556,556,557,557,557,557,557,846,847,848,558,558,558,558,558,849,850,559,559,559,559,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,560,560,560,560,873,561,561,561,561,561,874,562,562,562,562,562,563,563,563,563,563,875,876,877,878,879,880,881,882,883,884,885,564,564,564,564,564,886,887,888,889,890,891,892,893,565,565,565,565,565,894,895,566,566,566,566,566,896,567,567,567,567,567,897,898,568,568,568,568,568,899,900,901,902,676,744,758,612,644,678,685,699,760,779,598,639,704,653,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,591,591,670,771,771,723,723,578,582,620,718,742,759,623,759,690,690,648,770,648,649,609,759,765,611,687,577,776,659,587,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,726,776,776,623,609,634,757,759,765,759,591,619,660,764,764,639,698,704,634,623,728,764,753,733,777,777,777,615,651,586,613,638,672,684,702,703,733,753,766,773,585,594,595,671,735,763,764,671,768,591,623,622,645,645,606,752,641,653,746,762,746,751,591,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,591,591,677,780,677,780,677,780,677,780,677,780,677,780,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,788,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,660,637,574,789,656,727,759,683,774,613,763,668,577,588,622,623,632,634,641,648,652,674,686,715,724,726,731,736,757,770,776,698,698,781,782,575,596,650,655,759,764,765,586,607,618,702,640,657,763,676,740,701,690,690,690,690,690,667,723,674,703,577,588,622,623,632,634,641,648,652,674,686,715,724,726,731,736,757,770,776,698,698,781,782,575,596,650,655,759,764,765,659,601,770,729,571,574,638,639,654,660,672,690,729,757,765,773,606,638,740,574,569,788,569,569,643,761,735,603,603,603,708,708,606,638,740,789,789,574,619,661,669,706,601,587,676,735,570,605,639,680,700,757,777,714,661,714,714,757,584,577,577,577,711,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,615,651,768,613,778,778,778,684,766,778,778,778,643,667,667,667,768,594,697,585,585,594,697,594,594,697,638,708,708,644,685,644,685,644,685,644,685,644,685,644,685,660,612,665,678,699,612,665,678,699,612,665,678,699,612,665,678,699,665,665,665,589,745,589,616,635,717,719,721,734,745,589,717,721,734,745,719,589,616,635,719,745,589,616,635,719,745,734,734,734,734,569,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,739,675,660,694,756,761,694,694,674,771,771,584,573,578,601,625,632,642,673,718,731,747,759,775,661,587,620,587,620,578,716,718,598,630,641,642,663,731,621,621,633,682,790,659,659,716,659,659,784,786,784,786,784,786,784,786,598,736,723,646,689,750,767,646,750,767,689,689,737,755,742,742,708,591,584,581,582,596,598,622,629,655,663,664,696,698,716,720,727,630,632,630,632,630,632,630,632,727,574,649,677,780,741,621,760,690,690,736,769,787,621,621,621,621,645,723,577,622,652,726,711,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,711,580,580,608,639,676,704,639,676,704,584,773,627,774,584,573,601,625,632,642,673,731,747,759,775,661,587,620,587,620,716,598,630,641,642,663,731,639,704,591,762,600,682,711,725,790,615,651,615,651,615,651,723,603,603,603,603,774,711,789,602,602,602,602,602,588,602,623,686,724,734,742,742,751,649,677,780,676,676,606,590,593,612,628,662,699,707,713,785,679,572,640,657,703,748,787,787,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,773,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,633,633,633,633,633,633,633,633,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,732,774,735,613,660,779,779,674,591,740,701,623,764,764,764,634,753,675,604,705,754,580,683,574,701,723,743,764,769,632,632,608,769,769,690,690,690,639,643,704,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,619,774,777,777,777,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,729,647,741,765,714,571,576,578,580,581,582,585,586,590,594,595,604,612,614,616,617,618,626,628,635,636,640,657,662,664,665,668,671,678,684,685,687,691,692,693,694,695,697,699,702,705,707,710,712,717,718,720,721,727,734,735,744,748,751,754,756,758,761,763,764,768,782,787,621,765,765,756,761,779,571,575,576,578,580,581,582,585,586,590,592,594,595,604,612,614,616,617,618,626,628,635,636,640,655,657,662,664,665,668,671,678,684,685,687,691,692,693,694,695,697,699,702,705,707,710,712,717,718,720,721,727,734,735,739,744,748,751,754,756,758,761,763,764,768,782,787,659,624,646,672,677,689,701,733,737,746,750,755,759,767,780,759,765,690,690,701,674,732,753,609,661,759,765,591,591,601,696,720,577,573,579,583,587,600,601,605,610,620,622,630,638,642,645,646,647,664,666,676,680,681,682,683,692,696,698,706,720,726,738,742,749,750,752,767,769,771,775,781,782,790,727,677,780,615,651,753,579,723,570,588,590,593,597,598,599,606,611,619,623,629,633,641,649,652,659,661,663,669,677,686,687,688,689,690,700,701,709,716,724,725,728,731,737,746,755,760,762,772,777,779,780,783,784,786,613,622,623,623,658,594,603,697,736,763,764,765,774,764,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,769,615,651,621,621,776,608,641,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,624,634,757,693,744,757,603,603,603,774,711,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,544,797,545,798,799,800,801,802,803,804,805,806,546,547,807,808,809,810,811,812,813,814,815,548,549,816,550,817,818,819,551,820,821,822,823,824,825,826,827,828,829,830,552,553,831,554,832,833,834,835,836,555,837,838,839,840,841,842,843,844,845,556,557,846,847,848,558,849,850,559,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,560,873,561,874,562,563,875,876,877,878,879,880,881,882,883,884,885,564,886,887,888,889,890,891,892,893,565,894,895,566,896,567,897,898,568,899,900,901,902,666,692,696,720,781,782,671,577,671,587,708,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,577,690,619,777,583,608,639,608,625,673,722,747,769,577,776,727,784,786,605,654,680,752,728,728,588,623,632,623,588,623,632,588,686,724,736,577,776,776,776,776,659,716,786,786,786,786,757,598,708,587,676,619,654,634,739,740,623,728,764,698,709,709,709,645,588,623,632,701,762,667,672,656,577,598,641,652,666,688,692,726,727,731,738,781,782,577,598,641,652,666,688,692,726,727,731,738,781,782,577,598,641,652,666,688,692,726,727,731,738,781,782,773,660,728,765,728,728,728,765,615,651,714,759,759,765,769,570,596,598,612,625,629,655,666,673,678,688,692,699,722,738,741,747,760,775,716,716,716,610,632,641,681,731,737,749,755,783,610,632,681,737,749,755,783,610,681,737,749,755,783,714,570,596,598,612,625,629,655,666,673,678,688,692,699,722,738,741,747,760,775,716,716,716,610,632,641,681,731,737,749,755,783,573,578,601,625,632,642,666,673,692,718,731,747,775,781,782,587,620,587,620,578,666,692,716,718,781,782,661,598,630,641,642,663,731,610,632,681,737,749,755,783,610,681,737,749,755,783,570,596,598,612,625,629,655,666,673,678,688,692,699,722,738,741,747,760,775,716,716,716,610,632,641,681,731,737,749,755,783,610,632,681,737,749,755,783,610,681,737,749,755,783,22,22,30,33,0,0,30,0,22,22,30,33,22,30,33,22,22,30,30,33,33,22,30,30,30,33,33,22,30,33,22,30,33,22,30,33,22,30,33,22,30,33,1279,1280,1281,1280,1279,905,906,907,908,905,906,907,907,907,907,907,907,904,0,904,0,908,908,908,0,0,0,904,905,906,907,908,904,905,906,907,908,904,905,906,907,908,904,905,906,907,908,905,906,907,908,904,905,906,904,905,906,907,908,904,905,906,907,908,904,904,905,906,907,908,904,905,906,907,908,907,908,907,908,904,905,906,907,908,906,906,906,906,906,904,904,904,906,906,906,906,906,906,904,904,905,906,904,905,906,907,908,905,907,908,904,905,906,907,908,907,908,904,905,906,907,908,904,905,906,907,908,906,906,906,906,906,904,905,906,907,908,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28,1239,1239,1239,1239,1239,1239,937,0,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,937,0,1170,1170,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,915,915,915,915,915,915,915,915,915,915,937,0,918,918,918,918,918,918,918,918,918,918,918,918,918,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,937,0,937,0,937,0,937,937,0,0,937,0,928,928,928,928,928,928,937,0,937,0,937,0,937,0,1208,1208,1208,1208,0,0,0,0,0,0,0,0,0,0,1195,937,0,937,0,937,0,927,927,927,927,927,927,927,927,927,927,927,927,937,0,937,0,937,0,1254,1254,1254,937,0,937,0,937,0,1203,1203,1203,1218,1218,1218,1250,1250,1250,1250,937,0,937,0,1261,937,0,1261,1261,937,0,937,1234,0,1234,1234,1234,1234,1206,1206,1206,1206,1219,1219,1219,1219,1219,937,0,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,937,937,0,0,984,937,0,937,0,937,0,937,0,937,0,937,0,937,0,1220,1220,1220,1220,1220,1220,937,0,937,0,0,0,0,0,0,0,0,0,0,0,0,0,937,0,937,0,937,0,937,0,937,0,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,937,0,937,0,937,0,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1241,1241,1241,1241,1241,1241,924,924,924,924,924,924,924,924,937,0,937,0,911,911,911,911,911,911,911,911,911,911,937,0,911,911,937,0,937,0,0,0,0,1200,1200,1200,1200,1200,1200,1200,1200,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1193,1193,1193,1193,1193,1193,1193,1193,1167,1167,1167,1167,1270,1270,1270,937,0,937,0,1275,1275,1275,1275,1275,937,0,1265,1265,1265,1265,1265,1265,1265,937,0,0,0,0,0,0,0,937,0,937,0,931,931,931,931,931,931,931,931,931,931,931,931,931,931,919,919,919,919,919,919,919,919,919,919,920,920,920,920,920,920,920,920,920,920,937,0,937,0,923,923,923,923,923,923,923,923,923,923,923,923,923,923,923,923,1238,1238,1238,1238,1238,1238,1238,1238,1238,1238,937,0,937,0,937,0,937,0,937,0,937,937,0,0,937,0,937,0,937,0,1259,1259,1259,1259,1259,1259,1259,1259,1259,937,0,937,0,937,0,929,929,929,929,929,929,929,929,937,0,937,0,937,0,937,0,1255,1255,0,0,0,0,0,0,0,0,937,0,937,0,926,926,926,926,926,926,926,926,926,926,926,926,926,926,926,937,937,0,0,937,0,937,0,937,0,937,0,937,0,937,0,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,937,0,937,0,921,921,921,921,921,921,921,921,921,921,921,921,921,921,937,0,937,0,0,0,0,1003,972,937,0,937,0,1240,1240,1240,1240,937,0,937,937,0,0,937,0,937,0,937,937,0,0,937,0,937,0,937,0,937,0,937,0,937,0,0,1258,1258,1258,1258,937,0,1258,1258,1258,1258,937,0,937,0,1224,1224,1224,1224,1224,1224,1277,1277,1277,1277,1277,1277,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1197,1197,1197,1197,1197,1197,1197,1197,1195,1195,1195,1195,1195,1195,1195,1195,1196,1196,1196,1196,1196,1235,1235,1235,1169,1169,1169,1169,1169,1174,1174,1174,1174,1174,1174,1174,1174,1174,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1162,1162,1162,1162,1162,1162,1162,1246,1246,1182,1182,1182,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1189,1189,1189,1189,1189,1189,1189,1189,1189,1163,1163,1163,1163,1163,1245,1247,1247,1247,1247,1247,1247,1247,1247,1247,932,1236,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1178,1178,1178,1178,1178,1178,1178,1178,1178,1178,1178,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,1198,1198,1198,1198,1227,1227,1227,1227,1227,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1173,1173,1173,1173,1191,1191,1268,1268,913,913,1180,1180,1180,1180,1180,1180,1180,1180,913,913,913,913,913,913,1268,1268,1268,1268,1268,1268,1268,1268,1268,1269,1269,1269,1269,1269,1269,1269,1232,1232,1251,1251,1251,1251,1251,1251,1207,1207,1207,1207,1278,1278,1267,1267,1267,1267,1267,1267,1267,1267,1252,1252,1252,1171,1171,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1264,1264,1264,1264,1264,1272,1166,1166,1166,1176,1176,1176,1176,1176,1260,1260,1260,1260,1260,1215,1215,1215,1215,1215,1215,1215,1215,1215,1215,1215,1215,1215,1215,1215,1215,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1199,1199,1199,1199,1199,1199,1199,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,930,930,930,930,930,930,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,1187,1187,1187,1187,1187,1187,1187,1262,1262,1262,1262,1262,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1175,1175,1175,1175,1175,1175,1175,1175,1164,1164,1164,1164,1164,1164,1164,1164,1164,916,916,916,916,916,916,1225,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,1214,1214,1214,1214,1214,1214,1214,1214,1214,1214,1214,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1256,1226,1226,1226,1226,1226,917,917,917,917,917,917,917,917,917,917,917,917,917,917,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,1248,937,0,937,0,937,0,937,0,1248,937,0,1205,1205,1205,1205,1205,1205,937,0,1248,984,1263,1249,1249,1249,1263,1263,1263,937,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,937,0,937,0,937,0,1186,1186,1186,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,1179,1179,1179,1179,1179,0,1221,1221,1221,1242,1242,1242,1242,937,0,937,0,937,0,937,0,937,0,937,0,1266,937,0,937,0,1266,1266,1266,937,0,937,0,1266,937,0,937,0,937,0,937,0,937,0,912,912,912,912,912,912,912,912,912,912,912,912,937,0,1237,1237,1237,937,0,0,0,0,0,0,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,1216,1216,937,0,937,0,937,0,937,0,1204,1204,0,0,937,0,937,0,937,937,0,937,0,0,937,937,0,937,0,0,937,0,1244,1244,1244,1244,1244,934,934,934,934,934,1244,1244,1244,1244,1244,1244,1244,1244,1244,1244,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,1253,1253,1253,1253,1202,1202,1202,1202,1202,1202,1202,1202,1202,1217,1217,1217,1217,937,0,937,0,937,0,0,0,0,0,0,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,922,922,937,0,0,1210,1210,1210,1210,937,0,1184,1184,1184,1184,1184,937,0,937,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,0,1211,1211,1211,1211,1211,1211,1211,1211,1172,1172,1222,937,0,1212,1212,1212,1212,1212,1212,933,933,933,933,933,1222,1222,1222,1222,1222,1222,909,909,909,1222,935,935,935,935,937,0,1257,925,925,925,925,925,925,925,925,1188,1188,1188,1188,1188,937,0,0,0,0,0,0,0,0,0,0,0,0,0,937,0,937,0,937,0,937,0,937,0,937,0,1233,1233,1201,1201,1201,1201,937,0,937,0,1271,1271,1271,1271,1271,988,1106,0,0,988,0,937,0,937,0,1273,1273,1273,1273,1181,1181,1181,1181,1181,1181,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,937,0,937,0,0,0,0,1243,1243,1243,1243,963,1020,1096,977,977,977,958,969,1106,1106,1106,942,1034,953,953,1069,1033,1054,1063,1068,1033,1054,1063,1068,1033,1054,1063,1068,1003,1025,1026,1029,1088,1025,1026,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,943,973,980,1009,1019,1029,1033,1040,1050,1068,1079,1096,1124,1127,1139,1155,1013,983,1013,971,972,991,1001,1025,1051,966,1026,1030,1030,966,1034,966,966,1026,966,972,968,968,1122,1135,1146,1122,1135,1146,1122,1135,1146,985,991,1001,991,1001,991,1001,1007,1007,1007,1007,1102,989,1094,983,1096,943,1043,1043,964,976,1074,1025,1111,1117,946,946,946,946,1049,1138,941,941,941,1106,1030,1089,1026,1053,1111,958,969,958,969,958,969,958,969,1073,1025,1073,1077,1158,1026,1065,1158,956,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1017,1147,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1144,1037,1109,1037,1109,1037,1109,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,966,1027,1027,1027,1027,961,1123,1145,1073,995,1117,1117,972,984,1003,1028,1028,980,992,1098,1144,1077,1077,980,1007,1121,1140,1121,1140,1121,1140,1140,1140,1140,1140,1140,1140,1044,1121,1140,1161,978,1044,1121,1140,1161,978,1044,1121,1140,1161,978,1044,1121,1140,1161,978,1044,1121,1140,1161,978,1044,1121,1140,1161,978,1044,1121,1140,1161,978,1044,1121,1140,1161,978,1121,1140,1140,1077,962,1007,1007,1029,1025,1026,1057,1057,1057,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1019,1079,1127,964,975,976,977,979,998,1074,952,1117,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,975,1022,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,942,1152,1047,1082,1116,1033,1054,1063,1068,956,997,1022,1039,1071,1147,1153,1022,941,1050,1075,1084,947,947,964,976,1005,1074,1119,1065,1158,1158,1075,1157,1025,1025,1025,992,1025,1026,1053,1111,992,1096,1077,1089,956,959,961,1008,1052,1058,1110,1145,1149,1153,1043,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,937,1061,1156,1156,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,1102,1102,956,1077,1079,1079,1117,1117,1117,963,1020,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,984,984,984,984,1030,1077,1124,968,1006,1062,1071,1023,1065,1089,1106,1003,972,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,985,985,1011,951,1143,1158,1089,1019,1025,1079,1127,1019,1025,1079,1127,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,1036,1022,1065,1065,1065,1065,1065,1096,1136,941,1050,1102,1089,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,1105,1026,1022,1025,1122,1103,947,1136,963,1020,1093,980,992,1028,1052,1058,939,1117,1019,1079,1127,1139,1141,956,959,972,984,988,993,1002,1017,1028,1035,1083,1116,1122,1135,1146,1147,1148,1155,1144,1155,1144,989,1108,1108,1108,1108,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,909,909,909,909,1163,1164,1165,1166,910,910,910,910,910,1167,1168,1169,1170,1171,911,911,911,911,911,1172,912,912,912,912,912,1173,1174,1175,1176,913,913,913,913,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,914,914,914,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,915,915,915,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,916,916,916,916,917,917,917,917,917,1207,1208,918,918,918,918,918,1209,1210,1211,1212,1213,1214,1215,919,919,919,919,919,1216,1217,1218,1219,1220,1221,920,920,920,920,920,1222,1223,1224,1225,1226,1227,1228,921,921,921,921,921,1229,1230,922,922,922,922,922,1231,923,923,923,923,923,1232,1233,1234,1235,1236,924,924,924,924,924,1237,1238,1239,925,925,925,925,925,1240,1241,1242,1243,926,926,926,926,926,1244,1245,1246,1247,927,927,927,927,927,928,928,928,928,928,1248,929,929,929,929,929,1249,1250,930,930,930,930,930,1251,1252,1253,931,931,931,931,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,932,932,932,932,1263,1264,1265,1266,1267,1268,1269,1270,933,933,933,933,933,1271,1272,1273,1274,1275,934,934,934,934,934,935,935,935,935,935,1276,936,936,936,936,936,1277,1278,1028,1031,1099,949,964,968,976,1032,1074,1128,962,1017,1147,1045,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1089,1089,942,1125,1125,1073,1073,993,1002,1035,1098,1135,1106,1106,1106,1106,1003,1003,1026,1139,1026,947,947,1008,1076,1008,1108,1025,1026,1029,1047,1082,1124,1155,1148,992,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,973,1124,1124,1139,972,984,1025,1026,1029,1026,1089,1160,1014,1030,1030,1013,1017,1147,972,1139,1151,1030,1034,965,1118,1118,1118,958,969,961,965,1034,1039,1075,1077,1095,1102,1145,1153,1158,944,999,1007,1030,1043,1115,1156,1115,1123,1089,1139,980,1049,1049,1023,1072,943,1022,1045,1119,1022,1097,1089,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1089,1089,1006,1062,1006,1062,1006,1062,1006,1062,1006,1062,1006,1062,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1012,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1014,1067,1103,952,1026,1055,1136,1086,1105,1095,1043,939,943,972,973,980,984,1008,1009,1019,1040,1046,1050,1076,1079,1096,1124,1127,1139,1155,1157,1013,1013,1033,1068,971,991,1001,1025,1026,1030,1051,959,961,1145,1149,1043,1052,1058,1028,1134,1005,947,947,947,947,947,1065,1073,1157,1102,943,972,973,980,984,1008,1009,1019,1040,1046,1050,1076,1079,1096,1124,1127,1139,1155,1157,1013,1013,1033,1068,971,991,1001,1025,1026,1030,1051,1148,1038,1076,1111,947,984,1014,1015,1025,1069,1075,1077,1103,1111,1147,1158,1023,1075,1134,1103,937,1012,937,937,1048,1113,944,1150,1150,1150,1144,1144,1023,1075,1134,952,952,1103,946,1116,1160,1010,1038,992,1028,944,950,984,1016,1094,1118,1133,1147,983,946,983,983,984,985,1155,1155,1155,1141,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,958,969,1106,1123,1095,1117,1117,1117,1039,1153,1117,1117,1117,1048,1065,1065,1065,1123,1007,1018,999,999,1007,1018,1007,1007,1018,1075,1144,1144,1032,1128,1032,1128,1032,1128,1032,1128,1032,1128,1032,1128,1014,964,975,976,1074,964,975,976,1074,964,975,976,1074,964,975,976,1074,975,975,975,1112,1129,940,981,1041,1101,1112,1129,1130,1142,940,1101,1112,1129,1130,1142,981,1041,1112,1129,1142,981,1041,1112,1129,1142,940,940,940,940,937,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1152,996,994,1014,1021,1113,1021,1021,1157,1125,1125,985,957,1002,1009,1026,1035,1038,1040,1060,1064,1087,1126,1131,946,992,1098,992,1098,1002,1035,1088,943,957,962,1040,1084,1114,1100,1100,967,978,1161,1148,1148,1088,1148,1148,977,1061,977,1061,977,1061,977,1061,962,1096,1073,986,1091,1104,1154,986,1091,1154,1104,1104,963,1020,993,993,1144,1089,985,962,980,991,1001,1013,1037,1084,1085,1088,1109,1122,1135,1136,1146,1009,1114,1009,1114,1009,1114,1009,1114,1136,1006,1062,1103,1108,995,949,1100,947,947,1096,1138,945,1100,1100,1100,1100,1049,1073,973,980,1050,1155,1141,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1141,1056,1056,982,1017,1028,1147,1017,1028,1147,985,1077,979,1042,1003,1105,985,957,1009,1026,1038,1040,1060,1064,1087,1126,1131,946,992,1098,992,1098,1088,943,957,962,1040,1084,1114,1017,1147,1089,1119,978,1121,1140,1141,1161,958,969,958,969,958,969,1073,1150,1150,1150,1150,1105,1141,952,970,970,970,970,970,970,1019,1079,1127,1139,940,993,993,1097,1006,1062,1108,1028,1028,1023,938,954,974,976,1059,1074,1078,1107,1120,1110,945,948,1052,1058,1083,1102,945,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1077,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,967,967,967,967,967,967,967,967,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1080,1105,944,1014,1095,968,968,1157,1089,1134,1005,1030,1139,1030,1030,972,1106,1034,996,1003,1011,951,1143,1056,1086,1106,1005,1030,1036,1073,1103,1138,1009,1009,982,1138,1138,947,947,947,1017,1048,1147,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1160,1105,1118,1118,1118,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1111,989,995,1025,983,938,939,940,944,945,948,951,955,960,961,964,974,975,976,981,987,994,997,998,999,1000,1002,1007,1011,1015,1018,1021,1024,1030,1031,1032,1033,1035,1037,1039,1041,1043,1044,1052,1056,1058,1059,1063,1074,1078,1082,1097,1099,1101,1113,1115,1122,1123,1130,1132,1135,1136,1137,1143,1145,1146,1149,1156,1100,1025,1025,994,1113,968,938,939,940,944,945,948,951,955,960,961,964,971,974,975,976,981,987,994,997,998,999,1000,1001,1002,1007,1011,1015,1018,1021,1024,1030,1031,1032,1033,1035,1037,1039,1041,1043,1044,1052,1053,1056,1058,1059,1063,1074,1078,1082,1097,1099,1101,1113,1115,1122,1123,1130,1132,1135,1136,1137,1143,1145,1146,1149,1152,1156,1148,1090,963,965,986,1005,1006,1020,1022,1026,1062,1091,1104,1154,1158,1025,1026,947,947,1005,1157,1080,1034,946,1025,1026,1029,1089,1089,1037,1038,1109,1155,957,973,978,980,986,989,992,993,1004,1010,1013,1016,1028,1033,1037,1038,1049,1054,1063,1064,1066,1068,1072,1075,1081,1086,1091,1092,1093,1098,1109,1114,1122,1125,1126,1133,1138,1140,1154,1159,1161,1136,1006,1062,958,969,1034,1092,1073,941,943,946,947,949,950,953,954,962,963,966,967,968,977,1005,1006,1019,1020,1022,1023,1040,1047,1050,1057,1059,1061,1062,1070,1071,1079,1082,1084,1085,1088,1094,1104,1108,1116,1118,1119,1121,1127,1139,1148,1151,1160,980,1095,1139,1139,956,1007,1018,1025,1030,1043,1096,1105,1150,1030,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1138,958,969,1100,1100,1124,982,943,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,1090,972,984,1031,1132,984,1150,1150,1150,1105,1141,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,909,1163,1164,1165,1166,910,1167,1168,1169,1170,1171,911,1172,912,1173,1174,1175,1176,913,1177,1178,1179,1180,1181,1182,1183,1184,1185,914,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,915,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,916,917,1207,1208,918,1209,1210,1211,1212,1213,1214,1215,919,1216,1217,1218,1219,1220,1221,920,1222,1223,1224,1225,1226,1227,1228,921,1229,1230,922,1231,923,1232,1233,1234,1235,1236,924,1237,1238,1239,925,1240,1241,1242,1243,926,1244,1245,1246,1247,927,928,1248,929,1249,1250,930,1251,1252,1253,931,1254,1255,1256,1257,1258,1259,1260,1261,1262,932,1263,1264,1265,1266,1267,1268,1269,1270,933,1271,1272,1273,1274,1275,934,935,1276,936,1277,1278,1033,1037,1054,1063,1068,1109,1115,1115,1155,992,1144,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1155,947,1118,1160,982,1093,1147,982,990,1060,1087,1131,1138,1106,1124,1155,1136,977,1061,1016,1069,1072,1133,1151,1151,1009,1019,1139,1139,1009,1019,1139,1019,1079,1096,1127,1106,1106,1124,1155,1124,1124,1124,1148,1088,977,977,977,977,984,962,1144,992,1028,1160,1069,972,1134,1152,1139,1151,1030,1013,1057,1057,1057,1049,1009,1019,1139,1005,1119,1065,1158,1055,941,943,962,973,1033,1040,1050,1054,1063,1068,1136,1155,1159,941,943,962,973,1033,1040,1050,1054,1063,1068,1136,1155,1159,941,943,962,973,1033,1040,1050,1054,1063,1068,1136,1155,1159,1077,1014,1151,1025,1151,1151,1151,1025,958,969,983,1026,1025,1026,1138,941,949,950,962,964,976,990,991,995,1001,1054,1060,1063,1064,1074,1085,1087,1131,1159,1088,1088,1088,943,963,1004,1009,1020,1040,1066,1070,1081,963,1004,1009,1020,1066,1070,1081,963,1004,1020,1066,1070,1081,983,941,949,950,962,964,976,990,991,995,1001,1054,1060,1063,1064,1074,1085,1087,1131,1159,1088,1088,1088,943,963,1004,1009,1020,1040,1066,1070,1081,957,1002,1009,1033,1035,1038,1040,1054,1060,1063,1064,1068,1087,1126,1131,992,1098,992,1098,1002,1033,1035,1054,1063,1068,1088,946,943,957,962,1040,1084,1114,963,1004,1009,1020,1066,1070,1081,963,1004,1020,1066,1070,1081,941,949,950,962,964,976,990,991,995,1001,1054,1060,1063,1064,1074,1085,1087,1131,1159,1088,1088,1088,943,963,1004,1009,1020,1040,1066,1070,1081,963,1004,1009,1020,1066,1070,1081,963,1004,1020,1066,1070,1081,0],"f":"```````````````````{{{b{c}}}{{b{e}}}{}{}}0000{{{b{dc}}}{{b{de}}}{}{}}0000``{{{b{{h{f}}}}f}j}{{{b{l}}}j}{{{b{n}}}j}{{{b{A`}}}A`}{{{b{Ab}}}Ab}{{{b{{Ad{c}}}}}{{Ad{c}}}{AfAh}}{{{b{l}}}l}{{{b{n}}}n}{{{b{c}}{b{de}}}Aj{}{}}0000`{{{b{n}}}f}{{{b{l}}}f}1`{{{b{Al}}}{{Bd{{B`{An}}Bb}}}}{{}A`}{{}l}{{}n}{Bf{{Bd{Ah{b{Al}}}}}}{{Ab{b{{h{f}}}}}{{Bd{{Bj{}{{Bh{c}}}}Bl}}}Ah}{{Ab{b{{h{f}}}}}{{Bd{{Ad{c}}Bl}}}Ah}{c{{Bd{A`}}}Bn}{{{b{A`}}{b{A`}}}C`}{{{b{Ab}}{b{Ab}}}C`}{{{b{l}}{b{l}}}C`}{{{b{n}}{b{n}}}C`}`{Bff}{{{b{A`}}{b{dCb}}}{{Bd{AjCd}}}}{{{b{Ab}}{b{dCb}}}{{Bd{AjCd}}}}{{{b{{Ad{c}}}}{b{dCb}}}{{Bd{AjCd}}}{CfAh}}{{{b{l}}{b{dCb}}}{{Bd{AjCd}}}}{{{b{n}}{b{dCb}}}{{Bd{AjCd}}}}{cc{}}0000{{{b{An}}}Ab}{{{b{l}}}C`}{{{b{n}}}C`}{{{b{{Ad{c}}}}}A`Ah}{{{b{dl}}}{{b{{h{f}}}}}}{{{b{dn}}}{{b{{h{f}}}}}}``{{{b{n}}}f}{ce{}{}}0000{{{b{Ah}}}Bf}{{{b{l}}}f}{{{b{n}}}Bf}{{{b{Al}}}{{Bd{Bf{b{Al}}}}}}{{{b{Ah}}}{{b{Al}}}}`{{}l}{{}n}{{AbBf{b{{h{f}}}}}{{Bd{AhBl}}}}{{{b{l}}}{{b{{h{f}}}}}}{{{b{n}}}{{b{{h{f}}}}}}8;``10{{{b{d{Ch{c}}}}}{{Bd{{Cj{A`e}}Cl}}}CnAh}{{{b{d{Ch{c}}}}}{{Bd{lCl}}}Cn}1{{{b{d{Ch{c}}}}}{{Bd{nCl}}}Cn}{{{b{d{Ch{c}}}}Ab}{{Bd{{Cj{A`e}}Cl}}}CnAh}{{{b{An}}}{{Bd{{Cj{A`c}}Cl}}}Ah}{{{b{An}}}{{Bd{{Ad{c}}Cl}}}Ah}{{{b{An}}{b{A`}}{b{c}}}{{Bd{D`Db}}}Ah}{{{b{An}}{b{c}}}{{Bd{D`Db}}}Ah}{{{b{An}}{b{{Ad{c}}}}}{{Bd{D`Db}}}Ah}{{{b{l}}}f}{{{b{n}}}f}`{{{b{Ah}}Ab{b{d{h{f}}}}}D`}{{{b{{Bj{}{{Bh{c}}}}}}Ab{b{d{h{f}}}}}D`Ah}{{{b{{Ad{c}}}}{b{d{h{f}}}}}D`Ah}{{{b{A`}}c}BdDd}{{{b{Ab}}c}BdDd}{{{b{{Ad{c}}}}e}Bd{AhDf}Dd}{{{b{dl}}A`{b{c}}}AjAh}{{{b{dn}}A`{b{c}}}AjAh}{{{b{dl}}A`{b{c}}}AjBj}{{{b{dn}}A`{b{c}}}AjBj}{{{b{dAn}}Ab}Aj}<;`{{{b{c}}}e{}{}}0000{c{{Bd{e}}}{}{}}000000000{{{b{c}}}Dh{}}0000``{{{b{dc}}A`{b{e}}}{{Bd{D`Db}}}DjAh}0{{{b{dc}}AbA`{b{e}}}{{Bd{D`Db}}}DjAh}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{}Dl}{{}Dn}{{}E`}{{}Eb}{{}Ed}{{}Ef}{{}Eh}{{}Ej}{{}El}{{}En}{{}F`}{{}Fb}{{}Fd}{{}Ff}{{}Fh}{{}Fj}{{}Fl}{{}Fn}{{}G`}{{}Gb}{{}Gd}{{}Gf}{{}Gh}{{}Gj}{{}Gl}{{}Gn}{{}H`}{{}Hb}{{}Hd}{{}Hf}{{}Hh}{{}Hj}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}```{{{b{Dl}}}Hl}{{{b{Dn}}}j}{{{b{E`}}}j}{{{b{Eb}}}j}{{{b{Ed}}}f}{{{b{Ef}}}Bf}{{{b{Eh}}}Bf}{{{b{Ej}}}j}{{{b{El}}}f}{{{b{En}}}Hl}{{{b{F`}}}Bf}{{{b{Fb}}}f}{{{b{Fd}}}j}{{{b{Ff}}}f}{{{b{Fh}}}j}{{{b{Fj}}}f}{{{b{Fl}}}j}{{{b{Fn}}}f}{{{b{G`}}}f}{{{b{Gb}}}Bf}{{{b{Gd}}}j}{{{b{Gf}}}Bf}{{{b{Gh}}}j}{{{b{Gj}}}Bf}{{{b{Gl}}}j}{{{b{Gn}}}j}{{{b{H`}}}j}{{{b{Hb}}}f}{{{b{Hd}}}j}{{{b{Hf}}}Bf}{{{b{Hh}}}f}{{{b{Hj}}}f}{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}```````{{{b{c}}}{{b{e}}}{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{dc}}}{{b{de}}}{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{Hn}}}Hn}{{{b{I`}}}I`}{{{b{Ib}}}Ib}{{{b{Id}}}Id}{{{b{If}}}If}{{{b{Ih}}}Ih}{{{b{Ij}}}Ij}{{{b{Il}}}Il}{{{b{In}}}In}{{{b{J`}}}J`}{{{b{Jb}}}Jb}{{{b{Jd}}}Jd}{{{b{Jf}}}Jf}{{{b{Jh}}}Jh}{{{b{Jj}}}Jj}{{{b{Jl}}}Jl}{{{b{Jn}}}Jn}{{{b{K`}}}K`}{{{b{Kb}}}Kb}{{{b{Kd}}}Kd}{{{b{Kf}}}Kf}{{{b{Kh}}}Kh}{{{b{Kj}}}Kj}{{{b{Kl}}}Kl}{{{b{Kn}}}Kn}{{{b{L`}}}L`}{{{b{Lb}}}Lb}{{{b{Ld}}}Ld}{{{b{Lf}}}Lf}{{{b{Lh}}}Lh}{{{b{Lj}}}Lj}{{{b{Ll}}}Ll}{{{b{Ln}}}Ln}{{{b{M`}}}M`}{{{b{Mb}}}Mb}{{{b{Md}}}Md}{{{b{Mf}}}Mf}{{{b{Mh}}}Mh}{{{b{Mj}}}Mj}{{{b{Ml}}}Ml}{{{b{Mn}}}Mn}{{{b{N`}}}N`}{{{b{Nb}}}Nb}{{{b{Nd}}}Nd}{{{b{Nf}}}Nf}{{{b{Nh}}}Nh}{{{b{Nj}}}Nj}{{{b{Nl}}}Nl}{{{b{Nn}}}Nn}{{{b{O`}}}O`}{{{b{Ob}}}Ob}{{{b{Od}}}Od}{{{b{Of}}}Of}{{{b{Oh}}}Oh}{{{b{Oj}}}Oj}{{{b{Ol}}}Ol}{{{b{On}}}On}{{{b{A@`}}}A@`}{{{b{A@b}}}A@b}{{{b{A@d}}}A@d}{{{b{A@f}}}A@f}{{{b{A@h}}}A@h}{{{b{A@j}}}A@j}{{{b{A@l}}}A@l}{{{b{A@n}}}A@n}{{{b{AA`}}}AA`}{{{b{AAb}}}AAb}{{{b{AAd}}}AAd}{{{b{AAf}}}AAf}{{{b{AAh}}}AAh}{{{b{AAj}}}AAj}{{{b{AAl}}}AAl}{{{b{AAn}}}AAn}{{{b{AB`}}}AB`}{{{b{ABb}}}ABb}{{{b{ABd}}}ABd}{{{b{ABf}}}ABf}{{{b{ABh}}}ABh}{{{b{ABj}}}ABj}{{{b{ABl}}}ABl}{{{b{ABn}}}ABn}{{{b{AC`}}}AC`}{{{b{ACb}}}ACb}{{{b{ACd}}}ACd}{{{b{ACf}}}ACf}{{{b{ACh}}}ACh}{{{b{ACj}}}ACj}{{{b{ACl}}}ACl}{{{b{ACn}}}ACn}{{{b{AD`}}}AD`}{{{b{ADb}}}ADb}{{{b{ADd}}}ADd}{{{b{ADf}}}ADf}{{{b{ADh}}}ADh}{{{b{ADj}}}ADj}{{{b{ADl}}}ADl}{{{b{ADn}}}ADn}{{{b{AE`}}}AE`}{{{b{AEb}}}AEb}{{{b{AEd}}}AEd}{{{b{AEf}}}AEf}{{{b{AEh}}}AEh}{{{b{AEj}}}AEj}{{{b{AEl}}}AEl}{{{b{AEn}}}AEn}{{{b{AF`}}}AF`}{{{b{AFb}}}AFb}{{{b{AFd}}}AFd}{{{b{AFf}}}AFf}{{{b{AFh}}}AFh}{{{b{AFj}}}AFj}{{{b{AFl}}}AFl}{{{b{AFn}}}AFn}{{{b{AG`}}}AG`}{{{b{AGb}}}AGb}{{{b{AGd}}}AGd}{{{b{AGf}}}AGf}{{{b{AGh}}}AGh}{{{b{AGj}}}AGj}{{{b{AGl}}}AGl}{{{b{AGn}}}AGn}{{{b{AH`}}}AH`}{{{b{AHb}}}AHb}{{{b{AHd}}}AHd}{{{b{AHf}}}AHf}{{{b{AHh}}}AHh}{{{b{AHj}}}AHj}{{{b{AHl}}}AHl}{{{b{AHn}}}AHn}{{{b{AI`}}}AI`}{{{b{AIb}}}AIb}{{{b{AId}}}AId}{{{b{AIf}}}AIf}{{{b{AIh}}}AIh}{{{b{AIj}}}AIj}{{{b{AIl}}}AIl}{{{b{AIn}}}AIn}{{{b{AJ`}}}AJ`}{{{b{AJb}}}AJb}{{{b{AJd}}}AJd}{{{b{AJf}}}AJf}{{{b{AJh}}}AJh}{{{b{AJj}}}AJj}{{{b{AJl}}}AJl}{{{b{AJn}}}AJn}{{{b{AK`}}}AK`}{{{b{AKb}}}AKb}{{{b{AKd}}}AKd}{{{b{AKf}}}AKf}{{{b{AKh}}}AKh}{{{b{AKj}}}AKj}{{{b{AKl}}}AKl}{{{b{AKn}}}AKn}{{{b{AL`}}}AL`}{{{b{ALb}}}ALb}{{{b{ALd}}}ALd}{{{b{ALf}}}ALf}{{{b{ALh}}}ALh}{{{b{ALj}}}ALj}{{{b{ALl}}}ALl}{{{b{ALn}}}ALn}{{{b{AM`}}}AM`}{{{b{AMb}}}AMb}{{{b{AMd}}}AMd}{{{b{AMf}}}AMf}{{{b{AMh}}}AMh}{{{b{AMj}}}AMj}{{{b{AMl}}}AMl}{{{b{AMn}}}AMn}{{{b{AN`}}}AN`}{{{b{ANb}}}ANb}{{{b{ANd}}}ANd}{{{b{ANf}}}ANf}{{{b{ANh}}}ANh}{{{b{ANj}}}ANj}{{{b{ANl}}}ANl}{{{b{ANn}}}ANn}{{{b{AO`}}}AO`}{{{b{AOb}}}AOb}{{{b{AOd}}}AOd}{{{b{AOf}}}AOf}{{{b{AOh}}}AOh}{{{b{AOj}}}AOj}{{{b{AOl}}}AOl}{{{b{AOn}}}AOn}{{{b{B@`}}}B@`}{{{b{B@b}}}B@b}{{{b{B@d}}}B@d}{{{b{B@f}}}B@f}{{{b{B@h}}}B@h}{{{b{B@j}}}B@j}{{{b{B@l}}}B@l}{{{b{B@n}}}B@n}{{{b{BA`}}}BA`}{{{b{BAb}}}BAb}{{{b{BAd}}}BAd}{{{b{BAf}}}BAf}{{{b{BAh}}}BAh}{{{b{BAj}}}BAj}{{{b{BAl}}}BAl}{{{b{BAn}}}BAn}{{{b{BB`}}}BB`}{{{b{BBb}}}BBb}{{{b{BBd}}}BBd}{{{b{BBf}}}BBf}{{{b{BBh}}}BBh}{{{b{BBj}}}BBj}{{{b{BBl}}}BBl}{{{b{BBn}}}BBn}{{{b{BC`}}}BC`}{{{b{BCb}}}BCb}{{{b{BCd}}}BCd}{{{b{BCf}}}BCf}{{{b{BCh}}}BCh}{{{b{BCj}}}BCj}{{{b{BCl}}}BCl}{{{b{BCn}}}BCn}{{{b{BD`}}}BD`}{{{b{BDb}}}BDb}{{{b{BDd}}}BDd}{{{b{BDf}}}BDf}{{{b{BDh}}}BDh}{{{b{BDj}}}BDj}{{{b{BDl}}}BDl}{{{b{BDn}}}BDn}{{{b{BE`}}}BE`}{{{b{BEb}}}BEb}{{{b{BEd}}}BEd}{{{b{BEf}}}BEf}{{{b{BEh}}}BEh}{{{b{BEj}}}BEj}{{{b{BEl}}}BEl}{{{b{BEn}}}BEn}{{{b{BF`}}}BF`}{{{b{BFb}}}BFb}{{{b{BFd}}}BFd}{{{b{BFf}}}BFf}{{{b{BFh}}}BFh}{{{b{BFj}}}BFj}{{{b{BFl}}}BFl}{{{b{BFn}}}BFn}{{{b{BG`}}}BG`}{{{b{BGb}}}BGb}{{{b{BGd}}}BGd}{{{b{BGf}}}BGf}{{{b{BGh}}}BGh}{{{b{BGj}}}BGj}{{{b{BGl}}}BGl}{{{b{BGn}}}BGn}{{{b{BH`}}}BH`}{{{b{BHb}}}BHb}{{{b{BHd}}}BHd}{{{b{BHf}}}BHf}{{{b{BHh}}}BHh}{{{b{BHj}}}BHj}{{{b{BHl}}}BHl}{{{b{BHn}}}BHn}{{{b{BI`}}}BI`}{{{b{BIb}}}BIb}{{{b{BId}}}BId}{{{b{BIf}}}BIf}{{{b{BIh}}}BIh}{{{b{BIj}}}BIj}{{{b{BIl}}}BIl}{{{b{BIn}}}BIn}{{{b{BJ`}}}BJ`}{{{b{BJb}}}BJb}{{{b{BJd}}}BJd}{{{b{BJf}}}BJf}{{{b{BJh}}}BJh}{{{b{BJj}}}BJj}{{{b{BJl}}}BJl}{{{b{BJn}}}BJn}{{{b{BK`}}}BK`}{{{b{BKb}}}BKb}{{{b{BKd}}}BKd}{{{b{BKf}}}BKf}{{{b{BKh}}}BKh}{{{b{BKj}}}BKj}{{{b{BKl}}}BKl}{{{b{BKn}}}BKn}{{{b{BL`}}}BL`}{{{b{BLb}}}BLb}{{{b{BLd}}}BLd}{{{b{BLf}}}BLf}{{{b{BLh}}}BLh}{{{b{BLj}}}BLj}{{{b{BLl}}}BLl}{{{b{BLn}}}BLn}{{{b{BM`}}}BM`}{{{b{BMb}}}BMb}{{{b{BMd}}}BMd}{{{b{BMf}}}BMf}{{{b{BMh}}}BMh}{{{b{BMj}}}BMj}{{{b{BMl}}}BMl}{{{b{BMn}}}BMn}{{{b{Dl}}}Dl}{{{b{BN`}}}BN`}{{{b{BNb}}}BNb}{{{b{Dn}}}Dn}{{{b{E`}}}E`}{{{b{BNd}}}BNd}{{{b{BNf}}}BNf}{{{b{BNh}}}BNh}{{{b{BNj}}}BNj}{{{b{BNl}}}BNl}{{{b{BNn}}}BNn}{{{b{BO`}}}BO`}{{{b{BOb}}}BOb}{{{b{Eb}}}Eb}{{{b{BOd}}}BOd}{{{b{BOf}}}BOf}{{{b{BOh}}}BOh}{{{b{Ed}}}Ed}{{{b{BOj}}}BOj}{{{b{BOl}}}BOl}{{{b{BOn}}}BOn}{{{b{C@`}}}C@`}{{{b{C@b}}}C@b}{{{b{C@d}}}C@d}{{{b{C@f}}}C@f}{{{b{C@h}}}C@h}{{{b{C@j}}}C@j}{{{b{C@l}}}C@l}{{{b{Ef}}}Ef}{{{b{C@n}}}C@n}{{{b{CA`}}}CA`}{{{b{CAb}}}CAb}{{{b{CAd}}}CAd}{{{b{CAf}}}CAf}{{{b{CAh}}}CAh}{{{b{CAj}}}CAj}{{{b{CAl}}}CAl}{{{b{Eh}}}Eh}{{{b{CAn}}}CAn}{{{b{CB`}}}CB`}{{{b{CBb}}}CBb}{{{b{CBd}}}CBd}{{{b{CBf}}}CBf}{{{b{CBh}}}CBh}{{{b{CBj}}}CBj}{{{b{CBl}}}CBl}{{{b{CBn}}}CBn}{{{b{Ej}}}Ej}{{{b{CC`}}}CC`}{{{b{CCb}}}CCb}{{{b{El}}}El}{{{b{CCd}}}CCd}{{{b{CCf}}}CCf}{{{b{CCh}}}CCh}{{{b{CCj}}}CCj}{{{b{En}}}En}{{{b{CCl}}}CCl}{{{b{F`}}}F`}{{{b{CCn}}}CCn}{{{b{CD`}}}CD`}{{{b{Fb}}}Fb}{{{b{CDb}}}CDb}{{{b{CDd}}}CDd}{{{b{CDf}}}CDf}{{{b{CDh}}}CDh}{{{b{CDj}}}CDj}{{{b{CDl}}}CDl}{{{b{CDn}}}CDn}{{{b{CE`}}}CE`}{{{b{CEb}}}CEb}{{{b{CEd}}}CEd}{{{b{CEf}}}CEf}{{{b{CEh}}}CEh}{{{b{Fd}}}Fd}{{{b{CEj}}}CEj}{{{b{CEl}}}CEl}{{{b{CEn}}}CEn}{{{b{CF`}}}CF`}{{{b{CFb}}}CFb}{{{b{CFd}}}CFd}{{{b{CFf}}}CFf}{{{b{Ff}}}Ff}{{{b{CFh}}}CFh}{{{b{CFj}}}CFj}{{{b{Fh}}}Fh}{{{b{CFl}}}CFl}{{{b{Fj}}}Fj}{{{b{CFn}}}CFn}{{{b{CG`}}}CG`}{{{b{CGb}}}CGb}{{{b{CGd}}}CGd}{{{b{CGf}}}CGf}{{{b{Fl}}}Fl}{{{b{CGh}}}CGh}{{{b{CGj}}}CGj}{{{b{CGl}}}CGl}{{{b{CGn}}}CGn}{{{b{CH`}}}CH`}{{{b{CHb}}}CHb}{{{b{Fn}}}Fn}{{{b{CHd}}}CHd}{{{b{CHf}}}CHf}{{{b{CHh}}}CHh}{{{b{CHj}}}CHj}{{{b{CHl}}}CHl}{{{b{CHn}}}CHn}{{{b{CI`}}}CI`}{{{b{CIb}}}CIb}{{{b{CId}}}CId}{{{b{CIf}}}CIf}{{{b{CIh}}}CIh}{{{b{CIj}}}CIj}{{{b{CIl}}}CIl}{{{b{CIn}}}CIn}{{{b{CJ`}}}CJ`}{{{b{CJb}}}CJb}{{{b{G`}}}G`}{{{b{Gb}}}Gb}{{{b{CJd}}}CJd}{{{b{CJf}}}CJf}{{{b{CJh}}}CJh}{{{b{CJj}}}CJj}{{{b{CJl}}}CJl}{{{b{CJn}}}CJn}{{{b{CK`}}}CK`}{{{b{Gd}}}Gd}{{{b{CKb}}}CKb}{{{b{CKd}}}CKd}{{{b{CKf}}}CKf}{{{b{CKh}}}CKh}{{{b{CKj}}}CKj}{{{b{CKl}}}CKl}{{{b{CKn}}}CKn}{{{b{CL`}}}CL`}{{{b{Gf}}}Gf}{{{b{CLb}}}CLb}{{{b{Gh}}}Gh}{{{b{CLd}}}CLd}{{{b{CLf}}}CLf}{{{b{CLh}}}CLh}{{{b{CLj}}}CLj}{{{b{CLl}}}CLl}{{{b{CLn}}}CLn}{{{b{Gj}}}Gj}{{{b{CM`}}}CM`}{{{b{CMb}}}CMb}{{{b{Gl}}}Gl}{{{b{CMd}}}CMd}{{{b{CMf}}}CMf}{{{b{CMh}}}CMh}{{{b{CMj}}}CMj}{{{b{Gn}}}Gn}{{{b{CMl}}}CMl}{{{b{CMn}}}CMn}{{{b{H`}}}H`}{{{b{CN`}}}CN`}{{{b{CNb}}}CNb}{{{b{CNd}}}CNd}{{{b{CNf}}}CNf}{{{b{Hb}}}Hb}{{{b{Hd}}}Hd}{{{b{CNh}}}CNh}{{{b{CNj}}}CNj}{{{b{CNl}}}CNl}{{{b{CNn}}}CNn}{{{b{CO`}}}CO`}{{{b{Hf}}}Hf}{{{b{COb}}}COb}{{{b{COd}}}COd}{{{b{COf}}}COf}{{{b{COh}}}COh}{{{b{COj}}}COj}{{{b{Hh}}}Hh}{{{b{COl}}}COl}{{{b{COn}}}COn}{{{b{D@`}}}D@`}{{{b{D@b}}}D@b}{{{b{D@d}}}D@d}{{{b{D@f}}}D@f}{{{b{D@h}}}D@h}{{{b{D@j}}}D@j}{{{b{Hj}}}Hj}{{{b{D@l}}}D@l}{{{b{D@n}}}D@n}{{{b{DA`}}}DA`}{{{b{DAb}}}DAb}{{{b{DAd}}}DAd}{{{b{DAf}}}DAf}{{{b{DAh}}}DAh}{{{b{DAj}}}DAj}{{{b{DAl}}}DAl}{{{b{DAn}}}DAn}{{{b{DB`}}}DB`}{{{b{c}}{b{de}}}Aj{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000````{{{b{Dl}}{b{Dl}}}DBb}{{{b{Dn}}{b{Dn}}}DBb}{{{b{E`}}{b{E`}}}DBb}{{{b{Eb}}{b{Eb}}}DBb}{{{b{Ed}}{b{Ed}}}DBb}{{{b{Ef}}{b{Ef}}}DBb}{{{b{Eh}}{b{Eh}}}DBb}{{{b{Ej}}{b{Ej}}}DBb}{{{b{El}}{b{El}}}DBb}{{{b{En}}{b{En}}}DBb}{{{b{F`}}{b{F`}}}DBb}{{{b{Fb}}{b{Fb}}}DBb}{{{b{Fd}}{b{Fd}}}DBb}{{{b{Ff}}{b{Ff}}}DBb}{{{b{Fh}}{b{Fh}}}DBb}{{{b{Fj}}{b{Fj}}}DBb}{{{b{Fl}}{b{Fl}}}DBb}{{{b{Fn}}{b{Fn}}}DBb}{{{b{G`}}{b{G`}}}DBb}{{{b{Gb}}{b{Gb}}}DBb}{{{b{Gd}}{b{Gd}}}DBb}{{{b{Gf}}{b{Gf}}}DBb}{{{b{Gh}}{b{Gh}}}DBb}{{{b{Gj}}{b{Gj}}}DBb}{{{b{Gl}}{b{Gl}}}DBb}{{{b{Gn}}{b{Gn}}}DBb}{{{b{H`}}{b{H`}}}DBb}{{{b{Hb}}{b{Hb}}}DBb}{{{b{Hd}}{b{Hd}}}DBb}{{{b{Hf}}{b{Hf}}}DBb}{{{b{Hh}}{b{Hh}}}DBb}{{{b{Hj}}{b{Hj}}}DBb}````````````````{DlDl}{DnDn}{E`E`}{EbEb}{EdEd}{EfEf}{EhEh}{EjEj}{ElEl}{EnEn}{F`F`}{FbFb}{FdFd}{FfFf}{FhFh}{FjFj}{FlFl}{FnFn}{G`G`}{GbGb}{GdGd}{GfGf}{GhGh}{GjGj}{GlGl}{GnGn}{H`H`}{HbHb}{HdHd}{HfHf}{HhHh}{HjHj}```````{{{b{Dl}}Dl}C`}{{{b{Dn}}Dn}C`}{{{b{E`}}E`}C`}{{{b{Eb}}Eb}C`}{{{b{Ed}}Ed}C`}{{{b{Ef}}Ef}C`}{{{b{Eh}}Eh}C`}{{{b{Ej}}Ej}C`}{{{b{El}}El}C`}{{{b{En}}En}C`}{{{b{F`}}F`}C`}{{{b{Fb}}Fb}C`}{{{b{Fd}}Fd}C`}{{{b{Ff}}Ff}C`}{{{b{Fh}}Fh}C`}{{{b{Fj}}Fj}C`}{{{b{Fl}}Fl}C`}{{{b{Fn}}Fn}C`}{{{b{G`}}G`}C`}{{{b{Gb}}Gb}C`}{{{b{Gd}}Gd}C`}{{{b{Gf}}Gf}C`}{{{b{Gh}}Gh}C`}{{{b{Gj}}Gj}C`}{{{b{Gl}}Gl}C`}{{{b{Gn}}Gn}C`}{{{b{H`}}H`}C`}{{{b{Hb}}Hb}C`}{{{b{Hd}}Hd}C`}{{{b{Hf}}Hf}C`}{{{b{Hh}}Hh}C`}{{{b{Hj}}Hj}C`}````````````````````````````````````````````````````````````````````````````````{{}I`}{{}Ib}{{}Id}{{}If}{{}Ih}{{}Ij}{{}Il}{{}In}{{}J`}{{}Jb}{{}Jd}{{}Jf}{{}Jh}{{}Jj}{{}Jl}{{}Jn}{{}K`}{{}Kb}{{}Kd}{{}Kf}{{}Kh}{{}Kj}{{}Kl}{{}Kn}{{}L`}{{}Lb}{{}Ld}{{}Lf}{{}Lh}{{}Lj}{{}Ll}{{}Ln}{{}M`}{{}Mb}{{}Md}{{}Mf}{{}Mh}{{}Mj}{{}Ml}{{}Mn}{{}N`}{{}Nb}{{}Nd}{{}Nf}{{}Nh}{{}Nj}{{}Nl}{{}Nn}{{}O`}{{}Ob}{{}Od}{{}Of}{{}Oh}{{}Oj}{{}Ol}{{}On}{{}A@`}{{}A@b}{{}A@d}{{}A@f}{{}A@h}{{}A@j}{{}A@l}{{}A@n}{{}AA`}{{}AAb}{{}AAd}{{}AAf}{{}AAh}{{}AAj}{{}AAl}{{}AAn}{{}AB`}{{}ABb}{{}ABd}{{}ABf}{{}ABh}{{}ABj}{{}ABl}{{}ABn}{{}AC`}{{}ACb}{{}ACd}{{}ACf}{{}ACh}{{}ACj}{{}ACl}{{}ACn}{{}AD`}{{}ADb}{{}ADd}{{}ADf}{{}ADh}{{}ADj}{{}ADl}{{}ADn}{{}AE`}{{}AEb}{{}AEd}{{}AEf}{{}AEh}{{}AEj}{{}AEl}{{}AEn}{{}AF`}{{}AFb}{{}AFd}{{}AFf}{{}AFh}{{}AFj}{{}AFl}{{}AFn}{{}AG`}{{}AGb}{{}AGd}{{}AGf}{{}AGh}{{}AGj}{{}AGl}{{}AGn}{{}AH`}{{}AHb}{{}AHd}{{}AHf}{{}AHh}{{}AHj}{{}AHl}{{}AHn}{{}AI`}{{}AIb}{{}AId}{{}AIf}{{}AIh}{{}AIj}{{}AIl}{{}AIn}{{}AJ`}{{}AJb}{{}AJd}{{}AJf}{{}AJh}{{}AJj}{{}AJl}{{}AJn}{{}AK`}{{}AKb}{{}AKd}{{}AKf}{{}AKh}{{}AKj}{{}AKl}{{}AKn}{{}AL`}{{}ALb}{{}ALd}{{}ALf}{{}ALh}{{}ALj}{{}ALl}{{}ALn}{{}AM`}{{}AMb}{{}AMd}{{}AMf}{{}AMh}{{}AMj}{{}AMl}{{}AMn}{{}AN`}{{}ANb}{{}ANd}{{}ANf}{{}ANh}{{}ANj}{{}ANl}{{}ANn}{{}AO`}{{}AOb}{{}AOd}{{}AOf}{{}AOh}{{}AOj}{{}AOl}{{}AOn}{{}B@`}{{}B@b}{{}B@d}{{}B@f}{{}B@h}{{}B@j}{{}B@l}{{}B@n}{{}BA`}{{}BAb}{{}BAd}{{}BAf}{{}BAh}{{}BAj}{{}BAl}{{}BAn}{{}BB`}{{}BBb}{{}BBd}{{}BBf}{{}BBh}{{}BBj}{{}BBl}{{}BBn}{{}BC`}{{}BCb}{{}BCd}{{}BCf}{{}BCh}{{}BCj}{{}BCl}{{}BCn}{{}BD`}{{}BDb}{{}BDd}{{}BDf}{{}BDh}{{}BDj}{{}BDl}{{}BDn}{{}BE`}{{}BEb}{{}BEd}{{}BEf}{{}BEh}{{}BEj}{{}BEl}{{}BEn}{{}BF`}{{}BFb}{{}BFd}{{}BFf}{{}BFh}{{}BFj}{{}BFl}{{}BFn}{{}BG`}{{}BGb}{{}BGd}{{}BGf}{{}BGh}{{}BGj}{{}BGl}{{}BGn}{{}BH`}{{}BHb}{{}BHd}{{}BHf}{{}BHh}{{}BHj}{{}BHl}{{}BHn}{{}BI`}{{}BIb}{{}BId}{{}BIf}{{}BIh}{{}BIj}{{}BIl}{{}BIn}{{}BJ`}{{}BJb}{{}BJd}{{}BJf}{{}BJh}{{}BJj}{{}BJl}{{}BJn}{{}BK`}{{}BKb}{{}BKd}{{}BKf}{{}BKh}{{}BKj}{{}BKl}{{}BKn}{{}BL`}{{}BLb}{{}BLd}{{}BLf}{{}BLh}{{}BLj}{{}BLl}{{}BLn}{{}BM`}{{}BMb}{{}BMd}{{}BMf}{{}BMh}{{}BMj}{{}BMl}{{}BMn}{{}Dl}{{}BN`}{{}BNb}{{}Dn}{{}E`}{{}BNd}{{}BNf}{{}BNh}{{}BNj}{{}BNl}{{}BNn}{{}BO`}{{}BOb}{{}Eb}{{}BOd}{{}BOf}{{}BOh}{{}Ed}{{}BOj}{{}BOl}{{}BOn}{{}C@`}{{}C@b}{{}C@d}{{}C@f}{{}C@h}{{}C@j}{{}C@l}{{}Ef}{{}C@n}{{}CA`}{{}CAb}{{}CAd}{{}CAf}{{}CAh}{{}CAj}{{}CAl}{{}Eh}{{}CAn}{{}CB`}{{}CBb}{{}CBd}{{}CBf}{{}CBh}{{}CBj}{{}CBl}{{}CBn}{{}Ej}{{}CC`}{{}CCb}{{}El}{{}CCd}{{}CCf}{{}CCh}{{}CCj}{{}En}{{}CCl}{{}F`}{{}CCn}{{}CD`}{{}Fb}{{}CDb}{{}CDd}{{}CDf}{{}CDh}{{}CDj}{{}CDl}{{}CDn}{{}CE`}{{}CEb}{{}CEd}{{}CEf}{{}CEh}{{}Fd}{{}CEj}{{}CEl}{{}CEn}{{}CF`}{{}CFb}{{}CFd}{{}CFf}{{}Ff}{{}CFh}{{}CFj}{{}Fh}{{}CFl}{{}Fj}{{}CFn}{{}CG`}{{}CGb}{{}CGd}{{}CGf}{{}Fl}{{}CGh}{{}CGj}{{}CGl}{{}CGn}{{}CH`}{{}CHb}{{}Fn}{{}CHd}{{}CHf}{{}CHh}{{}CHj}{{}CHl}{{}CHn}{{}CI`}{{}CIb}{{}CId}{{}CIf}{{}CIh}{{}CIj}{{}CIl}{{}CIn}{{}CJ`}{{}CJb}{{}G`}{{}Gb}{{}CJd}{{}CJf}{{}CJh}{{}CJj}{{}CJl}{{}CJn}{{}CK`}{{}Gd}{{}CKb}{{}CKd}{{}CKf}{{}CKh}{{}CKj}{{}CKl}{{}CKn}{{}CL`}{{}Gf}{{}CLb}{{}Gh}{{}CLd}{{}CLf}{{}CLh}{{}CLj}{{}CLl}{{}CLn}{{}Gj}{{}CM`}{{}CMb}{{}Gl}{{}CMd}{{}CMf}{{}CMh}{{}CMj}{{}Gn}{{}CMl}{{}CMn}{{}H`}{{}CN`}{{}CNb}{{}CNd}{{}CNf}{{}Hb}{{}Hd}{{}CNh}{{}CNj}{{}CNl}{{}CNn}{{}CO`}{{}Hf}{{}COb}{{}COd}{{}COf}{{}COh}{{}COj}{{}Hh}{{}COl}{{}COn}{{}D@`}{{}D@b}{{}D@d}{{}D@f}{{}D@h}{{}D@j}{{}Hj}{{}D@l}{{}D@n}{{}DA`}{{}DAb}{{}DAd}{{}DAf}{{}DAh}{{}DAj}{{}DAl}{{}DAn}{{}DB`}{Bf{{Bd{Hn{b{Al}}}}}}`````````````{{Ab{b{{h{f}}}}}{{Bd{I`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{IbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{IdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{IfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{IhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{IjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{IlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{InBl}}}}{{Ab{b{{h{f}}}}}{{Bd{J`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{JbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{JdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{JfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{JhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{JjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{JlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{JnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{K`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{KbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{KdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{KfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{KhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{KjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{KlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{KnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{L`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{LbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{LdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{LfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{LhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{LjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{LlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{LnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{M`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{MbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{MdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{MfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{MhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{MjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{MlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{MnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{N`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{NbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{NdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{NfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{NhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{NjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{NlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{NnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{O`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ObBl}}}}{{Ab{b{{h{f}}}}}{{Bd{OdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{OfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{OhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{OjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{OlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{OnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@bBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@dBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@fBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@hBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@jBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@lBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@nBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AA`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AB`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AC`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ACbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ACdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ACfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AChBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ACjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AClBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ACnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AD`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AE`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AEbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AEdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AEfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AEhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AEjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AElBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AEnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AF`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AG`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AH`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AI`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AIbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AIdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AIfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AIhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AIjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AIlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AInBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJ`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AK`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AL`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AM`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AN`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AO`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AObBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AOdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AOfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AOhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AOjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AOlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AOnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@bBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@dBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@fBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@hBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@jBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@lBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@nBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BA`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BB`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BC`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BCbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BCdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BCfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BChBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BCjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BClBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BCnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BD`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BE`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BEbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BEdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BEfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BEhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BEjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BElBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BEnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BF`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BG`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BH`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BI`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BIbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BIdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BIfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BIhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BIjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BIlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BInBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJ`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BK`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BL`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BM`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMnBl}}}}{c{{Bd{Hn}}}Bn}{c{{Bd{I`}}}Bn}{c{{Bd{Ib}}}Bn}{c{{Bd{Id}}}Bn}{c{{Bd{If}}}Bn}{c{{Bd{Ih}}}Bn}{c{{Bd{Ij}}}Bn}{c{{Bd{Il}}}Bn}{c{{Bd{In}}}Bn}{c{{Bd{J`}}}Bn}{c{{Bd{Jb}}}Bn}{c{{Bd{Jd}}}Bn}{c{{Bd{Jf}}}Bn}{c{{Bd{Jh}}}Bn}{c{{Bd{Jj}}}Bn}{c{{Bd{Jl}}}Bn}{c{{Bd{Jn}}}Bn}{c{{Bd{K`}}}Bn}{c{{Bd{Kb}}}Bn}{c{{Bd{Kd}}}Bn}{c{{Bd{Kf}}}Bn}{c{{Bd{Kh}}}Bn}{c{{Bd{Kj}}}Bn}{c{{Bd{Kl}}}Bn}{c{{Bd{Kn}}}Bn}{c{{Bd{L`}}}Bn}{c{{Bd{Lb}}}Bn}{c{{Bd{Ld}}}Bn}{c{{Bd{Lf}}}Bn}{c{{Bd{Lh}}}Bn}{c{{Bd{Lj}}}Bn}{c{{Bd{Ll}}}Bn}{c{{Bd{Ln}}}Bn}{c{{Bd{M`}}}Bn}{c{{Bd{Mb}}}Bn}{c{{Bd{Md}}}Bn}{c{{Bd{Mf}}}Bn}{c{{Bd{Mh}}}Bn}{c{{Bd{Mj}}}Bn}{c{{Bd{Ml}}}Bn}{c{{Bd{Mn}}}Bn}{c{{Bd{N`}}}Bn}{c{{Bd{Nb}}}Bn}{c{{Bd{Nd}}}Bn}{c{{Bd{Nf}}}Bn}{c{{Bd{Nh}}}Bn}{c{{Bd{Nj}}}Bn}{c{{Bd{Nl}}}Bn}{c{{Bd{Nn}}}Bn}{c{{Bd{O`}}}Bn}{c{{Bd{Ob}}}Bn}{c{{Bd{Od}}}Bn}{c{{Bd{Of}}}Bn}{c{{Bd{Oh}}}Bn}{c{{Bd{Oj}}}Bn}{c{{Bd{Ol}}}Bn}{c{{Bd{On}}}Bn}{c{{Bd{A@`}}}Bn}{c{{Bd{A@b}}}Bn}{c{{Bd{A@d}}}Bn}{c{{Bd{A@f}}}Bn}{c{{Bd{A@h}}}Bn}{c{{Bd{A@j}}}Bn}{c{{Bd{A@l}}}Bn}{c{{Bd{A@n}}}Bn}{c{{Bd{AA`}}}Bn}{c{{Bd{AAb}}}Bn}{c{{Bd{AAd}}}Bn}{c{{Bd{AAf}}}Bn}{c{{Bd{AAh}}}Bn}{c{{Bd{AAj}}}Bn}{c{{Bd{AAl}}}Bn}{c{{Bd{AAn}}}Bn}{c{{Bd{AB`}}}Bn}{c{{Bd{ABb}}}Bn}{c{{Bd{ABd}}}Bn}{c{{Bd{ABf}}}Bn}{c{{Bd{ABh}}}Bn}{c{{Bd{ABj}}}Bn}{c{{Bd{ABl}}}Bn}{c{{Bd{ABn}}}Bn}{c{{Bd{AC`}}}Bn}{c{{Bd{ACb}}}Bn}{c{{Bd{ACd}}}Bn}{c{{Bd{ACf}}}Bn}{c{{Bd{ACh}}}Bn}{c{{Bd{ACj}}}Bn}{c{{Bd{ACl}}}Bn}{c{{Bd{ACn}}}Bn}{c{{Bd{AD`}}}Bn}{c{{Bd{ADb}}}Bn}{c{{Bd{ADd}}}Bn}{c{{Bd{ADf}}}Bn}{c{{Bd{ADh}}}Bn}{c{{Bd{ADj}}}Bn}{c{{Bd{ADl}}}Bn}{c{{Bd{ADn}}}Bn}{c{{Bd{AE`}}}Bn}{c{{Bd{AEb}}}Bn}{c{{Bd{AEd}}}Bn}{c{{Bd{AEf}}}Bn}{c{{Bd{AEh}}}Bn}{c{{Bd{AEj}}}Bn}{c{{Bd{AEl}}}Bn}{c{{Bd{AEn}}}Bn}{c{{Bd{AF`}}}Bn}{c{{Bd{AFb}}}Bn}{c{{Bd{AFd}}}Bn}{c{{Bd{AFf}}}Bn}{c{{Bd{AFh}}}Bn}{c{{Bd{AFj}}}Bn}{c{{Bd{AFl}}}Bn}{c{{Bd{AFn}}}Bn}{c{{Bd{AG`}}}Bn}{c{{Bd{AGb}}}Bn}{c{{Bd{AGd}}}Bn}{c{{Bd{AGf}}}Bn}{c{{Bd{AGh}}}Bn}{c{{Bd{AGj}}}Bn}{c{{Bd{AGl}}}Bn}{c{{Bd{AGn}}}Bn}{c{{Bd{AH`}}}Bn}{c{{Bd{AHb}}}Bn}{c{{Bd{AHd}}}Bn}{c{{Bd{AHf}}}Bn}{c{{Bd{AHh}}}Bn}{c{{Bd{AHj}}}Bn}{c{{Bd{AHl}}}Bn}{c{{Bd{AHn}}}Bn}{c{{Bd{AI`}}}Bn}{c{{Bd{AIb}}}Bn}{c{{Bd{AId}}}Bn}{c{{Bd{AIf}}}Bn}{c{{Bd{AIh}}}Bn}{c{{Bd{AIj}}}Bn}{c{{Bd{AIl}}}Bn}{c{{Bd{AIn}}}Bn}{c{{Bd{AJ`}}}Bn}{c{{Bd{AJb}}}Bn}{c{{Bd{AJd}}}Bn}{c{{Bd{AJf}}}Bn}{c{{Bd{AJh}}}Bn}{c{{Bd{AJj}}}Bn}{c{{Bd{AJl}}}Bn}{c{{Bd{AJn}}}Bn}{c{{Bd{AK`}}}Bn}{c{{Bd{AKb}}}Bn}{c{{Bd{AKd}}}Bn}{c{{Bd{AKf}}}Bn}{c{{Bd{AKh}}}Bn}{c{{Bd{AKj}}}Bn}{c{{Bd{AKl}}}Bn}{c{{Bd{AKn}}}Bn}{c{{Bd{AL`}}}Bn}{c{{Bd{ALb}}}Bn}{c{{Bd{ALd}}}Bn}{c{{Bd{ALf}}}Bn}{c{{Bd{ALh}}}Bn}{c{{Bd{ALj}}}Bn}{c{{Bd{ALl}}}Bn}{c{{Bd{ALn}}}Bn}{c{{Bd{AM`}}}Bn}{c{{Bd{AMb}}}Bn}{c{{Bd{AMd}}}Bn}{c{{Bd{AMf}}}Bn}{c{{Bd{AMh}}}Bn}{c{{Bd{AMj}}}Bn}{c{{Bd{AMl}}}Bn}{c{{Bd{AMn}}}Bn}{c{{Bd{AN`}}}Bn}{c{{Bd{ANb}}}Bn}{c{{Bd{ANd}}}Bn}{c{{Bd{ANf}}}Bn}{c{{Bd{ANh}}}Bn}{c{{Bd{ANj}}}Bn}{c{{Bd{ANl}}}Bn}{c{{Bd{ANn}}}Bn}{c{{Bd{AO`}}}Bn}{c{{Bd{AOb}}}Bn}{c{{Bd{AOd}}}Bn}{c{{Bd{AOf}}}Bn}{c{{Bd{AOh}}}Bn}{c{{Bd{AOj}}}Bn}{c{{Bd{AOl}}}Bn}{c{{Bd{AOn}}}Bn}{c{{Bd{B@`}}}Bn}{c{{Bd{B@b}}}Bn}{c{{Bd{B@d}}}Bn}{c{{Bd{B@f}}}Bn}{c{{Bd{B@h}}}Bn}{c{{Bd{B@j}}}Bn}{c{{Bd{B@l}}}Bn}{c{{Bd{B@n}}}Bn}{c{{Bd{BA`}}}Bn}{c{{Bd{BAb}}}Bn}{c{{Bd{BAd}}}Bn}{c{{Bd{BAf}}}Bn}{c{{Bd{BAh}}}Bn}{c{{Bd{BAj}}}Bn}{c{{Bd{BAl}}}Bn}{c{{Bd{BAn}}}Bn}{c{{Bd{BB`}}}Bn}{c{{Bd{BBb}}}Bn}{c{{Bd{BBd}}}Bn}{c{{Bd{BBf}}}Bn}{c{{Bd{BBh}}}Bn}{c{{Bd{BBj}}}Bn}{c{{Bd{BBl}}}Bn}{c{{Bd{BBn}}}Bn}{c{{Bd{BC`}}}Bn}{c{{Bd{BCb}}}Bn}{c{{Bd{BCd}}}Bn}{c{{Bd{BCf}}}Bn}{c{{Bd{BCh}}}Bn}{c{{Bd{BCj}}}Bn}{c{{Bd{BCl}}}Bn}{c{{Bd{BCn}}}Bn}{c{{Bd{BD`}}}Bn}{c{{Bd{BDb}}}Bn}{c{{Bd{BDd}}}Bn}{c{{Bd{BDf}}}Bn}{c{{Bd{BDh}}}Bn}{c{{Bd{BDj}}}Bn}{c{{Bd{BDl}}}Bn}{c{{Bd{BDn}}}Bn}{c{{Bd{BE`}}}Bn}{c{{Bd{BEb}}}Bn}{c{{Bd{BEd}}}Bn}{c{{Bd{BEf}}}Bn}{c{{Bd{BEh}}}Bn}{c{{Bd{BEj}}}Bn}{c{{Bd{BEl}}}Bn}{c{{Bd{BEn}}}Bn}{c{{Bd{BF`}}}Bn}{c{{Bd{BFb}}}Bn}{c{{Bd{BFd}}}Bn}{c{{Bd{BFf}}}Bn}{c{{Bd{BFh}}}Bn}{c{{Bd{BFj}}}Bn}{c{{Bd{BFl}}}Bn}{c{{Bd{BFn}}}Bn}{c{{Bd{BG`}}}Bn}{c{{Bd{BGb}}}Bn}{c{{Bd{BGd}}}Bn}{c{{Bd{BGf}}}Bn}{c{{Bd{BGh}}}Bn}{c{{Bd{BGj}}}Bn}{c{{Bd{BGl}}}Bn}{c{{Bd{BGn}}}Bn}{c{{Bd{BH`}}}Bn}{c{{Bd{BHb}}}Bn}{c{{Bd{BHd}}}Bn}{c{{Bd{BHf}}}Bn}{c{{Bd{BHh}}}Bn}{c{{Bd{BHj}}}Bn}{c{{Bd{BHl}}}Bn}{c{{Bd{BHn}}}Bn}{c{{Bd{BI`}}}Bn}{c{{Bd{BIb}}}Bn}{c{{Bd{BId}}}Bn}{c{{Bd{BIf}}}Bn}{c{{Bd{BIh}}}Bn}{c{{Bd{BIj}}}Bn}{c{{Bd{BIl}}}Bn}{c{{Bd{BIn}}}Bn}{c{{Bd{BJ`}}}Bn}{c{{Bd{BJb}}}Bn}{c{{Bd{BJd}}}Bn}{c{{Bd{BJf}}}Bn}{c{{Bd{BJh}}}Bn}{c{{Bd{BJj}}}Bn}{c{{Bd{BJl}}}Bn}{c{{Bd{BJn}}}Bn}{c{{Bd{BK`}}}Bn}{c{{Bd{BKb}}}Bn}{c{{Bd{BKd}}}Bn}{c{{Bd{BKf}}}Bn}{c{{Bd{BKh}}}Bn}{c{{Bd{BKj}}}Bn}{c{{Bd{BKl}}}Bn}{c{{Bd{BKn}}}Bn}{c{{Bd{BL`}}}Bn}{c{{Bd{BLb}}}Bn}{c{{Bd{BLd}}}Bn}{c{{Bd{BLf}}}Bn}{c{{Bd{BLh}}}Bn}{c{{Bd{BLj}}}Bn}{c{{Bd{BLl}}}Bn}{c{{Bd{BLn}}}Bn}{c{{Bd{BM`}}}Bn}{c{{Bd{BMb}}}Bn}{c{{Bd{BMd}}}Bn}{c{{Bd{BMf}}}Bn}{c{{Bd{BMh}}}Bn}{c{{Bd{BMj}}}Bn}{c{{Bd{BMl}}}Bn}{c{{Bd{BMn}}}Bn}{c{{Bd{Dl}}}Bn}{c{{Bd{BN`}}}Bn}{c{{Bd{BNb}}}Bn}{c{{Bd{Dn}}}Bn}{c{{Bd{E`}}}Bn}{c{{Bd{BNd}}}Bn}{c{{Bd{BNf}}}Bn}{c{{Bd{BNh}}}Bn}{c{{Bd{BNj}}}Bn}{c{{Bd{BNl}}}Bn}{c{{Bd{BNn}}}Bn}{c{{Bd{BO`}}}Bn}{c{{Bd{BOb}}}Bn}{c{{Bd{Eb}}}Bn}{c{{Bd{BOd}}}Bn}{c{{Bd{BOf}}}Bn}{c{{Bd{BOh}}}Bn}{c{{Bd{Ed}}}Bn}{c{{Bd{BOj}}}Bn}{c{{Bd{BOl}}}Bn}{c{{Bd{BOn}}}Bn}{c{{Bd{C@`}}}Bn}{c{{Bd{C@b}}}Bn}{c{{Bd{C@d}}}Bn}{c{{Bd{C@f}}}Bn}{c{{Bd{C@h}}}Bn}{c{{Bd{C@j}}}Bn}{c{{Bd{C@l}}}Bn}{c{{Bd{Ef}}}Bn}{c{{Bd{C@n}}}Bn}{c{{Bd{CA`}}}Bn}{c{{Bd{CAb}}}Bn}{c{{Bd{CAd}}}Bn}{c{{Bd{CAf}}}Bn}{c{{Bd{CAh}}}Bn}{c{{Bd{CAj}}}Bn}{c{{Bd{CAl}}}Bn}{c{{Bd{Eh}}}Bn}{c{{Bd{CAn}}}Bn}{c{{Bd{CB`}}}Bn}{c{{Bd{CBb}}}Bn}{c{{Bd{CBd}}}Bn}{c{{Bd{CBf}}}Bn}{c{{Bd{CBh}}}Bn}{c{{Bd{CBj}}}Bn}{c{{Bd{CBl}}}Bn}{c{{Bd{CBn}}}Bn}{c{{Bd{Ej}}}Bn}{c{{Bd{CC`}}}Bn}{c{{Bd{CCb}}}Bn}{c{{Bd{El}}}Bn}{c{{Bd{CCd}}}Bn}{c{{Bd{CCf}}}Bn}{c{{Bd{CCh}}}Bn}{c{{Bd{CCj}}}Bn}{c{{Bd{En}}}Bn}{c{{Bd{CCl}}}Bn}{c{{Bd{F`}}}Bn}{c{{Bd{CCn}}}Bn}{c{{Bd{CD`}}}Bn}{c{{Bd{Fb}}}Bn}{c{{Bd{CDb}}}Bn}{c{{Bd{CDd}}}Bn}{c{{Bd{CDf}}}Bn}{c{{Bd{CDh}}}Bn}{c{{Bd{CDj}}}Bn}{c{{Bd{CDl}}}Bn}{c{{Bd{CDn}}}Bn}{c{{Bd{CE`}}}Bn}{c{{Bd{CEb}}}Bn}{c{{Bd{CEd}}}Bn}{c{{Bd{CEf}}}Bn}{c{{Bd{CEh}}}Bn}{c{{Bd{Fd}}}Bn}{c{{Bd{CEj}}}Bn}{c{{Bd{CEl}}}Bn}{c{{Bd{CEn}}}Bn}{c{{Bd{CF`}}}Bn}{c{{Bd{CFb}}}Bn}{c{{Bd{CFd}}}Bn}{c{{Bd{CFf}}}Bn}{c{{Bd{Ff}}}Bn}{c{{Bd{CFh}}}Bn}{c{{Bd{CFj}}}Bn}{c{{Bd{Fh}}}Bn}{c{{Bd{CFl}}}Bn}{c{{Bd{Fj}}}Bn}{c{{Bd{CFn}}}Bn}{c{{Bd{CG`}}}Bn}{c{{Bd{CGb}}}Bn}{c{{Bd{CGd}}}Bn}{c{{Bd{CGf}}}Bn}{c{{Bd{Fl}}}Bn}{c{{Bd{CGh}}}Bn}{c{{Bd{CGj}}}Bn}{c{{Bd{CGl}}}Bn}{c{{Bd{CGn}}}Bn}{c{{Bd{CH`}}}Bn}{c{{Bd{CHb}}}Bn}{c{{Bd{Fn}}}Bn}{c{{Bd{CHd}}}Bn}{c{{Bd{CHf}}}Bn}{c{{Bd{CHh}}}Bn}{c{{Bd{CHj}}}Bn}{c{{Bd{CHl}}}Bn}{c{{Bd{CHn}}}Bn}{c{{Bd{CI`}}}Bn}{c{{Bd{CIb}}}Bn}{c{{Bd{CId}}}Bn}{c{{Bd{CIf}}}Bn}{c{{Bd{CIh}}}Bn}{c{{Bd{CIj}}}Bn}{c{{Bd{CIl}}}Bn}{c{{Bd{CIn}}}Bn}{c{{Bd{CJ`}}}Bn}{c{{Bd{CJb}}}Bn}{c{{Bd{G`}}}Bn}{c{{Bd{Gb}}}Bn}{c{{Bd{CJd}}}Bn}{c{{Bd{CJf}}}Bn}{c{{Bd{CJh}}}Bn}{c{{Bd{CJj}}}Bn}{c{{Bd{CJl}}}Bn}{c{{Bd{CJn}}}Bn}{c{{Bd{CK`}}}Bn}{c{{Bd{Gd}}}Bn}{c{{Bd{CKb}}}Bn}{c{{Bd{CKd}}}Bn}{c{{Bd{CKf}}}Bn}{c{{Bd{CKh}}}Bn}{c{{Bd{CKj}}}Bn}{c{{Bd{CKl}}}Bn}{c{{Bd{CKn}}}Bn}{c{{Bd{CL`}}}Bn}{c{{Bd{Gf}}}Bn}{c{{Bd{CLb}}}Bn}{c{{Bd{Gh}}}Bn}{c{{Bd{CLd}}}Bn}{c{{Bd{CLf}}}Bn}{c{{Bd{CLh}}}Bn}{c{{Bd{CLj}}}Bn}{c{{Bd{CLl}}}Bn}{c{{Bd{CLn}}}Bn}{c{{Bd{Gj}}}Bn}{c{{Bd{CM`}}}Bn}{c{{Bd{CMb}}}Bn}{c{{Bd{Gl}}}Bn}{c{{Bd{CMd}}}Bn}{c{{Bd{CMf}}}Bn}{c{{Bd{CMh}}}Bn}{c{{Bd{CMj}}}Bn}{c{{Bd{Gn}}}Bn}{c{{Bd{CMl}}}Bn}{c{{Bd{CMn}}}Bn}{c{{Bd{H`}}}Bn}{c{{Bd{CN`}}}Bn}{c{{Bd{CNb}}}Bn}{c{{Bd{CNd}}}Bn}{c{{Bd{CNf}}}Bn}{c{{Bd{Hb}}}Bn}{c{{Bd{Hd}}}Bn}{c{{Bd{CNh}}}Bn}{c{{Bd{CNj}}}Bn}{c{{Bd{CNl}}}Bn}{c{{Bd{CNn}}}Bn}{c{{Bd{CO`}}}Bn}{c{{Bd{Hf}}}Bn}{c{{Bd{COb}}}Bn}{c{{Bd{COd}}}Bn}{c{{Bd{COf}}}Bn}{c{{Bd{COh}}}Bn}{c{{Bd{COj}}}Bn}{c{{Bd{Hh}}}Bn}{c{{Bd{COl}}}Bn}{c{{Bd{COn}}}Bn}{c{{Bd{D@`}}}Bn}{c{{Bd{D@b}}}Bn}{c{{Bd{D@d}}}Bn}{c{{Bd{D@f}}}Bn}{c{{Bd{D@h}}}Bn}{c{{Bd{D@j}}}Bn}{c{{Bd{Hj}}}Bn}{c{{Bd{D@l}}}Bn}{c{{Bd{D@n}}}Bn}{c{{Bd{DA`}}}Bn}{c{{Bd{DAb}}}Bn}{c{{Bd{DAd}}}Bn}{c{{Bd{DAf}}}Bn}{c{{Bd{DAh}}}Bn}{c{{Bd{DAj}}}Bn}{c{{Bd{DAl}}}Bn}{c{{Bd{DAn}}}Bn}{c{{Bd{DB`}}}Bn}``````````````{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}````````````````````````{{}Dl}{{}Dn}{{}E`}{{}Eb}{{}Ed}{{}Ef}{{}Eh}{{}Ej}{{}El}{{}En}{{}F`}{{}Fb}{{}Fd}{{}Ff}{{}Fh}{{}Fj}{{}Fl}{{}Fn}{{}G`}{{}Gb}{{}Gd}{{}Gf}{{}Gh}{{}Gj}{{}Gl}{{}Gn}{{}H`}{{}Hb}{{}Hd}{{}Hf}{{}Hh}{{}Hj}````````````````{{{b{Hn}}{b{Hn}}}C`}{{{b{I`}}{b{I`}}}C`}{{{b{Ib}}{b{Ib}}}C`}{{{b{Id}}{b{Id}}}C`}{{{b{If}}{b{If}}}C`}{{{b{Ih}}{b{Ih}}}C`}{{{b{Ij}}{b{Ij}}}C`}{{{b{Il}}{b{Il}}}C`}{{{b{In}}{b{In}}}C`}{{{b{J`}}{b{J`}}}C`}{{{b{Jb}}{b{Jb}}}C`}{{{b{Jd}}{b{Jd}}}C`}{{{b{Jf}}{b{Jf}}}C`}{{{b{Jh}}{b{Jh}}}C`}{{{b{Jj}}{b{Jj}}}C`}{{{b{Jl}}{b{Jl}}}C`}{{{b{Jn}}{b{Jn}}}C`}{{{b{K`}}{b{K`}}}C`}{{{b{Kb}}{b{Kb}}}C`}{{{b{Kd}}{b{Kd}}}C`}{{{b{Kf}}{b{Kf}}}C`}{{{b{Kh}}{b{Kh}}}C`}{{{b{Kj}}{b{Kj}}}C`}{{{b{Kl}}{b{Kl}}}C`}{{{b{Kn}}{b{Kn}}}C`}{{{b{L`}}{b{L`}}}C`}{{{b{Lb}}{b{Lb}}}C`}{{{b{Ld}}{b{Ld}}}C`}{{{b{Lf}}{b{Lf}}}C`}{{{b{Lh}}{b{Lh}}}C`}{{{b{Lj}}{b{Lj}}}C`}{{{b{Ll}}{b{Ll}}}C`}{{{b{Ln}}{b{Ln}}}C`}{{{b{M`}}{b{M`}}}C`}{{{b{Mb}}{b{Mb}}}C`}{{{b{Md}}{b{Md}}}C`}{{{b{Mf}}{b{Mf}}}C`}{{{b{Mh}}{b{Mh}}}C`}{{{b{Mj}}{b{Mj}}}C`}{{{b{Ml}}{b{Ml}}}C`}{{{b{Mn}}{b{Mn}}}C`}{{{b{N`}}{b{N`}}}C`}{{{b{Nb}}{b{Nb}}}C`}{{{b{Nd}}{b{Nd}}}C`}{{{b{Nf}}{b{Nf}}}C`}{{{b{Nh}}{b{Nh}}}C`}{{{b{Nj}}{b{Nj}}}C`}{{{b{Nl}}{b{Nl}}}C`}{{{b{Nn}}{b{Nn}}}C`}{{{b{O`}}{b{O`}}}C`}{{{b{Ob}}{b{Ob}}}C`}{{{b{Od}}{b{Od}}}C`}{{{b{Of}}{b{Of}}}C`}{{{b{Oh}}{b{Oh}}}C`}{{{b{Oj}}{b{Oj}}}C`}{{{b{Ol}}{b{Ol}}}C`}{{{b{On}}{b{On}}}C`}{{{b{A@`}}{b{A@`}}}C`}{{{b{A@b}}{b{A@b}}}C`}{{{b{A@d}}{b{A@d}}}C`}{{{b{A@f}}{b{A@f}}}C`}{{{b{A@h}}{b{A@h}}}C`}{{{b{A@j}}{b{A@j}}}C`}{{{b{A@l}}{b{A@l}}}C`}{{{b{A@n}}{b{A@n}}}C`}{{{b{AA`}}{b{AA`}}}C`}{{{b{AAb}}{b{AAb}}}C`}{{{b{AAd}}{b{AAd}}}C`}{{{b{AAf}}{b{AAf}}}C`}{{{b{AAh}}{b{AAh}}}C`}{{{b{AAj}}{b{AAj}}}C`}{{{b{AAl}}{b{AAl}}}C`}{{{b{AAn}}{b{AAn}}}C`}{{{b{AB`}}{b{AB`}}}C`}{{{b{ABb}}{b{ABb}}}C`}{{{b{ABd}}{b{ABd}}}C`}{{{b{ABf}}{b{ABf}}}C`}{{{b{ABh}}{b{ABh}}}C`}{{{b{ABj}}{b{ABj}}}C`}{{{b{ABl}}{b{ABl}}}C`}{{{b{ABn}}{b{ABn}}}C`}{{{b{AC`}}{b{AC`}}}C`}{{{b{ACb}}{b{ACb}}}C`}{{{b{ACd}}{b{ACd}}}C`}{{{b{ACf}}{b{ACf}}}C`}{{{b{ACh}}{b{ACh}}}C`}{{{b{ACj}}{b{ACj}}}C`}{{{b{ACl}}{b{ACl}}}C`}{{{b{ACn}}{b{ACn}}}C`}{{{b{AD`}}{b{AD`}}}C`}{{{b{ADb}}{b{ADb}}}C`}{{{b{ADd}}{b{ADd}}}C`}{{{b{ADf}}{b{ADf}}}C`}{{{b{ADh}}{b{ADh}}}C`}{{{b{ADj}}{b{ADj}}}C`}{{{b{ADl}}{b{ADl}}}C`}{{{b{ADn}}{b{ADn}}}C`}{{{b{AE`}}{b{AE`}}}C`}{{{b{AEb}}{b{AEb}}}C`}{{{b{AEd}}{b{AEd}}}C`}{{{b{AEf}}{b{AEf}}}C`}{{{b{AEh}}{b{AEh}}}C`}{{{b{AEj}}{b{AEj}}}C`}{{{b{AEl}}{b{AEl}}}C`}{{{b{AEn}}{b{AEn}}}C`}{{{b{AF`}}{b{AF`}}}C`}{{{b{AFb}}{b{AFb}}}C`}{{{b{AFd}}{b{AFd}}}C`}{{{b{AFf}}{b{AFf}}}C`}{{{b{AFh}}{b{AFh}}}C`}{{{b{AFj}}{b{AFj}}}C`}{{{b{AFl}}{b{AFl}}}C`}{{{b{AFn}}{b{AFn}}}C`}{{{b{AG`}}{b{AG`}}}C`}{{{b{AGb}}{b{AGb}}}C`}{{{b{AGd}}{b{AGd}}}C`}{{{b{AGf}}{b{AGf}}}C`}{{{b{AGh}}{b{AGh}}}C`}{{{b{AGj}}{b{AGj}}}C`}{{{b{AGl}}{b{AGl}}}C`}{{{b{AGn}}{b{AGn}}}C`}{{{b{AH`}}{b{AH`}}}C`}{{{b{AHb}}{b{AHb}}}C`}{{{b{AHd}}{b{AHd}}}C`}{{{b{AHf}}{b{AHf}}}C`}{{{b{AHh}}{b{AHh}}}C`}{{{b{AHj}}{b{AHj}}}C`}{{{b{AHl}}{b{AHl}}}C`}{{{b{AHn}}{b{AHn}}}C`}{{{b{AI`}}{b{AI`}}}C`}{{{b{AIb}}{b{AIb}}}C`}{{{b{AId}}{b{AId}}}C`}{{{b{AIf}}{b{AIf}}}C`}{{{b{AIh}}{b{AIh}}}C`}{{{b{AIj}}{b{AIj}}}C`}{{{b{AIl}}{b{AIl}}}C`}{{{b{AIn}}{b{AIn}}}C`}{{{b{AJ`}}{b{AJ`}}}C`}{{{b{AJb}}{b{AJb}}}C`}{{{b{AJd}}{b{AJd}}}C`}{{{b{AJf}}{b{AJf}}}C`}{{{b{AJh}}{b{AJh}}}C`}{{{b{AJj}}{b{AJj}}}C`}{{{b{AJl}}{b{AJl}}}C`}{{{b{AJn}}{b{AJn}}}C`}{{{b{AK`}}{b{AK`}}}C`}{{{b{AKb}}{b{AKb}}}C`}{{{b{AKd}}{b{AKd}}}C`}{{{b{AKf}}{b{AKf}}}C`}{{{b{AKh}}{b{AKh}}}C`}{{{b{AKj}}{b{AKj}}}C`}{{{b{AKl}}{b{AKl}}}C`}{{{b{AKn}}{b{AKn}}}C`}{{{b{AL`}}{b{AL`}}}C`}{{{b{ALb}}{b{ALb}}}C`}{{{b{ALd}}{b{ALd}}}C`}{{{b{ALf}}{b{ALf}}}C`}{{{b{ALh}}{b{ALh}}}C`}{{{b{ALj}}{b{ALj}}}C`}{{{b{ALl}}{b{ALl}}}C`}{{{b{ALn}}{b{ALn}}}C`}{{{b{AM`}}{b{AM`}}}C`}{{{b{AMb}}{b{AMb}}}C`}{{{b{AMd}}{b{AMd}}}C`}{{{b{AMf}}{b{AMf}}}C`}{{{b{AMh}}{b{AMh}}}C`}{{{b{AMj}}{b{AMj}}}C`}{{{b{AMl}}{b{AMl}}}C`}{{{b{AMn}}{b{AMn}}}C`}{{{b{AN`}}{b{AN`}}}C`}{{{b{ANb}}{b{ANb}}}C`}{{{b{ANd}}{b{ANd}}}C`}{{{b{ANf}}{b{ANf}}}C`}{{{b{ANh}}{b{ANh}}}C`}{{{b{ANj}}{b{ANj}}}C`}{{{b{ANl}}{b{ANl}}}C`}{{{b{ANn}}{b{ANn}}}C`}{{{b{AO`}}{b{AO`}}}C`}{{{b{AOb}}{b{AOb}}}C`}{{{b{AOd}}{b{AOd}}}C`}{{{b{AOf}}{b{AOf}}}C`}{{{b{AOh}}{b{AOh}}}C`}{{{b{AOj}}{b{AOj}}}C`}{{{b{AOl}}{b{AOl}}}C`}{{{b{AOn}}{b{AOn}}}C`}{{{b{B@`}}{b{B@`}}}C`}{{{b{B@b}}{b{B@b}}}C`}{{{b{B@d}}{b{B@d}}}C`}{{{b{B@f}}{b{B@f}}}C`}{{{b{B@h}}{b{B@h}}}C`}{{{b{B@j}}{b{B@j}}}C`}{{{b{B@l}}{b{B@l}}}C`}{{{b{B@n}}{b{B@n}}}C`}{{{b{BA`}}{b{BA`}}}C`}{{{b{BAb}}{b{BAb}}}C`}{{{b{BAd}}{b{BAd}}}C`}{{{b{BAf}}{b{BAf}}}C`}{{{b{BAh}}{b{BAh}}}C`}{{{b{BAj}}{b{BAj}}}C`}{{{b{BAl}}{b{BAl}}}C`}{{{b{BAn}}{b{BAn}}}C`}{{{b{BB`}}{b{BB`}}}C`}{{{b{BBb}}{b{BBb}}}C`}{{{b{BBd}}{b{BBd}}}C`}{{{b{BBf}}{b{BBf}}}C`}{{{b{BBh}}{b{BBh}}}C`}{{{b{BBj}}{b{BBj}}}C`}{{{b{BBl}}{b{BBl}}}C`}{{{b{BBn}}{b{BBn}}}C`}{{{b{BC`}}{b{BC`}}}C`}{{{b{BCb}}{b{BCb}}}C`}{{{b{BCd}}{b{BCd}}}C`}{{{b{BCf}}{b{BCf}}}C`}{{{b{BCh}}{b{BCh}}}C`}{{{b{BCj}}{b{BCj}}}C`}{{{b{BCl}}{b{BCl}}}C`}{{{b{BCn}}{b{BCn}}}C`}{{{b{BD`}}{b{BD`}}}C`}{{{b{BDb}}{b{BDb}}}C`}{{{b{BDd}}{b{BDd}}}C`}{{{b{BDf}}{b{BDf}}}C`}{{{b{BDh}}{b{BDh}}}C`}{{{b{BDj}}{b{BDj}}}C`}{{{b{BDl}}{b{BDl}}}C`}{{{b{BDn}}{b{BDn}}}C`}{{{b{BE`}}{b{BE`}}}C`}{{{b{BEb}}{b{BEb}}}C`}{{{b{BEd}}{b{BEd}}}C`}{{{b{BEf}}{b{BEf}}}C`}{{{b{BEh}}{b{BEh}}}C`}{{{b{BEj}}{b{BEj}}}C`}{{{b{BEl}}{b{BEl}}}C`}{{{b{BEn}}{b{BEn}}}C`}{{{b{BF`}}{b{BF`}}}C`}{{{b{BFb}}{b{BFb}}}C`}{{{b{BFd}}{b{BFd}}}C`}{{{b{BFf}}{b{BFf}}}C`}{{{b{BFh}}{b{BFh}}}C`}{{{b{BFj}}{b{BFj}}}C`}{{{b{BFl}}{b{BFl}}}C`}{{{b{BFn}}{b{BFn}}}C`}{{{b{BG`}}{b{BG`}}}C`}{{{b{BGb}}{b{BGb}}}C`}{{{b{BGd}}{b{BGd}}}C`}{{{b{BGf}}{b{BGf}}}C`}{{{b{BGh}}{b{BGh}}}C`}{{{b{BGj}}{b{BGj}}}C`}{{{b{BGl}}{b{BGl}}}C`}{{{b{BGn}}{b{BGn}}}C`}{{{b{BH`}}{b{BH`}}}C`}{{{b{BHb}}{b{BHb}}}C`}{{{b{BHd}}{b{BHd}}}C`}{{{b{BHf}}{b{BHf}}}C`}{{{b{BHh}}{b{BHh}}}C`}{{{b{BHj}}{b{BHj}}}C`}{{{b{BHl}}{b{BHl}}}C`}{{{b{BHn}}{b{BHn}}}C`}{{{b{BI`}}{b{BI`}}}C`}{{{b{BIb}}{b{BIb}}}C`}{{{b{BId}}{b{BId}}}C`}{{{b{BIf}}{b{BIf}}}C`}{{{b{BIh}}{b{BIh}}}C`}{{{b{BIj}}{b{BIj}}}C`}{{{b{BIl}}{b{BIl}}}C`}{{{b{BIn}}{b{BIn}}}C`}{{{b{BJ`}}{b{BJ`}}}C`}{{{b{BJb}}{b{BJb}}}C`}{{{b{BJd}}{b{BJd}}}C`}{{{b{BJf}}{b{BJf}}}C`}{{{b{BJh}}{b{BJh}}}C`}{{{b{BJj}}{b{BJj}}}C`}{{{b{BJl}}{b{BJl}}}C`}{{{b{BJn}}{b{BJn}}}C`}{{{b{BK`}}{b{BK`}}}C`}{{{b{BKb}}{b{BKb}}}C`}{{{b{BKd}}{b{BKd}}}C`}{{{b{BKf}}{b{BKf}}}C`}{{{b{BKh}}{b{BKh}}}C`}{{{b{BKj}}{b{BKj}}}C`}{{{b{BKl}}{b{BKl}}}C`}{{{b{BKn}}{b{BKn}}}C`}{{{b{BL`}}{b{BL`}}}C`}{{{b{BLb}}{b{BLb}}}C`}{{{b{BLd}}{b{BLd}}}C`}{{{b{BLf}}{b{BLf}}}C`}{{{b{BLh}}{b{BLh}}}C`}{{{b{BLj}}{b{BLj}}}C`}{{{b{BLl}}{b{BLl}}}C`}{{{b{BLn}}{b{BLn}}}C`}{{{b{BM`}}{b{BM`}}}C`}{{{b{BMb}}{b{BMb}}}C`}{{{b{BMd}}{b{BMd}}}C`}{{{b{BMf}}{b{BMf}}}C`}{{{b{BMh}}{b{BMh}}}C`}{{{b{BMj}}{b{BMj}}}C`}{{{b{BMl}}{b{BMl}}}C`}{{{b{BMn}}{b{BMn}}}C`}{{{b{Dl}}{b{Dl}}}C`}{{{b{BN`}}{b{BN`}}}C`}{{{b{BNb}}{b{BNb}}}C`}{{{b{Dn}}{b{Dn}}}C`}{{{b{E`}}{b{E`}}}C`}{{{b{BNd}}{b{BNd}}}C`}{{{b{BNf}}{b{BNf}}}C`}{{{b{BNh}}{b{BNh}}}C`}{{{b{BNj}}{b{BNj}}}C`}{{{b{BNl}}{b{BNl}}}C`}{{{b{BNn}}{b{BNn}}}C`}{{{b{BO`}}{b{BO`}}}C`}{{{b{BOb}}{b{BOb}}}C`}{{{b{Eb}}{b{Eb}}}C`}{{{b{BOd}}{b{BOd}}}C`}{{{b{BOf}}{b{BOf}}}C`}{{{b{BOh}}{b{BOh}}}C`}{{{b{Ed}}{b{Ed}}}C`}{{{b{BOj}}{b{BOj}}}C`}{{{b{BOl}}{b{BOl}}}C`}{{{b{BOn}}{b{BOn}}}C`}{{{b{C@`}}{b{C@`}}}C`}{{{b{C@b}}{b{C@b}}}C`}{{{b{C@d}}{b{C@d}}}C`}{{{b{C@f}}{b{C@f}}}C`}{{{b{C@h}}{b{C@h}}}C`}{{{b{C@j}}{b{C@j}}}C`}{{{b{C@l}}{b{C@l}}}C`}{{{b{Ef}}{b{Ef}}}C`}{{{b{C@n}}{b{C@n}}}C`}{{{b{CA`}}{b{CA`}}}C`}{{{b{CAb}}{b{CAb}}}C`}{{{b{CAd}}{b{CAd}}}C`}{{{b{CAf}}{b{CAf}}}C`}{{{b{CAh}}{b{CAh}}}C`}{{{b{CAj}}{b{CAj}}}C`}{{{b{CAl}}{b{CAl}}}C`}{{{b{Eh}}{b{Eh}}}C`}{{{b{CAn}}{b{CAn}}}C`}{{{b{CB`}}{b{CB`}}}C`}{{{b{CBb}}{b{CBb}}}C`}{{{b{CBd}}{b{CBd}}}C`}{{{b{CBf}}{b{CBf}}}C`}{{{b{CBh}}{b{CBh}}}C`}{{{b{CBj}}{b{CBj}}}C`}{{{b{CBl}}{b{CBl}}}C`}{{{b{CBn}}{b{CBn}}}C`}{{{b{Ej}}{b{Ej}}}C`}{{{b{CC`}}{b{CC`}}}C`}{{{b{CCb}}{b{CCb}}}C`}{{{b{El}}{b{El}}}C`}{{{b{CCd}}{b{CCd}}}C`}{{{b{CCf}}{b{CCf}}}C`}{{{b{CCh}}{b{CCh}}}C`}{{{b{CCj}}{b{CCj}}}C`}{{{b{En}}{b{En}}}C`}{{{b{CCl}}{b{CCl}}}C`}{{{b{F`}}{b{F`}}}C`}{{{b{CCn}}{b{CCn}}}C`}{{{b{CD`}}{b{CD`}}}C`}{{{b{Fb}}{b{Fb}}}C`}{{{b{CDb}}{b{CDb}}}C`}{{{b{CDd}}{b{CDd}}}C`}{{{b{CDf}}{b{CDf}}}C`}{{{b{CDh}}{b{CDh}}}C`}{{{b{CDj}}{b{CDj}}}C`}{{{b{CDl}}{b{CDl}}}C`}{{{b{CDn}}{b{CDn}}}C`}{{{b{CE`}}{b{CE`}}}C`}{{{b{CEb}}{b{CEb}}}C`}{{{b{CEd}}{b{CEd}}}C`}{{{b{CEf}}{b{CEf}}}C`}{{{b{CEh}}{b{CEh}}}C`}{{{b{Fd}}{b{Fd}}}C`}{{{b{CEj}}{b{CEj}}}C`}{{{b{CEl}}{b{CEl}}}C`}{{{b{CEn}}{b{CEn}}}C`}{{{b{CF`}}{b{CF`}}}C`}{{{b{CFb}}{b{CFb}}}C`}{{{b{CFd}}{b{CFd}}}C`}{{{b{CFf}}{b{CFf}}}C`}{{{b{Ff}}{b{Ff}}}C`}{{{b{CFh}}{b{CFh}}}C`}{{{b{CFj}}{b{CFj}}}C`}{{{b{Fh}}{b{Fh}}}C`}{{{b{CFl}}{b{CFl}}}C`}{{{b{Fj}}{b{Fj}}}C`}{{{b{CFn}}{b{CFn}}}C`}{{{b{CG`}}{b{CG`}}}C`}{{{b{CGb}}{b{CGb}}}C`}{{{b{CGd}}{b{CGd}}}C`}{{{b{CGf}}{b{CGf}}}C`}{{{b{Fl}}{b{Fl}}}C`}{{{b{CGh}}{b{CGh}}}C`}{{{b{CGj}}{b{CGj}}}C`}{{{b{CGl}}{b{CGl}}}C`}{{{b{CGn}}{b{CGn}}}C`}{{{b{CH`}}{b{CH`}}}C`}{{{b{CHb}}{b{CHb}}}C`}{{{b{Fn}}{b{Fn}}}C`}{{{b{CHd}}{b{CHd}}}C`}{{{b{CHf}}{b{CHf}}}C`}{{{b{CHh}}{b{CHh}}}C`}{{{b{CHj}}{b{CHj}}}C`}{{{b{CHl}}{b{CHl}}}C`}{{{b{CHn}}{b{CHn}}}C`}{{{b{CI`}}{b{CI`}}}C`}{{{b{CIb}}{b{CIb}}}C`}{{{b{CId}}{b{CId}}}C`}{{{b{CIf}}{b{CIf}}}C`}{{{b{CIh}}{b{CIh}}}C`}{{{b{CIj}}{b{CIj}}}C`}{{{b{CIl}}{b{CIl}}}C`}{{{b{CIn}}{b{CIn}}}C`}{{{b{CJ`}}{b{CJ`}}}C`}{{{b{CJb}}{b{CJb}}}C`}{{{b{G`}}{b{G`}}}C`}{{{b{Gb}}{b{Gb}}}C`}{{{b{CJd}}{b{CJd}}}C`}{{{b{CJf}}{b{CJf}}}C`}{{{b{CJh}}{b{CJh}}}C`}{{{b{CJj}}{b{CJj}}}C`}{{{b{CJl}}{b{CJl}}}C`}{{{b{CJn}}{b{CJn}}}C`}{{{b{CK`}}{b{CK`}}}C`}{{{b{Gd}}{b{Gd}}}C`}{{{b{CKb}}{b{CKb}}}C`}{{{b{CKd}}{b{CKd}}}C`}{{{b{CKf}}{b{CKf}}}C`}{{{b{CKh}}{b{CKh}}}C`}{{{b{CKj}}{b{CKj}}}C`}{{{b{CKl}}{b{CKl}}}C`}{{{b{CKn}}{b{CKn}}}C`}{{{b{CL`}}{b{CL`}}}C`}{{{b{Gf}}{b{Gf}}}C`}{{{b{CLb}}{b{CLb}}}C`}{{{b{Gh}}{b{Gh}}}C`}{{{b{CLd}}{b{CLd}}}C`}{{{b{CLf}}{b{CLf}}}C`}{{{b{CLh}}{b{CLh}}}C`}{{{b{CLj}}{b{CLj}}}C`}{{{b{CLl}}{b{CLl}}}C`}{{{b{CLn}}{b{CLn}}}C`}{{{b{Gj}}{b{Gj}}}C`}{{{b{CM`}}{b{CM`}}}C`}{{{b{CMb}}{b{CMb}}}C`}{{{b{Gl}}{b{Gl}}}C`}{{{b{CMd}}{b{CMd}}}C`}{{{b{CMf}}{b{CMf}}}C`}{{{b{CMh}}{b{CMh}}}C`}{{{b{CMj}}{b{CMj}}}C`}{{{b{Gn}}{b{Gn}}}C`}{{{b{CMl}}{b{CMl}}}C`}{{{b{CMn}}{b{CMn}}}C`}{{{b{H`}}{b{H`}}}C`}{{{b{CN`}}{b{CN`}}}C`}{{{b{CNb}}{b{CNb}}}C`}{{{b{CNd}}{b{CNd}}}C`}{{{b{CNf}}{b{CNf}}}C`}{{{b{Hb}}{b{Hb}}}C`}{{{b{Hd}}{b{Hd}}}C`}{{{b{CNh}}{b{CNh}}}C`}{{{b{CNj}}{b{CNj}}}C`}{{{b{CNl}}{b{CNl}}}C`}{{{b{CNn}}{b{CNn}}}C`}{{{b{CO`}}{b{CO`}}}C`}{{{b{Hf}}{b{Hf}}}C`}{{{b{COb}}{b{COb}}}C`}{{{b{COd}}{b{COd}}}C`}{{{b{COf}}{b{COf}}}C`}{{{b{COh}}{b{COh}}}C`}{{{b{COj}}{b{COj}}}C`}{{{b{Hh}}{b{Hh}}}C`}{{{b{COl}}{b{COl}}}C`}{{{b{COn}}{b{COn}}}C`}{{{b{D@`}}{b{D@`}}}C`}{{{b{D@b}}{b{D@b}}}C`}{{{b{D@d}}{b{D@d}}}C`}{{{b{D@f}}{b{D@f}}}C`}{{{b{D@h}}{b{D@h}}}C`}{{{b{D@j}}{b{D@j}}}C`}{{{b{Hj}}{b{Hj}}}C`}{{{b{D@l}}{b{D@l}}}C`}{{{b{D@n}}{b{D@n}}}C`}{{{b{DA`}}{b{DA`}}}C`}{{{b{DAb}}{b{DAb}}}C`}{{{b{DAd}}{b{DAd}}}C`}{{{b{DAf}}{b{DAf}}}C`}{{{b{DAh}}{b{DAh}}}C`}{{{b{DAj}}{b{DAj}}}C`}{{{b{DAl}}{b{DAl}}}C`}{{{b{DAn}}{b{DAn}}}C`}{{{b{DB`}}{b{DB`}}}C`}```````````````````{{{b{dDl}}c}Aj{{DBf{}{{DBd{Dl}}}}}}{{{b{dDn}}c}Aj{{DBf{}{{DBd{Dn}}}}}}{{{b{dE`}}c}Aj{{DBf{}{{DBd{E`}}}}}}{{{b{dEb}}c}Aj{{DBf{}{{DBd{Eb}}}}}}{{{b{dEd}}c}Aj{{DBf{}{{DBd{Ed}}}}}}{{{b{dEf}}c}Aj{{DBf{}{{DBd{Ef}}}}}}{{{b{dEh}}c}Aj{{DBf{}{{DBd{Eh}}}}}}{{{b{dEj}}c}Aj{{DBf{}{{DBd{Ej}}}}}}{{{b{dEl}}c}Aj{{DBf{}{{DBd{El}}}}}}{{{b{dEn}}c}Aj{{DBf{}{{DBd{En}}}}}}{{{b{dF`}}c}Aj{{DBf{}{{DBd{F`}}}}}}{{{b{dFb}}c}Aj{{DBf{}{{DBd{Fb}}}}}}{{{b{dFd}}c}Aj{{DBf{}{{DBd{Fd}}}}}}{{{b{dFf}}c}Aj{{DBf{}{{DBd{Ff}}}}}}{{{b{dFh}}c}Aj{{DBf{}{{DBd{Fh}}}}}}{{{b{dFj}}c}Aj{{DBf{}{{DBd{Fj}}}}}}{{{b{dFl}}c}Aj{{DBf{}{{DBd{Fl}}}}}}{{{b{dFn}}c}Aj{{DBf{}{{DBd{Fn}}}}}}{{{b{dG`}}c}Aj{{DBf{}{{DBd{G`}}}}}}{{{b{dGb}}c}Aj{{DBf{}{{DBd{Gb}}}}}}{{{b{dGd}}c}Aj{{DBf{}{{DBd{Gd}}}}}}{{{b{dGf}}c}Aj{{DBf{}{{DBd{Gf}}}}}}{{{b{dGh}}c}Aj{{DBf{}{{DBd{Gh}}}}}}{{{b{dGj}}c}Aj{{DBf{}{{DBd{Gj}}}}}}{{{b{dGl}}c}Aj{{DBf{}{{DBd{Gl}}}}}}{{{b{dGn}}c}Aj{{DBf{}{{DBd{Gn}}}}}}{{{b{dH`}}c}Aj{{DBf{}{{DBd{H`}}}}}}{{{b{dHb}}c}Aj{{DBf{}{{DBd{Hb}}}}}}{{{b{dHd}}c}Aj{{DBf{}{{DBd{Hd}}}}}}{{{b{dHf}}c}Aj{{DBf{}{{DBd{Hf}}}}}}{{{b{dHh}}c}Aj{{DBf{}{{DBd{Hh}}}}}}{{{b{dHj}}c}Aj{{DBf{}{{DBd{Hj}}}}}}{Bff}````````````````````````````````````````````````````````````{{{b{Hn}}{b{dCb}}}DBh}{{{b{I`}}{b{dCb}}}DBh}{{{b{Ib}}{b{dCb}}}DBh}{{{b{Id}}{b{dCb}}}DBh}{{{b{If}}{b{dCb}}}DBh}{{{b{Ih}}{b{dCb}}}DBh}{{{b{Ij}}{b{dCb}}}DBh}{{{b{Il}}{b{dCb}}}DBh}{{{b{In}}{b{dCb}}}DBh}{{{b{J`}}{b{dCb}}}DBh}{{{b{Jb}}{b{dCb}}}DBh}{{{b{Jd}}{b{dCb}}}DBh}{{{b{Jf}}{b{dCb}}}DBh}{{{b{Jh}}{b{dCb}}}DBh}{{{b{Jj}}{b{dCb}}}DBh}{{{b{Jl}}{b{dCb}}}DBh}{{{b{Jn}}{b{dCb}}}DBh}{{{b{K`}}{b{dCb}}}DBh}{{{b{Kb}}{b{dCb}}}DBh}{{{b{Kd}}{b{dCb}}}DBh}{{{b{Kf}}{b{dCb}}}DBh}{{{b{Kh}}{b{dCb}}}DBh}{{{b{Kj}}{b{dCb}}}DBh}{{{b{Kl}}{b{dCb}}}DBh}{{{b{Kn}}{b{dCb}}}DBh}{{{b{L`}}{b{dCb}}}DBh}{{{b{Lb}}{b{dCb}}}DBh}{{{b{Ld}}{b{dCb}}}DBh}{{{b{Lf}}{b{dCb}}}DBh}{{{b{Lh}}{b{dCb}}}DBh}{{{b{Lj}}{b{dCb}}}DBh}{{{b{Ll}}{b{dCb}}}DBh}{{{b{Ln}}{b{dCb}}}DBh}{{{b{M`}}{b{dCb}}}DBh}{{{b{Mb}}{b{dCb}}}DBh}{{{b{Md}}{b{dCb}}}DBh}{{{b{Mf}}{b{dCb}}}DBh}{{{b{Mh}}{b{dCb}}}DBh}{{{b{Mj}}{b{dCb}}}DBh}{{{b{Ml}}{b{dCb}}}DBh}{{{b{Mn}}{b{dCb}}}DBh}{{{b{N`}}{b{dCb}}}DBh}{{{b{Nb}}{b{dCb}}}DBh}{{{b{Nd}}{b{dCb}}}DBh}{{{b{Nf}}{b{dCb}}}DBh}{{{b{Nh}}{b{dCb}}}DBh}{{{b{Nj}}{b{dCb}}}DBh}{{{b{Nl}}{b{dCb}}}DBh}{{{b{Nn}}{b{dCb}}}DBh}{{{b{O`}}{b{dCb}}}DBh}{{{b{Ob}}{b{dCb}}}DBh}{{{b{Od}}{b{dCb}}}DBh}{{{b{Of}}{b{dCb}}}DBh}{{{b{Oh}}{b{dCb}}}DBh}{{{b{Oj}}{b{dCb}}}DBh}{{{b{Ol}}{b{dCb}}}DBh}{{{b{On}}{b{dCb}}}DBh}{{{b{A@`}}{b{dCb}}}DBh}{{{b{A@b}}{b{dCb}}}DBh}{{{b{A@d}}{b{dCb}}}DBh}{{{b{A@f}}{b{dCb}}}DBh}{{{b{A@h}}{b{dCb}}}DBh}{{{b{A@j}}{b{dCb}}}DBh}{{{b{A@l}}{b{dCb}}}DBh}{{{b{A@n}}{b{dCb}}}DBh}{{{b{AA`}}{b{dCb}}}DBh}{{{b{AAb}}{b{dCb}}}DBh}{{{b{AAd}}{b{dCb}}}DBh}{{{b{AAf}}{b{dCb}}}DBh}{{{b{AAh}}{b{dCb}}}DBh}{{{b{AAj}}{b{dCb}}}DBh}{{{b{AAl}}{b{dCb}}}DBh}{{{b{AAn}}{b{dCb}}}DBh}{{{b{AB`}}{b{dCb}}}DBh}{{{b{ABb}}{b{dCb}}}DBh}{{{b{ABd}}{b{dCb}}}DBh}{{{b{ABf}}{b{dCb}}}DBh}{{{b{ABh}}{b{dCb}}}DBh}{{{b{ABj}}{b{dCb}}}DBh}{{{b{ABl}}{b{dCb}}}DBh}{{{b{ABn}}{b{dCb}}}DBh}{{{b{AC`}}{b{dCb}}}DBh}{{{b{ACb}}{b{dCb}}}DBh}{{{b{ACd}}{b{dCb}}}DBh}{{{b{ACf}}{b{dCb}}}DBh}{{{b{ACh}}{b{dCb}}}DBh}{{{b{ACj}}{b{dCb}}}DBh}{{{b{ACl}}{b{dCb}}}DBh}{{{b{ACn}}{b{dCb}}}DBh}{{{b{AD`}}{b{dCb}}}DBh}{{{b{ADb}}{b{dCb}}}DBh}{{{b{ADd}}{b{dCb}}}DBh}{{{b{ADf}}{b{dCb}}}DBh}{{{b{ADh}}{b{dCb}}}DBh}{{{b{ADj}}{b{dCb}}}DBh}{{{b{ADl}}{b{dCb}}}DBh}{{{b{ADn}}{b{dCb}}}DBh}{{{b{AE`}}{b{dCb}}}DBh}{{{b{AEb}}{b{dCb}}}DBh}{{{b{AEd}}{b{dCb}}}DBh}{{{b{AEf}}{b{dCb}}}DBh}{{{b{AEh}}{b{dCb}}}DBh}{{{b{AEj}}{b{dCb}}}DBh}{{{b{AEl}}{b{dCb}}}DBh}{{{b{AEn}}{b{dCb}}}DBh}{{{b{AF`}}{b{dCb}}}DBh}{{{b{AFb}}{b{dCb}}}DBh}{{{b{AFd}}{b{dCb}}}DBh}{{{b{AFf}}{b{dCb}}}DBh}{{{b{AFh}}{b{dCb}}}DBh}{{{b{AFj}}{b{dCb}}}DBh}{{{b{AFl}}{b{dCb}}}DBh}{{{b{AFn}}{b{dCb}}}DBh}{{{b{AG`}}{b{dCb}}}DBh}{{{b{AGb}}{b{dCb}}}DBh}{{{b{AGd}}{b{dCb}}}DBh}{{{b{AGf}}{b{dCb}}}DBh}{{{b{AGh}}{b{dCb}}}DBh}{{{b{AGj}}{b{dCb}}}DBh}{{{b{AGl}}{b{dCb}}}DBh}{{{b{AGn}}{b{dCb}}}DBh}{{{b{AH`}}{b{dCb}}}DBh}{{{b{AHb}}{b{dCb}}}DBh}{{{b{AHd}}{b{dCb}}}DBh}{{{b{AHf}}{b{dCb}}}DBh}{{{b{AHh}}{b{dCb}}}DBh}{{{b{AHj}}{b{dCb}}}DBh}{{{b{AHl}}{b{dCb}}}DBh}{{{b{AHn}}{b{dCb}}}DBh}{{{b{AI`}}{b{dCb}}}DBh}{{{b{AIb}}{b{dCb}}}DBh}{{{b{AId}}{b{dCb}}}DBh}{{{b{AIf}}{b{dCb}}}DBh}{{{b{AIh}}{b{dCb}}}DBh}{{{b{AIj}}{b{dCb}}}DBh}{{{b{AIl}}{b{dCb}}}DBh}{{{b{AIn}}{b{dCb}}}DBh}{{{b{AJ`}}{b{dCb}}}DBh}{{{b{AJb}}{b{dCb}}}DBh}{{{b{AJd}}{b{dCb}}}DBh}{{{b{AJf}}{b{dCb}}}DBh}{{{b{AJh}}{b{dCb}}}DBh}{{{b{AJj}}{b{dCb}}}DBh}{{{b{AJl}}{b{dCb}}}DBh}{{{b{AJn}}{b{dCb}}}DBh}{{{b{AK`}}{b{dCb}}}DBh}{{{b{AKb}}{b{dCb}}}DBh}{{{b{AKd}}{b{dCb}}}DBh}{{{b{AKf}}{b{dCb}}}DBh}{{{b{AKh}}{b{dCb}}}DBh}{{{b{AKj}}{b{dCb}}}DBh}{{{b{AKl}}{b{dCb}}}DBh}{{{b{AKn}}{b{dCb}}}DBh}{{{b{AL`}}{b{dCb}}}DBh}{{{b{ALb}}{b{dCb}}}DBh}{{{b{ALd}}{b{dCb}}}DBh}{{{b{ALf}}{b{dCb}}}DBh}{{{b{ALh}}{b{dCb}}}DBh}{{{b{ALj}}{b{dCb}}}DBh}{{{b{ALl}}{b{dCb}}}DBh}{{{b{ALn}}{b{dCb}}}DBh}{{{b{AM`}}{b{dCb}}}DBh}{{{b{AMb}}{b{dCb}}}DBh}{{{b{AMd}}{b{dCb}}}DBh}{{{b{AMf}}{b{dCb}}}DBh}{{{b{AMh}}{b{dCb}}}DBh}{{{b{AMj}}{b{dCb}}}DBh}{{{b{AMl}}{b{dCb}}}DBh}{{{b{AMn}}{b{dCb}}}DBh}{{{b{AN`}}{b{dCb}}}DBh}{{{b{ANb}}{b{dCb}}}DBh}{{{b{ANd}}{b{dCb}}}DBh}{{{b{ANf}}{b{dCb}}}DBh}{{{b{ANh}}{b{dCb}}}DBh}{{{b{ANj}}{b{dCb}}}DBh}{{{b{ANl}}{b{dCb}}}DBh}{{{b{ANn}}{b{dCb}}}DBh}{{{b{AO`}}{b{dCb}}}DBh}{{{b{AOb}}{b{dCb}}}DBh}{{{b{AOd}}{b{dCb}}}DBh}{{{b{AOf}}{b{dCb}}}DBh}{{{b{AOh}}{b{dCb}}}DBh}{{{b{AOj}}{b{dCb}}}DBh}{{{b{AOl}}{b{dCb}}}DBh}{{{b{AOn}}{b{dCb}}}DBh}{{{b{B@`}}{b{dCb}}}DBh}{{{b{B@b}}{b{dCb}}}DBh}{{{b{B@d}}{b{dCb}}}DBh}{{{b{B@f}}{b{dCb}}}DBh}{{{b{B@h}}{b{dCb}}}DBh}{{{b{B@j}}{b{dCb}}}DBh}{{{b{B@l}}{b{dCb}}}DBh}{{{b{B@n}}{b{dCb}}}DBh}{{{b{BA`}}{b{dCb}}}DBh}{{{b{BAb}}{b{dCb}}}DBh}{{{b{BAd}}{b{dCb}}}DBh}{{{b{BAf}}{b{dCb}}}DBh}{{{b{BAh}}{b{dCb}}}DBh}{{{b{BAj}}{b{dCb}}}DBh}{{{b{BAl}}{b{dCb}}}DBh}{{{b{BAn}}{b{dCb}}}DBh}{{{b{BB`}}{b{dCb}}}DBh}{{{b{BBb}}{b{dCb}}}DBh}{{{b{BBd}}{b{dCb}}}DBh}{{{b{BBf}}{b{dCb}}}DBh}{{{b{BBh}}{b{dCb}}}DBh}{{{b{BBj}}{b{dCb}}}DBh}{{{b{BBl}}{b{dCb}}}DBh}{{{b{BBn}}{b{dCb}}}DBh}{{{b{BC`}}{b{dCb}}}DBh}{{{b{BCb}}{b{dCb}}}DBh}{{{b{BCd}}{b{dCb}}}DBh}{{{b{BCf}}{b{dCb}}}DBh}{{{b{BCh}}{b{dCb}}}DBh}{{{b{BCj}}{b{dCb}}}DBh}{{{b{BCl}}{b{dCb}}}DBh}{{{b{BCn}}{b{dCb}}}DBh}{{{b{BD`}}{b{dCb}}}DBh}{{{b{BDb}}{b{dCb}}}DBh}{{{b{BDd}}{b{dCb}}}DBh}{{{b{BDf}}{b{dCb}}}DBh}{{{b{BDh}}{b{dCb}}}DBh}{{{b{BDj}}{b{dCb}}}DBh}{{{b{BDl}}{b{dCb}}}DBh}{{{b{BDn}}{b{dCb}}}DBh}{{{b{BE`}}{b{dCb}}}DBh}{{{b{BEb}}{b{dCb}}}DBh}{{{b{BEd}}{b{dCb}}}DBh}{{{b{BEf}}{b{dCb}}}DBh}{{{b{BEh}}{b{dCb}}}DBh}{{{b{BEj}}{b{dCb}}}DBh}{{{b{BEl}}{b{dCb}}}DBh}{{{b{BEn}}{b{dCb}}}DBh}{{{b{BF`}}{b{dCb}}}DBh}{{{b{BFb}}{b{dCb}}}DBh}{{{b{BFd}}{b{dCb}}}DBh}{{{b{BFf}}{b{dCb}}}DBh}{{{b{BFh}}{b{dCb}}}DBh}{{{b{BFj}}{b{dCb}}}DBh}{{{b{BFl}}{b{dCb}}}DBh}{{{b{BFn}}{b{dCb}}}DBh}{{{b{BG`}}{b{dCb}}}DBh}{{{b{BGb}}{b{dCb}}}DBh}{{{b{BGd}}{b{dCb}}}DBh}{{{b{BGf}}{b{dCb}}}DBh}{{{b{BGh}}{b{dCb}}}DBh}{{{b{BGj}}{b{dCb}}}DBh}{{{b{BGl}}{b{dCb}}}DBh}{{{b{BGn}}{b{dCb}}}DBh}{{{b{BH`}}{b{dCb}}}DBh}{{{b{BHb}}{b{dCb}}}DBh}{{{b{BHd}}{b{dCb}}}DBh}{{{b{BHf}}{b{dCb}}}DBh}{{{b{BHh}}{b{dCb}}}DBh}{{{b{BHj}}{b{dCb}}}DBh}{{{b{BHl}}{b{dCb}}}DBh}{{{b{BHn}}{b{dCb}}}DBh}{{{b{BI`}}{b{dCb}}}DBh}{{{b{BIb}}{b{dCb}}}DBh}{{{b{BId}}{b{dCb}}}DBh}{{{b{BIf}}{b{dCb}}}DBh}{{{b{BIh}}{b{dCb}}}DBh}{{{b{BIj}}{b{dCb}}}DBh}{{{b{BIl}}{b{dCb}}}DBh}{{{b{BIn}}{b{dCb}}}DBh}{{{b{BJ`}}{b{dCb}}}DBh}{{{b{BJb}}{b{dCb}}}DBh}{{{b{BJd}}{b{dCb}}}DBh}{{{b{BJf}}{b{dCb}}}DBh}{{{b{BJh}}{b{dCb}}}DBh}{{{b{BJj}}{b{dCb}}}DBh}{{{b{BJl}}{b{dCb}}}DBh}{{{b{BJn}}{b{dCb}}}DBh}{{{b{BK`}}{b{dCb}}}DBh}{{{b{BKb}}{b{dCb}}}DBh}{{{b{BKd}}{b{dCb}}}DBh}{{{b{BKf}}{b{dCb}}}DBh}{{{b{BKh}}{b{dCb}}}DBh}{{{b{BKj}}{b{dCb}}}DBh}{{{b{BKl}}{b{dCb}}}DBh}{{{b{BKn}}{b{dCb}}}DBh}{{{b{BL`}}{b{dCb}}}DBh}{{{b{BLb}}{b{dCb}}}DBh}{{{b{BLd}}{b{dCb}}}DBh}{{{b{BLf}}{b{dCb}}}DBh}{{{b{BLh}}{b{dCb}}}DBh}{{{b{BLj}}{b{dCb}}}DBh}{{{b{BLl}}{b{dCb}}}DBh}{{{b{BLn}}{b{dCb}}}DBh}{{{b{BM`}}{b{dCb}}}DBh}{{{b{BMb}}{b{dCb}}}DBh}{{{b{BMd}}{b{dCb}}}DBh}{{{b{BMf}}{b{dCb}}}DBh}{{{b{BMh}}{b{dCb}}}DBh}{{{b{BMj}}{b{dCb}}}DBh}{{{b{BMl}}{b{dCb}}}DBh}{{{b{BMn}}{b{dCb}}}DBh}{{{b{Dl}}{b{dCb}}}DBh}0000{{{b{BN`}}{b{dCb}}}DBh}{{{b{BNb}}{b{dCb}}}DBh}{{{b{Dn}}{b{dCb}}}DBh}0000{{{b{E`}}{b{dCb}}}DBh}0000{{{b{BNd}}{b{dCb}}}DBh}{{{b{BNf}}{b{dCb}}}DBh}{{{b{BNh}}{b{dCb}}}DBh}{{{b{BNj}}{b{dCb}}}DBh}{{{b{BNl}}{b{dCb}}}DBh}{{{b{BNn}}{b{dCb}}}DBh}{{{b{BO`}}{b{dCb}}}DBh}{{{b{BOb}}{b{dCb}}}DBh}{{{b{Eb}}{b{dCb}}}DBh}0000{{{b{BOd}}{b{dCb}}}DBh}{{{b{BOf}}{b{dCb}}}DBh}{{{b{BOh}}{b{dCb}}}DBh}{{{b{Ed}}{b{dCb}}}DBh}0000{{{b{BOj}}{b{dCb}}}DBh}{{{b{BOl}}{b{dCb}}}DBh}{{{b{BOn}}{b{dCb}}}DBh}{{{b{C@`}}{b{dCb}}}DBh}{{{b{C@b}}{b{dCb}}}DBh}{{{b{C@d}}{b{dCb}}}DBh}{{{b{C@f}}{b{dCb}}}DBh}{{{b{C@h}}{b{dCb}}}DBh}{{{b{C@j}}{b{dCb}}}DBh}{{{b{C@l}}{b{dCb}}}DBh}{{{b{Ef}}{b{dCb}}}DBh}0000{{{b{C@n}}{b{dCb}}}DBh}{{{b{CA`}}{b{dCb}}}DBh}{{{b{CAb}}{b{dCb}}}DBh}{{{b{CAd}}{b{dCb}}}DBh}{{{b{CAf}}{b{dCb}}}DBh}{{{b{CAh}}{b{dCb}}}DBh}{{{b{CAj}}{b{dCb}}}DBh}{{{b{CAl}}{b{dCb}}}DBh}{{{b{Eh}}{b{dCb}}}DBh}0000{{{b{CAn}}{b{dCb}}}DBh}{{{b{CB`}}{b{dCb}}}DBh}{{{b{CBb}}{b{dCb}}}DBh}{{{b{CBd}}{b{dCb}}}DBh}{{{b{CBf}}{b{dCb}}}DBh}{{{b{CBh}}{b{dCb}}}DBh}{{{b{CBj}}{b{dCb}}}DBh}{{{b{CBl}}{b{dCb}}}DBh}{{{b{CBn}}{b{dCb}}}DBh}{{{b{Ej}}{b{dCb}}}DBh}0000{{{b{CC`}}{b{dCb}}}DBh}{{{b{CCb}}{b{dCb}}}DBh}{{{b{El}}{b{dCb}}}DBh}0000{{{b{CCd}}{b{dCb}}}DBh}{{{b{CCf}}{b{dCb}}}DBh}{{{b{CCh}}{b{dCb}}}DBh}{{{b{CCj}}{b{dCb}}}DBh}{{{b{En}}{b{dCb}}}DBh}0000{{{b{CCl}}{b{dCb}}}DBh}{{{b{F`}}{b{dCb}}}DBh}0000{{{b{CCn}}{b{dCb}}}DBh}{{{b{CD`}}{b{dCb}}}DBh}{{{b{Fb}}{b{dCb}}}DBh}0000{{{b{CDb}}{b{dCb}}}DBh}{{{b{CDd}}{b{dCb}}}DBh}{{{b{CDf}}{b{dCb}}}DBh}{{{b{CDh}}{b{dCb}}}DBh}{{{b{CDj}}{b{dCb}}}DBh}{{{b{CDl}}{b{dCb}}}DBh}{{{b{CDn}}{b{dCb}}}DBh}{{{b{CE`}}{b{dCb}}}DBh}{{{b{CEb}}{b{dCb}}}DBh}{{{b{CEd}}{b{dCb}}}DBh}{{{b{CEf}}{b{dCb}}}DBh}{{{b{CEh}}{b{dCb}}}DBh}{{{b{Fd}}{b{dCb}}}DBh}0000{{{b{CEj}}{b{dCb}}}DBh}{{{b{CEl}}{b{dCb}}}DBh}{{{b{CEn}}{b{dCb}}}DBh}{{{b{CF`}}{b{dCb}}}DBh}{{{b{CFb}}{b{dCb}}}DBh}{{{b{CFd}}{b{dCb}}}DBh}{{{b{CFf}}{b{dCb}}}DBh}{{{b{Ff}}{b{dCb}}}DBh}0000{{{b{CFh}}{b{dCb}}}DBh}{{{b{CFj}}{b{dCb}}}DBh}{{{b{Fh}}{b{dCb}}}DBh}0000{{{b{CFl}}{b{dCb}}}DBh}{{{b{Fj}}{b{dCb}}}DBh}0000{{{b{CFn}}{b{dCb}}}DBh}{{{b{CG`}}{b{dCb}}}DBh}{{{b{CGb}}{b{dCb}}}DBh}{{{b{CGd}}{b{dCb}}}DBh}{{{b{CGf}}{b{dCb}}}DBh}{{{b{Fl}}{b{dCb}}}DBh}0000{{{b{CGh}}{b{dCb}}}DBh}{{{b{CGj}}{b{dCb}}}DBh}{{{b{CGl}}{b{dCb}}}DBh}{{{b{CGn}}{b{dCb}}}DBh}{{{b{CH`}}{b{dCb}}}DBh}{{{b{CHb}}{b{dCb}}}DBh}{{{b{Fn}}{b{dCb}}}DBh}0000{{{b{CHd}}{b{dCb}}}DBh}{{{b{CHf}}{b{dCb}}}DBh}{{{b{CHh}}{b{dCb}}}DBh}{{{b{CHj}}{b{dCb}}}DBh}{{{b{CHl}}{b{dCb}}}DBh}{{{b{CHn}}{b{dCb}}}DBh}{{{b{CI`}}{b{dCb}}}DBh}{{{b{CIb}}{b{dCb}}}DBh}{{{b{CId}}{b{dCb}}}DBh}{{{b{CIf}}{b{dCb}}}DBh}{{{b{CIh}}{b{dCb}}}DBh}{{{b{CIj}}{b{dCb}}}DBh}{{{b{CIl}}{b{dCb}}}DBh}{{{b{CIn}}{b{dCb}}}DBh}{{{b{CJ`}}{b{dCb}}}DBh}{{{b{CJb}}{b{dCb}}}DBh}{{{b{G`}}{b{dCb}}}DBh}0000{{{b{Gb}}{b{dCb}}}DBh}0000{{{b{CJd}}{b{dCb}}}DBh}{{{b{CJf}}{b{dCb}}}DBh}{{{b{CJh}}{b{dCb}}}DBh}{{{b{CJj}}{b{dCb}}}DBh}{{{b{CJl}}{b{dCb}}}DBh}{{{b{CJn}}{b{dCb}}}DBh}{{{b{CK`}}{b{dCb}}}DBh}{{{b{Gd}}{b{dCb}}}DBh}0000{{{b{CKb}}{b{dCb}}}DBh}{{{b{CKd}}{b{dCb}}}DBh}{{{b{CKf}}{b{dCb}}}DBh}{{{b{CKh}}{b{dCb}}}DBh}{{{b{CKj}}{b{dCb}}}DBh}{{{b{CKl}}{b{dCb}}}DBh}{{{b{CKn}}{b{dCb}}}DBh}{{{b{CL`}}{b{dCb}}}DBh}{{{b{Gf}}{b{dCb}}}DBh}0000{{{b{CLb}}{b{dCb}}}DBh}{{{b{Gh}}{b{dCb}}}DBh}0000{{{b{CLd}}{b{dCb}}}DBh}{{{b{CLf}}{b{dCb}}}DBh}{{{b{CLh}}{b{dCb}}}DBh}{{{b{CLj}}{b{dCb}}}DBh}{{{b{CLl}}{b{dCb}}}DBh}{{{b{CLn}}{b{dCb}}}DBh}{{{b{Gj}}{b{dCb}}}DBh}0000{{{b{CM`}}{b{dCb}}}DBh}{{{b{CMb}}{b{dCb}}}DBh}{{{b{Gl}}{b{dCb}}}DBh}0000{{{b{CMd}}{b{dCb}}}DBh}{{{b{CMf}}{b{dCb}}}DBh}{{{b{CMh}}{b{dCb}}}DBh}{{{b{CMj}}{b{dCb}}}DBh}{{{b{Gn}}{b{dCb}}}DBh}0000{{{b{CMl}}{b{dCb}}}DBh}{{{b{CMn}}{b{dCb}}}DBh}{{{b{H`}}{b{dCb}}}DBh}0000{{{b{CN`}}{b{dCb}}}DBh}{{{b{CNb}}{b{dCb}}}DBh}{{{b{CNd}}{b{dCb}}}DBh}{{{b{CNf}}{b{dCb}}}DBh}{{{b{Hb}}{b{dCb}}}DBh}0000{{{b{Hd}}{b{dCb}}}DBh}0000{{{b{CNh}}{b{dCb}}}DBh}{{{b{CNj}}{b{dCb}}}DBh}{{{b{CNl}}{b{dCb}}}DBh}{{{b{CNn}}{b{dCb}}}DBh}{{{b{CO`}}{b{dCb}}}DBh}{{{b{Hf}}{b{dCb}}}DBh}0000{{{b{COb}}{b{dCb}}}DBh}{{{b{COd}}{b{dCb}}}DBh}{{{b{COf}}{b{dCb}}}DBh}{{{b{COh}}{b{dCb}}}DBh}{{{b{COj}}{b{dCb}}}DBh}{{{b{Hh}}{b{dCb}}}DBh}0000{{{b{COl}}{b{dCb}}}DBh}{{{b{COn}}{b{dCb}}}DBh}{{{b{D@`}}{b{dCb}}}DBh}{{{b{D@b}}{b{dCb}}}DBh}{{{b{D@d}}{b{dCb}}}DBh}{{{b{D@f}}{b{dCb}}}DBh}{{{b{D@h}}{b{dCb}}}DBh}{{{b{D@j}}{b{dCb}}}DBh}{{{b{Hj}}{b{dCb}}}DBh}0000{{{b{D@l}}{b{dCb}}}DBh}{{{b{D@n}}{b{dCb}}}DBh}{{{b{DA`}}{b{dCb}}}DBh}{{{b{DAb}}{b{dCb}}}DBh}{{{b{DAd}}{b{dCb}}}DBh}{{{b{DAf}}{b{dCb}}}DBh}{{{b{DAh}}{b{dCb}}}DBh}{{{b{DAj}}{b{dCb}}}DBh}{{{b{DAl}}{b{dCb}}}DBh}{{{b{DAn}}{b{dCb}}}DBh}{{{b{DB`}}{b{dCb}}}DBh}```````````````````{cc{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{Hl{{DBj{Dl}}}}{j{{DBj{Dn}}}}{j{{DBj{E`}}}}{j{{DBj{Eb}}}}{f{{DBj{Ed}}}}{Bf{{DBj{Ef}}}}{Bf{{DBj{Eh}}}}{j{{DBj{Ej}}}}{f{{DBj{El}}}}{Hl{{DBj{En}}}}{Bf{{DBj{F`}}}}{f{{DBj{Fb}}}}{j{{DBj{Fd}}}}{f{{DBj{Ff}}}}{j{{DBj{Fh}}}}{f{{DBj{Fj}}}}{j{{DBj{Fl}}}}{f{{DBj{Fn}}}}{f{{DBj{G`}}}}{Bf{{DBj{Gb}}}}{j{{DBj{Gd}}}}{Bf{{DBj{Gf}}}}{j{{DBj{Gh}}}}{Bf{{DBj{Gj}}}}{j{{DBj{Gl}}}}{j{{DBj{Gn}}}}{j{{DBj{H`}}}}{f{{DBj{Hb}}}}{j{{DBj{Hd}}}}{Bf{{DBj{Hf}}}}{f{{DBj{Hh}}}}{f{{DBj{Hj}}}}{HlDl}{jDn}{jE`}{jEb}{fEd}{BfEf}{BfEh}{jEj}{fEl}{HlEn}{BfF`}{fFb}{jFd}{fFf}{jFh}{fFj}{jFl}{fFn}{fG`}{BfGb}{jGd}{BfGf}{jGh}{BfGj}{jGl}{jGn}{jH`}{fHb}{jHd}{BfHf}{fHh}{fHj}{HlDl}{jDn}{jE`}{jEb}{fEd}{BfEf}{BfEh}{jEj}{fEl}{HlEn}{BfF`}{fFb}{jFd}{fFf}{jFh}{fFj}{jFl}{fFn}{fG`}{BfGb}{jGd}{BfGf}{jGh}{BfGj}{jGl}{jGn}{jH`}{fHb}{jHd}{BfHf}{fHh}{fHj}{DBl{{DBj{BN`}}}}{DBl{{DBj{BNb}}}}{DBl{{DBj{BNd}}}}{DBl{{DBj{BNf}}}}{DBl{{DBj{BNh}}}}{DBl{{DBj{BNj}}}}{DBl{{DBj{BNl}}}}{DBl{{DBj{BNn}}}}{DBl{{DBj{BO`}}}}{DBl{{DBj{BOb}}}}{DBl{{DBj{BOd}}}}{DBl{{DBj{BOf}}}}{DBl{{DBj{BOh}}}}{DBl{{DBj{BOj}}}}{DBl{{DBj{BOl}}}}{DBl{{DBj{BOn}}}}{DBl{{DBj{C@`}}}}{DBl{{DBj{C@b}}}}{DBl{{DBj{C@d}}}}{DBl{{DBj{C@f}}}}{DBl{{DBj{C@h}}}}{DBl{{DBj{C@j}}}}{DBl{{DBj{C@l}}}}{DBl{{DBj{C@n}}}}{DBl{{DBj{CA`}}}}{DBl{{DBj{CAb}}}}{DBl{{DBj{CAd}}}}{DBl{{DBj{CAf}}}}{DBl{{DBj{CAh}}}}{DBl{{DBj{CAj}}}}{DBl{{DBj{CAl}}}}{DBl{{DBj{CAn}}}}{DBl{{DBj{CB`}}}}{DBl{{DBj{CBb}}}}{DBl{{DBj{CBd}}}}{DBl{{DBj{CBf}}}}{DBl{{DBj{CBh}}}}{DBl{{DBj{CBj}}}}{DBl{{DBj{CBl}}}}{DBl{{DBj{CBn}}}}{DBl{{DBj{CC`}}}}{DBl{{DBj{CCb}}}}{DBl{{DBj{CCd}}}}{DBl{{DBj{CCf}}}}{DBl{{DBj{CCh}}}}{DBl{{DBj{CCj}}}}{DBl{{DBj{CCl}}}}{DBl{{DBj{CCn}}}}{DBl{{DBj{CD`}}}}{DBl{{DBj{CDb}}}}{DBl{{DBj{CDd}}}}{DBl{{DBj{CDf}}}}{DBl{{DBj{CDh}}}}{DBl{{DBj{CDj}}}}{DBl{{DBj{CDl}}}}{DBl{{DBj{CDn}}}}{DBl{{DBj{CE`}}}}{DBl{{DBj{CEb}}}}{DBl{{DBj{CEd}}}}{DBl{{DBj{CEf}}}}{DBl{{DBj{CEh}}}}{DBl{{DBj{CEj}}}}{DBl{{DBj{CEl}}}}{DBl{{DBj{CEn}}}}{DBl{{DBj{CF`}}}}{DBl{{DBj{CFb}}}}{DBl{{DBj{CFd}}}}{DBl{{DBj{CFf}}}}{DBl{{DBj{CFh}}}}{DBl{{DBj{CFj}}}}{DBl{{DBj{CFl}}}}{DBl{{DBj{CFn}}}}{DBl{{DBj{CG`}}}}{DBl{{DBj{CGb}}}}{DBl{{DBj{CGd}}}}{DBl{{DBj{CGf}}}}{DBl{{DBj{CGh}}}}{DBl{{DBj{CGj}}}}{DBl{{DBj{CGl}}}}{DBl{{DBj{CGn}}}}{DBl{{DBj{CH`}}}}{DBl{{DBj{CHb}}}}{DBl{{DBj{CHd}}}}{DBl{{DBj{CHf}}}}{DBl{{DBj{CHh}}}}{DBl{{DBj{CHj}}}}{DBl{{DBj{CHl}}}}{DBl{{DBj{CHn}}}}{DBl{{DBj{CI`}}}}{DBl{{DBj{CIb}}}}{DBl{{DBj{CId}}}}{DBl{{DBj{CIf}}}}{DBl{{DBj{CIh}}}}{DBl{{DBj{CIj}}}}{DBl{{DBj{CIl}}}}{DBl{{DBj{CIn}}}}{DBl{{DBj{CJ`}}}}{DBl{{DBj{CJb}}}}{DBl{{DBj{CJd}}}}{DBl{{DBj{CJf}}}}{DBl{{DBj{CJh}}}}{DBl{{DBj{CJj}}}}{DBl{{DBj{CJl}}}}{DBl{{DBj{CJn}}}}{DBl{{DBj{CK`}}}}{DBl{{DBj{CKb}}}}{DBl{{DBj{CKd}}}}{DBl{{DBj{CKf}}}}{DBl{{DBj{CKh}}}}{DBl{{DBj{CKj}}}}{DBl{{DBj{CKl}}}}{DBl{{DBj{CKn}}}}{DBl{{DBj{CL`}}}}{DBl{{DBj{CLb}}}}{DBl{{DBj{CLd}}}}{DBl{{DBj{CLf}}}}{DBl{{DBj{CLh}}}}{DBl{{DBj{CLj}}}}{DBl{{DBj{CLl}}}}{DBl{{DBj{CLn}}}}{DBl{{DBj{CM`}}}}{DBl{{DBj{CMb}}}}{DBl{{DBj{CMd}}}}{DBl{{DBj{CMf}}}}{DBl{{DBj{CMh}}}}{DBl{{DBj{CMj}}}}{DBl{{DBj{CMl}}}}{DBl{{DBj{CMn}}}}{DBl{{DBj{CN`}}}}{DBl{{DBj{CNb}}}}{DBl{{DBj{CNd}}}}{DBl{{DBj{CNf}}}}{DBl{{DBj{CNh}}}}{DBl{{DBj{CNj}}}}{DBl{{DBj{CNl}}}}{DBl{{DBj{CNn}}}}{DBl{{DBj{CO`}}}}{DBl{{DBj{COb}}}}{DBl{{DBj{COd}}}}{DBl{{DBj{COf}}}}{DBl{{DBj{COh}}}}{DBl{{DBj{COj}}}}{DBl{{DBj{COl}}}}{DBl{{DBj{COn}}}}{DBl{{DBj{D@`}}}}{DBl{{DBj{D@b}}}}{DBl{{DBj{D@d}}}}{DBl{{DBj{D@f}}}}{DBl{{DBj{D@h}}}}{DBl{{DBj{D@j}}}}{DBl{{DBj{D@l}}}}{DBl{{DBj{D@n}}}}{DBl{{DBj{DA`}}}}{DBl{{DBj{DAb}}}}{DBl{{DBj{DAd}}}}{DBl{{DBj{DAf}}}}{DBl{{DBj{DAh}}}}{DBl{{DBj{DAj}}}}{DBl{{DBj{DAl}}}}{DBl{{DBj{DAn}}}}{DBl{{DBj{DB`}}}}{cDl{{DBf{}{{DBd{Dl}}}}}}{cDn{{DBf{}{{DBd{Dn}}}}}}{cE`{{DBf{}{{DBd{E`}}}}}}{cEb{{DBf{}{{DBd{Eb}}}}}}{cEd{{DBf{}{{DBd{Ed}}}}}}{cEf{{DBf{}{{DBd{Ef}}}}}}{cEh{{DBf{}{{DBd{Eh}}}}}}{cEj{{DBf{}{{DBd{Ej}}}}}}{cEl{{DBf{}{{DBd{El}}}}}}{cEn{{DBf{}{{DBd{En}}}}}}{cF`{{DBf{}{{DBd{F`}}}}}}{cFb{{DBf{}{{DBd{Fb}}}}}}{cFd{{DBf{}{{DBd{Fd}}}}}}{cFf{{DBf{}{{DBd{Ff}}}}}}{cFh{{DBf{}{{DBd{Fh}}}}}}{cFj{{DBf{}{{DBd{Fj}}}}}}{cFl{{DBf{}{{DBd{Fl}}}}}}{cFn{{DBf{}{{DBd{Fn}}}}}}{cG`{{DBf{}{{DBd{G`}}}}}}{cGb{{DBf{}{{DBd{Gb}}}}}}{cGd{{DBf{}{{DBd{Gd}}}}}}{cGf{{DBf{}{{DBd{Gf}}}}}}{cGh{{DBf{}{{DBd{Gh}}}}}}{cGj{{DBf{}{{DBd{Gj}}}}}}{cGl{{DBf{}{{DBd{Gl}}}}}}{cGn{{DBf{}{{DBd{Gn}}}}}}{cH`{{DBf{}{{DBd{H`}}}}}}{cHb{{DBf{}{{DBd{Hb}}}}}}{cHd{{DBf{}{{DBd{Hd}}}}}}{cHf{{DBf{}{{DBd{Hf}}}}}}{cHh{{DBf{}{{DBd{Hh}}}}}}{cHj{{DBf{}{{DBd{Hj}}}}}}{Hl{{DBj{BN`}}}}{Hl{{DBj{BNb}}}}{Hl{{DBj{BNd}}}}{Hl{{DBj{BNf}}}}{Hl{{DBj{BNh}}}}{Hl{{DBj{BNj}}}}{Hl{{DBj{BNl}}}}{Hl{{DBj{BNn}}}}{Hl{{DBj{BO`}}}}{Hl{{DBj{BOb}}}}{Hl{{DBj{BOd}}}}{Hl{{DBj{BOf}}}}{Hl{{DBj{BOh}}}}{Hl{{DBj{BOj}}}}{Hl{{DBj{BOl}}}}{Hl{{DBj{BOn}}}}{Hl{{DBj{C@`}}}}{Hl{{DBj{C@b}}}}{Hl{{DBj{C@d}}}}{Hl{{DBj{C@f}}}}{Hl{{DBj{C@h}}}}{Hl{{DBj{C@j}}}}{Hl{{DBj{C@l}}}}{Hl{{DBj{C@n}}}}{Hl{{DBj{CA`}}}}{Hl{{DBj{CAb}}}}{Hl{{DBj{CAd}}}}{Hl{{DBj{CAf}}}}{Hl{{DBj{CAh}}}}{Hl{{DBj{CAj}}}}{Hl{{DBj{CAl}}}}{Hl{{DBj{CAn}}}}{Hl{{DBj{CB`}}}}{Hl{{DBj{CBb}}}}{Hl{{DBj{CBd}}}}{Hl{{DBj{CBf}}}}{Hl{{DBj{CBh}}}}{Hl{{DBj{CBj}}}}{Hl{{DBj{CBl}}}}{Hl{{DBj{CBn}}}}{Hl{{DBj{CC`}}}}{Hl{{DBj{CCb}}}}{Hl{{DBj{CCd}}}}{Hl{{DBj{CCf}}}}{Hl{{DBj{CCh}}}}{Hl{{DBj{CCj}}}}{Hl{{DBj{CCl}}}}{Hl{{DBj{CCn}}}}{Hl{{DBj{CD`}}}}{Hl{{DBj{CDb}}}}{Hl{{DBj{CDd}}}}{Hl{{DBj{CDf}}}}{Hl{{DBj{CDh}}}}{Hl{{DBj{CDj}}}}{Hl{{DBj{CDl}}}}{Hl{{DBj{CDn}}}}{Hl{{DBj{CE`}}}}{Hl{{DBj{CEb}}}}{Hl{{DBj{CEd}}}}{Hl{{DBj{CEf}}}}{Hl{{DBj{CEh}}}}{Hl{{DBj{CEj}}}}{Hl{{DBj{CEl}}}}{Hl{{DBj{CEn}}}}{Hl{{DBj{CF`}}}}{Hl{{DBj{CFb}}}}{Hl{{DBj{CFd}}}}{Hl{{DBj{CFf}}}}{Hl{{DBj{CFh}}}}{Hl{{DBj{CFj}}}}{Hl{{DBj{CFl}}}}{Hl{{DBj{CFn}}}}{Hl{{DBj{CG`}}}}{Hl{{DBj{CGb}}}}{Hl{{DBj{CGd}}}}{Hl{{DBj{CGf}}}}{Hl{{DBj{CGh}}}}{Hl{{DBj{CGj}}}}{Hl{{DBj{CGl}}}}{Hl{{DBj{CGn}}}}{Hl{{DBj{CH`}}}}{Hl{{DBj{CHb}}}}{Hl{{DBj{CHd}}}}{Hl{{DBj{CHf}}}}{Hl{{DBj{CHh}}}}{Hl{{DBj{CHj}}}}{Hl{{DBj{CHl}}}}{Hl{{DBj{CHn}}}}{Hl{{DBj{CI`}}}}{Hl{{DBj{CIb}}}}{Hl{{DBj{CId}}}}{Hl{{DBj{CIf}}}}{Hl{{DBj{CIh}}}}{Hl{{DBj{CIj}}}}{Hl{{DBj{CIl}}}}{Hl{{DBj{CIn}}}}{Hl{{DBj{CJ`}}}}{Hl{{DBj{CJb}}}}{Hl{{DBj{CJd}}}}{Hl{{DBj{CJf}}}}{Hl{{DBj{CJh}}}}{Hl{{DBj{CJj}}}}{Hl{{DBj{CJl}}}}{Hl{{DBj{CJn}}}}{Hl{{DBj{CK`}}}}{Hl{{DBj{CKb}}}}{Hl{{DBj{CKd}}}}{Hl{{DBj{CKf}}}}{Hl{{DBj{CKh}}}}{Hl{{DBj{CKj}}}}{Hl{{DBj{CKl}}}}{Hl{{DBj{CKn}}}}{Hl{{DBj{CL`}}}}{Hl{{DBj{CLb}}}}{Hl{{DBj{CLd}}}}{Hl{{DBj{CLf}}}}{Hl{{DBj{CLh}}}}{Hl{{DBj{CLj}}}}{Hl{{DBj{CLl}}}}{Hl{{DBj{CLn}}}}{Hl{{DBj{CM`}}}}{Hl{{DBj{CMb}}}}{Hl{{DBj{CMd}}}}{Hl{{DBj{CMf}}}}{Hl{{DBj{CMh}}}}{Hl{{DBj{CMj}}}}{Hl{{DBj{CMl}}}}{Hl{{DBj{CMn}}}}{Hl{{DBj{CN`}}}}{Hl{{DBj{CNb}}}}{Hl{{DBj{CNd}}}}{Hl{{DBj{CNf}}}}{Hl{{DBj{CNh}}}}{Hl{{DBj{CNj}}}}{Hl{{DBj{CNl}}}}{Hl{{DBj{CNn}}}}{Hl{{DBj{CO`}}}}{Hl{{DBj{COb}}}}{Hl{{DBj{COd}}}}{Hl{{DBj{COf}}}}{Hl{{DBj{COh}}}}{Hl{{DBj{COj}}}}{Hl{{DBj{COl}}}}{Hl{{DBj{COn}}}}{Hl{{DBj{D@`}}}}{Hl{{DBj{D@b}}}}{Hl{{DBj{D@d}}}}{Hl{{DBj{D@f}}}}{Hl{{DBj{D@h}}}}{Hl{{DBj{D@j}}}}{Hl{{DBj{D@l}}}}{Hl{{DBj{D@n}}}}{Hl{{DBj{DA`}}}}{Hl{{DBj{DAb}}}}{Hl{{DBj{DAd}}}}{Hl{{DBj{DAf}}}}{Hl{{DBj{DAh}}}}{Hl{{DBj{DAj}}}}{Hl{{DBj{DAl}}}}{Hl{{DBj{DAn}}}}{Hl{{DBj{DB`}}}}```````````````````````````````````````{{{b{Dl}}{b{dc}}}AjDBn}{{{b{Dn}}{b{dc}}}AjDBn}{{{b{E`}}{b{dc}}}AjDBn}{{{b{Eb}}{b{dc}}}AjDBn}{{{b{Ed}}{b{dc}}}AjDBn}{{{b{Ef}}{b{dc}}}AjDBn}{{{b{Eh}}{b{dc}}}AjDBn}{{{b{Ej}}{b{dc}}}AjDBn}{{{b{El}}{b{dc}}}AjDBn}{{{b{En}}{b{dc}}}AjDBn}{{{b{F`}}{b{dc}}}AjDBn}{{{b{Fb}}{b{dc}}}AjDBn}{{{b{Fd}}{b{dc}}}AjDBn}{{{b{Ff}}{b{dc}}}AjDBn}{{{b{Fh}}{b{dc}}}AjDBn}{{{b{Fj}}{b{dc}}}AjDBn}{{{b{Fl}}{b{dc}}}AjDBn}{{{b{Fn}}{b{dc}}}AjDBn}{{{b{G`}}{b{dc}}}AjDBn}{{{b{Gb}}{b{dc}}}AjDBn}{{{b{Gd}}{b{dc}}}AjDBn}{{{b{Gf}}{b{dc}}}AjDBn}{{{b{Gh}}{b{dc}}}AjDBn}{{{b{Gj}}{b{dc}}}AjDBn}{{{b{Gl}}{b{dc}}}AjDBn}{{{b{Gn}}{b{dc}}}AjDBn}{{{b{H`}}{b{dc}}}AjDBn}{{{b{Hb}}{b{dc}}}AjDBn}{{{b{Hd}}{b{dc}}}AjDBn}{{{b{Hf}}{b{dc}}}AjDBn}{{{b{Hh}}{b{dc}}}AjDBn}{{{b{Hj}}{b{dc}}}AjDBn}`````````````````````````````````````````````````````````````````````````````{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}````````````````{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}{{{b{Dl}}Dl}C`}{{{b{Dn}}Dn}C`}{{{b{E`}}E`}C`}{{{b{Eb}}Eb}C`}{{{b{Ed}}Ed}C`}{{{b{Ef}}Ef}C`}{{{b{Eh}}Eh}C`}{{{b{Ej}}Ej}C`}{{{b{El}}El}C`}{{{b{En}}En}C`}{{{b{F`}}F`}C`}{{{b{Fb}}Fb}C`}{{{b{Fd}}Fd}C`}{{{b{Ff}}Ff}C`}{{{b{Fh}}Fh}C`}{{{b{Fj}}Fj}C`}{{{b{Fl}}Fl}C`}{{{b{Fn}}Fn}C`}{{{b{G`}}G`}C`}{{{b{Gb}}Gb}C`}{{{b{Gd}}Gd}C`}{{{b{Gf}}Gf}C`}{{{b{Gh}}Gh}C`}{{{b{Gj}}Gj}C`}{{{b{Gl}}Gl}C`}{{{b{Gn}}Gn}C`}{{{b{H`}}H`}C`}{{{b{Hb}}Hb}C`}{{{b{Hd}}Hd}C`}{{{b{Hf}}Hf}C`}{{{b{Hh}}Hh}C`}{{{b{Hj}}Hj}C`}`{ce{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{Dl}}}C`}{{{b{Dn}}}C`}{{{b{E`}}}C`}{{{b{Eb}}}C`}{{{b{Ed}}}C`}{{{b{Ef}}}C`}{{{b{Eh}}}C`}{{{b{Ej}}}C`}{{{b{El}}}C`}{{{b{En}}}C`}{{{b{F`}}}C`}{{{b{Fb}}}C`}{{{b{Fd}}}C`}{{{b{Ff}}}C`}{{{b{Fh}}}C`}{{{b{Fj}}}C`}{{{b{Fl}}}C`}{{{b{Fn}}}C`}{{{b{G`}}}C`}{{{b{Gb}}}C`}{{{b{Gd}}}C`}{{{b{Gf}}}C`}{{{b{Gh}}}C`}{{{b{Gj}}}C`}{{{b{Gl}}}C`}{{{b{Gn}}}C`}{{{b{H`}}}C`}{{{b{Hb}}}C`}{{{b{Hd}}}C`}{{{b{Hf}}}C`}{{{b{Hh}}}C`}{{{b{Hj}}}C`}{{{b{Dl}}}C`}{{{b{Dn}}}C`}{{{b{E`}}}C`}{{{b{Eb}}}C`}{{{b{Ed}}}C`}{{{b{Ef}}}C`}{{{b{Eh}}}C`}{{{b{Ej}}}C`}{{{b{El}}}C`}{{{b{En}}}C`}{{{b{F`}}}C`}{{{b{Fb}}}C`}{{{b{Fd}}}C`}{{{b{Ff}}}C`}{{{b{Fh}}}C`}{{{b{Fj}}}C`}{{{b{Fl}}}C`}{{{b{Fn}}}C`}{{{b{G`}}}C`}{{{b{Gb}}}C`}{{{b{Gd}}}C`}{{{b{Gf}}}C`}{{{b{Gh}}}C`}{{{b{Gj}}}C`}{{{b{Gl}}}C`}{{{b{Gn}}}C`}{{{b{H`}}}C`}{{{b{Hb}}}C`}{{{b{Hd}}}C`}{{{b{Hf}}}C`}{{{b{Hh}}}C`}{{{b{Hj}}}C`}````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{Hn}}}Bf}`{{{b{Al}}}{{Bd{Bf{b{Al}}}}}}{{{b{Hn}}}{{b{Al}}}}`````````````````````````````````````````````````````{DlDl}{DnDn}{E`E`}{EbEb}{EdEd}{EfEf}{EhEh}{EjEj}{ElEl}{EnEn}{F`F`}{FbFb}{FdFd}{FfFf}{FhFh}{FjFj}{FlFl}{FnFn}{G`G`}{GbGb}{GdGd}{GfGf}{GhGh}{GjGj}{GlGl}{GnGn}{H`H`}{HbHb}{HdHd}{HfHf}{HhHh}{HjHj}``````````````````````````````````````````````````````````````````````````````````````````````````````````````{{AbBf{b{{h{f}}}}}{{Bd{HnBl}}}}{{{b{Dl}}{b{Dl}}}{{DBj{DBb}}}}{{{b{Dn}}{b{Dn}}}{{DBj{DBb}}}}{{{b{E`}}{b{E`}}}{{DBj{DBb}}}}{{{b{Eb}}{b{Eb}}}{{DBj{DBb}}}}{{{b{Ed}}{b{Ed}}}{{DBj{DBb}}}}{{{b{Ef}}{b{Ef}}}{{DBj{DBb}}}}{{{b{Eh}}{b{Eh}}}{{DBj{DBb}}}}{{{b{Ej}}{b{Ej}}}{{DBj{DBb}}}}{{{b{El}}{b{El}}}{{DBj{DBb}}}}{{{b{En}}{b{En}}}{{DBj{DBb}}}}{{{b{F`}}{b{F`}}}{{DBj{DBb}}}}{{{b{Fb}}{b{Fb}}}{{DBj{DBb}}}}{{{b{Fd}}{b{Fd}}}{{DBj{DBb}}}}{{{b{Ff}}{b{Ff}}}{{DBj{DBb}}}}{{{b{Fh}}{b{Fh}}}{{DBj{DBb}}}}{{{b{Fj}}{b{Fj}}}{{DBj{DBb}}}}{{{b{Fl}}{b{Fl}}}{{DBj{DBb}}}}{{{b{Fn}}{b{Fn}}}{{DBj{DBb}}}}{{{b{G`}}{b{G`}}}{{DBj{DBb}}}}{{{b{Gb}}{b{Gb}}}{{DBj{DBb}}}}{{{b{Gd}}{b{Gd}}}{{DBj{DBb}}}}{{{b{Gf}}{b{Gf}}}{{DBj{DBb}}}}{{{b{Gh}}{b{Gh}}}{{DBj{DBb}}}}{{{b{Gj}}{b{Gj}}}{{DBj{DBb}}}}{{{b{Gl}}{b{Gl}}}{{DBj{DBb}}}}{{{b{Gn}}{b{Gn}}}{{DBj{DBb}}}}{{{b{H`}}{b{H`}}}{{DBj{DBb}}}}{{{b{Hb}}{b{Hb}}}{{DBj{DBb}}}}{{{b{Hd}}{b{Hd}}}{{DBj{DBb}}}}{{{b{Hf}}{b{Hf}}}{{DBj{DBb}}}}{{{b{Hh}}{b{Hh}}}{{DBj{DBb}}}}{{{b{Hj}}{b{Hj}}}{{DBj{DBb}}}}``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{Hn}}Ab{b{d{h{f}}}}}D`}{{{b{I`}}Ab{b{d{h{f}}}}}D`}{{{b{Ib}}Ab{b{d{h{f}}}}}D`}{{{b{Id}}Ab{b{d{h{f}}}}}D`}{{{b{If}}Ab{b{d{h{f}}}}}D`}{{{b{Ih}}Ab{b{d{h{f}}}}}D`}{{{b{Ij}}Ab{b{d{h{f}}}}}D`}{{{b{Il}}Ab{b{d{h{f}}}}}D`}{{{b{In}}Ab{b{d{h{f}}}}}D`}{{{b{J`}}Ab{b{d{h{f}}}}}D`}{{{b{Jb}}Ab{b{d{h{f}}}}}D`}{{{b{Jd}}Ab{b{d{h{f}}}}}D`}{{{b{Jf}}Ab{b{d{h{f}}}}}D`}{{{b{Jh}}Ab{b{d{h{f}}}}}D`}{{{b{Jj}}Ab{b{d{h{f}}}}}D`}{{{b{Jl}}Ab{b{d{h{f}}}}}D`}{{{b{Jn}}Ab{b{d{h{f}}}}}D`}{{{b{K`}}Ab{b{d{h{f}}}}}D`}{{{b{Kb}}Ab{b{d{h{f}}}}}D`}{{{b{Kd}}Ab{b{d{h{f}}}}}D`}{{{b{Kf}}Ab{b{d{h{f}}}}}D`}{{{b{Kh}}Ab{b{d{h{f}}}}}D`}{{{b{Kj}}Ab{b{d{h{f}}}}}D`}{{{b{Kl}}Ab{b{d{h{f}}}}}D`}{{{b{Kn}}Ab{b{d{h{f}}}}}D`}{{{b{L`}}Ab{b{d{h{f}}}}}D`}{{{b{Lb}}Ab{b{d{h{f}}}}}D`}{{{b{Ld}}Ab{b{d{h{f}}}}}D`}{{{b{Lf}}Ab{b{d{h{f}}}}}D`}{{{b{Lh}}Ab{b{d{h{f}}}}}D`}{{{b{Lj}}Ab{b{d{h{f}}}}}D`}{{{b{Ll}}Ab{b{d{h{f}}}}}D`}{{{b{Ln}}Ab{b{d{h{f}}}}}D`}{{{b{M`}}Ab{b{d{h{f}}}}}D`}{{{b{Mb}}Ab{b{d{h{f}}}}}D`}{{{b{Md}}Ab{b{d{h{f}}}}}D`}{{{b{Mf}}Ab{b{d{h{f}}}}}D`}{{{b{Mh}}Ab{b{d{h{f}}}}}D`}{{{b{Mj}}Ab{b{d{h{f}}}}}D`}{{{b{Ml}}Ab{b{d{h{f}}}}}D`}{{{b{Mn}}Ab{b{d{h{f}}}}}D`}{{{b{N`}}Ab{b{d{h{f}}}}}D`}{{{b{Nb}}Ab{b{d{h{f}}}}}D`}{{{b{Nd}}Ab{b{d{h{f}}}}}D`}{{{b{Nf}}Ab{b{d{h{f}}}}}D`}{{{b{Nh}}Ab{b{d{h{f}}}}}D`}{{{b{Nj}}Ab{b{d{h{f}}}}}D`}{{{b{Nl}}Ab{b{d{h{f}}}}}D`}{{{b{Nn}}Ab{b{d{h{f}}}}}D`}{{{b{O`}}Ab{b{d{h{f}}}}}D`}{{{b{Ob}}Ab{b{d{h{f}}}}}D`}{{{b{Od}}Ab{b{d{h{f}}}}}D`}{{{b{Of}}Ab{b{d{h{f}}}}}D`}{{{b{Oh}}Ab{b{d{h{f}}}}}D`}{{{b{Oj}}Ab{b{d{h{f}}}}}D`}{{{b{Ol}}Ab{b{d{h{f}}}}}D`}{{{b{On}}Ab{b{d{h{f}}}}}D`}{{{b{A@`}}Ab{b{d{h{f}}}}}D`}{{{b{A@b}}Ab{b{d{h{f}}}}}D`}{{{b{A@d}}Ab{b{d{h{f}}}}}D`}{{{b{A@f}}Ab{b{d{h{f}}}}}D`}{{{b{A@h}}Ab{b{d{h{f}}}}}D`}{{{b{A@j}}Ab{b{d{h{f}}}}}D`}{{{b{A@l}}Ab{b{d{h{f}}}}}D`}{{{b{A@n}}Ab{b{d{h{f}}}}}D`}{{{b{AA`}}Ab{b{d{h{f}}}}}D`}{{{b{AAb}}Ab{b{d{h{f}}}}}D`}{{{b{AAd}}Ab{b{d{h{f}}}}}D`}{{{b{AAf}}Ab{b{d{h{f}}}}}D`}{{{b{AAh}}Ab{b{d{h{f}}}}}D`}{{{b{AAj}}Ab{b{d{h{f}}}}}D`}{{{b{AAl}}Ab{b{d{h{f}}}}}D`}{{{b{AAn}}Ab{b{d{h{f}}}}}D`}{{{b{AB`}}Ab{b{d{h{f}}}}}D`}{{{b{ABb}}Ab{b{d{h{f}}}}}D`}{{{b{ABd}}Ab{b{d{h{f}}}}}D`}{{{b{ABf}}Ab{b{d{h{f}}}}}D`}{{{b{ABh}}Ab{b{d{h{f}}}}}D`}{{{b{ABj}}Ab{b{d{h{f}}}}}D`}{{{b{ABl}}Ab{b{d{h{f}}}}}D`}{{{b{ABn}}Ab{b{d{h{f}}}}}D`}{{{b{AC`}}Ab{b{d{h{f}}}}}D`}{{{b{ACb}}Ab{b{d{h{f}}}}}D`}{{{b{ACd}}Ab{b{d{h{f}}}}}D`}{{{b{ACf}}Ab{b{d{h{f}}}}}D`}{{{b{ACh}}Ab{b{d{h{f}}}}}D`}{{{b{ACj}}Ab{b{d{h{f}}}}}D`}{{{b{ACl}}Ab{b{d{h{f}}}}}D`}{{{b{ACn}}Ab{b{d{h{f}}}}}D`}{{{b{AD`}}Ab{b{d{h{f}}}}}D`}{{{b{ADb}}Ab{b{d{h{f}}}}}D`}{{{b{ADd}}Ab{b{d{h{f}}}}}D`}{{{b{ADf}}Ab{b{d{h{f}}}}}D`}{{{b{ADh}}Ab{b{d{h{f}}}}}D`}{{{b{ADj}}Ab{b{d{h{f}}}}}D`}{{{b{ADl}}Ab{b{d{h{f}}}}}D`}{{{b{ADn}}Ab{b{d{h{f}}}}}D`}{{{b{AE`}}Ab{b{d{h{f}}}}}D`}{{{b{AEb}}Ab{b{d{h{f}}}}}D`}{{{b{AEd}}Ab{b{d{h{f}}}}}D`}{{{b{AEf}}Ab{b{d{h{f}}}}}D`}{{{b{AEh}}Ab{b{d{h{f}}}}}D`}{{{b{AEj}}Ab{b{d{h{f}}}}}D`}{{{b{AEl}}Ab{b{d{h{f}}}}}D`}{{{b{AEn}}Ab{b{d{h{f}}}}}D`}{{{b{AF`}}Ab{b{d{h{f}}}}}D`}{{{b{AFb}}Ab{b{d{h{f}}}}}D`}{{{b{AFd}}Ab{b{d{h{f}}}}}D`}{{{b{AFf}}Ab{b{d{h{f}}}}}D`}{{{b{AFh}}Ab{b{d{h{f}}}}}D`}{{{b{AFj}}Ab{b{d{h{f}}}}}D`}{{{b{AFl}}Ab{b{d{h{f}}}}}D`}{{{b{AFn}}Ab{b{d{h{f}}}}}D`}{{{b{AG`}}Ab{b{d{h{f}}}}}D`}{{{b{AGb}}Ab{b{d{h{f}}}}}D`}{{{b{AGd}}Ab{b{d{h{f}}}}}D`}{{{b{AGf}}Ab{b{d{h{f}}}}}D`}{{{b{AGh}}Ab{b{d{h{f}}}}}D`}{{{b{AGj}}Ab{b{d{h{f}}}}}D`}{{{b{AGl}}Ab{b{d{h{f}}}}}D`}{{{b{AGn}}Ab{b{d{h{f}}}}}D`}{{{b{AH`}}Ab{b{d{h{f}}}}}D`}{{{b{AHb}}Ab{b{d{h{f}}}}}D`}{{{b{AHd}}Ab{b{d{h{f}}}}}D`}{{{b{AHf}}Ab{b{d{h{f}}}}}D`}{{{b{AHh}}Ab{b{d{h{f}}}}}D`}{{{b{AHj}}Ab{b{d{h{f}}}}}D`}{{{b{AHl}}Ab{b{d{h{f}}}}}D`}{{{b{AHn}}Ab{b{d{h{f}}}}}D`}{{{b{AI`}}Ab{b{d{h{f}}}}}D`}{{{b{AIb}}Ab{b{d{h{f}}}}}D`}{{{b{AId}}Ab{b{d{h{f}}}}}D`}{{{b{AIf}}Ab{b{d{h{f}}}}}D`}{{{b{AIh}}Ab{b{d{h{f}}}}}D`}{{{b{AIj}}Ab{b{d{h{f}}}}}D`}{{{b{AIl}}Ab{b{d{h{f}}}}}D`}{{{b{AIn}}Ab{b{d{h{f}}}}}D`}{{{b{AJ`}}Ab{b{d{h{f}}}}}D`}{{{b{AJb}}Ab{b{d{h{f}}}}}D`}{{{b{AJd}}Ab{b{d{h{f}}}}}D`}{{{b{AJf}}Ab{b{d{h{f}}}}}D`}{{{b{AJh}}Ab{b{d{h{f}}}}}D`}{{{b{AJj}}Ab{b{d{h{f}}}}}D`}{{{b{AJl}}Ab{b{d{h{f}}}}}D`}{{{b{AJn}}Ab{b{d{h{f}}}}}D`}{{{b{AK`}}Ab{b{d{h{f}}}}}D`}{{{b{AKb}}Ab{b{d{h{f}}}}}D`}{{{b{AKd}}Ab{b{d{h{f}}}}}D`}{{{b{AKf}}Ab{b{d{h{f}}}}}D`}{{{b{AKh}}Ab{b{d{h{f}}}}}D`}{{{b{AKj}}Ab{b{d{h{f}}}}}D`}{{{b{AKl}}Ab{b{d{h{f}}}}}D`}{{{b{AKn}}Ab{b{d{h{f}}}}}D`}{{{b{AL`}}Ab{b{d{h{f}}}}}D`}{{{b{ALb}}Ab{b{d{h{f}}}}}D`}{{{b{ALd}}Ab{b{d{h{f}}}}}D`}{{{b{ALf}}Ab{b{d{h{f}}}}}D`}{{{b{ALh}}Ab{b{d{h{f}}}}}D`}{{{b{ALj}}Ab{b{d{h{f}}}}}D`}{{{b{ALl}}Ab{b{d{h{f}}}}}D`}{{{b{ALn}}Ab{b{d{h{f}}}}}D`}{{{b{AM`}}Ab{b{d{h{f}}}}}D`}{{{b{AMb}}Ab{b{d{h{f}}}}}D`}{{{b{AMd}}Ab{b{d{h{f}}}}}D`}{{{b{AMf}}Ab{b{d{h{f}}}}}D`}{{{b{AMh}}Ab{b{d{h{f}}}}}D`}{{{b{AMj}}Ab{b{d{h{f}}}}}D`}{{{b{AMl}}Ab{b{d{h{f}}}}}D`}{{{b{AMn}}Ab{b{d{h{f}}}}}D`}{{{b{AN`}}Ab{b{d{h{f}}}}}D`}{{{b{ANb}}Ab{b{d{h{f}}}}}D`}{{{b{ANd}}Ab{b{d{h{f}}}}}D`}{{{b{ANf}}Ab{b{d{h{f}}}}}D`}{{{b{ANh}}Ab{b{d{h{f}}}}}D`}{{{b{ANj}}Ab{b{d{h{f}}}}}D`}{{{b{ANl}}Ab{b{d{h{f}}}}}D`}{{{b{ANn}}Ab{b{d{h{f}}}}}D`}{{{b{AO`}}Ab{b{d{h{f}}}}}D`}{{{b{AOb}}Ab{b{d{h{f}}}}}D`}{{{b{AOd}}Ab{b{d{h{f}}}}}D`}{{{b{AOf}}Ab{b{d{h{f}}}}}D`}{{{b{AOh}}Ab{b{d{h{f}}}}}D`}{{{b{AOj}}Ab{b{d{h{f}}}}}D`}{{{b{AOl}}Ab{b{d{h{f}}}}}D`}{{{b{AOn}}Ab{b{d{h{f}}}}}D`}{{{b{B@`}}Ab{b{d{h{f}}}}}D`}{{{b{B@b}}Ab{b{d{h{f}}}}}D`}{{{b{B@d}}Ab{b{d{h{f}}}}}D`}{{{b{B@f}}Ab{b{d{h{f}}}}}D`}{{{b{B@h}}Ab{b{d{h{f}}}}}D`}{{{b{B@j}}Ab{b{d{h{f}}}}}D`}{{{b{B@l}}Ab{b{d{h{f}}}}}D`}{{{b{B@n}}Ab{b{d{h{f}}}}}D`}{{{b{BA`}}Ab{b{d{h{f}}}}}D`}{{{b{BAb}}Ab{b{d{h{f}}}}}D`}{{{b{BAd}}Ab{b{d{h{f}}}}}D`}{{{b{BAf}}Ab{b{d{h{f}}}}}D`}{{{b{BAh}}Ab{b{d{h{f}}}}}D`}{{{b{BAj}}Ab{b{d{h{f}}}}}D`}{{{b{BAl}}Ab{b{d{h{f}}}}}D`}{{{b{BAn}}Ab{b{d{h{f}}}}}D`}{{{b{BB`}}Ab{b{d{h{f}}}}}D`}{{{b{BBb}}Ab{b{d{h{f}}}}}D`}{{{b{BBd}}Ab{b{d{h{f}}}}}D`}{{{b{BBf}}Ab{b{d{h{f}}}}}D`}{{{b{BBh}}Ab{b{d{h{f}}}}}D`}{{{b{BBj}}Ab{b{d{h{f}}}}}D`}{{{b{BBl}}Ab{b{d{h{f}}}}}D`}{{{b{BBn}}Ab{b{d{h{f}}}}}D`}{{{b{BC`}}Ab{b{d{h{f}}}}}D`}{{{b{BCb}}Ab{b{d{h{f}}}}}D`}{{{b{BCd}}Ab{b{d{h{f}}}}}D`}{{{b{BCf}}Ab{b{d{h{f}}}}}D`}{{{b{BCh}}Ab{b{d{h{f}}}}}D`}{{{b{BCj}}Ab{b{d{h{f}}}}}D`}{{{b{BCl}}Ab{b{d{h{f}}}}}D`}{{{b{BCn}}Ab{b{d{h{f}}}}}D`}{{{b{BD`}}Ab{b{d{h{f}}}}}D`}{{{b{BDb}}Ab{b{d{h{f}}}}}D`}{{{b{BDd}}Ab{b{d{h{f}}}}}D`}{{{b{BDf}}Ab{b{d{h{f}}}}}D`}{{{b{BDh}}Ab{b{d{h{f}}}}}D`}{{{b{BDj}}Ab{b{d{h{f}}}}}D`}{{{b{BDl}}Ab{b{d{h{f}}}}}D`}{{{b{BDn}}Ab{b{d{h{f}}}}}D`}{{{b{BE`}}Ab{b{d{h{f}}}}}D`}{{{b{BEb}}Ab{b{d{h{f}}}}}D`}{{{b{BEd}}Ab{b{d{h{f}}}}}D`}{{{b{BEf}}Ab{b{d{h{f}}}}}D`}{{{b{BEh}}Ab{b{d{h{f}}}}}D`}{{{b{BEj}}Ab{b{d{h{f}}}}}D`}{{{b{BEl}}Ab{b{d{h{f}}}}}D`}{{{b{BEn}}Ab{b{d{h{f}}}}}D`}{{{b{BF`}}Ab{b{d{h{f}}}}}D`}{{{b{BFb}}Ab{b{d{h{f}}}}}D`}{{{b{BFd}}Ab{b{d{h{f}}}}}D`}{{{b{BFf}}Ab{b{d{h{f}}}}}D`}{{{b{BFh}}Ab{b{d{h{f}}}}}D`}{{{b{BFj}}Ab{b{d{h{f}}}}}D`}{{{b{BFl}}Ab{b{d{h{f}}}}}D`}{{{b{BFn}}Ab{b{d{h{f}}}}}D`}{{{b{BG`}}Ab{b{d{h{f}}}}}D`}{{{b{BGb}}Ab{b{d{h{f}}}}}D`}{{{b{BGd}}Ab{b{d{h{f}}}}}D`}{{{b{BGf}}Ab{b{d{h{f}}}}}D`}{{{b{BGh}}Ab{b{d{h{f}}}}}D`}{{{b{BGj}}Ab{b{d{h{f}}}}}D`}{{{b{BGl}}Ab{b{d{h{f}}}}}D`}{{{b{BGn}}Ab{b{d{h{f}}}}}D`}{{{b{BH`}}Ab{b{d{h{f}}}}}D`}{{{b{BHb}}Ab{b{d{h{f}}}}}D`}{{{b{BHd}}Ab{b{d{h{f}}}}}D`}{{{b{BHf}}Ab{b{d{h{f}}}}}D`}{{{b{BHh}}Ab{b{d{h{f}}}}}D`}{{{b{BHj}}Ab{b{d{h{f}}}}}D`}{{{b{BHl}}Ab{b{d{h{f}}}}}D`}{{{b{BHn}}Ab{b{d{h{f}}}}}D`}{{{b{BI`}}Ab{b{d{h{f}}}}}D`}{{{b{BIb}}Ab{b{d{h{f}}}}}D`}{{{b{BId}}Ab{b{d{h{f}}}}}D`}{{{b{BIf}}Ab{b{d{h{f}}}}}D`}{{{b{BIh}}Ab{b{d{h{f}}}}}D`}{{{b{BIj}}Ab{b{d{h{f}}}}}D`}{{{b{BIl}}Ab{b{d{h{f}}}}}D`}{{{b{BIn}}Ab{b{d{h{f}}}}}D`}{{{b{BJ`}}Ab{b{d{h{f}}}}}D`}{{{b{BJb}}Ab{b{d{h{f}}}}}D`}{{{b{BJd}}Ab{b{d{h{f}}}}}D`}{{{b{BJf}}Ab{b{d{h{f}}}}}D`}{{{b{BJh}}Ab{b{d{h{f}}}}}D`}{{{b{BJj}}Ab{b{d{h{f}}}}}D`}{{{b{BJl}}Ab{b{d{h{f}}}}}D`}{{{b{BJn}}Ab{b{d{h{f}}}}}D`}{{{b{BK`}}Ab{b{d{h{f}}}}}D`}{{{b{BKb}}Ab{b{d{h{f}}}}}D`}{{{b{BKd}}Ab{b{d{h{f}}}}}D`}{{{b{BKf}}Ab{b{d{h{f}}}}}D`}{{{b{BKh}}Ab{b{d{h{f}}}}}D`}{{{b{BKj}}Ab{b{d{h{f}}}}}D`}{{{b{BKl}}Ab{b{d{h{f}}}}}D`}{{{b{BKn}}Ab{b{d{h{f}}}}}D`}{{{b{BL`}}Ab{b{d{h{f}}}}}D`}{{{b{BLb}}Ab{b{d{h{f}}}}}D`}{{{b{BLd}}Ab{b{d{h{f}}}}}D`}{{{b{BLf}}Ab{b{d{h{f}}}}}D`}{{{b{BLh}}Ab{b{d{h{f}}}}}D`}{{{b{BLj}}Ab{b{d{h{f}}}}}D`}{{{b{BLl}}Ab{b{d{h{f}}}}}D`}{{{b{BLn}}Ab{b{d{h{f}}}}}D`}{{{b{BM`}}Ab{b{d{h{f}}}}}D`}{{{b{BMb}}Ab{b{d{h{f}}}}}D`}{{{b{BMd}}Ab{b{d{h{f}}}}}D`}{{{b{BMf}}Ab{b{d{h{f}}}}}D`}{{{b{BMh}}Ab{b{d{h{f}}}}}D`}{{{b{BMj}}Ab{b{d{h{f}}}}}D`}{{{b{BMl}}Ab{b{d{h{f}}}}}D`}{{{b{BMn}}Ab{b{d{h{f}}}}}D`}`{{{b{Hn}}c}BdDd}{{{b{I`}}c}BdDd}{{{b{Ib}}c}BdDd}{{{b{Id}}c}BdDd}{{{b{If}}c}BdDd}{{{b{Ih}}c}BdDd}{{{b{Ij}}c}BdDd}{{{b{Il}}c}BdDd}{{{b{In}}c}BdDd}{{{b{J`}}c}BdDd}{{{b{Jb}}c}BdDd}{{{b{Jd}}c}BdDd}{{{b{Jf}}c}BdDd}{{{b{Jh}}c}BdDd}{{{b{Jj}}c}BdDd}{{{b{Jl}}c}BdDd}{{{b{Jn}}c}BdDd}{{{b{K`}}c}BdDd}{{{b{Kb}}c}BdDd}{{{b{Kd}}c}BdDd}{{{b{Kf}}c}BdDd}{{{b{Kh}}c}BdDd}{{{b{Kj}}c}BdDd}{{{b{Kl}}c}BdDd}{{{b{Kn}}c}BdDd}{{{b{L`}}c}BdDd}{{{b{Lb}}c}BdDd}{{{b{Ld}}c}BdDd}{{{b{Lf}}c}BdDd}{{{b{Lh}}c}BdDd}{{{b{Lj}}c}BdDd}{{{b{Ll}}c}BdDd}{{{b{Ln}}c}BdDd}{{{b{M`}}c}BdDd}{{{b{Mb}}c}BdDd}{{{b{Md}}c}BdDd}{{{b{Mf}}c}BdDd}{{{b{Mh}}c}BdDd}{{{b{Mj}}c}BdDd}{{{b{Ml}}c}BdDd}{{{b{Mn}}c}BdDd}{{{b{N`}}c}BdDd}{{{b{Nb}}c}BdDd}{{{b{Nd}}c}BdDd}{{{b{Nf}}c}BdDd}{{{b{Nh}}c}BdDd}{{{b{Nj}}c}BdDd}{{{b{Nl}}c}BdDd}{{{b{Nn}}c}BdDd}{{{b{O`}}c}BdDd}{{{b{Ob}}c}BdDd}{{{b{Od}}c}BdDd}{{{b{Of}}c}BdDd}{{{b{Oh}}c}BdDd}{{{b{Oj}}c}BdDd}{{{b{Ol}}c}BdDd}{{{b{On}}c}BdDd}{{{b{A@`}}c}BdDd}{{{b{A@b}}c}BdDd}{{{b{A@d}}c}BdDd}{{{b{A@f}}c}BdDd}{{{b{A@h}}c}BdDd}{{{b{A@j}}c}BdDd}{{{b{A@l}}c}BdDd}{{{b{A@n}}c}BdDd}{{{b{AA`}}c}BdDd}{{{b{AAb}}c}BdDd}{{{b{AAd}}c}BdDd}{{{b{AAf}}c}BdDd}{{{b{AAh}}c}BdDd}{{{b{AAj}}c}BdDd}{{{b{AAl}}c}BdDd}{{{b{AAn}}c}BdDd}{{{b{AB`}}c}BdDd}{{{b{ABb}}c}BdDd}{{{b{ABd}}c}BdDd}{{{b{ABf}}c}BdDd}{{{b{ABh}}c}BdDd}{{{b{ABj}}c}BdDd}{{{b{ABl}}c}BdDd}{{{b{ABn}}c}BdDd}{{{b{AC`}}c}BdDd}{{{b{ACb}}c}BdDd}{{{b{ACd}}c}BdDd}{{{b{ACf}}c}BdDd}{{{b{ACh}}c}BdDd}{{{b{ACj}}c}BdDd}{{{b{ACl}}c}BdDd}{{{b{ACn}}c}BdDd}{{{b{AD`}}c}BdDd}{{{b{ADb}}c}BdDd}{{{b{ADd}}c}BdDd}{{{b{ADf}}c}BdDd}{{{b{ADh}}c}BdDd}{{{b{ADj}}c}BdDd}{{{b{ADl}}c}BdDd}{{{b{ADn}}c}BdDd}{{{b{AE`}}c}BdDd}{{{b{AEb}}c}BdDd}{{{b{AEd}}c}BdDd}{{{b{AEf}}c}BdDd}{{{b{AEh}}c}BdDd}{{{b{AEj}}c}BdDd}{{{b{AEl}}c}BdDd}{{{b{AEn}}c}BdDd}{{{b{AF`}}c}BdDd}{{{b{AFb}}c}BdDd}{{{b{AFd}}c}BdDd}{{{b{AFf}}c}BdDd}{{{b{AFh}}c}BdDd}{{{b{AFj}}c}BdDd}{{{b{AFl}}c}BdDd}{{{b{AFn}}c}BdDd}{{{b{AG`}}c}BdDd}{{{b{AGb}}c}BdDd}{{{b{AGd}}c}BdDd}{{{b{AGf}}c}BdDd}{{{b{AGh}}c}BdDd}{{{b{AGj}}c}BdDd}{{{b{AGl}}c}BdDd}{{{b{AGn}}c}BdDd}{{{b{AH`}}c}BdDd}{{{b{AHb}}c}BdDd}{{{b{AHd}}c}BdDd}{{{b{AHf}}c}BdDd}{{{b{AHh}}c}BdDd}{{{b{AHj}}c}BdDd}{{{b{AHl}}c}BdDd}{{{b{AHn}}c}BdDd}{{{b{AI`}}c}BdDd}{{{b{AIb}}c}BdDd}{{{b{AId}}c}BdDd}{{{b{AIf}}c}BdDd}{{{b{AIh}}c}BdDd}{{{b{AIj}}c}BdDd}{{{b{AIl}}c}BdDd}{{{b{AIn}}c}BdDd}{{{b{AJ`}}c}BdDd}{{{b{AJb}}c}BdDd}{{{b{AJd}}c}BdDd}{{{b{AJf}}c}BdDd}{{{b{AJh}}c}BdDd}{{{b{AJj}}c}BdDd}{{{b{AJl}}c}BdDd}{{{b{AJn}}c}BdDd}{{{b{AK`}}c}BdDd}{{{b{AKb}}c}BdDd}{{{b{AKd}}c}BdDd}{{{b{AKf}}c}BdDd}{{{b{AKh}}c}BdDd}{{{b{AKj}}c}BdDd}{{{b{AKl}}c}BdDd}{{{b{AKn}}c}BdDd}{{{b{AL`}}c}BdDd}{{{b{ALb}}c}BdDd}{{{b{ALd}}c}BdDd}{{{b{ALf}}c}BdDd}{{{b{ALh}}c}BdDd}{{{b{ALj}}c}BdDd}{{{b{ALl}}c}BdDd}{{{b{ALn}}c}BdDd}{{{b{AM`}}c}BdDd}{{{b{AMb}}c}BdDd}{{{b{AMd}}c}BdDd}{{{b{AMf}}c}BdDd}{{{b{AMh}}c}BdDd}{{{b{AMj}}c}BdDd}{{{b{AMl}}c}BdDd}{{{b{AMn}}c}BdDd}{{{b{AN`}}c}BdDd}{{{b{ANb}}c}BdDd}{{{b{ANd}}c}BdDd}{{{b{ANf}}c}BdDd}{{{b{ANh}}c}BdDd}{{{b{ANj}}c}BdDd}{{{b{ANl}}c}BdDd}{{{b{ANn}}c}BdDd}{{{b{AO`}}c}BdDd}{{{b{AOb}}c}BdDd}{{{b{AOd}}c}BdDd}{{{b{AOf}}c}BdDd}{{{b{AOh}}c}BdDd}{{{b{AOj}}c}BdDd}{{{b{AOl}}c}BdDd}{{{b{AOn}}c}BdDd}{{{b{B@`}}c}BdDd}{{{b{B@b}}c}BdDd}{{{b{B@d}}c}BdDd}{{{b{B@f}}c}BdDd}{{{b{B@h}}c}BdDd}{{{b{B@j}}c}BdDd}{{{b{B@l}}c}BdDd}{{{b{B@n}}c}BdDd}{{{b{BA`}}c}BdDd}{{{b{BAb}}c}BdDd}{{{b{BAd}}c}BdDd}{{{b{BAf}}c}BdDd}{{{b{BAh}}c}BdDd}{{{b{BAj}}c}BdDd}{{{b{BAl}}c}BdDd}{{{b{BAn}}c}BdDd}{{{b{BB`}}c}BdDd}{{{b{BBb}}c}BdDd}{{{b{BBd}}c}BdDd}{{{b{BBf}}c}BdDd}{{{b{BBh}}c}BdDd}{{{b{BBj}}c}BdDd}{{{b{BBl}}c}BdDd}{{{b{BBn}}c}BdDd}{{{b{BC`}}c}BdDd}{{{b{BCb}}c}BdDd}{{{b{BCd}}c}BdDd}{{{b{BCf}}c}BdDd}{{{b{BCh}}c}BdDd}{{{b{BCj}}c}BdDd}{{{b{BCl}}c}BdDd}{{{b{BCn}}c}BdDd}{{{b{BD`}}c}BdDd}{{{b{BDb}}c}BdDd}{{{b{BDd}}c}BdDd}{{{b{BDf}}c}BdDd}{{{b{BDh}}c}BdDd}{{{b{BDj}}c}BdDd}{{{b{BDl}}c}BdDd}{{{b{BDn}}c}BdDd}{{{b{BE`}}c}BdDd}{{{b{BEb}}c}BdDd}{{{b{BEd}}c}BdDd}{{{b{BEf}}c}BdDd}{{{b{BEh}}c}BdDd}{{{b{BEj}}c}BdDd}{{{b{BEl}}c}BdDd}{{{b{BEn}}c}BdDd}{{{b{BF`}}c}BdDd}{{{b{BFb}}c}BdDd}{{{b{BFd}}c}BdDd}{{{b{BFf}}c}BdDd}{{{b{BFh}}c}BdDd}{{{b{BFj}}c}BdDd}{{{b{BFl}}c}BdDd}{{{b{BFn}}c}BdDd}{{{b{BG`}}c}BdDd}{{{b{BGb}}c}BdDd}{{{b{BGd}}c}BdDd}{{{b{BGf}}c}BdDd}{{{b{BGh}}c}BdDd}{{{b{BGj}}c}BdDd}{{{b{BGl}}c}BdDd}{{{b{BGn}}c}BdDd}{{{b{BH`}}c}BdDd}{{{b{BHb}}c}BdDd}{{{b{BHd}}c}BdDd}{{{b{BHf}}c}BdDd}{{{b{BHh}}c}BdDd}{{{b{BHj}}c}BdDd}{{{b{BHl}}c}BdDd}{{{b{BHn}}c}BdDd}{{{b{BI`}}c}BdDd}{{{b{BIb}}c}BdDd}{{{b{BId}}c}BdDd}{{{b{BIf}}c}BdDd}{{{b{BIh}}c}BdDd}{{{b{BIj}}c}BdDd}{{{b{BIl}}c}BdDd}{{{b{BIn}}c}BdDd}{{{b{BJ`}}c}BdDd}{{{b{BJb}}c}BdDd}{{{b{BJd}}c}BdDd}{{{b{BJf}}c}BdDd}{{{b{BJh}}c}BdDd}{{{b{BJj}}c}BdDd}{{{b{BJl}}c}BdDd}{{{b{BJn}}c}BdDd}{{{b{BK`}}c}BdDd}{{{b{BKb}}c}BdDd}{{{b{BKd}}c}BdDd}{{{b{BKf}}c}BdDd}{{{b{BKh}}c}BdDd}{{{b{BKj}}c}BdDd}{{{b{BKl}}c}BdDd}{{{b{BKn}}c}BdDd}{{{b{BL`}}c}BdDd}{{{b{BLb}}c}BdDd}{{{b{BLd}}c}BdDd}{{{b{BLf}}c}BdDd}{{{b{BLh}}c}BdDd}{{{b{BLj}}c}BdDd}{{{b{BLl}}c}BdDd}{{{b{BLn}}c}BdDd}{{{b{BM`}}c}BdDd}{{{b{BMb}}c}BdDd}{{{b{BMd}}c}BdDd}{{{b{BMf}}c}BdDd}{{{b{BMh}}c}BdDd}{{{b{BMj}}c}BdDd}{{{b{BMl}}c}BdDd}{{{b{BMn}}c}BdDd}{{{b{Dl}}c}BdDd}{{{b{BN`}}c}BdDd}{{{b{BNb}}c}BdDd}{{{b{Dn}}c}BdDd}{{{b{E`}}c}BdDd}{{{b{BNd}}c}BdDd}{{{b{BNf}}c}BdDd}{{{b{BNh}}c}BdDd}{{{b{BNj}}c}BdDd}{{{b{BNl}}c}BdDd}{{{b{BNn}}c}BdDd}{{{b{BO`}}c}BdDd}{{{b{BOb}}c}BdDd}{{{b{Eb}}c}BdDd}{{{b{BOd}}c}BdDd}{{{b{BOf}}c}BdDd}{{{b{BOh}}c}BdDd}{{{b{Ed}}c}BdDd}{{{b{BOj}}c}BdDd}{{{b{BOl}}c}BdDd}{{{b{BOn}}c}BdDd}{{{b{C@`}}c}BdDd}{{{b{C@b}}c}BdDd}{{{b{C@d}}c}BdDd}{{{b{C@f}}c}BdDd}{{{b{C@h}}c}BdDd}{{{b{C@j}}c}BdDd}{{{b{C@l}}c}BdDd}{{{b{Ef}}c}BdDd}{{{b{C@n}}c}BdDd}{{{b{CA`}}c}BdDd}{{{b{CAb}}c}BdDd}{{{b{CAd}}c}BdDd}{{{b{CAf}}c}BdDd}{{{b{CAh}}c}BdDd}{{{b{CAj}}c}BdDd}{{{b{CAl}}c}BdDd}{{{b{Eh}}c}BdDd}{{{b{CAn}}c}BdDd}{{{b{CB`}}c}BdDd}{{{b{CBb}}c}BdDd}{{{b{CBd}}c}BdDd}{{{b{CBf}}c}BdDd}{{{b{CBh}}c}BdDd}{{{b{CBj}}c}BdDd}{{{b{CBl}}c}BdDd}{{{b{CBn}}c}BdDd}{{{b{Ej}}c}BdDd}{{{b{CC`}}c}BdDd}{{{b{CCb}}c}BdDd}{{{b{El}}c}BdDd}{{{b{CCd}}c}BdDd}{{{b{CCf}}c}BdDd}{{{b{CCh}}c}BdDd}{{{b{CCj}}c}BdDd}{{{b{En}}c}BdDd}{{{b{CCl}}c}BdDd}{{{b{F`}}c}BdDd}{{{b{CCn}}c}BdDd}{{{b{CD`}}c}BdDd}{{{b{Fb}}c}BdDd}{{{b{CDb}}c}BdDd}{{{b{CDd}}c}BdDd}{{{b{CDf}}c}BdDd}{{{b{CDh}}c}BdDd}{{{b{CDj}}c}BdDd}{{{b{CDl}}c}BdDd}{{{b{CDn}}c}BdDd}{{{b{CE`}}c}BdDd}{{{b{CEb}}c}BdDd}{{{b{CEd}}c}BdDd}{{{b{CEf}}c}BdDd}{{{b{CEh}}c}BdDd}{{{b{Fd}}c}BdDd}{{{b{CEj}}c}BdDd}{{{b{CEl}}c}BdDd}{{{b{CEn}}c}BdDd}{{{b{CF`}}c}BdDd}{{{b{CFb}}c}BdDd}{{{b{CFd}}c}BdDd}{{{b{CFf}}c}BdDd}{{{b{Ff}}c}BdDd}{{{b{CFh}}c}BdDd}{{{b{CFj}}c}BdDd}{{{b{Fh}}c}BdDd}{{{b{CFl}}c}BdDd}{{{b{Fj}}c}BdDd}{{{b{CFn}}c}BdDd}{{{b{CG`}}c}BdDd}{{{b{CGb}}c}BdDd}{{{b{CGd}}c}BdDd}{{{b{CGf}}c}BdDd}{{{b{Fl}}c}BdDd}{{{b{CGh}}c}BdDd}{{{b{CGj}}c}BdDd}{{{b{CGl}}c}BdDd}{{{b{CGn}}c}BdDd}{{{b{CH`}}c}BdDd}{{{b{CHb}}c}BdDd}{{{b{Fn}}c}BdDd}{{{b{CHd}}c}BdDd}{{{b{CHf}}c}BdDd}{{{b{CHh}}c}BdDd}{{{b{CHj}}c}BdDd}{{{b{CHl}}c}BdDd}{{{b{CHn}}c}BdDd}{{{b{CI`}}c}BdDd}{{{b{CIb}}c}BdDd}{{{b{CId}}c}BdDd}{{{b{CIf}}c}BdDd}{{{b{CIh}}c}BdDd}{{{b{CIj}}c}BdDd}{{{b{CIl}}c}BdDd}{{{b{CIn}}c}BdDd}{{{b{CJ`}}c}BdDd}{{{b{CJb}}c}BdDd}{{{b{G`}}c}BdDd}{{{b{Gb}}c}BdDd}{{{b{CJd}}c}BdDd}{{{b{CJf}}c}BdDd}{{{b{CJh}}c}BdDd}{{{b{CJj}}c}BdDd}{{{b{CJl}}c}BdDd}{{{b{CJn}}c}BdDd}{{{b{CK`}}c}BdDd}{{{b{Gd}}c}BdDd}{{{b{CKb}}c}BdDd}{{{b{CKd}}c}BdDd}{{{b{CKf}}c}BdDd}{{{b{CKh}}c}BdDd}{{{b{CKj}}c}BdDd}{{{b{CKl}}c}BdDd}{{{b{CKn}}c}BdDd}{{{b{CL`}}c}BdDd}{{{b{Gf}}c}BdDd}{{{b{CLb}}c}BdDd}{{{b{Gh}}c}BdDd}{{{b{CLd}}c}BdDd}{{{b{CLf}}c}BdDd}{{{b{CLh}}c}BdDd}{{{b{CLj}}c}BdDd}{{{b{CLl}}c}BdDd}{{{b{CLn}}c}BdDd}{{{b{Gj}}c}BdDd}{{{b{CM`}}c}BdDd}{{{b{CMb}}c}BdDd}{{{b{Gl}}c}BdDd}{{{b{CMd}}c}BdDd}{{{b{CMf}}c}BdDd}{{{b{CMh}}c}BdDd}{{{b{CMj}}c}BdDd}{{{b{Gn}}c}BdDd}{{{b{CMl}}c}BdDd}{{{b{CMn}}c}BdDd}{{{b{H`}}c}BdDd}{{{b{CN`}}c}BdDd}{{{b{CNb}}c}BdDd}{{{b{CNd}}c}BdDd}{{{b{CNf}}c}BdDd}{{{b{Hb}}c}BdDd}{{{b{Hd}}c}BdDd}{{{b{CNh}}c}BdDd}{{{b{CNj}}c}BdDd}{{{b{CNl}}c}BdDd}{{{b{CNn}}c}BdDd}{{{b{CO`}}c}BdDd}{{{b{Hf}}c}BdDd}{{{b{COb}}c}BdDd}{{{b{COd}}c}BdDd}{{{b{COf}}c}BdDd}{{{b{COh}}c}BdDd}{{{b{COj}}c}BdDd}{{{b{Hh}}c}BdDd}{{{b{COl}}c}BdDd}{{{b{COn}}c}BdDd}{{{b{D@`}}c}BdDd}{{{b{D@b}}c}BdDd}{{{b{D@d}}c}BdDd}{{{b{D@f}}c}BdDd}{{{b{D@h}}c}BdDd}{{{b{D@j}}c}BdDd}{{{b{Hj}}c}BdDd}{{{b{D@l}}c}BdDd}{{{b{D@n}}c}BdDd}{{{b{DA`}}c}BdDd}{{{b{DAb}}c}BdDd}{{{b{DAd}}c}BdDd}{{{b{DAf}}c}BdDd}{{{b{DAh}}c}BdDd}{{{b{DAj}}c}BdDd}{{{b{DAl}}c}BdDd}{{{b{DAn}}c}BdDd}{{{b{DB`}}c}BdDd}`````````{{{b{dDl}}DlC`}Aj}{{{b{dDn}}DnC`}Aj}{{{b{dE`}}E`C`}Aj}{{{b{dEb}}EbC`}Aj}{{{b{dEd}}EdC`}Aj}{{{b{dEf}}EfC`}Aj}{{{b{dEh}}EhC`}Aj}{{{b{dEj}}EjC`}Aj}{{{b{dEl}}ElC`}Aj}{{{b{dEn}}EnC`}Aj}{{{b{dF`}}F`C`}Aj}{{{b{dFb}}FbC`}Aj}{{{b{dFd}}FdC`}Aj}{{{b{dFf}}FfC`}Aj}{{{b{dFh}}FhC`}Aj}{{{b{dFj}}FjC`}Aj}{{{b{dFl}}FlC`}Aj}{{{b{dFn}}FnC`}Aj}{{{b{dG`}}G`C`}Aj}{{{b{dGb}}GbC`}Aj}{{{b{dGd}}GdC`}Aj}{{{b{dGf}}GfC`}Aj}{{{b{dGh}}GhC`}Aj}{{{b{dGj}}GjC`}Aj}{{{b{dGl}}GlC`}Aj}{{{b{dGn}}GnC`}Aj}{{{b{dH`}}H`C`}Aj}{{{b{dHb}}HbC`}Aj}{{{b{dHd}}HdC`}Aj}{{{b{dHf}}HfC`}Aj}{{{b{dHh}}HhC`}Aj}{{{b{dHj}}HjC`}Aj}```````````````````````````````````````````````````````````````{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}`````{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{BN`}}}{{DBj{DBl}}}}{{{b{BNb}}}{{DBj{DBl}}}}{{{b{BNd}}}{{DBj{DBl}}}}{{{b{BNf}}}{{DBj{DBl}}}}{{{b{BNh}}}{{DBj{DBl}}}}{{{b{BNj}}}{{DBj{DBl}}}}{{{b{BNl}}}{{DBj{DBl}}}}{{{b{BNn}}}{{DBj{DBl}}}}{{{b{BO`}}}{{DBj{DBl}}}}{{{b{BOb}}}{{DBj{DBl}}}}{{{b{BOd}}}{{DBj{DBl}}}}{{{b{BOf}}}{{DBj{DBl}}}}{{{b{BOh}}}{{DBj{DBl}}}}{{{b{BOj}}}{{DBj{DBl}}}}{{{b{BOl}}}{{DBj{DBl}}}}{{{b{BOn}}}{{DBj{DBl}}}}{{{b{C@`}}}{{DBj{DBl}}}}{{{b{C@b}}}{{DBj{DBl}}}}{{{b{C@d}}}{{DBj{DBl}}}}{{{b{C@f}}}{{DBj{DBl}}}}{{{b{C@h}}}{{DBj{DBl}}}}{{{b{C@j}}}{{DBj{DBl}}}}{{{b{C@l}}}{{DBj{DBl}}}}{{{b{C@n}}}{{DBj{DBl}}}}{{{b{CA`}}}{{DBj{DBl}}}}{{{b{CAb}}}{{DBj{DBl}}}}{{{b{CAd}}}{{DBj{DBl}}}}{{{b{CAf}}}{{DBj{DBl}}}}{{{b{CAh}}}{{DBj{DBl}}}}{{{b{CAj}}}{{DBj{DBl}}}}{{{b{CAl}}}{{DBj{DBl}}}}{{{b{CAn}}}{{DBj{DBl}}}}{{{b{CB`}}}{{DBj{DBl}}}}{{{b{CBb}}}{{DBj{DBl}}}}{{{b{CBd}}}{{DBj{DBl}}}}{{{b{CBf}}}{{DBj{DBl}}}}{{{b{CBh}}}{{DBj{DBl}}}}{{{b{CBj}}}{{DBj{DBl}}}}{{{b{CBl}}}{{DBj{DBl}}}}{{{b{CBn}}}{{DBj{DBl}}}}{{{b{CC`}}}{{DBj{DBl}}}}{{{b{CCb}}}{{DBj{DBl}}}}{{{b{CCd}}}{{DBj{DBl}}}}{{{b{CCf}}}{{DBj{DBl}}}}{{{b{CCh}}}{{DBj{DBl}}}}{{{b{CCj}}}{{DBj{DBl}}}}{{{b{CCl}}}{{DBj{DBl}}}}{{{b{CCn}}}{{DBj{DBl}}}}{{{b{CD`}}}{{DBj{DBl}}}}{{{b{CDb}}}{{DBj{DBl}}}}{{{b{CDd}}}{{DBj{DBl}}}}{{{b{CDf}}}{{DBj{DBl}}}}{{{b{CDh}}}{{DBj{DBl}}}}{{{b{CDj}}}{{DBj{DBl}}}}{{{b{CDl}}}{{DBj{DBl}}}}{{{b{CDn}}}{{DBj{DBl}}}}{{{b{CE`}}}{{DBj{DBl}}}}{{{b{CEb}}}{{DBj{DBl}}}}{{{b{CEd}}}{{DBj{DBl}}}}{{{b{CEf}}}{{DBj{DBl}}}}{{{b{CEh}}}{{DBj{DBl}}}}{{{b{CEj}}}{{DBj{DBl}}}}{{{b{CEl}}}{{DBj{DBl}}}}{{{b{CEn}}}{{DBj{DBl}}}}{{{b{CF`}}}{{DBj{DBl}}}}{{{b{CFb}}}{{DBj{DBl}}}}{{{b{CFd}}}{{DBj{DBl}}}}{{{b{CFf}}}{{DBj{DBl}}}}{{{b{CFh}}}{{DBj{DBl}}}}{{{b{CFj}}}{{DBj{DBl}}}}{{{b{CFl}}}{{DBj{DBl}}}}{{{b{CFn}}}{{DBj{DBl}}}}{{{b{CG`}}}{{DBj{DBl}}}}{{{b{CGb}}}{{DBj{DBl}}}}{{{b{CGd}}}{{DBj{DBl}}}}{{{b{CGf}}}{{DBj{DBl}}}}{{{b{CGh}}}{{DBj{DBl}}}}{{{b{CGj}}}{{DBj{DBl}}}}{{{b{CGl}}}{{DBj{DBl}}}}{{{b{CGn}}}{{DBj{DBl}}}}{{{b{CH`}}}{{DBj{DBl}}}}{{{b{CHb}}}{{DBj{DBl}}}}{{{b{CHd}}}{{DBj{DBl}}}}{{{b{CHf}}}{{DBj{DBl}}}}{{{b{CHh}}}{{DBj{DBl}}}}{{{b{CHj}}}{{DBj{DBl}}}}{{{b{CHl}}}{{DBj{DBl}}}}{{{b{CHn}}}{{DBj{DBl}}}}{{{b{CI`}}}{{DBj{DBl}}}}{{{b{CIb}}}{{DBj{DBl}}}}{{{b{CId}}}{{DBj{DBl}}}}{{{b{CIf}}}{{DBj{DBl}}}}{{{b{CIh}}}{{DBj{DBl}}}}{{{b{CIj}}}{{DBj{DBl}}}}{{{b{CIl}}}{{DBj{DBl}}}}{{{b{CIn}}}{{DBj{DBl}}}}{{{b{CJ`}}}{{DBj{DBl}}}}{{{b{CJb}}}{{DBj{DBl}}}}{{{b{CJd}}}{{DBj{DBl}}}}{{{b{CJf}}}{{DBj{DBl}}}}{{{b{CJh}}}{{DBj{DBl}}}}{{{b{CJj}}}{{DBj{DBl}}}}{{{b{CJl}}}{{DBj{DBl}}}}{{{b{CJn}}}{{DBj{DBl}}}}{{{b{CK`}}}{{DBj{DBl}}}}{{{b{CKb}}}{{DBj{DBl}}}}{{{b{CKd}}}{{DBj{DBl}}}}{{{b{CKf}}}{{DBj{DBl}}}}{{{b{CKh}}}{{DBj{DBl}}}}{{{b{CKj}}}{{DBj{DBl}}}}{{{b{CKl}}}{{DBj{DBl}}}}{{{b{CKn}}}{{DBj{DBl}}}}{{{b{CL`}}}{{DBj{DBl}}}}{{{b{CLb}}}{{DBj{DBl}}}}{{{b{CLd}}}{{DBj{DBl}}}}{{{b{CLf}}}{{DBj{DBl}}}}{{{b{CLh}}}{{DBj{DBl}}}}{{{b{CLj}}}{{DBj{DBl}}}}{{{b{CLl}}}{{DBj{DBl}}}}{{{b{CLn}}}{{DBj{DBl}}}}{{{b{CM`}}}{{DBj{DBl}}}}{{{b{CMb}}}{{DBj{DBl}}}}{{{b{CMd}}}{{DBj{DBl}}}}{{{b{CMf}}}{{DBj{DBl}}}}{{{b{CMh}}}{{DBj{DBl}}}}{{{b{CMj}}}{{DBj{DBl}}}}{{{b{CMl}}}{{DBj{DBl}}}}{{{b{CMn}}}{{DBj{DBl}}}}{{{b{CN`}}}{{DBj{DBl}}}}{{{b{CNb}}}{{DBj{DBl}}}}{{{b{CNd}}}{{DBj{DBl}}}}{{{b{CNf}}}{{DBj{DBl}}}}{{{b{CNh}}}{{DBj{DBl}}}}{{{b{CNj}}}{{DBj{DBl}}}}{{{b{CNl}}}{{DBj{DBl}}}}{{{b{CNn}}}{{DBj{DBl}}}}{{{b{CO`}}}{{DBj{DBl}}}}{{{b{COb}}}{{DBj{DBl}}}}{{{b{COd}}}{{DBj{DBl}}}}{{{b{COf}}}{{DBj{DBl}}}}{{{b{COh}}}{{DBj{DBl}}}}{{{b{COj}}}{{DBj{DBl}}}}{{{b{COl}}}{{DBj{DBl}}}}{{{b{COn}}}{{DBj{DBl}}}}{{{b{D@`}}}{{DBj{DBl}}}}{{{b{D@b}}}{{DBj{DBl}}}}{{{b{D@d}}}{{DBj{DBl}}}}{{{b{D@f}}}{{DBj{DBl}}}}{{{b{D@h}}}{{DBj{DBl}}}}{{{b{D@j}}}{{DBj{DBl}}}}{{{b{D@l}}}{{DBj{DBl}}}}{{{b{D@n}}}{{DBj{DBl}}}}{{{b{DA`}}}{{DBj{DBl}}}}{{{b{DAb}}}{{DBj{DBl}}}}{{{b{DAd}}}{{DBj{DBl}}}}{{{b{DAf}}}{{DBj{DBl}}}}{{{b{DAh}}}{{DBj{DBl}}}}{{{b{DAj}}}{{DBj{DBl}}}}{{{b{DAl}}}{{DBj{DBl}}}}{{{b{DAn}}}{{DBj{DBl}}}}{{{b{DB`}}}{{DBj{DBl}}}}{{{b{c}}}e{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{BN`}}}{{DBj{Hl}}}}{{{b{BNb}}}{{DBj{Hl}}}}{{{b{BNd}}}{{DBj{Hl}}}}{{{b{BNf}}}{{DBj{Hl}}}}{{{b{BNh}}}{{DBj{Hl}}}}{{{b{BNj}}}{{DBj{Hl}}}}{{{b{BNl}}}{{DBj{Hl}}}}{{{b{BNn}}}{{DBj{Hl}}}}{{{b{BO`}}}{{DBj{Hl}}}}{{{b{BOb}}}{{DBj{Hl}}}}{{{b{BOd}}}{{DBj{Hl}}}}{{{b{BOf}}}{{DBj{Hl}}}}{{{b{BOh}}}{{DBj{Hl}}}}{{{b{BOj}}}{{DBj{Hl}}}}{{{b{BOl}}}{{DBj{Hl}}}}{{{b{BOn}}}{{DBj{Hl}}}}{{{b{C@`}}}{{DBj{Hl}}}}{{{b{C@b}}}{{DBj{Hl}}}}{{{b{C@d}}}{{DBj{Hl}}}}{{{b{C@f}}}{{DBj{Hl}}}}{{{b{C@h}}}{{DBj{Hl}}}}{{{b{C@j}}}{{DBj{Hl}}}}{{{b{C@l}}}{{DBj{Hl}}}}{{{b{C@n}}}{{DBj{Hl}}}}{{{b{CA`}}}{{DBj{Hl}}}}{{{b{CAb}}}{{DBj{Hl}}}}{{{b{CAd}}}{{DBj{Hl}}}}{{{b{CAf}}}{{DBj{Hl}}}}{{{b{CAh}}}{{DBj{Hl}}}}{{{b{CAj}}}{{DBj{Hl}}}}{{{b{CAl}}}{{DBj{Hl}}}}{{{b{CAn}}}{{DBj{Hl}}}}{{{b{CB`}}}{{DBj{Hl}}}}{{{b{CBb}}}{{DBj{Hl}}}}{{{b{CBd}}}{{DBj{Hl}}}}{{{b{CBf}}}{{DBj{Hl}}}}{{{b{CBh}}}{{DBj{Hl}}}}{{{b{CBj}}}{{DBj{Hl}}}}{{{b{CBl}}}{{DBj{Hl}}}}{{{b{CBn}}}{{DBj{Hl}}}}{{{b{CC`}}}{{DBj{Hl}}}}{{{b{CCb}}}{{DBj{Hl}}}}{{{b{CCd}}}{{DBj{Hl}}}}{{{b{CCf}}}{{DBj{Hl}}}}{{{b{CCh}}}{{DBj{Hl}}}}{{{b{CCj}}}{{DBj{Hl}}}}{{{b{CCl}}}{{DBj{Hl}}}}{{{b{CCn}}}{{DBj{Hl}}}}{{{b{CD`}}}{{DBj{Hl}}}}{{{b{CDb}}}{{DBj{Hl}}}}{{{b{CDd}}}{{DBj{Hl}}}}{{{b{CDf}}}{{DBj{Hl}}}}{{{b{CDh}}}{{DBj{Hl}}}}{{{b{CDj}}}{{DBj{Hl}}}}{{{b{CDl}}}{{DBj{Hl}}}}{{{b{CDn}}}{{DBj{Hl}}}}{{{b{CE`}}}{{DBj{Hl}}}}{{{b{CEb}}}{{DBj{Hl}}}}{{{b{CEd}}}{{DBj{Hl}}}}{{{b{CEf}}}{{DBj{Hl}}}}{{{b{CEh}}}{{DBj{Hl}}}}{{{b{CEj}}}{{DBj{Hl}}}}{{{b{CEl}}}{{DBj{Hl}}}}{{{b{CEn}}}{{DBj{Hl}}}}{{{b{CF`}}}{{DBj{Hl}}}}{{{b{CFb}}}{{DBj{Hl}}}}{{{b{CFd}}}{{DBj{Hl}}}}{{{b{CFf}}}{{DBj{Hl}}}}{{{b{CFh}}}{{DBj{Hl}}}}{{{b{CFj}}}{{DBj{Hl}}}}{{{b{CFl}}}{{DBj{Hl}}}}{{{b{CFn}}}{{DBj{Hl}}}}{{{b{CG`}}}{{DBj{Hl}}}}{{{b{CGb}}}{{DBj{Hl}}}}{{{b{CGd}}}{{DBj{Hl}}}}{{{b{CGf}}}{{DBj{Hl}}}}{{{b{CGh}}}{{DBj{Hl}}}}{{{b{CGj}}}{{DBj{Hl}}}}{{{b{CGl}}}{{DBj{Hl}}}}{{{b{CGn}}}{{DBj{Hl}}}}{{{b{CH`}}}{{DBj{Hl}}}}{{{b{CHb}}}{{DBj{Hl}}}}{{{b{CHd}}}{{DBj{Hl}}}}{{{b{CHf}}}{{DBj{Hl}}}}{{{b{CHh}}}{{DBj{Hl}}}}{{{b{CHj}}}{{DBj{Hl}}}}{{{b{CHl}}}{{DBj{Hl}}}}{{{b{CHn}}}{{DBj{Hl}}}}{{{b{CI`}}}{{DBj{Hl}}}}{{{b{CIb}}}{{DBj{Hl}}}}{{{b{CId}}}{{DBj{Hl}}}}{{{b{CIf}}}{{DBj{Hl}}}}{{{b{CIh}}}{{DBj{Hl}}}}{{{b{CIj}}}{{DBj{Hl}}}}{{{b{CIl}}}{{DBj{Hl}}}}{{{b{CIn}}}{{DBj{Hl}}}}{{{b{CJ`}}}{{DBj{Hl}}}}{{{b{CJb}}}{{DBj{Hl}}}}{{{b{CJd}}}{{DBj{Hl}}}}{{{b{CJf}}}{{DBj{Hl}}}}{{{b{CJh}}}{{DBj{Hl}}}}{{{b{CJj}}}{{DBj{Hl}}}}{{{b{CJl}}}{{DBj{Hl}}}}{{{b{CJn}}}{{DBj{Hl}}}}{{{b{CK`}}}{{DBj{Hl}}}}{{{b{CKb}}}{{DBj{Hl}}}}{{{b{CKd}}}{{DBj{Hl}}}}{{{b{CKf}}}{{DBj{Hl}}}}{{{b{CKh}}}{{DBj{Hl}}}}{{{b{CKj}}}{{DBj{Hl}}}}{{{b{CKl}}}{{DBj{Hl}}}}{{{b{CKn}}}{{DBj{Hl}}}}{{{b{CL`}}}{{DBj{Hl}}}}{{{b{CLb}}}{{DBj{Hl}}}}{{{b{CLd}}}{{DBj{Hl}}}}{{{b{CLf}}}{{DBj{Hl}}}}{{{b{CLh}}}{{DBj{Hl}}}}{{{b{CLj}}}{{DBj{Hl}}}}{{{b{CLl}}}{{DBj{Hl}}}}{{{b{CLn}}}{{DBj{Hl}}}}{{{b{CM`}}}{{DBj{Hl}}}}{{{b{CMb}}}{{DBj{Hl}}}}{{{b{CMd}}}{{DBj{Hl}}}}{{{b{CMf}}}{{DBj{Hl}}}}{{{b{CMh}}}{{DBj{Hl}}}}{{{b{CMj}}}{{DBj{Hl}}}}{{{b{CMl}}}{{DBj{Hl}}}}{{{b{CMn}}}{{DBj{Hl}}}}{{{b{CN`}}}{{DBj{Hl}}}}{{{b{CNb}}}{{DBj{Hl}}}}{{{b{CNd}}}{{DBj{Hl}}}}{{{b{CNf}}}{{DBj{Hl}}}}{{{b{CNh}}}{{DBj{Hl}}}}{{{b{CNj}}}{{DBj{Hl}}}}{{{b{CNl}}}{{DBj{Hl}}}}{{{b{CNn}}}{{DBj{Hl}}}}{{{b{CO`}}}{{DBj{Hl}}}}{{{b{COb}}}{{DBj{Hl}}}}{{{b{COd}}}{{DBj{Hl}}}}{{{b{COf}}}{{DBj{Hl}}}}{{{b{COh}}}{{DBj{Hl}}}}{{{b{COj}}}{{DBj{Hl}}}}{{{b{COl}}}{{DBj{Hl}}}}{{{b{COn}}}{{DBj{Hl}}}}{{{b{D@`}}}{{DBj{Hl}}}}{{{b{D@b}}}{{DBj{Hl}}}}{{{b{D@d}}}{{DBj{Hl}}}}{{{b{D@f}}}{{DBj{Hl}}}}{{{b{D@h}}}{{DBj{Hl}}}}{{{b{D@j}}}{{DBj{Hl}}}}{{{b{D@l}}}{{DBj{Hl}}}}{{{b{D@n}}}{{DBj{Hl}}}}{{{b{DA`}}}{{DBj{Hl}}}}{{{b{DAb}}}{{DBj{Hl}}}}{{{b{DAd}}}{{DBj{Hl}}}}{{{b{DAf}}}{{DBj{Hl}}}}{{{b{DAh}}}{{DBj{Hl}}}}{{{b{DAj}}}{{DBj{Hl}}}}{{{b{DAl}}}{{DBj{Hl}}}}{{{b{DAn}}}{{DBj{Hl}}}}{{{b{DB`}}}{{DBj{Hl}}}}{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}```````````{c{{Bd{e}}}{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`````````````````{{{b{c}}}Dh{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000````````````{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{cc{}}{{{b{dDC`}}}{{DCb{f}}}}{{{b{dDC`}}D`}{{b{{h{f}}}}}}{{{b{dDC`}}}DCd}{{{b{dDC`}}}DCf}{{{b{dDC`}}}DCh}{{{b{dDC`}}}DCj}0{{{b{dDC`}}}DBl}{{{b{dDC`}}}DCl}{{{b{dDC`}}}j}{{{b{dDC`}}}Bf}0{{{b{dDC`}}}Hl}{{{b{dDC`}}}f}{ce{}{}}{{{b{{h{f}}}}}DC`}{{{b{DC`}}}{{b{{h{f}}}}}}{c{{Bd{e}}}{}{}}0{{{b{c}}}Dh{}}`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{cc{}}7{{{b{DCn}}}C`}{{{b{DCn}}}D`}{{{b{d{h{f}}}}}DCn}{{{b{dDCn}}DCd}Aj}{{{b{dDCn}}DCf}Aj}{{{b{dDCn}}DCh}Aj}{{{b{dDCn}}DCj}Aj}0{{{b{dDCn}}DBl}Aj}{{{b{dDCn}}DCl}Aj}{{{b{dDCn}}{b{{h{f}}}}}Aj}{{{b{dDCn}}j}Aj}{{{b{dDCn}}Bf}Aj}0{{{b{dDCn}}Hl}Aj}{{{b{dDCn}}f}Aj}<{c{{Bd{e}}}{}{}}0{{{b{c}}}Dh{}}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{}DD`}{{}DDb}{{}DDd}{{}DDf}{{}DDh}{{}DDj}{{}DDl}{{}DDn}{{}DE`}{{}DEb}{{}DEd}{{}DEf}{{}DEh}{{}DEj}{{}DEl}{{}DEn}{{}DF`}{{}DFb}{{}DFd}{{}DFf}{{}DFh}{{}DFj}{{}DFl}{{}DFn}{{}DG`}```````````````````````````````````````````````````````````````````````````````````````````````````````{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}``{{{b{DD`}}}j}{{{b{DDb}}}Hl}{{{b{DDd}}}Bf}{{{b{DDf}}}f}{{{b{DDh}}}f}{{{b{DDj}}}j}{{{b{DDl}}}f}{{{b{DDn}}}f}{{{b{DE`}}}Bf}{{{b{DEb}}}j}{{{b{DEd}}}Bf}{{{b{DEf}}}Bf}{{{b{DEh}}}Bf}{{{b{DEj}}}j}{{{b{DEl}}}j}{{{b{DEn}}}j}{{{b{DF`}}}Hl}{{{b{DFb}}}j}{{{b{DFd}}}j}{{{b{DFf}}}Bf}{{{b{DFh}}}j}{{{b{DFj}}}j}{{{b{DFl}}}j}{{{b{DFn}}}f}{{{b{DG`}}}Bf}{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}```````{{{b{c}}}{{b{e}}}{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{dc}}}{{b{de}}}{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`````````````````````````````````````````````````````````````````````````````````````````{{{b{DGb}}}DGb}{{{b{DGd}}}DGd}{{{b{DGf}}}DGf}{{{b{DGh}}}DGh}{{{b{DGj}}}DGj}{{{b{DGl}}}DGl}{{{b{DGn}}}DGn}{{{b{DH`}}}DH`}{{{b{DHb}}}DHb}{{{b{DHd}}}DHd}{{{b{DHf}}}DHf}{{{b{DHh}}}DHh}{{{b{DHj}}}DHj}{{{b{DHl}}}DHl}{{{b{DHn}}}DHn}{{{b{DI`}}}DI`}{{{b{DIb}}}DIb}{{{b{DId}}}DId}{{{b{DIf}}}DIf}{{{b{DIh}}}DIh}{{{b{DIj}}}DIj}{{{b{DIl}}}DIl}{{{b{DIn}}}DIn}{{{b{DJ`}}}DJ`}{{{b{DJb}}}DJb}{{{b{DJd}}}DJd}{{{b{DJf}}}DJf}{{{b{DJh}}}DJh}{{{b{DJj}}}DJj}{{{b{DJl}}}DJl}{{{b{DJn}}}DJn}{{{b{DK`}}}DK`}{{{b{DKb}}}DKb}{{{b{DKd}}}DKd}{{{b{DKf}}}DKf}{{{b{DKh}}}DKh}{{{b{DKj}}}DKj}{{{b{DKl}}}DKl}{{{b{DKn}}}DKn}{{{b{DL`}}}DL`}{{{b{DLb}}}DLb}{{{b{DLd}}}DLd}{{{b{DLf}}}DLf}{{{b{DLh}}}DLh}{{{b{DLj}}}DLj}{{{b{DLl}}}DLl}{{{b{DLn}}}DLn}{{{b{DM`}}}DM`}{{{b{DMb}}}DMb}{{{b{DMd}}}DMd}{{{b{DMf}}}DMf}{{{b{DMh}}}DMh}{{{b{DMj}}}DMj}{{{b{DMl}}}DMl}{{{b{DMn}}}DMn}{{{b{DN`}}}DN`}{{{b{DNb}}}DNb}{{{b{DNd}}}DNd}{{{b{DNf}}}DNf}{{{b{DNh}}}DNh}{{{b{DNj}}}DNj}{{{b{DNl}}}DNl}{{{b{DNn}}}DNn}{{{b{DO`}}}DO`}{{{b{DOb}}}DOb}{{{b{DOd}}}DOd}{{{b{DOf}}}DOf}{{{b{DOh}}}DOh}{{{b{DOj}}}DOj}{{{b{DOl}}}DOl}{{{b{DOn}}}DOn}{{{b{E@`}}}E@`}{{{b{E@b}}}E@b}{{{b{E@d}}}E@d}{{{b{E@f}}}E@f}{{{b{E@h}}}E@h}{{{b{E@j}}}E@j}{{{b{E@l}}}E@l}{{{b{E@n}}}E@n}{{{b{EA`}}}EA`}{{{b{EAb}}}EAb}{{{b{EAd}}}EAd}{{{b{EAf}}}EAf}{{{b{EAh}}}EAh}{{{b{EAj}}}EAj}{{{b{EAl}}}EAl}{{{b{EAn}}}EAn}{{{b{EB`}}}EB`}{{{b{EBb}}}EBb}{{{b{EBd}}}EBd}{{{b{EBf}}}EBf}{{{b{EBh}}}EBh}{{{b{EBj}}}EBj}{{{b{EBl}}}EBl}{{{b{EBn}}}EBn}{{{b{EC`}}}EC`}{{{b{ECb}}}ECb}{{{b{ECd}}}ECd}{{{b{ECf}}}ECf}{{{b{ECh}}}ECh}{{{b{ECj}}}ECj}{{{b{ECl}}}ECl}{{{b{ECn}}}ECn}{{{b{ED`}}}ED`}{{{b{EDb}}}EDb}{{{b{EDd}}}EDd}{{{b{EDf}}}EDf}{{{b{EDh}}}EDh}{{{b{EDj}}}EDj}{{{b{EDl}}}EDl}{{{b{EDn}}}EDn}{{{b{EE`}}}EE`}{{{b{EEb}}}EEb}{{{b{EEd}}}EEd}{{{b{EEf}}}EEf}{{{b{EEh}}}EEh}{{{b{EEj}}}EEj}{{{b{EEl}}}EEl}{{{b{EEn}}}EEn}{{{b{EF`}}}EF`}{{{b{EFb}}}EFb}{{{b{EFd}}}EFd}{{{b{EFf}}}EFf}{{{b{EFh}}}EFh}{{{b{EFj}}}EFj}{{{b{EFl}}}EFl}{{{b{EFn}}}EFn}{{{b{EG`}}}EG`}{{{b{EGb}}}EGb}{{{b{EGd}}}EGd}{{{b{EGf}}}EGf}{{{b{EGh}}}EGh}{{{b{EGj}}}EGj}{{{b{EGl}}}EGl}{{{b{EGn}}}EGn}{{{b{EH`}}}EH`}{{{b{EHb}}}EHb}{{{b{EHd}}}EHd}{{{b{EHf}}}EHf}{{{b{EHh}}}EHh}{{{b{EHj}}}EHj}{{{b{EHl}}}EHl}{{{b{EHn}}}EHn}{{{b{EI`}}}EI`}{{{b{EIb}}}EIb}{{{b{EId}}}EId}{{{b{EIf}}}EIf}{{{b{EIh}}}EIh}{{{b{EIj}}}EIj}{{{b{EIl}}}EIl}{{{b{EIn}}}EIn}{{{b{EJ`}}}EJ`}{{{b{EJb}}}EJb}{{{b{EJd}}}EJd}{{{b{EJf}}}EJf}{{{b{EJh}}}EJh}{{{b{EJj}}}EJj}{{{b{EJl}}}EJl}{{{b{EJn}}}EJn}{{{b{EK`}}}EK`}{{{b{EKb}}}EKb}{{{b{EKd}}}EKd}{{{b{EKf}}}EKf}{{{b{EKh}}}EKh}{{{b{EKj}}}EKj}{{{b{EKl}}}EKl}{{{b{EKn}}}EKn}{{{b{EL`}}}EL`}{{{b{ELb}}}ELb}{{{b{ELd}}}ELd}{{{b{ELf}}}ELf}{{{b{ELh}}}ELh}{{{b{ELj}}}ELj}{{{b{ELl}}}ELl}{{{b{ELn}}}ELn}{{{b{EM`}}}EM`}{{{b{EMb}}}EMb}{{{b{EMd}}}EMd}{{{b{EMf}}}EMf}{{{b{EMh}}}EMh}{{{b{EMj}}}EMj}{{{b{EMl}}}EMl}{{{b{EMn}}}EMn}{{{b{EN`}}}EN`}{{{b{ENb}}}ENb}{{{b{ENd}}}ENd}{{{b{ENf}}}ENf}{{{b{ENh}}}ENh}{{{b{ENj}}}ENj}{{{b{ENl}}}ENl}{{{b{ENn}}}ENn}{{{b{EO`}}}EO`}{{{b{EOb}}}EOb}{{{b{EOd}}}EOd}{{{b{EOf}}}EOf}{{{b{EOh}}}EOh}{{{b{EOj}}}EOj}{{{b{EOl}}}EOl}{{{b{EOn}}}EOn}{{{b{F@`}}}F@`}{{{b{F@b}}}F@b}{{{b{F@d}}}F@d}{{{b{F@f}}}F@f}{{{b{F@h}}}F@h}{{{b{F@j}}}F@j}{{{b{F@l}}}F@l}{{{b{F@n}}}F@n}{{{b{FA`}}}FA`}{{{b{FAb}}}FAb}{{{b{FAd}}}FAd}{{{b{FAf}}}FAf}{{{b{FAh}}}FAh}{{{b{FAj}}}FAj}{{{b{FAl}}}FAl}{{{b{FAn}}}FAn}{{{b{FB`}}}FB`}{{{b{FBb}}}FBb}{{{b{FBd}}}FBd}{{{b{FBf}}}FBf}{{{b{FBh}}}FBh}{{{b{FBj}}}FBj}{{{b{FBl}}}FBl}{{{b{FBn}}}FBn}{{{b{FC`}}}FC`}{{{b{FCb}}}FCb}{{{b{FCd}}}FCd}{{{b{FCf}}}FCf}{{{b{FCh}}}FCh}{{{b{DD`}}}DD`}{{{b{FCj}}}FCj}{{{b{DDb}}}DDb}{{{b{FCl}}}FCl}{{{b{FCn}}}FCn}{{{b{FD`}}}FD`}{{{b{FDb}}}FDb}{{{b{FDd}}}FDd}{{{b{FDf}}}FDf}{{{b{FDh}}}FDh}{{{b{FDj}}}FDj}{{{b{FDl}}}FDl}{{{b{DDd}}}DDd}{{{b{DDf}}}DDf}{{{b{FDn}}}FDn}{{{b{FE`}}}FE`}{{{b{FEb}}}FEb}{{{b{FEd}}}FEd}{{{b{FEf}}}FEf}{{{b{FEh}}}FEh}{{{b{FEj}}}FEj}{{{b{FEl}}}FEl}{{{b{FEn}}}FEn}{{{b{DDh}}}DDh}{{{b{DDj}}}DDj}{{{b{FF`}}}FF`}{{{b{DDl}}}DDl}{{{b{FFb}}}FFb}{{{b{FFd}}}FFd}{{{b{FFf}}}FFf}{{{b{DDn}}}DDn}{{{b{FFh}}}FFh}{{{b{FFj}}}FFj}{{{b{FFl}}}FFl}{{{b{FFn}}}FFn}{{{b{FG`}}}FG`}{{{b{FGb}}}FGb}{{{b{FGd}}}FGd}{{{b{FGf}}}FGf}{{{b{FGh}}}FGh}{{{b{FGj}}}FGj}{{{b{FGl}}}FGl}{{{b{DE`}}}DE`}{{{b{DEb}}}DEb}{{{b{FGn}}}FGn}{{{b{DEd}}}DEd}{{{b{FH`}}}FH`}{{{b{FHb}}}FHb}{{{b{FHd}}}FHd}{{{b{FHf}}}FHf}{{{b{FHh}}}FHh}{{{b{DEf}}}DEf}{{{b{FHj}}}FHj}{{{b{FHl}}}FHl}{{{b{FHn}}}FHn}{{{b{FI`}}}FI`}{{{b{FIb}}}FIb}{{{b{FId}}}FId}{{{b{FIf}}}FIf}{{{b{FIh}}}FIh}{{{b{FIj}}}FIj}{{{b{DEh}}}DEh}{{{b{DEj}}}DEj}{{{b{FIl}}}FIl}{{{b{FIn}}}FIn}{{{b{FJ`}}}FJ`}{{{b{DEl}}}DEl}{{{b{FJb}}}FJb}{{{b{FJd}}}FJd}{{{b{DEn}}}DEn}{{{b{FJf}}}FJf}{{{b{FJh}}}FJh}{{{b{FJj}}}FJj}{{{b{FJl}}}FJl}{{{b{FJn}}}FJn}{{{b{FK`}}}FK`}{{{b{FKb}}}FKb}{{{b{FKd}}}FKd}{{{b{FKf}}}FKf}{{{b{FKh}}}FKh}{{{b{FKj}}}FKj}{{{b{FKl}}}FKl}{{{b{FKn}}}FKn}{{{b{FL`}}}FL`}{{{b{FLb}}}FLb}{{{b{FLd}}}FLd}{{{b{FLf}}}FLf}{{{b{FLh}}}FLh}{{{b{FLj}}}FLj}{{{b{FLl}}}FLl}{{{b{FLn}}}FLn}{{{b{FM`}}}FM`}{{{b{DF`}}}DF`}{{{b{FMb}}}FMb}{{{b{DFb}}}DFb}{{{b{FMd}}}FMd}{{{b{DFd}}}DFd}{{{b{DFf}}}DFf}{{{b{FMf}}}FMf}{{{b{FMh}}}FMh}{{{b{FMj}}}FMj}{{{b{FMl}}}FMl}{{{b{FMn}}}FMn}{{{b{FN`}}}FN`}{{{b{FNb}}}FNb}{{{b{FNd}}}FNd}{{{b{FNf}}}FNf}{{{b{FNh}}}FNh}{{{b{FNj}}}FNj}{{{b{DFh}}}DFh}{{{b{FNl}}}FNl}{{{b{FNn}}}FNn}{{{b{FO`}}}FO`}{{{b{FOb}}}FOb}{{{b{FOd}}}FOd}{{{b{FOf}}}FOf}{{{b{FOh}}}FOh}{{{b{FOj}}}FOj}{{{b{DFj}}}DFj}{{{b{FOl}}}FOl}{{{b{FOn}}}FOn}{{{b{DFl}}}DFl}{{{b{G@`}}}G@`}{{{b{DFn}}}DFn}{{{b{G@b}}}G@b}{{{b{G@d}}}G@d}{{{b{DG`}}}DG`}{{{b{G@f}}}G@f}{{{b{G@h}}}G@h}{{{b{G@j}}}G@j}{{{b{G@l}}}G@l}{{{b{c}}{b{de}}}Aj{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{DD`}}{b{DD`}}}DBb}{{{b{DDb}}{b{DDb}}}DBb}{{{b{DDd}}{b{DDd}}}DBb}{{{b{DDf}}{b{DDf}}}DBb}{{{b{DDh}}{b{DDh}}}DBb}{{{b{DDj}}{b{DDj}}}DBb}{{{b{DDl}}{b{DDl}}}DBb}{{{b{DDn}}{b{DDn}}}DBb}{{{b{DE`}}{b{DE`}}}DBb}{{{b{DEb}}{b{DEb}}}DBb}{{{b{DEd}}{b{DEd}}}DBb}{{{b{DEf}}{b{DEf}}}DBb}{{{b{DEh}}{b{DEh}}}DBb}{{{b{DEj}}{b{DEj}}}DBb}{{{b{DEl}}{b{DEl}}}DBb}{{{b{DEn}}{b{DEn}}}DBb}{{{b{DF`}}{b{DF`}}}DBb}{{{b{DFb}}{b{DFb}}}DBb}{{{b{DFd}}{b{DFd}}}DBb}{{{b{DFf}}{b{DFf}}}DBb}{{{b{DFh}}{b{DFh}}}DBb}{{{b{DFj}}{b{DFj}}}DBb}{{{b{DFl}}{b{DFl}}}DBb}{{{b{DFn}}{b{DFn}}}DBb}{{{b{DG`}}{b{DG`}}}DBb}````````````{DD`DD`}{DDbDDb}{DDdDDd}{DDfDDf}{DDhDDh}{DDjDDj}{DDlDDl}{DDnDDn}{DE`DE`}{DEbDEb}{DEdDEd}{DEfDEf}{DEhDEh}{DEjDEj}{DElDEl}{DEnDEn}{DF`DF`}{DFbDFb}{DFdDFd}{DFfDFf}{DFhDFh}{DFjDFj}{DFlDFl}{DFnDFn}{DG`DG`}``{{{b{DD`}}DD`}C`}{{{b{DDb}}DDb}C`}{{{b{DDd}}DDd}C`}{{{b{DDf}}DDf}C`}{{{b{DDh}}DDh}C`}{{{b{DDj}}DDj}C`}{{{b{DDl}}DDl}C`}{{{b{DDn}}DDn}C`}{{{b{DE`}}DE`}C`}{{{b{DEb}}DEb}C`}{{{b{DEd}}DEd}C`}{{{b{DEf}}DEf}C`}{{{b{DEh}}DEh}C`}{{{b{DEj}}DEj}C`}{{{b{DEl}}DEl}C`}{{{b{DEn}}DEn}C`}{{{b{DF`}}DF`}C`}{{{b{DFb}}DFb}C`}{{{b{DFd}}DFd}C`}{{{b{DFf}}DFf}C`}{{{b{DFh}}DFh}C`}{{{b{DFj}}DFj}C`}{{{b{DFl}}DFl}C`}{{{b{DFn}}DFn}C`}{{{b{DG`}}DG`}C`}````````````````````````````````````````````````````````{{}DGd}{{}DGf}{{}DGh}{{}DGj}{{}DGl}{{}DGn}{{}DH`}{{}DHb}{{}DHd}{{}DHf}{{}DHh}{{}DHj}{{}DHl}{{}DHn}{{}DI`}{{}DIb}{{}DId}{{}DIf}{{}DIh}{{}DIj}{{}DIl}{{}DIn}{{}DJ`}{{}DJb}{{}DJd}{{}DJf}{{}DJh}{{}DJj}{{}DJl}{{}DJn}{{}DK`}{{}DKb}{{}DKd}{{}DKf}{{}DKh}{{}DKj}{{}DKl}{{}DKn}{{}DL`}{{}DLb}{{}DLd}{{}DLf}{{}DLh}{{}DLj}{{}DLl}{{}DLn}{{}DM`}{{}DMb}{{}DMd}{{}DMf}{{}DMh}{{}DMj}{{}DMl}{{}DMn}{{}DN`}{{}DNb}{{}DNd}{{}DNf}{{}DNh}{{}DNj}{{}DNl}{{}DNn}{{}DO`}{{}DOb}{{}DOd}{{}DOf}{{}DOh}{{}DOj}{{}DOl}{{}DOn}{{}E@`}{{}E@b}{{}E@d}{{}E@f}{{}E@h}{{}E@j}{{}E@l}{{}E@n}{{}EA`}{{}EAb}{{}EAd}{{}EAf}{{}EAh}{{}EAj}{{}EAl}{{}EAn}{{}EB`}{{}EBb}{{}EBd}{{}EBf}{{}EBh}{{}EBj}{{}EBl}{{}EBn}{{}EC`}{{}ECb}{{}ECd}{{}ECf}{{}ECh}{{}ECj}{{}ECl}{{}ECn}{{}ED`}{{}EDb}{{}EDd}{{}EDf}{{}EDh}{{}EDj}{{}EDl}{{}EDn}{{}EE`}{{}EEb}{{}EEd}{{}EEf}{{}EEh}{{}EEj}{{}EEl}{{}EEn}{{}EF`}{{}EFb}{{}EFd}{{}EFf}{{}EFh}{{}EFj}{{}EFl}{{}EFn}{{}EG`}{{}EGb}{{}EGd}{{}EGf}{{}EGh}{{}EGj}{{}EGl}{{}EGn}{{}EH`}{{}EHb}{{}EHd}{{}EHf}{{}EHh}{{}EHj}{{}EHl}{{}EHn}{{}EI`}{{}EIb}{{}EId}{{}EIf}{{}EIh}{{}EIj}{{}EIl}{{}EIn}{{}EJ`}{{}EJb}{{}EJd}{{}EJf}{{}EJh}{{}EJj}{{}EJl}{{}EJn}{{}EK`}{{}EKb}{{}EKd}{{}EKf}{{}EKh}{{}EKj}{{}EKl}{{}EKn}{{}EL`}{{}ELb}{{}ELd}{{}ELf}{{}ELh}{{}ELj}{{}ELl}{{}ELn}{{}EM`}{{}EMb}{{}EMd}{{}EMf}{{}EMh}{{}EMj}{{}EMl}{{}EMn}{{}EN`}{{}ENb}{{}ENd}{{}ENf}{{}ENh}{{}ENj}{{}ENl}{{}ENn}{{}EO`}{{}EOb}{{}EOd}{{}EOf}{{}EOh}{{}EOj}{{}EOl}{{}EOn}{{}F@`}{{}F@b}{{}F@d}{{}F@f}{{}F@h}{{}F@j}{{}F@l}{{}F@n}{{}FA`}{{}FAb}{{}FAd}{{}FAf}{{}FAh}{{}FAj}{{}FAl}{{}FAn}{{}FB`}{{}FBb}{{}FBd}{{}FBf}{{}FBh}{{}FBj}{{}FBl}{{}FBn}{{}FC`}{{}FCb}{{}FCd}{{}FCf}{{}FCh}{{}DD`}{{}FCj}{{}DDb}{{}FCl}{{}FCn}{{}FD`}{{}FDb}{{}FDd}{{}FDf}{{}FDh}{{}FDj}{{}FDl}{{}DDd}{{}DDf}{{}FDn}{{}FE`}{{}FEb}{{}FEd}{{}FEf}{{}FEh}{{}FEj}{{}FEl}{{}FEn}{{}DDh}{{}DDj}{{}FF`}{{}DDl}{{}FFb}{{}FFd}{{}FFf}{{}DDn}{{}FFh}{{}FFj}{{}FFl}{{}FFn}{{}FG`}{{}FGb}{{}FGd}{{}FGf}{{}FGh}{{}FGj}{{}FGl}{{}DE`}{{}DEb}{{}FGn}{{}DEd}{{}FH`}{{}FHb}{{}FHd}{{}FHf}{{}FHh}{{}DEf}{{}FHj}{{}FHl}{{}FHn}{{}FI`}{{}FIb}{{}FId}{{}FIf}{{}FIh}{{}FIj}{{}DEh}{{}DEj}{{}FIl}{{}FIn}{{}FJ`}{{}DEl}{{}FJb}{{}FJd}{{}DEn}{{}FJf}{{}FJh}{{}FJj}{{}FJl}{{}FJn}{{}FK`}{{}FKb}{{}FKd}{{}FKf}{{}FKh}{{}FKj}{{}FKl}{{}FKn}{{}FL`}{{}FLb}{{}FLd}{{}FLf}{{}FLh}{{}FLj}{{}FLl}{{}FLn}{{}FM`}{{}DF`}{{}FMb}{{}DFb}{{}FMd}{{}DFd}{{}DFf}{{}FMf}{{}FMh}{{}FMj}{{}FMl}{{}FMn}{{}FN`}{{}FNb}{{}FNd}{{}FNf}{{}FNh}{{}FNj}{{}DFh}{{}FNl}{{}FNn}{{}FO`}{{}FOb}{{}FOd}{{}FOf}{{}FOh}{{}FOj}{{}DFj}{{}FOl}{{}FOn}{{}DFl}{{}G@`}{{}DFn}{{}G@b}{{}G@d}{{}DG`}{{}G@f}{{}G@h}{{}G@j}{{}G@l}{Bf{{Bd{DGb{b{Al}}}}}}```{{Ab{b{{h{f}}}}}{{Bd{DGdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DGfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DGhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DGjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DGlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DGnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DH`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DI`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DIbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DIdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DIfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DIhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DIjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DIlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DInBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJ`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DK`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DL`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DM`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DN`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DO`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DObBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DOdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DOfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DOhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DOjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DOlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DOnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@bBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@dBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@fBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@hBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@jBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@lBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@nBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EA`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EB`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EC`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ECbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ECdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ECfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EChBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ECjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EClBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ECnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ED`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EE`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EEbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EEdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EEfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EEhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EEjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EElBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EEnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EF`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EG`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EH`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EI`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EIbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EIdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EIfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EIhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EIjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EIlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EInBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJ`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EK`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EL`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EM`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EN`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EO`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EObBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EOdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EOfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EOhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EOjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EOlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EOnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@bBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@dBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@fBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@hBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@jBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@lBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@nBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FA`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FB`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{FBbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FBdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FBfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FBhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FBjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FBlBl}}}}{c{{Bd{DGb}}}Bn}{c{{Bd{DGd}}}Bn}{c{{Bd{DGf}}}Bn}{c{{Bd{DGh}}}Bn}{c{{Bd{DGj}}}Bn}{c{{Bd{DGl}}}Bn}{c{{Bd{DGn}}}Bn}{c{{Bd{DH`}}}Bn}{c{{Bd{DHb}}}Bn}{c{{Bd{DHd}}}Bn}{c{{Bd{DHf}}}Bn}{c{{Bd{DHh}}}Bn}{c{{Bd{DHj}}}Bn}{c{{Bd{DHl}}}Bn}{c{{Bd{DHn}}}Bn}{c{{Bd{DI`}}}Bn}{c{{Bd{DIb}}}Bn}{c{{Bd{DId}}}Bn}{c{{Bd{DIf}}}Bn}{c{{Bd{DIh}}}Bn}{c{{Bd{DIj}}}Bn}{c{{Bd{DIl}}}Bn}{c{{Bd{DIn}}}Bn}{c{{Bd{DJ`}}}Bn}{c{{Bd{DJb}}}Bn}{c{{Bd{DJd}}}Bn}{c{{Bd{DJf}}}Bn}{c{{Bd{DJh}}}Bn}{c{{Bd{DJj}}}Bn}{c{{Bd{DJl}}}Bn}{c{{Bd{DJn}}}Bn}{c{{Bd{DK`}}}Bn}{c{{Bd{DKb}}}Bn}{c{{Bd{DKd}}}Bn}{c{{Bd{DKf}}}Bn}{c{{Bd{DKh}}}Bn}{c{{Bd{DKj}}}Bn}{c{{Bd{DKl}}}Bn}{c{{Bd{DKn}}}Bn}{c{{Bd{DL`}}}Bn}{c{{Bd{DLb}}}Bn}{c{{Bd{DLd}}}Bn}{c{{Bd{DLf}}}Bn}{c{{Bd{DLh}}}Bn}{c{{Bd{DLj}}}Bn}{c{{Bd{DLl}}}Bn}{c{{Bd{DLn}}}Bn}{c{{Bd{DM`}}}Bn}{c{{Bd{DMb}}}Bn}{c{{Bd{DMd}}}Bn}{c{{Bd{DMf}}}Bn}{c{{Bd{DMh}}}Bn}{c{{Bd{DMj}}}Bn}{c{{Bd{DMl}}}Bn}{c{{Bd{DMn}}}Bn}{c{{Bd{DN`}}}Bn}{c{{Bd{DNb}}}Bn}{c{{Bd{DNd}}}Bn}{c{{Bd{DNf}}}Bn}{c{{Bd{DNh}}}Bn}{c{{Bd{DNj}}}Bn}{c{{Bd{DNl}}}Bn}{c{{Bd{DNn}}}Bn}{c{{Bd{DO`}}}Bn}{c{{Bd{DOb}}}Bn}{c{{Bd{DOd}}}Bn}{c{{Bd{DOf}}}Bn}{c{{Bd{DOh}}}Bn}{c{{Bd{DOj}}}Bn}{c{{Bd{DOl}}}Bn}{c{{Bd{DOn}}}Bn}{c{{Bd{E@`}}}Bn}{c{{Bd{E@b}}}Bn}{c{{Bd{E@d}}}Bn}{c{{Bd{E@f}}}Bn}{c{{Bd{E@h}}}Bn}{c{{Bd{E@j}}}Bn}{c{{Bd{E@l}}}Bn}{c{{Bd{E@n}}}Bn}{c{{Bd{EA`}}}Bn}{c{{Bd{EAb}}}Bn}{c{{Bd{EAd}}}Bn}{c{{Bd{EAf}}}Bn}{c{{Bd{EAh}}}Bn}{c{{Bd{EAj}}}Bn}{c{{Bd{EAl}}}Bn}{c{{Bd{EAn}}}Bn}{c{{Bd{EB`}}}Bn}{c{{Bd{EBb}}}Bn}{c{{Bd{EBd}}}Bn}{c{{Bd{EBf}}}Bn}{c{{Bd{EBh}}}Bn}{c{{Bd{EBj}}}Bn}{c{{Bd{EBl}}}Bn}{c{{Bd{EBn}}}Bn}{c{{Bd{EC`}}}Bn}{c{{Bd{ECb}}}Bn}{c{{Bd{ECd}}}Bn}{c{{Bd{ECf}}}Bn}{c{{Bd{ECh}}}Bn}{c{{Bd{ECj}}}Bn}{c{{Bd{ECl}}}Bn}{c{{Bd{ECn}}}Bn}{c{{Bd{ED`}}}Bn}{c{{Bd{EDb}}}Bn}{c{{Bd{EDd}}}Bn}{c{{Bd{EDf}}}Bn}{c{{Bd{EDh}}}Bn}{c{{Bd{EDj}}}Bn}{c{{Bd{EDl}}}Bn}{c{{Bd{EDn}}}Bn}{c{{Bd{EE`}}}Bn}{c{{Bd{EEb}}}Bn}{c{{Bd{EEd}}}Bn}{c{{Bd{EEf}}}Bn}{c{{Bd{EEh}}}Bn}{c{{Bd{EEj}}}Bn}{c{{Bd{EEl}}}Bn}{c{{Bd{EEn}}}Bn}{c{{Bd{EF`}}}Bn}{c{{Bd{EFb}}}Bn}{c{{Bd{EFd}}}Bn}{c{{Bd{EFf}}}Bn}{c{{Bd{EFh}}}Bn}{c{{Bd{EFj}}}Bn}{c{{Bd{EFl}}}Bn}{c{{Bd{EFn}}}Bn}{c{{Bd{EG`}}}Bn}{c{{Bd{EGb}}}Bn}{c{{Bd{EGd}}}Bn}{c{{Bd{EGf}}}Bn}{c{{Bd{EGh}}}Bn}{c{{Bd{EGj}}}Bn}{c{{Bd{EGl}}}Bn}{c{{Bd{EGn}}}Bn}{c{{Bd{EH`}}}Bn}{c{{Bd{EHb}}}Bn}{c{{Bd{EHd}}}Bn}{c{{Bd{EHf}}}Bn}{c{{Bd{EHh}}}Bn}{c{{Bd{EHj}}}Bn}{c{{Bd{EHl}}}Bn}{c{{Bd{EHn}}}Bn}{c{{Bd{EI`}}}Bn}{c{{Bd{EIb}}}Bn}{c{{Bd{EId}}}Bn}{c{{Bd{EIf}}}Bn}{c{{Bd{EIh}}}Bn}{c{{Bd{EIj}}}Bn}{c{{Bd{EIl}}}Bn}{c{{Bd{EIn}}}Bn}{c{{Bd{EJ`}}}Bn}{c{{Bd{EJb}}}Bn}{c{{Bd{EJd}}}Bn}{c{{Bd{EJf}}}Bn}{c{{Bd{EJh}}}Bn}{c{{Bd{EJj}}}Bn}{c{{Bd{EJl}}}Bn}{c{{Bd{EJn}}}Bn}{c{{Bd{EK`}}}Bn}{c{{Bd{EKb}}}Bn}{c{{Bd{EKd}}}Bn}{c{{Bd{EKf}}}Bn}{c{{Bd{EKh}}}Bn}{c{{Bd{EKj}}}Bn}{c{{Bd{EKl}}}Bn}{c{{Bd{EKn}}}Bn}{c{{Bd{EL`}}}Bn}{c{{Bd{ELb}}}Bn}{c{{Bd{ELd}}}Bn}{c{{Bd{ELf}}}Bn}{c{{Bd{ELh}}}Bn}{c{{Bd{ELj}}}Bn}{c{{Bd{ELl}}}Bn}{c{{Bd{ELn}}}Bn}{c{{Bd{EM`}}}Bn}{c{{Bd{EMb}}}Bn}{c{{Bd{EMd}}}Bn}{c{{Bd{EMf}}}Bn}{c{{Bd{EMh}}}Bn}{c{{Bd{EMj}}}Bn}{c{{Bd{EMl}}}Bn}{c{{Bd{EMn}}}Bn}{c{{Bd{EN`}}}Bn}{c{{Bd{ENb}}}Bn}{c{{Bd{ENd}}}Bn}{c{{Bd{ENf}}}Bn}{c{{Bd{ENh}}}Bn}{c{{Bd{ENj}}}Bn}{c{{Bd{ENl}}}Bn}{c{{Bd{ENn}}}Bn}{c{{Bd{EO`}}}Bn}{c{{Bd{EOb}}}Bn}{c{{Bd{EOd}}}Bn}{c{{Bd{EOf}}}Bn}{c{{Bd{EOh}}}Bn}{c{{Bd{EOj}}}Bn}{c{{Bd{EOl}}}Bn}{c{{Bd{EOn}}}Bn}{c{{Bd{F@`}}}Bn}{c{{Bd{F@b}}}Bn}{c{{Bd{F@d}}}Bn}{c{{Bd{F@f}}}Bn}{c{{Bd{F@h}}}Bn}{c{{Bd{F@j}}}Bn}{c{{Bd{F@l}}}Bn}{c{{Bd{F@n}}}Bn}{c{{Bd{FA`}}}Bn}{c{{Bd{FAb}}}Bn}{c{{Bd{FAd}}}Bn}{c{{Bd{FAf}}}Bn}{c{{Bd{FAh}}}Bn}{c{{Bd{FAj}}}Bn}{c{{Bd{FAl}}}Bn}{c{{Bd{FAn}}}Bn}{c{{Bd{FB`}}}Bn}{c{{Bd{FBb}}}Bn}{c{{Bd{FBd}}}Bn}{c{{Bd{FBf}}}Bn}{c{{Bd{FBh}}}Bn}{c{{Bd{FBj}}}Bn}{c{{Bd{FBl}}}Bn}{c{{Bd{FBn}}}Bn}{c{{Bd{FC`}}}Bn}{c{{Bd{FCb}}}Bn}{c{{Bd{FCd}}}Bn}{c{{Bd{FCf}}}Bn}{c{{Bd{FCh}}}Bn}{c{{Bd{DD`}}}Bn}{c{{Bd{FCj}}}Bn}{c{{Bd{DDb}}}Bn}{c{{Bd{FCl}}}Bn}{c{{Bd{FCn}}}Bn}{c{{Bd{FD`}}}Bn}{c{{Bd{FDb}}}Bn}{c{{Bd{FDd}}}Bn}{c{{Bd{FDf}}}Bn}{c{{Bd{FDh}}}Bn}{c{{Bd{FDj}}}Bn}{c{{Bd{FDl}}}Bn}{c{{Bd{DDd}}}Bn}{c{{Bd{DDf}}}Bn}{c{{Bd{FDn}}}Bn}{c{{Bd{FE`}}}Bn}{c{{Bd{FEb}}}Bn}{c{{Bd{FEd}}}Bn}{c{{Bd{FEf}}}Bn}{c{{Bd{FEh}}}Bn}{c{{Bd{FEj}}}Bn}{c{{Bd{FEl}}}Bn}{c{{Bd{FEn}}}Bn}{c{{Bd{DDh}}}Bn}{c{{Bd{DDj}}}Bn}{c{{Bd{FF`}}}Bn}{c{{Bd{DDl}}}Bn}{c{{Bd{FFb}}}Bn}{c{{Bd{FFd}}}Bn}{c{{Bd{FFf}}}Bn}{c{{Bd{DDn}}}Bn}{c{{Bd{FFh}}}Bn}{c{{Bd{FFj}}}Bn}{c{{Bd{FFl}}}Bn}{c{{Bd{FFn}}}Bn}{c{{Bd{FG`}}}Bn}{c{{Bd{FGb}}}Bn}{c{{Bd{FGd}}}Bn}{c{{Bd{FGf}}}Bn}{c{{Bd{FGh}}}Bn}{c{{Bd{FGj}}}Bn}{c{{Bd{FGl}}}Bn}{c{{Bd{DE`}}}Bn}{c{{Bd{DEb}}}Bn}{c{{Bd{FGn}}}Bn}{c{{Bd{DEd}}}Bn}{c{{Bd{FH`}}}Bn}{c{{Bd{FHb}}}Bn}{c{{Bd{FHd}}}Bn}{c{{Bd{FHf}}}Bn}{c{{Bd{FHh}}}Bn}{c{{Bd{DEf}}}Bn}{c{{Bd{FHj}}}Bn}{c{{Bd{FHl}}}Bn}{c{{Bd{FHn}}}Bn}{c{{Bd{FI`}}}Bn}{c{{Bd{FIb}}}Bn}{c{{Bd{FId}}}Bn}{c{{Bd{FIf}}}Bn}{c{{Bd{FIh}}}Bn}{c{{Bd{FIj}}}Bn}{c{{Bd{DEh}}}Bn}{c{{Bd{DEj}}}Bn}{c{{Bd{FIl}}}Bn}{c{{Bd{FIn}}}Bn}{c{{Bd{FJ`}}}Bn}{c{{Bd{DEl}}}Bn}{c{{Bd{FJb}}}Bn}{c{{Bd{FJd}}}Bn}{c{{Bd{DEn}}}Bn}{c{{Bd{FJf}}}Bn}{c{{Bd{FJh}}}Bn}{c{{Bd{FJj}}}Bn}{c{{Bd{FJl}}}Bn}{c{{Bd{FJn}}}Bn}{c{{Bd{FK`}}}Bn}{c{{Bd{FKb}}}Bn}{c{{Bd{FKd}}}Bn}{c{{Bd{FKf}}}Bn}{c{{Bd{FKh}}}Bn}{c{{Bd{FKj}}}Bn}{c{{Bd{FKl}}}Bn}{c{{Bd{FKn}}}Bn}{c{{Bd{FL`}}}Bn}{c{{Bd{FLb}}}Bn}{c{{Bd{FLd}}}Bn}{c{{Bd{FLf}}}Bn}{c{{Bd{FLh}}}Bn}{c{{Bd{FLj}}}Bn}{c{{Bd{FLl}}}Bn}{c{{Bd{FLn}}}Bn}{c{{Bd{FM`}}}Bn}{c{{Bd{DF`}}}Bn}{c{{Bd{FMb}}}Bn}{c{{Bd{DFb}}}Bn}{c{{Bd{FMd}}}Bn}{c{{Bd{DFd}}}Bn}{c{{Bd{DFf}}}Bn}{c{{Bd{FMf}}}Bn}{c{{Bd{FMh}}}Bn}{c{{Bd{FMj}}}Bn}{c{{Bd{FMl}}}Bn}{c{{Bd{FMn}}}Bn}{c{{Bd{FN`}}}Bn}{c{{Bd{FNb}}}Bn}{c{{Bd{FNd}}}Bn}{c{{Bd{FNf}}}Bn}{c{{Bd{FNh}}}Bn}{c{{Bd{FNj}}}Bn}{c{{Bd{DFh}}}Bn}{c{{Bd{FNl}}}Bn}{c{{Bd{FNn}}}Bn}{c{{Bd{FO`}}}Bn}{c{{Bd{FOb}}}Bn}{c{{Bd{FOd}}}Bn}{c{{Bd{FOf}}}Bn}{c{{Bd{FOh}}}Bn}{c{{Bd{FOj}}}Bn}{c{{Bd{DFj}}}Bn}{c{{Bd{FOl}}}Bn}{c{{Bd{FOn}}}Bn}{c{{Bd{DFl}}}Bn}{c{{Bd{G@`}}}Bn}{c{{Bd{DFn}}}Bn}{c{{Bd{G@b}}}Bn}{c{{Bd{G@d}}}Bn}{c{{Bd{DG`}}}Bn}{c{{Bd{G@f}}}Bn}{c{{Bd{G@h}}}Bn}{c{{Bd{G@j}}}Bn}{c{{Bd{G@l}}}Bn}```````````{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}```````````````{{}DD`}{{}DDb}{{}DDd}{{}DDf}{{}DDh}{{}DDj}{{}DDl}{{}DDn}{{}DE`}{{}DEb}{{}DEd}{{}DEf}{{}DEh}{{}DEj}{{}DEl}{{}DEn}{{}DF`}{{}DFb}{{}DFd}{{}DFf}{{}DFh}{{}DFj}{{}DFl}{{}DFn}{{}DG`}```````````````{{{b{DGb}}{b{DGb}}}C`}{{{b{DGd}}{b{DGd}}}C`}{{{b{DGf}}{b{DGf}}}C`}{{{b{DGh}}{b{DGh}}}C`}{{{b{DGj}}{b{DGj}}}C`}{{{b{DGl}}{b{DGl}}}C`}{{{b{DGn}}{b{DGn}}}C`}{{{b{DH`}}{b{DH`}}}C`}{{{b{DHb}}{b{DHb}}}C`}{{{b{DHd}}{b{DHd}}}C`}{{{b{DHf}}{b{DHf}}}C`}{{{b{DHh}}{b{DHh}}}C`}{{{b{DHj}}{b{DHj}}}C`}{{{b{DHl}}{b{DHl}}}C`}{{{b{DHn}}{b{DHn}}}C`}{{{b{DI`}}{b{DI`}}}C`}{{{b{DIb}}{b{DIb}}}C`}{{{b{DId}}{b{DId}}}C`}{{{b{DIf}}{b{DIf}}}C`}{{{b{DIh}}{b{DIh}}}C`}{{{b{DIj}}{b{DIj}}}C`}{{{b{DIl}}{b{DIl}}}C`}{{{b{DIn}}{b{DIn}}}C`}{{{b{DJ`}}{b{DJ`}}}C`}{{{b{DJb}}{b{DJb}}}C`}{{{b{DJd}}{b{DJd}}}C`}{{{b{DJf}}{b{DJf}}}C`}{{{b{DJh}}{b{DJh}}}C`}{{{b{DJj}}{b{DJj}}}C`}{{{b{DJl}}{b{DJl}}}C`}{{{b{DJn}}{b{DJn}}}C`}{{{b{DK`}}{b{DK`}}}C`}{{{b{DKb}}{b{DKb}}}C`}{{{b{DKd}}{b{DKd}}}C`}{{{b{DKf}}{b{DKf}}}C`}{{{b{DKh}}{b{DKh}}}C`}{{{b{DKj}}{b{DKj}}}C`}{{{b{DKl}}{b{DKl}}}C`}{{{b{DKn}}{b{DKn}}}C`}{{{b{DL`}}{b{DL`}}}C`}{{{b{DLb}}{b{DLb}}}C`}{{{b{DLd}}{b{DLd}}}C`}{{{b{DLf}}{b{DLf}}}C`}{{{b{DLh}}{b{DLh}}}C`}{{{b{DLj}}{b{DLj}}}C`}{{{b{DLl}}{b{DLl}}}C`}{{{b{DLn}}{b{DLn}}}C`}{{{b{DM`}}{b{DM`}}}C`}{{{b{DMb}}{b{DMb}}}C`}{{{b{DMd}}{b{DMd}}}C`}{{{b{DMf}}{b{DMf}}}C`}{{{b{DMh}}{b{DMh}}}C`}{{{b{DMj}}{b{DMj}}}C`}{{{b{DMl}}{b{DMl}}}C`}{{{b{DMn}}{b{DMn}}}C`}{{{b{DN`}}{b{DN`}}}C`}{{{b{DNb}}{b{DNb}}}C`}{{{b{DNd}}{b{DNd}}}C`}{{{b{DNf}}{b{DNf}}}C`}{{{b{DNh}}{b{DNh}}}C`}{{{b{DNj}}{b{DNj}}}C`}{{{b{DNl}}{b{DNl}}}C`}{{{b{DNn}}{b{DNn}}}C`}{{{b{DO`}}{b{DO`}}}C`}{{{b{DOb}}{b{DOb}}}C`}{{{b{DOd}}{b{DOd}}}C`}{{{b{DOf}}{b{DOf}}}C`}{{{b{DOh}}{b{DOh}}}C`}{{{b{DOj}}{b{DOj}}}C`}{{{b{DOl}}{b{DOl}}}C`}{{{b{DOn}}{b{DOn}}}C`}{{{b{E@`}}{b{E@`}}}C`}{{{b{E@b}}{b{E@b}}}C`}{{{b{E@d}}{b{E@d}}}C`}{{{b{E@f}}{b{E@f}}}C`}{{{b{E@h}}{b{E@h}}}C`}{{{b{E@j}}{b{E@j}}}C`}{{{b{E@l}}{b{E@l}}}C`}{{{b{E@n}}{b{E@n}}}C`}{{{b{EA`}}{b{EA`}}}C`}{{{b{EAb}}{b{EAb}}}C`}{{{b{EAd}}{b{EAd}}}C`}{{{b{EAf}}{b{EAf}}}C`}{{{b{EAh}}{b{EAh}}}C`}{{{b{EAj}}{b{EAj}}}C`}{{{b{EAl}}{b{EAl}}}C`}{{{b{EAn}}{b{EAn}}}C`}{{{b{EB`}}{b{EB`}}}C`}{{{b{EBb}}{b{EBb}}}C`}{{{b{EBd}}{b{EBd}}}C`}{{{b{EBf}}{b{EBf}}}C`}{{{b{EBh}}{b{EBh}}}C`}{{{b{EBj}}{b{EBj}}}C`}{{{b{EBl}}{b{EBl}}}C`}{{{b{EBn}}{b{EBn}}}C`}{{{b{EC`}}{b{EC`}}}C`}{{{b{ECb}}{b{ECb}}}C`}{{{b{ECd}}{b{ECd}}}C`}{{{b{ECf}}{b{ECf}}}C`}{{{b{ECh}}{b{ECh}}}C`}{{{b{ECj}}{b{ECj}}}C`}{{{b{ECl}}{b{ECl}}}C`}{{{b{ECn}}{b{ECn}}}C`}{{{b{ED`}}{b{ED`}}}C`}{{{b{EDb}}{b{EDb}}}C`}{{{b{EDd}}{b{EDd}}}C`}{{{b{EDf}}{b{EDf}}}C`}{{{b{EDh}}{b{EDh}}}C`}{{{b{EDj}}{b{EDj}}}C`}{{{b{EDl}}{b{EDl}}}C`}{{{b{EDn}}{b{EDn}}}C`}{{{b{EE`}}{b{EE`}}}C`}{{{b{EEb}}{b{EEb}}}C`}{{{b{EEd}}{b{EEd}}}C`}{{{b{EEf}}{b{EEf}}}C`}{{{b{EEh}}{b{EEh}}}C`}{{{b{EEj}}{b{EEj}}}C`}{{{b{EEl}}{b{EEl}}}C`}{{{b{EEn}}{b{EEn}}}C`}{{{b{EF`}}{b{EF`}}}C`}{{{b{EFb}}{b{EFb}}}C`}{{{b{EFd}}{b{EFd}}}C`}{{{b{EFf}}{b{EFf}}}C`}{{{b{EFh}}{b{EFh}}}C`}{{{b{EFj}}{b{EFj}}}C`}{{{b{EFl}}{b{EFl}}}C`}{{{b{EFn}}{b{EFn}}}C`}{{{b{EG`}}{b{EG`}}}C`}{{{b{EGb}}{b{EGb}}}C`}{{{b{EGd}}{b{EGd}}}C`}{{{b{EGf}}{b{EGf}}}C`}{{{b{EGh}}{b{EGh}}}C`}{{{b{EGj}}{b{EGj}}}C`}{{{b{EGl}}{b{EGl}}}C`}{{{b{EGn}}{b{EGn}}}C`}{{{b{EH`}}{b{EH`}}}C`}{{{b{EHb}}{b{EHb}}}C`}{{{b{EHd}}{b{EHd}}}C`}{{{b{EHf}}{b{EHf}}}C`}{{{b{EHh}}{b{EHh}}}C`}{{{b{EHj}}{b{EHj}}}C`}{{{b{EHl}}{b{EHl}}}C`}{{{b{EHn}}{b{EHn}}}C`}{{{b{EI`}}{b{EI`}}}C`}{{{b{EIb}}{b{EIb}}}C`}{{{b{EId}}{b{EId}}}C`}{{{b{EIf}}{b{EIf}}}C`}{{{b{EIh}}{b{EIh}}}C`}{{{b{EIj}}{b{EIj}}}C`}{{{b{EIl}}{b{EIl}}}C`}{{{b{EIn}}{b{EIn}}}C`}{{{b{EJ`}}{b{EJ`}}}C`}{{{b{EJb}}{b{EJb}}}C`}{{{b{EJd}}{b{EJd}}}C`}{{{b{EJf}}{b{EJf}}}C`}{{{b{EJh}}{b{EJh}}}C`}{{{b{EJj}}{b{EJj}}}C`}{{{b{EJl}}{b{EJl}}}C`}{{{b{EJn}}{b{EJn}}}C`}{{{b{EK`}}{b{EK`}}}C`}{{{b{EKb}}{b{EKb}}}C`}{{{b{EKd}}{b{EKd}}}C`}{{{b{EKf}}{b{EKf}}}C`}{{{b{EKh}}{b{EKh}}}C`}{{{b{EKj}}{b{EKj}}}C`}{{{b{EKl}}{b{EKl}}}C`}{{{b{EKn}}{b{EKn}}}C`}{{{b{EL`}}{b{EL`}}}C`}{{{b{ELb}}{b{ELb}}}C`}{{{b{ELd}}{b{ELd}}}C`}{{{b{ELf}}{b{ELf}}}C`}{{{b{ELh}}{b{ELh}}}C`}{{{b{ELj}}{b{ELj}}}C`}{{{b{ELl}}{b{ELl}}}C`}{{{b{ELn}}{b{ELn}}}C`}{{{b{EM`}}{b{EM`}}}C`}{{{b{EMb}}{b{EMb}}}C`}{{{b{EMd}}{b{EMd}}}C`}{{{b{EMf}}{b{EMf}}}C`}{{{b{EMh}}{b{EMh}}}C`}{{{b{EMj}}{b{EMj}}}C`}{{{b{EMl}}{b{EMl}}}C`}{{{b{EMn}}{b{EMn}}}C`}{{{b{EN`}}{b{EN`}}}C`}{{{b{ENb}}{b{ENb}}}C`}{{{b{ENd}}{b{ENd}}}C`}{{{b{ENf}}{b{ENf}}}C`}{{{b{ENh}}{b{ENh}}}C`}{{{b{ENj}}{b{ENj}}}C`}{{{b{ENl}}{b{ENl}}}C`}{{{b{ENn}}{b{ENn}}}C`}{{{b{EO`}}{b{EO`}}}C`}{{{b{EOb}}{b{EOb}}}C`}{{{b{EOd}}{b{EOd}}}C`}{{{b{EOf}}{b{EOf}}}C`}{{{b{EOh}}{b{EOh}}}C`}{{{b{EOj}}{b{EOj}}}C`}{{{b{EOl}}{b{EOl}}}C`}{{{b{EOn}}{b{EOn}}}C`}{{{b{F@`}}{b{F@`}}}C`}{{{b{F@b}}{b{F@b}}}C`}{{{b{F@d}}{b{F@d}}}C`}{{{b{F@f}}{b{F@f}}}C`}{{{b{F@h}}{b{F@h}}}C`}{{{b{F@j}}{b{F@j}}}C`}{{{b{F@l}}{b{F@l}}}C`}{{{b{F@n}}{b{F@n}}}C`}{{{b{FA`}}{b{FA`}}}C`}{{{b{FAb}}{b{FAb}}}C`}{{{b{FAd}}{b{FAd}}}C`}{{{b{FAf}}{b{FAf}}}C`}{{{b{FAh}}{b{FAh}}}C`}{{{b{FAj}}{b{FAj}}}C`}{{{b{FAl}}{b{FAl}}}C`}{{{b{FAn}}{b{FAn}}}C`}{{{b{FB`}}{b{FB`}}}C`}{{{b{FBb}}{b{FBb}}}C`}{{{b{FBd}}{b{FBd}}}C`}{{{b{FBf}}{b{FBf}}}C`}{{{b{FBh}}{b{FBh}}}C`}{{{b{FBj}}{b{FBj}}}C`}{{{b{FBl}}{b{FBl}}}C`}{{{b{FBn}}{b{FBn}}}C`}{{{b{FC`}}{b{FC`}}}C`}{{{b{FCb}}{b{FCb}}}C`}{{{b{FCd}}{b{FCd}}}C`}{{{b{FCf}}{b{FCf}}}C`}{{{b{FCh}}{b{FCh}}}C`}{{{b{DD`}}{b{DD`}}}C`}{{{b{FCj}}{b{FCj}}}C`}{{{b{DDb}}{b{DDb}}}C`}{{{b{FCl}}{b{FCl}}}C`}{{{b{FCn}}{b{FCn}}}C`}{{{b{FD`}}{b{FD`}}}C`}{{{b{FDb}}{b{FDb}}}C`}{{{b{FDd}}{b{FDd}}}C`}{{{b{FDf}}{b{FDf}}}C`}{{{b{FDh}}{b{FDh}}}C`}{{{b{FDj}}{b{FDj}}}C`}{{{b{FDl}}{b{FDl}}}C`}{{{b{DDd}}{b{DDd}}}C`}{{{b{DDf}}{b{DDf}}}C`}{{{b{FDn}}{b{FDn}}}C`}{{{b{FE`}}{b{FE`}}}C`}{{{b{FEb}}{b{FEb}}}C`}{{{b{FEd}}{b{FEd}}}C`}{{{b{FEf}}{b{FEf}}}C`}{{{b{FEh}}{b{FEh}}}C`}{{{b{FEj}}{b{FEj}}}C`}{{{b{FEl}}{b{FEl}}}C`}{{{b{FEn}}{b{FEn}}}C`}{{{b{DDh}}{b{DDh}}}C`}{{{b{DDj}}{b{DDj}}}C`}{{{b{FF`}}{b{FF`}}}C`}{{{b{DDl}}{b{DDl}}}C`}{{{b{FFb}}{b{FFb}}}C`}{{{b{FFd}}{b{FFd}}}C`}{{{b{FFf}}{b{FFf}}}C`}{{{b{DDn}}{b{DDn}}}C`}{{{b{FFh}}{b{FFh}}}C`}{{{b{FFj}}{b{FFj}}}C`}{{{b{FFl}}{b{FFl}}}C`}{{{b{FFn}}{b{FFn}}}C`}{{{b{FG`}}{b{FG`}}}C`}{{{b{FGb}}{b{FGb}}}C`}{{{b{FGd}}{b{FGd}}}C`}{{{b{FGf}}{b{FGf}}}C`}{{{b{FGh}}{b{FGh}}}C`}{{{b{FGj}}{b{FGj}}}C`}{{{b{FGl}}{b{FGl}}}C`}{{{b{DE`}}{b{DE`}}}C`}{{{b{DEb}}{b{DEb}}}C`}{{{b{FGn}}{b{FGn}}}C`}{{{b{DEd}}{b{DEd}}}C`}{{{b{FH`}}{b{FH`}}}C`}{{{b{FHb}}{b{FHb}}}C`}{{{b{FHd}}{b{FHd}}}C`}{{{b{FHf}}{b{FHf}}}C`}{{{b{FHh}}{b{FHh}}}C`}{{{b{DEf}}{b{DEf}}}C`}{{{b{FHj}}{b{FHj}}}C`}{{{b{FHl}}{b{FHl}}}C`}{{{b{FHn}}{b{FHn}}}C`}{{{b{FI`}}{b{FI`}}}C`}{{{b{FIb}}{b{FIb}}}C`}{{{b{FId}}{b{FId}}}C`}{{{b{FIf}}{b{FIf}}}C`}{{{b{FIh}}{b{FIh}}}C`}{{{b{FIj}}{b{FIj}}}C`}{{{b{DEh}}{b{DEh}}}C`}{{{b{DEj}}{b{DEj}}}C`}{{{b{FIl}}{b{FIl}}}C`}{{{b{FIn}}{b{FIn}}}C`}{{{b{FJ`}}{b{FJ`}}}C`}{{{b{DEl}}{b{DEl}}}C`}{{{b{FJb}}{b{FJb}}}C`}{{{b{FJd}}{b{FJd}}}C`}{{{b{DEn}}{b{DEn}}}C`}{{{b{FJf}}{b{FJf}}}C`}{{{b{FJh}}{b{FJh}}}C`}{{{b{FJj}}{b{FJj}}}C`}{{{b{FJl}}{b{FJl}}}C`}{{{b{FJn}}{b{FJn}}}C`}{{{b{FK`}}{b{FK`}}}C`}{{{b{FKb}}{b{FKb}}}C`}{{{b{FKd}}{b{FKd}}}C`}{{{b{FKf}}{b{FKf}}}C`}{{{b{FKh}}{b{FKh}}}C`}{{{b{FKj}}{b{FKj}}}C`}{{{b{FKl}}{b{FKl}}}C`}{{{b{FKn}}{b{FKn}}}C`}{{{b{FL`}}{b{FL`}}}C`}{{{b{FLb}}{b{FLb}}}C`}{{{b{FLd}}{b{FLd}}}C`}{{{b{FLf}}{b{FLf}}}C`}{{{b{FLh}}{b{FLh}}}C`}{{{b{FLj}}{b{FLj}}}C`}{{{b{FLl}}{b{FLl}}}C`}{{{b{FLn}}{b{FLn}}}C`}{{{b{FM`}}{b{FM`}}}C`}{{{b{DF`}}{b{DF`}}}C`}{{{b{FMb}}{b{FMb}}}C`}{{{b{DFb}}{b{DFb}}}C`}{{{b{FMd}}{b{FMd}}}C`}{{{b{DFd}}{b{DFd}}}C`}{{{b{DFf}}{b{DFf}}}C`}{{{b{FMf}}{b{FMf}}}C`}{{{b{FMh}}{b{FMh}}}C`}{{{b{FMj}}{b{FMj}}}C`}{{{b{FMl}}{b{FMl}}}C`}{{{b{FMn}}{b{FMn}}}C`}{{{b{FN`}}{b{FN`}}}C`}{{{b{FNb}}{b{FNb}}}C`}{{{b{FNd}}{b{FNd}}}C`}{{{b{FNf}}{b{FNf}}}C`}{{{b{FNh}}{b{FNh}}}C`}{{{b{FNj}}{b{FNj}}}C`}{{{b{DFh}}{b{DFh}}}C`}{{{b{FNl}}{b{FNl}}}C`}{{{b{FNn}}{b{FNn}}}C`}{{{b{FO`}}{b{FO`}}}C`}{{{b{FOb}}{b{FOb}}}C`}{{{b{FOd}}{b{FOd}}}C`}{{{b{FOf}}{b{FOf}}}C`}{{{b{FOh}}{b{FOh}}}C`}{{{b{FOj}}{b{FOj}}}C`}{{{b{DFj}}{b{DFj}}}C`}{{{b{FOl}}{b{FOl}}}C`}{{{b{FOn}}{b{FOn}}}C`}{{{b{DFl}}{b{DFl}}}C`}{{{b{G@`}}{b{G@`}}}C`}{{{b{DFn}}{b{DFn}}}C`}{{{b{G@b}}{b{G@b}}}C`}{{{b{G@d}}{b{G@d}}}C`}{{{b{DG`}}{b{DG`}}}C`}{{{b{G@f}}{b{G@f}}}C`}{{{b{G@h}}{b{G@h}}}C`}{{{b{G@j}}{b{G@j}}}C`}{{{b{G@l}}{b{G@l}}}C`}`````````````{{{b{dDD`}}c}Aj{{DBf{}{{DBd{DD`}}}}}}{{{b{dDDb}}c}Aj{{DBf{}{{DBd{DDb}}}}}}{{{b{dDDd}}c}Aj{{DBf{}{{DBd{DDd}}}}}}{{{b{dDDf}}c}Aj{{DBf{}{{DBd{DDf}}}}}}{{{b{dDDh}}c}Aj{{DBf{}{{DBd{DDh}}}}}}{{{b{dDDj}}c}Aj{{DBf{}{{DBd{DDj}}}}}}{{{b{dDDl}}c}Aj{{DBf{}{{DBd{DDl}}}}}}{{{b{dDDn}}c}Aj{{DBf{}{{DBd{DDn}}}}}}{{{b{dDE`}}c}Aj{{DBf{}{{DBd{DE`}}}}}}{{{b{dDEb}}c}Aj{{DBf{}{{DBd{DEb}}}}}}{{{b{dDEd}}c}Aj{{DBf{}{{DBd{DEd}}}}}}{{{b{dDEf}}c}Aj{{DBf{}{{DBd{DEf}}}}}}{{{b{dDEh}}c}Aj{{DBf{}{{DBd{DEh}}}}}}{{{b{dDEj}}c}Aj{{DBf{}{{DBd{DEj}}}}}}{{{b{dDEl}}c}Aj{{DBf{}{{DBd{DEl}}}}}}{{{b{dDEn}}c}Aj{{DBf{}{{DBd{DEn}}}}}}{{{b{dDF`}}c}Aj{{DBf{}{{DBd{DF`}}}}}}{{{b{dDFb}}c}Aj{{DBf{}{{DBd{DFb}}}}}}{{{b{dDFd}}c}Aj{{DBf{}{{DBd{DFd}}}}}}{{{b{dDFf}}c}Aj{{DBf{}{{DBd{DFf}}}}}}{{{b{dDFh}}c}Aj{{DBf{}{{DBd{DFh}}}}}}{{{b{dDFj}}c}Aj{{DBf{}{{DBd{DFj}}}}}}{{{b{dDFl}}c}Aj{{DBf{}{{DBd{DFl}}}}}}{{{b{dDFn}}c}Aj{{DBf{}{{DBd{DFn}}}}}}{{{b{dDG`}}c}Aj{{DBf{}{{DBd{DG`}}}}}}{Bff}`````````````````````````````````````````````````{{{b{DGb}}{b{dCb}}}DBh}{{{b{DGd}}{b{dCb}}}DBh}{{{b{DGf}}{b{dCb}}}DBh}{{{b{DGh}}{b{dCb}}}DBh}{{{b{DGj}}{b{dCb}}}DBh}{{{b{DGl}}{b{dCb}}}DBh}{{{b{DGn}}{b{dCb}}}DBh}{{{b{DH`}}{b{dCb}}}DBh}{{{b{DHb}}{b{dCb}}}DBh}{{{b{DHd}}{b{dCb}}}DBh}{{{b{DHf}}{b{dCb}}}DBh}{{{b{DHh}}{b{dCb}}}DBh}{{{b{DHj}}{b{dCb}}}DBh}{{{b{DHl}}{b{dCb}}}DBh}{{{b{DHn}}{b{dCb}}}DBh}{{{b{DI`}}{b{dCb}}}DBh}{{{b{DIb}}{b{dCb}}}DBh}{{{b{DId}}{b{dCb}}}DBh}{{{b{DIf}}{b{dCb}}}DBh}{{{b{DIh}}{b{dCb}}}DBh}{{{b{DIj}}{b{dCb}}}DBh}{{{b{DIl}}{b{dCb}}}DBh}{{{b{DIn}}{b{dCb}}}DBh}{{{b{DJ`}}{b{dCb}}}DBh}{{{b{DJb}}{b{dCb}}}DBh}{{{b{DJd}}{b{dCb}}}DBh}{{{b{DJf}}{b{dCb}}}DBh}{{{b{DJh}}{b{dCb}}}DBh}{{{b{DJj}}{b{dCb}}}DBh}{{{b{DJl}}{b{dCb}}}DBh}{{{b{DJn}}{b{dCb}}}DBh}{{{b{DK`}}{b{dCb}}}DBh}{{{b{DKb}}{b{dCb}}}DBh}{{{b{DKd}}{b{dCb}}}DBh}{{{b{DKf}}{b{dCb}}}DBh}{{{b{DKh}}{b{dCb}}}DBh}{{{b{DKj}}{b{dCb}}}DBh}{{{b{DKl}}{b{dCb}}}DBh}{{{b{DKn}}{b{dCb}}}DBh}{{{b{DL`}}{b{dCb}}}DBh}{{{b{DLb}}{b{dCb}}}DBh}{{{b{DLd}}{b{dCb}}}DBh}{{{b{DLf}}{b{dCb}}}DBh}{{{b{DLh}}{b{dCb}}}DBh}{{{b{DLj}}{b{dCb}}}DBh}{{{b{DLl}}{b{dCb}}}DBh}{{{b{DLn}}{b{dCb}}}DBh}{{{b{DM`}}{b{dCb}}}DBh}{{{b{DMb}}{b{dCb}}}DBh}{{{b{DMd}}{b{dCb}}}DBh}{{{b{DMf}}{b{dCb}}}DBh}{{{b{DMh}}{b{dCb}}}DBh}{{{b{DMj}}{b{dCb}}}DBh}{{{b{DMl}}{b{dCb}}}DBh}{{{b{DMn}}{b{dCb}}}DBh}{{{b{DN`}}{b{dCb}}}DBh}{{{b{DNb}}{b{dCb}}}DBh}{{{b{DNd}}{b{dCb}}}DBh}{{{b{DNf}}{b{dCb}}}DBh}{{{b{DNh}}{b{dCb}}}DBh}{{{b{DNj}}{b{dCb}}}DBh}{{{b{DNl}}{b{dCb}}}DBh}{{{b{DNn}}{b{dCb}}}DBh}{{{b{DO`}}{b{dCb}}}DBh}{{{b{DOb}}{b{dCb}}}DBh}{{{b{DOd}}{b{dCb}}}DBh}{{{b{DOf}}{b{dCb}}}DBh}{{{b{DOh}}{b{dCb}}}DBh}{{{b{DOj}}{b{dCb}}}DBh}{{{b{DOl}}{b{dCb}}}DBh}{{{b{DOn}}{b{dCb}}}DBh}{{{b{E@`}}{b{dCb}}}DBh}{{{b{E@b}}{b{dCb}}}DBh}{{{b{E@d}}{b{dCb}}}DBh}{{{b{E@f}}{b{dCb}}}DBh}{{{b{E@h}}{b{dCb}}}DBh}{{{b{E@j}}{b{dCb}}}DBh}{{{b{E@l}}{b{dCb}}}DBh}{{{b{E@n}}{b{dCb}}}DBh}{{{b{EA`}}{b{dCb}}}DBh}{{{b{EAb}}{b{dCb}}}DBh}{{{b{EAd}}{b{dCb}}}DBh}{{{b{EAf}}{b{dCb}}}DBh}{{{b{EAh}}{b{dCb}}}DBh}{{{b{EAj}}{b{dCb}}}DBh}{{{b{EAl}}{b{dCb}}}DBh}{{{b{EAn}}{b{dCb}}}DBh}{{{b{EB`}}{b{dCb}}}DBh}{{{b{EBb}}{b{dCb}}}DBh}{{{b{EBd}}{b{dCb}}}DBh}{{{b{EBf}}{b{dCb}}}DBh}{{{b{EBh}}{b{dCb}}}DBh}{{{b{EBj}}{b{dCb}}}DBh}{{{b{EBl}}{b{dCb}}}DBh}{{{b{EBn}}{b{dCb}}}DBh}{{{b{EC`}}{b{dCb}}}DBh}{{{b{ECb}}{b{dCb}}}DBh}{{{b{ECd}}{b{dCb}}}DBh}{{{b{ECf}}{b{dCb}}}DBh}{{{b{ECh}}{b{dCb}}}DBh}{{{b{ECj}}{b{dCb}}}DBh}{{{b{ECl}}{b{dCb}}}DBh}{{{b{ECn}}{b{dCb}}}DBh}{{{b{ED`}}{b{dCb}}}DBh}{{{b{EDb}}{b{dCb}}}DBh}{{{b{EDd}}{b{dCb}}}DBh}{{{b{EDf}}{b{dCb}}}DBh}{{{b{EDh}}{b{dCb}}}DBh}{{{b{EDj}}{b{dCb}}}DBh}{{{b{EDl}}{b{dCb}}}DBh}{{{b{EDn}}{b{dCb}}}DBh}{{{b{EE`}}{b{dCb}}}DBh}{{{b{EEb}}{b{dCb}}}DBh}{{{b{EEd}}{b{dCb}}}DBh}{{{b{EEf}}{b{dCb}}}DBh}{{{b{EEh}}{b{dCb}}}DBh}{{{b{EEj}}{b{dCb}}}DBh}{{{b{EEl}}{b{dCb}}}DBh}{{{b{EEn}}{b{dCb}}}DBh}{{{b{EF`}}{b{dCb}}}DBh}{{{b{EFb}}{b{dCb}}}DBh}{{{b{EFd}}{b{dCb}}}DBh}{{{b{EFf}}{b{dCb}}}DBh}{{{b{EFh}}{b{dCb}}}DBh}{{{b{EFj}}{b{dCb}}}DBh}{{{b{EFl}}{b{dCb}}}DBh}{{{b{EFn}}{b{dCb}}}DBh}{{{b{EG`}}{b{dCb}}}DBh}{{{b{EGb}}{b{dCb}}}DBh}{{{b{EGd}}{b{dCb}}}DBh}{{{b{EGf}}{b{dCb}}}DBh}{{{b{EGh}}{b{dCb}}}DBh}{{{b{EGj}}{b{dCb}}}DBh}{{{b{EGl}}{b{dCb}}}DBh}{{{b{EGn}}{b{dCb}}}DBh}{{{b{EH`}}{b{dCb}}}DBh}{{{b{EHb}}{b{dCb}}}DBh}{{{b{EHd}}{b{dCb}}}DBh}{{{b{EHf}}{b{dCb}}}DBh}{{{b{EHh}}{b{dCb}}}DBh}{{{b{EHj}}{b{dCb}}}DBh}{{{b{EHl}}{b{dCb}}}DBh}{{{b{EHn}}{b{dCb}}}DBh}{{{b{EI`}}{b{dCb}}}DBh}{{{b{EIb}}{b{dCb}}}DBh}{{{b{EId}}{b{dCb}}}DBh}{{{b{EIf}}{b{dCb}}}DBh}{{{b{EIh}}{b{dCb}}}DBh}{{{b{EIj}}{b{dCb}}}DBh}{{{b{EIl}}{b{dCb}}}DBh}{{{b{EIn}}{b{dCb}}}DBh}{{{b{EJ`}}{b{dCb}}}DBh}{{{b{EJb}}{b{dCb}}}DBh}{{{b{EJd}}{b{dCb}}}DBh}{{{b{EJf}}{b{dCb}}}DBh}{{{b{EJh}}{b{dCb}}}DBh}{{{b{EJj}}{b{dCb}}}DBh}{{{b{EJl}}{b{dCb}}}DBh}{{{b{EJn}}{b{dCb}}}DBh}{{{b{EK`}}{b{dCb}}}DBh}{{{b{EKb}}{b{dCb}}}DBh}{{{b{EKd}}{b{dCb}}}DBh}{{{b{EKf}}{b{dCb}}}DBh}{{{b{EKh}}{b{dCb}}}DBh}{{{b{EKj}}{b{dCb}}}DBh}{{{b{EKl}}{b{dCb}}}DBh}{{{b{EKn}}{b{dCb}}}DBh}{{{b{EL`}}{b{dCb}}}DBh}{{{b{ELb}}{b{dCb}}}DBh}{{{b{ELd}}{b{dCb}}}DBh}{{{b{ELf}}{b{dCb}}}DBh}{{{b{ELh}}{b{dCb}}}DBh}{{{b{ELj}}{b{dCb}}}DBh}{{{b{ELl}}{b{dCb}}}DBh}{{{b{ELn}}{b{dCb}}}DBh}{{{b{EM`}}{b{dCb}}}DBh}{{{b{EMb}}{b{dCb}}}DBh}{{{b{EMd}}{b{dCb}}}DBh}{{{b{EMf}}{b{dCb}}}DBh}{{{b{EMh}}{b{dCb}}}DBh}{{{b{EMj}}{b{dCb}}}DBh}{{{b{EMl}}{b{dCb}}}DBh}{{{b{EMn}}{b{dCb}}}DBh}{{{b{EN`}}{b{dCb}}}DBh}{{{b{ENb}}{b{dCb}}}DBh}{{{b{ENd}}{b{dCb}}}DBh}{{{b{ENf}}{b{dCb}}}DBh}{{{b{ENh}}{b{dCb}}}DBh}{{{b{ENj}}{b{dCb}}}DBh}{{{b{ENl}}{b{dCb}}}DBh}{{{b{ENn}}{b{dCb}}}DBh}{{{b{EO`}}{b{dCb}}}DBh}{{{b{EOb}}{b{dCb}}}DBh}{{{b{EOd}}{b{dCb}}}DBh}{{{b{EOf}}{b{dCb}}}DBh}{{{b{EOh}}{b{dCb}}}DBh}{{{b{EOj}}{b{dCb}}}DBh}{{{b{EOl}}{b{dCb}}}DBh}{{{b{EOn}}{b{dCb}}}DBh}{{{b{F@`}}{b{dCb}}}DBh}{{{b{F@b}}{b{dCb}}}DBh}{{{b{F@d}}{b{dCb}}}DBh}{{{b{F@f}}{b{dCb}}}DBh}{{{b{F@h}}{b{dCb}}}DBh}{{{b{F@j}}{b{dCb}}}DBh}{{{b{F@l}}{b{dCb}}}DBh}{{{b{F@n}}{b{dCb}}}DBh}{{{b{FA`}}{b{dCb}}}DBh}{{{b{FAb}}{b{dCb}}}DBh}{{{b{FAd}}{b{dCb}}}DBh}{{{b{FAf}}{b{dCb}}}DBh}{{{b{FAh}}{b{dCb}}}DBh}{{{b{FAj}}{b{dCb}}}DBh}{{{b{FAl}}{b{dCb}}}DBh}{{{b{FAn}}{b{dCb}}}DBh}{{{b{FB`}}{b{dCb}}}DBh}{{{b{FBb}}{b{dCb}}}DBh}{{{b{FBd}}{b{dCb}}}DBh}{{{b{FBf}}{b{dCb}}}DBh}{{{b{FBh}}{b{dCb}}}DBh}{{{b{FBj}}{b{dCb}}}DBh}{{{b{FBl}}{b{dCb}}}DBh}{{{b{FBn}}{b{dCb}}}DBh}{{{b{FC`}}{b{dCb}}}DBh}{{{b{FCb}}{b{dCb}}}DBh}{{{b{FCd}}{b{dCb}}}DBh}{{{b{FCf}}{b{dCb}}}DBh}{{{b{FCh}}{b{dCb}}}DBh}{{{b{DD`}}{b{dCb}}}DBh}0000{{{b{FCj}}{b{dCb}}}DBh}{{{b{DDb}}{b{dCb}}}DBh}0000{{{b{FCl}}{b{dCb}}}DBh}{{{b{FCn}}{b{dCb}}}DBh}{{{b{FD`}}{b{dCb}}}DBh}{{{b{FDb}}{b{dCb}}}DBh}{{{b{FDd}}{b{dCb}}}DBh}{{{b{FDf}}{b{dCb}}}DBh}{{{b{FDh}}{b{dCb}}}DBh}{{{b{FDj}}{b{dCb}}}DBh}{{{b{FDl}}{b{dCb}}}DBh}{{{b{DDd}}{b{dCb}}}DBh}0000{{{b{DDf}}{b{dCb}}}DBh}0000{{{b{FDn}}{b{dCb}}}DBh}{{{b{FE`}}{b{dCb}}}DBh}{{{b{FEb}}{b{dCb}}}DBh}{{{b{FEd}}{b{dCb}}}DBh}{{{b{FEf}}{b{dCb}}}DBh}{{{b{FEh}}{b{dCb}}}DBh}{{{b{FEj}}{b{dCb}}}DBh}{{{b{FEl}}{b{dCb}}}DBh}{{{b{FEn}}{b{dCb}}}DBh}{{{b{DDh}}{b{dCb}}}DBh}0000{{{b{DDj}}{b{dCb}}}DBh}0000{{{b{FF`}}{b{dCb}}}DBh}{{{b{DDl}}{b{dCb}}}DBh}0000{{{b{FFb}}{b{dCb}}}DBh}{{{b{FFd}}{b{dCb}}}DBh}{{{b{FFf}}{b{dCb}}}DBh}{{{b{DDn}}{b{dCb}}}DBh}0000{{{b{FFh}}{b{dCb}}}DBh}{{{b{FFj}}{b{dCb}}}DBh}{{{b{FFl}}{b{dCb}}}DBh}{{{b{FFn}}{b{dCb}}}DBh}{{{b{FG`}}{b{dCb}}}DBh}{{{b{FGb}}{b{dCb}}}DBh}{{{b{FGd}}{b{dCb}}}DBh}{{{b{FGf}}{b{dCb}}}DBh}{{{b{FGh}}{b{dCb}}}DBh}{{{b{FGj}}{b{dCb}}}DBh}{{{b{FGl}}{b{dCb}}}DBh}{{{b{DE`}}{b{dCb}}}DBh}0000{{{b{DEb}}{b{dCb}}}DBh}0000{{{b{FGn}}{b{dCb}}}DBh}{{{b{DEd}}{b{dCb}}}DBh}0000{{{b{FH`}}{b{dCb}}}DBh}{{{b{FHb}}{b{dCb}}}DBh}{{{b{FHd}}{b{dCb}}}DBh}{{{b{FHf}}{b{dCb}}}DBh}{{{b{FHh}}{b{dCb}}}DBh}{{{b{DEf}}{b{dCb}}}DBh}0000{{{b{FHj}}{b{dCb}}}DBh}{{{b{FHl}}{b{dCb}}}DBh}{{{b{FHn}}{b{dCb}}}DBh}{{{b{FI`}}{b{dCb}}}DBh}{{{b{FIb}}{b{dCb}}}DBh}{{{b{FId}}{b{dCb}}}DBh}{{{b{FIf}}{b{dCb}}}DBh}{{{b{FIh}}{b{dCb}}}DBh}{{{b{FIj}}{b{dCb}}}DBh}{{{b{DEh}}{b{dCb}}}DBh}0000{{{b{DEj}}{b{dCb}}}DBh}0000{{{b{FIl}}{b{dCb}}}DBh}{{{b{FIn}}{b{dCb}}}DBh}{{{b{FJ`}}{b{dCb}}}DBh}{{{b{DEl}}{b{dCb}}}DBh}0000{{{b{FJb}}{b{dCb}}}DBh}{{{b{FJd}}{b{dCb}}}DBh}{{{b{DEn}}{b{dCb}}}DBh}0000{{{b{FJf}}{b{dCb}}}DBh}{{{b{FJh}}{b{dCb}}}DBh}{{{b{FJj}}{b{dCb}}}DBh}{{{b{FJl}}{b{dCb}}}DBh}{{{b{FJn}}{b{dCb}}}DBh}{{{b{FK`}}{b{dCb}}}DBh}{{{b{FKb}}{b{dCb}}}DBh}{{{b{FKd}}{b{dCb}}}DBh}{{{b{FKf}}{b{dCb}}}DBh}{{{b{FKh}}{b{dCb}}}DBh}{{{b{FKj}}{b{dCb}}}DBh}{{{b{FKl}}{b{dCb}}}DBh}{{{b{FKn}}{b{dCb}}}DBh}{{{b{FL`}}{b{dCb}}}DBh}{{{b{FLb}}{b{dCb}}}DBh}{{{b{FLd}}{b{dCb}}}DBh}{{{b{FLf}}{b{dCb}}}DBh}{{{b{FLh}}{b{dCb}}}DBh}{{{b{FLj}}{b{dCb}}}DBh}{{{b{FLl}}{b{dCb}}}DBh}{{{b{FLn}}{b{dCb}}}DBh}{{{b{FM`}}{b{dCb}}}DBh}{{{b{DF`}}{b{dCb}}}DBh}0000{{{b{FMb}}{b{dCb}}}DBh}{{{b{DFb}}{b{dCb}}}DBh}0000{{{b{FMd}}{b{dCb}}}DBh}{{{b{DFd}}{b{dCb}}}DBh}0000{{{b{DFf}}{b{dCb}}}DBh}0000{{{b{FMf}}{b{dCb}}}DBh}{{{b{FMh}}{b{dCb}}}DBh}{{{b{FMj}}{b{dCb}}}DBh}{{{b{FMl}}{b{dCb}}}DBh}{{{b{FMn}}{b{dCb}}}DBh}{{{b{FN`}}{b{dCb}}}DBh}{{{b{FNb}}{b{dCb}}}DBh}{{{b{FNd}}{b{dCb}}}DBh}{{{b{FNf}}{b{dCb}}}DBh}{{{b{FNh}}{b{dCb}}}DBh}{{{b{FNj}}{b{dCb}}}DBh}{{{b{DFh}}{b{dCb}}}DBh}0000{{{b{FNl}}{b{dCb}}}DBh}{{{b{FNn}}{b{dCb}}}DBh}{{{b{FO`}}{b{dCb}}}DBh}{{{b{FOb}}{b{dCb}}}DBh}{{{b{FOd}}{b{dCb}}}DBh}{{{b{FOf}}{b{dCb}}}DBh}{{{b{FOh}}{b{dCb}}}DBh}{{{b{FOj}}{b{dCb}}}DBh}{{{b{DFj}}{b{dCb}}}DBh}0000{{{b{FOl}}{b{dCb}}}DBh}{{{b{FOn}}{b{dCb}}}DBh}{{{b{DFl}}{b{dCb}}}DBh}0000{{{b{G@`}}{b{dCb}}}DBh}{{{b{DFn}}{b{dCb}}}DBh}0000{{{b{G@b}}{b{dCb}}}DBh}{{{b{G@d}}{b{dCb}}}DBh}{{{b{DG`}}{b{dCb}}}DBh}0000{{{b{G@f}}{b{dCb}}}DBh}{{{b{G@h}}{b{dCb}}}DBh}{{{b{G@j}}{b{dCb}}}DBh}{{{b{G@l}}{b{dCb}}}DBh}``````````````{cc{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{j{{DBj{DD`}}}}{Hl{{DBj{DDb}}}}{Bf{{DBj{DDd}}}}{f{{DBj{DDf}}}}{f{{DBj{DDh}}}}{j{{DBj{DDj}}}}{f{{DBj{DDl}}}}{f{{DBj{DDn}}}}{Bf{{DBj{DE`}}}}{j{{DBj{DEb}}}}{Bf{{DBj{DEd}}}}{Bf{{DBj{DEf}}}}{Bf{{DBj{DEh}}}}{j{{DBj{DEj}}}}{j{{DBj{DEl}}}}{j{{DBj{DEn}}}}{Hl{{DBj{DF`}}}}{j{{DBj{DFb}}}}{j{{DBj{DFd}}}}{Bf{{DBj{DFf}}}}{j{{DBj{DFh}}}}{j{{DBj{DFj}}}}{j{{DBj{DFl}}}}{f{{DBj{DFn}}}}{Bf{{DBj{DG`}}}}{jDD`}{HlDDb}{BfDDd}{fDDf}{fDDh}{jDDj}{fDDl}{fDDn}{BfDE`}{jDEb}{BfDEd}{BfDEf}{BfDEh}{jDEj}{jDEl}{jDEn}{HlDF`}{jDFb}{jDFd}{BfDFf}{jDFh}{jDFj}{jDFl}{fDFn}{BfDG`}{jDD`}{HlDDb}{BfDDd}{fDDf}{fDDh}{jDDj}{fDDl}{fDDn}{BfDE`}{jDEb}{BfDEd}{BfDEf}{BfDEh}{jDEj}{jDEl}{jDEn}{HlDF`}{jDFb}{jDFd}{BfDFf}{jDFh}{jDFj}{jDFl}{fDFn}{BfDG`}{DBl{{DBj{FBn}}}}{DBl{{DBj{FC`}}}}{DBl{{DBj{FCb}}}}{DBl{{DBj{FCd}}}}{DBl{{DBj{FCf}}}}{DBl{{DBj{FCh}}}}{DBl{{DBj{FCj}}}}{DBl{{DBj{FCl}}}}{DBl{{DBj{FCn}}}}{DBl{{DBj{FD`}}}}{DBl{{DBj{FDb}}}}{DBl{{DBj{FDd}}}}{DBl{{DBj{FDf}}}}{DBl{{DBj{FDh}}}}{DBl{{DBj{FDj}}}}{DBl{{DBj{FDl}}}}{DBl{{DBj{FDn}}}}{DBl{{DBj{FE`}}}}{DBl{{DBj{FEb}}}}{DBl{{DBj{FEd}}}}{DBl{{DBj{FEf}}}}{DBl{{DBj{FEh}}}}{DBl{{DBj{FEj}}}}{DBl{{DBj{FEl}}}}{DBl{{DBj{FEn}}}}{DBl{{DBj{FF`}}}}{DBl{{DBj{FFb}}}}{DBl{{DBj{FFd}}}}{DBl{{DBj{FFf}}}}{DBl{{DBj{FFh}}}}{DBl{{DBj{FFj}}}}{DBl{{DBj{FFl}}}}{DBl{{DBj{FFn}}}}{DBl{{DBj{FG`}}}}{DBl{{DBj{FGb}}}}{DBl{{DBj{FGd}}}}{DBl{{DBj{FGf}}}}{DBl{{DBj{FGh}}}}{DBl{{DBj{FGj}}}}{DBl{{DBj{FGl}}}}{DBl{{DBj{FGn}}}}{DBl{{DBj{FH`}}}}{DBl{{DBj{FHb}}}}{DBl{{DBj{FHd}}}}{DBl{{DBj{FHf}}}}{DBl{{DBj{FHh}}}}{DBl{{DBj{FHj}}}}{DBl{{DBj{FHl}}}}{DBl{{DBj{FHn}}}}{DBl{{DBj{FI`}}}}{DBl{{DBj{FIb}}}}{DBl{{DBj{FId}}}}{DBl{{DBj{FIf}}}}{DBl{{DBj{FIh}}}}{DBl{{DBj{FIj}}}}{DBl{{DBj{FIl}}}}{DBl{{DBj{FIn}}}}{DBl{{DBj{FJ`}}}}{DBl{{DBj{FJb}}}}{DBl{{DBj{FJd}}}}{DBl{{DBj{FJf}}}}{DBl{{DBj{FJh}}}}{DBl{{DBj{FJj}}}}{DBl{{DBj{FJl}}}}{DBl{{DBj{FJn}}}}{DBl{{DBj{FK`}}}}{DBl{{DBj{FKb}}}}{DBl{{DBj{FKd}}}}{DBl{{DBj{FKf}}}}{DBl{{DBj{FKh}}}}{DBl{{DBj{FKj}}}}{DBl{{DBj{FKl}}}}{DBl{{DBj{FKn}}}}{DBl{{DBj{FL`}}}}{DBl{{DBj{FLb}}}}{DBl{{DBj{FLd}}}}{DBl{{DBj{FLf}}}}{DBl{{DBj{FLh}}}}{DBl{{DBj{FLj}}}}{DBl{{DBj{FLl}}}}{DBl{{DBj{FLn}}}}{DBl{{DBj{FM`}}}}{DBl{{DBj{FMb}}}}{DBl{{DBj{FMd}}}}{DBl{{DBj{FMf}}}}{DBl{{DBj{FMh}}}}{DBl{{DBj{FMj}}}}{DBl{{DBj{FMl}}}}{DBl{{DBj{FMn}}}}{DBl{{DBj{FN`}}}}{DBl{{DBj{FNb}}}}{DBl{{DBj{FNd}}}}{DBl{{DBj{FNf}}}}{DBl{{DBj{FNh}}}}{DBl{{DBj{FNj}}}}{DBl{{DBj{FNl}}}}{DBl{{DBj{FNn}}}}{DBl{{DBj{FO`}}}}{DBl{{DBj{FOb}}}}{DBl{{DBj{FOd}}}}{DBl{{DBj{FOf}}}}{DBl{{DBj{FOh}}}}{DBl{{DBj{FOj}}}}{DBl{{DBj{FOl}}}}{DBl{{DBj{FOn}}}}{DBl{{DBj{G@`}}}}{DBl{{DBj{G@b}}}}{DBl{{DBj{G@d}}}}{DBl{{DBj{G@f}}}}{DBl{{DBj{G@h}}}}{DBl{{DBj{G@j}}}}{DBl{{DBj{G@l}}}}{cDD`{{DBf{}{{DBd{DD`}}}}}}{cDDb{{DBf{}{{DBd{DDb}}}}}}{cDDd{{DBf{}{{DBd{DDd}}}}}}{cDDf{{DBf{}{{DBd{DDf}}}}}}{cDDh{{DBf{}{{DBd{DDh}}}}}}{cDDj{{DBf{}{{DBd{DDj}}}}}}{cDDl{{DBf{}{{DBd{DDl}}}}}}{cDDn{{DBf{}{{DBd{DDn}}}}}}{cDE`{{DBf{}{{DBd{DE`}}}}}}{cDEb{{DBf{}{{DBd{DEb}}}}}}{cDEd{{DBf{}{{DBd{DEd}}}}}}{cDEf{{DBf{}{{DBd{DEf}}}}}}{cDEh{{DBf{}{{DBd{DEh}}}}}}{cDEj{{DBf{}{{DBd{DEj}}}}}}{cDEl{{DBf{}{{DBd{DEl}}}}}}{cDEn{{DBf{}{{DBd{DEn}}}}}}{cDF`{{DBf{}{{DBd{DF`}}}}}}{cDFb{{DBf{}{{DBd{DFb}}}}}}{cDFd{{DBf{}{{DBd{DFd}}}}}}{cDFf{{DBf{}{{DBd{DFf}}}}}}{cDFh{{DBf{}{{DBd{DFh}}}}}}{cDFj{{DBf{}{{DBd{DFj}}}}}}{cDFl{{DBf{}{{DBd{DFl}}}}}}{cDFn{{DBf{}{{DBd{DFn}}}}}}{cDG`{{DBf{}{{DBd{DG`}}}}}}{Hl{{DBj{FBn}}}}{Hl{{DBj{FC`}}}}{Hl{{DBj{FCb}}}}{Hl{{DBj{FCd}}}}{Hl{{DBj{FCf}}}}{Hl{{DBj{FCh}}}}{Hl{{DBj{FCj}}}}{Hl{{DBj{FCl}}}}{Hl{{DBj{FCn}}}}{Hl{{DBj{FD`}}}}{Hl{{DBj{FDb}}}}{Hl{{DBj{FDd}}}}{Hl{{DBj{FDf}}}}{Hl{{DBj{FDh}}}}{Hl{{DBj{FDj}}}}{Hl{{DBj{FDl}}}}{Hl{{DBj{FDn}}}}{Hl{{DBj{FE`}}}}{Hl{{DBj{FEb}}}}{Hl{{DBj{FEd}}}}{Hl{{DBj{FEf}}}}{Hl{{DBj{FEh}}}}{Hl{{DBj{FEj}}}}{Hl{{DBj{FEl}}}}{Hl{{DBj{FEn}}}}{Hl{{DBj{FF`}}}}{Hl{{DBj{FFb}}}}{Hl{{DBj{FFd}}}}{Hl{{DBj{FFf}}}}{Hl{{DBj{FFh}}}}{Hl{{DBj{FFj}}}}{Hl{{DBj{FFl}}}}{Hl{{DBj{FFn}}}}{Hl{{DBj{FG`}}}}{Hl{{DBj{FGb}}}}{Hl{{DBj{FGd}}}}{Hl{{DBj{FGf}}}}{Hl{{DBj{FGh}}}}{Hl{{DBj{FGj}}}}{Hl{{DBj{FGl}}}}{Hl{{DBj{FGn}}}}{Hl{{DBj{FH`}}}}{Hl{{DBj{FHb}}}}{Hl{{DBj{FHd}}}}{Hl{{DBj{FHf}}}}{Hl{{DBj{FHh}}}}{Hl{{DBj{FHj}}}}{Hl{{DBj{FHl}}}}{Hl{{DBj{FHn}}}}{Hl{{DBj{FI`}}}}{Hl{{DBj{FIb}}}}{Hl{{DBj{FId}}}}{Hl{{DBj{FIf}}}}{Hl{{DBj{FIh}}}}{Hl{{DBj{FIj}}}}{Hl{{DBj{FIl}}}}{Hl{{DBj{FIn}}}}{Hl{{DBj{FJ`}}}}{Hl{{DBj{FJb}}}}{Hl{{DBj{FJd}}}}{Hl{{DBj{FJf}}}}{Hl{{DBj{FJh}}}}{Hl{{DBj{FJj}}}}{Hl{{DBj{FJl}}}}{Hl{{DBj{FJn}}}}{Hl{{DBj{FK`}}}}{Hl{{DBj{FKb}}}}{Hl{{DBj{FKd}}}}{Hl{{DBj{FKf}}}}{Hl{{DBj{FKh}}}}{Hl{{DBj{FKj}}}}{Hl{{DBj{FKl}}}}{Hl{{DBj{FKn}}}}{Hl{{DBj{FL`}}}}{Hl{{DBj{FLb}}}}{Hl{{DBj{FLd}}}}{Hl{{DBj{FLf}}}}{Hl{{DBj{FLh}}}}{Hl{{DBj{FLj}}}}{Hl{{DBj{FLl}}}}{Hl{{DBj{FLn}}}}{Hl{{DBj{FM`}}}}{Hl{{DBj{FMb}}}}{Hl{{DBj{FMd}}}}{Hl{{DBj{FMf}}}}{Hl{{DBj{FMh}}}}{Hl{{DBj{FMj}}}}{Hl{{DBj{FMl}}}}{Hl{{DBj{FMn}}}}{Hl{{DBj{FN`}}}}{Hl{{DBj{FNb}}}}{Hl{{DBj{FNd}}}}{Hl{{DBj{FNf}}}}{Hl{{DBj{FNh}}}}{Hl{{DBj{FNj}}}}{Hl{{DBj{FNl}}}}{Hl{{DBj{FNn}}}}{Hl{{DBj{FO`}}}}{Hl{{DBj{FOb}}}}{Hl{{DBj{FOd}}}}{Hl{{DBj{FOf}}}}{Hl{{DBj{FOh}}}}{Hl{{DBj{FOj}}}}{Hl{{DBj{FOl}}}}{Hl{{DBj{FOn}}}}{Hl{{DBj{G@`}}}}{Hl{{DBj{G@b}}}}{Hl{{DBj{G@d}}}}{Hl{{DBj{G@f}}}}{Hl{{DBj{G@h}}}}{Hl{{DBj{G@j}}}}{Hl{{DBj{G@l}}}}``````````````````````````````{{{b{DD`}}{b{dc}}}AjDBn}{{{b{DDb}}{b{dc}}}AjDBn}{{{b{DDd}}{b{dc}}}AjDBn}{{{b{DDf}}{b{dc}}}AjDBn}{{{b{DDh}}{b{dc}}}AjDBn}{{{b{DDj}}{b{dc}}}AjDBn}{{{b{DDl}}{b{dc}}}AjDBn}{{{b{DDn}}{b{dc}}}AjDBn}{{{b{DE`}}{b{dc}}}AjDBn}{{{b{DEb}}{b{dc}}}AjDBn}{{{b{DEd}}{b{dc}}}AjDBn}{{{b{DEf}}{b{dc}}}AjDBn}{{{b{DEh}}{b{dc}}}AjDBn}{{{b{DEj}}{b{dc}}}AjDBn}{{{b{DEl}}{b{dc}}}AjDBn}{{{b{DEn}}{b{dc}}}AjDBn}{{{b{DF`}}{b{dc}}}AjDBn}{{{b{DFb}}{b{dc}}}AjDBn}{{{b{DFd}}{b{dc}}}AjDBn}{{{b{DFf}}{b{dc}}}AjDBn}{{{b{DFh}}{b{dc}}}AjDBn}{{{b{DFj}}{b{dc}}}AjDBn}{{{b{DFl}}{b{dc}}}AjDBn}{{{b{DFn}}{b{dc}}}AjDBn}{{{b{DG`}}{b{dc}}}AjDBn}```````````````````````````````````````````````````````````````{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}``````````````{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}{{{b{DD`}}DD`}C`}{{{b{DDb}}DDb}C`}{{{b{DDd}}DDd}C`}{{{b{DDf}}DDf}C`}{{{b{DDh}}DDh}C`}{{{b{DDj}}DDj}C`}{{{b{DDl}}DDl}C`}{{{b{DDn}}DDn}C`}{{{b{DE`}}DE`}C`}{{{b{DEb}}DEb}C`}{{{b{DEd}}DEd}C`}{{{b{DEf}}DEf}C`}{{{b{DEh}}DEh}C`}{{{b{DEj}}DEj}C`}{{{b{DEl}}DEl}C`}{{{b{DEn}}DEn}C`}{{{b{DF`}}DF`}C`}{{{b{DFb}}DFb}C`}{{{b{DFd}}DFd}C`}{{{b{DFf}}DFf}C`}{{{b{DFh}}DFh}C`}{{{b{DFj}}DFj}C`}{{{b{DFl}}DFl}C`}{{{b{DFn}}DFn}C`}{{{b{DG`}}DG`}C`}`{ce{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{DD`}}}C`}{{{b{DDb}}}C`}{{{b{DDd}}}C`}{{{b{DDf}}}C`}{{{b{DDh}}}C`}{{{b{DDj}}}C`}{{{b{DDl}}}C`}{{{b{DDn}}}C`}{{{b{DE`}}}C`}{{{b{DEb}}}C`}{{{b{DEd}}}C`}{{{b{DEf}}}C`}{{{b{DEh}}}C`}{{{b{DEj}}}C`}{{{b{DEl}}}C`}{{{b{DEn}}}C`}{{{b{DF`}}}C`}{{{b{DFb}}}C`}{{{b{DFd}}}C`}{{{b{DFf}}}C`}{{{b{DFh}}}C`}{{{b{DFj}}}C`}{{{b{DFl}}}C`}{{{b{DFn}}}C`}{{{b{DG`}}}C`}{{{b{DD`}}}C`}{{{b{DDb}}}C`}{{{b{DDd}}}C`}{{{b{DDf}}}C`}{{{b{DDh}}}C`}{{{b{DDj}}}C`}{{{b{DDl}}}C`}{{{b{DDn}}}C`}{{{b{DE`}}}C`}{{{b{DEb}}}C`}{{{b{DEd}}}C`}{{{b{DEf}}}C`}{{{b{DEh}}}C`}{{{b{DEj}}}C`}{{{b{DEl}}}C`}{{{b{DEn}}}C`}{{{b{DF`}}}C`}{{{b{DFb}}}C`}{{{b{DFd}}}C`}{{{b{DFf}}}C`}{{{b{DFh}}}C`}{{{b{DFj}}}C`}{{{b{DFl}}}C`}{{{b{DFn}}}C`}{{{b{DG`}}}C`}```````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{DGb}}}Bf}`{{{b{Al}}}{{Bd{Bf{b{Al}}}}}}{{{b{DGb}}}{{b{Al}}}}```````````````````````````````````````{DD`DD`}{DDbDDb}{DDdDDd}{DDfDDf}{DDhDDh}{DDjDDj}{DDlDDl}{DDnDDn}{DE`DE`}{DEbDEb}{DEdDEd}{DEfDEf}{DEhDEh}{DEjDEj}{DElDEl}{DEnDEn}{DF`DF`}{DFbDFb}{DFdDFd}{DFfDFf}{DFhDFh}{DFjDFj}{DFlDFl}{DFnDFn}{DG`DG`}```````````````````````````````````````````````````````````````````````````````````````````{{AbBf{b{{h{f}}}}}{{Bd{DGbBl}}}}{{{b{DD`}}{b{DD`}}}{{DBj{DBb}}}}{{{b{DDb}}{b{DDb}}}{{DBj{DBb}}}}{{{b{DDd}}{b{DDd}}}{{DBj{DBb}}}}{{{b{DDf}}{b{DDf}}}{{DBj{DBb}}}}{{{b{DDh}}{b{DDh}}}{{DBj{DBb}}}}{{{b{DDj}}{b{DDj}}}{{DBj{DBb}}}}{{{b{DDl}}{b{DDl}}}{{DBj{DBb}}}}{{{b{DDn}}{b{DDn}}}{{DBj{DBb}}}}{{{b{DE`}}{b{DE`}}}{{DBj{DBb}}}}{{{b{DEb}}{b{DEb}}}{{DBj{DBb}}}}{{{b{DEd}}{b{DEd}}}{{DBj{DBb}}}}{{{b{DEf}}{b{DEf}}}{{DBj{DBb}}}}{{{b{DEh}}{b{DEh}}}{{DBj{DBb}}}}{{{b{DEj}}{b{DEj}}}{{DBj{DBb}}}}{{{b{DEl}}{b{DEl}}}{{DBj{DBb}}}}{{{b{DEn}}{b{DEn}}}{{DBj{DBb}}}}{{{b{DF`}}{b{DF`}}}{{DBj{DBb}}}}{{{b{DFb}}{b{DFb}}}{{DBj{DBb}}}}{{{b{DFd}}{b{DFd}}}{{DBj{DBb}}}}{{{b{DFf}}{b{DFf}}}{{DBj{DBb}}}}{{{b{DFh}}{b{DFh}}}{{DBj{DBb}}}}{{{b{DFj}}{b{DFj}}}{{DBj{DBb}}}}{{{b{DFl}}{b{DFl}}}{{DBj{DBb}}}}{{{b{DFn}}{b{DFn}}}{{DBj{DBb}}}}{{{b{DG`}}{b{DG`}}}{{DBj{DBb}}}}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}`````````````````````````````````````````````````````````````````````````````````````````````````{{{b{DGb}}Ab{b{d{h{f}}}}}D`}{{{b{DGd}}Ab{b{d{h{f}}}}}D`}{{{b{DGf}}Ab{b{d{h{f}}}}}D`}{{{b{DGh}}Ab{b{d{h{f}}}}}D`}{{{b{DGj}}Ab{b{d{h{f}}}}}D`}{{{b{DGl}}Ab{b{d{h{f}}}}}D`}{{{b{DGn}}Ab{b{d{h{f}}}}}D`}{{{b{DH`}}Ab{b{d{h{f}}}}}D`}{{{b{DHb}}Ab{b{d{h{f}}}}}D`}{{{b{DHd}}Ab{b{d{h{f}}}}}D`}{{{b{DHf}}Ab{b{d{h{f}}}}}D`}{{{b{DHh}}Ab{b{d{h{f}}}}}D`}{{{b{DHj}}Ab{b{d{h{f}}}}}D`}{{{b{DHl}}Ab{b{d{h{f}}}}}D`}{{{b{DHn}}Ab{b{d{h{f}}}}}D`}{{{b{DI`}}Ab{b{d{h{f}}}}}D`}{{{b{DIb}}Ab{b{d{h{f}}}}}D`}{{{b{DId}}Ab{b{d{h{f}}}}}D`}{{{b{DIf}}Ab{b{d{h{f}}}}}D`}{{{b{DIh}}Ab{b{d{h{f}}}}}D`}{{{b{DIj}}Ab{b{d{h{f}}}}}D`}{{{b{DIl}}Ab{b{d{h{f}}}}}D`}{{{b{DIn}}Ab{b{d{h{f}}}}}D`}{{{b{DJ`}}Ab{b{d{h{f}}}}}D`}{{{b{DJb}}Ab{b{d{h{f}}}}}D`}{{{b{DJd}}Ab{b{d{h{f}}}}}D`}{{{b{DJf}}Ab{b{d{h{f}}}}}D`}{{{b{DJh}}Ab{b{d{h{f}}}}}D`}{{{b{DJj}}Ab{b{d{h{f}}}}}D`}{{{b{DJl}}Ab{b{d{h{f}}}}}D`}{{{b{DJn}}Ab{b{d{h{f}}}}}D`}{{{b{DK`}}Ab{b{d{h{f}}}}}D`}{{{b{DKb}}Ab{b{d{h{f}}}}}D`}{{{b{DKd}}Ab{b{d{h{f}}}}}D`}{{{b{DKf}}Ab{b{d{h{f}}}}}D`}{{{b{DKh}}Ab{b{d{h{f}}}}}D`}{{{b{DKj}}Ab{b{d{h{f}}}}}D`}{{{b{DKl}}Ab{b{d{h{f}}}}}D`}{{{b{DKn}}Ab{b{d{h{f}}}}}D`}{{{b{DL`}}Ab{b{d{h{f}}}}}D`}{{{b{DLb}}Ab{b{d{h{f}}}}}D`}{{{b{DLd}}Ab{b{d{h{f}}}}}D`}{{{b{DLf}}Ab{b{d{h{f}}}}}D`}{{{b{DLh}}Ab{b{d{h{f}}}}}D`}{{{b{DLj}}Ab{b{d{h{f}}}}}D`}{{{b{DLl}}Ab{b{d{h{f}}}}}D`}{{{b{DLn}}Ab{b{d{h{f}}}}}D`}{{{b{DM`}}Ab{b{d{h{f}}}}}D`}{{{b{DMb}}Ab{b{d{h{f}}}}}D`}{{{b{DMd}}Ab{b{d{h{f}}}}}D`}{{{b{DMf}}Ab{b{d{h{f}}}}}D`}{{{b{DMh}}Ab{b{d{h{f}}}}}D`}{{{b{DMj}}Ab{b{d{h{f}}}}}D`}{{{b{DMl}}Ab{b{d{h{f}}}}}D`}{{{b{DMn}}Ab{b{d{h{f}}}}}D`}{{{b{DN`}}Ab{b{d{h{f}}}}}D`}{{{b{DNb}}Ab{b{d{h{f}}}}}D`}{{{b{DNd}}Ab{b{d{h{f}}}}}D`}{{{b{DNf}}Ab{b{d{h{f}}}}}D`}{{{b{DNh}}Ab{b{d{h{f}}}}}D`}{{{b{DNj}}Ab{b{d{h{f}}}}}D`}{{{b{DNl}}Ab{b{d{h{f}}}}}D`}{{{b{DNn}}Ab{b{d{h{f}}}}}D`}{{{b{DO`}}Ab{b{d{h{f}}}}}D`}{{{b{DOb}}Ab{b{d{h{f}}}}}D`}{{{b{DOd}}Ab{b{d{h{f}}}}}D`}{{{b{DOf}}Ab{b{d{h{f}}}}}D`}{{{b{DOh}}Ab{b{d{h{f}}}}}D`}{{{b{DOj}}Ab{b{d{h{f}}}}}D`}{{{b{DOl}}Ab{b{d{h{f}}}}}D`}{{{b{DOn}}Ab{b{d{h{f}}}}}D`}{{{b{E@`}}Ab{b{d{h{f}}}}}D`}{{{b{E@b}}Ab{b{d{h{f}}}}}D`}{{{b{E@d}}Ab{b{d{h{f}}}}}D`}{{{b{E@f}}Ab{b{d{h{f}}}}}D`}{{{b{E@h}}Ab{b{d{h{f}}}}}D`}{{{b{E@j}}Ab{b{d{h{f}}}}}D`}{{{b{E@l}}Ab{b{d{h{f}}}}}D`}{{{b{E@n}}Ab{b{d{h{f}}}}}D`}{{{b{EA`}}Ab{b{d{h{f}}}}}D`}{{{b{EAb}}Ab{b{d{h{f}}}}}D`}{{{b{EAd}}Ab{b{d{h{f}}}}}D`}{{{b{EAf}}Ab{b{d{h{f}}}}}D`}{{{b{EAh}}Ab{b{d{h{f}}}}}D`}{{{b{EAj}}Ab{b{d{h{f}}}}}D`}{{{b{EAl}}Ab{b{d{h{f}}}}}D`}{{{b{EAn}}Ab{b{d{h{f}}}}}D`}{{{b{EB`}}Ab{b{d{h{f}}}}}D`}{{{b{EBb}}Ab{b{d{h{f}}}}}D`}{{{b{EBd}}Ab{b{d{h{f}}}}}D`}{{{b{EBf}}Ab{b{d{h{f}}}}}D`}{{{b{EBh}}Ab{b{d{h{f}}}}}D`}{{{b{EBj}}Ab{b{d{h{f}}}}}D`}{{{b{EBl}}Ab{b{d{h{f}}}}}D`}{{{b{EBn}}Ab{b{d{h{f}}}}}D`}{{{b{EC`}}Ab{b{d{h{f}}}}}D`}{{{b{ECb}}Ab{b{d{h{f}}}}}D`}{{{b{ECd}}Ab{b{d{h{f}}}}}D`}{{{b{ECf}}Ab{b{d{h{f}}}}}D`}{{{b{ECh}}Ab{b{d{h{f}}}}}D`}{{{b{ECj}}Ab{b{d{h{f}}}}}D`}{{{b{ECl}}Ab{b{d{h{f}}}}}D`}{{{b{ECn}}Ab{b{d{h{f}}}}}D`}{{{b{ED`}}Ab{b{d{h{f}}}}}D`}{{{b{EDb}}Ab{b{d{h{f}}}}}D`}{{{b{EDd}}Ab{b{d{h{f}}}}}D`}{{{b{EDf}}Ab{b{d{h{f}}}}}D`}{{{b{EDh}}Ab{b{d{h{f}}}}}D`}{{{b{EDj}}Ab{b{d{h{f}}}}}D`}{{{b{EDl}}Ab{b{d{h{f}}}}}D`}{{{b{EDn}}Ab{b{d{h{f}}}}}D`}{{{b{EE`}}Ab{b{d{h{f}}}}}D`}{{{b{EEb}}Ab{b{d{h{f}}}}}D`}{{{b{EEd}}Ab{b{d{h{f}}}}}D`}{{{b{EEf}}Ab{b{d{h{f}}}}}D`}{{{b{EEh}}Ab{b{d{h{f}}}}}D`}{{{b{EEj}}Ab{b{d{h{f}}}}}D`}{{{b{EEl}}Ab{b{d{h{f}}}}}D`}{{{b{EEn}}Ab{b{d{h{f}}}}}D`}{{{b{EF`}}Ab{b{d{h{f}}}}}D`}{{{b{EFb}}Ab{b{d{h{f}}}}}D`}{{{b{EFd}}Ab{b{d{h{f}}}}}D`}{{{b{EFf}}Ab{b{d{h{f}}}}}D`}{{{b{EFh}}Ab{b{d{h{f}}}}}D`}{{{b{EFj}}Ab{b{d{h{f}}}}}D`}{{{b{EFl}}Ab{b{d{h{f}}}}}D`}{{{b{EFn}}Ab{b{d{h{f}}}}}D`}{{{b{EG`}}Ab{b{d{h{f}}}}}D`}{{{b{EGb}}Ab{b{d{h{f}}}}}D`}{{{b{EGd}}Ab{b{d{h{f}}}}}D`}{{{b{EGf}}Ab{b{d{h{f}}}}}D`}{{{b{EGh}}Ab{b{d{h{f}}}}}D`}{{{b{EGj}}Ab{b{d{h{f}}}}}D`}{{{b{EGl}}Ab{b{d{h{f}}}}}D`}{{{b{EGn}}Ab{b{d{h{f}}}}}D`}{{{b{EH`}}Ab{b{d{h{f}}}}}D`}{{{b{EHb}}Ab{b{d{h{f}}}}}D`}{{{b{EHd}}Ab{b{d{h{f}}}}}D`}{{{b{EHf}}Ab{b{d{h{f}}}}}D`}{{{b{EHh}}Ab{b{d{h{f}}}}}D`}{{{b{EHj}}Ab{b{d{h{f}}}}}D`}{{{b{EHl}}Ab{b{d{h{f}}}}}D`}{{{b{EHn}}Ab{b{d{h{f}}}}}D`}{{{b{EI`}}Ab{b{d{h{f}}}}}D`}{{{b{EIb}}Ab{b{d{h{f}}}}}D`}{{{b{EId}}Ab{b{d{h{f}}}}}D`}{{{b{EIf}}Ab{b{d{h{f}}}}}D`}{{{b{EIh}}Ab{b{d{h{f}}}}}D`}{{{b{EIj}}Ab{b{d{h{f}}}}}D`}{{{b{EIl}}Ab{b{d{h{f}}}}}D`}{{{b{EIn}}Ab{b{d{h{f}}}}}D`}{{{b{EJ`}}Ab{b{d{h{f}}}}}D`}{{{b{EJb}}Ab{b{d{h{f}}}}}D`}{{{b{EJd}}Ab{b{d{h{f}}}}}D`}{{{b{EJf}}Ab{b{d{h{f}}}}}D`}{{{b{EJh}}Ab{b{d{h{f}}}}}D`}{{{b{EJj}}Ab{b{d{h{f}}}}}D`}{{{b{EJl}}Ab{b{d{h{f}}}}}D`}{{{b{EJn}}Ab{b{d{h{f}}}}}D`}{{{b{EK`}}Ab{b{d{h{f}}}}}D`}{{{b{EKb}}Ab{b{d{h{f}}}}}D`}{{{b{EKd}}Ab{b{d{h{f}}}}}D`}{{{b{EKf}}Ab{b{d{h{f}}}}}D`}{{{b{EKh}}Ab{b{d{h{f}}}}}D`}{{{b{EKj}}Ab{b{d{h{f}}}}}D`}{{{b{EKl}}Ab{b{d{h{f}}}}}D`}{{{b{EKn}}Ab{b{d{h{f}}}}}D`}{{{b{EL`}}Ab{b{d{h{f}}}}}D`}{{{b{ELb}}Ab{b{d{h{f}}}}}D`}{{{b{ELd}}Ab{b{d{h{f}}}}}D`}{{{b{ELf}}Ab{b{d{h{f}}}}}D`}{{{b{ELh}}Ab{b{d{h{f}}}}}D`}{{{b{ELj}}Ab{b{d{h{f}}}}}D`}{{{b{ELl}}Ab{b{d{h{f}}}}}D`}{{{b{ELn}}Ab{b{d{h{f}}}}}D`}{{{b{EM`}}Ab{b{d{h{f}}}}}D`}{{{b{EMb}}Ab{b{d{h{f}}}}}D`}{{{b{EMd}}Ab{b{d{h{f}}}}}D`}{{{b{EMf}}Ab{b{d{h{f}}}}}D`}{{{b{EMh}}Ab{b{d{h{f}}}}}D`}{{{b{EMj}}Ab{b{d{h{f}}}}}D`}{{{b{EMl}}Ab{b{d{h{f}}}}}D`}{{{b{EMn}}Ab{b{d{h{f}}}}}D`}{{{b{EN`}}Ab{b{d{h{f}}}}}D`}{{{b{ENb}}Ab{b{d{h{f}}}}}D`}{{{b{ENd}}Ab{b{d{h{f}}}}}D`}{{{b{ENf}}Ab{b{d{h{f}}}}}D`}{{{b{ENh}}Ab{b{d{h{f}}}}}D`}{{{b{ENj}}Ab{b{d{h{f}}}}}D`}{{{b{ENl}}Ab{b{d{h{f}}}}}D`}{{{b{ENn}}Ab{b{d{h{f}}}}}D`}{{{b{EO`}}Ab{b{d{h{f}}}}}D`}{{{b{EOb}}Ab{b{d{h{f}}}}}D`}{{{b{EOd}}Ab{b{d{h{f}}}}}D`}{{{b{EOf}}Ab{b{d{h{f}}}}}D`}{{{b{EOh}}Ab{b{d{h{f}}}}}D`}{{{b{EOj}}Ab{b{d{h{f}}}}}D`}{{{b{EOl}}Ab{b{d{h{f}}}}}D`}{{{b{EOn}}Ab{b{d{h{f}}}}}D`}{{{b{F@`}}Ab{b{d{h{f}}}}}D`}{{{b{F@b}}Ab{b{d{h{f}}}}}D`}{{{b{F@d}}Ab{b{d{h{f}}}}}D`}{{{b{F@f}}Ab{b{d{h{f}}}}}D`}{{{b{F@h}}Ab{b{d{h{f}}}}}D`}{{{b{F@j}}Ab{b{d{h{f}}}}}D`}{{{b{F@l}}Ab{b{d{h{f}}}}}D`}{{{b{F@n}}Ab{b{d{h{f}}}}}D`}{{{b{FA`}}Ab{b{d{h{f}}}}}D`}{{{b{FAb}}Ab{b{d{h{f}}}}}D`}{{{b{FAd}}Ab{b{d{h{f}}}}}D`}{{{b{FAf}}Ab{b{d{h{f}}}}}D`}{{{b{FAh}}Ab{b{d{h{f}}}}}D`}{{{b{FAj}}Ab{b{d{h{f}}}}}D`}{{{b{FAl}}Ab{b{d{h{f}}}}}D`}{{{b{FAn}}Ab{b{d{h{f}}}}}D`}{{{b{FB`}}Ab{b{d{h{f}}}}}D`}{{{b{FBb}}Ab{b{d{h{f}}}}}D`}{{{b{FBd}}Ab{b{d{h{f}}}}}D`}{{{b{FBf}}Ab{b{d{h{f}}}}}D`}{{{b{FBh}}Ab{b{d{h{f}}}}}D`}{{{b{FBj}}Ab{b{d{h{f}}}}}D`}{{{b{FBl}}Ab{b{d{h{f}}}}}D`}`{{{b{DGb}}c}BdDd}{{{b{DGd}}c}BdDd}{{{b{DGf}}c}BdDd}{{{b{DGh}}c}BdDd}{{{b{DGj}}c}BdDd}{{{b{DGl}}c}BdDd}{{{b{DGn}}c}BdDd}{{{b{DH`}}c}BdDd}{{{b{DHb}}c}BdDd}{{{b{DHd}}c}BdDd}{{{b{DHf}}c}BdDd}{{{b{DHh}}c}BdDd}{{{b{DHj}}c}BdDd}{{{b{DHl}}c}BdDd}{{{b{DHn}}c}BdDd}{{{b{DI`}}c}BdDd}{{{b{DIb}}c}BdDd}{{{b{DId}}c}BdDd}{{{b{DIf}}c}BdDd}{{{b{DIh}}c}BdDd}{{{b{DIj}}c}BdDd}{{{b{DIl}}c}BdDd}{{{b{DIn}}c}BdDd}{{{b{DJ`}}c}BdDd}{{{b{DJb}}c}BdDd}{{{b{DJd}}c}BdDd}{{{b{DJf}}c}BdDd}{{{b{DJh}}c}BdDd}{{{b{DJj}}c}BdDd}{{{b{DJl}}c}BdDd}{{{b{DJn}}c}BdDd}{{{b{DK`}}c}BdDd}{{{b{DKb}}c}BdDd}{{{b{DKd}}c}BdDd}{{{b{DKf}}c}BdDd}{{{b{DKh}}c}BdDd}{{{b{DKj}}c}BdDd}{{{b{DKl}}c}BdDd}{{{b{DKn}}c}BdDd}{{{b{DL`}}c}BdDd}{{{b{DLb}}c}BdDd}{{{b{DLd}}c}BdDd}{{{b{DLf}}c}BdDd}{{{b{DLh}}c}BdDd}{{{b{DLj}}c}BdDd}{{{b{DLl}}c}BdDd}{{{b{DLn}}c}BdDd}{{{b{DM`}}c}BdDd}{{{b{DMb}}c}BdDd}{{{b{DMd}}c}BdDd}{{{b{DMf}}c}BdDd}{{{b{DMh}}c}BdDd}{{{b{DMj}}c}BdDd}{{{b{DMl}}c}BdDd}{{{b{DMn}}c}BdDd}{{{b{DN`}}c}BdDd}{{{b{DNb}}c}BdDd}{{{b{DNd}}c}BdDd}{{{b{DNf}}c}BdDd}{{{b{DNh}}c}BdDd}{{{b{DNj}}c}BdDd}{{{b{DNl}}c}BdDd}{{{b{DNn}}c}BdDd}{{{b{DO`}}c}BdDd}{{{b{DOb}}c}BdDd}{{{b{DOd}}c}BdDd}{{{b{DOf}}c}BdDd}{{{b{DOh}}c}BdDd}{{{b{DOj}}c}BdDd}{{{b{DOl}}c}BdDd}{{{b{DOn}}c}BdDd}{{{b{E@`}}c}BdDd}{{{b{E@b}}c}BdDd}{{{b{E@d}}c}BdDd}{{{b{E@f}}c}BdDd}{{{b{E@h}}c}BdDd}{{{b{E@j}}c}BdDd}{{{b{E@l}}c}BdDd}{{{b{E@n}}c}BdDd}{{{b{EA`}}c}BdDd}{{{b{EAb}}c}BdDd}{{{b{EAd}}c}BdDd}{{{b{EAf}}c}BdDd}{{{b{EAh}}c}BdDd}{{{b{EAj}}c}BdDd}{{{b{EAl}}c}BdDd}{{{b{EAn}}c}BdDd}{{{b{EB`}}c}BdDd}{{{b{EBb}}c}BdDd}{{{b{EBd}}c}BdDd}{{{b{EBf}}c}BdDd}{{{b{EBh}}c}BdDd}{{{b{EBj}}c}BdDd}{{{b{EBl}}c}BdDd}{{{b{EBn}}c}BdDd}{{{b{EC`}}c}BdDd}{{{b{ECb}}c}BdDd}{{{b{ECd}}c}BdDd}{{{b{ECf}}c}BdDd}{{{b{ECh}}c}BdDd}{{{b{ECj}}c}BdDd}{{{b{ECl}}c}BdDd}{{{b{ECn}}c}BdDd}{{{b{ED`}}c}BdDd}{{{b{EDb}}c}BdDd}{{{b{EDd}}c}BdDd}{{{b{EDf}}c}BdDd}{{{b{EDh}}c}BdDd}{{{b{EDj}}c}BdDd}{{{b{EDl}}c}BdDd}{{{b{EDn}}c}BdDd}{{{b{EE`}}c}BdDd}{{{b{EEb}}c}BdDd}{{{b{EEd}}c}BdDd}{{{b{EEf}}c}BdDd}{{{b{EEh}}c}BdDd}{{{b{EEj}}c}BdDd}{{{b{EEl}}c}BdDd}{{{b{EEn}}c}BdDd}{{{b{EF`}}c}BdDd}{{{b{EFb}}c}BdDd}{{{b{EFd}}c}BdDd}{{{b{EFf}}c}BdDd}{{{b{EFh}}c}BdDd}{{{b{EFj}}c}BdDd}{{{b{EFl}}c}BdDd}{{{b{EFn}}c}BdDd}{{{b{EG`}}c}BdDd}{{{b{EGb}}c}BdDd}{{{b{EGd}}c}BdDd}{{{b{EGf}}c}BdDd}{{{b{EGh}}c}BdDd}{{{b{EGj}}c}BdDd}{{{b{EGl}}c}BdDd}{{{b{EGn}}c}BdDd}{{{b{EH`}}c}BdDd}{{{b{EHb}}c}BdDd}{{{b{EHd}}c}BdDd}{{{b{EHf}}c}BdDd}{{{b{EHh}}c}BdDd}{{{b{EHj}}c}BdDd}{{{b{EHl}}c}BdDd}{{{b{EHn}}c}BdDd}{{{b{EI`}}c}BdDd}{{{b{EIb}}c}BdDd}{{{b{EId}}c}BdDd}{{{b{EIf}}c}BdDd}{{{b{EIh}}c}BdDd}{{{b{EIj}}c}BdDd}{{{b{EIl}}c}BdDd}{{{b{EIn}}c}BdDd}{{{b{EJ`}}c}BdDd}{{{b{EJb}}c}BdDd}{{{b{EJd}}c}BdDd}{{{b{EJf}}c}BdDd}{{{b{EJh}}c}BdDd}{{{b{EJj}}c}BdDd}{{{b{EJl}}c}BdDd}{{{b{EJn}}c}BdDd}{{{b{EK`}}c}BdDd}{{{b{EKb}}c}BdDd}{{{b{EKd}}c}BdDd}{{{b{EKf}}c}BdDd}{{{b{EKh}}c}BdDd}{{{b{EKj}}c}BdDd}{{{b{EKl}}c}BdDd}{{{b{EKn}}c}BdDd}{{{b{EL`}}c}BdDd}{{{b{ELb}}c}BdDd}{{{b{ELd}}c}BdDd}{{{b{ELf}}c}BdDd}{{{b{ELh}}c}BdDd}{{{b{ELj}}c}BdDd}{{{b{ELl}}c}BdDd}{{{b{ELn}}c}BdDd}{{{b{EM`}}c}BdDd}{{{b{EMb}}c}BdDd}{{{b{EMd}}c}BdDd}{{{b{EMf}}c}BdDd}{{{b{EMh}}c}BdDd}{{{b{EMj}}c}BdDd}{{{b{EMl}}c}BdDd}{{{b{EMn}}c}BdDd}{{{b{EN`}}c}BdDd}{{{b{ENb}}c}BdDd}{{{b{ENd}}c}BdDd}{{{b{ENf}}c}BdDd}{{{b{ENh}}c}BdDd}{{{b{ENj}}c}BdDd}{{{b{ENl}}c}BdDd}{{{b{ENn}}c}BdDd}{{{b{EO`}}c}BdDd}{{{b{EOb}}c}BdDd}{{{b{EOd}}c}BdDd}{{{b{EOf}}c}BdDd}{{{b{EOh}}c}BdDd}{{{b{EOj}}c}BdDd}{{{b{EOl}}c}BdDd}{{{b{EOn}}c}BdDd}{{{b{F@`}}c}BdDd}{{{b{F@b}}c}BdDd}{{{b{F@d}}c}BdDd}{{{b{F@f}}c}BdDd}{{{b{F@h}}c}BdDd}{{{b{F@j}}c}BdDd}{{{b{F@l}}c}BdDd}{{{b{F@n}}c}BdDd}{{{b{FA`}}c}BdDd}{{{b{FAb}}c}BdDd}{{{b{FAd}}c}BdDd}{{{b{FAf}}c}BdDd}{{{b{FAh}}c}BdDd}{{{b{FAj}}c}BdDd}{{{b{FAl}}c}BdDd}{{{b{FAn}}c}BdDd}{{{b{FB`}}c}BdDd}{{{b{FBb}}c}BdDd}{{{b{FBd}}c}BdDd}{{{b{FBf}}c}BdDd}{{{b{FBh}}c}BdDd}{{{b{FBj}}c}BdDd}{{{b{FBl}}c}BdDd}{{{b{FBn}}c}BdDd}{{{b{FC`}}c}BdDd}{{{b{FCb}}c}BdDd}{{{b{FCd}}c}BdDd}{{{b{FCf}}c}BdDd}{{{b{FCh}}c}BdDd}{{{b{DD`}}c}BdDd}{{{b{FCj}}c}BdDd}{{{b{DDb}}c}BdDd}{{{b{FCl}}c}BdDd}{{{b{FCn}}c}BdDd}{{{b{FD`}}c}BdDd}{{{b{FDb}}c}BdDd}{{{b{FDd}}c}BdDd}{{{b{FDf}}c}BdDd}{{{b{FDh}}c}BdDd}{{{b{FDj}}c}BdDd}{{{b{FDl}}c}BdDd}{{{b{DDd}}c}BdDd}{{{b{DDf}}c}BdDd}{{{b{FDn}}c}BdDd}{{{b{FE`}}c}BdDd}{{{b{FEb}}c}BdDd}{{{b{FEd}}c}BdDd}{{{b{FEf}}c}BdDd}{{{b{FEh}}c}BdDd}{{{b{FEj}}c}BdDd}{{{b{FEl}}c}BdDd}{{{b{FEn}}c}BdDd}{{{b{DDh}}c}BdDd}{{{b{DDj}}c}BdDd}{{{b{FF`}}c}BdDd}{{{b{DDl}}c}BdDd}{{{b{FFb}}c}BdDd}{{{b{FFd}}c}BdDd}{{{b{FFf}}c}BdDd}{{{b{DDn}}c}BdDd}{{{b{FFh}}c}BdDd}{{{b{FFj}}c}BdDd}{{{b{FFl}}c}BdDd}{{{b{FFn}}c}BdDd}{{{b{FG`}}c}BdDd}{{{b{FGb}}c}BdDd}{{{b{FGd}}c}BdDd}{{{b{FGf}}c}BdDd}{{{b{FGh}}c}BdDd}{{{b{FGj}}c}BdDd}{{{b{FGl}}c}BdDd}{{{b{DE`}}c}BdDd}{{{b{DEb}}c}BdDd}{{{b{FGn}}c}BdDd}{{{b{DEd}}c}BdDd}{{{b{FH`}}c}BdDd}{{{b{FHb}}c}BdDd}{{{b{FHd}}c}BdDd}{{{b{FHf}}c}BdDd}{{{b{FHh}}c}BdDd}{{{b{DEf}}c}BdDd}{{{b{FHj}}c}BdDd}{{{b{FHl}}c}BdDd}{{{b{FHn}}c}BdDd}{{{b{FI`}}c}BdDd}{{{b{FIb}}c}BdDd}{{{b{FId}}c}BdDd}{{{b{FIf}}c}BdDd}{{{b{FIh}}c}BdDd}{{{b{FIj}}c}BdDd}{{{b{DEh}}c}BdDd}{{{b{DEj}}c}BdDd}{{{b{FIl}}c}BdDd}{{{b{FIn}}c}BdDd}{{{b{FJ`}}c}BdDd}{{{b{DEl}}c}BdDd}{{{b{FJb}}c}BdDd}{{{b{FJd}}c}BdDd}{{{b{DEn}}c}BdDd}{{{b{FJf}}c}BdDd}{{{b{FJh}}c}BdDd}{{{b{FJj}}c}BdDd}{{{b{FJl}}c}BdDd}{{{b{FJn}}c}BdDd}{{{b{FK`}}c}BdDd}{{{b{FKb}}c}BdDd}{{{b{FKd}}c}BdDd}{{{b{FKf}}c}BdDd}{{{b{FKh}}c}BdDd}{{{b{FKj}}c}BdDd}{{{b{FKl}}c}BdDd}{{{b{FKn}}c}BdDd}{{{b{FL`}}c}BdDd}{{{b{FLb}}c}BdDd}{{{b{FLd}}c}BdDd}{{{b{FLf}}c}BdDd}{{{b{FLh}}c}BdDd}{{{b{FLj}}c}BdDd}{{{b{FLl}}c}BdDd}{{{b{FLn}}c}BdDd}{{{b{FM`}}c}BdDd}{{{b{DF`}}c}BdDd}{{{b{FMb}}c}BdDd}{{{b{DFb}}c}BdDd}{{{b{FMd}}c}BdDd}{{{b{DFd}}c}BdDd}{{{b{DFf}}c}BdDd}{{{b{FMf}}c}BdDd}{{{b{FMh}}c}BdDd}{{{b{FMj}}c}BdDd}{{{b{FMl}}c}BdDd}{{{b{FMn}}c}BdDd}{{{b{FN`}}c}BdDd}{{{b{FNb}}c}BdDd}{{{b{FNd}}c}BdDd}{{{b{FNf}}c}BdDd}{{{b{FNh}}c}BdDd}{{{b{FNj}}c}BdDd}{{{b{DFh}}c}BdDd}{{{b{FNl}}c}BdDd}{{{b{FNn}}c}BdDd}{{{b{FO`}}c}BdDd}{{{b{FOb}}c}BdDd}{{{b{FOd}}c}BdDd}{{{b{FOf}}c}BdDd}{{{b{FOh}}c}BdDd}{{{b{FOj}}c}BdDd}{{{b{DFj}}c}BdDd}{{{b{FOl}}c}BdDd}{{{b{FOn}}c}BdDd}{{{b{DFl}}c}BdDd}{{{b{G@`}}c}BdDd}{{{b{DFn}}c}BdDd}{{{b{G@b}}c}BdDd}{{{b{G@d}}c}BdDd}{{{b{DG`}}c}BdDd}{{{b{G@f}}c}BdDd}{{{b{G@h}}c}BdDd}{{{b{G@j}}c}BdDd}{{{b{G@l}}c}BdDd}````````{{{b{dDD`}}DD`C`}Aj}{{{b{dDDb}}DDbC`}Aj}{{{b{dDDd}}DDdC`}Aj}{{{b{dDDf}}DDfC`}Aj}{{{b{dDDh}}DDhC`}Aj}{{{b{dDDj}}DDjC`}Aj}{{{b{dDDl}}DDlC`}Aj}{{{b{dDDn}}DDnC`}Aj}{{{b{dDE`}}DE`C`}Aj}{{{b{dDEb}}DEbC`}Aj}{{{b{dDEd}}DEdC`}Aj}{{{b{dDEf}}DEfC`}Aj}{{{b{dDEh}}DEhC`}Aj}{{{b{dDEj}}DEjC`}Aj}{{{b{dDEl}}DElC`}Aj}{{{b{dDEn}}DEnC`}Aj}{{{b{dDF`}}DF`C`}Aj}{{{b{dDFb}}DFbC`}Aj}{{{b{dDFd}}DFdC`}Aj}{{{b{dDFf}}DFfC`}Aj}{{{b{dDFh}}DFhC`}Aj}{{{b{dDFj}}DFjC`}Aj}{{{b{dDFl}}DFlC`}Aj}{{{b{dDFn}}DFnC`}Aj}{{{b{dDG`}}DG`C`}Aj}````````````````````````````````````````{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}`````{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{FBn}}}{{DBj{DBl}}}}{{{b{FC`}}}{{DBj{DBl}}}}{{{b{FCb}}}{{DBj{DBl}}}}{{{b{FCd}}}{{DBj{DBl}}}}{{{b{FCf}}}{{DBj{DBl}}}}{{{b{FCh}}}{{DBj{DBl}}}}{{{b{FCj}}}{{DBj{DBl}}}}{{{b{FCl}}}{{DBj{DBl}}}}{{{b{FCn}}}{{DBj{DBl}}}}{{{b{FD`}}}{{DBj{DBl}}}}{{{b{FDb}}}{{DBj{DBl}}}}{{{b{FDd}}}{{DBj{DBl}}}}{{{b{FDf}}}{{DBj{DBl}}}}{{{b{FDh}}}{{DBj{DBl}}}}{{{b{FDj}}}{{DBj{DBl}}}}{{{b{FDl}}}{{DBj{DBl}}}}{{{b{FDn}}}{{DBj{DBl}}}}{{{b{FE`}}}{{DBj{DBl}}}}{{{b{FEb}}}{{DBj{DBl}}}}{{{b{FEd}}}{{DBj{DBl}}}}{{{b{FEf}}}{{DBj{DBl}}}}{{{b{FEh}}}{{DBj{DBl}}}}{{{b{FEj}}}{{DBj{DBl}}}}{{{b{FEl}}}{{DBj{DBl}}}}{{{b{FEn}}}{{DBj{DBl}}}}{{{b{FF`}}}{{DBj{DBl}}}}{{{b{FFb}}}{{DBj{DBl}}}}{{{b{FFd}}}{{DBj{DBl}}}}{{{b{FFf}}}{{DBj{DBl}}}}{{{b{FFh}}}{{DBj{DBl}}}}{{{b{FFj}}}{{DBj{DBl}}}}{{{b{FFl}}}{{DBj{DBl}}}}{{{b{FFn}}}{{DBj{DBl}}}}{{{b{FG`}}}{{DBj{DBl}}}}{{{b{FGb}}}{{DBj{DBl}}}}{{{b{FGd}}}{{DBj{DBl}}}}{{{b{FGf}}}{{DBj{DBl}}}}{{{b{FGh}}}{{DBj{DBl}}}}{{{b{FGj}}}{{DBj{DBl}}}}{{{b{FGl}}}{{DBj{DBl}}}}{{{b{FGn}}}{{DBj{DBl}}}}{{{b{FH`}}}{{DBj{DBl}}}}{{{b{FHb}}}{{DBj{DBl}}}}{{{b{FHd}}}{{DBj{DBl}}}}{{{b{FHf}}}{{DBj{DBl}}}}{{{b{FHh}}}{{DBj{DBl}}}}{{{b{FHj}}}{{DBj{DBl}}}}{{{b{FHl}}}{{DBj{DBl}}}}{{{b{FHn}}}{{DBj{DBl}}}}{{{b{FI`}}}{{DBj{DBl}}}}{{{b{FIb}}}{{DBj{DBl}}}}{{{b{FId}}}{{DBj{DBl}}}}{{{b{FIf}}}{{DBj{DBl}}}}{{{b{FIh}}}{{DBj{DBl}}}}{{{b{FIj}}}{{DBj{DBl}}}}{{{b{FIl}}}{{DBj{DBl}}}}{{{b{FIn}}}{{DBj{DBl}}}}{{{b{FJ`}}}{{DBj{DBl}}}}{{{b{FJb}}}{{DBj{DBl}}}}{{{b{FJd}}}{{DBj{DBl}}}}{{{b{FJf}}}{{DBj{DBl}}}}{{{b{FJh}}}{{DBj{DBl}}}}{{{b{FJj}}}{{DBj{DBl}}}}{{{b{FJl}}}{{DBj{DBl}}}}{{{b{FJn}}}{{DBj{DBl}}}}{{{b{FK`}}}{{DBj{DBl}}}}{{{b{FKb}}}{{DBj{DBl}}}}{{{b{FKd}}}{{DBj{DBl}}}}{{{b{FKf}}}{{DBj{DBl}}}}{{{b{FKh}}}{{DBj{DBl}}}}{{{b{FKj}}}{{DBj{DBl}}}}{{{b{FKl}}}{{DBj{DBl}}}}{{{b{FKn}}}{{DBj{DBl}}}}{{{b{FL`}}}{{DBj{DBl}}}}{{{b{FLb}}}{{DBj{DBl}}}}{{{b{FLd}}}{{DBj{DBl}}}}{{{b{FLf}}}{{DBj{DBl}}}}{{{b{FLh}}}{{DBj{DBl}}}}{{{b{FLj}}}{{DBj{DBl}}}}{{{b{FLl}}}{{DBj{DBl}}}}{{{b{FLn}}}{{DBj{DBl}}}}{{{b{FM`}}}{{DBj{DBl}}}}{{{b{FMb}}}{{DBj{DBl}}}}{{{b{FMd}}}{{DBj{DBl}}}}{{{b{FMf}}}{{DBj{DBl}}}}{{{b{FMh}}}{{DBj{DBl}}}}{{{b{FMj}}}{{DBj{DBl}}}}{{{b{FMl}}}{{DBj{DBl}}}}{{{b{FMn}}}{{DBj{DBl}}}}{{{b{FN`}}}{{DBj{DBl}}}}{{{b{FNb}}}{{DBj{DBl}}}}{{{b{FNd}}}{{DBj{DBl}}}}{{{b{FNf}}}{{DBj{DBl}}}}{{{b{FNh}}}{{DBj{DBl}}}}{{{b{FNj}}}{{DBj{DBl}}}}{{{b{FNl}}}{{DBj{DBl}}}}{{{b{FNn}}}{{DBj{DBl}}}}{{{b{FO`}}}{{DBj{DBl}}}}{{{b{FOb}}}{{DBj{DBl}}}}{{{b{FOd}}}{{DBj{DBl}}}}{{{b{FOf}}}{{DBj{DBl}}}}{{{b{FOh}}}{{DBj{DBl}}}}{{{b{FOj}}}{{DBj{DBl}}}}{{{b{FOl}}}{{DBj{DBl}}}}{{{b{FOn}}}{{DBj{DBl}}}}{{{b{G@`}}}{{DBj{DBl}}}}{{{b{G@b}}}{{DBj{DBl}}}}{{{b{G@d}}}{{DBj{DBl}}}}{{{b{G@f}}}{{DBj{DBl}}}}{{{b{G@h}}}{{DBj{DBl}}}}{{{b{G@j}}}{{DBj{DBl}}}}{{{b{G@l}}}{{DBj{DBl}}}}{{{b{c}}}e{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{FBn}}}{{DBj{Hl}}}}{{{b{FC`}}}{{DBj{Hl}}}}{{{b{FCb}}}{{DBj{Hl}}}}{{{b{FCd}}}{{DBj{Hl}}}}{{{b{FCf}}}{{DBj{Hl}}}}{{{b{FCh}}}{{DBj{Hl}}}}{{{b{FCj}}}{{DBj{Hl}}}}{{{b{FCl}}}{{DBj{Hl}}}}{{{b{FCn}}}{{DBj{Hl}}}}{{{b{FD`}}}{{DBj{Hl}}}}{{{b{FDb}}}{{DBj{Hl}}}}{{{b{FDd}}}{{DBj{Hl}}}}{{{b{FDf}}}{{DBj{Hl}}}}{{{b{FDh}}}{{DBj{Hl}}}}{{{b{FDj}}}{{DBj{Hl}}}}{{{b{FDl}}}{{DBj{Hl}}}}{{{b{FDn}}}{{DBj{Hl}}}}{{{b{FE`}}}{{DBj{Hl}}}}{{{b{FEb}}}{{DBj{Hl}}}}{{{b{FEd}}}{{DBj{Hl}}}}{{{b{FEf}}}{{DBj{Hl}}}}{{{b{FEh}}}{{DBj{Hl}}}}{{{b{FEj}}}{{DBj{Hl}}}}{{{b{FEl}}}{{DBj{Hl}}}}{{{b{FEn}}}{{DBj{Hl}}}}{{{b{FF`}}}{{DBj{Hl}}}}{{{b{FFb}}}{{DBj{Hl}}}}{{{b{FFd}}}{{DBj{Hl}}}}{{{b{FFf}}}{{DBj{Hl}}}}{{{b{FFh}}}{{DBj{Hl}}}}{{{b{FFj}}}{{DBj{Hl}}}}{{{b{FFl}}}{{DBj{Hl}}}}{{{b{FFn}}}{{DBj{Hl}}}}{{{b{FG`}}}{{DBj{Hl}}}}{{{b{FGb}}}{{DBj{Hl}}}}{{{b{FGd}}}{{DBj{Hl}}}}{{{b{FGf}}}{{DBj{Hl}}}}{{{b{FGh}}}{{DBj{Hl}}}}{{{b{FGj}}}{{DBj{Hl}}}}{{{b{FGl}}}{{DBj{Hl}}}}{{{b{FGn}}}{{DBj{Hl}}}}{{{b{FH`}}}{{DBj{Hl}}}}{{{b{FHb}}}{{DBj{Hl}}}}{{{b{FHd}}}{{DBj{Hl}}}}{{{b{FHf}}}{{DBj{Hl}}}}{{{b{FHh}}}{{DBj{Hl}}}}{{{b{FHj}}}{{DBj{Hl}}}}{{{b{FHl}}}{{DBj{Hl}}}}{{{b{FHn}}}{{DBj{Hl}}}}{{{b{FI`}}}{{DBj{Hl}}}}{{{b{FIb}}}{{DBj{Hl}}}}{{{b{FId}}}{{DBj{Hl}}}}{{{b{FIf}}}{{DBj{Hl}}}}{{{b{FIh}}}{{DBj{Hl}}}}{{{b{FIj}}}{{DBj{Hl}}}}{{{b{FIl}}}{{DBj{Hl}}}}{{{b{FIn}}}{{DBj{Hl}}}}{{{b{FJ`}}}{{DBj{Hl}}}}{{{b{FJb}}}{{DBj{Hl}}}}{{{b{FJd}}}{{DBj{Hl}}}}{{{b{FJf}}}{{DBj{Hl}}}}{{{b{FJh}}}{{DBj{Hl}}}}{{{b{FJj}}}{{DBj{Hl}}}}{{{b{FJl}}}{{DBj{Hl}}}}{{{b{FJn}}}{{DBj{Hl}}}}{{{b{FK`}}}{{DBj{Hl}}}}{{{b{FKb}}}{{DBj{Hl}}}}{{{b{FKd}}}{{DBj{Hl}}}}{{{b{FKf}}}{{DBj{Hl}}}}{{{b{FKh}}}{{DBj{Hl}}}}{{{b{FKj}}}{{DBj{Hl}}}}{{{b{FKl}}}{{DBj{Hl}}}}{{{b{FKn}}}{{DBj{Hl}}}}{{{b{FL`}}}{{DBj{Hl}}}}{{{b{FLb}}}{{DBj{Hl}}}}{{{b{FLd}}}{{DBj{Hl}}}}{{{b{FLf}}}{{DBj{Hl}}}}{{{b{FLh}}}{{DBj{Hl}}}}{{{b{FLj}}}{{DBj{Hl}}}}{{{b{FLl}}}{{DBj{Hl}}}}{{{b{FLn}}}{{DBj{Hl}}}}{{{b{FM`}}}{{DBj{Hl}}}}{{{b{FMb}}}{{DBj{Hl}}}}{{{b{FMd}}}{{DBj{Hl}}}}{{{b{FMf}}}{{DBj{Hl}}}}{{{b{FMh}}}{{DBj{Hl}}}}{{{b{FMj}}}{{DBj{Hl}}}}{{{b{FMl}}}{{DBj{Hl}}}}{{{b{FMn}}}{{DBj{Hl}}}}{{{b{FN`}}}{{DBj{Hl}}}}{{{b{FNb}}}{{DBj{Hl}}}}{{{b{FNd}}}{{DBj{Hl}}}}{{{b{FNf}}}{{DBj{Hl}}}}{{{b{FNh}}}{{DBj{Hl}}}}{{{b{FNj}}}{{DBj{Hl}}}}{{{b{FNl}}}{{DBj{Hl}}}}{{{b{FNn}}}{{DBj{Hl}}}}{{{b{FO`}}}{{DBj{Hl}}}}{{{b{FOb}}}{{DBj{Hl}}}}{{{b{FOd}}}{{DBj{Hl}}}}{{{b{FOf}}}{{DBj{Hl}}}}{{{b{FOh}}}{{DBj{Hl}}}}{{{b{FOj}}}{{DBj{Hl}}}}{{{b{FOl}}}{{DBj{Hl}}}}{{{b{FOn}}}{{DBj{Hl}}}}{{{b{G@`}}}{{DBj{Hl}}}}{{{b{G@b}}}{{DBj{Hl}}}}{{{b{G@d}}}{{DBj{Hl}}}}{{{b{G@f}}}{{DBj{Hl}}}}{{{b{G@h}}}{{DBj{Hl}}}}{{{b{G@j}}}{{DBj{Hl}}}}{{{b{G@l}}}{{DBj{Hl}}}}{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}````````{c{{Bd{e}}}{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000```````````{{{b{c}}}Dh{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000```````````{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{Bl}}{b{dCb}}}{{Bd{AjCd}}}}0{{{b{Cl}}{b{dCb}}}{{Bd{AjCd}}}}0{{{b{Db}}{b{dCb}}}{{Bd{AjCd}}}}0{cc{}}{BlCl}1{BbCl}2{BbDb}{ce{}{}}00{{{b{c}}}G@n{}}00{c{{Bd{e}}}{}{}}00000{{{b{c}}}Dh{}}00```````````````````````````<<<<<;;;;;{{{b{GA`}}}GA`}{{{b{GAb}}}GAb}{{{b{GAd}}}GAd}{{{b{GAf}}}GAf}{{{b{GAh}}}GAh}{{{b{c}}{b{de}}}Aj{}{}}0000{{}GAb}{{}GAd}{{}GAf}{{}GAh}{Bf{{Bd{GA`{b{Al}}}}}}{{Ab{b{{h{f}}}}}{{Bd{GAbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GAdBl}}}}{c{{Bd{GA`}}}Bn}{c{{Bd{GAb}}}Bn}{c{{Bd{GAd}}}Bn}{c{{Bd{GAf}}}Bn}{c{{Bd{GAh}}}Bn}{{{b{GA`}}{b{GA`}}}C`}{{{b{GAb}}{b{GAb}}}C`}{{{b{GAd}}{b{GAd}}}C`}{{{b{GAf}}{b{GAf}}}C`}{{{b{GAh}}{b{GAh}}}C`}{Bff}{{{b{GA`}}{b{dCb}}}DBh}{{{b{GAb}}{b{dCb}}}DBh}{{{b{GAd}}{b{dCb}}}DBh}{{{b{GAf}}{b{dCb}}}DBh}{{{b{GAh}}{b{dCb}}}DBh}{cc{}}0000{DBl{{DBj{GAf}}}}{DBl{{DBj{GAh}}}}{Hl{{DBj{GAf}}}}{Hl{{DBj{GAh}}}}{ce{}{}}0000`````{{{b{GA`}}}Bf}{{{b{Al}}}{{Bd{Bf{b{Al}}}}}}{{{b{GA`}}}{{b{Al}}}}``````{{AbBf{b{{h{f}}}}}{{Bd{GA`Bl}}}}{{{b{GA`}}Ab{b{d{h{f}}}}}D`}{{{b{GAb}}Ab{b{d{h{f}}}}}D`}{{{b{GAd}}Ab{b{d{h{f}}}}}D`}{{{b{GA`}}c}BdDd}{{{b{GAb}}c}BdDd}{{{b{GAd}}c}BdDd}{{{b{GAf}}c}BdDd}{{{b{GAh}}c}BdDd}`{{{b{GAf}}}{{DBj{DBl}}}}{{{b{GAh}}}{{DBj{DBl}}}}{{{b{c}}}e{}{}}0000{{{b{GAf}}}{{DBj{Hl}}}}{{{b{GAh}}}{{DBj{Hl}}}}{c{{Bd{e}}}{}{}}000000000`````{{{b{c}}}Dh{}}0000`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{d{Ch{c}}}}D`}D`Cn}{cc{}}{ce{}{}}{c{{Ch{c}}}Cn}{{{b{d{Ch{c}}}}D`}{{Bd{{b{{h{f}}}}Cl}}}Cn}0{{{b{d{Ch{c}}}}}{{Bd{fCl}}}Cn}{{{b{d{Ch{c}}}}}{{b{dc}}}Cn}{{{b{d{Ch{c}}}}}{{b{c}}}Cn};;:```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{}GAj}{{}GAl}{{}GAn}{{}GB`}{{}GBb}{{}GBd}{{}GBf}{{}GBh}{{}GBj}{{}GBl}{{}GBn}{{}GC`}{{}GCb}{{}GCd}{{}GCf}{{}GCh}{{}GCj}{{}GCl}{{}GCn}{{}GD`}{{}GDb}{{}GDd}{{}GDf}{{}GDh}{{}GDj}{{}GDl}{{}GDn}{{}GE`}````````````````````````````````````````````````````````````````````````````````````````````````````````{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}``{{{b{GAj}}}f}{{{b{GAl}}}Bf}{{{b{GAn}}}j}{{{b{GB`}}}j}{{{b{GBb}}}f}{{{b{GBd}}}Hl}{{{b{GBf}}}j}{{{b{GBh}}}Bf}{{{b{GBj}}}Bf}{{{b{GBl}}}j}{{{b{GBn}}}Bf}{{{b{GC`}}}j}{{{b{GCb}}}j}{{{b{GCd}}}Bf}{{{b{GCf}}}Bf}{{{b{GCh}}}j}{{{b{GCj}}}f}{{{b{GCl}}}j}{{{b{GCn}}}Bf}{{{b{GD`}}}f}{{{b{GDb}}}j}{{{b{GDd}}}j}{{{b{GDf}}}j}{{{b{GDh}}}f}{{{b{GDj}}}j}{{{b{GDl}}}f}{{{b{GDn}}}f}{{{b{GE`}}}Hl}{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}```````{{{b{c}}}{{b{e}}}{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{dc}}}{{b{de}}}{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000``````````````````````````````````````````````````````````````````````````````````````````{{{b{GEb}}}GEb}{{{b{GEd}}}GEd}{{{b{GEf}}}GEf}{{{b{GEh}}}GEh}{{{b{GEj}}}GEj}{{{b{GEl}}}GEl}{{{b{GEn}}}GEn}{{{b{GF`}}}GF`}{{{b{GFb}}}GFb}{{{b{GFd}}}GFd}{{{b{GFf}}}GFf}{{{b{GFh}}}GFh}{{{b{GFj}}}GFj}{{{b{GFl}}}GFl}{{{b{GFn}}}GFn}{{{b{GG`}}}GG`}{{{b{GGb}}}GGb}{{{b{GGd}}}GGd}{{{b{GGf}}}GGf}{{{b{GGh}}}GGh}{{{b{GGj}}}GGj}{{{b{GGl}}}GGl}{{{b{GGn}}}GGn}{{{b{GH`}}}GH`}{{{b{GHb}}}GHb}{{{b{GHd}}}GHd}{{{b{GHf}}}GHf}{{{b{GHh}}}GHh}{{{b{GHj}}}GHj}{{{b{GHl}}}GHl}{{{b{GHn}}}GHn}{{{b{GI`}}}GI`}{{{b{GIb}}}GIb}{{{b{GId}}}GId}{{{b{GIf}}}GIf}{{{b{GIh}}}GIh}{{{b{GIj}}}GIj}{{{b{GIl}}}GIl}{{{b{GIn}}}GIn}{{{b{GJ`}}}GJ`}{{{b{GJb}}}GJb}{{{b{GJd}}}GJd}{{{b{GJf}}}GJf}{{{b{GJh}}}GJh}{{{b{GJj}}}GJj}{{{b{GJl}}}GJl}{{{b{GJn}}}GJn}{{{b{GK`}}}GK`}{{{b{GKb}}}GKb}{{{b{GKd}}}GKd}{{{b{GKf}}}GKf}{{{b{GKh}}}GKh}{{{b{GKj}}}GKj}{{{b{GKl}}}GKl}{{{b{GKn}}}GKn}{{{b{GL`}}}GL`}{{{b{GLb}}}GLb}{{{b{GLd}}}GLd}{{{b{GLf}}}GLf}{{{b{GLh}}}GLh}{{{b{GLj}}}GLj}{{{b{GLl}}}GLl}{{{b{GLn}}}GLn}{{{b{GM`}}}GM`}{{{b{GMb}}}GMb}{{{b{GMd}}}GMd}{{{b{GMf}}}GMf}{{{b{GMh}}}GMh}{{{b{GMj}}}GMj}{{{b{GMl}}}GMl}{{{b{GMn}}}GMn}{{{b{GN`}}}GN`}{{{b{GNb}}}GNb}{{{b{GNd}}}GNd}{{{b{GNf}}}GNf}{{{b{GNh}}}GNh}{{{b{GNj}}}GNj}{{{b{GNl}}}GNl}{{{b{GNn}}}GNn}{{{b{GO`}}}GO`}{{{b{GOb}}}GOb}{{{b{GOd}}}GOd}{{{b{GOf}}}GOf}{{{b{GOh}}}GOh}{{{b{GOj}}}GOj}{{{b{GOl}}}GOl}{{{b{GOn}}}GOn}{{{b{H@`}}}H@`}{{{b{H@b}}}H@b}{{{b{H@d}}}H@d}{{{b{H@f}}}H@f}{{{b{H@h}}}H@h}{{{b{H@j}}}H@j}{{{b{H@l}}}H@l}{{{b{H@n}}}H@n}{{{b{HA`}}}HA`}{{{b{HAb}}}HAb}{{{b{HAd}}}HAd}{{{b{HAf}}}HAf}{{{b{HAh}}}HAh}{{{b{HAj}}}HAj}{{{b{HAl}}}HAl}{{{b{HAn}}}HAn}{{{b{HB`}}}HB`}{{{b{HBb}}}HBb}{{{b{HBd}}}HBd}{{{b{HBf}}}HBf}{{{b{HBh}}}HBh}{{{b{HBj}}}HBj}{{{b{HBl}}}HBl}{{{b{HBn}}}HBn}{{{b{HC`}}}HC`}{{{b{HCb}}}HCb}{{{b{HCd}}}HCd}{{{b{HCf}}}HCf}{{{b{HCh}}}HCh}{{{b{HCj}}}HCj}{{{b{HCl}}}HCl}{{{b{HCn}}}HCn}{{{b{HD`}}}HD`}{{{b{HDb}}}HDb}{{{b{HDd}}}HDd}{{{b{HDf}}}HDf}{{{b{HDh}}}HDh}{{{b{HDj}}}HDj}{{{b{HDl}}}HDl}{{{b{HDn}}}HDn}{{{b{HE`}}}HE`}{{{b{HEb}}}HEb}{{{b{HEd}}}HEd}{{{b{HEf}}}HEf}{{{b{HEh}}}HEh}{{{b{HEj}}}HEj}{{{b{HEl}}}HEl}{{{b{HEn}}}HEn}{{{b{HF`}}}HF`}{{{b{HFb}}}HFb}{{{b{HFd}}}HFd}{{{b{HFf}}}HFf}{{{b{HFh}}}HFh}{{{b{HFj}}}HFj}{{{b{HFl}}}HFl}{{{b{HFn}}}HFn}{{{b{HG`}}}HG`}{{{b{HGb}}}HGb}{{{b{HGd}}}HGd}{{{b{HGf}}}HGf}{{{b{HGh}}}HGh}{{{b{HGj}}}HGj}{{{b{HGl}}}HGl}{{{b{HGn}}}HGn}{{{b{HH`}}}HH`}{{{b{HHb}}}HHb}{{{b{HHd}}}HHd}{{{b{HHf}}}HHf}{{{b{HHh}}}HHh}{{{b{HHj}}}HHj}{{{b{HHl}}}HHl}{{{b{HHn}}}HHn}{{{b{HI`}}}HI`}{{{b{HIb}}}HIb}{{{b{HId}}}HId}{{{b{HIf}}}HIf}{{{b{HIh}}}HIh}{{{b{HIj}}}HIj}{{{b{HIl}}}HIl}{{{b{HIn}}}HIn}{{{b{HJ`}}}HJ`}{{{b{HJb}}}HJb}{{{b{HJd}}}HJd}{{{b{HJf}}}HJf}{{{b{HJh}}}HJh}{{{b{HJj}}}HJj}{{{b{HJl}}}HJl}{{{b{HJn}}}HJn}{{{b{HK`}}}HK`}{{{b{HKb}}}HKb}{{{b{HKd}}}HKd}{{{b{HKf}}}HKf}{{{b{HKh}}}HKh}{{{b{HKj}}}HKj}{{{b{HKl}}}HKl}{{{b{HKn}}}HKn}{{{b{HL`}}}HL`}{{{b{HLb}}}HLb}{{{b{HLd}}}HLd}{{{b{HLf}}}HLf}{{{b{HLh}}}HLh}{{{b{HLj}}}HLj}{{{b{HLl}}}HLl}{{{b{HLn}}}HLn}{{{b{HM`}}}HM`}{{{b{HMb}}}HMb}{{{b{HMd}}}HMd}{{{b{HMf}}}HMf}{{{b{HMh}}}HMh}{{{b{HMj}}}HMj}{{{b{HMl}}}HMl}{{{b{HMn}}}HMn}{{{b{HN`}}}HN`}{{{b{HNb}}}HNb}{{{b{HNd}}}HNd}{{{b{HNf}}}HNf}{{{b{HNh}}}HNh}{{{b{HNj}}}HNj}{{{b{HNl}}}HNl}{{{b{HNn}}}HNn}{{{b{HO`}}}HO`}{{{b{HOb}}}HOb}{{{b{HOd}}}HOd}{{{b{HOf}}}HOf}{{{b{HOh}}}HOh}{{{b{HOj}}}HOj}{{{b{HOl}}}HOl}{{{b{HOn}}}HOn}{{{b{I@`}}}I@`}{{{b{I@b}}}I@b}{{{b{I@d}}}I@d}{{{b{I@f}}}I@f}{{{b{I@h}}}I@h}{{{b{I@j}}}I@j}{{{b{I@l}}}I@l}{{{b{I@n}}}I@n}{{{b{IA`}}}IA`}{{{b{IAb}}}IAb}{{{b{IAd}}}IAd}{{{b{GAj}}}GAj}{{{b{IAf}}}IAf}{{{b{IAh}}}IAh}{{{b{IAj}}}IAj}{{{b{IAl}}}IAl}{{{b{GAl}}}GAl}{{{b{IAn}}}IAn}{{{b{IB`}}}IB`}{{{b{IBb}}}IBb}{{{b{IBd}}}IBd}{{{b{IBf}}}IBf}{{{b{GAn}}}GAn}{{{b{IBh}}}IBh}{{{b{GB`}}}GB`}{{{b{IBj}}}IBj}{{{b{IBl}}}IBl}{{{b{IBn}}}IBn}{{{b{IC`}}}IC`}{{{b{GBb}}}GBb}{{{b{ICb}}}ICb}{{{b{ICd}}}ICd}{{{b{ICf}}}ICf}{{{b{ICh}}}ICh}{{{b{ICj}}}ICj}{{{b{ICl}}}ICl}{{{b{ICn}}}ICn}{{{b{ID`}}}ID`}{{{b{IDb}}}IDb}{{{b{GBd}}}GBd}{{{b{IDd}}}IDd}{{{b{IDf}}}IDf}{{{b{IDh}}}IDh}{{{b{IDj}}}IDj}{{{b{IDl}}}IDl}{{{b{IDn}}}IDn}{{{b{IE`}}}IE`}{{{b{IEb}}}IEb}{{{b{IEd}}}IEd}{{{b{IEf}}}IEf}{{{b{GBf}}}GBf}{{{b{IEh}}}IEh}{{{b{IEj}}}IEj}{{{b{IEl}}}IEl}{{{b{IEn}}}IEn}{{{b{IF`}}}IF`}{{{b{IFb}}}IFb}{{{b{IFd}}}IFd}{{{b{IFf}}}IFf}{{{b{IFh}}}IFh}{{{b{IFj}}}IFj}{{{b{IFl}}}IFl}{{{b{GBh}}}GBh}{{{b{GBj}}}GBj}{{{b{IFn}}}IFn}{{{b{IG`}}}IG`}{{{b{GBl}}}GBl}{{{b{IGb}}}IGb}{{{b{IGd}}}IGd}{{{b{IGf}}}IGf}{{{b{IGh}}}IGh}{{{b{IGj}}}IGj}{{{b{IGl}}}IGl}{{{b{IGn}}}IGn}{{{b{GBn}}}GBn}{{{b{IH`}}}IH`}{{{b{IHb}}}IHb}{{{b{IHd}}}IHd}{{{b{IHf}}}IHf}{{{b{IHh}}}IHh}{{{b{IHj}}}IHj}{{{b{GC`}}}GC`}{{{b{IHl}}}IHl}{{{b{IHn}}}IHn}{{{b{II`}}}II`}{{{b{IIb}}}IIb}{{{b{IId}}}IId}{{{b{IIf}}}IIf}{{{b{IIh}}}IIh}{{{b{GCb}}}GCb}{{{b{IIj}}}IIj}{{{b{IIl}}}IIl}{{{b{GCd}}}GCd}{{{b{IIn}}}IIn}{{{b{GCf}}}GCf}{{{b{IJ`}}}IJ`}{{{b{IJb}}}IJb}{{{b{IJd}}}IJd}{{{b{IJf}}}IJf}{{{b{IJh}}}IJh}{{{b{GCh}}}GCh}{{{b{IJj}}}IJj}{{{b{IJl}}}IJl}{{{b{IJn}}}IJn}{{{b{GCj}}}GCj}{{{b{IK`}}}IK`}{{{b{IKb}}}IKb}{{{b{IKd}}}IKd}{{{b{IKf}}}IKf}{{{b{GCl}}}GCl}{{{b{IKh}}}IKh}{{{b{IKj}}}IKj}{{{b{IKl}}}IKl}{{{b{IKn}}}IKn}{{{b{GCn}}}GCn}{{{b{GD`}}}GD`}{{{b{IL`}}}IL`}{{{b{GDb}}}GDb}{{{b{ILb}}}ILb}{{{b{ILd}}}ILd}{{{b{GDd}}}GDd}{{{b{ILf}}}ILf}{{{b{ILh}}}ILh}{{{b{ILj}}}ILj}{{{b{GDf}}}GDf}{{{b{ILl}}}ILl}{{{b{ILn}}}ILn}{{{b{IM`}}}IM`}{{{b{IMb}}}IMb}{{{b{IMd}}}IMd}{{{b{IMf}}}IMf}{{{b{IMh}}}IMh}{{{b{IMj}}}IMj}{{{b{IMl}}}IMl}{{{b{GDh}}}GDh}{{{b{IMn}}}IMn}{{{b{IN`}}}IN`}{{{b{INb}}}INb}{{{b{INd}}}INd}{{{b{INf}}}INf}{{{b{INh}}}INh}{{{b{INj}}}INj}{{{b{INl}}}INl}{{{b{GDj}}}GDj}{{{b{INn}}}INn}{{{b{IO`}}}IO`}{{{b{IOb}}}IOb}{{{b{IOd}}}IOd}{{{b{IOf}}}IOf}{{{b{GDl}}}GDl}{{{b{GDn}}}GDn}{{{b{IOh}}}IOh}{{{b{GE`}}}GE`}{{{b{IOj}}}IOj}{{{b{IOl}}}IOl}{{{b{c}}{b{de}}}Aj{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{GAj}}{b{GAj}}}DBb}{{{b{GAl}}{b{GAl}}}DBb}{{{b{GAn}}{b{GAn}}}DBb}{{{b{GB`}}{b{GB`}}}DBb}{{{b{GBb}}{b{GBb}}}DBb}{{{b{GBd}}{b{GBd}}}DBb}{{{b{GBf}}{b{GBf}}}DBb}{{{b{GBh}}{b{GBh}}}DBb}{{{b{GBj}}{b{GBj}}}DBb}{{{b{GBl}}{b{GBl}}}DBb}{{{b{GBn}}{b{GBn}}}DBb}{{{b{GC`}}{b{GC`}}}DBb}{{{b{GCb}}{b{GCb}}}DBb}{{{b{GCd}}{b{GCd}}}DBb}{{{b{GCf}}{b{GCf}}}DBb}{{{b{GCh}}{b{GCh}}}DBb}{{{b{GCj}}{b{GCj}}}DBb}{{{b{GCl}}{b{GCl}}}DBb}{{{b{GCn}}{b{GCn}}}DBb}{{{b{GD`}}{b{GD`}}}DBb}{{{b{GDb}}{b{GDb}}}DBb}{{{b{GDd}}{b{GDd}}}DBb}{{{b{GDf}}{b{GDf}}}DBb}{{{b{GDh}}{b{GDh}}}DBb}{{{b{GDj}}{b{GDj}}}DBb}{{{b{GDl}}{b{GDl}}}DBb}{{{b{GDn}}{b{GDn}}}DBb}{{{b{GE`}}{b{GE`}}}DBb}````````````{GAjGAj}{GAlGAl}{GAnGAn}{GB`GB`}{GBbGBb}{GBdGBd}{GBfGBf}{GBhGBh}{GBjGBj}{GBlGBl}{GBnGBn}{GC`GC`}{GCbGCb}{GCdGCd}{GCfGCf}{GChGCh}{GCjGCj}{GClGCl}{GCnGCn}{GD`GD`}{GDbGDb}{GDdGDd}{GDfGDf}{GDhGDh}{GDjGDj}{GDlGDl}{GDnGDn}{GE`GE`}``{{{b{GAj}}GAj}C`}{{{b{GAl}}GAl}C`}{{{b{GAn}}GAn}C`}{{{b{GB`}}GB`}C`}{{{b{GBb}}GBb}C`}{{{b{GBd}}GBd}C`}{{{b{GBf}}GBf}C`}{{{b{GBh}}GBh}C`}{{{b{GBj}}GBj}C`}{{{b{GBl}}GBl}C`}{{{b{GBn}}GBn}C`}{{{b{GC`}}GC`}C`}{{{b{GCb}}GCb}C`}{{{b{GCd}}GCd}C`}{{{b{GCf}}GCf}C`}{{{b{GCh}}GCh}C`}{{{b{GCj}}GCj}C`}{{{b{GCl}}GCl}C`}{{{b{GCn}}GCn}C`}{{{b{GD`}}GD`}C`}{{{b{GDb}}GDb}C`}{{{b{GDd}}GDd}C`}{{{b{GDf}}GDf}C`}{{{b{GDh}}GDh}C`}{{{b{GDj}}GDj}C`}{{{b{GDl}}GDl}C`}{{{b{GDn}}GDn}C`}{{{b{GE`}}GE`}C`}````````````````````````````````````````````````````````{{}GEd}{{}GEf}{{}GEh}{{}GEj}{{}GEl}{{}GEn}{{}GF`}{{}GFb}{{}GFd}{{}GFf}{{}GFh}{{}GFj}{{}GFl}{{}GFn}{{}GG`}{{}GGb}{{}GGd}{{}GGf}{{}GGh}{{}GGj}{{}GGl}{{}GGn}{{}GH`}{{}GHb}{{}GHd}{{}GHf}{{}GHh}{{}GHj}{{}GHl}{{}GHn}{{}GI`}{{}GIb}{{}GId}{{}GIf}{{}GIh}{{}GIj}{{}GIl}{{}GIn}{{}GJ`}{{}GJb}{{}GJd}{{}GJf}{{}GJh}{{}GJj}{{}GJl}{{}GJn}{{}GK`}{{}GKb}{{}GKd}{{}GKf}{{}GKh}{{}GKj}{{}GKl}{{}GKn}{{}GL`}{{}GLb}{{}GLd}{{}GLf}{{}GLh}{{}GLj}{{}GLl}{{}GLn}{{}GM`}{{}GMb}{{}GMd}{{}GMf}{{}GMh}{{}GMj}{{}GMl}{{}GMn}{{}GN`}{{}GNb}{{}GNd}{{}GNf}{{}GNh}{{}GNj}{{}GNl}{{}GNn}{{}GO`}{{}GOb}{{}GOd}{{}GOf}{{}GOh}{{}GOj}{{}GOl}{{}GOn}{{}H@`}{{}H@b}{{}H@d}{{}H@f}{{}H@h}{{}H@j}{{}H@l}{{}H@n}{{}HA`}{{}HAb}{{}HAd}{{}HAf}{{}HAh}{{}HAj}{{}HAl}{{}HAn}{{}HB`}{{}HBb}{{}HBd}{{}HBf}{{}HBh}{{}HBj}{{}HBl}{{}HBn}{{}HC`}{{}HCb}{{}HCd}{{}HCf}{{}HCh}{{}HCj}{{}HCl}{{}HCn}{{}HD`}{{}HDb}{{}HDd}{{}HDf}{{}HDh}{{}HDj}{{}HDl}{{}HDn}{{}HE`}{{}HEb}{{}HEd}{{}HEf}{{}HEh}{{}HEj}{{}HEl}{{}HEn}{{}HF`}{{}HFb}{{}HFd}{{}HFf}{{}HFh}{{}HFj}{{}HFl}{{}HFn}{{}HG`}{{}HGb}{{}HGd}{{}HGf}{{}HGh}{{}HGj}{{}HGl}{{}HGn}{{}HH`}{{}HHb}{{}HHd}{{}HHf}{{}HHh}{{}HHj}{{}HHl}{{}HHn}{{}HI`}{{}HIb}{{}HId}{{}HIf}{{}HIh}{{}HIj}{{}HIl}{{}HIn}{{}HJ`}{{}HJb}{{}HJd}{{}HJf}{{}HJh}{{}HJj}{{}HJl}{{}HJn}{{}HK`}{{}HKb}{{}HKd}{{}HKf}{{}HKh}{{}HKj}{{}HKl}{{}HKn}{{}HL`}{{}HLb}{{}HLd}{{}HLf}{{}HLh}{{}HLj}{{}HLl}{{}HLn}{{}HM`}{{}HMb}{{}HMd}{{}HMf}{{}HMh}{{}HMj}{{}HMl}{{}HMn}{{}HN`}{{}HNb}{{}HNd}{{}HNf}{{}HNh}{{}HNj}{{}HNl}{{}HNn}{{}HO`}{{}HOb}{{}HOd}{{}HOf}{{}HOh}{{}HOj}{{}HOl}{{}HOn}{{}I@`}{{}I@b}{{}I@d}{{}I@f}{{}I@h}{{}I@j}{{}I@l}{{}I@n}{{}IA`}{{}IAb}{{}IAd}{{}GAj}{{}IAf}{{}IAh}{{}IAj}{{}IAl}{{}GAl}{{}IAn}{{}IB`}{{}IBb}{{}IBd}{{}IBf}{{}GAn}{{}IBh}{{}GB`}{{}IBj}{{}IBl}{{}IBn}{{}IC`}{{}GBb}{{}ICb}{{}ICd}{{}ICf}{{}ICh}{{}ICj}{{}ICl}{{}ICn}{{}ID`}{{}IDb}{{}GBd}{{}IDd}{{}IDf}{{}IDh}{{}IDj}{{}IDl}{{}IDn}{{}IE`}{{}IEb}{{}IEd}{{}IEf}{{}GBf}{{}IEh}{{}IEj}{{}IEl}{{}IEn}{{}IF`}{{}IFb}{{}IFd}{{}IFf}{{}IFh}{{}IFj}{{}IFl}{{}GBh}{{}GBj}{{}IFn}{{}IG`}{{}GBl}{{}IGb}{{}IGd}{{}IGf}{{}IGh}{{}IGj}{{}IGl}{{}IGn}{{}GBn}{{}IH`}{{}IHb}{{}IHd}{{}IHf}{{}IHh}{{}IHj}{{}GC`}{{}IHl}{{}IHn}{{}II`}{{}IIb}{{}IId}{{}IIf}{{}IIh}{{}GCb}{{}IIj}{{}IIl}{{}GCd}{{}IIn}{{}GCf}{{}IJ`}{{}IJb}{{}IJd}{{}IJf}{{}IJh}{{}GCh}{{}IJj}{{}IJl}{{}IJn}{{}GCj}{{}IK`}{{}IKb}{{}IKd}{{}IKf}{{}GCl}{{}IKh}{{}IKj}{{}IKl}{{}IKn}{{}GCn}{{}GD`}{{}IL`}{{}GDb}{{}ILb}{{}ILd}{{}GDd}{{}ILf}{{}ILh}{{}ILj}{{}GDf}{{}ILl}{{}ILn}{{}IM`}{{}IMb}{{}IMd}{{}IMf}{{}IMh}{{}IMj}{{}IMl}{{}GDh}{{}IMn}{{}IN`}{{}INb}{{}INd}{{}INf}{{}INh}{{}INj}{{}INl}{{}GDj}{{}INn}{{}IO`}{{}IOb}{{}IOd}{{}IOf}{{}GDl}{{}GDn}{{}IOh}{{}GE`}{{}IOj}{{}IOl}{Bf{{Bd{GEb{b{Al}}}}}}```{{Ab{b{{h{f}}}}}{{Bd{GEdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GEfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GEhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GEjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GElBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GEnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GF`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GG`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GH`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GI`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GIbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GIdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GIfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GIhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GIjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GIlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GInBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJ`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GK`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GL`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GM`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GN`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GO`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GObBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GOdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GOfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GOhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GOjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GOlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GOnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@bBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@dBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@fBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@hBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@jBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@lBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@nBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HA`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HB`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HC`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HCbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HCdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HCfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HChBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HCjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HClBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HCnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HD`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HE`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HEbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HEdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HEfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HEhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HEjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HElBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HEnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HF`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HG`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HH`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HI`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HIbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HIdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HIfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HIhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HIjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HIlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HInBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJ`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HK`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HL`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HM`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HN`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HO`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HObBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HOdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HOfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HOhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HOjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HOlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HOnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@bBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@dBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@fBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@hBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@jBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@lBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@nBl}}}}{{Ab{b{{h{f}}}}}{{Bd{IA`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{IAbBl}}}}{c{{Bd{GEb}}}Bn}{c{{Bd{GEd}}}Bn}{c{{Bd{GEf}}}Bn}{c{{Bd{GEh}}}Bn}{c{{Bd{GEj}}}Bn}{c{{Bd{GEl}}}Bn}{c{{Bd{GEn}}}Bn}{c{{Bd{GF`}}}Bn}{c{{Bd{GFb}}}Bn}{c{{Bd{GFd}}}Bn}{c{{Bd{GFf}}}Bn}{c{{Bd{GFh}}}Bn}{c{{Bd{GFj}}}Bn}{c{{Bd{GFl}}}Bn}{c{{Bd{GFn}}}Bn}{c{{Bd{GG`}}}Bn}{c{{Bd{GGb}}}Bn}{c{{Bd{GGd}}}Bn}{c{{Bd{GGf}}}Bn}{c{{Bd{GGh}}}Bn}{c{{Bd{GGj}}}Bn}{c{{Bd{GGl}}}Bn}{c{{Bd{GGn}}}Bn}{c{{Bd{GH`}}}Bn}{c{{Bd{GHb}}}Bn}{c{{Bd{GHd}}}Bn}{c{{Bd{GHf}}}Bn}{c{{Bd{GHh}}}Bn}{c{{Bd{GHj}}}Bn}{c{{Bd{GHl}}}Bn}{c{{Bd{GHn}}}Bn}{c{{Bd{GI`}}}Bn}{c{{Bd{GIb}}}Bn}{c{{Bd{GId}}}Bn}{c{{Bd{GIf}}}Bn}{c{{Bd{GIh}}}Bn}{c{{Bd{GIj}}}Bn}{c{{Bd{GIl}}}Bn}{c{{Bd{GIn}}}Bn}{c{{Bd{GJ`}}}Bn}{c{{Bd{GJb}}}Bn}{c{{Bd{GJd}}}Bn}{c{{Bd{GJf}}}Bn}{c{{Bd{GJh}}}Bn}{c{{Bd{GJj}}}Bn}{c{{Bd{GJl}}}Bn}{c{{Bd{GJn}}}Bn}{c{{Bd{GK`}}}Bn}{c{{Bd{GKb}}}Bn}{c{{Bd{GKd}}}Bn}{c{{Bd{GKf}}}Bn}{c{{Bd{GKh}}}Bn}{c{{Bd{GKj}}}Bn}{c{{Bd{GKl}}}Bn}{c{{Bd{GKn}}}Bn}{c{{Bd{GL`}}}Bn}{c{{Bd{GLb}}}Bn}{c{{Bd{GLd}}}Bn}{c{{Bd{GLf}}}Bn}{c{{Bd{GLh}}}Bn}{c{{Bd{GLj}}}Bn}{c{{Bd{GLl}}}Bn}{c{{Bd{GLn}}}Bn}{c{{Bd{GM`}}}Bn}{c{{Bd{GMb}}}Bn}{c{{Bd{GMd}}}Bn}{c{{Bd{GMf}}}Bn}{c{{Bd{GMh}}}Bn}{c{{Bd{GMj}}}Bn}{c{{Bd{GMl}}}Bn}{c{{Bd{GMn}}}Bn}{c{{Bd{GN`}}}Bn}{c{{Bd{GNb}}}Bn}{c{{Bd{GNd}}}Bn}{c{{Bd{GNf}}}Bn}{c{{Bd{GNh}}}Bn}{c{{Bd{GNj}}}Bn}{c{{Bd{GNl}}}Bn}{c{{Bd{GNn}}}Bn}{c{{Bd{GO`}}}Bn}{c{{Bd{GOb}}}Bn}{c{{Bd{GOd}}}Bn}{c{{Bd{GOf}}}Bn}{c{{Bd{GOh}}}Bn}{c{{Bd{GOj}}}Bn}{c{{Bd{GOl}}}Bn}{c{{Bd{GOn}}}Bn}{c{{Bd{H@`}}}Bn}{c{{Bd{H@b}}}Bn}{c{{Bd{H@d}}}Bn}{c{{Bd{H@f}}}Bn}{c{{Bd{H@h}}}Bn}{c{{Bd{H@j}}}Bn}{c{{Bd{H@l}}}Bn}{c{{Bd{H@n}}}Bn}{c{{Bd{HA`}}}Bn}{c{{Bd{HAb}}}Bn}{c{{Bd{HAd}}}Bn}{c{{Bd{HAf}}}Bn}{c{{Bd{HAh}}}Bn}{c{{Bd{HAj}}}Bn}{c{{Bd{HAl}}}Bn}{c{{Bd{HAn}}}Bn}{c{{Bd{HB`}}}Bn}{c{{Bd{HBb}}}Bn}{c{{Bd{HBd}}}Bn}{c{{Bd{HBf}}}Bn}{c{{Bd{HBh}}}Bn}{c{{Bd{HBj}}}Bn}{c{{Bd{HBl}}}Bn}{c{{Bd{HBn}}}Bn}{c{{Bd{HC`}}}Bn}{c{{Bd{HCb}}}Bn}{c{{Bd{HCd}}}Bn}{c{{Bd{HCf}}}Bn}{c{{Bd{HCh}}}Bn}{c{{Bd{HCj}}}Bn}{c{{Bd{HCl}}}Bn}{c{{Bd{HCn}}}Bn}{c{{Bd{HD`}}}Bn}{c{{Bd{HDb}}}Bn}{c{{Bd{HDd}}}Bn}{c{{Bd{HDf}}}Bn}{c{{Bd{HDh}}}Bn}{c{{Bd{HDj}}}Bn}{c{{Bd{HDl}}}Bn}{c{{Bd{HDn}}}Bn}{c{{Bd{HE`}}}Bn}{c{{Bd{HEb}}}Bn}{c{{Bd{HEd}}}Bn}{c{{Bd{HEf}}}Bn}{c{{Bd{HEh}}}Bn}{c{{Bd{HEj}}}Bn}{c{{Bd{HEl}}}Bn}{c{{Bd{HEn}}}Bn}{c{{Bd{HF`}}}Bn}{c{{Bd{HFb}}}Bn}{c{{Bd{HFd}}}Bn}{c{{Bd{HFf}}}Bn}{c{{Bd{HFh}}}Bn}{c{{Bd{HFj}}}Bn}{c{{Bd{HFl}}}Bn}{c{{Bd{HFn}}}Bn}{c{{Bd{HG`}}}Bn}{c{{Bd{HGb}}}Bn}{c{{Bd{HGd}}}Bn}{c{{Bd{HGf}}}Bn}{c{{Bd{HGh}}}Bn}{c{{Bd{HGj}}}Bn}{c{{Bd{HGl}}}Bn}{c{{Bd{HGn}}}Bn}{c{{Bd{HH`}}}Bn}{c{{Bd{HHb}}}Bn}{c{{Bd{HHd}}}Bn}{c{{Bd{HHf}}}Bn}{c{{Bd{HHh}}}Bn}{c{{Bd{HHj}}}Bn}{c{{Bd{HHl}}}Bn}{c{{Bd{HHn}}}Bn}{c{{Bd{HI`}}}Bn}{c{{Bd{HIb}}}Bn}{c{{Bd{HId}}}Bn}{c{{Bd{HIf}}}Bn}{c{{Bd{HIh}}}Bn}{c{{Bd{HIj}}}Bn}{c{{Bd{HIl}}}Bn}{c{{Bd{HIn}}}Bn}{c{{Bd{HJ`}}}Bn}{c{{Bd{HJb}}}Bn}{c{{Bd{HJd}}}Bn}{c{{Bd{HJf}}}Bn}{c{{Bd{HJh}}}Bn}{c{{Bd{HJj}}}Bn}{c{{Bd{HJl}}}Bn}{c{{Bd{HJn}}}Bn}{c{{Bd{HK`}}}Bn}{c{{Bd{HKb}}}Bn}{c{{Bd{HKd}}}Bn}{c{{Bd{HKf}}}Bn}{c{{Bd{HKh}}}Bn}{c{{Bd{HKj}}}Bn}{c{{Bd{HKl}}}Bn}{c{{Bd{HKn}}}Bn}{c{{Bd{HL`}}}Bn}{c{{Bd{HLb}}}Bn}{c{{Bd{HLd}}}Bn}{c{{Bd{HLf}}}Bn}{c{{Bd{HLh}}}Bn}{c{{Bd{HLj}}}Bn}{c{{Bd{HLl}}}Bn}{c{{Bd{HLn}}}Bn}{c{{Bd{HM`}}}Bn}{c{{Bd{HMb}}}Bn}{c{{Bd{HMd}}}Bn}{c{{Bd{HMf}}}Bn}{c{{Bd{HMh}}}Bn}{c{{Bd{HMj}}}Bn}{c{{Bd{HMl}}}Bn}{c{{Bd{HMn}}}Bn}{c{{Bd{HN`}}}Bn}{c{{Bd{HNb}}}Bn}{c{{Bd{HNd}}}Bn}{c{{Bd{HNf}}}Bn}{c{{Bd{HNh}}}Bn}{c{{Bd{HNj}}}Bn}{c{{Bd{HNl}}}Bn}{c{{Bd{HNn}}}Bn}{c{{Bd{HO`}}}Bn}{c{{Bd{HOb}}}Bn}{c{{Bd{HOd}}}Bn}{c{{Bd{HOf}}}Bn}{c{{Bd{HOh}}}Bn}{c{{Bd{HOj}}}Bn}{c{{Bd{HOl}}}Bn}{c{{Bd{HOn}}}Bn}{c{{Bd{I@`}}}Bn}{c{{Bd{I@b}}}Bn}{c{{Bd{I@d}}}Bn}{c{{Bd{I@f}}}Bn}{c{{Bd{I@h}}}Bn}{c{{Bd{I@j}}}Bn}{c{{Bd{I@l}}}Bn}{c{{Bd{I@n}}}Bn}{c{{Bd{IA`}}}Bn}{c{{Bd{IAb}}}Bn}{c{{Bd{IAd}}}Bn}{c{{Bd{GAj}}}Bn}{c{{Bd{IAf}}}Bn}{c{{Bd{IAh}}}Bn}{c{{Bd{IAj}}}Bn}{c{{Bd{IAl}}}Bn}{c{{Bd{GAl}}}Bn}{c{{Bd{IAn}}}Bn}{c{{Bd{IB`}}}Bn}{c{{Bd{IBb}}}Bn}{c{{Bd{IBd}}}Bn}{c{{Bd{IBf}}}Bn}{c{{Bd{GAn}}}Bn}{c{{Bd{IBh}}}Bn}{c{{Bd{GB`}}}Bn}{c{{Bd{IBj}}}Bn}{c{{Bd{IBl}}}Bn}{c{{Bd{IBn}}}Bn}{c{{Bd{IC`}}}Bn}{c{{Bd{GBb}}}Bn}{c{{Bd{ICb}}}Bn}{c{{Bd{ICd}}}Bn}{c{{Bd{ICf}}}Bn}{c{{Bd{ICh}}}Bn}{c{{Bd{ICj}}}Bn}{c{{Bd{ICl}}}Bn}{c{{Bd{ICn}}}Bn}{c{{Bd{ID`}}}Bn}{c{{Bd{IDb}}}Bn}{c{{Bd{GBd}}}Bn}{c{{Bd{IDd}}}Bn}{c{{Bd{IDf}}}Bn}{c{{Bd{IDh}}}Bn}{c{{Bd{IDj}}}Bn}{c{{Bd{IDl}}}Bn}{c{{Bd{IDn}}}Bn}{c{{Bd{IE`}}}Bn}{c{{Bd{IEb}}}Bn}{c{{Bd{IEd}}}Bn}{c{{Bd{IEf}}}Bn}{c{{Bd{GBf}}}Bn}{c{{Bd{IEh}}}Bn}{c{{Bd{IEj}}}Bn}{c{{Bd{IEl}}}Bn}{c{{Bd{IEn}}}Bn}{c{{Bd{IF`}}}Bn}{c{{Bd{IFb}}}Bn}{c{{Bd{IFd}}}Bn}{c{{Bd{IFf}}}Bn}{c{{Bd{IFh}}}Bn}{c{{Bd{IFj}}}Bn}{c{{Bd{IFl}}}Bn}{c{{Bd{GBh}}}Bn}{c{{Bd{GBj}}}Bn}{c{{Bd{IFn}}}Bn}{c{{Bd{IG`}}}Bn}{c{{Bd{GBl}}}Bn}{c{{Bd{IGb}}}Bn}{c{{Bd{IGd}}}Bn}{c{{Bd{IGf}}}Bn}{c{{Bd{IGh}}}Bn}{c{{Bd{IGj}}}Bn}{c{{Bd{IGl}}}Bn}{c{{Bd{IGn}}}Bn}{c{{Bd{GBn}}}Bn}{c{{Bd{IH`}}}Bn}{c{{Bd{IHb}}}Bn}{c{{Bd{IHd}}}Bn}{c{{Bd{IHf}}}Bn}{c{{Bd{IHh}}}Bn}{c{{Bd{IHj}}}Bn}{c{{Bd{GC`}}}Bn}{c{{Bd{IHl}}}Bn}{c{{Bd{IHn}}}Bn}{c{{Bd{II`}}}Bn}{c{{Bd{IIb}}}Bn}{c{{Bd{IId}}}Bn}{c{{Bd{IIf}}}Bn}{c{{Bd{IIh}}}Bn}{c{{Bd{GCb}}}Bn}{c{{Bd{IIj}}}Bn}{c{{Bd{IIl}}}Bn}{c{{Bd{GCd}}}Bn}{c{{Bd{IIn}}}Bn}{c{{Bd{GCf}}}Bn}{c{{Bd{IJ`}}}Bn}{c{{Bd{IJb}}}Bn}{c{{Bd{IJd}}}Bn}{c{{Bd{IJf}}}Bn}{c{{Bd{IJh}}}Bn}{c{{Bd{GCh}}}Bn}{c{{Bd{IJj}}}Bn}{c{{Bd{IJl}}}Bn}{c{{Bd{IJn}}}Bn}{c{{Bd{GCj}}}Bn}{c{{Bd{IK`}}}Bn}{c{{Bd{IKb}}}Bn}{c{{Bd{IKd}}}Bn}{c{{Bd{IKf}}}Bn}{c{{Bd{GCl}}}Bn}{c{{Bd{IKh}}}Bn}{c{{Bd{IKj}}}Bn}{c{{Bd{IKl}}}Bn}{c{{Bd{IKn}}}Bn}{c{{Bd{GCn}}}Bn}{c{{Bd{GD`}}}Bn}{c{{Bd{IL`}}}Bn}{c{{Bd{GDb}}}Bn}{c{{Bd{ILb}}}Bn}{c{{Bd{ILd}}}Bn}{c{{Bd{GDd}}}Bn}{c{{Bd{ILf}}}Bn}{c{{Bd{ILh}}}Bn}{c{{Bd{ILj}}}Bn}{c{{Bd{GDf}}}Bn}{c{{Bd{ILl}}}Bn}{c{{Bd{ILn}}}Bn}{c{{Bd{IM`}}}Bn}{c{{Bd{IMb}}}Bn}{c{{Bd{IMd}}}Bn}{c{{Bd{IMf}}}Bn}{c{{Bd{IMh}}}Bn}{c{{Bd{IMj}}}Bn}{c{{Bd{IMl}}}Bn}{c{{Bd{GDh}}}Bn}{c{{Bd{IMn}}}Bn}{c{{Bd{IN`}}}Bn}{c{{Bd{INb}}}Bn}{c{{Bd{INd}}}Bn}{c{{Bd{INf}}}Bn}{c{{Bd{INh}}}Bn}{c{{Bd{INj}}}Bn}{c{{Bd{INl}}}Bn}{c{{Bd{GDj}}}Bn}{c{{Bd{INn}}}Bn}{c{{Bd{IO`}}}Bn}{c{{Bd{IOb}}}Bn}{c{{Bd{IOd}}}Bn}{c{{Bd{IOf}}}Bn}{c{{Bd{GDl}}}Bn}{c{{Bd{GDn}}}Bn}{c{{Bd{IOh}}}Bn}{c{{Bd{GE`}}}Bn}{c{{Bd{IOj}}}Bn}{c{{Bd{IOl}}}Bn}```````````{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}`````````````````{{}GAj}{{}GAl}{{}GAn}{{}GB`}{{}GBb}{{}GBd}{{}GBf}{{}GBh}{{}GBj}{{}GBl}{{}GBn}{{}GC`}{{}GCb}{{}GCd}{{}GCf}{{}GCh}{{}GCj}{{}GCl}{{}GCn}{{}GD`}{{}GDb}{{}GDd}{{}GDf}{{}GDh}{{}GDj}{{}GDl}{{}GDn}{{}GE`}```````````````{{{b{GEb}}{b{GEb}}}C`}{{{b{GEd}}{b{GEd}}}C`}{{{b{GEf}}{b{GEf}}}C`}{{{b{GEh}}{b{GEh}}}C`}{{{b{GEj}}{b{GEj}}}C`}{{{b{GEl}}{b{GEl}}}C`}{{{b{GEn}}{b{GEn}}}C`}{{{b{GF`}}{b{GF`}}}C`}{{{b{GFb}}{b{GFb}}}C`}{{{b{GFd}}{b{GFd}}}C`}{{{b{GFf}}{b{GFf}}}C`}{{{b{GFh}}{b{GFh}}}C`}{{{b{GFj}}{b{GFj}}}C`}{{{b{GFl}}{b{GFl}}}C`}{{{b{GFn}}{b{GFn}}}C`}{{{b{GG`}}{b{GG`}}}C`}{{{b{GGb}}{b{GGb}}}C`}{{{b{GGd}}{b{GGd}}}C`}{{{b{GGf}}{b{GGf}}}C`}{{{b{GGh}}{b{GGh}}}C`}{{{b{GGj}}{b{GGj}}}C`}{{{b{GGl}}{b{GGl}}}C`}{{{b{GGn}}{b{GGn}}}C`}{{{b{GH`}}{b{GH`}}}C`}{{{b{GHb}}{b{GHb}}}C`}{{{b{GHd}}{b{GHd}}}C`}{{{b{GHf}}{b{GHf}}}C`}{{{b{GHh}}{b{GHh}}}C`}{{{b{GHj}}{b{GHj}}}C`}{{{b{GHl}}{b{GHl}}}C`}{{{b{GHn}}{b{GHn}}}C`}{{{b{GI`}}{b{GI`}}}C`}{{{b{GIb}}{b{GIb}}}C`}{{{b{GId}}{b{GId}}}C`}{{{b{GIf}}{b{GIf}}}C`}{{{b{GIh}}{b{GIh}}}C`}{{{b{GIj}}{b{GIj}}}C`}{{{b{GIl}}{b{GIl}}}C`}{{{b{GIn}}{b{GIn}}}C`}{{{b{GJ`}}{b{GJ`}}}C`}{{{b{GJb}}{b{GJb}}}C`}{{{b{GJd}}{b{GJd}}}C`}{{{b{GJf}}{b{GJf}}}C`}{{{b{GJh}}{b{GJh}}}C`}{{{b{GJj}}{b{GJj}}}C`}{{{b{GJl}}{b{GJl}}}C`}{{{b{GJn}}{b{GJn}}}C`}{{{b{GK`}}{b{GK`}}}C`}{{{b{GKb}}{b{GKb}}}C`}{{{b{GKd}}{b{GKd}}}C`}{{{b{GKf}}{b{GKf}}}C`}{{{b{GKh}}{b{GKh}}}C`}{{{b{GKj}}{b{GKj}}}C`}{{{b{GKl}}{b{GKl}}}C`}{{{b{GKn}}{b{GKn}}}C`}{{{b{GL`}}{b{GL`}}}C`}{{{b{GLb}}{b{GLb}}}C`}{{{b{GLd}}{b{GLd}}}C`}{{{b{GLf}}{b{GLf}}}C`}{{{b{GLh}}{b{GLh}}}C`}{{{b{GLj}}{b{GLj}}}C`}{{{b{GLl}}{b{GLl}}}C`}{{{b{GLn}}{b{GLn}}}C`}{{{b{GM`}}{b{GM`}}}C`}{{{b{GMb}}{b{GMb}}}C`}{{{b{GMd}}{b{GMd}}}C`}{{{b{GMf}}{b{GMf}}}C`}{{{b{GMh}}{b{GMh}}}C`}{{{b{GMj}}{b{GMj}}}C`}{{{b{GMl}}{b{GMl}}}C`}{{{b{GMn}}{b{GMn}}}C`}{{{b{GN`}}{b{GN`}}}C`}{{{b{GNb}}{b{GNb}}}C`}{{{b{GNd}}{b{GNd}}}C`}{{{b{GNf}}{b{GNf}}}C`}{{{b{GNh}}{b{GNh}}}C`}{{{b{GNj}}{b{GNj}}}C`}{{{b{GNl}}{b{GNl}}}C`}{{{b{GNn}}{b{GNn}}}C`}{{{b{GO`}}{b{GO`}}}C`}{{{b{GOb}}{b{GOb}}}C`}{{{b{GOd}}{b{GOd}}}C`}{{{b{GOf}}{b{GOf}}}C`}{{{b{GOh}}{b{GOh}}}C`}{{{b{GOj}}{b{GOj}}}C`}{{{b{GOl}}{b{GOl}}}C`}{{{b{GOn}}{b{GOn}}}C`}{{{b{H@`}}{b{H@`}}}C`}{{{b{H@b}}{b{H@b}}}C`}{{{b{H@d}}{b{H@d}}}C`}{{{b{H@f}}{b{H@f}}}C`}{{{b{H@h}}{b{H@h}}}C`}{{{b{H@j}}{b{H@j}}}C`}{{{b{H@l}}{b{H@l}}}C`}{{{b{H@n}}{b{H@n}}}C`}{{{b{HA`}}{b{HA`}}}C`}{{{b{HAb}}{b{HAb}}}C`}{{{b{HAd}}{b{HAd}}}C`}{{{b{HAf}}{b{HAf}}}C`}{{{b{HAh}}{b{HAh}}}C`}{{{b{HAj}}{b{HAj}}}C`}{{{b{HAl}}{b{HAl}}}C`}{{{b{HAn}}{b{HAn}}}C`}{{{b{HB`}}{b{HB`}}}C`}{{{b{HBb}}{b{HBb}}}C`}{{{b{HBd}}{b{HBd}}}C`}{{{b{HBf}}{b{HBf}}}C`}{{{b{HBh}}{b{HBh}}}C`}{{{b{HBj}}{b{HBj}}}C`}{{{b{HBl}}{b{HBl}}}C`}{{{b{HBn}}{b{HBn}}}C`}{{{b{HC`}}{b{HC`}}}C`}{{{b{HCb}}{b{HCb}}}C`}{{{b{HCd}}{b{HCd}}}C`}{{{b{HCf}}{b{HCf}}}C`}{{{b{HCh}}{b{HCh}}}C`}{{{b{HCj}}{b{HCj}}}C`}{{{b{HCl}}{b{HCl}}}C`}{{{b{HCn}}{b{HCn}}}C`}{{{b{HD`}}{b{HD`}}}C`}{{{b{HDb}}{b{HDb}}}C`}{{{b{HDd}}{b{HDd}}}C`}{{{b{HDf}}{b{HDf}}}C`}{{{b{HDh}}{b{HDh}}}C`}{{{b{HDj}}{b{HDj}}}C`}{{{b{HDl}}{b{HDl}}}C`}{{{b{HDn}}{b{HDn}}}C`}{{{b{HE`}}{b{HE`}}}C`}{{{b{HEb}}{b{HEb}}}C`}{{{b{HEd}}{b{HEd}}}C`}{{{b{HEf}}{b{HEf}}}C`}{{{b{HEh}}{b{HEh}}}C`}{{{b{HEj}}{b{HEj}}}C`}{{{b{HEl}}{b{HEl}}}C`}{{{b{HEn}}{b{HEn}}}C`}{{{b{HF`}}{b{HF`}}}C`}{{{b{HFb}}{b{HFb}}}C`}{{{b{HFd}}{b{HFd}}}C`}{{{b{HFf}}{b{HFf}}}C`}{{{b{HFh}}{b{HFh}}}C`}{{{b{HFj}}{b{HFj}}}C`}{{{b{HFl}}{b{HFl}}}C`}{{{b{HFn}}{b{HFn}}}C`}{{{b{HG`}}{b{HG`}}}C`}{{{b{HGb}}{b{HGb}}}C`}{{{b{HGd}}{b{HGd}}}C`}{{{b{HGf}}{b{HGf}}}C`}{{{b{HGh}}{b{HGh}}}C`}{{{b{HGj}}{b{HGj}}}C`}{{{b{HGl}}{b{HGl}}}C`}{{{b{HGn}}{b{HGn}}}C`}{{{b{HH`}}{b{HH`}}}C`}{{{b{HHb}}{b{HHb}}}C`}{{{b{HHd}}{b{HHd}}}C`}{{{b{HHf}}{b{HHf}}}C`}{{{b{HHh}}{b{HHh}}}C`}{{{b{HHj}}{b{HHj}}}C`}{{{b{HHl}}{b{HHl}}}C`}{{{b{HHn}}{b{HHn}}}C`}{{{b{HI`}}{b{HI`}}}C`}{{{b{HIb}}{b{HIb}}}C`}{{{b{HId}}{b{HId}}}C`}{{{b{HIf}}{b{HIf}}}C`}{{{b{HIh}}{b{HIh}}}C`}{{{b{HIj}}{b{HIj}}}C`}{{{b{HIl}}{b{HIl}}}C`}{{{b{HIn}}{b{HIn}}}C`}{{{b{HJ`}}{b{HJ`}}}C`}{{{b{HJb}}{b{HJb}}}C`}{{{b{HJd}}{b{HJd}}}C`}{{{b{HJf}}{b{HJf}}}C`}{{{b{HJh}}{b{HJh}}}C`}{{{b{HJj}}{b{HJj}}}C`}{{{b{HJl}}{b{HJl}}}C`}{{{b{HJn}}{b{HJn}}}C`}{{{b{HK`}}{b{HK`}}}C`}{{{b{HKb}}{b{HKb}}}C`}{{{b{HKd}}{b{HKd}}}C`}{{{b{HKf}}{b{HKf}}}C`}{{{b{HKh}}{b{HKh}}}C`}{{{b{HKj}}{b{HKj}}}C`}{{{b{HKl}}{b{HKl}}}C`}{{{b{HKn}}{b{HKn}}}C`}{{{b{HL`}}{b{HL`}}}C`}{{{b{HLb}}{b{HLb}}}C`}{{{b{HLd}}{b{HLd}}}C`}{{{b{HLf}}{b{HLf}}}C`}{{{b{HLh}}{b{HLh}}}C`}{{{b{HLj}}{b{HLj}}}C`}{{{b{HLl}}{b{HLl}}}C`}{{{b{HLn}}{b{HLn}}}C`}{{{b{HM`}}{b{HM`}}}C`}{{{b{HMb}}{b{HMb}}}C`}{{{b{HMd}}{b{HMd}}}C`}{{{b{HMf}}{b{HMf}}}C`}{{{b{HMh}}{b{HMh}}}C`}{{{b{HMj}}{b{HMj}}}C`}{{{b{HMl}}{b{HMl}}}C`}{{{b{HMn}}{b{HMn}}}C`}{{{b{HN`}}{b{HN`}}}C`}{{{b{HNb}}{b{HNb}}}C`}{{{b{HNd}}{b{HNd}}}C`}{{{b{HNf}}{b{HNf}}}C`}{{{b{HNh}}{b{HNh}}}C`}{{{b{HNj}}{b{HNj}}}C`}{{{b{HNl}}{b{HNl}}}C`}{{{b{HNn}}{b{HNn}}}C`}{{{b{HO`}}{b{HO`}}}C`}{{{b{HOb}}{b{HOb}}}C`}{{{b{HOd}}{b{HOd}}}C`}{{{b{HOf}}{b{HOf}}}C`}{{{b{HOh}}{b{HOh}}}C`}{{{b{HOj}}{b{HOj}}}C`}{{{b{HOl}}{b{HOl}}}C`}{{{b{HOn}}{b{HOn}}}C`}{{{b{I@`}}{b{I@`}}}C`}{{{b{I@b}}{b{I@b}}}C`}{{{b{I@d}}{b{I@d}}}C`}{{{b{I@f}}{b{I@f}}}C`}{{{b{I@h}}{b{I@h}}}C`}{{{b{I@j}}{b{I@j}}}C`}{{{b{I@l}}{b{I@l}}}C`}{{{b{I@n}}{b{I@n}}}C`}{{{b{IA`}}{b{IA`}}}C`}{{{b{IAb}}{b{IAb}}}C`}{{{b{IAd}}{b{IAd}}}C`}{{{b{GAj}}{b{GAj}}}C`}{{{b{IAf}}{b{IAf}}}C`}{{{b{IAh}}{b{IAh}}}C`}{{{b{IAj}}{b{IAj}}}C`}{{{b{IAl}}{b{IAl}}}C`}{{{b{GAl}}{b{GAl}}}C`}{{{b{IAn}}{b{IAn}}}C`}{{{b{IB`}}{b{IB`}}}C`}{{{b{IBb}}{b{IBb}}}C`}{{{b{IBd}}{b{IBd}}}C`}{{{b{IBf}}{b{IBf}}}C`}{{{b{GAn}}{b{GAn}}}C`}{{{b{IBh}}{b{IBh}}}C`}{{{b{GB`}}{b{GB`}}}C`}{{{b{IBj}}{b{IBj}}}C`}{{{b{IBl}}{b{IBl}}}C`}{{{b{IBn}}{b{IBn}}}C`}{{{b{IC`}}{b{IC`}}}C`}{{{b{GBb}}{b{GBb}}}C`}{{{b{ICb}}{b{ICb}}}C`}{{{b{ICd}}{b{ICd}}}C`}{{{b{ICf}}{b{ICf}}}C`}{{{b{ICh}}{b{ICh}}}C`}{{{b{ICj}}{b{ICj}}}C`}{{{b{ICl}}{b{ICl}}}C`}{{{b{ICn}}{b{ICn}}}C`}{{{b{ID`}}{b{ID`}}}C`}{{{b{IDb}}{b{IDb}}}C`}{{{b{GBd}}{b{GBd}}}C`}{{{b{IDd}}{b{IDd}}}C`}{{{b{IDf}}{b{IDf}}}C`}{{{b{IDh}}{b{IDh}}}C`}{{{b{IDj}}{b{IDj}}}C`}{{{b{IDl}}{b{IDl}}}C`}{{{b{IDn}}{b{IDn}}}C`}{{{b{IE`}}{b{IE`}}}C`}{{{b{IEb}}{b{IEb}}}C`}{{{b{IEd}}{b{IEd}}}C`}{{{b{IEf}}{b{IEf}}}C`}{{{b{GBf}}{b{GBf}}}C`}{{{b{IEh}}{b{IEh}}}C`}{{{b{IEj}}{b{IEj}}}C`}{{{b{IEl}}{b{IEl}}}C`}{{{b{IEn}}{b{IEn}}}C`}{{{b{IF`}}{b{IF`}}}C`}{{{b{IFb}}{b{IFb}}}C`}{{{b{IFd}}{b{IFd}}}C`}{{{b{IFf}}{b{IFf}}}C`}{{{b{IFh}}{b{IFh}}}C`}{{{b{IFj}}{b{IFj}}}C`}{{{b{IFl}}{b{IFl}}}C`}{{{b{GBh}}{b{GBh}}}C`}{{{b{GBj}}{b{GBj}}}C`}{{{b{IFn}}{b{IFn}}}C`}{{{b{IG`}}{b{IG`}}}C`}{{{b{GBl}}{b{GBl}}}C`}{{{b{IGb}}{b{IGb}}}C`}{{{b{IGd}}{b{IGd}}}C`}{{{b{IGf}}{b{IGf}}}C`}{{{b{IGh}}{b{IGh}}}C`}{{{b{IGj}}{b{IGj}}}C`}{{{b{IGl}}{b{IGl}}}C`}{{{b{IGn}}{b{IGn}}}C`}{{{b{GBn}}{b{GBn}}}C`}{{{b{IH`}}{b{IH`}}}C`}{{{b{IHb}}{b{IHb}}}C`}{{{b{IHd}}{b{IHd}}}C`}{{{b{IHf}}{b{IHf}}}C`}{{{b{IHh}}{b{IHh}}}C`}{{{b{IHj}}{b{IHj}}}C`}{{{b{GC`}}{b{GC`}}}C`}{{{b{IHl}}{b{IHl}}}C`}{{{b{IHn}}{b{IHn}}}C`}{{{b{II`}}{b{II`}}}C`}{{{b{IIb}}{b{IIb}}}C`}{{{b{IId}}{b{IId}}}C`}{{{b{IIf}}{b{IIf}}}C`}{{{b{IIh}}{b{IIh}}}C`}{{{b{GCb}}{b{GCb}}}C`}{{{b{IIj}}{b{IIj}}}C`}{{{b{IIl}}{b{IIl}}}C`}{{{b{GCd}}{b{GCd}}}C`}{{{b{IIn}}{b{IIn}}}C`}{{{b{GCf}}{b{GCf}}}C`}{{{b{IJ`}}{b{IJ`}}}C`}{{{b{IJb}}{b{IJb}}}C`}{{{b{IJd}}{b{IJd}}}C`}{{{b{IJf}}{b{IJf}}}C`}{{{b{IJh}}{b{IJh}}}C`}{{{b{GCh}}{b{GCh}}}C`}{{{b{IJj}}{b{IJj}}}C`}{{{b{IJl}}{b{IJl}}}C`}{{{b{IJn}}{b{IJn}}}C`}{{{b{GCj}}{b{GCj}}}C`}{{{b{IK`}}{b{IK`}}}C`}{{{b{IKb}}{b{IKb}}}C`}{{{b{IKd}}{b{IKd}}}C`}{{{b{IKf}}{b{IKf}}}C`}{{{b{GCl}}{b{GCl}}}C`}{{{b{IKh}}{b{IKh}}}C`}{{{b{IKj}}{b{IKj}}}C`}{{{b{IKl}}{b{IKl}}}C`}{{{b{IKn}}{b{IKn}}}C`}{{{b{GCn}}{b{GCn}}}C`}{{{b{GD`}}{b{GD`}}}C`}{{{b{IL`}}{b{IL`}}}C`}{{{b{GDb}}{b{GDb}}}C`}{{{b{ILb}}{b{ILb}}}C`}{{{b{ILd}}{b{ILd}}}C`}{{{b{GDd}}{b{GDd}}}C`}{{{b{ILf}}{b{ILf}}}C`}{{{b{ILh}}{b{ILh}}}C`}{{{b{ILj}}{b{ILj}}}C`}{{{b{GDf}}{b{GDf}}}C`}{{{b{ILl}}{b{ILl}}}C`}{{{b{ILn}}{b{ILn}}}C`}{{{b{IM`}}{b{IM`}}}C`}{{{b{IMb}}{b{IMb}}}C`}{{{b{IMd}}{b{IMd}}}C`}{{{b{IMf}}{b{IMf}}}C`}{{{b{IMh}}{b{IMh}}}C`}{{{b{IMj}}{b{IMj}}}C`}{{{b{IMl}}{b{IMl}}}C`}{{{b{GDh}}{b{GDh}}}C`}{{{b{IMn}}{b{IMn}}}C`}{{{b{IN`}}{b{IN`}}}C`}{{{b{INb}}{b{INb}}}C`}{{{b{INd}}{b{INd}}}C`}{{{b{INf}}{b{INf}}}C`}{{{b{INh}}{b{INh}}}C`}{{{b{INj}}{b{INj}}}C`}{{{b{INl}}{b{INl}}}C`}{{{b{GDj}}{b{GDj}}}C`}{{{b{INn}}{b{INn}}}C`}{{{b{IO`}}{b{IO`}}}C`}{{{b{IOb}}{b{IOb}}}C`}{{{b{IOd}}{b{IOd}}}C`}{{{b{IOf}}{b{IOf}}}C`}{{{b{GDl}}{b{GDl}}}C`}{{{b{GDn}}{b{GDn}}}C`}{{{b{IOh}}{b{IOh}}}C`}{{{b{GE`}}{b{GE`}}}C`}{{{b{IOj}}{b{IOj}}}C`}{{{b{IOl}}{b{IOl}}}C`}`````````````{{{b{dGAj}}c}Aj{{DBf{}{{DBd{GAj}}}}}}{{{b{dGAl}}c}Aj{{DBf{}{{DBd{GAl}}}}}}{{{b{dGAn}}c}Aj{{DBf{}{{DBd{GAn}}}}}}{{{b{dGB`}}c}Aj{{DBf{}{{DBd{GB`}}}}}}{{{b{dGBb}}c}Aj{{DBf{}{{DBd{GBb}}}}}}{{{b{dGBd}}c}Aj{{DBf{}{{DBd{GBd}}}}}}{{{b{dGBf}}c}Aj{{DBf{}{{DBd{GBf}}}}}}{{{b{dGBh}}c}Aj{{DBf{}{{DBd{GBh}}}}}}{{{b{dGBj}}c}Aj{{DBf{}{{DBd{GBj}}}}}}{{{b{dGBl}}c}Aj{{DBf{}{{DBd{GBl}}}}}}{{{b{dGBn}}c}Aj{{DBf{}{{DBd{GBn}}}}}}{{{b{dGC`}}c}Aj{{DBf{}{{DBd{GC`}}}}}}{{{b{dGCb}}c}Aj{{DBf{}{{DBd{GCb}}}}}}{{{b{dGCd}}c}Aj{{DBf{}{{DBd{GCd}}}}}}{{{b{dGCf}}c}Aj{{DBf{}{{DBd{GCf}}}}}}{{{b{dGCh}}c}Aj{{DBf{}{{DBd{GCh}}}}}}{{{b{dGCj}}c}Aj{{DBf{}{{DBd{GCj}}}}}}{{{b{dGCl}}c}Aj{{DBf{}{{DBd{GCl}}}}}}{{{b{dGCn}}c}Aj{{DBf{}{{DBd{GCn}}}}}}{{{b{dGD`}}c}Aj{{DBf{}{{DBd{GD`}}}}}}{{{b{dGDb}}c}Aj{{DBf{}{{DBd{GDb}}}}}}{{{b{dGDd}}c}Aj{{DBf{}{{DBd{GDd}}}}}}{{{b{dGDf}}c}Aj{{DBf{}{{DBd{GDf}}}}}}{{{b{dGDh}}c}Aj{{DBf{}{{DBd{GDh}}}}}}{{{b{dGDj}}c}Aj{{DBf{}{{DBd{GDj}}}}}}{{{b{dGDl}}c}Aj{{DBf{}{{DBd{GDl}}}}}}{{{b{dGDn}}c}Aj{{DBf{}{{DBd{GDn}}}}}}{{{b{dGE`}}c}Aj{{DBf{}{{DBd{GE`}}}}}}{Bff}`````````````````````````````````````````````````{{{b{GEb}}{b{dCb}}}DBh}{{{b{GEd}}{b{dCb}}}DBh}{{{b{GEf}}{b{dCb}}}DBh}{{{b{GEh}}{b{dCb}}}DBh}{{{b{GEj}}{b{dCb}}}DBh}{{{b{GEl}}{b{dCb}}}DBh}{{{b{GEn}}{b{dCb}}}DBh}{{{b{GF`}}{b{dCb}}}DBh}{{{b{GFb}}{b{dCb}}}DBh}{{{b{GFd}}{b{dCb}}}DBh}{{{b{GFf}}{b{dCb}}}DBh}{{{b{GFh}}{b{dCb}}}DBh}{{{b{GFj}}{b{dCb}}}DBh}{{{b{GFl}}{b{dCb}}}DBh}{{{b{GFn}}{b{dCb}}}DBh}{{{b{GG`}}{b{dCb}}}DBh}{{{b{GGb}}{b{dCb}}}DBh}{{{b{GGd}}{b{dCb}}}DBh}{{{b{GGf}}{b{dCb}}}DBh}{{{b{GGh}}{b{dCb}}}DBh}{{{b{GGj}}{b{dCb}}}DBh}{{{b{GGl}}{b{dCb}}}DBh}{{{b{GGn}}{b{dCb}}}DBh}{{{b{GH`}}{b{dCb}}}DBh}{{{b{GHb}}{b{dCb}}}DBh}{{{b{GHd}}{b{dCb}}}DBh}{{{b{GHf}}{b{dCb}}}DBh}{{{b{GHh}}{b{dCb}}}DBh}{{{b{GHj}}{b{dCb}}}DBh}{{{b{GHl}}{b{dCb}}}DBh}{{{b{GHn}}{b{dCb}}}DBh}{{{b{GI`}}{b{dCb}}}DBh}{{{b{GIb}}{b{dCb}}}DBh}{{{b{GId}}{b{dCb}}}DBh}{{{b{GIf}}{b{dCb}}}DBh}{{{b{GIh}}{b{dCb}}}DBh}{{{b{GIj}}{b{dCb}}}DBh}{{{b{GIl}}{b{dCb}}}DBh}{{{b{GIn}}{b{dCb}}}DBh}{{{b{GJ`}}{b{dCb}}}DBh}{{{b{GJb}}{b{dCb}}}DBh}{{{b{GJd}}{b{dCb}}}DBh}{{{b{GJf}}{b{dCb}}}DBh}{{{b{GJh}}{b{dCb}}}DBh}{{{b{GJj}}{b{dCb}}}DBh}{{{b{GJl}}{b{dCb}}}DBh}{{{b{GJn}}{b{dCb}}}DBh}{{{b{GK`}}{b{dCb}}}DBh}{{{b{GKb}}{b{dCb}}}DBh}{{{b{GKd}}{b{dCb}}}DBh}{{{b{GKf}}{b{dCb}}}DBh}{{{b{GKh}}{b{dCb}}}DBh}{{{b{GKj}}{b{dCb}}}DBh}{{{b{GKl}}{b{dCb}}}DBh}{{{b{GKn}}{b{dCb}}}DBh}{{{b{GL`}}{b{dCb}}}DBh}{{{b{GLb}}{b{dCb}}}DBh}{{{b{GLd}}{b{dCb}}}DBh}{{{b{GLf}}{b{dCb}}}DBh}{{{b{GLh}}{b{dCb}}}DBh}{{{b{GLj}}{b{dCb}}}DBh}{{{b{GLl}}{b{dCb}}}DBh}{{{b{GLn}}{b{dCb}}}DBh}{{{b{GM`}}{b{dCb}}}DBh}{{{b{GMb}}{b{dCb}}}DBh}{{{b{GMd}}{b{dCb}}}DBh}{{{b{GMf}}{b{dCb}}}DBh}{{{b{GMh}}{b{dCb}}}DBh}{{{b{GMj}}{b{dCb}}}DBh}{{{b{GMl}}{b{dCb}}}DBh}{{{b{GMn}}{b{dCb}}}DBh}{{{b{GN`}}{b{dCb}}}DBh}{{{b{GNb}}{b{dCb}}}DBh}{{{b{GNd}}{b{dCb}}}DBh}{{{b{GNf}}{b{dCb}}}DBh}{{{b{GNh}}{b{dCb}}}DBh}{{{b{GNj}}{b{dCb}}}DBh}{{{b{GNl}}{b{dCb}}}DBh}{{{b{GNn}}{b{dCb}}}DBh}{{{b{GO`}}{b{dCb}}}DBh}{{{b{GOb}}{b{dCb}}}DBh}{{{b{GOd}}{b{dCb}}}DBh}{{{b{GOf}}{b{dCb}}}DBh}{{{b{GOh}}{b{dCb}}}DBh}{{{b{GOj}}{b{dCb}}}DBh}{{{b{GOl}}{b{dCb}}}DBh}{{{b{GOn}}{b{dCb}}}DBh}{{{b{H@`}}{b{dCb}}}DBh}{{{b{H@b}}{b{dCb}}}DBh}{{{b{H@d}}{b{dCb}}}DBh}{{{b{H@f}}{b{dCb}}}DBh}{{{b{H@h}}{b{dCb}}}DBh}{{{b{H@j}}{b{dCb}}}DBh}{{{b{H@l}}{b{dCb}}}DBh}{{{b{H@n}}{b{dCb}}}DBh}{{{b{HA`}}{b{dCb}}}DBh}{{{b{HAb}}{b{dCb}}}DBh}{{{b{HAd}}{b{dCb}}}DBh}{{{b{HAf}}{b{dCb}}}DBh}{{{b{HAh}}{b{dCb}}}DBh}{{{b{HAj}}{b{dCb}}}DBh}{{{b{HAl}}{b{dCb}}}DBh}{{{b{HAn}}{b{dCb}}}DBh}{{{b{HB`}}{b{dCb}}}DBh}{{{b{HBb}}{b{dCb}}}DBh}{{{b{HBd}}{b{dCb}}}DBh}{{{b{HBf}}{b{dCb}}}DBh}{{{b{HBh}}{b{dCb}}}DBh}{{{b{HBj}}{b{dCb}}}DBh}{{{b{HBl}}{b{dCb}}}DBh}{{{b{HBn}}{b{dCb}}}DBh}{{{b{HC`}}{b{dCb}}}DBh}{{{b{HCb}}{b{dCb}}}DBh}{{{b{HCd}}{b{dCb}}}DBh}{{{b{HCf}}{b{dCb}}}DBh}{{{b{HCh}}{b{dCb}}}DBh}{{{b{HCj}}{b{dCb}}}DBh}{{{b{HCl}}{b{dCb}}}DBh}{{{b{HCn}}{b{dCb}}}DBh}{{{b{HD`}}{b{dCb}}}DBh}{{{b{HDb}}{b{dCb}}}DBh}{{{b{HDd}}{b{dCb}}}DBh}{{{b{HDf}}{b{dCb}}}DBh}{{{b{HDh}}{b{dCb}}}DBh}{{{b{HDj}}{b{dCb}}}DBh}{{{b{HDl}}{b{dCb}}}DBh}{{{b{HDn}}{b{dCb}}}DBh}{{{b{HE`}}{b{dCb}}}DBh}{{{b{HEb}}{b{dCb}}}DBh}{{{b{HEd}}{b{dCb}}}DBh}{{{b{HEf}}{b{dCb}}}DBh}{{{b{HEh}}{b{dCb}}}DBh}{{{b{HEj}}{b{dCb}}}DBh}{{{b{HEl}}{b{dCb}}}DBh}{{{b{HEn}}{b{dCb}}}DBh}{{{b{HF`}}{b{dCb}}}DBh}{{{b{HFb}}{b{dCb}}}DBh}{{{b{HFd}}{b{dCb}}}DBh}{{{b{HFf}}{b{dCb}}}DBh}{{{b{HFh}}{b{dCb}}}DBh}{{{b{HFj}}{b{dCb}}}DBh}{{{b{HFl}}{b{dCb}}}DBh}{{{b{HFn}}{b{dCb}}}DBh}{{{b{HG`}}{b{dCb}}}DBh}{{{b{HGb}}{b{dCb}}}DBh}{{{b{HGd}}{b{dCb}}}DBh}{{{b{HGf}}{b{dCb}}}DBh}{{{b{HGh}}{b{dCb}}}DBh}{{{b{HGj}}{b{dCb}}}DBh}{{{b{HGl}}{b{dCb}}}DBh}{{{b{HGn}}{b{dCb}}}DBh}{{{b{HH`}}{b{dCb}}}DBh}{{{b{HHb}}{b{dCb}}}DBh}{{{b{HHd}}{b{dCb}}}DBh}{{{b{HHf}}{b{dCb}}}DBh}{{{b{HHh}}{b{dCb}}}DBh}{{{b{HHj}}{b{dCb}}}DBh}{{{b{HHl}}{b{dCb}}}DBh}{{{b{HHn}}{b{dCb}}}DBh}{{{b{HI`}}{b{dCb}}}DBh}{{{b{HIb}}{b{dCb}}}DBh}{{{b{HId}}{b{dCb}}}DBh}{{{b{HIf}}{b{dCb}}}DBh}{{{b{HIh}}{b{dCb}}}DBh}{{{b{HIj}}{b{dCb}}}DBh}{{{b{HIl}}{b{dCb}}}DBh}{{{b{HIn}}{b{dCb}}}DBh}{{{b{HJ`}}{b{dCb}}}DBh}{{{b{HJb}}{b{dCb}}}DBh}{{{b{HJd}}{b{dCb}}}DBh}{{{b{HJf}}{b{dCb}}}DBh}{{{b{HJh}}{b{dCb}}}DBh}{{{b{HJj}}{b{dCb}}}DBh}{{{b{HJl}}{b{dCb}}}DBh}{{{b{HJn}}{b{dCb}}}DBh}{{{b{HK`}}{b{dCb}}}DBh}{{{b{HKb}}{b{dCb}}}DBh}{{{b{HKd}}{b{dCb}}}DBh}{{{b{HKf}}{b{dCb}}}DBh}{{{b{HKh}}{b{dCb}}}DBh}{{{b{HKj}}{b{dCb}}}DBh}{{{b{HKl}}{b{dCb}}}DBh}{{{b{HKn}}{b{dCb}}}DBh}{{{b{HL`}}{b{dCb}}}DBh}{{{b{HLb}}{b{dCb}}}DBh}{{{b{HLd}}{b{dCb}}}DBh}{{{b{HLf}}{b{dCb}}}DBh}{{{b{HLh}}{b{dCb}}}DBh}{{{b{HLj}}{b{dCb}}}DBh}{{{b{HLl}}{b{dCb}}}DBh}{{{b{HLn}}{b{dCb}}}DBh}{{{b{HM`}}{b{dCb}}}DBh}{{{b{HMb}}{b{dCb}}}DBh}{{{b{HMd}}{b{dCb}}}DBh}{{{b{HMf}}{b{dCb}}}DBh}{{{b{HMh}}{b{dCb}}}DBh}{{{b{HMj}}{b{dCb}}}DBh}{{{b{HMl}}{b{dCb}}}DBh}{{{b{HMn}}{b{dCb}}}DBh}{{{b{HN`}}{b{dCb}}}DBh}{{{b{HNb}}{b{dCb}}}DBh}{{{b{HNd}}{b{dCb}}}DBh}{{{b{HNf}}{b{dCb}}}DBh}{{{b{HNh}}{b{dCb}}}DBh}{{{b{HNj}}{b{dCb}}}DBh}{{{b{HNl}}{b{dCb}}}DBh}{{{b{HNn}}{b{dCb}}}DBh}{{{b{HO`}}{b{dCb}}}DBh}{{{b{HOb}}{b{dCb}}}DBh}{{{b{HOd}}{b{dCb}}}DBh}{{{b{HOf}}{b{dCb}}}DBh}{{{b{HOh}}{b{dCb}}}DBh}{{{b{HOj}}{b{dCb}}}DBh}{{{b{HOl}}{b{dCb}}}DBh}{{{b{HOn}}{b{dCb}}}DBh}{{{b{I@`}}{b{dCb}}}DBh}{{{b{I@b}}{b{dCb}}}DBh}{{{b{I@d}}{b{dCb}}}DBh}{{{b{I@f}}{b{dCb}}}DBh}{{{b{I@h}}{b{dCb}}}DBh}{{{b{I@j}}{b{dCb}}}DBh}{{{b{I@l}}{b{dCb}}}DBh}{{{b{I@n}}{b{dCb}}}DBh}{{{b{IA`}}{b{dCb}}}DBh}{{{b{IAb}}{b{dCb}}}DBh}{{{b{IAd}}{b{dCb}}}DBh}{{{b{GAj}}{b{dCb}}}DBh}0000{{{b{IAf}}{b{dCb}}}DBh}{{{b{IAh}}{b{dCb}}}DBh}{{{b{IAj}}{b{dCb}}}DBh}{{{b{IAl}}{b{dCb}}}DBh}{{{b{GAl}}{b{dCb}}}DBh}0000{{{b{IAn}}{b{dCb}}}DBh}{{{b{IB`}}{b{dCb}}}DBh}{{{b{IBb}}{b{dCb}}}DBh}{{{b{IBd}}{b{dCb}}}DBh}{{{b{IBf}}{b{dCb}}}DBh}{{{b{GAn}}{b{dCb}}}DBh}0000{{{b{IBh}}{b{dCb}}}DBh}{{{b{GB`}}{b{dCb}}}DBh}0000{{{b{IBj}}{b{dCb}}}DBh}{{{b{IBl}}{b{dCb}}}DBh}{{{b{IBn}}{b{dCb}}}DBh}{{{b{IC`}}{b{dCb}}}DBh}{{{b{GBb}}{b{dCb}}}DBh}0000{{{b{ICb}}{b{dCb}}}DBh}{{{b{ICd}}{b{dCb}}}DBh}{{{b{ICf}}{b{dCb}}}DBh}{{{b{ICh}}{b{dCb}}}DBh}{{{b{ICj}}{b{dCb}}}DBh}{{{b{ICl}}{b{dCb}}}DBh}{{{b{ICn}}{b{dCb}}}DBh}{{{b{ID`}}{b{dCb}}}DBh}{{{b{IDb}}{b{dCb}}}DBh}{{{b{GBd}}{b{dCb}}}DBh}0000{{{b{IDd}}{b{dCb}}}DBh}{{{b{IDf}}{b{dCb}}}DBh}{{{b{IDh}}{b{dCb}}}DBh}{{{b{IDj}}{b{dCb}}}DBh}{{{b{IDl}}{b{dCb}}}DBh}{{{b{IDn}}{b{dCb}}}DBh}{{{b{IE`}}{b{dCb}}}DBh}{{{b{IEb}}{b{dCb}}}DBh}{{{b{IEd}}{b{dCb}}}DBh}{{{b{IEf}}{b{dCb}}}DBh}{{{b{GBf}}{b{dCb}}}DBh}0000{{{b{IEh}}{b{dCb}}}DBh}{{{b{IEj}}{b{dCb}}}DBh}{{{b{IEl}}{b{dCb}}}DBh}{{{b{IEn}}{b{dCb}}}DBh}{{{b{IF`}}{b{dCb}}}DBh}{{{b{IFb}}{b{dCb}}}DBh}{{{b{IFd}}{b{dCb}}}DBh}{{{b{IFf}}{b{dCb}}}DBh}{{{b{IFh}}{b{dCb}}}DBh}{{{b{IFj}}{b{dCb}}}DBh}{{{b{IFl}}{b{dCb}}}DBh}{{{b{GBh}}{b{dCb}}}DBh}0000{{{b{GBj}}{b{dCb}}}DBh}0000{{{b{IFn}}{b{dCb}}}DBh}{{{b{IG`}}{b{dCb}}}DBh}{{{b{GBl}}{b{dCb}}}DBh}0000{{{b{IGb}}{b{dCb}}}DBh}{{{b{IGd}}{b{dCb}}}DBh}{{{b{IGf}}{b{dCb}}}DBh}{{{b{IGh}}{b{dCb}}}DBh}{{{b{IGj}}{b{dCb}}}DBh}{{{b{IGl}}{b{dCb}}}DBh}{{{b{IGn}}{b{dCb}}}DBh}{{{b{GBn}}{b{dCb}}}DBh}0000{{{b{IH`}}{b{dCb}}}DBh}{{{b{IHb}}{b{dCb}}}DBh}{{{b{IHd}}{b{dCb}}}DBh}{{{b{IHf}}{b{dCb}}}DBh}{{{b{IHh}}{b{dCb}}}DBh}{{{b{IHj}}{b{dCb}}}DBh}{{{b{GC`}}{b{dCb}}}DBh}0000{{{b{IHl}}{b{dCb}}}DBh}{{{b{IHn}}{b{dCb}}}DBh}{{{b{II`}}{b{dCb}}}DBh}{{{b{IIb}}{b{dCb}}}DBh}{{{b{IId}}{b{dCb}}}DBh}{{{b{IIf}}{b{dCb}}}DBh}{{{b{IIh}}{b{dCb}}}DBh}{{{b{GCb}}{b{dCb}}}DBh}0000{{{b{IIj}}{b{dCb}}}DBh}{{{b{IIl}}{b{dCb}}}DBh}{{{b{GCd}}{b{dCb}}}DBh}0000{{{b{IIn}}{b{dCb}}}DBh}{{{b{GCf}}{b{dCb}}}DBh}0000{{{b{IJ`}}{b{dCb}}}DBh}{{{b{IJb}}{b{dCb}}}DBh}{{{b{IJd}}{b{dCb}}}DBh}{{{b{IJf}}{b{dCb}}}DBh}{{{b{IJh}}{b{dCb}}}DBh}{{{b{GCh}}{b{dCb}}}DBh}0000{{{b{IJj}}{b{dCb}}}DBh}{{{b{IJl}}{b{dCb}}}DBh}{{{b{IJn}}{b{dCb}}}DBh}{{{b{GCj}}{b{dCb}}}DBh}0000{{{b{IK`}}{b{dCb}}}DBh}{{{b{IKb}}{b{dCb}}}DBh}{{{b{IKd}}{b{dCb}}}DBh}{{{b{IKf}}{b{dCb}}}DBh}{{{b{GCl}}{b{dCb}}}DBh}0000{{{b{IKh}}{b{dCb}}}DBh}{{{b{IKj}}{b{dCb}}}DBh}{{{b{IKl}}{b{dCb}}}DBh}{{{b{IKn}}{b{dCb}}}DBh}{{{b{GCn}}{b{dCb}}}DBh}0000{{{b{GD`}}{b{dCb}}}DBh}0000{{{b{IL`}}{b{dCb}}}DBh}{{{b{GDb}}{b{dCb}}}DBh}0000{{{b{ILb}}{b{dCb}}}DBh}{{{b{ILd}}{b{dCb}}}DBh}{{{b{GDd}}{b{dCb}}}DBh}0000{{{b{ILf}}{b{dCb}}}DBh}{{{b{ILh}}{b{dCb}}}DBh}{{{b{ILj}}{b{dCb}}}DBh}{{{b{GDf}}{b{dCb}}}DBh}0000{{{b{ILl}}{b{dCb}}}DBh}{{{b{ILn}}{b{dCb}}}DBh}{{{b{IM`}}{b{dCb}}}DBh}{{{b{IMb}}{b{dCb}}}DBh}{{{b{IMd}}{b{dCb}}}DBh}{{{b{IMf}}{b{dCb}}}DBh}{{{b{IMh}}{b{dCb}}}DBh}{{{b{IMj}}{b{dCb}}}DBh}{{{b{IMl}}{b{dCb}}}DBh}{{{b{GDh}}{b{dCb}}}DBh}0000{{{b{IMn}}{b{dCb}}}DBh}{{{b{IN`}}{b{dCb}}}DBh}{{{b{INb}}{b{dCb}}}DBh}{{{b{INd}}{b{dCb}}}DBh}{{{b{INf}}{b{dCb}}}DBh}{{{b{INh}}{b{dCb}}}DBh}{{{b{INj}}{b{dCb}}}DBh}{{{b{INl}}{b{dCb}}}DBh}{{{b{GDj}}{b{dCb}}}DBh}0000{{{b{INn}}{b{dCb}}}DBh}{{{b{IO`}}{b{dCb}}}DBh}{{{b{IOb}}{b{dCb}}}DBh}{{{b{IOd}}{b{dCb}}}DBh}{{{b{IOf}}{b{dCb}}}DBh}{{{b{GDl}}{b{dCb}}}DBh}0000{{{b{GDn}}{b{dCb}}}DBh}0000{{{b{IOh}}{b{dCb}}}DBh}{{{b{GE`}}{b{dCb}}}DBh}0000{{{b{IOj}}{b{dCb}}}DBh}{{{b{IOl}}{b{dCb}}}DBh}``````````````{cc{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{f{{DBj{GAj}}}}{Bf{{DBj{GAl}}}}{j{{DBj{GAn}}}}{j{{DBj{GB`}}}}{f{{DBj{GBb}}}}{Hl{{DBj{GBd}}}}{j{{DBj{GBf}}}}{Bf{{DBj{GBh}}}}{Bf{{DBj{GBj}}}}{j{{DBj{GBl}}}}{Bf{{DBj{GBn}}}}{j{{DBj{GC`}}}}{j{{DBj{GCb}}}}{Bf{{DBj{GCd}}}}{Bf{{DBj{GCf}}}}{j{{DBj{GCh}}}}{f{{DBj{GCj}}}}{j{{DBj{GCl}}}}{Bf{{DBj{GCn}}}}{f{{DBj{GD`}}}}{j{{DBj{GDb}}}}{j{{DBj{GDd}}}}{j{{DBj{GDf}}}}{f{{DBj{GDh}}}}{j{{DBj{GDj}}}}{f{{DBj{GDl}}}}{f{{DBj{GDn}}}}{Hl{{DBj{GE`}}}}{fGAj}{BfGAl}{jGAn}{jGB`}{fGBb}{HlGBd}{jGBf}{BfGBh}{BfGBj}{jGBl}{BfGBn}{jGC`}{jGCb}{BfGCd}{BfGCf}{jGCh}{fGCj}{jGCl}{BfGCn}{fGD`}{jGDb}{jGDd}{jGDf}{fGDh}{jGDj}{fGDl}{fGDn}{HlGE`}{fGAj}{BfGAl}{jGAn}{jGB`}{fGBb}{HlGBd}{jGBf}{BfGBh}{BfGBj}{jGBl}{BfGBn}{jGC`}{jGCb}{BfGCd}{BfGCf}{jGCh}{fGCj}{jGCl}{BfGCn}{fGD`}{jGDb}{jGDd}{jGDf}{fGDh}{jGDj}{fGDl}{fGDn}{HlGE`}{DBl{{DBj{IAd}}}}{DBl{{DBj{IAf}}}}{DBl{{DBj{IAh}}}}{DBl{{DBj{IAj}}}}{DBl{{DBj{IAl}}}}{DBl{{DBj{IAn}}}}{DBl{{DBj{IB`}}}}{DBl{{DBj{IBb}}}}{DBl{{DBj{IBd}}}}{DBl{{DBj{IBf}}}}{DBl{{DBj{IBh}}}}{DBl{{DBj{IBj}}}}{DBl{{DBj{IBl}}}}{DBl{{DBj{IBn}}}}{DBl{{DBj{IC`}}}}{DBl{{DBj{ICb}}}}{DBl{{DBj{ICd}}}}{DBl{{DBj{ICf}}}}{DBl{{DBj{ICh}}}}{DBl{{DBj{ICj}}}}{DBl{{DBj{ICl}}}}{DBl{{DBj{ICn}}}}{DBl{{DBj{ID`}}}}{DBl{{DBj{IDb}}}}{DBl{{DBj{IDd}}}}{DBl{{DBj{IDf}}}}{DBl{{DBj{IDh}}}}{DBl{{DBj{IDj}}}}{DBl{{DBj{IDl}}}}{DBl{{DBj{IDn}}}}{DBl{{DBj{IE`}}}}{DBl{{DBj{IEb}}}}{DBl{{DBj{IEd}}}}{DBl{{DBj{IEf}}}}{DBl{{DBj{IEh}}}}{DBl{{DBj{IEj}}}}{DBl{{DBj{IEl}}}}{DBl{{DBj{IEn}}}}{DBl{{DBj{IF`}}}}{DBl{{DBj{IFb}}}}{DBl{{DBj{IFd}}}}{DBl{{DBj{IFf}}}}{DBl{{DBj{IFh}}}}{DBl{{DBj{IFj}}}}{DBl{{DBj{IFl}}}}{DBl{{DBj{IFn}}}}{DBl{{DBj{IG`}}}}{DBl{{DBj{IGb}}}}{DBl{{DBj{IGd}}}}{DBl{{DBj{IGf}}}}{DBl{{DBj{IGh}}}}{DBl{{DBj{IGj}}}}{DBl{{DBj{IGl}}}}{DBl{{DBj{IGn}}}}{DBl{{DBj{IH`}}}}{DBl{{DBj{IHb}}}}{DBl{{DBj{IHd}}}}{DBl{{DBj{IHf}}}}{DBl{{DBj{IHh}}}}{DBl{{DBj{IHj}}}}{DBl{{DBj{IHl}}}}{DBl{{DBj{IHn}}}}{DBl{{DBj{II`}}}}{DBl{{DBj{IIb}}}}{DBl{{DBj{IId}}}}{DBl{{DBj{IIf}}}}{DBl{{DBj{IIh}}}}{DBl{{DBj{IIj}}}}{DBl{{DBj{IIl}}}}{DBl{{DBj{IIn}}}}{DBl{{DBj{IJ`}}}}{DBl{{DBj{IJb}}}}{DBl{{DBj{IJd}}}}{DBl{{DBj{IJf}}}}{DBl{{DBj{IJh}}}}{DBl{{DBj{IJj}}}}{DBl{{DBj{IJl}}}}{DBl{{DBj{IJn}}}}{DBl{{DBj{IK`}}}}{DBl{{DBj{IKb}}}}{DBl{{DBj{IKd}}}}{DBl{{DBj{IKf}}}}{DBl{{DBj{IKh}}}}{DBl{{DBj{IKj}}}}{DBl{{DBj{IKl}}}}{DBl{{DBj{IKn}}}}{DBl{{DBj{IL`}}}}{DBl{{DBj{ILb}}}}{DBl{{DBj{ILd}}}}{DBl{{DBj{ILf}}}}{DBl{{DBj{ILh}}}}{DBl{{DBj{ILj}}}}{DBl{{DBj{ILl}}}}{DBl{{DBj{ILn}}}}{DBl{{DBj{IM`}}}}{DBl{{DBj{IMb}}}}{DBl{{DBj{IMd}}}}{DBl{{DBj{IMf}}}}{DBl{{DBj{IMh}}}}{DBl{{DBj{IMj}}}}{DBl{{DBj{IMl}}}}{DBl{{DBj{IMn}}}}{DBl{{DBj{IN`}}}}{DBl{{DBj{INb}}}}{DBl{{DBj{INd}}}}{DBl{{DBj{INf}}}}{DBl{{DBj{INh}}}}{DBl{{DBj{INj}}}}{DBl{{DBj{INl}}}}{DBl{{DBj{INn}}}}{DBl{{DBj{IO`}}}}{DBl{{DBj{IOb}}}}{DBl{{DBj{IOd}}}}{DBl{{DBj{IOf}}}}{DBl{{DBj{IOh}}}}{DBl{{DBj{IOj}}}}{DBl{{DBj{IOl}}}}{cGAj{{DBf{}{{DBd{GAj}}}}}}{cGAl{{DBf{}{{DBd{GAl}}}}}}{cGAn{{DBf{}{{DBd{GAn}}}}}}{cGB`{{DBf{}{{DBd{GB`}}}}}}{cGBb{{DBf{}{{DBd{GBb}}}}}}{cGBd{{DBf{}{{DBd{GBd}}}}}}{cGBf{{DBf{}{{DBd{GBf}}}}}}{cGBh{{DBf{}{{DBd{GBh}}}}}}{cGBj{{DBf{}{{DBd{GBj}}}}}}{cGBl{{DBf{}{{DBd{GBl}}}}}}{cGBn{{DBf{}{{DBd{GBn}}}}}}{cGC`{{DBf{}{{DBd{GC`}}}}}}{cGCb{{DBf{}{{DBd{GCb}}}}}}{cGCd{{DBf{}{{DBd{GCd}}}}}}{cGCf{{DBf{}{{DBd{GCf}}}}}}{cGCh{{DBf{}{{DBd{GCh}}}}}}{cGCj{{DBf{}{{DBd{GCj}}}}}}{cGCl{{DBf{}{{DBd{GCl}}}}}}{cGCn{{DBf{}{{DBd{GCn}}}}}}{cGD`{{DBf{}{{DBd{GD`}}}}}}{cGDb{{DBf{}{{DBd{GDb}}}}}}{cGDd{{DBf{}{{DBd{GDd}}}}}}{cGDf{{DBf{}{{DBd{GDf}}}}}}{cGDh{{DBf{}{{DBd{GDh}}}}}}{cGDj{{DBf{}{{DBd{GDj}}}}}}{cGDl{{DBf{}{{DBd{GDl}}}}}}{cGDn{{DBf{}{{DBd{GDn}}}}}}{cGE`{{DBf{}{{DBd{GE`}}}}}}{Hl{{DBj{IAd}}}}{Hl{{DBj{IAf}}}}{Hl{{DBj{IAh}}}}{Hl{{DBj{IAj}}}}{Hl{{DBj{IAl}}}}{Hl{{DBj{IAn}}}}{Hl{{DBj{IB`}}}}{Hl{{DBj{IBb}}}}{Hl{{DBj{IBd}}}}{Hl{{DBj{IBf}}}}{Hl{{DBj{IBh}}}}{Hl{{DBj{IBj}}}}{Hl{{DBj{IBl}}}}{Hl{{DBj{IBn}}}}{Hl{{DBj{IC`}}}}{Hl{{DBj{ICb}}}}{Hl{{DBj{ICd}}}}{Hl{{DBj{ICf}}}}{Hl{{DBj{ICh}}}}{Hl{{DBj{ICj}}}}{Hl{{DBj{ICl}}}}{Hl{{DBj{ICn}}}}{Hl{{DBj{ID`}}}}{Hl{{DBj{IDb}}}}{Hl{{DBj{IDd}}}}{Hl{{DBj{IDf}}}}{Hl{{DBj{IDh}}}}{Hl{{DBj{IDj}}}}{Hl{{DBj{IDl}}}}{Hl{{DBj{IDn}}}}{Hl{{DBj{IE`}}}}{Hl{{DBj{IEb}}}}{Hl{{DBj{IEd}}}}{Hl{{DBj{IEf}}}}{Hl{{DBj{IEh}}}}{Hl{{DBj{IEj}}}}{Hl{{DBj{IEl}}}}{Hl{{DBj{IEn}}}}{Hl{{DBj{IF`}}}}{Hl{{DBj{IFb}}}}{Hl{{DBj{IFd}}}}{Hl{{DBj{IFf}}}}{Hl{{DBj{IFh}}}}{Hl{{DBj{IFj}}}}{Hl{{DBj{IFl}}}}{Hl{{DBj{IFn}}}}{Hl{{DBj{IG`}}}}{Hl{{DBj{IGb}}}}{Hl{{DBj{IGd}}}}{Hl{{DBj{IGf}}}}{Hl{{DBj{IGh}}}}{Hl{{DBj{IGj}}}}{Hl{{DBj{IGl}}}}{Hl{{DBj{IGn}}}}{Hl{{DBj{IH`}}}}{Hl{{DBj{IHb}}}}{Hl{{DBj{IHd}}}}{Hl{{DBj{IHf}}}}{Hl{{DBj{IHh}}}}{Hl{{DBj{IHj}}}}{Hl{{DBj{IHl}}}}{Hl{{DBj{IHn}}}}{Hl{{DBj{II`}}}}{Hl{{DBj{IIb}}}}{Hl{{DBj{IId}}}}{Hl{{DBj{IIf}}}}{Hl{{DBj{IIh}}}}{Hl{{DBj{IIj}}}}{Hl{{DBj{IIl}}}}{Hl{{DBj{IIn}}}}{Hl{{DBj{IJ`}}}}{Hl{{DBj{IJb}}}}{Hl{{DBj{IJd}}}}{Hl{{DBj{IJf}}}}{Hl{{DBj{IJh}}}}{Hl{{DBj{IJj}}}}{Hl{{DBj{IJl}}}}{Hl{{DBj{IJn}}}}{Hl{{DBj{IK`}}}}{Hl{{DBj{IKb}}}}{Hl{{DBj{IKd}}}}{Hl{{DBj{IKf}}}}{Hl{{DBj{IKh}}}}{Hl{{DBj{IKj}}}}{Hl{{DBj{IKl}}}}{Hl{{DBj{IKn}}}}{Hl{{DBj{IL`}}}}{Hl{{DBj{ILb}}}}{Hl{{DBj{ILd}}}}{Hl{{DBj{ILf}}}}{Hl{{DBj{ILh}}}}{Hl{{DBj{ILj}}}}{Hl{{DBj{ILl}}}}{Hl{{DBj{ILn}}}}{Hl{{DBj{IM`}}}}{Hl{{DBj{IMb}}}}{Hl{{DBj{IMd}}}}{Hl{{DBj{IMf}}}}{Hl{{DBj{IMh}}}}{Hl{{DBj{IMj}}}}{Hl{{DBj{IMl}}}}{Hl{{DBj{IMn}}}}{Hl{{DBj{IN`}}}}{Hl{{DBj{INb}}}}{Hl{{DBj{INd}}}}{Hl{{DBj{INf}}}}{Hl{{DBj{INh}}}}{Hl{{DBj{INj}}}}{Hl{{DBj{INl}}}}{Hl{{DBj{INn}}}}{Hl{{DBj{IO`}}}}{Hl{{DBj{IOb}}}}{Hl{{DBj{IOd}}}}{Hl{{DBj{IOf}}}}{Hl{{DBj{IOh}}}}{Hl{{DBj{IOj}}}}{Hl{{DBj{IOl}}}}````````````````````````````````````{{{b{GAj}}{b{dc}}}AjDBn}{{{b{GAl}}{b{dc}}}AjDBn}{{{b{GAn}}{b{dc}}}AjDBn}{{{b{GB`}}{b{dc}}}AjDBn}{{{b{GBb}}{b{dc}}}AjDBn}{{{b{GBd}}{b{dc}}}AjDBn}{{{b{GBf}}{b{dc}}}AjDBn}{{{b{GBh}}{b{dc}}}AjDBn}{{{b{GBj}}{b{dc}}}AjDBn}{{{b{GBl}}{b{dc}}}AjDBn}{{{b{GBn}}{b{dc}}}AjDBn}{{{b{GC`}}{b{dc}}}AjDBn}{{{b{GCb}}{b{dc}}}AjDBn}{{{b{GCd}}{b{dc}}}AjDBn}{{{b{GCf}}{b{dc}}}AjDBn}{{{b{GCh}}{b{dc}}}AjDBn}{{{b{GCj}}{b{dc}}}AjDBn}{{{b{GCl}}{b{dc}}}AjDBn}{{{b{GCn}}{b{dc}}}AjDBn}{{{b{GD`}}{b{dc}}}AjDBn}{{{b{GDb}}{b{dc}}}AjDBn}{{{b{GDd}}{b{dc}}}AjDBn}{{{b{GDf}}{b{dc}}}AjDBn}{{{b{GDh}}{b{dc}}}AjDBn}{{{b{GDj}}{b{dc}}}AjDBn}{{{b{GDl}}{b{dc}}}AjDBn}{{{b{GDn}}{b{dc}}}AjDBn}{{{b{GE`}}{b{dc}}}AjDBn}```````````````````````````````````````````````````````````````{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}``````````````{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}{{{b{GAj}}GAj}C`}{{{b{GAl}}GAl}C`}{{{b{GAn}}GAn}C`}{{{b{GB`}}GB`}C`}{{{b{GBb}}GBb}C`}{{{b{GBd}}GBd}C`}{{{b{GBf}}GBf}C`}{{{b{GBh}}GBh}C`}{{{b{GBj}}GBj}C`}{{{b{GBl}}GBl}C`}{{{b{GBn}}GBn}C`}{{{b{GC`}}GC`}C`}{{{b{GCb}}GCb}C`}{{{b{GCd}}GCd}C`}{{{b{GCf}}GCf}C`}{{{b{GCh}}GCh}C`}{{{b{GCj}}GCj}C`}{{{b{GCl}}GCl}C`}{{{b{GCn}}GCn}C`}{{{b{GD`}}GD`}C`}{{{b{GDb}}GDb}C`}{{{b{GDd}}GDd}C`}{{{b{GDf}}GDf}C`}{{{b{GDh}}GDh}C`}{{{b{GDj}}GDj}C`}{{{b{GDl}}GDl}C`}{{{b{GDn}}GDn}C`}{{{b{GE`}}GE`}C`}`{ce{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{GAj}}}C`}{{{b{GAl}}}C`}{{{b{GAn}}}C`}{{{b{GB`}}}C`}{{{b{GBb}}}C`}{{{b{GBd}}}C`}{{{b{GBf}}}C`}{{{b{GBh}}}C`}{{{b{GBj}}}C`}{{{b{GBl}}}C`}{{{b{GBn}}}C`}{{{b{GC`}}}C`}{{{b{GCb}}}C`}{{{b{GCd}}}C`}{{{b{GCf}}}C`}{{{b{GCh}}}C`}{{{b{GCj}}}C`}{{{b{GCl}}}C`}{{{b{GCn}}}C`}{{{b{GD`}}}C`}{{{b{GDb}}}C`}{{{b{GDd}}}C`}{{{b{GDf}}}C`}{{{b{GDh}}}C`}{{{b{GDj}}}C`}{{{b{GDl}}}C`}{{{b{GDn}}}C`}{{{b{GE`}}}C`}{{{b{GAj}}}C`}{{{b{GAl}}}C`}{{{b{GAn}}}C`}{{{b{GB`}}}C`}{{{b{GBb}}}C`}{{{b{GBd}}}C`}{{{b{GBf}}}C`}{{{b{GBh}}}C`}{{{b{GBj}}}C`}{{{b{GBl}}}C`}{{{b{GBn}}}C`}{{{b{GC`}}}C`}{{{b{GCb}}}C`}{{{b{GCd}}}C`}{{{b{GCf}}}C`}{{{b{GCh}}}C`}{{{b{GCj}}}C`}{{{b{GCl}}}C`}{{{b{GCn}}}C`}{{{b{GD`}}}C`}{{{b{GDb}}}C`}{{{b{GDd}}}C`}{{{b{GDf}}}C`}{{{b{GDh}}}C`}{{{b{GDj}}}C`}{{{b{GDl}}}C`}{{{b{GDn}}}C`}{{{b{GE`}}}C`}```````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{GEb}}}Bf}`{{{b{Al}}}{{Bd{Bf{b{Al}}}}}}{{{b{GEb}}}{{b{Al}}}}```````````````````````````````````````{GAjGAj}{GAlGAl}{GAnGAn}{GB`GB`}{GBbGBb}{GBdGBd}{GBfGBf}{GBhGBh}{GBjGBj}{GBlGBl}{GBnGBn}{GC`GC`}{GCbGCb}{GCdGCd}{GCfGCf}{GChGCh}{GCjGCj}{GClGCl}{GCnGCn}{GD`GD`}{GDbGDb}{GDdGDd}{GDfGDf}{GDhGDh}{GDjGDj}{GDlGDl}{GDnGDn}{GE`GE`}````````````````````````````````````````````````````````````````````````````````````````````{{AbBf{b{{h{f}}}}}{{Bd{GEbBl}}}}{{{b{GAj}}{b{GAj}}}{{DBj{DBb}}}}{{{b{GAl}}{b{GAl}}}{{DBj{DBb}}}}{{{b{GAn}}{b{GAn}}}{{DBj{DBb}}}}{{{b{GB`}}{b{GB`}}}{{DBj{DBb}}}}{{{b{GBb}}{b{GBb}}}{{DBj{DBb}}}}{{{b{GBd}}{b{GBd}}}{{DBj{DBb}}}}{{{b{GBf}}{b{GBf}}}{{DBj{DBb}}}}{{{b{GBh}}{b{GBh}}}{{DBj{DBb}}}}{{{b{GBj}}{b{GBj}}}{{DBj{DBb}}}}{{{b{GBl}}{b{GBl}}}{{DBj{DBb}}}}{{{b{GBn}}{b{GBn}}}{{DBj{DBb}}}}{{{b{GC`}}{b{GC`}}}{{DBj{DBb}}}}{{{b{GCb}}{b{GCb}}}{{DBj{DBb}}}}{{{b{GCd}}{b{GCd}}}{{DBj{DBb}}}}{{{b{GCf}}{b{GCf}}}{{DBj{DBb}}}}{{{b{GCh}}{b{GCh}}}{{DBj{DBb}}}}{{{b{GCj}}{b{GCj}}}{{DBj{DBb}}}}{{{b{GCl}}{b{GCl}}}{{DBj{DBb}}}}{{{b{GCn}}{b{GCn}}}{{DBj{DBb}}}}{{{b{GD`}}{b{GD`}}}{{DBj{DBb}}}}{{{b{GDb}}{b{GDb}}}{{DBj{DBb}}}}{{{b{GDd}}{b{GDd}}}{{DBj{DBb}}}}{{{b{GDf}}{b{GDf}}}{{DBj{DBb}}}}{{{b{GDh}}{b{GDh}}}{{DBj{DBb}}}}{{{b{GDj}}{b{GDj}}}{{DBj{DBb}}}}{{{b{GDl}}{b{GDl}}}{{DBj{DBb}}}}{{{b{GDn}}{b{GDn}}}{{DBj{DBb}}}}{{{b{GE`}}{b{GE`}}}{{DBj{DBb}}}}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}```````````````````````````````````````````````````````````````````````````````````````````````````{{{b{GEb}}Ab{b{d{h{f}}}}}D`}{{{b{GEd}}Ab{b{d{h{f}}}}}D`}{{{b{GEf}}Ab{b{d{h{f}}}}}D`}{{{b{GEh}}Ab{b{d{h{f}}}}}D`}{{{b{GEj}}Ab{b{d{h{f}}}}}D`}{{{b{GEl}}Ab{b{d{h{f}}}}}D`}{{{b{GEn}}Ab{b{d{h{f}}}}}D`}{{{b{GF`}}Ab{b{d{h{f}}}}}D`}{{{b{GFb}}Ab{b{d{h{f}}}}}D`}{{{b{GFd}}Ab{b{d{h{f}}}}}D`}{{{b{GFf}}Ab{b{d{h{f}}}}}D`}{{{b{GFh}}Ab{b{d{h{f}}}}}D`}{{{b{GFj}}Ab{b{d{h{f}}}}}D`}{{{b{GFl}}Ab{b{d{h{f}}}}}D`}{{{b{GFn}}Ab{b{d{h{f}}}}}D`}{{{b{GG`}}Ab{b{d{h{f}}}}}D`}{{{b{GGb}}Ab{b{d{h{f}}}}}D`}{{{b{GGd}}Ab{b{d{h{f}}}}}D`}{{{b{GGf}}Ab{b{d{h{f}}}}}D`}{{{b{GGh}}Ab{b{d{h{f}}}}}D`}{{{b{GGj}}Ab{b{d{h{f}}}}}D`}{{{b{GGl}}Ab{b{d{h{f}}}}}D`}{{{b{GGn}}Ab{b{d{h{f}}}}}D`}{{{b{GH`}}Ab{b{d{h{f}}}}}D`}{{{b{GHb}}Ab{b{d{h{f}}}}}D`}{{{b{GHd}}Ab{b{d{h{f}}}}}D`}{{{b{GHf}}Ab{b{d{h{f}}}}}D`}{{{b{GHh}}Ab{b{d{h{f}}}}}D`}{{{b{GHj}}Ab{b{d{h{f}}}}}D`}{{{b{GHl}}Ab{b{d{h{f}}}}}D`}{{{b{GHn}}Ab{b{d{h{f}}}}}D`}{{{b{GI`}}Ab{b{d{h{f}}}}}D`}{{{b{GIb}}Ab{b{d{h{f}}}}}D`}{{{b{GId}}Ab{b{d{h{f}}}}}D`}{{{b{GIf}}Ab{b{d{h{f}}}}}D`}{{{b{GIh}}Ab{b{d{h{f}}}}}D`}{{{b{GIj}}Ab{b{d{h{f}}}}}D`}{{{b{GIl}}Ab{b{d{h{f}}}}}D`}{{{b{GIn}}Ab{b{d{h{f}}}}}D`}{{{b{GJ`}}Ab{b{d{h{f}}}}}D`}{{{b{GJb}}Ab{b{d{h{f}}}}}D`}{{{b{GJd}}Ab{b{d{h{f}}}}}D`}{{{b{GJf}}Ab{b{d{h{f}}}}}D`}{{{b{GJh}}Ab{b{d{h{f}}}}}D`}{{{b{GJj}}Ab{b{d{h{f}}}}}D`}{{{b{GJl}}Ab{b{d{h{f}}}}}D`}{{{b{GJn}}Ab{b{d{h{f}}}}}D`}{{{b{GK`}}Ab{b{d{h{f}}}}}D`}{{{b{GKb}}Ab{b{d{h{f}}}}}D`}{{{b{GKd}}Ab{b{d{h{f}}}}}D`}{{{b{GKf}}Ab{b{d{h{f}}}}}D`}{{{b{GKh}}Ab{b{d{h{f}}}}}D`}{{{b{GKj}}Ab{b{d{h{f}}}}}D`}{{{b{GKl}}Ab{b{d{h{f}}}}}D`}{{{b{GKn}}Ab{b{d{h{f}}}}}D`}{{{b{GL`}}Ab{b{d{h{f}}}}}D`}{{{b{GLb}}Ab{b{d{h{f}}}}}D`}{{{b{GLd}}Ab{b{d{h{f}}}}}D`}{{{b{GLf}}Ab{b{d{h{f}}}}}D`}{{{b{GLh}}Ab{b{d{h{f}}}}}D`}{{{b{GLj}}Ab{b{d{h{f}}}}}D`}{{{b{GLl}}Ab{b{d{h{f}}}}}D`}{{{b{GLn}}Ab{b{d{h{f}}}}}D`}{{{b{GM`}}Ab{b{d{h{f}}}}}D`}{{{b{GMb}}Ab{b{d{h{f}}}}}D`}{{{b{GMd}}Ab{b{d{h{f}}}}}D`}{{{b{GMf}}Ab{b{d{h{f}}}}}D`}{{{b{GMh}}Ab{b{d{h{f}}}}}D`}{{{b{GMj}}Ab{b{d{h{f}}}}}D`}{{{b{GMl}}Ab{b{d{h{f}}}}}D`}{{{b{GMn}}Ab{b{d{h{f}}}}}D`}{{{b{GN`}}Ab{b{d{h{f}}}}}D`}{{{b{GNb}}Ab{b{d{h{f}}}}}D`}{{{b{GNd}}Ab{b{d{h{f}}}}}D`}{{{b{GNf}}Ab{b{d{h{f}}}}}D`}{{{b{GNh}}Ab{b{d{h{f}}}}}D`}{{{b{GNj}}Ab{b{d{h{f}}}}}D`}{{{b{GNl}}Ab{b{d{h{f}}}}}D`}{{{b{GNn}}Ab{b{d{h{f}}}}}D`}{{{b{GO`}}Ab{b{d{h{f}}}}}D`}{{{b{GOb}}Ab{b{d{h{f}}}}}D`}{{{b{GOd}}Ab{b{d{h{f}}}}}D`}{{{b{GOf}}Ab{b{d{h{f}}}}}D`}{{{b{GOh}}Ab{b{d{h{f}}}}}D`}{{{b{GOj}}Ab{b{d{h{f}}}}}D`}{{{b{GOl}}Ab{b{d{h{f}}}}}D`}{{{b{GOn}}Ab{b{d{h{f}}}}}D`}{{{b{H@`}}Ab{b{d{h{f}}}}}D`}{{{b{H@b}}Ab{b{d{h{f}}}}}D`}{{{b{H@d}}Ab{b{d{h{f}}}}}D`}{{{b{H@f}}Ab{b{d{h{f}}}}}D`}{{{b{H@h}}Ab{b{d{h{f}}}}}D`}{{{b{H@j}}Ab{b{d{h{f}}}}}D`}{{{b{H@l}}Ab{b{d{h{f}}}}}D`}{{{b{H@n}}Ab{b{d{h{f}}}}}D`}{{{b{HA`}}Ab{b{d{h{f}}}}}D`}{{{b{HAb}}Ab{b{d{h{f}}}}}D`}{{{b{HAd}}Ab{b{d{h{f}}}}}D`}{{{b{HAf}}Ab{b{d{h{f}}}}}D`}{{{b{HAh}}Ab{b{d{h{f}}}}}D`}{{{b{HAj}}Ab{b{d{h{f}}}}}D`}{{{b{HAl}}Ab{b{d{h{f}}}}}D`}{{{b{HAn}}Ab{b{d{h{f}}}}}D`}{{{b{HB`}}Ab{b{d{h{f}}}}}D`}{{{b{HBb}}Ab{b{d{h{f}}}}}D`}{{{b{HBd}}Ab{b{d{h{f}}}}}D`}{{{b{HBf}}Ab{b{d{h{f}}}}}D`}{{{b{HBh}}Ab{b{d{h{f}}}}}D`}{{{b{HBj}}Ab{b{d{h{f}}}}}D`}{{{b{HBl}}Ab{b{d{h{f}}}}}D`}{{{b{HBn}}Ab{b{d{h{f}}}}}D`}{{{b{HC`}}Ab{b{d{h{f}}}}}D`}{{{b{HCb}}Ab{b{d{h{f}}}}}D`}{{{b{HCd}}Ab{b{d{h{f}}}}}D`}{{{b{HCf}}Ab{b{d{h{f}}}}}D`}{{{b{HCh}}Ab{b{d{h{f}}}}}D`}{{{b{HCj}}Ab{b{d{h{f}}}}}D`}{{{b{HCl}}Ab{b{d{h{f}}}}}D`}{{{b{HCn}}Ab{b{d{h{f}}}}}D`}{{{b{HD`}}Ab{b{d{h{f}}}}}D`}{{{b{HDb}}Ab{b{d{h{f}}}}}D`}{{{b{HDd}}Ab{b{d{h{f}}}}}D`}{{{b{HDf}}Ab{b{d{h{f}}}}}D`}{{{b{HDh}}Ab{b{d{h{f}}}}}D`}{{{b{HDj}}Ab{b{d{h{f}}}}}D`}{{{b{HDl}}Ab{b{d{h{f}}}}}D`}{{{b{HDn}}Ab{b{d{h{f}}}}}D`}{{{b{HE`}}Ab{b{d{h{f}}}}}D`}{{{b{HEb}}Ab{b{d{h{f}}}}}D`}{{{b{HEd}}Ab{b{d{h{f}}}}}D`}{{{b{HEf}}Ab{b{d{h{f}}}}}D`}{{{b{HEh}}Ab{b{d{h{f}}}}}D`}{{{b{HEj}}Ab{b{d{h{f}}}}}D`}{{{b{HEl}}Ab{b{d{h{f}}}}}D`}{{{b{HEn}}Ab{b{d{h{f}}}}}D`}{{{b{HF`}}Ab{b{d{h{f}}}}}D`}{{{b{HFb}}Ab{b{d{h{f}}}}}D`}{{{b{HFd}}Ab{b{d{h{f}}}}}D`}{{{b{HFf}}Ab{b{d{h{f}}}}}D`}{{{b{HFh}}Ab{b{d{h{f}}}}}D`}{{{b{HFj}}Ab{b{d{h{f}}}}}D`}{{{b{HFl}}Ab{b{d{h{f}}}}}D`}{{{b{HFn}}Ab{b{d{h{f}}}}}D`}{{{b{HG`}}Ab{b{d{h{f}}}}}D`}{{{b{HGb}}Ab{b{d{h{f}}}}}D`}{{{b{HGd}}Ab{b{d{h{f}}}}}D`}{{{b{HGf}}Ab{b{d{h{f}}}}}D`}{{{b{HGh}}Ab{b{d{h{f}}}}}D`}{{{b{HGj}}Ab{b{d{h{f}}}}}D`}{{{b{HGl}}Ab{b{d{h{f}}}}}D`}{{{b{HGn}}Ab{b{d{h{f}}}}}D`}{{{b{HH`}}Ab{b{d{h{f}}}}}D`}{{{b{HHb}}Ab{b{d{h{f}}}}}D`}{{{b{HHd}}Ab{b{d{h{f}}}}}D`}{{{b{HHf}}Ab{b{d{h{f}}}}}D`}{{{b{HHh}}Ab{b{d{h{f}}}}}D`}{{{b{HHj}}Ab{b{d{h{f}}}}}D`}{{{b{HHl}}Ab{b{d{h{f}}}}}D`}{{{b{HHn}}Ab{b{d{h{f}}}}}D`}{{{b{HI`}}Ab{b{d{h{f}}}}}D`}{{{b{HIb}}Ab{b{d{h{f}}}}}D`}{{{b{HId}}Ab{b{d{h{f}}}}}D`}{{{b{HIf}}Ab{b{d{h{f}}}}}D`}{{{b{HIh}}Ab{b{d{h{f}}}}}D`}{{{b{HIj}}Ab{b{d{h{f}}}}}D`}{{{b{HIl}}Ab{b{d{h{f}}}}}D`}{{{b{HIn}}Ab{b{d{h{f}}}}}D`}{{{b{HJ`}}Ab{b{d{h{f}}}}}D`}{{{b{HJb}}Ab{b{d{h{f}}}}}D`}{{{b{HJd}}Ab{b{d{h{f}}}}}D`}{{{b{HJf}}Ab{b{d{h{f}}}}}D`}{{{b{HJh}}Ab{b{d{h{f}}}}}D`}{{{b{HJj}}Ab{b{d{h{f}}}}}D`}{{{b{HJl}}Ab{b{d{h{f}}}}}D`}{{{b{HJn}}Ab{b{d{h{f}}}}}D`}{{{b{HK`}}Ab{b{d{h{f}}}}}D`}{{{b{HKb}}Ab{b{d{h{f}}}}}D`}{{{b{HKd}}Ab{b{d{h{f}}}}}D`}{{{b{HKf}}Ab{b{d{h{f}}}}}D`}{{{b{HKh}}Ab{b{d{h{f}}}}}D`}{{{b{HKj}}Ab{b{d{h{f}}}}}D`}{{{b{HKl}}Ab{b{d{h{f}}}}}D`}{{{b{HKn}}Ab{b{d{h{f}}}}}D`}{{{b{HL`}}Ab{b{d{h{f}}}}}D`}{{{b{HLb}}Ab{b{d{h{f}}}}}D`}{{{b{HLd}}Ab{b{d{h{f}}}}}D`}{{{b{HLf}}Ab{b{d{h{f}}}}}D`}{{{b{HLh}}Ab{b{d{h{f}}}}}D`}{{{b{HLj}}Ab{b{d{h{f}}}}}D`}{{{b{HLl}}Ab{b{d{h{f}}}}}D`}{{{b{HLn}}Ab{b{d{h{f}}}}}D`}{{{b{HM`}}Ab{b{d{h{f}}}}}D`}{{{b{HMb}}Ab{b{d{h{f}}}}}D`}{{{b{HMd}}Ab{b{d{h{f}}}}}D`}{{{b{HMf}}Ab{b{d{h{f}}}}}D`}{{{b{HMh}}Ab{b{d{h{f}}}}}D`}{{{b{HMj}}Ab{b{d{h{f}}}}}D`}{{{b{HMl}}Ab{b{d{h{f}}}}}D`}{{{b{HMn}}Ab{b{d{h{f}}}}}D`}{{{b{HN`}}Ab{b{d{h{f}}}}}D`}{{{b{HNb}}Ab{b{d{h{f}}}}}D`}{{{b{HNd}}Ab{b{d{h{f}}}}}D`}{{{b{HNf}}Ab{b{d{h{f}}}}}D`}{{{b{HNh}}Ab{b{d{h{f}}}}}D`}{{{b{HNj}}Ab{b{d{h{f}}}}}D`}{{{b{HNl}}Ab{b{d{h{f}}}}}D`}{{{b{HNn}}Ab{b{d{h{f}}}}}D`}{{{b{HO`}}Ab{b{d{h{f}}}}}D`}{{{b{HOb}}Ab{b{d{h{f}}}}}D`}{{{b{HOd}}Ab{b{d{h{f}}}}}D`}{{{b{HOf}}Ab{b{d{h{f}}}}}D`}{{{b{HOh}}Ab{b{d{h{f}}}}}D`}{{{b{HOj}}Ab{b{d{h{f}}}}}D`}{{{b{HOl}}Ab{b{d{h{f}}}}}D`}{{{b{HOn}}Ab{b{d{h{f}}}}}D`}{{{b{I@`}}Ab{b{d{h{f}}}}}D`}{{{b{I@b}}Ab{b{d{h{f}}}}}D`}{{{b{I@d}}Ab{b{d{h{f}}}}}D`}{{{b{I@f}}Ab{b{d{h{f}}}}}D`}{{{b{I@h}}Ab{b{d{h{f}}}}}D`}{{{b{I@j}}Ab{b{d{h{f}}}}}D`}{{{b{I@l}}Ab{b{d{h{f}}}}}D`}{{{b{I@n}}Ab{b{d{h{f}}}}}D`}{{{b{IA`}}Ab{b{d{h{f}}}}}D`}{{{b{IAb}}Ab{b{d{h{f}}}}}D`}`{{{b{GEb}}c}BdDd}{{{b{GEd}}c}BdDd}{{{b{GEf}}c}BdDd}{{{b{GEh}}c}BdDd}{{{b{GEj}}c}BdDd}{{{b{GEl}}c}BdDd}{{{b{GEn}}c}BdDd}{{{b{GF`}}c}BdDd}{{{b{GFb}}c}BdDd}{{{b{GFd}}c}BdDd}{{{b{GFf}}c}BdDd}{{{b{GFh}}c}BdDd}{{{b{GFj}}c}BdDd}{{{b{GFl}}c}BdDd}{{{b{GFn}}c}BdDd}{{{b{GG`}}c}BdDd}{{{b{GGb}}c}BdDd}{{{b{GGd}}c}BdDd}{{{b{GGf}}c}BdDd}{{{b{GGh}}c}BdDd}{{{b{GGj}}c}BdDd}{{{b{GGl}}c}BdDd}{{{b{GGn}}c}BdDd}{{{b{GH`}}c}BdDd}{{{b{GHb}}c}BdDd}{{{b{GHd}}c}BdDd}{{{b{GHf}}c}BdDd}{{{b{GHh}}c}BdDd}{{{b{GHj}}c}BdDd}{{{b{GHl}}c}BdDd}{{{b{GHn}}c}BdDd}{{{b{GI`}}c}BdDd}{{{b{GIb}}c}BdDd}{{{b{GId}}c}BdDd}{{{b{GIf}}c}BdDd}{{{b{GIh}}c}BdDd}{{{b{GIj}}c}BdDd}{{{b{GIl}}c}BdDd}{{{b{GIn}}c}BdDd}{{{b{GJ`}}c}BdDd}{{{b{GJb}}c}BdDd}{{{b{GJd}}c}BdDd}{{{b{GJf}}c}BdDd}{{{b{GJh}}c}BdDd}{{{b{GJj}}c}BdDd}{{{b{GJl}}c}BdDd}{{{b{GJn}}c}BdDd}{{{b{GK`}}c}BdDd}{{{b{GKb}}c}BdDd}{{{b{GKd}}c}BdDd}{{{b{GKf}}c}BdDd}{{{b{GKh}}c}BdDd}{{{b{GKj}}c}BdDd}{{{b{GKl}}c}BdDd}{{{b{GKn}}c}BdDd}{{{b{GL`}}c}BdDd}{{{b{GLb}}c}BdDd}{{{b{GLd}}c}BdDd}{{{b{GLf}}c}BdDd}{{{b{GLh}}c}BdDd}{{{b{GLj}}c}BdDd}{{{b{GLl}}c}BdDd}{{{b{GLn}}c}BdDd}{{{b{GM`}}c}BdDd}{{{b{GMb}}c}BdDd}{{{b{GMd}}c}BdDd}{{{b{GMf}}c}BdDd}{{{b{GMh}}c}BdDd}{{{b{GMj}}c}BdDd}{{{b{GMl}}c}BdDd}{{{b{GMn}}c}BdDd}{{{b{GN`}}c}BdDd}{{{b{GNb}}c}BdDd}{{{b{GNd}}c}BdDd}{{{b{GNf}}c}BdDd}{{{b{GNh}}c}BdDd}{{{b{GNj}}c}BdDd}{{{b{GNl}}c}BdDd}{{{b{GNn}}c}BdDd}{{{b{GO`}}c}BdDd}{{{b{GOb}}c}BdDd}{{{b{GOd}}c}BdDd}{{{b{GOf}}c}BdDd}{{{b{GOh}}c}BdDd}{{{b{GOj}}c}BdDd}{{{b{GOl}}c}BdDd}{{{b{GOn}}c}BdDd}{{{b{H@`}}c}BdDd}{{{b{H@b}}c}BdDd}{{{b{H@d}}c}BdDd}{{{b{H@f}}c}BdDd}{{{b{H@h}}c}BdDd}{{{b{H@j}}c}BdDd}{{{b{H@l}}c}BdDd}{{{b{H@n}}c}BdDd}{{{b{HA`}}c}BdDd}{{{b{HAb}}c}BdDd}{{{b{HAd}}c}BdDd}{{{b{HAf}}c}BdDd}{{{b{HAh}}c}BdDd}{{{b{HAj}}c}BdDd}{{{b{HAl}}c}BdDd}{{{b{HAn}}c}BdDd}{{{b{HB`}}c}BdDd}{{{b{HBb}}c}BdDd}{{{b{HBd}}c}BdDd}{{{b{HBf}}c}BdDd}{{{b{HBh}}c}BdDd}{{{b{HBj}}c}BdDd}{{{b{HBl}}c}BdDd}{{{b{HBn}}c}BdDd}{{{b{HC`}}c}BdDd}{{{b{HCb}}c}BdDd}{{{b{HCd}}c}BdDd}{{{b{HCf}}c}BdDd}{{{b{HCh}}c}BdDd}{{{b{HCj}}c}BdDd}{{{b{HCl}}c}BdDd}{{{b{HCn}}c}BdDd}{{{b{HD`}}c}BdDd}{{{b{HDb}}c}BdDd}{{{b{HDd}}c}BdDd}{{{b{HDf}}c}BdDd}{{{b{HDh}}c}BdDd}{{{b{HDj}}c}BdDd}{{{b{HDl}}c}BdDd}{{{b{HDn}}c}BdDd}{{{b{HE`}}c}BdDd}{{{b{HEb}}c}BdDd}{{{b{HEd}}c}BdDd}{{{b{HEf}}c}BdDd}{{{b{HEh}}c}BdDd}{{{b{HEj}}c}BdDd}{{{b{HEl}}c}BdDd}{{{b{HEn}}c}BdDd}{{{b{HF`}}c}BdDd}{{{b{HFb}}c}BdDd}{{{b{HFd}}c}BdDd}{{{b{HFf}}c}BdDd}{{{b{HFh}}c}BdDd}{{{b{HFj}}c}BdDd}{{{b{HFl}}c}BdDd}{{{b{HFn}}c}BdDd}{{{b{HG`}}c}BdDd}{{{b{HGb}}c}BdDd}{{{b{HGd}}c}BdDd}{{{b{HGf}}c}BdDd}{{{b{HGh}}c}BdDd}{{{b{HGj}}c}BdDd}{{{b{HGl}}c}BdDd}{{{b{HGn}}c}BdDd}{{{b{HH`}}c}BdDd}{{{b{HHb}}c}BdDd}{{{b{HHd}}c}BdDd}{{{b{HHf}}c}BdDd}{{{b{HHh}}c}BdDd}{{{b{HHj}}c}BdDd}{{{b{HHl}}c}BdDd}{{{b{HHn}}c}BdDd}{{{b{HI`}}c}BdDd}{{{b{HIb}}c}BdDd}{{{b{HId}}c}BdDd}{{{b{HIf}}c}BdDd}{{{b{HIh}}c}BdDd}{{{b{HIj}}c}BdDd}{{{b{HIl}}c}BdDd}{{{b{HIn}}c}BdDd}{{{b{HJ`}}c}BdDd}{{{b{HJb}}c}BdDd}{{{b{HJd}}c}BdDd}{{{b{HJf}}c}BdDd}{{{b{HJh}}c}BdDd}{{{b{HJj}}c}BdDd}{{{b{HJl}}c}BdDd}{{{b{HJn}}c}BdDd}{{{b{HK`}}c}BdDd}{{{b{HKb}}c}BdDd}{{{b{HKd}}c}BdDd}{{{b{HKf}}c}BdDd}{{{b{HKh}}c}BdDd}{{{b{HKj}}c}BdDd}{{{b{HKl}}c}BdDd}{{{b{HKn}}c}BdDd}{{{b{HL`}}c}BdDd}{{{b{HLb}}c}BdDd}{{{b{HLd}}c}BdDd}{{{b{HLf}}c}BdDd}{{{b{HLh}}c}BdDd}{{{b{HLj}}c}BdDd}{{{b{HLl}}c}BdDd}{{{b{HLn}}c}BdDd}{{{b{HM`}}c}BdDd}{{{b{HMb}}c}BdDd}{{{b{HMd}}c}BdDd}{{{b{HMf}}c}BdDd}{{{b{HMh}}c}BdDd}{{{b{HMj}}c}BdDd}{{{b{HMl}}c}BdDd}{{{b{HMn}}c}BdDd}{{{b{HN`}}c}BdDd}{{{b{HNb}}c}BdDd}{{{b{HNd}}c}BdDd}{{{b{HNf}}c}BdDd}{{{b{HNh}}c}BdDd}{{{b{HNj}}c}BdDd}{{{b{HNl}}c}BdDd}{{{b{HNn}}c}BdDd}{{{b{HO`}}c}BdDd}{{{b{HOb}}c}BdDd}{{{b{HOd}}c}BdDd}{{{b{HOf}}c}BdDd}{{{b{HOh}}c}BdDd}{{{b{HOj}}c}BdDd}{{{b{HOl}}c}BdDd}{{{b{HOn}}c}BdDd}{{{b{I@`}}c}BdDd}{{{b{I@b}}c}BdDd}{{{b{I@d}}c}BdDd}{{{b{I@f}}c}BdDd}{{{b{I@h}}c}BdDd}{{{b{I@j}}c}BdDd}{{{b{I@l}}c}BdDd}{{{b{I@n}}c}BdDd}{{{b{IA`}}c}BdDd}{{{b{IAb}}c}BdDd}{{{b{IAd}}c}BdDd}{{{b{GAj}}c}BdDd}{{{b{IAf}}c}BdDd}{{{b{IAh}}c}BdDd}{{{b{IAj}}c}BdDd}{{{b{IAl}}c}BdDd}{{{b{GAl}}c}BdDd}{{{b{IAn}}c}BdDd}{{{b{IB`}}c}BdDd}{{{b{IBb}}c}BdDd}{{{b{IBd}}c}BdDd}{{{b{IBf}}c}BdDd}{{{b{GAn}}c}BdDd}{{{b{IBh}}c}BdDd}{{{b{GB`}}c}BdDd}{{{b{IBj}}c}BdDd}{{{b{IBl}}c}BdDd}{{{b{IBn}}c}BdDd}{{{b{IC`}}c}BdDd}{{{b{GBb}}c}BdDd}{{{b{ICb}}c}BdDd}{{{b{ICd}}c}BdDd}{{{b{ICf}}c}BdDd}{{{b{ICh}}c}BdDd}{{{b{ICj}}c}BdDd}{{{b{ICl}}c}BdDd}{{{b{ICn}}c}BdDd}{{{b{ID`}}c}BdDd}{{{b{IDb}}c}BdDd}{{{b{GBd}}c}BdDd}{{{b{IDd}}c}BdDd}{{{b{IDf}}c}BdDd}{{{b{IDh}}c}BdDd}{{{b{IDj}}c}BdDd}{{{b{IDl}}c}BdDd}{{{b{IDn}}c}BdDd}{{{b{IE`}}c}BdDd}{{{b{IEb}}c}BdDd}{{{b{IEd}}c}BdDd}{{{b{IEf}}c}BdDd}{{{b{GBf}}c}BdDd}{{{b{IEh}}c}BdDd}{{{b{IEj}}c}BdDd}{{{b{IEl}}c}BdDd}{{{b{IEn}}c}BdDd}{{{b{IF`}}c}BdDd}{{{b{IFb}}c}BdDd}{{{b{IFd}}c}BdDd}{{{b{IFf}}c}BdDd}{{{b{IFh}}c}BdDd}{{{b{IFj}}c}BdDd}{{{b{IFl}}c}BdDd}{{{b{GBh}}c}BdDd}{{{b{GBj}}c}BdDd}{{{b{IFn}}c}BdDd}{{{b{IG`}}c}BdDd}{{{b{GBl}}c}BdDd}{{{b{IGb}}c}BdDd}{{{b{IGd}}c}BdDd}{{{b{IGf}}c}BdDd}{{{b{IGh}}c}BdDd}{{{b{IGj}}c}BdDd}{{{b{IGl}}c}BdDd}{{{b{IGn}}c}BdDd}{{{b{GBn}}c}BdDd}{{{b{IH`}}c}BdDd}{{{b{IHb}}c}BdDd}{{{b{IHd}}c}BdDd}{{{b{IHf}}c}BdDd}{{{b{IHh}}c}BdDd}{{{b{IHj}}c}BdDd}{{{b{GC`}}c}BdDd}{{{b{IHl}}c}BdDd}{{{b{IHn}}c}BdDd}{{{b{II`}}c}BdDd}{{{b{IIb}}c}BdDd}{{{b{IId}}c}BdDd}{{{b{IIf}}c}BdDd}{{{b{IIh}}c}BdDd}{{{b{GCb}}c}BdDd}{{{b{IIj}}c}BdDd}{{{b{IIl}}c}BdDd}{{{b{GCd}}c}BdDd}{{{b{IIn}}c}BdDd}{{{b{GCf}}c}BdDd}{{{b{IJ`}}c}BdDd}{{{b{IJb}}c}BdDd}{{{b{IJd}}c}BdDd}{{{b{IJf}}c}BdDd}{{{b{IJh}}c}BdDd}{{{b{GCh}}c}BdDd}{{{b{IJj}}c}BdDd}{{{b{IJl}}c}BdDd}{{{b{IJn}}c}BdDd}{{{b{GCj}}c}BdDd}{{{b{IK`}}c}BdDd}{{{b{IKb}}c}BdDd}{{{b{IKd}}c}BdDd}{{{b{IKf}}c}BdDd}{{{b{GCl}}c}BdDd}{{{b{IKh}}c}BdDd}{{{b{IKj}}c}BdDd}{{{b{IKl}}c}BdDd}{{{b{IKn}}c}BdDd}{{{b{GCn}}c}BdDd}{{{b{GD`}}c}BdDd}{{{b{IL`}}c}BdDd}{{{b{GDb}}c}BdDd}{{{b{ILb}}c}BdDd}{{{b{ILd}}c}BdDd}{{{b{GDd}}c}BdDd}{{{b{ILf}}c}BdDd}{{{b{ILh}}c}BdDd}{{{b{ILj}}c}BdDd}{{{b{GDf}}c}BdDd}{{{b{ILl}}c}BdDd}{{{b{ILn}}c}BdDd}{{{b{IM`}}c}BdDd}{{{b{IMb}}c}BdDd}{{{b{IMd}}c}BdDd}{{{b{IMf}}c}BdDd}{{{b{IMh}}c}BdDd}{{{b{IMj}}c}BdDd}{{{b{IMl}}c}BdDd}{{{b{GDh}}c}BdDd}{{{b{IMn}}c}BdDd}{{{b{IN`}}c}BdDd}{{{b{INb}}c}BdDd}{{{b{INd}}c}BdDd}{{{b{INf}}c}BdDd}{{{b{INh}}c}BdDd}{{{b{INj}}c}BdDd}{{{b{INl}}c}BdDd}{{{b{GDj}}c}BdDd}{{{b{INn}}c}BdDd}{{{b{IO`}}c}BdDd}{{{b{IOb}}c}BdDd}{{{b{IOd}}c}BdDd}{{{b{IOf}}c}BdDd}{{{b{GDl}}c}BdDd}{{{b{GDn}}c}BdDd}{{{b{IOh}}c}BdDd}{{{b{GE`}}c}BdDd}{{{b{IOj}}c}BdDd}{{{b{IOl}}c}BdDd}````````{{{b{dGAj}}GAjC`}Aj}{{{b{dGAl}}GAlC`}Aj}{{{b{dGAn}}GAnC`}Aj}{{{b{dGB`}}GB`C`}Aj}{{{b{dGBb}}GBbC`}Aj}{{{b{dGBd}}GBdC`}Aj}{{{b{dGBf}}GBfC`}Aj}{{{b{dGBh}}GBhC`}Aj}{{{b{dGBj}}GBjC`}Aj}{{{b{dGBl}}GBlC`}Aj}{{{b{dGBn}}GBnC`}Aj}{{{b{dGC`}}GC`C`}Aj}{{{b{dGCb}}GCbC`}Aj}{{{b{dGCd}}GCdC`}Aj}{{{b{dGCf}}GCfC`}Aj}{{{b{dGCh}}GChC`}Aj}{{{b{dGCj}}GCjC`}Aj}{{{b{dGCl}}GClC`}Aj}{{{b{dGCn}}GCnC`}Aj}{{{b{dGD`}}GD`C`}Aj}{{{b{dGDb}}GDbC`}Aj}{{{b{dGDd}}GDdC`}Aj}{{{b{dGDf}}GDfC`}Aj}{{{b{dGDh}}GDhC`}Aj}{{{b{dGDj}}GDjC`}Aj}{{{b{dGDl}}GDlC`}Aj}{{{b{dGDn}}GDnC`}Aj}{{{b{dGE`}}GE`C`}Aj}```````````````````````````````````````````{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}`````{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{IAd}}}{{DBj{DBl}}}}{{{b{IAf}}}{{DBj{DBl}}}}{{{b{IAh}}}{{DBj{DBl}}}}{{{b{IAj}}}{{DBj{DBl}}}}{{{b{IAl}}}{{DBj{DBl}}}}{{{b{IAn}}}{{DBj{DBl}}}}{{{b{IB`}}}{{DBj{DBl}}}}{{{b{IBb}}}{{DBj{DBl}}}}{{{b{IBd}}}{{DBj{DBl}}}}{{{b{IBf}}}{{DBj{DBl}}}}{{{b{IBh}}}{{DBj{DBl}}}}{{{b{IBj}}}{{DBj{DBl}}}}{{{b{IBl}}}{{DBj{DBl}}}}{{{b{IBn}}}{{DBj{DBl}}}}{{{b{IC`}}}{{DBj{DBl}}}}{{{b{ICb}}}{{DBj{DBl}}}}{{{b{ICd}}}{{DBj{DBl}}}}{{{b{ICf}}}{{DBj{DBl}}}}{{{b{ICh}}}{{DBj{DBl}}}}{{{b{ICj}}}{{DBj{DBl}}}}{{{b{ICl}}}{{DBj{DBl}}}}{{{b{ICn}}}{{DBj{DBl}}}}{{{b{ID`}}}{{DBj{DBl}}}}{{{b{IDb}}}{{DBj{DBl}}}}{{{b{IDd}}}{{DBj{DBl}}}}{{{b{IDf}}}{{DBj{DBl}}}}{{{b{IDh}}}{{DBj{DBl}}}}{{{b{IDj}}}{{DBj{DBl}}}}{{{b{IDl}}}{{DBj{DBl}}}}{{{b{IDn}}}{{DBj{DBl}}}}{{{b{IE`}}}{{DBj{DBl}}}}{{{b{IEb}}}{{DBj{DBl}}}}{{{b{IEd}}}{{DBj{DBl}}}}{{{b{IEf}}}{{DBj{DBl}}}}{{{b{IEh}}}{{DBj{DBl}}}}{{{b{IEj}}}{{DBj{DBl}}}}{{{b{IEl}}}{{DBj{DBl}}}}{{{b{IEn}}}{{DBj{DBl}}}}{{{b{IF`}}}{{DBj{DBl}}}}{{{b{IFb}}}{{DBj{DBl}}}}{{{b{IFd}}}{{DBj{DBl}}}}{{{b{IFf}}}{{DBj{DBl}}}}{{{b{IFh}}}{{DBj{DBl}}}}{{{b{IFj}}}{{DBj{DBl}}}}{{{b{IFl}}}{{DBj{DBl}}}}{{{b{IFn}}}{{DBj{DBl}}}}{{{b{IG`}}}{{DBj{DBl}}}}{{{b{IGb}}}{{DBj{DBl}}}}{{{b{IGd}}}{{DBj{DBl}}}}{{{b{IGf}}}{{DBj{DBl}}}}{{{b{IGh}}}{{DBj{DBl}}}}{{{b{IGj}}}{{DBj{DBl}}}}{{{b{IGl}}}{{DBj{DBl}}}}{{{b{IGn}}}{{DBj{DBl}}}}{{{b{IH`}}}{{DBj{DBl}}}}{{{b{IHb}}}{{DBj{DBl}}}}{{{b{IHd}}}{{DBj{DBl}}}}{{{b{IHf}}}{{DBj{DBl}}}}{{{b{IHh}}}{{DBj{DBl}}}}{{{b{IHj}}}{{DBj{DBl}}}}{{{b{IHl}}}{{DBj{DBl}}}}{{{b{IHn}}}{{DBj{DBl}}}}{{{b{II`}}}{{DBj{DBl}}}}{{{b{IIb}}}{{DBj{DBl}}}}{{{b{IId}}}{{DBj{DBl}}}}{{{b{IIf}}}{{DBj{DBl}}}}{{{b{IIh}}}{{DBj{DBl}}}}{{{b{IIj}}}{{DBj{DBl}}}}{{{b{IIl}}}{{DBj{DBl}}}}{{{b{IIn}}}{{DBj{DBl}}}}{{{b{IJ`}}}{{DBj{DBl}}}}{{{b{IJb}}}{{DBj{DBl}}}}{{{b{IJd}}}{{DBj{DBl}}}}{{{b{IJf}}}{{DBj{DBl}}}}{{{b{IJh}}}{{DBj{DBl}}}}{{{b{IJj}}}{{DBj{DBl}}}}{{{b{IJl}}}{{DBj{DBl}}}}{{{b{IJn}}}{{DBj{DBl}}}}{{{b{IK`}}}{{DBj{DBl}}}}{{{b{IKb}}}{{DBj{DBl}}}}{{{b{IKd}}}{{DBj{DBl}}}}{{{b{IKf}}}{{DBj{DBl}}}}{{{b{IKh}}}{{DBj{DBl}}}}{{{b{IKj}}}{{DBj{DBl}}}}{{{b{IKl}}}{{DBj{DBl}}}}{{{b{IKn}}}{{DBj{DBl}}}}{{{b{IL`}}}{{DBj{DBl}}}}{{{b{ILb}}}{{DBj{DBl}}}}{{{b{ILd}}}{{DBj{DBl}}}}{{{b{ILf}}}{{DBj{DBl}}}}{{{b{ILh}}}{{DBj{DBl}}}}{{{b{ILj}}}{{DBj{DBl}}}}{{{b{ILl}}}{{DBj{DBl}}}}{{{b{ILn}}}{{DBj{DBl}}}}{{{b{IM`}}}{{DBj{DBl}}}}{{{b{IMb}}}{{DBj{DBl}}}}{{{b{IMd}}}{{DBj{DBl}}}}{{{b{IMf}}}{{DBj{DBl}}}}{{{b{IMh}}}{{DBj{DBl}}}}{{{b{IMj}}}{{DBj{DBl}}}}{{{b{IMl}}}{{DBj{DBl}}}}{{{b{IMn}}}{{DBj{DBl}}}}{{{b{IN`}}}{{DBj{DBl}}}}{{{b{INb}}}{{DBj{DBl}}}}{{{b{INd}}}{{DBj{DBl}}}}{{{b{INf}}}{{DBj{DBl}}}}{{{b{INh}}}{{DBj{DBl}}}}{{{b{INj}}}{{DBj{DBl}}}}{{{b{INl}}}{{DBj{DBl}}}}{{{b{INn}}}{{DBj{DBl}}}}{{{b{IO`}}}{{DBj{DBl}}}}{{{b{IOb}}}{{DBj{DBl}}}}{{{b{IOd}}}{{DBj{DBl}}}}{{{b{IOf}}}{{DBj{DBl}}}}{{{b{IOh}}}{{DBj{DBl}}}}{{{b{IOj}}}{{DBj{DBl}}}}{{{b{IOl}}}{{DBj{DBl}}}}{{{b{c}}}e{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{IAd}}}{{DBj{Hl}}}}{{{b{IAf}}}{{DBj{Hl}}}}{{{b{IAh}}}{{DBj{Hl}}}}{{{b{IAj}}}{{DBj{Hl}}}}{{{b{IAl}}}{{DBj{Hl}}}}{{{b{IAn}}}{{DBj{Hl}}}}{{{b{IB`}}}{{DBj{Hl}}}}{{{b{IBb}}}{{DBj{Hl}}}}{{{b{IBd}}}{{DBj{Hl}}}}{{{b{IBf}}}{{DBj{Hl}}}}{{{b{IBh}}}{{DBj{Hl}}}}{{{b{IBj}}}{{DBj{Hl}}}}{{{b{IBl}}}{{DBj{Hl}}}}{{{b{IBn}}}{{DBj{Hl}}}}{{{b{IC`}}}{{DBj{Hl}}}}{{{b{ICb}}}{{DBj{Hl}}}}{{{b{ICd}}}{{DBj{Hl}}}}{{{b{ICf}}}{{DBj{Hl}}}}{{{b{ICh}}}{{DBj{Hl}}}}{{{b{ICj}}}{{DBj{Hl}}}}{{{b{ICl}}}{{DBj{Hl}}}}{{{b{ICn}}}{{DBj{Hl}}}}{{{b{ID`}}}{{DBj{Hl}}}}{{{b{IDb}}}{{DBj{Hl}}}}{{{b{IDd}}}{{DBj{Hl}}}}{{{b{IDf}}}{{DBj{Hl}}}}{{{b{IDh}}}{{DBj{Hl}}}}{{{b{IDj}}}{{DBj{Hl}}}}{{{b{IDl}}}{{DBj{Hl}}}}{{{b{IDn}}}{{DBj{Hl}}}}{{{b{IE`}}}{{DBj{Hl}}}}{{{b{IEb}}}{{DBj{Hl}}}}{{{b{IEd}}}{{DBj{Hl}}}}{{{b{IEf}}}{{DBj{Hl}}}}{{{b{IEh}}}{{DBj{Hl}}}}{{{b{IEj}}}{{DBj{Hl}}}}{{{b{IEl}}}{{DBj{Hl}}}}{{{b{IEn}}}{{DBj{Hl}}}}{{{b{IF`}}}{{DBj{Hl}}}}{{{b{IFb}}}{{DBj{Hl}}}}{{{b{IFd}}}{{DBj{Hl}}}}{{{b{IFf}}}{{DBj{Hl}}}}{{{b{IFh}}}{{DBj{Hl}}}}{{{b{IFj}}}{{DBj{Hl}}}}{{{b{IFl}}}{{DBj{Hl}}}}{{{b{IFn}}}{{DBj{Hl}}}}{{{b{IG`}}}{{DBj{Hl}}}}{{{b{IGb}}}{{DBj{Hl}}}}{{{b{IGd}}}{{DBj{Hl}}}}{{{b{IGf}}}{{DBj{Hl}}}}{{{b{IGh}}}{{DBj{Hl}}}}{{{b{IGj}}}{{DBj{Hl}}}}{{{b{IGl}}}{{DBj{Hl}}}}{{{b{IGn}}}{{DBj{Hl}}}}{{{b{IH`}}}{{DBj{Hl}}}}{{{b{IHb}}}{{DBj{Hl}}}}{{{b{IHd}}}{{DBj{Hl}}}}{{{b{IHf}}}{{DBj{Hl}}}}{{{b{IHh}}}{{DBj{Hl}}}}{{{b{IHj}}}{{DBj{Hl}}}}{{{b{IHl}}}{{DBj{Hl}}}}{{{b{IHn}}}{{DBj{Hl}}}}{{{b{II`}}}{{DBj{Hl}}}}{{{b{IIb}}}{{DBj{Hl}}}}{{{b{IId}}}{{DBj{Hl}}}}{{{b{IIf}}}{{DBj{Hl}}}}{{{b{IIh}}}{{DBj{Hl}}}}{{{b{IIj}}}{{DBj{Hl}}}}{{{b{IIl}}}{{DBj{Hl}}}}{{{b{IIn}}}{{DBj{Hl}}}}{{{b{IJ`}}}{{DBj{Hl}}}}{{{b{IJb}}}{{DBj{Hl}}}}{{{b{IJd}}}{{DBj{Hl}}}}{{{b{IJf}}}{{DBj{Hl}}}}{{{b{IJh}}}{{DBj{Hl}}}}{{{b{IJj}}}{{DBj{Hl}}}}{{{b{IJl}}}{{DBj{Hl}}}}{{{b{IJn}}}{{DBj{Hl}}}}{{{b{IK`}}}{{DBj{Hl}}}}{{{b{IKb}}}{{DBj{Hl}}}}{{{b{IKd}}}{{DBj{Hl}}}}{{{b{IKf}}}{{DBj{Hl}}}}{{{b{IKh}}}{{DBj{Hl}}}}{{{b{IKj}}}{{DBj{Hl}}}}{{{b{IKl}}}{{DBj{Hl}}}}{{{b{IKn}}}{{DBj{Hl}}}}{{{b{IL`}}}{{DBj{Hl}}}}{{{b{ILb}}}{{DBj{Hl}}}}{{{b{ILd}}}{{DBj{Hl}}}}{{{b{ILf}}}{{DBj{Hl}}}}{{{b{ILh}}}{{DBj{Hl}}}}{{{b{ILj}}}{{DBj{Hl}}}}{{{b{ILl}}}{{DBj{Hl}}}}{{{b{ILn}}}{{DBj{Hl}}}}{{{b{IM`}}}{{DBj{Hl}}}}{{{b{IMb}}}{{DBj{Hl}}}}{{{b{IMd}}}{{DBj{Hl}}}}{{{b{IMf}}}{{DBj{Hl}}}}{{{b{IMh}}}{{DBj{Hl}}}}{{{b{IMj}}}{{DBj{Hl}}}}{{{b{IMl}}}{{DBj{Hl}}}}{{{b{IMn}}}{{DBj{Hl}}}}{{{b{IN`}}}{{DBj{Hl}}}}{{{b{INb}}}{{DBj{Hl}}}}{{{b{INd}}}{{DBj{Hl}}}}{{{b{INf}}}{{DBj{Hl}}}}{{{b{INh}}}{{DBj{Hl}}}}{{{b{INj}}}{{DBj{Hl}}}}{{{b{INl}}}{{DBj{Hl}}}}{{{b{INn}}}{{DBj{Hl}}}}{{{b{IO`}}}{{DBj{Hl}}}}{{{b{IOb}}}{{DBj{Hl}}}}{{{b{IOd}}}{{DBj{Hl}}}}{{{b{IOf}}}{{DBj{Hl}}}}{{{b{IOh}}}{{DBj{Hl}}}}{{{b{IOj}}}{{DBj{Hl}}}}{{{b{IOl}}}{{DBj{Hl}}}}{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}````````{c{{Bd{e}}}{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000```````````{{{b{c}}}Dh{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000```````````{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{{h{f}}}}}D`}","D":"AHCfMOh","p":[[1,"reference"],[0,"mut"],[1,"u8"],[1,"slice"],[1,"u16"],[5,"MAVLinkV1MessageRaw",0,39175],[5,"MAVLinkV2MessageRaw",0,39175],[5,"MavHeader",0,39175],[6,"MavlinkVersion",0,39175],[5,"MavFrame",0,39175],[10,"Clone",39176],[10,"Message",0,39175],[1,"unit"],[1,"str"],[10,"MavConnection",0,39177],[5,"Box",39178],[5,"Error",39179],[6,"Result",39180],[1,"u32"],[17,"Message"],[10,"MessageData",0,39175],[6,"ParserError",27060,39181],[10,"Deserializer",39182],[1,"bool"],[5,"Formatter",39183],[5,"Error",39183],[10,"Debug",39183],[5,"PeekReader",27239,39184],[1,"tuple"],[6,"MessageReadError",27060,39181],[10,"Read",39185],[1,"usize"],[6,"MessageWriteError",27060,39181],[10,"Serializer",39186],[10,"Serialize",39186],[5,"TypeId",39187],[10,"Write",39185],[5,"MavProtocolCapability",156],[5,"EstimatorStatusFlags",156],[5,"GpsInputIgnoreFlags",156],[5,"EscFailureFlags",156],[5,"UavionixAdsbRfHealth",156],[5,"MavWinchStatusFlag",156],[5,"HilSensorUpdatedFlags",156],[5,"AdsbFlags",156],[5,"GoproHeartbeatFlags",156],[5,"MavGeneratorStatusFlag",156],[5,"MavSysStatusSensor",156],[5,"MavEventCurrentSequenceFlags",156],[5,"HlFailureFlag",156],[5,"SerialControlFlag",156],[5,"MavPowerStatus",156],[5,"UtmDataAvailFlags",156],[5,"UavionixAdsbOutDynamicState",156],[5,"LimitModule",156],[5,"AttitudeTargetTypemask",156],[5,"GimbalDeviceErrorFlags",156],[5,"AisFlags",156],[5,"TuneFormat",156],[5,"HighresImuUpdatedFlags",156],[5,"GimbalManagerCapFlags",156],[5,"GimbalDeviceCapFlags",156],[5,"EkfStatusFlags",156],[5,"PositionTargetTypemask",156],[5,"MavModeFlag",156],[5,"GimbalDeviceFlags",156],[5,"CameraCapFlags",156],[5,"RallyFlags",156],[5,"UavionixAdsbOutRfSelect",156],[1,"u64"],[6,"MavMessage",156],[5,"RALLY_FETCH_POINT_DATA",156],[5,"HWSTATUS_DATA",156],[5,"ONBOARD_COMPUTER_STATUS_DATA",156],[5,"AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA",156],[5,"CAMERA_SETTINGS_DATA",156],[5,"GIMBAL_DEVICE_SET_ATTITUDE_DATA",156],[5,"PARAM_MAP_RC_DATA",156],[5,"HIL_GPS_DATA",156],[5,"MISSION_CLEAR_ALL_DATA",156],[5,"DATA_STREAM_DATA",156],[5,"RC_CHANNELS_RAW_DATA",156],[5,"DEVICE_OP_READ_REPLY_DATA",156],[5,"MOUNT_ORIENTATION_DATA",156],[5,"GIMBAL_CONTROL_DATA",156],[5,"GPS_INPUT_DATA",156],[5,"GLOBAL_POSITION_INT_COV_DATA",156],[5,"CAMERA_IMAGE_CAPTURED_DATA",156],[5,"RPM_DATA",156],[5,"GOPRO_GET_REQUEST_DATA",156],[5,"COMPONENT_INFORMATION_DATA",156],[5,"DEEPSTALL_DATA",156],[5,"CAMERA_STATUS_DATA",156],[5,"COMMAND_CANCEL_DATA",156],[5,"MOUNT_CONTROL_DATA",156],[5,"SIM_STATE_DATA",156],[5,"ATTITUDE_QUATERNION_DATA",156],[5,"CAMERA_INFORMATION_DATA",156],[5,"LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA",156],[5,"OPEN_DRONE_ID_AUTHENTICATION_DATA",156],[5,"MISSION_REQUEST_LIST_DATA",156],[5,"EFI_STATUS_DATA",156],[5,"RAW_IMU_DATA",156],[5,"HIL_RC_INPUTS_RAW_DATA",156],[5,"ESC_TELEMETRY_9_TO_12_DATA",156],[5,"WIFI_CONFIG_AP_DATA",156],[5,"REQUEST_DATA_STREAM_DATA",156],[5,"MEMORY_VECT_DATA",156],[5,"RADIO_STATUS_DATA",156],[5,"COMMAND_LONG_DATA",156],[5,"EVENT_DATA",156],[5,"DEVICE_OP_READ_DATA",156],[5,"ADSB_VEHICLE_DATA",156],[5,"OPEN_DRONE_ID_SYSTEM_UPDATE_DATA",156],[5,"PARAM_VALUE_DATA",156],[5,"RADIO_DATA",156],[5,"ATTITUDE_TARGET_DATA",156],[5,"POSITION_TARGET_GLOBAL_INT_DATA",156],[5,"SET_GPS_GLOBAL_ORIGIN_DATA",156],[5,"GIMBAL_DEVICE_ATTITUDE_STATUS_DATA",156],[5,"HIL_STATE_QUATERNION_DATA",156],[5,"AHRS3_DATA",156],[5,"EKF_STATUS_REPORT_DATA",156],[5,"HIL_ACTUATOR_CONTROLS_DATA",156],[5,"MESSAGE_INTERVAL_DATA",156],[5,"PING_DATA",156],[5,"ODOMETRY_DATA",156],[5,"DATA64_DATA",156],[5,"GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA",156],[5,"AUTOPILOT_VERSION_DATA",156],[5,"PARAM_EXT_VALUE_DATA",156],[5,"DATA32_DATA",156],[5,"ATT_POS_MOCAP_DATA",156],[5,"MISSION_COUNT_DATA",156],[5,"COLLISION_DATA",156],[5,"TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA",156],[5,"SCALED_IMU3_DATA",156],[5,"LED_CONTROL_DATA",156],[5,"MISSION_REQUEST_DATA",156],[5,"SCALED_IMU2_DATA",156],[5,"OBSTACLE_DISTANCE_DATA",156],[5,"VISION_SPEED_ESTIMATE_DATA",156],[5,"TRAJECTORY_REPRESENTATION_BEZIER_DATA",156],[5,"OSD_PARAM_SHOW_CONFIG_DATA",156],[5,"TUNNEL_DATA",156],[5,"AUTOPILOT_VERSION_REQUEST_DATA",156],[5,"GPS_RAW_INT_DATA",156],[5,"PARAM_REQUEST_LIST_DATA",156],[5,"LOG_REQUEST_DATA_DATA",156],[5,"MAG_CAL_PROGRESS_DATA",156],[5,"LINK_NODE_STATUS_DATA",156],[5,"CAMERA_TRACKING_IMAGE_STATUS_DATA",156],[5,"NAMED_VALUE_INT_DATA",156],[5,"SCALED_PRESSURE3_DATA",156],[5,"AOA_SSA_DATA",156],[5,"GIMBAL_MANAGER_SET_ATTITUDE_DATA",156],[5,"RESPONSE_EVENT_ERROR_DATA",156],[5,"CONTROL_SYSTEM_STATE_DATA",156],[5,"GIMBAL_REPORT_DATA",156],[5,"GIMBAL_DEVICE_INFORMATION_DATA",156],[5,"ICAROUS_HEARTBEAT_DATA",156],[5,"RC_CHANNELS_OVERRIDE_DATA",156],[5,"VIBRATION_DATA",156],[5,"MANUAL_CONTROL_DATA",156],[5,"TERRAIN_REQUEST_DATA",156],[5,"RAW_PRESSURE_DATA",156],[5,"MISSION_ITEM_INT_DATA",156],[5,"GLOBAL_VISION_POSITION_ESTIMATE_DATA",156],[5,"AIS_VESSEL_DATA",156],[5,"CAMERA_TRIGGER_DATA",156],[5,"LOGGING_DATA_DATA",156],[5,"ATTITUDE_DATA",156],[5,"AHRS_DATA",156],[5,"OPEN_DRONE_ID_SYSTEM_DATA",156],[5,"CURRENT_EVENT_SEQUENCE_DATA",156],[5,"GPS2_RAW_DATA",156],[5,"SET_MAG_OFFSETS_DATA",156],[5,"OPEN_DRONE_ID_OPERATOR_ID_DATA",156],[5,"LOG_ERASE_DATA",156],[5,"TERRAIN_REPORT_DATA",156],[5,"CELLULAR_STATUS_DATA",156],[5,"HIL_OPTICAL_FLOW_DATA",156],[5,"VIDEO_STREAM_INFORMATION_DATA",156],[5,"HERELINK_TELEM_DATA",156],[5,"WINCH_STATUS_DATA",156],[5,"CAMERA_FOV_STATUS_DATA",156],[5,"PARAM_EXT_REQUEST_LIST_DATA",156],[5,"HIGH_LATENCY_DATA",156],[5,"PID_TUNING_DATA",156],[5,"SCALED_PRESSURE_DATA",156],[5,"MISSION_SET_CURRENT_DATA",156],[5,"MISSION_REQUEST_PARTIAL_LIST_DATA",156],[5,"HERELINK_VIDEO_STREAM_INFORMATION_DATA",156],[5,"LOG_DATA_DATA",156],[5,"CAMERA_TRACKING_GEO_STATUS_DATA",156],[5,"DATA96_DATA",156],[5,"UAVIONIX_ADSB_OUT_DYNAMIC_DATA",156],[5,"MISSION_REQUEST_INT_DATA",156],[5,"COMPASSMOT_STATUS_DATA",156],[5,"TIMESYNC_DATA",156],[5,"SET_ACTUATOR_CONTROL_TARGET_DATA",156],[5,"CANFD_FRAME_DATA",156],[5,"TERRAIN_DATA_DATA",156],[5,"GPS2_RTK_DATA",156],[5,"DIGICAM_CONTROL_DATA",156],[5,"AUTH_KEY_DATA",156],[5,"ESC_INFO_DATA",156],[5,"RAW_RPM_DATA",156],[5,"HOME_POSITION_DATA",156],[5,"PARAM_EXT_SET_DATA",156],[5,"SETUP_SIGNING_DATA",156],[5,"SET_MODE_DATA",156],[5,"CUBEPILOT_FIRMWARE_UPDATE_START_DATA",156],[5,"SCALED_PRESSURE2_DATA",156],[5,"MAG_CAL_REPORT_DATA",156],[5,"SIMSTATE_DATA",156],[5,"DATA16_DATA",156],[5,"MOUNT_STATUS_DATA",156],[5,"DEVICE_OP_WRITE_REPLY_DATA",156],[5,"SET_POSITION_TARGET_LOCAL_NED_DATA",156],[5,"AP_ADC_DATA",156],[5,"PARAM_SET_DATA",156],[5,"LOG_ENTRY_DATA",156],[5,"POSITION_TARGET_LOCAL_NED_DATA",156],[5,"SERVO_OUTPUT_RAW_DATA",156],[5,"WHEEL_DISTANCE_DATA",156],[5,"OPTICAL_FLOW_DATA",156],[5,"MANUAL_SETPOINT_DATA",156],[5,"MISSION_ITEM_DATA",156],[5,"FILE_TRANSFER_PROTOCOL_DATA",156],[5,"WIND_COV_DATA",156],[5,"ESC_TELEMETRY_5_TO_8_DATA",156],[5,"FENCE_POINT_DATA",156],[5,"REMOTE_LOG_DATA_BLOCK_DATA",156],[5,"RANGEFINDER_DATA",156],[5,"ESC_STATUS_DATA",156],[5,"ACTUATOR_OUTPUT_STATUS_DATA",156],[5,"GIMBAL_MANAGER_STATUS_DATA",156],[5,"VISION_POSITION_ESTIMATE_DATA",156],[5,"OBSTACLE_DISTANCE_3D_DATA",156],[5,"ATTITUDE_QUATERNION_COV_DATA",156],[5,"AHRS2_DATA",156],[5,"OSD_PARAM_CONFIG_DATA",156],[5,"GPS_STATUS_DATA",156],[5,"RALLY_POINT_DATA",156],[5,"MISSION_WRITE_PARTIAL_LIST_DATA",156],[5,"VICON_POSITION_ESTIMATE_DATA",156],[5,"ADAP_TUNING_DATA",156],[5,"FENCE_STATUS_DATA",156],[5,"COMMAND_INT_DATA",156],[5,"LOCAL_POSITION_NED_DATA",156],[5,"CHANGE_OPERATOR_CONTROL_DATA",156],[5,"SUPPORTED_TUNES_DATA",156],[5,"UAVCAN_NODE_INFO_DATA",156],[5,"SET_POSITION_TARGET_GLOBAL_INT_DATA",156],[5,"LOGGING_DATA_ACKED_DATA",156],[5,"CHANGE_OPERATOR_CONTROL_ACK_DATA",156],[5,"HIL_CONTROLS_DATA",156],[5,"GENERATOR_STATUS_DATA",156],[5,"GOPRO_GET_RESPONSE_DATA",156],[5,"MISSION_ITEM_REACHED_DATA",156],[5,"RESOURCE_REQUEST_DATA",156],[5,"UAVCAN_NODE_STATUS_DATA",156],[5,"LIMITS_STATUS_DATA",156],[5,"OSD_PARAM_CONFIG_REPLY_DATA",156],[5,"VFR_HUD_DATA",156],[5,"OPEN_DRONE_ID_BASIC_ID_DATA",156],[5,"ORBIT_EXECUTION_STATUS_DATA",156],[5,"CUBEPILOT_RAW_RC_DATA",156],[5,"DEBUG_FLOAT_ARRAY_DATA",156],[5,"HIL_STATE_DATA",156],[5,"FENCE_FETCH_POINT_DATA",156],[5,"ICAROUS_KINEMATIC_BANDS_DATA",156],[5,"TIME_ESTIMATE_TO_TARGET_DATA",156],[5,"HIGH_LATENCY2_DATA",156],[5,"OPEN_DRONE_ID_LOCATION_DATA",156],[5,"LOGGING_ACK_DATA",156],[5,"ESC_TELEMETRY_1_TO_4_DATA",156],[5,"FLIGHT_INFORMATION_DATA",156],[5,"UTM_GLOBAL_POSITION_DATA",156],[5,"MISSION_ACK_DATA",156],[5,"SAFETY_SET_ALLOWED_AREA_DATA",156],[5,"SAFETY_ALLOWED_AREA_DATA",156],[5,"RC_CHANNELS_DATA",156],[5,"DEBUG_VECT_DATA",156],[5,"GIMBAL_MANAGER_INFORMATION_DATA",156],[5,"OPEN_DRONE_ID_MESSAGE_PACK_DATA",156],[5,"GIMBAL_MANAGER_SET_PITCHYAW_DATA",156],[5,"LOG_REQUEST_LIST_DATA",156],[5,"GOPRO_SET_REQUEST_DATA",156],[5,"UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA",156],[5,"ENCAPSULATED_DATA_DATA",156],[5,"GLOBAL_POSITION_INT_DATA",156],[5,"AIRSPEED_AUTOCAL_DATA",156],[5,"PROTOCOL_VERSION_DATA",156],[5,"LOG_REQUEST_END_DATA",156],[5,"SYSTEM_TIME_DATA",156],[5,"HYGROMETER_SENSOR_DATA",156],[5,"DATA_TRANSMISSION_HANDSHAKE_DATA",156],[5,"CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA",156],[5,"ACTUATOR_CONTROL_TARGET_DATA",156],[5,"SMART_BATTERY_INFO_DATA",156],[5,"GPS_INJECT_DATA_DATA",156],[5,"GOPRO_SET_RESPONSE_DATA",156],[5,"GIMBAL_TORQUE_CMD_REPORT_DATA",156],[5,"MISSION_CURRENT_DATA",156],[5,"WIND_DATA",156],[5,"FOLLOW_TARGET_DATA",156],[5,"GPS_RTK_DATA",156],[5,"TERRAIN_CHECK_DATA",156],[5,"PLAY_TUNE_V2_DATA",156],[5,"PARAM_REQUEST_READ_DATA",156],[5,"OPEN_DRONE_ID_SELF_ID_DATA",156],[5,"RC_CHANNELS_SCALED_DATA",156],[5,"CAN_FILTER_MODIFY_DATA",156],[5,"SYS_STATUS_DATA",156],[5,"POWER_STATUS_DATA",156],[5,"HIL_SENSOR_DATA",156],[5,"WATER_DEPTH_DATA",156],[5,"GOPRO_HEARTBEAT_DATA",156],[5,"HIGHRES_IMU_DATA",156],[5,"DEVICE_OP_WRITE_DATA",156],[5,"BATTERY_STATUS_DATA",156],[5,"VIDEO_STREAM_STATUS_DATA",156],[5,"SCALED_IMU_DATA",156],[5,"BATTERY2_DATA",156],[5,"SENSOR_OFFSETS_DATA",156],[5,"ISBD_LINK_STATUS_DATA",156],[5,"CAN_FRAME_DATA",156],[5,"STATUSTEXT_DATA",156],[5,"BUTTON_CHANGE_DATA",156],[5,"DIGICAM_CONFIGURE_DATA",156],[5,"COMPONENT_METADATA_DATA",156],[5,"V2_EXTENSION_DATA",156],[5,"CAMERA_CAPTURE_STATUS_DATA",156],[5,"SERIAL_CONTROL_DATA",156],[5,"CAMERA_FEEDBACK_DATA",156],[5,"PARAM_EXT_REQUEST_READ_DATA",156],[5,"MOUNT_CONFIGURE_DATA",156],[5,"UAVIONIX_ADSB_OUT_CFG_DATA",156],[5,"SET_HOME_POSITION_DATA",156],[5,"ESTIMATOR_STATUS_DATA",156],[5,"NAMED_VALUE_FLOAT_DATA",156],[5,"NAV_CONTROLLER_OUTPUT_DATA",156],[5,"LANDING_TARGET_DATA",156],[5,"EXTENDED_SYS_STATE_DATA",156],[5,"DISTANCE_SENSOR_DATA",156],[5,"GPS_GLOBAL_ORIGIN_DATA",156],[5,"SET_ATTITUDE_TARGET_DATA",156],[5,"CELLULAR_CONFIG_DATA",156],[5,"OSD_PARAM_SHOW_CONFIG_REPLY_DATA",156],[5,"PLAY_TUNE_DATA",156],[5,"VISION_POSITION_DELTA_DATA",156],[5,"LOCAL_POSITION_NED_COV_DATA",156],[5,"REQUEST_EVENT_DATA",156],[5,"GPS_RTCM_DATA_DATA",156],[5,"OPTICAL_FLOW_RAD_DATA",156],[5,"REMOTE_LOG_BLOCK_STATUS_DATA",156],[5,"PARAM_EXT_ACK_DATA",156],[5,"DEBUG_DATA",156],[5,"COMMAND_ACK_DATA",156],[5,"ALTITUDE_DATA",156],[5,"MCU_STATUS_DATA",156],[5,"HEARTBEAT_DATA",156],[5,"MEMINFO_DATA",156],[5,"STORAGE_INFORMATION_DATA",156],[5,"OPEN_DRONE_ID_ARM_STATUS_DATA",156],[6,"MavGoto",156],[6,"GripperActions",156],[6,"MavBatteryChargeState",156],[6,"MavSeverity",156],[6,"MavOdidHeightRef",156],[6,"CameraTrackingStatusFlags",156],[6,"MavBatteryMode",156],[6,"VideoStreamStatusFlags",156],[6,"MavOdidClassEu",156],[6,"UtmFlightState",156],[6,"DeepstallStage",156],[6,"CameraTrackingMode",156],[6,"OsdParamConfigType",156],[6,"PlaneMode",156],[6,"MavCmdDoAuxFunctionSwitchLevel",156],[6,"MavDistanceSensor",156],[6,"CameraTrackingTargetData",156],[6,"MavSysStatusSensorExtended",156],[6,"ActuatorOutputFunction",156],[6,"MavComponent",156],[6,"LimitsState",156],[6,"MavBatteryFunction",156],[6,"MavParamType",156],[6,"AdsbAltitudeType",156],[6,"OrbitYawBehaviour",156],[6,"CameraStatusTypes",156],[6,"MotorTestOrder",156],[6,"MavVtolState",156],[6,"FenceBreach",156],[6,"MavMissionType",156],[6,"GoproProtuneExposure",156],[6,"MavTunnelPayloadType",156],[6,"MavOdidUaType",156],[6,"MavMountMode",156],[6,"PidTuningAxis",156],[6,"GoproPhotoResolution",156],[6,"VideoStreamType",156],[6,"RtkBaselineCoordinateSystem",156],[6,"TrackerMode",156],[6,"UavionixAdsbEmergencyStatus",156],[6,"GimbalAxis",156],[6,"ParamAck",156],[6,"PreflightStorageMissionAction",156],[6,"MavOdidSpeedAcc",156],[6,"MavDoRepositionFlags",156],[6,"GoproProtuneWhiteBalance",156],[6,"MavFrame",156],[6,"StorageStatus",156],[6,"ParachuteAction",156],[6,"UavcanNodeHealth",156],[6,"CellularNetworkRadioType",156],[6,"MavRemoteLogDataBlockStatuses",156],[6,"GoproCaptureMode",156],[6,"MavResult",156],[6,"MavOdidHorAcc",156],[6,"MavParamExtType",156],[6,"MavRoi",156],[6,"MavDataStream",156],[6,"MavSensorOrientation",156],[6,"DeviceOpBustype",156],[6,"GoproRequestStatus",156],[6,"IcarousTrackBandTypes",156],[6,"MavOdidStatus",156],[6,"MavOdidIdType",156],[6,"AisType",156],[6,"AdsbEmitterType",156],[6,"ScriptingCmd",156],[6,"MavOdidArmStatus",156],[6,"MavOdidOperatorLocationType",156],[6,"MavMode",156],[6,"GoproResolution",156],[6,"GoproHeartbeatStatus",156],[6,"MavCmdAck",156],[6,"RcType",156],[6,"MavCollisionThreatLevel",156],[6,"GimbalAxisCalibrationStatus",156],[6,"ActuatorConfiguration",156],[6,"MavBatteryType",156],[6,"CanFilterOp",156],[6,"CameraZoomType",156],[6,"FailureType",156],[6,"FailureUnit",156],[6,"RoverMode",156],[6,"CopterMode",156],[6,"GoproProtuneSharpness",156],[6,"GimbalManagerFlags",156],[6,"HeadingType",156],[6,"LandingTargetType",156],[6,"MavType",156],[6,"MavCollisionSrc",156],[6,"CameraFeedbackFlags",156],[6,"FenceAction",156],[6,"IcarousFmsState",156],[6,"CellularNetworkFailedReason",156],[6,"AutotuneAxis",156],[6,"EscConnectionType",156],[6,"MavBatteryFault",156],[6,"SetFocusType",156],[6,"MavlinkDataStreamType",156],[6,"UavcanNodeMode",156],[6,"MavOdidAuthType",156],[6,"UavionixAdsbOutDynamicGpsFix",156],[6,"CellularStatusFlag",156],[6,"MavOdidVerAcc",156],[6,"MotorTestThrottleType",156],[6,"WifiConfigApResponse",156],[6,"FirmwareVersionType",156],[6,"OsdParamConfigError",156],[6,"SubMode",156],[6,"MavArmAuthDeniedReason",156],[6,"GoproFieldOfView",156],[6,"MavCmd",156],[6,"CameraMode",156],[6,"GoproProtuneColour",156],[6,"GoproVideoSettingsFlags",156],[6,"SpeedType",156],[6,"MavOdidTimeAcc",156],[6,"UavionixAdsbOutCfgAircraftSize",156],[6,"StorageUsageFlag",156],[6,"GpsFixType",156],[6,"MavCollisionAction",156],[6,"MavLandedState",156],[6,"NavVtolLandOptions",156],[6,"FenceMitigate",156],[6,"MavModeFlagDecodePosition",156],[6,"CompMetadataType",156],[6,"PrecisionLandMode",156],[6,"GoproModel",156],[6,"MavMissionResult",156],[6,"CellularConfigResponse",156],[6,"MavFtpOpcode",156],[6,"MavOdidDescType",156],[6,"LedControlPattern",156],[6,"GoproBurstRate",156],[6,"WifiConfigApMode",156],[6,"MavFtpErr",156],[6,"MissionState",156],[6,"PreflightStorageParameterAction",156],[6,"GoproFrameRate",156],[6,"MavModeGimbal",156],[6,"MavRemoteLogDataBlockCommands",156],[6,"MavEstimatorType",156],[6,"MavState",156],[6,"MavOdidClassificationType",156],[6,"MavOdidCategoryEu",156],[6,"GoproProtuneGain",156],[6,"GoproCharging",156],[6,"StorageType",156],[6,"WinchActions",156],[6,"GoproCommand",156],[6,"VtolTransitionHeading",156],[6,"SerialControlDev",156],[6,"AisNavStatus",156],[6,"GimbalAxisCalibrationRequired",156],[6,"AccelcalVehiclePos",156],[6,"UavionixAdsbOutCfgGpsOffsetLon",156],[6,"UavionixAdsbOutCfgGpsOffsetLat",156],[6,"MavOdidOperatorIdType",156],[6,"MavAutopilot",156],[6,"MagCalStatus",156],[6,"MavEventErrorReason",156],[6,"Ordering",39188],[17,"Item"],[10,"IntoIterator",39189],[8,"Result",39183],[6,"Option",39190],[1,"i64"],[10,"Hasher",39191],[5,"Bytes",15498,39192],[1,"array"],[1,"f32"],[1,"f64"],[1,"i16"],[1,"i32"],[1,"i8"],[5,"BytesMut",15522,39193],[5,"GimbalDeviceFlags",15547],[5,"MavGeneratorStatusFlag",15547],[5,"MavWinchStatusFlag",15547],[5,"SerialControlFlag",15547],[5,"UtmDataAvailFlags",15547],[5,"GimbalDeviceCapFlags",15547],[5,"MavEventCurrentSequenceFlags",15547],[5,"MavModeFlag",15547],[5,"CameraCapFlags",15547],[5,"HighresImuUpdatedFlags",15547],[5,"MavSysStatusSensor",15547],[5,"GimbalManagerCapFlags",15547],[5,"GimbalDeviceErrorFlags",15547],[5,"MavPowerStatus",15547],[5,"GpsInputIgnoreFlags",15547],[5,"PositionTargetTypemask",15547],[5,"MavProtocolCapability",15547],[5,"HlFailureFlag",15547],[5,"EscFailureFlags",15547],[5,"HilSensorUpdatedFlags",15547],[5,"EstimatorStatusFlags",15547],[5,"AdsbFlags",15547],[5,"AisFlags",15547],[5,"AttitudeTargetTypemask",15547],[5,"TuneFormat",15547],[6,"MavMessage",15547],[5,"DEBUG_VECT_DATA",15547],[5,"MISSION_ACK_DATA",15547],[5,"CURRENT_EVENT_SEQUENCE_DATA",15547],[5,"MOUNT_ORIENTATION_DATA",15547],[5,"CELLULAR_STATUS_DATA",15547],[5,"SET_GPS_GLOBAL_ORIGIN_DATA",15547],[5,"LOG_ERASE_DATA",15547],[5,"UTM_GLOBAL_POSITION_DATA",15547],[5,"GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA",15547],[5,"SYSTEM_TIME_DATA",15547],[5,"REQUEST_DATA_STREAM_DATA",15547],[5,"GIMBAL_DEVICE_SET_ATTITUDE_DATA",15547],[5,"GIMBAL_MANAGER_SET_ATTITUDE_DATA",15547],[5,"COMPONENT_METADATA_DATA",15547],[5,"CELLULAR_CONFIG_DATA",15547],[5,"OPEN_DRONE_ID_OPERATOR_ID_DATA",15547],[5,"CAN_FRAME_DATA",15547],[5,"GIMBAL_DEVICE_INFORMATION_DATA",15547],[5,"HIL_GPS_DATA",15547],[5,"PARAM_VALUE_DATA",15547],[5,"PING_DATA",15547],[5,"EFI_STATUS_DATA",15547],[5,"SET_MODE_DATA",15547],[5,"CAMERA_TRIGGER_DATA",15547],[5,"OPEN_DRONE_ID_SYSTEM_DATA",15547],[5,"OPEN_DRONE_ID_SELF_ID_DATA",15547],[5,"HOME_POSITION_DATA",15547],[5,"WHEEL_DISTANCE_DATA",15547],[5,"ODOMETRY_DATA",15547],[5,"ALTITUDE_DATA",15547],[5,"RC_CHANNELS_DATA",15547],[5,"MANUAL_SETPOINT_DATA",15547],[5,"GPS_STATUS_DATA",15547],[5,"LINK_NODE_STATUS_DATA",15547],[5,"LOG_REQUEST_LIST_DATA",15547],[5,"NAMED_VALUE_FLOAT_DATA",15547],[5,"OBSTACLE_DISTANCE_DATA",15547],[5,"GPS_RTCM_DATA_DATA",15547],[5,"RESOURCE_REQUEST_DATA",15547],[5,"VFR_HUD_DATA",15547],[5,"SCALED_IMU3_DATA",15547],[5,"ACTUATOR_CONTROL_TARGET_DATA",15547],[5,"MISSION_ITEM_DATA",15547],[5,"LOG_ENTRY_DATA",15547],[5,"COMMAND_CANCEL_DATA",15547],[5,"GPS_RTK_DATA",15547],[5,"PARAM_SET_DATA",15547],[5,"PARAM_EXT_REQUEST_LIST_DATA",15547],[5,"GPS_INJECT_DATA_DATA",15547],[5,"UAVCAN_NODE_STATUS_DATA",15547],[5,"GIMBAL_MANAGER_INFORMATION_DATA",15547],[5,"CAMERA_TRACKING_IMAGE_STATUS_DATA",15547],[5,"CAMERA_IMAGE_CAPTURED_DATA",15547],[5,"GPS_INPUT_DATA",15547],[5,"TIMESYNC_DATA",15547],[5,"VISION_POSITION_ESTIMATE_DATA",15547],[5,"MISSION_COUNT_DATA",15547],[5,"COMMAND_ACK_DATA",15547],[5,"MISSION_REQUEST_INT_DATA",15547],[5,"ATT_POS_MOCAP_DATA",15547],[5,"ATTITUDE_QUATERNION_DATA",15547],[5,"FENCE_STATUS_DATA",15547],[5,"SIM_STATE_DATA",15547],[5,"SERVO_OUTPUT_RAW_DATA",15547],[5,"ADSB_VEHICLE_DATA",15547],[5,"PARAM_EXT_SET_DATA",15547],[5,"RC_CHANNELS_OVERRIDE_DATA",15547],[5,"AUTH_KEY_DATA",15547],[5,"DISTANCE_SENSOR_DATA",15547],[5,"VIDEO_STREAM_INFORMATION_DATA",15547],[5,"LOGGING_DATA_ACKED_DATA",15547],[5,"HIL_STATE_QUATERNION_DATA",15547],[5,"ATTITUDE_DATA",15547],[5,"DATA_STREAM_DATA",15547],[5,"SAFETY_ALLOWED_AREA_DATA",15547],[5,"CAMERA_CAPTURE_STATUS_DATA",15547],[5,"SCALED_PRESSURE2_DATA",15547],[5,"FLIGHT_INFORMATION_DATA",15547],[5,"TERRAIN_DATA_DATA",15547],[5,"OPTICAL_FLOW_DATA",15547],[5,"GPS_GLOBAL_ORIGIN_DATA",15547],[5,"GPS2_RTK_DATA",15547],[5,"GLOBAL_POSITION_INT_COV_DATA",15547],[5,"RAW_RPM_DATA",15547],[5,"MEMORY_VECT_DATA",15547],[5,"SET_HOME_POSITION_DATA",15547],[5,"EXTENDED_SYS_STATE_DATA",15547],[5,"LOGGING_DATA_DATA",15547],[5,"SERIAL_CONTROL_DATA",15547],[5,"ESTIMATOR_STATUS_DATA",15547],[5,"DATA_TRANSMISSION_HANDSHAKE_DATA",15547],[5,"HIL_CONTROLS_DATA",15547],[5,"MISSION_REQUEST_DATA",15547],[5,"ATTITUDE_QUATERNION_COV_DATA",15547],[5,"GIMBAL_DEVICE_ATTITUDE_STATUS_DATA",15547],[5,"COMMAND_LONG_DATA",15547],[5,"POSITION_TARGET_LOCAL_NED_DATA",15547],[5,"SYS_STATUS_DATA",15547],[5,"REQUEST_EVENT_DATA",15547],[5,"HIL_ACTUATOR_CONTROLS_DATA",15547],[5,"CHANGE_OPERATOR_CONTROL_ACK_DATA",15547],[5,"OPEN_DRONE_ID_BASIC_ID_DATA",15547],[5,"BATTERY_STATUS_DATA",15547],[5,"GLOBAL_VISION_POSITION_ESTIMATE_DATA",15547],[5,"TERRAIN_REPORT_DATA",15547],[5,"WIFI_CONFIG_AP_DATA",15547],[5,"CAMERA_INFORMATION_DATA",15547],[5,"OPTICAL_FLOW_RAD_DATA",15547],[5,"COMMAND_INT_DATA",15547],[5,"ENCAPSULATED_DATA_DATA",15547],[5,"NAMED_VALUE_INT_DATA",15547],[5,"SCALED_IMU_DATA",15547],[5,"RC_CHANNELS_SCALED_DATA",15547],[5,"BUTTON_CHANGE_DATA",15547],[5,"LOG_REQUEST_DATA_DATA",15547],[5,"SAFETY_SET_ALLOWED_AREA_DATA",15547],[5,"GPS_RAW_INT_DATA",15547],[5,"SET_ACTUATOR_CONTROL_TARGET_DATA",15547],[5,"LOCAL_POSITION_NED_COV_DATA",15547],[5,"RAW_PRESSURE_DATA",15547],[5,"ONBOARD_COMPUTER_STATUS_DATA",15547],[5,"MISSION_CLEAR_ALL_DATA",15547],[5,"SET_POSITION_TARGET_LOCAL_NED_DATA",15547],[5,"PLAY_TUNE_DATA",15547],[5,"TUNNEL_DATA",15547],[5,"MISSION_REQUEST_LIST_DATA",15547],[5,"ATTITUDE_TARGET_DATA",15547],[5,"OPEN_DRONE_ID_SYSTEM_UPDATE_DATA",15547],[5,"CAMERA_FOV_STATUS_DATA",15547],[5,"MISSION_ITEM_INT_DATA",15547],[5,"DEBUG_FLOAT_ARRAY_DATA",15547],[5,"WINCH_STATUS_DATA",15547],[5,"CANFD_FRAME_DATA",15547],[5,"EVENT_DATA",15547],[5,"VIDEO_STREAM_STATUS_DATA",15547],[5,"MISSION_WRITE_PARTIAL_LIST_DATA",15547],[5,"CAMERA_SETTINGS_DATA",15547],[5,"MISSION_SET_CURRENT_DATA",15547],[5,"AUTOPILOT_VERSION_DATA",15547],[5,"VIBRATION_DATA",15547],[5,"LOG_REQUEST_END_DATA",15547],[5,"RADIO_STATUS_DATA",15547],[5,"PARAM_REQUEST_LIST_DATA",15547],[5,"MISSION_CURRENT_DATA",15547],[5,"NAV_CONTROLLER_OUTPUT_DATA",15547],[5,"TERRAIN_CHECK_DATA",15547],[5,"CONTROL_SYSTEM_STATE_DATA",15547],[5,"PARAM_EXT_REQUEST_READ_DATA",15547],[5,"GIMBAL_MANAGER_SET_PITCHYAW_DATA",15547],[5,"PARAM_EXT_ACK_DATA",15547],[5,"SET_ATTITUDE_TARGET_DATA",15547],[5,"PARAM_REQUEST_READ_DATA",15547],[5,"VISION_SPEED_ESTIMATE_DATA",15547],[5,"GENERATOR_STATUS_DATA",15547],[5,"GPS2_RAW_DATA",15547],[5,"HIL_RC_INPUTS_RAW_DATA",15547],[5,"GLOBAL_POSITION_INT_DATA",15547],[5,"AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA",15547],[5,"WIND_COV_DATA",15547],[5,"HEARTBEAT_DATA",15547],[5,"POWER_STATUS_DATA",15547],[5,"HIL_STATE_DATA",15547],[5,"STATUSTEXT_DATA",15547],[5,"HYGROMETER_SENSOR_DATA",15547],[5,"PARAM_MAP_RC_DATA",15547],[5,"OPEN_DRONE_ID_MESSAGE_PACK_DATA",15547],[5,"FOLLOW_TARGET_DATA",15547],[5,"HIL_SENSOR_DATA",15547],[5,"LOCAL_POSITION_NED_DATA",15547],[5,"CHANGE_OPERATOR_CONTROL_DATA",15547],[5,"PROTOCOL_VERSION_DATA",15547],[5,"MANUAL_CONTROL_DATA",15547],[5,"GIMBAL_MANAGER_STATUS_DATA",15547],[5,"OPEN_DRONE_ID_ARM_STATUS_DATA",15547],[5,"PLAY_TUNE_V2_DATA",15547],[5,"PARAM_EXT_VALUE_DATA",15547],[5,"ESC_INFO_DATA",15547],[5,"VICON_POSITION_ESTIMATE_DATA",15547],[5,"LOGGING_ACK_DATA",15547],[5,"SCALED_IMU2_DATA",15547],[5,"SCALED_PRESSURE3_DATA",15547],[5,"SETUP_SIGNING_DATA",15547],[5,"DEBUG_DATA",15547],[5,"COLLISION_DATA",15547],[5,"MISSION_REQUEST_PARTIAL_LIST_DATA",15547],[5,"HIGHRES_IMU_DATA",15547],[5,"FILE_TRANSFER_PROTOCOL_DATA",15547],[5,"AIS_VESSEL_DATA",15547],[5,"SUPPORTED_TUNES_DATA",15547],[5,"HIGH_LATENCY_DATA",15547],[5,"ORBIT_EXECUTION_STATUS_DATA",15547],[5,"V2_EXTENSION_DATA",15547],[5,"ESC_STATUS_DATA",15547],[5,"OPEN_DRONE_ID_AUTHENTICATION_DATA",15547],[5,"OPEN_DRONE_ID_LOCATION_DATA",15547],[5,"HIGH_LATENCY2_DATA",15547],[5,"LOG_DATA_DATA",15547],[5,"SCALED_PRESSURE_DATA",15547],[5,"CAN_FILTER_MODIFY_DATA",15547],[5,"STORAGE_INFORMATION_DATA",15547],[5,"TERRAIN_REQUEST_DATA",15547],[5,"COMPONENT_INFORMATION_DATA",15547],[5,"ACTUATOR_OUTPUT_STATUS_DATA",15547],[5,"SMART_BATTERY_INFO_DATA",15547],[5,"ISBD_LINK_STATUS_DATA",15547],[5,"LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA",15547],[5,"CAMERA_TRACKING_GEO_STATUS_DATA",15547],[5,"UAVCAN_NODE_INFO_DATA",15547],[5,"MAG_CAL_REPORT_DATA",15547],[5,"LANDING_TARGET_DATA",15547],[5,"HIL_OPTICAL_FLOW_DATA",15547],[5,"POSITION_TARGET_GLOBAL_INT_DATA",15547],[5,"SET_POSITION_TARGET_GLOBAL_INT_DATA",15547],[5,"RAW_IMU_DATA",15547],[5,"TRAJECTORY_REPRESENTATION_BEZIER_DATA",15547],[5,"MISSION_ITEM_REACHED_DATA",15547],[5,"TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA",15547],[5,"RESPONSE_EVENT_ERROR_DATA",15547],[5,"MESSAGE_INTERVAL_DATA",15547],[5,"TIME_ESTIMATE_TO_TARGET_DATA",15547],[5,"RC_CHANNELS_RAW_DATA",15547],[6,"MavCmdAck",15547],[6,"MavBatteryFunction",15547],[6,"CameraZoomType",15547],[6,"MavOdidDescType",15547],[6,"MavOdidUaType",15547],[6,"MavParamType",15547],[6,"PreflightStorageMissionAction",15547],[6,"CameraTrackingStatusFlags",15547],[6,"MavComponent",15547],[6,"MavOdidSpeedAcc",15547],[6,"AdsbEmitterType",15547],[6,"MavOdidHeightRef",15547],[6,"SerialControlDev",15547],[6,"GimbalManagerFlags",15547],[6,"NavVtolLandOptions",15547],[6,"CellularConfigResponse",15547],[6,"CameraTrackingMode",15547],[6,"MavLandedState",15547],[6,"MavBatteryMode",15547],[6,"MavCollisionThreatLevel",15547],[6,"MavDoRepositionFlags",15547],[6,"MavVtolState",15547],[6,"MavMissionResult",15547],[6,"MavAutopilot",15547],[6,"UavcanNodeHealth",15547],[6,"GripperActions",15547],[6,"GpsFixType",15547],[6,"UavcanNodeMode",15547],[6,"MavCollisionSrc",15547],[6,"AisNavStatus",15547],[6,"MavOdidOperatorLocationType",15547],[6,"MavParamExtType",15547],[6,"MavOdidAuthType",15547],[6,"OrbitYawBehaviour",15547],[6,"FailureUnit",15547],[6,"MavOdidVerAcc",15547],[6,"PreflightStorageParameterAction",15547],[6,"MavState",15547],[6,"ActuatorConfiguration",15547],[6,"MavBatteryFault",15547],[6,"CompMetadataType",15547],[6,"MavType",15547],[6,"FenceBreach",15547],[6,"MotorTestOrder",15547],[6,"FirmwareVersionType",15547],[6,"CellularStatusFlag",15547],[6,"VtolTransitionHeading",15547],[6,"WinchActions",15547],[6,"MavOdidIdType",15547],[6,"FenceMitigate",15547],[6,"UtmFlightState",15547],[6,"MavMountMode",15547],[6,"MavEstimatorType",15547],[6,"MavOdidHorAcc",15547],[6,"MavCmd",15547],[6,"EscConnectionType",15547],[6,"MavFtpOpcode",15547],[6,"AutotuneAxis",15547],[6,"StorageStatus",15547],[6,"MavDistanceSensor",15547],[6,"PrecisionLandMode",15547],[6,"MagCalStatus",15547],[6,"VideoStreamType",15547],[6,"MavTunnelPayloadType",15547],[6,"AdsbAltitudeType",15547],[6,"CellularNetworkRadioType",15547],[6,"ParachuteAction",15547],[6,"AisType",15547],[6,"MavOdidCategoryEu",15547],[6,"MavBatteryType",15547],[6,"MavSensorOrientation",15547],[6,"CanFilterOp",15547],[6,"WifiConfigApMode",15547],[6,"MavOdidOperatorIdType",15547],[6,"ParamAck",15547],[6,"MavMissionType",15547],[6,"MavFrame",15547],[6,"MavMode",15547],[6,"MavOdidStatus",15547],[6,"CameraTrackingTargetData",15547],[6,"RcType",15547],[6,"MavDataStream",15547],[6,"MavOdidTimeAcc",15547],[6,"MavBatteryChargeState",15547],[6,"MavOdidArmStatus",15547],[6,"MavArmAuthDeniedReason",15547],[6,"SetFocusType",15547],[6,"WifiConfigApResponse",15547],[6,"MotorTestThrottleType",15547],[6,"CameraMode",15547],[6,"MavOdidClassEu",15547],[6,"MavOdidClassificationType",15547],[6,"MavGoto",15547],[6,"LandingTargetType",15547],[6,"ActuatorOutputFunction",15547],[6,"MavResult",15547],[6,"MissionState",15547],[6,"StorageUsageFlag",15547],[6,"FailureType",15547],[6,"FenceAction",15547],[6,"MavSeverity",15547],[6,"StorageType",15547],[6,"MavSysStatusSensorExtended",15547],[6,"MavModeFlagDecodePosition",15547],[6,"MavFtpErr",15547],[6,"MavCollisionAction",15547],[6,"VideoStreamStatusFlags",15547],[6,"MavEventErrorReason",15547],[6,"CellularNetworkFailedReason",15547],[6,"RtkBaselineCoordinateSystem",15547],[6,"MavlinkDataStreamType",15547],[6,"MavRoi",15547],[5,"String",39194],[6,"MavMessage",27107],[5,"ICAROUS_HEARTBEAT_DATA",27107],[5,"ICAROUS_KINEMATIC_BANDS_DATA",27107],[6,"IcarousFmsState",27107],[6,"IcarousTrackBandTypes",27107],[5,"UavionixAdsbOutRfSelect",27254],[5,"HilSensorUpdatedFlags",27254],[5,"EstimatorStatusFlags",27254],[5,"PositionTargetTypemask",27254],[5,"MavModeFlag",27254],[5,"MavGeneratorStatusFlag",27254],[5,"AdsbFlags",27254],[5,"MavSysStatusSensor",27254],[5,"MavWinchStatusFlag",27254],[5,"AisFlags",27254],[5,"GimbalDeviceErrorFlags",27254],[5,"GimbalDeviceFlags",27254],[5,"HlFailureFlag",27254],[5,"TuneFormat",27254],[5,"GimbalManagerCapFlags",27254],[5,"EscFailureFlags",27254],[5,"UtmDataAvailFlags",27254],[5,"HighresImuUpdatedFlags",27254],[5,"CameraCapFlags",27254],[5,"AttitudeTargetTypemask",27254],[5,"GpsInputIgnoreFlags",27254],[5,"MavPowerStatus",27254],[5,"GimbalDeviceCapFlags",27254],[5,"MavEventCurrentSequenceFlags",27254],[5,"UavionixAdsbOutDynamicState",27254],[5,"SerialControlFlag",27254],[5,"UavionixAdsbRfHealth",27254],[5,"MavProtocolCapability",27254],[6,"MavMessage",27254],[5,"MISSION_REQUEST_DATA",27254],[5,"REQUEST_EVENT_DATA",27254],[5,"PARAM_MAP_RC_DATA",27254],[5,"LOCAL_POSITION_NED_COV_DATA",27254],[5,"CHANGE_OPERATOR_CONTROL_ACK_DATA",27254],[5,"HIL_STATE_QUATERNION_DATA",27254],[5,"OPEN_DRONE_ID_MESSAGE_PACK_DATA",27254],[5,"RESPONSE_EVENT_ERROR_DATA",27254],[5,"HIL_CONTROLS_DATA",27254],[5,"ONBOARD_COMPUTER_STATUS_DATA",27254],[5,"LOGGING_ACK_DATA",27254],[5,"ORBIT_EXECUTION_STATUS_DATA",27254],[5,"DEBUG_VECT_DATA",27254],[5,"MISSION_REQUEST_PARTIAL_LIST_DATA",27254],[5,"TIME_ESTIMATE_TO_TARGET_DATA",27254],[5,"ACTUATOR_OUTPUT_STATUS_DATA",27254],[5,"CAMERA_TRIGGER_DATA",27254],[5,"MISSION_REQUEST_LIST_DATA",27254],[5,"SERIAL_CONTROL_DATA",27254],[5,"ATTITUDE_DATA",27254],[5,"GPS_RTK_DATA",27254],[5,"GPS_RTCM_DATA_DATA",27254],[5,"PARAM_EXT_REQUEST_LIST_DATA",27254],[5,"CAN_FRAME_DATA",27254],[5,"ODOMETRY_DATA",27254],[5,"HIL_SENSOR_DATA",27254],[5,"COMMAND_INT_DATA",27254],[5,"HYGROMETER_SENSOR_DATA",27254],[5,"ALTITUDE_DATA",27254],[5,"SERVO_OUTPUT_RAW_DATA",27254],[5,"LANDING_TARGET_DATA",27254],[5,"GPS2_RTK_DATA",27254],[5,"GPS_STATUS_DATA",27254],[5,"SET_GPS_GLOBAL_ORIGIN_DATA",27254],[5,"ADSB_VEHICLE_DATA",27254],[5,"GLOBAL_POSITION_INT_DATA",27254],[5,"MISSION_REQUEST_INT_DATA",27254],[5,"COMMAND_LONG_DATA",27254],[5,"MISSION_ITEM_DATA",27254],[5,"TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA",27254],[5,"RC_CHANNELS_SCALED_DATA",27254],[5,"COMMAND_ACK_DATA",27254],[5,"CAMERA_IMAGE_CAPTURED_DATA",27254],[5,"PARAM_EXT_SET_DATA",27254],[5,"RESOURCE_REQUEST_DATA",27254],[5,"NAV_CONTROLLER_OUTPUT_DATA",27254],[5,"AIS_VESSEL_DATA",27254],[5,"CELLULAR_CONFIG_DATA",27254],[5,"SCALED_PRESSURE2_DATA",27254],[5,"LOG_REQUEST_END_DATA",27254],[5,"POWER_STATUS_DATA",27254],[5,"FLIGHT_INFORMATION_DATA",27254],[5,"VISION_SPEED_ESTIMATE_DATA",27254],[5,"HOME_POSITION_DATA",27254],[5,"GIMBAL_DEVICE_INFORMATION_DATA",27254],[5,"GIMBAL_MANAGER_STATUS_DATA",27254],[5,"FILE_TRANSFER_PROTOCOL_DATA",27254],[5,"MANUAL_CONTROL_DATA",27254],[5,"WIFI_CONFIG_AP_DATA",27254],[5,"MISSION_COUNT_DATA",27254],[5,"COMMAND_CANCEL_DATA",27254],[5,"OPEN_DRONE_ID_OPERATOR_ID_DATA",27254],[5,"MISSION_CLEAR_ALL_DATA",27254],[5,"SET_HOME_POSITION_DATA",27254],[5,"GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA",27254],[5,"UAVIONIX_ADSB_OUT_CFG_DATA",27254],[5,"SCALED_IMU_DATA",27254],[5,"WINCH_STATUS_DATA",27254],[5,"OPTICAL_FLOW_RAD_DATA",27254],[5,"OPEN_DRONE_ID_SYSTEM_DATA",27254],[5,"TERRAIN_DATA_DATA",27254],[5,"SIM_STATE_DATA",27254],[5,"CAMERA_SETTINGS_DATA",27254],[5,"LOG_REQUEST_LIST_DATA",27254],[5,"MESSAGE_INTERVAL_DATA",27254],[5,"CAMERA_FOV_STATUS_DATA",27254],[5,"DATA_TRANSMISSION_HANDSHAKE_DATA",27254],[5,"MISSION_ACK_DATA",27254],[5,"NAMED_VALUE_INT_DATA",27254],[5,"VIDEO_STREAM_STATUS_DATA",27254],[5,"OPEN_DRONE_ID_SYSTEM_UPDATE_DATA",27254],[5,"HIL_GPS_DATA",27254],[5,"HIGHRES_IMU_DATA",27254],[5,"TUNNEL_DATA",27254],[5,"ESC_INFO_DATA",27254],[5,"OBSTACLE_DISTANCE_DATA",27254],[5,"LOG_ERASE_DATA",27254],[5,"HIGH_LATENCY2_DATA",27254],[5,"HIGH_LATENCY_DATA",27254],[5,"FENCE_STATUS_DATA",27254],[5,"CAMERA_INFORMATION_DATA",27254],[5,"VFR_HUD_DATA",27254],[5,"OPEN_DRONE_ID_LOCATION_DATA",27254],[5,"PLAY_TUNE_V2_DATA",27254],[5,"SAFETY_SET_ALLOWED_AREA_DATA",27254],[5,"SET_POSITION_TARGET_GLOBAL_INT_DATA",27254],[5,"COLLISION_DATA",27254],[5,"GIMBAL_MANAGER_SET_PITCHYAW_DATA",27254],[5,"OPEN_DRONE_ID_ARM_STATUS_DATA",27254],[5,"SET_ATTITUDE_TARGET_DATA",27254],[5,"MANUAL_SETPOINT_DATA",27254],[5,"LOG_REQUEST_DATA_DATA",27254],[5,"HIL_STATE_DATA",27254],[5,"PARAM_SET_DATA",27254],[5,"UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA",27254],[5,"OPEN_DRONE_ID_AUTHENTICATION_DATA",27254],[5,"RC_CHANNELS_OVERRIDE_DATA",27254],[5,"RAW_RPM_DATA",27254],[5,"TERRAIN_CHECK_DATA",27254],[5,"ACTUATOR_CONTROL_TARGET_DATA",27254],[5,"DATA_STREAM_DATA",27254],[5,"CAMERA_CAPTURE_STATUS_DATA",27254],[5,"GLOBAL_POSITION_INT_COV_DATA",27254],[5,"GPS_GLOBAL_ORIGIN_DATA",27254],[5,"LOGGING_DATA_ACKED_DATA",27254],[5,"SET_MODE_DATA",27254],[5,"POSITION_TARGET_LOCAL_NED_DATA",27254],[5,"EXTENDED_SYS_STATE_DATA",27254],[5,"REQUEST_DATA_STREAM_DATA",27254],[5,"VIBRATION_DATA",27254],[5,"LOGGING_DATA_DATA",27254],[5,"PING_DATA",27254],[5,"VISION_POSITION_ESTIMATE_DATA",27254],[5,"TRAJECTORY_REPRESENTATION_BEZIER_DATA",27254],[5,"HIL_OPTICAL_FLOW_DATA",27254],[5,"SET_POSITION_TARGET_LOCAL_NED_DATA",27254],[5,"LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA",27254],[5,"SYS_STATUS_DATA",27254],[5,"SCALED_IMU2_DATA",27254],[5,"AUTH_KEY_DATA",27254],[5,"POSITION_TARGET_GLOBAL_INT_DATA",27254],[5,"MEMORY_VECT_DATA",27254],[5,"RAW_IMU_DATA",27254],[5,"WHEEL_DISTANCE_DATA",27254],[5,"DEBUG_DATA",27254],[5,"GENERATOR_STATUS_DATA",27254],[5,"MISSION_ITEM_INT_DATA",27254],[5,"DISTANCE_SENSOR_DATA",27254],[5,"TERRAIN_REQUEST_DATA",27254],[5,"SMART_BATTERY_INFO_DATA",27254],[5,"MISSION_SET_CURRENT_DATA",27254],[5,"GPS2_RAW_DATA",27254],[5,"STATUSTEXT_DATA",27254],[5,"SCALED_IMU3_DATA",27254],[5,"SET_ACTUATOR_CONTROL_TARGET_DATA",27254],[5,"CURRENT_EVENT_SEQUENCE_DATA",27254],[5,"ATTITUDE_QUATERNION_COV_DATA",27254],[5,"ATT_POS_MOCAP_DATA",27254],[5,"BUTTON_CHANGE_DATA",27254],[5,"GLOBAL_VISION_POSITION_ESTIMATE_DATA",27254],[5,"CONTROL_SYSTEM_STATE_DATA",27254],[5,"EFI_STATUS_DATA",27254],[5,"TIMESYNC_DATA",27254],[5,"SCALED_PRESSURE_DATA",27254],[5,"SYSTEM_TIME_DATA",27254],[5,"COMPONENT_METADATA_DATA",27254],[5,"DEBUG_FLOAT_ARRAY_DATA",27254],[5,"LOG_ENTRY_DATA",27254],[5,"FOLLOW_TARGET_DATA",27254],[5,"SETUP_SIGNING_DATA",27254],[5,"GIMBAL_MANAGER_INFORMATION_DATA",27254],[5,"SUPPORTED_TUNES_DATA",27254],[5,"CAMERA_TRACKING_IMAGE_STATUS_DATA",27254],[5,"PARAM_EXT_REQUEST_READ_DATA",27254],[5,"EVENT_DATA",27254],[5,"CELLULAR_STATUS_DATA",27254],[5,"RAW_PRESSURE_DATA",27254],[5,"ISBD_LINK_STATUS_DATA",27254],[5,"UAVIONIX_ADSB_OUT_DYNAMIC_DATA",27254],[5,"MISSION_ITEM_REACHED_DATA",27254],[5,"OPTICAL_FLOW_DATA",27254],[5,"ATTITUDE_TARGET_DATA",27254],[5,"ENCAPSULATED_DATA_DATA",27254],[5,"HEARTBEAT_DATA",27254],[5,"PARAM_EXT_VALUE_DATA",27254],[5,"V2_EXTENSION_DATA",27254],[5,"ATTITUDE_QUATERNION_DATA",27254],[5,"OPEN_DRONE_ID_BASIC_ID_DATA",27254],[5,"HIL_ACTUATOR_CONTROLS_DATA",27254],[5,"MAG_CAL_REPORT_DATA",27254],[5,"UAVCAN_NODE_INFO_DATA",27254],[5,"ESC_STATUS_DATA",27254],[5,"MISSION_CURRENT_DATA",27254],[5,"HIL_RC_INPUTS_RAW_DATA",27254],[5,"GIMBAL_DEVICE_ATTITUDE_STATUS_DATA",27254],[5,"CAN_FILTER_MODIFY_DATA",27254],[5,"CAMERA_TRACKING_GEO_STATUS_DATA",27254],[5,"COMPONENT_INFORMATION_DATA",27254],[5,"MOUNT_ORIENTATION_DATA",27254],[5,"GPS_RAW_INT_DATA",27254],[5,"SAFETY_ALLOWED_AREA_DATA",27254],[5,"PARAM_VALUE_DATA",27254],[5,"PARAM_REQUEST_READ_DATA",27254],[5,"VICON_POSITION_ESTIMATE_DATA",27254],[5,"PLAY_TUNE_DATA",27254],[5,"NAMED_VALUE_FLOAT_DATA",27254],[5,"PROTOCOL_VERSION_DATA",27254],[5,"GIMBAL_MANAGER_SET_ATTITUDE_DATA",27254],[5,"AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA",27254],[5,"PARAM_REQUEST_LIST_DATA",27254],[5,"STORAGE_INFORMATION_DATA",27254],[5,"GPS_INPUT_DATA",27254],[5,"RC_CHANNELS_DATA",27254],[5,"RADIO_STATUS_DATA",27254],[5,"PARAM_EXT_ACK_DATA",27254],[5,"MISSION_WRITE_PARTIAL_LIST_DATA",27254],[5,"AUTOPILOT_VERSION_DATA",27254],[5,"CANFD_FRAME_DATA",27254],[5,"GIMBAL_DEVICE_SET_ATTITUDE_DATA",27254],[5,"VIDEO_STREAM_INFORMATION_DATA",27254],[5,"ESTIMATOR_STATUS_DATA",27254],[5,"GPS_INJECT_DATA_DATA",27254],[5,"LINK_NODE_STATUS_DATA",27254],[5,"WIND_COV_DATA",27254],[5,"CHANGE_OPERATOR_CONTROL_DATA",27254],[5,"LOG_DATA_DATA",27254],[5,"SCALED_PRESSURE3_DATA",27254],[5,"UTM_GLOBAL_POSITION_DATA",27254],[5,"OPEN_DRONE_ID_SELF_ID_DATA",27254],[5,"TERRAIN_REPORT_DATA",27254],[5,"BATTERY_STATUS_DATA",27254],[5,"LOCAL_POSITION_NED_DATA",27254],[5,"UAVCAN_NODE_STATUS_DATA",27254],[5,"RC_CHANNELS_RAW_DATA",27254],[6,"MavCollisionAction",27254],[6,"MavDistanceSensor",27254],[6,"MavState",27254],[6,"CellularStatusFlag",27254],[6,"MavOdidOperatorLocationType",27254],[6,"FenceBreach",27254],[6,"AdsbEmitterType",27254],[6,"MavBatteryType",27254],[6,"AdsbAltitudeType",27254],[6,"MavOdidHeightRef",27254],[6,"UavionixAdsbOutCfgGpsOffsetLon",27254],[6,"MavMissionType",27254],[6,"MavCmdAck",27254],[6,"MavSeverity",27254],[6,"MavOdidSpeedAcc",27254],[6,"FailureUnit",27254],[6,"MavFtpErr",27254],[6,"OrbitYawBehaviour",27254],[6,"MavModeFlagDecodePosition",27254],[6,"WifiConfigApResponse",27254],[6,"MavCollisionThreatLevel",27254],[6,"MavFrame",27254],[6,"UavcanNodeMode",27254],[6,"MavSensorOrientation",27254],[6,"NavVtolLandOptions",27254],[6,"MavResult",27254],[6,"UtmFlightState",27254],[6,"MavDataStream",27254],[6,"MavComponent",27254],[6,"MavMissionResult",27254],[6,"AisType",27254],[6,"FenceAction",27254],[6,"MavOdidHorAcc",27254],[6,"MavBatteryFault",27254],[6,"MavBatteryFunction",27254],[6,"MavBatteryChargeState",27254],[6,"MavGoto",27254],[6,"MavOdidVerAcc",27254],[6,"FailureType",27254],[6,"VideoStreamType",27254],[6,"StorageType",27254],[6,"CameraTrackingMode",27254],[6,"RtkBaselineCoordinateSystem",27254],[6,"MissionState",27254],[6,"CellularNetworkFailedReason",27254],[6,"MavOdidCategoryEu",27254],[6,"AutotuneAxis",27254],[6,"MavParamType",27254],[6,"UavcanNodeHealth",27254],[6,"UavionixAdsbOutCfgGpsOffsetLat",27254],[6,"UavionixAdsbOutDynamicGpsFix",27254],[6,"MavParamExtType",27254],[6,"MavTunnelPayloadType",27254],[6,"MavOdidTimeAcc",27254],[6,"RcType",27254],[6,"StorageUsageFlag",27254],[6,"CameraTrackingStatusFlags",27254],[6,"CellularNetworkRadioType",27254],[6,"CompMetadataType",27254],[6,"ParachuteAction",27254],[6,"UavionixAdsbEmergencyStatus",27254],[6,"UavionixAdsbOutCfgAircraftSize",27254],[6,"MavlinkDataStreamType",27254],[6,"MavSysStatusSensorExtended",27254],[6,"MavVtolState",27254],[6,"MavLandedState",27254],[6,"MavOdidUaType",27254],[6,"WinchActions",27254],[6,"MavFtpOpcode",27254],[6,"ActuatorOutputFunction",27254],[6,"MavOdidArmStatus",27254],[6,"VideoStreamStatusFlags",27254],[6,"CellularConfigResponse",27254],[6,"MavBatteryMode",27254],[6,"MavEventErrorReason",27254],[6,"PrecisionLandMode",27254],[6,"GimbalManagerFlags",27254],[6,"ActuatorConfiguration",27254],[6,"LandingTargetType",27254],[6,"EscConnectionType",27254],[6,"ParamAck",27254],[6,"CameraZoomType",27254],[6,"SerialControlDev",27254],[6,"MavDoRepositionFlags",27254],[6,"MavCollisionSrc",27254],[6,"MavEstimatorType",27254],[6,"PreflightStorageMissionAction",27254],[6,"MotorTestOrder",27254],[6,"CameraTrackingTargetData",27254],[6,"MavOdidAuthType",27254],[6,"MavOdidDescType",27254],[6,"StorageStatus",27254],[6,"CameraMode",27254],[6,"GripperActions",27254],[6,"MavType",27254],[6,"AisNavStatus",27254],[6,"MagCalStatus",27254],[6,"GpsFixType",27254],[6,"MavOdidStatus",27254],[6,"CanFilterOp",27254],[6,"MavRoi",27254],[6,"MotorTestThrottleType",27254],[6,"MavOdidIdType",27254],[6,"SetFocusType",27254],[6,"PreflightStorageParameterAction",27254],[6,"MavOdidClassEu",27254],[6,"MavMode",27254],[6,"MavMountMode",27254],[6,"FenceMitigate",27254],[6,"VtolTransitionHeading",27254],[6,"MavOdidOperatorIdType",27254],[6,"WifiConfigApMode",27254],[6,"MavCmd",27254],[6,"FirmwareVersionType",27254],[6,"MavAutopilot",27254],[6,"MavArmAuthDeniedReason",27254],[6,"MavOdidClassificationType",27254],[15,"InvalidEnum",27102],[15,"InvalidFlag",27102],[15,"UnknownMessage",27102]],"r":[[3,39175],[4,39175],[5,39175],[6,39175],[7,39175],[8,39177],[9,39175],[10,39175],[11,39175],[12,39175],[14,39175],[29,39175],[30,39175],[31,39175],[49,39177],[61,39175],[100,39175],[104,39175],[105,39175],[106,39175],[107,39175],[108,39175],[152,39175],[153,39175],[154,39175],[155,39175],[15498,39192],[15522,39193],[27064,39181],[27065,39181],[27067,39181],[27239,39184],[39174,39195]],"b":[[8648,"impl-UpperHex-for-MavProtocolCapability"],[8649,"impl-Debug-for-MavProtocolCapability"],[8650,"impl-Octal-for-MavProtocolCapability"],[8651,"impl-Binary-for-MavProtocolCapability"],[8652,"impl-LowerHex-for-MavProtocolCapability"],[8655,"impl-UpperHex-for-EstimatorStatusFlags"],[8656,"impl-Octal-for-EstimatorStatusFlags"],[8657,"impl-Binary-for-EstimatorStatusFlags"],[8658,"impl-Debug-for-EstimatorStatusFlags"],[8659,"impl-LowerHex-for-EstimatorStatusFlags"],[8660,"impl-UpperHex-for-GpsInputIgnoreFlags"],[8661,"impl-Debug-for-GpsInputIgnoreFlags"],[8662,"impl-Octal-for-GpsInputIgnoreFlags"],[8663,"impl-Binary-for-GpsInputIgnoreFlags"],[8664,"impl-LowerHex-for-GpsInputIgnoreFlags"],[8673,"impl-Debug-for-EscFailureFlags"],[8674,"impl-UpperHex-for-EscFailureFlags"],[8675,"impl-Binary-for-EscFailureFlags"],[8676,"impl-Octal-for-EscFailureFlags"],[8677,"impl-LowerHex-for-EscFailureFlags"],[8681,"impl-Octal-for-UavionixAdsbRfHealth"],[8682,"impl-Binary-for-UavionixAdsbRfHealth"],[8683,"impl-UpperHex-for-UavionixAdsbRfHealth"],[8684,"impl-Debug-for-UavionixAdsbRfHealth"],[8685,"impl-LowerHex-for-UavionixAdsbRfHealth"],[8696,"impl-Octal-for-MavWinchStatusFlag"],[8697,"impl-UpperHex-for-MavWinchStatusFlag"],[8698,"impl-Debug-for-MavWinchStatusFlag"],[8699,"impl-LowerHex-for-MavWinchStatusFlag"],[8700,"impl-Binary-for-MavWinchStatusFlag"],[8709,"impl-Binary-for-HilSensorUpdatedFlags"],[8710,"impl-UpperHex-for-HilSensorUpdatedFlags"],[8711,"impl-Debug-for-HilSensorUpdatedFlags"],[8712,"impl-LowerHex-for-HilSensorUpdatedFlags"],[8713,"impl-Octal-for-HilSensorUpdatedFlags"],[8723,"impl-Octal-for-AdsbFlags"],[8724,"impl-LowerHex-for-AdsbFlags"],[8725,"impl-Debug-for-AdsbFlags"],[8726,"impl-UpperHex-for-AdsbFlags"],[8727,"impl-Binary-for-AdsbFlags"],[8730,"impl-Debug-for-GoproHeartbeatFlags"],[8731,"impl-LowerHex-for-GoproHeartbeatFlags"],[8732,"impl-UpperHex-for-GoproHeartbeatFlags"],[8733,"impl-Octal-for-GoproHeartbeatFlags"],[8734,"impl-Binary-for-GoproHeartbeatFlags"],[8739,"impl-Octal-for-MavGeneratorStatusFlag"],[8740,"impl-UpperHex-for-MavGeneratorStatusFlag"],[8741,"impl-Binary-for-MavGeneratorStatusFlag"],[8742,"impl-Debug-for-MavGeneratorStatusFlag"],[8743,"impl-LowerHex-for-MavGeneratorStatusFlag"],[8745,"impl-Binary-for-MavSysStatusSensor"],[8746,"impl-LowerHex-for-MavSysStatusSensor"],[8747,"impl-Debug-for-MavSysStatusSensor"],[8748,"impl-Octal-for-MavSysStatusSensor"],[8749,"impl-UpperHex-for-MavSysStatusSensor"],[8752,"impl-Binary-for-MavEventCurrentSequenceFlags"],[8753,"impl-LowerHex-for-MavEventCurrentSequenceFlags"],[8754,"impl-UpperHex-for-MavEventCurrentSequenceFlags"],[8755,"impl-Octal-for-MavEventCurrentSequenceFlags"],[8756,"impl-Debug-for-MavEventCurrentSequenceFlags"],[8769,"impl-Debug-for-HlFailureFlag"],[8770,"impl-UpperHex-for-HlFailureFlag"],[8771,"impl-Binary-for-HlFailureFlag"],[8772,"impl-Octal-for-HlFailureFlag"],[8773,"impl-LowerHex-for-HlFailureFlag"],[8781,"impl-Binary-for-SerialControlFlag"],[8782,"impl-LowerHex-for-SerialControlFlag"],[8783,"impl-Debug-for-SerialControlFlag"],[8784,"impl-Octal-for-SerialControlFlag"],[8785,"impl-UpperHex-for-SerialControlFlag"],[8788,"impl-Debug-for-MavPowerStatus"],[8789,"impl-Binary-for-MavPowerStatus"],[8790,"impl-LowerHex-for-MavPowerStatus"],[8791,"impl-Octal-for-MavPowerStatus"],[8792,"impl-UpperHex-for-MavPowerStatus"],[8794,"impl-UpperHex-for-UtmDataAvailFlags"],[8795,"impl-Octal-for-UtmDataAvailFlags"],[8796,"impl-Debug-for-UtmDataAvailFlags"],[8797,"impl-Binary-for-UtmDataAvailFlags"],[8798,"impl-LowerHex-for-UtmDataAvailFlags"],[8804,"impl-Octal-for-UavionixAdsbOutDynamicState"],[8805,"impl-LowerHex-for-UavionixAdsbOutDynamicState"],[8806,"impl-Debug-for-UavionixAdsbOutDynamicState"],[8807,"impl-UpperHex-for-UavionixAdsbOutDynamicState"],[8808,"impl-Binary-for-UavionixAdsbOutDynamicState"],[8815,"impl-LowerHex-for-LimitModule"],[8816,"impl-Binary-for-LimitModule"],[8817,"impl-UpperHex-for-LimitModule"],[8818,"impl-Debug-for-LimitModule"],[8819,"impl-Octal-for-LimitModule"],[8836,"impl-UpperHex-for-AttitudeTargetTypemask"],[8837,"impl-Binary-for-AttitudeTargetTypemask"],[8838,"impl-Debug-for-AttitudeTargetTypemask"],[8839,"impl-LowerHex-for-AttitudeTargetTypemask"],[8840,"impl-Octal-for-AttitudeTargetTypemask"],[8841,"impl-LowerHex-for-GimbalDeviceErrorFlags"],[8842,"impl-UpperHex-for-GimbalDeviceErrorFlags"],[8843,"impl-Binary-for-GimbalDeviceErrorFlags"],[8844,"impl-Octal-for-GimbalDeviceErrorFlags"],[8845,"impl-Debug-for-GimbalDeviceErrorFlags"],[8853,"impl-Binary-for-AisFlags"],[8854,"impl-UpperHex-for-AisFlags"],[8855,"impl-Debug-for-AisFlags"],[8856,"impl-LowerHex-for-AisFlags"],[8857,"impl-Octal-for-AisFlags"],[8866,"impl-Binary-for-TuneFormat"],[8867,"impl-Debug-for-TuneFormat"],[8868,"impl-Octal-for-TuneFormat"],[8869,"impl-LowerHex-for-TuneFormat"],[8870,"impl-UpperHex-for-TuneFormat"],[8872,"impl-Octal-for-HighresImuUpdatedFlags"],[8873,"impl-Debug-for-HighresImuUpdatedFlags"],[8874,"impl-UpperHex-for-HighresImuUpdatedFlags"],[8875,"impl-Binary-for-HighresImuUpdatedFlags"],[8876,"impl-LowerHex-for-HighresImuUpdatedFlags"],[8883,"impl-Debug-for-GimbalManagerCapFlags"],[8884,"impl-LowerHex-for-GimbalManagerCapFlags"],[8885,"impl-UpperHex-for-GimbalManagerCapFlags"],[8886,"impl-Binary-for-GimbalManagerCapFlags"],[8887,"impl-Octal-for-GimbalManagerCapFlags"],[8890,"impl-Binary-for-GimbalDeviceCapFlags"],[8891,"impl-LowerHex-for-GimbalDeviceCapFlags"],[8892,"impl-Octal-for-GimbalDeviceCapFlags"],[8893,"impl-Debug-for-GimbalDeviceCapFlags"],[8894,"impl-UpperHex-for-GimbalDeviceCapFlags"],[8899,"impl-Binary-for-EkfStatusFlags"],[8900,"impl-LowerHex-for-EkfStatusFlags"],[8901,"impl-Debug-for-EkfStatusFlags"],[8902,"impl-Octal-for-EkfStatusFlags"],[8903,"impl-UpperHex-for-EkfStatusFlags"],[8906,"impl-Binary-for-PositionTargetTypemask"],[8907,"impl-Debug-for-PositionTargetTypemask"],[8908,"impl-Octal-for-PositionTargetTypemask"],[8909,"impl-LowerHex-for-PositionTargetTypemask"],[8910,"impl-UpperHex-for-PositionTargetTypemask"],[8915,"impl-Binary-for-MavModeFlag"],[8916,"impl-LowerHex-for-MavModeFlag"],[8917,"impl-Octal-for-MavModeFlag"],[8918,"impl-Debug-for-MavModeFlag"],[8919,"impl-UpperHex-for-MavModeFlag"],[8920,"impl-Octal-for-GimbalDeviceFlags"],[8921,"impl-Debug-for-GimbalDeviceFlags"],[8922,"impl-LowerHex-for-GimbalDeviceFlags"],[8923,"impl-UpperHex-for-GimbalDeviceFlags"],[8924,"impl-Binary-for-GimbalDeviceFlags"],[8930,"impl-Octal-for-CameraCapFlags"],[8931,"impl-Binary-for-CameraCapFlags"],[8932,"impl-UpperHex-for-CameraCapFlags"],[8933,"impl-Debug-for-CameraCapFlags"],[8934,"impl-LowerHex-for-CameraCapFlags"],[8940,"impl-UpperHex-for-RallyFlags"],[8941,"impl-Debug-for-RallyFlags"],[8942,"impl-Octal-for-RallyFlags"],[8943,"impl-Binary-for-RallyFlags"],[8944,"impl-LowerHex-for-RallyFlags"],[8953,"impl-UpperHex-for-UavionixAdsbOutRfSelect"],[8954,"impl-Debug-for-UavionixAdsbOutRfSelect"],[8955,"impl-Octal-for-UavionixAdsbOutRfSelect"],[8956,"impl-Binary-for-UavionixAdsbOutRfSelect"],[8957,"impl-LowerHex-for-UavionixAdsbOutRfSelect"],[21926,"impl-Debug-for-GimbalDeviceFlags"],[21927,"impl-Binary-for-GimbalDeviceFlags"],[21928,"impl-UpperHex-for-GimbalDeviceFlags"],[21929,"impl-LowerHex-for-GimbalDeviceFlags"],[21930,"impl-Octal-for-GimbalDeviceFlags"],[21932,"impl-Debug-for-MavGeneratorStatusFlag"],[21933,"impl-UpperHex-for-MavGeneratorStatusFlag"],[21934,"impl-LowerHex-for-MavGeneratorStatusFlag"],[21935,"impl-Binary-for-MavGeneratorStatusFlag"],[21936,"impl-Octal-for-MavGeneratorStatusFlag"],[21946,"impl-Debug-for-MavWinchStatusFlag"],[21947,"impl-LowerHex-for-MavWinchStatusFlag"],[21948,"impl-Binary-for-MavWinchStatusFlag"],[21949,"impl-UpperHex-for-MavWinchStatusFlag"],[21950,"impl-Octal-for-MavWinchStatusFlag"],[21951,"impl-Binary-for-SerialControlFlag"],[21952,"impl-UpperHex-for-SerialControlFlag"],[21953,"impl-Octal-for-SerialControlFlag"],[21954,"impl-LowerHex-for-SerialControlFlag"],[21955,"impl-Debug-for-SerialControlFlag"],[21965,"impl-Octal-for-UtmDataAvailFlags"],[21966,"impl-LowerHex-for-UtmDataAvailFlags"],[21967,"impl-Binary-for-UtmDataAvailFlags"],[21968,"impl-UpperHex-for-UtmDataAvailFlags"],[21969,"impl-Debug-for-UtmDataAvailFlags"],[21970,"impl-Octal-for-GimbalDeviceCapFlags"],[21971,"impl-UpperHex-for-GimbalDeviceCapFlags"],[21972,"impl-Debug-for-GimbalDeviceCapFlags"],[21973,"impl-Binary-for-GimbalDeviceCapFlags"],[21974,"impl-LowerHex-for-GimbalDeviceCapFlags"],[21976,"impl-Octal-for-MavEventCurrentSequenceFlags"],[21977,"impl-LowerHex-for-MavEventCurrentSequenceFlags"],[21978,"impl-Debug-for-MavEventCurrentSequenceFlags"],[21979,"impl-UpperHex-for-MavEventCurrentSequenceFlags"],[21980,"impl-Binary-for-MavEventCurrentSequenceFlags"],[21984,"impl-Debug-for-MavModeFlag"],[21985,"impl-UpperHex-for-MavModeFlag"],[21986,"impl-Octal-for-MavModeFlag"],[21987,"impl-LowerHex-for-MavModeFlag"],[21988,"impl-Binary-for-MavModeFlag"],[22000,"impl-LowerHex-for-CameraCapFlags"],[22001,"impl-Octal-for-CameraCapFlags"],[22002,"impl-Binary-for-CameraCapFlags"],[22003,"impl-Debug-for-CameraCapFlags"],[22004,"impl-UpperHex-for-CameraCapFlags"],[22005,"impl-Binary-for-HighresImuUpdatedFlags"],[22006,"impl-Debug-for-HighresImuUpdatedFlags"],[22007,"impl-UpperHex-for-HighresImuUpdatedFlags"],[22008,"impl-Octal-for-HighresImuUpdatedFlags"],[22009,"impl-LowerHex-for-HighresImuUpdatedFlags"],[22011,"impl-LowerHex-for-MavSysStatusSensor"],[22012,"impl-Binary-for-MavSysStatusSensor"],[22013,"impl-UpperHex-for-MavSysStatusSensor"],[22014,"impl-Debug-for-MavSysStatusSensor"],[22015,"impl-Octal-for-MavSysStatusSensor"],[22021,"impl-Octal-for-GimbalManagerCapFlags"],[22022,"impl-Binary-for-GimbalManagerCapFlags"],[22023,"impl-UpperHex-for-GimbalManagerCapFlags"],[22024,"impl-LowerHex-for-GimbalManagerCapFlags"],[22025,"impl-Debug-for-GimbalManagerCapFlags"],[22035,"impl-LowerHex-for-GimbalDeviceErrorFlags"],[22036,"impl-Debug-for-GimbalDeviceErrorFlags"],[22037,"impl-UpperHex-for-GimbalDeviceErrorFlags"],[22038,"impl-Octal-for-GimbalDeviceErrorFlags"],[22039,"impl-Binary-for-GimbalDeviceErrorFlags"],[22040,"impl-UpperHex-for-MavPowerStatus"],[22041,"impl-Debug-for-MavPowerStatus"],[22042,"impl-Octal-for-MavPowerStatus"],[22043,"impl-LowerHex-for-MavPowerStatus"],[22044,"impl-Binary-for-MavPowerStatus"],[22048,"impl-Octal-for-GpsInputIgnoreFlags"],[22049,"impl-LowerHex-for-GpsInputIgnoreFlags"],[22050,"impl-Debug-for-GpsInputIgnoreFlags"],[22051,"impl-Binary-for-GpsInputIgnoreFlags"],[22052,"impl-UpperHex-for-GpsInputIgnoreFlags"],[22055,"impl-UpperHex-for-PositionTargetTypemask"],[22056,"impl-Debug-for-PositionTargetTypemask"],[22057,"impl-LowerHex-for-PositionTargetTypemask"],[22058,"impl-Octal-for-PositionTargetTypemask"],[22059,"impl-Binary-for-PositionTargetTypemask"],[22082,"impl-Debug-for-MavProtocolCapability"],[22083,"impl-Octal-for-MavProtocolCapability"],[22084,"impl-UpperHex-for-MavProtocolCapability"],[22085,"impl-LowerHex-for-MavProtocolCapability"],[22086,"impl-Binary-for-MavProtocolCapability"],[22088,"impl-Octal-for-HlFailureFlag"],[22089,"impl-UpperHex-for-HlFailureFlag"],[22090,"impl-Binary-for-HlFailureFlag"],[22091,"impl-LowerHex-for-HlFailureFlag"],[22092,"impl-Debug-for-HlFailureFlag"],[22094,"impl-UpperHex-for-EscFailureFlags"],[22095,"impl-LowerHex-for-EscFailureFlags"],[22096,"impl-Binary-for-EscFailureFlags"],[22097,"impl-Debug-for-EscFailureFlags"],[22098,"impl-Octal-for-EscFailureFlags"],[22099,"impl-LowerHex-for-HilSensorUpdatedFlags"],[22100,"impl-Binary-for-HilSensorUpdatedFlags"],[22101,"impl-Debug-for-HilSensorUpdatedFlags"],[22102,"impl-UpperHex-for-HilSensorUpdatedFlags"],[22103,"impl-Octal-for-HilSensorUpdatedFlags"],[22115,"impl-LowerHex-for-EstimatorStatusFlags"],[22116,"impl-Octal-for-EstimatorStatusFlags"],[22117,"impl-Binary-for-EstimatorStatusFlags"],[22118,"impl-UpperHex-for-EstimatorStatusFlags"],[22119,"impl-Debug-for-EstimatorStatusFlags"],[22128,"impl-UpperHex-for-AdsbFlags"],[22129,"impl-Binary-for-AdsbFlags"],[22130,"impl-Debug-for-AdsbFlags"],[22131,"impl-Octal-for-AdsbFlags"],[22132,"impl-LowerHex-for-AdsbFlags"],[22135,"impl-Binary-for-AisFlags"],[22136,"impl-Debug-for-AisFlags"],[22137,"impl-LowerHex-for-AisFlags"],[22138,"impl-Octal-for-AisFlags"],[22139,"impl-UpperHex-for-AisFlags"],[22141,"impl-Debug-for-AttitudeTargetTypemask"],[22142,"impl-LowerHex-for-AttitudeTargetTypemask"],[22143,"impl-Binary-for-AttitudeTargetTypemask"],[22144,"impl-UpperHex-for-AttitudeTargetTypemask"],[22145,"impl-Octal-for-AttitudeTargetTypemask"],[22148,"impl-UpperHex-for-TuneFormat"],[22149,"impl-Octal-for-TuneFormat"],[22150,"impl-Binary-for-TuneFormat"],[22151,"impl-Debug-for-TuneFormat"],[22152,"impl-LowerHex-for-TuneFormat"],[27075,"impl-Display-for-ParserError"],[27076,"impl-Debug-for-ParserError"],[27077,"impl-Display-for-MessageReadError"],[27078,"impl-Debug-for-MessageReadError"],[27079,"impl-Debug-for-MessageWriteError"],[27080,"impl-Display-for-MessageWriteError"],[27082,"impl-From%3CParserError%3E-for-MessageReadError"],[27084,"impl-From%3CError%3E-for-MessageReadError"],[33843,"impl-LowerHex-for-UavionixAdsbOutRfSelect"],[33844,"impl-UpperHex-for-UavionixAdsbOutRfSelect"],[33845,"impl-Debug-for-UavionixAdsbOutRfSelect"],[33846,"impl-Binary-for-UavionixAdsbOutRfSelect"],[33847,"impl-Octal-for-UavionixAdsbOutRfSelect"],[33852,"impl-Debug-for-HilSensorUpdatedFlags"],[33853,"impl-UpperHex-for-HilSensorUpdatedFlags"],[33854,"impl-Binary-for-HilSensorUpdatedFlags"],[33855,"impl-LowerHex-for-HilSensorUpdatedFlags"],[33856,"impl-Octal-for-HilSensorUpdatedFlags"],[33862,"impl-Debug-for-EstimatorStatusFlags"],[33863,"impl-Binary-for-EstimatorStatusFlags"],[33864,"impl-Octal-for-EstimatorStatusFlags"],[33865,"impl-LowerHex-for-EstimatorStatusFlags"],[33866,"impl-UpperHex-for-EstimatorStatusFlags"],[33868,"impl-Octal-for-PositionTargetTypemask"],[33869,"impl-LowerHex-for-PositionTargetTypemask"],[33870,"impl-Binary-for-PositionTargetTypemask"],[33871,"impl-UpperHex-for-PositionTargetTypemask"],[33872,"impl-Debug-for-PositionTargetTypemask"],[33877,"impl-Binary-for-MavModeFlag"],[33878,"impl-Octal-for-MavModeFlag"],[33879,"impl-UpperHex-for-MavModeFlag"],[33880,"impl-Debug-for-MavModeFlag"],[33881,"impl-LowerHex-for-MavModeFlag"],[33891,"impl-Binary-for-MavGeneratorStatusFlag"],[33892,"impl-Octal-for-MavGeneratorStatusFlag"],[33893,"impl-Debug-for-MavGeneratorStatusFlag"],[33894,"impl-LowerHex-for-MavGeneratorStatusFlag"],[33895,"impl-UpperHex-for-MavGeneratorStatusFlag"],[33906,"impl-Debug-for-AdsbFlags"],[33907,"impl-LowerHex-for-AdsbFlags"],[33908,"impl-Octal-for-AdsbFlags"],[33909,"impl-Binary-for-AdsbFlags"],[33910,"impl-UpperHex-for-AdsbFlags"],[33922,"impl-Debug-for-MavSysStatusSensor"],[33923,"impl-Octal-for-MavSysStatusSensor"],[33924,"impl-LowerHex-for-MavSysStatusSensor"],[33925,"impl-Binary-for-MavSysStatusSensor"],[33926,"impl-UpperHex-for-MavSysStatusSensor"],[33927,"impl-Binary-for-MavWinchStatusFlag"],[33928,"impl-Debug-for-MavWinchStatusFlag"],[33929,"impl-Octal-for-MavWinchStatusFlag"],[33930,"impl-UpperHex-for-MavWinchStatusFlag"],[33931,"impl-LowerHex-for-MavWinchStatusFlag"],[33934,"impl-Octal-for-AisFlags"],[33935,"impl-Binary-for-AisFlags"],[33936,"impl-Debug-for-AisFlags"],[33937,"impl-LowerHex-for-AisFlags"],[33938,"impl-UpperHex-for-AisFlags"],[33946,"impl-LowerHex-for-GimbalDeviceErrorFlags"],[33947,"impl-UpperHex-for-GimbalDeviceErrorFlags"],[33948,"impl-Binary-for-GimbalDeviceErrorFlags"],[33949,"impl-Debug-for-GimbalDeviceErrorFlags"],[33950,"impl-Octal-for-GimbalDeviceErrorFlags"],[33957,"impl-Debug-for-GimbalDeviceFlags"],[33958,"impl-LowerHex-for-GimbalDeviceFlags"],[33959,"impl-UpperHex-for-GimbalDeviceFlags"],[33960,"impl-Octal-for-GimbalDeviceFlags"],[33961,"impl-Binary-for-GimbalDeviceFlags"],[33969,"impl-LowerHex-for-HlFailureFlag"],[33970,"impl-Octal-for-HlFailureFlag"],[33971,"impl-Debug-for-HlFailureFlag"],[33972,"impl-Binary-for-HlFailureFlag"],[33973,"impl-UpperHex-for-HlFailureFlag"],[33976,"impl-LowerHex-for-TuneFormat"],[33977,"impl-Debug-for-TuneFormat"],[33978,"impl-Binary-for-TuneFormat"],[33979,"impl-UpperHex-for-TuneFormat"],[33980,"impl-Octal-for-TuneFormat"],[33982,"impl-Binary-for-GimbalManagerCapFlags"],[33983,"impl-LowerHex-for-GimbalManagerCapFlags"],[33984,"impl-UpperHex-for-GimbalManagerCapFlags"],[33985,"impl-Debug-for-GimbalManagerCapFlags"],[33986,"impl-Octal-for-GimbalManagerCapFlags"],[33992,"impl-Octal-for-EscFailureFlags"],[33993,"impl-UpperHex-for-EscFailureFlags"],[33994,"impl-Debug-for-EscFailureFlags"],[33995,"impl-LowerHex-for-EscFailureFlags"],[33996,"impl-Binary-for-EscFailureFlags"],[34000,"impl-UpperHex-for-UtmDataAvailFlags"],[34001,"impl-Debug-for-UtmDataAvailFlags"],[34002,"impl-LowerHex-for-UtmDataAvailFlags"],[34003,"impl-Binary-for-UtmDataAvailFlags"],[34004,"impl-Octal-for-UtmDataAvailFlags"],[34009,"impl-Binary-for-HighresImuUpdatedFlags"],[34010,"impl-Debug-for-HighresImuUpdatedFlags"],[34011,"impl-Octal-for-HighresImuUpdatedFlags"],[34012,"impl-LowerHex-for-HighresImuUpdatedFlags"],[34013,"impl-UpperHex-for-HighresImuUpdatedFlags"],[34018,"impl-Debug-for-CameraCapFlags"],[34019,"impl-UpperHex-for-CameraCapFlags"],[34020,"impl-Binary-for-CameraCapFlags"],[34021,"impl-LowerHex-for-CameraCapFlags"],[34022,"impl-Octal-for-CameraCapFlags"],[34023,"impl-Debug-for-AttitudeTargetTypemask"],[34024,"impl-Octal-for-AttitudeTargetTypemask"],[34025,"impl-UpperHex-for-AttitudeTargetTypemask"],[34026,"impl-LowerHex-for-AttitudeTargetTypemask"],[34027,"impl-Binary-for-AttitudeTargetTypemask"],[34029,"impl-Debug-for-GpsInputIgnoreFlags"],[34030,"impl-Binary-for-GpsInputIgnoreFlags"],[34031,"impl-Octal-for-GpsInputIgnoreFlags"],[34032,"impl-UpperHex-for-GpsInputIgnoreFlags"],[34033,"impl-LowerHex-for-GpsInputIgnoreFlags"],[34036,"impl-Binary-for-MavPowerStatus"],[34037,"impl-Debug-for-MavPowerStatus"],[34038,"impl-LowerHex-for-MavPowerStatus"],[34039,"impl-UpperHex-for-MavPowerStatus"],[34040,"impl-Octal-for-MavPowerStatus"],[34044,"impl-Binary-for-GimbalDeviceCapFlags"],[34045,"impl-UpperHex-for-GimbalDeviceCapFlags"],[34046,"impl-Debug-for-GimbalDeviceCapFlags"],[34047,"impl-LowerHex-for-GimbalDeviceCapFlags"],[34048,"impl-Octal-for-GimbalDeviceCapFlags"],[34058,"impl-Octal-for-MavEventCurrentSequenceFlags"],[34059,"impl-UpperHex-for-MavEventCurrentSequenceFlags"],[34060,"impl-Debug-for-MavEventCurrentSequenceFlags"],[34061,"impl-Binary-for-MavEventCurrentSequenceFlags"],[34062,"impl-LowerHex-for-MavEventCurrentSequenceFlags"],[34071,"impl-Debug-for-UavionixAdsbOutDynamicState"],[34072,"impl-Binary-for-UavionixAdsbOutDynamicState"],[34073,"impl-LowerHex-for-UavionixAdsbOutDynamicState"],[34074,"impl-UpperHex-for-UavionixAdsbOutDynamicState"],[34075,"impl-Octal-for-UavionixAdsbOutDynamicState"],[34081,"impl-LowerHex-for-SerialControlFlag"],[34082,"impl-Octal-for-SerialControlFlag"],[34083,"impl-UpperHex-for-SerialControlFlag"],[34084,"impl-Debug-for-SerialControlFlag"],[34085,"impl-Binary-for-SerialControlFlag"],[34086,"impl-UpperHex-for-UavionixAdsbRfHealth"],[34087,"impl-Octal-for-UavionixAdsbRfHealth"],[34088,"impl-LowerHex-for-UavionixAdsbRfHealth"],[34089,"impl-Binary-for-UavionixAdsbRfHealth"],[34090,"impl-Debug-for-UavionixAdsbRfHealth"],[34092,"impl-Binary-for-MavProtocolCapability"],[34093,"impl-Debug-for-MavProtocolCapability"],[34094,"impl-UpperHex-for-MavProtocolCapability"],[34095,"impl-LowerHex-for-MavProtocolCapability"],[34096,"impl-Octal-for-MavProtocolCapability"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAPCFUwAAAAUACAAAAA0ABQAUABgALgADADMABAA5AAsASgACAE4AAgBSAAAAWAAMAGYAAgBtAAAAcwACAHcAAAB5AB4AmQAAAJ0AzA2KDnYAgQ8CAOQPSwhQGAYAdxhmBf4dFwA2HuYEZyX1AX0nDwDNJwAA+CnYAPEqHAEuLKED8C8+AG8wBACUMIkEPjXlBUQ7SQGPPA0AnjwHAKg8lApWR2YAIUgBAG5IIAaoTgEAw07wA81SDgD1UqYDTlhuAdZZDQAWWgAAsFuZAGNc7QBqXa4CMmAnAIxgBACqYGEDJWRSBJFoOAHLaQAAzWkAAM9pAADTaVEAKmoDADNqNABpagEAdGrZCmp1ZwBCdgEAmHZQBgV9AQAjfQkESYEQAHaBywMIh4QBqYgNAO+IAACaipkAUIvxAF6MvgI5jyoAnI8EAL2PdgNQk3ME4JcmAQ=="}],\ +["mavlink",{"t":"TTTFFSSSKFFGKRKTPPCNNNNNNNNNNCCHNNNNNNNNNNNNCNNNOHNNNMMNNNNNNCMNNNNNNNNNNMNNNNNOCNNNNNNMNNMMONNMNNNNCONNHHHHHMNMNNNNOMMNNNNNNNNMNNONNNNNNNNNNNNNNNNNNNNCCHHHPPPPPPPPPPPPPPPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTPFPPFPFFPFTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFOPFPFPFPPFFPFTTTTTTPFPFPFPFPFPPPPGGGGGFFGGFGPFPPFPFPFTTTTTTTTTTTTPPPFPPPPFPFPFPPPPFPFPPPPPPPPFPFPPPPPPPPPPPFPFPPFPPPFPPFPPPPPPPPPPPPPPFPPPPPPPPPPPPPPPFFOPFPFPFPFPFPFPFPFPPPPPPPFPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPFPFFGGGGGGGGGGGGGOOOGOPFPFPFPFPFPFPFPFPFPFPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPPPFPFPFPFPFPFPFGGOPFTTTTTTTTPFTTTPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPTTTTTTTTPFPFPFPFPFTTTTTTTTTTPFTTPFPFFGFFPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPFPPPPFPFOPFPPPPPPFPPPPPPPPFGGGGGGPFPPPPPPPPPPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPFPFTTTTTTTTTTTTTTTTPPPPPPPPPPPFPFPFPFPFPFPFPPFFPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPPPFPFPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPPFPFPPPPPPPPPPFPFPFTTTTTTTTPFPFPFPFPPGGGFFFFGGGGGGGFGGGGGGGGGGGGFGPPPFPFPFPFTTTTTTTTTTTTTTTPPFFPFPFPFPFPFPFTTTTTTTTTTTTTTTPFPFTTTTTTTTTTTTTTPFPFPFGFFFOOOOPPPPPPPFPFPPPPFGGPFPPPPTPFPPPPPPPPPFPTTTPFPPFFPFPFPPFFPFPFPFPFPFPFGGFGPPPPPFPFPPPPPFPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTPPPPPPPPTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTPTTTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTPFOOOOPFPFPFPFPFPFPFPFPFPFPPFPFPFPFPPFPPPPPPPFPOPPPPPPPPFPFPFPFGGGGGGGGGGGGGGGGGGGFGGGGFGGGGGGFGGGGGGGGGGGGGGGGGGGGGFFGGGGGGGFGGGGFGGGGPFPFPFPPPGPPFFPFPFPFPFPFPFPFPFPFPFPFPFPFPFPPPPPPPFPFPPPPPPPPPPPPFPFPGGGOPPPPPPPPFPFPFPFPFPFPPFPFPPPPFPFPPPFPPPPPPFPPPPPPPPPPPPPPPPPPPPPPPPPFPFPFPFTTTTTTTTTTTTPFPPPPFGGOOOGGFGGGPFPFPFPFPFPFPFPFPFPFPFPFPPPFPFPFPFPFPFPPPPPPPPPPPPPFPPFGGGPFPFPPFPFFPPFPFFPPPPPFPFPPPPPTTTTTPPPPPPPPPPPFPFPFPFPFPFPFPFPFPFPFPFPFPPOPFPFPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPFGGFGGGGGGPFPFPFPFPFPFPPPPPPPFPFTTPFGFPPPPPFPPPPPPFPPPPPPPPPPPPPPPPPFPPPPPPPPPPPPFPPPPPPTTTTTPPPPPPTTTPTTTTPFPTTTTTTTTPPPPPPFGGGGGGGFFFFGPFPFPFPFPFPFPPPPPPPFPFPFPPPPPOOOGGOGPFPFPFPPPPPPPPPPPPPPPPPPPPPFPPFFGGGPPPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONONNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTPFTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPFPPFFPFTTTTTTPFPFPFPFPPPPGGGGFFGGFGPPFPFPFTTTTTTTTTTTTPFPFPFPPPPFPFPFPPPPPPPPPPPFPFPPFPPPFPPFPPPPPPPPPPPPPPFPPPPPPPPPPPPPPPFFOPFPFPFPFPFPFPFPPPPPPPFPFFGGGGGGGGGGGPFPFPFPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPFPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPTTTTTTTTPFPFTTTTTTTTTTPFTTPFPFGFFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPPPPPPFPPPPPPPPFGGGGGGPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPFPFTTTTTTTTTTTTTTTTPPPPPPPPPPPFPFPFPFPFPPFFPFPFPFPPPPPPPPPPFPFPFTTTTTTTTPFPFPFPFPPFFFFGGFGPFPFTTTTTTTTTTTTTTTPPFFPFPFPFPFPFPFTTTTTTTTTTTTTTTPFPFTTTTTTTTTTTTTTPFPFFFFOPFPFPPPPPFPPFFPFPFPPFFPFPFPFPFPFPFGPPPPPFPPPPPFPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTPPPPPPPPTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTPTTTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTPFPFPFPFPFPFPFPFPFPPFPFPFPFPPFPPPPPPPFPOPPPPPPPPFGGGGGGGGGGGGGGGGGGFGGGGFGGGGGGFGGGGGGGGGGGGGGGGGGGGFFGGGGGFGGGGFGGGGPFPFPFPPPGPFPFPFPFPFPFPFPFPFPFPFPFPFPFPFPPPPPGPPPPPPPPFPFPFPFPFPFPPFPFPPPPFPFPPFPFPFPFPFTTTTTTTTTTTTPFPPPPFGGFGGGPFPFPFPFPFPFPFPFPPPFPFPFPFPPGGPFPFPPFPFFPPFPFFPFPPPPPTTTTTPPPPPPPPPPPFPFPFPFPFPFPFPFPFPFPFPFPFPPPPPPPPPPPPPPPPPPFPFPFGFGGGGPFPFPFPFPFPFPFPFTTPFFPPPPPFPPPPPPFPTTTTTTTTPPPPPPFGGFGPFPFPFPFPFPFPPPPPPPFPFPPPPPOGGOGPFPFPPPPPPPPPPPPPPPPPPPPPFPFGGGPPPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONONNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPGGPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOTTTTTTPPPPPPPFPFPPPGGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNOOOOOONNNNNNNNNONNNNNNNNNNNNNNNNNNNOOOOONNNNNFNNNNNNNNNNNNNNPPPPPPPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTPFTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPFPPFFPFTTTTTTPFPFPFPFPPPPGGGGFFGGFGPPFPFPFTTTTTTTTTTTTPFPFPFPPPPFPFPFPPPPPPPPPPPFPFPPFPPPFPPFPPPPPPPPPPPPPPFPPPPPPPPPPPPPPPFFOPFPFPFPFPFPFPFPPPPPPPFPFFGGGGGGGGGGGPFPFPFPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPFPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPTTTTTTTTPFPFTTTTTTTTTTPFTTPFPFGFFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFPFPPPPPPFPPPPPPPPFGGGGGGPFPFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTPFPFTTTTTTTTTTTTTTTTPPPPPPPPPPPFPFPFPFPFPPFFPFPFPFPPPPPPPPPPFPFPFTTTTTTTTPFPFPFPFPPFFFFGGFGPFPFTTTTTTTTTTTTTTTPPFFPFPFPFPFPFPFTTTTTTTTTTTTTTTPFPFTTTTTTTTTTTTTTPFPFFFFOOPFPFPPPPPFPPFFPFPFPPFFPFPFPFPFPFPFGPPPPPFPPPPPFPFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTPPPPPPPPTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTPTTTTTTTTTTTTTTTTTTTTTTTTTTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTTTTTTTTTTTTTTPFPFPFPFPFPFPFPFPFPPFPFPFPFPPFPPPPPPPFPOPPPPPPPPFGGGGGGGGGGGGGGGGGGFGGGGFGGGGGGFGGGGGGGGGGGGGGGGGGGGFFGGGGGFGGGGFGGGGPFPFPFPPPGPFPFPFPFPFPFPFPFPFPFPFPFPFPFPFPPPPPGPPPPPPPPFPFPFPFPFPFPPFPFPPPPFPFPPFPFPFPFPFTTTTTTTTTTTTPFPPPPFGGFGGGPFPFPFPFPFPFPFPFPPPFPFPFPFPPGGPFPFPPFPFFPPFPFFPFPPPPPTTTTTPPPPPPPPPPPFPFPFPFPFPFPFPFPFPFPFPFPFPPPPPPPPPPPPPPPPPPFPFPFGFGGGGPFPFPFPFPFPFPFPFTTPFFPPPPPFPPPPPPFPPPPPPPPPPPPPPPPPFPPPPPPPPPPPPFPPPPPPTTTTTPPPPPPTTTPTTTTPFPTTTTTTTTPPPPPPFGGGGGGGFFFFGPFPFPFPFPFPFPPPPPPPFPFPPPPPOOGGOGPFPFPPPPPPPPPPPPPPPPPPPPPFPFGGGPPPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONONNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOH","n":["ENCODED_LEN","EXTRA_CRC","ID","MAVLinkV1MessageRaw","MAVLinkV2MessageRaw","MAV_STX","MAV_STX_V2","MAX_FRAME_SIZE","MavConnection","MavFrame","MavHeader","MavlinkVersion","Message","Message","MessageData","NAME","V1","V2","ardupilotmega","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes_mut","calculate_crc","checksum","checksum","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","common","compatibility_flags","component_id","component_id","component_id","connect","default","default","default","default_message_from_id","deser","deser","deserialize","eq","eq","eq","eq","error","extra_crc","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_protocol_version","has_valid_crc","has_valid_crc","header","header","header","header","icarous","incompatibility_flags","into","into","into","into","into","message_id","message_id","message_id","message_id_from_name","message_name","msg","new","new","parse","payload","payload","payload_length","payload_length","peek_reader","protocol_version","raw_bytes","raw_bytes","read_v1_msg","read_v1_raw_message","read_v2_msg","read_v2_raw_message","read_versioned_msg","recv","recv_frame","send","send_default","send_frame","sequence","sequence","sequence","ser","ser","ser","serialize","serialize","serialize","serialize_message","serialize_message","serialize_message_data","serialize_message_data","set_protocol_version","system_id","system_id","system_id","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","uavionix","utils","write_v1_msg","write_v2_msg","write_versioned_msg","ACCELCAL_VEHICLE_POS_BACK","ACCELCAL_VEHICLE_POS_FAILED","ACCELCAL_VEHICLE_POS_LEFT","ACCELCAL_VEHICLE_POS_LEVEL","ACCELCAL_VEHICLE_POS_NOSEDOWN","ACCELCAL_VEHICLE_POS_NOSEUP","ACCELCAL_VEHICLE_POS_RIGHT","ACCELCAL_VEHICLE_POS_SUCCESS","ACTUATOR_CONFIGURATION_3D_MODE_OFF","ACTUATOR_CONFIGURATION_3D_MODE_ON","ACTUATOR_CONFIGURATION_BEEP","ACTUATOR_CONFIGURATION_NONE","ACTUATOR_CONFIGURATION_SPIN_DIRECTION1","ACTUATOR_CONFIGURATION_SPIN_DIRECTION2","ACTUATOR_CONTROL_TARGET","ACTUATOR_CONTROL_TARGET_DATA","ACTUATOR_OUTPUT_FUNCTION_MOTOR1","ACTUATOR_OUTPUT_FUNCTION_MOTOR10","ACTUATOR_OUTPUT_FUNCTION_MOTOR11","ACTUATOR_OUTPUT_FUNCTION_MOTOR12","ACTUATOR_OUTPUT_FUNCTION_MOTOR13","ACTUATOR_OUTPUT_FUNCTION_MOTOR14","ACTUATOR_OUTPUT_FUNCTION_MOTOR15","ACTUATOR_OUTPUT_FUNCTION_MOTOR16","ACTUATOR_OUTPUT_FUNCTION_MOTOR2","ACTUATOR_OUTPUT_FUNCTION_MOTOR3","ACTUATOR_OUTPUT_FUNCTION_MOTOR4","ACTUATOR_OUTPUT_FUNCTION_MOTOR5","ACTUATOR_OUTPUT_FUNCTION_MOTOR6","ACTUATOR_OUTPUT_FUNCTION_MOTOR7","ACTUATOR_OUTPUT_FUNCTION_MOTOR8","ACTUATOR_OUTPUT_FUNCTION_MOTOR9","ACTUATOR_OUTPUT_FUNCTION_NONE","ACTUATOR_OUTPUT_FUNCTION_SERVO1","ACTUATOR_OUTPUT_FUNCTION_SERVO10","ACTUATOR_OUTPUT_FUNCTION_SERVO11","ACTUATOR_OUTPUT_FUNCTION_SERVO12","ACTUATOR_OUTPUT_FUNCTION_SERVO13","ACTUATOR_OUTPUT_FUNCTION_SERVO14","ACTUATOR_OUTPUT_FUNCTION_SERVO15","ACTUATOR_OUTPUT_FUNCTION_SERVO16","ACTUATOR_OUTPUT_FUNCTION_SERVO2","ACTUATOR_OUTPUT_FUNCTION_SERVO3","ACTUATOR_OUTPUT_FUNCTION_SERVO4","ACTUATOR_OUTPUT_FUNCTION_SERVO5","ACTUATOR_OUTPUT_FUNCTION_SERVO6","ACTUATOR_OUTPUT_FUNCTION_SERVO7","ACTUATOR_OUTPUT_FUNCTION_SERVO8","ACTUATOR_OUTPUT_FUNCTION_SERVO9","ACTUATOR_OUTPUT_STATUS","ACTUATOR_OUTPUT_STATUS_DATA","ADAP_TUNING","ADAP_TUNING_DATA","ADSB_ALTITUDE_TYPE_GEOMETRIC","ADSB_ALTITUDE_TYPE_PRESSURE_QNH","ADSB_EMITTER_TYPE_EMERGENCY_SURFACE","ADSB_EMITTER_TYPE_GLIDER","ADSB_EMITTER_TYPE_HEAVY","ADSB_EMITTER_TYPE_HIGHLY_MANUV","ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE","ADSB_EMITTER_TYPE_LARGE","ADSB_EMITTER_TYPE_LIGHT","ADSB_EMITTER_TYPE_LIGHTER_AIR","ADSB_EMITTER_TYPE_NO_INFO","ADSB_EMITTER_TYPE_PARACHUTE","ADSB_EMITTER_TYPE_POINT_OBSTACLE","ADSB_EMITTER_TYPE_ROTOCRAFT","ADSB_EMITTER_TYPE_SERVICE_SURFACE","ADSB_EMITTER_TYPE_SMALL","ADSB_EMITTER_TYPE_SPACE","ADSB_EMITTER_TYPE_UAV","ADSB_EMITTER_TYPE_ULTRA_LIGHT","ADSB_EMITTER_TYPE_UNASSGINED3","ADSB_EMITTER_TYPE_UNASSIGNED","ADSB_EMITTER_TYPE_UNASSIGNED2","ADSB_FLAGS_BARO_VALID","ADSB_FLAGS_SIMULATED","ADSB_FLAGS_SOURCE_UAT","ADSB_FLAGS_VALID_ALTITUDE","ADSB_FLAGS_VALID_CALLSIGN","ADSB_FLAGS_VALID_COORDS","ADSB_FLAGS_VALID_HEADING","ADSB_FLAGS_VALID_SQUAWK","ADSB_FLAGS_VALID_VELOCITY","ADSB_FLAGS_VERTICAL_VELOCITY_VALID","ADSB_VEHICLE","ADSB_VEHICLE_DATA","AHRS","AHRS2","AHRS2_DATA","AHRS3","AHRS3_DATA","AHRS_DATA","AIRSPEED_AUTOCAL","AIRSPEED_AUTOCAL_DATA","AIS_FLAGS_HIGH_VELOCITY","AIS_FLAGS_LARGE_BOW_DIMENSION","AIS_FLAGS_LARGE_PORT_DIMENSION","AIS_FLAGS_LARGE_STARBOARD_DIMENSION","AIS_FLAGS_LARGE_STERN_DIMENSION","AIS_FLAGS_POSITION_ACCURACY","AIS_FLAGS_TURN_RATE_SIGN_ONLY","AIS_FLAGS_VALID_CALLSIGN","AIS_FLAGS_VALID_COG","AIS_FLAGS_VALID_DIMENSIONS","AIS_FLAGS_VALID_NAME","AIS_FLAGS_VALID_TURN_RATE","AIS_FLAGS_VALID_VELOCITY","AIS_NAV_AGROUND","AIS_NAV_AIS_SART","AIS_NAV_ANCHORED","AIS_NAV_DRAUGHT_CONSTRAINED","AIS_NAV_FISHING","AIS_NAV_MOORED","AIS_NAV_RESERVED_1","AIS_NAV_RESERVED_2","AIS_NAV_RESERVED_3","AIS_NAV_RESERVED_HSC","AIS_NAV_RESERVED_WIG","AIS_NAV_RESTRICTED_MANOEUVERABILITY","AIS_NAV_SAILING","AIS_NAV_UNKNOWN","AIS_NAV_UN_COMMANDED","AIS_TYPE_ANTI_POLLUTION","AIS_TYPE_CARGO","AIS_TYPE_CARGO_HAZARDOUS_A","AIS_TYPE_CARGO_HAZARDOUS_B","AIS_TYPE_CARGO_HAZARDOUS_C","AIS_TYPE_CARGO_HAZARDOUS_D","AIS_TYPE_CARGO_RESERVED_1","AIS_TYPE_CARGO_RESERVED_2","AIS_TYPE_CARGO_RESERVED_3","AIS_TYPE_CARGO_RESERVED_4","AIS_TYPE_CARGO_UNKNOWN","AIS_TYPE_DIVING","AIS_TYPE_DREDGING","AIS_TYPE_FISHING","AIS_TYPE_HSC","AIS_TYPE_HSC_HAZARDOUS_A","AIS_TYPE_HSC_HAZARDOUS_B","AIS_TYPE_HSC_HAZARDOUS_C","AIS_TYPE_HSC_HAZARDOUS_D","AIS_TYPE_HSC_RESERVED_1","AIS_TYPE_HSC_RESERVED_2","AIS_TYPE_HSC_RESERVED_3","AIS_TYPE_HSC_RESERVED_4","AIS_TYPE_HSC_UNKNOWN","AIS_TYPE_LAW_ENFORCEMENT","AIS_TYPE_MEDICAL_TRANSPORT","AIS_TYPE_MILITARY","AIS_TYPE_NONECOMBATANT","AIS_TYPE_OTHER","AIS_TYPE_OTHER_HAZARDOUS_A","AIS_TYPE_OTHER_HAZARDOUS_B","AIS_TYPE_OTHER_HAZARDOUS_C","AIS_TYPE_OTHER_HAZARDOUS_D","AIS_TYPE_OTHER_RESERVED_1","AIS_TYPE_OTHER_RESERVED_2","AIS_TYPE_OTHER_RESERVED_3","AIS_TYPE_OTHER_RESERVED_4","AIS_TYPE_OTHER_UNKNOWN","AIS_TYPE_PASSENGER","AIS_TYPE_PASSENGER_HAZARDOUS_A","AIS_TYPE_PASSENGER_HAZARDOUS_B","AIS_TYPE_PASSENGER_HAZARDOUS_C","AIS_TYPE_PASSENGER_HAZARDOUS_D","AIS_TYPE_PASSENGER_RESERVED_1","AIS_TYPE_PASSENGER_RESERVED_2","AIS_TYPE_PASSENGER_RESERVED_3","AIS_TYPE_PASSENGER_RESERVED_4","AIS_TYPE_PASSENGER_UNKNOWN","AIS_TYPE_PILOT","AIS_TYPE_PLEASURE","AIS_TYPE_PORT_TENDER","AIS_TYPE_RESERVED_1","AIS_TYPE_RESERVED_10","AIS_TYPE_RESERVED_11","AIS_TYPE_RESERVED_12","AIS_TYPE_RESERVED_13","AIS_TYPE_RESERVED_14","AIS_TYPE_RESERVED_15","AIS_TYPE_RESERVED_16","AIS_TYPE_RESERVED_17","AIS_TYPE_RESERVED_18","AIS_TYPE_RESERVED_19","AIS_TYPE_RESERVED_2","AIS_TYPE_RESERVED_20","AIS_TYPE_RESERVED_21","AIS_TYPE_RESERVED_3","AIS_TYPE_RESERVED_4","AIS_TYPE_RESERVED_5","AIS_TYPE_RESERVED_6","AIS_TYPE_RESERVED_7","AIS_TYPE_RESERVED_8","AIS_TYPE_RESERVED_9","AIS_TYPE_SAILING","AIS_TYPE_SAR","AIS_TYPE_SPARE_LOCAL_1","AIS_TYPE_SPARE_LOCAL_2","AIS_TYPE_TANKER","AIS_TYPE_TANKER_HAZARDOUS_A","AIS_TYPE_TANKER_HAZARDOUS_B","AIS_TYPE_TANKER_HAZARDOUS_C","AIS_TYPE_TANKER_HAZARDOUS_D","AIS_TYPE_TANKER_RESERVED_1","AIS_TYPE_TANKER_RESERVED_2","AIS_TYPE_TANKER_RESERVED_3","AIS_TYPE_TANKER_RESERVED_4","AIS_TYPE_TANKER_UNKNOWN","AIS_TYPE_TOWING","AIS_TYPE_TOWING_LARGE","AIS_TYPE_TUG","AIS_TYPE_UNKNOWN","AIS_TYPE_WIG","AIS_TYPE_WIG_HAZARDOUS_A","AIS_TYPE_WIG_HAZARDOUS_B","AIS_TYPE_WIG_HAZARDOUS_C","AIS_TYPE_WIG_HAZARDOUS_D","AIS_TYPE_WIG_RESERVED_1","AIS_TYPE_WIG_RESERVED_2","AIS_TYPE_WIG_RESERVED_3","AIS_TYPE_WIG_RESERVED_4","AIS_TYPE_WIG_RESERVED_5","AIS_VESSEL","AIS_VESSEL_DATA","ALTITUDE","ALTITUDE_DATA","AOA","AOA_SSA","AOA_SSA_DATA","AP_ADC","AP_ADC_DATA","ATTITUDE","ATTITUDE_DATA","ATTITUDE_QUATERNION","ATTITUDE_QUATERNION_COV","ATTITUDE_QUATERNION_COV_DATA","ATTITUDE_QUATERNION_DATA","ATTITUDE_TARGET","ATTITUDE_TARGET_DATA","ATTITUDE_TARGET_TYPEMASK_ATTITUDE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_PITCH_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_YAW_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_THROTTLE_IGNORE","ATTITUDE_TARGET_TYPEMASK_THRUST_BODY_SET","ATT_POS_MOCAP","ATT_POS_MOCAP_DATA","AUTH_KEY","AUTH_KEY_DATA","AUTOPILOT_STATE_FOR_GIMBAL_DEVICE","AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA","AUTOPILOT_VERSION","AUTOPILOT_VERSION_DATA","AUTOPILOT_VERSION_REQUEST","AUTOPILOT_VERSION_REQUEST_DATA","AUTOTUNE_AXIS_DEFAULT","AUTOTUNE_AXIS_PITCH","AUTOTUNE_AXIS_ROLL","AUTOTUNE_AXIS_YAW","AccelcalVehiclePos","ActuatorConfiguration","ActuatorOutputFunction","AdsbAltitudeType","AdsbEmitterType","AdsbFlags","AisFlags","AisNavStatus","AisType","AttitudeTargetTypemask","AutotuneAxis","BATTERY2","BATTERY2_DATA","BATTERY_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION","BATTERY_STATUS","BATTERY_STATUS_DATA","BUTTON_CHANGE","BUTTON_CHANGE_DATA","CAMERA_CAPTURE_STATUS","CAMERA_CAPTURE_STATUS_DATA","CAMERA_CAP_FLAGS_CAN_CAPTURE_IMAGE_IN_VIDEO_MODE","CAMERA_CAP_FLAGS_CAN_CAPTURE_VIDEO_IN_IMAGE_MODE","CAMERA_CAP_FLAGS_CAPTURE_IMAGE","CAMERA_CAP_FLAGS_CAPTURE_VIDEO","CAMERA_CAP_FLAGS_HAS_BASIC_FOCUS","CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM","CAMERA_CAP_FLAGS_HAS_IMAGE_SURVEY_MODE","CAMERA_CAP_FLAGS_HAS_MODES","CAMERA_CAP_FLAGS_HAS_TRACKING_GEO_STATUS","CAMERA_CAP_FLAGS_HAS_TRACKING_POINT","CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE","CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM","CAMERA_FEEDBACK","CAMERA_FEEDBACK_BADEXPOSURE","CAMERA_FEEDBACK_CLOSEDLOOP","CAMERA_FEEDBACK_DATA","CAMERA_FEEDBACK_OPENLOOP","CAMERA_FEEDBACK_PHOTO","CAMERA_FEEDBACK_VIDEO","CAMERA_FOV_STATUS","CAMERA_FOV_STATUS_DATA","CAMERA_IMAGE_CAPTURED","CAMERA_IMAGE_CAPTURED_DATA","CAMERA_INFORMATION","CAMERA_INFORMATION_DATA","CAMERA_MODE_IMAGE","CAMERA_MODE_IMAGE_SURVEY","CAMERA_MODE_VIDEO","CAMERA_SETTINGS","CAMERA_SETTINGS_DATA","CAMERA_STATUS","CAMERA_STATUS_DATA","CAMERA_STATUS_TYPE_DISCONNECT","CAMERA_STATUS_TYPE_ERROR","CAMERA_STATUS_TYPE_HEARTBEAT","CAMERA_STATUS_TYPE_LOWBATT","CAMERA_STATUS_TYPE_LOWSTORE","CAMERA_STATUS_TYPE_LOWSTOREV","CAMERA_STATUS_TYPE_TRIGGER","CAMERA_TRACKING_GEO_STATUS","CAMERA_TRACKING_GEO_STATUS_DATA","CAMERA_TRACKING_IMAGE_STATUS","CAMERA_TRACKING_IMAGE_STATUS_DATA","CAMERA_TRACKING_MODE_NONE","CAMERA_TRACKING_MODE_POINT","CAMERA_TRACKING_MODE_RECTANGLE","CAMERA_TRACKING_STATUS_FLAGS_ACTIVE","CAMERA_TRACKING_STATUS_FLAGS_ERROR","CAMERA_TRACKING_STATUS_FLAGS_IDLE","CAMERA_TRACKING_TARGET_DATA_EMBEDDED","CAMERA_TRACKING_TARGET_DATA_IN_STATUS","CAMERA_TRACKING_TARGET_DATA_NONE","CAMERA_TRACKING_TARGET_DATA_RENDERED","CAMERA_TRIGGER","CAMERA_TRIGGER_DATA","CANFD_FRAME","CANFD_FRAME_DATA","CAN_FILTER_ADD","CAN_FILTER_MODIFY","CAN_FILTER_MODIFY_DATA","CAN_FILTER_REMOVE","CAN_FILTER_REPLACE","CAN_FRAME","CAN_FRAME_DATA","CELLULAR_CONFIG","CELLULAR_CONFIG_BLOCKED_PUK_REQUIRED","CELLULAR_CONFIG_DATA","CELLULAR_CONFIG_RESPONSE_ACCEPTED","CELLULAR_CONFIG_RESPONSE_APN_ERROR","CELLULAR_CONFIG_RESPONSE_PIN_ERROR","CELLULAR_CONFIG_RESPONSE_REJECTED","CELLULAR_NETWORK_FAILED_REASON_NONE","CELLULAR_NETWORK_FAILED_REASON_SIM_ERROR","CELLULAR_NETWORK_FAILED_REASON_SIM_MISSING","CELLULAR_NETWORK_FAILED_REASON_UNKNOWN","CELLULAR_NETWORK_RADIO_TYPE_CDMA","CELLULAR_NETWORK_RADIO_TYPE_GSM","CELLULAR_NETWORK_RADIO_TYPE_LTE","CELLULAR_NETWORK_RADIO_TYPE_NONE","CELLULAR_NETWORK_RADIO_TYPE_WCDMA","CELLULAR_STATUS","CELLULAR_STATUS_DATA","CELLULAR_STATUS_FLAG_CONNECTED","CELLULAR_STATUS_FLAG_CONNECTING","CELLULAR_STATUS_FLAG_DISABLED","CELLULAR_STATUS_FLAG_DISABLING","CELLULAR_STATUS_FLAG_DISCONNECTING","CELLULAR_STATUS_FLAG_ENABLED","CELLULAR_STATUS_FLAG_ENABLING","CELLULAR_STATUS_FLAG_FAILED","CELLULAR_STATUS_FLAG_INITIALIZING","CELLULAR_STATUS_FLAG_LOCKED","CELLULAR_STATUS_FLAG_REGISTERED","CELLULAR_STATUS_FLAG_SEARCHING","CELLULAR_STATUS_FLAG_UNKNOWN","CHANGE_OPERATOR_CONTROL","CHANGE_OPERATOR_CONTROL_ACK","CHANGE_OPERATOR_CONTROL_ACK_DATA","CHANGE_OPERATOR_CONTROL_DATA","COG","COLLISION","COLLISION_DATA","COMMAND_ACK","COMMAND_ACK_DATA","COMMAND_CANCEL","COMMAND_CANCEL_DATA","COMMAND_INT","COMMAND_INT_DATA","COMMAND_LONG","COMMAND_LONG_DATA","COMPASSMOT_STATUS","COMPASSMOT_STATUS_DATA","COMPONENT_INFORMATION","COMPONENT_INFORMATION_DATA","COMPONENT_METADATA","COMPONENT_METADATA_DATA","COMP_METADATA_TYPE_ACTUATORS","COMP_METADATA_TYPE_COMMANDS","COMP_METADATA_TYPE_EVENTS","COMP_METADATA_TYPE_GENERAL","COMP_METADATA_TYPE_PARAMETER","COMP_METADATA_TYPE_PERIPHERALS","CONTROL_SYSTEM_STATE","CONTROL_SYSTEM_STATE_DATA","COPTER_MODE_ACRO","COPTER_MODE_ALT_HOLD","COPTER_MODE_AUTO","COPTER_MODE_AUTOROTATE","COPTER_MODE_AUTOTUNE","COPTER_MODE_AUTO_RTL","COPTER_MODE_AVOID_ADSB","COPTER_MODE_BRAKE","COPTER_MODE_CIRCLE","COPTER_MODE_DRIFT","COPTER_MODE_FLIP","COPTER_MODE_FLOWHOLD","COPTER_MODE_FOLLOW","COPTER_MODE_GUIDED","COPTER_MODE_GUIDED_NOGPS","COPTER_MODE_LAND","COPTER_MODE_LOITER","COPTER_MODE_POSHOLD","COPTER_MODE_RTL","COPTER_MODE_SMART_RTL","COPTER_MODE_SPORT","COPTER_MODE_STABILIZE","COPTER_MODE_SYSTEMID","COPTER_MODE_THROW","COPTER_MODE_ZIGZAG","CUBEPILOT_FIRMWARE_UPDATE_RESP","CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA","CUBEPILOT_FIRMWARE_UPDATE_START","CUBEPILOT_FIRMWARE_UPDATE_START_DATA","CUBEPILOT_RAW_RC","CUBEPILOT_RAW_RC_DATA","CURRENT_EVENT_SEQUENCE","CURRENT_EVENT_SEQUENCE_DATA","CameraCapFlags","CameraFeedbackFlags","CameraMode","CameraStatusTypes","CameraTrackingMode","CameraTrackingStatusFlags","CameraTrackingTargetData","CameraZoomType","CanFilterOp","CellularConfigResponse","CellularNetworkFailedReason","CellularNetworkRadioType","CellularStatusFlag","CompMetadataType","CompensationX","CompensationY","CompensationZ","CopterMode","D","DATA16","DATA16_DATA","DATA32","DATA32_DATA","DATA64","DATA64_DATA","DATA96","DATA96_DATA","DATA_STREAM","DATA_STREAM_DATA","DATA_TRANSMISSION_HANDSHAKE","DATA_TRANSMISSION_HANDSHAKE_DATA","DEBUG","DEBUG_DATA","DEBUG_FLOAT_ARRAY","DEBUG_FLOAT_ARRAY_DATA","DEBUG_VECT","DEBUG_VECT_DATA","DEEPSTALL","DEEPSTALL_DATA","DEEPSTALL_STAGE_APPROACH","DEEPSTALL_STAGE_ARC","DEEPSTALL_STAGE_ESTIMATE_WIND","DEEPSTALL_STAGE_FLY_TO_ARC","DEEPSTALL_STAGE_FLY_TO_LANDING","DEEPSTALL_STAGE_LAND","DEEPSTALL_STAGE_WAIT_FOR_BREAKOUT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEVICE_OP_BUSTYPE_I2C","DEVICE_OP_BUSTYPE_SPI","DEVICE_OP_READ","DEVICE_OP_READ_DATA","DEVICE_OP_READ_REPLY","DEVICE_OP_READ_REPLY_DATA","DEVICE_OP_WRITE","DEVICE_OP_WRITE_DATA","DEVICE_OP_WRITE_REPLY","DEVICE_OP_WRITE_REPLY_DATA","DIGICAM_CONFIGURE","DIGICAM_CONFIGURE_DATA","DIGICAM_CONTROL","DIGICAM_CONTROL_DATA","DISTANCE_SENSOR","DISTANCE_SENSOR_DATA","DeepstallStage","DeviceOpBustype","EAS2TAS","EFI_STATUS","EFI_STATUS_DATA","EKF_ATTITUDE","EKF_CONST_POS_MODE","EKF_POS_HORIZ_ABS","EKF_POS_HORIZ_REL","EKF_POS_VERT_ABS","EKF_POS_VERT_AGL","EKF_PRED_POS_HORIZ_ABS","EKF_PRED_POS_HORIZ_REL","EKF_STATUS_REPORT","EKF_STATUS_REPORT_DATA","EKF_UNINITIALIZED","EKF_VELOCITY_HORIZ","EKF_VELOCITY_VERT","ENCAPSULATED_DATA","ENCAPSULATED_DATA_DATA","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ESC_CONNECTION_TYPE_CAN","ESC_CONNECTION_TYPE_DSHOT","ESC_CONNECTION_TYPE_I2C","ESC_CONNECTION_TYPE_ONESHOT","ESC_CONNECTION_TYPE_PPM","ESC_CONNECTION_TYPE_SERIAL","ESC_FAILURE_GENERIC","ESC_FAILURE_INCONSISTENT_CMD","ESC_FAILURE_MOTOR_STUCK","ESC_FAILURE_NONE","ESC_FAILURE_OVER_CURRENT","ESC_FAILURE_OVER_RPM","ESC_FAILURE_OVER_TEMPERATURE","ESC_FAILURE_OVER_VOLTAGE","ESC_INFO","ESC_INFO_DATA","ESC_STATUS","ESC_STATUS_DATA","ESC_TELEMETRY_1_TO_4","ESC_TELEMETRY_1_TO_4_DATA","ESC_TELEMETRY_5_TO_8","ESC_TELEMETRY_5_TO_8_DATA","ESC_TELEMETRY_9_TO_12","ESC_TELEMETRY_9_TO_12_DATA","ESTIMATOR_ACCEL_ERROR","ESTIMATOR_ATTITUDE","ESTIMATOR_CONST_POS_MODE","ESTIMATOR_GPS_GLITCH","ESTIMATOR_POS_HORIZ_ABS","ESTIMATOR_POS_HORIZ_REL","ESTIMATOR_POS_VERT_ABS","ESTIMATOR_POS_VERT_AGL","ESTIMATOR_PRED_POS_HORIZ_ABS","ESTIMATOR_PRED_POS_HORIZ_REL","ESTIMATOR_STATUS","ESTIMATOR_STATUS_DATA","ESTIMATOR_VELOCITY_HORIZ","ESTIMATOR_VELOCITY_VERT","EVENT","EVENT_DATA","EXTENDED_SYS_STATE","EXTENDED_SYS_STATE_DATA","EkfStatusFlags","EscConnectionType","EscFailureFlags","EstimatorStatusFlags","FAILURE_TYPE_DELAYED","FAILURE_TYPE_GARBAGE","FAILURE_TYPE_INTERMITTENT","FAILURE_TYPE_OFF","FAILURE_TYPE_OK","FAILURE_TYPE_SLOW","FAILURE_TYPE_STUCK","FAILURE_TYPE_WRONG","FAILURE_UNIT_SENSOR_ACCEL","FAILURE_UNIT_SENSOR_AIRSPEED","FAILURE_UNIT_SENSOR_BARO","FAILURE_UNIT_SENSOR_DISTANCE_SENSOR","FAILURE_UNIT_SENSOR_GPS","FAILURE_UNIT_SENSOR_GYRO","FAILURE_UNIT_SENSOR_MAG","FAILURE_UNIT_SENSOR_OPTICAL_FLOW","FAILURE_UNIT_SENSOR_VIO","FAILURE_UNIT_SYSTEM_AVOIDANCE","FAILURE_UNIT_SYSTEM_BATTERY","FAILURE_UNIT_SYSTEM_MAVLINK_SIGNAL","FAILURE_UNIT_SYSTEM_MOTOR","FAILURE_UNIT_SYSTEM_RC_SIGNAL","FAILURE_UNIT_SYSTEM_SERVO","FAVORABLE_WIND","FENCE_ACTION_GUIDED","FENCE_ACTION_GUIDED_THR_PASS","FENCE_ACTION_HOLD","FENCE_ACTION_LAND","FENCE_ACTION_NONE","FENCE_ACTION_REPORT","FENCE_ACTION_RTL","FENCE_ACTION_TERMINATE","FENCE_BREACH_BOUNDARY","FENCE_BREACH_MAXALT","FENCE_BREACH_MINALT","FENCE_BREACH_NONE","FENCE_FETCH_POINT","FENCE_FETCH_POINT_DATA","FENCE_MITIGATE_NONE","FENCE_MITIGATE_UNKNOWN","FENCE_MITIGATE_VEL_LIMIT","FENCE_POINT","FENCE_POINT_DATA","FENCE_STATUS","FENCE_STATUS_DATA","FF","FILE_TRANSFER_PROTOCOL","FILE_TRANSFER_PROTOCOL_DATA","FIRMWARE_VERSION_TYPE_ALPHA","FIRMWARE_VERSION_TYPE_BETA","FIRMWARE_VERSION_TYPE_DEV","FIRMWARE_VERSION_TYPE_OFFICIAL","FIRMWARE_VERSION_TYPE_RC","FLIGHT_INFORMATION","FLIGHT_INFORMATION_DATA","FOCUS_TYPE_AUTO","FOCUS_TYPE_AUTO_CONTINUOUS","FOCUS_TYPE_AUTO_SINGLE","FOCUS_TYPE_CONTINUOUS","FOCUS_TYPE_METERS","FOCUS_TYPE_RANGE","FOCUS_TYPE_STEP","FOLLOW_TARGET","FOLLOW_TARGET_DATA","FailureType","FailureUnit","FenceAction","FenceBreach","FenceMitigate","FirmwareVersionType","GENERATOR_STATUS","GENERATOR_STATUS_DATA","GIMBAL_AXIS_CALIBRATION_REQUIRED_FALSE","GIMBAL_AXIS_CALIBRATION_REQUIRED_TRUE","GIMBAL_AXIS_CALIBRATION_REQUIRED_UNKNOWN","GIMBAL_AXIS_CALIBRATION_STATUS_FAILED","GIMBAL_AXIS_CALIBRATION_STATUS_IN_PROGRESS","GIMBAL_AXIS_CALIBRATION_STATUS_SUCCEEDED","GIMBAL_AXIS_PITCH","GIMBAL_AXIS_ROLL","GIMBAL_AXIS_YAW","GIMBAL_CONTROL","GIMBAL_CONTROL_DATA","GIMBAL_DEVICE_ATTITUDE_STATUS","GIMBAL_DEVICE_ATTITUDE_STATUS_DATA","GIMBAL_DEVICE_CAP_FLAGS_HAS_NEUTRAL","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_LOCK","GIMBAL_DEVICE_CAP_FLAGS_HAS_RC_INPUTS","GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_LOCK","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_LOCK","GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_INFINITE_YAW","GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_ERROR_FLAGS_AT_PITCH_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_AT_YAW_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_CALIBRATION_RUNNING","GIMBAL_DEVICE_ERROR_FLAGS_COMMS_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_ENCODER_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_MOTOR_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_NO_MANAGER","GIMBAL_DEVICE_ERROR_FLAGS_POWER_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_SOFTWARE_ERROR","GIMBAL_DEVICE_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_FLAGS_NEUTRAL","GIMBAL_DEVICE_FLAGS_PITCH_LOCK","GIMBAL_DEVICE_FLAGS_RC_EXCLUSIVE","GIMBAL_DEVICE_FLAGS_RC_MIXED","GIMBAL_DEVICE_FLAGS_RETRACT","GIMBAL_DEVICE_FLAGS_ROLL_LOCK","GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME","GIMBAL_DEVICE_FLAGS_YAW_LOCK","GIMBAL_DEVICE_INFORMATION","GIMBAL_DEVICE_INFORMATION_DATA","GIMBAL_DEVICE_SET_ATTITUDE","GIMBAL_DEVICE_SET_ATTITUDE_DATA","GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_GLOBAL","GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_LOCAL","GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_LOCK","GIMBAL_MANAGER_CAP_FLAGS_HAS_RC_INPUTS","GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_LOCK","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK","GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_INFINITE_YAW","GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_NEUTRAL","GIMBAL_MANAGER_FLAGS_PITCH_LOCK","GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE","GIMBAL_MANAGER_FLAGS_RC_MIXED","GIMBAL_MANAGER_FLAGS_RETRACT","GIMBAL_MANAGER_FLAGS_ROLL_LOCK","GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME","GIMBAL_MANAGER_FLAGS_YAW_LOCK","GIMBAL_MANAGER_INFORMATION","GIMBAL_MANAGER_INFORMATION_DATA","GIMBAL_MANAGER_SET_ATTITUDE","GIMBAL_MANAGER_SET_ATTITUDE_DATA","GIMBAL_MANAGER_SET_MANUAL_CONTROL","GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA","GIMBAL_MANAGER_SET_PITCHYAW","GIMBAL_MANAGER_SET_PITCHYAW_DATA","GIMBAL_MANAGER_STATUS","GIMBAL_MANAGER_STATUS_DATA","GIMBAL_REPORT","GIMBAL_REPORT_DATA","GIMBAL_TORQUE_CMD_REPORT","GIMBAL_TORQUE_CMD_REPORT_DATA","GLOBAL_POSITION_INT","GLOBAL_POSITION_INT_COV","GLOBAL_POSITION_INT_COV_DATA","GLOBAL_POSITION_INT_DATA","GLOBAL_VISION_POSITION_ESTIMATE","GLOBAL_VISION_POSITION_ESTIMATE_DATA","GOPRO_BURST_RATE_10_IN_1_SECOND","GOPRO_BURST_RATE_10_IN_2_SECOND","GOPRO_BURST_RATE_10_IN_3_SECOND","GOPRO_BURST_RATE_30_IN_1_SECOND","GOPRO_BURST_RATE_30_IN_2_SECOND","GOPRO_BURST_RATE_30_IN_3_SECOND","GOPRO_BURST_RATE_30_IN_6_SECOND","GOPRO_BURST_RATE_3_IN_1_SECOND","GOPRO_BURST_RATE_5_IN_1_SECOND","GOPRO_CAPTURE_MODE_BURST","GOPRO_CAPTURE_MODE_MULTI_SHOT","GOPRO_CAPTURE_MODE_PHOTO","GOPRO_CAPTURE_MODE_PLAYBACK","GOPRO_CAPTURE_MODE_SETUP","GOPRO_CAPTURE_MODE_TIME_LAPSE","GOPRO_CAPTURE_MODE_UNKNOWN","GOPRO_CAPTURE_MODE_VIDEO","GOPRO_CHARGING_DISABLED","GOPRO_CHARGING_ENABLED","GOPRO_COMMAND_BATTERY","GOPRO_COMMAND_CAPTURE_MODE","GOPRO_COMMAND_CHARGING","GOPRO_COMMAND_LOW_LIGHT","GOPRO_COMMAND_MODEL","GOPRO_COMMAND_PHOTO_BURST_RATE","GOPRO_COMMAND_PHOTO_RESOLUTION","GOPRO_COMMAND_POWER","GOPRO_COMMAND_PROTUNE","GOPRO_COMMAND_PROTUNE_COLOUR","GOPRO_COMMAND_PROTUNE_EXPOSURE","GOPRO_COMMAND_PROTUNE_GAIN","GOPRO_COMMAND_PROTUNE_SHARPNESS","GOPRO_COMMAND_PROTUNE_WHITE_BALANCE","GOPRO_COMMAND_SHUTTER","GOPRO_COMMAND_TIME","GOPRO_COMMAND_VIDEO_SETTINGS","GOPRO_FIELD_OF_VIEW_MEDIUM","GOPRO_FIELD_OF_VIEW_NARROW","GOPRO_FIELD_OF_VIEW_WIDE","GOPRO_FLAG_RECORDING","GOPRO_FRAME_RATE_100","GOPRO_FRAME_RATE_12","GOPRO_FRAME_RATE_120","GOPRO_FRAME_RATE_12_5","GOPRO_FRAME_RATE_15","GOPRO_FRAME_RATE_24","GOPRO_FRAME_RATE_240","GOPRO_FRAME_RATE_25","GOPRO_FRAME_RATE_30","GOPRO_FRAME_RATE_48","GOPRO_FRAME_RATE_50","GOPRO_FRAME_RATE_60","GOPRO_FRAME_RATE_80","GOPRO_FRAME_RATE_90","GOPRO_GET_REQUEST","GOPRO_GET_REQUEST_DATA","GOPRO_GET_RESPONSE","GOPRO_GET_RESPONSE_DATA","GOPRO_HEARTBEAT","GOPRO_HEARTBEAT_DATA","GOPRO_HEARTBEAT_STATUS_CONNECTED","GOPRO_HEARTBEAT_STATUS_DISCONNECTED","GOPRO_HEARTBEAT_STATUS_ERROR","GOPRO_HEARTBEAT_STATUS_INCOMPATIBLE","GOPRO_MODEL_HERO_3_PLUS_BLACK","GOPRO_MODEL_HERO_3_PLUS_SILVER","GOPRO_MODEL_HERO_4_BLACK","GOPRO_MODEL_HERO_4_SILVER","GOPRO_MODEL_UNKNOWN","GOPRO_PHOTO_RESOLUTION_10MP_WIDE","GOPRO_PHOTO_RESOLUTION_12MP_WIDE","GOPRO_PHOTO_RESOLUTION_5MP_MEDIUM","GOPRO_PHOTO_RESOLUTION_7MP_MEDIUM","GOPRO_PHOTO_RESOLUTION_7MP_WIDE","GOPRO_PROTUNE_COLOUR_NEUTRAL","GOPRO_PROTUNE_COLOUR_STANDARD","GOPRO_PROTUNE_EXPOSURE_NEG_0_5","GOPRO_PROTUNE_EXPOSURE_NEG_1_0","GOPRO_PROTUNE_EXPOSURE_NEG_1_5","GOPRO_PROTUNE_EXPOSURE_NEG_2_0","GOPRO_PROTUNE_EXPOSURE_NEG_2_5","GOPRO_PROTUNE_EXPOSURE_NEG_3_0","GOPRO_PROTUNE_EXPOSURE_NEG_3_5","GOPRO_PROTUNE_EXPOSURE_NEG_4_0","GOPRO_PROTUNE_EXPOSURE_NEG_4_5","GOPRO_PROTUNE_EXPOSURE_NEG_5_0","GOPRO_PROTUNE_EXPOSURE_POS_0_5","GOPRO_PROTUNE_EXPOSURE_POS_1_0","GOPRO_PROTUNE_EXPOSURE_POS_1_5","GOPRO_PROTUNE_EXPOSURE_POS_2_0","GOPRO_PROTUNE_EXPOSURE_POS_2_5","GOPRO_PROTUNE_EXPOSURE_POS_3_0","GOPRO_PROTUNE_EXPOSURE_POS_3_5","GOPRO_PROTUNE_EXPOSURE_POS_4_0","GOPRO_PROTUNE_EXPOSURE_POS_4_5","GOPRO_PROTUNE_EXPOSURE_POS_5_0","GOPRO_PROTUNE_EXPOSURE_ZERO","GOPRO_PROTUNE_GAIN_1600","GOPRO_PROTUNE_GAIN_3200","GOPRO_PROTUNE_GAIN_400","GOPRO_PROTUNE_GAIN_6400","GOPRO_PROTUNE_GAIN_800","GOPRO_PROTUNE_SHARPNESS_HIGH","GOPRO_PROTUNE_SHARPNESS_LOW","GOPRO_PROTUNE_SHARPNESS_MEDIUM","GOPRO_PROTUNE_WHITE_BALANCE_3000K","GOPRO_PROTUNE_WHITE_BALANCE_5500K","GOPRO_PROTUNE_WHITE_BALANCE_6500K","GOPRO_PROTUNE_WHITE_BALANCE_AUTO","GOPRO_PROTUNE_WHITE_BALANCE_RAW","GOPRO_REQUEST_FAILED","GOPRO_REQUEST_SUCCESS","GOPRO_RESOLUTION_1080p","GOPRO_RESOLUTION_1080p_SUPERVIEW","GOPRO_RESOLUTION_1440p","GOPRO_RESOLUTION_2_7k_16_9","GOPRO_RESOLUTION_2_7k_17_9","GOPRO_RESOLUTION_2_7k_4_3","GOPRO_RESOLUTION_2_7k_SUPERVIEW","GOPRO_RESOLUTION_480p","GOPRO_RESOLUTION_4k_16_9","GOPRO_RESOLUTION_4k_17_9","GOPRO_RESOLUTION_4k_SUPERVIEW","GOPRO_RESOLUTION_720p","GOPRO_RESOLUTION_720p_SUPERVIEW","GOPRO_RESOLUTION_960p","GOPRO_SET_REQUEST","GOPRO_SET_REQUEST_DATA","GOPRO_SET_RESPONSE","GOPRO_SET_RESPONSE_DATA","GOPRO_VIDEO_SETTINGS_TV_MODE","GPS2_RAW","GPS2_RAW_DATA","GPS2_RTK","GPS2_RTK_DATA","GPS_FIX_TYPE_2D_FIX","GPS_FIX_TYPE_3D_FIX","GPS_FIX_TYPE_DGPS","GPS_FIX_TYPE_NO_FIX","GPS_FIX_TYPE_NO_GPS","GPS_FIX_TYPE_PPP","GPS_FIX_TYPE_RTK_FIXED","GPS_FIX_TYPE_RTK_FLOAT","GPS_FIX_TYPE_STATIC","GPS_GLOBAL_ORIGIN","GPS_GLOBAL_ORIGIN_DATA","GPS_INJECT_DATA","GPS_INJECT_DATA_DATA","GPS_INPUT","GPS_INPUT_DATA","GPS_INPUT_IGNORE_FLAG_ALT","GPS_INPUT_IGNORE_FLAG_HDOP","GPS_INPUT_IGNORE_FLAG_HORIZONTAL_ACCURACY","GPS_INPUT_IGNORE_FLAG_SPEED_ACCURACY","GPS_INPUT_IGNORE_FLAG_VDOP","GPS_INPUT_IGNORE_FLAG_VEL_HORIZ","GPS_INPUT_IGNORE_FLAG_VEL_VERT","GPS_INPUT_IGNORE_FLAG_VERTICAL_ACCURACY","GPS_RAW_INT","GPS_RAW_INT_DATA","GPS_RTCM_DATA","GPS_RTCM_DATA_DATA","GPS_RTK","GPS_RTK_DATA","GPS_STATUS","GPS_STATUS_DATA","GRIPPER_ACTION_GRAB","GRIPPER_ACTION_RELEASE","GimbalAxis","GimbalAxisCalibrationRequired","GimbalAxisCalibrationStatus","GimbalDeviceCapFlags","GimbalDeviceErrorFlags","GimbalDeviceFlags","GimbalManagerCapFlags","GimbalManagerFlags","GoproBurstRate","GoproCaptureMode","GoproCharging","GoproCommand","GoproFieldOfView","GoproFrameRate","GoproHeartbeatFlags","GoproHeartbeatStatus","GoproModel","GoproPhotoResolution","GoproProtuneColour","GoproProtuneExposure","GoproProtuneGain","GoproProtuneSharpness","GoproProtuneWhiteBalance","GoproRequestStatus","GoproResolution","GoproVideoSettingsFlags","GpsFixType","GpsInputIgnoreFlags","GripperActions","HEADING_TYPE_COURSE_OVER_GROUND","HEADING_TYPE_HEADING","HEARTBEAT","HEARTBEAT_DATA","HERELINK_TELEM","HERELINK_TELEM_DATA","HERELINK_VIDEO_STREAM_INFORMATION","HERELINK_VIDEO_STREAM_INFORMATION_DATA","HIGHRES_IMU","HIGHRES_IMU_DATA","HIGHRES_IMU_UPDATED_ABS_PRESSURE","HIGHRES_IMU_UPDATED_ALL","HIGHRES_IMU_UPDATED_DIFF_PRESSURE","HIGHRES_IMU_UPDATED_NONE","HIGHRES_IMU_UPDATED_PRESSURE_ALT","HIGHRES_IMU_UPDATED_TEMPERATURE","HIGHRES_IMU_UPDATED_XACC","HIGHRES_IMU_UPDATED_XGYRO","HIGHRES_IMU_UPDATED_XMAG","HIGHRES_IMU_UPDATED_YACC","HIGHRES_IMU_UPDATED_YGYRO","HIGHRES_IMU_UPDATED_YMAG","HIGHRES_IMU_UPDATED_ZACC","HIGHRES_IMU_UPDATED_ZGYRO","HIGHRES_IMU_UPDATED_ZMAG","HIGH_LATENCY","HIGH_LATENCY2","HIGH_LATENCY2_DATA","HIGH_LATENCY_DATA","HIL_ACTUATOR_CONTROLS","HIL_ACTUATOR_CONTROLS_DATA","HIL_CONTROLS","HIL_CONTROLS_DATA","HIL_GPS","HIL_GPS_DATA","HIL_OPTICAL_FLOW","HIL_OPTICAL_FLOW_DATA","HIL_RC_INPUTS_RAW","HIL_RC_INPUTS_RAW_DATA","HIL_SENSOR","HIL_SENSOR_DATA","HIL_SENSOR_UPDATED_ABS_PRESSURE","HIL_SENSOR_UPDATED_DIFF_PRESSURE","HIL_SENSOR_UPDATED_NONE","HIL_SENSOR_UPDATED_PRESSURE_ALT","HIL_SENSOR_UPDATED_RESET","HIL_SENSOR_UPDATED_TEMPERATURE","HIL_SENSOR_UPDATED_XACC","HIL_SENSOR_UPDATED_XGYRO","HIL_SENSOR_UPDATED_XMAG","HIL_SENSOR_UPDATED_YACC","HIL_SENSOR_UPDATED_YGYRO","HIL_SENSOR_UPDATED_YMAG","HIL_SENSOR_UPDATED_ZACC","HIL_SENSOR_UPDATED_ZGYRO","HIL_SENSOR_UPDATED_ZMAG","HIL_STATE","HIL_STATE_DATA","HIL_STATE_QUATERNION","HIL_STATE_QUATERNION_DATA","HL_FAILURE_FLAG_3D_ACCEL","HL_FAILURE_FLAG_3D_GYRO","HL_FAILURE_FLAG_3D_MAG","HL_FAILURE_FLAG_ABSOLUTE_PRESSURE","HL_FAILURE_FLAG_BATTERY","HL_FAILURE_FLAG_DIFFERENTIAL_PRESSURE","HL_FAILURE_FLAG_ENGINE","HL_FAILURE_FLAG_ESTIMATOR","HL_FAILURE_FLAG_GEOFENCE","HL_FAILURE_FLAG_GPS","HL_FAILURE_FLAG_MISSION","HL_FAILURE_FLAG_OFFBOARD_LINK","HL_FAILURE_FLAG_RC_RECEIVER","HL_FAILURE_FLAG_TERRAIN","HOME_POSITION","HOME_POSITION_DATA","HWSTATUS","HWSTATUS_DATA","HYGROMETER_SENSOR","HYGROMETER_SENSOR_DATA","HeadingType","HighresImuUpdatedFlags","HilSensorUpdatedFlags","HlFailureFlag","I","I2Cerr","ICAO","ICAO_address","ICAROUS_FMS_STATE_APPROACH","ICAROUS_FMS_STATE_CLIMB","ICAROUS_FMS_STATE_CRUISE","ICAROUS_FMS_STATE_IDLE","ICAROUS_FMS_STATE_LAND","ICAROUS_FMS_STATE_TAKEOFF","ICAROUS_HEARTBEAT","ICAROUS_HEARTBEAT_DATA","ICAROUS_KINEMATIC_BANDS","ICAROUS_KINEMATIC_BANDS_DATA","ICAROUS_TRACK_BAND_TYPE_NEAR","ICAROUS_TRACK_BAND_TYPE_NONE","ICAROUS_TRACK_BAND_TYPE_RECOVERY","ISBD_LINK_STATUS","ISBD_LINK_STATUS_DATA","IcarousFmsState","IcarousTrackBandTypes","LANDING_TARGET","LANDING_TARGET_DATA","LANDING_TARGET_TYPE_LIGHT_BEACON","LANDING_TARGET_TYPE_RADIO_BEACON","LANDING_TARGET_TYPE_VISION_FIDUCIAL","LANDING_TARGET_TYPE_VISION_OTHER","LAND_IMMEDIATELY","LED_CONTROL","LED_CONTROL_DATA","LED_CONTROL_PATTERN_CUSTOM","LED_CONTROL_PATTERN_FIRMWAREUPDATE","LED_CONTROL_PATTERN_OFF","LIMITS_DISABLED","LIMITS_ENABLED","LIMITS_INIT","LIMITS_RECOVERED","LIMITS_RECOVERING","LIMITS_STATUS","LIMITS_STATUS_DATA","LIMITS_TRIGGERED","LIMIT_ALTITUDE","LIMIT_GEOFENCE","LIMIT_GPSLOCK","LINK_NODE_STATUS","LINK_NODE_STATUS_DATA","LOCAL_POSITION_NED","LOCAL_POSITION_NED_COV","LOCAL_POSITION_NED_COV_DATA","LOCAL_POSITION_NED_DATA","LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET","LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA","LOGGING_ACK","LOGGING_ACK_DATA","LOGGING_DATA","LOGGING_DATA_ACKED","LOGGING_DATA_ACKED_DATA","LOGGING_DATA_DATA","LOG_DATA","LOG_DATA_DATA","LOG_ENTRY","LOG_ENTRY_DATA","LOG_ERASE","LOG_ERASE_DATA","LOG_REQUEST_DATA","LOG_REQUEST_DATA_DATA","LOG_REQUEST_END","LOG_REQUEST_END_DATA","LOG_REQUEST_LIST","LOG_REQUEST_LIST_DATA","LandingTargetType","LedControlPattern","LimitModule","LimitsState","MAG_CAL_BAD_ORIENTATION","MAG_CAL_BAD_RADIUS","MAG_CAL_FAILED","MAG_CAL_NOT_STARTED","MAG_CAL_PROGRESS","MAG_CAL_PROGRESS_DATA","MAG_CAL_REPORT","MAG_CAL_REPORT_DATA","MAG_CAL_RUNNING_STEP_ONE","MAG_CAL_RUNNING_STEP_TWO","MAG_CAL_SUCCESS","MAG_CAL_WAITING_TO_START","MANUAL_CONTROL","MANUAL_CONTROL_DATA","MANUAL_SETPOINT","MANUAL_SETPOINT_DATA","MAVLINK_DATA_STREAM_IMG_BMP","MAVLINK_DATA_STREAM_IMG_JPEG","MAVLINK_DATA_STREAM_IMG_PGM","MAVLINK_DATA_STREAM_IMG_PNG","MAVLINK_DATA_STREAM_IMG_RAW32U","MAVLINK_DATA_STREAM_IMG_RAW8U","MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE","MAV_ARM_AUTH_DENIED_REASON_BAD_WEATHER","MAV_ARM_AUTH_DENIED_REASON_GENERIC","MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT","MAV_ARM_AUTH_DENIED_REASON_NONE","MAV_ARM_AUTH_DENIED_REASON_TIMEOUT","MAV_AUTOPILOT_AEROB","MAV_AUTOPILOT_AIRRAILS","MAV_AUTOPILOT_ARDUPILOTMEGA","MAV_AUTOPILOT_ARMAZILA","MAV_AUTOPILOT_ASLUAV","MAV_AUTOPILOT_AUTOQUAD","MAV_AUTOPILOT_FP","MAV_AUTOPILOT_GENERIC","MAV_AUTOPILOT_GENERIC_MISSION_FULL","MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY","MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY","MAV_AUTOPILOT_INVALID","MAV_AUTOPILOT_OPENPILOT","MAV_AUTOPILOT_PPZ","MAV_AUTOPILOT_PX4","MAV_AUTOPILOT_REFLEX","MAV_AUTOPILOT_RESERVED","MAV_AUTOPILOT_SLUGS","MAV_AUTOPILOT_SMACCMPILOT","MAV_AUTOPILOT_SMARTAP","MAV_AUTOPILOT_UDB","MAV_BATTERY_CHARGE_STATE_CHARGING","MAV_BATTERY_CHARGE_STATE_CRITICAL","MAV_BATTERY_CHARGE_STATE_EMERGENCY","MAV_BATTERY_CHARGE_STATE_FAILED","MAV_BATTERY_CHARGE_STATE_LOW","MAV_BATTERY_CHARGE_STATE_OK","MAV_BATTERY_CHARGE_STATE_UNDEFINED","MAV_BATTERY_CHARGE_STATE_UNHEALTHY","MAV_BATTERY_FAULT_CELL_FAIL","MAV_BATTERY_FAULT_DEEP_DISCHARGE","MAV_BATTERY_FAULT_INCOMPATIBLE_FIRMWARE","MAV_BATTERY_FAULT_INCOMPATIBLE_VOLTAGE","MAV_BATTERY_FAULT_OVER_CURRENT","MAV_BATTERY_FAULT_OVER_TEMPERATURE","MAV_BATTERY_FAULT_SPIKES","MAV_BATTERY_FAULT_UNDER_TEMPERATURE","MAV_BATTERY_FUNCTION_ALL","MAV_BATTERY_FUNCTION_AVIONICS","MAV_BATTERY_FUNCTION_PAYLOAD","MAV_BATTERY_FUNCTION_PROPULSION","MAV_BATTERY_FUNCTION_UNKNOWN","MAV_BATTERY_MODE_AUTO_DISCHARGING","MAV_BATTERY_MODE_HOT_SWAP","MAV_BATTERY_MODE_UNKNOWN","MAV_BATTERY_TYPE_LIFE","MAV_BATTERY_TYPE_LION","MAV_BATTERY_TYPE_LIPO","MAV_BATTERY_TYPE_NIMH","MAV_BATTERY_TYPE_UNKNOWN","MAV_CMD_ACCELCAL_VEHICLE_POS","MAV_CMD_ACK_ERR_ACCESS_DENIED","MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE","MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED","MAV_CMD_ACK_ERR_FAIL","MAV_CMD_ACK_ERR_NOT_SUPPORTED","MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE","MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE","MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE","MAV_CMD_ACK_OK","MAV_CMD_ACTUATOR_TEST","MAV_CMD_AIRFRAME_CONFIGURATION","MAV_CMD_ARM_AUTHORIZATION_REQUEST","MAV_CMD_BATTERY_RESET","MAV_CMD_CAMERA_STOP_TRACKING","MAV_CMD_CAMERA_TRACK_POINT","MAV_CMD_CAMERA_TRACK_RECTANGLE","MAV_CMD_CAN_FORWARD","MAV_CMD_COMPONENT_ARM_DISARM","MAV_CMD_CONDITION_CHANGE_ALT","MAV_CMD_CONDITION_DELAY","MAV_CMD_CONDITION_DISTANCE","MAV_CMD_CONDITION_GATE","MAV_CMD_CONDITION_LAST","MAV_CMD_CONDITION_YAW","MAV_CMD_CONFIGURE_ACTUATOR","MAV_CMD_CONTROL_HIGH_LATENCY","MAV_CMD_DEBUG_TRAP","MAV_CMD_DO_ACCEPT_MAG_CAL","MAV_CMD_DO_ADSB_OUT_IDENT","MAV_CMD_DO_AUTOTUNE_ENABLE","MAV_CMD_DO_AUX_FUNCTION","MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_HIGH","MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_LOW","MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_MIDDLE","MAV_CMD_DO_CANCEL_MAG_CAL","MAV_CMD_DO_CHANGE_ALTITUDE","MAV_CMD_DO_CHANGE_SPEED","MAV_CMD_DO_CONTROL_VIDEO","MAV_CMD_DO_DIGICAM_CONFIGURE","MAV_CMD_DO_DIGICAM_CONTROL","MAV_CMD_DO_ENGINE_CONTROL","MAV_CMD_DO_FENCE_ENABLE","MAV_CMD_DO_FLIGHTTERMINATION","MAV_CMD_DO_FOLLOW","MAV_CMD_DO_FOLLOW_REPOSITION","MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE","MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW","MAV_CMD_DO_GO_AROUND","MAV_CMD_DO_GRIPPER","MAV_CMD_DO_GUIDED_LIMITS","MAV_CMD_DO_GUIDED_MASTER","MAV_CMD_DO_INVERTED_FLIGHT","MAV_CMD_DO_JUMP","MAV_CMD_DO_JUMP_TAG","MAV_CMD_DO_LAND_START","MAV_CMD_DO_LAST","MAV_CMD_DO_MOTOR_TEST","MAV_CMD_DO_MOUNT_CONFIGURE","MAV_CMD_DO_MOUNT_CONTROL","MAV_CMD_DO_MOUNT_CONTROL_QUAT","MAV_CMD_DO_ORBIT","MAV_CMD_DO_PARACHUTE","MAV_CMD_DO_PAUSE_CONTINUE","MAV_CMD_DO_RALLY_LAND","MAV_CMD_DO_REPEAT_RELAY","MAV_CMD_DO_REPEAT_SERVO","MAV_CMD_DO_REPOSITION","MAV_CMD_DO_SEND_BANNER","MAV_CMD_DO_SEND_SCRIPT_MESSAGE","MAV_CMD_DO_SET_ACTUATOR","MAV_CMD_DO_SET_CAM_TRIGG_DIST","MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL","MAV_CMD_DO_SET_HOME","MAV_CMD_DO_SET_MISSION_CURRENT","MAV_CMD_DO_SET_MODE","MAV_CMD_DO_SET_PARAMETER","MAV_CMD_DO_SET_RELAY","MAV_CMD_DO_SET_RESUME_REPEAT_DIST","MAV_CMD_DO_SET_REVERSE","MAV_CMD_DO_SET_ROI","MAV_CMD_DO_SET_ROI_LOCATION","MAV_CMD_DO_SET_ROI_NONE","MAV_CMD_DO_SET_ROI_SYSID","MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET","MAV_CMD_DO_SET_SERVO","MAV_CMD_DO_SPRAYER","MAV_CMD_DO_START_MAG_CAL","MAV_CMD_DO_TRIGGER_CONTROL","MAV_CMD_DO_VTOL_TRANSITION","MAV_CMD_DO_WINCH","MAV_CMD_FIXED_MAG_CAL","MAV_CMD_FIXED_MAG_CAL_FIELD","MAV_CMD_FIXED_MAG_CAL_YAW","MAV_CMD_FLASH_BOOTLOADER","MAV_CMD_GET_HOME_POSITION","MAV_CMD_GET_MESSAGE_INTERVAL","MAV_CMD_GIMBAL_AXIS_CALIBRATION_STATUS","MAV_CMD_GIMBAL_FULL_RESET","MAV_CMD_GIMBAL_REQUEST_AXIS_CALIBRATION","MAV_CMD_GIMBAL_RESET","MAV_CMD_GUIDED_CHANGE_ALTITUDE","MAV_CMD_GUIDED_CHANGE_HEADING","MAV_CMD_GUIDED_CHANGE_SPEED","MAV_CMD_ILLUMINATOR_ON_OFF","MAV_CMD_IMAGE_START_CAPTURE","MAV_CMD_IMAGE_STOP_CAPTURE","MAV_CMD_INJECT_FAILURE","MAV_CMD_JUMP_TAG","MAV_CMD_LOGGING_START","MAV_CMD_LOGGING_STOP","MAV_CMD_MISSION_START","MAV_CMD_NAV_ALTITUDE_WAIT","MAV_CMD_NAV_ATTITUDE_TIME","MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT","MAV_CMD_NAV_DELAY","MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION","MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION","MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION","MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION","MAV_CMD_NAV_FENCE_RETURN_POINT","MAV_CMD_NAV_FOLLOW","MAV_CMD_NAV_GUIDED_ENABLE","MAV_CMD_NAV_LAND","MAV_CMD_NAV_LAND_LOCAL","MAV_CMD_NAV_LAST","MAV_CMD_NAV_LOITER_TIME","MAV_CMD_NAV_LOITER_TO_ALT","MAV_CMD_NAV_LOITER_TURNS","MAV_CMD_NAV_LOITER_UNLIM","MAV_CMD_NAV_PATHPLANNING","MAV_CMD_NAV_PAYLOAD_PLACE","MAV_CMD_NAV_RALLY_POINT","MAV_CMD_NAV_RETURN_TO_LAUNCH","MAV_CMD_NAV_ROI","MAV_CMD_NAV_SCRIPT_TIME","MAV_CMD_NAV_SET_YAW_SPEED","MAV_CMD_NAV_SPLINE_WAYPOINT","MAV_CMD_NAV_TAKEOFF","MAV_CMD_NAV_TAKEOFF_LOCAL","MAV_CMD_NAV_VTOL_LAND","MAV_CMD_NAV_VTOL_TAKEOFF","MAV_CMD_NAV_WAYPOINT","MAV_CMD_OBLIQUE_SURVEY","MAV_CMD_OVERRIDE_GOTO","MAV_CMD_PANORAMA_CREATE","MAV_CMD_PAYLOAD_CONTROL_DEPLOY","MAV_CMD_PAYLOAD_PREPARE_DEPLOY","MAV_CMD_POWER_OFF_INITIATED","MAV_CMD_PREFLIGHT_CALIBRATION","MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN","MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS","MAV_CMD_PREFLIGHT_STORAGE","MAV_CMD_PREFLIGHT_UAVCAN","MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES","MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS","MAV_CMD_REQUEST_CAMERA_IMAGE_CAPTURE","MAV_CMD_REQUEST_CAMERA_INFORMATION","MAV_CMD_REQUEST_CAMERA_SETTINGS","MAV_CMD_REQUEST_FLIGHT_INFORMATION","MAV_CMD_REQUEST_MESSAGE","MAV_CMD_REQUEST_PROTOCOL_VERSION","MAV_CMD_REQUEST_STORAGE_INFORMATION","MAV_CMD_REQUEST_VIDEO_STREAM_INFORMATION","MAV_CMD_REQUEST_VIDEO_STREAM_STATUS","MAV_CMD_RESET_CAMERA_SETTINGS","MAV_CMD_RUN_PREARM_CHECKS","MAV_CMD_SCRIPTING","MAV_CMD_SET_CAMERA_FOCUS","MAV_CMD_SET_CAMERA_MODE","MAV_CMD_SET_CAMERA_ZOOM","MAV_CMD_SET_EKF_SOURCE_SET","MAV_CMD_SET_FACTORY_TEST_MODE","MAV_CMD_SET_GUIDED_SUBMODE_CIRCLE","MAV_CMD_SET_GUIDED_SUBMODE_STANDARD","MAV_CMD_SET_MESSAGE_INTERVAL","MAV_CMD_SET_STORAGE_USAGE","MAV_CMD_SOLO_BTN_FLY_CLICK","MAV_CMD_SOLO_BTN_FLY_HOLD","MAV_CMD_SOLO_BTN_PAUSE_CLICK","MAV_CMD_SPATIAL_USER_1","MAV_CMD_SPATIAL_USER_2","MAV_CMD_SPATIAL_USER_3","MAV_CMD_SPATIAL_USER_4","MAV_CMD_SPATIAL_USER_5","MAV_CMD_START_RX_PAIR","MAV_CMD_STORAGE_FORMAT","MAV_CMD_UAVCAN_GET_NODE_INFO","MAV_CMD_USER_1","MAV_CMD_USER_2","MAV_CMD_USER_3","MAV_CMD_USER_4","MAV_CMD_USER_5","MAV_CMD_VIDEO_START_CAPTURE","MAV_CMD_VIDEO_START_STREAMING","MAV_CMD_VIDEO_STOP_CAPTURE","MAV_CMD_VIDEO_STOP_STREAMING","MAV_CMD_WAYPOINT_USER_1","MAV_CMD_WAYPOINT_USER_2","MAV_CMD_WAYPOINT_USER_3","MAV_CMD_WAYPOINT_USER_4","MAV_CMD_WAYPOINT_USER_5","MAV_COLLISION_ACTION_ASCEND_OR_DESCEND","MAV_COLLISION_ACTION_HOVER","MAV_COLLISION_ACTION_MOVE_HORIZONTALLY","MAV_COLLISION_ACTION_MOVE_PERPENDICULAR","MAV_COLLISION_ACTION_NONE","MAV_COLLISION_ACTION_REPORT","MAV_COLLISION_ACTION_RTL","MAV_COLLISION_SRC_ADSB","MAV_COLLISION_SRC_MAVLINK_GPS_GLOBAL_INT","MAV_COLLISION_THREAT_LEVEL_HIGH","MAV_COLLISION_THREAT_LEVEL_LOW","MAV_COLLISION_THREAT_LEVEL_NONE","MAV_COMP_ID_ADSB","MAV_COMP_ID_ALL","MAV_COMP_ID_AUTOPILOT1","MAV_COMP_ID_BATTERY","MAV_COMP_ID_BATTERY2","MAV_COMP_ID_CAMERA","MAV_COMP_ID_CAMERA2","MAV_COMP_ID_CAMERA3","MAV_COMP_ID_CAMERA4","MAV_COMP_ID_CAMERA5","MAV_COMP_ID_CAMERA6","MAV_COMP_ID_FLARM","MAV_COMP_ID_GIMBAL","MAV_COMP_ID_GIMBAL2","MAV_COMP_ID_GIMBAL3","MAV_COMP_ID_GIMBAL4","MAV_COMP_ID_GIMBAL5","MAV_COMP_ID_GIMBAL6","MAV_COMP_ID_GPS","MAV_COMP_ID_GPS2","MAV_COMP_ID_IMU","MAV_COMP_ID_IMU_2","MAV_COMP_ID_IMU_3","MAV_COMP_ID_LOG","MAV_COMP_ID_MAVCAN","MAV_COMP_ID_MISSIONPLANNER","MAV_COMP_ID_OBSTACLE_AVOIDANCE","MAV_COMP_ID_ODID_TXRX_1","MAV_COMP_ID_ODID_TXRX_2","MAV_COMP_ID_ODID_TXRX_3","MAV_COMP_ID_ONBOARD_COMPUTER","MAV_COMP_ID_ONBOARD_COMPUTER2","MAV_COMP_ID_ONBOARD_COMPUTER3","MAV_COMP_ID_ONBOARD_COMPUTER4","MAV_COMP_ID_OSD","MAV_COMP_ID_PAIRING_MANAGER","MAV_COMP_ID_PARACHUTE","MAV_COMP_ID_PATHPLANNER","MAV_COMP_ID_PERIPHERAL","MAV_COMP_ID_QX1_GIMBAL","MAV_COMP_ID_SERVO1","MAV_COMP_ID_SERVO10","MAV_COMP_ID_SERVO11","MAV_COMP_ID_SERVO12","MAV_COMP_ID_SERVO13","MAV_COMP_ID_SERVO14","MAV_COMP_ID_SERVO2","MAV_COMP_ID_SERVO3","MAV_COMP_ID_SERVO4","MAV_COMP_ID_SERVO5","MAV_COMP_ID_SERVO6","MAV_COMP_ID_SERVO7","MAV_COMP_ID_SERVO8","MAV_COMP_ID_SERVO9","MAV_COMP_ID_SYSTEM_CONTROL","MAV_COMP_ID_TELEMETRY_RADIO","MAV_COMP_ID_TUNNEL_NODE","MAV_COMP_ID_UART_BRIDGE","MAV_COMP_ID_UDP_BRIDGE","MAV_COMP_ID_USER1","MAV_COMP_ID_USER10","MAV_COMP_ID_USER11","MAV_COMP_ID_USER12","MAV_COMP_ID_USER13","MAV_COMP_ID_USER14","MAV_COMP_ID_USER15","MAV_COMP_ID_USER16","MAV_COMP_ID_USER17","MAV_COMP_ID_USER18","MAV_COMP_ID_USER19","MAV_COMP_ID_USER2","MAV_COMP_ID_USER20","MAV_COMP_ID_USER21","MAV_COMP_ID_USER22","MAV_COMP_ID_USER23","MAV_COMP_ID_USER24","MAV_COMP_ID_USER25","MAV_COMP_ID_USER26","MAV_COMP_ID_USER27","MAV_COMP_ID_USER28","MAV_COMP_ID_USER29","MAV_COMP_ID_USER3","MAV_COMP_ID_USER30","MAV_COMP_ID_USER31","MAV_COMP_ID_USER32","MAV_COMP_ID_USER33","MAV_COMP_ID_USER34","MAV_COMP_ID_USER35","MAV_COMP_ID_USER36","MAV_COMP_ID_USER37","MAV_COMP_ID_USER38","MAV_COMP_ID_USER39","MAV_COMP_ID_USER4","MAV_COMP_ID_USER40","MAV_COMP_ID_USER41","MAV_COMP_ID_USER42","MAV_COMP_ID_USER43","MAV_COMP_ID_USER45","MAV_COMP_ID_USER46","MAV_COMP_ID_USER47","MAV_COMP_ID_USER48","MAV_COMP_ID_USER49","MAV_COMP_ID_USER5","MAV_COMP_ID_USER50","MAV_COMP_ID_USER51","MAV_COMP_ID_USER52","MAV_COMP_ID_USER53","MAV_COMP_ID_USER54","MAV_COMP_ID_USER55","MAV_COMP_ID_USER56","MAV_COMP_ID_USER57","MAV_COMP_ID_USER58","MAV_COMP_ID_USER59","MAV_COMP_ID_USER6","MAV_COMP_ID_USER60","MAV_COMP_ID_USER61","MAV_COMP_ID_USER62","MAV_COMP_ID_USER63","MAV_COMP_ID_USER64","MAV_COMP_ID_USER65","MAV_COMP_ID_USER66","MAV_COMP_ID_USER67","MAV_COMP_ID_USER68","MAV_COMP_ID_USER69","MAV_COMP_ID_USER7","MAV_COMP_ID_USER70","MAV_COMP_ID_USER71","MAV_COMP_ID_USER72","MAV_COMP_ID_USER73","MAV_COMP_ID_USER74","MAV_COMP_ID_USER75","MAV_COMP_ID_USER8","MAV_COMP_ID_USER9","MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY","MAV_COMP_ID_WINCH","MAV_DATA_STREAM_ALL","MAV_DATA_STREAM_EXTENDED_STATUS","MAV_DATA_STREAM_EXTRA1","MAV_DATA_STREAM_EXTRA2","MAV_DATA_STREAM_EXTRA3","MAV_DATA_STREAM_POSITION","MAV_DATA_STREAM_RAW_CONTROLLER","MAV_DATA_STREAM_RAW_SENSORS","MAV_DATA_STREAM_RC_CHANNELS","MAV_DISTANCE_SENSOR_INFRARED","MAV_DISTANCE_SENSOR_LASER","MAV_DISTANCE_SENSOR_RADAR","MAV_DISTANCE_SENSOR_ULTRASOUND","MAV_DISTANCE_SENSOR_UNKNOWN","MAV_DO_REPOSITION_FLAGS_CHANGE_MODE","MAV_ESTIMATOR_TYPE_AUTOPILOT","MAV_ESTIMATOR_TYPE_GPS","MAV_ESTIMATOR_TYPE_GPS_INS","MAV_ESTIMATOR_TYPE_LIDAR","MAV_ESTIMATOR_TYPE_MOCAP","MAV_ESTIMATOR_TYPE_NAIVE","MAV_ESTIMATOR_TYPE_UNKNOWN","MAV_ESTIMATOR_TYPE_VIO","MAV_ESTIMATOR_TYPE_VISION","MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET","MAV_EVENT_ERROR_REASON_UNAVAILABLE","MAV_FRAME_BODY_FRD","MAV_FRAME_BODY_NED","MAV_FRAME_BODY_OFFSET_NED","MAV_FRAME_GLOBAL","MAV_FRAME_GLOBAL_INT","MAV_FRAME_GLOBAL_RELATIVE_ALT","MAV_FRAME_GLOBAL_RELATIVE_ALT_INT","MAV_FRAME_GLOBAL_TERRAIN_ALT","MAV_FRAME_GLOBAL_TERRAIN_ALT_INT","MAV_FRAME_LOCAL_ENU","MAV_FRAME_LOCAL_FLU","MAV_FRAME_LOCAL_FRD","MAV_FRAME_LOCAL_NED","MAV_FRAME_LOCAL_OFFSET_NED","MAV_FRAME_MISSION","MAV_FRAME_RESERVED_13","MAV_FRAME_RESERVED_14","MAV_FRAME_RESERVED_15","MAV_FRAME_RESERVED_16","MAV_FRAME_RESERVED_17","MAV_FRAME_RESERVED_18","MAV_FRAME_RESERVED_19","MAV_FTP_ERR_EOF","MAV_FTP_ERR_FAIL","MAV_FTP_ERR_FAILERRNO","MAV_FTP_ERR_FILEEXISTS","MAV_FTP_ERR_FILENOTFOUND","MAV_FTP_ERR_FILEPROTECTED","MAV_FTP_ERR_INVALIDDATASIZE","MAV_FTP_ERR_INVALIDSESSION","MAV_FTP_ERR_NONE","MAV_FTP_ERR_NOSESSIONSAVAILABLE","MAV_FTP_ERR_UNKNOWNCOMMAND","MAV_FTP_OPCODE_ACK","MAV_FTP_OPCODE_BURSTREADFILE","MAV_FTP_OPCODE_CALCFILECRC","MAV_FTP_OPCODE_CREATEDIRECTORY","MAV_FTP_OPCODE_CREATEFILE","MAV_FTP_OPCODE_LISTDIRECTORY","MAV_FTP_OPCODE_NAK","MAV_FTP_OPCODE_NONE","MAV_FTP_OPCODE_OPENFILERO","MAV_FTP_OPCODE_OPENFILEWO","MAV_FTP_OPCODE_READFILE","MAV_FTP_OPCODE_REMOVEDIRECTORY","MAV_FTP_OPCODE_REMOVEFILE","MAV_FTP_OPCODE_RENAME","MAV_FTP_OPCODE_RESETSESSION","MAV_FTP_OPCODE_TERMINATESESSION","MAV_FTP_OPCODE_TRUNCATEFILE","MAV_FTP_OPCODE_WRITEFILE","MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT","MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT","MAV_GENERATOR_STATUS_FLAG_CHARGING","MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING","MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING","MAV_GENERATOR_STATUS_FLAG_GENERATING","MAV_GENERATOR_STATUS_FLAG_IDLE","MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED","MAV_GENERATOR_STATUS_FLAG_MAXPOWER","MAV_GENERATOR_STATUS_FLAG_OFF","MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT","MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT","MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING","MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT","MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT","MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT","MAV_GENERATOR_STATUS_FLAG_READY","MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER","MAV_GENERATOR_STATUS_FLAG_START_INHIBITED","MAV_GENERATOR_STATUS_FLAG_WARMING_UP","MAV_GOTO_DO_CONTINUE","MAV_GOTO_DO_HOLD","MAV_GOTO_HOLD_AT_CURRENT_POSITION","MAV_GOTO_HOLD_AT_SPECIFIED_POSITION","MAV_LANDED_STATE_IN_AIR","MAV_LANDED_STATE_LANDING","MAV_LANDED_STATE_ON_GROUND","MAV_LANDED_STATE_TAKEOFF","MAV_LANDED_STATE_UNDEFINED","MAV_MISSION_ACCEPTED","MAV_MISSION_DENIED","MAV_MISSION_ERROR","MAV_MISSION_INVALID","MAV_MISSION_INVALID_PARAM1","MAV_MISSION_INVALID_PARAM2","MAV_MISSION_INVALID_PARAM3","MAV_MISSION_INVALID_PARAM4","MAV_MISSION_INVALID_PARAM5_X","MAV_MISSION_INVALID_PARAM6_Y","MAV_MISSION_INVALID_PARAM7","MAV_MISSION_INVALID_SEQUENCE","MAV_MISSION_NO_SPACE","MAV_MISSION_OPERATION_CANCELLED","MAV_MISSION_TYPE_ALL","MAV_MISSION_TYPE_FENCE","MAV_MISSION_TYPE_MISSION","MAV_MISSION_TYPE_RALLY","MAV_MISSION_UNSUPPORTED","MAV_MISSION_UNSUPPORTED_FRAME","MAV_MODE_AUTO_ARMED","MAV_MODE_AUTO_DISARMED","MAV_MODE_FLAG_AUTO_ENABLED","MAV_MODE_FLAG_CUSTOM_MODE_ENABLED","MAV_MODE_FLAG_DECODE_POSITION_AUTO","MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE","MAV_MODE_FLAG_DECODE_POSITION_GUIDED","MAV_MODE_FLAG_DECODE_POSITION_HIL","MAV_MODE_FLAG_DECODE_POSITION_MANUAL","MAV_MODE_FLAG_DECODE_POSITION_SAFETY","MAV_MODE_FLAG_DECODE_POSITION_STABILIZE","MAV_MODE_FLAG_DECODE_POSITION_TEST","MAV_MODE_FLAG_GUIDED_ENABLED","MAV_MODE_FLAG_HIL_ENABLED","MAV_MODE_FLAG_MANUAL_INPUT_ENABLED","MAV_MODE_FLAG_SAFETY_ARMED","MAV_MODE_FLAG_STABILIZE_ENABLED","MAV_MODE_FLAG_TEST_ENABLED","MAV_MODE_GIMBAL_ACTIVE","MAV_MODE_GIMBAL_CALIBRATING_PITCH","MAV_MODE_GIMBAL_CALIBRATING_ROLL","MAV_MODE_GIMBAL_CALIBRATING_YAW","MAV_MODE_GIMBAL_INITIALIZED","MAV_MODE_GIMBAL_RATE_CMD_TIMEOUT","MAV_MODE_GIMBAL_UNINITIALIZED","MAV_MODE_GUIDED_ARMED","MAV_MODE_GUIDED_DISARMED","MAV_MODE_MANUAL_ARMED","MAV_MODE_MANUAL_DISARMED","MAV_MODE_PREFLIGHT","MAV_MODE_STABILIZE_ARMED","MAV_MODE_STABILIZE_DISARMED","MAV_MODE_TEST_ARMED","MAV_MODE_TEST_DISARMED","MAV_MOUNT_MODE_GPS_POINT","MAV_MOUNT_MODE_HOME_LOCATION","MAV_MOUNT_MODE_MAVLINK_TARGETING","MAV_MOUNT_MODE_NEUTRAL","MAV_MOUNT_MODE_RC_TARGETING","MAV_MOUNT_MODE_RETRACT","MAV_MOUNT_MODE_SYSID_TARGET","MAV_ODID_ARM_STATUS_GOOD_TO_ARM","MAV_ODID_ARM_STATUS_PRE_ARM_FAIL_GENERIC","MAV_ODID_AUTH_TYPE_MESSAGE_SET_SIGNATURE","MAV_ODID_AUTH_TYPE_NETWORK_REMOTE_ID","MAV_ODID_AUTH_TYPE_NONE","MAV_ODID_AUTH_TYPE_OPERATOR_ID_SIGNATURE","MAV_ODID_AUTH_TYPE_SPECIFIC_AUTHENTICATION","MAV_ODID_AUTH_TYPE_UAS_ID_SIGNATURE","MAV_ODID_CATEGORY_EU_CERTIFIED","MAV_ODID_CATEGORY_EU_OPEN","MAV_ODID_CATEGORY_EU_SPECIFIC","MAV_ODID_CATEGORY_EU_UNDECLARED","MAV_ODID_CLASSIFICATION_TYPE_EU","MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED","MAV_ODID_CLASS_EU_CLASS_0","MAV_ODID_CLASS_EU_CLASS_1","MAV_ODID_CLASS_EU_CLASS_2","MAV_ODID_CLASS_EU_CLASS_3","MAV_ODID_CLASS_EU_CLASS_4","MAV_ODID_CLASS_EU_CLASS_5","MAV_ODID_CLASS_EU_CLASS_6","MAV_ODID_CLASS_EU_UNDECLARED","MAV_ODID_DESC_TYPE_EMERGENCY","MAV_ODID_DESC_TYPE_EXTENDED_STATUS","MAV_ODID_DESC_TYPE_TEXT","MAV_ODID_HEIGHT_REF_OVER_GROUND","MAV_ODID_HEIGHT_REF_OVER_TAKEOFF","MAV_ODID_HOR_ACC_0_05NM","MAV_ODID_HOR_ACC_0_1NM","MAV_ODID_HOR_ACC_0_3NM","MAV_ODID_HOR_ACC_0_5NM","MAV_ODID_HOR_ACC_10NM","MAV_ODID_HOR_ACC_10_METER","MAV_ODID_HOR_ACC_1NM","MAV_ODID_HOR_ACC_1_METER","MAV_ODID_HOR_ACC_2NM","MAV_ODID_HOR_ACC_30_METER","MAV_ODID_HOR_ACC_3_METER","MAV_ODID_HOR_ACC_4NM","MAV_ODID_HOR_ACC_UNKNOWN","MAV_ODID_ID_TYPE_CAA_REGISTRATION_ID","MAV_ODID_ID_TYPE_NONE","MAV_ODID_ID_TYPE_SERIAL_NUMBER","MAV_ODID_ID_TYPE_SPECIFIC_SESSION_ID","MAV_ODID_ID_TYPE_UTM_ASSIGNED_UUID","MAV_ODID_OPERATOR_ID_TYPE_CAA","MAV_ODID_OPERATOR_LOCATION_TYPE_FIXED","MAV_ODID_OPERATOR_LOCATION_TYPE_LIVE_GNSS","MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF","MAV_ODID_SPEED_ACC_0_3_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_10_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_1_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_3_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_UNKNOWN","MAV_ODID_STATUS_AIRBORNE","MAV_ODID_STATUS_EMERGENCY","MAV_ODID_STATUS_GROUND","MAV_ODID_STATUS_REMOTE_ID_SYSTEM_FAILURE","MAV_ODID_STATUS_UNDECLARED","MAV_ODID_TIME_ACC_0_1_SECOND","MAV_ODID_TIME_ACC_0_2_SECOND","MAV_ODID_TIME_ACC_0_3_SECOND","MAV_ODID_TIME_ACC_0_4_SECOND","MAV_ODID_TIME_ACC_0_5_SECOND","MAV_ODID_TIME_ACC_0_6_SECOND","MAV_ODID_TIME_ACC_0_7_SECOND","MAV_ODID_TIME_ACC_0_8_SECOND","MAV_ODID_TIME_ACC_0_9_SECOND","MAV_ODID_TIME_ACC_1_0_SECOND","MAV_ODID_TIME_ACC_1_1_SECOND","MAV_ODID_TIME_ACC_1_2_SECOND","MAV_ODID_TIME_ACC_1_3_SECOND","MAV_ODID_TIME_ACC_1_4_SECOND","MAV_ODID_TIME_ACC_1_5_SECOND","MAV_ODID_TIME_ACC_UNKNOWN","MAV_ODID_UA_TYPE_AEROPLANE","MAV_ODID_UA_TYPE_AIRSHIP","MAV_ODID_UA_TYPE_CAPTIVE_BALLOON","MAV_ODID_UA_TYPE_FREE_BALLOON","MAV_ODID_UA_TYPE_FREE_FALL_PARACHUTE","MAV_ODID_UA_TYPE_GLIDER","MAV_ODID_UA_TYPE_GROUND_OBSTACLE","MAV_ODID_UA_TYPE_GYROPLANE","MAV_ODID_UA_TYPE_HELICOPTER_OR_MULTIROTOR","MAV_ODID_UA_TYPE_HYBRID_LIFT","MAV_ODID_UA_TYPE_KITE","MAV_ODID_UA_TYPE_NONE","MAV_ODID_UA_TYPE_ORNITHOPTER","MAV_ODID_UA_TYPE_OTHER","MAV_ODID_UA_TYPE_ROCKET","MAV_ODID_UA_TYPE_TETHERED_POWERED_AIRCRAFT","MAV_ODID_VER_ACC_10_METER","MAV_ODID_VER_ACC_150_METER","MAV_ODID_VER_ACC_1_METER","MAV_ODID_VER_ACC_25_METER","MAV_ODID_VER_ACC_3_METER","MAV_ODID_VER_ACC_45_METER","MAV_ODID_VER_ACC_UNKNOWN","MAV_PARAM_EXT_TYPE_CUSTOM","MAV_PARAM_EXT_TYPE_INT16","MAV_PARAM_EXT_TYPE_INT32","MAV_PARAM_EXT_TYPE_INT64","MAV_PARAM_EXT_TYPE_INT8","MAV_PARAM_EXT_TYPE_REAL32","MAV_PARAM_EXT_TYPE_REAL64","MAV_PARAM_EXT_TYPE_UINT16","MAV_PARAM_EXT_TYPE_UINT32","MAV_PARAM_EXT_TYPE_UINT64","MAV_PARAM_EXT_TYPE_UINT8","MAV_PARAM_TYPE_INT16","MAV_PARAM_TYPE_INT32","MAV_PARAM_TYPE_INT64","MAV_PARAM_TYPE_INT8","MAV_PARAM_TYPE_REAL32","MAV_PARAM_TYPE_REAL64","MAV_PARAM_TYPE_UINT16","MAV_PARAM_TYPE_UINT32","MAV_PARAM_TYPE_UINT64","MAV_PARAM_TYPE_UINT8","MAV_POWER_STATUS_BRICK_VALID","MAV_POWER_STATUS_CHANGED","MAV_POWER_STATUS_PERIPH_HIPOWER_OVERCURRENT","MAV_POWER_STATUS_PERIPH_OVERCURRENT","MAV_POWER_STATUS_SERVO_VALID","MAV_POWER_STATUS_USB_CONNECTED","MAV_PROTOCOL_CAPABILITY_COMMAND_INT","MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION","MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION","MAV_PROTOCOL_CAPABILITY_FTP","MAV_PROTOCOL_CAPABILITY_MAVLINK2","MAV_PROTOCOL_CAPABILITY_MISSION_FENCE","MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT","MAV_PROTOCOL_CAPABILITY_MISSION_INT","MAV_PROTOCOL_CAPABILITY_MISSION_RALLY","MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE","MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST","MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT","MAV_PROTOCOL_CAPABILITY_RESERVED2","MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET","MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET","MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT","MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED","MAV_PROTOCOL_CAPABILITY_TERRAIN","MAV_REMOTE_LOG_DATA_BLOCK_ACK","MAV_REMOTE_LOG_DATA_BLOCK_NACK","MAV_REMOTE_LOG_DATA_BLOCK_START","MAV_REMOTE_LOG_DATA_BLOCK_STOP","MAV_RESULT_ACCEPTED","MAV_RESULT_CANCELLED","MAV_RESULT_DENIED","MAV_RESULT_FAILED","MAV_RESULT_IN_PROGRESS","MAV_RESULT_TEMPORARILY_REJECTED","MAV_RESULT_UNSUPPORTED","MAV_ROI_LOCATION","MAV_ROI_NONE","MAV_ROI_TARGET","MAV_ROI_WPINDEX","MAV_ROI_WPNEXT","MAV_SENSOR_ROTATION_CUSTOM","MAV_SENSOR_ROTATION_NONE","MAV_SENSOR_ROTATION_PITCH_180","MAV_SENSOR_ROTATION_PITCH_180_YAW_270","MAV_SENSOR_ROTATION_PITCH_180_YAW_90","MAV_SENSOR_ROTATION_PITCH_270","MAV_SENSOR_ROTATION_PITCH_315","MAV_SENSOR_ROTATION_PITCH_90","MAV_SENSOR_ROTATION_ROLL_180","MAV_SENSOR_ROTATION_ROLL_180_PITCH_270","MAV_SENSOR_ROTATION_ROLL_180_PITCH_90","MAV_SENSOR_ROTATION_ROLL_180_YAW_135","MAV_SENSOR_ROTATION_ROLL_180_YAW_225","MAV_SENSOR_ROTATION_ROLL_180_YAW_270","MAV_SENSOR_ROTATION_ROLL_180_YAW_315","MAV_SENSOR_ROTATION_ROLL_180_YAW_45","MAV_SENSOR_ROTATION_ROLL_180_YAW_90","MAV_SENSOR_ROTATION_ROLL_270","MAV_SENSOR_ROTATION_ROLL_270_PITCH_180","MAV_SENSOR_ROTATION_ROLL_270_PITCH_270","MAV_SENSOR_ROTATION_ROLL_270_PITCH_90","MAV_SENSOR_ROTATION_ROLL_270_YAW_135","MAV_SENSOR_ROTATION_ROLL_270_YAW_45","MAV_SENSOR_ROTATION_ROLL_270_YAW_90","MAV_SENSOR_ROTATION_ROLL_90","MAV_SENSOR_ROTATION_ROLL_90_PITCH_180","MAV_SENSOR_ROTATION_ROLL_90_PITCH_180_YAW_90","MAV_SENSOR_ROTATION_ROLL_90_PITCH_270","MAV_SENSOR_ROTATION_ROLL_90_PITCH_315","MAV_SENSOR_ROTATION_ROLL_90_PITCH_68_YAW_293","MAV_SENSOR_ROTATION_ROLL_90_PITCH_90","MAV_SENSOR_ROTATION_ROLL_90_YAW_135","MAV_SENSOR_ROTATION_ROLL_90_YAW_270","MAV_SENSOR_ROTATION_ROLL_90_YAW_45","MAV_SENSOR_ROTATION_ROLL_90_YAW_90","MAV_SENSOR_ROTATION_YAW_135","MAV_SENSOR_ROTATION_YAW_180","MAV_SENSOR_ROTATION_YAW_225","MAV_SENSOR_ROTATION_YAW_270","MAV_SENSOR_ROTATION_YAW_315","MAV_SENSOR_ROTATION_YAW_45","MAV_SENSOR_ROTATION_YAW_90","MAV_SEVERITY_ALERT","MAV_SEVERITY_CRITICAL","MAV_SEVERITY_DEBUG","MAV_SEVERITY_EMERGENCY","MAV_SEVERITY_ERROR","MAV_SEVERITY_INFO","MAV_SEVERITY_NOTICE","MAV_SEVERITY_WARNING","MAV_STATE_ACTIVE","MAV_STATE_BOOT","MAV_STATE_CALIBRATING","MAV_STATE_CRITICAL","MAV_STATE_EMERGENCY","MAV_STATE_FLIGHT_TERMINATION","MAV_STATE_POWEROFF","MAV_STATE_STANDBY","MAV_STATE_UNINIT","MAV_SYS_STATUS_AHRS","MAV_SYS_STATUS_EXTENSION_USED","MAV_SYS_STATUS_GEOFENCE","MAV_SYS_STATUS_LOGGING","MAV_SYS_STATUS_OBSTACLE_AVOIDANCE","MAV_SYS_STATUS_PREARM_CHECK","MAV_SYS_STATUS_RECOVERY_SYSTEM","MAV_SYS_STATUS_REVERSE_MOTOR","MAV_SYS_STATUS_SENSOR_3D_ACCEL","MAV_SYS_STATUS_SENSOR_3D_ACCEL2","MAV_SYS_STATUS_SENSOR_3D_GYRO","MAV_SYS_STATUS_SENSOR_3D_GYRO2","MAV_SYS_STATUS_SENSOR_3D_MAG","MAV_SYS_STATUS_SENSOR_3D_MAG2","MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE","MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL","MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION","MAV_SYS_STATUS_SENSOR_BATTERY","MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE","MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH","MAV_SYS_STATUS_SENSOR_GPS","MAV_SYS_STATUS_SENSOR_LASER_POSITION","MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS","MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW","MAV_SYS_STATUS_SENSOR_PROPULSION","MAV_SYS_STATUS_SENSOR_PROXIMITY","MAV_SYS_STATUS_SENSOR_RC_RECEIVER","MAV_SYS_STATUS_SENSOR_SATCOM","MAV_SYS_STATUS_SENSOR_VISION_POSITION","MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL","MAV_SYS_STATUS_SENSOR_YAW_POSITION","MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL","MAV_SYS_STATUS_TERRAIN","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED0","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED1","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED2","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED3","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED4","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED5","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED6","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED7","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED8","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED9","MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN","MAV_TYPE_ADSB","MAV_TYPE_AIRSHIP","MAV_TYPE_ANTENNA_TRACKER","MAV_TYPE_BATTERY","MAV_TYPE_CAMERA","MAV_TYPE_CHARGING_STATION","MAV_TYPE_COAXIAL","MAV_TYPE_DECAROTOR","MAV_TYPE_DODECAROTOR","MAV_TYPE_FIXED_WING","MAV_TYPE_FLAPPING_WING","MAV_TYPE_FLARM","MAV_TYPE_FREE_BALLOON","MAV_TYPE_GCS","MAV_TYPE_GENERIC","MAV_TYPE_GIMBAL","MAV_TYPE_GPS","MAV_TYPE_GROUND_ROVER","MAV_TYPE_HELICOPTER","MAV_TYPE_HEXAROTOR","MAV_TYPE_IMU","MAV_TYPE_KITE","MAV_TYPE_LOG","MAV_TYPE_OCTOROTOR","MAV_TYPE_ODID","MAV_TYPE_ONBOARD_CONTROLLER","MAV_TYPE_OSD","MAV_TYPE_PARACHUTE","MAV_TYPE_PARAFOIL","MAV_TYPE_QUADROTOR","MAV_TYPE_ROCKET","MAV_TYPE_SERVO","MAV_TYPE_SUBMARINE","MAV_TYPE_SURFACE_BOAT","MAV_TYPE_TRICOPTER","MAV_TYPE_VTOL_FIXEDROTOR","MAV_TYPE_VTOL_RESERVED5","MAV_TYPE_VTOL_TAILSITTER","MAV_TYPE_VTOL_TAILSITTER_DUOROTOR","MAV_TYPE_VTOL_TAILSITTER_QUADROTOR","MAV_TYPE_VTOL_TILTROTOR","MAV_TYPE_VTOL_TILTWING","MAV_TYPE_WINCH","MAV_VTOL_STATE_FW","MAV_VTOL_STATE_MC","MAV_VTOL_STATE_TRANSITION_TO_FW","MAV_VTOL_STATE_TRANSITION_TO_MC","MAV_VTOL_STATE_UNDEFINED","MAV_WINCH_STATUS_ABANDON_LINE","MAV_WINCH_STATUS_ARRESTING","MAV_WINCH_STATUS_CLUTCH_ENGAGED","MAV_WINCH_STATUS_DROPPING","MAV_WINCH_STATUS_FULLY_RETRACTED","MAV_WINCH_STATUS_GROUND_SENSE","MAV_WINCH_STATUS_HEALTHY","MAV_WINCH_STATUS_LOAD_LINE","MAV_WINCH_STATUS_LOAD_PAYLOAD","MAV_WINCH_STATUS_LOCKED","MAV_WINCH_STATUS_LOCKING","MAV_WINCH_STATUS_MOVING","MAV_WINCH_STATUS_REDELIVER","MAV_WINCH_STATUS_RETRACTING","MCU_STATUS","MCU_STATUS_DATA","MCU_temperature","MCU_voltage","MCU_voltage_max","MCU_voltage_min","MEMINFO","MEMINFO_DATA","MEMORY_VECT","MEMORY_VECT_DATA","MESSAGE_INTERVAL","MESSAGE_INTERVAL_DATA","MISSION_ACK","MISSION_ACK_DATA","MISSION_CLEAR_ALL","MISSION_CLEAR_ALL_DATA","MISSION_COUNT","MISSION_COUNT_DATA","MISSION_CURRENT","MISSION_CURRENT_DATA","MISSION_ITEM","MISSION_ITEM_DATA","MISSION_ITEM_INT","MISSION_ITEM_INT_DATA","MISSION_ITEM_REACHED","MISSION_ITEM_REACHED_DATA","MISSION_READ_PERSISTENT","MISSION_REQUEST","MISSION_REQUEST_DATA","MISSION_REQUEST_INT","MISSION_REQUEST_INT_DATA","MISSION_REQUEST_LIST","MISSION_REQUEST_LIST_DATA","MISSION_REQUEST_PARTIAL_LIST","MISSION_REQUEST_PARTIAL_LIST_DATA","MISSION_RESET_DEFAULT","MISSION_SET_CURRENT","MISSION_SET_CURRENT_DATA","MISSION_STATE_ACTIVE","MISSION_STATE_COMPLETE","MISSION_STATE_NOT_STARTED","MISSION_STATE_NO_MISSION","MISSION_STATE_PAUSED","MISSION_STATE_UNKNOWN","MISSION_WRITE_PARTIAL_LIST","MISSION_WRITE_PARTIAL_LIST_DATA","MISSION_WRITE_PERSISTENT","MMSI","MOTOR_TEST_COMPASS_CAL","MOTOR_TEST_ORDER_BOARD","MOTOR_TEST_ORDER_DEFAULT","MOTOR_TEST_ORDER_SEQUENCE","MOTOR_TEST_THROTTLE_PERCENT","MOTOR_TEST_THROTTLE_PILOT","MOTOR_TEST_THROTTLE_PWM","MOUNT_CONFIGURE","MOUNT_CONFIGURE_DATA","MOUNT_CONTROL","MOUNT_CONTROL_DATA","MOUNT_ORIENTATION","MOUNT_ORIENTATION_DATA","MOUNT_STATUS","MOUNT_STATUS_DATA","MagCalStatus","MavArmAuthDeniedReason","MavAutopilot","MavBatteryChargeState","MavBatteryFault","MavBatteryFunction","MavBatteryMode","MavBatteryType","MavCmd","MavCmdAck","MavCmdDoAuxFunctionSwitchLevel","MavCollisionAction","MavCollisionSrc","MavCollisionThreatLevel","MavComponent","MavDataStream","MavDistanceSensor","MavDoRepositionFlags","MavEstimatorType","MavEventCurrentSequenceFlags","MavEventErrorReason","MavFrame","MavFtpErr","MavFtpOpcode","MavGeneratorStatusFlag","MavGoto","MavLandedState","MavMessage","MavMissionResult","MavMissionType","MavMode","MavModeFlag","MavModeFlagDecodePosition","MavModeGimbal","MavMountMode","MavOdidArmStatus","MavOdidAuthType","MavOdidCategoryEu","MavOdidClassEu","MavOdidClassificationType","MavOdidDescType","MavOdidHeightRef","MavOdidHorAcc","MavOdidIdType","MavOdidOperatorIdType","MavOdidOperatorLocationType","MavOdidSpeedAcc","MavOdidStatus","MavOdidTimeAcc","MavOdidUaType","MavOdidVerAcc","MavParamExtType","MavParamType","MavPowerStatus","MavProtocolCapability","MavRemoteLogDataBlockCommands","MavRemoteLogDataBlockStatuses","MavResult","MavRoi","MavSensorOrientation","MavSeverity","MavState","MavSysStatusSensor","MavSysStatusSensorExtended","MavTunnelPayloadType","MavType","MavVtolState","MavWinchStatusFlag","MavlinkDataStreamType","MissionState","MotorTestOrder","MotorTestThrottleType","NAMED_VALUE_FLOAT","NAMED_VALUE_FLOAT_DATA","NAMED_VALUE_INT","NAMED_VALUE_INT_DATA","NAV_CONTROLLER_OUTPUT","NAV_CONTROLLER_OUTPUT_DATA","NAV_VTOL_LAND_OPTIONS_DEFAULT","NAV_VTOL_LAND_OPTIONS_FW_DESCENT","NAV_VTOL_LAND_OPTIONS_HOVER_DESCENT","NavVtolLandOptions","OBSTACLE_DISTANCE","OBSTACLE_DISTANCE_3D","OBSTACLE_DISTANCE_3D_DATA","OBSTACLE_DISTANCE_DATA","ODOMETRY","ODOMETRY_DATA","ONBOARD_COMPUTER_STATUS","ONBOARD_COMPUTER_STATUS_DATA","OPEN_DRONE_ID_ARM_STATUS","OPEN_DRONE_ID_ARM_STATUS_DATA","OPEN_DRONE_ID_AUTHENTICATION","OPEN_DRONE_ID_AUTHENTICATION_DATA","OPEN_DRONE_ID_BASIC_ID","OPEN_DRONE_ID_BASIC_ID_DATA","OPEN_DRONE_ID_LOCATION","OPEN_DRONE_ID_LOCATION_DATA","OPEN_DRONE_ID_MESSAGE_PACK","OPEN_DRONE_ID_MESSAGE_PACK_DATA","OPEN_DRONE_ID_OPERATOR_ID","OPEN_DRONE_ID_OPERATOR_ID_DATA","OPEN_DRONE_ID_SELF_ID","OPEN_DRONE_ID_SELF_ID_DATA","OPEN_DRONE_ID_SYSTEM","OPEN_DRONE_ID_SYSTEM_DATA","OPEN_DRONE_ID_SYSTEM_UPDATE","OPEN_DRONE_ID_SYSTEM_UPDATE_DATA","OPTICAL_FLOW","OPTICAL_FLOW_DATA","OPTICAL_FLOW_RAD","OPTICAL_FLOW_RAD_DATA","ORBIT_EXECUTION_STATUS","ORBIT_EXECUTION_STATUS_DATA","ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE","ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER","ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING","ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED","ORBIT_YAW_BEHAVIOUR_UNCONTROLLED","OSD_PARAM_AUX_FUNCTION","OSD_PARAM_CONFIG","OSD_PARAM_CONFIG_DATA","OSD_PARAM_CONFIG_REPLY","OSD_PARAM_CONFIG_REPLY_DATA","OSD_PARAM_FAILSAFE_ACTION","OSD_PARAM_FAILSAFE_ACTION_1","OSD_PARAM_FAILSAFE_ACTION_2","OSD_PARAM_FLIGHT_MODE","OSD_PARAM_INVALID_PARAMETER","OSD_PARAM_INVALID_PARAMETER_INDEX","OSD_PARAM_INVALID_SCREEN","OSD_PARAM_NONE","OSD_PARAM_NUM_TYPES","OSD_PARAM_SERIAL_PROTOCOL","OSD_PARAM_SERVO_FUNCTION","OSD_PARAM_SHOW_CONFIG","OSD_PARAM_SHOW_CONFIG_DATA","OSD_PARAM_SHOW_CONFIG_REPLY","OSD_PARAM_SHOW_CONFIG_REPLY_DATA","OSD_PARAM_SUCCESS","OrbitYawBehaviour","OsdParamConfigError","OsdParamConfigType","P","PARACHUTE_DISABLE","PARACHUTE_ENABLE","PARACHUTE_RELEASE","PARAM_ACK_ACCEPTED","PARAM_ACK_FAILED","PARAM_ACK_IN_PROGRESS","PARAM_ACK_VALUE_UNSUPPORTED","PARAM_EXT_ACK","PARAM_EXT_ACK_DATA","PARAM_EXT_REQUEST_LIST","PARAM_EXT_REQUEST_LIST_DATA","PARAM_EXT_REQUEST_READ","PARAM_EXT_REQUEST_READ_DATA","PARAM_EXT_SET","PARAM_EXT_SET_DATA","PARAM_EXT_VALUE","PARAM_EXT_VALUE_DATA","PARAM_MAP_RC","PARAM_MAP_RC_DATA","PARAM_READ_PERSISTENT","PARAM_REQUEST_LIST","PARAM_REQUEST_LIST_DATA","PARAM_REQUEST_READ","PARAM_REQUEST_READ_DATA","PARAM_RESET_ALL_DEFAULT","PARAM_RESET_CONFIG_DEFAULT","PARAM_RESET_SENSOR_DEFAULT","PARAM_SET","PARAM_SET_DATA","PARAM_VALUE","PARAM_VALUE_DATA","PARAM_WRITE_PERSISTENT","PID_TUNING","PID_TUNING_ACCZ","PID_TUNING_DATA","PID_TUNING_LANDING","PID_TUNING_PITCH","PID_TUNING_ROLL","PID_TUNING_STEER","PID_TUNING_YAW","PING","PING_DATA","PLANE_MODE_ACRO","PLANE_MODE_AUTO","PLANE_MODE_AUTOTUNE","PLANE_MODE_AVOID_ADSB","PLANE_MODE_CIRCLE","PLANE_MODE_CRUISE","PLANE_MODE_FLY_BY_WIRE_A","PLANE_MODE_FLY_BY_WIRE_B","PLANE_MODE_GUIDED","PLANE_MODE_INITIALIZING","PLANE_MODE_LOITER","PLANE_MODE_MANUAL","PLANE_MODE_QACRO","PLANE_MODE_QAUTOTUNE","PLANE_MODE_QHOVER","PLANE_MODE_QLAND","PLANE_MODE_QLOITER","PLANE_MODE_QRTL","PLANE_MODE_QSTABILIZE","PLANE_MODE_RTL","PLANE_MODE_STABILIZE","PLANE_MODE_TAKEOFF","PLANE_MODE_THERMAL","PLANE_MODE_TRAINING","PLAY_TUNE","PLAY_TUNE_DATA","PLAY_TUNE_V2","PLAY_TUNE_V2_DATA","POSITION_TARGET_GLOBAL_INT","POSITION_TARGET_GLOBAL_INT_DATA","POSITION_TARGET_LOCAL_NED","POSITION_TARGET_LOCAL_NED_DATA","POSITION_TARGET_TYPEMASK_AX_IGNORE","POSITION_TARGET_TYPEMASK_AY_IGNORE","POSITION_TARGET_TYPEMASK_AZ_IGNORE","POSITION_TARGET_TYPEMASK_FORCE_SET","POSITION_TARGET_TYPEMASK_VX_IGNORE","POSITION_TARGET_TYPEMASK_VY_IGNORE","POSITION_TARGET_TYPEMASK_VZ_IGNORE","POSITION_TARGET_TYPEMASK_X_IGNORE","POSITION_TARGET_TYPEMASK_YAW_IGNORE","POSITION_TARGET_TYPEMASK_YAW_RATE_IGNORE","POSITION_TARGET_TYPEMASK_Y_IGNORE","POSITION_TARGET_TYPEMASK_Z_IGNORE","POWER_STATUS","POWER_STATUS_DATA","PRECISION_LAND_MODE_DISABLED","PRECISION_LAND_MODE_OPPORTUNISTIC","PRECISION_LAND_MODE_REQUIRED","PROTOCOL_VERSION","PROTOCOL_VERSION_DATA","ParachuteAction","ParamAck","Pax","Pby","Pcz","PidTuningAxis","PlaneMode","PositionTargetTypemask","PrecisionLandMode","PreflightStorageMissionAction","PreflightStorageParameterAction","RADIO","RADIO_DATA","RADIO_STATUS","RADIO_STATUS_DATA","RALLY_FETCH_POINT","RALLY_FETCH_POINT_DATA","RALLY_POINT","RALLY_POINT_DATA","RANGEFINDER","RANGEFINDER_DATA","RAW_IMU","RAW_IMU_DATA","RAW_PRESSURE","RAW_PRESSURE_DATA","RAW_RPM","RAW_RPM_DATA","RC_CHANNELS","RC_CHANNELS_DATA","RC_CHANNELS_OVERRIDE","RC_CHANNELS_OVERRIDE_DATA","RC_CHANNELS_RAW","RC_CHANNELS_RAW_DATA","RC_CHANNELS_SCALED","RC_CHANNELS_SCALED_DATA","RC_TYPE_SPEKTRUM_DSM2","RC_TYPE_SPEKTRUM_DSMX","REMOTE_LOG_BLOCK_STATUS","REMOTE_LOG_BLOCK_STATUS_DATA","REMOTE_LOG_DATA_BLOCK","REMOTE_LOG_DATA_BLOCK_DATA","REQUEST_DATA_STREAM","REQUEST_DATA_STREAM_DATA","REQUEST_EVENT","REQUEST_EVENT_DATA","RESOURCE_REQUEST","RESOURCE_REQUEST_DATA","RESPONSE_EVENT_ERROR","RESPONSE_EVENT_ERROR_DATA","ROVER_MODE_ACRO","ROVER_MODE_AUTO","ROVER_MODE_FOLLOW","ROVER_MODE_GUIDED","ROVER_MODE_HOLD","ROVER_MODE_INITIALIZING","ROVER_MODE_LOITER","ROVER_MODE_MANUAL","ROVER_MODE_RTL","ROVER_MODE_SIMPLE","ROVER_MODE_SMART_RTL","ROVER_MODE_STEERING","RPM","RPM_DATA","RTK_BASELINE_COORDINATE_SYSTEM_ECEF","RTK_BASELINE_COORDINATE_SYSTEM_NED","RallyFlags","RcType","RoverMode","RtkBaselineCoordinateSystem","SAFETY_ALLOWED_AREA","SAFETY_ALLOWED_AREA_DATA","SAFETY_SET_ALLOWED_AREA","SAFETY_SET_ALLOWED_AREA_DATA","SCALED_IMU","SCALED_IMU2","SCALED_IMU2_DATA","SCALED_IMU3","SCALED_IMU3_DATA","SCALED_IMU_DATA","SCALED_PRESSURE","SCALED_PRESSURE2","SCALED_PRESSURE2_DATA","SCALED_PRESSURE3","SCALED_PRESSURE3_DATA","SCALED_PRESSURE_DATA","SCRIPTING_CMD_REPL_START","SCRIPTING_CMD_REPL_STOP","SCRIPTING_CMD_STOP","SCRIPTING_CMD_STOP_AND_RESTART","SENSOR_OFFSETS","SENSOR_OFFSETS_DATA","SERIAL_CONTROL","SERIAL_CONTROL_DATA","SERIAL_CONTROL_DEV_GPS1","SERIAL_CONTROL_DEV_GPS2","SERIAL_CONTROL_DEV_SHELL","SERIAL_CONTROL_DEV_TELEM1","SERIAL_CONTROL_DEV_TELEM2","SERIAL_CONTROL_FLAG_BLOCKING","SERIAL_CONTROL_FLAG_EXCLUSIVE","SERIAL_CONTROL_FLAG_MULTI","SERIAL_CONTROL_FLAG_REPLY","SERIAL_CONTROL_FLAG_RESPOND","SERIAL_CONTROL_SERIAL0","SERIAL_CONTROL_SERIAL1","SERIAL_CONTROL_SERIAL2","SERIAL_CONTROL_SERIAL3","SERIAL_CONTROL_SERIAL4","SERIAL_CONTROL_SERIAL5","SERIAL_CONTROL_SERIAL6","SERIAL_CONTROL_SERIAL7","SERIAL_CONTROL_SERIAL8","SERIAL_CONTROL_SERIAL9","SERVO_OUTPUT_RAW","SERVO_OUTPUT_RAW_DATA","SETUP_SIGNING","SETUP_SIGNING_DATA","SET_ACTUATOR_CONTROL_TARGET","SET_ACTUATOR_CONTROL_TARGET_DATA","SET_ATTITUDE_TARGET","SET_ATTITUDE_TARGET_DATA","SET_GPS_GLOBAL_ORIGIN","SET_GPS_GLOBAL_ORIGIN_DATA","SET_HOME_POSITION","SET_HOME_POSITION_DATA","SET_MAG_OFFSETS","SET_MAG_OFFSETS_DATA","SET_MODE","SET_MODE_DATA","SET_POSITION_TARGET_GLOBAL_INT","SET_POSITION_TARGET_GLOBAL_INT_DATA","SET_POSITION_TARGET_LOCAL_NED","SET_POSITION_TARGET_LOCAL_NED_DATA","SIMSTATE","SIMSTATE_DATA","SIM_STATE","SIM_STATE_DATA","SMART_BATTERY_INFO","SMART_BATTERY_INFO_DATA","SPEED_TYPE_AIRSPEED","SPEED_TYPE_GROUNDSPEED","SSA","STATUSTEXT","STATUSTEXT_DATA","STORAGE_INFORMATION","STORAGE_INFORMATION_DATA","STORAGE_STATUS_EMPTY","STORAGE_STATUS_NOT_SUPPORTED","STORAGE_STATUS_READY","STORAGE_STATUS_UNFORMATTED","STORAGE_TYPE_CF","STORAGE_TYPE_CFE","STORAGE_TYPE_HD","STORAGE_TYPE_MICROSD","STORAGE_TYPE_OTHER","STORAGE_TYPE_SD","STORAGE_TYPE_UNKNOWN","STORAGE_TYPE_USB_STICK","STORAGE_TYPE_XQD","STORAGE_USAGE_FLAG_LOGS","STORAGE_USAGE_FLAG_PHOTO","STORAGE_USAGE_FLAG_SET","STORAGE_USAGE_FLAG_VIDEO","SUB_MODE_ACRO","SUB_MODE_ALT_HOLD","SUB_MODE_AUTO","SUB_MODE_CIRCLE","SUB_MODE_GUIDED","SUB_MODE_MANUAL","SUB_MODE_POSHOLD","SUB_MODE_STABILIZE","SUB_MODE_SURFACE","SUPPORTED_TUNES","SUPPORTED_TUNES_DATA","SYSTEM_TIME","SYSTEM_TIME_DATA","SYS_STATUS","SYS_STATUS_DATA","ScriptingCmd","SerialControlDev","SerialControlFlag","SetFocusType","SpeedType","StorageStatus","StorageType","StorageUsageFlag","SubMode","TERRAIN_CHECK","TERRAIN_CHECK_DATA","TERRAIN_DATA","TERRAIN_DATA_DATA","TERRAIN_REPORT","TERRAIN_REPORT_DATA","TERRAIN_REQUEST","TERRAIN_REQUEST_DATA","TIMESYNC","TIMESYNC_DATA","TIME_ESTIMATE_TO_TARGET","TIME_ESTIMATE_TO_TARGET_DATA","TRACKER_MODE_AUTO","TRACKER_MODE_INITIALIZING","TRACKER_MODE_MANUAL","TRACKER_MODE_SCAN","TRACKER_MODE_SERVO_TEST","TRACKER_MODE_STOP","TRAJECTORY_REPRESENTATION_BEZIER","TRAJECTORY_REPRESENTATION_BEZIER_DATA","TRAJECTORY_REPRESENTATION_WAYPOINTS","TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA","TUNE_FORMAT_MML_MODERN","TUNE_FORMAT_QBASIC1_1","TUNNEL","TUNNEL_DATA","TrackerMode","TuneFormat","UAVCAN_NODE_HEALTH_CRITICAL","UAVCAN_NODE_HEALTH_ERROR","UAVCAN_NODE_HEALTH_OK","UAVCAN_NODE_HEALTH_WARNING","UAVCAN_NODE_INFO","UAVCAN_NODE_INFO_DATA","UAVCAN_NODE_MODE_INITIALIZATION","UAVCAN_NODE_MODE_MAINTENANCE","UAVCAN_NODE_MODE_OFFLINE","UAVCAN_NODE_MODE_OPERATIONAL","UAVCAN_NODE_MODE_SOFTWARE_UPDATE","UAVCAN_NODE_STATUS","UAVCAN_NODE_STATUS_DATA","UAVIONIX_ADSB_OUT_CFG","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L15M_W23M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25M_W28P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25_34M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_33M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_38M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_39P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_45M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_45M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_52M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_59P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_67M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W72P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W80M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W80M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W90M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_NO_DATA","UAVIONIX_ADSB_OUT_CFG_DATA","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_2M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_4M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_6M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_NO_DATA","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_0M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_2M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_4M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_6M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_APPLIED_BY_SENSOR","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_NO_DATA","UAVIONIX_ADSB_OUT_DOWNED_AIRCRAFT_EMERGENCY","UAVIONIX_ADSB_OUT_DYNAMIC","UAVIONIX_ADSB_OUT_DYNAMIC_DATA","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_2D","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_3D","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_DGPS","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_0","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_1","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_RTK","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_AUTOPILOT_ENABLED","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_IDENT","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_NICBARO_CROSSCHECKED","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_ON_GROUND","UAVIONIX_ADSB_OUT_GENERAL_EMERGENCY","UAVIONIX_ADSB_OUT_LIFEGUARD_EMERGENCY","UAVIONIX_ADSB_OUT_MINIMUM_FUEL_EMERGENCY","UAVIONIX_ADSB_OUT_NO_COMM_EMERGENCY","UAVIONIX_ADSB_OUT_NO_EMERGENCY","UAVIONIX_ADSB_OUT_RESERVED","UAVIONIX_ADSB_OUT_RF_SELECT_RX_ENABLED","UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY","UAVIONIX_ADSB_OUT_RF_SELECT_TX_ENABLED","UAVIONIX_ADSB_OUT_UNLAWFUL_INTERFERANCE_EMERGENCY","UAVIONIX_ADSB_RF_HEALTH_FAIL_RX","UAVIONIX_ADSB_RF_HEALTH_FAIL_TX","UAVIONIX_ADSB_RF_HEALTH_INITIALIZING","UAVIONIX_ADSB_RF_HEALTH_OK","UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT","UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA","UNDER_WAY","UTM_DATA_AVAIL_FLAGS_ALTITUDE_AVAILABLE","UTM_DATA_AVAIL_FLAGS_HORIZONTAL_VELO_AVAILABLE","UTM_DATA_AVAIL_FLAGS_NEXT_WAYPOINT_AVAILABLE","UTM_DATA_AVAIL_FLAGS_POSITION_AVAILABLE","UTM_DATA_AVAIL_FLAGS_RELATIVE_ALTITUDE_AVAILABLE","UTM_DATA_AVAIL_FLAGS_TIME_VALID","UTM_DATA_AVAIL_FLAGS_UAS_ID_AVAILABLE","UTM_DATA_AVAIL_FLAGS_VERTICAL_VELO_AVAILABLE","UTM_FLIGHT_STATE_AIRBORNE","UTM_FLIGHT_STATE_EMERGENCY","UTM_FLIGHT_STATE_GROUND","UTM_FLIGHT_STATE_NOCTRL","UTM_FLIGHT_STATE_UNKNOWN","UTM_GLOBAL_POSITION","UTM_GLOBAL_POSITION_DATA","UavcanNodeHealth","UavcanNodeMode","UavionixAdsbEmergencyStatus","UavionixAdsbOutCfgAircraftSize","UavionixAdsbOutCfgGpsOffsetLat","UavionixAdsbOutCfgGpsOffsetLon","UavionixAdsbOutDynamicGpsFix","UavionixAdsbOutDynamicState","UavionixAdsbOutRfSelect","UavionixAdsbRfHealth","UtmDataAvailFlags","UtmFlightState","V2_EXTENSION","V2_EXTENSION_DATA","VFR_HUD","VFR_HUD_DATA","VIBRATION","VIBRATION_DATA","VICON_POSITION_ESTIMATE","VICON_POSITION_ESTIMATE_DATA","VIDEO_STREAM_INFORMATION","VIDEO_STREAM_INFORMATION_DATA","VIDEO_STREAM_STATUS","VIDEO_STREAM_STATUS_DATA","VIDEO_STREAM_STATUS_FLAGS_RUNNING","VIDEO_STREAM_STATUS_FLAGS_THERMAL","VIDEO_STREAM_TYPE_MPEG_TS_H264","VIDEO_STREAM_TYPE_RTPUDP","VIDEO_STREAM_TYPE_RTSP","VIDEO_STREAM_TYPE_TCP_MPEG","VISION_POSITION_DELTA","VISION_POSITION_DELTA_DATA","VISION_POSITION_ESTIMATE","VISION_POSITION_ESTIMATE_DATA","VISION_SPEED_ESTIMATE","VISION_SPEED_ESTIMATE_DATA","VTOL_TRANSITION_HEADING_ANY","VTOL_TRANSITION_HEADING_NEXT_WAYPOINT","VTOL_TRANSITION_HEADING_SPECIFIED","VTOL_TRANSITION_HEADING_TAKEOFF","VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT","Vcc","Vcc","VelEW","VideoStreamStatusFlags","VideoStreamType","Vservo","VtolTransitionHeading","WATER_DEPTH","WATER_DEPTH_DATA","WHEEL_DISTANCE","WHEEL_DISTANCE_DATA","WIFI_CONFIG_AP","WIFI_CONFIG_AP_DATA","WIFI_CONFIG_AP_MODE_AP","WIFI_CONFIG_AP_MODE_DISABLED","WIFI_CONFIG_AP_MODE_STATION","WIFI_CONFIG_AP_MODE_UNDEFINED","WIFI_CONFIG_AP_RESPONSE_ACCEPTED","WIFI_CONFIG_AP_RESPONSE_MODE_ERROR","WIFI_CONFIG_AP_RESPONSE_PASSWORD_ERROR","WIFI_CONFIG_AP_RESPONSE_REJECTED","WIFI_CONFIG_AP_RESPONSE_SSID_ERROR","WIFI_CONFIG_AP_RESPONSE_UNDEFINED","WINCH_ABANDON_LINE","WINCH_DELIVER","WINCH_HOLD","WINCH_LOAD_LINE","WINCH_LOAD_PAYLOAD","WINCH_LOCK","WINCH_RATE_CONTROL","WINCH_RELATIVE_LENGTH_CONTROL","WINCH_RELAXED","WINCH_RETRACT","WINCH_STATUS","WINCH_STATUS_DATA","WIND","WIND_COV","WIND_COV_DATA","WIND_DATA","WifiConfigApMode","WifiConfigApResponse","WinchActions","ZOOM_TYPE_CONTINUOUS","ZOOM_TYPE_FOCAL_LENGTH","ZOOM_TYPE_RANGE","ZOOM_TYPE_STEP","abs_pressure","abs_pressure","acc","acc_x","acc_y","acc_z","accel_cal_x","accel_cal_y","accel_cal_z","accel_weight","accuracy","accuracy","accuracyHor","accuracyVel","accuracyVert","achieved","achieved","ack","action","active","actuator","adc1","adc2","adc3","adc4","adc5","adc6","address","address","address","afx","afx","afx","afx","afy","afy","afy","afy","afz","afz","afz","afz","aircraftSize","airspeed","airspeed","airspeed","airspeed","airspeed_sp","airspeed_sp","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt_camera","alt_error","alt_image","alt_msl","alt_rel","altitude","altitude","altitude","altitude","altitude","altitude","altitude","altitude","altitude","altitude_amsl","altitude_amsl","altitude_barometric","altitude_geodetic","altitude_local","altitude_minimum_delta","altitude_monotonic","altitude_relative","altitude_sp","altitude_terrain","altitude_type","angle_delta","angle_x","angle_y","angular_velocity_x","angular_velocity_x","angular_velocity_x","angular_velocity_y","angular_velocity_y","angular_velocity_y","angular_velocity_z","angular_velocity_z","angular_velocity_z","aperture","apn","approach_x","approach_x","approach_y","approach_y","approach_z","approach_z","arc_entry_lat","arc_entry_lon","area_ceiling","area_count","area_floor","area_radius","arguments","arming_time_utc","array_id","aspd_error","attempt","attitude_q","attitude_quaternion","authentication_data","authentication_type","autocontinue","autocontinue","autocontinue","autopilot","autopilot","autosaved","aux1","aux2","aux3","aux4","available_capacity","available_capacity","ax","axis","axis","ay","az","az_torque_cmd","baroAltMSL","barometer_accuracy","barometric_pressure","base_mode","base_mode","base_mode","baseline_a_mm","baseline_a_mm","baseline_b_mm","baseline_b_mm","baseline_c_mm","baseline_c_mm","baseline_coords_type","baseline_coords_type","bat_current_setpoint","battery","battery_current","battery_function","battery_function","battery_remaining","battery_remaining","battery_remaining","baudrate","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitrate","bitrate","bitrate","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","board_version","body_pitch_rate","body_pitch_rate","body_roll_rate","body_roll_rate","body_yaw_rate","body_yaw_rate","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bottom_clearance","breach_count","breach_count","breach_status","breach_time","breach_type","break_alt","brkval","bus","bus","bus","bus","bus","bus_voltage","busname","busname","bustype","bustype","buttons","cal_mask","cal_mask","cal_status","cal_status","callsign","callsign","callsign","cam_definition_uri","cam_definition_version","cam_idx","cam_idx","camera_id","camera_id","cap_flags","cap_flags","capabilities","capacity_full","capacity_full_specification","capture_mode","capture_result","category_eu","chan10_raw","chan10_raw","chan11_raw","chan11_raw","chan12_raw","chan12_raw","chan13_raw","chan14_raw","chan15_raw","chan16_raw","chan17_raw","chan18_raw","chan1_raw","chan1_raw","chan1_raw","chan1_raw","chan1_scaled","chan2_raw","chan2_raw","chan2_raw","chan2_raw","chan2_scaled","chan3_raw","chan3_raw","chan3_raw","chan3_raw","chan3_scaled","chan4_raw","chan4_raw","chan4_raw","chan4_raw","chan4_scaled","chan5_raw","chan5_raw","chan5_raw","chan5_raw","chan5_scaled","chan6_raw","chan6_raw","chan6_raw","chan6_raw","chan6_scaled","chan7_raw","chan7_raw","chan7_raw","chan7_raw","chan7_scaled","chan8_raw","chan8_raw","chan8_raw","chan8_raw","chan8_scaled","chan9_raw","chan9_raw","chancount","charging_minimum_voltage","child_frame_id","class_eu","classification_type","climb","climb_rate","climb_rate","clipping_0","clipping_1","clipping_2","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmd_id","cmd_id","cmd_id","cmd_id","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cog","cog","cog","command","command","command","command","command","command","command","command_id","command_id","commanded_action","compass_id","compass_id","compass_variance","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","completion_mask","completion_pct","confidence","config_type","config_type","confirmation","connection_type","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","control_request","control_request","controls","controls","controls","coordinate_frame","coordinate_frame","coordinate_frame","coordinate_frame","count","count","count","count","count","count","count","count","count","count","count","count","count","count","count","counter","covariance","covariance","covariance","covariance","cpu_combined","cpu_cores","crc","cross_track_error","current","current","current","current","current","current","current","current","current","current_battery","current_battery","current_battery","current_consumed","current_distance","current_height","custom0","custom1","custom2","custom_bytes","custom_cap_flags","custom_len","custom_mode","custom_mode","custom_mode","custom_mode","custom_name","custom_state","cycle_count","cylinder_head_temperature","data","data","data","data","data","data","data","data","data","data","data","data","data","data","data","data","data","data_page","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default_message_from_id","delta","delta_angle_x","delta_angle_y","delta_angle_z","delta_time","delta_velocity_x","delta_velocity_y","delta_velocity_z","demanded_rate_x","demanded_rate_y","demanded_rate_z","description","description_type","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","desired","desired","destination_component","destination_system","device","device_name","dgps_age","dgps_numch","diag_x","diag_y","diag_z","diff_pressure","diff_pressure","diff_pressure","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","dimension_bow","dimension_port","dimension_starboard","dimension_stern","direction","direction","direction_x","direction_y","direction_z","discharge_minimum_voltage","dist","distance","distance","distance","distance","distance","distance","distances","drop_rate_comm","ecu_index","el_torque_cmd","emergencyStatus","emitterType","emitter_type","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","enable_lte","enable_pin","end","end_index","end_index","energy_consumed","engine_cut_off","engine_load","eph","eph","eph","eph","epv","epv","epv","epv","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","error","error","error_count","error_rp","error_yaw","errors_comm","errors_count1","errors_count2","errors_count3","errors_count4","est_capabilities","estimator_status","estimator_type","estimator_type","event_id","event_time_boot_ms","exhaust_gas_temperature","expected_travel_distance","exposure_type","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extra_crc","extra_param","extra_param","extra_value","extra_value","f","f_dot","failed_sessions","failsafe","failure_flags","failure_flags","failure_flags","failure_reason","fan_speed","feed_forward_angular_velocity_z","fields_updated","fields_updated","file_crc","file_url","firmware_version","firmware_version","first_message_offset","first_message_offset","first_sequence","fitness","fix_type","fix_type","fix_type","fix_type","fixed","fixed","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flight_custom_version","flight_state","flight_sw_version","flight_uuid","flow_comp_m_x","flow_comp_m_y","flow_x","flow_y","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","foc_len","focal_length","focus_lock","format","format","frame","frame","frame","frame","frame","frame","frame","frame","frame_id","framerate","framerate","framerate","freemem","frequency","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","fuel_consumed","fuel_flow","gcs_system_id","general_metadata_file_crc","general_metadata_uri","generator_speed","generator_temperature","gimbal_device_id","gimbal_device_id","gimbal_device_id","gimbal_device_id","gimbal_device_id","gpsAlt","gpsFix","gpsLat","gpsLon","gpsOffsetLat","gpsOffsetLon","gps_fix_type","gps_id","gps_nsat","gpu_combined","gpu_cores","grid_spacing","grid_spacing","gridbit","ground_distance","groundspeed","groundspeed","groundspeed","group_mlx","group_mlx","gyro_cal_x","gyro_cal_y","gyro_cal_z","h_acc","h_acc","hagl_ratio","hardware_version","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hdg","hdg","hdg_acc","hdop","heading","heading","heading","heading","heading","heading_sp","health","health","healthy","height","height","height_reference","hfov","hfov","hfov","hor_velocity","horiz_accuracy","horiz_accuracy","horizontal_accuracy","horizontal_minimum_delta","humidity","hw_unique_id","hw_version_major","hw_version_minor","iar_num_hypotheses","iar_num_hypotheses","id","id","id","id","id","id","id","id","id","id","id","id","id","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_type","ids","idx","idx","idx","idx","ignition_timing","ignore_flags","image_index","image_interval","image_status","img_idx","img_idx","increment","increment","increment","ind","ind_airspeed","index","index","index","info","initial_timestamp","injection_time","input_a","input_b","input_c","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","instance","intake_manifold_pressure","intake_manifold_temperature","integrated_x","integrated_x","integrated_xgyro","integrated_xgyro","integrated_y","integrated_y","integrated_ygyro","integrated_ygyro","integrated_zgyro","integrated_zgyro","integration_time_us","integration_time_us","interference","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","interval_us","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","iso","joint_az","joint_el","joint_roll","jpg_quality","key","lac","land","land_dir","landed_state","landed_state","landed_state","landing_lat","landing_lon","last_action","last_change_ms","last_clear","last_heartbeat","last_log_num","last_page_index","last_recovery","last_sequence","last_trigger","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat_camera","lat_image","lat_int","lat_int","latitude","latitude","latitude","latitude","latitude","latitude","latitude","len","len","len","len","len","len","len","len","length","length","length","lens_id","library_version_hash","limits_state","line_length","link_rx_max","link_rx_rate","link_tx_max","link_tx_rate","link_type","lng","lng","lng","lng","lng","lng","lng","load","load_current","loaded","log_levels","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon_camera","lon_image","lon_int","lon_int","longitude","longitude","longitude","longitude","longitude","longitude","longitude","mag_declination","mag_ofs_x","mag_ofs_x","mag_ofs_y","mag_ofs_y","mag_ofs_z","mag_ofs_z","mag_ratio","manual_override_switch","mask","mavlink_version","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","max1","max2","max3","max4","max5","max_distance","max_distance","max_distance","max_value","max_value","max_version","mcc","message_id","message_id","message_id_from_name","message_name","message_rate","message_type","messages","messages_lost","messages_received","messages_sent","middleware_custom_version","middleware_sw_version","min1","min2","min3","min4","min5","min_distance","min_distance","min_distance","min_value","min_value","min_version","mission_end","mission_next_item","mnc","mode","mode","mode","mode","mode_id","mode_switch","model_name","model_name","mods_enabled","mods_required","mods_triggered","mount_mode","msg_pack_size","name","name","name","name","name","name","name","nav_bearing","nav_mode","nav_pitch","nav_roll","navigational_status","new_pin","next_alt","next_lat","next_lon","noise","noise","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","nsats","nsats","numBands","numSats","num_ids","num_logs","obstacle_id","offdiag_x","offdiag_y","offdiag_z","offset","ofs","ofs","ofs_x","ofs_y","ofs_z","omega","omegaIx","omegaIy","omegaIz","omega_dot","on_off","onboard_control_sensors_enabled","onboard_control_sensors_health","onboard_control_sensors_present","operation","operator_altitude_geo","operator_altitude_geo","operator_id","operator_id_type","operator_latitude","operator_latitude","operator_location_type","operator_longitude","operator_longitude","orientation","os_custom_version","os_sw_version","osd_index","osd_index","osd_screen","osd_screen","p1","p1x","p1x","p1y","p1y","p1z","p1z","p2","p2x","p2x","p2y","p2y","p2z","p2z","p3","p4","packets","param1","param1","param1","param1","param2","param2","param2","param2","param3","param3","param3","param3","param4","param4","param4","param4","param5","param6","param7","param_count","param_count","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_index","param_index","param_index","param_index","param_index","param_result","param_type","param_type","param_type","param_type","param_type","param_value","param_value","param_value","param_value","param_value","param_value0","param_value_max","param_value_min","parameter_rc_channel_index","parse","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","passkey","password","path_lat","path_lon","pattern","payload","payload","payload","payload","payload_length","payload_type","pending","peripherals_metadata_file_crc","peripherals_metadata_uri","pin","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch_elevator","pitch_max","pitch_max","pitch_min","pitch_min","pitch_rate","pitch_rate","pitch_rate","pitchspeed","pitchspeed","pitchspeed","pitchspeed","pitchspeed","pitchspeed","point_x","point_y","pointing_a","pointing_b","pointing_c","port","port","port","pos_horiz_accuracy","pos_horiz_ratio","pos_horiz_variance","pos_variance","pos_vert_accuracy","pos_vert_ratio","pos_vert_variance","pos_x","pos_x","pos_y","pos_y","pos_yaw","pos_yaw","pos_z","pos_z","pose_covariance","position_cov","position_delta","power_generated","press_abs","press_abs","press_abs","press_abs","press_diff","press_diff","press_diff","press_diff1","press_diff2","pressure_alt","pressure_alt","primary_control_compid","primary_control_sysid","product_id","pt_compensation","puk","q","q","q","q","q","q","q","q","q","q","q","q","q","q","q1","q1","q2","q2","q3","q3","q4","q4","q_estimated_delay_us","quality","quality","quality","quality","r","radius","radius","ram_total","ram_usage","rates","ratio","raw_press","raw_temp","read_speed","reason","rec_bottom_x","rec_bottom_y","rec_top_x","rec_top_y","recording_time_ms","rectifier_temperature","regstart","regstart","regstart","relative_alt","relative_alt","relative_alt","relative_alt","remnoise","remnoise","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remrssi","remrssi","renorm_val","req_message_rate","req_stream_id","request_id","request_id","request_id","request_id","request_id","request_id","request_id","request_id","request_id","resolution_h","resolution_h","resolution_h","resolution_h","resolution_v","resolution_v","resolution_v","resolution_v","response","resting_minimum_voltage","result","result","result","result","result","rfHealth","rfSelect","ring_pending","rl_torque_cmd","roaming","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll_ailerons","roll_max","roll_max","roll_min","roll_min","roll_rate","rollspeed","rollspeed","rollspeed","rollspeed","rollspeed","rollspeed","rotation","rotation","rotation","rpm","rpm","rpm","rpm","rpm","rpm1","rpm2","rssi","rssi","rssi","rssi","rssi","rssi","rtk_health","rtk_health","rtk_rate","rtk_rate","rtk_receiver_id","rtk_receiver_id","runtime","rx_buf","rx_overflows","rx_parse_err","rx_rate","rx_session_pending","rxerrors","rxerrors","safe_return","satellite_azimuth","satellite_elevation","satellite_prn","satellite_snr","satellite_used","satellites_visible","satellites_visible","satellites_visible","satellites_visible","satellites_visible","save_position","scale","secondary_control_compid","secondary_control_sysid","secret_key","sensor_id","sensor_id","sensor_id","sensor_size_h","sensor_size_v","sensor_type","sensor_type","seq","seq","seq","seq","seq","seq","seq","seq","seq","seqno","seqno","seqnr","sequence","sequence","sequence","sequence","sequence","sequence","sequence_oldest_available","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","serial_number","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","servo1_raw","servo2_raw","servo3_raw","servo4_raw","servo5_raw","servo6_raw","servo7_raw","servo8_raw","session","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","severity","shot","shutter_speed","sigma","sigma_dot","signal_quality","single_message_size","size","size","size","size_x","size_y","spacing","spark_dwell_time","spec_version_hash","speed","speed","speed_accuracy","speed_accuracy","speed_horizontal","speed_vertical","speed_z","squawk","squawk","src","ssid","stab_pitch","stab_roll","stab_yaw","stage","stallSpeed","start","start_index","start_index","start_stop","state","state","state_x","state_y","state_z","status","status","status","status","status","status","status","status","status","status","status","status","std_dev_horz","std_dev_vert","storage","storage_count","storage_id","storage_total","storage_type","storage_usage","stream_id","stream_id","stream_id","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_mode","successful_sessions","sw_vcs_commit","sw_version_major","sw_version_minor","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","system_status","takeoff_time_utc","target","target_altitude","target_bearing","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_data","target_distance","target_heading","target_network","target_network","target_num","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","tas_ratio","tc1","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature_air","temperature_air","temperature_board","temperature_core","tension","terrain_alt_variance","terrain_height","text","theta","theta_dot","threat_level","throttle","throttle","throttle","throttle","throttle","throttle_out","throttle_position","thrust","thrust","thrust","time","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_us","time_delta_distance_us","time_delta_distance_us","time_delta_usec","time_last_baseline_ms","time_last_baseline_ms","time_to_minimum_delta","time_unix_usec","time_until_maintenance","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_utc","time_utc","time_week","time_week_ms","timeout","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp_accuracy","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","total_capacity","totalcurrent","totalcurrent","totalcurrent","tow","tow","tracking_mode","tracking_status","tracking_status","transfer_type","true_airspeed","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","ts1","tslc","tslc","tune","tune","turn_rate","tx_buf","tx_overflows","tx_rate","tx_session_pending","txbuf","txbuf","type1","type2","type3","type4","type5","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_mask","type_mask","type_mask","type_mask","type_mask","type_mask","u","ua_type","uas_id","uas_id","uid","uid","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","update_rate","uptime","uptime_sec","uptime_sec","uri","uri","uri","uri","uri_type","usec","usec","usec","usec","used_capacity","utcTime","v1","v2","v3","v4","v_acc","v_acc","v_estimated_delay_us","valid_points","valid_points","value","value","value","value","value","value","var_horiz","var_vert","vd","vd","vd","vdop","ve","ve","ve","vel","vel","vel","vel","velNS","velVert","vel_acc","vel_acc","vel_d","vel_e","vel_n","vel_ratio","vel_variance","vel_x","vel_y","vel_yaw","vel_z","velocity","velocity_covariance","velocity_variance","vendor_id","vendor_name","vendor_name","vendor_specific_status_code","ver","ver_velocity","version","version","vert_accuracy","vert_accuracy","vertical_accuracy","vfov","vibration_x","vibration_y","vibration_z","video_status","vn","vn","vn","voltage","voltage","voltage","voltage","voltage","voltage","voltage","voltage_battery","voltages","vtol_state","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","weight","width","wind_alt","wind_heading","wind_x","wind_y","wind_z","windspeed","wn","wn","wp_dist","wp_distance","wp_num","wp_num","write_speed","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x_acc","x_pos","x_vel","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xmag","xmag","xmag","xmag","xmag","xmag","xtrack_error","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y_acc","y_pos","y_vel","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw_max","yaw_max","yaw_min","yaw_min","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rudder","yawspeed","yawspeed","yawspeed","yawspeed","yawspeed","yawspeed","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ymag","ymag","ymag","ymag","ymag","ymag","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z_acc","z_pos","z_vel","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zmag","zmag","zmag","zmag","zmag","zmag","zoom_pos","zoom_step","Bytes","borrow","borrow_mut","from","get_array","get_bytes","get_f32_le","get_f64_le","get_i16_le","get_i24_le","get_i32_le","get_i64_le","get_i8","get_u16_le","get_u24_le","get_u32_le","get_u64_le","get_u8","into","new","remaining_bytes","try_from","try_into","type_id","BytesMut","borrow","borrow_mut","from","into","is_empty","len","new","put_f32_le","put_f64_le","put_i16_le","put_i24_le","put_i32_le","put_i64_le","put_i8","put_slice","put_u16_le","put_u24_le","put_u32_le","put_u64_le","put_u8","remaining","try_from","try_into","type_id","ACTUATOR_CONFIGURATION_3D_MODE_OFF","ACTUATOR_CONFIGURATION_3D_MODE_ON","ACTUATOR_CONFIGURATION_BEEP","ACTUATOR_CONFIGURATION_NONE","ACTUATOR_CONFIGURATION_SPIN_DIRECTION1","ACTUATOR_CONFIGURATION_SPIN_DIRECTION2","ACTUATOR_CONTROL_TARGET","ACTUATOR_CONTROL_TARGET_DATA","ACTUATOR_OUTPUT_FUNCTION_MOTOR1","ACTUATOR_OUTPUT_FUNCTION_MOTOR10","ACTUATOR_OUTPUT_FUNCTION_MOTOR11","ACTUATOR_OUTPUT_FUNCTION_MOTOR12","ACTUATOR_OUTPUT_FUNCTION_MOTOR13","ACTUATOR_OUTPUT_FUNCTION_MOTOR14","ACTUATOR_OUTPUT_FUNCTION_MOTOR15","ACTUATOR_OUTPUT_FUNCTION_MOTOR16","ACTUATOR_OUTPUT_FUNCTION_MOTOR2","ACTUATOR_OUTPUT_FUNCTION_MOTOR3","ACTUATOR_OUTPUT_FUNCTION_MOTOR4","ACTUATOR_OUTPUT_FUNCTION_MOTOR5","ACTUATOR_OUTPUT_FUNCTION_MOTOR6","ACTUATOR_OUTPUT_FUNCTION_MOTOR7","ACTUATOR_OUTPUT_FUNCTION_MOTOR8","ACTUATOR_OUTPUT_FUNCTION_MOTOR9","ACTUATOR_OUTPUT_FUNCTION_NONE","ACTUATOR_OUTPUT_FUNCTION_SERVO1","ACTUATOR_OUTPUT_FUNCTION_SERVO10","ACTUATOR_OUTPUT_FUNCTION_SERVO11","ACTUATOR_OUTPUT_FUNCTION_SERVO12","ACTUATOR_OUTPUT_FUNCTION_SERVO13","ACTUATOR_OUTPUT_FUNCTION_SERVO14","ACTUATOR_OUTPUT_FUNCTION_SERVO15","ACTUATOR_OUTPUT_FUNCTION_SERVO16","ACTUATOR_OUTPUT_FUNCTION_SERVO2","ACTUATOR_OUTPUT_FUNCTION_SERVO3","ACTUATOR_OUTPUT_FUNCTION_SERVO4","ACTUATOR_OUTPUT_FUNCTION_SERVO5","ACTUATOR_OUTPUT_FUNCTION_SERVO6","ACTUATOR_OUTPUT_FUNCTION_SERVO7","ACTUATOR_OUTPUT_FUNCTION_SERVO8","ACTUATOR_OUTPUT_FUNCTION_SERVO9","ACTUATOR_OUTPUT_STATUS","ACTUATOR_OUTPUT_STATUS_DATA","ADSB_ALTITUDE_TYPE_GEOMETRIC","ADSB_ALTITUDE_TYPE_PRESSURE_QNH","ADSB_EMITTER_TYPE_EMERGENCY_SURFACE","ADSB_EMITTER_TYPE_GLIDER","ADSB_EMITTER_TYPE_HEAVY","ADSB_EMITTER_TYPE_HIGHLY_MANUV","ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE","ADSB_EMITTER_TYPE_LARGE","ADSB_EMITTER_TYPE_LIGHT","ADSB_EMITTER_TYPE_LIGHTER_AIR","ADSB_EMITTER_TYPE_NO_INFO","ADSB_EMITTER_TYPE_PARACHUTE","ADSB_EMITTER_TYPE_POINT_OBSTACLE","ADSB_EMITTER_TYPE_ROTOCRAFT","ADSB_EMITTER_TYPE_SERVICE_SURFACE","ADSB_EMITTER_TYPE_SMALL","ADSB_EMITTER_TYPE_SPACE","ADSB_EMITTER_TYPE_UAV","ADSB_EMITTER_TYPE_ULTRA_LIGHT","ADSB_EMITTER_TYPE_UNASSGINED3","ADSB_EMITTER_TYPE_UNASSIGNED","ADSB_EMITTER_TYPE_UNASSIGNED2","ADSB_FLAGS_BARO_VALID","ADSB_FLAGS_SIMULATED","ADSB_FLAGS_SOURCE_UAT","ADSB_FLAGS_VALID_ALTITUDE","ADSB_FLAGS_VALID_CALLSIGN","ADSB_FLAGS_VALID_COORDS","ADSB_FLAGS_VALID_HEADING","ADSB_FLAGS_VALID_SQUAWK","ADSB_FLAGS_VALID_VELOCITY","ADSB_FLAGS_VERTICAL_VELOCITY_VALID","ADSB_VEHICLE","ADSB_VEHICLE_DATA","AIS_FLAGS_HIGH_VELOCITY","AIS_FLAGS_LARGE_BOW_DIMENSION","AIS_FLAGS_LARGE_PORT_DIMENSION","AIS_FLAGS_LARGE_STARBOARD_DIMENSION","AIS_FLAGS_LARGE_STERN_DIMENSION","AIS_FLAGS_POSITION_ACCURACY","AIS_FLAGS_TURN_RATE_SIGN_ONLY","AIS_FLAGS_VALID_CALLSIGN","AIS_FLAGS_VALID_COG","AIS_FLAGS_VALID_DIMENSIONS","AIS_FLAGS_VALID_NAME","AIS_FLAGS_VALID_TURN_RATE","AIS_FLAGS_VALID_VELOCITY","AIS_NAV_AGROUND","AIS_NAV_AIS_SART","AIS_NAV_ANCHORED","AIS_NAV_DRAUGHT_CONSTRAINED","AIS_NAV_FISHING","AIS_NAV_MOORED","AIS_NAV_RESERVED_1","AIS_NAV_RESERVED_2","AIS_NAV_RESERVED_3","AIS_NAV_RESERVED_HSC","AIS_NAV_RESERVED_WIG","AIS_NAV_RESTRICTED_MANOEUVERABILITY","AIS_NAV_SAILING","AIS_NAV_UNKNOWN","AIS_NAV_UN_COMMANDED","AIS_TYPE_ANTI_POLLUTION","AIS_TYPE_CARGO","AIS_TYPE_CARGO_HAZARDOUS_A","AIS_TYPE_CARGO_HAZARDOUS_B","AIS_TYPE_CARGO_HAZARDOUS_C","AIS_TYPE_CARGO_HAZARDOUS_D","AIS_TYPE_CARGO_RESERVED_1","AIS_TYPE_CARGO_RESERVED_2","AIS_TYPE_CARGO_RESERVED_3","AIS_TYPE_CARGO_RESERVED_4","AIS_TYPE_CARGO_UNKNOWN","AIS_TYPE_DIVING","AIS_TYPE_DREDGING","AIS_TYPE_FISHING","AIS_TYPE_HSC","AIS_TYPE_HSC_HAZARDOUS_A","AIS_TYPE_HSC_HAZARDOUS_B","AIS_TYPE_HSC_HAZARDOUS_C","AIS_TYPE_HSC_HAZARDOUS_D","AIS_TYPE_HSC_RESERVED_1","AIS_TYPE_HSC_RESERVED_2","AIS_TYPE_HSC_RESERVED_3","AIS_TYPE_HSC_RESERVED_4","AIS_TYPE_HSC_UNKNOWN","AIS_TYPE_LAW_ENFORCEMENT","AIS_TYPE_MEDICAL_TRANSPORT","AIS_TYPE_MILITARY","AIS_TYPE_NONECOMBATANT","AIS_TYPE_OTHER","AIS_TYPE_OTHER_HAZARDOUS_A","AIS_TYPE_OTHER_HAZARDOUS_B","AIS_TYPE_OTHER_HAZARDOUS_C","AIS_TYPE_OTHER_HAZARDOUS_D","AIS_TYPE_OTHER_RESERVED_1","AIS_TYPE_OTHER_RESERVED_2","AIS_TYPE_OTHER_RESERVED_3","AIS_TYPE_OTHER_RESERVED_4","AIS_TYPE_OTHER_UNKNOWN","AIS_TYPE_PASSENGER","AIS_TYPE_PASSENGER_HAZARDOUS_A","AIS_TYPE_PASSENGER_HAZARDOUS_B","AIS_TYPE_PASSENGER_HAZARDOUS_C","AIS_TYPE_PASSENGER_HAZARDOUS_D","AIS_TYPE_PASSENGER_RESERVED_1","AIS_TYPE_PASSENGER_RESERVED_2","AIS_TYPE_PASSENGER_RESERVED_3","AIS_TYPE_PASSENGER_RESERVED_4","AIS_TYPE_PASSENGER_UNKNOWN","AIS_TYPE_PILOT","AIS_TYPE_PLEASURE","AIS_TYPE_PORT_TENDER","AIS_TYPE_RESERVED_1","AIS_TYPE_RESERVED_10","AIS_TYPE_RESERVED_11","AIS_TYPE_RESERVED_12","AIS_TYPE_RESERVED_13","AIS_TYPE_RESERVED_14","AIS_TYPE_RESERVED_15","AIS_TYPE_RESERVED_16","AIS_TYPE_RESERVED_17","AIS_TYPE_RESERVED_18","AIS_TYPE_RESERVED_19","AIS_TYPE_RESERVED_2","AIS_TYPE_RESERVED_20","AIS_TYPE_RESERVED_21","AIS_TYPE_RESERVED_3","AIS_TYPE_RESERVED_4","AIS_TYPE_RESERVED_5","AIS_TYPE_RESERVED_6","AIS_TYPE_RESERVED_7","AIS_TYPE_RESERVED_8","AIS_TYPE_RESERVED_9","AIS_TYPE_SAILING","AIS_TYPE_SAR","AIS_TYPE_SPARE_LOCAL_1","AIS_TYPE_SPARE_LOCAL_2","AIS_TYPE_TANKER","AIS_TYPE_TANKER_HAZARDOUS_A","AIS_TYPE_TANKER_HAZARDOUS_B","AIS_TYPE_TANKER_HAZARDOUS_C","AIS_TYPE_TANKER_HAZARDOUS_D","AIS_TYPE_TANKER_RESERVED_1","AIS_TYPE_TANKER_RESERVED_2","AIS_TYPE_TANKER_RESERVED_3","AIS_TYPE_TANKER_RESERVED_4","AIS_TYPE_TANKER_UNKNOWN","AIS_TYPE_TOWING","AIS_TYPE_TOWING_LARGE","AIS_TYPE_TUG","AIS_TYPE_UNKNOWN","AIS_TYPE_WIG","AIS_TYPE_WIG_HAZARDOUS_A","AIS_TYPE_WIG_HAZARDOUS_B","AIS_TYPE_WIG_HAZARDOUS_C","AIS_TYPE_WIG_HAZARDOUS_D","AIS_TYPE_WIG_RESERVED_1","AIS_TYPE_WIG_RESERVED_2","AIS_TYPE_WIG_RESERVED_3","AIS_TYPE_WIG_RESERVED_4","AIS_TYPE_WIG_RESERVED_5","AIS_VESSEL","AIS_VESSEL_DATA","ALTITUDE","ALTITUDE_DATA","ATTITUDE","ATTITUDE_DATA","ATTITUDE_QUATERNION","ATTITUDE_QUATERNION_COV","ATTITUDE_QUATERNION_COV_DATA","ATTITUDE_QUATERNION_DATA","ATTITUDE_TARGET","ATTITUDE_TARGET_DATA","ATTITUDE_TARGET_TYPEMASK_ATTITUDE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_PITCH_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_YAW_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_THROTTLE_IGNORE","ATTITUDE_TARGET_TYPEMASK_THRUST_BODY_SET","ATT_POS_MOCAP","ATT_POS_MOCAP_DATA","AUTH_KEY","AUTH_KEY_DATA","AUTOPILOT_STATE_FOR_GIMBAL_DEVICE","AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA","AUTOPILOT_VERSION","AUTOPILOT_VERSION_DATA","AUTOTUNE_AXIS_DEFAULT","AUTOTUNE_AXIS_PITCH","AUTOTUNE_AXIS_ROLL","AUTOTUNE_AXIS_YAW","ActuatorConfiguration","ActuatorOutputFunction","AdsbAltitudeType","AdsbEmitterType","AdsbFlags","AisFlags","AisNavStatus","AisType","AttitudeTargetTypemask","AutotuneAxis","BATTERY_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION","BATTERY_STATUS","BATTERY_STATUS_DATA","BUTTON_CHANGE","BUTTON_CHANGE_DATA","CAMERA_CAPTURE_STATUS","CAMERA_CAPTURE_STATUS_DATA","CAMERA_CAP_FLAGS_CAN_CAPTURE_IMAGE_IN_VIDEO_MODE","CAMERA_CAP_FLAGS_CAN_CAPTURE_VIDEO_IN_IMAGE_MODE","CAMERA_CAP_FLAGS_CAPTURE_IMAGE","CAMERA_CAP_FLAGS_CAPTURE_VIDEO","CAMERA_CAP_FLAGS_HAS_BASIC_FOCUS","CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM","CAMERA_CAP_FLAGS_HAS_IMAGE_SURVEY_MODE","CAMERA_CAP_FLAGS_HAS_MODES","CAMERA_CAP_FLAGS_HAS_TRACKING_GEO_STATUS","CAMERA_CAP_FLAGS_HAS_TRACKING_POINT","CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE","CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM","CAMERA_FOV_STATUS","CAMERA_FOV_STATUS_DATA","CAMERA_IMAGE_CAPTURED","CAMERA_IMAGE_CAPTURED_DATA","CAMERA_INFORMATION","CAMERA_INFORMATION_DATA","CAMERA_MODE_IMAGE","CAMERA_MODE_IMAGE_SURVEY","CAMERA_MODE_VIDEO","CAMERA_SETTINGS","CAMERA_SETTINGS_DATA","CAMERA_TRACKING_GEO_STATUS","CAMERA_TRACKING_GEO_STATUS_DATA","CAMERA_TRACKING_IMAGE_STATUS","CAMERA_TRACKING_IMAGE_STATUS_DATA","CAMERA_TRACKING_MODE_NONE","CAMERA_TRACKING_MODE_POINT","CAMERA_TRACKING_MODE_RECTANGLE","CAMERA_TRACKING_STATUS_FLAGS_ACTIVE","CAMERA_TRACKING_STATUS_FLAGS_ERROR","CAMERA_TRACKING_STATUS_FLAGS_IDLE","CAMERA_TRACKING_TARGET_DATA_EMBEDDED","CAMERA_TRACKING_TARGET_DATA_IN_STATUS","CAMERA_TRACKING_TARGET_DATA_NONE","CAMERA_TRACKING_TARGET_DATA_RENDERED","CAMERA_TRIGGER","CAMERA_TRIGGER_DATA","CANFD_FRAME","CANFD_FRAME_DATA","CAN_FILTER_ADD","CAN_FILTER_MODIFY","CAN_FILTER_MODIFY_DATA","CAN_FILTER_REMOVE","CAN_FILTER_REPLACE","CAN_FRAME","CAN_FRAME_DATA","CELLULAR_CONFIG","CELLULAR_CONFIG_BLOCKED_PUK_REQUIRED","CELLULAR_CONFIG_DATA","CELLULAR_CONFIG_RESPONSE_ACCEPTED","CELLULAR_CONFIG_RESPONSE_APN_ERROR","CELLULAR_CONFIG_RESPONSE_PIN_ERROR","CELLULAR_CONFIG_RESPONSE_REJECTED","CELLULAR_NETWORK_FAILED_REASON_NONE","CELLULAR_NETWORK_FAILED_REASON_SIM_ERROR","CELLULAR_NETWORK_FAILED_REASON_SIM_MISSING","CELLULAR_NETWORK_FAILED_REASON_UNKNOWN","CELLULAR_NETWORK_RADIO_TYPE_CDMA","CELLULAR_NETWORK_RADIO_TYPE_GSM","CELLULAR_NETWORK_RADIO_TYPE_LTE","CELLULAR_NETWORK_RADIO_TYPE_NONE","CELLULAR_NETWORK_RADIO_TYPE_WCDMA","CELLULAR_STATUS","CELLULAR_STATUS_DATA","CELLULAR_STATUS_FLAG_CONNECTED","CELLULAR_STATUS_FLAG_CONNECTING","CELLULAR_STATUS_FLAG_DISABLED","CELLULAR_STATUS_FLAG_DISABLING","CELLULAR_STATUS_FLAG_DISCONNECTING","CELLULAR_STATUS_FLAG_ENABLED","CELLULAR_STATUS_FLAG_ENABLING","CELLULAR_STATUS_FLAG_FAILED","CELLULAR_STATUS_FLAG_INITIALIZING","CELLULAR_STATUS_FLAG_LOCKED","CELLULAR_STATUS_FLAG_REGISTERED","CELLULAR_STATUS_FLAG_SEARCHING","CELLULAR_STATUS_FLAG_UNKNOWN","CHANGE_OPERATOR_CONTROL","CHANGE_OPERATOR_CONTROL_ACK","CHANGE_OPERATOR_CONTROL_ACK_DATA","CHANGE_OPERATOR_CONTROL_DATA","COG","COLLISION","COLLISION_DATA","COMMAND_ACK","COMMAND_ACK_DATA","COMMAND_CANCEL","COMMAND_CANCEL_DATA","COMMAND_INT","COMMAND_INT_DATA","COMMAND_LONG","COMMAND_LONG_DATA","COMPONENT_INFORMATION","COMPONENT_INFORMATION_DATA","COMPONENT_METADATA","COMPONENT_METADATA_DATA","COMP_METADATA_TYPE_ACTUATORS","COMP_METADATA_TYPE_COMMANDS","COMP_METADATA_TYPE_EVENTS","COMP_METADATA_TYPE_GENERAL","COMP_METADATA_TYPE_PARAMETER","COMP_METADATA_TYPE_PERIPHERALS","CONTROL_SYSTEM_STATE","CONTROL_SYSTEM_STATE_DATA","CURRENT_EVENT_SEQUENCE","CURRENT_EVENT_SEQUENCE_DATA","CameraCapFlags","CameraMode","CameraTrackingMode","CameraTrackingStatusFlags","CameraTrackingTargetData","CameraZoomType","CanFilterOp","CellularConfigResponse","CellularNetworkFailedReason","CellularNetworkRadioType","CellularStatusFlag","CompMetadataType","DATA_STREAM","DATA_STREAM_DATA","DATA_TRANSMISSION_HANDSHAKE","DATA_TRANSMISSION_HANDSHAKE_DATA","DEBUG","DEBUG_DATA","DEBUG_FLOAT_ARRAY","DEBUG_FLOAT_ARRAY_DATA","DEBUG_VECT","DEBUG_VECT_DATA","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DISTANCE_SENSOR","DISTANCE_SENSOR_DATA","EFI_STATUS","EFI_STATUS_DATA","ENCAPSULATED_DATA","ENCAPSULATED_DATA_DATA","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ESC_CONNECTION_TYPE_CAN","ESC_CONNECTION_TYPE_DSHOT","ESC_CONNECTION_TYPE_I2C","ESC_CONNECTION_TYPE_ONESHOT","ESC_CONNECTION_TYPE_PPM","ESC_CONNECTION_TYPE_SERIAL","ESC_FAILURE_GENERIC","ESC_FAILURE_INCONSISTENT_CMD","ESC_FAILURE_MOTOR_STUCK","ESC_FAILURE_NONE","ESC_FAILURE_OVER_CURRENT","ESC_FAILURE_OVER_RPM","ESC_FAILURE_OVER_TEMPERATURE","ESC_FAILURE_OVER_VOLTAGE","ESC_INFO","ESC_INFO_DATA","ESC_STATUS","ESC_STATUS_DATA","ESTIMATOR_ACCEL_ERROR","ESTIMATOR_ATTITUDE","ESTIMATOR_CONST_POS_MODE","ESTIMATOR_GPS_GLITCH","ESTIMATOR_POS_HORIZ_ABS","ESTIMATOR_POS_HORIZ_REL","ESTIMATOR_POS_VERT_ABS","ESTIMATOR_POS_VERT_AGL","ESTIMATOR_PRED_POS_HORIZ_ABS","ESTIMATOR_PRED_POS_HORIZ_REL","ESTIMATOR_STATUS","ESTIMATOR_STATUS_DATA","ESTIMATOR_VELOCITY_HORIZ","ESTIMATOR_VELOCITY_VERT","EVENT","EVENT_DATA","EXTENDED_SYS_STATE","EXTENDED_SYS_STATE_DATA","EscConnectionType","EscFailureFlags","EstimatorStatusFlags","FAILURE_TYPE_DELAYED","FAILURE_TYPE_GARBAGE","FAILURE_TYPE_INTERMITTENT","FAILURE_TYPE_OFF","FAILURE_TYPE_OK","FAILURE_TYPE_SLOW","FAILURE_TYPE_STUCK","FAILURE_TYPE_WRONG","FAILURE_UNIT_SENSOR_ACCEL","FAILURE_UNIT_SENSOR_AIRSPEED","FAILURE_UNIT_SENSOR_BARO","FAILURE_UNIT_SENSOR_DISTANCE_SENSOR","FAILURE_UNIT_SENSOR_GPS","FAILURE_UNIT_SENSOR_GYRO","FAILURE_UNIT_SENSOR_MAG","FAILURE_UNIT_SENSOR_OPTICAL_FLOW","FAILURE_UNIT_SENSOR_VIO","FAILURE_UNIT_SYSTEM_AVOIDANCE","FAILURE_UNIT_SYSTEM_BATTERY","FAILURE_UNIT_SYSTEM_MAVLINK_SIGNAL","FAILURE_UNIT_SYSTEM_MOTOR","FAILURE_UNIT_SYSTEM_RC_SIGNAL","FAILURE_UNIT_SYSTEM_SERVO","FENCE_ACTION_GUIDED","FENCE_ACTION_GUIDED_THR_PASS","FENCE_ACTION_HOLD","FENCE_ACTION_LAND","FENCE_ACTION_NONE","FENCE_ACTION_REPORT","FENCE_ACTION_RTL","FENCE_ACTION_TERMINATE","FENCE_BREACH_BOUNDARY","FENCE_BREACH_MAXALT","FENCE_BREACH_MINALT","FENCE_BREACH_NONE","FENCE_MITIGATE_NONE","FENCE_MITIGATE_UNKNOWN","FENCE_MITIGATE_VEL_LIMIT","FENCE_STATUS","FENCE_STATUS_DATA","FILE_TRANSFER_PROTOCOL","FILE_TRANSFER_PROTOCOL_DATA","FIRMWARE_VERSION_TYPE_ALPHA","FIRMWARE_VERSION_TYPE_BETA","FIRMWARE_VERSION_TYPE_DEV","FIRMWARE_VERSION_TYPE_OFFICIAL","FIRMWARE_VERSION_TYPE_RC","FLIGHT_INFORMATION","FLIGHT_INFORMATION_DATA","FOCUS_TYPE_AUTO","FOCUS_TYPE_AUTO_CONTINUOUS","FOCUS_TYPE_AUTO_SINGLE","FOCUS_TYPE_CONTINUOUS","FOCUS_TYPE_METERS","FOCUS_TYPE_RANGE","FOCUS_TYPE_STEP","FOLLOW_TARGET","FOLLOW_TARGET_DATA","FailureType","FailureUnit","FenceAction","FenceBreach","FenceMitigate","FirmwareVersionType","GENERATOR_STATUS","GENERATOR_STATUS_DATA","GIMBAL_DEVICE_ATTITUDE_STATUS","GIMBAL_DEVICE_ATTITUDE_STATUS_DATA","GIMBAL_DEVICE_CAP_FLAGS_HAS_NEUTRAL","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_LOCK","GIMBAL_DEVICE_CAP_FLAGS_HAS_RC_INPUTS","GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_LOCK","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_LOCK","GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_INFINITE_YAW","GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_ERROR_FLAGS_AT_PITCH_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_AT_YAW_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_CALIBRATION_RUNNING","GIMBAL_DEVICE_ERROR_FLAGS_COMMS_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_ENCODER_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_MOTOR_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_NO_MANAGER","GIMBAL_DEVICE_ERROR_FLAGS_POWER_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_SOFTWARE_ERROR","GIMBAL_DEVICE_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_FLAGS_NEUTRAL","GIMBAL_DEVICE_FLAGS_PITCH_LOCK","GIMBAL_DEVICE_FLAGS_RC_EXCLUSIVE","GIMBAL_DEVICE_FLAGS_RC_MIXED","GIMBAL_DEVICE_FLAGS_RETRACT","GIMBAL_DEVICE_FLAGS_ROLL_LOCK","GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME","GIMBAL_DEVICE_FLAGS_YAW_LOCK","GIMBAL_DEVICE_INFORMATION","GIMBAL_DEVICE_INFORMATION_DATA","GIMBAL_DEVICE_SET_ATTITUDE","GIMBAL_DEVICE_SET_ATTITUDE_DATA","GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_GLOBAL","GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_LOCAL","GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_LOCK","GIMBAL_MANAGER_CAP_FLAGS_HAS_RC_INPUTS","GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_LOCK","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK","GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_INFINITE_YAW","GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_NEUTRAL","GIMBAL_MANAGER_FLAGS_PITCH_LOCK","GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE","GIMBAL_MANAGER_FLAGS_RC_MIXED","GIMBAL_MANAGER_FLAGS_RETRACT","GIMBAL_MANAGER_FLAGS_ROLL_LOCK","GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME","GIMBAL_MANAGER_FLAGS_YAW_LOCK","GIMBAL_MANAGER_INFORMATION","GIMBAL_MANAGER_INFORMATION_DATA","GIMBAL_MANAGER_SET_ATTITUDE","GIMBAL_MANAGER_SET_ATTITUDE_DATA","GIMBAL_MANAGER_SET_MANUAL_CONTROL","GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA","GIMBAL_MANAGER_SET_PITCHYAW","GIMBAL_MANAGER_SET_PITCHYAW_DATA","GIMBAL_MANAGER_STATUS","GIMBAL_MANAGER_STATUS_DATA","GLOBAL_POSITION_INT","GLOBAL_POSITION_INT_COV","GLOBAL_POSITION_INT_COV_DATA","GLOBAL_POSITION_INT_DATA","GLOBAL_VISION_POSITION_ESTIMATE","GLOBAL_VISION_POSITION_ESTIMATE_DATA","GPS2_RAW","GPS2_RAW_DATA","GPS2_RTK","GPS2_RTK_DATA","GPS_FIX_TYPE_2D_FIX","GPS_FIX_TYPE_3D_FIX","GPS_FIX_TYPE_DGPS","GPS_FIX_TYPE_NO_FIX","GPS_FIX_TYPE_NO_GPS","GPS_FIX_TYPE_PPP","GPS_FIX_TYPE_RTK_FIXED","GPS_FIX_TYPE_RTK_FLOAT","GPS_FIX_TYPE_STATIC","GPS_GLOBAL_ORIGIN","GPS_GLOBAL_ORIGIN_DATA","GPS_INJECT_DATA","GPS_INJECT_DATA_DATA","GPS_INPUT","GPS_INPUT_DATA","GPS_INPUT_IGNORE_FLAG_ALT","GPS_INPUT_IGNORE_FLAG_HDOP","GPS_INPUT_IGNORE_FLAG_HORIZONTAL_ACCURACY","GPS_INPUT_IGNORE_FLAG_SPEED_ACCURACY","GPS_INPUT_IGNORE_FLAG_VDOP","GPS_INPUT_IGNORE_FLAG_VEL_HORIZ","GPS_INPUT_IGNORE_FLAG_VEL_VERT","GPS_INPUT_IGNORE_FLAG_VERTICAL_ACCURACY","GPS_RAW_INT","GPS_RAW_INT_DATA","GPS_RTCM_DATA","GPS_RTCM_DATA_DATA","GPS_RTK","GPS_RTK_DATA","GPS_STATUS","GPS_STATUS_DATA","GRIPPER_ACTION_GRAB","GRIPPER_ACTION_RELEASE","GimbalDeviceCapFlags","GimbalDeviceErrorFlags","GimbalDeviceFlags","GimbalManagerCapFlags","GimbalManagerFlags","GpsFixType","GpsInputIgnoreFlags","GripperActions","HEARTBEAT","HEARTBEAT_DATA","HIGHRES_IMU","HIGHRES_IMU_DATA","HIGHRES_IMU_UPDATED_ABS_PRESSURE","HIGHRES_IMU_UPDATED_ALL","HIGHRES_IMU_UPDATED_DIFF_PRESSURE","HIGHRES_IMU_UPDATED_NONE","HIGHRES_IMU_UPDATED_PRESSURE_ALT","HIGHRES_IMU_UPDATED_TEMPERATURE","HIGHRES_IMU_UPDATED_XACC","HIGHRES_IMU_UPDATED_XGYRO","HIGHRES_IMU_UPDATED_XMAG","HIGHRES_IMU_UPDATED_YACC","HIGHRES_IMU_UPDATED_YGYRO","HIGHRES_IMU_UPDATED_YMAG","HIGHRES_IMU_UPDATED_ZACC","HIGHRES_IMU_UPDATED_ZGYRO","HIGHRES_IMU_UPDATED_ZMAG","HIGH_LATENCY","HIGH_LATENCY2","HIGH_LATENCY2_DATA","HIGH_LATENCY_DATA","HIL_ACTUATOR_CONTROLS","HIL_ACTUATOR_CONTROLS_DATA","HIL_CONTROLS","HIL_CONTROLS_DATA","HIL_GPS","HIL_GPS_DATA","HIL_OPTICAL_FLOW","HIL_OPTICAL_FLOW_DATA","HIL_RC_INPUTS_RAW","HIL_RC_INPUTS_RAW_DATA","HIL_SENSOR","HIL_SENSOR_DATA","HIL_SENSOR_UPDATED_ABS_PRESSURE","HIL_SENSOR_UPDATED_DIFF_PRESSURE","HIL_SENSOR_UPDATED_NONE","HIL_SENSOR_UPDATED_PRESSURE_ALT","HIL_SENSOR_UPDATED_RESET","HIL_SENSOR_UPDATED_TEMPERATURE","HIL_SENSOR_UPDATED_XACC","HIL_SENSOR_UPDATED_XGYRO","HIL_SENSOR_UPDATED_XMAG","HIL_SENSOR_UPDATED_YACC","HIL_SENSOR_UPDATED_YGYRO","HIL_SENSOR_UPDATED_YMAG","HIL_SENSOR_UPDATED_ZACC","HIL_SENSOR_UPDATED_ZGYRO","HIL_SENSOR_UPDATED_ZMAG","HIL_STATE","HIL_STATE_DATA","HIL_STATE_QUATERNION","HIL_STATE_QUATERNION_DATA","HL_FAILURE_FLAG_3D_ACCEL","HL_FAILURE_FLAG_3D_GYRO","HL_FAILURE_FLAG_3D_MAG","HL_FAILURE_FLAG_ABSOLUTE_PRESSURE","HL_FAILURE_FLAG_BATTERY","HL_FAILURE_FLAG_DIFFERENTIAL_PRESSURE","HL_FAILURE_FLAG_ENGINE","HL_FAILURE_FLAG_ESTIMATOR","HL_FAILURE_FLAG_GEOFENCE","HL_FAILURE_FLAG_GPS","HL_FAILURE_FLAG_MISSION","HL_FAILURE_FLAG_OFFBOARD_LINK","HL_FAILURE_FLAG_RC_RECEIVER","HL_FAILURE_FLAG_TERRAIN","HOME_POSITION","HOME_POSITION_DATA","HYGROMETER_SENSOR","HYGROMETER_SENSOR_DATA","HighresImuUpdatedFlags","HilSensorUpdatedFlags","HlFailureFlag","ICAO_address","ISBD_LINK_STATUS","ISBD_LINK_STATUS_DATA","LANDING_TARGET","LANDING_TARGET_DATA","LANDING_TARGET_TYPE_LIGHT_BEACON","LANDING_TARGET_TYPE_RADIO_BEACON","LANDING_TARGET_TYPE_VISION_FIDUCIAL","LANDING_TARGET_TYPE_VISION_OTHER","LINK_NODE_STATUS","LINK_NODE_STATUS_DATA","LOCAL_POSITION_NED","LOCAL_POSITION_NED_COV","LOCAL_POSITION_NED_COV_DATA","LOCAL_POSITION_NED_DATA","LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET","LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA","LOGGING_ACK","LOGGING_ACK_DATA","LOGGING_DATA","LOGGING_DATA_ACKED","LOGGING_DATA_ACKED_DATA","LOGGING_DATA_DATA","LOG_DATA","LOG_DATA_DATA","LOG_ENTRY","LOG_ENTRY_DATA","LOG_ERASE","LOG_ERASE_DATA","LOG_REQUEST_DATA","LOG_REQUEST_DATA_DATA","LOG_REQUEST_END","LOG_REQUEST_END_DATA","LOG_REQUEST_LIST","LOG_REQUEST_LIST_DATA","LandingTargetType","MAG_CAL_BAD_ORIENTATION","MAG_CAL_BAD_RADIUS","MAG_CAL_FAILED","MAG_CAL_NOT_STARTED","MAG_CAL_REPORT","MAG_CAL_REPORT_DATA","MAG_CAL_RUNNING_STEP_ONE","MAG_CAL_RUNNING_STEP_TWO","MAG_CAL_SUCCESS","MAG_CAL_WAITING_TO_START","MANUAL_CONTROL","MANUAL_CONTROL_DATA","MANUAL_SETPOINT","MANUAL_SETPOINT_DATA","MAVLINK_DATA_STREAM_IMG_BMP","MAVLINK_DATA_STREAM_IMG_JPEG","MAVLINK_DATA_STREAM_IMG_PGM","MAVLINK_DATA_STREAM_IMG_PNG","MAVLINK_DATA_STREAM_IMG_RAW32U","MAVLINK_DATA_STREAM_IMG_RAW8U","MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE","MAV_ARM_AUTH_DENIED_REASON_BAD_WEATHER","MAV_ARM_AUTH_DENIED_REASON_GENERIC","MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT","MAV_ARM_AUTH_DENIED_REASON_NONE","MAV_ARM_AUTH_DENIED_REASON_TIMEOUT","MAV_AUTOPILOT_AEROB","MAV_AUTOPILOT_AIRRAILS","MAV_AUTOPILOT_ARDUPILOTMEGA","MAV_AUTOPILOT_ARMAZILA","MAV_AUTOPILOT_ASLUAV","MAV_AUTOPILOT_AUTOQUAD","MAV_AUTOPILOT_FP","MAV_AUTOPILOT_GENERIC","MAV_AUTOPILOT_GENERIC_MISSION_FULL","MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY","MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY","MAV_AUTOPILOT_INVALID","MAV_AUTOPILOT_OPENPILOT","MAV_AUTOPILOT_PPZ","MAV_AUTOPILOT_PX4","MAV_AUTOPILOT_REFLEX","MAV_AUTOPILOT_RESERVED","MAV_AUTOPILOT_SLUGS","MAV_AUTOPILOT_SMACCMPILOT","MAV_AUTOPILOT_SMARTAP","MAV_AUTOPILOT_UDB","MAV_BATTERY_CHARGE_STATE_CHARGING","MAV_BATTERY_CHARGE_STATE_CRITICAL","MAV_BATTERY_CHARGE_STATE_EMERGENCY","MAV_BATTERY_CHARGE_STATE_FAILED","MAV_BATTERY_CHARGE_STATE_LOW","MAV_BATTERY_CHARGE_STATE_OK","MAV_BATTERY_CHARGE_STATE_UNDEFINED","MAV_BATTERY_CHARGE_STATE_UNHEALTHY","MAV_BATTERY_FAULT_CELL_FAIL","MAV_BATTERY_FAULT_DEEP_DISCHARGE","MAV_BATTERY_FAULT_INCOMPATIBLE_FIRMWARE","MAV_BATTERY_FAULT_INCOMPATIBLE_VOLTAGE","MAV_BATTERY_FAULT_OVER_CURRENT","MAV_BATTERY_FAULT_OVER_TEMPERATURE","MAV_BATTERY_FAULT_SPIKES","MAV_BATTERY_FAULT_UNDER_TEMPERATURE","MAV_BATTERY_FUNCTION_ALL","MAV_BATTERY_FUNCTION_AVIONICS","MAV_BATTERY_FUNCTION_PAYLOAD","MAV_BATTERY_FUNCTION_PROPULSION","MAV_BATTERY_FUNCTION_UNKNOWN","MAV_BATTERY_MODE_AUTO_DISCHARGING","MAV_BATTERY_MODE_HOT_SWAP","MAV_BATTERY_MODE_UNKNOWN","MAV_BATTERY_TYPE_LIFE","MAV_BATTERY_TYPE_LION","MAV_BATTERY_TYPE_LIPO","MAV_BATTERY_TYPE_NIMH","MAV_BATTERY_TYPE_UNKNOWN","MAV_CMD_ACK_ERR_ACCESS_DENIED","MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE","MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED","MAV_CMD_ACK_ERR_FAIL","MAV_CMD_ACK_ERR_NOT_SUPPORTED","MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE","MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE","MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE","MAV_CMD_ACK_OK","MAV_CMD_ACTUATOR_TEST","MAV_CMD_AIRFRAME_CONFIGURATION","MAV_CMD_ARM_AUTHORIZATION_REQUEST","MAV_CMD_CAMERA_STOP_TRACKING","MAV_CMD_CAMERA_TRACK_POINT","MAV_CMD_CAMERA_TRACK_RECTANGLE","MAV_CMD_CAN_FORWARD","MAV_CMD_COMPONENT_ARM_DISARM","MAV_CMD_CONDITION_CHANGE_ALT","MAV_CMD_CONDITION_DELAY","MAV_CMD_CONDITION_DISTANCE","MAV_CMD_CONDITION_GATE","MAV_CMD_CONDITION_LAST","MAV_CMD_CONDITION_YAW","MAV_CMD_CONFIGURE_ACTUATOR","MAV_CMD_CONTROL_HIGH_LATENCY","MAV_CMD_DO_ADSB_OUT_IDENT","MAV_CMD_DO_AUTOTUNE_ENABLE","MAV_CMD_DO_CHANGE_ALTITUDE","MAV_CMD_DO_CHANGE_SPEED","MAV_CMD_DO_CONTROL_VIDEO","MAV_CMD_DO_DIGICAM_CONFIGURE","MAV_CMD_DO_DIGICAM_CONTROL","MAV_CMD_DO_ENGINE_CONTROL","MAV_CMD_DO_FENCE_ENABLE","MAV_CMD_DO_FLIGHTTERMINATION","MAV_CMD_DO_FOLLOW","MAV_CMD_DO_FOLLOW_REPOSITION","MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE","MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW","MAV_CMD_DO_GO_AROUND","MAV_CMD_DO_GRIPPER","MAV_CMD_DO_GUIDED_LIMITS","MAV_CMD_DO_GUIDED_MASTER","MAV_CMD_DO_INVERTED_FLIGHT","MAV_CMD_DO_JUMP","MAV_CMD_DO_JUMP_TAG","MAV_CMD_DO_LAND_START","MAV_CMD_DO_LAST","MAV_CMD_DO_MOTOR_TEST","MAV_CMD_DO_MOUNT_CONFIGURE","MAV_CMD_DO_MOUNT_CONTROL","MAV_CMD_DO_MOUNT_CONTROL_QUAT","MAV_CMD_DO_ORBIT","MAV_CMD_DO_PARACHUTE","MAV_CMD_DO_PAUSE_CONTINUE","MAV_CMD_DO_RALLY_LAND","MAV_CMD_DO_REPEAT_RELAY","MAV_CMD_DO_REPEAT_SERVO","MAV_CMD_DO_REPOSITION","MAV_CMD_DO_SET_ACTUATOR","MAV_CMD_DO_SET_CAM_TRIGG_DIST","MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL","MAV_CMD_DO_SET_HOME","MAV_CMD_DO_SET_MISSION_CURRENT","MAV_CMD_DO_SET_MODE","MAV_CMD_DO_SET_PARAMETER","MAV_CMD_DO_SET_RELAY","MAV_CMD_DO_SET_REVERSE","MAV_CMD_DO_SET_ROI","MAV_CMD_DO_SET_ROI_LOCATION","MAV_CMD_DO_SET_ROI_NONE","MAV_CMD_DO_SET_ROI_SYSID","MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET","MAV_CMD_DO_SET_SERVO","MAV_CMD_DO_TRIGGER_CONTROL","MAV_CMD_DO_VTOL_TRANSITION","MAV_CMD_DO_WINCH","MAV_CMD_FIXED_MAG_CAL_YAW","MAV_CMD_GET_HOME_POSITION","MAV_CMD_GET_MESSAGE_INTERVAL","MAV_CMD_ILLUMINATOR_ON_OFF","MAV_CMD_IMAGE_START_CAPTURE","MAV_CMD_IMAGE_STOP_CAPTURE","MAV_CMD_INJECT_FAILURE","MAV_CMD_JUMP_TAG","MAV_CMD_LOGGING_START","MAV_CMD_LOGGING_STOP","MAV_CMD_MISSION_START","MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT","MAV_CMD_NAV_DELAY","MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION","MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION","MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION","MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION","MAV_CMD_NAV_FENCE_RETURN_POINT","MAV_CMD_NAV_FOLLOW","MAV_CMD_NAV_GUIDED_ENABLE","MAV_CMD_NAV_LAND","MAV_CMD_NAV_LAND_LOCAL","MAV_CMD_NAV_LAST","MAV_CMD_NAV_LOITER_TIME","MAV_CMD_NAV_LOITER_TO_ALT","MAV_CMD_NAV_LOITER_TURNS","MAV_CMD_NAV_LOITER_UNLIM","MAV_CMD_NAV_PATHPLANNING","MAV_CMD_NAV_PAYLOAD_PLACE","MAV_CMD_NAV_RALLY_POINT","MAV_CMD_NAV_RETURN_TO_LAUNCH","MAV_CMD_NAV_ROI","MAV_CMD_NAV_SET_YAW_SPEED","MAV_CMD_NAV_SPLINE_WAYPOINT","MAV_CMD_NAV_TAKEOFF","MAV_CMD_NAV_TAKEOFF_LOCAL","MAV_CMD_NAV_VTOL_LAND","MAV_CMD_NAV_VTOL_TAKEOFF","MAV_CMD_NAV_WAYPOINT","MAV_CMD_OBLIQUE_SURVEY","MAV_CMD_OVERRIDE_GOTO","MAV_CMD_PANORAMA_CREATE","MAV_CMD_PAYLOAD_CONTROL_DEPLOY","MAV_CMD_PAYLOAD_PREPARE_DEPLOY","MAV_CMD_PREFLIGHT_CALIBRATION","MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN","MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS","MAV_CMD_PREFLIGHT_STORAGE","MAV_CMD_PREFLIGHT_UAVCAN","MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES","MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS","MAV_CMD_REQUEST_CAMERA_IMAGE_CAPTURE","MAV_CMD_REQUEST_CAMERA_INFORMATION","MAV_CMD_REQUEST_CAMERA_SETTINGS","MAV_CMD_REQUEST_FLIGHT_INFORMATION","MAV_CMD_REQUEST_MESSAGE","MAV_CMD_REQUEST_PROTOCOL_VERSION","MAV_CMD_REQUEST_STORAGE_INFORMATION","MAV_CMD_REQUEST_VIDEO_STREAM_INFORMATION","MAV_CMD_REQUEST_VIDEO_STREAM_STATUS","MAV_CMD_RESET_CAMERA_SETTINGS","MAV_CMD_RUN_PREARM_CHECKS","MAV_CMD_SET_CAMERA_FOCUS","MAV_CMD_SET_CAMERA_MODE","MAV_CMD_SET_CAMERA_ZOOM","MAV_CMD_SET_GUIDED_SUBMODE_CIRCLE","MAV_CMD_SET_GUIDED_SUBMODE_STANDARD","MAV_CMD_SET_MESSAGE_INTERVAL","MAV_CMD_SET_STORAGE_USAGE","MAV_CMD_SPATIAL_USER_1","MAV_CMD_SPATIAL_USER_2","MAV_CMD_SPATIAL_USER_3","MAV_CMD_SPATIAL_USER_4","MAV_CMD_SPATIAL_USER_5","MAV_CMD_START_RX_PAIR","MAV_CMD_STORAGE_FORMAT","MAV_CMD_UAVCAN_GET_NODE_INFO","MAV_CMD_USER_1","MAV_CMD_USER_2","MAV_CMD_USER_3","MAV_CMD_USER_4","MAV_CMD_USER_5","MAV_CMD_VIDEO_START_CAPTURE","MAV_CMD_VIDEO_START_STREAMING","MAV_CMD_VIDEO_STOP_CAPTURE","MAV_CMD_VIDEO_STOP_STREAMING","MAV_CMD_WAYPOINT_USER_1","MAV_CMD_WAYPOINT_USER_2","MAV_CMD_WAYPOINT_USER_3","MAV_CMD_WAYPOINT_USER_4","MAV_CMD_WAYPOINT_USER_5","MAV_COLLISION_ACTION_ASCEND_OR_DESCEND","MAV_COLLISION_ACTION_HOVER","MAV_COLLISION_ACTION_MOVE_HORIZONTALLY","MAV_COLLISION_ACTION_MOVE_PERPENDICULAR","MAV_COLLISION_ACTION_NONE","MAV_COLLISION_ACTION_REPORT","MAV_COLLISION_ACTION_RTL","MAV_COLLISION_SRC_ADSB","MAV_COLLISION_SRC_MAVLINK_GPS_GLOBAL_INT","MAV_COLLISION_THREAT_LEVEL_HIGH","MAV_COLLISION_THREAT_LEVEL_LOW","MAV_COLLISION_THREAT_LEVEL_NONE","MAV_COMP_ID_ADSB","MAV_COMP_ID_ALL","MAV_COMP_ID_AUTOPILOT1","MAV_COMP_ID_BATTERY","MAV_COMP_ID_BATTERY2","MAV_COMP_ID_CAMERA","MAV_COMP_ID_CAMERA2","MAV_COMP_ID_CAMERA3","MAV_COMP_ID_CAMERA4","MAV_COMP_ID_CAMERA5","MAV_COMP_ID_CAMERA6","MAV_COMP_ID_FLARM","MAV_COMP_ID_GIMBAL","MAV_COMP_ID_GIMBAL2","MAV_COMP_ID_GIMBAL3","MAV_COMP_ID_GIMBAL4","MAV_COMP_ID_GIMBAL5","MAV_COMP_ID_GIMBAL6","MAV_COMP_ID_GPS","MAV_COMP_ID_GPS2","MAV_COMP_ID_IMU","MAV_COMP_ID_IMU_2","MAV_COMP_ID_IMU_3","MAV_COMP_ID_LOG","MAV_COMP_ID_MAVCAN","MAV_COMP_ID_MISSIONPLANNER","MAV_COMP_ID_OBSTACLE_AVOIDANCE","MAV_COMP_ID_ODID_TXRX_1","MAV_COMP_ID_ODID_TXRX_2","MAV_COMP_ID_ODID_TXRX_3","MAV_COMP_ID_ONBOARD_COMPUTER","MAV_COMP_ID_ONBOARD_COMPUTER2","MAV_COMP_ID_ONBOARD_COMPUTER3","MAV_COMP_ID_ONBOARD_COMPUTER4","MAV_COMP_ID_OSD","MAV_COMP_ID_PAIRING_MANAGER","MAV_COMP_ID_PARACHUTE","MAV_COMP_ID_PATHPLANNER","MAV_COMP_ID_PERIPHERAL","MAV_COMP_ID_QX1_GIMBAL","MAV_COMP_ID_SERVO1","MAV_COMP_ID_SERVO10","MAV_COMP_ID_SERVO11","MAV_COMP_ID_SERVO12","MAV_COMP_ID_SERVO13","MAV_COMP_ID_SERVO14","MAV_COMP_ID_SERVO2","MAV_COMP_ID_SERVO3","MAV_COMP_ID_SERVO4","MAV_COMP_ID_SERVO5","MAV_COMP_ID_SERVO6","MAV_COMP_ID_SERVO7","MAV_COMP_ID_SERVO8","MAV_COMP_ID_SERVO9","MAV_COMP_ID_SYSTEM_CONTROL","MAV_COMP_ID_TELEMETRY_RADIO","MAV_COMP_ID_TUNNEL_NODE","MAV_COMP_ID_UART_BRIDGE","MAV_COMP_ID_UDP_BRIDGE","MAV_COMP_ID_USER1","MAV_COMP_ID_USER10","MAV_COMP_ID_USER11","MAV_COMP_ID_USER12","MAV_COMP_ID_USER13","MAV_COMP_ID_USER14","MAV_COMP_ID_USER15","MAV_COMP_ID_USER16","MAV_COMP_ID_USER17","MAV_COMP_ID_USER18","MAV_COMP_ID_USER19","MAV_COMP_ID_USER2","MAV_COMP_ID_USER20","MAV_COMP_ID_USER21","MAV_COMP_ID_USER22","MAV_COMP_ID_USER23","MAV_COMP_ID_USER24","MAV_COMP_ID_USER25","MAV_COMP_ID_USER26","MAV_COMP_ID_USER27","MAV_COMP_ID_USER28","MAV_COMP_ID_USER29","MAV_COMP_ID_USER3","MAV_COMP_ID_USER30","MAV_COMP_ID_USER31","MAV_COMP_ID_USER32","MAV_COMP_ID_USER33","MAV_COMP_ID_USER34","MAV_COMP_ID_USER35","MAV_COMP_ID_USER36","MAV_COMP_ID_USER37","MAV_COMP_ID_USER38","MAV_COMP_ID_USER39","MAV_COMP_ID_USER4","MAV_COMP_ID_USER40","MAV_COMP_ID_USER41","MAV_COMP_ID_USER42","MAV_COMP_ID_USER43","MAV_COMP_ID_USER45","MAV_COMP_ID_USER46","MAV_COMP_ID_USER47","MAV_COMP_ID_USER48","MAV_COMP_ID_USER49","MAV_COMP_ID_USER5","MAV_COMP_ID_USER50","MAV_COMP_ID_USER51","MAV_COMP_ID_USER52","MAV_COMP_ID_USER53","MAV_COMP_ID_USER54","MAV_COMP_ID_USER55","MAV_COMP_ID_USER56","MAV_COMP_ID_USER57","MAV_COMP_ID_USER58","MAV_COMP_ID_USER59","MAV_COMP_ID_USER6","MAV_COMP_ID_USER60","MAV_COMP_ID_USER61","MAV_COMP_ID_USER62","MAV_COMP_ID_USER63","MAV_COMP_ID_USER64","MAV_COMP_ID_USER65","MAV_COMP_ID_USER66","MAV_COMP_ID_USER67","MAV_COMP_ID_USER68","MAV_COMP_ID_USER69","MAV_COMP_ID_USER7","MAV_COMP_ID_USER70","MAV_COMP_ID_USER71","MAV_COMP_ID_USER72","MAV_COMP_ID_USER73","MAV_COMP_ID_USER74","MAV_COMP_ID_USER75","MAV_COMP_ID_USER8","MAV_COMP_ID_USER9","MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY","MAV_COMP_ID_WINCH","MAV_DATA_STREAM_ALL","MAV_DATA_STREAM_EXTENDED_STATUS","MAV_DATA_STREAM_EXTRA1","MAV_DATA_STREAM_EXTRA2","MAV_DATA_STREAM_EXTRA3","MAV_DATA_STREAM_POSITION","MAV_DATA_STREAM_RAW_CONTROLLER","MAV_DATA_STREAM_RAW_SENSORS","MAV_DATA_STREAM_RC_CHANNELS","MAV_DISTANCE_SENSOR_INFRARED","MAV_DISTANCE_SENSOR_LASER","MAV_DISTANCE_SENSOR_RADAR","MAV_DISTANCE_SENSOR_ULTRASOUND","MAV_DISTANCE_SENSOR_UNKNOWN","MAV_DO_REPOSITION_FLAGS_CHANGE_MODE","MAV_ESTIMATOR_TYPE_AUTOPILOT","MAV_ESTIMATOR_TYPE_GPS","MAV_ESTIMATOR_TYPE_GPS_INS","MAV_ESTIMATOR_TYPE_LIDAR","MAV_ESTIMATOR_TYPE_MOCAP","MAV_ESTIMATOR_TYPE_NAIVE","MAV_ESTIMATOR_TYPE_UNKNOWN","MAV_ESTIMATOR_TYPE_VIO","MAV_ESTIMATOR_TYPE_VISION","MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET","MAV_EVENT_ERROR_REASON_UNAVAILABLE","MAV_FRAME_BODY_FRD","MAV_FRAME_BODY_NED","MAV_FRAME_BODY_OFFSET_NED","MAV_FRAME_GLOBAL","MAV_FRAME_GLOBAL_INT","MAV_FRAME_GLOBAL_RELATIVE_ALT","MAV_FRAME_GLOBAL_RELATIVE_ALT_INT","MAV_FRAME_GLOBAL_TERRAIN_ALT","MAV_FRAME_GLOBAL_TERRAIN_ALT_INT","MAV_FRAME_LOCAL_ENU","MAV_FRAME_LOCAL_FLU","MAV_FRAME_LOCAL_FRD","MAV_FRAME_LOCAL_NED","MAV_FRAME_LOCAL_OFFSET_NED","MAV_FRAME_MISSION","MAV_FRAME_RESERVED_13","MAV_FRAME_RESERVED_14","MAV_FRAME_RESERVED_15","MAV_FRAME_RESERVED_16","MAV_FRAME_RESERVED_17","MAV_FRAME_RESERVED_18","MAV_FRAME_RESERVED_19","MAV_FTP_ERR_EOF","MAV_FTP_ERR_FAIL","MAV_FTP_ERR_FAILERRNO","MAV_FTP_ERR_FILEEXISTS","MAV_FTP_ERR_FILENOTFOUND","MAV_FTP_ERR_FILEPROTECTED","MAV_FTP_ERR_INVALIDDATASIZE","MAV_FTP_ERR_INVALIDSESSION","MAV_FTP_ERR_NONE","MAV_FTP_ERR_NOSESSIONSAVAILABLE","MAV_FTP_ERR_UNKNOWNCOMMAND","MAV_FTP_OPCODE_ACK","MAV_FTP_OPCODE_BURSTREADFILE","MAV_FTP_OPCODE_CALCFILECRC","MAV_FTP_OPCODE_CREATEDIRECTORY","MAV_FTP_OPCODE_CREATEFILE","MAV_FTP_OPCODE_LISTDIRECTORY","MAV_FTP_OPCODE_NAK","MAV_FTP_OPCODE_NONE","MAV_FTP_OPCODE_OPENFILERO","MAV_FTP_OPCODE_OPENFILEWO","MAV_FTP_OPCODE_READFILE","MAV_FTP_OPCODE_REMOVEDIRECTORY","MAV_FTP_OPCODE_REMOVEFILE","MAV_FTP_OPCODE_RENAME","MAV_FTP_OPCODE_RESETSESSION","MAV_FTP_OPCODE_TERMINATESESSION","MAV_FTP_OPCODE_TRUNCATEFILE","MAV_FTP_OPCODE_WRITEFILE","MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT","MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT","MAV_GENERATOR_STATUS_FLAG_CHARGING","MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING","MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING","MAV_GENERATOR_STATUS_FLAG_GENERATING","MAV_GENERATOR_STATUS_FLAG_IDLE","MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED","MAV_GENERATOR_STATUS_FLAG_MAXPOWER","MAV_GENERATOR_STATUS_FLAG_OFF","MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT","MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT","MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING","MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT","MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT","MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT","MAV_GENERATOR_STATUS_FLAG_READY","MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER","MAV_GENERATOR_STATUS_FLAG_START_INHIBITED","MAV_GENERATOR_STATUS_FLAG_WARMING_UP","MAV_GOTO_DO_CONTINUE","MAV_GOTO_DO_HOLD","MAV_GOTO_HOLD_AT_CURRENT_POSITION","MAV_GOTO_HOLD_AT_SPECIFIED_POSITION","MAV_LANDED_STATE_IN_AIR","MAV_LANDED_STATE_LANDING","MAV_LANDED_STATE_ON_GROUND","MAV_LANDED_STATE_TAKEOFF","MAV_LANDED_STATE_UNDEFINED","MAV_MISSION_ACCEPTED","MAV_MISSION_DENIED","MAV_MISSION_ERROR","MAV_MISSION_INVALID","MAV_MISSION_INVALID_PARAM1","MAV_MISSION_INVALID_PARAM2","MAV_MISSION_INVALID_PARAM3","MAV_MISSION_INVALID_PARAM4","MAV_MISSION_INVALID_PARAM5_X","MAV_MISSION_INVALID_PARAM6_Y","MAV_MISSION_INVALID_PARAM7","MAV_MISSION_INVALID_SEQUENCE","MAV_MISSION_NO_SPACE","MAV_MISSION_OPERATION_CANCELLED","MAV_MISSION_TYPE_ALL","MAV_MISSION_TYPE_FENCE","MAV_MISSION_TYPE_MISSION","MAV_MISSION_TYPE_RALLY","MAV_MISSION_UNSUPPORTED","MAV_MISSION_UNSUPPORTED_FRAME","MAV_MODE_AUTO_ARMED","MAV_MODE_AUTO_DISARMED","MAV_MODE_FLAG_AUTO_ENABLED","MAV_MODE_FLAG_CUSTOM_MODE_ENABLED","MAV_MODE_FLAG_DECODE_POSITION_AUTO","MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE","MAV_MODE_FLAG_DECODE_POSITION_GUIDED","MAV_MODE_FLAG_DECODE_POSITION_HIL","MAV_MODE_FLAG_DECODE_POSITION_MANUAL","MAV_MODE_FLAG_DECODE_POSITION_SAFETY","MAV_MODE_FLAG_DECODE_POSITION_STABILIZE","MAV_MODE_FLAG_DECODE_POSITION_TEST","MAV_MODE_FLAG_GUIDED_ENABLED","MAV_MODE_FLAG_HIL_ENABLED","MAV_MODE_FLAG_MANUAL_INPUT_ENABLED","MAV_MODE_FLAG_SAFETY_ARMED","MAV_MODE_FLAG_STABILIZE_ENABLED","MAV_MODE_FLAG_TEST_ENABLED","MAV_MODE_GUIDED_ARMED","MAV_MODE_GUIDED_DISARMED","MAV_MODE_MANUAL_ARMED","MAV_MODE_MANUAL_DISARMED","MAV_MODE_PREFLIGHT","MAV_MODE_STABILIZE_ARMED","MAV_MODE_STABILIZE_DISARMED","MAV_MODE_TEST_ARMED","MAV_MODE_TEST_DISARMED","MAV_MOUNT_MODE_GPS_POINT","MAV_MOUNT_MODE_HOME_LOCATION","MAV_MOUNT_MODE_MAVLINK_TARGETING","MAV_MOUNT_MODE_NEUTRAL","MAV_MOUNT_MODE_RC_TARGETING","MAV_MOUNT_MODE_RETRACT","MAV_MOUNT_MODE_SYSID_TARGET","MAV_ODID_ARM_STATUS_GOOD_TO_ARM","MAV_ODID_ARM_STATUS_PRE_ARM_FAIL_GENERIC","MAV_ODID_AUTH_TYPE_MESSAGE_SET_SIGNATURE","MAV_ODID_AUTH_TYPE_NETWORK_REMOTE_ID","MAV_ODID_AUTH_TYPE_NONE","MAV_ODID_AUTH_TYPE_OPERATOR_ID_SIGNATURE","MAV_ODID_AUTH_TYPE_SPECIFIC_AUTHENTICATION","MAV_ODID_AUTH_TYPE_UAS_ID_SIGNATURE","MAV_ODID_CATEGORY_EU_CERTIFIED","MAV_ODID_CATEGORY_EU_OPEN","MAV_ODID_CATEGORY_EU_SPECIFIC","MAV_ODID_CATEGORY_EU_UNDECLARED","MAV_ODID_CLASSIFICATION_TYPE_EU","MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED","MAV_ODID_CLASS_EU_CLASS_0","MAV_ODID_CLASS_EU_CLASS_1","MAV_ODID_CLASS_EU_CLASS_2","MAV_ODID_CLASS_EU_CLASS_3","MAV_ODID_CLASS_EU_CLASS_4","MAV_ODID_CLASS_EU_CLASS_5","MAV_ODID_CLASS_EU_CLASS_6","MAV_ODID_CLASS_EU_UNDECLARED","MAV_ODID_DESC_TYPE_EMERGENCY","MAV_ODID_DESC_TYPE_EXTENDED_STATUS","MAV_ODID_DESC_TYPE_TEXT","MAV_ODID_HEIGHT_REF_OVER_GROUND","MAV_ODID_HEIGHT_REF_OVER_TAKEOFF","MAV_ODID_HOR_ACC_0_05NM","MAV_ODID_HOR_ACC_0_1NM","MAV_ODID_HOR_ACC_0_3NM","MAV_ODID_HOR_ACC_0_5NM","MAV_ODID_HOR_ACC_10NM","MAV_ODID_HOR_ACC_10_METER","MAV_ODID_HOR_ACC_1NM","MAV_ODID_HOR_ACC_1_METER","MAV_ODID_HOR_ACC_2NM","MAV_ODID_HOR_ACC_30_METER","MAV_ODID_HOR_ACC_3_METER","MAV_ODID_HOR_ACC_4NM","MAV_ODID_HOR_ACC_UNKNOWN","MAV_ODID_ID_TYPE_CAA_REGISTRATION_ID","MAV_ODID_ID_TYPE_NONE","MAV_ODID_ID_TYPE_SERIAL_NUMBER","MAV_ODID_ID_TYPE_SPECIFIC_SESSION_ID","MAV_ODID_ID_TYPE_UTM_ASSIGNED_UUID","MAV_ODID_OPERATOR_ID_TYPE_CAA","MAV_ODID_OPERATOR_LOCATION_TYPE_FIXED","MAV_ODID_OPERATOR_LOCATION_TYPE_LIVE_GNSS","MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF","MAV_ODID_SPEED_ACC_0_3_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_10_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_1_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_3_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_UNKNOWN","MAV_ODID_STATUS_AIRBORNE","MAV_ODID_STATUS_EMERGENCY","MAV_ODID_STATUS_GROUND","MAV_ODID_STATUS_REMOTE_ID_SYSTEM_FAILURE","MAV_ODID_STATUS_UNDECLARED","MAV_ODID_TIME_ACC_0_1_SECOND","MAV_ODID_TIME_ACC_0_2_SECOND","MAV_ODID_TIME_ACC_0_3_SECOND","MAV_ODID_TIME_ACC_0_4_SECOND","MAV_ODID_TIME_ACC_0_5_SECOND","MAV_ODID_TIME_ACC_0_6_SECOND","MAV_ODID_TIME_ACC_0_7_SECOND","MAV_ODID_TIME_ACC_0_8_SECOND","MAV_ODID_TIME_ACC_0_9_SECOND","MAV_ODID_TIME_ACC_1_0_SECOND","MAV_ODID_TIME_ACC_1_1_SECOND","MAV_ODID_TIME_ACC_1_2_SECOND","MAV_ODID_TIME_ACC_1_3_SECOND","MAV_ODID_TIME_ACC_1_4_SECOND","MAV_ODID_TIME_ACC_1_5_SECOND","MAV_ODID_TIME_ACC_UNKNOWN","MAV_ODID_UA_TYPE_AEROPLANE","MAV_ODID_UA_TYPE_AIRSHIP","MAV_ODID_UA_TYPE_CAPTIVE_BALLOON","MAV_ODID_UA_TYPE_FREE_BALLOON","MAV_ODID_UA_TYPE_FREE_FALL_PARACHUTE","MAV_ODID_UA_TYPE_GLIDER","MAV_ODID_UA_TYPE_GROUND_OBSTACLE","MAV_ODID_UA_TYPE_GYROPLANE","MAV_ODID_UA_TYPE_HELICOPTER_OR_MULTIROTOR","MAV_ODID_UA_TYPE_HYBRID_LIFT","MAV_ODID_UA_TYPE_KITE","MAV_ODID_UA_TYPE_NONE","MAV_ODID_UA_TYPE_ORNITHOPTER","MAV_ODID_UA_TYPE_OTHER","MAV_ODID_UA_TYPE_ROCKET","MAV_ODID_UA_TYPE_TETHERED_POWERED_AIRCRAFT","MAV_ODID_VER_ACC_10_METER","MAV_ODID_VER_ACC_150_METER","MAV_ODID_VER_ACC_1_METER","MAV_ODID_VER_ACC_25_METER","MAV_ODID_VER_ACC_3_METER","MAV_ODID_VER_ACC_45_METER","MAV_ODID_VER_ACC_UNKNOWN","MAV_PARAM_EXT_TYPE_CUSTOM","MAV_PARAM_EXT_TYPE_INT16","MAV_PARAM_EXT_TYPE_INT32","MAV_PARAM_EXT_TYPE_INT64","MAV_PARAM_EXT_TYPE_INT8","MAV_PARAM_EXT_TYPE_REAL32","MAV_PARAM_EXT_TYPE_REAL64","MAV_PARAM_EXT_TYPE_UINT16","MAV_PARAM_EXT_TYPE_UINT32","MAV_PARAM_EXT_TYPE_UINT64","MAV_PARAM_EXT_TYPE_UINT8","MAV_PARAM_TYPE_INT16","MAV_PARAM_TYPE_INT32","MAV_PARAM_TYPE_INT64","MAV_PARAM_TYPE_INT8","MAV_PARAM_TYPE_REAL32","MAV_PARAM_TYPE_REAL64","MAV_PARAM_TYPE_UINT16","MAV_PARAM_TYPE_UINT32","MAV_PARAM_TYPE_UINT64","MAV_PARAM_TYPE_UINT8","MAV_POWER_STATUS_BRICK_VALID","MAV_POWER_STATUS_CHANGED","MAV_POWER_STATUS_PERIPH_HIPOWER_OVERCURRENT","MAV_POWER_STATUS_PERIPH_OVERCURRENT","MAV_POWER_STATUS_SERVO_VALID","MAV_POWER_STATUS_USB_CONNECTED","MAV_PROTOCOL_CAPABILITY_COMMAND_INT","MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION","MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION","MAV_PROTOCOL_CAPABILITY_FTP","MAV_PROTOCOL_CAPABILITY_MAVLINK2","MAV_PROTOCOL_CAPABILITY_MISSION_FENCE","MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT","MAV_PROTOCOL_CAPABILITY_MISSION_INT","MAV_PROTOCOL_CAPABILITY_MISSION_RALLY","MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE","MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST","MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT","MAV_PROTOCOL_CAPABILITY_RESERVED2","MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET","MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET","MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT","MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED","MAV_PROTOCOL_CAPABILITY_TERRAIN","MAV_RESULT_ACCEPTED","MAV_RESULT_CANCELLED","MAV_RESULT_DENIED","MAV_RESULT_FAILED","MAV_RESULT_IN_PROGRESS","MAV_RESULT_TEMPORARILY_REJECTED","MAV_RESULT_UNSUPPORTED","MAV_ROI_LOCATION","MAV_ROI_NONE","MAV_ROI_TARGET","MAV_ROI_WPINDEX","MAV_ROI_WPNEXT","MAV_SENSOR_ROTATION_CUSTOM","MAV_SENSOR_ROTATION_NONE","MAV_SENSOR_ROTATION_PITCH_180","MAV_SENSOR_ROTATION_PITCH_180_YAW_270","MAV_SENSOR_ROTATION_PITCH_180_YAW_90","MAV_SENSOR_ROTATION_PITCH_270","MAV_SENSOR_ROTATION_PITCH_315","MAV_SENSOR_ROTATION_PITCH_90","MAV_SENSOR_ROTATION_ROLL_180","MAV_SENSOR_ROTATION_ROLL_180_PITCH_270","MAV_SENSOR_ROTATION_ROLL_180_PITCH_90","MAV_SENSOR_ROTATION_ROLL_180_YAW_135","MAV_SENSOR_ROTATION_ROLL_180_YAW_225","MAV_SENSOR_ROTATION_ROLL_180_YAW_270","MAV_SENSOR_ROTATION_ROLL_180_YAW_315","MAV_SENSOR_ROTATION_ROLL_180_YAW_45","MAV_SENSOR_ROTATION_ROLL_180_YAW_90","MAV_SENSOR_ROTATION_ROLL_270","MAV_SENSOR_ROTATION_ROLL_270_PITCH_180","MAV_SENSOR_ROTATION_ROLL_270_PITCH_270","MAV_SENSOR_ROTATION_ROLL_270_PITCH_90","MAV_SENSOR_ROTATION_ROLL_270_YAW_135","MAV_SENSOR_ROTATION_ROLL_270_YAW_45","MAV_SENSOR_ROTATION_ROLL_270_YAW_90","MAV_SENSOR_ROTATION_ROLL_90","MAV_SENSOR_ROTATION_ROLL_90_PITCH_180","MAV_SENSOR_ROTATION_ROLL_90_PITCH_180_YAW_90","MAV_SENSOR_ROTATION_ROLL_90_PITCH_270","MAV_SENSOR_ROTATION_ROLL_90_PITCH_315","MAV_SENSOR_ROTATION_ROLL_90_PITCH_68_YAW_293","MAV_SENSOR_ROTATION_ROLL_90_PITCH_90","MAV_SENSOR_ROTATION_ROLL_90_YAW_135","MAV_SENSOR_ROTATION_ROLL_90_YAW_270","MAV_SENSOR_ROTATION_ROLL_90_YAW_45","MAV_SENSOR_ROTATION_ROLL_90_YAW_90","MAV_SENSOR_ROTATION_YAW_135","MAV_SENSOR_ROTATION_YAW_180","MAV_SENSOR_ROTATION_YAW_225","MAV_SENSOR_ROTATION_YAW_270","MAV_SENSOR_ROTATION_YAW_315","MAV_SENSOR_ROTATION_YAW_45","MAV_SENSOR_ROTATION_YAW_90","MAV_SEVERITY_ALERT","MAV_SEVERITY_CRITICAL","MAV_SEVERITY_DEBUG","MAV_SEVERITY_EMERGENCY","MAV_SEVERITY_ERROR","MAV_SEVERITY_INFO","MAV_SEVERITY_NOTICE","MAV_SEVERITY_WARNING","MAV_STATE_ACTIVE","MAV_STATE_BOOT","MAV_STATE_CALIBRATING","MAV_STATE_CRITICAL","MAV_STATE_EMERGENCY","MAV_STATE_FLIGHT_TERMINATION","MAV_STATE_POWEROFF","MAV_STATE_STANDBY","MAV_STATE_UNINIT","MAV_SYS_STATUS_AHRS","MAV_SYS_STATUS_EXTENSION_USED","MAV_SYS_STATUS_GEOFENCE","MAV_SYS_STATUS_LOGGING","MAV_SYS_STATUS_OBSTACLE_AVOIDANCE","MAV_SYS_STATUS_PREARM_CHECK","MAV_SYS_STATUS_RECOVERY_SYSTEM","MAV_SYS_STATUS_REVERSE_MOTOR","MAV_SYS_STATUS_SENSOR_3D_ACCEL","MAV_SYS_STATUS_SENSOR_3D_ACCEL2","MAV_SYS_STATUS_SENSOR_3D_GYRO","MAV_SYS_STATUS_SENSOR_3D_GYRO2","MAV_SYS_STATUS_SENSOR_3D_MAG","MAV_SYS_STATUS_SENSOR_3D_MAG2","MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE","MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL","MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION","MAV_SYS_STATUS_SENSOR_BATTERY","MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE","MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH","MAV_SYS_STATUS_SENSOR_GPS","MAV_SYS_STATUS_SENSOR_LASER_POSITION","MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS","MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW","MAV_SYS_STATUS_SENSOR_PROPULSION","MAV_SYS_STATUS_SENSOR_PROXIMITY","MAV_SYS_STATUS_SENSOR_RC_RECEIVER","MAV_SYS_STATUS_SENSOR_SATCOM","MAV_SYS_STATUS_SENSOR_VISION_POSITION","MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL","MAV_SYS_STATUS_SENSOR_YAW_POSITION","MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL","MAV_SYS_STATUS_TERRAIN","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED0","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED1","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED2","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED3","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED4","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED5","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED6","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED7","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED8","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED9","MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN","MAV_TYPE_ADSB","MAV_TYPE_AIRSHIP","MAV_TYPE_ANTENNA_TRACKER","MAV_TYPE_BATTERY","MAV_TYPE_CAMERA","MAV_TYPE_CHARGING_STATION","MAV_TYPE_COAXIAL","MAV_TYPE_DECAROTOR","MAV_TYPE_DODECAROTOR","MAV_TYPE_FIXED_WING","MAV_TYPE_FLAPPING_WING","MAV_TYPE_FLARM","MAV_TYPE_FREE_BALLOON","MAV_TYPE_GCS","MAV_TYPE_GENERIC","MAV_TYPE_GIMBAL","MAV_TYPE_GPS","MAV_TYPE_GROUND_ROVER","MAV_TYPE_HELICOPTER","MAV_TYPE_HEXAROTOR","MAV_TYPE_IMU","MAV_TYPE_KITE","MAV_TYPE_LOG","MAV_TYPE_OCTOROTOR","MAV_TYPE_ODID","MAV_TYPE_ONBOARD_CONTROLLER","MAV_TYPE_OSD","MAV_TYPE_PARACHUTE","MAV_TYPE_PARAFOIL","MAV_TYPE_QUADROTOR","MAV_TYPE_ROCKET","MAV_TYPE_SERVO","MAV_TYPE_SUBMARINE","MAV_TYPE_SURFACE_BOAT","MAV_TYPE_TRICOPTER","MAV_TYPE_VTOL_FIXEDROTOR","MAV_TYPE_VTOL_RESERVED5","MAV_TYPE_VTOL_TAILSITTER","MAV_TYPE_VTOL_TAILSITTER_DUOROTOR","MAV_TYPE_VTOL_TAILSITTER_QUADROTOR","MAV_TYPE_VTOL_TILTROTOR","MAV_TYPE_VTOL_TILTWING","MAV_TYPE_WINCH","MAV_VTOL_STATE_FW","MAV_VTOL_STATE_MC","MAV_VTOL_STATE_TRANSITION_TO_FW","MAV_VTOL_STATE_TRANSITION_TO_MC","MAV_VTOL_STATE_UNDEFINED","MAV_WINCH_STATUS_ABANDON_LINE","MAV_WINCH_STATUS_ARRESTING","MAV_WINCH_STATUS_CLUTCH_ENGAGED","MAV_WINCH_STATUS_DROPPING","MAV_WINCH_STATUS_FULLY_RETRACTED","MAV_WINCH_STATUS_GROUND_SENSE","MAV_WINCH_STATUS_HEALTHY","MAV_WINCH_STATUS_LOAD_LINE","MAV_WINCH_STATUS_LOAD_PAYLOAD","MAV_WINCH_STATUS_LOCKED","MAV_WINCH_STATUS_LOCKING","MAV_WINCH_STATUS_MOVING","MAV_WINCH_STATUS_REDELIVER","MAV_WINCH_STATUS_RETRACTING","MEMORY_VECT","MEMORY_VECT_DATA","MESSAGE_INTERVAL","MESSAGE_INTERVAL_DATA","MISSION_ACK","MISSION_ACK_DATA","MISSION_CLEAR_ALL","MISSION_CLEAR_ALL_DATA","MISSION_COUNT","MISSION_COUNT_DATA","MISSION_CURRENT","MISSION_CURRENT_DATA","MISSION_ITEM","MISSION_ITEM_DATA","MISSION_ITEM_INT","MISSION_ITEM_INT_DATA","MISSION_ITEM_REACHED","MISSION_ITEM_REACHED_DATA","MISSION_READ_PERSISTENT","MISSION_REQUEST","MISSION_REQUEST_DATA","MISSION_REQUEST_INT","MISSION_REQUEST_INT_DATA","MISSION_REQUEST_LIST","MISSION_REQUEST_LIST_DATA","MISSION_REQUEST_PARTIAL_LIST","MISSION_REQUEST_PARTIAL_LIST_DATA","MISSION_RESET_DEFAULT","MISSION_SET_CURRENT","MISSION_SET_CURRENT_DATA","MISSION_STATE_ACTIVE","MISSION_STATE_COMPLETE","MISSION_STATE_NOT_STARTED","MISSION_STATE_NO_MISSION","MISSION_STATE_PAUSED","MISSION_STATE_UNKNOWN","MISSION_WRITE_PARTIAL_LIST","MISSION_WRITE_PARTIAL_LIST_DATA","MISSION_WRITE_PERSISTENT","MMSI","MOTOR_TEST_COMPASS_CAL","MOTOR_TEST_ORDER_BOARD","MOTOR_TEST_ORDER_DEFAULT","MOTOR_TEST_ORDER_SEQUENCE","MOTOR_TEST_THROTTLE_PERCENT","MOTOR_TEST_THROTTLE_PILOT","MOTOR_TEST_THROTTLE_PWM","MOUNT_ORIENTATION","MOUNT_ORIENTATION_DATA","MagCalStatus","MavArmAuthDeniedReason","MavAutopilot","MavBatteryChargeState","MavBatteryFault","MavBatteryFunction","MavBatteryMode","MavBatteryType","MavCmd","MavCmdAck","MavCollisionAction","MavCollisionSrc","MavCollisionThreatLevel","MavComponent","MavDataStream","MavDistanceSensor","MavDoRepositionFlags","MavEstimatorType","MavEventCurrentSequenceFlags","MavEventErrorReason","MavFrame","MavFtpErr","MavFtpOpcode","MavGeneratorStatusFlag","MavGoto","MavLandedState","MavMessage","MavMissionResult","MavMissionType","MavMode","MavModeFlag","MavModeFlagDecodePosition","MavMountMode","MavOdidArmStatus","MavOdidAuthType","MavOdidCategoryEu","MavOdidClassEu","MavOdidClassificationType","MavOdidDescType","MavOdidHeightRef","MavOdidHorAcc","MavOdidIdType","MavOdidOperatorIdType","MavOdidOperatorLocationType","MavOdidSpeedAcc","MavOdidStatus","MavOdidTimeAcc","MavOdidUaType","MavOdidVerAcc","MavParamExtType","MavParamType","MavPowerStatus","MavProtocolCapability","MavResult","MavRoi","MavSensorOrientation","MavSeverity","MavState","MavSysStatusSensor","MavSysStatusSensorExtended","MavTunnelPayloadType","MavType","MavVtolState","MavWinchStatusFlag","MavlinkDataStreamType","MissionState","MotorTestOrder","MotorTestThrottleType","NAMED_VALUE_FLOAT","NAMED_VALUE_FLOAT_DATA","NAMED_VALUE_INT","NAMED_VALUE_INT_DATA","NAV_CONTROLLER_OUTPUT","NAV_CONTROLLER_OUTPUT_DATA","NAV_VTOL_LAND_OPTIONS_DEFAULT","NAV_VTOL_LAND_OPTIONS_FW_DESCENT","NAV_VTOL_LAND_OPTIONS_HOVER_DESCENT","NavVtolLandOptions","OBSTACLE_DISTANCE","OBSTACLE_DISTANCE_DATA","ODOMETRY","ODOMETRY_DATA","ONBOARD_COMPUTER_STATUS","ONBOARD_COMPUTER_STATUS_DATA","OPEN_DRONE_ID_ARM_STATUS","OPEN_DRONE_ID_ARM_STATUS_DATA","OPEN_DRONE_ID_AUTHENTICATION","OPEN_DRONE_ID_AUTHENTICATION_DATA","OPEN_DRONE_ID_BASIC_ID","OPEN_DRONE_ID_BASIC_ID_DATA","OPEN_DRONE_ID_LOCATION","OPEN_DRONE_ID_LOCATION_DATA","OPEN_DRONE_ID_MESSAGE_PACK","OPEN_DRONE_ID_MESSAGE_PACK_DATA","OPEN_DRONE_ID_OPERATOR_ID","OPEN_DRONE_ID_OPERATOR_ID_DATA","OPEN_DRONE_ID_SELF_ID","OPEN_DRONE_ID_SELF_ID_DATA","OPEN_DRONE_ID_SYSTEM","OPEN_DRONE_ID_SYSTEM_DATA","OPEN_DRONE_ID_SYSTEM_UPDATE","OPEN_DRONE_ID_SYSTEM_UPDATE_DATA","OPTICAL_FLOW","OPTICAL_FLOW_DATA","OPTICAL_FLOW_RAD","OPTICAL_FLOW_RAD_DATA","ORBIT_EXECUTION_STATUS","ORBIT_EXECUTION_STATUS_DATA","ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE","ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER","ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING","ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED","ORBIT_YAW_BEHAVIOUR_UNCONTROLLED","OrbitYawBehaviour","PARACHUTE_DISABLE","PARACHUTE_ENABLE","PARACHUTE_RELEASE","PARAM_ACK_ACCEPTED","PARAM_ACK_FAILED","PARAM_ACK_IN_PROGRESS","PARAM_ACK_VALUE_UNSUPPORTED","PARAM_EXT_ACK","PARAM_EXT_ACK_DATA","PARAM_EXT_REQUEST_LIST","PARAM_EXT_REQUEST_LIST_DATA","PARAM_EXT_REQUEST_READ","PARAM_EXT_REQUEST_READ_DATA","PARAM_EXT_SET","PARAM_EXT_SET_DATA","PARAM_EXT_VALUE","PARAM_EXT_VALUE_DATA","PARAM_MAP_RC","PARAM_MAP_RC_DATA","PARAM_READ_PERSISTENT","PARAM_REQUEST_LIST","PARAM_REQUEST_LIST_DATA","PARAM_REQUEST_READ","PARAM_REQUEST_READ_DATA","PARAM_RESET_ALL_DEFAULT","PARAM_RESET_CONFIG_DEFAULT","PARAM_RESET_SENSOR_DEFAULT","PARAM_SET","PARAM_SET_DATA","PARAM_VALUE","PARAM_VALUE_DATA","PARAM_WRITE_PERSISTENT","PING","PING_DATA","PLAY_TUNE","PLAY_TUNE_DATA","PLAY_TUNE_V2","PLAY_TUNE_V2_DATA","POSITION_TARGET_GLOBAL_INT","POSITION_TARGET_GLOBAL_INT_DATA","POSITION_TARGET_LOCAL_NED","POSITION_TARGET_LOCAL_NED_DATA","POSITION_TARGET_TYPEMASK_AX_IGNORE","POSITION_TARGET_TYPEMASK_AY_IGNORE","POSITION_TARGET_TYPEMASK_AZ_IGNORE","POSITION_TARGET_TYPEMASK_FORCE_SET","POSITION_TARGET_TYPEMASK_VX_IGNORE","POSITION_TARGET_TYPEMASK_VY_IGNORE","POSITION_TARGET_TYPEMASK_VZ_IGNORE","POSITION_TARGET_TYPEMASK_X_IGNORE","POSITION_TARGET_TYPEMASK_YAW_IGNORE","POSITION_TARGET_TYPEMASK_YAW_RATE_IGNORE","POSITION_TARGET_TYPEMASK_Y_IGNORE","POSITION_TARGET_TYPEMASK_Z_IGNORE","POWER_STATUS","POWER_STATUS_DATA","PRECISION_LAND_MODE_DISABLED","PRECISION_LAND_MODE_OPPORTUNISTIC","PRECISION_LAND_MODE_REQUIRED","PROTOCOL_VERSION","PROTOCOL_VERSION_DATA","ParachuteAction","ParamAck","PositionTargetTypemask","PrecisionLandMode","PreflightStorageMissionAction","PreflightStorageParameterAction","RADIO_STATUS","RADIO_STATUS_DATA","RAW_IMU","RAW_IMU_DATA","RAW_PRESSURE","RAW_PRESSURE_DATA","RAW_RPM","RAW_RPM_DATA","RC_CHANNELS","RC_CHANNELS_DATA","RC_CHANNELS_OVERRIDE","RC_CHANNELS_OVERRIDE_DATA","RC_CHANNELS_RAW","RC_CHANNELS_RAW_DATA","RC_CHANNELS_SCALED","RC_CHANNELS_SCALED_DATA","RC_TYPE_SPEKTRUM_DSM2","RC_TYPE_SPEKTRUM_DSMX","REQUEST_DATA_STREAM","REQUEST_DATA_STREAM_DATA","REQUEST_EVENT","REQUEST_EVENT_DATA","RESOURCE_REQUEST","RESOURCE_REQUEST_DATA","RESPONSE_EVENT_ERROR","RESPONSE_EVENT_ERROR_DATA","RTK_BASELINE_COORDINATE_SYSTEM_ECEF","RTK_BASELINE_COORDINATE_SYSTEM_NED","RcType","RtkBaselineCoordinateSystem","SAFETY_ALLOWED_AREA","SAFETY_ALLOWED_AREA_DATA","SAFETY_SET_ALLOWED_AREA","SAFETY_SET_ALLOWED_AREA_DATA","SCALED_IMU","SCALED_IMU2","SCALED_IMU2_DATA","SCALED_IMU3","SCALED_IMU3_DATA","SCALED_IMU_DATA","SCALED_PRESSURE","SCALED_PRESSURE2","SCALED_PRESSURE2_DATA","SCALED_PRESSURE3","SCALED_PRESSURE3_DATA","SCALED_PRESSURE_DATA","SERIAL_CONTROL","SERIAL_CONTROL_DATA","SERIAL_CONTROL_DEV_GPS1","SERIAL_CONTROL_DEV_GPS2","SERIAL_CONTROL_DEV_SHELL","SERIAL_CONTROL_DEV_TELEM1","SERIAL_CONTROL_DEV_TELEM2","SERIAL_CONTROL_FLAG_BLOCKING","SERIAL_CONTROL_FLAG_EXCLUSIVE","SERIAL_CONTROL_FLAG_MULTI","SERIAL_CONTROL_FLAG_REPLY","SERIAL_CONTROL_FLAG_RESPOND","SERIAL_CONTROL_SERIAL0","SERIAL_CONTROL_SERIAL1","SERIAL_CONTROL_SERIAL2","SERIAL_CONTROL_SERIAL3","SERIAL_CONTROL_SERIAL4","SERIAL_CONTROL_SERIAL5","SERIAL_CONTROL_SERIAL6","SERIAL_CONTROL_SERIAL7","SERIAL_CONTROL_SERIAL8","SERIAL_CONTROL_SERIAL9","SERVO_OUTPUT_RAW","SERVO_OUTPUT_RAW_DATA","SETUP_SIGNING","SETUP_SIGNING_DATA","SET_ACTUATOR_CONTROL_TARGET","SET_ACTUATOR_CONTROL_TARGET_DATA","SET_ATTITUDE_TARGET","SET_ATTITUDE_TARGET_DATA","SET_GPS_GLOBAL_ORIGIN","SET_GPS_GLOBAL_ORIGIN_DATA","SET_HOME_POSITION","SET_HOME_POSITION_DATA","SET_MODE","SET_MODE_DATA","SET_POSITION_TARGET_GLOBAL_INT","SET_POSITION_TARGET_GLOBAL_INT_DATA","SET_POSITION_TARGET_LOCAL_NED","SET_POSITION_TARGET_LOCAL_NED_DATA","SIM_STATE","SIM_STATE_DATA","SMART_BATTERY_INFO","SMART_BATTERY_INFO_DATA","STATUSTEXT","STATUSTEXT_DATA","STORAGE_INFORMATION","STORAGE_INFORMATION_DATA","STORAGE_STATUS_EMPTY","STORAGE_STATUS_NOT_SUPPORTED","STORAGE_STATUS_READY","STORAGE_STATUS_UNFORMATTED","STORAGE_TYPE_CF","STORAGE_TYPE_CFE","STORAGE_TYPE_HD","STORAGE_TYPE_MICROSD","STORAGE_TYPE_OTHER","STORAGE_TYPE_SD","STORAGE_TYPE_UNKNOWN","STORAGE_TYPE_USB_STICK","STORAGE_TYPE_XQD","STORAGE_USAGE_FLAG_LOGS","STORAGE_USAGE_FLAG_PHOTO","STORAGE_USAGE_FLAG_SET","STORAGE_USAGE_FLAG_VIDEO","SUPPORTED_TUNES","SUPPORTED_TUNES_DATA","SYSTEM_TIME","SYSTEM_TIME_DATA","SYS_STATUS","SYS_STATUS_DATA","SerialControlDev","SerialControlFlag","SetFocusType","StorageStatus","StorageType","StorageUsageFlag","TERRAIN_CHECK","TERRAIN_CHECK_DATA","TERRAIN_DATA","TERRAIN_DATA_DATA","TERRAIN_REPORT","TERRAIN_REPORT_DATA","TERRAIN_REQUEST","TERRAIN_REQUEST_DATA","TIMESYNC","TIMESYNC_DATA","TIME_ESTIMATE_TO_TARGET","TIME_ESTIMATE_TO_TARGET_DATA","TRAJECTORY_REPRESENTATION_BEZIER","TRAJECTORY_REPRESENTATION_BEZIER_DATA","TRAJECTORY_REPRESENTATION_WAYPOINTS","TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA","TUNE_FORMAT_MML_MODERN","TUNE_FORMAT_QBASIC1_1","TUNNEL","TUNNEL_DATA","TuneFormat","UAVCAN_NODE_HEALTH_CRITICAL","UAVCAN_NODE_HEALTH_ERROR","UAVCAN_NODE_HEALTH_OK","UAVCAN_NODE_HEALTH_WARNING","UAVCAN_NODE_INFO","UAVCAN_NODE_INFO_DATA","UAVCAN_NODE_MODE_INITIALIZATION","UAVCAN_NODE_MODE_MAINTENANCE","UAVCAN_NODE_MODE_OFFLINE","UAVCAN_NODE_MODE_OPERATIONAL","UAVCAN_NODE_MODE_SOFTWARE_UPDATE","UAVCAN_NODE_STATUS","UAVCAN_NODE_STATUS_DATA","UNDER_WAY","UTM_DATA_AVAIL_FLAGS_ALTITUDE_AVAILABLE","UTM_DATA_AVAIL_FLAGS_HORIZONTAL_VELO_AVAILABLE","UTM_DATA_AVAIL_FLAGS_NEXT_WAYPOINT_AVAILABLE","UTM_DATA_AVAIL_FLAGS_POSITION_AVAILABLE","UTM_DATA_AVAIL_FLAGS_RELATIVE_ALTITUDE_AVAILABLE","UTM_DATA_AVAIL_FLAGS_TIME_VALID","UTM_DATA_AVAIL_FLAGS_UAS_ID_AVAILABLE","UTM_DATA_AVAIL_FLAGS_VERTICAL_VELO_AVAILABLE","UTM_FLIGHT_STATE_AIRBORNE","UTM_FLIGHT_STATE_EMERGENCY","UTM_FLIGHT_STATE_GROUND","UTM_FLIGHT_STATE_NOCTRL","UTM_FLIGHT_STATE_UNKNOWN","UTM_GLOBAL_POSITION","UTM_GLOBAL_POSITION_DATA","UavcanNodeHealth","UavcanNodeMode","UtmDataAvailFlags","UtmFlightState","V2_EXTENSION","V2_EXTENSION_DATA","VFR_HUD","VFR_HUD_DATA","VIBRATION","VIBRATION_DATA","VICON_POSITION_ESTIMATE","VICON_POSITION_ESTIMATE_DATA","VIDEO_STREAM_INFORMATION","VIDEO_STREAM_INFORMATION_DATA","VIDEO_STREAM_STATUS","VIDEO_STREAM_STATUS_DATA","VIDEO_STREAM_STATUS_FLAGS_RUNNING","VIDEO_STREAM_STATUS_FLAGS_THERMAL","VIDEO_STREAM_TYPE_MPEG_TS_H264","VIDEO_STREAM_TYPE_RTPUDP","VIDEO_STREAM_TYPE_RTSP","VIDEO_STREAM_TYPE_TCP_MPEG","VISION_POSITION_ESTIMATE","VISION_POSITION_ESTIMATE_DATA","VISION_SPEED_ESTIMATE","VISION_SPEED_ESTIMATE_DATA","VTOL_TRANSITION_HEADING_ANY","VTOL_TRANSITION_HEADING_NEXT_WAYPOINT","VTOL_TRANSITION_HEADING_SPECIFIED","VTOL_TRANSITION_HEADING_TAKEOFF","VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT","Vcc","VideoStreamStatusFlags","VideoStreamType","Vservo","VtolTransitionHeading","WHEEL_DISTANCE","WHEEL_DISTANCE_DATA","WIFI_CONFIG_AP","WIFI_CONFIG_AP_DATA","WIFI_CONFIG_AP_MODE_AP","WIFI_CONFIG_AP_MODE_DISABLED","WIFI_CONFIG_AP_MODE_STATION","WIFI_CONFIG_AP_MODE_UNDEFINED","WIFI_CONFIG_AP_RESPONSE_ACCEPTED","WIFI_CONFIG_AP_RESPONSE_MODE_ERROR","WIFI_CONFIG_AP_RESPONSE_PASSWORD_ERROR","WIFI_CONFIG_AP_RESPONSE_REJECTED","WIFI_CONFIG_AP_RESPONSE_SSID_ERROR","WIFI_CONFIG_AP_RESPONSE_UNDEFINED","WINCH_ABANDON_LINE","WINCH_DELIVER","WINCH_HOLD","WINCH_LOAD_LINE","WINCH_LOAD_PAYLOAD","WINCH_LOCK","WINCH_RATE_CONTROL","WINCH_RELATIVE_LENGTH_CONTROL","WINCH_RELAXED","WINCH_RETRACT","WINCH_STATUS","WINCH_STATUS_DATA","WIND_COV","WIND_COV_DATA","WifiConfigApMode","WifiConfigApResponse","WinchActions","ZOOM_TYPE_CONTINUOUS","ZOOM_TYPE_FOCAL_LENGTH","ZOOM_TYPE_RANGE","ZOOM_TYPE_STEP","abs_pressure","abs_pressure","acc","acc_x","acc_y","acc_z","accuracy","accuracy","ack","action","active","actuator","address","afx","afx","afx","afx","afy","afy","afy","afy","afz","afz","afz","afz","airspeed","airspeed","airspeed","airspeed","airspeed_sp","airspeed_sp","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt_camera","alt_error","alt_image","altitude","altitude","altitude","altitude","altitude","altitude","altitude_amsl","altitude_amsl","altitude_barometric","altitude_geodetic","altitude_local","altitude_minimum_delta","altitude_monotonic","altitude_relative","altitude_sp","altitude_terrain","altitude_type","angle_x","angle_y","angular_velocity_x","angular_velocity_x","angular_velocity_x","angular_velocity_y","angular_velocity_y","angular_velocity_y","angular_velocity_z","angular_velocity_z","angular_velocity_z","apn","approach_x","approach_x","approach_y","approach_y","approach_z","approach_z","area_ceiling","area_count","area_floor","area_radius","arguments","arming_time_utc","array_id","aspd_error","attitude_q","attitude_quaternion","authentication_data","authentication_type","autocontinue","autocontinue","autocontinue","autopilot","autopilot","autosaved","aux1","aux2","aux3","aux4","available_capacity","available_capacity","ax","ay","az","barometer_accuracy","barometric_pressure","base_mode","base_mode","base_mode","baseline_a_mm","baseline_a_mm","baseline_b_mm","baseline_b_mm","baseline_c_mm","baseline_c_mm","baseline_coords_type","baseline_coords_type","bat_current_setpoint","battery","battery_current","battery_function","battery_function","battery_remaining","battery_remaining","battery_remaining","baudrate","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitrate","bitrate","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","board_version","body_pitch_rate","body_pitch_rate","body_roll_rate","body_roll_rate","body_yaw_rate","body_yaw_rate","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bottom_clearance","breach_count","breach_status","breach_time","breach_type","bus","bus","bus","bus_voltage","buttons","cal_mask","cal_status","callsign","callsign","cam_definition_uri","cam_definition_version","camera_id","cap_flags","cap_flags","capabilities","capacity_full","capacity_full_specification","capture_result","category_eu","chan10_raw","chan10_raw","chan11_raw","chan11_raw","chan12_raw","chan12_raw","chan13_raw","chan14_raw","chan15_raw","chan16_raw","chan17_raw","chan18_raw","chan1_raw","chan1_raw","chan1_raw","chan1_raw","chan1_scaled","chan2_raw","chan2_raw","chan2_raw","chan2_raw","chan2_scaled","chan3_raw","chan3_raw","chan3_raw","chan3_raw","chan3_scaled","chan4_raw","chan4_raw","chan4_raw","chan4_raw","chan4_scaled","chan5_raw","chan5_raw","chan5_raw","chan5_raw","chan5_scaled","chan6_raw","chan6_raw","chan6_raw","chan6_raw","chan6_scaled","chan7_raw","chan7_raw","chan7_raw","chan7_raw","chan7_scaled","chan8_raw","chan8_raw","chan8_raw","chan8_raw","chan8_scaled","chan9_raw","chan9_raw","chancount","charging_minimum_voltage","child_frame_id","class_eu","classification_type","climb","climb_rate","climb_rate","clipping_0","clipping_1","clipping_2","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cog","cog","cog","command","command","command","command","command","command","command","commanded_action","compass_id","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","confirmation","connection_type","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","control_request","control_request","controls","controls","controls","coordinate_frame","coordinate_frame","coordinate_frame","coordinate_frame","count","count","count","count","count","count","count","counter","covariance","covariance","covariance","covariance","cpu_combined","cpu_cores","current","current","current","current","current","current_battery","current_battery","current_consumed","current_distance","current_height","custom0","custom1","custom2","custom_cap_flags","custom_mode","custom_mode","custom_mode","custom_mode","custom_name","custom_state","cycle_count","cylinder_head_temperature","data","data","data","data","data","data","data","data","data","data","data_page","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default_message_from_id","delta","description","description_type","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","destination_component","destination_system","device","device_name","dgps_age","dgps_numch","diag_x","diag_y","diag_z","diff_pressure","diff_pressure","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","dimension_bow","dimension_port","dimension_starboard","dimension_stern","direction","discharge_minimum_voltage","dist","distance","distance","distance","distance","distances","drop_rate_comm","ecu_index","emitter_type","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","enable_lte","enable_pin","end","end_index","end_index","energy_consumed","engine_load","eph","eph","eph","eph","epv","epv","epv","epv","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","error","error_count","errors_comm","errors_count1","errors_count2","errors_count3","errors_count4","est_capabilities","estimator_status","estimator_type","estimator_type","event_time_boot_ms","exhaust_gas_temperature","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extra_crc","failed_sessions","failsafe","failure_flags","failure_flags","failure_flags","failure_reason","fan_speed","feed_forward_angular_velocity_z","fields_updated","fields_updated","file_crc","file_url","firmware_version","firmware_version","first_message_offset","first_message_offset","first_sequence","fitness","fix_type","fix_type","fix_type","fix_type","fixed","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flight_custom_version","flight_state","flight_sw_version","flight_uuid","flow_comp_m_x","flow_comp_m_y","flow_x","flow_y","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","focal_length","format","format","frame","frame","frame","frame","frame","frame","frame","frame_id","framerate","framerate","frequency","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","fuel_consumed","fuel_flow","gcs_system_id","general_metadata_file_crc","general_metadata_uri","generator_speed","generator_temperature","gimbal_device_id","gimbal_device_id","gimbal_device_id","gimbal_device_id","gimbal_device_id","gps_fix_type","gps_id","gps_nsat","gpu_combined","gpu_cores","grid_spacing","grid_spacing","gridbit","ground_distance","groundspeed","groundspeed","groundspeed","group_mlx","group_mlx","h_acc","h_acc","hagl_ratio","hardware_version","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hdg","hdg","hdg_acc","hdop","heading","heading","heading","heading","heading","heading_sp","health","health","height","height","height_reference","hfov","hfov","hfov","hor_velocity","horiz_accuracy","horiz_accuracy","horizontal_accuracy","horizontal_minimum_delta","humidity","hw_unique_id","hw_version_major","hw_version_minor","iar_num_hypotheses","iar_num_hypotheses","id","id","id","id","id","id","id","id","id","id","id","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_type","ids","ignition_timing","ignore_flags","image_index","image_interval","image_status","increment","ind","ind_airspeed","index","index","index","info","initial_timestamp","injection_time","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","intake_manifold_pressure","intake_manifold_temperature","integrated_x","integrated_x","integrated_xgyro","integrated_xgyro","integrated_y","integrated_y","integrated_ygyro","integrated_ygyro","integrated_zgyro","integrated_zgyro","integration_time_us","integration_time_us","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","interval_us","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","jpg_quality","key","lac","land","landed_state","landed_state","landed_state","last_change_ms","last_heartbeat","last_log_num","last_page_index","last_sequence","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat_camera","lat_image","lat_int","lat_int","latitude","latitude","latitude","latitude","latitude","latitude","latitude","len","len","len","len","length","length","length","lens_id","library_version_hash","line_length","link_rx_max","link_rx_rate","link_tx_max","link_tx_rate","link_type","load","load_current","loaded","log_levels","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon_camera","lon_image","lon_int","lon_int","longitude","longitude","longitude","longitude","longitude","longitude","longitude","mag_ratio","manual_override_switch","mask","mavlink_version","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","max_distance","max_distance","max_version","mcc","message_id","message_id","message_id_from_name","message_name","message_rate","message_type","messages","messages_lost","messages_received","messages_sent","middleware_custom_version","middleware_sw_version","min_distance","min_distance","min_version","mission_end","mission_next_item","mnc","mode","mode","mode","mode_id","mode_switch","model_name","model_name","msg_pack_size","name","name","name","name","name","name","name","nav_bearing","nav_mode","nav_pitch","nav_roll","navigational_status","new_pin","next_alt","next_lat","next_lon","noise","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","nsats","nsats","num_ids","num_logs","offdiag_x","offdiag_y","offdiag_z","ofs","ofs","ofs_x","ofs_y","ofs_z","on_off","onboard_control_sensors_enabled","onboard_control_sensors_health","onboard_control_sensors_present","operation","operator_altitude_geo","operator_altitude_geo","operator_id","operator_id_type","operator_latitude","operator_latitude","operator_location_type","operator_longitude","operator_longitude","orientation","os_custom_version","os_sw_version","p1x","p1x","p1y","p1y","p1z","p1z","p2x","p2x","p2y","p2y","p2z","p2z","packets","param1","param1","param1","param1","param2","param2","param2","param2","param3","param3","param3","param3","param4","param4","param4","param4","param5","param6","param7","param_count","param_count","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_index","param_index","param_index","param_index","param_index","param_result","param_type","param_type","param_type","param_type","param_type","param_value","param_value","param_value","param_value","param_value","param_value0","param_value_max","param_value_min","parameter_rc_channel_index","parse","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","passkey","password","payload","payload","payload","payload","payload_length","payload_type","pending","peripherals_metadata_file_crc","peripherals_metadata_uri","pin","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch_elevator","pitch_max","pitch_max","pitch_min","pitch_min","pitch_rate","pitch_rate","pitch_rate","pitchspeed","pitchspeed","pitchspeed","pitchspeed","pitchspeed","pitchspeed","point_x","point_y","port","port","port","pos_horiz_accuracy","pos_horiz_ratio","pos_variance","pos_vert_accuracy","pos_vert_ratio","pos_x","pos_x","pos_y","pos_y","pos_yaw","pos_yaw","pos_z","pos_z","pose_covariance","position_cov","power_generated","press_abs","press_abs","press_abs","press_abs","press_diff","press_diff","press_diff","press_diff1","press_diff2","pressure_alt","pressure_alt","primary_control_compid","primary_control_sysid","product_id","pt_compensation","puk","q","q","q","q","q","q","q","q","q","q","q","q","q","q","q1","q1","q2","q2","q3","q3","q4","q4","q_estimated_delay_us","quality","quality","quality","quality","r","radius","radius","ram_total","ram_usage","rates","read_speed","reason","rec_bottom_x","rec_bottom_y","rec_top_x","rec_top_y","recording_time_ms","rectifier_temperature","relative_alt","relative_alt","relative_alt","relative_alt","remnoise","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remrssi","req_message_rate","req_stream_id","request_id","resolution_h","resolution_h","resolution_h","resolution_v","resolution_v","resolution_v","response","resting_minimum_voltage","result","ring_pending","roaming","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll_ailerons","roll_max","roll_max","roll_min","roll_min","roll_rate","rollspeed","rollspeed","rollspeed","rollspeed","rollspeed","rollspeed","rotation","rotation","rpm","rpm","rssi","rssi","rssi","rssi","rssi","rtk_health","rtk_health","rtk_rate","rtk_rate","rtk_receiver_id","rtk_receiver_id","runtime","rx_buf","rx_overflows","rx_parse_err","rx_rate","rx_session_pending","rxerrors","safe_return","satellite_azimuth","satellite_elevation","satellite_prn","satellite_snr","satellite_used","satellites_visible","satellites_visible","satellites_visible","satellites_visible","satellites_visible","scale","secondary_control_compid","secondary_control_sysid","secret_key","sensor_id","sensor_id","sensor_id","sensor_size_h","sensor_size_v","sensor_type","seq","seq","seq","seq","seq","seq","seq","seq","seq","seqnr","sequence","sequence","sequence","sequence","sequence","sequence","sequence_oldest_available","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","serial_number","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","servo1_raw","servo2_raw","servo3_raw","servo4_raw","servo5_raw","servo6_raw","servo7_raw","servo8_raw","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","severity","signal_quality","single_message_size","size","size","size_x","size_y","spacing","spark_dwell_time","spec_version_hash","speed","speed_accuracy","speed_accuracy","speed_horizontal","speed_vertical","squawk","src","ssid","start","start_index","start_index","start_stop","state","status","status","status","status","status","status","std_dev_horz","std_dev_vert","storage","storage_count","storage_id","storage_total","storage_type","storage_usage","stream_id","stream_id","stream_id","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_mode","successful_sessions","sw_vcs_commit","sw_version_major","sw_version_minor","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","system_status","takeoff_time_utc","target","target_altitude","target_bearing","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_data","target_distance","target_heading","target_network","target_network","target_num","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","tas_ratio","tc1","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature_air","temperature_air","temperature_board","temperature_core","tension","terrain_height","text","threat_level","throttle","throttle","throttle","throttle","throttle_out","throttle_position","thrust","thrust","thrust","time","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_us","time_delta_distance_us","time_delta_distance_us","time_last_baseline_ms","time_last_baseline_ms","time_to_minimum_delta","time_unix_usec","time_until_maintenance","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_utc","time_utc","time_week","time_week_ms","timeout","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp_accuracy","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","total_capacity","tow","tow","tracking_mode","tracking_status","tracking_status","transfer_type","true_airspeed","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","ts1","tslc","tslc","tune","tune","turn_rate","tx_buf","tx_overflows","tx_rate","tx_session_pending","txbuf","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_mask","type_mask","type_mask","type_mask","type_mask","type_mask","ua_type","uas_id","uas_id","uid","uid","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","update_rate","uptime","uptime_sec","uptime_sec","uri","uri","uri","uri_type","usec","usec","usec","usec","used_capacity","v_acc","v_acc","v_estimated_delay_us","valid_points","valid_points","value","value","value","value","var_horiz","var_vert","vd","vd","vd","vdop","ve","ve","ve","vel","vel","vel","vel","vel_acc","vel_acc","vel_d","vel_e","vel_n","vel_ratio","vel_variance","vel_x","vel_y","vel_yaw","vel_z","velocity","velocity_covariance","vendor_id","vendor_name","vendor_name","vendor_specific_status_code","ver","ver_velocity","version","version","vert_accuracy","vert_accuracy","vertical_accuracy","vfov","vibration_x","vibration_y","vibration_z","video_status","vn","vn","vn","voltage","voltage","voltage_battery","voltages","vtol_state","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","weight","width","wind_alt","wind_heading","wind_x","wind_y","wind_z","windspeed","wn","wn","wp_dist","wp_distance","wp_num","wp_num","write_speed","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x_acc","x_pos","x_vel","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xmag","xmag","xmag","xmag","xmag","xmag","xtrack_error","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y_acc","y_pos","y_vel","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw_max","yaw_max","yaw_min","yaw_min","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rudder","yawspeed","yawspeed","yawspeed","yawspeed","yawspeed","yawspeed","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ymag","ymag","ymag","ymag","ymag","ymag","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z_acc","z_pos","z_vel","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zmag","zmag","zmag","zmag","zmag","zmag","InvalidEnum","InvalidFlag","Io","Io","MessageReadError","MessageWriteError","Parse","ParserError","UnknownMessage","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","enum_type","flag_type","id","value","value","DEFAULT","DEFAULT","DEFAULT","DEFAULT","ENCODED_LEN","ENCODED_LEN","ICAROUS_FMS_STATE_APPROACH","ICAROUS_FMS_STATE_CLIMB","ICAROUS_FMS_STATE_CRUISE","ICAROUS_FMS_STATE_IDLE","ICAROUS_FMS_STATE_LAND","ICAROUS_FMS_STATE_TAKEOFF","ICAROUS_HEARTBEAT","ICAROUS_HEARTBEAT_DATA","ICAROUS_KINEMATIC_BANDS","ICAROUS_KINEMATIC_BANDS_DATA","ICAROUS_TRACK_BAND_TYPE_NEAR","ICAROUS_TRACK_BAND_TYPE_NONE","ICAROUS_TRACK_BAND_TYPE_RECOVERY","IcarousFmsState","IcarousTrackBandTypes","MavMessage","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","default","default","default_message_from_id","deser","deser","deserialize","deserialize","deserialize","deserialize","deserialize","eq","eq","eq","eq","eq","extra_crc","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_i64","from_i64","from_u64","from_u64","into","into","into","into","into","max1","max2","max3","max4","max5","message_id","message_id_from_name","message_name","min1","min2","min3","min4","min5","numBands","parse","ser","ser","ser","serialize","serialize","serialize","serialize","serialize","status","to_i64","to_i64","to_owned","to_owned","to_owned","to_owned","to_owned","to_u64","to_u64","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type1","type2","type3","type4","type5","type_id","type_id","type_id","type_id","type_id","PeekReader","borrow","borrow_mut","consume","from","into","new","peek_exact","read_exact","read_u8","reader_mut","reader_ref","try_from","try_into","type_id","ACTUATOR_CONFIGURATION_3D_MODE_OFF","ACTUATOR_CONFIGURATION_3D_MODE_ON","ACTUATOR_CONFIGURATION_BEEP","ACTUATOR_CONFIGURATION_NONE","ACTUATOR_CONFIGURATION_SPIN_DIRECTION1","ACTUATOR_CONFIGURATION_SPIN_DIRECTION2","ACTUATOR_CONTROL_TARGET","ACTUATOR_CONTROL_TARGET_DATA","ACTUATOR_OUTPUT_FUNCTION_MOTOR1","ACTUATOR_OUTPUT_FUNCTION_MOTOR10","ACTUATOR_OUTPUT_FUNCTION_MOTOR11","ACTUATOR_OUTPUT_FUNCTION_MOTOR12","ACTUATOR_OUTPUT_FUNCTION_MOTOR13","ACTUATOR_OUTPUT_FUNCTION_MOTOR14","ACTUATOR_OUTPUT_FUNCTION_MOTOR15","ACTUATOR_OUTPUT_FUNCTION_MOTOR16","ACTUATOR_OUTPUT_FUNCTION_MOTOR2","ACTUATOR_OUTPUT_FUNCTION_MOTOR3","ACTUATOR_OUTPUT_FUNCTION_MOTOR4","ACTUATOR_OUTPUT_FUNCTION_MOTOR5","ACTUATOR_OUTPUT_FUNCTION_MOTOR6","ACTUATOR_OUTPUT_FUNCTION_MOTOR7","ACTUATOR_OUTPUT_FUNCTION_MOTOR8","ACTUATOR_OUTPUT_FUNCTION_MOTOR9","ACTUATOR_OUTPUT_FUNCTION_NONE","ACTUATOR_OUTPUT_FUNCTION_SERVO1","ACTUATOR_OUTPUT_FUNCTION_SERVO10","ACTUATOR_OUTPUT_FUNCTION_SERVO11","ACTUATOR_OUTPUT_FUNCTION_SERVO12","ACTUATOR_OUTPUT_FUNCTION_SERVO13","ACTUATOR_OUTPUT_FUNCTION_SERVO14","ACTUATOR_OUTPUT_FUNCTION_SERVO15","ACTUATOR_OUTPUT_FUNCTION_SERVO16","ACTUATOR_OUTPUT_FUNCTION_SERVO2","ACTUATOR_OUTPUT_FUNCTION_SERVO3","ACTUATOR_OUTPUT_FUNCTION_SERVO4","ACTUATOR_OUTPUT_FUNCTION_SERVO5","ACTUATOR_OUTPUT_FUNCTION_SERVO6","ACTUATOR_OUTPUT_FUNCTION_SERVO7","ACTUATOR_OUTPUT_FUNCTION_SERVO8","ACTUATOR_OUTPUT_FUNCTION_SERVO9","ACTUATOR_OUTPUT_STATUS","ACTUATOR_OUTPUT_STATUS_DATA","ADSB_ALTITUDE_TYPE_GEOMETRIC","ADSB_ALTITUDE_TYPE_PRESSURE_QNH","ADSB_EMITTER_TYPE_EMERGENCY_SURFACE","ADSB_EMITTER_TYPE_GLIDER","ADSB_EMITTER_TYPE_HEAVY","ADSB_EMITTER_TYPE_HIGHLY_MANUV","ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE","ADSB_EMITTER_TYPE_LARGE","ADSB_EMITTER_TYPE_LIGHT","ADSB_EMITTER_TYPE_LIGHTER_AIR","ADSB_EMITTER_TYPE_NO_INFO","ADSB_EMITTER_TYPE_PARACHUTE","ADSB_EMITTER_TYPE_POINT_OBSTACLE","ADSB_EMITTER_TYPE_ROTOCRAFT","ADSB_EMITTER_TYPE_SERVICE_SURFACE","ADSB_EMITTER_TYPE_SMALL","ADSB_EMITTER_TYPE_SPACE","ADSB_EMITTER_TYPE_UAV","ADSB_EMITTER_TYPE_ULTRA_LIGHT","ADSB_EMITTER_TYPE_UNASSGINED3","ADSB_EMITTER_TYPE_UNASSIGNED","ADSB_EMITTER_TYPE_UNASSIGNED2","ADSB_FLAGS_BARO_VALID","ADSB_FLAGS_SIMULATED","ADSB_FLAGS_SOURCE_UAT","ADSB_FLAGS_VALID_ALTITUDE","ADSB_FLAGS_VALID_CALLSIGN","ADSB_FLAGS_VALID_COORDS","ADSB_FLAGS_VALID_HEADING","ADSB_FLAGS_VALID_SQUAWK","ADSB_FLAGS_VALID_VELOCITY","ADSB_FLAGS_VERTICAL_VELOCITY_VALID","ADSB_VEHICLE","ADSB_VEHICLE_DATA","AIS_FLAGS_HIGH_VELOCITY","AIS_FLAGS_LARGE_BOW_DIMENSION","AIS_FLAGS_LARGE_PORT_DIMENSION","AIS_FLAGS_LARGE_STARBOARD_DIMENSION","AIS_FLAGS_LARGE_STERN_DIMENSION","AIS_FLAGS_POSITION_ACCURACY","AIS_FLAGS_TURN_RATE_SIGN_ONLY","AIS_FLAGS_VALID_CALLSIGN","AIS_FLAGS_VALID_COG","AIS_FLAGS_VALID_DIMENSIONS","AIS_FLAGS_VALID_NAME","AIS_FLAGS_VALID_TURN_RATE","AIS_FLAGS_VALID_VELOCITY","AIS_NAV_AGROUND","AIS_NAV_AIS_SART","AIS_NAV_ANCHORED","AIS_NAV_DRAUGHT_CONSTRAINED","AIS_NAV_FISHING","AIS_NAV_MOORED","AIS_NAV_RESERVED_1","AIS_NAV_RESERVED_2","AIS_NAV_RESERVED_3","AIS_NAV_RESERVED_HSC","AIS_NAV_RESERVED_WIG","AIS_NAV_RESTRICTED_MANOEUVERABILITY","AIS_NAV_SAILING","AIS_NAV_UNKNOWN","AIS_NAV_UN_COMMANDED","AIS_TYPE_ANTI_POLLUTION","AIS_TYPE_CARGO","AIS_TYPE_CARGO_HAZARDOUS_A","AIS_TYPE_CARGO_HAZARDOUS_B","AIS_TYPE_CARGO_HAZARDOUS_C","AIS_TYPE_CARGO_HAZARDOUS_D","AIS_TYPE_CARGO_RESERVED_1","AIS_TYPE_CARGO_RESERVED_2","AIS_TYPE_CARGO_RESERVED_3","AIS_TYPE_CARGO_RESERVED_4","AIS_TYPE_CARGO_UNKNOWN","AIS_TYPE_DIVING","AIS_TYPE_DREDGING","AIS_TYPE_FISHING","AIS_TYPE_HSC","AIS_TYPE_HSC_HAZARDOUS_A","AIS_TYPE_HSC_HAZARDOUS_B","AIS_TYPE_HSC_HAZARDOUS_C","AIS_TYPE_HSC_HAZARDOUS_D","AIS_TYPE_HSC_RESERVED_1","AIS_TYPE_HSC_RESERVED_2","AIS_TYPE_HSC_RESERVED_3","AIS_TYPE_HSC_RESERVED_4","AIS_TYPE_HSC_UNKNOWN","AIS_TYPE_LAW_ENFORCEMENT","AIS_TYPE_MEDICAL_TRANSPORT","AIS_TYPE_MILITARY","AIS_TYPE_NONECOMBATANT","AIS_TYPE_OTHER","AIS_TYPE_OTHER_HAZARDOUS_A","AIS_TYPE_OTHER_HAZARDOUS_B","AIS_TYPE_OTHER_HAZARDOUS_C","AIS_TYPE_OTHER_HAZARDOUS_D","AIS_TYPE_OTHER_RESERVED_1","AIS_TYPE_OTHER_RESERVED_2","AIS_TYPE_OTHER_RESERVED_3","AIS_TYPE_OTHER_RESERVED_4","AIS_TYPE_OTHER_UNKNOWN","AIS_TYPE_PASSENGER","AIS_TYPE_PASSENGER_HAZARDOUS_A","AIS_TYPE_PASSENGER_HAZARDOUS_B","AIS_TYPE_PASSENGER_HAZARDOUS_C","AIS_TYPE_PASSENGER_HAZARDOUS_D","AIS_TYPE_PASSENGER_RESERVED_1","AIS_TYPE_PASSENGER_RESERVED_2","AIS_TYPE_PASSENGER_RESERVED_3","AIS_TYPE_PASSENGER_RESERVED_4","AIS_TYPE_PASSENGER_UNKNOWN","AIS_TYPE_PILOT","AIS_TYPE_PLEASURE","AIS_TYPE_PORT_TENDER","AIS_TYPE_RESERVED_1","AIS_TYPE_RESERVED_10","AIS_TYPE_RESERVED_11","AIS_TYPE_RESERVED_12","AIS_TYPE_RESERVED_13","AIS_TYPE_RESERVED_14","AIS_TYPE_RESERVED_15","AIS_TYPE_RESERVED_16","AIS_TYPE_RESERVED_17","AIS_TYPE_RESERVED_18","AIS_TYPE_RESERVED_19","AIS_TYPE_RESERVED_2","AIS_TYPE_RESERVED_20","AIS_TYPE_RESERVED_21","AIS_TYPE_RESERVED_3","AIS_TYPE_RESERVED_4","AIS_TYPE_RESERVED_5","AIS_TYPE_RESERVED_6","AIS_TYPE_RESERVED_7","AIS_TYPE_RESERVED_8","AIS_TYPE_RESERVED_9","AIS_TYPE_SAILING","AIS_TYPE_SAR","AIS_TYPE_SPARE_LOCAL_1","AIS_TYPE_SPARE_LOCAL_2","AIS_TYPE_TANKER","AIS_TYPE_TANKER_HAZARDOUS_A","AIS_TYPE_TANKER_HAZARDOUS_B","AIS_TYPE_TANKER_HAZARDOUS_C","AIS_TYPE_TANKER_HAZARDOUS_D","AIS_TYPE_TANKER_RESERVED_1","AIS_TYPE_TANKER_RESERVED_2","AIS_TYPE_TANKER_RESERVED_3","AIS_TYPE_TANKER_RESERVED_4","AIS_TYPE_TANKER_UNKNOWN","AIS_TYPE_TOWING","AIS_TYPE_TOWING_LARGE","AIS_TYPE_TUG","AIS_TYPE_UNKNOWN","AIS_TYPE_WIG","AIS_TYPE_WIG_HAZARDOUS_A","AIS_TYPE_WIG_HAZARDOUS_B","AIS_TYPE_WIG_HAZARDOUS_C","AIS_TYPE_WIG_HAZARDOUS_D","AIS_TYPE_WIG_RESERVED_1","AIS_TYPE_WIG_RESERVED_2","AIS_TYPE_WIG_RESERVED_3","AIS_TYPE_WIG_RESERVED_4","AIS_TYPE_WIG_RESERVED_5","AIS_VESSEL","AIS_VESSEL_DATA","ALTITUDE","ALTITUDE_DATA","ATTITUDE","ATTITUDE_DATA","ATTITUDE_QUATERNION","ATTITUDE_QUATERNION_COV","ATTITUDE_QUATERNION_COV_DATA","ATTITUDE_QUATERNION_DATA","ATTITUDE_TARGET","ATTITUDE_TARGET_DATA","ATTITUDE_TARGET_TYPEMASK_ATTITUDE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_PITCH_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_BODY_YAW_RATE_IGNORE","ATTITUDE_TARGET_TYPEMASK_THROTTLE_IGNORE","ATTITUDE_TARGET_TYPEMASK_THRUST_BODY_SET","ATT_POS_MOCAP","ATT_POS_MOCAP_DATA","AUTH_KEY","AUTH_KEY_DATA","AUTOPILOT_STATE_FOR_GIMBAL_DEVICE","AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA","AUTOPILOT_VERSION","AUTOPILOT_VERSION_DATA","AUTOTUNE_AXIS_DEFAULT","AUTOTUNE_AXIS_PITCH","AUTOTUNE_AXIS_ROLL","AUTOTUNE_AXIS_YAW","ActuatorConfiguration","ActuatorOutputFunction","AdsbAltitudeType","AdsbEmitterType","AdsbFlags","AisFlags","AisNavStatus","AisType","AttitudeTargetTypemask","AutotuneAxis","BATTERY_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION","BATTERY_STATUS","BATTERY_STATUS_DATA","BUTTON_CHANGE","BUTTON_CHANGE_DATA","CAMERA_CAPTURE_STATUS","CAMERA_CAPTURE_STATUS_DATA","CAMERA_CAP_FLAGS_CAN_CAPTURE_IMAGE_IN_VIDEO_MODE","CAMERA_CAP_FLAGS_CAN_CAPTURE_VIDEO_IN_IMAGE_MODE","CAMERA_CAP_FLAGS_CAPTURE_IMAGE","CAMERA_CAP_FLAGS_CAPTURE_VIDEO","CAMERA_CAP_FLAGS_HAS_BASIC_FOCUS","CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM","CAMERA_CAP_FLAGS_HAS_IMAGE_SURVEY_MODE","CAMERA_CAP_FLAGS_HAS_MODES","CAMERA_CAP_FLAGS_HAS_TRACKING_GEO_STATUS","CAMERA_CAP_FLAGS_HAS_TRACKING_POINT","CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE","CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM","CAMERA_FOV_STATUS","CAMERA_FOV_STATUS_DATA","CAMERA_IMAGE_CAPTURED","CAMERA_IMAGE_CAPTURED_DATA","CAMERA_INFORMATION","CAMERA_INFORMATION_DATA","CAMERA_MODE_IMAGE","CAMERA_MODE_IMAGE_SURVEY","CAMERA_MODE_VIDEO","CAMERA_SETTINGS","CAMERA_SETTINGS_DATA","CAMERA_TRACKING_GEO_STATUS","CAMERA_TRACKING_GEO_STATUS_DATA","CAMERA_TRACKING_IMAGE_STATUS","CAMERA_TRACKING_IMAGE_STATUS_DATA","CAMERA_TRACKING_MODE_NONE","CAMERA_TRACKING_MODE_POINT","CAMERA_TRACKING_MODE_RECTANGLE","CAMERA_TRACKING_STATUS_FLAGS_ACTIVE","CAMERA_TRACKING_STATUS_FLAGS_ERROR","CAMERA_TRACKING_STATUS_FLAGS_IDLE","CAMERA_TRACKING_TARGET_DATA_EMBEDDED","CAMERA_TRACKING_TARGET_DATA_IN_STATUS","CAMERA_TRACKING_TARGET_DATA_NONE","CAMERA_TRACKING_TARGET_DATA_RENDERED","CAMERA_TRIGGER","CAMERA_TRIGGER_DATA","CANFD_FRAME","CANFD_FRAME_DATA","CAN_FILTER_ADD","CAN_FILTER_MODIFY","CAN_FILTER_MODIFY_DATA","CAN_FILTER_REMOVE","CAN_FILTER_REPLACE","CAN_FRAME","CAN_FRAME_DATA","CELLULAR_CONFIG","CELLULAR_CONFIG_BLOCKED_PUK_REQUIRED","CELLULAR_CONFIG_DATA","CELLULAR_CONFIG_RESPONSE_ACCEPTED","CELLULAR_CONFIG_RESPONSE_APN_ERROR","CELLULAR_CONFIG_RESPONSE_PIN_ERROR","CELLULAR_CONFIG_RESPONSE_REJECTED","CELLULAR_NETWORK_FAILED_REASON_NONE","CELLULAR_NETWORK_FAILED_REASON_SIM_ERROR","CELLULAR_NETWORK_FAILED_REASON_SIM_MISSING","CELLULAR_NETWORK_FAILED_REASON_UNKNOWN","CELLULAR_NETWORK_RADIO_TYPE_CDMA","CELLULAR_NETWORK_RADIO_TYPE_GSM","CELLULAR_NETWORK_RADIO_TYPE_LTE","CELLULAR_NETWORK_RADIO_TYPE_NONE","CELLULAR_NETWORK_RADIO_TYPE_WCDMA","CELLULAR_STATUS","CELLULAR_STATUS_DATA","CELLULAR_STATUS_FLAG_CONNECTED","CELLULAR_STATUS_FLAG_CONNECTING","CELLULAR_STATUS_FLAG_DISABLED","CELLULAR_STATUS_FLAG_DISABLING","CELLULAR_STATUS_FLAG_DISCONNECTING","CELLULAR_STATUS_FLAG_ENABLED","CELLULAR_STATUS_FLAG_ENABLING","CELLULAR_STATUS_FLAG_FAILED","CELLULAR_STATUS_FLAG_INITIALIZING","CELLULAR_STATUS_FLAG_LOCKED","CELLULAR_STATUS_FLAG_REGISTERED","CELLULAR_STATUS_FLAG_SEARCHING","CELLULAR_STATUS_FLAG_UNKNOWN","CHANGE_OPERATOR_CONTROL","CHANGE_OPERATOR_CONTROL_ACK","CHANGE_OPERATOR_CONTROL_ACK_DATA","CHANGE_OPERATOR_CONTROL_DATA","COG","COLLISION","COLLISION_DATA","COMMAND_ACK","COMMAND_ACK_DATA","COMMAND_CANCEL","COMMAND_CANCEL_DATA","COMMAND_INT","COMMAND_INT_DATA","COMMAND_LONG","COMMAND_LONG_DATA","COMPONENT_INFORMATION","COMPONENT_INFORMATION_DATA","COMPONENT_METADATA","COMPONENT_METADATA_DATA","COMP_METADATA_TYPE_ACTUATORS","COMP_METADATA_TYPE_COMMANDS","COMP_METADATA_TYPE_EVENTS","COMP_METADATA_TYPE_GENERAL","COMP_METADATA_TYPE_PARAMETER","COMP_METADATA_TYPE_PERIPHERALS","CONTROL_SYSTEM_STATE","CONTROL_SYSTEM_STATE_DATA","CURRENT_EVENT_SEQUENCE","CURRENT_EVENT_SEQUENCE_DATA","CameraCapFlags","CameraMode","CameraTrackingMode","CameraTrackingStatusFlags","CameraTrackingTargetData","CameraZoomType","CanFilterOp","CellularConfigResponse","CellularNetworkFailedReason","CellularNetworkRadioType","CellularStatusFlag","CompMetadataType","DATA_STREAM","DATA_STREAM_DATA","DATA_TRANSMISSION_HANDSHAKE","DATA_TRANSMISSION_HANDSHAKE_DATA","DEBUG","DEBUG_DATA","DEBUG_FLOAT_ARRAY","DEBUG_FLOAT_ARRAY_DATA","DEBUG_VECT","DEBUG_VECT_DATA","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DEFAULT","DISTANCE_SENSOR","DISTANCE_SENSOR_DATA","EFI_STATUS","EFI_STATUS_DATA","ENCAPSULATED_DATA","ENCAPSULATED_DATA_DATA","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ENCODED_LEN","ESC_CONNECTION_TYPE_CAN","ESC_CONNECTION_TYPE_DSHOT","ESC_CONNECTION_TYPE_I2C","ESC_CONNECTION_TYPE_ONESHOT","ESC_CONNECTION_TYPE_PPM","ESC_CONNECTION_TYPE_SERIAL","ESC_FAILURE_GENERIC","ESC_FAILURE_INCONSISTENT_CMD","ESC_FAILURE_MOTOR_STUCK","ESC_FAILURE_NONE","ESC_FAILURE_OVER_CURRENT","ESC_FAILURE_OVER_RPM","ESC_FAILURE_OVER_TEMPERATURE","ESC_FAILURE_OVER_VOLTAGE","ESC_INFO","ESC_INFO_DATA","ESC_STATUS","ESC_STATUS_DATA","ESTIMATOR_ACCEL_ERROR","ESTIMATOR_ATTITUDE","ESTIMATOR_CONST_POS_MODE","ESTIMATOR_GPS_GLITCH","ESTIMATOR_POS_HORIZ_ABS","ESTIMATOR_POS_HORIZ_REL","ESTIMATOR_POS_VERT_ABS","ESTIMATOR_POS_VERT_AGL","ESTIMATOR_PRED_POS_HORIZ_ABS","ESTIMATOR_PRED_POS_HORIZ_REL","ESTIMATOR_STATUS","ESTIMATOR_STATUS_DATA","ESTIMATOR_VELOCITY_HORIZ","ESTIMATOR_VELOCITY_VERT","EVENT","EVENT_DATA","EXTENDED_SYS_STATE","EXTENDED_SYS_STATE_DATA","EscConnectionType","EscFailureFlags","EstimatorStatusFlags","FAILURE_TYPE_DELAYED","FAILURE_TYPE_GARBAGE","FAILURE_TYPE_INTERMITTENT","FAILURE_TYPE_OFF","FAILURE_TYPE_OK","FAILURE_TYPE_SLOW","FAILURE_TYPE_STUCK","FAILURE_TYPE_WRONG","FAILURE_UNIT_SENSOR_ACCEL","FAILURE_UNIT_SENSOR_AIRSPEED","FAILURE_UNIT_SENSOR_BARO","FAILURE_UNIT_SENSOR_DISTANCE_SENSOR","FAILURE_UNIT_SENSOR_GPS","FAILURE_UNIT_SENSOR_GYRO","FAILURE_UNIT_SENSOR_MAG","FAILURE_UNIT_SENSOR_OPTICAL_FLOW","FAILURE_UNIT_SENSOR_VIO","FAILURE_UNIT_SYSTEM_AVOIDANCE","FAILURE_UNIT_SYSTEM_BATTERY","FAILURE_UNIT_SYSTEM_MAVLINK_SIGNAL","FAILURE_UNIT_SYSTEM_MOTOR","FAILURE_UNIT_SYSTEM_RC_SIGNAL","FAILURE_UNIT_SYSTEM_SERVO","FENCE_ACTION_GUIDED","FENCE_ACTION_GUIDED_THR_PASS","FENCE_ACTION_HOLD","FENCE_ACTION_LAND","FENCE_ACTION_NONE","FENCE_ACTION_REPORT","FENCE_ACTION_RTL","FENCE_ACTION_TERMINATE","FENCE_BREACH_BOUNDARY","FENCE_BREACH_MAXALT","FENCE_BREACH_MINALT","FENCE_BREACH_NONE","FENCE_MITIGATE_NONE","FENCE_MITIGATE_UNKNOWN","FENCE_MITIGATE_VEL_LIMIT","FENCE_STATUS","FENCE_STATUS_DATA","FILE_TRANSFER_PROTOCOL","FILE_TRANSFER_PROTOCOL_DATA","FIRMWARE_VERSION_TYPE_ALPHA","FIRMWARE_VERSION_TYPE_BETA","FIRMWARE_VERSION_TYPE_DEV","FIRMWARE_VERSION_TYPE_OFFICIAL","FIRMWARE_VERSION_TYPE_RC","FLIGHT_INFORMATION","FLIGHT_INFORMATION_DATA","FOCUS_TYPE_AUTO","FOCUS_TYPE_AUTO_CONTINUOUS","FOCUS_TYPE_AUTO_SINGLE","FOCUS_TYPE_CONTINUOUS","FOCUS_TYPE_METERS","FOCUS_TYPE_RANGE","FOCUS_TYPE_STEP","FOLLOW_TARGET","FOLLOW_TARGET_DATA","FailureType","FailureUnit","FenceAction","FenceBreach","FenceMitigate","FirmwareVersionType","GENERATOR_STATUS","GENERATOR_STATUS_DATA","GIMBAL_DEVICE_ATTITUDE_STATUS","GIMBAL_DEVICE_ATTITUDE_STATUS_DATA","GIMBAL_DEVICE_CAP_FLAGS_HAS_NEUTRAL","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_LOCK","GIMBAL_DEVICE_CAP_FLAGS_HAS_RC_INPUTS","GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_LOCK","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_AXIS","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_FOLLOW","GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_LOCK","GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_INFINITE_YAW","GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_ERROR_FLAGS_AT_PITCH_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_AT_YAW_LIMIT","GIMBAL_DEVICE_ERROR_FLAGS_CALIBRATION_RUNNING","GIMBAL_DEVICE_ERROR_FLAGS_COMMS_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_ENCODER_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_MOTOR_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_NO_MANAGER","GIMBAL_DEVICE_ERROR_FLAGS_POWER_ERROR","GIMBAL_DEVICE_ERROR_FLAGS_SOFTWARE_ERROR","GIMBAL_DEVICE_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_FLAGS_NEUTRAL","GIMBAL_DEVICE_FLAGS_PITCH_LOCK","GIMBAL_DEVICE_FLAGS_RC_EXCLUSIVE","GIMBAL_DEVICE_FLAGS_RC_MIXED","GIMBAL_DEVICE_FLAGS_RETRACT","GIMBAL_DEVICE_FLAGS_ROLL_LOCK","GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME","GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME","GIMBAL_DEVICE_FLAGS_YAW_LOCK","GIMBAL_DEVICE_INFORMATION","GIMBAL_DEVICE_INFORMATION_DATA","GIMBAL_DEVICE_SET_ATTITUDE","GIMBAL_DEVICE_SET_ATTITUDE_DATA","GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_GLOBAL","GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_LOCAL","GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_LOCK","GIMBAL_MANAGER_CAP_FLAGS_HAS_RC_INPUTS","GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_LOCK","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW","GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK","GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_INFINITE_YAW","GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_NEUTRAL","GIMBAL_MANAGER_FLAGS_PITCH_LOCK","GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE","GIMBAL_MANAGER_FLAGS_RC_MIXED","GIMBAL_MANAGER_FLAGS_RETRACT","GIMBAL_MANAGER_FLAGS_ROLL_LOCK","GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME","GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME","GIMBAL_MANAGER_FLAGS_YAW_LOCK","GIMBAL_MANAGER_INFORMATION","GIMBAL_MANAGER_INFORMATION_DATA","GIMBAL_MANAGER_SET_ATTITUDE","GIMBAL_MANAGER_SET_ATTITUDE_DATA","GIMBAL_MANAGER_SET_MANUAL_CONTROL","GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA","GIMBAL_MANAGER_SET_PITCHYAW","GIMBAL_MANAGER_SET_PITCHYAW_DATA","GIMBAL_MANAGER_STATUS","GIMBAL_MANAGER_STATUS_DATA","GLOBAL_POSITION_INT","GLOBAL_POSITION_INT_COV","GLOBAL_POSITION_INT_COV_DATA","GLOBAL_POSITION_INT_DATA","GLOBAL_VISION_POSITION_ESTIMATE","GLOBAL_VISION_POSITION_ESTIMATE_DATA","GPS2_RAW","GPS2_RAW_DATA","GPS2_RTK","GPS2_RTK_DATA","GPS_FIX_TYPE_2D_FIX","GPS_FIX_TYPE_3D_FIX","GPS_FIX_TYPE_DGPS","GPS_FIX_TYPE_NO_FIX","GPS_FIX_TYPE_NO_GPS","GPS_FIX_TYPE_PPP","GPS_FIX_TYPE_RTK_FIXED","GPS_FIX_TYPE_RTK_FLOAT","GPS_FIX_TYPE_STATIC","GPS_GLOBAL_ORIGIN","GPS_GLOBAL_ORIGIN_DATA","GPS_INJECT_DATA","GPS_INJECT_DATA_DATA","GPS_INPUT","GPS_INPUT_DATA","GPS_INPUT_IGNORE_FLAG_ALT","GPS_INPUT_IGNORE_FLAG_HDOP","GPS_INPUT_IGNORE_FLAG_HORIZONTAL_ACCURACY","GPS_INPUT_IGNORE_FLAG_SPEED_ACCURACY","GPS_INPUT_IGNORE_FLAG_VDOP","GPS_INPUT_IGNORE_FLAG_VEL_HORIZ","GPS_INPUT_IGNORE_FLAG_VEL_VERT","GPS_INPUT_IGNORE_FLAG_VERTICAL_ACCURACY","GPS_RAW_INT","GPS_RAW_INT_DATA","GPS_RTCM_DATA","GPS_RTCM_DATA_DATA","GPS_RTK","GPS_RTK_DATA","GPS_STATUS","GPS_STATUS_DATA","GRIPPER_ACTION_GRAB","GRIPPER_ACTION_RELEASE","GimbalDeviceCapFlags","GimbalDeviceErrorFlags","GimbalDeviceFlags","GimbalManagerCapFlags","GimbalManagerFlags","GpsFixType","GpsInputIgnoreFlags","GripperActions","HEARTBEAT","HEARTBEAT_DATA","HIGHRES_IMU","HIGHRES_IMU_DATA","HIGHRES_IMU_UPDATED_ABS_PRESSURE","HIGHRES_IMU_UPDATED_ALL","HIGHRES_IMU_UPDATED_DIFF_PRESSURE","HIGHRES_IMU_UPDATED_NONE","HIGHRES_IMU_UPDATED_PRESSURE_ALT","HIGHRES_IMU_UPDATED_TEMPERATURE","HIGHRES_IMU_UPDATED_XACC","HIGHRES_IMU_UPDATED_XGYRO","HIGHRES_IMU_UPDATED_XMAG","HIGHRES_IMU_UPDATED_YACC","HIGHRES_IMU_UPDATED_YGYRO","HIGHRES_IMU_UPDATED_YMAG","HIGHRES_IMU_UPDATED_ZACC","HIGHRES_IMU_UPDATED_ZGYRO","HIGHRES_IMU_UPDATED_ZMAG","HIGH_LATENCY","HIGH_LATENCY2","HIGH_LATENCY2_DATA","HIGH_LATENCY_DATA","HIL_ACTUATOR_CONTROLS","HIL_ACTUATOR_CONTROLS_DATA","HIL_CONTROLS","HIL_CONTROLS_DATA","HIL_GPS","HIL_GPS_DATA","HIL_OPTICAL_FLOW","HIL_OPTICAL_FLOW_DATA","HIL_RC_INPUTS_RAW","HIL_RC_INPUTS_RAW_DATA","HIL_SENSOR","HIL_SENSOR_DATA","HIL_SENSOR_UPDATED_ABS_PRESSURE","HIL_SENSOR_UPDATED_DIFF_PRESSURE","HIL_SENSOR_UPDATED_NONE","HIL_SENSOR_UPDATED_PRESSURE_ALT","HIL_SENSOR_UPDATED_RESET","HIL_SENSOR_UPDATED_TEMPERATURE","HIL_SENSOR_UPDATED_XACC","HIL_SENSOR_UPDATED_XGYRO","HIL_SENSOR_UPDATED_XMAG","HIL_SENSOR_UPDATED_YACC","HIL_SENSOR_UPDATED_YGYRO","HIL_SENSOR_UPDATED_YMAG","HIL_SENSOR_UPDATED_ZACC","HIL_SENSOR_UPDATED_ZGYRO","HIL_SENSOR_UPDATED_ZMAG","HIL_STATE","HIL_STATE_DATA","HIL_STATE_QUATERNION","HIL_STATE_QUATERNION_DATA","HL_FAILURE_FLAG_3D_ACCEL","HL_FAILURE_FLAG_3D_GYRO","HL_FAILURE_FLAG_3D_MAG","HL_FAILURE_FLAG_ABSOLUTE_PRESSURE","HL_FAILURE_FLAG_BATTERY","HL_FAILURE_FLAG_DIFFERENTIAL_PRESSURE","HL_FAILURE_FLAG_ENGINE","HL_FAILURE_FLAG_ESTIMATOR","HL_FAILURE_FLAG_GEOFENCE","HL_FAILURE_FLAG_GPS","HL_FAILURE_FLAG_MISSION","HL_FAILURE_FLAG_OFFBOARD_LINK","HL_FAILURE_FLAG_RC_RECEIVER","HL_FAILURE_FLAG_TERRAIN","HOME_POSITION","HOME_POSITION_DATA","HYGROMETER_SENSOR","HYGROMETER_SENSOR_DATA","HighresImuUpdatedFlags","HilSensorUpdatedFlags","HlFailureFlag","ICAO","ICAO_address","ISBD_LINK_STATUS","ISBD_LINK_STATUS_DATA","LANDING_TARGET","LANDING_TARGET_DATA","LANDING_TARGET_TYPE_LIGHT_BEACON","LANDING_TARGET_TYPE_RADIO_BEACON","LANDING_TARGET_TYPE_VISION_FIDUCIAL","LANDING_TARGET_TYPE_VISION_OTHER","LINK_NODE_STATUS","LINK_NODE_STATUS_DATA","LOCAL_POSITION_NED","LOCAL_POSITION_NED_COV","LOCAL_POSITION_NED_COV_DATA","LOCAL_POSITION_NED_DATA","LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET","LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA","LOGGING_ACK","LOGGING_ACK_DATA","LOGGING_DATA","LOGGING_DATA_ACKED","LOGGING_DATA_ACKED_DATA","LOGGING_DATA_DATA","LOG_DATA","LOG_DATA_DATA","LOG_ENTRY","LOG_ENTRY_DATA","LOG_ERASE","LOG_ERASE_DATA","LOG_REQUEST_DATA","LOG_REQUEST_DATA_DATA","LOG_REQUEST_END","LOG_REQUEST_END_DATA","LOG_REQUEST_LIST","LOG_REQUEST_LIST_DATA","LandingTargetType","MAG_CAL_BAD_ORIENTATION","MAG_CAL_BAD_RADIUS","MAG_CAL_FAILED","MAG_CAL_NOT_STARTED","MAG_CAL_REPORT","MAG_CAL_REPORT_DATA","MAG_CAL_RUNNING_STEP_ONE","MAG_CAL_RUNNING_STEP_TWO","MAG_CAL_SUCCESS","MAG_CAL_WAITING_TO_START","MANUAL_CONTROL","MANUAL_CONTROL_DATA","MANUAL_SETPOINT","MANUAL_SETPOINT_DATA","MAVLINK_DATA_STREAM_IMG_BMP","MAVLINK_DATA_STREAM_IMG_JPEG","MAVLINK_DATA_STREAM_IMG_PGM","MAVLINK_DATA_STREAM_IMG_PNG","MAVLINK_DATA_STREAM_IMG_RAW32U","MAVLINK_DATA_STREAM_IMG_RAW8U","MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE","MAV_ARM_AUTH_DENIED_REASON_BAD_WEATHER","MAV_ARM_AUTH_DENIED_REASON_GENERIC","MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT","MAV_ARM_AUTH_DENIED_REASON_NONE","MAV_ARM_AUTH_DENIED_REASON_TIMEOUT","MAV_AUTOPILOT_AEROB","MAV_AUTOPILOT_AIRRAILS","MAV_AUTOPILOT_ARDUPILOTMEGA","MAV_AUTOPILOT_ARMAZILA","MAV_AUTOPILOT_ASLUAV","MAV_AUTOPILOT_AUTOQUAD","MAV_AUTOPILOT_FP","MAV_AUTOPILOT_GENERIC","MAV_AUTOPILOT_GENERIC_MISSION_FULL","MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY","MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY","MAV_AUTOPILOT_INVALID","MAV_AUTOPILOT_OPENPILOT","MAV_AUTOPILOT_PPZ","MAV_AUTOPILOT_PX4","MAV_AUTOPILOT_REFLEX","MAV_AUTOPILOT_RESERVED","MAV_AUTOPILOT_SLUGS","MAV_AUTOPILOT_SMACCMPILOT","MAV_AUTOPILOT_SMARTAP","MAV_AUTOPILOT_UDB","MAV_BATTERY_CHARGE_STATE_CHARGING","MAV_BATTERY_CHARGE_STATE_CRITICAL","MAV_BATTERY_CHARGE_STATE_EMERGENCY","MAV_BATTERY_CHARGE_STATE_FAILED","MAV_BATTERY_CHARGE_STATE_LOW","MAV_BATTERY_CHARGE_STATE_OK","MAV_BATTERY_CHARGE_STATE_UNDEFINED","MAV_BATTERY_CHARGE_STATE_UNHEALTHY","MAV_BATTERY_FAULT_CELL_FAIL","MAV_BATTERY_FAULT_DEEP_DISCHARGE","MAV_BATTERY_FAULT_INCOMPATIBLE_FIRMWARE","MAV_BATTERY_FAULT_INCOMPATIBLE_VOLTAGE","MAV_BATTERY_FAULT_OVER_CURRENT","MAV_BATTERY_FAULT_OVER_TEMPERATURE","MAV_BATTERY_FAULT_SPIKES","MAV_BATTERY_FAULT_UNDER_TEMPERATURE","MAV_BATTERY_FUNCTION_ALL","MAV_BATTERY_FUNCTION_AVIONICS","MAV_BATTERY_FUNCTION_PAYLOAD","MAV_BATTERY_FUNCTION_PROPULSION","MAV_BATTERY_FUNCTION_UNKNOWN","MAV_BATTERY_MODE_AUTO_DISCHARGING","MAV_BATTERY_MODE_HOT_SWAP","MAV_BATTERY_MODE_UNKNOWN","MAV_BATTERY_TYPE_LIFE","MAV_BATTERY_TYPE_LION","MAV_BATTERY_TYPE_LIPO","MAV_BATTERY_TYPE_NIMH","MAV_BATTERY_TYPE_UNKNOWN","MAV_CMD_ACK_ERR_ACCESS_DENIED","MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE","MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED","MAV_CMD_ACK_ERR_FAIL","MAV_CMD_ACK_ERR_NOT_SUPPORTED","MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE","MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE","MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE","MAV_CMD_ACK_OK","MAV_CMD_ACTUATOR_TEST","MAV_CMD_AIRFRAME_CONFIGURATION","MAV_CMD_ARM_AUTHORIZATION_REQUEST","MAV_CMD_CAMERA_STOP_TRACKING","MAV_CMD_CAMERA_TRACK_POINT","MAV_CMD_CAMERA_TRACK_RECTANGLE","MAV_CMD_CAN_FORWARD","MAV_CMD_COMPONENT_ARM_DISARM","MAV_CMD_CONDITION_CHANGE_ALT","MAV_CMD_CONDITION_DELAY","MAV_CMD_CONDITION_DISTANCE","MAV_CMD_CONDITION_GATE","MAV_CMD_CONDITION_LAST","MAV_CMD_CONDITION_YAW","MAV_CMD_CONFIGURE_ACTUATOR","MAV_CMD_CONTROL_HIGH_LATENCY","MAV_CMD_DO_ADSB_OUT_IDENT","MAV_CMD_DO_AUTOTUNE_ENABLE","MAV_CMD_DO_CHANGE_ALTITUDE","MAV_CMD_DO_CHANGE_SPEED","MAV_CMD_DO_CONTROL_VIDEO","MAV_CMD_DO_DIGICAM_CONFIGURE","MAV_CMD_DO_DIGICAM_CONTROL","MAV_CMD_DO_ENGINE_CONTROL","MAV_CMD_DO_FENCE_ENABLE","MAV_CMD_DO_FLIGHTTERMINATION","MAV_CMD_DO_FOLLOW","MAV_CMD_DO_FOLLOW_REPOSITION","MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE","MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW","MAV_CMD_DO_GO_AROUND","MAV_CMD_DO_GRIPPER","MAV_CMD_DO_GUIDED_LIMITS","MAV_CMD_DO_GUIDED_MASTER","MAV_CMD_DO_INVERTED_FLIGHT","MAV_CMD_DO_JUMP","MAV_CMD_DO_JUMP_TAG","MAV_CMD_DO_LAND_START","MAV_CMD_DO_LAST","MAV_CMD_DO_MOTOR_TEST","MAV_CMD_DO_MOUNT_CONFIGURE","MAV_CMD_DO_MOUNT_CONTROL","MAV_CMD_DO_MOUNT_CONTROL_QUAT","MAV_CMD_DO_ORBIT","MAV_CMD_DO_PARACHUTE","MAV_CMD_DO_PAUSE_CONTINUE","MAV_CMD_DO_RALLY_LAND","MAV_CMD_DO_REPEAT_RELAY","MAV_CMD_DO_REPEAT_SERVO","MAV_CMD_DO_REPOSITION","MAV_CMD_DO_SET_ACTUATOR","MAV_CMD_DO_SET_CAM_TRIGG_DIST","MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL","MAV_CMD_DO_SET_HOME","MAV_CMD_DO_SET_MISSION_CURRENT","MAV_CMD_DO_SET_MODE","MAV_CMD_DO_SET_PARAMETER","MAV_CMD_DO_SET_RELAY","MAV_CMD_DO_SET_REVERSE","MAV_CMD_DO_SET_ROI","MAV_CMD_DO_SET_ROI_LOCATION","MAV_CMD_DO_SET_ROI_NONE","MAV_CMD_DO_SET_ROI_SYSID","MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET","MAV_CMD_DO_SET_SERVO","MAV_CMD_DO_TRIGGER_CONTROL","MAV_CMD_DO_VTOL_TRANSITION","MAV_CMD_DO_WINCH","MAV_CMD_FIXED_MAG_CAL_YAW","MAV_CMD_GET_HOME_POSITION","MAV_CMD_GET_MESSAGE_INTERVAL","MAV_CMD_ILLUMINATOR_ON_OFF","MAV_CMD_IMAGE_START_CAPTURE","MAV_CMD_IMAGE_STOP_CAPTURE","MAV_CMD_INJECT_FAILURE","MAV_CMD_JUMP_TAG","MAV_CMD_LOGGING_START","MAV_CMD_LOGGING_STOP","MAV_CMD_MISSION_START","MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT","MAV_CMD_NAV_DELAY","MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION","MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION","MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION","MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION","MAV_CMD_NAV_FENCE_RETURN_POINT","MAV_CMD_NAV_FOLLOW","MAV_CMD_NAV_GUIDED_ENABLE","MAV_CMD_NAV_LAND","MAV_CMD_NAV_LAND_LOCAL","MAV_CMD_NAV_LAST","MAV_CMD_NAV_LOITER_TIME","MAV_CMD_NAV_LOITER_TO_ALT","MAV_CMD_NAV_LOITER_TURNS","MAV_CMD_NAV_LOITER_UNLIM","MAV_CMD_NAV_PATHPLANNING","MAV_CMD_NAV_PAYLOAD_PLACE","MAV_CMD_NAV_RALLY_POINT","MAV_CMD_NAV_RETURN_TO_LAUNCH","MAV_CMD_NAV_ROI","MAV_CMD_NAV_SET_YAW_SPEED","MAV_CMD_NAV_SPLINE_WAYPOINT","MAV_CMD_NAV_TAKEOFF","MAV_CMD_NAV_TAKEOFF_LOCAL","MAV_CMD_NAV_VTOL_LAND","MAV_CMD_NAV_VTOL_TAKEOFF","MAV_CMD_NAV_WAYPOINT","MAV_CMD_OBLIQUE_SURVEY","MAV_CMD_OVERRIDE_GOTO","MAV_CMD_PANORAMA_CREATE","MAV_CMD_PAYLOAD_CONTROL_DEPLOY","MAV_CMD_PAYLOAD_PREPARE_DEPLOY","MAV_CMD_PREFLIGHT_CALIBRATION","MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN","MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS","MAV_CMD_PREFLIGHT_STORAGE","MAV_CMD_PREFLIGHT_UAVCAN","MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES","MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS","MAV_CMD_REQUEST_CAMERA_IMAGE_CAPTURE","MAV_CMD_REQUEST_CAMERA_INFORMATION","MAV_CMD_REQUEST_CAMERA_SETTINGS","MAV_CMD_REQUEST_FLIGHT_INFORMATION","MAV_CMD_REQUEST_MESSAGE","MAV_CMD_REQUEST_PROTOCOL_VERSION","MAV_CMD_REQUEST_STORAGE_INFORMATION","MAV_CMD_REQUEST_VIDEO_STREAM_INFORMATION","MAV_CMD_REQUEST_VIDEO_STREAM_STATUS","MAV_CMD_RESET_CAMERA_SETTINGS","MAV_CMD_RUN_PREARM_CHECKS","MAV_CMD_SET_CAMERA_FOCUS","MAV_CMD_SET_CAMERA_MODE","MAV_CMD_SET_CAMERA_ZOOM","MAV_CMD_SET_GUIDED_SUBMODE_CIRCLE","MAV_CMD_SET_GUIDED_SUBMODE_STANDARD","MAV_CMD_SET_MESSAGE_INTERVAL","MAV_CMD_SET_STORAGE_USAGE","MAV_CMD_SPATIAL_USER_1","MAV_CMD_SPATIAL_USER_2","MAV_CMD_SPATIAL_USER_3","MAV_CMD_SPATIAL_USER_4","MAV_CMD_SPATIAL_USER_5","MAV_CMD_START_RX_PAIR","MAV_CMD_STORAGE_FORMAT","MAV_CMD_UAVCAN_GET_NODE_INFO","MAV_CMD_USER_1","MAV_CMD_USER_2","MAV_CMD_USER_3","MAV_CMD_USER_4","MAV_CMD_USER_5","MAV_CMD_VIDEO_START_CAPTURE","MAV_CMD_VIDEO_START_STREAMING","MAV_CMD_VIDEO_STOP_CAPTURE","MAV_CMD_VIDEO_STOP_STREAMING","MAV_CMD_WAYPOINT_USER_1","MAV_CMD_WAYPOINT_USER_2","MAV_CMD_WAYPOINT_USER_3","MAV_CMD_WAYPOINT_USER_4","MAV_CMD_WAYPOINT_USER_5","MAV_COLLISION_ACTION_ASCEND_OR_DESCEND","MAV_COLLISION_ACTION_HOVER","MAV_COLLISION_ACTION_MOVE_HORIZONTALLY","MAV_COLLISION_ACTION_MOVE_PERPENDICULAR","MAV_COLLISION_ACTION_NONE","MAV_COLLISION_ACTION_REPORT","MAV_COLLISION_ACTION_RTL","MAV_COLLISION_SRC_ADSB","MAV_COLLISION_SRC_MAVLINK_GPS_GLOBAL_INT","MAV_COLLISION_THREAT_LEVEL_HIGH","MAV_COLLISION_THREAT_LEVEL_LOW","MAV_COLLISION_THREAT_LEVEL_NONE","MAV_COMP_ID_ADSB","MAV_COMP_ID_ALL","MAV_COMP_ID_AUTOPILOT1","MAV_COMP_ID_BATTERY","MAV_COMP_ID_BATTERY2","MAV_COMP_ID_CAMERA","MAV_COMP_ID_CAMERA2","MAV_COMP_ID_CAMERA3","MAV_COMP_ID_CAMERA4","MAV_COMP_ID_CAMERA5","MAV_COMP_ID_CAMERA6","MAV_COMP_ID_FLARM","MAV_COMP_ID_GIMBAL","MAV_COMP_ID_GIMBAL2","MAV_COMP_ID_GIMBAL3","MAV_COMP_ID_GIMBAL4","MAV_COMP_ID_GIMBAL5","MAV_COMP_ID_GIMBAL6","MAV_COMP_ID_GPS","MAV_COMP_ID_GPS2","MAV_COMP_ID_IMU","MAV_COMP_ID_IMU_2","MAV_COMP_ID_IMU_3","MAV_COMP_ID_LOG","MAV_COMP_ID_MAVCAN","MAV_COMP_ID_MISSIONPLANNER","MAV_COMP_ID_OBSTACLE_AVOIDANCE","MAV_COMP_ID_ODID_TXRX_1","MAV_COMP_ID_ODID_TXRX_2","MAV_COMP_ID_ODID_TXRX_3","MAV_COMP_ID_ONBOARD_COMPUTER","MAV_COMP_ID_ONBOARD_COMPUTER2","MAV_COMP_ID_ONBOARD_COMPUTER3","MAV_COMP_ID_ONBOARD_COMPUTER4","MAV_COMP_ID_OSD","MAV_COMP_ID_PAIRING_MANAGER","MAV_COMP_ID_PARACHUTE","MAV_COMP_ID_PATHPLANNER","MAV_COMP_ID_PERIPHERAL","MAV_COMP_ID_QX1_GIMBAL","MAV_COMP_ID_SERVO1","MAV_COMP_ID_SERVO10","MAV_COMP_ID_SERVO11","MAV_COMP_ID_SERVO12","MAV_COMP_ID_SERVO13","MAV_COMP_ID_SERVO14","MAV_COMP_ID_SERVO2","MAV_COMP_ID_SERVO3","MAV_COMP_ID_SERVO4","MAV_COMP_ID_SERVO5","MAV_COMP_ID_SERVO6","MAV_COMP_ID_SERVO7","MAV_COMP_ID_SERVO8","MAV_COMP_ID_SERVO9","MAV_COMP_ID_SYSTEM_CONTROL","MAV_COMP_ID_TELEMETRY_RADIO","MAV_COMP_ID_TUNNEL_NODE","MAV_COMP_ID_UART_BRIDGE","MAV_COMP_ID_UDP_BRIDGE","MAV_COMP_ID_USER1","MAV_COMP_ID_USER10","MAV_COMP_ID_USER11","MAV_COMP_ID_USER12","MAV_COMP_ID_USER13","MAV_COMP_ID_USER14","MAV_COMP_ID_USER15","MAV_COMP_ID_USER16","MAV_COMP_ID_USER17","MAV_COMP_ID_USER18","MAV_COMP_ID_USER19","MAV_COMP_ID_USER2","MAV_COMP_ID_USER20","MAV_COMP_ID_USER21","MAV_COMP_ID_USER22","MAV_COMP_ID_USER23","MAV_COMP_ID_USER24","MAV_COMP_ID_USER25","MAV_COMP_ID_USER26","MAV_COMP_ID_USER27","MAV_COMP_ID_USER28","MAV_COMP_ID_USER29","MAV_COMP_ID_USER3","MAV_COMP_ID_USER30","MAV_COMP_ID_USER31","MAV_COMP_ID_USER32","MAV_COMP_ID_USER33","MAV_COMP_ID_USER34","MAV_COMP_ID_USER35","MAV_COMP_ID_USER36","MAV_COMP_ID_USER37","MAV_COMP_ID_USER38","MAV_COMP_ID_USER39","MAV_COMP_ID_USER4","MAV_COMP_ID_USER40","MAV_COMP_ID_USER41","MAV_COMP_ID_USER42","MAV_COMP_ID_USER43","MAV_COMP_ID_USER45","MAV_COMP_ID_USER46","MAV_COMP_ID_USER47","MAV_COMP_ID_USER48","MAV_COMP_ID_USER49","MAV_COMP_ID_USER5","MAV_COMP_ID_USER50","MAV_COMP_ID_USER51","MAV_COMP_ID_USER52","MAV_COMP_ID_USER53","MAV_COMP_ID_USER54","MAV_COMP_ID_USER55","MAV_COMP_ID_USER56","MAV_COMP_ID_USER57","MAV_COMP_ID_USER58","MAV_COMP_ID_USER59","MAV_COMP_ID_USER6","MAV_COMP_ID_USER60","MAV_COMP_ID_USER61","MAV_COMP_ID_USER62","MAV_COMP_ID_USER63","MAV_COMP_ID_USER64","MAV_COMP_ID_USER65","MAV_COMP_ID_USER66","MAV_COMP_ID_USER67","MAV_COMP_ID_USER68","MAV_COMP_ID_USER69","MAV_COMP_ID_USER7","MAV_COMP_ID_USER70","MAV_COMP_ID_USER71","MAV_COMP_ID_USER72","MAV_COMP_ID_USER73","MAV_COMP_ID_USER74","MAV_COMP_ID_USER75","MAV_COMP_ID_USER8","MAV_COMP_ID_USER9","MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY","MAV_COMP_ID_WINCH","MAV_DATA_STREAM_ALL","MAV_DATA_STREAM_EXTENDED_STATUS","MAV_DATA_STREAM_EXTRA1","MAV_DATA_STREAM_EXTRA2","MAV_DATA_STREAM_EXTRA3","MAV_DATA_STREAM_POSITION","MAV_DATA_STREAM_RAW_CONTROLLER","MAV_DATA_STREAM_RAW_SENSORS","MAV_DATA_STREAM_RC_CHANNELS","MAV_DISTANCE_SENSOR_INFRARED","MAV_DISTANCE_SENSOR_LASER","MAV_DISTANCE_SENSOR_RADAR","MAV_DISTANCE_SENSOR_ULTRASOUND","MAV_DISTANCE_SENSOR_UNKNOWN","MAV_DO_REPOSITION_FLAGS_CHANGE_MODE","MAV_ESTIMATOR_TYPE_AUTOPILOT","MAV_ESTIMATOR_TYPE_GPS","MAV_ESTIMATOR_TYPE_GPS_INS","MAV_ESTIMATOR_TYPE_LIDAR","MAV_ESTIMATOR_TYPE_MOCAP","MAV_ESTIMATOR_TYPE_NAIVE","MAV_ESTIMATOR_TYPE_UNKNOWN","MAV_ESTIMATOR_TYPE_VIO","MAV_ESTIMATOR_TYPE_VISION","MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET","MAV_EVENT_ERROR_REASON_UNAVAILABLE","MAV_FRAME_BODY_FRD","MAV_FRAME_BODY_NED","MAV_FRAME_BODY_OFFSET_NED","MAV_FRAME_GLOBAL","MAV_FRAME_GLOBAL_INT","MAV_FRAME_GLOBAL_RELATIVE_ALT","MAV_FRAME_GLOBAL_RELATIVE_ALT_INT","MAV_FRAME_GLOBAL_TERRAIN_ALT","MAV_FRAME_GLOBAL_TERRAIN_ALT_INT","MAV_FRAME_LOCAL_ENU","MAV_FRAME_LOCAL_FLU","MAV_FRAME_LOCAL_FRD","MAV_FRAME_LOCAL_NED","MAV_FRAME_LOCAL_OFFSET_NED","MAV_FRAME_MISSION","MAV_FRAME_RESERVED_13","MAV_FRAME_RESERVED_14","MAV_FRAME_RESERVED_15","MAV_FRAME_RESERVED_16","MAV_FRAME_RESERVED_17","MAV_FRAME_RESERVED_18","MAV_FRAME_RESERVED_19","MAV_FTP_ERR_EOF","MAV_FTP_ERR_FAIL","MAV_FTP_ERR_FAILERRNO","MAV_FTP_ERR_FILEEXISTS","MAV_FTP_ERR_FILENOTFOUND","MAV_FTP_ERR_FILEPROTECTED","MAV_FTP_ERR_INVALIDDATASIZE","MAV_FTP_ERR_INVALIDSESSION","MAV_FTP_ERR_NONE","MAV_FTP_ERR_NOSESSIONSAVAILABLE","MAV_FTP_ERR_UNKNOWNCOMMAND","MAV_FTP_OPCODE_ACK","MAV_FTP_OPCODE_BURSTREADFILE","MAV_FTP_OPCODE_CALCFILECRC","MAV_FTP_OPCODE_CREATEDIRECTORY","MAV_FTP_OPCODE_CREATEFILE","MAV_FTP_OPCODE_LISTDIRECTORY","MAV_FTP_OPCODE_NAK","MAV_FTP_OPCODE_NONE","MAV_FTP_OPCODE_OPENFILERO","MAV_FTP_OPCODE_OPENFILEWO","MAV_FTP_OPCODE_READFILE","MAV_FTP_OPCODE_REMOVEDIRECTORY","MAV_FTP_OPCODE_REMOVEFILE","MAV_FTP_OPCODE_RENAME","MAV_FTP_OPCODE_RESETSESSION","MAV_FTP_OPCODE_TERMINATESESSION","MAV_FTP_OPCODE_TRUNCATEFILE","MAV_FTP_OPCODE_WRITEFILE","MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT","MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT","MAV_GENERATOR_STATUS_FLAG_CHARGING","MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING","MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT","MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING","MAV_GENERATOR_STATUS_FLAG_GENERATING","MAV_GENERATOR_STATUS_FLAG_IDLE","MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED","MAV_GENERATOR_STATUS_FLAG_MAXPOWER","MAV_GENERATOR_STATUS_FLAG_OFF","MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT","MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT","MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING","MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT","MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT","MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT","MAV_GENERATOR_STATUS_FLAG_READY","MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER","MAV_GENERATOR_STATUS_FLAG_START_INHIBITED","MAV_GENERATOR_STATUS_FLAG_WARMING_UP","MAV_GOTO_DO_CONTINUE","MAV_GOTO_DO_HOLD","MAV_GOTO_HOLD_AT_CURRENT_POSITION","MAV_GOTO_HOLD_AT_SPECIFIED_POSITION","MAV_LANDED_STATE_IN_AIR","MAV_LANDED_STATE_LANDING","MAV_LANDED_STATE_ON_GROUND","MAV_LANDED_STATE_TAKEOFF","MAV_LANDED_STATE_UNDEFINED","MAV_MISSION_ACCEPTED","MAV_MISSION_DENIED","MAV_MISSION_ERROR","MAV_MISSION_INVALID","MAV_MISSION_INVALID_PARAM1","MAV_MISSION_INVALID_PARAM2","MAV_MISSION_INVALID_PARAM3","MAV_MISSION_INVALID_PARAM4","MAV_MISSION_INVALID_PARAM5_X","MAV_MISSION_INVALID_PARAM6_Y","MAV_MISSION_INVALID_PARAM7","MAV_MISSION_INVALID_SEQUENCE","MAV_MISSION_NO_SPACE","MAV_MISSION_OPERATION_CANCELLED","MAV_MISSION_TYPE_ALL","MAV_MISSION_TYPE_FENCE","MAV_MISSION_TYPE_MISSION","MAV_MISSION_TYPE_RALLY","MAV_MISSION_UNSUPPORTED","MAV_MISSION_UNSUPPORTED_FRAME","MAV_MODE_AUTO_ARMED","MAV_MODE_AUTO_DISARMED","MAV_MODE_FLAG_AUTO_ENABLED","MAV_MODE_FLAG_CUSTOM_MODE_ENABLED","MAV_MODE_FLAG_DECODE_POSITION_AUTO","MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE","MAV_MODE_FLAG_DECODE_POSITION_GUIDED","MAV_MODE_FLAG_DECODE_POSITION_HIL","MAV_MODE_FLAG_DECODE_POSITION_MANUAL","MAV_MODE_FLAG_DECODE_POSITION_SAFETY","MAV_MODE_FLAG_DECODE_POSITION_STABILIZE","MAV_MODE_FLAG_DECODE_POSITION_TEST","MAV_MODE_FLAG_GUIDED_ENABLED","MAV_MODE_FLAG_HIL_ENABLED","MAV_MODE_FLAG_MANUAL_INPUT_ENABLED","MAV_MODE_FLAG_SAFETY_ARMED","MAV_MODE_FLAG_STABILIZE_ENABLED","MAV_MODE_FLAG_TEST_ENABLED","MAV_MODE_GUIDED_ARMED","MAV_MODE_GUIDED_DISARMED","MAV_MODE_MANUAL_ARMED","MAV_MODE_MANUAL_DISARMED","MAV_MODE_PREFLIGHT","MAV_MODE_STABILIZE_ARMED","MAV_MODE_STABILIZE_DISARMED","MAV_MODE_TEST_ARMED","MAV_MODE_TEST_DISARMED","MAV_MOUNT_MODE_GPS_POINT","MAV_MOUNT_MODE_HOME_LOCATION","MAV_MOUNT_MODE_MAVLINK_TARGETING","MAV_MOUNT_MODE_NEUTRAL","MAV_MOUNT_MODE_RC_TARGETING","MAV_MOUNT_MODE_RETRACT","MAV_MOUNT_MODE_SYSID_TARGET","MAV_ODID_ARM_STATUS_GOOD_TO_ARM","MAV_ODID_ARM_STATUS_PRE_ARM_FAIL_GENERIC","MAV_ODID_AUTH_TYPE_MESSAGE_SET_SIGNATURE","MAV_ODID_AUTH_TYPE_NETWORK_REMOTE_ID","MAV_ODID_AUTH_TYPE_NONE","MAV_ODID_AUTH_TYPE_OPERATOR_ID_SIGNATURE","MAV_ODID_AUTH_TYPE_SPECIFIC_AUTHENTICATION","MAV_ODID_AUTH_TYPE_UAS_ID_SIGNATURE","MAV_ODID_CATEGORY_EU_CERTIFIED","MAV_ODID_CATEGORY_EU_OPEN","MAV_ODID_CATEGORY_EU_SPECIFIC","MAV_ODID_CATEGORY_EU_UNDECLARED","MAV_ODID_CLASSIFICATION_TYPE_EU","MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED","MAV_ODID_CLASS_EU_CLASS_0","MAV_ODID_CLASS_EU_CLASS_1","MAV_ODID_CLASS_EU_CLASS_2","MAV_ODID_CLASS_EU_CLASS_3","MAV_ODID_CLASS_EU_CLASS_4","MAV_ODID_CLASS_EU_CLASS_5","MAV_ODID_CLASS_EU_CLASS_6","MAV_ODID_CLASS_EU_UNDECLARED","MAV_ODID_DESC_TYPE_EMERGENCY","MAV_ODID_DESC_TYPE_EXTENDED_STATUS","MAV_ODID_DESC_TYPE_TEXT","MAV_ODID_HEIGHT_REF_OVER_GROUND","MAV_ODID_HEIGHT_REF_OVER_TAKEOFF","MAV_ODID_HOR_ACC_0_05NM","MAV_ODID_HOR_ACC_0_1NM","MAV_ODID_HOR_ACC_0_3NM","MAV_ODID_HOR_ACC_0_5NM","MAV_ODID_HOR_ACC_10NM","MAV_ODID_HOR_ACC_10_METER","MAV_ODID_HOR_ACC_1NM","MAV_ODID_HOR_ACC_1_METER","MAV_ODID_HOR_ACC_2NM","MAV_ODID_HOR_ACC_30_METER","MAV_ODID_HOR_ACC_3_METER","MAV_ODID_HOR_ACC_4NM","MAV_ODID_HOR_ACC_UNKNOWN","MAV_ODID_ID_TYPE_CAA_REGISTRATION_ID","MAV_ODID_ID_TYPE_NONE","MAV_ODID_ID_TYPE_SERIAL_NUMBER","MAV_ODID_ID_TYPE_SPECIFIC_SESSION_ID","MAV_ODID_ID_TYPE_UTM_ASSIGNED_UUID","MAV_ODID_OPERATOR_ID_TYPE_CAA","MAV_ODID_OPERATOR_LOCATION_TYPE_FIXED","MAV_ODID_OPERATOR_LOCATION_TYPE_LIVE_GNSS","MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF","MAV_ODID_SPEED_ACC_0_3_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_10_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_1_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_3_METERS_PER_SECOND","MAV_ODID_SPEED_ACC_UNKNOWN","MAV_ODID_STATUS_AIRBORNE","MAV_ODID_STATUS_EMERGENCY","MAV_ODID_STATUS_GROUND","MAV_ODID_STATUS_REMOTE_ID_SYSTEM_FAILURE","MAV_ODID_STATUS_UNDECLARED","MAV_ODID_TIME_ACC_0_1_SECOND","MAV_ODID_TIME_ACC_0_2_SECOND","MAV_ODID_TIME_ACC_0_3_SECOND","MAV_ODID_TIME_ACC_0_4_SECOND","MAV_ODID_TIME_ACC_0_5_SECOND","MAV_ODID_TIME_ACC_0_6_SECOND","MAV_ODID_TIME_ACC_0_7_SECOND","MAV_ODID_TIME_ACC_0_8_SECOND","MAV_ODID_TIME_ACC_0_9_SECOND","MAV_ODID_TIME_ACC_1_0_SECOND","MAV_ODID_TIME_ACC_1_1_SECOND","MAV_ODID_TIME_ACC_1_2_SECOND","MAV_ODID_TIME_ACC_1_3_SECOND","MAV_ODID_TIME_ACC_1_4_SECOND","MAV_ODID_TIME_ACC_1_5_SECOND","MAV_ODID_TIME_ACC_UNKNOWN","MAV_ODID_UA_TYPE_AEROPLANE","MAV_ODID_UA_TYPE_AIRSHIP","MAV_ODID_UA_TYPE_CAPTIVE_BALLOON","MAV_ODID_UA_TYPE_FREE_BALLOON","MAV_ODID_UA_TYPE_FREE_FALL_PARACHUTE","MAV_ODID_UA_TYPE_GLIDER","MAV_ODID_UA_TYPE_GROUND_OBSTACLE","MAV_ODID_UA_TYPE_GYROPLANE","MAV_ODID_UA_TYPE_HELICOPTER_OR_MULTIROTOR","MAV_ODID_UA_TYPE_HYBRID_LIFT","MAV_ODID_UA_TYPE_KITE","MAV_ODID_UA_TYPE_NONE","MAV_ODID_UA_TYPE_ORNITHOPTER","MAV_ODID_UA_TYPE_OTHER","MAV_ODID_UA_TYPE_ROCKET","MAV_ODID_UA_TYPE_TETHERED_POWERED_AIRCRAFT","MAV_ODID_VER_ACC_10_METER","MAV_ODID_VER_ACC_150_METER","MAV_ODID_VER_ACC_1_METER","MAV_ODID_VER_ACC_25_METER","MAV_ODID_VER_ACC_3_METER","MAV_ODID_VER_ACC_45_METER","MAV_ODID_VER_ACC_UNKNOWN","MAV_PARAM_EXT_TYPE_CUSTOM","MAV_PARAM_EXT_TYPE_INT16","MAV_PARAM_EXT_TYPE_INT32","MAV_PARAM_EXT_TYPE_INT64","MAV_PARAM_EXT_TYPE_INT8","MAV_PARAM_EXT_TYPE_REAL32","MAV_PARAM_EXT_TYPE_REAL64","MAV_PARAM_EXT_TYPE_UINT16","MAV_PARAM_EXT_TYPE_UINT32","MAV_PARAM_EXT_TYPE_UINT64","MAV_PARAM_EXT_TYPE_UINT8","MAV_PARAM_TYPE_INT16","MAV_PARAM_TYPE_INT32","MAV_PARAM_TYPE_INT64","MAV_PARAM_TYPE_INT8","MAV_PARAM_TYPE_REAL32","MAV_PARAM_TYPE_REAL64","MAV_PARAM_TYPE_UINT16","MAV_PARAM_TYPE_UINT32","MAV_PARAM_TYPE_UINT64","MAV_PARAM_TYPE_UINT8","MAV_POWER_STATUS_BRICK_VALID","MAV_POWER_STATUS_CHANGED","MAV_POWER_STATUS_PERIPH_HIPOWER_OVERCURRENT","MAV_POWER_STATUS_PERIPH_OVERCURRENT","MAV_POWER_STATUS_SERVO_VALID","MAV_POWER_STATUS_USB_CONNECTED","MAV_PROTOCOL_CAPABILITY_COMMAND_INT","MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION","MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION","MAV_PROTOCOL_CAPABILITY_FTP","MAV_PROTOCOL_CAPABILITY_MAVLINK2","MAV_PROTOCOL_CAPABILITY_MISSION_FENCE","MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT","MAV_PROTOCOL_CAPABILITY_MISSION_INT","MAV_PROTOCOL_CAPABILITY_MISSION_RALLY","MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE","MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST","MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT","MAV_PROTOCOL_CAPABILITY_RESERVED2","MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET","MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET","MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT","MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED","MAV_PROTOCOL_CAPABILITY_TERRAIN","MAV_RESULT_ACCEPTED","MAV_RESULT_CANCELLED","MAV_RESULT_DENIED","MAV_RESULT_FAILED","MAV_RESULT_IN_PROGRESS","MAV_RESULT_TEMPORARILY_REJECTED","MAV_RESULT_UNSUPPORTED","MAV_ROI_LOCATION","MAV_ROI_NONE","MAV_ROI_TARGET","MAV_ROI_WPINDEX","MAV_ROI_WPNEXT","MAV_SENSOR_ROTATION_CUSTOM","MAV_SENSOR_ROTATION_NONE","MAV_SENSOR_ROTATION_PITCH_180","MAV_SENSOR_ROTATION_PITCH_180_YAW_270","MAV_SENSOR_ROTATION_PITCH_180_YAW_90","MAV_SENSOR_ROTATION_PITCH_270","MAV_SENSOR_ROTATION_PITCH_315","MAV_SENSOR_ROTATION_PITCH_90","MAV_SENSOR_ROTATION_ROLL_180","MAV_SENSOR_ROTATION_ROLL_180_PITCH_270","MAV_SENSOR_ROTATION_ROLL_180_PITCH_90","MAV_SENSOR_ROTATION_ROLL_180_YAW_135","MAV_SENSOR_ROTATION_ROLL_180_YAW_225","MAV_SENSOR_ROTATION_ROLL_180_YAW_270","MAV_SENSOR_ROTATION_ROLL_180_YAW_315","MAV_SENSOR_ROTATION_ROLL_180_YAW_45","MAV_SENSOR_ROTATION_ROLL_180_YAW_90","MAV_SENSOR_ROTATION_ROLL_270","MAV_SENSOR_ROTATION_ROLL_270_PITCH_180","MAV_SENSOR_ROTATION_ROLL_270_PITCH_270","MAV_SENSOR_ROTATION_ROLL_270_PITCH_90","MAV_SENSOR_ROTATION_ROLL_270_YAW_135","MAV_SENSOR_ROTATION_ROLL_270_YAW_45","MAV_SENSOR_ROTATION_ROLL_270_YAW_90","MAV_SENSOR_ROTATION_ROLL_90","MAV_SENSOR_ROTATION_ROLL_90_PITCH_180","MAV_SENSOR_ROTATION_ROLL_90_PITCH_180_YAW_90","MAV_SENSOR_ROTATION_ROLL_90_PITCH_270","MAV_SENSOR_ROTATION_ROLL_90_PITCH_315","MAV_SENSOR_ROTATION_ROLL_90_PITCH_68_YAW_293","MAV_SENSOR_ROTATION_ROLL_90_PITCH_90","MAV_SENSOR_ROTATION_ROLL_90_YAW_135","MAV_SENSOR_ROTATION_ROLL_90_YAW_270","MAV_SENSOR_ROTATION_ROLL_90_YAW_45","MAV_SENSOR_ROTATION_ROLL_90_YAW_90","MAV_SENSOR_ROTATION_YAW_135","MAV_SENSOR_ROTATION_YAW_180","MAV_SENSOR_ROTATION_YAW_225","MAV_SENSOR_ROTATION_YAW_270","MAV_SENSOR_ROTATION_YAW_315","MAV_SENSOR_ROTATION_YAW_45","MAV_SENSOR_ROTATION_YAW_90","MAV_SEVERITY_ALERT","MAV_SEVERITY_CRITICAL","MAV_SEVERITY_DEBUG","MAV_SEVERITY_EMERGENCY","MAV_SEVERITY_ERROR","MAV_SEVERITY_INFO","MAV_SEVERITY_NOTICE","MAV_SEVERITY_WARNING","MAV_STATE_ACTIVE","MAV_STATE_BOOT","MAV_STATE_CALIBRATING","MAV_STATE_CRITICAL","MAV_STATE_EMERGENCY","MAV_STATE_FLIGHT_TERMINATION","MAV_STATE_POWEROFF","MAV_STATE_STANDBY","MAV_STATE_UNINIT","MAV_SYS_STATUS_AHRS","MAV_SYS_STATUS_EXTENSION_USED","MAV_SYS_STATUS_GEOFENCE","MAV_SYS_STATUS_LOGGING","MAV_SYS_STATUS_OBSTACLE_AVOIDANCE","MAV_SYS_STATUS_PREARM_CHECK","MAV_SYS_STATUS_RECOVERY_SYSTEM","MAV_SYS_STATUS_REVERSE_MOTOR","MAV_SYS_STATUS_SENSOR_3D_ACCEL","MAV_SYS_STATUS_SENSOR_3D_ACCEL2","MAV_SYS_STATUS_SENSOR_3D_GYRO","MAV_SYS_STATUS_SENSOR_3D_GYRO2","MAV_SYS_STATUS_SENSOR_3D_MAG","MAV_SYS_STATUS_SENSOR_3D_MAG2","MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE","MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL","MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION","MAV_SYS_STATUS_SENSOR_BATTERY","MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE","MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH","MAV_SYS_STATUS_SENSOR_GPS","MAV_SYS_STATUS_SENSOR_LASER_POSITION","MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS","MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW","MAV_SYS_STATUS_SENSOR_PROPULSION","MAV_SYS_STATUS_SENSOR_PROXIMITY","MAV_SYS_STATUS_SENSOR_RC_RECEIVER","MAV_SYS_STATUS_SENSOR_SATCOM","MAV_SYS_STATUS_SENSOR_VISION_POSITION","MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL","MAV_SYS_STATUS_SENSOR_YAW_POSITION","MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL","MAV_SYS_STATUS_TERRAIN","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED0","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED1","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED2","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED3","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED4","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED5","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED6","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED7","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED8","MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED9","MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN","MAV_TYPE_ADSB","MAV_TYPE_AIRSHIP","MAV_TYPE_ANTENNA_TRACKER","MAV_TYPE_BATTERY","MAV_TYPE_CAMERA","MAV_TYPE_CHARGING_STATION","MAV_TYPE_COAXIAL","MAV_TYPE_DECAROTOR","MAV_TYPE_DODECAROTOR","MAV_TYPE_FIXED_WING","MAV_TYPE_FLAPPING_WING","MAV_TYPE_FLARM","MAV_TYPE_FREE_BALLOON","MAV_TYPE_GCS","MAV_TYPE_GENERIC","MAV_TYPE_GIMBAL","MAV_TYPE_GPS","MAV_TYPE_GROUND_ROVER","MAV_TYPE_HELICOPTER","MAV_TYPE_HEXAROTOR","MAV_TYPE_IMU","MAV_TYPE_KITE","MAV_TYPE_LOG","MAV_TYPE_OCTOROTOR","MAV_TYPE_ODID","MAV_TYPE_ONBOARD_CONTROLLER","MAV_TYPE_OSD","MAV_TYPE_PARACHUTE","MAV_TYPE_PARAFOIL","MAV_TYPE_QUADROTOR","MAV_TYPE_ROCKET","MAV_TYPE_SERVO","MAV_TYPE_SUBMARINE","MAV_TYPE_SURFACE_BOAT","MAV_TYPE_TRICOPTER","MAV_TYPE_VTOL_FIXEDROTOR","MAV_TYPE_VTOL_RESERVED5","MAV_TYPE_VTOL_TAILSITTER","MAV_TYPE_VTOL_TAILSITTER_DUOROTOR","MAV_TYPE_VTOL_TAILSITTER_QUADROTOR","MAV_TYPE_VTOL_TILTROTOR","MAV_TYPE_VTOL_TILTWING","MAV_TYPE_WINCH","MAV_VTOL_STATE_FW","MAV_VTOL_STATE_MC","MAV_VTOL_STATE_TRANSITION_TO_FW","MAV_VTOL_STATE_TRANSITION_TO_MC","MAV_VTOL_STATE_UNDEFINED","MAV_WINCH_STATUS_ABANDON_LINE","MAV_WINCH_STATUS_ARRESTING","MAV_WINCH_STATUS_CLUTCH_ENGAGED","MAV_WINCH_STATUS_DROPPING","MAV_WINCH_STATUS_FULLY_RETRACTED","MAV_WINCH_STATUS_GROUND_SENSE","MAV_WINCH_STATUS_HEALTHY","MAV_WINCH_STATUS_LOAD_LINE","MAV_WINCH_STATUS_LOAD_PAYLOAD","MAV_WINCH_STATUS_LOCKED","MAV_WINCH_STATUS_LOCKING","MAV_WINCH_STATUS_MOVING","MAV_WINCH_STATUS_REDELIVER","MAV_WINCH_STATUS_RETRACTING","MEMORY_VECT","MEMORY_VECT_DATA","MESSAGE_INTERVAL","MESSAGE_INTERVAL_DATA","MISSION_ACK","MISSION_ACK_DATA","MISSION_CLEAR_ALL","MISSION_CLEAR_ALL_DATA","MISSION_COUNT","MISSION_COUNT_DATA","MISSION_CURRENT","MISSION_CURRENT_DATA","MISSION_ITEM","MISSION_ITEM_DATA","MISSION_ITEM_INT","MISSION_ITEM_INT_DATA","MISSION_ITEM_REACHED","MISSION_ITEM_REACHED_DATA","MISSION_READ_PERSISTENT","MISSION_REQUEST","MISSION_REQUEST_DATA","MISSION_REQUEST_INT","MISSION_REQUEST_INT_DATA","MISSION_REQUEST_LIST","MISSION_REQUEST_LIST_DATA","MISSION_REQUEST_PARTIAL_LIST","MISSION_REQUEST_PARTIAL_LIST_DATA","MISSION_RESET_DEFAULT","MISSION_SET_CURRENT","MISSION_SET_CURRENT_DATA","MISSION_STATE_ACTIVE","MISSION_STATE_COMPLETE","MISSION_STATE_NOT_STARTED","MISSION_STATE_NO_MISSION","MISSION_STATE_PAUSED","MISSION_STATE_UNKNOWN","MISSION_WRITE_PARTIAL_LIST","MISSION_WRITE_PARTIAL_LIST_DATA","MISSION_WRITE_PERSISTENT","MMSI","MOTOR_TEST_COMPASS_CAL","MOTOR_TEST_ORDER_BOARD","MOTOR_TEST_ORDER_DEFAULT","MOTOR_TEST_ORDER_SEQUENCE","MOTOR_TEST_THROTTLE_PERCENT","MOTOR_TEST_THROTTLE_PILOT","MOTOR_TEST_THROTTLE_PWM","MOUNT_ORIENTATION","MOUNT_ORIENTATION_DATA","MagCalStatus","MavArmAuthDeniedReason","MavAutopilot","MavBatteryChargeState","MavBatteryFault","MavBatteryFunction","MavBatteryMode","MavBatteryType","MavCmd","MavCmdAck","MavCollisionAction","MavCollisionSrc","MavCollisionThreatLevel","MavComponent","MavDataStream","MavDistanceSensor","MavDoRepositionFlags","MavEstimatorType","MavEventCurrentSequenceFlags","MavEventErrorReason","MavFrame","MavFtpErr","MavFtpOpcode","MavGeneratorStatusFlag","MavGoto","MavLandedState","MavMessage","MavMissionResult","MavMissionType","MavMode","MavModeFlag","MavModeFlagDecodePosition","MavMountMode","MavOdidArmStatus","MavOdidAuthType","MavOdidCategoryEu","MavOdidClassEu","MavOdidClassificationType","MavOdidDescType","MavOdidHeightRef","MavOdidHorAcc","MavOdidIdType","MavOdidOperatorIdType","MavOdidOperatorLocationType","MavOdidSpeedAcc","MavOdidStatus","MavOdidTimeAcc","MavOdidUaType","MavOdidVerAcc","MavParamExtType","MavParamType","MavPowerStatus","MavProtocolCapability","MavResult","MavRoi","MavSensorOrientation","MavSeverity","MavState","MavSysStatusSensor","MavSysStatusSensorExtended","MavTunnelPayloadType","MavType","MavVtolState","MavWinchStatusFlag","MavlinkDataStreamType","MissionState","MotorTestOrder","MotorTestThrottleType","NAMED_VALUE_FLOAT","NAMED_VALUE_FLOAT_DATA","NAMED_VALUE_INT","NAMED_VALUE_INT_DATA","NAV_CONTROLLER_OUTPUT","NAV_CONTROLLER_OUTPUT_DATA","NAV_VTOL_LAND_OPTIONS_DEFAULT","NAV_VTOL_LAND_OPTIONS_FW_DESCENT","NAV_VTOL_LAND_OPTIONS_HOVER_DESCENT","NavVtolLandOptions","OBSTACLE_DISTANCE","OBSTACLE_DISTANCE_DATA","ODOMETRY","ODOMETRY_DATA","ONBOARD_COMPUTER_STATUS","ONBOARD_COMPUTER_STATUS_DATA","OPEN_DRONE_ID_ARM_STATUS","OPEN_DRONE_ID_ARM_STATUS_DATA","OPEN_DRONE_ID_AUTHENTICATION","OPEN_DRONE_ID_AUTHENTICATION_DATA","OPEN_DRONE_ID_BASIC_ID","OPEN_DRONE_ID_BASIC_ID_DATA","OPEN_DRONE_ID_LOCATION","OPEN_DRONE_ID_LOCATION_DATA","OPEN_DRONE_ID_MESSAGE_PACK","OPEN_DRONE_ID_MESSAGE_PACK_DATA","OPEN_DRONE_ID_OPERATOR_ID","OPEN_DRONE_ID_OPERATOR_ID_DATA","OPEN_DRONE_ID_SELF_ID","OPEN_DRONE_ID_SELF_ID_DATA","OPEN_DRONE_ID_SYSTEM","OPEN_DRONE_ID_SYSTEM_DATA","OPEN_DRONE_ID_SYSTEM_UPDATE","OPEN_DRONE_ID_SYSTEM_UPDATE_DATA","OPTICAL_FLOW","OPTICAL_FLOW_DATA","OPTICAL_FLOW_RAD","OPTICAL_FLOW_RAD_DATA","ORBIT_EXECUTION_STATUS","ORBIT_EXECUTION_STATUS_DATA","ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE","ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER","ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING","ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED","ORBIT_YAW_BEHAVIOUR_UNCONTROLLED","OrbitYawBehaviour","PARACHUTE_DISABLE","PARACHUTE_ENABLE","PARACHUTE_RELEASE","PARAM_ACK_ACCEPTED","PARAM_ACK_FAILED","PARAM_ACK_IN_PROGRESS","PARAM_ACK_VALUE_UNSUPPORTED","PARAM_EXT_ACK","PARAM_EXT_ACK_DATA","PARAM_EXT_REQUEST_LIST","PARAM_EXT_REQUEST_LIST_DATA","PARAM_EXT_REQUEST_READ","PARAM_EXT_REQUEST_READ_DATA","PARAM_EXT_SET","PARAM_EXT_SET_DATA","PARAM_EXT_VALUE","PARAM_EXT_VALUE_DATA","PARAM_MAP_RC","PARAM_MAP_RC_DATA","PARAM_READ_PERSISTENT","PARAM_REQUEST_LIST","PARAM_REQUEST_LIST_DATA","PARAM_REQUEST_READ","PARAM_REQUEST_READ_DATA","PARAM_RESET_ALL_DEFAULT","PARAM_RESET_CONFIG_DEFAULT","PARAM_RESET_SENSOR_DEFAULT","PARAM_SET","PARAM_SET_DATA","PARAM_VALUE","PARAM_VALUE_DATA","PARAM_WRITE_PERSISTENT","PING","PING_DATA","PLAY_TUNE","PLAY_TUNE_DATA","PLAY_TUNE_V2","PLAY_TUNE_V2_DATA","POSITION_TARGET_GLOBAL_INT","POSITION_TARGET_GLOBAL_INT_DATA","POSITION_TARGET_LOCAL_NED","POSITION_TARGET_LOCAL_NED_DATA","POSITION_TARGET_TYPEMASK_AX_IGNORE","POSITION_TARGET_TYPEMASK_AY_IGNORE","POSITION_TARGET_TYPEMASK_AZ_IGNORE","POSITION_TARGET_TYPEMASK_FORCE_SET","POSITION_TARGET_TYPEMASK_VX_IGNORE","POSITION_TARGET_TYPEMASK_VY_IGNORE","POSITION_TARGET_TYPEMASK_VZ_IGNORE","POSITION_TARGET_TYPEMASK_X_IGNORE","POSITION_TARGET_TYPEMASK_YAW_IGNORE","POSITION_TARGET_TYPEMASK_YAW_RATE_IGNORE","POSITION_TARGET_TYPEMASK_Y_IGNORE","POSITION_TARGET_TYPEMASK_Z_IGNORE","POWER_STATUS","POWER_STATUS_DATA","PRECISION_LAND_MODE_DISABLED","PRECISION_LAND_MODE_OPPORTUNISTIC","PRECISION_LAND_MODE_REQUIRED","PROTOCOL_VERSION","PROTOCOL_VERSION_DATA","ParachuteAction","ParamAck","PositionTargetTypemask","PrecisionLandMode","PreflightStorageMissionAction","PreflightStorageParameterAction","RADIO_STATUS","RADIO_STATUS_DATA","RAW_IMU","RAW_IMU_DATA","RAW_PRESSURE","RAW_PRESSURE_DATA","RAW_RPM","RAW_RPM_DATA","RC_CHANNELS","RC_CHANNELS_DATA","RC_CHANNELS_OVERRIDE","RC_CHANNELS_OVERRIDE_DATA","RC_CHANNELS_RAW","RC_CHANNELS_RAW_DATA","RC_CHANNELS_SCALED","RC_CHANNELS_SCALED_DATA","RC_TYPE_SPEKTRUM_DSM2","RC_TYPE_SPEKTRUM_DSMX","REQUEST_DATA_STREAM","REQUEST_DATA_STREAM_DATA","REQUEST_EVENT","REQUEST_EVENT_DATA","RESOURCE_REQUEST","RESOURCE_REQUEST_DATA","RESPONSE_EVENT_ERROR","RESPONSE_EVENT_ERROR_DATA","RTK_BASELINE_COORDINATE_SYSTEM_ECEF","RTK_BASELINE_COORDINATE_SYSTEM_NED","RcType","RtkBaselineCoordinateSystem","SAFETY_ALLOWED_AREA","SAFETY_ALLOWED_AREA_DATA","SAFETY_SET_ALLOWED_AREA","SAFETY_SET_ALLOWED_AREA_DATA","SCALED_IMU","SCALED_IMU2","SCALED_IMU2_DATA","SCALED_IMU3","SCALED_IMU3_DATA","SCALED_IMU_DATA","SCALED_PRESSURE","SCALED_PRESSURE2","SCALED_PRESSURE2_DATA","SCALED_PRESSURE3","SCALED_PRESSURE3_DATA","SCALED_PRESSURE_DATA","SERIAL_CONTROL","SERIAL_CONTROL_DATA","SERIAL_CONTROL_DEV_GPS1","SERIAL_CONTROL_DEV_GPS2","SERIAL_CONTROL_DEV_SHELL","SERIAL_CONTROL_DEV_TELEM1","SERIAL_CONTROL_DEV_TELEM2","SERIAL_CONTROL_FLAG_BLOCKING","SERIAL_CONTROL_FLAG_EXCLUSIVE","SERIAL_CONTROL_FLAG_MULTI","SERIAL_CONTROL_FLAG_REPLY","SERIAL_CONTROL_FLAG_RESPOND","SERIAL_CONTROL_SERIAL0","SERIAL_CONTROL_SERIAL1","SERIAL_CONTROL_SERIAL2","SERIAL_CONTROL_SERIAL3","SERIAL_CONTROL_SERIAL4","SERIAL_CONTROL_SERIAL5","SERIAL_CONTROL_SERIAL6","SERIAL_CONTROL_SERIAL7","SERIAL_CONTROL_SERIAL8","SERIAL_CONTROL_SERIAL9","SERVO_OUTPUT_RAW","SERVO_OUTPUT_RAW_DATA","SETUP_SIGNING","SETUP_SIGNING_DATA","SET_ACTUATOR_CONTROL_TARGET","SET_ACTUATOR_CONTROL_TARGET_DATA","SET_ATTITUDE_TARGET","SET_ATTITUDE_TARGET_DATA","SET_GPS_GLOBAL_ORIGIN","SET_GPS_GLOBAL_ORIGIN_DATA","SET_HOME_POSITION","SET_HOME_POSITION_DATA","SET_MODE","SET_MODE_DATA","SET_POSITION_TARGET_GLOBAL_INT","SET_POSITION_TARGET_GLOBAL_INT_DATA","SET_POSITION_TARGET_LOCAL_NED","SET_POSITION_TARGET_LOCAL_NED_DATA","SIM_STATE","SIM_STATE_DATA","SMART_BATTERY_INFO","SMART_BATTERY_INFO_DATA","STATUSTEXT","STATUSTEXT_DATA","STORAGE_INFORMATION","STORAGE_INFORMATION_DATA","STORAGE_STATUS_EMPTY","STORAGE_STATUS_NOT_SUPPORTED","STORAGE_STATUS_READY","STORAGE_STATUS_UNFORMATTED","STORAGE_TYPE_CF","STORAGE_TYPE_CFE","STORAGE_TYPE_HD","STORAGE_TYPE_MICROSD","STORAGE_TYPE_OTHER","STORAGE_TYPE_SD","STORAGE_TYPE_UNKNOWN","STORAGE_TYPE_USB_STICK","STORAGE_TYPE_XQD","STORAGE_USAGE_FLAG_LOGS","STORAGE_USAGE_FLAG_PHOTO","STORAGE_USAGE_FLAG_SET","STORAGE_USAGE_FLAG_VIDEO","SUPPORTED_TUNES","SUPPORTED_TUNES_DATA","SYSTEM_TIME","SYSTEM_TIME_DATA","SYS_STATUS","SYS_STATUS_DATA","SerialControlDev","SerialControlFlag","SetFocusType","StorageStatus","StorageType","StorageUsageFlag","TERRAIN_CHECK","TERRAIN_CHECK_DATA","TERRAIN_DATA","TERRAIN_DATA_DATA","TERRAIN_REPORT","TERRAIN_REPORT_DATA","TERRAIN_REQUEST","TERRAIN_REQUEST_DATA","TIMESYNC","TIMESYNC_DATA","TIME_ESTIMATE_TO_TARGET","TIME_ESTIMATE_TO_TARGET_DATA","TRAJECTORY_REPRESENTATION_BEZIER","TRAJECTORY_REPRESENTATION_BEZIER_DATA","TRAJECTORY_REPRESENTATION_WAYPOINTS","TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA","TUNE_FORMAT_MML_MODERN","TUNE_FORMAT_QBASIC1_1","TUNNEL","TUNNEL_DATA","TuneFormat","UAVCAN_NODE_HEALTH_CRITICAL","UAVCAN_NODE_HEALTH_ERROR","UAVCAN_NODE_HEALTH_OK","UAVCAN_NODE_HEALTH_WARNING","UAVCAN_NODE_INFO","UAVCAN_NODE_INFO_DATA","UAVCAN_NODE_MODE_INITIALIZATION","UAVCAN_NODE_MODE_MAINTENANCE","UAVCAN_NODE_MODE_OFFLINE","UAVCAN_NODE_MODE_OPERATIONAL","UAVCAN_NODE_MODE_SOFTWARE_UPDATE","UAVCAN_NODE_STATUS","UAVCAN_NODE_STATUS_DATA","UAVIONIX_ADSB_OUT_CFG","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L15M_W23M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25M_W28P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25_34M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_33M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_38M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_39P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_45M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_45M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_52M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_59P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_67M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W72P5M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W80M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W80M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W90M","UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_NO_DATA","UAVIONIX_ADSB_OUT_CFG_DATA","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_2M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_4M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_6M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_NO_DATA","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_0M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_2M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_4M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_6M","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_APPLIED_BY_SENSOR","UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_NO_DATA","UAVIONIX_ADSB_OUT_DOWNED_AIRCRAFT_EMERGENCY","UAVIONIX_ADSB_OUT_DYNAMIC","UAVIONIX_ADSB_OUT_DYNAMIC_DATA","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_2D","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_3D","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_DGPS","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_0","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_1","UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_RTK","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_AUTOPILOT_ENABLED","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_IDENT","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_NICBARO_CROSSCHECKED","UAVIONIX_ADSB_OUT_DYNAMIC_STATE_ON_GROUND","UAVIONIX_ADSB_OUT_GENERAL_EMERGENCY","UAVIONIX_ADSB_OUT_LIFEGUARD_EMERGENCY","UAVIONIX_ADSB_OUT_MINIMUM_FUEL_EMERGENCY","UAVIONIX_ADSB_OUT_NO_COMM_EMERGENCY","UAVIONIX_ADSB_OUT_NO_EMERGENCY","UAVIONIX_ADSB_OUT_RESERVED","UAVIONIX_ADSB_OUT_RF_SELECT_RX_ENABLED","UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY","UAVIONIX_ADSB_OUT_RF_SELECT_TX_ENABLED","UAVIONIX_ADSB_OUT_UNLAWFUL_INTERFERANCE_EMERGENCY","UAVIONIX_ADSB_RF_HEALTH_FAIL_RX","UAVIONIX_ADSB_RF_HEALTH_FAIL_TX","UAVIONIX_ADSB_RF_HEALTH_INITIALIZING","UAVIONIX_ADSB_RF_HEALTH_OK","UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT","UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA","UNDER_WAY","UTM_DATA_AVAIL_FLAGS_ALTITUDE_AVAILABLE","UTM_DATA_AVAIL_FLAGS_HORIZONTAL_VELO_AVAILABLE","UTM_DATA_AVAIL_FLAGS_NEXT_WAYPOINT_AVAILABLE","UTM_DATA_AVAIL_FLAGS_POSITION_AVAILABLE","UTM_DATA_AVAIL_FLAGS_RELATIVE_ALTITUDE_AVAILABLE","UTM_DATA_AVAIL_FLAGS_TIME_VALID","UTM_DATA_AVAIL_FLAGS_UAS_ID_AVAILABLE","UTM_DATA_AVAIL_FLAGS_VERTICAL_VELO_AVAILABLE","UTM_FLIGHT_STATE_AIRBORNE","UTM_FLIGHT_STATE_EMERGENCY","UTM_FLIGHT_STATE_GROUND","UTM_FLIGHT_STATE_NOCTRL","UTM_FLIGHT_STATE_UNKNOWN","UTM_GLOBAL_POSITION","UTM_GLOBAL_POSITION_DATA","UavcanNodeHealth","UavcanNodeMode","UavionixAdsbEmergencyStatus","UavionixAdsbOutCfgAircraftSize","UavionixAdsbOutCfgGpsOffsetLat","UavionixAdsbOutCfgGpsOffsetLon","UavionixAdsbOutDynamicGpsFix","UavionixAdsbOutDynamicState","UavionixAdsbOutRfSelect","UavionixAdsbRfHealth","UtmDataAvailFlags","UtmFlightState","V2_EXTENSION","V2_EXTENSION_DATA","VFR_HUD","VFR_HUD_DATA","VIBRATION","VIBRATION_DATA","VICON_POSITION_ESTIMATE","VICON_POSITION_ESTIMATE_DATA","VIDEO_STREAM_INFORMATION","VIDEO_STREAM_INFORMATION_DATA","VIDEO_STREAM_STATUS","VIDEO_STREAM_STATUS_DATA","VIDEO_STREAM_STATUS_FLAGS_RUNNING","VIDEO_STREAM_STATUS_FLAGS_THERMAL","VIDEO_STREAM_TYPE_MPEG_TS_H264","VIDEO_STREAM_TYPE_RTPUDP","VIDEO_STREAM_TYPE_RTSP","VIDEO_STREAM_TYPE_TCP_MPEG","VISION_POSITION_ESTIMATE","VISION_POSITION_ESTIMATE_DATA","VISION_SPEED_ESTIMATE","VISION_SPEED_ESTIMATE_DATA","VTOL_TRANSITION_HEADING_ANY","VTOL_TRANSITION_HEADING_NEXT_WAYPOINT","VTOL_TRANSITION_HEADING_SPECIFIED","VTOL_TRANSITION_HEADING_TAKEOFF","VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT","Vcc","VelEW","VideoStreamStatusFlags","VideoStreamType","Vservo","VtolTransitionHeading","WHEEL_DISTANCE","WHEEL_DISTANCE_DATA","WIFI_CONFIG_AP","WIFI_CONFIG_AP_DATA","WIFI_CONFIG_AP_MODE_AP","WIFI_CONFIG_AP_MODE_DISABLED","WIFI_CONFIG_AP_MODE_STATION","WIFI_CONFIG_AP_MODE_UNDEFINED","WIFI_CONFIG_AP_RESPONSE_ACCEPTED","WIFI_CONFIG_AP_RESPONSE_MODE_ERROR","WIFI_CONFIG_AP_RESPONSE_PASSWORD_ERROR","WIFI_CONFIG_AP_RESPONSE_REJECTED","WIFI_CONFIG_AP_RESPONSE_SSID_ERROR","WIFI_CONFIG_AP_RESPONSE_UNDEFINED","WINCH_ABANDON_LINE","WINCH_DELIVER","WINCH_HOLD","WINCH_LOAD_LINE","WINCH_LOAD_PAYLOAD","WINCH_LOCK","WINCH_RATE_CONTROL","WINCH_RELATIVE_LENGTH_CONTROL","WINCH_RELAXED","WINCH_RETRACT","WINCH_STATUS","WINCH_STATUS_DATA","WIND_COV","WIND_COV_DATA","WifiConfigApMode","WifiConfigApResponse","WinchActions","ZOOM_TYPE_CONTINUOUS","ZOOM_TYPE_FOCAL_LENGTH","ZOOM_TYPE_RANGE","ZOOM_TYPE_STEP","abs_pressure","abs_pressure","acc","acc_x","acc_y","acc_z","accuracy","accuracy","accuracyHor","accuracyVel","accuracyVert","ack","action","active","actuator","address","afx","afx","afx","afx","afy","afy","afy","afy","afz","afz","afz","afz","aircraftSize","airspeed","airspeed","airspeed","airspeed","airspeed_sp","airspeed_sp","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","all","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt","alt_camera","alt_error","alt_image","altitude","altitude","altitude","altitude","altitude","altitude","altitude_amsl","altitude_amsl","altitude_barometric","altitude_geodetic","altitude_local","altitude_minimum_delta","altitude_monotonic","altitude_relative","altitude_sp","altitude_terrain","altitude_type","angle_x","angle_y","angular_velocity_x","angular_velocity_x","angular_velocity_x","angular_velocity_y","angular_velocity_y","angular_velocity_y","angular_velocity_z","angular_velocity_z","angular_velocity_z","apn","approach_x","approach_x","approach_y","approach_y","approach_z","approach_z","area_ceiling","area_count","area_floor","area_radius","arguments","arming_time_utc","array_id","aspd_error","attitude_q","attitude_quaternion","authentication_data","authentication_type","autocontinue","autocontinue","autocontinue","autopilot","autopilot","autosaved","aux1","aux2","aux3","aux4","available_capacity","available_capacity","ax","ay","az","baroAltMSL","barometer_accuracy","barometric_pressure","base_mode","base_mode","base_mode","baseline_a_mm","baseline_a_mm","baseline_b_mm","baseline_b_mm","baseline_c_mm","baseline_c_mm","baseline_coords_type","baseline_coords_type","bat_current_setpoint","battery","battery_current","battery_function","battery_function","battery_remaining","battery_remaining","battery_remaining","baudrate","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitor_assign","bitrate","bitrate","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bits","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","bitxor_assign","board_version","body_pitch_rate","body_pitch_rate","body_roll_rate","body_roll_rate","body_yaw_rate","body_yaw_rate","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bottom_clearance","breach_count","breach_status","breach_time","breach_type","bus","bus","bus","bus_voltage","buttons","cal_mask","cal_status","callsign","callsign","callsign","cam_definition_uri","cam_definition_version","camera_id","cap_flags","cap_flags","capabilities","capacity_full","capacity_full_specification","capture_result","category_eu","chan10_raw","chan10_raw","chan11_raw","chan11_raw","chan12_raw","chan12_raw","chan13_raw","chan14_raw","chan15_raw","chan16_raw","chan17_raw","chan18_raw","chan1_raw","chan1_raw","chan1_raw","chan1_raw","chan1_scaled","chan2_raw","chan2_raw","chan2_raw","chan2_raw","chan2_scaled","chan3_raw","chan3_raw","chan3_raw","chan3_raw","chan3_scaled","chan4_raw","chan4_raw","chan4_raw","chan4_raw","chan4_scaled","chan5_raw","chan5_raw","chan5_raw","chan5_raw","chan5_scaled","chan6_raw","chan6_raw","chan6_raw","chan6_raw","chan6_scaled","chan7_raw","chan7_raw","chan7_raw","chan7_raw","chan7_scaled","chan8_raw","chan8_raw","chan8_raw","chan8_raw","chan8_scaled","chan9_raw","chan9_raw","chancount","charging_minimum_voltage","child_frame_id","class_eu","classification_type","climb","climb_rate","climb_rate","clipping_0","clipping_1","clipping_2","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cog","cog","cog","command","command","command","command","command","command","command","commanded_action","compass_id","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","complement","confirmation","connection_type","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","contains","control_request","control_request","controls","controls","controls","coordinate_frame","coordinate_frame","coordinate_frame","coordinate_frame","count","count","count","count","count","count","count","counter","covariance","covariance","covariance","covariance","cpu_combined","cpu_cores","current","current","current","current","current","current_battery","current_battery","current_consumed","current_distance","current_height","custom0","custom1","custom2","custom_cap_flags","custom_mode","custom_mode","custom_mode","custom_mode","custom_name","custom_state","cycle_count","cylinder_head_temperature","data","data","data","data","data","data","data","data","data","data","data_page","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default_message_from_id","delta","description","description_type","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deser","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","destination_component","destination_system","device","device_name","dgps_age","dgps_numch","diag_x","diag_y","diag_z","diff_pressure","diff_pressure","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","difference","dimension_bow","dimension_port","dimension_starboard","dimension_stern","direction","discharge_minimum_voltage","dist","distance","distance","distance","distance","distances","drop_rate_comm","ecu_index","emergencyStatus","emitterType","emitter_type","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","enable_lte","enable_pin","end","end_index","end_index","energy_consumed","engine_load","eph","eph","eph","eph","epv","epv","epv","epv","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","error","error_count","errors_comm","errors_count1","errors_count2","errors_count3","errors_count4","est_capabilities","estimator_status","estimator_type","estimator_type","event_time_boot_ms","exhaust_gas_temperature","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend","extra_crc","failed_sessions","failsafe","failure_flags","failure_flags","failure_flags","failure_reason","fan_speed","feed_forward_angular_velocity_z","fields_updated","fields_updated","file_crc","file_url","firmware_version","firmware_version","first_message_offset","first_message_offset","first_sequence","fitness","fix_type","fix_type","fix_type","fix_type","fixed","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flags","flight_custom_version","flight_state","flight_sw_version","flight_uuid","flow_comp_m_x","flow_comp_m_y","flow_x","flow_y","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","focal_length","format","format","frame","frame","frame","frame","frame","frame","frame","frame_id","framerate","framerate","frequency","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_i64","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","from_u64","fuel_consumed","fuel_flow","gcs_system_id","general_metadata_file_crc","general_metadata_uri","generator_speed","generator_temperature","gimbal_device_id","gimbal_device_id","gimbal_device_id","gimbal_device_id","gimbal_device_id","gpsAlt","gpsFix","gpsLat","gpsLon","gpsOffsetLat","gpsOffsetLon","gps_fix_type","gps_id","gps_nsat","gpu_combined","gpu_cores","grid_spacing","grid_spacing","gridbit","ground_distance","groundspeed","groundspeed","groundspeed","group_mlx","group_mlx","h_acc","h_acc","hagl_ratio","hardware_version","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hdg","hdg","hdg_acc","hdop","heading","heading","heading","heading","heading","heading_sp","health","health","height","height","height_reference","hfov","hfov","hfov","hor_velocity","horiz_accuracy","horiz_accuracy","horizontal_accuracy","horizontal_minimum_delta","humidity","hw_unique_id","hw_version_major","hw_version_minor","iar_num_hypotheses","iar_num_hypotheses","id","id","id","id","id","id","id","id","id","id","id","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_or_mac","id_type","ids","ignition_timing","ignore_flags","image_index","image_interval","image_status","increment","ind","ind_airspeed","index","index","index","info","initial_timestamp","injection_time","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","insert","intake_manifold_pressure","intake_manifold_temperature","integrated_x","integrated_x","integrated_xgyro","integrated_xgyro","integrated_y","integrated_y","integrated_ygyro","integrated_ygyro","integrated_zgyro","integrated_zgyro","integration_time_us","integration_time_us","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersection","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","intersects","interval_us","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_all","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","jpg_quality","key","lac","land","landed_state","landed_state","landed_state","last_change_ms","last_heartbeat","last_log_num","last_page_index","last_sequence","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat","lat_camera","lat_image","lat_int","lat_int","latitude","latitude","latitude","latitude","latitude","latitude","latitude","len","len","len","len","length","length","length","lens_id","library_version_hash","line_length","link_rx_max","link_rx_rate","link_tx_max","link_tx_rate","link_type","load","load_current","loaded","log_levels","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon","lon_camera","lon_image","lon_int","lon_int","longitude","longitude","longitude","longitude","longitude","longitude","longitude","mag_ratio","manual_override_switch","mask","mavlink_version","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","mavtype","max_distance","max_distance","max_version","mcc","message_id","message_id","message_id_from_name","message_name","message_rate","message_type","messages","messages_lost","messages_received","messages_sent","middleware_custom_version","middleware_sw_version","min_distance","min_distance","min_version","mission_end","mission_next_item","mnc","mode","mode","mode","mode_id","mode_switch","model_name","model_name","msg_pack_size","name","name","name","name","name","name","name","nav_bearing","nav_mode","nav_pitch","nav_roll","navigational_status","new_pin","next_alt","next_lat","next_lon","noise","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","not","nsats","nsats","numSats","num_ids","num_logs","offdiag_x","offdiag_y","offdiag_z","ofs","ofs","ofs_x","ofs_y","ofs_z","on_off","onboard_control_sensors_enabled","onboard_control_sensors_health","onboard_control_sensors_present","operation","operator_altitude_geo","operator_altitude_geo","operator_id","operator_id_type","operator_latitude","operator_latitude","operator_location_type","operator_longitude","operator_longitude","orientation","os_custom_version","os_sw_version","p1x","p1x","p1y","p1y","p1z","p1z","p2x","p2x","p2y","p2y","p2z","p2z","packets","param1","param1","param1","param1","param2","param2","param2","param2","param3","param3","param3","param3","param4","param4","param4","param4","param5","param6","param7","param_count","param_count","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_id","param_index","param_index","param_index","param_index","param_index","param_result","param_type","param_type","param_type","param_type","param_type","param_value","param_value","param_value","param_value","param_value","param_value0","param_value_max","param_value_min","parameter_rc_channel_index","parse","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","passkey","password","payload","payload","payload","payload","payload_length","payload_type","pending","peripherals_metadata_file_crc","peripherals_metadata_uri","pin","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch","pitch_elevator","pitch_max","pitch_max","pitch_min","pitch_min","pitch_rate","pitch_rate","pitch_rate","pitchspeed","pitchspeed","pitchspeed","pitchspeed","pitchspeed","pitchspeed","point_x","point_y","port","port","port","pos_horiz_accuracy","pos_horiz_ratio","pos_variance","pos_vert_accuracy","pos_vert_ratio","pos_x","pos_x","pos_y","pos_y","pos_yaw","pos_yaw","pos_z","pos_z","pose_covariance","position_cov","power_generated","press_abs","press_abs","press_abs","press_abs","press_diff","press_diff","press_diff","press_diff1","press_diff2","pressure_alt","pressure_alt","primary_control_compid","primary_control_sysid","product_id","pt_compensation","puk","q","q","q","q","q","q","q","q","q","q","q","q","q","q","q1","q1","q2","q2","q3","q3","q4","q4","q_estimated_delay_us","quality","quality","quality","quality","r","radius","radius","ram_total","ram_usage","rates","read_speed","reason","rec_bottom_x","rec_bottom_y","rec_top_x","rec_top_y","recording_time_ms","rectifier_temperature","relative_alt","relative_alt","relative_alt","relative_alt","remnoise","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remove","remrssi","req_message_rate","req_stream_id","request_id","resolution_h","resolution_h","resolution_h","resolution_v","resolution_v","resolution_v","response","resting_minimum_voltage","result","rfHealth","rfSelect","ring_pending","roaming","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll","roll_ailerons","roll_max","roll_max","roll_min","roll_min","roll_rate","rollspeed","rollspeed","rollspeed","rollspeed","rollspeed","rollspeed","rotation","rotation","rpm","rpm","rssi","rssi","rssi","rssi","rssi","rtk_health","rtk_health","rtk_rate","rtk_rate","rtk_receiver_id","rtk_receiver_id","runtime","rx_buf","rx_overflows","rx_parse_err","rx_rate","rx_session_pending","rxerrors","safe_return","satellite_azimuth","satellite_elevation","satellite_prn","satellite_snr","satellite_used","satellites_visible","satellites_visible","satellites_visible","satellites_visible","satellites_visible","scale","secondary_control_compid","secondary_control_sysid","secret_key","sensor_id","sensor_id","sensor_id","sensor_size_h","sensor_size_v","sensor_type","seq","seq","seq","seq","seq","seq","seq","seq","seq","seqnr","sequence","sequence","sequence","sequence","sequence","sequence","sequence_oldest_available","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","ser","serial_number","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","servo1_raw","servo2_raw","servo3_raw","servo4_raw","servo5_raw","servo6_raw","servo7_raw","servo8_raw","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","set","severity","signal_quality","single_message_size","size","size","size_x","size_y","spacing","spark_dwell_time","spec_version_hash","speed","speed_accuracy","speed_accuracy","speed_horizontal","speed_vertical","squawk","squawk","src","ssid","stallSpeed","start","start_index","start_index","start_stop","state","state","status","status","status","status","status","status","std_dev_horz","std_dev_vert","storage","storage_count","storage_id","storage_total","storage_type","storage_usage","stream_id","stream_id","stream_id","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_mode","successful_sessions","sw_vcs_commit","sw_version_major","sw_version_minor","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","symmetric_difference","system_status","takeoff_time_utc","target","target_altitude","target_bearing","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_component","target_data","target_distance","target_heading","target_network","target_network","target_num","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","target_system","tas_ratio","tc1","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature","temperature_air","temperature_air","temperature_board","temperature_core","tension","terrain_height","text","threat_level","throttle","throttle","throttle","throttle","throttle_out","throttle_position","thrust","thrust","thrust","time","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_ms","time_boot_us","time_delta_distance_us","time_delta_distance_us","time_last_baseline_ms","time_last_baseline_ms","time_to_minimum_delta","time_unix_usec","time_until_maintenance","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_usec","time_utc","time_utc","time_week","time_week_ms","timeout","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp_accuracy","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_i64","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","to_u64","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","toggle","total_capacity","tow","tow","tracking_mode","tracking_status","tracking_status","transfer_type","true_airspeed","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","ts1","tslc","tslc","tune","tune","turn_rate","tx_buf","tx_overflows","tx_rate","tx_session_pending","txbuf","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_mask","type_mask","type_mask","type_mask","type_mask","type_mask","ua_type","uas_id","uas_id","uid","uid","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","union","update_rate","uptime","uptime_sec","uptime_sec","uri","uri","uri","uri_type","usec","usec","usec","usec","used_capacity","utcTime","v_acc","v_acc","v_estimated_delay_us","valid_points","valid_points","value","value","value","value","var_horiz","var_vert","vd","vd","vd","vdop","ve","ve","ve","vel","vel","vel","vel","velNS","velVert","vel_acc","vel_acc","vel_d","vel_e","vel_n","vel_ratio","vel_variance","vel_x","vel_y","vel_yaw","vel_z","velocity","velocity_covariance","vendor_id","vendor_name","vendor_name","vendor_specific_status_code","ver","ver_velocity","version","version","vert_accuracy","vert_accuracy","vertical_accuracy","vfov","vibration_x","vibration_y","vibration_z","video_status","vn","vn","vn","voltage","voltage","voltage_battery","voltages","vtol_state","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vx","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vy","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","vz","weight","width","wind_alt","wind_heading","wind_x","wind_y","wind_z","windspeed","wn","wn","wp_dist","wp_distance","wp_num","wp_num","write_speed","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x_acc","x_pos","x_vel","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xacc","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xgyro","xmag","xmag","xmag","xmag","xmag","xmag","xtrack_error","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y","y_acc","y_pos","y_vel","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yacc","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw","yaw_max","yaw_max","yaw_min","yaw_min","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rate","yaw_rudder","yawspeed","yawspeed","yawspeed","yawspeed","yawspeed","yawspeed","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ygyro","ymag","ymag","ymag","ymag","ymag","ymag","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z_acc","z_pos","z_vel","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zacc","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zgyro","zmag","zmag","zmag","zmag","zmag","zmag","remove_trailing_zeroes"],"q":[[0,"mavlink"],[156,"mavlink::ardupilotmega"],[15498,"mavlink::bytes"],[15522,"mavlink::bytes_mut"],[15547,"mavlink::common"],[27060,"mavlink::error"],[27102,"mavlink::error::ParserError"],[27107,"mavlink::icarous"],[27239,"mavlink::peek_reader"],[27254,"mavlink::uavionix"],[39174,"mavlink::utils"],[39175,"mavlink_core"],[39176,"core::clone"],[39177,"mavlink_core::connection"],[39178,"alloc::boxed"],[39179,"std::io::error"],[39180,"core::result"],[39181,"mavlink_core::error"],[39182,"serde::de"],[39183,"core::fmt"],[39184,"mavlink_core::peek_reader"],[39185,"std::io"],[39186,"serde::ser"],[39187,"core::any"],[39188,"core::cmp"],[39189,"core::iter::traits::collect"],[39190,"core::option"],[39191,"core::hash"],[39192,"mavlink_core::bytes"],[39193,"mavlink_core::bytes_mut"],[39194,"alloc::string"],[39195,"mavlink_core::utils"]],"i":[21,21,21,0,0,0,0,0,0,0,0,0,0,21,0,21,9,9,0,8,9,10,6,7,8,9,10,6,7,0,0,0,6,7,8,9,10,6,7,8,9,10,6,7,0,7,6,7,8,0,8,6,7,12,21,10,8,8,9,6,7,0,12,8,9,10,6,7,8,9,10,6,7,15,6,7,10,6,7,10,0,7,8,9,10,6,7,12,6,7,12,12,10,6,7,12,6,7,6,7,0,10,6,7,0,0,0,0,0,15,15,15,15,15,6,7,8,12,21,10,8,9,10,6,7,6,7,15,6,7,8,8,9,10,6,7,8,9,10,6,7,8,9,10,6,7,8,9,10,6,7,0,0,0,0,0,411,411,411,411,411,411,411,411,377,377,377,377,377,377,71,0,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,71,0,71,0,413,413,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,62,62,62,62,62,62,62,62,62,62,71,0,71,71,0,71,0,0,71,0,61,61,61,61,61,61,61,61,61,61,61,61,61,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,71,0,71,0,192,71,0,71,0,71,0,71,71,0,0,71,0,67,67,67,67,67,67,71,0,71,0,71,0,71,0,71,0,524,524,524,524,0,0,0,0,0,0,0,0,0,0,0,71,0,441,71,0,71,0,71,0,58,58,58,58,58,58,58,58,58,58,58,58,71,406,406,0,406,406,406,71,0,71,0,71,0,494,494,494,71,0,71,0,489,489,489,489,489,489,489,71,0,71,0,519,519,519,379,379,379,387,387,387,387,71,0,71,0,484,71,0,484,484,71,0,71,460,0,460,460,460,460,434,434,434,434,432,432,432,432,432,71,0,397,397,397,397,397,397,397,397,397,397,397,397,397,71,71,0,0,215,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,427,427,427,427,427,427,71,0,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,71,0,71,0,71,0,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,135,135,135,0,282,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,392,392,392,392,392,392,392,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,506,506,71,0,71,0,71,0,71,0,71,0,71,0,71,0,0,0,83,71,0,38,38,38,38,38,38,38,38,71,0,38,38,38,71,0,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,447,447,447,447,447,447,55,55,55,55,55,55,55,55,71,0,71,0,71,0,71,0,71,0,46,46,46,46,46,46,46,46,46,46,71,0,46,46,71,0,71,0,0,0,0,0,368,368,368,368,368,368,368,368,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,39,420,420,420,420,420,420,420,420,401,401,401,401,71,0,498,498,498,71,0,71,0,282,71,0,463,463,463,463,463,71,0,417,417,417,417,417,417,417,71,0,0,0,0,0,0,0,71,0,400,400,400,390,390,390,452,452,452,71,0,71,0,66,66,66,66,66,66,66,66,66,66,66,66,66,66,64,64,64,64,64,64,64,64,64,64,65,65,65,65,65,65,65,65,65,65,71,0,71,0,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,487,487,487,487,487,487,487,487,487,487,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,71,0,0,71,0,488,488,488,488,488,488,488,488,488,421,421,421,421,421,421,421,421,404,404,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,383,383,383,60,448,448,448,448,448,448,448,448,448,448,448,448,448,448,71,0,71,0,71,0,503,503,503,503,425,425,425,425,425,462,462,462,462,462,528,528,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,474,474,474,474,474,508,508,508,410,410,410,410,410,469,469,482,482,482,482,482,482,482,482,482,482,482,482,482,482,71,0,71,0,481,71,0,71,0,438,438,438,438,438,438,438,438,438,71,0,71,0,71,0,53,53,53,53,53,53,53,53,71,0,71,0,71,0,71,0,424,424,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,388,388,71,0,71,0,71,0,71,0,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,71,71,0,0,71,0,71,0,71,0,71,0,71,0,71,0,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,71,0,71,0,44,44,44,44,44,44,44,44,44,44,44,44,44,44,71,0,71,0,71,0,0,0,0,0,282,218,326,236,436,436,436,436,436,436,71,0,71,0,440,440,440,71,0,0,0,71,0,461,461,461,461,39,71,0,513,513,513,370,370,370,370,370,71,0,370,45,45,45,71,0,71,71,0,0,71,0,71,0,71,71,0,0,71,0,71,0,71,0,71,0,71,0,71,0,0,0,0,0,375,375,375,375,71,0,71,0,375,375,375,375,71,0,71,0,374,374,374,374,374,374,386,386,386,386,386,386,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,416,416,416,416,416,416,416,416,441,441,441,441,441,441,441,441,439,439,439,439,439,382,382,382,373,373,373,373,373,470,405,405,405,405,405,405,405,405,405,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,445,445,445,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,399,399,399,399,399,399,399,522,522,527,527,527,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,378,378,378,378,378,378,378,378,378,437,437,437,437,437,451,511,511,511,511,511,511,511,511,511,57,523,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,407,407,407,407,407,407,407,407,407,407,407,415,415,415,415,415,415,415,415,415,415,415,415,415,415,415,415,415,415,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,450,450,450,450,402,402,402,402,402,521,521,521,521,521,521,521,521,521,521,521,521,521,521,459,459,459,459,521,521,380,380,47,47,507,507,507,507,507,507,507,507,47,47,47,47,47,47,476,476,476,476,476,476,476,380,380,380,380,380,380,380,380,380,435,435,435,435,435,435,435,512,512,496,496,496,496,496,496,396,396,396,396,493,493,456,456,456,456,456,456,456,456,475,475,475,525,525,516,516,516,516,516,516,516,516,516,516,516,516,516,376,376,376,376,376,514,412,412,412,464,464,464,464,464,483,483,483,483,483,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,414,414,414,414,414,414,414,455,455,455,455,455,455,455,455,455,455,455,492,492,492,492,492,492,492,492,492,492,68,68,68,68,68,68,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,473,473,465,465,458,458,458,458,458,458,458,403,403,403,403,403,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,466,466,466,466,466,466,466,466,393,393,393,393,393,393,393,393,393,51,51,51,51,51,51,517,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,431,431,431,431,431,431,431,431,431,431,431,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,422,422,422,422,422,43,43,43,43,43,43,43,43,43,43,43,43,43,43,71,0,78,78,78,78,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,518,71,0,71,0,71,0,71,0,518,71,0,499,499,499,499,499,499,71,0,518,215,394,515,515,515,394,394,394,71,0,71,0,71,0,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,71,0,71,0,71,0,371,371,371,0,71,71,0,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,477,477,477,477,477,502,71,0,71,0,502,502,502,502,446,446,446,502,502,502,502,71,0,71,0,446,0,0,0,282,430,430,430,526,526,526,526,71,0,71,0,71,0,71,0,71,0,71,0,501,71,0,71,0,501,501,501,71,0,71,0,501,71,468,0,468,468,468,468,468,71,0,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,71,0,71,0,71,0,71,0,41,41,41,41,41,41,41,41,41,41,41,41,71,0,408,408,408,71,0,0,0,83,83,83,0,0,0,0,0,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,495,495,71,0,71,0,71,0,71,0,71,0,71,0,372,372,372,372,372,372,372,372,372,372,372,372,71,0,433,433,0,0,0,0,71,0,71,0,71,71,0,71,0,0,71,71,0,71,0,0,409,409,409,409,71,0,71,0,423,423,423,423,423,42,42,42,42,42,423,423,423,423,423,423,423,423,423,423,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,71,0,509,509,192,71,0,71,0,467,467,467,467,385,385,385,385,385,385,385,385,385,497,497,497,497,472,472,472,472,472,472,472,472,472,71,0,71,0,71,0,0,0,0,0,0,0,0,0,0,71,0,71,0,71,0,71,0,71,0,71,0,418,418,418,418,418,418,71,0,71,0,50,50,71,0,0,0,471,471,471,471,71,0,443,443,443,443,443,71,0,71,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,0,457,457,457,457,457,457,457,457,426,426,391,71,0,490,490,490,490,490,490,40,40,40,40,40,391,391,391,391,391,391,52,52,52,391,48,48,48,48,71,0,429,49,49,49,49,49,49,49,49,505,505,505,505,505,71,0,0,0,0,0,0,0,0,0,0,0,0,0,71,0,71,0,71,0,71,0,71,0,71,0,478,478,444,444,444,444,71,0,71,0,71,0,398,398,398,398,398,218,271,134,0,0,271,0,71,0,71,0,71,0,479,479,479,479,381,381,381,381,381,381,395,395,395,395,395,395,395,395,395,395,71,0,71,71,0,0,0,0,0,442,442,442,442,185,348,74,359,359,359,178,178,178,276,293,336,134,134,134,281,282,173,112,86,86,133,133,133,133,133,133,113,221,225,115,122,175,358,115,122,175,358,115,122,175,358,326,120,244,272,289,120,289,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,74,122,159,164,175,189,190,195,199,234,261,269,272,273,288,299,300,324,345,143,345,105,105,93,109,120,141,205,236,258,303,337,75,289,233,233,75,112,75,75,289,75,236,224,145,145,194,301,361,194,301,361,194,301,361,114,168,258,337,258,337,258,337,109,109,316,316,316,316,208,197,128,143,350,74,199,144,144,76,101,150,120,251,98,312,312,312,312,229,245,334,281,282,334,334,346,134,233,152,151,251,289,293,336,293,336,293,336,293,336,119,120,119,110,155,110,165,289,242,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,90,92,203,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,355,89,351,89,351,89,351,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,75,161,287,161,161,161,269,226,113,138,213,225,241,119,113,225,113,225,174,98,350,98,350,215,236,326,188,188,105,231,203,288,169,250,355,155,155,88,288,316,103,247,103,247,103,247,247,247,247,247,247,247,87,103,177,247,181,87,103,177,247,181,87,103,177,247,181,87,103,177,247,181,87,103,177,247,181,87,103,177,247,181,87,103,177,247,181,87,103,177,247,181,103,247,247,155,127,316,316,272,120,289,166,166,166,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,214,268,298,323,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,159,195,234,76,101,150,238,253,352,359,114,235,311,98,350,220,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,350,350,224,72,222,352,280,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,173,284,123,202,265,115,122,175,358,77,82,90,111,113,129,196,225,242,266,269,280,314,322,335,280,153,163,164,334,79,79,131,109,76,82,101,135,150,256,266,322,363,110,165,295,110,153,182,120,120,120,330,250,330,120,151,251,289,250,74,155,152,113,124,129,138,154,157,196,198,201,213,242,277,325,331,342,347,354,144,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,71,260,81,81,81,81,81,81,81,367,367,367,117,117,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,281,282,208,208,242,155,234,234,98,98,98,83,185,348,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,215,215,215,215,233,255,350,350,350,155,189,126,145,190,278,297,335,216,165,152,346,134,326,236,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,168,168,142,108,274,110,114,152,120,159,195,234,120,159,195,234,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,281,356,280,276,276,165,165,165,165,165,74,344,164,334,231,208,152,109,114,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,114,235,114,235,281,281,204,289,120,194,280,97,79,344,185,348,365,288,188,250,124,198,232,98,159,195,234,273,130,176,88,90,92,100,105,107,125,156,157,188,194,202,215,220,223,236,242,269,271,301,324,361,355,324,355,197,211,211,211,211,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,38,38,38,38,370,371,372,39,39,39,39,39,373,374,40,40,40,40,40,375,376,41,41,41,41,41,377,378,42,42,42,42,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,43,43,43,43,397,398,399,400,401,402,403,404,44,44,44,44,44,45,45,45,45,45,405,406,407,408,46,46,46,46,46,409,47,47,47,47,47,48,48,48,48,48,410,411,412,49,49,49,49,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,50,50,50,50,432,433,434,435,51,51,51,51,51,436,52,52,52,52,52,437,438,439,53,53,53,53,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,54,54,54,54,458,459,55,55,55,55,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,56,56,56,56,483,484,485,486,487,488,489,490,491,492,57,57,57,57,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,58,58,58,58,506,507,508,59,59,59,59,59,509,510,511,60,60,60,60,60,61,61,61,61,61,512,62,62,62,62,62,513,514,515,516,517,63,63,63,63,63,64,64,64,64,64,65,65,65,65,65,66,66,66,66,66,518,519,520,67,67,67,67,67,521,522,523,524,525,526,68,68,68,68,68,527,69,69,69,69,69,528,105,188,235,140,302,76,84,95,101,102,145,150,180,127,90,92,203,226,259,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,152,152,173,91,91,119,119,100,107,156,169,361,134,134,134,134,326,326,289,273,289,79,79,277,343,277,211,120,272,289,123,265,178,178,178,189,324,223,250,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,189,261,189,273,120,215,236,272,289,289,152,340,190,233,285,233,90,92,345,236,273,321,233,112,230,200,200,200,293,336,77,78,110,112,129,138,153,155,167,190,208,213,230,94,117,144,191,233,316,333,94,241,264,269,314,366,152,273,288,245,245,105,231,72,216,222,249,199,256,259,280,280,275,152,306,306,306,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,330,152,152,126,278,126,278,126,278,126,278,126,278,126,278,135,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,292,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,114,81,81,81,285,286,97,311,269,254,289,344,109,109,287,187,287,204,167,144,287,232,287,74,105,159,164,182,189,190,195,199,205,215,234,236,261,269,273,277,288,299,300,303,305,314,324,328,343,345,345,122,175,93,120,141,233,258,289,337,138,154,157,213,325,331,342,354,124,144,198,188,329,287,363,79,79,79,79,79,105,190,205,269,303,305,314,165,119,182,208,74,159,164,182,189,195,199,215,234,236,261,273,277,288,299,300,324,328,343,345,345,122,175,93,120,141,233,258,289,337,178,178,237,178,237,178,237,223,357,343,251,79,90,97,110,120,153,154,155,215,221,228,251,285,325,331,354,217,217,217,217,217,102,153,216,72,222,329,97,71,292,71,71,96,262,191,283,283,283,355,355,217,217,217,217,217,102,153,216,72,222,329,311,311,97,114,202,312,340,243,357,188,250,287,287,287,349,191,90,128,149,183,200,207,215,143,312,143,143,215,168,324,324,324,130,176,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,293,336,217,134,241,167,102,98,98,98,263,77,129,98,98,98,281,276,276,276,281,96,165,165,165,241,316,327,333,333,316,327,316,316,327,153,355,355,72,132,72,132,231,84,95,84,95,84,95,231,84,95,84,95,84,95,231,231,285,76,101,150,352,76,101,150,352,76,101,150,352,76,101,150,352,352,352,352,252,294,72,184,219,222,240,252,294,308,362,364,184,252,294,362,364,240,219,240,252,294,308,219,240,252,294,308,184,184,184,184,71,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,284,137,109,109,330,262,279,285,313,279,279,182,91,91,168,100,105,146,156,190,205,212,246,248,289,299,300,303,305,315,318,357,312,169,250,169,250,100,156,244,127,146,162,163,199,299,239,239,139,139,139,87,181,210,223,223,220,244,223,223,220,260,359,260,359,260,359,260,359,127,74,224,119,121,172,186,304,121,172,304,186,186,185,348,107,107,355,152,168,89,127,163,194,244,258,288,301,332,337,344,345,351,361,162,300,162,300,162,300,162,300,344,97,126,211,278,174,180,239,79,79,74,83,178,178,229,148,239,239,239,239,245,119,113,196,225,164,261,288,324,130,176,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,130,176,276,338,338,72,113,132,196,222,225,257,267,296,90,92,188,203,90,92,188,203,168,155,196,222,253,267,296,291,326,204,346,168,105,146,190,205,212,246,248,289,299,300,303,305,315,318,357,312,169,250,169,250,244,127,146,162,163,199,299,90,92,203,82,152,256,266,322,193,193,87,103,130,176,181,247,293,336,293,336,293,336,119,283,283,283,283,204,130,176,311,73,73,73,73,73,73,159,195,234,273,306,184,107,107,275,126,211,278,188,188,102,216,101,116,118,136,150,270,310,339,353,99,347,201,124,125,148,198,208,227,148,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,155,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,210,210,210,210,210,210,210,210,235,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,106,235,114,281,281,204,191,131,167,285,145,145,182,152,329,255,363,233,273,233,233,255,134,236,112,137,349,349,349,109,326,142,108,274,338,134,187,83,83,83,88,97,99,119,160,203,214,229,233,268,356,363,300,300,257,229,229,79,79,79,90,92,96,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,340,204,200,200,200,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,251,197,174,120,143,72,76,77,81,84,89,94,99,100,101,104,108,111,113,114,115,117,118,122,123,124,131,132,138,139,140,142,144,148,150,156,170,171,177,184,191,194,198,209,213,219,225,227,228,232,233,235,237,238,241,262,263,264,269,270,274,275,279,298,301,302,306,308,310,313,314,316,317,319,320,323,327,330,333,338,339,342,344,346,347,349,352,360,361,362,364,366,367,239,120,120,262,313,145,72,76,77,81,84,89,93,94,99,100,101,104,105,108,111,113,114,115,117,118,122,123,124,131,132,138,139,140,142,144,148,150,151,156,170,171,177,184,191,194,198,209,213,219,225,227,228,231,232,233,235,237,238,241,258,262,263,264,269,270,274,275,279,284,298,301,302,306,308,310,313,314,316,317,319,320,323,327,330,333,338,339,342,344,346,347,349,352,360,361,362,364,366,367,223,158,82,110,121,126,172,185,186,190,230,266,278,280,289,304,322,348,363,120,289,79,79,363,220,182,106,281,281,112,120,135,272,289,312,152,152,89,351,357,324,87,89,91,102,107,115,121,122,146,147,149,153,162,169,172,175,179,181,183,187,188,190,194,197,229,243,245,247,248,249,250,261,288,290,304,307,315,341,345,351,357,358,365,344,126,278,224,293,336,112,307,119,75,79,86,103,105,116,123,126,127,128,145,159,163,164,166,180,185,186,192,195,199,200,202,206,207,210,211,216,223,224,231,234,244,256,260,265,273,278,280,299,310,312,321,332,334,335,340,348,359,363,167,288,273,273,242,74,120,144,204,233,283,316,327,233,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,229,82,266,322,293,336,239,189,239,257,199,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,158,215,236,302,319,215,283,283,283,204,130,176,217,217,217,217,217,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,38,370,371,372,39,373,374,40,375,376,41,377,378,42,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,43,397,398,399,400,401,402,403,404,44,45,405,406,407,408,46,409,47,48,410,411,412,49,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,50,432,433,434,435,51,436,52,437,438,439,53,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,54,458,459,55,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,56,483,484,485,486,487,488,489,490,491,492,57,493,494,495,496,497,498,499,500,501,502,503,504,505,58,506,507,508,59,509,510,511,60,61,512,62,513,514,515,516,517,63,64,65,66,518,519,520,67,521,522,523,524,525,526,68,527,69,528,89,115,122,175,351,358,281,94,94,324,250,355,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,324,79,200,340,90,203,257,365,257,80,212,246,318,229,134,205,205,205,205,189,324,344,260,359,149,183,214,221,249,323,321,321,159,273,300,273,159,273,300,74,159,195,234,134,134,189,324,189,189,189,223,244,359,359,359,359,215,127,220,355,188,250,340,221,236,284,329,273,321,233,345,166,166,166,245,159,273,300,82,256,266,295,297,322,363,165,110,254,83,115,122,127,164,175,199,261,299,324,334,341,344,358,83,115,122,127,164,175,199,261,299,324,334,341,344,358,83,115,122,127,164,175,199,261,299,324,334,341,344,358,155,285,321,120,321,321,321,120,293,336,143,289,120,289,229,76,80,101,102,115,127,150,174,180,207,212,246,258,315,318,332,334,337,341,358,244,244,244,147,179,185,199,206,290,299,300,305,348,147,179,185,206,290,300,305,348,147,179,185,206,290,348,143,76,80,101,102,115,127,150,174,180,207,212,246,258,315,318,332,334,337,341,358,244,244,244,147,179,185,199,206,290,299,300,305,348,100,105,115,122,146,156,175,190,205,212,246,248,299,300,303,305,315,318,357,358,169,250,169,250,100,115,122,156,175,244,358,312,127,146,162,163,199,299,147,179,185,206,290,300,305,348,147,179,185,206,290,348,76,80,101,102,115,127,150,174,180,207,212,246,258,315,318,332,334,337,341,358,244,244,244,147,179,185,199,206,290,299,300,305,348,147,179,185,206,290,300,305,348,147,179,185,206,290,348,235,235,0,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,0,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,902,902,902,902,902,902,569,0,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,818,569,0,822,822,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,800,556,556,556,556,556,556,556,556,556,556,569,0,551,551,551,551,551,551,551,551,551,551,551,551,551,838,838,838,838,838,838,838,838,838,838,838,838,838,838,838,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,569,0,569,0,569,0,569,569,0,0,569,0,549,549,549,549,549,549,569,0,569,0,569,0,569,0,895,895,895,895,0,0,0,0,0,0,0,0,0,0,860,569,0,569,0,569,0,558,558,558,558,558,558,558,558,558,558,558,558,569,0,569,0,569,0,810,810,810,569,0,569,0,569,0,883,883,883,796,796,796,872,872,872,872,569,0,569,0,844,569,0,844,844,569,0,569,835,0,835,835,835,835,816,816,816,816,806,806,806,806,806,569,0,876,876,876,876,876,876,876,876,876,876,876,876,876,569,569,0,0,573,569,0,569,0,569,0,569,0,569,0,569,0,569,0,807,807,807,807,807,807,569,0,569,0,0,0,0,0,0,0,0,0,0,0,0,0,569,0,569,0,569,0,569,0,569,0,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,569,0,569,0,569,0,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,808,808,808,808,808,808,560,560,560,560,560,560,560,560,569,0,569,0,559,559,559,559,559,559,559,559,559,559,569,0,559,559,569,0,569,0,0,0,0,843,843,843,843,843,843,843,843,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,869,869,869,869,869,869,869,869,830,830,830,830,819,819,819,569,0,569,0,898,898,898,898,898,569,0,793,793,793,793,793,793,793,569,0,0,0,0,0,0,0,569,0,569,0,565,565,565,565,565,565,565,565,565,565,565,565,565,565,566,566,566,566,566,566,566,566,566,566,567,567,567,567,567,567,567,567,567,567,569,0,569,0,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,862,862,862,862,862,862,862,862,862,862,569,0,569,0,569,0,569,0,569,0,569,569,0,0,569,0,569,0,569,0,804,804,804,804,804,804,804,804,804,569,0,569,0,569,0,545,545,545,545,545,545,545,545,569,0,569,0,569,0,569,0,855,855,0,0,0,0,0,0,0,0,569,0,569,0,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,569,569,0,0,569,0,569,0,569,0,569,0,569,0,569,0,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,569,0,569,0,555,555,555,555,555,555,555,555,555,555,555,555,555,555,569,0,569,0,0,0,0,617,569,0,569,0,802,802,802,802,569,0,569,569,0,0,569,0,569,0,569,569,0,0,569,0,569,0,569,0,569,0,569,0,569,0,0,857,857,857,857,569,0,857,857,857,857,569,0,569,0,852,852,852,852,852,852,834,834,834,834,834,834,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,870,870,870,870,870,870,870,870,860,860,860,860,860,860,860,860,811,811,811,811,811,832,832,832,798,798,798,798,798,858,858,858,858,858,858,858,858,858,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,794,794,794,794,794,794,794,888,888,894,894,894,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,837,837,837,837,837,837,837,837,837,880,880,880,880,880,849,805,805,805,805,805,805,805,805,805,557,854,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,839,839,839,839,839,839,839,839,839,839,839,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,826,826,826,826,877,877,877,877,877,861,861,861,861,861,861,861,861,861,861,861,861,861,861,820,820,820,820,861,861,842,842,547,547,817,817,817,817,817,817,817,817,547,547,547,547,547,547,842,842,842,842,842,842,842,842,842,901,901,901,901,901,901,901,881,881,893,893,893,893,893,893,795,795,795,795,821,821,814,814,814,814,814,814,814,814,791,791,791,836,836,827,827,827,827,827,827,827,827,827,827,827,827,827,864,864,864,864,864,801,892,892,892,809,809,809,809,809,856,856,856,856,856,841,841,841,841,841,841,841,841,841,841,841,841,841,841,841,841,859,859,859,859,859,859,859,859,859,859,859,859,859,859,859,859,845,845,845,845,845,845,845,850,850,850,850,850,850,850,850,850,850,850,899,899,899,899,899,899,899,899,899,899,564,564,564,564,564,564,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,874,874,874,874,874,874,874,823,823,823,823,823,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,829,886,886,886,886,886,886,886,886,865,865,865,865,865,865,865,865,865,546,546,546,546,546,546,792,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,897,897,897,897,897,897,897,897,897,897,897,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,831,831,831,831,831,544,544,544,544,544,544,544,544,544,544,544,544,544,544,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,884,569,0,569,0,569,0,569,0,884,569,0,799,799,799,799,799,799,569,0,884,573,825,840,840,840,825,825,825,569,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,569,0,569,0,569,0,866,866,866,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,875,875,875,875,875,0,848,848,848,889,889,889,889,569,0,569,0,569,0,569,0,569,0,569,0,900,569,0,569,0,900,900,900,569,0,569,0,900,569,0,569,0,569,0,569,0,569,0,563,563,563,563,563,563,563,563,563,563,563,563,569,0,803,803,803,569,0,0,0,0,0,0,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,887,887,569,0,569,0,569,0,569,0,885,885,0,0,569,0,569,0,569,569,0,569,0,0,569,569,0,569,0,0,569,0,882,882,882,882,882,552,552,552,552,552,882,882,882,882,882,882,882,882,882,882,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,868,868,868,868,896,896,896,896,896,896,896,896,896,851,851,851,851,569,0,569,0,569,0,0,0,0,0,0,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,569,0,568,568,569,0,0,891,891,891,891,569,0,867,867,867,867,867,569,0,838,548,548,548,548,548,548,548,548,873,873,873,873,873,569,0,0,0,0,0,569,0,569,0,569,0,569,0,569,0,569,0,847,847,813,813,813,813,569,0,569,0,812,812,812,812,812,732,0,0,732,0,569,0,569,0,871,871,871,871,853,853,853,853,853,853,815,815,815,815,815,815,815,815,815,815,569,0,569,0,0,0,0,846,846,846,846,673,776,775,679,679,679,653,717,675,660,773,773,710,619,637,651,674,619,637,651,674,619,637,651,674,602,604,631,667,604,631,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,572,582,602,607,618,619,623,647,651,652,713,727,755,764,765,775,666,645,666,584,617,631,723,728,763,604,698,585,585,698,660,698,698,604,698,617,574,574,575,622,741,575,622,741,575,622,741,707,723,763,723,763,723,763,699,699,699,699,640,722,597,645,775,727,738,738,694,750,783,631,650,706,766,766,766,766,628,690,596,596,596,585,724,604,650,787,653,717,653,717,653,717,653,717,678,631,678,587,595,587,604,620,589,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,603,785,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,613,593,610,593,610,593,610,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,698,579,579,579,579,649,682,786,678,634,706,706,573,617,661,661,623,576,702,613,595,595,623,699,633,777,633,777,633,777,633,633,633,633,633,633,633,742,777,782,718,633,742,777,782,718,633,742,777,782,718,633,742,777,782,718,633,742,777,782,718,633,742,777,782,718,633,742,777,782,718,633,742,777,782,718,633,777,633,595,700,699,699,602,604,631,671,671,671,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,572,582,647,583,601,608,679,694,750,783,683,706,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,601,715,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,635,675,590,643,780,619,637,651,674,581,589,609,715,745,747,785,715,596,607,626,672,760,760,615,686,694,750,783,587,620,587,672,729,631,631,631,702,604,631,650,787,702,775,595,724,589,605,649,657,676,711,721,745,754,786,738,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,569,772,685,685,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,640,640,589,595,582,582,706,706,706,673,776,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,573,573,573,573,585,595,764,574,581,658,769,656,620,724,617,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,707,707,669,578,758,587,724,572,582,631,647,572,582,631,647,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,638,715,620,620,620,620,620,775,790,596,607,640,724,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,684,604,575,631,715,714,760,790,673,776,739,623,661,702,605,721,788,706,572,582,647,765,756,573,575,589,590,594,600,603,617,622,641,661,676,677,681,713,732,741,785,613,713,613,722,733,733,733,733,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,544,544,544,544,795,796,545,545,545,545,545,797,798,799,800,801,802,803,804,805,806,807,808,546,546,546,546,546,809,547,547,547,547,547,810,811,812,813,814,815,816,817,818,819,548,548,548,548,548,549,549,549,549,549,820,821,822,823,824,825,826,827,828,829,550,550,550,550,550,830,831,832,551,551,551,551,551,552,552,552,552,552,833,834,553,553,553,553,553,835,554,554,554,554,554,836,837,838,555,555,555,555,555,839,556,556,556,556,556,840,557,557,557,557,557,841,842,843,844,845,846,847,848,558,558,558,558,558,849,850,851,852,853,854,855,856,857,858,859,559,559,559,559,559,560,560,560,560,560,561,561,561,561,561,860,861,562,562,562,562,562,862,863,563,563,563,563,563,864,865,866,564,564,564,564,564,867,868,869,870,871,872,873,874,875,876,877,565,565,565,565,565,878,566,566,566,566,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,567,567,567,567,892,893,894,895,896,897,568,568,568,568,568,898,899,900,901,902,661,665,709,574,694,701,750,783,784,789,700,603,785,599,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,724,724,675,704,704,678,678,576,600,641,681,741,604,765,604,760,760,731,754,754,733,602,604,631,643,780,713,764,677,702,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,652,764,764,765,573,602,604,617,631,604,724,761,580,585,585,603,666,785,617,663,765,585,660,708,740,740,740,653,717,571,587,595,609,640,649,660,672,708,745,786,585,586,621,680,685,699,738,586,682,724,765,623,690,690,656,629,727,599,615,715,715,743,724,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,724,724,658,769,658,769,658,769,658,769,658,769,658,769,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,692,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,580,624,714,683,604,744,790,616,684,571,738,788,572,573,582,607,617,618,623,647,652,713,726,727,729,731,754,755,764,765,775,666,666,619,651,584,585,604,631,723,728,763,649,657,676,786,605,721,738,661,668,686,760,760,760,760,760,620,678,729,640,572,573,582,607,617,618,623,647,652,713,726,727,729,731,754,755,764,765,775,666,666,619,651,584,585,604,631,723,728,763,677,735,731,650,573,580,587,595,631,636,650,672,710,714,760,785,656,672,668,714,569,692,569,569,779,662,680,627,627,627,613,613,656,672,668,683,683,714,590,761,766,771,735,661,702,680,573,597,691,703,740,768,785,645,766,645,645,573,707,713,713,713,756,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,653,717,682,571,706,706,706,609,745,706,706,706,779,620,620,620,682,664,699,621,621,664,699,699,664,699,672,613,613,701,784,701,784,701,784,701,784,701,784,701,784,580,601,694,750,783,601,694,750,783,601,694,750,783,601,694,750,783,601,601,601,648,736,648,687,697,720,730,736,746,762,648,687,730,736,746,697,648,697,720,736,762,648,697,720,736,762,746,746,746,746,569,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,635,598,580,662,688,712,712,712,729,704,704,707,604,614,618,632,639,641,681,716,719,735,755,770,766,576,702,576,702,641,667,681,626,700,716,727,755,759,642,642,646,718,742,677,677,667,677,677,679,772,679,772,679,772,679,772,700,775,678,570,606,695,753,570,606,753,695,695,673,776,600,600,613,724,707,575,593,610,622,623,626,666,667,700,723,741,752,763,790,618,759,618,759,618,759,618,759,790,658,714,733,769,634,642,789,760,760,775,628,696,642,642,642,642,690,678,607,623,652,713,756,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,756,655,655,767,603,661,785,603,661,785,707,595,608,684,707,604,614,618,632,639,716,719,735,755,770,766,576,702,576,702,667,626,700,716,727,755,759,603,785,615,724,633,718,742,756,777,653,717,653,717,653,717,678,627,627,627,627,684,756,683,751,751,751,751,751,572,582,647,751,765,746,600,600,743,658,733,769,661,661,656,577,588,654,670,694,734,750,757,778,711,594,605,625,640,696,721,696,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,595,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,646,646,646,646,646,646,646,646,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,774,684,680,571,580,574,574,729,724,668,686,585,765,585,585,617,660,598,669,578,758,655,616,585,628,638,678,686,714,618,618,767,628,628,760,760,760,603,779,785,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,761,684,740,740,740,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,650,722,634,631,645,575,577,578,583,585,586,588,601,605,609,610,611,612,619,621,622,625,630,636,637,641,643,644,649,654,655,657,659,662,664,665,669,680,681,682,685,687,688,689,694,696,699,709,712,720,721,725,730,734,738,741,743,746,747,750,758,762,782,783,784,786,788,790,642,631,631,662,688,574,575,577,578,583,584,585,586,588,601,605,609,610,611,612,619,621,622,625,630,635,636,637,641,643,644,649,654,655,657,659,662,664,665,669,680,681,682,685,687,688,689,694,696,699,709,712,720,721,723,725,730,734,738,741,743,746,747,750,758,762,782,783,784,786,787,788,790,677,705,570,587,604,606,658,673,686,695,708,715,753,769,776,604,631,760,760,686,729,774,660,602,604,631,766,724,724,593,610,735,713,570,575,576,592,593,600,606,610,616,619,623,628,629,632,633,637,651,652,661,666,672,674,690,693,702,703,704,716,718,719,722,735,737,739,742,748,753,759,768,771,781,790,658,769,653,717,660,737,678,572,574,581,582,590,591,596,597,607,615,626,643,646,647,654,656,658,663,667,670,671,673,677,679,686,691,695,698,700,715,727,733,740,752,755,760,761,765,766,769,772,773,776,777,780,789,571,623,765,765,589,585,627,631,664,684,699,738,775,585,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,628,653,717,642,642,764,767,727,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,705,573,617,612,709,573,627,627,627,684,756,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,544,795,796,545,797,798,799,800,801,802,803,804,805,806,807,808,546,809,547,810,811,812,813,814,815,816,817,818,819,548,549,820,821,822,823,824,825,826,827,828,829,550,830,831,832,551,552,833,834,553,835,554,836,837,838,555,839,556,840,557,841,842,843,844,845,846,847,848,558,849,850,851,852,853,854,855,856,857,858,859,559,560,561,860,861,562,862,863,563,864,865,866,564,867,868,869,870,871,872,873,874,875,876,877,565,878,566,879,880,881,882,883,884,885,886,887,888,889,890,891,567,892,893,894,895,896,897,568,898,899,900,901,902,593,610,619,637,651,674,586,586,713,613,702,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,713,760,740,761,739,767,785,767,614,639,749,770,628,713,764,790,679,772,629,703,710,768,663,663,572,618,765,765,572,618,765,572,582,647,775,713,764,764,764,764,677,667,679,679,679,679,573,700,613,661,702,761,710,617,635,668,663,765,585,666,671,671,671,690,572,618,765,615,686,620,587,744,592,596,607,619,637,651,652,674,700,713,727,755,790,592,596,607,619,637,651,652,674,700,713,727,755,790,592,596,607,619,637,651,652,674,700,713,727,755,790,595,580,663,631,663,663,663,631,653,717,645,604,604,631,628,592,596,614,632,634,637,639,674,691,694,700,723,749,750,752,763,770,783,789,667,667,667,591,618,673,693,727,748,755,776,781,591,618,673,693,748,776,781,591,673,693,748,776,781,645,592,596,614,632,634,637,639,674,691,694,700,723,749,750,752,763,770,783,789,667,667,667,591,618,673,693,727,748,755,776,781,614,618,619,632,637,639,641,651,674,681,716,719,735,755,770,576,702,576,702,619,637,641,651,667,674,681,766,626,700,716,727,755,759,591,618,673,693,748,776,781,591,673,693,748,776,781,592,596,614,632,634,637,639,674,691,694,700,723,749,750,752,763,770,783,789,667,667,667,591,618,673,693,727,748,755,776,781,591,618,673,693,748,776,781,591,673,693,748,776,781,22,22,30,33,0,0,30,0,22,22,30,33,22,30,33,22,22,30,30,33,33,22,30,30,30,33,33,22,30,33,22,30,33,22,30,33,22,30,33,22,30,33,1279,1280,1281,1280,1279,905,906,907,908,905,906,908,908,908,908,908,908,904,0,904,0,907,907,907,0,0,0,904,905,906,907,908,904,905,906,907,908,904,905,906,907,908,904,905,906,907,908,905,906,907,908,904,905,906,904,905,906,907,908,904,905,906,907,908,904,904,905,906,907,908,904,905,906,907,908,907,908,907,908,904,905,906,907,908,906,906,906,906,906,904,904,904,906,906,906,906,906,906,904,904,905,906,904,905,906,907,908,905,907,908,904,905,906,907,908,907,908,904,905,906,907,908,904,905,906,907,908,906,906,906,906,906,904,905,906,907,908,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28,1205,1205,1205,1205,1205,1205,937,0,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,937,0,1215,1215,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,1276,931,931,931,931,931,931,931,931,931,931,937,0,917,917,917,917,917,917,917,917,917,917,917,917,917,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,937,0,937,0,937,0,937,937,0,0,937,0,930,930,930,930,930,930,937,0,937,0,937,0,937,0,1263,1263,1263,1263,0,0,0,0,0,0,0,0,0,0,1256,937,0,937,0,937,0,936,936,936,936,936,936,936,936,936,936,936,936,937,0,937,0,937,0,1236,1236,1236,937,0,937,0,937,0,1169,1169,1169,1175,1175,1175,1217,1217,1217,1217,937,0,937,0,1227,937,0,1227,1227,937,0,937,1207,0,1207,1207,1207,1207,1219,1219,1219,1219,1244,1244,1244,1244,1244,937,0,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,937,937,0,0,974,937,0,937,0,937,0,937,0,937,0,937,0,937,0,1210,1210,1210,1210,1210,1210,937,0,937,0,0,0,0,0,0,0,0,0,0,0,0,0,937,0,937,0,937,0,937,0,937,0,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,937,0,937,0,937,0,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1261,1261,1261,1261,1261,1261,929,929,929,929,929,929,929,929,937,0,937,0,924,924,924,924,924,924,924,924,924,924,937,0,924,924,937,0,937,0,0,0,0,1237,1237,1237,1237,1237,1237,1237,1237,1214,1214,1214,1214,1214,1214,1214,1214,1214,1214,1214,1214,1214,1214,1214,1277,1277,1277,1277,1277,1277,1277,1277,1213,1213,1213,1213,1229,1229,1229,937,0,937,0,1209,1209,1209,1209,1209,937,0,1228,1228,1228,1228,1228,1228,1228,937,0,0,0,0,0,0,0,937,0,937,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,912,912,912,912,912,912,912,912,912,912,935,935,935,935,935,935,935,935,935,935,937,0,937,0,923,923,923,923,923,923,923,923,923,923,923,923,923,923,923,923,1196,1196,1196,1196,1196,1196,1196,1196,1196,1196,937,0,937,0,937,0,937,0,937,0,937,937,0,0,937,0,937,0,937,0,1165,1165,1165,1165,1165,1165,1165,1165,1165,937,0,937,0,937,0,910,910,910,910,910,910,910,910,937,0,937,0,937,0,937,0,1212,1212,0,0,0,0,0,0,0,0,937,0,937,0,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,937,937,0,0,937,0,937,0,937,0,937,0,937,0,937,0,926,926,926,926,926,926,926,926,926,926,926,926,926,926,926,937,0,937,0,921,921,921,921,921,921,921,921,921,921,921,921,921,921,937,0,937,0,0,0,0,1003,1089,937,0,937,0,1222,1222,1222,1222,937,0,937,937,0,0,937,0,937,0,937,937,0,0,937,0,937,0,937,0,937,0,937,0,937,0,0,1170,1170,1170,1170,937,0,1170,1170,1170,1170,937,0,937,0,1191,1191,1191,1191,1191,1191,1194,1194,1194,1194,1194,1194,1252,1252,1252,1252,1252,1252,1252,1252,1252,1252,1252,1252,1252,1252,1252,1252,1252,1252,1252,1252,1252,1189,1189,1189,1189,1189,1189,1189,1189,1256,1256,1256,1256,1256,1256,1256,1256,1253,1253,1253,1253,1253,1226,1226,1226,1187,1187,1187,1187,1187,1184,1184,1184,1184,1184,1184,1184,1184,1184,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1264,1264,1264,1264,1264,1264,1264,1162,1162,1168,1168,1168,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1174,1174,1174,1174,1174,1174,1174,1174,1174,1163,1163,1163,1163,1163,1197,1178,1178,1178,1178,1178,1178,1178,1178,1178,918,1199,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1255,1255,1255,1255,1255,1255,1255,1255,1255,1255,1255,1255,1255,1255,1255,1255,1255,1255,927,927,927,927,927,927,927,927,927,927,927,927,927,927,927,927,927,927,927,927,927,927,927,1245,1245,1245,1245,1192,1192,1192,1192,1192,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1204,1204,1204,1204,1270,1270,1269,1269,913,913,1211,1211,1211,1211,1211,1211,1211,1211,913,913,913,913,913,913,1269,1269,1269,1269,1269,1269,1269,1269,1269,1201,1201,1201,1201,1201,1201,1201,1173,1173,1179,1179,1179,1179,1179,1179,1249,1249,1249,1249,1206,1206,1265,1265,1265,1265,1265,1265,1265,1265,1260,1260,1260,1167,1167,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1208,1208,1208,1208,1208,1272,1177,1177,1177,1195,1195,1195,1195,1195,1166,1166,1166,1166,1166,1258,1258,1258,1258,1258,1258,1258,1258,1258,1258,1258,1258,1258,1258,1258,1258,1234,1234,1234,1234,1234,1234,1234,1234,1234,1234,1234,1234,1234,1234,1234,1234,1200,1200,1200,1200,1200,1200,1200,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,925,925,925,925,925,925,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,1231,1231,1231,1231,1231,1231,1231,1221,1221,1221,1221,1221,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1275,1248,1248,1248,1248,1248,1248,1248,1248,1181,1181,1181,1181,1181,1181,1181,1181,1181,915,915,915,915,915,915,1254,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,1251,1251,1251,1251,1251,1251,1251,1251,1251,1251,1251,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1180,1180,1180,1180,1180,933,933,933,933,933,933,933,933,933,933,933,933,933,933,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,1171,937,0,937,0,937,0,937,0,1171,937,0,1266,1266,1266,1266,1266,1266,937,0,1171,974,1246,1250,1250,1250,1246,1246,1246,937,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,937,0,937,0,937,0,1216,1216,1216,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,1182,1182,1182,1182,1182,0,1190,1190,1190,1233,1233,1233,1233,937,0,937,0,937,0,937,0,937,0,937,0,1257,937,0,937,0,1257,1257,1257,937,0,937,0,1257,937,0,937,0,937,0,937,0,937,0,909,909,909,909,909,909,909,909,909,909,909,909,937,0,1218,1218,1218,937,0,0,0,0,0,0,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,1203,1203,937,0,937,0,937,0,937,0,1198,1198,0,0,937,0,937,0,937,937,0,937,0,0,937,937,0,937,0,0,937,0,1172,1172,1172,1172,1172,934,934,934,934,934,1172,1172,1172,1172,1172,1172,1172,1172,1172,1172,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,1271,1271,1271,1271,1176,1176,1176,1176,1176,1176,1176,1176,1176,1242,1242,1242,1242,937,0,937,0,937,0,0,0,0,0,0,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,937,0,911,911,937,0,0,1273,1273,1273,1273,937,0,1243,1243,1243,1243,1243,937,0,937,1267,1267,1267,1267,1267,1267,1267,1267,1267,1267,1267,1267,1267,1267,1267,1267,0,1240,1240,1240,1240,1240,1240,1240,1240,1278,1278,1186,937,0,1262,1262,1262,1262,1262,1262,928,928,928,928,928,1186,1186,1186,1186,1186,1186,922,922,922,1186,932,932,932,932,937,0,1241,920,920,920,920,920,920,920,920,1223,1223,1223,1223,1223,937,0,0,0,0,0,0,0,0,0,0,0,0,0,937,0,937,0,937,0,937,0,937,0,937,0,1202,1202,1193,1193,1193,1193,937,0,937,0,1230,1230,1230,1230,1230,1102,1037,0,0,1102,0,937,0,937,0,1238,1238,1238,1238,1225,1225,1225,1225,1225,1225,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,937,0,937,0,0,0,0,1268,1268,1268,1268,1006,1133,957,1125,1125,1125,1129,1145,1037,1037,1037,1128,975,1071,1071,1013,1007,1034,1088,1097,1007,1034,1088,1097,1007,1034,1088,1097,1003,938,1001,1111,1137,1001,1137,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,950,953,957,963,976,978,983,1007,1097,1107,1111,1118,1119,1123,1132,1154,1082,1142,1082,941,958,972,1001,1089,1155,1033,1137,971,971,1033,975,1033,1033,1137,1033,1089,987,987,1041,1043,1098,1041,1043,1098,1041,1043,1098,1149,941,1155,941,1155,941,1155,1074,1074,1074,1074,991,990,1044,1142,957,1118,1049,1049,982,1040,1153,1001,1068,1046,1011,1011,1011,1011,988,1114,1057,1057,1057,1037,971,985,1068,1091,1137,1129,1145,1129,1145,1129,1145,1129,1145,1060,1001,1060,943,947,947,1061,1137,967,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1028,1150,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1000,948,1069,948,1069,948,1069,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,1033,1113,1113,1113,1113,952,1120,1127,1060,1021,1046,1046,974,1003,1089,996,996,1119,1059,1143,1000,943,943,1119,1074,1029,1139,1029,1139,1029,1139,1029,1029,1029,1029,1029,1029,955,993,1029,1139,1014,955,993,1029,1139,1014,955,993,1029,1139,1014,955,993,1029,1139,1014,955,993,1029,1139,1014,955,993,1029,1139,1014,955,993,1029,1139,1014,955,993,1029,1139,1014,1029,1139,1029,943,1138,1074,1074,1111,1001,1137,995,995,995,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,976,983,1107,982,1004,1040,1077,1125,1153,1160,1108,1046,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1004,1110,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1032,1128,1050,1065,1083,1007,1034,1088,1097,961,967,1010,1067,1070,1110,1150,1110,963,1057,1076,1101,1024,1024,966,982,1040,1146,1153,947,1061,947,1076,1140,1001,1001,1001,1059,1001,1068,1091,1137,1059,957,943,985,961,964,967,973,1015,1096,1099,1106,1120,1127,1049,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,937,1103,1094,1094,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,991,991,967,943,983,983,1046,1046,1046,1006,1133,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,974,974,974,974,971,943,1154,987,1070,1072,1087,994,1061,985,1037,1003,1089,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1149,1149,1030,945,1027,947,985,976,983,1001,1107,976,983,1001,1107,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,1117,1110,1061,1061,1061,1061,1061,957,1022,963,1057,991,985,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,1008,1137,1001,1043,1110,1045,1024,1022,1006,1133,1100,1119,996,1059,964,1015,1058,1046,976,983,1107,1123,1109,939,950,967,968,974,996,1002,1028,1041,1043,1062,1083,1089,1098,1102,1106,1147,1150,1000,950,1000,990,1124,1124,1124,1124,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,909,909,909,909,1167,1168,910,910,910,910,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,911,911,911,911,912,912,912,912,912,1194,913,913,913,913,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,914,914,914,914,1205,1206,1207,1208,1209,915,915,915,915,915,1210,1211,1212,1213,1214,916,916,916,916,916,1215,1216,917,917,917,917,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,918,918,918,918,1232,919,919,919,919,919,1233,1234,1235,920,920,920,920,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,921,921,921,921,1250,922,922,922,922,922,923,923,923,923,923,1251,1252,1253,924,924,924,924,924,1254,1255,1256,925,925,925,925,925,926,926,926,926,926,1257,927,927,927,927,927,928,928,928,928,928,929,929,929,929,929,930,930,930,930,930,1258,1259,1260,1261,1262,1263,931,931,931,931,931,1264,932,932,932,932,932,1265,1266,1267,1268,1269,933,933,933,933,933,934,934,934,934,934,935,935,935,935,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,936,936,936,936,996,959,1157,940,982,987,1035,1038,1040,1153,1138,1028,1150,1151,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,985,985,1128,998,998,1060,1060,939,968,1062,1098,1143,1037,1037,1037,1037,1003,1003,1137,1123,1137,1024,1024,973,1009,973,1124,1001,1111,1137,1050,1065,950,1154,1002,1059,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,953,1154,1154,1123,974,1001,1089,1111,1137,1137,985,1025,971,1017,971,1028,1082,1150,1089,1122,1123,971,975,1121,992,992,992,1129,1145,943,947,961,975,991,1010,1012,1076,1120,1121,1127,949,971,1042,1049,1074,1094,1156,949,952,985,1123,1119,988,988,994,1144,1118,1110,1146,1151,1110,944,985,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,985,985,1072,1087,1072,1087,1072,1087,1072,1087,1072,1087,1072,1087,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1116,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1017,1066,1045,1108,1022,1063,1137,977,1008,1012,1049,1058,950,953,957,963,973,974,976,978,983,1009,1039,1089,1107,1118,1119,1123,1132,1140,1154,1082,1082,1007,1097,941,958,971,972,1001,1137,1155,1099,1106,1120,1127,964,1015,1049,996,1130,966,1024,1024,1024,1024,1024,1061,1060,1140,991,950,953,957,963,973,974,976,978,983,1009,1039,1089,1107,1118,1119,1123,1132,1140,1154,1082,1082,1007,1097,941,958,971,972,1001,1137,1155,1002,956,1009,1068,943,947,974,1001,1013,1017,1024,1045,1068,1076,1150,1161,994,1076,1130,1045,937,1116,937,937,1079,1005,1042,954,954,954,1000,1000,994,1076,1130,1108,1108,1045,1011,1025,1083,1126,956,996,1059,1042,974,992,999,1044,1084,1112,1150,1142,1011,1142,1142,974,1149,950,950,950,1109,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1129,1145,1037,952,1012,1046,1046,1046,961,1010,1046,1046,1046,1079,1061,1061,1061,952,1052,1074,1156,1156,1052,1074,1074,1052,1074,1076,1000,1000,940,1038,940,1038,940,1038,940,1038,940,1038,940,1038,1017,982,1004,1040,1153,982,1004,1040,1153,982,1004,1040,1153,982,1004,1040,1153,1004,1004,1004,960,1158,951,960,989,997,1134,1136,1141,1158,951,960,997,1136,1158,1141,960,989,1134,1141,1158,960,989,1134,1141,1158,997,997,997,997,937,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1032,1075,1005,1017,1080,1104,1080,1080,1140,998,998,1149,939,942,956,978,979,1036,1047,1062,1095,1132,1135,1137,1011,1059,1143,1059,1143,938,939,1062,978,1019,1101,1118,1135,1138,1159,1159,993,1014,1020,1002,1002,938,1002,1002,1103,1125,1103,1125,1103,1125,1103,1125,1138,957,1060,1051,1056,1081,1131,1056,1081,1131,1051,1051,1006,1133,968,968,1000,985,1149,938,941,948,1022,1026,1041,1043,1069,1082,1098,1101,1119,1138,1155,1019,1132,1019,1132,1019,1132,1019,1132,1022,1045,1072,1087,1124,1021,1035,1159,1024,1024,957,1114,969,1159,1159,1159,1159,988,1060,950,953,963,1119,1109,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1109,1064,1064,1055,996,1028,1150,996,1028,1150,1149,943,1077,1093,1003,1008,1149,942,956,978,979,1036,1047,1095,1132,1135,1137,1011,1059,1143,1059,1143,938,978,1019,1101,1118,1135,1138,1028,1150,985,1146,993,1014,1029,1109,1139,1129,1145,1129,1145,1129,1145,1060,954,954,954,954,1008,1109,1108,1078,1078,1078,1078,1078,976,983,1078,1107,1123,997,968,968,944,1072,1087,1124,996,996,994,981,1018,1031,1040,1053,1054,1085,1152,1153,1096,962,964,969,991,1015,1147,969,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,943,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,1020,1020,1020,1020,1020,1020,1020,1020,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1016,1008,1042,1012,1017,987,987,1140,985,1130,966,971,1123,971,971,1037,1089,975,1075,1003,1030,945,1027,1064,977,1037,966,971,1045,1060,1114,1117,1132,1132,1055,1114,1114,1024,1024,1024,1028,1079,1150,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1025,1008,992,992,992,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1068,990,1021,1001,1142,939,944,945,948,949,951,952,955,959,962,964,965,969,971,980,981,982,989,997,1004,1005,1007,1010,1015,1022,1027,1030,1031,1034,1038,1040,1041,1042,1043,1049,1052,1054,1058,1062,1064,1065,1067,1073,1074,1080,1085,1086,1092,1094,1098,1099,1104,1105,1120,1127,1134,1136,1148,1153,1156,1157,1160,1161,1159,1001,1001,1005,1104,987,939,944,945,948,949,951,952,955,958,959,962,964,965,969,971,980,981,982,989,997,1004,1005,1007,1010,1015,1022,1027,1030,1031,1032,1034,1038,1040,1041,1042,1043,1049,1052,1054,1058,1062,1064,1065,1067,1073,1074,1080,1085,1086,1091,1092,1094,1098,1099,1104,1105,1120,1127,1134,1136,1148,1153,1155,1156,1157,1160,1161,1002,986,947,966,1006,1051,1056,1072,1081,1087,1110,1121,1131,1133,1137,1001,1137,1024,1024,966,1140,1016,975,1001,1011,1111,1137,985,985,948,956,1069,950,942,946,948,953,956,968,970,977,979,988,990,993,996,998,1007,1014,1019,1029,1034,1043,1048,1056,1059,1069,1076,1081,1082,1084,1088,1090,1097,1100,1112,1114,1115,1119,1126,1131,1135,1143,1144,1022,1072,1087,1129,1145,975,1090,1060,938,963,966,976,978,983,987,992,994,995,999,1002,1006,1011,1020,1023,1024,1025,1026,1033,1035,1044,1050,1051,1053,1057,1065,1070,1071,1072,1083,1085,1087,1101,1103,1107,1110,1118,1122,1123,1124,1125,1133,1138,1139,1146,1012,1119,1123,1123,967,954,957,971,1001,1008,1049,1052,1074,971,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,1114,1129,1145,1159,1154,1159,1055,1118,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,986,974,1089,959,1148,974,954,954,954,1008,1109,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,909,1167,1168,910,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,911,912,1194,913,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,914,1205,1206,1207,1208,1209,915,1210,1211,1212,1213,1214,916,1215,1216,917,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,918,1232,919,1233,1234,1235,920,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,921,1250,922,923,1251,1252,1253,924,1254,1255,1256,925,926,1257,927,928,929,930,1258,1259,1260,1261,1262,1263,931,1264,932,1265,1266,1267,1268,1269,933,934,935,1270,1271,1272,1273,1274,1275,1276,1277,1278,936,948,1007,1034,1069,1088,1097,949,949,950,1000,1059,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,950,1024,992,1025,1055,1100,1150,1055,984,1036,1047,1095,1114,1037,950,1154,1022,1103,1125,1013,1084,1112,1144,1122,1122,1107,1123,1132,1123,1107,1123,1132,957,976,983,1107,1037,1037,950,1154,1154,1154,1154,1002,938,1125,1125,1125,1125,974,1138,1000,996,1059,1025,1013,1089,1032,1130,1122,1123,971,1082,995,995,995,988,1107,1123,1132,966,1146,1061,947,1063,950,953,963,978,1007,1022,1034,1048,1057,1088,1097,1118,1138,950,953,963,978,1007,1022,1034,1048,1057,1088,1097,1118,1138,950,953,963,978,1007,1022,1034,1048,1057,1088,1097,1118,1138,943,1017,1122,1001,1122,1122,1122,1001,1129,1145,1142,1137,1001,1137,1114,941,979,982,984,999,1021,1026,1034,1035,1036,1040,1047,1048,1057,1088,1095,1138,1153,1155,938,938,938,946,970,978,1006,1023,1115,1118,1132,1133,946,970,1006,1023,1115,1132,1133,946,970,1006,1023,1115,1133,1142,941,979,982,984,999,1021,1026,1034,1035,1036,1040,1047,1048,1057,1088,1095,1138,1153,1155,938,938,938,946,970,978,1006,1023,1115,1118,1132,1133,939,942,956,978,979,1007,1034,1036,1047,1062,1088,1095,1097,1132,1135,1059,1143,1059,1143,938,939,1007,1034,1062,1088,1097,1011,978,1019,1101,1118,1135,1138,946,970,1006,1023,1115,1132,1133,946,970,1006,1023,1115,1133,941,979,982,984,999,1021,1026,1034,1035,1036,1040,1047,1048,1057,1088,1095,1138,1153,1155,938,938,938,946,970,978,1006,1023,1115,1118,1132,1133,946,970,1006,1023,1115,1132,1133,946,970,1006,1023,1115,1133,0],"f":"```````````````````{{{b{c}}}{{b{e}}}{}{}}0000{{{b{dc}}}{{b{de}}}{}{}}0000``{{{b{{h{f}}}}f}j}{{{b{l}}}j}{{{b{n}}}j}{{{b{A`}}}A`}{{{b{Ab}}}Ab}{{{b{{Ad{c}}}}}{{Ad{c}}}{AfAh}}{{{b{l}}}l}{{{b{n}}}n}{{{b{c}}{b{de}}}Aj{}{}}0000`{{{b{n}}}f}{{{b{l}}}f}1`{{{b{Al}}}{{Bd{{B`{An}}Bb}}}}{{}A`}{{}l}{{}n}{Bf{{Bd{Ah{b{Al}}}}}}{{Ab{b{{h{f}}}}}{{Bd{{Bj{}{{Bh{c}}}}Bl}}}Ah}{{Ab{b{{h{f}}}}}{{Bd{{Ad{c}}Bl}}}Ah}{c{{Bd{A`}}}Bn}{{{b{A`}}{b{A`}}}C`}{{{b{Ab}}{b{Ab}}}C`}{{{b{l}}{b{l}}}C`}{{{b{n}}{b{n}}}C`}`{Bff}{{{b{A`}}{b{dCb}}}{{Bd{AjCd}}}}{{{b{Ab}}{b{dCb}}}{{Bd{AjCd}}}}{{{b{{Ad{c}}}}{b{dCb}}}{{Bd{AjCd}}}{CfAh}}{{{b{l}}{b{dCb}}}{{Bd{AjCd}}}}{{{b{n}}{b{dCb}}}{{Bd{AjCd}}}}{cc{}}0000{{{b{An}}}Ab}{{{b{l}}}C`}{{{b{n}}}C`}{{{b{{Ad{c}}}}}A`Ah}{{{b{dl}}}{{b{{h{f}}}}}}{{{b{dn}}}{{b{{h{f}}}}}}``{{{b{n}}}f}{ce{}{}}0000{{{b{Ah}}}Bf}{{{b{l}}}f}{{{b{n}}}Bf}{{{b{Al}}}{{Bd{Bf{b{Al}}}}}}{{{b{Ah}}}{{b{Al}}}}`{{}l}{{}n}{{AbBf{b{{h{f}}}}}{{Bd{AhBl}}}}{{{b{l}}}{{b{{h{f}}}}}}{{{b{n}}}{{b{{h{f}}}}}}8;``10{{{b{d{Ch{c}}}}}{{Bd{{Cj{A`e}}Cl}}}CnAh}{{{b{d{Ch{c}}}}}{{Bd{lCl}}}Cn}1{{{b{d{Ch{c}}}}}{{Bd{nCl}}}Cn}{{{b{d{Ch{c}}}}Ab}{{Bd{{Cj{A`e}}Cl}}}CnAh}{{{b{An}}}{{Bd{{Cj{A`c}}Cl}}}Ah}{{{b{An}}}{{Bd{{Ad{c}}Cl}}}Ah}{{{b{An}}{b{A`}}{b{c}}}{{Bd{D`Db}}}Ah}{{{b{An}}{b{c}}}{{Bd{D`Db}}}Ah}{{{b{An}}{b{{Ad{c}}}}}{{Bd{D`Db}}}Ah}{{{b{l}}}f}{{{b{n}}}f}`{{{b{Ah}}Ab{b{d{h{f}}}}}D`}{{{b{{Bj{}{{Bh{c}}}}}}Ab{b{d{h{f}}}}}D`Ah}{{{b{{Ad{c}}}}{b{d{h{f}}}}}D`Ah}{{{b{A`}}c}BdDd}{{{b{Ab}}c}BdDd}{{{b{{Ad{c}}}}e}Bd{AhDf}Dd}{{{b{dl}}A`{b{c}}}AjAh}{{{b{dn}}A`{b{c}}}AjAh}{{{b{dl}}A`{b{c}}}AjBj}{{{b{dn}}A`{b{c}}}AjBj}{{{b{dAn}}Ab}Aj}<;`{{{b{c}}}e{}{}}0000{c{{Bd{e}}}{}{}}000000000{{{b{c}}}Dh{}}0000``{{{b{dc}}A`{b{e}}}{{Bd{D`Db}}}DjAh}0{{{b{dc}}AbA`{b{e}}}{{Bd{D`Db}}}DjAh}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{}Dl}{{}Dn}{{}E`}{{}Eb}{{}Ed}{{}Ef}{{}Eh}{{}Ej}{{}El}{{}En}{{}F`}{{}Fb}{{}Fd}{{}Ff}{{}Fh}{{}Fj}{{}Fl}{{}Fn}{{}G`}{{}Gb}{{}Gd}{{}Gf}{{}Gh}{{}Gj}{{}Gl}{{}Gn}{{}H`}{{}Hb}{{}Hd}{{}Hf}{{}Hh}{{}Hj}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}```{{{b{Dl}}}j}{{{b{Dn}}}f}{{{b{E`}}}j}{{{b{Eb}}}j}{{{b{Ed}}}f}{{{b{Ef}}}Bf}{{{b{Eh}}}j}{{{b{Ej}}}f}{{{b{El}}}j}{{{b{En}}}f}{{{b{F`}}}f}{{{b{Fb}}}f}{{{b{Fd}}}Bf}{{{b{Ff}}}Bf}{{{b{Fh}}}f}{{{b{Fj}}}j}{{{b{Fl}}}Bf}{{{b{Fn}}}j}{{{b{G`}}}j}{{{b{Gb}}}f}{{{b{Gd}}}Bf}{{{b{Gf}}}Bf}{{{b{Gh}}}f}{{{b{Gj}}}j}{{{b{Gl}}}j}{{{b{Gn}}}Hl}{{{b{H`}}}Bf}{{{b{Hb}}}j}{{{b{Hd}}}j}{{{b{Hf}}}f}{{{b{Hh}}}j}{{{b{Hj}}}Hl}{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}```````{{{b{c}}}{{b{e}}}{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{dc}}}{{b{de}}}{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{Hn}}}Hn}{{{b{I`}}}I`}{{{b{Ib}}}Ib}{{{b{Id}}}Id}{{{b{If}}}If}{{{b{Ih}}}Ih}{{{b{Ij}}}Ij}{{{b{Il}}}Il}{{{b{In}}}In}{{{b{J`}}}J`}{{{b{Jb}}}Jb}{{{b{Jd}}}Jd}{{{b{Jf}}}Jf}{{{b{Jh}}}Jh}{{{b{Jj}}}Jj}{{{b{Jl}}}Jl}{{{b{Jn}}}Jn}{{{b{K`}}}K`}{{{b{Kb}}}Kb}{{{b{Kd}}}Kd}{{{b{Kf}}}Kf}{{{b{Kh}}}Kh}{{{b{Kj}}}Kj}{{{b{Kl}}}Kl}{{{b{Kn}}}Kn}{{{b{L`}}}L`}{{{b{Lb}}}Lb}{{{b{Ld}}}Ld}{{{b{Lf}}}Lf}{{{b{Lh}}}Lh}{{{b{Lj}}}Lj}{{{b{Ll}}}Ll}{{{b{Ln}}}Ln}{{{b{M`}}}M`}{{{b{Mb}}}Mb}{{{b{Md}}}Md}{{{b{Mf}}}Mf}{{{b{Mh}}}Mh}{{{b{Mj}}}Mj}{{{b{Ml}}}Ml}{{{b{Mn}}}Mn}{{{b{N`}}}N`}{{{b{Nb}}}Nb}{{{b{Nd}}}Nd}{{{b{Nf}}}Nf}{{{b{Nh}}}Nh}{{{b{Nj}}}Nj}{{{b{Nl}}}Nl}{{{b{Nn}}}Nn}{{{b{O`}}}O`}{{{b{Ob}}}Ob}{{{b{Od}}}Od}{{{b{Of}}}Of}{{{b{Oh}}}Oh}{{{b{Oj}}}Oj}{{{b{Ol}}}Ol}{{{b{On}}}On}{{{b{A@`}}}A@`}{{{b{A@b}}}A@b}{{{b{A@d}}}A@d}{{{b{A@f}}}A@f}{{{b{A@h}}}A@h}{{{b{A@j}}}A@j}{{{b{A@l}}}A@l}{{{b{A@n}}}A@n}{{{b{AA`}}}AA`}{{{b{AAb}}}AAb}{{{b{AAd}}}AAd}{{{b{AAf}}}AAf}{{{b{AAh}}}AAh}{{{b{AAj}}}AAj}{{{b{AAl}}}AAl}{{{b{AAn}}}AAn}{{{b{AB`}}}AB`}{{{b{ABb}}}ABb}{{{b{ABd}}}ABd}{{{b{ABf}}}ABf}{{{b{ABh}}}ABh}{{{b{ABj}}}ABj}{{{b{ABl}}}ABl}{{{b{ABn}}}ABn}{{{b{AC`}}}AC`}{{{b{ACb}}}ACb}{{{b{ACd}}}ACd}{{{b{ACf}}}ACf}{{{b{ACh}}}ACh}{{{b{ACj}}}ACj}{{{b{ACl}}}ACl}{{{b{ACn}}}ACn}{{{b{AD`}}}AD`}{{{b{ADb}}}ADb}{{{b{ADd}}}ADd}{{{b{ADf}}}ADf}{{{b{ADh}}}ADh}{{{b{ADj}}}ADj}{{{b{ADl}}}ADl}{{{b{ADn}}}ADn}{{{b{AE`}}}AE`}{{{b{AEb}}}AEb}{{{b{AEd}}}AEd}{{{b{AEf}}}AEf}{{{b{AEh}}}AEh}{{{b{AEj}}}AEj}{{{b{AEl}}}AEl}{{{b{AEn}}}AEn}{{{b{AF`}}}AF`}{{{b{AFb}}}AFb}{{{b{AFd}}}AFd}{{{b{AFf}}}AFf}{{{b{AFh}}}AFh}{{{b{AFj}}}AFj}{{{b{AFl}}}AFl}{{{b{AFn}}}AFn}{{{b{AG`}}}AG`}{{{b{AGb}}}AGb}{{{b{AGd}}}AGd}{{{b{AGf}}}AGf}{{{b{AGh}}}AGh}{{{b{AGj}}}AGj}{{{b{AGl}}}AGl}{{{b{AGn}}}AGn}{{{b{AH`}}}AH`}{{{b{AHb}}}AHb}{{{b{AHd}}}AHd}{{{b{AHf}}}AHf}{{{b{AHh}}}AHh}{{{b{AHj}}}AHj}{{{b{AHl}}}AHl}{{{b{AHn}}}AHn}{{{b{AI`}}}AI`}{{{b{AIb}}}AIb}{{{b{AId}}}AId}{{{b{AIf}}}AIf}{{{b{AIh}}}AIh}{{{b{AIj}}}AIj}{{{b{AIl}}}AIl}{{{b{AIn}}}AIn}{{{b{AJ`}}}AJ`}{{{b{AJb}}}AJb}{{{b{AJd}}}AJd}{{{b{AJf}}}AJf}{{{b{AJh}}}AJh}{{{b{AJj}}}AJj}{{{b{AJl}}}AJl}{{{b{AJn}}}AJn}{{{b{AK`}}}AK`}{{{b{AKb}}}AKb}{{{b{AKd}}}AKd}{{{b{AKf}}}AKf}{{{b{AKh}}}AKh}{{{b{AKj}}}AKj}{{{b{AKl}}}AKl}{{{b{AKn}}}AKn}{{{b{AL`}}}AL`}{{{b{ALb}}}ALb}{{{b{ALd}}}ALd}{{{b{ALf}}}ALf}{{{b{ALh}}}ALh}{{{b{ALj}}}ALj}{{{b{ALl}}}ALl}{{{b{ALn}}}ALn}{{{b{AM`}}}AM`}{{{b{AMb}}}AMb}{{{b{AMd}}}AMd}{{{b{AMf}}}AMf}{{{b{AMh}}}AMh}{{{b{AMj}}}AMj}{{{b{AMl}}}AMl}{{{b{AMn}}}AMn}{{{b{AN`}}}AN`}{{{b{ANb}}}ANb}{{{b{ANd}}}ANd}{{{b{ANf}}}ANf}{{{b{ANh}}}ANh}{{{b{ANj}}}ANj}{{{b{ANl}}}ANl}{{{b{ANn}}}ANn}{{{b{AO`}}}AO`}{{{b{AOb}}}AOb}{{{b{AOd}}}AOd}{{{b{AOf}}}AOf}{{{b{AOh}}}AOh}{{{b{AOj}}}AOj}{{{b{AOl}}}AOl}{{{b{AOn}}}AOn}{{{b{B@`}}}B@`}{{{b{B@b}}}B@b}{{{b{B@d}}}B@d}{{{b{B@f}}}B@f}{{{b{B@h}}}B@h}{{{b{B@j}}}B@j}{{{b{B@l}}}B@l}{{{b{B@n}}}B@n}{{{b{BA`}}}BA`}{{{b{BAb}}}BAb}{{{b{BAd}}}BAd}{{{b{BAf}}}BAf}{{{b{BAh}}}BAh}{{{b{BAj}}}BAj}{{{b{BAl}}}BAl}{{{b{BAn}}}BAn}{{{b{BB`}}}BB`}{{{b{BBb}}}BBb}{{{b{BBd}}}BBd}{{{b{BBf}}}BBf}{{{b{BBh}}}BBh}{{{b{BBj}}}BBj}{{{b{BBl}}}BBl}{{{b{BBn}}}BBn}{{{b{BC`}}}BC`}{{{b{BCb}}}BCb}{{{b{BCd}}}BCd}{{{b{BCf}}}BCf}{{{b{BCh}}}BCh}{{{b{BCj}}}BCj}{{{b{BCl}}}BCl}{{{b{BCn}}}BCn}{{{b{BD`}}}BD`}{{{b{BDb}}}BDb}{{{b{BDd}}}BDd}{{{b{BDf}}}BDf}{{{b{BDh}}}BDh}{{{b{BDj}}}BDj}{{{b{BDl}}}BDl}{{{b{BDn}}}BDn}{{{b{BE`}}}BE`}{{{b{BEb}}}BEb}{{{b{BEd}}}BEd}{{{b{BEf}}}BEf}{{{b{BEh}}}BEh}{{{b{BEj}}}BEj}{{{b{BEl}}}BEl}{{{b{BEn}}}BEn}{{{b{BF`}}}BF`}{{{b{BFb}}}BFb}{{{b{BFd}}}BFd}{{{b{BFf}}}BFf}{{{b{BFh}}}BFh}{{{b{BFj}}}BFj}{{{b{BFl}}}BFl}{{{b{BFn}}}BFn}{{{b{BG`}}}BG`}{{{b{BGb}}}BGb}{{{b{BGd}}}BGd}{{{b{BGf}}}BGf}{{{b{BGh}}}BGh}{{{b{BGj}}}BGj}{{{b{BGl}}}BGl}{{{b{BGn}}}BGn}{{{b{BH`}}}BH`}{{{b{BHb}}}BHb}{{{b{BHd}}}BHd}{{{b{BHf}}}BHf}{{{b{BHh}}}BHh}{{{b{BHj}}}BHj}{{{b{BHl}}}BHl}{{{b{BHn}}}BHn}{{{b{BI`}}}BI`}{{{b{BIb}}}BIb}{{{b{BId}}}BId}{{{b{BIf}}}BIf}{{{b{BIh}}}BIh}{{{b{BIj}}}BIj}{{{b{BIl}}}BIl}{{{b{BIn}}}BIn}{{{b{BJ`}}}BJ`}{{{b{BJb}}}BJb}{{{b{BJd}}}BJd}{{{b{BJf}}}BJf}{{{b{BJh}}}BJh}{{{b{BJj}}}BJj}{{{b{BJl}}}BJl}{{{b{BJn}}}BJn}{{{b{BK`}}}BK`}{{{b{BKb}}}BKb}{{{b{BKd}}}BKd}{{{b{BKf}}}BKf}{{{b{BKh}}}BKh}{{{b{BKj}}}BKj}{{{b{BKl}}}BKl}{{{b{BKn}}}BKn}{{{b{BL`}}}BL`}{{{b{BLb}}}BLb}{{{b{BLd}}}BLd}{{{b{BLf}}}BLf}{{{b{BLh}}}BLh}{{{b{BLj}}}BLj}{{{b{BLl}}}BLl}{{{b{BLn}}}BLn}{{{b{BM`}}}BM`}{{{b{BMb}}}BMb}{{{b{BMd}}}BMd}{{{b{BMf}}}BMf}{{{b{BMh}}}BMh}{{{b{BMj}}}BMj}{{{b{BMl}}}BMl}{{{b{BMn}}}BMn}{{{b{BN`}}}BN`}{{{b{BNb}}}BNb}{{{b{Dl}}}Dl}{{{b{BNd}}}BNd}{{{b{BNf}}}BNf}{{{b{BNh}}}BNh}{{{b{Dn}}}Dn}{{{b{BNj}}}BNj}{{{b{BNl}}}BNl}{{{b{E`}}}E`}{{{b{BNn}}}BNn}{{{b{BO`}}}BO`}{{{b{Eb}}}Eb}{{{b{BOb}}}BOb}{{{b{BOd}}}BOd}{{{b{Ed}}}Ed}{{{b{BOf}}}BOf}{{{b{BOh}}}BOh}{{{b{BOj}}}BOj}{{{b{BOl}}}BOl}{{{b{BOn}}}BOn}{{{b{C@`}}}C@`}{{{b{C@b}}}C@b}{{{b{C@d}}}C@d}{{{b{C@f}}}C@f}{{{b{C@h}}}C@h}{{{b{C@j}}}C@j}{{{b{C@l}}}C@l}{{{b{C@n}}}C@n}{{{b{CA`}}}CA`}{{{b{CAb}}}CAb}{{{b{CAd}}}CAd}{{{b{CAf}}}CAf}{{{b{CAh}}}CAh}{{{b{Ef}}}Ef}{{{b{CAj}}}CAj}{{{b{CAl}}}CAl}{{{b{CAn}}}CAn}{{{b{CB`}}}CB`}{{{b{CBb}}}CBb}{{{b{CBd}}}CBd}{{{b{CBf}}}CBf}{{{b{CBh}}}CBh}{{{b{Eh}}}Eh}{{{b{Ej}}}Ej}{{{b{CBj}}}CBj}{{{b{CBl}}}CBl}{{{b{CBn}}}CBn}{{{b{CC`}}}CC`}{{{b{El}}}El}{{{b{CCb}}}CCb}{{{b{En}}}En}{{{b{F`}}}F`}{{{b{CCd}}}CCd}{{{b{CCf}}}CCf}{{{b{CCh}}}CCh}{{{b{Fb}}}Fb}{{{b{CCj}}}CCj}{{{b{CCl}}}CCl}{{{b{CCn}}}CCn}{{{b{CD`}}}CD`}{{{b{CDb}}}CDb}{{{b{CDd}}}CDd}{{{b{CDf}}}CDf}{{{b{CDh}}}CDh}{{{b{CDj}}}CDj}{{{b{CDl}}}CDl}{{{b{CDn}}}CDn}{{{b{CE`}}}CE`}{{{b{CEb}}}CEb}{{{b{CEd}}}CEd}{{{b{CEf}}}CEf}{{{b{CEh}}}CEh}{{{b{CEj}}}CEj}{{{b{CEl}}}CEl}{{{b{CEn}}}CEn}{{{b{Fd}}}Fd}{{{b{CF`}}}CF`}{{{b{CFb}}}CFb}{{{b{CFd}}}CFd}{{{b{CFf}}}CFf}{{{b{Ff}}}Ff}{{{b{CFh}}}CFh}{{{b{Fh}}}Fh}{{{b{CFj}}}CFj}{{{b{CFl}}}CFl}{{{b{CFn}}}CFn}{{{b{Fj}}}Fj}{{{b{CG`}}}CG`}{{{b{CGb}}}CGb}{{{b{CGd}}}CGd}{{{b{CGf}}}CGf}{{{b{CGh}}}CGh}{{{b{CGj}}}CGj}{{{b{CGl}}}CGl}{{{b{CGn}}}CGn}{{{b{CH`}}}CH`}{{{b{CHb}}}CHb}{{{b{CHd}}}CHd}{{{b{CHf}}}CHf}{{{b{CHh}}}CHh}{{{b{CHj}}}CHj}{{{b{CHl}}}CHl}{{{b{CHn}}}CHn}{{{b{CI`}}}CI`}{{{b{CIb}}}CIb}{{{b{Fl}}}Fl}{{{b{CId}}}CId}{{{b{CIf}}}CIf}{{{b{Fn}}}Fn}{{{b{CIh}}}CIh}{{{b{CIj}}}CIj}{{{b{CIl}}}CIl}{{{b{CIn}}}CIn}{{{b{CJ`}}}CJ`}{{{b{CJb}}}CJb}{{{b{CJd}}}CJd}{{{b{CJf}}}CJf}{{{b{CJh}}}CJh}{{{b{CJj}}}CJj}{{{b{CJl}}}CJl}{{{b{CJn}}}CJn}{{{b{CK`}}}CK`}{{{b{CKb}}}CKb}{{{b{CKd}}}CKd}{{{b{CKf}}}CKf}{{{b{CKh}}}CKh}{{{b{CKj}}}CKj}{{{b{CKl}}}CKl}{{{b{CKn}}}CKn}{{{b{CL`}}}CL`}{{{b{CLb}}}CLb}{{{b{CLd}}}CLd}{{{b{G`}}}G`}{{{b{CLf}}}CLf}{{{b{CLh}}}CLh}{{{b{CLj}}}CLj}{{{b{CLl}}}CLl}{{{b{CLn}}}CLn}{{{b{CM`}}}CM`}{{{b{CMb}}}CMb}{{{b{CMd}}}CMd}{{{b{CMf}}}CMf}{{{b{CMh}}}CMh}{{{b{Gb}}}Gb}{{{b{CMj}}}CMj}{{{b{CMl}}}CMl}{{{b{CMn}}}CMn}{{{b{CN`}}}CN`}{{{b{CNb}}}CNb}{{{b{CNd}}}CNd}{{{b{CNf}}}CNf}{{{b{CNh}}}CNh}{{{b{CNj}}}CNj}{{{b{CNl}}}CNl}{{{b{CNn}}}CNn}{{{b{CO`}}}CO`}{{{b{COb}}}COb}{{{b{Gd}}}Gd}{{{b{COd}}}COd}{{{b{COf}}}COf}{{{b{COh}}}COh}{{{b{Gf}}}Gf}{{{b{COj}}}COj}{{{b{COl}}}COl}{{{b{COn}}}COn}{{{b{Gh}}}Gh}{{{b{Gj}}}Gj}{{{b{D@`}}}D@`}{{{b{Gl}}}Gl}{{{b{D@b}}}D@b}{{{b{D@d}}}D@d}{{{b{D@f}}}D@f}{{{b{D@h}}}D@h}{{{b{D@j}}}D@j}{{{b{Gn}}}Gn}{{{b{H`}}}H`}{{{b{Hb}}}Hb}{{{b{Hd}}}Hd}{{{b{D@l}}}D@l}{{{b{D@n}}}D@n}{{{b{DA`}}}DA`}{{{b{Hf}}}Hf}{{{b{DAb}}}DAb}{{{b{DAd}}}DAd}{{{b{DAf}}}DAf}{{{b{DAh}}}DAh}{{{b{DAj}}}DAj}{{{b{DAl}}}DAl}{{{b{Hh}}}Hh}{{{b{DAn}}}DAn}{{{b{Hj}}}Hj}{{{b{DB`}}}DB`}{{{b{c}}{b{de}}}Aj{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000````{{{b{Dl}}{b{Dl}}}DBb}{{{b{Dn}}{b{Dn}}}DBb}{{{b{E`}}{b{E`}}}DBb}{{{b{Eb}}{b{Eb}}}DBb}{{{b{Ed}}{b{Ed}}}DBb}{{{b{Ef}}{b{Ef}}}DBb}{{{b{Eh}}{b{Eh}}}DBb}{{{b{Ej}}{b{Ej}}}DBb}{{{b{El}}{b{El}}}DBb}{{{b{En}}{b{En}}}DBb}{{{b{F`}}{b{F`}}}DBb}{{{b{Fb}}{b{Fb}}}DBb}{{{b{Fd}}{b{Fd}}}DBb}{{{b{Ff}}{b{Ff}}}DBb}{{{b{Fh}}{b{Fh}}}DBb}{{{b{Fj}}{b{Fj}}}DBb}{{{b{Fl}}{b{Fl}}}DBb}{{{b{Fn}}{b{Fn}}}DBb}{{{b{G`}}{b{G`}}}DBb}{{{b{Gb}}{b{Gb}}}DBb}{{{b{Gd}}{b{Gd}}}DBb}{{{b{Gf}}{b{Gf}}}DBb}{{{b{Gh}}{b{Gh}}}DBb}{{{b{Gj}}{b{Gj}}}DBb}{{{b{Gl}}{b{Gl}}}DBb}{{{b{Gn}}{b{Gn}}}DBb}{{{b{H`}}{b{H`}}}DBb}{{{b{Hb}}{b{Hb}}}DBb}{{{b{Hd}}{b{Hd}}}DBb}{{{b{Hf}}{b{Hf}}}DBb}{{{b{Hh}}{b{Hh}}}DBb}{{{b{Hj}}{b{Hj}}}DBb}````````````````{DlDl}{DnDn}{E`E`}{EbEb}{EdEd}{EfEf}{EhEh}{EjEj}{ElEl}{EnEn}{F`F`}{FbFb}{FdFd}{FfFf}{FhFh}{FjFj}{FlFl}{FnFn}{G`G`}{GbGb}{GdGd}{GfGf}{GhGh}{GjGj}{GlGl}{GnGn}{H`H`}{HbHb}{HdHd}{HfHf}{HhHh}{HjHj}```````{{{b{Dl}}Dl}C`}{{{b{Dn}}Dn}C`}{{{b{E`}}E`}C`}{{{b{Eb}}Eb}C`}{{{b{Ed}}Ed}C`}{{{b{Ef}}Ef}C`}{{{b{Eh}}Eh}C`}{{{b{Ej}}Ej}C`}{{{b{El}}El}C`}{{{b{En}}En}C`}{{{b{F`}}F`}C`}{{{b{Fb}}Fb}C`}{{{b{Fd}}Fd}C`}{{{b{Ff}}Ff}C`}{{{b{Fh}}Fh}C`}{{{b{Fj}}Fj}C`}{{{b{Fl}}Fl}C`}{{{b{Fn}}Fn}C`}{{{b{G`}}G`}C`}{{{b{Gb}}Gb}C`}{{{b{Gd}}Gd}C`}{{{b{Gf}}Gf}C`}{{{b{Gh}}Gh}C`}{{{b{Gj}}Gj}C`}{{{b{Gl}}Gl}C`}{{{b{Gn}}Gn}C`}{{{b{H`}}H`}C`}{{{b{Hb}}Hb}C`}{{{b{Hd}}Hd}C`}{{{b{Hf}}Hf}C`}{{{b{Hh}}Hh}C`}{{{b{Hj}}Hj}C`}````````````````````````````````````````````````````````````````````````````````{{}I`}{{}Ib}{{}Id}{{}If}{{}Ih}{{}Ij}{{}Il}{{}In}{{}J`}{{}Jb}{{}Jd}{{}Jf}{{}Jh}{{}Jj}{{}Jl}{{}Jn}{{}K`}{{}Kb}{{}Kd}{{}Kf}{{}Kh}{{}Kj}{{}Kl}{{}Kn}{{}L`}{{}Lb}{{}Ld}{{}Lf}{{}Lh}{{}Lj}{{}Ll}{{}Ln}{{}M`}{{}Mb}{{}Md}{{}Mf}{{}Mh}{{}Mj}{{}Ml}{{}Mn}{{}N`}{{}Nb}{{}Nd}{{}Nf}{{}Nh}{{}Nj}{{}Nl}{{}Nn}{{}O`}{{}Ob}{{}Od}{{}Of}{{}Oh}{{}Oj}{{}Ol}{{}On}{{}A@`}{{}A@b}{{}A@d}{{}A@f}{{}A@h}{{}A@j}{{}A@l}{{}A@n}{{}AA`}{{}AAb}{{}AAd}{{}AAf}{{}AAh}{{}AAj}{{}AAl}{{}AAn}{{}AB`}{{}ABb}{{}ABd}{{}ABf}{{}ABh}{{}ABj}{{}ABl}{{}ABn}{{}AC`}{{}ACb}{{}ACd}{{}ACf}{{}ACh}{{}ACj}{{}ACl}{{}ACn}{{}AD`}{{}ADb}{{}ADd}{{}ADf}{{}ADh}{{}ADj}{{}ADl}{{}ADn}{{}AE`}{{}AEb}{{}AEd}{{}AEf}{{}AEh}{{}AEj}{{}AEl}{{}AEn}{{}AF`}{{}AFb}{{}AFd}{{}AFf}{{}AFh}{{}AFj}{{}AFl}{{}AFn}{{}AG`}{{}AGb}{{}AGd}{{}AGf}{{}AGh}{{}AGj}{{}AGl}{{}AGn}{{}AH`}{{}AHb}{{}AHd}{{}AHf}{{}AHh}{{}AHj}{{}AHl}{{}AHn}{{}AI`}{{}AIb}{{}AId}{{}AIf}{{}AIh}{{}AIj}{{}AIl}{{}AIn}{{}AJ`}{{}AJb}{{}AJd}{{}AJf}{{}AJh}{{}AJj}{{}AJl}{{}AJn}{{}AK`}{{}AKb}{{}AKd}{{}AKf}{{}AKh}{{}AKj}{{}AKl}{{}AKn}{{}AL`}{{}ALb}{{}ALd}{{}ALf}{{}ALh}{{}ALj}{{}ALl}{{}ALn}{{}AM`}{{}AMb}{{}AMd}{{}AMf}{{}AMh}{{}AMj}{{}AMl}{{}AMn}{{}AN`}{{}ANb}{{}ANd}{{}ANf}{{}ANh}{{}ANj}{{}ANl}{{}ANn}{{}AO`}{{}AOb}{{}AOd}{{}AOf}{{}AOh}{{}AOj}{{}AOl}{{}AOn}{{}B@`}{{}B@b}{{}B@d}{{}B@f}{{}B@h}{{}B@j}{{}B@l}{{}B@n}{{}BA`}{{}BAb}{{}BAd}{{}BAf}{{}BAh}{{}BAj}{{}BAl}{{}BAn}{{}BB`}{{}BBb}{{}BBd}{{}BBf}{{}BBh}{{}BBj}{{}BBl}{{}BBn}{{}BC`}{{}BCb}{{}BCd}{{}BCf}{{}BCh}{{}BCj}{{}BCl}{{}BCn}{{}BD`}{{}BDb}{{}BDd}{{}BDf}{{}BDh}{{}BDj}{{}BDl}{{}BDn}{{}BE`}{{}BEb}{{}BEd}{{}BEf}{{}BEh}{{}BEj}{{}BEl}{{}BEn}{{}BF`}{{}BFb}{{}BFd}{{}BFf}{{}BFh}{{}BFj}{{}BFl}{{}BFn}{{}BG`}{{}BGb}{{}BGd}{{}BGf}{{}BGh}{{}BGj}{{}BGl}{{}BGn}{{}BH`}{{}BHb}{{}BHd}{{}BHf}{{}BHh}{{}BHj}{{}BHl}{{}BHn}{{}BI`}{{}BIb}{{}BId}{{}BIf}{{}BIh}{{}BIj}{{}BIl}{{}BIn}{{}BJ`}{{}BJb}{{}BJd}{{}BJf}{{}BJh}{{}BJj}{{}BJl}{{}BJn}{{}BK`}{{}BKb}{{}BKd}{{}BKf}{{}BKh}{{}BKj}{{}BKl}{{}BKn}{{}BL`}{{}BLb}{{}BLd}{{}BLf}{{}BLh}{{}BLj}{{}BLl}{{}BLn}{{}BM`}{{}BMb}{{}BMd}{{}BMf}{{}BMh}{{}BMj}{{}BMl}{{}BMn}{{}BN`}{{}BNb}{{}Dl}{{}BNd}{{}BNf}{{}BNh}{{}Dn}{{}BNj}{{}BNl}{{}E`}{{}BNn}{{}BO`}{{}Eb}{{}BOb}{{}BOd}{{}Ed}{{}BOf}{{}BOh}{{}BOj}{{}BOl}{{}BOn}{{}C@`}{{}C@b}{{}C@d}{{}C@f}{{}C@h}{{}C@j}{{}C@l}{{}C@n}{{}CA`}{{}CAb}{{}CAd}{{}CAf}{{}CAh}{{}Ef}{{}CAj}{{}CAl}{{}CAn}{{}CB`}{{}CBb}{{}CBd}{{}CBf}{{}CBh}{{}Eh}{{}Ej}{{}CBj}{{}CBl}{{}CBn}{{}CC`}{{}El}{{}CCb}{{}En}{{}F`}{{}CCd}{{}CCf}{{}CCh}{{}Fb}{{}CCj}{{}CCl}{{}CCn}{{}CD`}{{}CDb}{{}CDd}{{}CDf}{{}CDh}{{}CDj}{{}CDl}{{}CDn}{{}CE`}{{}CEb}{{}CEd}{{}CEf}{{}CEh}{{}CEj}{{}CEl}{{}CEn}{{}Fd}{{}CF`}{{}CFb}{{}CFd}{{}CFf}{{}Ff}{{}CFh}{{}Fh}{{}CFj}{{}CFl}{{}CFn}{{}Fj}{{}CG`}{{}CGb}{{}CGd}{{}CGf}{{}CGh}{{}CGj}{{}CGl}{{}CGn}{{}CH`}{{}CHb}{{}CHd}{{}CHf}{{}CHh}{{}CHj}{{}CHl}{{}CHn}{{}CI`}{{}CIb}{{}Fl}{{}CId}{{}CIf}{{}Fn}{{}CIh}{{}CIj}{{}CIl}{{}CIn}{{}CJ`}{{}CJb}{{}CJd}{{}CJf}{{}CJh}{{}CJj}{{}CJl}{{}CJn}{{}CK`}{{}CKb}{{}CKd}{{}CKf}{{}CKh}{{}CKj}{{}CKl}{{}CKn}{{}CL`}{{}CLb}{{}CLd}{{}G`}{{}CLf}{{}CLh}{{}CLj}{{}CLl}{{}CLn}{{}CM`}{{}CMb}{{}CMd}{{}CMf}{{}CMh}{{}Gb}{{}CMj}{{}CMl}{{}CMn}{{}CN`}{{}CNb}{{}CNd}{{}CNf}{{}CNh}{{}CNj}{{}CNl}{{}CNn}{{}CO`}{{}COb}{{}Gd}{{}COd}{{}COf}{{}COh}{{}Gf}{{}COj}{{}COl}{{}COn}{{}Gh}{{}Gj}{{}D@`}{{}Gl}{{}D@b}{{}D@d}{{}D@f}{{}D@h}{{}D@j}{{}Gn}{{}H`}{{}Hb}{{}Hd}{{}D@l}{{}D@n}{{}DA`}{{}Hf}{{}DAb}{{}DAd}{{}DAf}{{}DAh}{{}DAj}{{}DAl}{{}Hh}{{}DAn}{{}Hj}{{}DB`}{Bf{{Bd{Hn{b{Al}}}}}}`````````````{{Ab{b{{h{f}}}}}{{Bd{I`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{IbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{IdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{IfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{IhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{IjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{IlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{InBl}}}}{{Ab{b{{h{f}}}}}{{Bd{J`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{JbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{JdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{JfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{JhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{JjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{JlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{JnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{K`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{KbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{KdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{KfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{KhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{KjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{KlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{KnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{L`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{LbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{LdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{LfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{LhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{LjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{LlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{LnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{M`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{MbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{MdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{MfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{MhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{MjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{MlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{MnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{N`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{NbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{NdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{NfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{NhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{NjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{NlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{NnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{O`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ObBl}}}}{{Ab{b{{h{f}}}}}{{Bd{OdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{OfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{OhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{OjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{OlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{OnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@bBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@dBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@fBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@hBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@jBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@lBl}}}}{{Ab{b{{h{f}}}}}{{Bd{A@nBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AA`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AAnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AB`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ABnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AC`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ACbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ACdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ACfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AChBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ACjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AClBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ACnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AD`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ADnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AE`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AEbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AEdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AEfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AEhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AEjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AElBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AEnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AF`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AFnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AG`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AGnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AH`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AHnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AI`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AIbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AIdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AIfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AIhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AIjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AIlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AInBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJ`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AJnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AK`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AKnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AL`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ALnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AM`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AMnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AN`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ANnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AO`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{AObBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AOdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AOfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AOhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AOjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AOlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{AOnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@bBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@dBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@fBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@hBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@jBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@lBl}}}}{{Ab{b{{h{f}}}}}{{Bd{B@nBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BA`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BAnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BB`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BBnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BC`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BCbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BCdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BCfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BChBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BCjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BClBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BCnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BD`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BDnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BE`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BEbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BEdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BEfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BEhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BEjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BElBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BEnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BF`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BFnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BG`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BGnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BH`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BHnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BI`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BIbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BIdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BIfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BIhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BIjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BIlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BInBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJ`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BJnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BK`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BKnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BL`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BLnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BM`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{BMnBl}}}}{c{{Bd{Hn}}}Bn}{c{{Bd{I`}}}Bn}{c{{Bd{Ib}}}Bn}{c{{Bd{Id}}}Bn}{c{{Bd{If}}}Bn}{c{{Bd{Ih}}}Bn}{c{{Bd{Ij}}}Bn}{c{{Bd{Il}}}Bn}{c{{Bd{In}}}Bn}{c{{Bd{J`}}}Bn}{c{{Bd{Jb}}}Bn}{c{{Bd{Jd}}}Bn}{c{{Bd{Jf}}}Bn}{c{{Bd{Jh}}}Bn}{c{{Bd{Jj}}}Bn}{c{{Bd{Jl}}}Bn}{c{{Bd{Jn}}}Bn}{c{{Bd{K`}}}Bn}{c{{Bd{Kb}}}Bn}{c{{Bd{Kd}}}Bn}{c{{Bd{Kf}}}Bn}{c{{Bd{Kh}}}Bn}{c{{Bd{Kj}}}Bn}{c{{Bd{Kl}}}Bn}{c{{Bd{Kn}}}Bn}{c{{Bd{L`}}}Bn}{c{{Bd{Lb}}}Bn}{c{{Bd{Ld}}}Bn}{c{{Bd{Lf}}}Bn}{c{{Bd{Lh}}}Bn}{c{{Bd{Lj}}}Bn}{c{{Bd{Ll}}}Bn}{c{{Bd{Ln}}}Bn}{c{{Bd{M`}}}Bn}{c{{Bd{Mb}}}Bn}{c{{Bd{Md}}}Bn}{c{{Bd{Mf}}}Bn}{c{{Bd{Mh}}}Bn}{c{{Bd{Mj}}}Bn}{c{{Bd{Ml}}}Bn}{c{{Bd{Mn}}}Bn}{c{{Bd{N`}}}Bn}{c{{Bd{Nb}}}Bn}{c{{Bd{Nd}}}Bn}{c{{Bd{Nf}}}Bn}{c{{Bd{Nh}}}Bn}{c{{Bd{Nj}}}Bn}{c{{Bd{Nl}}}Bn}{c{{Bd{Nn}}}Bn}{c{{Bd{O`}}}Bn}{c{{Bd{Ob}}}Bn}{c{{Bd{Od}}}Bn}{c{{Bd{Of}}}Bn}{c{{Bd{Oh}}}Bn}{c{{Bd{Oj}}}Bn}{c{{Bd{Ol}}}Bn}{c{{Bd{On}}}Bn}{c{{Bd{A@`}}}Bn}{c{{Bd{A@b}}}Bn}{c{{Bd{A@d}}}Bn}{c{{Bd{A@f}}}Bn}{c{{Bd{A@h}}}Bn}{c{{Bd{A@j}}}Bn}{c{{Bd{A@l}}}Bn}{c{{Bd{A@n}}}Bn}{c{{Bd{AA`}}}Bn}{c{{Bd{AAb}}}Bn}{c{{Bd{AAd}}}Bn}{c{{Bd{AAf}}}Bn}{c{{Bd{AAh}}}Bn}{c{{Bd{AAj}}}Bn}{c{{Bd{AAl}}}Bn}{c{{Bd{AAn}}}Bn}{c{{Bd{AB`}}}Bn}{c{{Bd{ABb}}}Bn}{c{{Bd{ABd}}}Bn}{c{{Bd{ABf}}}Bn}{c{{Bd{ABh}}}Bn}{c{{Bd{ABj}}}Bn}{c{{Bd{ABl}}}Bn}{c{{Bd{ABn}}}Bn}{c{{Bd{AC`}}}Bn}{c{{Bd{ACb}}}Bn}{c{{Bd{ACd}}}Bn}{c{{Bd{ACf}}}Bn}{c{{Bd{ACh}}}Bn}{c{{Bd{ACj}}}Bn}{c{{Bd{ACl}}}Bn}{c{{Bd{ACn}}}Bn}{c{{Bd{AD`}}}Bn}{c{{Bd{ADb}}}Bn}{c{{Bd{ADd}}}Bn}{c{{Bd{ADf}}}Bn}{c{{Bd{ADh}}}Bn}{c{{Bd{ADj}}}Bn}{c{{Bd{ADl}}}Bn}{c{{Bd{ADn}}}Bn}{c{{Bd{AE`}}}Bn}{c{{Bd{AEb}}}Bn}{c{{Bd{AEd}}}Bn}{c{{Bd{AEf}}}Bn}{c{{Bd{AEh}}}Bn}{c{{Bd{AEj}}}Bn}{c{{Bd{AEl}}}Bn}{c{{Bd{AEn}}}Bn}{c{{Bd{AF`}}}Bn}{c{{Bd{AFb}}}Bn}{c{{Bd{AFd}}}Bn}{c{{Bd{AFf}}}Bn}{c{{Bd{AFh}}}Bn}{c{{Bd{AFj}}}Bn}{c{{Bd{AFl}}}Bn}{c{{Bd{AFn}}}Bn}{c{{Bd{AG`}}}Bn}{c{{Bd{AGb}}}Bn}{c{{Bd{AGd}}}Bn}{c{{Bd{AGf}}}Bn}{c{{Bd{AGh}}}Bn}{c{{Bd{AGj}}}Bn}{c{{Bd{AGl}}}Bn}{c{{Bd{AGn}}}Bn}{c{{Bd{AH`}}}Bn}{c{{Bd{AHb}}}Bn}{c{{Bd{AHd}}}Bn}{c{{Bd{AHf}}}Bn}{c{{Bd{AHh}}}Bn}{c{{Bd{AHj}}}Bn}{c{{Bd{AHl}}}Bn}{c{{Bd{AHn}}}Bn}{c{{Bd{AI`}}}Bn}{c{{Bd{AIb}}}Bn}{c{{Bd{AId}}}Bn}{c{{Bd{AIf}}}Bn}{c{{Bd{AIh}}}Bn}{c{{Bd{AIj}}}Bn}{c{{Bd{AIl}}}Bn}{c{{Bd{AIn}}}Bn}{c{{Bd{AJ`}}}Bn}{c{{Bd{AJb}}}Bn}{c{{Bd{AJd}}}Bn}{c{{Bd{AJf}}}Bn}{c{{Bd{AJh}}}Bn}{c{{Bd{AJj}}}Bn}{c{{Bd{AJl}}}Bn}{c{{Bd{AJn}}}Bn}{c{{Bd{AK`}}}Bn}{c{{Bd{AKb}}}Bn}{c{{Bd{AKd}}}Bn}{c{{Bd{AKf}}}Bn}{c{{Bd{AKh}}}Bn}{c{{Bd{AKj}}}Bn}{c{{Bd{AKl}}}Bn}{c{{Bd{AKn}}}Bn}{c{{Bd{AL`}}}Bn}{c{{Bd{ALb}}}Bn}{c{{Bd{ALd}}}Bn}{c{{Bd{ALf}}}Bn}{c{{Bd{ALh}}}Bn}{c{{Bd{ALj}}}Bn}{c{{Bd{ALl}}}Bn}{c{{Bd{ALn}}}Bn}{c{{Bd{AM`}}}Bn}{c{{Bd{AMb}}}Bn}{c{{Bd{AMd}}}Bn}{c{{Bd{AMf}}}Bn}{c{{Bd{AMh}}}Bn}{c{{Bd{AMj}}}Bn}{c{{Bd{AMl}}}Bn}{c{{Bd{AMn}}}Bn}{c{{Bd{AN`}}}Bn}{c{{Bd{ANb}}}Bn}{c{{Bd{ANd}}}Bn}{c{{Bd{ANf}}}Bn}{c{{Bd{ANh}}}Bn}{c{{Bd{ANj}}}Bn}{c{{Bd{ANl}}}Bn}{c{{Bd{ANn}}}Bn}{c{{Bd{AO`}}}Bn}{c{{Bd{AOb}}}Bn}{c{{Bd{AOd}}}Bn}{c{{Bd{AOf}}}Bn}{c{{Bd{AOh}}}Bn}{c{{Bd{AOj}}}Bn}{c{{Bd{AOl}}}Bn}{c{{Bd{AOn}}}Bn}{c{{Bd{B@`}}}Bn}{c{{Bd{B@b}}}Bn}{c{{Bd{B@d}}}Bn}{c{{Bd{B@f}}}Bn}{c{{Bd{B@h}}}Bn}{c{{Bd{B@j}}}Bn}{c{{Bd{B@l}}}Bn}{c{{Bd{B@n}}}Bn}{c{{Bd{BA`}}}Bn}{c{{Bd{BAb}}}Bn}{c{{Bd{BAd}}}Bn}{c{{Bd{BAf}}}Bn}{c{{Bd{BAh}}}Bn}{c{{Bd{BAj}}}Bn}{c{{Bd{BAl}}}Bn}{c{{Bd{BAn}}}Bn}{c{{Bd{BB`}}}Bn}{c{{Bd{BBb}}}Bn}{c{{Bd{BBd}}}Bn}{c{{Bd{BBf}}}Bn}{c{{Bd{BBh}}}Bn}{c{{Bd{BBj}}}Bn}{c{{Bd{BBl}}}Bn}{c{{Bd{BBn}}}Bn}{c{{Bd{BC`}}}Bn}{c{{Bd{BCb}}}Bn}{c{{Bd{BCd}}}Bn}{c{{Bd{BCf}}}Bn}{c{{Bd{BCh}}}Bn}{c{{Bd{BCj}}}Bn}{c{{Bd{BCl}}}Bn}{c{{Bd{BCn}}}Bn}{c{{Bd{BD`}}}Bn}{c{{Bd{BDb}}}Bn}{c{{Bd{BDd}}}Bn}{c{{Bd{BDf}}}Bn}{c{{Bd{BDh}}}Bn}{c{{Bd{BDj}}}Bn}{c{{Bd{BDl}}}Bn}{c{{Bd{BDn}}}Bn}{c{{Bd{BE`}}}Bn}{c{{Bd{BEb}}}Bn}{c{{Bd{BEd}}}Bn}{c{{Bd{BEf}}}Bn}{c{{Bd{BEh}}}Bn}{c{{Bd{BEj}}}Bn}{c{{Bd{BEl}}}Bn}{c{{Bd{BEn}}}Bn}{c{{Bd{BF`}}}Bn}{c{{Bd{BFb}}}Bn}{c{{Bd{BFd}}}Bn}{c{{Bd{BFf}}}Bn}{c{{Bd{BFh}}}Bn}{c{{Bd{BFj}}}Bn}{c{{Bd{BFl}}}Bn}{c{{Bd{BFn}}}Bn}{c{{Bd{BG`}}}Bn}{c{{Bd{BGb}}}Bn}{c{{Bd{BGd}}}Bn}{c{{Bd{BGf}}}Bn}{c{{Bd{BGh}}}Bn}{c{{Bd{BGj}}}Bn}{c{{Bd{BGl}}}Bn}{c{{Bd{BGn}}}Bn}{c{{Bd{BH`}}}Bn}{c{{Bd{BHb}}}Bn}{c{{Bd{BHd}}}Bn}{c{{Bd{BHf}}}Bn}{c{{Bd{BHh}}}Bn}{c{{Bd{BHj}}}Bn}{c{{Bd{BHl}}}Bn}{c{{Bd{BHn}}}Bn}{c{{Bd{BI`}}}Bn}{c{{Bd{BIb}}}Bn}{c{{Bd{BId}}}Bn}{c{{Bd{BIf}}}Bn}{c{{Bd{BIh}}}Bn}{c{{Bd{BIj}}}Bn}{c{{Bd{BIl}}}Bn}{c{{Bd{BIn}}}Bn}{c{{Bd{BJ`}}}Bn}{c{{Bd{BJb}}}Bn}{c{{Bd{BJd}}}Bn}{c{{Bd{BJf}}}Bn}{c{{Bd{BJh}}}Bn}{c{{Bd{BJj}}}Bn}{c{{Bd{BJl}}}Bn}{c{{Bd{BJn}}}Bn}{c{{Bd{BK`}}}Bn}{c{{Bd{BKb}}}Bn}{c{{Bd{BKd}}}Bn}{c{{Bd{BKf}}}Bn}{c{{Bd{BKh}}}Bn}{c{{Bd{BKj}}}Bn}{c{{Bd{BKl}}}Bn}{c{{Bd{BKn}}}Bn}{c{{Bd{BL`}}}Bn}{c{{Bd{BLb}}}Bn}{c{{Bd{BLd}}}Bn}{c{{Bd{BLf}}}Bn}{c{{Bd{BLh}}}Bn}{c{{Bd{BLj}}}Bn}{c{{Bd{BLl}}}Bn}{c{{Bd{BLn}}}Bn}{c{{Bd{BM`}}}Bn}{c{{Bd{BMb}}}Bn}{c{{Bd{BMd}}}Bn}{c{{Bd{BMf}}}Bn}{c{{Bd{BMh}}}Bn}{c{{Bd{BMj}}}Bn}{c{{Bd{BMl}}}Bn}{c{{Bd{BMn}}}Bn}{c{{Bd{BN`}}}Bn}{c{{Bd{BNb}}}Bn}{c{{Bd{Dl}}}Bn}{c{{Bd{BNd}}}Bn}{c{{Bd{BNf}}}Bn}{c{{Bd{BNh}}}Bn}{c{{Bd{Dn}}}Bn}{c{{Bd{BNj}}}Bn}{c{{Bd{BNl}}}Bn}{c{{Bd{E`}}}Bn}{c{{Bd{BNn}}}Bn}{c{{Bd{BO`}}}Bn}{c{{Bd{Eb}}}Bn}{c{{Bd{BOb}}}Bn}{c{{Bd{BOd}}}Bn}{c{{Bd{Ed}}}Bn}{c{{Bd{BOf}}}Bn}{c{{Bd{BOh}}}Bn}{c{{Bd{BOj}}}Bn}{c{{Bd{BOl}}}Bn}{c{{Bd{BOn}}}Bn}{c{{Bd{C@`}}}Bn}{c{{Bd{C@b}}}Bn}{c{{Bd{C@d}}}Bn}{c{{Bd{C@f}}}Bn}{c{{Bd{C@h}}}Bn}{c{{Bd{C@j}}}Bn}{c{{Bd{C@l}}}Bn}{c{{Bd{C@n}}}Bn}{c{{Bd{CA`}}}Bn}{c{{Bd{CAb}}}Bn}{c{{Bd{CAd}}}Bn}{c{{Bd{CAf}}}Bn}{c{{Bd{CAh}}}Bn}{c{{Bd{Ef}}}Bn}{c{{Bd{CAj}}}Bn}{c{{Bd{CAl}}}Bn}{c{{Bd{CAn}}}Bn}{c{{Bd{CB`}}}Bn}{c{{Bd{CBb}}}Bn}{c{{Bd{CBd}}}Bn}{c{{Bd{CBf}}}Bn}{c{{Bd{CBh}}}Bn}{c{{Bd{Eh}}}Bn}{c{{Bd{Ej}}}Bn}{c{{Bd{CBj}}}Bn}{c{{Bd{CBl}}}Bn}{c{{Bd{CBn}}}Bn}{c{{Bd{CC`}}}Bn}{c{{Bd{El}}}Bn}{c{{Bd{CCb}}}Bn}{c{{Bd{En}}}Bn}{c{{Bd{F`}}}Bn}{c{{Bd{CCd}}}Bn}{c{{Bd{CCf}}}Bn}{c{{Bd{CCh}}}Bn}{c{{Bd{Fb}}}Bn}{c{{Bd{CCj}}}Bn}{c{{Bd{CCl}}}Bn}{c{{Bd{CCn}}}Bn}{c{{Bd{CD`}}}Bn}{c{{Bd{CDb}}}Bn}{c{{Bd{CDd}}}Bn}{c{{Bd{CDf}}}Bn}{c{{Bd{CDh}}}Bn}{c{{Bd{CDj}}}Bn}{c{{Bd{CDl}}}Bn}{c{{Bd{CDn}}}Bn}{c{{Bd{CE`}}}Bn}{c{{Bd{CEb}}}Bn}{c{{Bd{CEd}}}Bn}{c{{Bd{CEf}}}Bn}{c{{Bd{CEh}}}Bn}{c{{Bd{CEj}}}Bn}{c{{Bd{CEl}}}Bn}{c{{Bd{CEn}}}Bn}{c{{Bd{Fd}}}Bn}{c{{Bd{CF`}}}Bn}{c{{Bd{CFb}}}Bn}{c{{Bd{CFd}}}Bn}{c{{Bd{CFf}}}Bn}{c{{Bd{Ff}}}Bn}{c{{Bd{CFh}}}Bn}{c{{Bd{Fh}}}Bn}{c{{Bd{CFj}}}Bn}{c{{Bd{CFl}}}Bn}{c{{Bd{CFn}}}Bn}{c{{Bd{Fj}}}Bn}{c{{Bd{CG`}}}Bn}{c{{Bd{CGb}}}Bn}{c{{Bd{CGd}}}Bn}{c{{Bd{CGf}}}Bn}{c{{Bd{CGh}}}Bn}{c{{Bd{CGj}}}Bn}{c{{Bd{CGl}}}Bn}{c{{Bd{CGn}}}Bn}{c{{Bd{CH`}}}Bn}{c{{Bd{CHb}}}Bn}{c{{Bd{CHd}}}Bn}{c{{Bd{CHf}}}Bn}{c{{Bd{CHh}}}Bn}{c{{Bd{CHj}}}Bn}{c{{Bd{CHl}}}Bn}{c{{Bd{CHn}}}Bn}{c{{Bd{CI`}}}Bn}{c{{Bd{CIb}}}Bn}{c{{Bd{Fl}}}Bn}{c{{Bd{CId}}}Bn}{c{{Bd{CIf}}}Bn}{c{{Bd{Fn}}}Bn}{c{{Bd{CIh}}}Bn}{c{{Bd{CIj}}}Bn}{c{{Bd{CIl}}}Bn}{c{{Bd{CIn}}}Bn}{c{{Bd{CJ`}}}Bn}{c{{Bd{CJb}}}Bn}{c{{Bd{CJd}}}Bn}{c{{Bd{CJf}}}Bn}{c{{Bd{CJh}}}Bn}{c{{Bd{CJj}}}Bn}{c{{Bd{CJl}}}Bn}{c{{Bd{CJn}}}Bn}{c{{Bd{CK`}}}Bn}{c{{Bd{CKb}}}Bn}{c{{Bd{CKd}}}Bn}{c{{Bd{CKf}}}Bn}{c{{Bd{CKh}}}Bn}{c{{Bd{CKj}}}Bn}{c{{Bd{CKl}}}Bn}{c{{Bd{CKn}}}Bn}{c{{Bd{CL`}}}Bn}{c{{Bd{CLb}}}Bn}{c{{Bd{CLd}}}Bn}{c{{Bd{G`}}}Bn}{c{{Bd{CLf}}}Bn}{c{{Bd{CLh}}}Bn}{c{{Bd{CLj}}}Bn}{c{{Bd{CLl}}}Bn}{c{{Bd{CLn}}}Bn}{c{{Bd{CM`}}}Bn}{c{{Bd{CMb}}}Bn}{c{{Bd{CMd}}}Bn}{c{{Bd{CMf}}}Bn}{c{{Bd{CMh}}}Bn}{c{{Bd{Gb}}}Bn}{c{{Bd{CMj}}}Bn}{c{{Bd{CMl}}}Bn}{c{{Bd{CMn}}}Bn}{c{{Bd{CN`}}}Bn}{c{{Bd{CNb}}}Bn}{c{{Bd{CNd}}}Bn}{c{{Bd{CNf}}}Bn}{c{{Bd{CNh}}}Bn}{c{{Bd{CNj}}}Bn}{c{{Bd{CNl}}}Bn}{c{{Bd{CNn}}}Bn}{c{{Bd{CO`}}}Bn}{c{{Bd{COb}}}Bn}{c{{Bd{Gd}}}Bn}{c{{Bd{COd}}}Bn}{c{{Bd{COf}}}Bn}{c{{Bd{COh}}}Bn}{c{{Bd{Gf}}}Bn}{c{{Bd{COj}}}Bn}{c{{Bd{COl}}}Bn}{c{{Bd{COn}}}Bn}{c{{Bd{Gh}}}Bn}{c{{Bd{Gj}}}Bn}{c{{Bd{D@`}}}Bn}{c{{Bd{Gl}}}Bn}{c{{Bd{D@b}}}Bn}{c{{Bd{D@d}}}Bn}{c{{Bd{D@f}}}Bn}{c{{Bd{D@h}}}Bn}{c{{Bd{D@j}}}Bn}{c{{Bd{Gn}}}Bn}{c{{Bd{H`}}}Bn}{c{{Bd{Hb}}}Bn}{c{{Bd{Hd}}}Bn}{c{{Bd{D@l}}}Bn}{c{{Bd{D@n}}}Bn}{c{{Bd{DA`}}}Bn}{c{{Bd{Hf}}}Bn}{c{{Bd{DAb}}}Bn}{c{{Bd{DAd}}}Bn}{c{{Bd{DAf}}}Bn}{c{{Bd{DAh}}}Bn}{c{{Bd{DAj}}}Bn}{c{{Bd{DAl}}}Bn}{c{{Bd{Hh}}}Bn}{c{{Bd{DAn}}}Bn}{c{{Bd{Hj}}}Bn}{c{{Bd{DB`}}}Bn}``````````````{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}````````````````````````{{}Dl}{{}Dn}{{}E`}{{}Eb}{{}Ed}{{}Ef}{{}Eh}{{}Ej}{{}El}{{}En}{{}F`}{{}Fb}{{}Fd}{{}Ff}{{}Fh}{{}Fj}{{}Fl}{{}Fn}{{}G`}{{}Gb}{{}Gd}{{}Gf}{{}Gh}{{}Gj}{{}Gl}{{}Gn}{{}H`}{{}Hb}{{}Hd}{{}Hf}{{}Hh}{{}Hj}````````````````{{{b{Hn}}{b{Hn}}}C`}{{{b{I`}}{b{I`}}}C`}{{{b{Ib}}{b{Ib}}}C`}{{{b{Id}}{b{Id}}}C`}{{{b{If}}{b{If}}}C`}{{{b{Ih}}{b{Ih}}}C`}{{{b{Ij}}{b{Ij}}}C`}{{{b{Il}}{b{Il}}}C`}{{{b{In}}{b{In}}}C`}{{{b{J`}}{b{J`}}}C`}{{{b{Jb}}{b{Jb}}}C`}{{{b{Jd}}{b{Jd}}}C`}{{{b{Jf}}{b{Jf}}}C`}{{{b{Jh}}{b{Jh}}}C`}{{{b{Jj}}{b{Jj}}}C`}{{{b{Jl}}{b{Jl}}}C`}{{{b{Jn}}{b{Jn}}}C`}{{{b{K`}}{b{K`}}}C`}{{{b{Kb}}{b{Kb}}}C`}{{{b{Kd}}{b{Kd}}}C`}{{{b{Kf}}{b{Kf}}}C`}{{{b{Kh}}{b{Kh}}}C`}{{{b{Kj}}{b{Kj}}}C`}{{{b{Kl}}{b{Kl}}}C`}{{{b{Kn}}{b{Kn}}}C`}{{{b{L`}}{b{L`}}}C`}{{{b{Lb}}{b{Lb}}}C`}{{{b{Ld}}{b{Ld}}}C`}{{{b{Lf}}{b{Lf}}}C`}{{{b{Lh}}{b{Lh}}}C`}{{{b{Lj}}{b{Lj}}}C`}{{{b{Ll}}{b{Ll}}}C`}{{{b{Ln}}{b{Ln}}}C`}{{{b{M`}}{b{M`}}}C`}{{{b{Mb}}{b{Mb}}}C`}{{{b{Md}}{b{Md}}}C`}{{{b{Mf}}{b{Mf}}}C`}{{{b{Mh}}{b{Mh}}}C`}{{{b{Mj}}{b{Mj}}}C`}{{{b{Ml}}{b{Ml}}}C`}{{{b{Mn}}{b{Mn}}}C`}{{{b{N`}}{b{N`}}}C`}{{{b{Nb}}{b{Nb}}}C`}{{{b{Nd}}{b{Nd}}}C`}{{{b{Nf}}{b{Nf}}}C`}{{{b{Nh}}{b{Nh}}}C`}{{{b{Nj}}{b{Nj}}}C`}{{{b{Nl}}{b{Nl}}}C`}{{{b{Nn}}{b{Nn}}}C`}{{{b{O`}}{b{O`}}}C`}{{{b{Ob}}{b{Ob}}}C`}{{{b{Od}}{b{Od}}}C`}{{{b{Of}}{b{Of}}}C`}{{{b{Oh}}{b{Oh}}}C`}{{{b{Oj}}{b{Oj}}}C`}{{{b{Ol}}{b{Ol}}}C`}{{{b{On}}{b{On}}}C`}{{{b{A@`}}{b{A@`}}}C`}{{{b{A@b}}{b{A@b}}}C`}{{{b{A@d}}{b{A@d}}}C`}{{{b{A@f}}{b{A@f}}}C`}{{{b{A@h}}{b{A@h}}}C`}{{{b{A@j}}{b{A@j}}}C`}{{{b{A@l}}{b{A@l}}}C`}{{{b{A@n}}{b{A@n}}}C`}{{{b{AA`}}{b{AA`}}}C`}{{{b{AAb}}{b{AAb}}}C`}{{{b{AAd}}{b{AAd}}}C`}{{{b{AAf}}{b{AAf}}}C`}{{{b{AAh}}{b{AAh}}}C`}{{{b{AAj}}{b{AAj}}}C`}{{{b{AAl}}{b{AAl}}}C`}{{{b{AAn}}{b{AAn}}}C`}{{{b{AB`}}{b{AB`}}}C`}{{{b{ABb}}{b{ABb}}}C`}{{{b{ABd}}{b{ABd}}}C`}{{{b{ABf}}{b{ABf}}}C`}{{{b{ABh}}{b{ABh}}}C`}{{{b{ABj}}{b{ABj}}}C`}{{{b{ABl}}{b{ABl}}}C`}{{{b{ABn}}{b{ABn}}}C`}{{{b{AC`}}{b{AC`}}}C`}{{{b{ACb}}{b{ACb}}}C`}{{{b{ACd}}{b{ACd}}}C`}{{{b{ACf}}{b{ACf}}}C`}{{{b{ACh}}{b{ACh}}}C`}{{{b{ACj}}{b{ACj}}}C`}{{{b{ACl}}{b{ACl}}}C`}{{{b{ACn}}{b{ACn}}}C`}{{{b{AD`}}{b{AD`}}}C`}{{{b{ADb}}{b{ADb}}}C`}{{{b{ADd}}{b{ADd}}}C`}{{{b{ADf}}{b{ADf}}}C`}{{{b{ADh}}{b{ADh}}}C`}{{{b{ADj}}{b{ADj}}}C`}{{{b{ADl}}{b{ADl}}}C`}{{{b{ADn}}{b{ADn}}}C`}{{{b{AE`}}{b{AE`}}}C`}{{{b{AEb}}{b{AEb}}}C`}{{{b{AEd}}{b{AEd}}}C`}{{{b{AEf}}{b{AEf}}}C`}{{{b{AEh}}{b{AEh}}}C`}{{{b{AEj}}{b{AEj}}}C`}{{{b{AEl}}{b{AEl}}}C`}{{{b{AEn}}{b{AEn}}}C`}{{{b{AF`}}{b{AF`}}}C`}{{{b{AFb}}{b{AFb}}}C`}{{{b{AFd}}{b{AFd}}}C`}{{{b{AFf}}{b{AFf}}}C`}{{{b{AFh}}{b{AFh}}}C`}{{{b{AFj}}{b{AFj}}}C`}{{{b{AFl}}{b{AFl}}}C`}{{{b{AFn}}{b{AFn}}}C`}{{{b{AG`}}{b{AG`}}}C`}{{{b{AGb}}{b{AGb}}}C`}{{{b{AGd}}{b{AGd}}}C`}{{{b{AGf}}{b{AGf}}}C`}{{{b{AGh}}{b{AGh}}}C`}{{{b{AGj}}{b{AGj}}}C`}{{{b{AGl}}{b{AGl}}}C`}{{{b{AGn}}{b{AGn}}}C`}{{{b{AH`}}{b{AH`}}}C`}{{{b{AHb}}{b{AHb}}}C`}{{{b{AHd}}{b{AHd}}}C`}{{{b{AHf}}{b{AHf}}}C`}{{{b{AHh}}{b{AHh}}}C`}{{{b{AHj}}{b{AHj}}}C`}{{{b{AHl}}{b{AHl}}}C`}{{{b{AHn}}{b{AHn}}}C`}{{{b{AI`}}{b{AI`}}}C`}{{{b{AIb}}{b{AIb}}}C`}{{{b{AId}}{b{AId}}}C`}{{{b{AIf}}{b{AIf}}}C`}{{{b{AIh}}{b{AIh}}}C`}{{{b{AIj}}{b{AIj}}}C`}{{{b{AIl}}{b{AIl}}}C`}{{{b{AIn}}{b{AIn}}}C`}{{{b{AJ`}}{b{AJ`}}}C`}{{{b{AJb}}{b{AJb}}}C`}{{{b{AJd}}{b{AJd}}}C`}{{{b{AJf}}{b{AJf}}}C`}{{{b{AJh}}{b{AJh}}}C`}{{{b{AJj}}{b{AJj}}}C`}{{{b{AJl}}{b{AJl}}}C`}{{{b{AJn}}{b{AJn}}}C`}{{{b{AK`}}{b{AK`}}}C`}{{{b{AKb}}{b{AKb}}}C`}{{{b{AKd}}{b{AKd}}}C`}{{{b{AKf}}{b{AKf}}}C`}{{{b{AKh}}{b{AKh}}}C`}{{{b{AKj}}{b{AKj}}}C`}{{{b{AKl}}{b{AKl}}}C`}{{{b{AKn}}{b{AKn}}}C`}{{{b{AL`}}{b{AL`}}}C`}{{{b{ALb}}{b{ALb}}}C`}{{{b{ALd}}{b{ALd}}}C`}{{{b{ALf}}{b{ALf}}}C`}{{{b{ALh}}{b{ALh}}}C`}{{{b{ALj}}{b{ALj}}}C`}{{{b{ALl}}{b{ALl}}}C`}{{{b{ALn}}{b{ALn}}}C`}{{{b{AM`}}{b{AM`}}}C`}{{{b{AMb}}{b{AMb}}}C`}{{{b{AMd}}{b{AMd}}}C`}{{{b{AMf}}{b{AMf}}}C`}{{{b{AMh}}{b{AMh}}}C`}{{{b{AMj}}{b{AMj}}}C`}{{{b{AMl}}{b{AMl}}}C`}{{{b{AMn}}{b{AMn}}}C`}{{{b{AN`}}{b{AN`}}}C`}{{{b{ANb}}{b{ANb}}}C`}{{{b{ANd}}{b{ANd}}}C`}{{{b{ANf}}{b{ANf}}}C`}{{{b{ANh}}{b{ANh}}}C`}{{{b{ANj}}{b{ANj}}}C`}{{{b{ANl}}{b{ANl}}}C`}{{{b{ANn}}{b{ANn}}}C`}{{{b{AO`}}{b{AO`}}}C`}{{{b{AOb}}{b{AOb}}}C`}{{{b{AOd}}{b{AOd}}}C`}{{{b{AOf}}{b{AOf}}}C`}{{{b{AOh}}{b{AOh}}}C`}{{{b{AOj}}{b{AOj}}}C`}{{{b{AOl}}{b{AOl}}}C`}{{{b{AOn}}{b{AOn}}}C`}{{{b{B@`}}{b{B@`}}}C`}{{{b{B@b}}{b{B@b}}}C`}{{{b{B@d}}{b{B@d}}}C`}{{{b{B@f}}{b{B@f}}}C`}{{{b{B@h}}{b{B@h}}}C`}{{{b{B@j}}{b{B@j}}}C`}{{{b{B@l}}{b{B@l}}}C`}{{{b{B@n}}{b{B@n}}}C`}{{{b{BA`}}{b{BA`}}}C`}{{{b{BAb}}{b{BAb}}}C`}{{{b{BAd}}{b{BAd}}}C`}{{{b{BAf}}{b{BAf}}}C`}{{{b{BAh}}{b{BAh}}}C`}{{{b{BAj}}{b{BAj}}}C`}{{{b{BAl}}{b{BAl}}}C`}{{{b{BAn}}{b{BAn}}}C`}{{{b{BB`}}{b{BB`}}}C`}{{{b{BBb}}{b{BBb}}}C`}{{{b{BBd}}{b{BBd}}}C`}{{{b{BBf}}{b{BBf}}}C`}{{{b{BBh}}{b{BBh}}}C`}{{{b{BBj}}{b{BBj}}}C`}{{{b{BBl}}{b{BBl}}}C`}{{{b{BBn}}{b{BBn}}}C`}{{{b{BC`}}{b{BC`}}}C`}{{{b{BCb}}{b{BCb}}}C`}{{{b{BCd}}{b{BCd}}}C`}{{{b{BCf}}{b{BCf}}}C`}{{{b{BCh}}{b{BCh}}}C`}{{{b{BCj}}{b{BCj}}}C`}{{{b{BCl}}{b{BCl}}}C`}{{{b{BCn}}{b{BCn}}}C`}{{{b{BD`}}{b{BD`}}}C`}{{{b{BDb}}{b{BDb}}}C`}{{{b{BDd}}{b{BDd}}}C`}{{{b{BDf}}{b{BDf}}}C`}{{{b{BDh}}{b{BDh}}}C`}{{{b{BDj}}{b{BDj}}}C`}{{{b{BDl}}{b{BDl}}}C`}{{{b{BDn}}{b{BDn}}}C`}{{{b{BE`}}{b{BE`}}}C`}{{{b{BEb}}{b{BEb}}}C`}{{{b{BEd}}{b{BEd}}}C`}{{{b{BEf}}{b{BEf}}}C`}{{{b{BEh}}{b{BEh}}}C`}{{{b{BEj}}{b{BEj}}}C`}{{{b{BEl}}{b{BEl}}}C`}{{{b{BEn}}{b{BEn}}}C`}{{{b{BF`}}{b{BF`}}}C`}{{{b{BFb}}{b{BFb}}}C`}{{{b{BFd}}{b{BFd}}}C`}{{{b{BFf}}{b{BFf}}}C`}{{{b{BFh}}{b{BFh}}}C`}{{{b{BFj}}{b{BFj}}}C`}{{{b{BFl}}{b{BFl}}}C`}{{{b{BFn}}{b{BFn}}}C`}{{{b{BG`}}{b{BG`}}}C`}{{{b{BGb}}{b{BGb}}}C`}{{{b{BGd}}{b{BGd}}}C`}{{{b{BGf}}{b{BGf}}}C`}{{{b{BGh}}{b{BGh}}}C`}{{{b{BGj}}{b{BGj}}}C`}{{{b{BGl}}{b{BGl}}}C`}{{{b{BGn}}{b{BGn}}}C`}{{{b{BH`}}{b{BH`}}}C`}{{{b{BHb}}{b{BHb}}}C`}{{{b{BHd}}{b{BHd}}}C`}{{{b{BHf}}{b{BHf}}}C`}{{{b{BHh}}{b{BHh}}}C`}{{{b{BHj}}{b{BHj}}}C`}{{{b{BHl}}{b{BHl}}}C`}{{{b{BHn}}{b{BHn}}}C`}{{{b{BI`}}{b{BI`}}}C`}{{{b{BIb}}{b{BIb}}}C`}{{{b{BId}}{b{BId}}}C`}{{{b{BIf}}{b{BIf}}}C`}{{{b{BIh}}{b{BIh}}}C`}{{{b{BIj}}{b{BIj}}}C`}{{{b{BIl}}{b{BIl}}}C`}{{{b{BIn}}{b{BIn}}}C`}{{{b{BJ`}}{b{BJ`}}}C`}{{{b{BJb}}{b{BJb}}}C`}{{{b{BJd}}{b{BJd}}}C`}{{{b{BJf}}{b{BJf}}}C`}{{{b{BJh}}{b{BJh}}}C`}{{{b{BJj}}{b{BJj}}}C`}{{{b{BJl}}{b{BJl}}}C`}{{{b{BJn}}{b{BJn}}}C`}{{{b{BK`}}{b{BK`}}}C`}{{{b{BKb}}{b{BKb}}}C`}{{{b{BKd}}{b{BKd}}}C`}{{{b{BKf}}{b{BKf}}}C`}{{{b{BKh}}{b{BKh}}}C`}{{{b{BKj}}{b{BKj}}}C`}{{{b{BKl}}{b{BKl}}}C`}{{{b{BKn}}{b{BKn}}}C`}{{{b{BL`}}{b{BL`}}}C`}{{{b{BLb}}{b{BLb}}}C`}{{{b{BLd}}{b{BLd}}}C`}{{{b{BLf}}{b{BLf}}}C`}{{{b{BLh}}{b{BLh}}}C`}{{{b{BLj}}{b{BLj}}}C`}{{{b{BLl}}{b{BLl}}}C`}{{{b{BLn}}{b{BLn}}}C`}{{{b{BM`}}{b{BM`}}}C`}{{{b{BMb}}{b{BMb}}}C`}{{{b{BMd}}{b{BMd}}}C`}{{{b{BMf}}{b{BMf}}}C`}{{{b{BMh}}{b{BMh}}}C`}{{{b{BMj}}{b{BMj}}}C`}{{{b{BMl}}{b{BMl}}}C`}{{{b{BMn}}{b{BMn}}}C`}{{{b{BN`}}{b{BN`}}}C`}{{{b{BNb}}{b{BNb}}}C`}{{{b{Dl}}{b{Dl}}}C`}{{{b{BNd}}{b{BNd}}}C`}{{{b{BNf}}{b{BNf}}}C`}{{{b{BNh}}{b{BNh}}}C`}{{{b{Dn}}{b{Dn}}}C`}{{{b{BNj}}{b{BNj}}}C`}{{{b{BNl}}{b{BNl}}}C`}{{{b{E`}}{b{E`}}}C`}{{{b{BNn}}{b{BNn}}}C`}{{{b{BO`}}{b{BO`}}}C`}{{{b{Eb}}{b{Eb}}}C`}{{{b{BOb}}{b{BOb}}}C`}{{{b{BOd}}{b{BOd}}}C`}{{{b{Ed}}{b{Ed}}}C`}{{{b{BOf}}{b{BOf}}}C`}{{{b{BOh}}{b{BOh}}}C`}{{{b{BOj}}{b{BOj}}}C`}{{{b{BOl}}{b{BOl}}}C`}{{{b{BOn}}{b{BOn}}}C`}{{{b{C@`}}{b{C@`}}}C`}{{{b{C@b}}{b{C@b}}}C`}{{{b{C@d}}{b{C@d}}}C`}{{{b{C@f}}{b{C@f}}}C`}{{{b{C@h}}{b{C@h}}}C`}{{{b{C@j}}{b{C@j}}}C`}{{{b{C@l}}{b{C@l}}}C`}{{{b{C@n}}{b{C@n}}}C`}{{{b{CA`}}{b{CA`}}}C`}{{{b{CAb}}{b{CAb}}}C`}{{{b{CAd}}{b{CAd}}}C`}{{{b{CAf}}{b{CAf}}}C`}{{{b{CAh}}{b{CAh}}}C`}{{{b{Ef}}{b{Ef}}}C`}{{{b{CAj}}{b{CAj}}}C`}{{{b{CAl}}{b{CAl}}}C`}{{{b{CAn}}{b{CAn}}}C`}{{{b{CB`}}{b{CB`}}}C`}{{{b{CBb}}{b{CBb}}}C`}{{{b{CBd}}{b{CBd}}}C`}{{{b{CBf}}{b{CBf}}}C`}{{{b{CBh}}{b{CBh}}}C`}{{{b{Eh}}{b{Eh}}}C`}{{{b{Ej}}{b{Ej}}}C`}{{{b{CBj}}{b{CBj}}}C`}{{{b{CBl}}{b{CBl}}}C`}{{{b{CBn}}{b{CBn}}}C`}{{{b{CC`}}{b{CC`}}}C`}{{{b{El}}{b{El}}}C`}{{{b{CCb}}{b{CCb}}}C`}{{{b{En}}{b{En}}}C`}{{{b{F`}}{b{F`}}}C`}{{{b{CCd}}{b{CCd}}}C`}{{{b{CCf}}{b{CCf}}}C`}{{{b{CCh}}{b{CCh}}}C`}{{{b{Fb}}{b{Fb}}}C`}{{{b{CCj}}{b{CCj}}}C`}{{{b{CCl}}{b{CCl}}}C`}{{{b{CCn}}{b{CCn}}}C`}{{{b{CD`}}{b{CD`}}}C`}{{{b{CDb}}{b{CDb}}}C`}{{{b{CDd}}{b{CDd}}}C`}{{{b{CDf}}{b{CDf}}}C`}{{{b{CDh}}{b{CDh}}}C`}{{{b{CDj}}{b{CDj}}}C`}{{{b{CDl}}{b{CDl}}}C`}{{{b{CDn}}{b{CDn}}}C`}{{{b{CE`}}{b{CE`}}}C`}{{{b{CEb}}{b{CEb}}}C`}{{{b{CEd}}{b{CEd}}}C`}{{{b{CEf}}{b{CEf}}}C`}{{{b{CEh}}{b{CEh}}}C`}{{{b{CEj}}{b{CEj}}}C`}{{{b{CEl}}{b{CEl}}}C`}{{{b{CEn}}{b{CEn}}}C`}{{{b{Fd}}{b{Fd}}}C`}{{{b{CF`}}{b{CF`}}}C`}{{{b{CFb}}{b{CFb}}}C`}{{{b{CFd}}{b{CFd}}}C`}{{{b{CFf}}{b{CFf}}}C`}{{{b{Ff}}{b{Ff}}}C`}{{{b{CFh}}{b{CFh}}}C`}{{{b{Fh}}{b{Fh}}}C`}{{{b{CFj}}{b{CFj}}}C`}{{{b{CFl}}{b{CFl}}}C`}{{{b{CFn}}{b{CFn}}}C`}{{{b{Fj}}{b{Fj}}}C`}{{{b{CG`}}{b{CG`}}}C`}{{{b{CGb}}{b{CGb}}}C`}{{{b{CGd}}{b{CGd}}}C`}{{{b{CGf}}{b{CGf}}}C`}{{{b{CGh}}{b{CGh}}}C`}{{{b{CGj}}{b{CGj}}}C`}{{{b{CGl}}{b{CGl}}}C`}{{{b{CGn}}{b{CGn}}}C`}{{{b{CH`}}{b{CH`}}}C`}{{{b{CHb}}{b{CHb}}}C`}{{{b{CHd}}{b{CHd}}}C`}{{{b{CHf}}{b{CHf}}}C`}{{{b{CHh}}{b{CHh}}}C`}{{{b{CHj}}{b{CHj}}}C`}{{{b{CHl}}{b{CHl}}}C`}{{{b{CHn}}{b{CHn}}}C`}{{{b{CI`}}{b{CI`}}}C`}{{{b{CIb}}{b{CIb}}}C`}{{{b{Fl}}{b{Fl}}}C`}{{{b{CId}}{b{CId}}}C`}{{{b{CIf}}{b{CIf}}}C`}{{{b{Fn}}{b{Fn}}}C`}{{{b{CIh}}{b{CIh}}}C`}{{{b{CIj}}{b{CIj}}}C`}{{{b{CIl}}{b{CIl}}}C`}{{{b{CIn}}{b{CIn}}}C`}{{{b{CJ`}}{b{CJ`}}}C`}{{{b{CJb}}{b{CJb}}}C`}{{{b{CJd}}{b{CJd}}}C`}{{{b{CJf}}{b{CJf}}}C`}{{{b{CJh}}{b{CJh}}}C`}{{{b{CJj}}{b{CJj}}}C`}{{{b{CJl}}{b{CJl}}}C`}{{{b{CJn}}{b{CJn}}}C`}{{{b{CK`}}{b{CK`}}}C`}{{{b{CKb}}{b{CKb}}}C`}{{{b{CKd}}{b{CKd}}}C`}{{{b{CKf}}{b{CKf}}}C`}{{{b{CKh}}{b{CKh}}}C`}{{{b{CKj}}{b{CKj}}}C`}{{{b{CKl}}{b{CKl}}}C`}{{{b{CKn}}{b{CKn}}}C`}{{{b{CL`}}{b{CL`}}}C`}{{{b{CLb}}{b{CLb}}}C`}{{{b{CLd}}{b{CLd}}}C`}{{{b{G`}}{b{G`}}}C`}{{{b{CLf}}{b{CLf}}}C`}{{{b{CLh}}{b{CLh}}}C`}{{{b{CLj}}{b{CLj}}}C`}{{{b{CLl}}{b{CLl}}}C`}{{{b{CLn}}{b{CLn}}}C`}{{{b{CM`}}{b{CM`}}}C`}{{{b{CMb}}{b{CMb}}}C`}{{{b{CMd}}{b{CMd}}}C`}{{{b{CMf}}{b{CMf}}}C`}{{{b{CMh}}{b{CMh}}}C`}{{{b{Gb}}{b{Gb}}}C`}{{{b{CMj}}{b{CMj}}}C`}{{{b{CMl}}{b{CMl}}}C`}{{{b{CMn}}{b{CMn}}}C`}{{{b{CN`}}{b{CN`}}}C`}{{{b{CNb}}{b{CNb}}}C`}{{{b{CNd}}{b{CNd}}}C`}{{{b{CNf}}{b{CNf}}}C`}{{{b{CNh}}{b{CNh}}}C`}{{{b{CNj}}{b{CNj}}}C`}{{{b{CNl}}{b{CNl}}}C`}{{{b{CNn}}{b{CNn}}}C`}{{{b{CO`}}{b{CO`}}}C`}{{{b{COb}}{b{COb}}}C`}{{{b{Gd}}{b{Gd}}}C`}{{{b{COd}}{b{COd}}}C`}{{{b{COf}}{b{COf}}}C`}{{{b{COh}}{b{COh}}}C`}{{{b{Gf}}{b{Gf}}}C`}{{{b{COj}}{b{COj}}}C`}{{{b{COl}}{b{COl}}}C`}{{{b{COn}}{b{COn}}}C`}{{{b{Gh}}{b{Gh}}}C`}{{{b{Gj}}{b{Gj}}}C`}{{{b{D@`}}{b{D@`}}}C`}{{{b{Gl}}{b{Gl}}}C`}{{{b{D@b}}{b{D@b}}}C`}{{{b{D@d}}{b{D@d}}}C`}{{{b{D@f}}{b{D@f}}}C`}{{{b{D@h}}{b{D@h}}}C`}{{{b{D@j}}{b{D@j}}}C`}{{{b{Gn}}{b{Gn}}}C`}{{{b{H`}}{b{H`}}}C`}{{{b{Hb}}{b{Hb}}}C`}{{{b{Hd}}{b{Hd}}}C`}{{{b{D@l}}{b{D@l}}}C`}{{{b{D@n}}{b{D@n}}}C`}{{{b{DA`}}{b{DA`}}}C`}{{{b{Hf}}{b{Hf}}}C`}{{{b{DAb}}{b{DAb}}}C`}{{{b{DAd}}{b{DAd}}}C`}{{{b{DAf}}{b{DAf}}}C`}{{{b{DAh}}{b{DAh}}}C`}{{{b{DAj}}{b{DAj}}}C`}{{{b{DAl}}{b{DAl}}}C`}{{{b{Hh}}{b{Hh}}}C`}{{{b{DAn}}{b{DAn}}}C`}{{{b{Hj}}{b{Hj}}}C`}{{{b{DB`}}{b{DB`}}}C`}```````````````````{{{b{dDl}}c}Aj{{DBf{}{{DBd{Dl}}}}}}{{{b{dDn}}c}Aj{{DBf{}{{DBd{Dn}}}}}}{{{b{dE`}}c}Aj{{DBf{}{{DBd{E`}}}}}}{{{b{dEb}}c}Aj{{DBf{}{{DBd{Eb}}}}}}{{{b{dEd}}c}Aj{{DBf{}{{DBd{Ed}}}}}}{{{b{dEf}}c}Aj{{DBf{}{{DBd{Ef}}}}}}{{{b{dEh}}c}Aj{{DBf{}{{DBd{Eh}}}}}}{{{b{dEj}}c}Aj{{DBf{}{{DBd{Ej}}}}}}{{{b{dEl}}c}Aj{{DBf{}{{DBd{El}}}}}}{{{b{dEn}}c}Aj{{DBf{}{{DBd{En}}}}}}{{{b{dF`}}c}Aj{{DBf{}{{DBd{F`}}}}}}{{{b{dFb}}c}Aj{{DBf{}{{DBd{Fb}}}}}}{{{b{dFd}}c}Aj{{DBf{}{{DBd{Fd}}}}}}{{{b{dFf}}c}Aj{{DBf{}{{DBd{Ff}}}}}}{{{b{dFh}}c}Aj{{DBf{}{{DBd{Fh}}}}}}{{{b{dFj}}c}Aj{{DBf{}{{DBd{Fj}}}}}}{{{b{dFl}}c}Aj{{DBf{}{{DBd{Fl}}}}}}{{{b{dFn}}c}Aj{{DBf{}{{DBd{Fn}}}}}}{{{b{dG`}}c}Aj{{DBf{}{{DBd{G`}}}}}}{{{b{dGb}}c}Aj{{DBf{}{{DBd{Gb}}}}}}{{{b{dGd}}c}Aj{{DBf{}{{DBd{Gd}}}}}}{{{b{dGf}}c}Aj{{DBf{}{{DBd{Gf}}}}}}{{{b{dGh}}c}Aj{{DBf{}{{DBd{Gh}}}}}}{{{b{dGj}}c}Aj{{DBf{}{{DBd{Gj}}}}}}{{{b{dGl}}c}Aj{{DBf{}{{DBd{Gl}}}}}}{{{b{dGn}}c}Aj{{DBf{}{{DBd{Gn}}}}}}{{{b{dH`}}c}Aj{{DBf{}{{DBd{H`}}}}}}{{{b{dHb}}c}Aj{{DBf{}{{DBd{Hb}}}}}}{{{b{dHd}}c}Aj{{DBf{}{{DBd{Hd}}}}}}{{{b{dHf}}c}Aj{{DBf{}{{DBd{Hf}}}}}}{{{b{dHh}}c}Aj{{DBf{}{{DBd{Hh}}}}}}{{{b{dHj}}c}Aj{{DBf{}{{DBd{Hj}}}}}}{Bff}````````````````````````````````````````````````````````````{{{b{Hn}}{b{dCb}}}DBh}{{{b{I`}}{b{dCb}}}DBh}{{{b{Ib}}{b{dCb}}}DBh}{{{b{Id}}{b{dCb}}}DBh}{{{b{If}}{b{dCb}}}DBh}{{{b{Ih}}{b{dCb}}}DBh}{{{b{Ij}}{b{dCb}}}DBh}{{{b{Il}}{b{dCb}}}DBh}{{{b{In}}{b{dCb}}}DBh}{{{b{J`}}{b{dCb}}}DBh}{{{b{Jb}}{b{dCb}}}DBh}{{{b{Jd}}{b{dCb}}}DBh}{{{b{Jf}}{b{dCb}}}DBh}{{{b{Jh}}{b{dCb}}}DBh}{{{b{Jj}}{b{dCb}}}DBh}{{{b{Jl}}{b{dCb}}}DBh}{{{b{Jn}}{b{dCb}}}DBh}{{{b{K`}}{b{dCb}}}DBh}{{{b{Kb}}{b{dCb}}}DBh}{{{b{Kd}}{b{dCb}}}DBh}{{{b{Kf}}{b{dCb}}}DBh}{{{b{Kh}}{b{dCb}}}DBh}{{{b{Kj}}{b{dCb}}}DBh}{{{b{Kl}}{b{dCb}}}DBh}{{{b{Kn}}{b{dCb}}}DBh}{{{b{L`}}{b{dCb}}}DBh}{{{b{Lb}}{b{dCb}}}DBh}{{{b{Ld}}{b{dCb}}}DBh}{{{b{Lf}}{b{dCb}}}DBh}{{{b{Lh}}{b{dCb}}}DBh}{{{b{Lj}}{b{dCb}}}DBh}{{{b{Ll}}{b{dCb}}}DBh}{{{b{Ln}}{b{dCb}}}DBh}{{{b{M`}}{b{dCb}}}DBh}{{{b{Mb}}{b{dCb}}}DBh}{{{b{Md}}{b{dCb}}}DBh}{{{b{Mf}}{b{dCb}}}DBh}{{{b{Mh}}{b{dCb}}}DBh}{{{b{Mj}}{b{dCb}}}DBh}{{{b{Ml}}{b{dCb}}}DBh}{{{b{Mn}}{b{dCb}}}DBh}{{{b{N`}}{b{dCb}}}DBh}{{{b{Nb}}{b{dCb}}}DBh}{{{b{Nd}}{b{dCb}}}DBh}{{{b{Nf}}{b{dCb}}}DBh}{{{b{Nh}}{b{dCb}}}DBh}{{{b{Nj}}{b{dCb}}}DBh}{{{b{Nl}}{b{dCb}}}DBh}{{{b{Nn}}{b{dCb}}}DBh}{{{b{O`}}{b{dCb}}}DBh}{{{b{Ob}}{b{dCb}}}DBh}{{{b{Od}}{b{dCb}}}DBh}{{{b{Of}}{b{dCb}}}DBh}{{{b{Oh}}{b{dCb}}}DBh}{{{b{Oj}}{b{dCb}}}DBh}{{{b{Ol}}{b{dCb}}}DBh}{{{b{On}}{b{dCb}}}DBh}{{{b{A@`}}{b{dCb}}}DBh}{{{b{A@b}}{b{dCb}}}DBh}{{{b{A@d}}{b{dCb}}}DBh}{{{b{A@f}}{b{dCb}}}DBh}{{{b{A@h}}{b{dCb}}}DBh}{{{b{A@j}}{b{dCb}}}DBh}{{{b{A@l}}{b{dCb}}}DBh}{{{b{A@n}}{b{dCb}}}DBh}{{{b{AA`}}{b{dCb}}}DBh}{{{b{AAb}}{b{dCb}}}DBh}{{{b{AAd}}{b{dCb}}}DBh}{{{b{AAf}}{b{dCb}}}DBh}{{{b{AAh}}{b{dCb}}}DBh}{{{b{AAj}}{b{dCb}}}DBh}{{{b{AAl}}{b{dCb}}}DBh}{{{b{AAn}}{b{dCb}}}DBh}{{{b{AB`}}{b{dCb}}}DBh}{{{b{ABb}}{b{dCb}}}DBh}{{{b{ABd}}{b{dCb}}}DBh}{{{b{ABf}}{b{dCb}}}DBh}{{{b{ABh}}{b{dCb}}}DBh}{{{b{ABj}}{b{dCb}}}DBh}{{{b{ABl}}{b{dCb}}}DBh}{{{b{ABn}}{b{dCb}}}DBh}{{{b{AC`}}{b{dCb}}}DBh}{{{b{ACb}}{b{dCb}}}DBh}{{{b{ACd}}{b{dCb}}}DBh}{{{b{ACf}}{b{dCb}}}DBh}{{{b{ACh}}{b{dCb}}}DBh}{{{b{ACj}}{b{dCb}}}DBh}{{{b{ACl}}{b{dCb}}}DBh}{{{b{ACn}}{b{dCb}}}DBh}{{{b{AD`}}{b{dCb}}}DBh}{{{b{ADb}}{b{dCb}}}DBh}{{{b{ADd}}{b{dCb}}}DBh}{{{b{ADf}}{b{dCb}}}DBh}{{{b{ADh}}{b{dCb}}}DBh}{{{b{ADj}}{b{dCb}}}DBh}{{{b{ADl}}{b{dCb}}}DBh}{{{b{ADn}}{b{dCb}}}DBh}{{{b{AE`}}{b{dCb}}}DBh}{{{b{AEb}}{b{dCb}}}DBh}{{{b{AEd}}{b{dCb}}}DBh}{{{b{AEf}}{b{dCb}}}DBh}{{{b{AEh}}{b{dCb}}}DBh}{{{b{AEj}}{b{dCb}}}DBh}{{{b{AEl}}{b{dCb}}}DBh}{{{b{AEn}}{b{dCb}}}DBh}{{{b{AF`}}{b{dCb}}}DBh}{{{b{AFb}}{b{dCb}}}DBh}{{{b{AFd}}{b{dCb}}}DBh}{{{b{AFf}}{b{dCb}}}DBh}{{{b{AFh}}{b{dCb}}}DBh}{{{b{AFj}}{b{dCb}}}DBh}{{{b{AFl}}{b{dCb}}}DBh}{{{b{AFn}}{b{dCb}}}DBh}{{{b{AG`}}{b{dCb}}}DBh}{{{b{AGb}}{b{dCb}}}DBh}{{{b{AGd}}{b{dCb}}}DBh}{{{b{AGf}}{b{dCb}}}DBh}{{{b{AGh}}{b{dCb}}}DBh}{{{b{AGj}}{b{dCb}}}DBh}{{{b{AGl}}{b{dCb}}}DBh}{{{b{AGn}}{b{dCb}}}DBh}{{{b{AH`}}{b{dCb}}}DBh}{{{b{AHb}}{b{dCb}}}DBh}{{{b{AHd}}{b{dCb}}}DBh}{{{b{AHf}}{b{dCb}}}DBh}{{{b{AHh}}{b{dCb}}}DBh}{{{b{AHj}}{b{dCb}}}DBh}{{{b{AHl}}{b{dCb}}}DBh}{{{b{AHn}}{b{dCb}}}DBh}{{{b{AI`}}{b{dCb}}}DBh}{{{b{AIb}}{b{dCb}}}DBh}{{{b{AId}}{b{dCb}}}DBh}{{{b{AIf}}{b{dCb}}}DBh}{{{b{AIh}}{b{dCb}}}DBh}{{{b{AIj}}{b{dCb}}}DBh}{{{b{AIl}}{b{dCb}}}DBh}{{{b{AIn}}{b{dCb}}}DBh}{{{b{AJ`}}{b{dCb}}}DBh}{{{b{AJb}}{b{dCb}}}DBh}{{{b{AJd}}{b{dCb}}}DBh}{{{b{AJf}}{b{dCb}}}DBh}{{{b{AJh}}{b{dCb}}}DBh}{{{b{AJj}}{b{dCb}}}DBh}{{{b{AJl}}{b{dCb}}}DBh}{{{b{AJn}}{b{dCb}}}DBh}{{{b{AK`}}{b{dCb}}}DBh}{{{b{AKb}}{b{dCb}}}DBh}{{{b{AKd}}{b{dCb}}}DBh}{{{b{AKf}}{b{dCb}}}DBh}{{{b{AKh}}{b{dCb}}}DBh}{{{b{AKj}}{b{dCb}}}DBh}{{{b{AKl}}{b{dCb}}}DBh}{{{b{AKn}}{b{dCb}}}DBh}{{{b{AL`}}{b{dCb}}}DBh}{{{b{ALb}}{b{dCb}}}DBh}{{{b{ALd}}{b{dCb}}}DBh}{{{b{ALf}}{b{dCb}}}DBh}{{{b{ALh}}{b{dCb}}}DBh}{{{b{ALj}}{b{dCb}}}DBh}{{{b{ALl}}{b{dCb}}}DBh}{{{b{ALn}}{b{dCb}}}DBh}{{{b{AM`}}{b{dCb}}}DBh}{{{b{AMb}}{b{dCb}}}DBh}{{{b{AMd}}{b{dCb}}}DBh}{{{b{AMf}}{b{dCb}}}DBh}{{{b{AMh}}{b{dCb}}}DBh}{{{b{AMj}}{b{dCb}}}DBh}{{{b{AMl}}{b{dCb}}}DBh}{{{b{AMn}}{b{dCb}}}DBh}{{{b{AN`}}{b{dCb}}}DBh}{{{b{ANb}}{b{dCb}}}DBh}{{{b{ANd}}{b{dCb}}}DBh}{{{b{ANf}}{b{dCb}}}DBh}{{{b{ANh}}{b{dCb}}}DBh}{{{b{ANj}}{b{dCb}}}DBh}{{{b{ANl}}{b{dCb}}}DBh}{{{b{ANn}}{b{dCb}}}DBh}{{{b{AO`}}{b{dCb}}}DBh}{{{b{AOb}}{b{dCb}}}DBh}{{{b{AOd}}{b{dCb}}}DBh}{{{b{AOf}}{b{dCb}}}DBh}{{{b{AOh}}{b{dCb}}}DBh}{{{b{AOj}}{b{dCb}}}DBh}{{{b{AOl}}{b{dCb}}}DBh}{{{b{AOn}}{b{dCb}}}DBh}{{{b{B@`}}{b{dCb}}}DBh}{{{b{B@b}}{b{dCb}}}DBh}{{{b{B@d}}{b{dCb}}}DBh}{{{b{B@f}}{b{dCb}}}DBh}{{{b{B@h}}{b{dCb}}}DBh}{{{b{B@j}}{b{dCb}}}DBh}{{{b{B@l}}{b{dCb}}}DBh}{{{b{B@n}}{b{dCb}}}DBh}{{{b{BA`}}{b{dCb}}}DBh}{{{b{BAb}}{b{dCb}}}DBh}{{{b{BAd}}{b{dCb}}}DBh}{{{b{BAf}}{b{dCb}}}DBh}{{{b{BAh}}{b{dCb}}}DBh}{{{b{BAj}}{b{dCb}}}DBh}{{{b{BAl}}{b{dCb}}}DBh}{{{b{BAn}}{b{dCb}}}DBh}{{{b{BB`}}{b{dCb}}}DBh}{{{b{BBb}}{b{dCb}}}DBh}{{{b{BBd}}{b{dCb}}}DBh}{{{b{BBf}}{b{dCb}}}DBh}{{{b{BBh}}{b{dCb}}}DBh}{{{b{BBj}}{b{dCb}}}DBh}{{{b{BBl}}{b{dCb}}}DBh}{{{b{BBn}}{b{dCb}}}DBh}{{{b{BC`}}{b{dCb}}}DBh}{{{b{BCb}}{b{dCb}}}DBh}{{{b{BCd}}{b{dCb}}}DBh}{{{b{BCf}}{b{dCb}}}DBh}{{{b{BCh}}{b{dCb}}}DBh}{{{b{BCj}}{b{dCb}}}DBh}{{{b{BCl}}{b{dCb}}}DBh}{{{b{BCn}}{b{dCb}}}DBh}{{{b{BD`}}{b{dCb}}}DBh}{{{b{BDb}}{b{dCb}}}DBh}{{{b{BDd}}{b{dCb}}}DBh}{{{b{BDf}}{b{dCb}}}DBh}{{{b{BDh}}{b{dCb}}}DBh}{{{b{BDj}}{b{dCb}}}DBh}{{{b{BDl}}{b{dCb}}}DBh}{{{b{BDn}}{b{dCb}}}DBh}{{{b{BE`}}{b{dCb}}}DBh}{{{b{BEb}}{b{dCb}}}DBh}{{{b{BEd}}{b{dCb}}}DBh}{{{b{BEf}}{b{dCb}}}DBh}{{{b{BEh}}{b{dCb}}}DBh}{{{b{BEj}}{b{dCb}}}DBh}{{{b{BEl}}{b{dCb}}}DBh}{{{b{BEn}}{b{dCb}}}DBh}{{{b{BF`}}{b{dCb}}}DBh}{{{b{BFb}}{b{dCb}}}DBh}{{{b{BFd}}{b{dCb}}}DBh}{{{b{BFf}}{b{dCb}}}DBh}{{{b{BFh}}{b{dCb}}}DBh}{{{b{BFj}}{b{dCb}}}DBh}{{{b{BFl}}{b{dCb}}}DBh}{{{b{BFn}}{b{dCb}}}DBh}{{{b{BG`}}{b{dCb}}}DBh}{{{b{BGb}}{b{dCb}}}DBh}{{{b{BGd}}{b{dCb}}}DBh}{{{b{BGf}}{b{dCb}}}DBh}{{{b{BGh}}{b{dCb}}}DBh}{{{b{BGj}}{b{dCb}}}DBh}{{{b{BGl}}{b{dCb}}}DBh}{{{b{BGn}}{b{dCb}}}DBh}{{{b{BH`}}{b{dCb}}}DBh}{{{b{BHb}}{b{dCb}}}DBh}{{{b{BHd}}{b{dCb}}}DBh}{{{b{BHf}}{b{dCb}}}DBh}{{{b{BHh}}{b{dCb}}}DBh}{{{b{BHj}}{b{dCb}}}DBh}{{{b{BHl}}{b{dCb}}}DBh}{{{b{BHn}}{b{dCb}}}DBh}{{{b{BI`}}{b{dCb}}}DBh}{{{b{BIb}}{b{dCb}}}DBh}{{{b{BId}}{b{dCb}}}DBh}{{{b{BIf}}{b{dCb}}}DBh}{{{b{BIh}}{b{dCb}}}DBh}{{{b{BIj}}{b{dCb}}}DBh}{{{b{BIl}}{b{dCb}}}DBh}{{{b{BIn}}{b{dCb}}}DBh}{{{b{BJ`}}{b{dCb}}}DBh}{{{b{BJb}}{b{dCb}}}DBh}{{{b{BJd}}{b{dCb}}}DBh}{{{b{BJf}}{b{dCb}}}DBh}{{{b{BJh}}{b{dCb}}}DBh}{{{b{BJj}}{b{dCb}}}DBh}{{{b{BJl}}{b{dCb}}}DBh}{{{b{BJn}}{b{dCb}}}DBh}{{{b{BK`}}{b{dCb}}}DBh}{{{b{BKb}}{b{dCb}}}DBh}{{{b{BKd}}{b{dCb}}}DBh}{{{b{BKf}}{b{dCb}}}DBh}{{{b{BKh}}{b{dCb}}}DBh}{{{b{BKj}}{b{dCb}}}DBh}{{{b{BKl}}{b{dCb}}}DBh}{{{b{BKn}}{b{dCb}}}DBh}{{{b{BL`}}{b{dCb}}}DBh}{{{b{BLb}}{b{dCb}}}DBh}{{{b{BLd}}{b{dCb}}}DBh}{{{b{BLf}}{b{dCb}}}DBh}{{{b{BLh}}{b{dCb}}}DBh}{{{b{BLj}}{b{dCb}}}DBh}{{{b{BLl}}{b{dCb}}}DBh}{{{b{BLn}}{b{dCb}}}DBh}{{{b{BM`}}{b{dCb}}}DBh}{{{b{BMb}}{b{dCb}}}DBh}{{{b{BMd}}{b{dCb}}}DBh}{{{b{BMf}}{b{dCb}}}DBh}{{{b{BMh}}{b{dCb}}}DBh}{{{b{BMj}}{b{dCb}}}DBh}{{{b{BMl}}{b{dCb}}}DBh}{{{b{BMn}}{b{dCb}}}DBh}{{{b{BN`}}{b{dCb}}}DBh}{{{b{BNb}}{b{dCb}}}DBh}{{{b{Dl}}{b{dCb}}}DBh}0000{{{b{BNd}}{b{dCb}}}DBh}{{{b{BNf}}{b{dCb}}}DBh}{{{b{BNh}}{b{dCb}}}DBh}{{{b{Dn}}{b{dCb}}}DBh}0000{{{b{BNj}}{b{dCb}}}DBh}{{{b{BNl}}{b{dCb}}}DBh}{{{b{E`}}{b{dCb}}}DBh}0000{{{b{BNn}}{b{dCb}}}DBh}{{{b{BO`}}{b{dCb}}}DBh}{{{b{Eb}}{b{dCb}}}DBh}0000{{{b{BOb}}{b{dCb}}}DBh}{{{b{BOd}}{b{dCb}}}DBh}{{{b{Ed}}{b{dCb}}}DBh}0000{{{b{BOf}}{b{dCb}}}DBh}{{{b{BOh}}{b{dCb}}}DBh}{{{b{BOj}}{b{dCb}}}DBh}{{{b{BOl}}{b{dCb}}}DBh}{{{b{BOn}}{b{dCb}}}DBh}{{{b{C@`}}{b{dCb}}}DBh}{{{b{C@b}}{b{dCb}}}DBh}{{{b{C@d}}{b{dCb}}}DBh}{{{b{C@f}}{b{dCb}}}DBh}{{{b{C@h}}{b{dCb}}}DBh}{{{b{C@j}}{b{dCb}}}DBh}{{{b{C@l}}{b{dCb}}}DBh}{{{b{C@n}}{b{dCb}}}DBh}{{{b{CA`}}{b{dCb}}}DBh}{{{b{CAb}}{b{dCb}}}DBh}{{{b{CAd}}{b{dCb}}}DBh}{{{b{CAf}}{b{dCb}}}DBh}{{{b{CAh}}{b{dCb}}}DBh}{{{b{Ef}}{b{dCb}}}DBh}0000{{{b{CAj}}{b{dCb}}}DBh}{{{b{CAl}}{b{dCb}}}DBh}{{{b{CAn}}{b{dCb}}}DBh}{{{b{CB`}}{b{dCb}}}DBh}{{{b{CBb}}{b{dCb}}}DBh}{{{b{CBd}}{b{dCb}}}DBh}{{{b{CBf}}{b{dCb}}}DBh}{{{b{CBh}}{b{dCb}}}DBh}{{{b{Eh}}{b{dCb}}}DBh}0000{{{b{Ej}}{b{dCb}}}DBh}0000{{{b{CBj}}{b{dCb}}}DBh}{{{b{CBl}}{b{dCb}}}DBh}{{{b{CBn}}{b{dCb}}}DBh}{{{b{CC`}}{b{dCb}}}DBh}{{{b{El}}{b{dCb}}}DBh}0000{{{b{CCb}}{b{dCb}}}DBh}{{{b{En}}{b{dCb}}}DBh}0000{{{b{F`}}{b{dCb}}}DBh}0000{{{b{CCd}}{b{dCb}}}DBh}{{{b{CCf}}{b{dCb}}}DBh}{{{b{CCh}}{b{dCb}}}DBh}{{{b{Fb}}{b{dCb}}}DBh}0000{{{b{CCj}}{b{dCb}}}DBh}{{{b{CCl}}{b{dCb}}}DBh}{{{b{CCn}}{b{dCb}}}DBh}{{{b{CD`}}{b{dCb}}}DBh}{{{b{CDb}}{b{dCb}}}DBh}{{{b{CDd}}{b{dCb}}}DBh}{{{b{CDf}}{b{dCb}}}DBh}{{{b{CDh}}{b{dCb}}}DBh}{{{b{CDj}}{b{dCb}}}DBh}{{{b{CDl}}{b{dCb}}}DBh}{{{b{CDn}}{b{dCb}}}DBh}{{{b{CE`}}{b{dCb}}}DBh}{{{b{CEb}}{b{dCb}}}DBh}{{{b{CEd}}{b{dCb}}}DBh}{{{b{CEf}}{b{dCb}}}DBh}{{{b{CEh}}{b{dCb}}}DBh}{{{b{CEj}}{b{dCb}}}DBh}{{{b{CEl}}{b{dCb}}}DBh}{{{b{CEn}}{b{dCb}}}DBh}{{{b{Fd}}{b{dCb}}}DBh}0000{{{b{CF`}}{b{dCb}}}DBh}{{{b{CFb}}{b{dCb}}}DBh}{{{b{CFd}}{b{dCb}}}DBh}{{{b{CFf}}{b{dCb}}}DBh}{{{b{Ff}}{b{dCb}}}DBh}0000{{{b{CFh}}{b{dCb}}}DBh}{{{b{Fh}}{b{dCb}}}DBh}0000{{{b{CFj}}{b{dCb}}}DBh}{{{b{CFl}}{b{dCb}}}DBh}{{{b{CFn}}{b{dCb}}}DBh}{{{b{Fj}}{b{dCb}}}DBh}0000{{{b{CG`}}{b{dCb}}}DBh}{{{b{CGb}}{b{dCb}}}DBh}{{{b{CGd}}{b{dCb}}}DBh}{{{b{CGf}}{b{dCb}}}DBh}{{{b{CGh}}{b{dCb}}}DBh}{{{b{CGj}}{b{dCb}}}DBh}{{{b{CGl}}{b{dCb}}}DBh}{{{b{CGn}}{b{dCb}}}DBh}{{{b{CH`}}{b{dCb}}}DBh}{{{b{CHb}}{b{dCb}}}DBh}{{{b{CHd}}{b{dCb}}}DBh}{{{b{CHf}}{b{dCb}}}DBh}{{{b{CHh}}{b{dCb}}}DBh}{{{b{CHj}}{b{dCb}}}DBh}{{{b{CHl}}{b{dCb}}}DBh}{{{b{CHn}}{b{dCb}}}DBh}{{{b{CI`}}{b{dCb}}}DBh}{{{b{CIb}}{b{dCb}}}DBh}{{{b{Fl}}{b{dCb}}}DBh}0000{{{b{CId}}{b{dCb}}}DBh}{{{b{CIf}}{b{dCb}}}DBh}{{{b{Fn}}{b{dCb}}}DBh}0000{{{b{CIh}}{b{dCb}}}DBh}{{{b{CIj}}{b{dCb}}}DBh}{{{b{CIl}}{b{dCb}}}DBh}{{{b{CIn}}{b{dCb}}}DBh}{{{b{CJ`}}{b{dCb}}}DBh}{{{b{CJb}}{b{dCb}}}DBh}{{{b{CJd}}{b{dCb}}}DBh}{{{b{CJf}}{b{dCb}}}DBh}{{{b{CJh}}{b{dCb}}}DBh}{{{b{CJj}}{b{dCb}}}DBh}{{{b{CJl}}{b{dCb}}}DBh}{{{b{CJn}}{b{dCb}}}DBh}{{{b{CK`}}{b{dCb}}}DBh}{{{b{CKb}}{b{dCb}}}DBh}{{{b{CKd}}{b{dCb}}}DBh}{{{b{CKf}}{b{dCb}}}DBh}{{{b{CKh}}{b{dCb}}}DBh}{{{b{CKj}}{b{dCb}}}DBh}{{{b{CKl}}{b{dCb}}}DBh}{{{b{CKn}}{b{dCb}}}DBh}{{{b{CL`}}{b{dCb}}}DBh}{{{b{CLb}}{b{dCb}}}DBh}{{{b{CLd}}{b{dCb}}}DBh}{{{b{G`}}{b{dCb}}}DBh}0000{{{b{CLf}}{b{dCb}}}DBh}{{{b{CLh}}{b{dCb}}}DBh}{{{b{CLj}}{b{dCb}}}DBh}{{{b{CLl}}{b{dCb}}}DBh}{{{b{CLn}}{b{dCb}}}DBh}{{{b{CM`}}{b{dCb}}}DBh}{{{b{CMb}}{b{dCb}}}DBh}{{{b{CMd}}{b{dCb}}}DBh}{{{b{CMf}}{b{dCb}}}DBh}{{{b{CMh}}{b{dCb}}}DBh}{{{b{Gb}}{b{dCb}}}DBh}0000{{{b{CMj}}{b{dCb}}}DBh}{{{b{CMl}}{b{dCb}}}DBh}{{{b{CMn}}{b{dCb}}}DBh}{{{b{CN`}}{b{dCb}}}DBh}{{{b{CNb}}{b{dCb}}}DBh}{{{b{CNd}}{b{dCb}}}DBh}{{{b{CNf}}{b{dCb}}}DBh}{{{b{CNh}}{b{dCb}}}DBh}{{{b{CNj}}{b{dCb}}}DBh}{{{b{CNl}}{b{dCb}}}DBh}{{{b{CNn}}{b{dCb}}}DBh}{{{b{CO`}}{b{dCb}}}DBh}{{{b{COb}}{b{dCb}}}DBh}{{{b{Gd}}{b{dCb}}}DBh}0000{{{b{COd}}{b{dCb}}}DBh}{{{b{COf}}{b{dCb}}}DBh}{{{b{COh}}{b{dCb}}}DBh}{{{b{Gf}}{b{dCb}}}DBh}0000{{{b{COj}}{b{dCb}}}DBh}{{{b{COl}}{b{dCb}}}DBh}{{{b{COn}}{b{dCb}}}DBh}{{{b{Gh}}{b{dCb}}}DBh}0000{{{b{Gj}}{b{dCb}}}DBh}0000{{{b{D@`}}{b{dCb}}}DBh}{{{b{Gl}}{b{dCb}}}DBh}0000{{{b{D@b}}{b{dCb}}}DBh}{{{b{D@d}}{b{dCb}}}DBh}{{{b{D@f}}{b{dCb}}}DBh}{{{b{D@h}}{b{dCb}}}DBh}{{{b{D@j}}{b{dCb}}}DBh}{{{b{Gn}}{b{dCb}}}DBh}0000{{{b{H`}}{b{dCb}}}DBh}0000{{{b{Hb}}{b{dCb}}}DBh}0000{{{b{Hd}}{b{dCb}}}DBh}0000{{{b{D@l}}{b{dCb}}}DBh}{{{b{D@n}}{b{dCb}}}DBh}{{{b{DA`}}{b{dCb}}}DBh}{{{b{Hf}}{b{dCb}}}DBh}0000{{{b{DAb}}{b{dCb}}}DBh}{{{b{DAd}}{b{dCb}}}DBh}{{{b{DAf}}{b{dCb}}}DBh}{{{b{DAh}}{b{dCb}}}DBh}{{{b{DAj}}{b{dCb}}}DBh}{{{b{DAl}}{b{dCb}}}DBh}{{{b{Hh}}{b{dCb}}}DBh}0000{{{b{DAn}}{b{dCb}}}DBh}{{{b{Hj}}{b{dCb}}}DBh}0000{{{b{DB`}}{b{dCb}}}DBh}```````````````````{cc{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{j{{DBj{Dl}}}}{f{{DBj{Dn}}}}{j{{DBj{E`}}}}{j{{DBj{Eb}}}}{f{{DBj{Ed}}}}{Bf{{DBj{Ef}}}}{j{{DBj{Eh}}}}{f{{DBj{Ej}}}}{j{{DBj{El}}}}{f{{DBj{En}}}}{f{{DBj{F`}}}}{f{{DBj{Fb}}}}{Bf{{DBj{Fd}}}}{Bf{{DBj{Ff}}}}{f{{DBj{Fh}}}}{j{{DBj{Fj}}}}{Bf{{DBj{Fl}}}}{j{{DBj{Fn}}}}{j{{DBj{G`}}}}{f{{DBj{Gb}}}}{Bf{{DBj{Gd}}}}{Bf{{DBj{Gf}}}}{f{{DBj{Gh}}}}{j{{DBj{Gj}}}}{j{{DBj{Gl}}}}{Hl{{DBj{Gn}}}}{Bf{{DBj{H`}}}}{j{{DBj{Hb}}}}{j{{DBj{Hd}}}}{f{{DBj{Hf}}}}{j{{DBj{Hh}}}}{Hl{{DBj{Hj}}}}{jDl}{fDn}{jE`}{jEb}{fEd}{BfEf}{jEh}{fEj}{jEl}{fEn}{fF`}{fFb}{BfFd}{BfFf}{fFh}{jFj}{BfFl}{jFn}{jG`}{fGb}{BfGd}{BfGf}{fGh}{jGj}{jGl}{HlGn}{BfH`}{jHb}{jHd}{fHf}{jHh}{HlHj}{jDl}{fDn}{jE`}{jEb}{fEd}{BfEf}{jEh}{fEj}{jEl}{fEn}{fF`}{fFb}{BfFd}{BfFf}{fFh}{jFj}{BfFl}{jFn}{jG`}{fGb}{BfGd}{BfGf}{fGh}{jGj}{jGl}{HlGn}{BfH`}{jHb}{jHd}{fHf}{jHh}{HlHj}{DBl{{DBj{BN`}}}}{DBl{{DBj{BNb}}}}{DBl{{DBj{BNd}}}}{DBl{{DBj{BNf}}}}{DBl{{DBj{BNh}}}}{DBl{{DBj{BNj}}}}{DBl{{DBj{BNl}}}}{DBl{{DBj{BNn}}}}{DBl{{DBj{BO`}}}}{DBl{{DBj{BOb}}}}{DBl{{DBj{BOd}}}}{DBl{{DBj{BOf}}}}{DBl{{DBj{BOh}}}}{DBl{{DBj{BOj}}}}{DBl{{DBj{BOl}}}}{DBl{{DBj{BOn}}}}{DBl{{DBj{C@`}}}}{DBl{{DBj{C@b}}}}{DBl{{DBj{C@d}}}}{DBl{{DBj{C@f}}}}{DBl{{DBj{C@h}}}}{DBl{{DBj{C@j}}}}{DBl{{DBj{C@l}}}}{DBl{{DBj{C@n}}}}{DBl{{DBj{CA`}}}}{DBl{{DBj{CAb}}}}{DBl{{DBj{CAd}}}}{DBl{{DBj{CAf}}}}{DBl{{DBj{CAh}}}}{DBl{{DBj{CAj}}}}{DBl{{DBj{CAl}}}}{DBl{{DBj{CAn}}}}{DBl{{DBj{CB`}}}}{DBl{{DBj{CBb}}}}{DBl{{DBj{CBd}}}}{DBl{{DBj{CBf}}}}{DBl{{DBj{CBh}}}}{DBl{{DBj{CBj}}}}{DBl{{DBj{CBl}}}}{DBl{{DBj{CBn}}}}{DBl{{DBj{CC`}}}}{DBl{{DBj{CCb}}}}{DBl{{DBj{CCd}}}}{DBl{{DBj{CCf}}}}{DBl{{DBj{CCh}}}}{DBl{{DBj{CCj}}}}{DBl{{DBj{CCl}}}}{DBl{{DBj{CCn}}}}{DBl{{DBj{CD`}}}}{DBl{{DBj{CDb}}}}{DBl{{DBj{CDd}}}}{DBl{{DBj{CDf}}}}{DBl{{DBj{CDh}}}}{DBl{{DBj{CDj}}}}{DBl{{DBj{CDl}}}}{DBl{{DBj{CDn}}}}{DBl{{DBj{CE`}}}}{DBl{{DBj{CEb}}}}{DBl{{DBj{CEd}}}}{DBl{{DBj{CEf}}}}{DBl{{DBj{CEh}}}}{DBl{{DBj{CEj}}}}{DBl{{DBj{CEl}}}}{DBl{{DBj{CEn}}}}{DBl{{DBj{CF`}}}}{DBl{{DBj{CFb}}}}{DBl{{DBj{CFd}}}}{DBl{{DBj{CFf}}}}{DBl{{DBj{CFh}}}}{DBl{{DBj{CFj}}}}{DBl{{DBj{CFl}}}}{DBl{{DBj{CFn}}}}{DBl{{DBj{CG`}}}}{DBl{{DBj{CGb}}}}{DBl{{DBj{CGd}}}}{DBl{{DBj{CGf}}}}{DBl{{DBj{CGh}}}}{DBl{{DBj{CGj}}}}{DBl{{DBj{CGl}}}}{DBl{{DBj{CGn}}}}{DBl{{DBj{CH`}}}}{DBl{{DBj{CHb}}}}{DBl{{DBj{CHd}}}}{DBl{{DBj{CHf}}}}{DBl{{DBj{CHh}}}}{DBl{{DBj{CHj}}}}{DBl{{DBj{CHl}}}}{DBl{{DBj{CHn}}}}{DBl{{DBj{CI`}}}}{DBl{{DBj{CIb}}}}{DBl{{DBj{CId}}}}{DBl{{DBj{CIf}}}}{DBl{{DBj{CIh}}}}{DBl{{DBj{CIj}}}}{DBl{{DBj{CIl}}}}{DBl{{DBj{CIn}}}}{DBl{{DBj{CJ`}}}}{DBl{{DBj{CJb}}}}{DBl{{DBj{CJd}}}}{DBl{{DBj{CJf}}}}{DBl{{DBj{CJh}}}}{DBl{{DBj{CJj}}}}{DBl{{DBj{CJl}}}}{DBl{{DBj{CJn}}}}{DBl{{DBj{CK`}}}}{DBl{{DBj{CKb}}}}{DBl{{DBj{CKd}}}}{DBl{{DBj{CKf}}}}{DBl{{DBj{CKh}}}}{DBl{{DBj{CKj}}}}{DBl{{DBj{CKl}}}}{DBl{{DBj{CKn}}}}{DBl{{DBj{CL`}}}}{DBl{{DBj{CLb}}}}{DBl{{DBj{CLd}}}}{DBl{{DBj{CLf}}}}{DBl{{DBj{CLh}}}}{DBl{{DBj{CLj}}}}{DBl{{DBj{CLl}}}}{DBl{{DBj{CLn}}}}{DBl{{DBj{CM`}}}}{DBl{{DBj{CMb}}}}{DBl{{DBj{CMd}}}}{DBl{{DBj{CMf}}}}{DBl{{DBj{CMh}}}}{DBl{{DBj{CMj}}}}{DBl{{DBj{CMl}}}}{DBl{{DBj{CMn}}}}{DBl{{DBj{CN`}}}}{DBl{{DBj{CNb}}}}{DBl{{DBj{CNd}}}}{DBl{{DBj{CNf}}}}{DBl{{DBj{CNh}}}}{DBl{{DBj{CNj}}}}{DBl{{DBj{CNl}}}}{DBl{{DBj{CNn}}}}{DBl{{DBj{CO`}}}}{DBl{{DBj{COb}}}}{DBl{{DBj{COd}}}}{DBl{{DBj{COf}}}}{DBl{{DBj{COh}}}}{DBl{{DBj{COj}}}}{DBl{{DBj{COl}}}}{DBl{{DBj{COn}}}}{DBl{{DBj{D@`}}}}{DBl{{DBj{D@b}}}}{DBl{{DBj{D@d}}}}{DBl{{DBj{D@f}}}}{DBl{{DBj{D@h}}}}{DBl{{DBj{D@j}}}}{DBl{{DBj{D@l}}}}{DBl{{DBj{D@n}}}}{DBl{{DBj{DA`}}}}{DBl{{DBj{DAb}}}}{DBl{{DBj{DAd}}}}{DBl{{DBj{DAf}}}}{DBl{{DBj{DAh}}}}{DBl{{DBj{DAj}}}}{DBl{{DBj{DAl}}}}{DBl{{DBj{DAn}}}}{DBl{{DBj{DB`}}}}{cDl{{DBf{}{{DBd{Dl}}}}}}{cDn{{DBf{}{{DBd{Dn}}}}}}{cE`{{DBf{}{{DBd{E`}}}}}}{cEb{{DBf{}{{DBd{Eb}}}}}}{cEd{{DBf{}{{DBd{Ed}}}}}}{cEf{{DBf{}{{DBd{Ef}}}}}}{cEh{{DBf{}{{DBd{Eh}}}}}}{cEj{{DBf{}{{DBd{Ej}}}}}}{cEl{{DBf{}{{DBd{El}}}}}}{cEn{{DBf{}{{DBd{En}}}}}}{cF`{{DBf{}{{DBd{F`}}}}}}{cFb{{DBf{}{{DBd{Fb}}}}}}{cFd{{DBf{}{{DBd{Fd}}}}}}{cFf{{DBf{}{{DBd{Ff}}}}}}{cFh{{DBf{}{{DBd{Fh}}}}}}{cFj{{DBf{}{{DBd{Fj}}}}}}{cFl{{DBf{}{{DBd{Fl}}}}}}{cFn{{DBf{}{{DBd{Fn}}}}}}{cG`{{DBf{}{{DBd{G`}}}}}}{cGb{{DBf{}{{DBd{Gb}}}}}}{cGd{{DBf{}{{DBd{Gd}}}}}}{cGf{{DBf{}{{DBd{Gf}}}}}}{cGh{{DBf{}{{DBd{Gh}}}}}}{cGj{{DBf{}{{DBd{Gj}}}}}}{cGl{{DBf{}{{DBd{Gl}}}}}}{cGn{{DBf{}{{DBd{Gn}}}}}}{cH`{{DBf{}{{DBd{H`}}}}}}{cHb{{DBf{}{{DBd{Hb}}}}}}{cHd{{DBf{}{{DBd{Hd}}}}}}{cHf{{DBf{}{{DBd{Hf}}}}}}{cHh{{DBf{}{{DBd{Hh}}}}}}{cHj{{DBf{}{{DBd{Hj}}}}}}{Hl{{DBj{BN`}}}}{Hl{{DBj{BNb}}}}{Hl{{DBj{BNd}}}}{Hl{{DBj{BNf}}}}{Hl{{DBj{BNh}}}}{Hl{{DBj{BNj}}}}{Hl{{DBj{BNl}}}}{Hl{{DBj{BNn}}}}{Hl{{DBj{BO`}}}}{Hl{{DBj{BOb}}}}{Hl{{DBj{BOd}}}}{Hl{{DBj{BOf}}}}{Hl{{DBj{BOh}}}}{Hl{{DBj{BOj}}}}{Hl{{DBj{BOl}}}}{Hl{{DBj{BOn}}}}{Hl{{DBj{C@`}}}}{Hl{{DBj{C@b}}}}{Hl{{DBj{C@d}}}}{Hl{{DBj{C@f}}}}{Hl{{DBj{C@h}}}}{Hl{{DBj{C@j}}}}{Hl{{DBj{C@l}}}}{Hl{{DBj{C@n}}}}{Hl{{DBj{CA`}}}}{Hl{{DBj{CAb}}}}{Hl{{DBj{CAd}}}}{Hl{{DBj{CAf}}}}{Hl{{DBj{CAh}}}}{Hl{{DBj{CAj}}}}{Hl{{DBj{CAl}}}}{Hl{{DBj{CAn}}}}{Hl{{DBj{CB`}}}}{Hl{{DBj{CBb}}}}{Hl{{DBj{CBd}}}}{Hl{{DBj{CBf}}}}{Hl{{DBj{CBh}}}}{Hl{{DBj{CBj}}}}{Hl{{DBj{CBl}}}}{Hl{{DBj{CBn}}}}{Hl{{DBj{CC`}}}}{Hl{{DBj{CCb}}}}{Hl{{DBj{CCd}}}}{Hl{{DBj{CCf}}}}{Hl{{DBj{CCh}}}}{Hl{{DBj{CCj}}}}{Hl{{DBj{CCl}}}}{Hl{{DBj{CCn}}}}{Hl{{DBj{CD`}}}}{Hl{{DBj{CDb}}}}{Hl{{DBj{CDd}}}}{Hl{{DBj{CDf}}}}{Hl{{DBj{CDh}}}}{Hl{{DBj{CDj}}}}{Hl{{DBj{CDl}}}}{Hl{{DBj{CDn}}}}{Hl{{DBj{CE`}}}}{Hl{{DBj{CEb}}}}{Hl{{DBj{CEd}}}}{Hl{{DBj{CEf}}}}{Hl{{DBj{CEh}}}}{Hl{{DBj{CEj}}}}{Hl{{DBj{CEl}}}}{Hl{{DBj{CEn}}}}{Hl{{DBj{CF`}}}}{Hl{{DBj{CFb}}}}{Hl{{DBj{CFd}}}}{Hl{{DBj{CFf}}}}{Hl{{DBj{CFh}}}}{Hl{{DBj{CFj}}}}{Hl{{DBj{CFl}}}}{Hl{{DBj{CFn}}}}{Hl{{DBj{CG`}}}}{Hl{{DBj{CGb}}}}{Hl{{DBj{CGd}}}}{Hl{{DBj{CGf}}}}{Hl{{DBj{CGh}}}}{Hl{{DBj{CGj}}}}{Hl{{DBj{CGl}}}}{Hl{{DBj{CGn}}}}{Hl{{DBj{CH`}}}}{Hl{{DBj{CHb}}}}{Hl{{DBj{CHd}}}}{Hl{{DBj{CHf}}}}{Hl{{DBj{CHh}}}}{Hl{{DBj{CHj}}}}{Hl{{DBj{CHl}}}}{Hl{{DBj{CHn}}}}{Hl{{DBj{CI`}}}}{Hl{{DBj{CIb}}}}{Hl{{DBj{CId}}}}{Hl{{DBj{CIf}}}}{Hl{{DBj{CIh}}}}{Hl{{DBj{CIj}}}}{Hl{{DBj{CIl}}}}{Hl{{DBj{CIn}}}}{Hl{{DBj{CJ`}}}}{Hl{{DBj{CJb}}}}{Hl{{DBj{CJd}}}}{Hl{{DBj{CJf}}}}{Hl{{DBj{CJh}}}}{Hl{{DBj{CJj}}}}{Hl{{DBj{CJl}}}}{Hl{{DBj{CJn}}}}{Hl{{DBj{CK`}}}}{Hl{{DBj{CKb}}}}{Hl{{DBj{CKd}}}}{Hl{{DBj{CKf}}}}{Hl{{DBj{CKh}}}}{Hl{{DBj{CKj}}}}{Hl{{DBj{CKl}}}}{Hl{{DBj{CKn}}}}{Hl{{DBj{CL`}}}}{Hl{{DBj{CLb}}}}{Hl{{DBj{CLd}}}}{Hl{{DBj{CLf}}}}{Hl{{DBj{CLh}}}}{Hl{{DBj{CLj}}}}{Hl{{DBj{CLl}}}}{Hl{{DBj{CLn}}}}{Hl{{DBj{CM`}}}}{Hl{{DBj{CMb}}}}{Hl{{DBj{CMd}}}}{Hl{{DBj{CMf}}}}{Hl{{DBj{CMh}}}}{Hl{{DBj{CMj}}}}{Hl{{DBj{CMl}}}}{Hl{{DBj{CMn}}}}{Hl{{DBj{CN`}}}}{Hl{{DBj{CNb}}}}{Hl{{DBj{CNd}}}}{Hl{{DBj{CNf}}}}{Hl{{DBj{CNh}}}}{Hl{{DBj{CNj}}}}{Hl{{DBj{CNl}}}}{Hl{{DBj{CNn}}}}{Hl{{DBj{CO`}}}}{Hl{{DBj{COb}}}}{Hl{{DBj{COd}}}}{Hl{{DBj{COf}}}}{Hl{{DBj{COh}}}}{Hl{{DBj{COj}}}}{Hl{{DBj{COl}}}}{Hl{{DBj{COn}}}}{Hl{{DBj{D@`}}}}{Hl{{DBj{D@b}}}}{Hl{{DBj{D@d}}}}{Hl{{DBj{D@f}}}}{Hl{{DBj{D@h}}}}{Hl{{DBj{D@j}}}}{Hl{{DBj{D@l}}}}{Hl{{DBj{D@n}}}}{Hl{{DBj{DA`}}}}{Hl{{DBj{DAb}}}}{Hl{{DBj{DAd}}}}{Hl{{DBj{DAf}}}}{Hl{{DBj{DAh}}}}{Hl{{DBj{DAj}}}}{Hl{{DBj{DAl}}}}{Hl{{DBj{DAn}}}}{Hl{{DBj{DB`}}}}```````````````````````````````````````{{{b{Dl}}{b{dc}}}AjDBn}{{{b{Dn}}{b{dc}}}AjDBn}{{{b{E`}}{b{dc}}}AjDBn}{{{b{Eb}}{b{dc}}}AjDBn}{{{b{Ed}}{b{dc}}}AjDBn}{{{b{Ef}}{b{dc}}}AjDBn}{{{b{Eh}}{b{dc}}}AjDBn}{{{b{Ej}}{b{dc}}}AjDBn}{{{b{El}}{b{dc}}}AjDBn}{{{b{En}}{b{dc}}}AjDBn}{{{b{F`}}{b{dc}}}AjDBn}{{{b{Fb}}{b{dc}}}AjDBn}{{{b{Fd}}{b{dc}}}AjDBn}{{{b{Ff}}{b{dc}}}AjDBn}{{{b{Fh}}{b{dc}}}AjDBn}{{{b{Fj}}{b{dc}}}AjDBn}{{{b{Fl}}{b{dc}}}AjDBn}{{{b{Fn}}{b{dc}}}AjDBn}{{{b{G`}}{b{dc}}}AjDBn}{{{b{Gb}}{b{dc}}}AjDBn}{{{b{Gd}}{b{dc}}}AjDBn}{{{b{Gf}}{b{dc}}}AjDBn}{{{b{Gh}}{b{dc}}}AjDBn}{{{b{Gj}}{b{dc}}}AjDBn}{{{b{Gl}}{b{dc}}}AjDBn}{{{b{Gn}}{b{dc}}}AjDBn}{{{b{H`}}{b{dc}}}AjDBn}{{{b{Hb}}{b{dc}}}AjDBn}{{{b{Hd}}{b{dc}}}AjDBn}{{{b{Hf}}{b{dc}}}AjDBn}{{{b{Hh}}{b{dc}}}AjDBn}{{{b{Hj}}{b{dc}}}AjDBn}`````````````````````````````````````````````````````````````````````````````{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}````````````````{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}{{{b{Dl}}Dl}C`}{{{b{Dn}}Dn}C`}{{{b{E`}}E`}C`}{{{b{Eb}}Eb}C`}{{{b{Ed}}Ed}C`}{{{b{Ef}}Ef}C`}{{{b{Eh}}Eh}C`}{{{b{Ej}}Ej}C`}{{{b{El}}El}C`}{{{b{En}}En}C`}{{{b{F`}}F`}C`}{{{b{Fb}}Fb}C`}{{{b{Fd}}Fd}C`}{{{b{Ff}}Ff}C`}{{{b{Fh}}Fh}C`}{{{b{Fj}}Fj}C`}{{{b{Fl}}Fl}C`}{{{b{Fn}}Fn}C`}{{{b{G`}}G`}C`}{{{b{Gb}}Gb}C`}{{{b{Gd}}Gd}C`}{{{b{Gf}}Gf}C`}{{{b{Gh}}Gh}C`}{{{b{Gj}}Gj}C`}{{{b{Gl}}Gl}C`}{{{b{Gn}}Gn}C`}{{{b{H`}}H`}C`}{{{b{Hb}}Hb}C`}{{{b{Hd}}Hd}C`}{{{b{Hf}}Hf}C`}{{{b{Hh}}Hh}C`}{{{b{Hj}}Hj}C`}`{ce{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{Dl}}}C`}{{{b{Dn}}}C`}{{{b{E`}}}C`}{{{b{Eb}}}C`}{{{b{Ed}}}C`}{{{b{Ef}}}C`}{{{b{Eh}}}C`}{{{b{Ej}}}C`}{{{b{El}}}C`}{{{b{En}}}C`}{{{b{F`}}}C`}{{{b{Fb}}}C`}{{{b{Fd}}}C`}{{{b{Ff}}}C`}{{{b{Fh}}}C`}{{{b{Fj}}}C`}{{{b{Fl}}}C`}{{{b{Fn}}}C`}{{{b{G`}}}C`}{{{b{Gb}}}C`}{{{b{Gd}}}C`}{{{b{Gf}}}C`}{{{b{Gh}}}C`}{{{b{Gj}}}C`}{{{b{Gl}}}C`}{{{b{Gn}}}C`}{{{b{H`}}}C`}{{{b{Hb}}}C`}{{{b{Hd}}}C`}{{{b{Hf}}}C`}{{{b{Hh}}}C`}{{{b{Hj}}}C`}{{{b{Dl}}}C`}{{{b{Dn}}}C`}{{{b{E`}}}C`}{{{b{Eb}}}C`}{{{b{Ed}}}C`}{{{b{Ef}}}C`}{{{b{Eh}}}C`}{{{b{Ej}}}C`}{{{b{El}}}C`}{{{b{En}}}C`}{{{b{F`}}}C`}{{{b{Fb}}}C`}{{{b{Fd}}}C`}{{{b{Ff}}}C`}{{{b{Fh}}}C`}{{{b{Fj}}}C`}{{{b{Fl}}}C`}{{{b{Fn}}}C`}{{{b{G`}}}C`}{{{b{Gb}}}C`}{{{b{Gd}}}C`}{{{b{Gf}}}C`}{{{b{Gh}}}C`}{{{b{Gj}}}C`}{{{b{Gl}}}C`}{{{b{Gn}}}C`}{{{b{H`}}}C`}{{{b{Hb}}}C`}{{{b{Hd}}}C`}{{{b{Hf}}}C`}{{{b{Hh}}}C`}{{{b{Hj}}}C`}````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{Hn}}}Bf}`{{{b{Al}}}{{Bd{Bf{b{Al}}}}}}{{{b{Hn}}}{{b{Al}}}}`````````````````````````````````````````````````````{DlDl}{DnDn}{E`E`}{EbEb}{EdEd}{EfEf}{EhEh}{EjEj}{ElEl}{EnEn}{F`F`}{FbFb}{FdFd}{FfFf}{FhFh}{FjFj}{FlFl}{FnFn}{G`G`}{GbGb}{GdGd}{GfGf}{GhGh}{GjGj}{GlGl}{GnGn}{H`H`}{HbHb}{HdHd}{HfHf}{HhHh}{HjHj}``````````````````````````````````````````````````````````````````````````````````````````````````````````````{{AbBf{b{{h{f}}}}}{{Bd{HnBl}}}}{{{b{Dl}}{b{Dl}}}{{DBj{DBb}}}}{{{b{Dn}}{b{Dn}}}{{DBj{DBb}}}}{{{b{E`}}{b{E`}}}{{DBj{DBb}}}}{{{b{Eb}}{b{Eb}}}{{DBj{DBb}}}}{{{b{Ed}}{b{Ed}}}{{DBj{DBb}}}}{{{b{Ef}}{b{Ef}}}{{DBj{DBb}}}}{{{b{Eh}}{b{Eh}}}{{DBj{DBb}}}}{{{b{Ej}}{b{Ej}}}{{DBj{DBb}}}}{{{b{El}}{b{El}}}{{DBj{DBb}}}}{{{b{En}}{b{En}}}{{DBj{DBb}}}}{{{b{F`}}{b{F`}}}{{DBj{DBb}}}}{{{b{Fb}}{b{Fb}}}{{DBj{DBb}}}}{{{b{Fd}}{b{Fd}}}{{DBj{DBb}}}}{{{b{Ff}}{b{Ff}}}{{DBj{DBb}}}}{{{b{Fh}}{b{Fh}}}{{DBj{DBb}}}}{{{b{Fj}}{b{Fj}}}{{DBj{DBb}}}}{{{b{Fl}}{b{Fl}}}{{DBj{DBb}}}}{{{b{Fn}}{b{Fn}}}{{DBj{DBb}}}}{{{b{G`}}{b{G`}}}{{DBj{DBb}}}}{{{b{Gb}}{b{Gb}}}{{DBj{DBb}}}}{{{b{Gd}}{b{Gd}}}{{DBj{DBb}}}}{{{b{Gf}}{b{Gf}}}{{DBj{DBb}}}}{{{b{Gh}}{b{Gh}}}{{DBj{DBb}}}}{{{b{Gj}}{b{Gj}}}{{DBj{DBb}}}}{{{b{Gl}}{b{Gl}}}{{DBj{DBb}}}}{{{b{Gn}}{b{Gn}}}{{DBj{DBb}}}}{{{b{H`}}{b{H`}}}{{DBj{DBb}}}}{{{b{Hb}}{b{Hb}}}{{DBj{DBb}}}}{{{b{Hd}}{b{Hd}}}{{DBj{DBb}}}}{{{b{Hf}}{b{Hf}}}{{DBj{DBb}}}}{{{b{Hh}}{b{Hh}}}{{DBj{DBb}}}}{{{b{Hj}}{b{Hj}}}{{DBj{DBb}}}}``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{Hn}}Ab{b{d{h{f}}}}}D`}{{{b{I`}}Ab{b{d{h{f}}}}}D`}{{{b{Ib}}Ab{b{d{h{f}}}}}D`}{{{b{Id}}Ab{b{d{h{f}}}}}D`}{{{b{If}}Ab{b{d{h{f}}}}}D`}{{{b{Ih}}Ab{b{d{h{f}}}}}D`}{{{b{Ij}}Ab{b{d{h{f}}}}}D`}{{{b{Il}}Ab{b{d{h{f}}}}}D`}{{{b{In}}Ab{b{d{h{f}}}}}D`}{{{b{J`}}Ab{b{d{h{f}}}}}D`}{{{b{Jb}}Ab{b{d{h{f}}}}}D`}{{{b{Jd}}Ab{b{d{h{f}}}}}D`}{{{b{Jf}}Ab{b{d{h{f}}}}}D`}{{{b{Jh}}Ab{b{d{h{f}}}}}D`}{{{b{Jj}}Ab{b{d{h{f}}}}}D`}{{{b{Jl}}Ab{b{d{h{f}}}}}D`}{{{b{Jn}}Ab{b{d{h{f}}}}}D`}{{{b{K`}}Ab{b{d{h{f}}}}}D`}{{{b{Kb}}Ab{b{d{h{f}}}}}D`}{{{b{Kd}}Ab{b{d{h{f}}}}}D`}{{{b{Kf}}Ab{b{d{h{f}}}}}D`}{{{b{Kh}}Ab{b{d{h{f}}}}}D`}{{{b{Kj}}Ab{b{d{h{f}}}}}D`}{{{b{Kl}}Ab{b{d{h{f}}}}}D`}{{{b{Kn}}Ab{b{d{h{f}}}}}D`}{{{b{L`}}Ab{b{d{h{f}}}}}D`}{{{b{Lb}}Ab{b{d{h{f}}}}}D`}{{{b{Ld}}Ab{b{d{h{f}}}}}D`}{{{b{Lf}}Ab{b{d{h{f}}}}}D`}{{{b{Lh}}Ab{b{d{h{f}}}}}D`}{{{b{Lj}}Ab{b{d{h{f}}}}}D`}{{{b{Ll}}Ab{b{d{h{f}}}}}D`}{{{b{Ln}}Ab{b{d{h{f}}}}}D`}{{{b{M`}}Ab{b{d{h{f}}}}}D`}{{{b{Mb}}Ab{b{d{h{f}}}}}D`}{{{b{Md}}Ab{b{d{h{f}}}}}D`}{{{b{Mf}}Ab{b{d{h{f}}}}}D`}{{{b{Mh}}Ab{b{d{h{f}}}}}D`}{{{b{Mj}}Ab{b{d{h{f}}}}}D`}{{{b{Ml}}Ab{b{d{h{f}}}}}D`}{{{b{Mn}}Ab{b{d{h{f}}}}}D`}{{{b{N`}}Ab{b{d{h{f}}}}}D`}{{{b{Nb}}Ab{b{d{h{f}}}}}D`}{{{b{Nd}}Ab{b{d{h{f}}}}}D`}{{{b{Nf}}Ab{b{d{h{f}}}}}D`}{{{b{Nh}}Ab{b{d{h{f}}}}}D`}{{{b{Nj}}Ab{b{d{h{f}}}}}D`}{{{b{Nl}}Ab{b{d{h{f}}}}}D`}{{{b{Nn}}Ab{b{d{h{f}}}}}D`}{{{b{O`}}Ab{b{d{h{f}}}}}D`}{{{b{Ob}}Ab{b{d{h{f}}}}}D`}{{{b{Od}}Ab{b{d{h{f}}}}}D`}{{{b{Of}}Ab{b{d{h{f}}}}}D`}{{{b{Oh}}Ab{b{d{h{f}}}}}D`}{{{b{Oj}}Ab{b{d{h{f}}}}}D`}{{{b{Ol}}Ab{b{d{h{f}}}}}D`}{{{b{On}}Ab{b{d{h{f}}}}}D`}{{{b{A@`}}Ab{b{d{h{f}}}}}D`}{{{b{A@b}}Ab{b{d{h{f}}}}}D`}{{{b{A@d}}Ab{b{d{h{f}}}}}D`}{{{b{A@f}}Ab{b{d{h{f}}}}}D`}{{{b{A@h}}Ab{b{d{h{f}}}}}D`}{{{b{A@j}}Ab{b{d{h{f}}}}}D`}{{{b{A@l}}Ab{b{d{h{f}}}}}D`}{{{b{A@n}}Ab{b{d{h{f}}}}}D`}{{{b{AA`}}Ab{b{d{h{f}}}}}D`}{{{b{AAb}}Ab{b{d{h{f}}}}}D`}{{{b{AAd}}Ab{b{d{h{f}}}}}D`}{{{b{AAf}}Ab{b{d{h{f}}}}}D`}{{{b{AAh}}Ab{b{d{h{f}}}}}D`}{{{b{AAj}}Ab{b{d{h{f}}}}}D`}{{{b{AAl}}Ab{b{d{h{f}}}}}D`}{{{b{AAn}}Ab{b{d{h{f}}}}}D`}{{{b{AB`}}Ab{b{d{h{f}}}}}D`}{{{b{ABb}}Ab{b{d{h{f}}}}}D`}{{{b{ABd}}Ab{b{d{h{f}}}}}D`}{{{b{ABf}}Ab{b{d{h{f}}}}}D`}{{{b{ABh}}Ab{b{d{h{f}}}}}D`}{{{b{ABj}}Ab{b{d{h{f}}}}}D`}{{{b{ABl}}Ab{b{d{h{f}}}}}D`}{{{b{ABn}}Ab{b{d{h{f}}}}}D`}{{{b{AC`}}Ab{b{d{h{f}}}}}D`}{{{b{ACb}}Ab{b{d{h{f}}}}}D`}{{{b{ACd}}Ab{b{d{h{f}}}}}D`}{{{b{ACf}}Ab{b{d{h{f}}}}}D`}{{{b{ACh}}Ab{b{d{h{f}}}}}D`}{{{b{ACj}}Ab{b{d{h{f}}}}}D`}{{{b{ACl}}Ab{b{d{h{f}}}}}D`}{{{b{ACn}}Ab{b{d{h{f}}}}}D`}{{{b{AD`}}Ab{b{d{h{f}}}}}D`}{{{b{ADb}}Ab{b{d{h{f}}}}}D`}{{{b{ADd}}Ab{b{d{h{f}}}}}D`}{{{b{ADf}}Ab{b{d{h{f}}}}}D`}{{{b{ADh}}Ab{b{d{h{f}}}}}D`}{{{b{ADj}}Ab{b{d{h{f}}}}}D`}{{{b{ADl}}Ab{b{d{h{f}}}}}D`}{{{b{ADn}}Ab{b{d{h{f}}}}}D`}{{{b{AE`}}Ab{b{d{h{f}}}}}D`}{{{b{AEb}}Ab{b{d{h{f}}}}}D`}{{{b{AEd}}Ab{b{d{h{f}}}}}D`}{{{b{AEf}}Ab{b{d{h{f}}}}}D`}{{{b{AEh}}Ab{b{d{h{f}}}}}D`}{{{b{AEj}}Ab{b{d{h{f}}}}}D`}{{{b{AEl}}Ab{b{d{h{f}}}}}D`}{{{b{AEn}}Ab{b{d{h{f}}}}}D`}{{{b{AF`}}Ab{b{d{h{f}}}}}D`}{{{b{AFb}}Ab{b{d{h{f}}}}}D`}{{{b{AFd}}Ab{b{d{h{f}}}}}D`}{{{b{AFf}}Ab{b{d{h{f}}}}}D`}{{{b{AFh}}Ab{b{d{h{f}}}}}D`}{{{b{AFj}}Ab{b{d{h{f}}}}}D`}{{{b{AFl}}Ab{b{d{h{f}}}}}D`}{{{b{AFn}}Ab{b{d{h{f}}}}}D`}{{{b{AG`}}Ab{b{d{h{f}}}}}D`}{{{b{AGb}}Ab{b{d{h{f}}}}}D`}{{{b{AGd}}Ab{b{d{h{f}}}}}D`}{{{b{AGf}}Ab{b{d{h{f}}}}}D`}{{{b{AGh}}Ab{b{d{h{f}}}}}D`}{{{b{AGj}}Ab{b{d{h{f}}}}}D`}{{{b{AGl}}Ab{b{d{h{f}}}}}D`}{{{b{AGn}}Ab{b{d{h{f}}}}}D`}{{{b{AH`}}Ab{b{d{h{f}}}}}D`}{{{b{AHb}}Ab{b{d{h{f}}}}}D`}{{{b{AHd}}Ab{b{d{h{f}}}}}D`}{{{b{AHf}}Ab{b{d{h{f}}}}}D`}{{{b{AHh}}Ab{b{d{h{f}}}}}D`}{{{b{AHj}}Ab{b{d{h{f}}}}}D`}{{{b{AHl}}Ab{b{d{h{f}}}}}D`}{{{b{AHn}}Ab{b{d{h{f}}}}}D`}{{{b{AI`}}Ab{b{d{h{f}}}}}D`}{{{b{AIb}}Ab{b{d{h{f}}}}}D`}{{{b{AId}}Ab{b{d{h{f}}}}}D`}{{{b{AIf}}Ab{b{d{h{f}}}}}D`}{{{b{AIh}}Ab{b{d{h{f}}}}}D`}{{{b{AIj}}Ab{b{d{h{f}}}}}D`}{{{b{AIl}}Ab{b{d{h{f}}}}}D`}{{{b{AIn}}Ab{b{d{h{f}}}}}D`}{{{b{AJ`}}Ab{b{d{h{f}}}}}D`}{{{b{AJb}}Ab{b{d{h{f}}}}}D`}{{{b{AJd}}Ab{b{d{h{f}}}}}D`}{{{b{AJf}}Ab{b{d{h{f}}}}}D`}{{{b{AJh}}Ab{b{d{h{f}}}}}D`}{{{b{AJj}}Ab{b{d{h{f}}}}}D`}{{{b{AJl}}Ab{b{d{h{f}}}}}D`}{{{b{AJn}}Ab{b{d{h{f}}}}}D`}{{{b{AK`}}Ab{b{d{h{f}}}}}D`}{{{b{AKb}}Ab{b{d{h{f}}}}}D`}{{{b{AKd}}Ab{b{d{h{f}}}}}D`}{{{b{AKf}}Ab{b{d{h{f}}}}}D`}{{{b{AKh}}Ab{b{d{h{f}}}}}D`}{{{b{AKj}}Ab{b{d{h{f}}}}}D`}{{{b{AKl}}Ab{b{d{h{f}}}}}D`}{{{b{AKn}}Ab{b{d{h{f}}}}}D`}{{{b{AL`}}Ab{b{d{h{f}}}}}D`}{{{b{ALb}}Ab{b{d{h{f}}}}}D`}{{{b{ALd}}Ab{b{d{h{f}}}}}D`}{{{b{ALf}}Ab{b{d{h{f}}}}}D`}{{{b{ALh}}Ab{b{d{h{f}}}}}D`}{{{b{ALj}}Ab{b{d{h{f}}}}}D`}{{{b{ALl}}Ab{b{d{h{f}}}}}D`}{{{b{ALn}}Ab{b{d{h{f}}}}}D`}{{{b{AM`}}Ab{b{d{h{f}}}}}D`}{{{b{AMb}}Ab{b{d{h{f}}}}}D`}{{{b{AMd}}Ab{b{d{h{f}}}}}D`}{{{b{AMf}}Ab{b{d{h{f}}}}}D`}{{{b{AMh}}Ab{b{d{h{f}}}}}D`}{{{b{AMj}}Ab{b{d{h{f}}}}}D`}{{{b{AMl}}Ab{b{d{h{f}}}}}D`}{{{b{AMn}}Ab{b{d{h{f}}}}}D`}{{{b{AN`}}Ab{b{d{h{f}}}}}D`}{{{b{ANb}}Ab{b{d{h{f}}}}}D`}{{{b{ANd}}Ab{b{d{h{f}}}}}D`}{{{b{ANf}}Ab{b{d{h{f}}}}}D`}{{{b{ANh}}Ab{b{d{h{f}}}}}D`}{{{b{ANj}}Ab{b{d{h{f}}}}}D`}{{{b{ANl}}Ab{b{d{h{f}}}}}D`}{{{b{ANn}}Ab{b{d{h{f}}}}}D`}{{{b{AO`}}Ab{b{d{h{f}}}}}D`}{{{b{AOb}}Ab{b{d{h{f}}}}}D`}{{{b{AOd}}Ab{b{d{h{f}}}}}D`}{{{b{AOf}}Ab{b{d{h{f}}}}}D`}{{{b{AOh}}Ab{b{d{h{f}}}}}D`}{{{b{AOj}}Ab{b{d{h{f}}}}}D`}{{{b{AOl}}Ab{b{d{h{f}}}}}D`}{{{b{AOn}}Ab{b{d{h{f}}}}}D`}{{{b{B@`}}Ab{b{d{h{f}}}}}D`}{{{b{B@b}}Ab{b{d{h{f}}}}}D`}{{{b{B@d}}Ab{b{d{h{f}}}}}D`}{{{b{B@f}}Ab{b{d{h{f}}}}}D`}{{{b{B@h}}Ab{b{d{h{f}}}}}D`}{{{b{B@j}}Ab{b{d{h{f}}}}}D`}{{{b{B@l}}Ab{b{d{h{f}}}}}D`}{{{b{B@n}}Ab{b{d{h{f}}}}}D`}{{{b{BA`}}Ab{b{d{h{f}}}}}D`}{{{b{BAb}}Ab{b{d{h{f}}}}}D`}{{{b{BAd}}Ab{b{d{h{f}}}}}D`}{{{b{BAf}}Ab{b{d{h{f}}}}}D`}{{{b{BAh}}Ab{b{d{h{f}}}}}D`}{{{b{BAj}}Ab{b{d{h{f}}}}}D`}{{{b{BAl}}Ab{b{d{h{f}}}}}D`}{{{b{BAn}}Ab{b{d{h{f}}}}}D`}{{{b{BB`}}Ab{b{d{h{f}}}}}D`}{{{b{BBb}}Ab{b{d{h{f}}}}}D`}{{{b{BBd}}Ab{b{d{h{f}}}}}D`}{{{b{BBf}}Ab{b{d{h{f}}}}}D`}{{{b{BBh}}Ab{b{d{h{f}}}}}D`}{{{b{BBj}}Ab{b{d{h{f}}}}}D`}{{{b{BBl}}Ab{b{d{h{f}}}}}D`}{{{b{BBn}}Ab{b{d{h{f}}}}}D`}{{{b{BC`}}Ab{b{d{h{f}}}}}D`}{{{b{BCb}}Ab{b{d{h{f}}}}}D`}{{{b{BCd}}Ab{b{d{h{f}}}}}D`}{{{b{BCf}}Ab{b{d{h{f}}}}}D`}{{{b{BCh}}Ab{b{d{h{f}}}}}D`}{{{b{BCj}}Ab{b{d{h{f}}}}}D`}{{{b{BCl}}Ab{b{d{h{f}}}}}D`}{{{b{BCn}}Ab{b{d{h{f}}}}}D`}{{{b{BD`}}Ab{b{d{h{f}}}}}D`}{{{b{BDb}}Ab{b{d{h{f}}}}}D`}{{{b{BDd}}Ab{b{d{h{f}}}}}D`}{{{b{BDf}}Ab{b{d{h{f}}}}}D`}{{{b{BDh}}Ab{b{d{h{f}}}}}D`}{{{b{BDj}}Ab{b{d{h{f}}}}}D`}{{{b{BDl}}Ab{b{d{h{f}}}}}D`}{{{b{BDn}}Ab{b{d{h{f}}}}}D`}{{{b{BE`}}Ab{b{d{h{f}}}}}D`}{{{b{BEb}}Ab{b{d{h{f}}}}}D`}{{{b{BEd}}Ab{b{d{h{f}}}}}D`}{{{b{BEf}}Ab{b{d{h{f}}}}}D`}{{{b{BEh}}Ab{b{d{h{f}}}}}D`}{{{b{BEj}}Ab{b{d{h{f}}}}}D`}{{{b{BEl}}Ab{b{d{h{f}}}}}D`}{{{b{BEn}}Ab{b{d{h{f}}}}}D`}{{{b{BF`}}Ab{b{d{h{f}}}}}D`}{{{b{BFb}}Ab{b{d{h{f}}}}}D`}{{{b{BFd}}Ab{b{d{h{f}}}}}D`}{{{b{BFf}}Ab{b{d{h{f}}}}}D`}{{{b{BFh}}Ab{b{d{h{f}}}}}D`}{{{b{BFj}}Ab{b{d{h{f}}}}}D`}{{{b{BFl}}Ab{b{d{h{f}}}}}D`}{{{b{BFn}}Ab{b{d{h{f}}}}}D`}{{{b{BG`}}Ab{b{d{h{f}}}}}D`}{{{b{BGb}}Ab{b{d{h{f}}}}}D`}{{{b{BGd}}Ab{b{d{h{f}}}}}D`}{{{b{BGf}}Ab{b{d{h{f}}}}}D`}{{{b{BGh}}Ab{b{d{h{f}}}}}D`}{{{b{BGj}}Ab{b{d{h{f}}}}}D`}{{{b{BGl}}Ab{b{d{h{f}}}}}D`}{{{b{BGn}}Ab{b{d{h{f}}}}}D`}{{{b{BH`}}Ab{b{d{h{f}}}}}D`}{{{b{BHb}}Ab{b{d{h{f}}}}}D`}{{{b{BHd}}Ab{b{d{h{f}}}}}D`}{{{b{BHf}}Ab{b{d{h{f}}}}}D`}{{{b{BHh}}Ab{b{d{h{f}}}}}D`}{{{b{BHj}}Ab{b{d{h{f}}}}}D`}{{{b{BHl}}Ab{b{d{h{f}}}}}D`}{{{b{BHn}}Ab{b{d{h{f}}}}}D`}{{{b{BI`}}Ab{b{d{h{f}}}}}D`}{{{b{BIb}}Ab{b{d{h{f}}}}}D`}{{{b{BId}}Ab{b{d{h{f}}}}}D`}{{{b{BIf}}Ab{b{d{h{f}}}}}D`}{{{b{BIh}}Ab{b{d{h{f}}}}}D`}{{{b{BIj}}Ab{b{d{h{f}}}}}D`}{{{b{BIl}}Ab{b{d{h{f}}}}}D`}{{{b{BIn}}Ab{b{d{h{f}}}}}D`}{{{b{BJ`}}Ab{b{d{h{f}}}}}D`}{{{b{BJb}}Ab{b{d{h{f}}}}}D`}{{{b{BJd}}Ab{b{d{h{f}}}}}D`}{{{b{BJf}}Ab{b{d{h{f}}}}}D`}{{{b{BJh}}Ab{b{d{h{f}}}}}D`}{{{b{BJj}}Ab{b{d{h{f}}}}}D`}{{{b{BJl}}Ab{b{d{h{f}}}}}D`}{{{b{BJn}}Ab{b{d{h{f}}}}}D`}{{{b{BK`}}Ab{b{d{h{f}}}}}D`}{{{b{BKb}}Ab{b{d{h{f}}}}}D`}{{{b{BKd}}Ab{b{d{h{f}}}}}D`}{{{b{BKf}}Ab{b{d{h{f}}}}}D`}{{{b{BKh}}Ab{b{d{h{f}}}}}D`}{{{b{BKj}}Ab{b{d{h{f}}}}}D`}{{{b{BKl}}Ab{b{d{h{f}}}}}D`}{{{b{BKn}}Ab{b{d{h{f}}}}}D`}{{{b{BL`}}Ab{b{d{h{f}}}}}D`}{{{b{BLb}}Ab{b{d{h{f}}}}}D`}{{{b{BLd}}Ab{b{d{h{f}}}}}D`}{{{b{BLf}}Ab{b{d{h{f}}}}}D`}{{{b{BLh}}Ab{b{d{h{f}}}}}D`}{{{b{BLj}}Ab{b{d{h{f}}}}}D`}{{{b{BLl}}Ab{b{d{h{f}}}}}D`}{{{b{BLn}}Ab{b{d{h{f}}}}}D`}{{{b{BM`}}Ab{b{d{h{f}}}}}D`}{{{b{BMb}}Ab{b{d{h{f}}}}}D`}{{{b{BMd}}Ab{b{d{h{f}}}}}D`}{{{b{BMf}}Ab{b{d{h{f}}}}}D`}{{{b{BMh}}Ab{b{d{h{f}}}}}D`}{{{b{BMj}}Ab{b{d{h{f}}}}}D`}{{{b{BMl}}Ab{b{d{h{f}}}}}D`}{{{b{BMn}}Ab{b{d{h{f}}}}}D`}`{{{b{Hn}}c}BdDd}{{{b{I`}}c}BdDd}{{{b{Ib}}c}BdDd}{{{b{Id}}c}BdDd}{{{b{If}}c}BdDd}{{{b{Ih}}c}BdDd}{{{b{Ij}}c}BdDd}{{{b{Il}}c}BdDd}{{{b{In}}c}BdDd}{{{b{J`}}c}BdDd}{{{b{Jb}}c}BdDd}{{{b{Jd}}c}BdDd}{{{b{Jf}}c}BdDd}{{{b{Jh}}c}BdDd}{{{b{Jj}}c}BdDd}{{{b{Jl}}c}BdDd}{{{b{Jn}}c}BdDd}{{{b{K`}}c}BdDd}{{{b{Kb}}c}BdDd}{{{b{Kd}}c}BdDd}{{{b{Kf}}c}BdDd}{{{b{Kh}}c}BdDd}{{{b{Kj}}c}BdDd}{{{b{Kl}}c}BdDd}{{{b{Kn}}c}BdDd}{{{b{L`}}c}BdDd}{{{b{Lb}}c}BdDd}{{{b{Ld}}c}BdDd}{{{b{Lf}}c}BdDd}{{{b{Lh}}c}BdDd}{{{b{Lj}}c}BdDd}{{{b{Ll}}c}BdDd}{{{b{Ln}}c}BdDd}{{{b{M`}}c}BdDd}{{{b{Mb}}c}BdDd}{{{b{Md}}c}BdDd}{{{b{Mf}}c}BdDd}{{{b{Mh}}c}BdDd}{{{b{Mj}}c}BdDd}{{{b{Ml}}c}BdDd}{{{b{Mn}}c}BdDd}{{{b{N`}}c}BdDd}{{{b{Nb}}c}BdDd}{{{b{Nd}}c}BdDd}{{{b{Nf}}c}BdDd}{{{b{Nh}}c}BdDd}{{{b{Nj}}c}BdDd}{{{b{Nl}}c}BdDd}{{{b{Nn}}c}BdDd}{{{b{O`}}c}BdDd}{{{b{Ob}}c}BdDd}{{{b{Od}}c}BdDd}{{{b{Of}}c}BdDd}{{{b{Oh}}c}BdDd}{{{b{Oj}}c}BdDd}{{{b{Ol}}c}BdDd}{{{b{On}}c}BdDd}{{{b{A@`}}c}BdDd}{{{b{A@b}}c}BdDd}{{{b{A@d}}c}BdDd}{{{b{A@f}}c}BdDd}{{{b{A@h}}c}BdDd}{{{b{A@j}}c}BdDd}{{{b{A@l}}c}BdDd}{{{b{A@n}}c}BdDd}{{{b{AA`}}c}BdDd}{{{b{AAb}}c}BdDd}{{{b{AAd}}c}BdDd}{{{b{AAf}}c}BdDd}{{{b{AAh}}c}BdDd}{{{b{AAj}}c}BdDd}{{{b{AAl}}c}BdDd}{{{b{AAn}}c}BdDd}{{{b{AB`}}c}BdDd}{{{b{ABb}}c}BdDd}{{{b{ABd}}c}BdDd}{{{b{ABf}}c}BdDd}{{{b{ABh}}c}BdDd}{{{b{ABj}}c}BdDd}{{{b{ABl}}c}BdDd}{{{b{ABn}}c}BdDd}{{{b{AC`}}c}BdDd}{{{b{ACb}}c}BdDd}{{{b{ACd}}c}BdDd}{{{b{ACf}}c}BdDd}{{{b{ACh}}c}BdDd}{{{b{ACj}}c}BdDd}{{{b{ACl}}c}BdDd}{{{b{ACn}}c}BdDd}{{{b{AD`}}c}BdDd}{{{b{ADb}}c}BdDd}{{{b{ADd}}c}BdDd}{{{b{ADf}}c}BdDd}{{{b{ADh}}c}BdDd}{{{b{ADj}}c}BdDd}{{{b{ADl}}c}BdDd}{{{b{ADn}}c}BdDd}{{{b{AE`}}c}BdDd}{{{b{AEb}}c}BdDd}{{{b{AEd}}c}BdDd}{{{b{AEf}}c}BdDd}{{{b{AEh}}c}BdDd}{{{b{AEj}}c}BdDd}{{{b{AEl}}c}BdDd}{{{b{AEn}}c}BdDd}{{{b{AF`}}c}BdDd}{{{b{AFb}}c}BdDd}{{{b{AFd}}c}BdDd}{{{b{AFf}}c}BdDd}{{{b{AFh}}c}BdDd}{{{b{AFj}}c}BdDd}{{{b{AFl}}c}BdDd}{{{b{AFn}}c}BdDd}{{{b{AG`}}c}BdDd}{{{b{AGb}}c}BdDd}{{{b{AGd}}c}BdDd}{{{b{AGf}}c}BdDd}{{{b{AGh}}c}BdDd}{{{b{AGj}}c}BdDd}{{{b{AGl}}c}BdDd}{{{b{AGn}}c}BdDd}{{{b{AH`}}c}BdDd}{{{b{AHb}}c}BdDd}{{{b{AHd}}c}BdDd}{{{b{AHf}}c}BdDd}{{{b{AHh}}c}BdDd}{{{b{AHj}}c}BdDd}{{{b{AHl}}c}BdDd}{{{b{AHn}}c}BdDd}{{{b{AI`}}c}BdDd}{{{b{AIb}}c}BdDd}{{{b{AId}}c}BdDd}{{{b{AIf}}c}BdDd}{{{b{AIh}}c}BdDd}{{{b{AIj}}c}BdDd}{{{b{AIl}}c}BdDd}{{{b{AIn}}c}BdDd}{{{b{AJ`}}c}BdDd}{{{b{AJb}}c}BdDd}{{{b{AJd}}c}BdDd}{{{b{AJf}}c}BdDd}{{{b{AJh}}c}BdDd}{{{b{AJj}}c}BdDd}{{{b{AJl}}c}BdDd}{{{b{AJn}}c}BdDd}{{{b{AK`}}c}BdDd}{{{b{AKb}}c}BdDd}{{{b{AKd}}c}BdDd}{{{b{AKf}}c}BdDd}{{{b{AKh}}c}BdDd}{{{b{AKj}}c}BdDd}{{{b{AKl}}c}BdDd}{{{b{AKn}}c}BdDd}{{{b{AL`}}c}BdDd}{{{b{ALb}}c}BdDd}{{{b{ALd}}c}BdDd}{{{b{ALf}}c}BdDd}{{{b{ALh}}c}BdDd}{{{b{ALj}}c}BdDd}{{{b{ALl}}c}BdDd}{{{b{ALn}}c}BdDd}{{{b{AM`}}c}BdDd}{{{b{AMb}}c}BdDd}{{{b{AMd}}c}BdDd}{{{b{AMf}}c}BdDd}{{{b{AMh}}c}BdDd}{{{b{AMj}}c}BdDd}{{{b{AMl}}c}BdDd}{{{b{AMn}}c}BdDd}{{{b{AN`}}c}BdDd}{{{b{ANb}}c}BdDd}{{{b{ANd}}c}BdDd}{{{b{ANf}}c}BdDd}{{{b{ANh}}c}BdDd}{{{b{ANj}}c}BdDd}{{{b{ANl}}c}BdDd}{{{b{ANn}}c}BdDd}{{{b{AO`}}c}BdDd}{{{b{AOb}}c}BdDd}{{{b{AOd}}c}BdDd}{{{b{AOf}}c}BdDd}{{{b{AOh}}c}BdDd}{{{b{AOj}}c}BdDd}{{{b{AOl}}c}BdDd}{{{b{AOn}}c}BdDd}{{{b{B@`}}c}BdDd}{{{b{B@b}}c}BdDd}{{{b{B@d}}c}BdDd}{{{b{B@f}}c}BdDd}{{{b{B@h}}c}BdDd}{{{b{B@j}}c}BdDd}{{{b{B@l}}c}BdDd}{{{b{B@n}}c}BdDd}{{{b{BA`}}c}BdDd}{{{b{BAb}}c}BdDd}{{{b{BAd}}c}BdDd}{{{b{BAf}}c}BdDd}{{{b{BAh}}c}BdDd}{{{b{BAj}}c}BdDd}{{{b{BAl}}c}BdDd}{{{b{BAn}}c}BdDd}{{{b{BB`}}c}BdDd}{{{b{BBb}}c}BdDd}{{{b{BBd}}c}BdDd}{{{b{BBf}}c}BdDd}{{{b{BBh}}c}BdDd}{{{b{BBj}}c}BdDd}{{{b{BBl}}c}BdDd}{{{b{BBn}}c}BdDd}{{{b{BC`}}c}BdDd}{{{b{BCb}}c}BdDd}{{{b{BCd}}c}BdDd}{{{b{BCf}}c}BdDd}{{{b{BCh}}c}BdDd}{{{b{BCj}}c}BdDd}{{{b{BCl}}c}BdDd}{{{b{BCn}}c}BdDd}{{{b{BD`}}c}BdDd}{{{b{BDb}}c}BdDd}{{{b{BDd}}c}BdDd}{{{b{BDf}}c}BdDd}{{{b{BDh}}c}BdDd}{{{b{BDj}}c}BdDd}{{{b{BDl}}c}BdDd}{{{b{BDn}}c}BdDd}{{{b{BE`}}c}BdDd}{{{b{BEb}}c}BdDd}{{{b{BEd}}c}BdDd}{{{b{BEf}}c}BdDd}{{{b{BEh}}c}BdDd}{{{b{BEj}}c}BdDd}{{{b{BEl}}c}BdDd}{{{b{BEn}}c}BdDd}{{{b{BF`}}c}BdDd}{{{b{BFb}}c}BdDd}{{{b{BFd}}c}BdDd}{{{b{BFf}}c}BdDd}{{{b{BFh}}c}BdDd}{{{b{BFj}}c}BdDd}{{{b{BFl}}c}BdDd}{{{b{BFn}}c}BdDd}{{{b{BG`}}c}BdDd}{{{b{BGb}}c}BdDd}{{{b{BGd}}c}BdDd}{{{b{BGf}}c}BdDd}{{{b{BGh}}c}BdDd}{{{b{BGj}}c}BdDd}{{{b{BGl}}c}BdDd}{{{b{BGn}}c}BdDd}{{{b{BH`}}c}BdDd}{{{b{BHb}}c}BdDd}{{{b{BHd}}c}BdDd}{{{b{BHf}}c}BdDd}{{{b{BHh}}c}BdDd}{{{b{BHj}}c}BdDd}{{{b{BHl}}c}BdDd}{{{b{BHn}}c}BdDd}{{{b{BI`}}c}BdDd}{{{b{BIb}}c}BdDd}{{{b{BId}}c}BdDd}{{{b{BIf}}c}BdDd}{{{b{BIh}}c}BdDd}{{{b{BIj}}c}BdDd}{{{b{BIl}}c}BdDd}{{{b{BIn}}c}BdDd}{{{b{BJ`}}c}BdDd}{{{b{BJb}}c}BdDd}{{{b{BJd}}c}BdDd}{{{b{BJf}}c}BdDd}{{{b{BJh}}c}BdDd}{{{b{BJj}}c}BdDd}{{{b{BJl}}c}BdDd}{{{b{BJn}}c}BdDd}{{{b{BK`}}c}BdDd}{{{b{BKb}}c}BdDd}{{{b{BKd}}c}BdDd}{{{b{BKf}}c}BdDd}{{{b{BKh}}c}BdDd}{{{b{BKj}}c}BdDd}{{{b{BKl}}c}BdDd}{{{b{BKn}}c}BdDd}{{{b{BL`}}c}BdDd}{{{b{BLb}}c}BdDd}{{{b{BLd}}c}BdDd}{{{b{BLf}}c}BdDd}{{{b{BLh}}c}BdDd}{{{b{BLj}}c}BdDd}{{{b{BLl}}c}BdDd}{{{b{BLn}}c}BdDd}{{{b{BM`}}c}BdDd}{{{b{BMb}}c}BdDd}{{{b{BMd}}c}BdDd}{{{b{BMf}}c}BdDd}{{{b{BMh}}c}BdDd}{{{b{BMj}}c}BdDd}{{{b{BMl}}c}BdDd}{{{b{BMn}}c}BdDd}{{{b{BN`}}c}BdDd}{{{b{BNb}}c}BdDd}{{{b{Dl}}c}BdDd}{{{b{BNd}}c}BdDd}{{{b{BNf}}c}BdDd}{{{b{BNh}}c}BdDd}{{{b{Dn}}c}BdDd}{{{b{BNj}}c}BdDd}{{{b{BNl}}c}BdDd}{{{b{E`}}c}BdDd}{{{b{BNn}}c}BdDd}{{{b{BO`}}c}BdDd}{{{b{Eb}}c}BdDd}{{{b{BOb}}c}BdDd}{{{b{BOd}}c}BdDd}{{{b{Ed}}c}BdDd}{{{b{BOf}}c}BdDd}{{{b{BOh}}c}BdDd}{{{b{BOj}}c}BdDd}{{{b{BOl}}c}BdDd}{{{b{BOn}}c}BdDd}{{{b{C@`}}c}BdDd}{{{b{C@b}}c}BdDd}{{{b{C@d}}c}BdDd}{{{b{C@f}}c}BdDd}{{{b{C@h}}c}BdDd}{{{b{C@j}}c}BdDd}{{{b{C@l}}c}BdDd}{{{b{C@n}}c}BdDd}{{{b{CA`}}c}BdDd}{{{b{CAb}}c}BdDd}{{{b{CAd}}c}BdDd}{{{b{CAf}}c}BdDd}{{{b{CAh}}c}BdDd}{{{b{Ef}}c}BdDd}{{{b{CAj}}c}BdDd}{{{b{CAl}}c}BdDd}{{{b{CAn}}c}BdDd}{{{b{CB`}}c}BdDd}{{{b{CBb}}c}BdDd}{{{b{CBd}}c}BdDd}{{{b{CBf}}c}BdDd}{{{b{CBh}}c}BdDd}{{{b{Eh}}c}BdDd}{{{b{Ej}}c}BdDd}{{{b{CBj}}c}BdDd}{{{b{CBl}}c}BdDd}{{{b{CBn}}c}BdDd}{{{b{CC`}}c}BdDd}{{{b{El}}c}BdDd}{{{b{CCb}}c}BdDd}{{{b{En}}c}BdDd}{{{b{F`}}c}BdDd}{{{b{CCd}}c}BdDd}{{{b{CCf}}c}BdDd}{{{b{CCh}}c}BdDd}{{{b{Fb}}c}BdDd}{{{b{CCj}}c}BdDd}{{{b{CCl}}c}BdDd}{{{b{CCn}}c}BdDd}{{{b{CD`}}c}BdDd}{{{b{CDb}}c}BdDd}{{{b{CDd}}c}BdDd}{{{b{CDf}}c}BdDd}{{{b{CDh}}c}BdDd}{{{b{CDj}}c}BdDd}{{{b{CDl}}c}BdDd}{{{b{CDn}}c}BdDd}{{{b{CE`}}c}BdDd}{{{b{CEb}}c}BdDd}{{{b{CEd}}c}BdDd}{{{b{CEf}}c}BdDd}{{{b{CEh}}c}BdDd}{{{b{CEj}}c}BdDd}{{{b{CEl}}c}BdDd}{{{b{CEn}}c}BdDd}{{{b{Fd}}c}BdDd}{{{b{CF`}}c}BdDd}{{{b{CFb}}c}BdDd}{{{b{CFd}}c}BdDd}{{{b{CFf}}c}BdDd}{{{b{Ff}}c}BdDd}{{{b{CFh}}c}BdDd}{{{b{Fh}}c}BdDd}{{{b{CFj}}c}BdDd}{{{b{CFl}}c}BdDd}{{{b{CFn}}c}BdDd}{{{b{Fj}}c}BdDd}{{{b{CG`}}c}BdDd}{{{b{CGb}}c}BdDd}{{{b{CGd}}c}BdDd}{{{b{CGf}}c}BdDd}{{{b{CGh}}c}BdDd}{{{b{CGj}}c}BdDd}{{{b{CGl}}c}BdDd}{{{b{CGn}}c}BdDd}{{{b{CH`}}c}BdDd}{{{b{CHb}}c}BdDd}{{{b{CHd}}c}BdDd}{{{b{CHf}}c}BdDd}{{{b{CHh}}c}BdDd}{{{b{CHj}}c}BdDd}{{{b{CHl}}c}BdDd}{{{b{CHn}}c}BdDd}{{{b{CI`}}c}BdDd}{{{b{CIb}}c}BdDd}{{{b{Fl}}c}BdDd}{{{b{CId}}c}BdDd}{{{b{CIf}}c}BdDd}{{{b{Fn}}c}BdDd}{{{b{CIh}}c}BdDd}{{{b{CIj}}c}BdDd}{{{b{CIl}}c}BdDd}{{{b{CIn}}c}BdDd}{{{b{CJ`}}c}BdDd}{{{b{CJb}}c}BdDd}{{{b{CJd}}c}BdDd}{{{b{CJf}}c}BdDd}{{{b{CJh}}c}BdDd}{{{b{CJj}}c}BdDd}{{{b{CJl}}c}BdDd}{{{b{CJn}}c}BdDd}{{{b{CK`}}c}BdDd}{{{b{CKb}}c}BdDd}{{{b{CKd}}c}BdDd}{{{b{CKf}}c}BdDd}{{{b{CKh}}c}BdDd}{{{b{CKj}}c}BdDd}{{{b{CKl}}c}BdDd}{{{b{CKn}}c}BdDd}{{{b{CL`}}c}BdDd}{{{b{CLb}}c}BdDd}{{{b{CLd}}c}BdDd}{{{b{G`}}c}BdDd}{{{b{CLf}}c}BdDd}{{{b{CLh}}c}BdDd}{{{b{CLj}}c}BdDd}{{{b{CLl}}c}BdDd}{{{b{CLn}}c}BdDd}{{{b{CM`}}c}BdDd}{{{b{CMb}}c}BdDd}{{{b{CMd}}c}BdDd}{{{b{CMf}}c}BdDd}{{{b{CMh}}c}BdDd}{{{b{Gb}}c}BdDd}{{{b{CMj}}c}BdDd}{{{b{CMl}}c}BdDd}{{{b{CMn}}c}BdDd}{{{b{CN`}}c}BdDd}{{{b{CNb}}c}BdDd}{{{b{CNd}}c}BdDd}{{{b{CNf}}c}BdDd}{{{b{CNh}}c}BdDd}{{{b{CNj}}c}BdDd}{{{b{CNl}}c}BdDd}{{{b{CNn}}c}BdDd}{{{b{CO`}}c}BdDd}{{{b{COb}}c}BdDd}{{{b{Gd}}c}BdDd}{{{b{COd}}c}BdDd}{{{b{COf}}c}BdDd}{{{b{COh}}c}BdDd}{{{b{Gf}}c}BdDd}{{{b{COj}}c}BdDd}{{{b{COl}}c}BdDd}{{{b{COn}}c}BdDd}{{{b{Gh}}c}BdDd}{{{b{Gj}}c}BdDd}{{{b{D@`}}c}BdDd}{{{b{Gl}}c}BdDd}{{{b{D@b}}c}BdDd}{{{b{D@d}}c}BdDd}{{{b{D@f}}c}BdDd}{{{b{D@h}}c}BdDd}{{{b{D@j}}c}BdDd}{{{b{Gn}}c}BdDd}{{{b{H`}}c}BdDd}{{{b{Hb}}c}BdDd}{{{b{Hd}}c}BdDd}{{{b{D@l}}c}BdDd}{{{b{D@n}}c}BdDd}{{{b{DA`}}c}BdDd}{{{b{Hf}}c}BdDd}{{{b{DAb}}c}BdDd}{{{b{DAd}}c}BdDd}{{{b{DAf}}c}BdDd}{{{b{DAh}}c}BdDd}{{{b{DAj}}c}BdDd}{{{b{DAl}}c}BdDd}{{{b{Hh}}c}BdDd}{{{b{DAn}}c}BdDd}{{{b{Hj}}c}BdDd}{{{b{DB`}}c}BdDd}`````````{{{b{dDl}}DlC`}Aj}{{{b{dDn}}DnC`}Aj}{{{b{dE`}}E`C`}Aj}{{{b{dEb}}EbC`}Aj}{{{b{dEd}}EdC`}Aj}{{{b{dEf}}EfC`}Aj}{{{b{dEh}}EhC`}Aj}{{{b{dEj}}EjC`}Aj}{{{b{dEl}}ElC`}Aj}{{{b{dEn}}EnC`}Aj}{{{b{dF`}}F`C`}Aj}{{{b{dFb}}FbC`}Aj}{{{b{dFd}}FdC`}Aj}{{{b{dFf}}FfC`}Aj}{{{b{dFh}}FhC`}Aj}{{{b{dFj}}FjC`}Aj}{{{b{dFl}}FlC`}Aj}{{{b{dFn}}FnC`}Aj}{{{b{dG`}}G`C`}Aj}{{{b{dGb}}GbC`}Aj}{{{b{dGd}}GdC`}Aj}{{{b{dGf}}GfC`}Aj}{{{b{dGh}}GhC`}Aj}{{{b{dGj}}GjC`}Aj}{{{b{dGl}}GlC`}Aj}{{{b{dGn}}GnC`}Aj}{{{b{dH`}}H`C`}Aj}{{{b{dHb}}HbC`}Aj}{{{b{dHd}}HdC`}Aj}{{{b{dHf}}HfC`}Aj}{{{b{dHh}}HhC`}Aj}{{{b{dHj}}HjC`}Aj}```````````````````````````````````````````````````````````````{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}`````{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{BN`}}}{{DBj{DBl}}}}{{{b{BNb}}}{{DBj{DBl}}}}{{{b{BNd}}}{{DBj{DBl}}}}{{{b{BNf}}}{{DBj{DBl}}}}{{{b{BNh}}}{{DBj{DBl}}}}{{{b{BNj}}}{{DBj{DBl}}}}{{{b{BNl}}}{{DBj{DBl}}}}{{{b{BNn}}}{{DBj{DBl}}}}{{{b{BO`}}}{{DBj{DBl}}}}{{{b{BOb}}}{{DBj{DBl}}}}{{{b{BOd}}}{{DBj{DBl}}}}{{{b{BOf}}}{{DBj{DBl}}}}{{{b{BOh}}}{{DBj{DBl}}}}{{{b{BOj}}}{{DBj{DBl}}}}{{{b{BOl}}}{{DBj{DBl}}}}{{{b{BOn}}}{{DBj{DBl}}}}{{{b{C@`}}}{{DBj{DBl}}}}{{{b{C@b}}}{{DBj{DBl}}}}{{{b{C@d}}}{{DBj{DBl}}}}{{{b{C@f}}}{{DBj{DBl}}}}{{{b{C@h}}}{{DBj{DBl}}}}{{{b{C@j}}}{{DBj{DBl}}}}{{{b{C@l}}}{{DBj{DBl}}}}{{{b{C@n}}}{{DBj{DBl}}}}{{{b{CA`}}}{{DBj{DBl}}}}{{{b{CAb}}}{{DBj{DBl}}}}{{{b{CAd}}}{{DBj{DBl}}}}{{{b{CAf}}}{{DBj{DBl}}}}{{{b{CAh}}}{{DBj{DBl}}}}{{{b{CAj}}}{{DBj{DBl}}}}{{{b{CAl}}}{{DBj{DBl}}}}{{{b{CAn}}}{{DBj{DBl}}}}{{{b{CB`}}}{{DBj{DBl}}}}{{{b{CBb}}}{{DBj{DBl}}}}{{{b{CBd}}}{{DBj{DBl}}}}{{{b{CBf}}}{{DBj{DBl}}}}{{{b{CBh}}}{{DBj{DBl}}}}{{{b{CBj}}}{{DBj{DBl}}}}{{{b{CBl}}}{{DBj{DBl}}}}{{{b{CBn}}}{{DBj{DBl}}}}{{{b{CC`}}}{{DBj{DBl}}}}{{{b{CCb}}}{{DBj{DBl}}}}{{{b{CCd}}}{{DBj{DBl}}}}{{{b{CCf}}}{{DBj{DBl}}}}{{{b{CCh}}}{{DBj{DBl}}}}{{{b{CCj}}}{{DBj{DBl}}}}{{{b{CCl}}}{{DBj{DBl}}}}{{{b{CCn}}}{{DBj{DBl}}}}{{{b{CD`}}}{{DBj{DBl}}}}{{{b{CDb}}}{{DBj{DBl}}}}{{{b{CDd}}}{{DBj{DBl}}}}{{{b{CDf}}}{{DBj{DBl}}}}{{{b{CDh}}}{{DBj{DBl}}}}{{{b{CDj}}}{{DBj{DBl}}}}{{{b{CDl}}}{{DBj{DBl}}}}{{{b{CDn}}}{{DBj{DBl}}}}{{{b{CE`}}}{{DBj{DBl}}}}{{{b{CEb}}}{{DBj{DBl}}}}{{{b{CEd}}}{{DBj{DBl}}}}{{{b{CEf}}}{{DBj{DBl}}}}{{{b{CEh}}}{{DBj{DBl}}}}{{{b{CEj}}}{{DBj{DBl}}}}{{{b{CEl}}}{{DBj{DBl}}}}{{{b{CEn}}}{{DBj{DBl}}}}{{{b{CF`}}}{{DBj{DBl}}}}{{{b{CFb}}}{{DBj{DBl}}}}{{{b{CFd}}}{{DBj{DBl}}}}{{{b{CFf}}}{{DBj{DBl}}}}{{{b{CFh}}}{{DBj{DBl}}}}{{{b{CFj}}}{{DBj{DBl}}}}{{{b{CFl}}}{{DBj{DBl}}}}{{{b{CFn}}}{{DBj{DBl}}}}{{{b{CG`}}}{{DBj{DBl}}}}{{{b{CGb}}}{{DBj{DBl}}}}{{{b{CGd}}}{{DBj{DBl}}}}{{{b{CGf}}}{{DBj{DBl}}}}{{{b{CGh}}}{{DBj{DBl}}}}{{{b{CGj}}}{{DBj{DBl}}}}{{{b{CGl}}}{{DBj{DBl}}}}{{{b{CGn}}}{{DBj{DBl}}}}{{{b{CH`}}}{{DBj{DBl}}}}{{{b{CHb}}}{{DBj{DBl}}}}{{{b{CHd}}}{{DBj{DBl}}}}{{{b{CHf}}}{{DBj{DBl}}}}{{{b{CHh}}}{{DBj{DBl}}}}{{{b{CHj}}}{{DBj{DBl}}}}{{{b{CHl}}}{{DBj{DBl}}}}{{{b{CHn}}}{{DBj{DBl}}}}{{{b{CI`}}}{{DBj{DBl}}}}{{{b{CIb}}}{{DBj{DBl}}}}{{{b{CId}}}{{DBj{DBl}}}}{{{b{CIf}}}{{DBj{DBl}}}}{{{b{CIh}}}{{DBj{DBl}}}}{{{b{CIj}}}{{DBj{DBl}}}}{{{b{CIl}}}{{DBj{DBl}}}}{{{b{CIn}}}{{DBj{DBl}}}}{{{b{CJ`}}}{{DBj{DBl}}}}{{{b{CJb}}}{{DBj{DBl}}}}{{{b{CJd}}}{{DBj{DBl}}}}{{{b{CJf}}}{{DBj{DBl}}}}{{{b{CJh}}}{{DBj{DBl}}}}{{{b{CJj}}}{{DBj{DBl}}}}{{{b{CJl}}}{{DBj{DBl}}}}{{{b{CJn}}}{{DBj{DBl}}}}{{{b{CK`}}}{{DBj{DBl}}}}{{{b{CKb}}}{{DBj{DBl}}}}{{{b{CKd}}}{{DBj{DBl}}}}{{{b{CKf}}}{{DBj{DBl}}}}{{{b{CKh}}}{{DBj{DBl}}}}{{{b{CKj}}}{{DBj{DBl}}}}{{{b{CKl}}}{{DBj{DBl}}}}{{{b{CKn}}}{{DBj{DBl}}}}{{{b{CL`}}}{{DBj{DBl}}}}{{{b{CLb}}}{{DBj{DBl}}}}{{{b{CLd}}}{{DBj{DBl}}}}{{{b{CLf}}}{{DBj{DBl}}}}{{{b{CLh}}}{{DBj{DBl}}}}{{{b{CLj}}}{{DBj{DBl}}}}{{{b{CLl}}}{{DBj{DBl}}}}{{{b{CLn}}}{{DBj{DBl}}}}{{{b{CM`}}}{{DBj{DBl}}}}{{{b{CMb}}}{{DBj{DBl}}}}{{{b{CMd}}}{{DBj{DBl}}}}{{{b{CMf}}}{{DBj{DBl}}}}{{{b{CMh}}}{{DBj{DBl}}}}{{{b{CMj}}}{{DBj{DBl}}}}{{{b{CMl}}}{{DBj{DBl}}}}{{{b{CMn}}}{{DBj{DBl}}}}{{{b{CN`}}}{{DBj{DBl}}}}{{{b{CNb}}}{{DBj{DBl}}}}{{{b{CNd}}}{{DBj{DBl}}}}{{{b{CNf}}}{{DBj{DBl}}}}{{{b{CNh}}}{{DBj{DBl}}}}{{{b{CNj}}}{{DBj{DBl}}}}{{{b{CNl}}}{{DBj{DBl}}}}{{{b{CNn}}}{{DBj{DBl}}}}{{{b{CO`}}}{{DBj{DBl}}}}{{{b{COb}}}{{DBj{DBl}}}}{{{b{COd}}}{{DBj{DBl}}}}{{{b{COf}}}{{DBj{DBl}}}}{{{b{COh}}}{{DBj{DBl}}}}{{{b{COj}}}{{DBj{DBl}}}}{{{b{COl}}}{{DBj{DBl}}}}{{{b{COn}}}{{DBj{DBl}}}}{{{b{D@`}}}{{DBj{DBl}}}}{{{b{D@b}}}{{DBj{DBl}}}}{{{b{D@d}}}{{DBj{DBl}}}}{{{b{D@f}}}{{DBj{DBl}}}}{{{b{D@h}}}{{DBj{DBl}}}}{{{b{D@j}}}{{DBj{DBl}}}}{{{b{D@l}}}{{DBj{DBl}}}}{{{b{D@n}}}{{DBj{DBl}}}}{{{b{DA`}}}{{DBj{DBl}}}}{{{b{DAb}}}{{DBj{DBl}}}}{{{b{DAd}}}{{DBj{DBl}}}}{{{b{DAf}}}{{DBj{DBl}}}}{{{b{DAh}}}{{DBj{DBl}}}}{{{b{DAj}}}{{DBj{DBl}}}}{{{b{DAl}}}{{DBj{DBl}}}}{{{b{DAn}}}{{DBj{DBl}}}}{{{b{DB`}}}{{DBj{DBl}}}}{{{b{c}}}e{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{BN`}}}{{DBj{Hl}}}}{{{b{BNb}}}{{DBj{Hl}}}}{{{b{BNd}}}{{DBj{Hl}}}}{{{b{BNf}}}{{DBj{Hl}}}}{{{b{BNh}}}{{DBj{Hl}}}}{{{b{BNj}}}{{DBj{Hl}}}}{{{b{BNl}}}{{DBj{Hl}}}}{{{b{BNn}}}{{DBj{Hl}}}}{{{b{BO`}}}{{DBj{Hl}}}}{{{b{BOb}}}{{DBj{Hl}}}}{{{b{BOd}}}{{DBj{Hl}}}}{{{b{BOf}}}{{DBj{Hl}}}}{{{b{BOh}}}{{DBj{Hl}}}}{{{b{BOj}}}{{DBj{Hl}}}}{{{b{BOl}}}{{DBj{Hl}}}}{{{b{BOn}}}{{DBj{Hl}}}}{{{b{C@`}}}{{DBj{Hl}}}}{{{b{C@b}}}{{DBj{Hl}}}}{{{b{C@d}}}{{DBj{Hl}}}}{{{b{C@f}}}{{DBj{Hl}}}}{{{b{C@h}}}{{DBj{Hl}}}}{{{b{C@j}}}{{DBj{Hl}}}}{{{b{C@l}}}{{DBj{Hl}}}}{{{b{C@n}}}{{DBj{Hl}}}}{{{b{CA`}}}{{DBj{Hl}}}}{{{b{CAb}}}{{DBj{Hl}}}}{{{b{CAd}}}{{DBj{Hl}}}}{{{b{CAf}}}{{DBj{Hl}}}}{{{b{CAh}}}{{DBj{Hl}}}}{{{b{CAj}}}{{DBj{Hl}}}}{{{b{CAl}}}{{DBj{Hl}}}}{{{b{CAn}}}{{DBj{Hl}}}}{{{b{CB`}}}{{DBj{Hl}}}}{{{b{CBb}}}{{DBj{Hl}}}}{{{b{CBd}}}{{DBj{Hl}}}}{{{b{CBf}}}{{DBj{Hl}}}}{{{b{CBh}}}{{DBj{Hl}}}}{{{b{CBj}}}{{DBj{Hl}}}}{{{b{CBl}}}{{DBj{Hl}}}}{{{b{CBn}}}{{DBj{Hl}}}}{{{b{CC`}}}{{DBj{Hl}}}}{{{b{CCb}}}{{DBj{Hl}}}}{{{b{CCd}}}{{DBj{Hl}}}}{{{b{CCf}}}{{DBj{Hl}}}}{{{b{CCh}}}{{DBj{Hl}}}}{{{b{CCj}}}{{DBj{Hl}}}}{{{b{CCl}}}{{DBj{Hl}}}}{{{b{CCn}}}{{DBj{Hl}}}}{{{b{CD`}}}{{DBj{Hl}}}}{{{b{CDb}}}{{DBj{Hl}}}}{{{b{CDd}}}{{DBj{Hl}}}}{{{b{CDf}}}{{DBj{Hl}}}}{{{b{CDh}}}{{DBj{Hl}}}}{{{b{CDj}}}{{DBj{Hl}}}}{{{b{CDl}}}{{DBj{Hl}}}}{{{b{CDn}}}{{DBj{Hl}}}}{{{b{CE`}}}{{DBj{Hl}}}}{{{b{CEb}}}{{DBj{Hl}}}}{{{b{CEd}}}{{DBj{Hl}}}}{{{b{CEf}}}{{DBj{Hl}}}}{{{b{CEh}}}{{DBj{Hl}}}}{{{b{CEj}}}{{DBj{Hl}}}}{{{b{CEl}}}{{DBj{Hl}}}}{{{b{CEn}}}{{DBj{Hl}}}}{{{b{CF`}}}{{DBj{Hl}}}}{{{b{CFb}}}{{DBj{Hl}}}}{{{b{CFd}}}{{DBj{Hl}}}}{{{b{CFf}}}{{DBj{Hl}}}}{{{b{CFh}}}{{DBj{Hl}}}}{{{b{CFj}}}{{DBj{Hl}}}}{{{b{CFl}}}{{DBj{Hl}}}}{{{b{CFn}}}{{DBj{Hl}}}}{{{b{CG`}}}{{DBj{Hl}}}}{{{b{CGb}}}{{DBj{Hl}}}}{{{b{CGd}}}{{DBj{Hl}}}}{{{b{CGf}}}{{DBj{Hl}}}}{{{b{CGh}}}{{DBj{Hl}}}}{{{b{CGj}}}{{DBj{Hl}}}}{{{b{CGl}}}{{DBj{Hl}}}}{{{b{CGn}}}{{DBj{Hl}}}}{{{b{CH`}}}{{DBj{Hl}}}}{{{b{CHb}}}{{DBj{Hl}}}}{{{b{CHd}}}{{DBj{Hl}}}}{{{b{CHf}}}{{DBj{Hl}}}}{{{b{CHh}}}{{DBj{Hl}}}}{{{b{CHj}}}{{DBj{Hl}}}}{{{b{CHl}}}{{DBj{Hl}}}}{{{b{CHn}}}{{DBj{Hl}}}}{{{b{CI`}}}{{DBj{Hl}}}}{{{b{CIb}}}{{DBj{Hl}}}}{{{b{CId}}}{{DBj{Hl}}}}{{{b{CIf}}}{{DBj{Hl}}}}{{{b{CIh}}}{{DBj{Hl}}}}{{{b{CIj}}}{{DBj{Hl}}}}{{{b{CIl}}}{{DBj{Hl}}}}{{{b{CIn}}}{{DBj{Hl}}}}{{{b{CJ`}}}{{DBj{Hl}}}}{{{b{CJb}}}{{DBj{Hl}}}}{{{b{CJd}}}{{DBj{Hl}}}}{{{b{CJf}}}{{DBj{Hl}}}}{{{b{CJh}}}{{DBj{Hl}}}}{{{b{CJj}}}{{DBj{Hl}}}}{{{b{CJl}}}{{DBj{Hl}}}}{{{b{CJn}}}{{DBj{Hl}}}}{{{b{CK`}}}{{DBj{Hl}}}}{{{b{CKb}}}{{DBj{Hl}}}}{{{b{CKd}}}{{DBj{Hl}}}}{{{b{CKf}}}{{DBj{Hl}}}}{{{b{CKh}}}{{DBj{Hl}}}}{{{b{CKj}}}{{DBj{Hl}}}}{{{b{CKl}}}{{DBj{Hl}}}}{{{b{CKn}}}{{DBj{Hl}}}}{{{b{CL`}}}{{DBj{Hl}}}}{{{b{CLb}}}{{DBj{Hl}}}}{{{b{CLd}}}{{DBj{Hl}}}}{{{b{CLf}}}{{DBj{Hl}}}}{{{b{CLh}}}{{DBj{Hl}}}}{{{b{CLj}}}{{DBj{Hl}}}}{{{b{CLl}}}{{DBj{Hl}}}}{{{b{CLn}}}{{DBj{Hl}}}}{{{b{CM`}}}{{DBj{Hl}}}}{{{b{CMb}}}{{DBj{Hl}}}}{{{b{CMd}}}{{DBj{Hl}}}}{{{b{CMf}}}{{DBj{Hl}}}}{{{b{CMh}}}{{DBj{Hl}}}}{{{b{CMj}}}{{DBj{Hl}}}}{{{b{CMl}}}{{DBj{Hl}}}}{{{b{CMn}}}{{DBj{Hl}}}}{{{b{CN`}}}{{DBj{Hl}}}}{{{b{CNb}}}{{DBj{Hl}}}}{{{b{CNd}}}{{DBj{Hl}}}}{{{b{CNf}}}{{DBj{Hl}}}}{{{b{CNh}}}{{DBj{Hl}}}}{{{b{CNj}}}{{DBj{Hl}}}}{{{b{CNl}}}{{DBj{Hl}}}}{{{b{CNn}}}{{DBj{Hl}}}}{{{b{CO`}}}{{DBj{Hl}}}}{{{b{COb}}}{{DBj{Hl}}}}{{{b{COd}}}{{DBj{Hl}}}}{{{b{COf}}}{{DBj{Hl}}}}{{{b{COh}}}{{DBj{Hl}}}}{{{b{COj}}}{{DBj{Hl}}}}{{{b{COl}}}{{DBj{Hl}}}}{{{b{COn}}}{{DBj{Hl}}}}{{{b{D@`}}}{{DBj{Hl}}}}{{{b{D@b}}}{{DBj{Hl}}}}{{{b{D@d}}}{{DBj{Hl}}}}{{{b{D@f}}}{{DBj{Hl}}}}{{{b{D@h}}}{{DBj{Hl}}}}{{{b{D@j}}}{{DBj{Hl}}}}{{{b{D@l}}}{{DBj{Hl}}}}{{{b{D@n}}}{{DBj{Hl}}}}{{{b{DA`}}}{{DBj{Hl}}}}{{{b{DAb}}}{{DBj{Hl}}}}{{{b{DAd}}}{{DBj{Hl}}}}{{{b{DAf}}}{{DBj{Hl}}}}{{{b{DAh}}}{{DBj{Hl}}}}{{{b{DAj}}}{{DBj{Hl}}}}{{{b{DAl}}}{{DBj{Hl}}}}{{{b{DAn}}}{{DBj{Hl}}}}{{{b{DB`}}}{{DBj{Hl}}}}{{{b{dDl}}Dl}Aj}{{{b{dDn}}Dn}Aj}{{{b{dE`}}E`}Aj}{{{b{dEb}}Eb}Aj}{{{b{dEd}}Ed}Aj}{{{b{dEf}}Ef}Aj}{{{b{dEh}}Eh}Aj}{{{b{dEj}}Ej}Aj}{{{b{dEl}}El}Aj}{{{b{dEn}}En}Aj}{{{b{dF`}}F`}Aj}{{{b{dFb}}Fb}Aj}{{{b{dFd}}Fd}Aj}{{{b{dFf}}Ff}Aj}{{{b{dFh}}Fh}Aj}{{{b{dFj}}Fj}Aj}{{{b{dFl}}Fl}Aj}{{{b{dFn}}Fn}Aj}{{{b{dG`}}G`}Aj}{{{b{dGb}}Gb}Aj}{{{b{dGd}}Gd}Aj}{{{b{dGf}}Gf}Aj}{{{b{dGh}}Gh}Aj}{{{b{dGj}}Gj}Aj}{{{b{dGl}}Gl}Aj}{{{b{dGn}}Gn}Aj}{{{b{dH`}}H`}Aj}{{{b{dHb}}Hb}Aj}{{{b{dHd}}Hd}Aj}{{{b{dHf}}Hf}Aj}{{{b{dHh}}Hh}Aj}{{{b{dHj}}Hj}Aj}```````````{c{{Bd{e}}}{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`````````````````{{{b{c}}}Dh{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000````````````{{DlDl}Dl}{{DnDn}Dn}{{E`E`}E`}{{EbEb}Eb}{{EdEd}Ed}{{EfEf}Ef}{{EhEh}Eh}{{EjEj}Ej}{{ElEl}El}{{EnEn}En}{{F`F`}F`}{{FbFb}Fb}{{FdFd}Fd}{{FfFf}Ff}{{FhFh}Fh}{{FjFj}Fj}{{FlFl}Fl}{{FnFn}Fn}{{G`G`}G`}{{GbGb}Gb}{{GdGd}Gd}{{GfGf}Gf}{{GhGh}Gh}{{GjGj}Gj}{{GlGl}Gl}{{GnGn}Gn}{{H`H`}H`}{{HbHb}Hb}{{HdHd}Hd}{{HfHf}Hf}{{HhHh}Hh}{{HjHj}Hj}````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{cc{}}{{{b{dDC`}}}{{DCb{f}}}}{{{b{dDC`}}D`}{{b{{h{f}}}}}}{{{b{dDC`}}}DCd}{{{b{dDC`}}}DCf}{{{b{dDC`}}}DCh}{{{b{dDC`}}}DCj}0{{{b{dDC`}}}DBl}{{{b{dDC`}}}DCl}{{{b{dDC`}}}j}{{{b{dDC`}}}Bf}0{{{b{dDC`}}}Hl}{{{b{dDC`}}}f}{ce{}{}}{{{b{{h{f}}}}}DC`}{{{b{DC`}}}{{b{{h{f}}}}}}{c{{Bd{e}}}{}{}}0{{{b{c}}}Dh{}}`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{cc{}}7{{{b{DCn}}}C`}{{{b{DCn}}}D`}{{{b{d{h{f}}}}}DCn}{{{b{dDCn}}DCd}Aj}{{{b{dDCn}}DCf}Aj}{{{b{dDCn}}DCh}Aj}{{{b{dDCn}}DCj}Aj}0{{{b{dDCn}}DBl}Aj}{{{b{dDCn}}DCl}Aj}{{{b{dDCn}}{b{{h{f}}}}}Aj}{{{b{dDCn}}j}Aj}{{{b{dDCn}}Bf}Aj}0{{{b{dDCn}}Hl}Aj}{{{b{dDCn}}f}Aj}<{c{{Bd{e}}}{}{}}0{{{b{c}}}Dh{}}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{}DD`}{{}DDb}{{}DDd}{{}DDf}{{}DDh}{{}DDj}{{}DDl}{{}DDn}{{}DE`}{{}DEb}{{}DEd}{{}DEf}{{}DEh}{{}DEj}{{}DEl}{{}DEn}{{}DF`}{{}DFb}{{}DFd}{{}DFf}{{}DFh}{{}DFj}{{}DFl}{{}DFn}{{}DG`}```````````````````````````````````````````````````````````````````````````````````````````````````````{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}``{{{b{DD`}}}Bf}{{{b{DDb}}}j}{{{b{DDd}}}Bf}{{{b{DDf}}}f}{{{b{DDh}}}f}{{{b{DDj}}}f}{{{b{DDl}}}Bf}{{{b{DDn}}}j}{{{b{DE`}}}f}{{{b{DEb}}}j}{{{b{DEd}}}Bf}{{{b{DEf}}}j}{{{b{DEh}}}j}{{{b{DEj}}}f}{{{b{DEl}}}Bf}{{{b{DEn}}}j}{{{b{DF`}}}j}{{{b{DFb}}}Hl}{{{b{DFd}}}Hl}{{{b{DFf}}}j}{{{b{DFh}}}j}{{{b{DFj}}}j}{{{b{DFl}}}Bf}{{{b{DFn}}}j}{{{b{DG`}}}Bf}{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}```````{{{b{c}}}{{b{e}}}{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{dc}}}{{b{de}}}{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`````````````````````````````````````````````````````````````````````````````````````````{{{b{DGb}}}DGb}{{{b{DGd}}}DGd}{{{b{DGf}}}DGf}{{{b{DGh}}}DGh}{{{b{DGj}}}DGj}{{{b{DGl}}}DGl}{{{b{DGn}}}DGn}{{{b{DH`}}}DH`}{{{b{DHb}}}DHb}{{{b{DHd}}}DHd}{{{b{DHf}}}DHf}{{{b{DHh}}}DHh}{{{b{DHj}}}DHj}{{{b{DHl}}}DHl}{{{b{DHn}}}DHn}{{{b{DI`}}}DI`}{{{b{DIb}}}DIb}{{{b{DId}}}DId}{{{b{DIf}}}DIf}{{{b{DIh}}}DIh}{{{b{DIj}}}DIj}{{{b{DIl}}}DIl}{{{b{DIn}}}DIn}{{{b{DJ`}}}DJ`}{{{b{DJb}}}DJb}{{{b{DJd}}}DJd}{{{b{DJf}}}DJf}{{{b{DJh}}}DJh}{{{b{DJj}}}DJj}{{{b{DJl}}}DJl}{{{b{DJn}}}DJn}{{{b{DK`}}}DK`}{{{b{DKb}}}DKb}{{{b{DKd}}}DKd}{{{b{DKf}}}DKf}{{{b{DKh}}}DKh}{{{b{DKj}}}DKj}{{{b{DKl}}}DKl}{{{b{DKn}}}DKn}{{{b{DL`}}}DL`}{{{b{DLb}}}DLb}{{{b{DLd}}}DLd}{{{b{DLf}}}DLf}{{{b{DLh}}}DLh}{{{b{DLj}}}DLj}{{{b{DLl}}}DLl}{{{b{DLn}}}DLn}{{{b{DM`}}}DM`}{{{b{DMb}}}DMb}{{{b{DMd}}}DMd}{{{b{DMf}}}DMf}{{{b{DMh}}}DMh}{{{b{DMj}}}DMj}{{{b{DMl}}}DMl}{{{b{DMn}}}DMn}{{{b{DN`}}}DN`}{{{b{DNb}}}DNb}{{{b{DNd}}}DNd}{{{b{DNf}}}DNf}{{{b{DNh}}}DNh}{{{b{DNj}}}DNj}{{{b{DNl}}}DNl}{{{b{DNn}}}DNn}{{{b{DO`}}}DO`}{{{b{DOb}}}DOb}{{{b{DOd}}}DOd}{{{b{DOf}}}DOf}{{{b{DOh}}}DOh}{{{b{DOj}}}DOj}{{{b{DOl}}}DOl}{{{b{DOn}}}DOn}{{{b{E@`}}}E@`}{{{b{E@b}}}E@b}{{{b{E@d}}}E@d}{{{b{E@f}}}E@f}{{{b{E@h}}}E@h}{{{b{E@j}}}E@j}{{{b{E@l}}}E@l}{{{b{E@n}}}E@n}{{{b{EA`}}}EA`}{{{b{EAb}}}EAb}{{{b{EAd}}}EAd}{{{b{EAf}}}EAf}{{{b{EAh}}}EAh}{{{b{EAj}}}EAj}{{{b{EAl}}}EAl}{{{b{EAn}}}EAn}{{{b{EB`}}}EB`}{{{b{EBb}}}EBb}{{{b{EBd}}}EBd}{{{b{EBf}}}EBf}{{{b{EBh}}}EBh}{{{b{EBj}}}EBj}{{{b{EBl}}}EBl}{{{b{EBn}}}EBn}{{{b{EC`}}}EC`}{{{b{ECb}}}ECb}{{{b{ECd}}}ECd}{{{b{ECf}}}ECf}{{{b{ECh}}}ECh}{{{b{ECj}}}ECj}{{{b{ECl}}}ECl}{{{b{ECn}}}ECn}{{{b{ED`}}}ED`}{{{b{EDb}}}EDb}{{{b{EDd}}}EDd}{{{b{EDf}}}EDf}{{{b{EDh}}}EDh}{{{b{EDj}}}EDj}{{{b{EDl}}}EDl}{{{b{EDn}}}EDn}{{{b{EE`}}}EE`}{{{b{EEb}}}EEb}{{{b{EEd}}}EEd}{{{b{EEf}}}EEf}{{{b{EEh}}}EEh}{{{b{EEj}}}EEj}{{{b{EEl}}}EEl}{{{b{EEn}}}EEn}{{{b{EF`}}}EF`}{{{b{EFb}}}EFb}{{{b{EFd}}}EFd}{{{b{EFf}}}EFf}{{{b{EFh}}}EFh}{{{b{EFj}}}EFj}{{{b{EFl}}}EFl}{{{b{EFn}}}EFn}{{{b{EG`}}}EG`}{{{b{EGb}}}EGb}{{{b{EGd}}}EGd}{{{b{EGf}}}EGf}{{{b{EGh}}}EGh}{{{b{EGj}}}EGj}{{{b{EGl}}}EGl}{{{b{EGn}}}EGn}{{{b{EH`}}}EH`}{{{b{EHb}}}EHb}{{{b{EHd}}}EHd}{{{b{EHf}}}EHf}{{{b{EHh}}}EHh}{{{b{EHj}}}EHj}{{{b{EHl}}}EHl}{{{b{EHn}}}EHn}{{{b{EI`}}}EI`}{{{b{EIb}}}EIb}{{{b{EId}}}EId}{{{b{EIf}}}EIf}{{{b{EIh}}}EIh}{{{b{EIj}}}EIj}{{{b{EIl}}}EIl}{{{b{EIn}}}EIn}{{{b{EJ`}}}EJ`}{{{b{EJb}}}EJb}{{{b{EJd}}}EJd}{{{b{EJf}}}EJf}{{{b{EJh}}}EJh}{{{b{EJj}}}EJj}{{{b{EJl}}}EJl}{{{b{EJn}}}EJn}{{{b{EK`}}}EK`}{{{b{EKb}}}EKb}{{{b{EKd}}}EKd}{{{b{EKf}}}EKf}{{{b{EKh}}}EKh}{{{b{EKj}}}EKj}{{{b{EKl}}}EKl}{{{b{EKn}}}EKn}{{{b{EL`}}}EL`}{{{b{ELb}}}ELb}{{{b{ELd}}}ELd}{{{b{ELf}}}ELf}{{{b{ELh}}}ELh}{{{b{ELj}}}ELj}{{{b{ELl}}}ELl}{{{b{ELn}}}ELn}{{{b{EM`}}}EM`}{{{b{EMb}}}EMb}{{{b{EMd}}}EMd}{{{b{EMf}}}EMf}{{{b{EMh}}}EMh}{{{b{EMj}}}EMj}{{{b{EMl}}}EMl}{{{b{EMn}}}EMn}{{{b{EN`}}}EN`}{{{b{ENb}}}ENb}{{{b{ENd}}}ENd}{{{b{ENf}}}ENf}{{{b{ENh}}}ENh}{{{b{ENj}}}ENj}{{{b{ENl}}}ENl}{{{b{ENn}}}ENn}{{{b{EO`}}}EO`}{{{b{EOb}}}EOb}{{{b{EOd}}}EOd}{{{b{EOf}}}EOf}{{{b{EOh}}}EOh}{{{b{EOj}}}EOj}{{{b{EOl}}}EOl}{{{b{EOn}}}EOn}{{{b{F@`}}}F@`}{{{b{F@b}}}F@b}{{{b{F@d}}}F@d}{{{b{F@f}}}F@f}{{{b{F@h}}}F@h}{{{b{F@j}}}F@j}{{{b{F@l}}}F@l}{{{b{F@n}}}F@n}{{{b{FA`}}}FA`}{{{b{FAb}}}FAb}{{{b{FAd}}}FAd}{{{b{FAf}}}FAf}{{{b{FAh}}}FAh}{{{b{FAj}}}FAj}{{{b{FAl}}}FAl}{{{b{FAn}}}FAn}{{{b{FB`}}}FB`}{{{b{FBb}}}FBb}{{{b{FBd}}}FBd}{{{b{FBf}}}FBf}{{{b{FBh}}}FBh}{{{b{FBj}}}FBj}{{{b{FBl}}}FBl}{{{b{FBn}}}FBn}{{{b{FC`}}}FC`}{{{b{FCb}}}FCb}{{{b{FCd}}}FCd}{{{b{DD`}}}DD`}{{{b{FCf}}}FCf}{{{b{FCh}}}FCh}{{{b{DDb}}}DDb}{{{b{FCj}}}FCj}{{{b{FCl}}}FCl}{{{b{FCn}}}FCn}{{{b{FD`}}}FD`}{{{b{FDb}}}FDb}{{{b{FDd}}}FDd}{{{b{FDf}}}FDf}{{{b{FDh}}}FDh}{{{b{FDj}}}FDj}{{{b{FDl}}}FDl}{{{b{FDn}}}FDn}{{{b{FE`}}}FE`}{{{b{DDd}}}DDd}{{{b{FEb}}}FEb}{{{b{DDf}}}DDf}{{{b{FEd}}}FEd}{{{b{FEf}}}FEf}{{{b{FEh}}}FEh}{{{b{FEj}}}FEj}{{{b{FEl}}}FEl}{{{b{FEn}}}FEn}{{{b{FF`}}}FF`}{{{b{FFb}}}FFb}{{{b{FFd}}}FFd}{{{b{FFf}}}FFf}{{{b{DDh}}}DDh}{{{b{DDj}}}DDj}{{{b{FFh}}}FFh}{{{b{FFj}}}FFj}{{{b{FFl}}}FFl}{{{b{FFn}}}FFn}{{{b{FG`}}}FG`}{{{b{FGb}}}FGb}{{{b{FGd}}}FGd}{{{b{FGf}}}FGf}{{{b{FGh}}}FGh}{{{b{FGj}}}FGj}{{{b{DDl}}}DDl}{{{b{FGl}}}FGl}{{{b{FGn}}}FGn}{{{b{FH`}}}FH`}{{{b{DDn}}}DDn}{{{b{DE`}}}DE`}{{{b{FHb}}}FHb}{{{b{FHd}}}FHd}{{{b{DEb}}}DEb}{{{b{FHf}}}FHf}{{{b{DEd}}}DEd}{{{b{FHh}}}FHh}{{{b{FHj}}}FHj}{{{b{FHl}}}FHl}{{{b{DEf}}}DEf}{{{b{FHn}}}FHn}{{{b{DEh}}}DEh}{{{b{FI`}}}FI`}{{{b{DEj}}}DEj}{{{b{FIb}}}FIb}{{{b{FId}}}FId}{{{b{FIf}}}FIf}{{{b{FIh}}}FIh}{{{b{FIj}}}FIj}{{{b{FIl}}}FIl}{{{b{FIn}}}FIn}{{{b{FJ`}}}FJ`}{{{b{DEl}}}DEl}{{{b{FJb}}}FJb}{{{b{FJd}}}FJd}{{{b{FJf}}}FJf}{{{b{FJh}}}FJh}{{{b{FJj}}}FJj}{{{b{FJl}}}FJl}{{{b{FJn}}}FJn}{{{b{FK`}}}FK`}{{{b{FKb}}}FKb}{{{b{FKd}}}FKd}{{{b{FKf}}}FKf}{{{b{DEn}}}DEn}{{{b{DF`}}}DF`}{{{b{DFb}}}DFb}{{{b{FKh}}}FKh}{{{b{FKj}}}FKj}{{{b{DFd}}}DFd}{{{b{FKl}}}FKl}{{{b{FKn}}}FKn}{{{b{DFf}}}DFf}{{{b{FL`}}}FL`}{{{b{FLb}}}FLb}{{{b{FLd}}}FLd}{{{b{DFh}}}DFh}{{{b{FLf}}}FLf}{{{b{FLh}}}FLh}{{{b{FLj}}}FLj}{{{b{FLl}}}FLl}{{{b{FLn}}}FLn}{{{b{FM`}}}FM`}{{{b{FMb}}}FMb}{{{b{FMd}}}FMd}{{{b{FMf}}}FMf}{{{b{FMh}}}FMh}{{{b{FMj}}}FMj}{{{b{DFj}}}DFj}{{{b{FMl}}}FMl}{{{b{DFl}}}DFl}{{{b{FMn}}}FMn}{{{b{FN`}}}FN`}{{{b{FNb}}}FNb}{{{b{FNd}}}FNd}{{{b{FNf}}}FNf}{{{b{FNh}}}FNh}{{{b{FNj}}}FNj}{{{b{FNl}}}FNl}{{{b{FNn}}}FNn}{{{b{FO`}}}FO`}{{{b{FOb}}}FOb}{{{b{FOd}}}FOd}{{{b{FOf}}}FOf}{{{b{DFn}}}DFn}{{{b{FOh}}}FOh}{{{b{FOj}}}FOj}{{{b{FOl}}}FOl}{{{b{FOn}}}FOn}{{{b{G@`}}}G@`}{{{b{G@b}}}G@b}{{{b{DG`}}}DG`}{{{b{G@d}}}G@d}{{{b{G@f}}}G@f}{{{b{G@h}}}G@h}{{{b{G@j}}}G@j}{{{b{G@l}}}G@l}{{{b{c}}{b{de}}}Aj{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{DD`}}{b{DD`}}}DBb}{{{b{DDb}}{b{DDb}}}DBb}{{{b{DDd}}{b{DDd}}}DBb}{{{b{DDf}}{b{DDf}}}DBb}{{{b{DDh}}{b{DDh}}}DBb}{{{b{DDj}}{b{DDj}}}DBb}{{{b{DDl}}{b{DDl}}}DBb}{{{b{DDn}}{b{DDn}}}DBb}{{{b{DE`}}{b{DE`}}}DBb}{{{b{DEb}}{b{DEb}}}DBb}{{{b{DEd}}{b{DEd}}}DBb}{{{b{DEf}}{b{DEf}}}DBb}{{{b{DEh}}{b{DEh}}}DBb}{{{b{DEj}}{b{DEj}}}DBb}{{{b{DEl}}{b{DEl}}}DBb}{{{b{DEn}}{b{DEn}}}DBb}{{{b{DF`}}{b{DF`}}}DBb}{{{b{DFb}}{b{DFb}}}DBb}{{{b{DFd}}{b{DFd}}}DBb}{{{b{DFf}}{b{DFf}}}DBb}{{{b{DFh}}{b{DFh}}}DBb}{{{b{DFj}}{b{DFj}}}DBb}{{{b{DFl}}{b{DFl}}}DBb}{{{b{DFn}}{b{DFn}}}DBb}{{{b{DG`}}{b{DG`}}}DBb}````````````{DD`DD`}{DDbDDb}{DDdDDd}{DDfDDf}{DDhDDh}{DDjDDj}{DDlDDl}{DDnDDn}{DE`DE`}{DEbDEb}{DEdDEd}{DEfDEf}{DEhDEh}{DEjDEj}{DElDEl}{DEnDEn}{DF`DF`}{DFbDFb}{DFdDFd}{DFfDFf}{DFhDFh}{DFjDFj}{DFlDFl}{DFnDFn}{DG`DG`}``{{{b{DD`}}DD`}C`}{{{b{DDb}}DDb}C`}{{{b{DDd}}DDd}C`}{{{b{DDf}}DDf}C`}{{{b{DDh}}DDh}C`}{{{b{DDj}}DDj}C`}{{{b{DDl}}DDl}C`}{{{b{DDn}}DDn}C`}{{{b{DE`}}DE`}C`}{{{b{DEb}}DEb}C`}{{{b{DEd}}DEd}C`}{{{b{DEf}}DEf}C`}{{{b{DEh}}DEh}C`}{{{b{DEj}}DEj}C`}{{{b{DEl}}DEl}C`}{{{b{DEn}}DEn}C`}{{{b{DF`}}DF`}C`}{{{b{DFb}}DFb}C`}{{{b{DFd}}DFd}C`}{{{b{DFf}}DFf}C`}{{{b{DFh}}DFh}C`}{{{b{DFj}}DFj}C`}{{{b{DFl}}DFl}C`}{{{b{DFn}}DFn}C`}{{{b{DG`}}DG`}C`}````````````````````````````````````````````````````````{{}DGd}{{}DGf}{{}DGh}{{}DGj}{{}DGl}{{}DGn}{{}DH`}{{}DHb}{{}DHd}{{}DHf}{{}DHh}{{}DHj}{{}DHl}{{}DHn}{{}DI`}{{}DIb}{{}DId}{{}DIf}{{}DIh}{{}DIj}{{}DIl}{{}DIn}{{}DJ`}{{}DJb}{{}DJd}{{}DJf}{{}DJh}{{}DJj}{{}DJl}{{}DJn}{{}DK`}{{}DKb}{{}DKd}{{}DKf}{{}DKh}{{}DKj}{{}DKl}{{}DKn}{{}DL`}{{}DLb}{{}DLd}{{}DLf}{{}DLh}{{}DLj}{{}DLl}{{}DLn}{{}DM`}{{}DMb}{{}DMd}{{}DMf}{{}DMh}{{}DMj}{{}DMl}{{}DMn}{{}DN`}{{}DNb}{{}DNd}{{}DNf}{{}DNh}{{}DNj}{{}DNl}{{}DNn}{{}DO`}{{}DOb}{{}DOd}{{}DOf}{{}DOh}{{}DOj}{{}DOl}{{}DOn}{{}E@`}{{}E@b}{{}E@d}{{}E@f}{{}E@h}{{}E@j}{{}E@l}{{}E@n}{{}EA`}{{}EAb}{{}EAd}{{}EAf}{{}EAh}{{}EAj}{{}EAl}{{}EAn}{{}EB`}{{}EBb}{{}EBd}{{}EBf}{{}EBh}{{}EBj}{{}EBl}{{}EBn}{{}EC`}{{}ECb}{{}ECd}{{}ECf}{{}ECh}{{}ECj}{{}ECl}{{}ECn}{{}ED`}{{}EDb}{{}EDd}{{}EDf}{{}EDh}{{}EDj}{{}EDl}{{}EDn}{{}EE`}{{}EEb}{{}EEd}{{}EEf}{{}EEh}{{}EEj}{{}EEl}{{}EEn}{{}EF`}{{}EFb}{{}EFd}{{}EFf}{{}EFh}{{}EFj}{{}EFl}{{}EFn}{{}EG`}{{}EGb}{{}EGd}{{}EGf}{{}EGh}{{}EGj}{{}EGl}{{}EGn}{{}EH`}{{}EHb}{{}EHd}{{}EHf}{{}EHh}{{}EHj}{{}EHl}{{}EHn}{{}EI`}{{}EIb}{{}EId}{{}EIf}{{}EIh}{{}EIj}{{}EIl}{{}EIn}{{}EJ`}{{}EJb}{{}EJd}{{}EJf}{{}EJh}{{}EJj}{{}EJl}{{}EJn}{{}EK`}{{}EKb}{{}EKd}{{}EKf}{{}EKh}{{}EKj}{{}EKl}{{}EKn}{{}EL`}{{}ELb}{{}ELd}{{}ELf}{{}ELh}{{}ELj}{{}ELl}{{}ELn}{{}EM`}{{}EMb}{{}EMd}{{}EMf}{{}EMh}{{}EMj}{{}EMl}{{}EMn}{{}EN`}{{}ENb}{{}ENd}{{}ENf}{{}ENh}{{}ENj}{{}ENl}{{}ENn}{{}EO`}{{}EOb}{{}EOd}{{}EOf}{{}EOh}{{}EOj}{{}EOl}{{}EOn}{{}F@`}{{}F@b}{{}F@d}{{}F@f}{{}F@h}{{}F@j}{{}F@l}{{}F@n}{{}FA`}{{}FAb}{{}FAd}{{}FAf}{{}FAh}{{}FAj}{{}FAl}{{}FAn}{{}FB`}{{}FBb}{{}FBd}{{}FBf}{{}FBh}{{}FBj}{{}FBl}{{}FBn}{{}FC`}{{}FCb}{{}FCd}{{}DD`}{{}FCf}{{}FCh}{{}DDb}{{}FCj}{{}FCl}{{}FCn}{{}FD`}{{}FDb}{{}FDd}{{}FDf}{{}FDh}{{}FDj}{{}FDl}{{}FDn}{{}FE`}{{}DDd}{{}FEb}{{}DDf}{{}FEd}{{}FEf}{{}FEh}{{}FEj}{{}FEl}{{}FEn}{{}FF`}{{}FFb}{{}FFd}{{}FFf}{{}DDh}{{}DDj}{{}FFh}{{}FFj}{{}FFl}{{}FFn}{{}FG`}{{}FGb}{{}FGd}{{}FGf}{{}FGh}{{}FGj}{{}DDl}{{}FGl}{{}FGn}{{}FH`}{{}DDn}{{}DE`}{{}FHb}{{}FHd}{{}DEb}{{}FHf}{{}DEd}{{}FHh}{{}FHj}{{}FHl}{{}DEf}{{}FHn}{{}DEh}{{}FI`}{{}DEj}{{}FIb}{{}FId}{{}FIf}{{}FIh}{{}FIj}{{}FIl}{{}FIn}{{}FJ`}{{}DEl}{{}FJb}{{}FJd}{{}FJf}{{}FJh}{{}FJj}{{}FJl}{{}FJn}{{}FK`}{{}FKb}{{}FKd}{{}FKf}{{}DEn}{{}DF`}{{}DFb}{{}FKh}{{}FKj}{{}DFd}{{}FKl}{{}FKn}{{}DFf}{{}FL`}{{}FLb}{{}FLd}{{}DFh}{{}FLf}{{}FLh}{{}FLj}{{}FLl}{{}FLn}{{}FM`}{{}FMb}{{}FMd}{{}FMf}{{}FMh}{{}FMj}{{}DFj}{{}FMl}{{}DFl}{{}FMn}{{}FN`}{{}FNb}{{}FNd}{{}FNf}{{}FNh}{{}FNj}{{}FNl}{{}FNn}{{}FO`}{{}FOb}{{}FOd}{{}FOf}{{}DFn}{{}FOh}{{}FOj}{{}FOl}{{}FOn}{{}G@`}{{}G@b}{{}DG`}{{}G@d}{{}G@f}{{}G@h}{{}G@j}{{}G@l}{Bf{{Bd{DGb{b{Al}}}}}}```{{Ab{b{{h{f}}}}}{{Bd{DGdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DGfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DGhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DGjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DGlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DGnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DH`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DHnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DI`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DIbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DIdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DIfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DIhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DIjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DIlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DInBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJ`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DJnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DK`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DKnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DL`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DLnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DM`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DMnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DN`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DNnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DO`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{DObBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DOdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DOfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DOhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DOjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DOlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{DOnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@bBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@dBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@fBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@hBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@jBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@lBl}}}}{{Ab{b{{h{f}}}}}{{Bd{E@nBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EA`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EAnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EB`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EBnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EC`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ECbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ECdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ECfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EChBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ECjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EClBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ECnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ED`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EDnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EE`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EEbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EEdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EEfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EEhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EEjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EElBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EEnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EF`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EFnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EG`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EGnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EH`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EHnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EI`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EIbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EIdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EIfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EIhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EIjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EIlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EInBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJ`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EJnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EK`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EKnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EL`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ELnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EM`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EMnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EN`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{ENnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EO`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{EObBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EOdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EOfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EOhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EOjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EOlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{EOnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@bBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@dBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@fBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@hBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@jBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@lBl}}}}{{Ab{b{{h{f}}}}}{{Bd{F@nBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FA`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FAnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FB`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{FBbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FBdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FBfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FBhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FBjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{FBlBl}}}}{c{{Bd{DGb}}}Bn}{c{{Bd{DGd}}}Bn}{c{{Bd{DGf}}}Bn}{c{{Bd{DGh}}}Bn}{c{{Bd{DGj}}}Bn}{c{{Bd{DGl}}}Bn}{c{{Bd{DGn}}}Bn}{c{{Bd{DH`}}}Bn}{c{{Bd{DHb}}}Bn}{c{{Bd{DHd}}}Bn}{c{{Bd{DHf}}}Bn}{c{{Bd{DHh}}}Bn}{c{{Bd{DHj}}}Bn}{c{{Bd{DHl}}}Bn}{c{{Bd{DHn}}}Bn}{c{{Bd{DI`}}}Bn}{c{{Bd{DIb}}}Bn}{c{{Bd{DId}}}Bn}{c{{Bd{DIf}}}Bn}{c{{Bd{DIh}}}Bn}{c{{Bd{DIj}}}Bn}{c{{Bd{DIl}}}Bn}{c{{Bd{DIn}}}Bn}{c{{Bd{DJ`}}}Bn}{c{{Bd{DJb}}}Bn}{c{{Bd{DJd}}}Bn}{c{{Bd{DJf}}}Bn}{c{{Bd{DJh}}}Bn}{c{{Bd{DJj}}}Bn}{c{{Bd{DJl}}}Bn}{c{{Bd{DJn}}}Bn}{c{{Bd{DK`}}}Bn}{c{{Bd{DKb}}}Bn}{c{{Bd{DKd}}}Bn}{c{{Bd{DKf}}}Bn}{c{{Bd{DKh}}}Bn}{c{{Bd{DKj}}}Bn}{c{{Bd{DKl}}}Bn}{c{{Bd{DKn}}}Bn}{c{{Bd{DL`}}}Bn}{c{{Bd{DLb}}}Bn}{c{{Bd{DLd}}}Bn}{c{{Bd{DLf}}}Bn}{c{{Bd{DLh}}}Bn}{c{{Bd{DLj}}}Bn}{c{{Bd{DLl}}}Bn}{c{{Bd{DLn}}}Bn}{c{{Bd{DM`}}}Bn}{c{{Bd{DMb}}}Bn}{c{{Bd{DMd}}}Bn}{c{{Bd{DMf}}}Bn}{c{{Bd{DMh}}}Bn}{c{{Bd{DMj}}}Bn}{c{{Bd{DMl}}}Bn}{c{{Bd{DMn}}}Bn}{c{{Bd{DN`}}}Bn}{c{{Bd{DNb}}}Bn}{c{{Bd{DNd}}}Bn}{c{{Bd{DNf}}}Bn}{c{{Bd{DNh}}}Bn}{c{{Bd{DNj}}}Bn}{c{{Bd{DNl}}}Bn}{c{{Bd{DNn}}}Bn}{c{{Bd{DO`}}}Bn}{c{{Bd{DOb}}}Bn}{c{{Bd{DOd}}}Bn}{c{{Bd{DOf}}}Bn}{c{{Bd{DOh}}}Bn}{c{{Bd{DOj}}}Bn}{c{{Bd{DOl}}}Bn}{c{{Bd{DOn}}}Bn}{c{{Bd{E@`}}}Bn}{c{{Bd{E@b}}}Bn}{c{{Bd{E@d}}}Bn}{c{{Bd{E@f}}}Bn}{c{{Bd{E@h}}}Bn}{c{{Bd{E@j}}}Bn}{c{{Bd{E@l}}}Bn}{c{{Bd{E@n}}}Bn}{c{{Bd{EA`}}}Bn}{c{{Bd{EAb}}}Bn}{c{{Bd{EAd}}}Bn}{c{{Bd{EAf}}}Bn}{c{{Bd{EAh}}}Bn}{c{{Bd{EAj}}}Bn}{c{{Bd{EAl}}}Bn}{c{{Bd{EAn}}}Bn}{c{{Bd{EB`}}}Bn}{c{{Bd{EBb}}}Bn}{c{{Bd{EBd}}}Bn}{c{{Bd{EBf}}}Bn}{c{{Bd{EBh}}}Bn}{c{{Bd{EBj}}}Bn}{c{{Bd{EBl}}}Bn}{c{{Bd{EBn}}}Bn}{c{{Bd{EC`}}}Bn}{c{{Bd{ECb}}}Bn}{c{{Bd{ECd}}}Bn}{c{{Bd{ECf}}}Bn}{c{{Bd{ECh}}}Bn}{c{{Bd{ECj}}}Bn}{c{{Bd{ECl}}}Bn}{c{{Bd{ECn}}}Bn}{c{{Bd{ED`}}}Bn}{c{{Bd{EDb}}}Bn}{c{{Bd{EDd}}}Bn}{c{{Bd{EDf}}}Bn}{c{{Bd{EDh}}}Bn}{c{{Bd{EDj}}}Bn}{c{{Bd{EDl}}}Bn}{c{{Bd{EDn}}}Bn}{c{{Bd{EE`}}}Bn}{c{{Bd{EEb}}}Bn}{c{{Bd{EEd}}}Bn}{c{{Bd{EEf}}}Bn}{c{{Bd{EEh}}}Bn}{c{{Bd{EEj}}}Bn}{c{{Bd{EEl}}}Bn}{c{{Bd{EEn}}}Bn}{c{{Bd{EF`}}}Bn}{c{{Bd{EFb}}}Bn}{c{{Bd{EFd}}}Bn}{c{{Bd{EFf}}}Bn}{c{{Bd{EFh}}}Bn}{c{{Bd{EFj}}}Bn}{c{{Bd{EFl}}}Bn}{c{{Bd{EFn}}}Bn}{c{{Bd{EG`}}}Bn}{c{{Bd{EGb}}}Bn}{c{{Bd{EGd}}}Bn}{c{{Bd{EGf}}}Bn}{c{{Bd{EGh}}}Bn}{c{{Bd{EGj}}}Bn}{c{{Bd{EGl}}}Bn}{c{{Bd{EGn}}}Bn}{c{{Bd{EH`}}}Bn}{c{{Bd{EHb}}}Bn}{c{{Bd{EHd}}}Bn}{c{{Bd{EHf}}}Bn}{c{{Bd{EHh}}}Bn}{c{{Bd{EHj}}}Bn}{c{{Bd{EHl}}}Bn}{c{{Bd{EHn}}}Bn}{c{{Bd{EI`}}}Bn}{c{{Bd{EIb}}}Bn}{c{{Bd{EId}}}Bn}{c{{Bd{EIf}}}Bn}{c{{Bd{EIh}}}Bn}{c{{Bd{EIj}}}Bn}{c{{Bd{EIl}}}Bn}{c{{Bd{EIn}}}Bn}{c{{Bd{EJ`}}}Bn}{c{{Bd{EJb}}}Bn}{c{{Bd{EJd}}}Bn}{c{{Bd{EJf}}}Bn}{c{{Bd{EJh}}}Bn}{c{{Bd{EJj}}}Bn}{c{{Bd{EJl}}}Bn}{c{{Bd{EJn}}}Bn}{c{{Bd{EK`}}}Bn}{c{{Bd{EKb}}}Bn}{c{{Bd{EKd}}}Bn}{c{{Bd{EKf}}}Bn}{c{{Bd{EKh}}}Bn}{c{{Bd{EKj}}}Bn}{c{{Bd{EKl}}}Bn}{c{{Bd{EKn}}}Bn}{c{{Bd{EL`}}}Bn}{c{{Bd{ELb}}}Bn}{c{{Bd{ELd}}}Bn}{c{{Bd{ELf}}}Bn}{c{{Bd{ELh}}}Bn}{c{{Bd{ELj}}}Bn}{c{{Bd{ELl}}}Bn}{c{{Bd{ELn}}}Bn}{c{{Bd{EM`}}}Bn}{c{{Bd{EMb}}}Bn}{c{{Bd{EMd}}}Bn}{c{{Bd{EMf}}}Bn}{c{{Bd{EMh}}}Bn}{c{{Bd{EMj}}}Bn}{c{{Bd{EMl}}}Bn}{c{{Bd{EMn}}}Bn}{c{{Bd{EN`}}}Bn}{c{{Bd{ENb}}}Bn}{c{{Bd{ENd}}}Bn}{c{{Bd{ENf}}}Bn}{c{{Bd{ENh}}}Bn}{c{{Bd{ENj}}}Bn}{c{{Bd{ENl}}}Bn}{c{{Bd{ENn}}}Bn}{c{{Bd{EO`}}}Bn}{c{{Bd{EOb}}}Bn}{c{{Bd{EOd}}}Bn}{c{{Bd{EOf}}}Bn}{c{{Bd{EOh}}}Bn}{c{{Bd{EOj}}}Bn}{c{{Bd{EOl}}}Bn}{c{{Bd{EOn}}}Bn}{c{{Bd{F@`}}}Bn}{c{{Bd{F@b}}}Bn}{c{{Bd{F@d}}}Bn}{c{{Bd{F@f}}}Bn}{c{{Bd{F@h}}}Bn}{c{{Bd{F@j}}}Bn}{c{{Bd{F@l}}}Bn}{c{{Bd{F@n}}}Bn}{c{{Bd{FA`}}}Bn}{c{{Bd{FAb}}}Bn}{c{{Bd{FAd}}}Bn}{c{{Bd{FAf}}}Bn}{c{{Bd{FAh}}}Bn}{c{{Bd{FAj}}}Bn}{c{{Bd{FAl}}}Bn}{c{{Bd{FAn}}}Bn}{c{{Bd{FB`}}}Bn}{c{{Bd{FBb}}}Bn}{c{{Bd{FBd}}}Bn}{c{{Bd{FBf}}}Bn}{c{{Bd{FBh}}}Bn}{c{{Bd{FBj}}}Bn}{c{{Bd{FBl}}}Bn}{c{{Bd{FBn}}}Bn}{c{{Bd{FC`}}}Bn}{c{{Bd{FCb}}}Bn}{c{{Bd{FCd}}}Bn}{c{{Bd{DD`}}}Bn}{c{{Bd{FCf}}}Bn}{c{{Bd{FCh}}}Bn}{c{{Bd{DDb}}}Bn}{c{{Bd{FCj}}}Bn}{c{{Bd{FCl}}}Bn}{c{{Bd{FCn}}}Bn}{c{{Bd{FD`}}}Bn}{c{{Bd{FDb}}}Bn}{c{{Bd{FDd}}}Bn}{c{{Bd{FDf}}}Bn}{c{{Bd{FDh}}}Bn}{c{{Bd{FDj}}}Bn}{c{{Bd{FDl}}}Bn}{c{{Bd{FDn}}}Bn}{c{{Bd{FE`}}}Bn}{c{{Bd{DDd}}}Bn}{c{{Bd{FEb}}}Bn}{c{{Bd{DDf}}}Bn}{c{{Bd{FEd}}}Bn}{c{{Bd{FEf}}}Bn}{c{{Bd{FEh}}}Bn}{c{{Bd{FEj}}}Bn}{c{{Bd{FEl}}}Bn}{c{{Bd{FEn}}}Bn}{c{{Bd{FF`}}}Bn}{c{{Bd{FFb}}}Bn}{c{{Bd{FFd}}}Bn}{c{{Bd{FFf}}}Bn}{c{{Bd{DDh}}}Bn}{c{{Bd{DDj}}}Bn}{c{{Bd{FFh}}}Bn}{c{{Bd{FFj}}}Bn}{c{{Bd{FFl}}}Bn}{c{{Bd{FFn}}}Bn}{c{{Bd{FG`}}}Bn}{c{{Bd{FGb}}}Bn}{c{{Bd{FGd}}}Bn}{c{{Bd{FGf}}}Bn}{c{{Bd{FGh}}}Bn}{c{{Bd{FGj}}}Bn}{c{{Bd{DDl}}}Bn}{c{{Bd{FGl}}}Bn}{c{{Bd{FGn}}}Bn}{c{{Bd{FH`}}}Bn}{c{{Bd{DDn}}}Bn}{c{{Bd{DE`}}}Bn}{c{{Bd{FHb}}}Bn}{c{{Bd{FHd}}}Bn}{c{{Bd{DEb}}}Bn}{c{{Bd{FHf}}}Bn}{c{{Bd{DEd}}}Bn}{c{{Bd{FHh}}}Bn}{c{{Bd{FHj}}}Bn}{c{{Bd{FHl}}}Bn}{c{{Bd{DEf}}}Bn}{c{{Bd{FHn}}}Bn}{c{{Bd{DEh}}}Bn}{c{{Bd{FI`}}}Bn}{c{{Bd{DEj}}}Bn}{c{{Bd{FIb}}}Bn}{c{{Bd{FId}}}Bn}{c{{Bd{FIf}}}Bn}{c{{Bd{FIh}}}Bn}{c{{Bd{FIj}}}Bn}{c{{Bd{FIl}}}Bn}{c{{Bd{FIn}}}Bn}{c{{Bd{FJ`}}}Bn}{c{{Bd{DEl}}}Bn}{c{{Bd{FJb}}}Bn}{c{{Bd{FJd}}}Bn}{c{{Bd{FJf}}}Bn}{c{{Bd{FJh}}}Bn}{c{{Bd{FJj}}}Bn}{c{{Bd{FJl}}}Bn}{c{{Bd{FJn}}}Bn}{c{{Bd{FK`}}}Bn}{c{{Bd{FKb}}}Bn}{c{{Bd{FKd}}}Bn}{c{{Bd{FKf}}}Bn}{c{{Bd{DEn}}}Bn}{c{{Bd{DF`}}}Bn}{c{{Bd{DFb}}}Bn}{c{{Bd{FKh}}}Bn}{c{{Bd{FKj}}}Bn}{c{{Bd{DFd}}}Bn}{c{{Bd{FKl}}}Bn}{c{{Bd{FKn}}}Bn}{c{{Bd{DFf}}}Bn}{c{{Bd{FL`}}}Bn}{c{{Bd{FLb}}}Bn}{c{{Bd{FLd}}}Bn}{c{{Bd{DFh}}}Bn}{c{{Bd{FLf}}}Bn}{c{{Bd{FLh}}}Bn}{c{{Bd{FLj}}}Bn}{c{{Bd{FLl}}}Bn}{c{{Bd{FLn}}}Bn}{c{{Bd{FM`}}}Bn}{c{{Bd{FMb}}}Bn}{c{{Bd{FMd}}}Bn}{c{{Bd{FMf}}}Bn}{c{{Bd{FMh}}}Bn}{c{{Bd{FMj}}}Bn}{c{{Bd{DFj}}}Bn}{c{{Bd{FMl}}}Bn}{c{{Bd{DFl}}}Bn}{c{{Bd{FMn}}}Bn}{c{{Bd{FN`}}}Bn}{c{{Bd{FNb}}}Bn}{c{{Bd{FNd}}}Bn}{c{{Bd{FNf}}}Bn}{c{{Bd{FNh}}}Bn}{c{{Bd{FNj}}}Bn}{c{{Bd{FNl}}}Bn}{c{{Bd{FNn}}}Bn}{c{{Bd{FO`}}}Bn}{c{{Bd{FOb}}}Bn}{c{{Bd{FOd}}}Bn}{c{{Bd{FOf}}}Bn}{c{{Bd{DFn}}}Bn}{c{{Bd{FOh}}}Bn}{c{{Bd{FOj}}}Bn}{c{{Bd{FOl}}}Bn}{c{{Bd{FOn}}}Bn}{c{{Bd{G@`}}}Bn}{c{{Bd{G@b}}}Bn}{c{{Bd{DG`}}}Bn}{c{{Bd{G@d}}}Bn}{c{{Bd{G@f}}}Bn}{c{{Bd{G@h}}}Bn}{c{{Bd{G@j}}}Bn}{c{{Bd{G@l}}}Bn}```````````{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}```````````````{{}DD`}{{}DDb}{{}DDd}{{}DDf}{{}DDh}{{}DDj}{{}DDl}{{}DDn}{{}DE`}{{}DEb}{{}DEd}{{}DEf}{{}DEh}{{}DEj}{{}DEl}{{}DEn}{{}DF`}{{}DFb}{{}DFd}{{}DFf}{{}DFh}{{}DFj}{{}DFl}{{}DFn}{{}DG`}```````````````{{{b{DGb}}{b{DGb}}}C`}{{{b{DGd}}{b{DGd}}}C`}{{{b{DGf}}{b{DGf}}}C`}{{{b{DGh}}{b{DGh}}}C`}{{{b{DGj}}{b{DGj}}}C`}{{{b{DGl}}{b{DGl}}}C`}{{{b{DGn}}{b{DGn}}}C`}{{{b{DH`}}{b{DH`}}}C`}{{{b{DHb}}{b{DHb}}}C`}{{{b{DHd}}{b{DHd}}}C`}{{{b{DHf}}{b{DHf}}}C`}{{{b{DHh}}{b{DHh}}}C`}{{{b{DHj}}{b{DHj}}}C`}{{{b{DHl}}{b{DHl}}}C`}{{{b{DHn}}{b{DHn}}}C`}{{{b{DI`}}{b{DI`}}}C`}{{{b{DIb}}{b{DIb}}}C`}{{{b{DId}}{b{DId}}}C`}{{{b{DIf}}{b{DIf}}}C`}{{{b{DIh}}{b{DIh}}}C`}{{{b{DIj}}{b{DIj}}}C`}{{{b{DIl}}{b{DIl}}}C`}{{{b{DIn}}{b{DIn}}}C`}{{{b{DJ`}}{b{DJ`}}}C`}{{{b{DJb}}{b{DJb}}}C`}{{{b{DJd}}{b{DJd}}}C`}{{{b{DJf}}{b{DJf}}}C`}{{{b{DJh}}{b{DJh}}}C`}{{{b{DJj}}{b{DJj}}}C`}{{{b{DJl}}{b{DJl}}}C`}{{{b{DJn}}{b{DJn}}}C`}{{{b{DK`}}{b{DK`}}}C`}{{{b{DKb}}{b{DKb}}}C`}{{{b{DKd}}{b{DKd}}}C`}{{{b{DKf}}{b{DKf}}}C`}{{{b{DKh}}{b{DKh}}}C`}{{{b{DKj}}{b{DKj}}}C`}{{{b{DKl}}{b{DKl}}}C`}{{{b{DKn}}{b{DKn}}}C`}{{{b{DL`}}{b{DL`}}}C`}{{{b{DLb}}{b{DLb}}}C`}{{{b{DLd}}{b{DLd}}}C`}{{{b{DLf}}{b{DLf}}}C`}{{{b{DLh}}{b{DLh}}}C`}{{{b{DLj}}{b{DLj}}}C`}{{{b{DLl}}{b{DLl}}}C`}{{{b{DLn}}{b{DLn}}}C`}{{{b{DM`}}{b{DM`}}}C`}{{{b{DMb}}{b{DMb}}}C`}{{{b{DMd}}{b{DMd}}}C`}{{{b{DMf}}{b{DMf}}}C`}{{{b{DMh}}{b{DMh}}}C`}{{{b{DMj}}{b{DMj}}}C`}{{{b{DMl}}{b{DMl}}}C`}{{{b{DMn}}{b{DMn}}}C`}{{{b{DN`}}{b{DN`}}}C`}{{{b{DNb}}{b{DNb}}}C`}{{{b{DNd}}{b{DNd}}}C`}{{{b{DNf}}{b{DNf}}}C`}{{{b{DNh}}{b{DNh}}}C`}{{{b{DNj}}{b{DNj}}}C`}{{{b{DNl}}{b{DNl}}}C`}{{{b{DNn}}{b{DNn}}}C`}{{{b{DO`}}{b{DO`}}}C`}{{{b{DOb}}{b{DOb}}}C`}{{{b{DOd}}{b{DOd}}}C`}{{{b{DOf}}{b{DOf}}}C`}{{{b{DOh}}{b{DOh}}}C`}{{{b{DOj}}{b{DOj}}}C`}{{{b{DOl}}{b{DOl}}}C`}{{{b{DOn}}{b{DOn}}}C`}{{{b{E@`}}{b{E@`}}}C`}{{{b{E@b}}{b{E@b}}}C`}{{{b{E@d}}{b{E@d}}}C`}{{{b{E@f}}{b{E@f}}}C`}{{{b{E@h}}{b{E@h}}}C`}{{{b{E@j}}{b{E@j}}}C`}{{{b{E@l}}{b{E@l}}}C`}{{{b{E@n}}{b{E@n}}}C`}{{{b{EA`}}{b{EA`}}}C`}{{{b{EAb}}{b{EAb}}}C`}{{{b{EAd}}{b{EAd}}}C`}{{{b{EAf}}{b{EAf}}}C`}{{{b{EAh}}{b{EAh}}}C`}{{{b{EAj}}{b{EAj}}}C`}{{{b{EAl}}{b{EAl}}}C`}{{{b{EAn}}{b{EAn}}}C`}{{{b{EB`}}{b{EB`}}}C`}{{{b{EBb}}{b{EBb}}}C`}{{{b{EBd}}{b{EBd}}}C`}{{{b{EBf}}{b{EBf}}}C`}{{{b{EBh}}{b{EBh}}}C`}{{{b{EBj}}{b{EBj}}}C`}{{{b{EBl}}{b{EBl}}}C`}{{{b{EBn}}{b{EBn}}}C`}{{{b{EC`}}{b{EC`}}}C`}{{{b{ECb}}{b{ECb}}}C`}{{{b{ECd}}{b{ECd}}}C`}{{{b{ECf}}{b{ECf}}}C`}{{{b{ECh}}{b{ECh}}}C`}{{{b{ECj}}{b{ECj}}}C`}{{{b{ECl}}{b{ECl}}}C`}{{{b{ECn}}{b{ECn}}}C`}{{{b{ED`}}{b{ED`}}}C`}{{{b{EDb}}{b{EDb}}}C`}{{{b{EDd}}{b{EDd}}}C`}{{{b{EDf}}{b{EDf}}}C`}{{{b{EDh}}{b{EDh}}}C`}{{{b{EDj}}{b{EDj}}}C`}{{{b{EDl}}{b{EDl}}}C`}{{{b{EDn}}{b{EDn}}}C`}{{{b{EE`}}{b{EE`}}}C`}{{{b{EEb}}{b{EEb}}}C`}{{{b{EEd}}{b{EEd}}}C`}{{{b{EEf}}{b{EEf}}}C`}{{{b{EEh}}{b{EEh}}}C`}{{{b{EEj}}{b{EEj}}}C`}{{{b{EEl}}{b{EEl}}}C`}{{{b{EEn}}{b{EEn}}}C`}{{{b{EF`}}{b{EF`}}}C`}{{{b{EFb}}{b{EFb}}}C`}{{{b{EFd}}{b{EFd}}}C`}{{{b{EFf}}{b{EFf}}}C`}{{{b{EFh}}{b{EFh}}}C`}{{{b{EFj}}{b{EFj}}}C`}{{{b{EFl}}{b{EFl}}}C`}{{{b{EFn}}{b{EFn}}}C`}{{{b{EG`}}{b{EG`}}}C`}{{{b{EGb}}{b{EGb}}}C`}{{{b{EGd}}{b{EGd}}}C`}{{{b{EGf}}{b{EGf}}}C`}{{{b{EGh}}{b{EGh}}}C`}{{{b{EGj}}{b{EGj}}}C`}{{{b{EGl}}{b{EGl}}}C`}{{{b{EGn}}{b{EGn}}}C`}{{{b{EH`}}{b{EH`}}}C`}{{{b{EHb}}{b{EHb}}}C`}{{{b{EHd}}{b{EHd}}}C`}{{{b{EHf}}{b{EHf}}}C`}{{{b{EHh}}{b{EHh}}}C`}{{{b{EHj}}{b{EHj}}}C`}{{{b{EHl}}{b{EHl}}}C`}{{{b{EHn}}{b{EHn}}}C`}{{{b{EI`}}{b{EI`}}}C`}{{{b{EIb}}{b{EIb}}}C`}{{{b{EId}}{b{EId}}}C`}{{{b{EIf}}{b{EIf}}}C`}{{{b{EIh}}{b{EIh}}}C`}{{{b{EIj}}{b{EIj}}}C`}{{{b{EIl}}{b{EIl}}}C`}{{{b{EIn}}{b{EIn}}}C`}{{{b{EJ`}}{b{EJ`}}}C`}{{{b{EJb}}{b{EJb}}}C`}{{{b{EJd}}{b{EJd}}}C`}{{{b{EJf}}{b{EJf}}}C`}{{{b{EJh}}{b{EJh}}}C`}{{{b{EJj}}{b{EJj}}}C`}{{{b{EJl}}{b{EJl}}}C`}{{{b{EJn}}{b{EJn}}}C`}{{{b{EK`}}{b{EK`}}}C`}{{{b{EKb}}{b{EKb}}}C`}{{{b{EKd}}{b{EKd}}}C`}{{{b{EKf}}{b{EKf}}}C`}{{{b{EKh}}{b{EKh}}}C`}{{{b{EKj}}{b{EKj}}}C`}{{{b{EKl}}{b{EKl}}}C`}{{{b{EKn}}{b{EKn}}}C`}{{{b{EL`}}{b{EL`}}}C`}{{{b{ELb}}{b{ELb}}}C`}{{{b{ELd}}{b{ELd}}}C`}{{{b{ELf}}{b{ELf}}}C`}{{{b{ELh}}{b{ELh}}}C`}{{{b{ELj}}{b{ELj}}}C`}{{{b{ELl}}{b{ELl}}}C`}{{{b{ELn}}{b{ELn}}}C`}{{{b{EM`}}{b{EM`}}}C`}{{{b{EMb}}{b{EMb}}}C`}{{{b{EMd}}{b{EMd}}}C`}{{{b{EMf}}{b{EMf}}}C`}{{{b{EMh}}{b{EMh}}}C`}{{{b{EMj}}{b{EMj}}}C`}{{{b{EMl}}{b{EMl}}}C`}{{{b{EMn}}{b{EMn}}}C`}{{{b{EN`}}{b{EN`}}}C`}{{{b{ENb}}{b{ENb}}}C`}{{{b{ENd}}{b{ENd}}}C`}{{{b{ENf}}{b{ENf}}}C`}{{{b{ENh}}{b{ENh}}}C`}{{{b{ENj}}{b{ENj}}}C`}{{{b{ENl}}{b{ENl}}}C`}{{{b{ENn}}{b{ENn}}}C`}{{{b{EO`}}{b{EO`}}}C`}{{{b{EOb}}{b{EOb}}}C`}{{{b{EOd}}{b{EOd}}}C`}{{{b{EOf}}{b{EOf}}}C`}{{{b{EOh}}{b{EOh}}}C`}{{{b{EOj}}{b{EOj}}}C`}{{{b{EOl}}{b{EOl}}}C`}{{{b{EOn}}{b{EOn}}}C`}{{{b{F@`}}{b{F@`}}}C`}{{{b{F@b}}{b{F@b}}}C`}{{{b{F@d}}{b{F@d}}}C`}{{{b{F@f}}{b{F@f}}}C`}{{{b{F@h}}{b{F@h}}}C`}{{{b{F@j}}{b{F@j}}}C`}{{{b{F@l}}{b{F@l}}}C`}{{{b{F@n}}{b{F@n}}}C`}{{{b{FA`}}{b{FA`}}}C`}{{{b{FAb}}{b{FAb}}}C`}{{{b{FAd}}{b{FAd}}}C`}{{{b{FAf}}{b{FAf}}}C`}{{{b{FAh}}{b{FAh}}}C`}{{{b{FAj}}{b{FAj}}}C`}{{{b{FAl}}{b{FAl}}}C`}{{{b{FAn}}{b{FAn}}}C`}{{{b{FB`}}{b{FB`}}}C`}{{{b{FBb}}{b{FBb}}}C`}{{{b{FBd}}{b{FBd}}}C`}{{{b{FBf}}{b{FBf}}}C`}{{{b{FBh}}{b{FBh}}}C`}{{{b{FBj}}{b{FBj}}}C`}{{{b{FBl}}{b{FBl}}}C`}{{{b{FBn}}{b{FBn}}}C`}{{{b{FC`}}{b{FC`}}}C`}{{{b{FCb}}{b{FCb}}}C`}{{{b{FCd}}{b{FCd}}}C`}{{{b{DD`}}{b{DD`}}}C`}{{{b{FCf}}{b{FCf}}}C`}{{{b{FCh}}{b{FCh}}}C`}{{{b{DDb}}{b{DDb}}}C`}{{{b{FCj}}{b{FCj}}}C`}{{{b{FCl}}{b{FCl}}}C`}{{{b{FCn}}{b{FCn}}}C`}{{{b{FD`}}{b{FD`}}}C`}{{{b{FDb}}{b{FDb}}}C`}{{{b{FDd}}{b{FDd}}}C`}{{{b{FDf}}{b{FDf}}}C`}{{{b{FDh}}{b{FDh}}}C`}{{{b{FDj}}{b{FDj}}}C`}{{{b{FDl}}{b{FDl}}}C`}{{{b{FDn}}{b{FDn}}}C`}{{{b{FE`}}{b{FE`}}}C`}{{{b{DDd}}{b{DDd}}}C`}{{{b{FEb}}{b{FEb}}}C`}{{{b{DDf}}{b{DDf}}}C`}{{{b{FEd}}{b{FEd}}}C`}{{{b{FEf}}{b{FEf}}}C`}{{{b{FEh}}{b{FEh}}}C`}{{{b{FEj}}{b{FEj}}}C`}{{{b{FEl}}{b{FEl}}}C`}{{{b{FEn}}{b{FEn}}}C`}{{{b{FF`}}{b{FF`}}}C`}{{{b{FFb}}{b{FFb}}}C`}{{{b{FFd}}{b{FFd}}}C`}{{{b{FFf}}{b{FFf}}}C`}{{{b{DDh}}{b{DDh}}}C`}{{{b{DDj}}{b{DDj}}}C`}{{{b{FFh}}{b{FFh}}}C`}{{{b{FFj}}{b{FFj}}}C`}{{{b{FFl}}{b{FFl}}}C`}{{{b{FFn}}{b{FFn}}}C`}{{{b{FG`}}{b{FG`}}}C`}{{{b{FGb}}{b{FGb}}}C`}{{{b{FGd}}{b{FGd}}}C`}{{{b{FGf}}{b{FGf}}}C`}{{{b{FGh}}{b{FGh}}}C`}{{{b{FGj}}{b{FGj}}}C`}{{{b{DDl}}{b{DDl}}}C`}{{{b{FGl}}{b{FGl}}}C`}{{{b{FGn}}{b{FGn}}}C`}{{{b{FH`}}{b{FH`}}}C`}{{{b{DDn}}{b{DDn}}}C`}{{{b{DE`}}{b{DE`}}}C`}{{{b{FHb}}{b{FHb}}}C`}{{{b{FHd}}{b{FHd}}}C`}{{{b{DEb}}{b{DEb}}}C`}{{{b{FHf}}{b{FHf}}}C`}{{{b{DEd}}{b{DEd}}}C`}{{{b{FHh}}{b{FHh}}}C`}{{{b{FHj}}{b{FHj}}}C`}{{{b{FHl}}{b{FHl}}}C`}{{{b{DEf}}{b{DEf}}}C`}{{{b{FHn}}{b{FHn}}}C`}{{{b{DEh}}{b{DEh}}}C`}{{{b{FI`}}{b{FI`}}}C`}{{{b{DEj}}{b{DEj}}}C`}{{{b{FIb}}{b{FIb}}}C`}{{{b{FId}}{b{FId}}}C`}{{{b{FIf}}{b{FIf}}}C`}{{{b{FIh}}{b{FIh}}}C`}{{{b{FIj}}{b{FIj}}}C`}{{{b{FIl}}{b{FIl}}}C`}{{{b{FIn}}{b{FIn}}}C`}{{{b{FJ`}}{b{FJ`}}}C`}{{{b{DEl}}{b{DEl}}}C`}{{{b{FJb}}{b{FJb}}}C`}{{{b{FJd}}{b{FJd}}}C`}{{{b{FJf}}{b{FJf}}}C`}{{{b{FJh}}{b{FJh}}}C`}{{{b{FJj}}{b{FJj}}}C`}{{{b{FJl}}{b{FJl}}}C`}{{{b{FJn}}{b{FJn}}}C`}{{{b{FK`}}{b{FK`}}}C`}{{{b{FKb}}{b{FKb}}}C`}{{{b{FKd}}{b{FKd}}}C`}{{{b{FKf}}{b{FKf}}}C`}{{{b{DEn}}{b{DEn}}}C`}{{{b{DF`}}{b{DF`}}}C`}{{{b{DFb}}{b{DFb}}}C`}{{{b{FKh}}{b{FKh}}}C`}{{{b{FKj}}{b{FKj}}}C`}{{{b{DFd}}{b{DFd}}}C`}{{{b{FKl}}{b{FKl}}}C`}{{{b{FKn}}{b{FKn}}}C`}{{{b{DFf}}{b{DFf}}}C`}{{{b{FL`}}{b{FL`}}}C`}{{{b{FLb}}{b{FLb}}}C`}{{{b{FLd}}{b{FLd}}}C`}{{{b{DFh}}{b{DFh}}}C`}{{{b{FLf}}{b{FLf}}}C`}{{{b{FLh}}{b{FLh}}}C`}{{{b{FLj}}{b{FLj}}}C`}{{{b{FLl}}{b{FLl}}}C`}{{{b{FLn}}{b{FLn}}}C`}{{{b{FM`}}{b{FM`}}}C`}{{{b{FMb}}{b{FMb}}}C`}{{{b{FMd}}{b{FMd}}}C`}{{{b{FMf}}{b{FMf}}}C`}{{{b{FMh}}{b{FMh}}}C`}{{{b{FMj}}{b{FMj}}}C`}{{{b{DFj}}{b{DFj}}}C`}{{{b{FMl}}{b{FMl}}}C`}{{{b{DFl}}{b{DFl}}}C`}{{{b{FMn}}{b{FMn}}}C`}{{{b{FN`}}{b{FN`}}}C`}{{{b{FNb}}{b{FNb}}}C`}{{{b{FNd}}{b{FNd}}}C`}{{{b{FNf}}{b{FNf}}}C`}{{{b{FNh}}{b{FNh}}}C`}{{{b{FNj}}{b{FNj}}}C`}{{{b{FNl}}{b{FNl}}}C`}{{{b{FNn}}{b{FNn}}}C`}{{{b{FO`}}{b{FO`}}}C`}{{{b{FOb}}{b{FOb}}}C`}{{{b{FOd}}{b{FOd}}}C`}{{{b{FOf}}{b{FOf}}}C`}{{{b{DFn}}{b{DFn}}}C`}{{{b{FOh}}{b{FOh}}}C`}{{{b{FOj}}{b{FOj}}}C`}{{{b{FOl}}{b{FOl}}}C`}{{{b{FOn}}{b{FOn}}}C`}{{{b{G@`}}{b{G@`}}}C`}{{{b{G@b}}{b{G@b}}}C`}{{{b{DG`}}{b{DG`}}}C`}{{{b{G@d}}{b{G@d}}}C`}{{{b{G@f}}{b{G@f}}}C`}{{{b{G@h}}{b{G@h}}}C`}{{{b{G@j}}{b{G@j}}}C`}{{{b{G@l}}{b{G@l}}}C`}`````````````{{{b{dDD`}}c}Aj{{DBf{}{{DBd{DD`}}}}}}{{{b{dDDb}}c}Aj{{DBf{}{{DBd{DDb}}}}}}{{{b{dDDd}}c}Aj{{DBf{}{{DBd{DDd}}}}}}{{{b{dDDf}}c}Aj{{DBf{}{{DBd{DDf}}}}}}{{{b{dDDh}}c}Aj{{DBf{}{{DBd{DDh}}}}}}{{{b{dDDj}}c}Aj{{DBf{}{{DBd{DDj}}}}}}{{{b{dDDl}}c}Aj{{DBf{}{{DBd{DDl}}}}}}{{{b{dDDn}}c}Aj{{DBf{}{{DBd{DDn}}}}}}{{{b{dDE`}}c}Aj{{DBf{}{{DBd{DE`}}}}}}{{{b{dDEb}}c}Aj{{DBf{}{{DBd{DEb}}}}}}{{{b{dDEd}}c}Aj{{DBf{}{{DBd{DEd}}}}}}{{{b{dDEf}}c}Aj{{DBf{}{{DBd{DEf}}}}}}{{{b{dDEh}}c}Aj{{DBf{}{{DBd{DEh}}}}}}{{{b{dDEj}}c}Aj{{DBf{}{{DBd{DEj}}}}}}{{{b{dDEl}}c}Aj{{DBf{}{{DBd{DEl}}}}}}{{{b{dDEn}}c}Aj{{DBf{}{{DBd{DEn}}}}}}{{{b{dDF`}}c}Aj{{DBf{}{{DBd{DF`}}}}}}{{{b{dDFb}}c}Aj{{DBf{}{{DBd{DFb}}}}}}{{{b{dDFd}}c}Aj{{DBf{}{{DBd{DFd}}}}}}{{{b{dDFf}}c}Aj{{DBf{}{{DBd{DFf}}}}}}{{{b{dDFh}}c}Aj{{DBf{}{{DBd{DFh}}}}}}{{{b{dDFj}}c}Aj{{DBf{}{{DBd{DFj}}}}}}{{{b{dDFl}}c}Aj{{DBf{}{{DBd{DFl}}}}}}{{{b{dDFn}}c}Aj{{DBf{}{{DBd{DFn}}}}}}{{{b{dDG`}}c}Aj{{DBf{}{{DBd{DG`}}}}}}{Bff}`````````````````````````````````````````````````{{{b{DGb}}{b{dCb}}}DBh}{{{b{DGd}}{b{dCb}}}DBh}{{{b{DGf}}{b{dCb}}}DBh}{{{b{DGh}}{b{dCb}}}DBh}{{{b{DGj}}{b{dCb}}}DBh}{{{b{DGl}}{b{dCb}}}DBh}{{{b{DGn}}{b{dCb}}}DBh}{{{b{DH`}}{b{dCb}}}DBh}{{{b{DHb}}{b{dCb}}}DBh}{{{b{DHd}}{b{dCb}}}DBh}{{{b{DHf}}{b{dCb}}}DBh}{{{b{DHh}}{b{dCb}}}DBh}{{{b{DHj}}{b{dCb}}}DBh}{{{b{DHl}}{b{dCb}}}DBh}{{{b{DHn}}{b{dCb}}}DBh}{{{b{DI`}}{b{dCb}}}DBh}{{{b{DIb}}{b{dCb}}}DBh}{{{b{DId}}{b{dCb}}}DBh}{{{b{DIf}}{b{dCb}}}DBh}{{{b{DIh}}{b{dCb}}}DBh}{{{b{DIj}}{b{dCb}}}DBh}{{{b{DIl}}{b{dCb}}}DBh}{{{b{DIn}}{b{dCb}}}DBh}{{{b{DJ`}}{b{dCb}}}DBh}{{{b{DJb}}{b{dCb}}}DBh}{{{b{DJd}}{b{dCb}}}DBh}{{{b{DJf}}{b{dCb}}}DBh}{{{b{DJh}}{b{dCb}}}DBh}{{{b{DJj}}{b{dCb}}}DBh}{{{b{DJl}}{b{dCb}}}DBh}{{{b{DJn}}{b{dCb}}}DBh}{{{b{DK`}}{b{dCb}}}DBh}{{{b{DKb}}{b{dCb}}}DBh}{{{b{DKd}}{b{dCb}}}DBh}{{{b{DKf}}{b{dCb}}}DBh}{{{b{DKh}}{b{dCb}}}DBh}{{{b{DKj}}{b{dCb}}}DBh}{{{b{DKl}}{b{dCb}}}DBh}{{{b{DKn}}{b{dCb}}}DBh}{{{b{DL`}}{b{dCb}}}DBh}{{{b{DLb}}{b{dCb}}}DBh}{{{b{DLd}}{b{dCb}}}DBh}{{{b{DLf}}{b{dCb}}}DBh}{{{b{DLh}}{b{dCb}}}DBh}{{{b{DLj}}{b{dCb}}}DBh}{{{b{DLl}}{b{dCb}}}DBh}{{{b{DLn}}{b{dCb}}}DBh}{{{b{DM`}}{b{dCb}}}DBh}{{{b{DMb}}{b{dCb}}}DBh}{{{b{DMd}}{b{dCb}}}DBh}{{{b{DMf}}{b{dCb}}}DBh}{{{b{DMh}}{b{dCb}}}DBh}{{{b{DMj}}{b{dCb}}}DBh}{{{b{DMl}}{b{dCb}}}DBh}{{{b{DMn}}{b{dCb}}}DBh}{{{b{DN`}}{b{dCb}}}DBh}{{{b{DNb}}{b{dCb}}}DBh}{{{b{DNd}}{b{dCb}}}DBh}{{{b{DNf}}{b{dCb}}}DBh}{{{b{DNh}}{b{dCb}}}DBh}{{{b{DNj}}{b{dCb}}}DBh}{{{b{DNl}}{b{dCb}}}DBh}{{{b{DNn}}{b{dCb}}}DBh}{{{b{DO`}}{b{dCb}}}DBh}{{{b{DOb}}{b{dCb}}}DBh}{{{b{DOd}}{b{dCb}}}DBh}{{{b{DOf}}{b{dCb}}}DBh}{{{b{DOh}}{b{dCb}}}DBh}{{{b{DOj}}{b{dCb}}}DBh}{{{b{DOl}}{b{dCb}}}DBh}{{{b{DOn}}{b{dCb}}}DBh}{{{b{E@`}}{b{dCb}}}DBh}{{{b{E@b}}{b{dCb}}}DBh}{{{b{E@d}}{b{dCb}}}DBh}{{{b{E@f}}{b{dCb}}}DBh}{{{b{E@h}}{b{dCb}}}DBh}{{{b{E@j}}{b{dCb}}}DBh}{{{b{E@l}}{b{dCb}}}DBh}{{{b{E@n}}{b{dCb}}}DBh}{{{b{EA`}}{b{dCb}}}DBh}{{{b{EAb}}{b{dCb}}}DBh}{{{b{EAd}}{b{dCb}}}DBh}{{{b{EAf}}{b{dCb}}}DBh}{{{b{EAh}}{b{dCb}}}DBh}{{{b{EAj}}{b{dCb}}}DBh}{{{b{EAl}}{b{dCb}}}DBh}{{{b{EAn}}{b{dCb}}}DBh}{{{b{EB`}}{b{dCb}}}DBh}{{{b{EBb}}{b{dCb}}}DBh}{{{b{EBd}}{b{dCb}}}DBh}{{{b{EBf}}{b{dCb}}}DBh}{{{b{EBh}}{b{dCb}}}DBh}{{{b{EBj}}{b{dCb}}}DBh}{{{b{EBl}}{b{dCb}}}DBh}{{{b{EBn}}{b{dCb}}}DBh}{{{b{EC`}}{b{dCb}}}DBh}{{{b{ECb}}{b{dCb}}}DBh}{{{b{ECd}}{b{dCb}}}DBh}{{{b{ECf}}{b{dCb}}}DBh}{{{b{ECh}}{b{dCb}}}DBh}{{{b{ECj}}{b{dCb}}}DBh}{{{b{ECl}}{b{dCb}}}DBh}{{{b{ECn}}{b{dCb}}}DBh}{{{b{ED`}}{b{dCb}}}DBh}{{{b{EDb}}{b{dCb}}}DBh}{{{b{EDd}}{b{dCb}}}DBh}{{{b{EDf}}{b{dCb}}}DBh}{{{b{EDh}}{b{dCb}}}DBh}{{{b{EDj}}{b{dCb}}}DBh}{{{b{EDl}}{b{dCb}}}DBh}{{{b{EDn}}{b{dCb}}}DBh}{{{b{EE`}}{b{dCb}}}DBh}{{{b{EEb}}{b{dCb}}}DBh}{{{b{EEd}}{b{dCb}}}DBh}{{{b{EEf}}{b{dCb}}}DBh}{{{b{EEh}}{b{dCb}}}DBh}{{{b{EEj}}{b{dCb}}}DBh}{{{b{EEl}}{b{dCb}}}DBh}{{{b{EEn}}{b{dCb}}}DBh}{{{b{EF`}}{b{dCb}}}DBh}{{{b{EFb}}{b{dCb}}}DBh}{{{b{EFd}}{b{dCb}}}DBh}{{{b{EFf}}{b{dCb}}}DBh}{{{b{EFh}}{b{dCb}}}DBh}{{{b{EFj}}{b{dCb}}}DBh}{{{b{EFl}}{b{dCb}}}DBh}{{{b{EFn}}{b{dCb}}}DBh}{{{b{EG`}}{b{dCb}}}DBh}{{{b{EGb}}{b{dCb}}}DBh}{{{b{EGd}}{b{dCb}}}DBh}{{{b{EGf}}{b{dCb}}}DBh}{{{b{EGh}}{b{dCb}}}DBh}{{{b{EGj}}{b{dCb}}}DBh}{{{b{EGl}}{b{dCb}}}DBh}{{{b{EGn}}{b{dCb}}}DBh}{{{b{EH`}}{b{dCb}}}DBh}{{{b{EHb}}{b{dCb}}}DBh}{{{b{EHd}}{b{dCb}}}DBh}{{{b{EHf}}{b{dCb}}}DBh}{{{b{EHh}}{b{dCb}}}DBh}{{{b{EHj}}{b{dCb}}}DBh}{{{b{EHl}}{b{dCb}}}DBh}{{{b{EHn}}{b{dCb}}}DBh}{{{b{EI`}}{b{dCb}}}DBh}{{{b{EIb}}{b{dCb}}}DBh}{{{b{EId}}{b{dCb}}}DBh}{{{b{EIf}}{b{dCb}}}DBh}{{{b{EIh}}{b{dCb}}}DBh}{{{b{EIj}}{b{dCb}}}DBh}{{{b{EIl}}{b{dCb}}}DBh}{{{b{EIn}}{b{dCb}}}DBh}{{{b{EJ`}}{b{dCb}}}DBh}{{{b{EJb}}{b{dCb}}}DBh}{{{b{EJd}}{b{dCb}}}DBh}{{{b{EJf}}{b{dCb}}}DBh}{{{b{EJh}}{b{dCb}}}DBh}{{{b{EJj}}{b{dCb}}}DBh}{{{b{EJl}}{b{dCb}}}DBh}{{{b{EJn}}{b{dCb}}}DBh}{{{b{EK`}}{b{dCb}}}DBh}{{{b{EKb}}{b{dCb}}}DBh}{{{b{EKd}}{b{dCb}}}DBh}{{{b{EKf}}{b{dCb}}}DBh}{{{b{EKh}}{b{dCb}}}DBh}{{{b{EKj}}{b{dCb}}}DBh}{{{b{EKl}}{b{dCb}}}DBh}{{{b{EKn}}{b{dCb}}}DBh}{{{b{EL`}}{b{dCb}}}DBh}{{{b{ELb}}{b{dCb}}}DBh}{{{b{ELd}}{b{dCb}}}DBh}{{{b{ELf}}{b{dCb}}}DBh}{{{b{ELh}}{b{dCb}}}DBh}{{{b{ELj}}{b{dCb}}}DBh}{{{b{ELl}}{b{dCb}}}DBh}{{{b{ELn}}{b{dCb}}}DBh}{{{b{EM`}}{b{dCb}}}DBh}{{{b{EMb}}{b{dCb}}}DBh}{{{b{EMd}}{b{dCb}}}DBh}{{{b{EMf}}{b{dCb}}}DBh}{{{b{EMh}}{b{dCb}}}DBh}{{{b{EMj}}{b{dCb}}}DBh}{{{b{EMl}}{b{dCb}}}DBh}{{{b{EMn}}{b{dCb}}}DBh}{{{b{EN`}}{b{dCb}}}DBh}{{{b{ENb}}{b{dCb}}}DBh}{{{b{ENd}}{b{dCb}}}DBh}{{{b{ENf}}{b{dCb}}}DBh}{{{b{ENh}}{b{dCb}}}DBh}{{{b{ENj}}{b{dCb}}}DBh}{{{b{ENl}}{b{dCb}}}DBh}{{{b{ENn}}{b{dCb}}}DBh}{{{b{EO`}}{b{dCb}}}DBh}{{{b{EOb}}{b{dCb}}}DBh}{{{b{EOd}}{b{dCb}}}DBh}{{{b{EOf}}{b{dCb}}}DBh}{{{b{EOh}}{b{dCb}}}DBh}{{{b{EOj}}{b{dCb}}}DBh}{{{b{EOl}}{b{dCb}}}DBh}{{{b{EOn}}{b{dCb}}}DBh}{{{b{F@`}}{b{dCb}}}DBh}{{{b{F@b}}{b{dCb}}}DBh}{{{b{F@d}}{b{dCb}}}DBh}{{{b{F@f}}{b{dCb}}}DBh}{{{b{F@h}}{b{dCb}}}DBh}{{{b{F@j}}{b{dCb}}}DBh}{{{b{F@l}}{b{dCb}}}DBh}{{{b{F@n}}{b{dCb}}}DBh}{{{b{FA`}}{b{dCb}}}DBh}{{{b{FAb}}{b{dCb}}}DBh}{{{b{FAd}}{b{dCb}}}DBh}{{{b{FAf}}{b{dCb}}}DBh}{{{b{FAh}}{b{dCb}}}DBh}{{{b{FAj}}{b{dCb}}}DBh}{{{b{FAl}}{b{dCb}}}DBh}{{{b{FAn}}{b{dCb}}}DBh}{{{b{FB`}}{b{dCb}}}DBh}{{{b{FBb}}{b{dCb}}}DBh}{{{b{FBd}}{b{dCb}}}DBh}{{{b{FBf}}{b{dCb}}}DBh}{{{b{FBh}}{b{dCb}}}DBh}{{{b{FBj}}{b{dCb}}}DBh}{{{b{FBl}}{b{dCb}}}DBh}{{{b{FBn}}{b{dCb}}}DBh}{{{b{FC`}}{b{dCb}}}DBh}{{{b{FCb}}{b{dCb}}}DBh}{{{b{FCd}}{b{dCb}}}DBh}{{{b{DD`}}{b{dCb}}}DBh}0000{{{b{FCf}}{b{dCb}}}DBh}{{{b{FCh}}{b{dCb}}}DBh}{{{b{DDb}}{b{dCb}}}DBh}0000{{{b{FCj}}{b{dCb}}}DBh}{{{b{FCl}}{b{dCb}}}DBh}{{{b{FCn}}{b{dCb}}}DBh}{{{b{FD`}}{b{dCb}}}DBh}{{{b{FDb}}{b{dCb}}}DBh}{{{b{FDd}}{b{dCb}}}DBh}{{{b{FDf}}{b{dCb}}}DBh}{{{b{FDh}}{b{dCb}}}DBh}{{{b{FDj}}{b{dCb}}}DBh}{{{b{FDl}}{b{dCb}}}DBh}{{{b{FDn}}{b{dCb}}}DBh}{{{b{FE`}}{b{dCb}}}DBh}{{{b{DDd}}{b{dCb}}}DBh}0000{{{b{FEb}}{b{dCb}}}DBh}{{{b{DDf}}{b{dCb}}}DBh}0000{{{b{FEd}}{b{dCb}}}DBh}{{{b{FEf}}{b{dCb}}}DBh}{{{b{FEh}}{b{dCb}}}DBh}{{{b{FEj}}{b{dCb}}}DBh}{{{b{FEl}}{b{dCb}}}DBh}{{{b{FEn}}{b{dCb}}}DBh}{{{b{FF`}}{b{dCb}}}DBh}{{{b{FFb}}{b{dCb}}}DBh}{{{b{FFd}}{b{dCb}}}DBh}{{{b{FFf}}{b{dCb}}}DBh}{{{b{DDh}}{b{dCb}}}DBh}0000{{{b{DDj}}{b{dCb}}}DBh}0000{{{b{FFh}}{b{dCb}}}DBh}{{{b{FFj}}{b{dCb}}}DBh}{{{b{FFl}}{b{dCb}}}DBh}{{{b{FFn}}{b{dCb}}}DBh}{{{b{FG`}}{b{dCb}}}DBh}{{{b{FGb}}{b{dCb}}}DBh}{{{b{FGd}}{b{dCb}}}DBh}{{{b{FGf}}{b{dCb}}}DBh}{{{b{FGh}}{b{dCb}}}DBh}{{{b{FGj}}{b{dCb}}}DBh}{{{b{DDl}}{b{dCb}}}DBh}0000{{{b{FGl}}{b{dCb}}}DBh}{{{b{FGn}}{b{dCb}}}DBh}{{{b{FH`}}{b{dCb}}}DBh}{{{b{DDn}}{b{dCb}}}DBh}0000{{{b{DE`}}{b{dCb}}}DBh}0000{{{b{FHb}}{b{dCb}}}DBh}{{{b{FHd}}{b{dCb}}}DBh}{{{b{DEb}}{b{dCb}}}DBh}0000{{{b{FHf}}{b{dCb}}}DBh}{{{b{DEd}}{b{dCb}}}DBh}0000{{{b{FHh}}{b{dCb}}}DBh}{{{b{FHj}}{b{dCb}}}DBh}{{{b{FHl}}{b{dCb}}}DBh}{{{b{DEf}}{b{dCb}}}DBh}0000{{{b{FHn}}{b{dCb}}}DBh}{{{b{DEh}}{b{dCb}}}DBh}0000{{{b{FI`}}{b{dCb}}}DBh}{{{b{DEj}}{b{dCb}}}DBh}0000{{{b{FIb}}{b{dCb}}}DBh}{{{b{FId}}{b{dCb}}}DBh}{{{b{FIf}}{b{dCb}}}DBh}{{{b{FIh}}{b{dCb}}}DBh}{{{b{FIj}}{b{dCb}}}DBh}{{{b{FIl}}{b{dCb}}}DBh}{{{b{FIn}}{b{dCb}}}DBh}{{{b{FJ`}}{b{dCb}}}DBh}{{{b{DEl}}{b{dCb}}}DBh}0000{{{b{FJb}}{b{dCb}}}DBh}{{{b{FJd}}{b{dCb}}}DBh}{{{b{FJf}}{b{dCb}}}DBh}{{{b{FJh}}{b{dCb}}}DBh}{{{b{FJj}}{b{dCb}}}DBh}{{{b{FJl}}{b{dCb}}}DBh}{{{b{FJn}}{b{dCb}}}DBh}{{{b{FK`}}{b{dCb}}}DBh}{{{b{FKb}}{b{dCb}}}DBh}{{{b{FKd}}{b{dCb}}}DBh}{{{b{FKf}}{b{dCb}}}DBh}{{{b{DEn}}{b{dCb}}}DBh}0000{{{b{DF`}}{b{dCb}}}DBh}0000{{{b{DFb}}{b{dCb}}}DBh}0000{{{b{FKh}}{b{dCb}}}DBh}{{{b{FKj}}{b{dCb}}}DBh}{{{b{DFd}}{b{dCb}}}DBh}0000{{{b{FKl}}{b{dCb}}}DBh}{{{b{FKn}}{b{dCb}}}DBh}{{{b{DFf}}{b{dCb}}}DBh}0000{{{b{FL`}}{b{dCb}}}DBh}{{{b{FLb}}{b{dCb}}}DBh}{{{b{FLd}}{b{dCb}}}DBh}{{{b{DFh}}{b{dCb}}}DBh}0000{{{b{FLf}}{b{dCb}}}DBh}{{{b{FLh}}{b{dCb}}}DBh}{{{b{FLj}}{b{dCb}}}DBh}{{{b{FLl}}{b{dCb}}}DBh}{{{b{FLn}}{b{dCb}}}DBh}{{{b{FM`}}{b{dCb}}}DBh}{{{b{FMb}}{b{dCb}}}DBh}{{{b{FMd}}{b{dCb}}}DBh}{{{b{FMf}}{b{dCb}}}DBh}{{{b{FMh}}{b{dCb}}}DBh}{{{b{FMj}}{b{dCb}}}DBh}{{{b{DFj}}{b{dCb}}}DBh}0000{{{b{FMl}}{b{dCb}}}DBh}{{{b{DFl}}{b{dCb}}}DBh}0000{{{b{FMn}}{b{dCb}}}DBh}{{{b{FN`}}{b{dCb}}}DBh}{{{b{FNb}}{b{dCb}}}DBh}{{{b{FNd}}{b{dCb}}}DBh}{{{b{FNf}}{b{dCb}}}DBh}{{{b{FNh}}{b{dCb}}}DBh}{{{b{FNj}}{b{dCb}}}DBh}{{{b{FNl}}{b{dCb}}}DBh}{{{b{FNn}}{b{dCb}}}DBh}{{{b{FO`}}{b{dCb}}}DBh}{{{b{FOb}}{b{dCb}}}DBh}{{{b{FOd}}{b{dCb}}}DBh}{{{b{FOf}}{b{dCb}}}DBh}{{{b{DFn}}{b{dCb}}}DBh}0000{{{b{FOh}}{b{dCb}}}DBh}{{{b{FOj}}{b{dCb}}}DBh}{{{b{FOl}}{b{dCb}}}DBh}{{{b{FOn}}{b{dCb}}}DBh}{{{b{G@`}}{b{dCb}}}DBh}{{{b{G@b}}{b{dCb}}}DBh}{{{b{DG`}}{b{dCb}}}DBh}0000{{{b{G@d}}{b{dCb}}}DBh}{{{b{G@f}}{b{dCb}}}DBh}{{{b{G@h}}{b{dCb}}}DBh}{{{b{G@j}}{b{dCb}}}DBh}{{{b{G@l}}{b{dCb}}}DBh}``````````````{cc{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{Bf{{DBj{DD`}}}}{j{{DBj{DDb}}}}{Bf{{DBj{DDd}}}}{f{{DBj{DDf}}}}{f{{DBj{DDh}}}}{f{{DBj{DDj}}}}{Bf{{DBj{DDl}}}}{j{{DBj{DDn}}}}{f{{DBj{DE`}}}}{j{{DBj{DEb}}}}{Bf{{DBj{DEd}}}}{j{{DBj{DEf}}}}{j{{DBj{DEh}}}}{f{{DBj{DEj}}}}{Bf{{DBj{DEl}}}}{j{{DBj{DEn}}}}{j{{DBj{DF`}}}}{Hl{{DBj{DFb}}}}{Hl{{DBj{DFd}}}}{j{{DBj{DFf}}}}{j{{DBj{DFh}}}}{j{{DBj{DFj}}}}{Bf{{DBj{DFl}}}}{j{{DBj{DFn}}}}{Bf{{DBj{DG`}}}}{BfDD`}{jDDb}{BfDDd}{fDDf}{fDDh}{fDDj}{BfDDl}{jDDn}{fDE`}{jDEb}{BfDEd}{jDEf}{jDEh}{fDEj}{BfDEl}{jDEn}{jDF`}{HlDFb}{HlDFd}{jDFf}{jDFh}{jDFj}{BfDFl}{jDFn}{BfDG`}{BfDD`}{jDDb}{BfDDd}{fDDf}{fDDh}{fDDj}{BfDDl}{jDDn}{fDE`}{jDEb}{BfDEd}{jDEf}{jDEh}{fDEj}{BfDEl}{jDEn}{jDF`}{HlDFb}{HlDFd}{jDFf}{jDFh}{jDFj}{BfDFl}{jDFn}{BfDG`}{DBl{{DBj{FBn}}}}{DBl{{DBj{FC`}}}}{DBl{{DBj{FCb}}}}{DBl{{DBj{FCd}}}}{DBl{{DBj{FCf}}}}{DBl{{DBj{FCh}}}}{DBl{{DBj{FCj}}}}{DBl{{DBj{FCl}}}}{DBl{{DBj{FCn}}}}{DBl{{DBj{FD`}}}}{DBl{{DBj{FDb}}}}{DBl{{DBj{FDd}}}}{DBl{{DBj{FDf}}}}{DBl{{DBj{FDh}}}}{DBl{{DBj{FDj}}}}{DBl{{DBj{FDl}}}}{DBl{{DBj{FDn}}}}{DBl{{DBj{FE`}}}}{DBl{{DBj{FEb}}}}{DBl{{DBj{FEd}}}}{DBl{{DBj{FEf}}}}{DBl{{DBj{FEh}}}}{DBl{{DBj{FEj}}}}{DBl{{DBj{FEl}}}}{DBl{{DBj{FEn}}}}{DBl{{DBj{FF`}}}}{DBl{{DBj{FFb}}}}{DBl{{DBj{FFd}}}}{DBl{{DBj{FFf}}}}{DBl{{DBj{FFh}}}}{DBl{{DBj{FFj}}}}{DBl{{DBj{FFl}}}}{DBl{{DBj{FFn}}}}{DBl{{DBj{FG`}}}}{DBl{{DBj{FGb}}}}{DBl{{DBj{FGd}}}}{DBl{{DBj{FGf}}}}{DBl{{DBj{FGh}}}}{DBl{{DBj{FGj}}}}{DBl{{DBj{FGl}}}}{DBl{{DBj{FGn}}}}{DBl{{DBj{FH`}}}}{DBl{{DBj{FHb}}}}{DBl{{DBj{FHd}}}}{DBl{{DBj{FHf}}}}{DBl{{DBj{FHh}}}}{DBl{{DBj{FHj}}}}{DBl{{DBj{FHl}}}}{DBl{{DBj{FHn}}}}{DBl{{DBj{FI`}}}}{DBl{{DBj{FIb}}}}{DBl{{DBj{FId}}}}{DBl{{DBj{FIf}}}}{DBl{{DBj{FIh}}}}{DBl{{DBj{FIj}}}}{DBl{{DBj{FIl}}}}{DBl{{DBj{FIn}}}}{DBl{{DBj{FJ`}}}}{DBl{{DBj{FJb}}}}{DBl{{DBj{FJd}}}}{DBl{{DBj{FJf}}}}{DBl{{DBj{FJh}}}}{DBl{{DBj{FJj}}}}{DBl{{DBj{FJl}}}}{DBl{{DBj{FJn}}}}{DBl{{DBj{FK`}}}}{DBl{{DBj{FKb}}}}{DBl{{DBj{FKd}}}}{DBl{{DBj{FKf}}}}{DBl{{DBj{FKh}}}}{DBl{{DBj{FKj}}}}{DBl{{DBj{FKl}}}}{DBl{{DBj{FKn}}}}{DBl{{DBj{FL`}}}}{DBl{{DBj{FLb}}}}{DBl{{DBj{FLd}}}}{DBl{{DBj{FLf}}}}{DBl{{DBj{FLh}}}}{DBl{{DBj{FLj}}}}{DBl{{DBj{FLl}}}}{DBl{{DBj{FLn}}}}{DBl{{DBj{FM`}}}}{DBl{{DBj{FMb}}}}{DBl{{DBj{FMd}}}}{DBl{{DBj{FMf}}}}{DBl{{DBj{FMh}}}}{DBl{{DBj{FMj}}}}{DBl{{DBj{FMl}}}}{DBl{{DBj{FMn}}}}{DBl{{DBj{FN`}}}}{DBl{{DBj{FNb}}}}{DBl{{DBj{FNd}}}}{DBl{{DBj{FNf}}}}{DBl{{DBj{FNh}}}}{DBl{{DBj{FNj}}}}{DBl{{DBj{FNl}}}}{DBl{{DBj{FNn}}}}{DBl{{DBj{FO`}}}}{DBl{{DBj{FOb}}}}{DBl{{DBj{FOd}}}}{DBl{{DBj{FOf}}}}{DBl{{DBj{FOh}}}}{DBl{{DBj{FOj}}}}{DBl{{DBj{FOl}}}}{DBl{{DBj{FOn}}}}{DBl{{DBj{G@`}}}}{DBl{{DBj{G@b}}}}{DBl{{DBj{G@d}}}}{DBl{{DBj{G@f}}}}{DBl{{DBj{G@h}}}}{DBl{{DBj{G@j}}}}{DBl{{DBj{G@l}}}}{cDD`{{DBf{}{{DBd{DD`}}}}}}{cDDb{{DBf{}{{DBd{DDb}}}}}}{cDDd{{DBf{}{{DBd{DDd}}}}}}{cDDf{{DBf{}{{DBd{DDf}}}}}}{cDDh{{DBf{}{{DBd{DDh}}}}}}{cDDj{{DBf{}{{DBd{DDj}}}}}}{cDDl{{DBf{}{{DBd{DDl}}}}}}{cDDn{{DBf{}{{DBd{DDn}}}}}}{cDE`{{DBf{}{{DBd{DE`}}}}}}{cDEb{{DBf{}{{DBd{DEb}}}}}}{cDEd{{DBf{}{{DBd{DEd}}}}}}{cDEf{{DBf{}{{DBd{DEf}}}}}}{cDEh{{DBf{}{{DBd{DEh}}}}}}{cDEj{{DBf{}{{DBd{DEj}}}}}}{cDEl{{DBf{}{{DBd{DEl}}}}}}{cDEn{{DBf{}{{DBd{DEn}}}}}}{cDF`{{DBf{}{{DBd{DF`}}}}}}{cDFb{{DBf{}{{DBd{DFb}}}}}}{cDFd{{DBf{}{{DBd{DFd}}}}}}{cDFf{{DBf{}{{DBd{DFf}}}}}}{cDFh{{DBf{}{{DBd{DFh}}}}}}{cDFj{{DBf{}{{DBd{DFj}}}}}}{cDFl{{DBf{}{{DBd{DFl}}}}}}{cDFn{{DBf{}{{DBd{DFn}}}}}}{cDG`{{DBf{}{{DBd{DG`}}}}}}{Hl{{DBj{FBn}}}}{Hl{{DBj{FC`}}}}{Hl{{DBj{FCb}}}}{Hl{{DBj{FCd}}}}{Hl{{DBj{FCf}}}}{Hl{{DBj{FCh}}}}{Hl{{DBj{FCj}}}}{Hl{{DBj{FCl}}}}{Hl{{DBj{FCn}}}}{Hl{{DBj{FD`}}}}{Hl{{DBj{FDb}}}}{Hl{{DBj{FDd}}}}{Hl{{DBj{FDf}}}}{Hl{{DBj{FDh}}}}{Hl{{DBj{FDj}}}}{Hl{{DBj{FDl}}}}{Hl{{DBj{FDn}}}}{Hl{{DBj{FE`}}}}{Hl{{DBj{FEb}}}}{Hl{{DBj{FEd}}}}{Hl{{DBj{FEf}}}}{Hl{{DBj{FEh}}}}{Hl{{DBj{FEj}}}}{Hl{{DBj{FEl}}}}{Hl{{DBj{FEn}}}}{Hl{{DBj{FF`}}}}{Hl{{DBj{FFb}}}}{Hl{{DBj{FFd}}}}{Hl{{DBj{FFf}}}}{Hl{{DBj{FFh}}}}{Hl{{DBj{FFj}}}}{Hl{{DBj{FFl}}}}{Hl{{DBj{FFn}}}}{Hl{{DBj{FG`}}}}{Hl{{DBj{FGb}}}}{Hl{{DBj{FGd}}}}{Hl{{DBj{FGf}}}}{Hl{{DBj{FGh}}}}{Hl{{DBj{FGj}}}}{Hl{{DBj{FGl}}}}{Hl{{DBj{FGn}}}}{Hl{{DBj{FH`}}}}{Hl{{DBj{FHb}}}}{Hl{{DBj{FHd}}}}{Hl{{DBj{FHf}}}}{Hl{{DBj{FHh}}}}{Hl{{DBj{FHj}}}}{Hl{{DBj{FHl}}}}{Hl{{DBj{FHn}}}}{Hl{{DBj{FI`}}}}{Hl{{DBj{FIb}}}}{Hl{{DBj{FId}}}}{Hl{{DBj{FIf}}}}{Hl{{DBj{FIh}}}}{Hl{{DBj{FIj}}}}{Hl{{DBj{FIl}}}}{Hl{{DBj{FIn}}}}{Hl{{DBj{FJ`}}}}{Hl{{DBj{FJb}}}}{Hl{{DBj{FJd}}}}{Hl{{DBj{FJf}}}}{Hl{{DBj{FJh}}}}{Hl{{DBj{FJj}}}}{Hl{{DBj{FJl}}}}{Hl{{DBj{FJn}}}}{Hl{{DBj{FK`}}}}{Hl{{DBj{FKb}}}}{Hl{{DBj{FKd}}}}{Hl{{DBj{FKf}}}}{Hl{{DBj{FKh}}}}{Hl{{DBj{FKj}}}}{Hl{{DBj{FKl}}}}{Hl{{DBj{FKn}}}}{Hl{{DBj{FL`}}}}{Hl{{DBj{FLb}}}}{Hl{{DBj{FLd}}}}{Hl{{DBj{FLf}}}}{Hl{{DBj{FLh}}}}{Hl{{DBj{FLj}}}}{Hl{{DBj{FLl}}}}{Hl{{DBj{FLn}}}}{Hl{{DBj{FM`}}}}{Hl{{DBj{FMb}}}}{Hl{{DBj{FMd}}}}{Hl{{DBj{FMf}}}}{Hl{{DBj{FMh}}}}{Hl{{DBj{FMj}}}}{Hl{{DBj{FMl}}}}{Hl{{DBj{FMn}}}}{Hl{{DBj{FN`}}}}{Hl{{DBj{FNb}}}}{Hl{{DBj{FNd}}}}{Hl{{DBj{FNf}}}}{Hl{{DBj{FNh}}}}{Hl{{DBj{FNj}}}}{Hl{{DBj{FNl}}}}{Hl{{DBj{FNn}}}}{Hl{{DBj{FO`}}}}{Hl{{DBj{FOb}}}}{Hl{{DBj{FOd}}}}{Hl{{DBj{FOf}}}}{Hl{{DBj{FOh}}}}{Hl{{DBj{FOj}}}}{Hl{{DBj{FOl}}}}{Hl{{DBj{FOn}}}}{Hl{{DBj{G@`}}}}{Hl{{DBj{G@b}}}}{Hl{{DBj{G@d}}}}{Hl{{DBj{G@f}}}}{Hl{{DBj{G@h}}}}{Hl{{DBj{G@j}}}}{Hl{{DBj{G@l}}}}``````````````````````````````{{{b{DD`}}{b{dc}}}AjDBn}{{{b{DDb}}{b{dc}}}AjDBn}{{{b{DDd}}{b{dc}}}AjDBn}{{{b{DDf}}{b{dc}}}AjDBn}{{{b{DDh}}{b{dc}}}AjDBn}{{{b{DDj}}{b{dc}}}AjDBn}{{{b{DDl}}{b{dc}}}AjDBn}{{{b{DDn}}{b{dc}}}AjDBn}{{{b{DE`}}{b{dc}}}AjDBn}{{{b{DEb}}{b{dc}}}AjDBn}{{{b{DEd}}{b{dc}}}AjDBn}{{{b{DEf}}{b{dc}}}AjDBn}{{{b{DEh}}{b{dc}}}AjDBn}{{{b{DEj}}{b{dc}}}AjDBn}{{{b{DEl}}{b{dc}}}AjDBn}{{{b{DEn}}{b{dc}}}AjDBn}{{{b{DF`}}{b{dc}}}AjDBn}{{{b{DFb}}{b{dc}}}AjDBn}{{{b{DFd}}{b{dc}}}AjDBn}{{{b{DFf}}{b{dc}}}AjDBn}{{{b{DFh}}{b{dc}}}AjDBn}{{{b{DFj}}{b{dc}}}AjDBn}{{{b{DFl}}{b{dc}}}AjDBn}{{{b{DFn}}{b{dc}}}AjDBn}{{{b{DG`}}{b{dc}}}AjDBn}```````````````````````````````````````````````````````````````{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}``````````````{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}{{{b{DD`}}DD`}C`}{{{b{DDb}}DDb}C`}{{{b{DDd}}DDd}C`}{{{b{DDf}}DDf}C`}{{{b{DDh}}DDh}C`}{{{b{DDj}}DDj}C`}{{{b{DDl}}DDl}C`}{{{b{DDn}}DDn}C`}{{{b{DE`}}DE`}C`}{{{b{DEb}}DEb}C`}{{{b{DEd}}DEd}C`}{{{b{DEf}}DEf}C`}{{{b{DEh}}DEh}C`}{{{b{DEj}}DEj}C`}{{{b{DEl}}DEl}C`}{{{b{DEn}}DEn}C`}{{{b{DF`}}DF`}C`}{{{b{DFb}}DFb}C`}{{{b{DFd}}DFd}C`}{{{b{DFf}}DFf}C`}{{{b{DFh}}DFh}C`}{{{b{DFj}}DFj}C`}{{{b{DFl}}DFl}C`}{{{b{DFn}}DFn}C`}{{{b{DG`}}DG`}C`}`{ce{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{DD`}}}C`}{{{b{DDb}}}C`}{{{b{DDd}}}C`}{{{b{DDf}}}C`}{{{b{DDh}}}C`}{{{b{DDj}}}C`}{{{b{DDl}}}C`}{{{b{DDn}}}C`}{{{b{DE`}}}C`}{{{b{DEb}}}C`}{{{b{DEd}}}C`}{{{b{DEf}}}C`}{{{b{DEh}}}C`}{{{b{DEj}}}C`}{{{b{DEl}}}C`}{{{b{DEn}}}C`}{{{b{DF`}}}C`}{{{b{DFb}}}C`}{{{b{DFd}}}C`}{{{b{DFf}}}C`}{{{b{DFh}}}C`}{{{b{DFj}}}C`}{{{b{DFl}}}C`}{{{b{DFn}}}C`}{{{b{DG`}}}C`}{{{b{DD`}}}C`}{{{b{DDb}}}C`}{{{b{DDd}}}C`}{{{b{DDf}}}C`}{{{b{DDh}}}C`}{{{b{DDj}}}C`}{{{b{DDl}}}C`}{{{b{DDn}}}C`}{{{b{DE`}}}C`}{{{b{DEb}}}C`}{{{b{DEd}}}C`}{{{b{DEf}}}C`}{{{b{DEh}}}C`}{{{b{DEj}}}C`}{{{b{DEl}}}C`}{{{b{DEn}}}C`}{{{b{DF`}}}C`}{{{b{DFb}}}C`}{{{b{DFd}}}C`}{{{b{DFf}}}C`}{{{b{DFh}}}C`}{{{b{DFj}}}C`}{{{b{DFl}}}C`}{{{b{DFn}}}C`}{{{b{DG`}}}C`}```````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{DGb}}}Bf}`{{{b{Al}}}{{Bd{Bf{b{Al}}}}}}{{{b{DGb}}}{{b{Al}}}}```````````````````````````````````````{DD`DD`}{DDbDDb}{DDdDDd}{DDfDDf}{DDhDDh}{DDjDDj}{DDlDDl}{DDnDDn}{DE`DE`}{DEbDEb}{DEdDEd}{DEfDEf}{DEhDEh}{DEjDEj}{DElDEl}{DEnDEn}{DF`DF`}{DFbDFb}{DFdDFd}{DFfDFf}{DFhDFh}{DFjDFj}{DFlDFl}{DFnDFn}{DG`DG`}```````````````````````````````````````````````````````````````````````````````````````````{{AbBf{b{{h{f}}}}}{{Bd{DGbBl}}}}{{{b{DD`}}{b{DD`}}}{{DBj{DBb}}}}{{{b{DDb}}{b{DDb}}}{{DBj{DBb}}}}{{{b{DDd}}{b{DDd}}}{{DBj{DBb}}}}{{{b{DDf}}{b{DDf}}}{{DBj{DBb}}}}{{{b{DDh}}{b{DDh}}}{{DBj{DBb}}}}{{{b{DDj}}{b{DDj}}}{{DBj{DBb}}}}{{{b{DDl}}{b{DDl}}}{{DBj{DBb}}}}{{{b{DDn}}{b{DDn}}}{{DBj{DBb}}}}{{{b{DE`}}{b{DE`}}}{{DBj{DBb}}}}{{{b{DEb}}{b{DEb}}}{{DBj{DBb}}}}{{{b{DEd}}{b{DEd}}}{{DBj{DBb}}}}{{{b{DEf}}{b{DEf}}}{{DBj{DBb}}}}{{{b{DEh}}{b{DEh}}}{{DBj{DBb}}}}{{{b{DEj}}{b{DEj}}}{{DBj{DBb}}}}{{{b{DEl}}{b{DEl}}}{{DBj{DBb}}}}{{{b{DEn}}{b{DEn}}}{{DBj{DBb}}}}{{{b{DF`}}{b{DF`}}}{{DBj{DBb}}}}{{{b{DFb}}{b{DFb}}}{{DBj{DBb}}}}{{{b{DFd}}{b{DFd}}}{{DBj{DBb}}}}{{{b{DFf}}{b{DFf}}}{{DBj{DBb}}}}{{{b{DFh}}{b{DFh}}}{{DBj{DBb}}}}{{{b{DFj}}{b{DFj}}}{{DBj{DBb}}}}{{{b{DFl}}{b{DFl}}}{{DBj{DBb}}}}{{{b{DFn}}{b{DFn}}}{{DBj{DBb}}}}{{{b{DG`}}{b{DG`}}}{{DBj{DBb}}}}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}`````````````````````````````````````````````````````````````````````````````````````````````````{{{b{DGb}}Ab{b{d{h{f}}}}}D`}{{{b{DGd}}Ab{b{d{h{f}}}}}D`}{{{b{DGf}}Ab{b{d{h{f}}}}}D`}{{{b{DGh}}Ab{b{d{h{f}}}}}D`}{{{b{DGj}}Ab{b{d{h{f}}}}}D`}{{{b{DGl}}Ab{b{d{h{f}}}}}D`}{{{b{DGn}}Ab{b{d{h{f}}}}}D`}{{{b{DH`}}Ab{b{d{h{f}}}}}D`}{{{b{DHb}}Ab{b{d{h{f}}}}}D`}{{{b{DHd}}Ab{b{d{h{f}}}}}D`}{{{b{DHf}}Ab{b{d{h{f}}}}}D`}{{{b{DHh}}Ab{b{d{h{f}}}}}D`}{{{b{DHj}}Ab{b{d{h{f}}}}}D`}{{{b{DHl}}Ab{b{d{h{f}}}}}D`}{{{b{DHn}}Ab{b{d{h{f}}}}}D`}{{{b{DI`}}Ab{b{d{h{f}}}}}D`}{{{b{DIb}}Ab{b{d{h{f}}}}}D`}{{{b{DId}}Ab{b{d{h{f}}}}}D`}{{{b{DIf}}Ab{b{d{h{f}}}}}D`}{{{b{DIh}}Ab{b{d{h{f}}}}}D`}{{{b{DIj}}Ab{b{d{h{f}}}}}D`}{{{b{DIl}}Ab{b{d{h{f}}}}}D`}{{{b{DIn}}Ab{b{d{h{f}}}}}D`}{{{b{DJ`}}Ab{b{d{h{f}}}}}D`}{{{b{DJb}}Ab{b{d{h{f}}}}}D`}{{{b{DJd}}Ab{b{d{h{f}}}}}D`}{{{b{DJf}}Ab{b{d{h{f}}}}}D`}{{{b{DJh}}Ab{b{d{h{f}}}}}D`}{{{b{DJj}}Ab{b{d{h{f}}}}}D`}{{{b{DJl}}Ab{b{d{h{f}}}}}D`}{{{b{DJn}}Ab{b{d{h{f}}}}}D`}{{{b{DK`}}Ab{b{d{h{f}}}}}D`}{{{b{DKb}}Ab{b{d{h{f}}}}}D`}{{{b{DKd}}Ab{b{d{h{f}}}}}D`}{{{b{DKf}}Ab{b{d{h{f}}}}}D`}{{{b{DKh}}Ab{b{d{h{f}}}}}D`}{{{b{DKj}}Ab{b{d{h{f}}}}}D`}{{{b{DKl}}Ab{b{d{h{f}}}}}D`}{{{b{DKn}}Ab{b{d{h{f}}}}}D`}{{{b{DL`}}Ab{b{d{h{f}}}}}D`}{{{b{DLb}}Ab{b{d{h{f}}}}}D`}{{{b{DLd}}Ab{b{d{h{f}}}}}D`}{{{b{DLf}}Ab{b{d{h{f}}}}}D`}{{{b{DLh}}Ab{b{d{h{f}}}}}D`}{{{b{DLj}}Ab{b{d{h{f}}}}}D`}{{{b{DLl}}Ab{b{d{h{f}}}}}D`}{{{b{DLn}}Ab{b{d{h{f}}}}}D`}{{{b{DM`}}Ab{b{d{h{f}}}}}D`}{{{b{DMb}}Ab{b{d{h{f}}}}}D`}{{{b{DMd}}Ab{b{d{h{f}}}}}D`}{{{b{DMf}}Ab{b{d{h{f}}}}}D`}{{{b{DMh}}Ab{b{d{h{f}}}}}D`}{{{b{DMj}}Ab{b{d{h{f}}}}}D`}{{{b{DMl}}Ab{b{d{h{f}}}}}D`}{{{b{DMn}}Ab{b{d{h{f}}}}}D`}{{{b{DN`}}Ab{b{d{h{f}}}}}D`}{{{b{DNb}}Ab{b{d{h{f}}}}}D`}{{{b{DNd}}Ab{b{d{h{f}}}}}D`}{{{b{DNf}}Ab{b{d{h{f}}}}}D`}{{{b{DNh}}Ab{b{d{h{f}}}}}D`}{{{b{DNj}}Ab{b{d{h{f}}}}}D`}{{{b{DNl}}Ab{b{d{h{f}}}}}D`}{{{b{DNn}}Ab{b{d{h{f}}}}}D`}{{{b{DO`}}Ab{b{d{h{f}}}}}D`}{{{b{DOb}}Ab{b{d{h{f}}}}}D`}{{{b{DOd}}Ab{b{d{h{f}}}}}D`}{{{b{DOf}}Ab{b{d{h{f}}}}}D`}{{{b{DOh}}Ab{b{d{h{f}}}}}D`}{{{b{DOj}}Ab{b{d{h{f}}}}}D`}{{{b{DOl}}Ab{b{d{h{f}}}}}D`}{{{b{DOn}}Ab{b{d{h{f}}}}}D`}{{{b{E@`}}Ab{b{d{h{f}}}}}D`}{{{b{E@b}}Ab{b{d{h{f}}}}}D`}{{{b{E@d}}Ab{b{d{h{f}}}}}D`}{{{b{E@f}}Ab{b{d{h{f}}}}}D`}{{{b{E@h}}Ab{b{d{h{f}}}}}D`}{{{b{E@j}}Ab{b{d{h{f}}}}}D`}{{{b{E@l}}Ab{b{d{h{f}}}}}D`}{{{b{E@n}}Ab{b{d{h{f}}}}}D`}{{{b{EA`}}Ab{b{d{h{f}}}}}D`}{{{b{EAb}}Ab{b{d{h{f}}}}}D`}{{{b{EAd}}Ab{b{d{h{f}}}}}D`}{{{b{EAf}}Ab{b{d{h{f}}}}}D`}{{{b{EAh}}Ab{b{d{h{f}}}}}D`}{{{b{EAj}}Ab{b{d{h{f}}}}}D`}{{{b{EAl}}Ab{b{d{h{f}}}}}D`}{{{b{EAn}}Ab{b{d{h{f}}}}}D`}{{{b{EB`}}Ab{b{d{h{f}}}}}D`}{{{b{EBb}}Ab{b{d{h{f}}}}}D`}{{{b{EBd}}Ab{b{d{h{f}}}}}D`}{{{b{EBf}}Ab{b{d{h{f}}}}}D`}{{{b{EBh}}Ab{b{d{h{f}}}}}D`}{{{b{EBj}}Ab{b{d{h{f}}}}}D`}{{{b{EBl}}Ab{b{d{h{f}}}}}D`}{{{b{EBn}}Ab{b{d{h{f}}}}}D`}{{{b{EC`}}Ab{b{d{h{f}}}}}D`}{{{b{ECb}}Ab{b{d{h{f}}}}}D`}{{{b{ECd}}Ab{b{d{h{f}}}}}D`}{{{b{ECf}}Ab{b{d{h{f}}}}}D`}{{{b{ECh}}Ab{b{d{h{f}}}}}D`}{{{b{ECj}}Ab{b{d{h{f}}}}}D`}{{{b{ECl}}Ab{b{d{h{f}}}}}D`}{{{b{ECn}}Ab{b{d{h{f}}}}}D`}{{{b{ED`}}Ab{b{d{h{f}}}}}D`}{{{b{EDb}}Ab{b{d{h{f}}}}}D`}{{{b{EDd}}Ab{b{d{h{f}}}}}D`}{{{b{EDf}}Ab{b{d{h{f}}}}}D`}{{{b{EDh}}Ab{b{d{h{f}}}}}D`}{{{b{EDj}}Ab{b{d{h{f}}}}}D`}{{{b{EDl}}Ab{b{d{h{f}}}}}D`}{{{b{EDn}}Ab{b{d{h{f}}}}}D`}{{{b{EE`}}Ab{b{d{h{f}}}}}D`}{{{b{EEb}}Ab{b{d{h{f}}}}}D`}{{{b{EEd}}Ab{b{d{h{f}}}}}D`}{{{b{EEf}}Ab{b{d{h{f}}}}}D`}{{{b{EEh}}Ab{b{d{h{f}}}}}D`}{{{b{EEj}}Ab{b{d{h{f}}}}}D`}{{{b{EEl}}Ab{b{d{h{f}}}}}D`}{{{b{EEn}}Ab{b{d{h{f}}}}}D`}{{{b{EF`}}Ab{b{d{h{f}}}}}D`}{{{b{EFb}}Ab{b{d{h{f}}}}}D`}{{{b{EFd}}Ab{b{d{h{f}}}}}D`}{{{b{EFf}}Ab{b{d{h{f}}}}}D`}{{{b{EFh}}Ab{b{d{h{f}}}}}D`}{{{b{EFj}}Ab{b{d{h{f}}}}}D`}{{{b{EFl}}Ab{b{d{h{f}}}}}D`}{{{b{EFn}}Ab{b{d{h{f}}}}}D`}{{{b{EG`}}Ab{b{d{h{f}}}}}D`}{{{b{EGb}}Ab{b{d{h{f}}}}}D`}{{{b{EGd}}Ab{b{d{h{f}}}}}D`}{{{b{EGf}}Ab{b{d{h{f}}}}}D`}{{{b{EGh}}Ab{b{d{h{f}}}}}D`}{{{b{EGj}}Ab{b{d{h{f}}}}}D`}{{{b{EGl}}Ab{b{d{h{f}}}}}D`}{{{b{EGn}}Ab{b{d{h{f}}}}}D`}{{{b{EH`}}Ab{b{d{h{f}}}}}D`}{{{b{EHb}}Ab{b{d{h{f}}}}}D`}{{{b{EHd}}Ab{b{d{h{f}}}}}D`}{{{b{EHf}}Ab{b{d{h{f}}}}}D`}{{{b{EHh}}Ab{b{d{h{f}}}}}D`}{{{b{EHj}}Ab{b{d{h{f}}}}}D`}{{{b{EHl}}Ab{b{d{h{f}}}}}D`}{{{b{EHn}}Ab{b{d{h{f}}}}}D`}{{{b{EI`}}Ab{b{d{h{f}}}}}D`}{{{b{EIb}}Ab{b{d{h{f}}}}}D`}{{{b{EId}}Ab{b{d{h{f}}}}}D`}{{{b{EIf}}Ab{b{d{h{f}}}}}D`}{{{b{EIh}}Ab{b{d{h{f}}}}}D`}{{{b{EIj}}Ab{b{d{h{f}}}}}D`}{{{b{EIl}}Ab{b{d{h{f}}}}}D`}{{{b{EIn}}Ab{b{d{h{f}}}}}D`}{{{b{EJ`}}Ab{b{d{h{f}}}}}D`}{{{b{EJb}}Ab{b{d{h{f}}}}}D`}{{{b{EJd}}Ab{b{d{h{f}}}}}D`}{{{b{EJf}}Ab{b{d{h{f}}}}}D`}{{{b{EJh}}Ab{b{d{h{f}}}}}D`}{{{b{EJj}}Ab{b{d{h{f}}}}}D`}{{{b{EJl}}Ab{b{d{h{f}}}}}D`}{{{b{EJn}}Ab{b{d{h{f}}}}}D`}{{{b{EK`}}Ab{b{d{h{f}}}}}D`}{{{b{EKb}}Ab{b{d{h{f}}}}}D`}{{{b{EKd}}Ab{b{d{h{f}}}}}D`}{{{b{EKf}}Ab{b{d{h{f}}}}}D`}{{{b{EKh}}Ab{b{d{h{f}}}}}D`}{{{b{EKj}}Ab{b{d{h{f}}}}}D`}{{{b{EKl}}Ab{b{d{h{f}}}}}D`}{{{b{EKn}}Ab{b{d{h{f}}}}}D`}{{{b{EL`}}Ab{b{d{h{f}}}}}D`}{{{b{ELb}}Ab{b{d{h{f}}}}}D`}{{{b{ELd}}Ab{b{d{h{f}}}}}D`}{{{b{ELf}}Ab{b{d{h{f}}}}}D`}{{{b{ELh}}Ab{b{d{h{f}}}}}D`}{{{b{ELj}}Ab{b{d{h{f}}}}}D`}{{{b{ELl}}Ab{b{d{h{f}}}}}D`}{{{b{ELn}}Ab{b{d{h{f}}}}}D`}{{{b{EM`}}Ab{b{d{h{f}}}}}D`}{{{b{EMb}}Ab{b{d{h{f}}}}}D`}{{{b{EMd}}Ab{b{d{h{f}}}}}D`}{{{b{EMf}}Ab{b{d{h{f}}}}}D`}{{{b{EMh}}Ab{b{d{h{f}}}}}D`}{{{b{EMj}}Ab{b{d{h{f}}}}}D`}{{{b{EMl}}Ab{b{d{h{f}}}}}D`}{{{b{EMn}}Ab{b{d{h{f}}}}}D`}{{{b{EN`}}Ab{b{d{h{f}}}}}D`}{{{b{ENb}}Ab{b{d{h{f}}}}}D`}{{{b{ENd}}Ab{b{d{h{f}}}}}D`}{{{b{ENf}}Ab{b{d{h{f}}}}}D`}{{{b{ENh}}Ab{b{d{h{f}}}}}D`}{{{b{ENj}}Ab{b{d{h{f}}}}}D`}{{{b{ENl}}Ab{b{d{h{f}}}}}D`}{{{b{ENn}}Ab{b{d{h{f}}}}}D`}{{{b{EO`}}Ab{b{d{h{f}}}}}D`}{{{b{EOb}}Ab{b{d{h{f}}}}}D`}{{{b{EOd}}Ab{b{d{h{f}}}}}D`}{{{b{EOf}}Ab{b{d{h{f}}}}}D`}{{{b{EOh}}Ab{b{d{h{f}}}}}D`}{{{b{EOj}}Ab{b{d{h{f}}}}}D`}{{{b{EOl}}Ab{b{d{h{f}}}}}D`}{{{b{EOn}}Ab{b{d{h{f}}}}}D`}{{{b{F@`}}Ab{b{d{h{f}}}}}D`}{{{b{F@b}}Ab{b{d{h{f}}}}}D`}{{{b{F@d}}Ab{b{d{h{f}}}}}D`}{{{b{F@f}}Ab{b{d{h{f}}}}}D`}{{{b{F@h}}Ab{b{d{h{f}}}}}D`}{{{b{F@j}}Ab{b{d{h{f}}}}}D`}{{{b{F@l}}Ab{b{d{h{f}}}}}D`}{{{b{F@n}}Ab{b{d{h{f}}}}}D`}{{{b{FA`}}Ab{b{d{h{f}}}}}D`}{{{b{FAb}}Ab{b{d{h{f}}}}}D`}{{{b{FAd}}Ab{b{d{h{f}}}}}D`}{{{b{FAf}}Ab{b{d{h{f}}}}}D`}{{{b{FAh}}Ab{b{d{h{f}}}}}D`}{{{b{FAj}}Ab{b{d{h{f}}}}}D`}{{{b{FAl}}Ab{b{d{h{f}}}}}D`}{{{b{FAn}}Ab{b{d{h{f}}}}}D`}{{{b{FB`}}Ab{b{d{h{f}}}}}D`}{{{b{FBb}}Ab{b{d{h{f}}}}}D`}{{{b{FBd}}Ab{b{d{h{f}}}}}D`}{{{b{FBf}}Ab{b{d{h{f}}}}}D`}{{{b{FBh}}Ab{b{d{h{f}}}}}D`}{{{b{FBj}}Ab{b{d{h{f}}}}}D`}{{{b{FBl}}Ab{b{d{h{f}}}}}D`}`{{{b{DGb}}c}BdDd}{{{b{DGd}}c}BdDd}{{{b{DGf}}c}BdDd}{{{b{DGh}}c}BdDd}{{{b{DGj}}c}BdDd}{{{b{DGl}}c}BdDd}{{{b{DGn}}c}BdDd}{{{b{DH`}}c}BdDd}{{{b{DHb}}c}BdDd}{{{b{DHd}}c}BdDd}{{{b{DHf}}c}BdDd}{{{b{DHh}}c}BdDd}{{{b{DHj}}c}BdDd}{{{b{DHl}}c}BdDd}{{{b{DHn}}c}BdDd}{{{b{DI`}}c}BdDd}{{{b{DIb}}c}BdDd}{{{b{DId}}c}BdDd}{{{b{DIf}}c}BdDd}{{{b{DIh}}c}BdDd}{{{b{DIj}}c}BdDd}{{{b{DIl}}c}BdDd}{{{b{DIn}}c}BdDd}{{{b{DJ`}}c}BdDd}{{{b{DJb}}c}BdDd}{{{b{DJd}}c}BdDd}{{{b{DJf}}c}BdDd}{{{b{DJh}}c}BdDd}{{{b{DJj}}c}BdDd}{{{b{DJl}}c}BdDd}{{{b{DJn}}c}BdDd}{{{b{DK`}}c}BdDd}{{{b{DKb}}c}BdDd}{{{b{DKd}}c}BdDd}{{{b{DKf}}c}BdDd}{{{b{DKh}}c}BdDd}{{{b{DKj}}c}BdDd}{{{b{DKl}}c}BdDd}{{{b{DKn}}c}BdDd}{{{b{DL`}}c}BdDd}{{{b{DLb}}c}BdDd}{{{b{DLd}}c}BdDd}{{{b{DLf}}c}BdDd}{{{b{DLh}}c}BdDd}{{{b{DLj}}c}BdDd}{{{b{DLl}}c}BdDd}{{{b{DLn}}c}BdDd}{{{b{DM`}}c}BdDd}{{{b{DMb}}c}BdDd}{{{b{DMd}}c}BdDd}{{{b{DMf}}c}BdDd}{{{b{DMh}}c}BdDd}{{{b{DMj}}c}BdDd}{{{b{DMl}}c}BdDd}{{{b{DMn}}c}BdDd}{{{b{DN`}}c}BdDd}{{{b{DNb}}c}BdDd}{{{b{DNd}}c}BdDd}{{{b{DNf}}c}BdDd}{{{b{DNh}}c}BdDd}{{{b{DNj}}c}BdDd}{{{b{DNl}}c}BdDd}{{{b{DNn}}c}BdDd}{{{b{DO`}}c}BdDd}{{{b{DOb}}c}BdDd}{{{b{DOd}}c}BdDd}{{{b{DOf}}c}BdDd}{{{b{DOh}}c}BdDd}{{{b{DOj}}c}BdDd}{{{b{DOl}}c}BdDd}{{{b{DOn}}c}BdDd}{{{b{E@`}}c}BdDd}{{{b{E@b}}c}BdDd}{{{b{E@d}}c}BdDd}{{{b{E@f}}c}BdDd}{{{b{E@h}}c}BdDd}{{{b{E@j}}c}BdDd}{{{b{E@l}}c}BdDd}{{{b{E@n}}c}BdDd}{{{b{EA`}}c}BdDd}{{{b{EAb}}c}BdDd}{{{b{EAd}}c}BdDd}{{{b{EAf}}c}BdDd}{{{b{EAh}}c}BdDd}{{{b{EAj}}c}BdDd}{{{b{EAl}}c}BdDd}{{{b{EAn}}c}BdDd}{{{b{EB`}}c}BdDd}{{{b{EBb}}c}BdDd}{{{b{EBd}}c}BdDd}{{{b{EBf}}c}BdDd}{{{b{EBh}}c}BdDd}{{{b{EBj}}c}BdDd}{{{b{EBl}}c}BdDd}{{{b{EBn}}c}BdDd}{{{b{EC`}}c}BdDd}{{{b{ECb}}c}BdDd}{{{b{ECd}}c}BdDd}{{{b{ECf}}c}BdDd}{{{b{ECh}}c}BdDd}{{{b{ECj}}c}BdDd}{{{b{ECl}}c}BdDd}{{{b{ECn}}c}BdDd}{{{b{ED`}}c}BdDd}{{{b{EDb}}c}BdDd}{{{b{EDd}}c}BdDd}{{{b{EDf}}c}BdDd}{{{b{EDh}}c}BdDd}{{{b{EDj}}c}BdDd}{{{b{EDl}}c}BdDd}{{{b{EDn}}c}BdDd}{{{b{EE`}}c}BdDd}{{{b{EEb}}c}BdDd}{{{b{EEd}}c}BdDd}{{{b{EEf}}c}BdDd}{{{b{EEh}}c}BdDd}{{{b{EEj}}c}BdDd}{{{b{EEl}}c}BdDd}{{{b{EEn}}c}BdDd}{{{b{EF`}}c}BdDd}{{{b{EFb}}c}BdDd}{{{b{EFd}}c}BdDd}{{{b{EFf}}c}BdDd}{{{b{EFh}}c}BdDd}{{{b{EFj}}c}BdDd}{{{b{EFl}}c}BdDd}{{{b{EFn}}c}BdDd}{{{b{EG`}}c}BdDd}{{{b{EGb}}c}BdDd}{{{b{EGd}}c}BdDd}{{{b{EGf}}c}BdDd}{{{b{EGh}}c}BdDd}{{{b{EGj}}c}BdDd}{{{b{EGl}}c}BdDd}{{{b{EGn}}c}BdDd}{{{b{EH`}}c}BdDd}{{{b{EHb}}c}BdDd}{{{b{EHd}}c}BdDd}{{{b{EHf}}c}BdDd}{{{b{EHh}}c}BdDd}{{{b{EHj}}c}BdDd}{{{b{EHl}}c}BdDd}{{{b{EHn}}c}BdDd}{{{b{EI`}}c}BdDd}{{{b{EIb}}c}BdDd}{{{b{EId}}c}BdDd}{{{b{EIf}}c}BdDd}{{{b{EIh}}c}BdDd}{{{b{EIj}}c}BdDd}{{{b{EIl}}c}BdDd}{{{b{EIn}}c}BdDd}{{{b{EJ`}}c}BdDd}{{{b{EJb}}c}BdDd}{{{b{EJd}}c}BdDd}{{{b{EJf}}c}BdDd}{{{b{EJh}}c}BdDd}{{{b{EJj}}c}BdDd}{{{b{EJl}}c}BdDd}{{{b{EJn}}c}BdDd}{{{b{EK`}}c}BdDd}{{{b{EKb}}c}BdDd}{{{b{EKd}}c}BdDd}{{{b{EKf}}c}BdDd}{{{b{EKh}}c}BdDd}{{{b{EKj}}c}BdDd}{{{b{EKl}}c}BdDd}{{{b{EKn}}c}BdDd}{{{b{EL`}}c}BdDd}{{{b{ELb}}c}BdDd}{{{b{ELd}}c}BdDd}{{{b{ELf}}c}BdDd}{{{b{ELh}}c}BdDd}{{{b{ELj}}c}BdDd}{{{b{ELl}}c}BdDd}{{{b{ELn}}c}BdDd}{{{b{EM`}}c}BdDd}{{{b{EMb}}c}BdDd}{{{b{EMd}}c}BdDd}{{{b{EMf}}c}BdDd}{{{b{EMh}}c}BdDd}{{{b{EMj}}c}BdDd}{{{b{EMl}}c}BdDd}{{{b{EMn}}c}BdDd}{{{b{EN`}}c}BdDd}{{{b{ENb}}c}BdDd}{{{b{ENd}}c}BdDd}{{{b{ENf}}c}BdDd}{{{b{ENh}}c}BdDd}{{{b{ENj}}c}BdDd}{{{b{ENl}}c}BdDd}{{{b{ENn}}c}BdDd}{{{b{EO`}}c}BdDd}{{{b{EOb}}c}BdDd}{{{b{EOd}}c}BdDd}{{{b{EOf}}c}BdDd}{{{b{EOh}}c}BdDd}{{{b{EOj}}c}BdDd}{{{b{EOl}}c}BdDd}{{{b{EOn}}c}BdDd}{{{b{F@`}}c}BdDd}{{{b{F@b}}c}BdDd}{{{b{F@d}}c}BdDd}{{{b{F@f}}c}BdDd}{{{b{F@h}}c}BdDd}{{{b{F@j}}c}BdDd}{{{b{F@l}}c}BdDd}{{{b{F@n}}c}BdDd}{{{b{FA`}}c}BdDd}{{{b{FAb}}c}BdDd}{{{b{FAd}}c}BdDd}{{{b{FAf}}c}BdDd}{{{b{FAh}}c}BdDd}{{{b{FAj}}c}BdDd}{{{b{FAl}}c}BdDd}{{{b{FAn}}c}BdDd}{{{b{FB`}}c}BdDd}{{{b{FBb}}c}BdDd}{{{b{FBd}}c}BdDd}{{{b{FBf}}c}BdDd}{{{b{FBh}}c}BdDd}{{{b{FBj}}c}BdDd}{{{b{FBl}}c}BdDd}{{{b{FBn}}c}BdDd}{{{b{FC`}}c}BdDd}{{{b{FCb}}c}BdDd}{{{b{FCd}}c}BdDd}{{{b{DD`}}c}BdDd}{{{b{FCf}}c}BdDd}{{{b{FCh}}c}BdDd}{{{b{DDb}}c}BdDd}{{{b{FCj}}c}BdDd}{{{b{FCl}}c}BdDd}{{{b{FCn}}c}BdDd}{{{b{FD`}}c}BdDd}{{{b{FDb}}c}BdDd}{{{b{FDd}}c}BdDd}{{{b{FDf}}c}BdDd}{{{b{FDh}}c}BdDd}{{{b{FDj}}c}BdDd}{{{b{FDl}}c}BdDd}{{{b{FDn}}c}BdDd}{{{b{FE`}}c}BdDd}{{{b{DDd}}c}BdDd}{{{b{FEb}}c}BdDd}{{{b{DDf}}c}BdDd}{{{b{FEd}}c}BdDd}{{{b{FEf}}c}BdDd}{{{b{FEh}}c}BdDd}{{{b{FEj}}c}BdDd}{{{b{FEl}}c}BdDd}{{{b{FEn}}c}BdDd}{{{b{FF`}}c}BdDd}{{{b{FFb}}c}BdDd}{{{b{FFd}}c}BdDd}{{{b{FFf}}c}BdDd}{{{b{DDh}}c}BdDd}{{{b{DDj}}c}BdDd}{{{b{FFh}}c}BdDd}{{{b{FFj}}c}BdDd}{{{b{FFl}}c}BdDd}{{{b{FFn}}c}BdDd}{{{b{FG`}}c}BdDd}{{{b{FGb}}c}BdDd}{{{b{FGd}}c}BdDd}{{{b{FGf}}c}BdDd}{{{b{FGh}}c}BdDd}{{{b{FGj}}c}BdDd}{{{b{DDl}}c}BdDd}{{{b{FGl}}c}BdDd}{{{b{FGn}}c}BdDd}{{{b{FH`}}c}BdDd}{{{b{DDn}}c}BdDd}{{{b{DE`}}c}BdDd}{{{b{FHb}}c}BdDd}{{{b{FHd}}c}BdDd}{{{b{DEb}}c}BdDd}{{{b{FHf}}c}BdDd}{{{b{DEd}}c}BdDd}{{{b{FHh}}c}BdDd}{{{b{FHj}}c}BdDd}{{{b{FHl}}c}BdDd}{{{b{DEf}}c}BdDd}{{{b{FHn}}c}BdDd}{{{b{DEh}}c}BdDd}{{{b{FI`}}c}BdDd}{{{b{DEj}}c}BdDd}{{{b{FIb}}c}BdDd}{{{b{FId}}c}BdDd}{{{b{FIf}}c}BdDd}{{{b{FIh}}c}BdDd}{{{b{FIj}}c}BdDd}{{{b{FIl}}c}BdDd}{{{b{FIn}}c}BdDd}{{{b{FJ`}}c}BdDd}{{{b{DEl}}c}BdDd}{{{b{FJb}}c}BdDd}{{{b{FJd}}c}BdDd}{{{b{FJf}}c}BdDd}{{{b{FJh}}c}BdDd}{{{b{FJj}}c}BdDd}{{{b{FJl}}c}BdDd}{{{b{FJn}}c}BdDd}{{{b{FK`}}c}BdDd}{{{b{FKb}}c}BdDd}{{{b{FKd}}c}BdDd}{{{b{FKf}}c}BdDd}{{{b{DEn}}c}BdDd}{{{b{DF`}}c}BdDd}{{{b{DFb}}c}BdDd}{{{b{FKh}}c}BdDd}{{{b{FKj}}c}BdDd}{{{b{DFd}}c}BdDd}{{{b{FKl}}c}BdDd}{{{b{FKn}}c}BdDd}{{{b{DFf}}c}BdDd}{{{b{FL`}}c}BdDd}{{{b{FLb}}c}BdDd}{{{b{FLd}}c}BdDd}{{{b{DFh}}c}BdDd}{{{b{FLf}}c}BdDd}{{{b{FLh}}c}BdDd}{{{b{FLj}}c}BdDd}{{{b{FLl}}c}BdDd}{{{b{FLn}}c}BdDd}{{{b{FM`}}c}BdDd}{{{b{FMb}}c}BdDd}{{{b{FMd}}c}BdDd}{{{b{FMf}}c}BdDd}{{{b{FMh}}c}BdDd}{{{b{FMj}}c}BdDd}{{{b{DFj}}c}BdDd}{{{b{FMl}}c}BdDd}{{{b{DFl}}c}BdDd}{{{b{FMn}}c}BdDd}{{{b{FN`}}c}BdDd}{{{b{FNb}}c}BdDd}{{{b{FNd}}c}BdDd}{{{b{FNf}}c}BdDd}{{{b{FNh}}c}BdDd}{{{b{FNj}}c}BdDd}{{{b{FNl}}c}BdDd}{{{b{FNn}}c}BdDd}{{{b{FO`}}c}BdDd}{{{b{FOb}}c}BdDd}{{{b{FOd}}c}BdDd}{{{b{FOf}}c}BdDd}{{{b{DFn}}c}BdDd}{{{b{FOh}}c}BdDd}{{{b{FOj}}c}BdDd}{{{b{FOl}}c}BdDd}{{{b{FOn}}c}BdDd}{{{b{G@`}}c}BdDd}{{{b{G@b}}c}BdDd}{{{b{DG`}}c}BdDd}{{{b{G@d}}c}BdDd}{{{b{G@f}}c}BdDd}{{{b{G@h}}c}BdDd}{{{b{G@j}}c}BdDd}{{{b{G@l}}c}BdDd}````````{{{b{dDD`}}DD`C`}Aj}{{{b{dDDb}}DDbC`}Aj}{{{b{dDDd}}DDdC`}Aj}{{{b{dDDf}}DDfC`}Aj}{{{b{dDDh}}DDhC`}Aj}{{{b{dDDj}}DDjC`}Aj}{{{b{dDDl}}DDlC`}Aj}{{{b{dDDn}}DDnC`}Aj}{{{b{dDE`}}DE`C`}Aj}{{{b{dDEb}}DEbC`}Aj}{{{b{dDEd}}DEdC`}Aj}{{{b{dDEf}}DEfC`}Aj}{{{b{dDEh}}DEhC`}Aj}{{{b{dDEj}}DEjC`}Aj}{{{b{dDEl}}DElC`}Aj}{{{b{dDEn}}DEnC`}Aj}{{{b{dDF`}}DF`C`}Aj}{{{b{dDFb}}DFbC`}Aj}{{{b{dDFd}}DFdC`}Aj}{{{b{dDFf}}DFfC`}Aj}{{{b{dDFh}}DFhC`}Aj}{{{b{dDFj}}DFjC`}Aj}{{{b{dDFl}}DFlC`}Aj}{{{b{dDFn}}DFnC`}Aj}{{{b{dDG`}}DG`C`}Aj}````````````````````````````````````````{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}`````{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{FBn}}}{{DBj{DBl}}}}{{{b{FC`}}}{{DBj{DBl}}}}{{{b{FCb}}}{{DBj{DBl}}}}{{{b{FCd}}}{{DBj{DBl}}}}{{{b{FCf}}}{{DBj{DBl}}}}{{{b{FCh}}}{{DBj{DBl}}}}{{{b{FCj}}}{{DBj{DBl}}}}{{{b{FCl}}}{{DBj{DBl}}}}{{{b{FCn}}}{{DBj{DBl}}}}{{{b{FD`}}}{{DBj{DBl}}}}{{{b{FDb}}}{{DBj{DBl}}}}{{{b{FDd}}}{{DBj{DBl}}}}{{{b{FDf}}}{{DBj{DBl}}}}{{{b{FDh}}}{{DBj{DBl}}}}{{{b{FDj}}}{{DBj{DBl}}}}{{{b{FDl}}}{{DBj{DBl}}}}{{{b{FDn}}}{{DBj{DBl}}}}{{{b{FE`}}}{{DBj{DBl}}}}{{{b{FEb}}}{{DBj{DBl}}}}{{{b{FEd}}}{{DBj{DBl}}}}{{{b{FEf}}}{{DBj{DBl}}}}{{{b{FEh}}}{{DBj{DBl}}}}{{{b{FEj}}}{{DBj{DBl}}}}{{{b{FEl}}}{{DBj{DBl}}}}{{{b{FEn}}}{{DBj{DBl}}}}{{{b{FF`}}}{{DBj{DBl}}}}{{{b{FFb}}}{{DBj{DBl}}}}{{{b{FFd}}}{{DBj{DBl}}}}{{{b{FFf}}}{{DBj{DBl}}}}{{{b{FFh}}}{{DBj{DBl}}}}{{{b{FFj}}}{{DBj{DBl}}}}{{{b{FFl}}}{{DBj{DBl}}}}{{{b{FFn}}}{{DBj{DBl}}}}{{{b{FG`}}}{{DBj{DBl}}}}{{{b{FGb}}}{{DBj{DBl}}}}{{{b{FGd}}}{{DBj{DBl}}}}{{{b{FGf}}}{{DBj{DBl}}}}{{{b{FGh}}}{{DBj{DBl}}}}{{{b{FGj}}}{{DBj{DBl}}}}{{{b{FGl}}}{{DBj{DBl}}}}{{{b{FGn}}}{{DBj{DBl}}}}{{{b{FH`}}}{{DBj{DBl}}}}{{{b{FHb}}}{{DBj{DBl}}}}{{{b{FHd}}}{{DBj{DBl}}}}{{{b{FHf}}}{{DBj{DBl}}}}{{{b{FHh}}}{{DBj{DBl}}}}{{{b{FHj}}}{{DBj{DBl}}}}{{{b{FHl}}}{{DBj{DBl}}}}{{{b{FHn}}}{{DBj{DBl}}}}{{{b{FI`}}}{{DBj{DBl}}}}{{{b{FIb}}}{{DBj{DBl}}}}{{{b{FId}}}{{DBj{DBl}}}}{{{b{FIf}}}{{DBj{DBl}}}}{{{b{FIh}}}{{DBj{DBl}}}}{{{b{FIj}}}{{DBj{DBl}}}}{{{b{FIl}}}{{DBj{DBl}}}}{{{b{FIn}}}{{DBj{DBl}}}}{{{b{FJ`}}}{{DBj{DBl}}}}{{{b{FJb}}}{{DBj{DBl}}}}{{{b{FJd}}}{{DBj{DBl}}}}{{{b{FJf}}}{{DBj{DBl}}}}{{{b{FJh}}}{{DBj{DBl}}}}{{{b{FJj}}}{{DBj{DBl}}}}{{{b{FJl}}}{{DBj{DBl}}}}{{{b{FJn}}}{{DBj{DBl}}}}{{{b{FK`}}}{{DBj{DBl}}}}{{{b{FKb}}}{{DBj{DBl}}}}{{{b{FKd}}}{{DBj{DBl}}}}{{{b{FKf}}}{{DBj{DBl}}}}{{{b{FKh}}}{{DBj{DBl}}}}{{{b{FKj}}}{{DBj{DBl}}}}{{{b{FKl}}}{{DBj{DBl}}}}{{{b{FKn}}}{{DBj{DBl}}}}{{{b{FL`}}}{{DBj{DBl}}}}{{{b{FLb}}}{{DBj{DBl}}}}{{{b{FLd}}}{{DBj{DBl}}}}{{{b{FLf}}}{{DBj{DBl}}}}{{{b{FLh}}}{{DBj{DBl}}}}{{{b{FLj}}}{{DBj{DBl}}}}{{{b{FLl}}}{{DBj{DBl}}}}{{{b{FLn}}}{{DBj{DBl}}}}{{{b{FM`}}}{{DBj{DBl}}}}{{{b{FMb}}}{{DBj{DBl}}}}{{{b{FMd}}}{{DBj{DBl}}}}{{{b{FMf}}}{{DBj{DBl}}}}{{{b{FMh}}}{{DBj{DBl}}}}{{{b{FMj}}}{{DBj{DBl}}}}{{{b{FMl}}}{{DBj{DBl}}}}{{{b{FMn}}}{{DBj{DBl}}}}{{{b{FN`}}}{{DBj{DBl}}}}{{{b{FNb}}}{{DBj{DBl}}}}{{{b{FNd}}}{{DBj{DBl}}}}{{{b{FNf}}}{{DBj{DBl}}}}{{{b{FNh}}}{{DBj{DBl}}}}{{{b{FNj}}}{{DBj{DBl}}}}{{{b{FNl}}}{{DBj{DBl}}}}{{{b{FNn}}}{{DBj{DBl}}}}{{{b{FO`}}}{{DBj{DBl}}}}{{{b{FOb}}}{{DBj{DBl}}}}{{{b{FOd}}}{{DBj{DBl}}}}{{{b{FOf}}}{{DBj{DBl}}}}{{{b{FOh}}}{{DBj{DBl}}}}{{{b{FOj}}}{{DBj{DBl}}}}{{{b{FOl}}}{{DBj{DBl}}}}{{{b{FOn}}}{{DBj{DBl}}}}{{{b{G@`}}}{{DBj{DBl}}}}{{{b{G@b}}}{{DBj{DBl}}}}{{{b{G@d}}}{{DBj{DBl}}}}{{{b{G@f}}}{{DBj{DBl}}}}{{{b{G@h}}}{{DBj{DBl}}}}{{{b{G@j}}}{{DBj{DBl}}}}{{{b{G@l}}}{{DBj{DBl}}}}{{{b{c}}}e{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{FBn}}}{{DBj{Hl}}}}{{{b{FC`}}}{{DBj{Hl}}}}{{{b{FCb}}}{{DBj{Hl}}}}{{{b{FCd}}}{{DBj{Hl}}}}{{{b{FCf}}}{{DBj{Hl}}}}{{{b{FCh}}}{{DBj{Hl}}}}{{{b{FCj}}}{{DBj{Hl}}}}{{{b{FCl}}}{{DBj{Hl}}}}{{{b{FCn}}}{{DBj{Hl}}}}{{{b{FD`}}}{{DBj{Hl}}}}{{{b{FDb}}}{{DBj{Hl}}}}{{{b{FDd}}}{{DBj{Hl}}}}{{{b{FDf}}}{{DBj{Hl}}}}{{{b{FDh}}}{{DBj{Hl}}}}{{{b{FDj}}}{{DBj{Hl}}}}{{{b{FDl}}}{{DBj{Hl}}}}{{{b{FDn}}}{{DBj{Hl}}}}{{{b{FE`}}}{{DBj{Hl}}}}{{{b{FEb}}}{{DBj{Hl}}}}{{{b{FEd}}}{{DBj{Hl}}}}{{{b{FEf}}}{{DBj{Hl}}}}{{{b{FEh}}}{{DBj{Hl}}}}{{{b{FEj}}}{{DBj{Hl}}}}{{{b{FEl}}}{{DBj{Hl}}}}{{{b{FEn}}}{{DBj{Hl}}}}{{{b{FF`}}}{{DBj{Hl}}}}{{{b{FFb}}}{{DBj{Hl}}}}{{{b{FFd}}}{{DBj{Hl}}}}{{{b{FFf}}}{{DBj{Hl}}}}{{{b{FFh}}}{{DBj{Hl}}}}{{{b{FFj}}}{{DBj{Hl}}}}{{{b{FFl}}}{{DBj{Hl}}}}{{{b{FFn}}}{{DBj{Hl}}}}{{{b{FG`}}}{{DBj{Hl}}}}{{{b{FGb}}}{{DBj{Hl}}}}{{{b{FGd}}}{{DBj{Hl}}}}{{{b{FGf}}}{{DBj{Hl}}}}{{{b{FGh}}}{{DBj{Hl}}}}{{{b{FGj}}}{{DBj{Hl}}}}{{{b{FGl}}}{{DBj{Hl}}}}{{{b{FGn}}}{{DBj{Hl}}}}{{{b{FH`}}}{{DBj{Hl}}}}{{{b{FHb}}}{{DBj{Hl}}}}{{{b{FHd}}}{{DBj{Hl}}}}{{{b{FHf}}}{{DBj{Hl}}}}{{{b{FHh}}}{{DBj{Hl}}}}{{{b{FHj}}}{{DBj{Hl}}}}{{{b{FHl}}}{{DBj{Hl}}}}{{{b{FHn}}}{{DBj{Hl}}}}{{{b{FI`}}}{{DBj{Hl}}}}{{{b{FIb}}}{{DBj{Hl}}}}{{{b{FId}}}{{DBj{Hl}}}}{{{b{FIf}}}{{DBj{Hl}}}}{{{b{FIh}}}{{DBj{Hl}}}}{{{b{FIj}}}{{DBj{Hl}}}}{{{b{FIl}}}{{DBj{Hl}}}}{{{b{FIn}}}{{DBj{Hl}}}}{{{b{FJ`}}}{{DBj{Hl}}}}{{{b{FJb}}}{{DBj{Hl}}}}{{{b{FJd}}}{{DBj{Hl}}}}{{{b{FJf}}}{{DBj{Hl}}}}{{{b{FJh}}}{{DBj{Hl}}}}{{{b{FJj}}}{{DBj{Hl}}}}{{{b{FJl}}}{{DBj{Hl}}}}{{{b{FJn}}}{{DBj{Hl}}}}{{{b{FK`}}}{{DBj{Hl}}}}{{{b{FKb}}}{{DBj{Hl}}}}{{{b{FKd}}}{{DBj{Hl}}}}{{{b{FKf}}}{{DBj{Hl}}}}{{{b{FKh}}}{{DBj{Hl}}}}{{{b{FKj}}}{{DBj{Hl}}}}{{{b{FKl}}}{{DBj{Hl}}}}{{{b{FKn}}}{{DBj{Hl}}}}{{{b{FL`}}}{{DBj{Hl}}}}{{{b{FLb}}}{{DBj{Hl}}}}{{{b{FLd}}}{{DBj{Hl}}}}{{{b{FLf}}}{{DBj{Hl}}}}{{{b{FLh}}}{{DBj{Hl}}}}{{{b{FLj}}}{{DBj{Hl}}}}{{{b{FLl}}}{{DBj{Hl}}}}{{{b{FLn}}}{{DBj{Hl}}}}{{{b{FM`}}}{{DBj{Hl}}}}{{{b{FMb}}}{{DBj{Hl}}}}{{{b{FMd}}}{{DBj{Hl}}}}{{{b{FMf}}}{{DBj{Hl}}}}{{{b{FMh}}}{{DBj{Hl}}}}{{{b{FMj}}}{{DBj{Hl}}}}{{{b{FMl}}}{{DBj{Hl}}}}{{{b{FMn}}}{{DBj{Hl}}}}{{{b{FN`}}}{{DBj{Hl}}}}{{{b{FNb}}}{{DBj{Hl}}}}{{{b{FNd}}}{{DBj{Hl}}}}{{{b{FNf}}}{{DBj{Hl}}}}{{{b{FNh}}}{{DBj{Hl}}}}{{{b{FNj}}}{{DBj{Hl}}}}{{{b{FNl}}}{{DBj{Hl}}}}{{{b{FNn}}}{{DBj{Hl}}}}{{{b{FO`}}}{{DBj{Hl}}}}{{{b{FOb}}}{{DBj{Hl}}}}{{{b{FOd}}}{{DBj{Hl}}}}{{{b{FOf}}}{{DBj{Hl}}}}{{{b{FOh}}}{{DBj{Hl}}}}{{{b{FOj}}}{{DBj{Hl}}}}{{{b{FOl}}}{{DBj{Hl}}}}{{{b{FOn}}}{{DBj{Hl}}}}{{{b{G@`}}}{{DBj{Hl}}}}{{{b{G@b}}}{{DBj{Hl}}}}{{{b{G@d}}}{{DBj{Hl}}}}{{{b{G@f}}}{{DBj{Hl}}}}{{{b{G@h}}}{{DBj{Hl}}}}{{{b{G@j}}}{{DBj{Hl}}}}{{{b{G@l}}}{{DBj{Hl}}}}{{{b{dDD`}}DD`}Aj}{{{b{dDDb}}DDb}Aj}{{{b{dDDd}}DDd}Aj}{{{b{dDDf}}DDf}Aj}{{{b{dDDh}}DDh}Aj}{{{b{dDDj}}DDj}Aj}{{{b{dDDl}}DDl}Aj}{{{b{dDDn}}DDn}Aj}{{{b{dDE`}}DE`}Aj}{{{b{dDEb}}DEb}Aj}{{{b{dDEd}}DEd}Aj}{{{b{dDEf}}DEf}Aj}{{{b{dDEh}}DEh}Aj}{{{b{dDEj}}DEj}Aj}{{{b{dDEl}}DEl}Aj}{{{b{dDEn}}DEn}Aj}{{{b{dDF`}}DF`}Aj}{{{b{dDFb}}DFb}Aj}{{{b{dDFd}}DFd}Aj}{{{b{dDFf}}DFf}Aj}{{{b{dDFh}}DFh}Aj}{{{b{dDFj}}DFj}Aj}{{{b{dDFl}}DFl}Aj}{{{b{dDFn}}DFn}Aj}{{{b{dDG`}}DG`}Aj}````````{c{{Bd{e}}}{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000```````````{{{b{c}}}Dh{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000```````````{{DD`DD`}DD`}{{DDbDDb}DDb}{{DDdDDd}DDd}{{DDfDDf}DDf}{{DDhDDh}DDh}{{DDjDDj}DDj}{{DDlDDl}DDl}{{DDnDDn}DDn}{{DE`DE`}DE`}{{DEbDEb}DEb}{{DEdDEd}DEd}{{DEfDEf}DEf}{{DEhDEh}DEh}{{DEjDEj}DEj}{{DElDEl}DEl}{{DEnDEn}DEn}{{DF`DF`}DF`}{{DFbDFb}DFb}{{DFdDFd}DFd}{{DFfDFf}DFf}{{DFhDFh}DFh}{{DFjDFj}DFj}{{DFlDFl}DFl}{{DFnDFn}DFn}{{DG`DG`}DG`}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{Bl}}{b{dCb}}}{{Bd{AjCd}}}}0{{{b{Cl}}{b{dCb}}}{{Bd{AjCd}}}}0{{{b{Db}}{b{dCb}}}{{Bd{AjCd}}}}0{cc{}}{BlCl}{BbCl}2{BbDb}3{ce{}{}}00{{{b{c}}}G@n{}}00{c{{Bd{e}}}{}{}}00000{{{b{c}}}Dh{}}00```````````````````````````<<<<<;;;;;{{{b{GA`}}}GA`}{{{b{GAb}}}GAb}{{{b{GAd}}}GAd}{{{b{GAf}}}GAf}{{{b{GAh}}}GAh}{{{b{c}}{b{de}}}Aj{}{}}0000{{}GAb}{{}GAd}{{}GAf}{{}GAh}{Bf{{Bd{GA`{b{Al}}}}}}{{Ab{b{{h{f}}}}}{{Bd{GAbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GAdBl}}}}{c{{Bd{GA`}}}Bn}{c{{Bd{GAb}}}Bn}{c{{Bd{GAd}}}Bn}{c{{Bd{GAf}}}Bn}{c{{Bd{GAh}}}Bn}{{{b{GA`}}{b{GA`}}}C`}{{{b{GAb}}{b{GAb}}}C`}{{{b{GAd}}{b{GAd}}}C`}{{{b{GAf}}{b{GAf}}}C`}{{{b{GAh}}{b{GAh}}}C`}{Bff}{{{b{GA`}}{b{dCb}}}DBh}{{{b{GAb}}{b{dCb}}}DBh}{{{b{GAd}}{b{dCb}}}DBh}{{{b{GAf}}{b{dCb}}}DBh}{{{b{GAh}}{b{dCb}}}DBh}{cc{}}0000{DBl{{DBj{GAf}}}}{DBl{{DBj{GAh}}}}{Hl{{DBj{GAf}}}}{Hl{{DBj{GAh}}}}{ce{}{}}0000`````{{{b{GA`}}}Bf}{{{b{Al}}}{{Bd{Bf{b{Al}}}}}}{{{b{GA`}}}{{b{Al}}}}``````{{AbBf{b{{h{f}}}}}{{Bd{GA`Bl}}}}{{{b{GA`}}Ab{b{d{h{f}}}}}D`}{{{b{GAb}}Ab{b{d{h{f}}}}}D`}{{{b{GAd}}Ab{b{d{h{f}}}}}D`}{{{b{GA`}}c}BdDd}{{{b{GAb}}c}BdDd}{{{b{GAd}}c}BdDd}{{{b{GAf}}c}BdDd}{{{b{GAh}}c}BdDd}`{{{b{GAf}}}{{DBj{DBl}}}}{{{b{GAh}}}{{DBj{DBl}}}}{{{b{c}}}e{}{}}0000{{{b{GAf}}}{{DBj{Hl}}}}{{{b{GAh}}}{{DBj{Hl}}}}{c{{Bd{e}}}{}{}}000000000`````{{{b{c}}}Dh{}}0000`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{d{Ch{c}}}}D`}D`Cn}{cc{}}{ce{}{}}{c{{Ch{c}}}Cn}{{{b{d{Ch{c}}}}D`}{{Bd{{b{{h{f}}}}Cl}}}Cn}0{{{b{d{Ch{c}}}}}{{Bd{fCl}}}Cn}{{{b{d{Ch{c}}}}}{{b{dc}}}Cn}{{{b{d{Ch{c}}}}}{{b{c}}}Cn};;:```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{}GAj}{{}GAl}{{}GAn}{{}GB`}{{}GBb}{{}GBd}{{}GBf}{{}GBh}{{}GBj}{{}GBl}{{}GBn}{{}GC`}{{}GCb}{{}GCd}{{}GCf}{{}GCh}{{}GCj}{{}GCl}{{}GCn}{{}GD`}{{}GDb}{{}GDd}{{}GDf}{{}GDh}{{}GDj}{{}GDl}{{}GDn}{{}GE`}````````````````````````````````````````````````````````````````````````````````````````````````````````{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}``{{{b{GAj}}}j}{{{b{GAl}}}j}{{{b{GAn}}}Bf}{{{b{GB`}}}Bf}{{{b{GBb}}}f}{{{b{GBd}}}j}{{{b{GBf}}}Bf}{{{b{GBh}}}Hl}{{{b{GBj}}}j}{{{b{GBl}}}f}{{{b{GBn}}}j}{{{b{GC`}}}f}{{{b{GCb}}}j}{{{b{GCd}}}f}{{{b{GCf}}}Bf}{{{b{GCh}}}j}{{{b{GCj}}}j}{{{b{GCl}}}Bf}{{{b{GCn}}}Hl}{{{b{GD`}}}j}{{{b{GDb}}}j}{{{b{GDd}}}f}{{{b{GDf}}}j}{{{b{GDh}}}f}{{{b{GDj}}}Bf}{{{b{GDl}}}f}{{{b{GDn}}}j}{{{b{GE`}}}Bf}{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}```````{{{b{c}}}{{b{e}}}{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{dc}}}{{b{de}}}{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000``````````````````````````````````````````````````````````````````````````````````````````{{{b{GEb}}}GEb}{{{b{GEd}}}GEd}{{{b{GEf}}}GEf}{{{b{GEh}}}GEh}{{{b{GEj}}}GEj}{{{b{GEl}}}GEl}{{{b{GEn}}}GEn}{{{b{GF`}}}GF`}{{{b{GFb}}}GFb}{{{b{GFd}}}GFd}{{{b{GFf}}}GFf}{{{b{GFh}}}GFh}{{{b{GFj}}}GFj}{{{b{GFl}}}GFl}{{{b{GFn}}}GFn}{{{b{GG`}}}GG`}{{{b{GGb}}}GGb}{{{b{GGd}}}GGd}{{{b{GGf}}}GGf}{{{b{GGh}}}GGh}{{{b{GGj}}}GGj}{{{b{GGl}}}GGl}{{{b{GGn}}}GGn}{{{b{GH`}}}GH`}{{{b{GHb}}}GHb}{{{b{GHd}}}GHd}{{{b{GHf}}}GHf}{{{b{GHh}}}GHh}{{{b{GHj}}}GHj}{{{b{GHl}}}GHl}{{{b{GHn}}}GHn}{{{b{GI`}}}GI`}{{{b{GIb}}}GIb}{{{b{GId}}}GId}{{{b{GIf}}}GIf}{{{b{GIh}}}GIh}{{{b{GIj}}}GIj}{{{b{GIl}}}GIl}{{{b{GIn}}}GIn}{{{b{GJ`}}}GJ`}{{{b{GJb}}}GJb}{{{b{GJd}}}GJd}{{{b{GJf}}}GJf}{{{b{GJh}}}GJh}{{{b{GJj}}}GJj}{{{b{GJl}}}GJl}{{{b{GJn}}}GJn}{{{b{GK`}}}GK`}{{{b{GKb}}}GKb}{{{b{GKd}}}GKd}{{{b{GKf}}}GKf}{{{b{GKh}}}GKh}{{{b{GKj}}}GKj}{{{b{GKl}}}GKl}{{{b{GKn}}}GKn}{{{b{GL`}}}GL`}{{{b{GLb}}}GLb}{{{b{GLd}}}GLd}{{{b{GLf}}}GLf}{{{b{GLh}}}GLh}{{{b{GLj}}}GLj}{{{b{GLl}}}GLl}{{{b{GLn}}}GLn}{{{b{GM`}}}GM`}{{{b{GMb}}}GMb}{{{b{GMd}}}GMd}{{{b{GMf}}}GMf}{{{b{GMh}}}GMh}{{{b{GMj}}}GMj}{{{b{GMl}}}GMl}{{{b{GMn}}}GMn}{{{b{GN`}}}GN`}{{{b{GNb}}}GNb}{{{b{GNd}}}GNd}{{{b{GNf}}}GNf}{{{b{GNh}}}GNh}{{{b{GNj}}}GNj}{{{b{GNl}}}GNl}{{{b{GNn}}}GNn}{{{b{GO`}}}GO`}{{{b{GOb}}}GOb}{{{b{GOd}}}GOd}{{{b{GOf}}}GOf}{{{b{GOh}}}GOh}{{{b{GOj}}}GOj}{{{b{GOl}}}GOl}{{{b{GOn}}}GOn}{{{b{H@`}}}H@`}{{{b{H@b}}}H@b}{{{b{H@d}}}H@d}{{{b{H@f}}}H@f}{{{b{H@h}}}H@h}{{{b{H@j}}}H@j}{{{b{H@l}}}H@l}{{{b{H@n}}}H@n}{{{b{HA`}}}HA`}{{{b{HAb}}}HAb}{{{b{HAd}}}HAd}{{{b{HAf}}}HAf}{{{b{HAh}}}HAh}{{{b{HAj}}}HAj}{{{b{HAl}}}HAl}{{{b{HAn}}}HAn}{{{b{HB`}}}HB`}{{{b{HBb}}}HBb}{{{b{HBd}}}HBd}{{{b{HBf}}}HBf}{{{b{HBh}}}HBh}{{{b{HBj}}}HBj}{{{b{HBl}}}HBl}{{{b{HBn}}}HBn}{{{b{HC`}}}HC`}{{{b{HCb}}}HCb}{{{b{HCd}}}HCd}{{{b{HCf}}}HCf}{{{b{HCh}}}HCh}{{{b{HCj}}}HCj}{{{b{HCl}}}HCl}{{{b{HCn}}}HCn}{{{b{HD`}}}HD`}{{{b{HDb}}}HDb}{{{b{HDd}}}HDd}{{{b{HDf}}}HDf}{{{b{HDh}}}HDh}{{{b{HDj}}}HDj}{{{b{HDl}}}HDl}{{{b{HDn}}}HDn}{{{b{HE`}}}HE`}{{{b{HEb}}}HEb}{{{b{HEd}}}HEd}{{{b{HEf}}}HEf}{{{b{HEh}}}HEh}{{{b{HEj}}}HEj}{{{b{HEl}}}HEl}{{{b{HEn}}}HEn}{{{b{HF`}}}HF`}{{{b{HFb}}}HFb}{{{b{HFd}}}HFd}{{{b{HFf}}}HFf}{{{b{HFh}}}HFh}{{{b{HFj}}}HFj}{{{b{HFl}}}HFl}{{{b{HFn}}}HFn}{{{b{HG`}}}HG`}{{{b{HGb}}}HGb}{{{b{HGd}}}HGd}{{{b{HGf}}}HGf}{{{b{HGh}}}HGh}{{{b{HGj}}}HGj}{{{b{HGl}}}HGl}{{{b{HGn}}}HGn}{{{b{HH`}}}HH`}{{{b{HHb}}}HHb}{{{b{HHd}}}HHd}{{{b{HHf}}}HHf}{{{b{HHh}}}HHh}{{{b{HHj}}}HHj}{{{b{HHl}}}HHl}{{{b{HHn}}}HHn}{{{b{HI`}}}HI`}{{{b{HIb}}}HIb}{{{b{HId}}}HId}{{{b{HIf}}}HIf}{{{b{HIh}}}HIh}{{{b{HIj}}}HIj}{{{b{HIl}}}HIl}{{{b{HIn}}}HIn}{{{b{HJ`}}}HJ`}{{{b{HJb}}}HJb}{{{b{HJd}}}HJd}{{{b{HJf}}}HJf}{{{b{HJh}}}HJh}{{{b{HJj}}}HJj}{{{b{HJl}}}HJl}{{{b{HJn}}}HJn}{{{b{HK`}}}HK`}{{{b{HKb}}}HKb}{{{b{HKd}}}HKd}{{{b{HKf}}}HKf}{{{b{HKh}}}HKh}{{{b{HKj}}}HKj}{{{b{HKl}}}HKl}{{{b{HKn}}}HKn}{{{b{HL`}}}HL`}{{{b{HLb}}}HLb}{{{b{HLd}}}HLd}{{{b{HLf}}}HLf}{{{b{HLh}}}HLh}{{{b{HLj}}}HLj}{{{b{HLl}}}HLl}{{{b{HLn}}}HLn}{{{b{HM`}}}HM`}{{{b{HMb}}}HMb}{{{b{HMd}}}HMd}{{{b{HMf}}}HMf}{{{b{HMh}}}HMh}{{{b{HMj}}}HMj}{{{b{HMl}}}HMl}{{{b{HMn}}}HMn}{{{b{HN`}}}HN`}{{{b{HNb}}}HNb}{{{b{HNd}}}HNd}{{{b{HNf}}}HNf}{{{b{HNh}}}HNh}{{{b{HNj}}}HNj}{{{b{HNl}}}HNl}{{{b{HNn}}}HNn}{{{b{HO`}}}HO`}{{{b{HOb}}}HOb}{{{b{HOd}}}HOd}{{{b{HOf}}}HOf}{{{b{HOh}}}HOh}{{{b{HOj}}}HOj}{{{b{HOl}}}HOl}{{{b{HOn}}}HOn}{{{b{I@`}}}I@`}{{{b{I@b}}}I@b}{{{b{I@d}}}I@d}{{{b{I@f}}}I@f}{{{b{I@h}}}I@h}{{{b{I@j}}}I@j}{{{b{I@l}}}I@l}{{{b{I@n}}}I@n}{{{b{IA`}}}IA`}{{{b{IAb}}}IAb}{{{b{IAd}}}IAd}{{{b{IAf}}}IAf}{{{b{IAh}}}IAh}{{{b{IAj}}}IAj}{{{b{IAl}}}IAl}{{{b{GAj}}}GAj}{{{b{IAn}}}IAn}{{{b{IB`}}}IB`}{{{b{GAl}}}GAl}{{{b{IBb}}}IBb}{{{b{IBd}}}IBd}{{{b{IBf}}}IBf}{{{b{IBh}}}IBh}{{{b{IBj}}}IBj}{{{b{IBl}}}IBl}{{{b{IBn}}}IBn}{{{b{IC`}}}IC`}{{{b{ICb}}}ICb}{{{b{ICd}}}ICd}{{{b{ICf}}}ICf}{{{b{ICh}}}ICh}{{{b{ICj}}}ICj}{{{b{ICl}}}ICl}{{{b{ICn}}}ICn}{{{b{ID`}}}ID`}{{{b{IDb}}}IDb}{{{b{IDd}}}IDd}{{{b{IDf}}}IDf}{{{b{IDh}}}IDh}{{{b{IDj}}}IDj}{{{b{IDl}}}IDl}{{{b{IDn}}}IDn}{{{b{IE`}}}IE`}{{{b{IEb}}}IEb}{{{b{GAn}}}GAn}{{{b{GB`}}}GB`}{{{b{IEd}}}IEd}{{{b{GBb}}}GBb}{{{b{IEf}}}IEf}{{{b{IEh}}}IEh}{{{b{IEj}}}IEj}{{{b{IEl}}}IEl}{{{b{IEn}}}IEn}{{{b{IF`}}}IF`}{{{b{IFb}}}IFb}{{{b{IFd}}}IFd}{{{b{IFf}}}IFf}{{{b{IFh}}}IFh}{{{b{GBd}}}GBd}{{{b{IFj}}}IFj}{{{b{IFl}}}IFl}{{{b{IFn}}}IFn}{{{b{IG`}}}IG`}{{{b{IGb}}}IGb}{{{b{GBf}}}GBf}{{{b{IGd}}}IGd}{{{b{IGf}}}IGf}{{{b{IGh}}}IGh}{{{b{IGj}}}IGj}{{{b{IGl}}}IGl}{{{b{GBh}}}GBh}{{{b{IGn}}}IGn}{{{b{IH`}}}IH`}{{{b{GBj}}}GBj}{{{b{IHb}}}IHb}{{{b{IHd}}}IHd}{{{b{IHf}}}IHf}{{{b{IHh}}}IHh}{{{b{IHj}}}IHj}{{{b{IHl}}}IHl}{{{b{IHn}}}IHn}{{{b{II`}}}II`}{{{b{IIb}}}IIb}{{{b{IId}}}IId}{{{b{IIf}}}IIf}{{{b{IIh}}}IIh}{{{b{IIj}}}IIj}{{{b{IIl}}}IIl}{{{b{IIn}}}IIn}{{{b{GBl}}}GBl}{{{b{IJ`}}}IJ`}{{{b{GBn}}}GBn}{{{b{IJb}}}IJb}{{{b{IJd}}}IJd}{{{b{IJf}}}IJf}{{{b{GC`}}}GC`}{{{b{IJh}}}IJh}{{{b{IJj}}}IJj}{{{b{IJl}}}IJl}{{{b{IJn}}}IJn}{{{b{IK`}}}IK`}{{{b{IKb}}}IKb}{{{b{IKd}}}IKd}{{{b{IKf}}}IKf}{{{b{IKh}}}IKh}{{{b{IKj}}}IKj}{{{b{IKl}}}IKl}{{{b{IKn}}}IKn}{{{b{IL`}}}IL`}{{{b{ILb}}}ILb}{{{b{GCb}}}GCb}{{{b{ILd}}}ILd}{{{b{GCd}}}GCd}{{{b{GCf}}}GCf}{{{b{ILf}}}ILf}{{{b{ILh}}}ILh}{{{b{ILj}}}ILj}{{{b{GCh}}}GCh}{{{b{ILl}}}ILl}{{{b{ILn}}}ILn}{{{b{IM`}}}IM`}{{{b{GCj}}}GCj}{{{b{GCl}}}GCl}{{{b{IMb}}}IMb}{{{b{GCn}}}GCn}{{{b{GD`}}}GD`}{{{b{GDb}}}GDb}{{{b{GDd}}}GDd}{{{b{IMd}}}IMd}{{{b{IMf}}}IMf}{{{b{IMh}}}IMh}{{{b{IMj}}}IMj}{{{b{IMl}}}IMl}{{{b{IMn}}}IMn}{{{b{GDf}}}GDf}{{{b{IN`}}}IN`}{{{b{GDh}}}GDh}{{{b{INb}}}INb}{{{b{INd}}}INd}{{{b{INf}}}INf}{{{b{INh}}}INh}{{{b{INj}}}INj}{{{b{GDj}}}GDj}{{{b{GDl}}}GDl}{{{b{GDn}}}GDn}{{{b{INl}}}INl}{{{b{INn}}}INn}{{{b{IO`}}}IO`}{{{b{IOb}}}IOb}{{{b{IOd}}}IOd}{{{b{IOf}}}IOf}{{{b{IOh}}}IOh}{{{b{IOj}}}IOj}{{{b{IOl}}}IOl}{{{b{GE`}}}GE`}{{{b{c}}{b{de}}}Aj{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{GAj}}{b{GAj}}}DBb}{{{b{GAl}}{b{GAl}}}DBb}{{{b{GAn}}{b{GAn}}}DBb}{{{b{GB`}}{b{GB`}}}DBb}{{{b{GBb}}{b{GBb}}}DBb}{{{b{GBd}}{b{GBd}}}DBb}{{{b{GBf}}{b{GBf}}}DBb}{{{b{GBh}}{b{GBh}}}DBb}{{{b{GBj}}{b{GBj}}}DBb}{{{b{GBl}}{b{GBl}}}DBb}{{{b{GBn}}{b{GBn}}}DBb}{{{b{GC`}}{b{GC`}}}DBb}{{{b{GCb}}{b{GCb}}}DBb}{{{b{GCd}}{b{GCd}}}DBb}{{{b{GCf}}{b{GCf}}}DBb}{{{b{GCh}}{b{GCh}}}DBb}{{{b{GCj}}{b{GCj}}}DBb}{{{b{GCl}}{b{GCl}}}DBb}{{{b{GCn}}{b{GCn}}}DBb}{{{b{GD`}}{b{GD`}}}DBb}{{{b{GDb}}{b{GDb}}}DBb}{{{b{GDd}}{b{GDd}}}DBb}{{{b{GDf}}{b{GDf}}}DBb}{{{b{GDh}}{b{GDh}}}DBb}{{{b{GDj}}{b{GDj}}}DBb}{{{b{GDl}}{b{GDl}}}DBb}{{{b{GDn}}{b{GDn}}}DBb}{{{b{GE`}}{b{GE`}}}DBb}````````````{GAjGAj}{GAlGAl}{GAnGAn}{GB`GB`}{GBbGBb}{GBdGBd}{GBfGBf}{GBhGBh}{GBjGBj}{GBlGBl}{GBnGBn}{GC`GC`}{GCbGCb}{GCdGCd}{GCfGCf}{GChGCh}{GCjGCj}{GClGCl}{GCnGCn}{GD`GD`}{GDbGDb}{GDdGDd}{GDfGDf}{GDhGDh}{GDjGDj}{GDlGDl}{GDnGDn}{GE`GE`}``{{{b{GAj}}GAj}C`}{{{b{GAl}}GAl}C`}{{{b{GAn}}GAn}C`}{{{b{GB`}}GB`}C`}{{{b{GBb}}GBb}C`}{{{b{GBd}}GBd}C`}{{{b{GBf}}GBf}C`}{{{b{GBh}}GBh}C`}{{{b{GBj}}GBj}C`}{{{b{GBl}}GBl}C`}{{{b{GBn}}GBn}C`}{{{b{GC`}}GC`}C`}{{{b{GCb}}GCb}C`}{{{b{GCd}}GCd}C`}{{{b{GCf}}GCf}C`}{{{b{GCh}}GCh}C`}{{{b{GCj}}GCj}C`}{{{b{GCl}}GCl}C`}{{{b{GCn}}GCn}C`}{{{b{GD`}}GD`}C`}{{{b{GDb}}GDb}C`}{{{b{GDd}}GDd}C`}{{{b{GDf}}GDf}C`}{{{b{GDh}}GDh}C`}{{{b{GDj}}GDj}C`}{{{b{GDl}}GDl}C`}{{{b{GDn}}GDn}C`}{{{b{GE`}}GE`}C`}````````````````````````````````````````````````````````{{}GEd}{{}GEf}{{}GEh}{{}GEj}{{}GEl}{{}GEn}{{}GF`}{{}GFb}{{}GFd}{{}GFf}{{}GFh}{{}GFj}{{}GFl}{{}GFn}{{}GG`}{{}GGb}{{}GGd}{{}GGf}{{}GGh}{{}GGj}{{}GGl}{{}GGn}{{}GH`}{{}GHb}{{}GHd}{{}GHf}{{}GHh}{{}GHj}{{}GHl}{{}GHn}{{}GI`}{{}GIb}{{}GId}{{}GIf}{{}GIh}{{}GIj}{{}GIl}{{}GIn}{{}GJ`}{{}GJb}{{}GJd}{{}GJf}{{}GJh}{{}GJj}{{}GJl}{{}GJn}{{}GK`}{{}GKb}{{}GKd}{{}GKf}{{}GKh}{{}GKj}{{}GKl}{{}GKn}{{}GL`}{{}GLb}{{}GLd}{{}GLf}{{}GLh}{{}GLj}{{}GLl}{{}GLn}{{}GM`}{{}GMb}{{}GMd}{{}GMf}{{}GMh}{{}GMj}{{}GMl}{{}GMn}{{}GN`}{{}GNb}{{}GNd}{{}GNf}{{}GNh}{{}GNj}{{}GNl}{{}GNn}{{}GO`}{{}GOb}{{}GOd}{{}GOf}{{}GOh}{{}GOj}{{}GOl}{{}GOn}{{}H@`}{{}H@b}{{}H@d}{{}H@f}{{}H@h}{{}H@j}{{}H@l}{{}H@n}{{}HA`}{{}HAb}{{}HAd}{{}HAf}{{}HAh}{{}HAj}{{}HAl}{{}HAn}{{}HB`}{{}HBb}{{}HBd}{{}HBf}{{}HBh}{{}HBj}{{}HBl}{{}HBn}{{}HC`}{{}HCb}{{}HCd}{{}HCf}{{}HCh}{{}HCj}{{}HCl}{{}HCn}{{}HD`}{{}HDb}{{}HDd}{{}HDf}{{}HDh}{{}HDj}{{}HDl}{{}HDn}{{}HE`}{{}HEb}{{}HEd}{{}HEf}{{}HEh}{{}HEj}{{}HEl}{{}HEn}{{}HF`}{{}HFb}{{}HFd}{{}HFf}{{}HFh}{{}HFj}{{}HFl}{{}HFn}{{}HG`}{{}HGb}{{}HGd}{{}HGf}{{}HGh}{{}HGj}{{}HGl}{{}HGn}{{}HH`}{{}HHb}{{}HHd}{{}HHf}{{}HHh}{{}HHj}{{}HHl}{{}HHn}{{}HI`}{{}HIb}{{}HId}{{}HIf}{{}HIh}{{}HIj}{{}HIl}{{}HIn}{{}HJ`}{{}HJb}{{}HJd}{{}HJf}{{}HJh}{{}HJj}{{}HJl}{{}HJn}{{}HK`}{{}HKb}{{}HKd}{{}HKf}{{}HKh}{{}HKj}{{}HKl}{{}HKn}{{}HL`}{{}HLb}{{}HLd}{{}HLf}{{}HLh}{{}HLj}{{}HLl}{{}HLn}{{}HM`}{{}HMb}{{}HMd}{{}HMf}{{}HMh}{{}HMj}{{}HMl}{{}HMn}{{}HN`}{{}HNb}{{}HNd}{{}HNf}{{}HNh}{{}HNj}{{}HNl}{{}HNn}{{}HO`}{{}HOb}{{}HOd}{{}HOf}{{}HOh}{{}HOj}{{}HOl}{{}HOn}{{}I@`}{{}I@b}{{}I@d}{{}I@f}{{}I@h}{{}I@j}{{}I@l}{{}I@n}{{}IA`}{{}IAb}{{}IAd}{{}IAf}{{}IAh}{{}IAj}{{}IAl}{{}GAj}{{}IAn}{{}IB`}{{}GAl}{{}IBb}{{}IBd}{{}IBf}{{}IBh}{{}IBj}{{}IBl}{{}IBn}{{}IC`}{{}ICb}{{}ICd}{{}ICf}{{}ICh}{{}ICj}{{}ICl}{{}ICn}{{}ID`}{{}IDb}{{}IDd}{{}IDf}{{}IDh}{{}IDj}{{}IDl}{{}IDn}{{}IE`}{{}IEb}{{}GAn}{{}GB`}{{}IEd}{{}GBb}{{}IEf}{{}IEh}{{}IEj}{{}IEl}{{}IEn}{{}IF`}{{}IFb}{{}IFd}{{}IFf}{{}IFh}{{}GBd}{{}IFj}{{}IFl}{{}IFn}{{}IG`}{{}IGb}{{}GBf}{{}IGd}{{}IGf}{{}IGh}{{}IGj}{{}IGl}{{}GBh}{{}IGn}{{}IH`}{{}GBj}{{}IHb}{{}IHd}{{}IHf}{{}IHh}{{}IHj}{{}IHl}{{}IHn}{{}II`}{{}IIb}{{}IId}{{}IIf}{{}IIh}{{}IIj}{{}IIl}{{}IIn}{{}GBl}{{}IJ`}{{}GBn}{{}IJb}{{}IJd}{{}IJf}{{}GC`}{{}IJh}{{}IJj}{{}IJl}{{}IJn}{{}IK`}{{}IKb}{{}IKd}{{}IKf}{{}IKh}{{}IKj}{{}IKl}{{}IKn}{{}IL`}{{}ILb}{{}GCb}{{}ILd}{{}GCd}{{}GCf}{{}ILf}{{}ILh}{{}ILj}{{}GCh}{{}ILl}{{}ILn}{{}IM`}{{}GCj}{{}GCl}{{}IMb}{{}GCn}{{}GD`}{{}GDb}{{}GDd}{{}IMd}{{}IMf}{{}IMh}{{}IMj}{{}IMl}{{}IMn}{{}GDf}{{}IN`}{{}GDh}{{}INb}{{}INd}{{}INf}{{}INh}{{}INj}{{}GDj}{{}GDl}{{}GDn}{{}INl}{{}INn}{{}IO`}{{}IOb}{{}IOd}{{}IOf}{{}IOh}{{}IOj}{{}IOl}{{}GE`}{Bf{{Bd{GEb{b{Al}}}}}}```{{Ab{b{{h{f}}}}}{{Bd{GEdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GEfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GEhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GEjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GElBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GEnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GF`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GFnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GG`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GGnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GH`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GHnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GI`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GIbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GIdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GIfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GIhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GIjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GIlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GInBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJ`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GJnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GK`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GKnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GL`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GLnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GM`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GMnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GN`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GNnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GO`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{GObBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GOdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GOfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GOhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GOjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GOlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{GOnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@bBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@dBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@fBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@hBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@jBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@lBl}}}}{{Ab{b{{h{f}}}}}{{Bd{H@nBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HA`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HAnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HB`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HBnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HC`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HCbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HCdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HCfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HChBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HCjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HClBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HCnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HD`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HDnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HE`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HEbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HEdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HEfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HEhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HEjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HElBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HEnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HF`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HFnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HG`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HGnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HH`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HHnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HI`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HIbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HIdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HIfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HIhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HIjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HIlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HInBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJ`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HJnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HK`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HKnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HL`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HLnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HM`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HMnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HN`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNbBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HNnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HO`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{HObBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HOdBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HOfBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HOhBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HOjBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HOlBl}}}}{{Ab{b{{h{f}}}}}{{Bd{HOnBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@bBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@dBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@fBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@hBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@jBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@lBl}}}}{{Ab{b{{h{f}}}}}{{Bd{I@nBl}}}}{{Ab{b{{h{f}}}}}{{Bd{IA`Bl}}}}{{Ab{b{{h{f}}}}}{{Bd{IAbBl}}}}{c{{Bd{GEb}}}Bn}{c{{Bd{GEd}}}Bn}{c{{Bd{GEf}}}Bn}{c{{Bd{GEh}}}Bn}{c{{Bd{GEj}}}Bn}{c{{Bd{GEl}}}Bn}{c{{Bd{GEn}}}Bn}{c{{Bd{GF`}}}Bn}{c{{Bd{GFb}}}Bn}{c{{Bd{GFd}}}Bn}{c{{Bd{GFf}}}Bn}{c{{Bd{GFh}}}Bn}{c{{Bd{GFj}}}Bn}{c{{Bd{GFl}}}Bn}{c{{Bd{GFn}}}Bn}{c{{Bd{GG`}}}Bn}{c{{Bd{GGb}}}Bn}{c{{Bd{GGd}}}Bn}{c{{Bd{GGf}}}Bn}{c{{Bd{GGh}}}Bn}{c{{Bd{GGj}}}Bn}{c{{Bd{GGl}}}Bn}{c{{Bd{GGn}}}Bn}{c{{Bd{GH`}}}Bn}{c{{Bd{GHb}}}Bn}{c{{Bd{GHd}}}Bn}{c{{Bd{GHf}}}Bn}{c{{Bd{GHh}}}Bn}{c{{Bd{GHj}}}Bn}{c{{Bd{GHl}}}Bn}{c{{Bd{GHn}}}Bn}{c{{Bd{GI`}}}Bn}{c{{Bd{GIb}}}Bn}{c{{Bd{GId}}}Bn}{c{{Bd{GIf}}}Bn}{c{{Bd{GIh}}}Bn}{c{{Bd{GIj}}}Bn}{c{{Bd{GIl}}}Bn}{c{{Bd{GIn}}}Bn}{c{{Bd{GJ`}}}Bn}{c{{Bd{GJb}}}Bn}{c{{Bd{GJd}}}Bn}{c{{Bd{GJf}}}Bn}{c{{Bd{GJh}}}Bn}{c{{Bd{GJj}}}Bn}{c{{Bd{GJl}}}Bn}{c{{Bd{GJn}}}Bn}{c{{Bd{GK`}}}Bn}{c{{Bd{GKb}}}Bn}{c{{Bd{GKd}}}Bn}{c{{Bd{GKf}}}Bn}{c{{Bd{GKh}}}Bn}{c{{Bd{GKj}}}Bn}{c{{Bd{GKl}}}Bn}{c{{Bd{GKn}}}Bn}{c{{Bd{GL`}}}Bn}{c{{Bd{GLb}}}Bn}{c{{Bd{GLd}}}Bn}{c{{Bd{GLf}}}Bn}{c{{Bd{GLh}}}Bn}{c{{Bd{GLj}}}Bn}{c{{Bd{GLl}}}Bn}{c{{Bd{GLn}}}Bn}{c{{Bd{GM`}}}Bn}{c{{Bd{GMb}}}Bn}{c{{Bd{GMd}}}Bn}{c{{Bd{GMf}}}Bn}{c{{Bd{GMh}}}Bn}{c{{Bd{GMj}}}Bn}{c{{Bd{GMl}}}Bn}{c{{Bd{GMn}}}Bn}{c{{Bd{GN`}}}Bn}{c{{Bd{GNb}}}Bn}{c{{Bd{GNd}}}Bn}{c{{Bd{GNf}}}Bn}{c{{Bd{GNh}}}Bn}{c{{Bd{GNj}}}Bn}{c{{Bd{GNl}}}Bn}{c{{Bd{GNn}}}Bn}{c{{Bd{GO`}}}Bn}{c{{Bd{GOb}}}Bn}{c{{Bd{GOd}}}Bn}{c{{Bd{GOf}}}Bn}{c{{Bd{GOh}}}Bn}{c{{Bd{GOj}}}Bn}{c{{Bd{GOl}}}Bn}{c{{Bd{GOn}}}Bn}{c{{Bd{H@`}}}Bn}{c{{Bd{H@b}}}Bn}{c{{Bd{H@d}}}Bn}{c{{Bd{H@f}}}Bn}{c{{Bd{H@h}}}Bn}{c{{Bd{H@j}}}Bn}{c{{Bd{H@l}}}Bn}{c{{Bd{H@n}}}Bn}{c{{Bd{HA`}}}Bn}{c{{Bd{HAb}}}Bn}{c{{Bd{HAd}}}Bn}{c{{Bd{HAf}}}Bn}{c{{Bd{HAh}}}Bn}{c{{Bd{HAj}}}Bn}{c{{Bd{HAl}}}Bn}{c{{Bd{HAn}}}Bn}{c{{Bd{HB`}}}Bn}{c{{Bd{HBb}}}Bn}{c{{Bd{HBd}}}Bn}{c{{Bd{HBf}}}Bn}{c{{Bd{HBh}}}Bn}{c{{Bd{HBj}}}Bn}{c{{Bd{HBl}}}Bn}{c{{Bd{HBn}}}Bn}{c{{Bd{HC`}}}Bn}{c{{Bd{HCb}}}Bn}{c{{Bd{HCd}}}Bn}{c{{Bd{HCf}}}Bn}{c{{Bd{HCh}}}Bn}{c{{Bd{HCj}}}Bn}{c{{Bd{HCl}}}Bn}{c{{Bd{HCn}}}Bn}{c{{Bd{HD`}}}Bn}{c{{Bd{HDb}}}Bn}{c{{Bd{HDd}}}Bn}{c{{Bd{HDf}}}Bn}{c{{Bd{HDh}}}Bn}{c{{Bd{HDj}}}Bn}{c{{Bd{HDl}}}Bn}{c{{Bd{HDn}}}Bn}{c{{Bd{HE`}}}Bn}{c{{Bd{HEb}}}Bn}{c{{Bd{HEd}}}Bn}{c{{Bd{HEf}}}Bn}{c{{Bd{HEh}}}Bn}{c{{Bd{HEj}}}Bn}{c{{Bd{HEl}}}Bn}{c{{Bd{HEn}}}Bn}{c{{Bd{HF`}}}Bn}{c{{Bd{HFb}}}Bn}{c{{Bd{HFd}}}Bn}{c{{Bd{HFf}}}Bn}{c{{Bd{HFh}}}Bn}{c{{Bd{HFj}}}Bn}{c{{Bd{HFl}}}Bn}{c{{Bd{HFn}}}Bn}{c{{Bd{HG`}}}Bn}{c{{Bd{HGb}}}Bn}{c{{Bd{HGd}}}Bn}{c{{Bd{HGf}}}Bn}{c{{Bd{HGh}}}Bn}{c{{Bd{HGj}}}Bn}{c{{Bd{HGl}}}Bn}{c{{Bd{HGn}}}Bn}{c{{Bd{HH`}}}Bn}{c{{Bd{HHb}}}Bn}{c{{Bd{HHd}}}Bn}{c{{Bd{HHf}}}Bn}{c{{Bd{HHh}}}Bn}{c{{Bd{HHj}}}Bn}{c{{Bd{HHl}}}Bn}{c{{Bd{HHn}}}Bn}{c{{Bd{HI`}}}Bn}{c{{Bd{HIb}}}Bn}{c{{Bd{HId}}}Bn}{c{{Bd{HIf}}}Bn}{c{{Bd{HIh}}}Bn}{c{{Bd{HIj}}}Bn}{c{{Bd{HIl}}}Bn}{c{{Bd{HIn}}}Bn}{c{{Bd{HJ`}}}Bn}{c{{Bd{HJb}}}Bn}{c{{Bd{HJd}}}Bn}{c{{Bd{HJf}}}Bn}{c{{Bd{HJh}}}Bn}{c{{Bd{HJj}}}Bn}{c{{Bd{HJl}}}Bn}{c{{Bd{HJn}}}Bn}{c{{Bd{HK`}}}Bn}{c{{Bd{HKb}}}Bn}{c{{Bd{HKd}}}Bn}{c{{Bd{HKf}}}Bn}{c{{Bd{HKh}}}Bn}{c{{Bd{HKj}}}Bn}{c{{Bd{HKl}}}Bn}{c{{Bd{HKn}}}Bn}{c{{Bd{HL`}}}Bn}{c{{Bd{HLb}}}Bn}{c{{Bd{HLd}}}Bn}{c{{Bd{HLf}}}Bn}{c{{Bd{HLh}}}Bn}{c{{Bd{HLj}}}Bn}{c{{Bd{HLl}}}Bn}{c{{Bd{HLn}}}Bn}{c{{Bd{HM`}}}Bn}{c{{Bd{HMb}}}Bn}{c{{Bd{HMd}}}Bn}{c{{Bd{HMf}}}Bn}{c{{Bd{HMh}}}Bn}{c{{Bd{HMj}}}Bn}{c{{Bd{HMl}}}Bn}{c{{Bd{HMn}}}Bn}{c{{Bd{HN`}}}Bn}{c{{Bd{HNb}}}Bn}{c{{Bd{HNd}}}Bn}{c{{Bd{HNf}}}Bn}{c{{Bd{HNh}}}Bn}{c{{Bd{HNj}}}Bn}{c{{Bd{HNl}}}Bn}{c{{Bd{HNn}}}Bn}{c{{Bd{HO`}}}Bn}{c{{Bd{HOb}}}Bn}{c{{Bd{HOd}}}Bn}{c{{Bd{HOf}}}Bn}{c{{Bd{HOh}}}Bn}{c{{Bd{HOj}}}Bn}{c{{Bd{HOl}}}Bn}{c{{Bd{HOn}}}Bn}{c{{Bd{I@`}}}Bn}{c{{Bd{I@b}}}Bn}{c{{Bd{I@d}}}Bn}{c{{Bd{I@f}}}Bn}{c{{Bd{I@h}}}Bn}{c{{Bd{I@j}}}Bn}{c{{Bd{I@l}}}Bn}{c{{Bd{I@n}}}Bn}{c{{Bd{IA`}}}Bn}{c{{Bd{IAb}}}Bn}{c{{Bd{IAd}}}Bn}{c{{Bd{IAf}}}Bn}{c{{Bd{IAh}}}Bn}{c{{Bd{IAj}}}Bn}{c{{Bd{IAl}}}Bn}{c{{Bd{GAj}}}Bn}{c{{Bd{IAn}}}Bn}{c{{Bd{IB`}}}Bn}{c{{Bd{GAl}}}Bn}{c{{Bd{IBb}}}Bn}{c{{Bd{IBd}}}Bn}{c{{Bd{IBf}}}Bn}{c{{Bd{IBh}}}Bn}{c{{Bd{IBj}}}Bn}{c{{Bd{IBl}}}Bn}{c{{Bd{IBn}}}Bn}{c{{Bd{IC`}}}Bn}{c{{Bd{ICb}}}Bn}{c{{Bd{ICd}}}Bn}{c{{Bd{ICf}}}Bn}{c{{Bd{ICh}}}Bn}{c{{Bd{ICj}}}Bn}{c{{Bd{ICl}}}Bn}{c{{Bd{ICn}}}Bn}{c{{Bd{ID`}}}Bn}{c{{Bd{IDb}}}Bn}{c{{Bd{IDd}}}Bn}{c{{Bd{IDf}}}Bn}{c{{Bd{IDh}}}Bn}{c{{Bd{IDj}}}Bn}{c{{Bd{IDl}}}Bn}{c{{Bd{IDn}}}Bn}{c{{Bd{IE`}}}Bn}{c{{Bd{IEb}}}Bn}{c{{Bd{GAn}}}Bn}{c{{Bd{GB`}}}Bn}{c{{Bd{IEd}}}Bn}{c{{Bd{GBb}}}Bn}{c{{Bd{IEf}}}Bn}{c{{Bd{IEh}}}Bn}{c{{Bd{IEj}}}Bn}{c{{Bd{IEl}}}Bn}{c{{Bd{IEn}}}Bn}{c{{Bd{IF`}}}Bn}{c{{Bd{IFb}}}Bn}{c{{Bd{IFd}}}Bn}{c{{Bd{IFf}}}Bn}{c{{Bd{IFh}}}Bn}{c{{Bd{GBd}}}Bn}{c{{Bd{IFj}}}Bn}{c{{Bd{IFl}}}Bn}{c{{Bd{IFn}}}Bn}{c{{Bd{IG`}}}Bn}{c{{Bd{IGb}}}Bn}{c{{Bd{GBf}}}Bn}{c{{Bd{IGd}}}Bn}{c{{Bd{IGf}}}Bn}{c{{Bd{IGh}}}Bn}{c{{Bd{IGj}}}Bn}{c{{Bd{IGl}}}Bn}{c{{Bd{GBh}}}Bn}{c{{Bd{IGn}}}Bn}{c{{Bd{IH`}}}Bn}{c{{Bd{GBj}}}Bn}{c{{Bd{IHb}}}Bn}{c{{Bd{IHd}}}Bn}{c{{Bd{IHf}}}Bn}{c{{Bd{IHh}}}Bn}{c{{Bd{IHj}}}Bn}{c{{Bd{IHl}}}Bn}{c{{Bd{IHn}}}Bn}{c{{Bd{II`}}}Bn}{c{{Bd{IIb}}}Bn}{c{{Bd{IId}}}Bn}{c{{Bd{IIf}}}Bn}{c{{Bd{IIh}}}Bn}{c{{Bd{IIj}}}Bn}{c{{Bd{IIl}}}Bn}{c{{Bd{IIn}}}Bn}{c{{Bd{GBl}}}Bn}{c{{Bd{IJ`}}}Bn}{c{{Bd{GBn}}}Bn}{c{{Bd{IJb}}}Bn}{c{{Bd{IJd}}}Bn}{c{{Bd{IJf}}}Bn}{c{{Bd{GC`}}}Bn}{c{{Bd{IJh}}}Bn}{c{{Bd{IJj}}}Bn}{c{{Bd{IJl}}}Bn}{c{{Bd{IJn}}}Bn}{c{{Bd{IK`}}}Bn}{c{{Bd{IKb}}}Bn}{c{{Bd{IKd}}}Bn}{c{{Bd{IKf}}}Bn}{c{{Bd{IKh}}}Bn}{c{{Bd{IKj}}}Bn}{c{{Bd{IKl}}}Bn}{c{{Bd{IKn}}}Bn}{c{{Bd{IL`}}}Bn}{c{{Bd{ILb}}}Bn}{c{{Bd{GCb}}}Bn}{c{{Bd{ILd}}}Bn}{c{{Bd{GCd}}}Bn}{c{{Bd{GCf}}}Bn}{c{{Bd{ILf}}}Bn}{c{{Bd{ILh}}}Bn}{c{{Bd{ILj}}}Bn}{c{{Bd{GCh}}}Bn}{c{{Bd{ILl}}}Bn}{c{{Bd{ILn}}}Bn}{c{{Bd{IM`}}}Bn}{c{{Bd{GCj}}}Bn}{c{{Bd{GCl}}}Bn}{c{{Bd{IMb}}}Bn}{c{{Bd{GCn}}}Bn}{c{{Bd{GD`}}}Bn}{c{{Bd{GDb}}}Bn}{c{{Bd{GDd}}}Bn}{c{{Bd{IMd}}}Bn}{c{{Bd{IMf}}}Bn}{c{{Bd{IMh}}}Bn}{c{{Bd{IMj}}}Bn}{c{{Bd{IMl}}}Bn}{c{{Bd{IMn}}}Bn}{c{{Bd{GDf}}}Bn}{c{{Bd{IN`}}}Bn}{c{{Bd{GDh}}}Bn}{c{{Bd{INb}}}Bn}{c{{Bd{INd}}}Bn}{c{{Bd{INf}}}Bn}{c{{Bd{INh}}}Bn}{c{{Bd{INj}}}Bn}{c{{Bd{GDj}}}Bn}{c{{Bd{GDl}}}Bn}{c{{Bd{GDn}}}Bn}{c{{Bd{INl}}}Bn}{c{{Bd{INn}}}Bn}{c{{Bd{IO`}}}Bn}{c{{Bd{IOb}}}Bn}{c{{Bd{IOd}}}Bn}{c{{Bd{IOf}}}Bn}{c{{Bd{IOh}}}Bn}{c{{Bd{IOj}}}Bn}{c{{Bd{IOl}}}Bn}{c{{Bd{GE`}}}Bn}```````````{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}`````````````````{{}GAj}{{}GAl}{{}GAn}{{}GB`}{{}GBb}{{}GBd}{{}GBf}{{}GBh}{{}GBj}{{}GBl}{{}GBn}{{}GC`}{{}GCb}{{}GCd}{{}GCf}{{}GCh}{{}GCj}{{}GCl}{{}GCn}{{}GD`}{{}GDb}{{}GDd}{{}GDf}{{}GDh}{{}GDj}{{}GDl}{{}GDn}{{}GE`}```````````````{{{b{GEb}}{b{GEb}}}C`}{{{b{GEd}}{b{GEd}}}C`}{{{b{GEf}}{b{GEf}}}C`}{{{b{GEh}}{b{GEh}}}C`}{{{b{GEj}}{b{GEj}}}C`}{{{b{GEl}}{b{GEl}}}C`}{{{b{GEn}}{b{GEn}}}C`}{{{b{GF`}}{b{GF`}}}C`}{{{b{GFb}}{b{GFb}}}C`}{{{b{GFd}}{b{GFd}}}C`}{{{b{GFf}}{b{GFf}}}C`}{{{b{GFh}}{b{GFh}}}C`}{{{b{GFj}}{b{GFj}}}C`}{{{b{GFl}}{b{GFl}}}C`}{{{b{GFn}}{b{GFn}}}C`}{{{b{GG`}}{b{GG`}}}C`}{{{b{GGb}}{b{GGb}}}C`}{{{b{GGd}}{b{GGd}}}C`}{{{b{GGf}}{b{GGf}}}C`}{{{b{GGh}}{b{GGh}}}C`}{{{b{GGj}}{b{GGj}}}C`}{{{b{GGl}}{b{GGl}}}C`}{{{b{GGn}}{b{GGn}}}C`}{{{b{GH`}}{b{GH`}}}C`}{{{b{GHb}}{b{GHb}}}C`}{{{b{GHd}}{b{GHd}}}C`}{{{b{GHf}}{b{GHf}}}C`}{{{b{GHh}}{b{GHh}}}C`}{{{b{GHj}}{b{GHj}}}C`}{{{b{GHl}}{b{GHl}}}C`}{{{b{GHn}}{b{GHn}}}C`}{{{b{GI`}}{b{GI`}}}C`}{{{b{GIb}}{b{GIb}}}C`}{{{b{GId}}{b{GId}}}C`}{{{b{GIf}}{b{GIf}}}C`}{{{b{GIh}}{b{GIh}}}C`}{{{b{GIj}}{b{GIj}}}C`}{{{b{GIl}}{b{GIl}}}C`}{{{b{GIn}}{b{GIn}}}C`}{{{b{GJ`}}{b{GJ`}}}C`}{{{b{GJb}}{b{GJb}}}C`}{{{b{GJd}}{b{GJd}}}C`}{{{b{GJf}}{b{GJf}}}C`}{{{b{GJh}}{b{GJh}}}C`}{{{b{GJj}}{b{GJj}}}C`}{{{b{GJl}}{b{GJl}}}C`}{{{b{GJn}}{b{GJn}}}C`}{{{b{GK`}}{b{GK`}}}C`}{{{b{GKb}}{b{GKb}}}C`}{{{b{GKd}}{b{GKd}}}C`}{{{b{GKf}}{b{GKf}}}C`}{{{b{GKh}}{b{GKh}}}C`}{{{b{GKj}}{b{GKj}}}C`}{{{b{GKl}}{b{GKl}}}C`}{{{b{GKn}}{b{GKn}}}C`}{{{b{GL`}}{b{GL`}}}C`}{{{b{GLb}}{b{GLb}}}C`}{{{b{GLd}}{b{GLd}}}C`}{{{b{GLf}}{b{GLf}}}C`}{{{b{GLh}}{b{GLh}}}C`}{{{b{GLj}}{b{GLj}}}C`}{{{b{GLl}}{b{GLl}}}C`}{{{b{GLn}}{b{GLn}}}C`}{{{b{GM`}}{b{GM`}}}C`}{{{b{GMb}}{b{GMb}}}C`}{{{b{GMd}}{b{GMd}}}C`}{{{b{GMf}}{b{GMf}}}C`}{{{b{GMh}}{b{GMh}}}C`}{{{b{GMj}}{b{GMj}}}C`}{{{b{GMl}}{b{GMl}}}C`}{{{b{GMn}}{b{GMn}}}C`}{{{b{GN`}}{b{GN`}}}C`}{{{b{GNb}}{b{GNb}}}C`}{{{b{GNd}}{b{GNd}}}C`}{{{b{GNf}}{b{GNf}}}C`}{{{b{GNh}}{b{GNh}}}C`}{{{b{GNj}}{b{GNj}}}C`}{{{b{GNl}}{b{GNl}}}C`}{{{b{GNn}}{b{GNn}}}C`}{{{b{GO`}}{b{GO`}}}C`}{{{b{GOb}}{b{GOb}}}C`}{{{b{GOd}}{b{GOd}}}C`}{{{b{GOf}}{b{GOf}}}C`}{{{b{GOh}}{b{GOh}}}C`}{{{b{GOj}}{b{GOj}}}C`}{{{b{GOl}}{b{GOl}}}C`}{{{b{GOn}}{b{GOn}}}C`}{{{b{H@`}}{b{H@`}}}C`}{{{b{H@b}}{b{H@b}}}C`}{{{b{H@d}}{b{H@d}}}C`}{{{b{H@f}}{b{H@f}}}C`}{{{b{H@h}}{b{H@h}}}C`}{{{b{H@j}}{b{H@j}}}C`}{{{b{H@l}}{b{H@l}}}C`}{{{b{H@n}}{b{H@n}}}C`}{{{b{HA`}}{b{HA`}}}C`}{{{b{HAb}}{b{HAb}}}C`}{{{b{HAd}}{b{HAd}}}C`}{{{b{HAf}}{b{HAf}}}C`}{{{b{HAh}}{b{HAh}}}C`}{{{b{HAj}}{b{HAj}}}C`}{{{b{HAl}}{b{HAl}}}C`}{{{b{HAn}}{b{HAn}}}C`}{{{b{HB`}}{b{HB`}}}C`}{{{b{HBb}}{b{HBb}}}C`}{{{b{HBd}}{b{HBd}}}C`}{{{b{HBf}}{b{HBf}}}C`}{{{b{HBh}}{b{HBh}}}C`}{{{b{HBj}}{b{HBj}}}C`}{{{b{HBl}}{b{HBl}}}C`}{{{b{HBn}}{b{HBn}}}C`}{{{b{HC`}}{b{HC`}}}C`}{{{b{HCb}}{b{HCb}}}C`}{{{b{HCd}}{b{HCd}}}C`}{{{b{HCf}}{b{HCf}}}C`}{{{b{HCh}}{b{HCh}}}C`}{{{b{HCj}}{b{HCj}}}C`}{{{b{HCl}}{b{HCl}}}C`}{{{b{HCn}}{b{HCn}}}C`}{{{b{HD`}}{b{HD`}}}C`}{{{b{HDb}}{b{HDb}}}C`}{{{b{HDd}}{b{HDd}}}C`}{{{b{HDf}}{b{HDf}}}C`}{{{b{HDh}}{b{HDh}}}C`}{{{b{HDj}}{b{HDj}}}C`}{{{b{HDl}}{b{HDl}}}C`}{{{b{HDn}}{b{HDn}}}C`}{{{b{HE`}}{b{HE`}}}C`}{{{b{HEb}}{b{HEb}}}C`}{{{b{HEd}}{b{HEd}}}C`}{{{b{HEf}}{b{HEf}}}C`}{{{b{HEh}}{b{HEh}}}C`}{{{b{HEj}}{b{HEj}}}C`}{{{b{HEl}}{b{HEl}}}C`}{{{b{HEn}}{b{HEn}}}C`}{{{b{HF`}}{b{HF`}}}C`}{{{b{HFb}}{b{HFb}}}C`}{{{b{HFd}}{b{HFd}}}C`}{{{b{HFf}}{b{HFf}}}C`}{{{b{HFh}}{b{HFh}}}C`}{{{b{HFj}}{b{HFj}}}C`}{{{b{HFl}}{b{HFl}}}C`}{{{b{HFn}}{b{HFn}}}C`}{{{b{HG`}}{b{HG`}}}C`}{{{b{HGb}}{b{HGb}}}C`}{{{b{HGd}}{b{HGd}}}C`}{{{b{HGf}}{b{HGf}}}C`}{{{b{HGh}}{b{HGh}}}C`}{{{b{HGj}}{b{HGj}}}C`}{{{b{HGl}}{b{HGl}}}C`}{{{b{HGn}}{b{HGn}}}C`}{{{b{HH`}}{b{HH`}}}C`}{{{b{HHb}}{b{HHb}}}C`}{{{b{HHd}}{b{HHd}}}C`}{{{b{HHf}}{b{HHf}}}C`}{{{b{HHh}}{b{HHh}}}C`}{{{b{HHj}}{b{HHj}}}C`}{{{b{HHl}}{b{HHl}}}C`}{{{b{HHn}}{b{HHn}}}C`}{{{b{HI`}}{b{HI`}}}C`}{{{b{HIb}}{b{HIb}}}C`}{{{b{HId}}{b{HId}}}C`}{{{b{HIf}}{b{HIf}}}C`}{{{b{HIh}}{b{HIh}}}C`}{{{b{HIj}}{b{HIj}}}C`}{{{b{HIl}}{b{HIl}}}C`}{{{b{HIn}}{b{HIn}}}C`}{{{b{HJ`}}{b{HJ`}}}C`}{{{b{HJb}}{b{HJb}}}C`}{{{b{HJd}}{b{HJd}}}C`}{{{b{HJf}}{b{HJf}}}C`}{{{b{HJh}}{b{HJh}}}C`}{{{b{HJj}}{b{HJj}}}C`}{{{b{HJl}}{b{HJl}}}C`}{{{b{HJn}}{b{HJn}}}C`}{{{b{HK`}}{b{HK`}}}C`}{{{b{HKb}}{b{HKb}}}C`}{{{b{HKd}}{b{HKd}}}C`}{{{b{HKf}}{b{HKf}}}C`}{{{b{HKh}}{b{HKh}}}C`}{{{b{HKj}}{b{HKj}}}C`}{{{b{HKl}}{b{HKl}}}C`}{{{b{HKn}}{b{HKn}}}C`}{{{b{HL`}}{b{HL`}}}C`}{{{b{HLb}}{b{HLb}}}C`}{{{b{HLd}}{b{HLd}}}C`}{{{b{HLf}}{b{HLf}}}C`}{{{b{HLh}}{b{HLh}}}C`}{{{b{HLj}}{b{HLj}}}C`}{{{b{HLl}}{b{HLl}}}C`}{{{b{HLn}}{b{HLn}}}C`}{{{b{HM`}}{b{HM`}}}C`}{{{b{HMb}}{b{HMb}}}C`}{{{b{HMd}}{b{HMd}}}C`}{{{b{HMf}}{b{HMf}}}C`}{{{b{HMh}}{b{HMh}}}C`}{{{b{HMj}}{b{HMj}}}C`}{{{b{HMl}}{b{HMl}}}C`}{{{b{HMn}}{b{HMn}}}C`}{{{b{HN`}}{b{HN`}}}C`}{{{b{HNb}}{b{HNb}}}C`}{{{b{HNd}}{b{HNd}}}C`}{{{b{HNf}}{b{HNf}}}C`}{{{b{HNh}}{b{HNh}}}C`}{{{b{HNj}}{b{HNj}}}C`}{{{b{HNl}}{b{HNl}}}C`}{{{b{HNn}}{b{HNn}}}C`}{{{b{HO`}}{b{HO`}}}C`}{{{b{HOb}}{b{HOb}}}C`}{{{b{HOd}}{b{HOd}}}C`}{{{b{HOf}}{b{HOf}}}C`}{{{b{HOh}}{b{HOh}}}C`}{{{b{HOj}}{b{HOj}}}C`}{{{b{HOl}}{b{HOl}}}C`}{{{b{HOn}}{b{HOn}}}C`}{{{b{I@`}}{b{I@`}}}C`}{{{b{I@b}}{b{I@b}}}C`}{{{b{I@d}}{b{I@d}}}C`}{{{b{I@f}}{b{I@f}}}C`}{{{b{I@h}}{b{I@h}}}C`}{{{b{I@j}}{b{I@j}}}C`}{{{b{I@l}}{b{I@l}}}C`}{{{b{I@n}}{b{I@n}}}C`}{{{b{IA`}}{b{IA`}}}C`}{{{b{IAb}}{b{IAb}}}C`}{{{b{IAd}}{b{IAd}}}C`}{{{b{IAf}}{b{IAf}}}C`}{{{b{IAh}}{b{IAh}}}C`}{{{b{IAj}}{b{IAj}}}C`}{{{b{IAl}}{b{IAl}}}C`}{{{b{GAj}}{b{GAj}}}C`}{{{b{IAn}}{b{IAn}}}C`}{{{b{IB`}}{b{IB`}}}C`}{{{b{GAl}}{b{GAl}}}C`}{{{b{IBb}}{b{IBb}}}C`}{{{b{IBd}}{b{IBd}}}C`}{{{b{IBf}}{b{IBf}}}C`}{{{b{IBh}}{b{IBh}}}C`}{{{b{IBj}}{b{IBj}}}C`}{{{b{IBl}}{b{IBl}}}C`}{{{b{IBn}}{b{IBn}}}C`}{{{b{IC`}}{b{IC`}}}C`}{{{b{ICb}}{b{ICb}}}C`}{{{b{ICd}}{b{ICd}}}C`}{{{b{ICf}}{b{ICf}}}C`}{{{b{ICh}}{b{ICh}}}C`}{{{b{ICj}}{b{ICj}}}C`}{{{b{ICl}}{b{ICl}}}C`}{{{b{ICn}}{b{ICn}}}C`}{{{b{ID`}}{b{ID`}}}C`}{{{b{IDb}}{b{IDb}}}C`}{{{b{IDd}}{b{IDd}}}C`}{{{b{IDf}}{b{IDf}}}C`}{{{b{IDh}}{b{IDh}}}C`}{{{b{IDj}}{b{IDj}}}C`}{{{b{IDl}}{b{IDl}}}C`}{{{b{IDn}}{b{IDn}}}C`}{{{b{IE`}}{b{IE`}}}C`}{{{b{IEb}}{b{IEb}}}C`}{{{b{GAn}}{b{GAn}}}C`}{{{b{GB`}}{b{GB`}}}C`}{{{b{IEd}}{b{IEd}}}C`}{{{b{GBb}}{b{GBb}}}C`}{{{b{IEf}}{b{IEf}}}C`}{{{b{IEh}}{b{IEh}}}C`}{{{b{IEj}}{b{IEj}}}C`}{{{b{IEl}}{b{IEl}}}C`}{{{b{IEn}}{b{IEn}}}C`}{{{b{IF`}}{b{IF`}}}C`}{{{b{IFb}}{b{IFb}}}C`}{{{b{IFd}}{b{IFd}}}C`}{{{b{IFf}}{b{IFf}}}C`}{{{b{IFh}}{b{IFh}}}C`}{{{b{GBd}}{b{GBd}}}C`}{{{b{IFj}}{b{IFj}}}C`}{{{b{IFl}}{b{IFl}}}C`}{{{b{IFn}}{b{IFn}}}C`}{{{b{IG`}}{b{IG`}}}C`}{{{b{IGb}}{b{IGb}}}C`}{{{b{GBf}}{b{GBf}}}C`}{{{b{IGd}}{b{IGd}}}C`}{{{b{IGf}}{b{IGf}}}C`}{{{b{IGh}}{b{IGh}}}C`}{{{b{IGj}}{b{IGj}}}C`}{{{b{IGl}}{b{IGl}}}C`}{{{b{GBh}}{b{GBh}}}C`}{{{b{IGn}}{b{IGn}}}C`}{{{b{IH`}}{b{IH`}}}C`}{{{b{GBj}}{b{GBj}}}C`}{{{b{IHb}}{b{IHb}}}C`}{{{b{IHd}}{b{IHd}}}C`}{{{b{IHf}}{b{IHf}}}C`}{{{b{IHh}}{b{IHh}}}C`}{{{b{IHj}}{b{IHj}}}C`}{{{b{IHl}}{b{IHl}}}C`}{{{b{IHn}}{b{IHn}}}C`}{{{b{II`}}{b{II`}}}C`}{{{b{IIb}}{b{IIb}}}C`}{{{b{IId}}{b{IId}}}C`}{{{b{IIf}}{b{IIf}}}C`}{{{b{IIh}}{b{IIh}}}C`}{{{b{IIj}}{b{IIj}}}C`}{{{b{IIl}}{b{IIl}}}C`}{{{b{IIn}}{b{IIn}}}C`}{{{b{GBl}}{b{GBl}}}C`}{{{b{IJ`}}{b{IJ`}}}C`}{{{b{GBn}}{b{GBn}}}C`}{{{b{IJb}}{b{IJb}}}C`}{{{b{IJd}}{b{IJd}}}C`}{{{b{IJf}}{b{IJf}}}C`}{{{b{GC`}}{b{GC`}}}C`}{{{b{IJh}}{b{IJh}}}C`}{{{b{IJj}}{b{IJj}}}C`}{{{b{IJl}}{b{IJl}}}C`}{{{b{IJn}}{b{IJn}}}C`}{{{b{IK`}}{b{IK`}}}C`}{{{b{IKb}}{b{IKb}}}C`}{{{b{IKd}}{b{IKd}}}C`}{{{b{IKf}}{b{IKf}}}C`}{{{b{IKh}}{b{IKh}}}C`}{{{b{IKj}}{b{IKj}}}C`}{{{b{IKl}}{b{IKl}}}C`}{{{b{IKn}}{b{IKn}}}C`}{{{b{IL`}}{b{IL`}}}C`}{{{b{ILb}}{b{ILb}}}C`}{{{b{GCb}}{b{GCb}}}C`}{{{b{ILd}}{b{ILd}}}C`}{{{b{GCd}}{b{GCd}}}C`}{{{b{GCf}}{b{GCf}}}C`}{{{b{ILf}}{b{ILf}}}C`}{{{b{ILh}}{b{ILh}}}C`}{{{b{ILj}}{b{ILj}}}C`}{{{b{GCh}}{b{GCh}}}C`}{{{b{ILl}}{b{ILl}}}C`}{{{b{ILn}}{b{ILn}}}C`}{{{b{IM`}}{b{IM`}}}C`}{{{b{GCj}}{b{GCj}}}C`}{{{b{GCl}}{b{GCl}}}C`}{{{b{IMb}}{b{IMb}}}C`}{{{b{GCn}}{b{GCn}}}C`}{{{b{GD`}}{b{GD`}}}C`}{{{b{GDb}}{b{GDb}}}C`}{{{b{GDd}}{b{GDd}}}C`}{{{b{IMd}}{b{IMd}}}C`}{{{b{IMf}}{b{IMf}}}C`}{{{b{IMh}}{b{IMh}}}C`}{{{b{IMj}}{b{IMj}}}C`}{{{b{IMl}}{b{IMl}}}C`}{{{b{IMn}}{b{IMn}}}C`}{{{b{GDf}}{b{GDf}}}C`}{{{b{IN`}}{b{IN`}}}C`}{{{b{GDh}}{b{GDh}}}C`}{{{b{INb}}{b{INb}}}C`}{{{b{INd}}{b{INd}}}C`}{{{b{INf}}{b{INf}}}C`}{{{b{INh}}{b{INh}}}C`}{{{b{INj}}{b{INj}}}C`}{{{b{GDj}}{b{GDj}}}C`}{{{b{GDl}}{b{GDl}}}C`}{{{b{GDn}}{b{GDn}}}C`}{{{b{INl}}{b{INl}}}C`}{{{b{INn}}{b{INn}}}C`}{{{b{IO`}}{b{IO`}}}C`}{{{b{IOb}}{b{IOb}}}C`}{{{b{IOd}}{b{IOd}}}C`}{{{b{IOf}}{b{IOf}}}C`}{{{b{IOh}}{b{IOh}}}C`}{{{b{IOj}}{b{IOj}}}C`}{{{b{IOl}}{b{IOl}}}C`}{{{b{GE`}}{b{GE`}}}C`}`````````````{{{b{dGAj}}c}Aj{{DBf{}{{DBd{GAj}}}}}}{{{b{dGAl}}c}Aj{{DBf{}{{DBd{GAl}}}}}}{{{b{dGAn}}c}Aj{{DBf{}{{DBd{GAn}}}}}}{{{b{dGB`}}c}Aj{{DBf{}{{DBd{GB`}}}}}}{{{b{dGBb}}c}Aj{{DBf{}{{DBd{GBb}}}}}}{{{b{dGBd}}c}Aj{{DBf{}{{DBd{GBd}}}}}}{{{b{dGBf}}c}Aj{{DBf{}{{DBd{GBf}}}}}}{{{b{dGBh}}c}Aj{{DBf{}{{DBd{GBh}}}}}}{{{b{dGBj}}c}Aj{{DBf{}{{DBd{GBj}}}}}}{{{b{dGBl}}c}Aj{{DBf{}{{DBd{GBl}}}}}}{{{b{dGBn}}c}Aj{{DBf{}{{DBd{GBn}}}}}}{{{b{dGC`}}c}Aj{{DBf{}{{DBd{GC`}}}}}}{{{b{dGCb}}c}Aj{{DBf{}{{DBd{GCb}}}}}}{{{b{dGCd}}c}Aj{{DBf{}{{DBd{GCd}}}}}}{{{b{dGCf}}c}Aj{{DBf{}{{DBd{GCf}}}}}}{{{b{dGCh}}c}Aj{{DBf{}{{DBd{GCh}}}}}}{{{b{dGCj}}c}Aj{{DBf{}{{DBd{GCj}}}}}}{{{b{dGCl}}c}Aj{{DBf{}{{DBd{GCl}}}}}}{{{b{dGCn}}c}Aj{{DBf{}{{DBd{GCn}}}}}}{{{b{dGD`}}c}Aj{{DBf{}{{DBd{GD`}}}}}}{{{b{dGDb}}c}Aj{{DBf{}{{DBd{GDb}}}}}}{{{b{dGDd}}c}Aj{{DBf{}{{DBd{GDd}}}}}}{{{b{dGDf}}c}Aj{{DBf{}{{DBd{GDf}}}}}}{{{b{dGDh}}c}Aj{{DBf{}{{DBd{GDh}}}}}}{{{b{dGDj}}c}Aj{{DBf{}{{DBd{GDj}}}}}}{{{b{dGDl}}c}Aj{{DBf{}{{DBd{GDl}}}}}}{{{b{dGDn}}c}Aj{{DBf{}{{DBd{GDn}}}}}}{{{b{dGE`}}c}Aj{{DBf{}{{DBd{GE`}}}}}}{Bff}`````````````````````````````````````````````````{{{b{GEb}}{b{dCb}}}DBh}{{{b{GEd}}{b{dCb}}}DBh}{{{b{GEf}}{b{dCb}}}DBh}{{{b{GEh}}{b{dCb}}}DBh}{{{b{GEj}}{b{dCb}}}DBh}{{{b{GEl}}{b{dCb}}}DBh}{{{b{GEn}}{b{dCb}}}DBh}{{{b{GF`}}{b{dCb}}}DBh}{{{b{GFb}}{b{dCb}}}DBh}{{{b{GFd}}{b{dCb}}}DBh}{{{b{GFf}}{b{dCb}}}DBh}{{{b{GFh}}{b{dCb}}}DBh}{{{b{GFj}}{b{dCb}}}DBh}{{{b{GFl}}{b{dCb}}}DBh}{{{b{GFn}}{b{dCb}}}DBh}{{{b{GG`}}{b{dCb}}}DBh}{{{b{GGb}}{b{dCb}}}DBh}{{{b{GGd}}{b{dCb}}}DBh}{{{b{GGf}}{b{dCb}}}DBh}{{{b{GGh}}{b{dCb}}}DBh}{{{b{GGj}}{b{dCb}}}DBh}{{{b{GGl}}{b{dCb}}}DBh}{{{b{GGn}}{b{dCb}}}DBh}{{{b{GH`}}{b{dCb}}}DBh}{{{b{GHb}}{b{dCb}}}DBh}{{{b{GHd}}{b{dCb}}}DBh}{{{b{GHf}}{b{dCb}}}DBh}{{{b{GHh}}{b{dCb}}}DBh}{{{b{GHj}}{b{dCb}}}DBh}{{{b{GHl}}{b{dCb}}}DBh}{{{b{GHn}}{b{dCb}}}DBh}{{{b{GI`}}{b{dCb}}}DBh}{{{b{GIb}}{b{dCb}}}DBh}{{{b{GId}}{b{dCb}}}DBh}{{{b{GIf}}{b{dCb}}}DBh}{{{b{GIh}}{b{dCb}}}DBh}{{{b{GIj}}{b{dCb}}}DBh}{{{b{GIl}}{b{dCb}}}DBh}{{{b{GIn}}{b{dCb}}}DBh}{{{b{GJ`}}{b{dCb}}}DBh}{{{b{GJb}}{b{dCb}}}DBh}{{{b{GJd}}{b{dCb}}}DBh}{{{b{GJf}}{b{dCb}}}DBh}{{{b{GJh}}{b{dCb}}}DBh}{{{b{GJj}}{b{dCb}}}DBh}{{{b{GJl}}{b{dCb}}}DBh}{{{b{GJn}}{b{dCb}}}DBh}{{{b{GK`}}{b{dCb}}}DBh}{{{b{GKb}}{b{dCb}}}DBh}{{{b{GKd}}{b{dCb}}}DBh}{{{b{GKf}}{b{dCb}}}DBh}{{{b{GKh}}{b{dCb}}}DBh}{{{b{GKj}}{b{dCb}}}DBh}{{{b{GKl}}{b{dCb}}}DBh}{{{b{GKn}}{b{dCb}}}DBh}{{{b{GL`}}{b{dCb}}}DBh}{{{b{GLb}}{b{dCb}}}DBh}{{{b{GLd}}{b{dCb}}}DBh}{{{b{GLf}}{b{dCb}}}DBh}{{{b{GLh}}{b{dCb}}}DBh}{{{b{GLj}}{b{dCb}}}DBh}{{{b{GLl}}{b{dCb}}}DBh}{{{b{GLn}}{b{dCb}}}DBh}{{{b{GM`}}{b{dCb}}}DBh}{{{b{GMb}}{b{dCb}}}DBh}{{{b{GMd}}{b{dCb}}}DBh}{{{b{GMf}}{b{dCb}}}DBh}{{{b{GMh}}{b{dCb}}}DBh}{{{b{GMj}}{b{dCb}}}DBh}{{{b{GMl}}{b{dCb}}}DBh}{{{b{GMn}}{b{dCb}}}DBh}{{{b{GN`}}{b{dCb}}}DBh}{{{b{GNb}}{b{dCb}}}DBh}{{{b{GNd}}{b{dCb}}}DBh}{{{b{GNf}}{b{dCb}}}DBh}{{{b{GNh}}{b{dCb}}}DBh}{{{b{GNj}}{b{dCb}}}DBh}{{{b{GNl}}{b{dCb}}}DBh}{{{b{GNn}}{b{dCb}}}DBh}{{{b{GO`}}{b{dCb}}}DBh}{{{b{GOb}}{b{dCb}}}DBh}{{{b{GOd}}{b{dCb}}}DBh}{{{b{GOf}}{b{dCb}}}DBh}{{{b{GOh}}{b{dCb}}}DBh}{{{b{GOj}}{b{dCb}}}DBh}{{{b{GOl}}{b{dCb}}}DBh}{{{b{GOn}}{b{dCb}}}DBh}{{{b{H@`}}{b{dCb}}}DBh}{{{b{H@b}}{b{dCb}}}DBh}{{{b{H@d}}{b{dCb}}}DBh}{{{b{H@f}}{b{dCb}}}DBh}{{{b{H@h}}{b{dCb}}}DBh}{{{b{H@j}}{b{dCb}}}DBh}{{{b{H@l}}{b{dCb}}}DBh}{{{b{H@n}}{b{dCb}}}DBh}{{{b{HA`}}{b{dCb}}}DBh}{{{b{HAb}}{b{dCb}}}DBh}{{{b{HAd}}{b{dCb}}}DBh}{{{b{HAf}}{b{dCb}}}DBh}{{{b{HAh}}{b{dCb}}}DBh}{{{b{HAj}}{b{dCb}}}DBh}{{{b{HAl}}{b{dCb}}}DBh}{{{b{HAn}}{b{dCb}}}DBh}{{{b{HB`}}{b{dCb}}}DBh}{{{b{HBb}}{b{dCb}}}DBh}{{{b{HBd}}{b{dCb}}}DBh}{{{b{HBf}}{b{dCb}}}DBh}{{{b{HBh}}{b{dCb}}}DBh}{{{b{HBj}}{b{dCb}}}DBh}{{{b{HBl}}{b{dCb}}}DBh}{{{b{HBn}}{b{dCb}}}DBh}{{{b{HC`}}{b{dCb}}}DBh}{{{b{HCb}}{b{dCb}}}DBh}{{{b{HCd}}{b{dCb}}}DBh}{{{b{HCf}}{b{dCb}}}DBh}{{{b{HCh}}{b{dCb}}}DBh}{{{b{HCj}}{b{dCb}}}DBh}{{{b{HCl}}{b{dCb}}}DBh}{{{b{HCn}}{b{dCb}}}DBh}{{{b{HD`}}{b{dCb}}}DBh}{{{b{HDb}}{b{dCb}}}DBh}{{{b{HDd}}{b{dCb}}}DBh}{{{b{HDf}}{b{dCb}}}DBh}{{{b{HDh}}{b{dCb}}}DBh}{{{b{HDj}}{b{dCb}}}DBh}{{{b{HDl}}{b{dCb}}}DBh}{{{b{HDn}}{b{dCb}}}DBh}{{{b{HE`}}{b{dCb}}}DBh}{{{b{HEb}}{b{dCb}}}DBh}{{{b{HEd}}{b{dCb}}}DBh}{{{b{HEf}}{b{dCb}}}DBh}{{{b{HEh}}{b{dCb}}}DBh}{{{b{HEj}}{b{dCb}}}DBh}{{{b{HEl}}{b{dCb}}}DBh}{{{b{HEn}}{b{dCb}}}DBh}{{{b{HF`}}{b{dCb}}}DBh}{{{b{HFb}}{b{dCb}}}DBh}{{{b{HFd}}{b{dCb}}}DBh}{{{b{HFf}}{b{dCb}}}DBh}{{{b{HFh}}{b{dCb}}}DBh}{{{b{HFj}}{b{dCb}}}DBh}{{{b{HFl}}{b{dCb}}}DBh}{{{b{HFn}}{b{dCb}}}DBh}{{{b{HG`}}{b{dCb}}}DBh}{{{b{HGb}}{b{dCb}}}DBh}{{{b{HGd}}{b{dCb}}}DBh}{{{b{HGf}}{b{dCb}}}DBh}{{{b{HGh}}{b{dCb}}}DBh}{{{b{HGj}}{b{dCb}}}DBh}{{{b{HGl}}{b{dCb}}}DBh}{{{b{HGn}}{b{dCb}}}DBh}{{{b{HH`}}{b{dCb}}}DBh}{{{b{HHb}}{b{dCb}}}DBh}{{{b{HHd}}{b{dCb}}}DBh}{{{b{HHf}}{b{dCb}}}DBh}{{{b{HHh}}{b{dCb}}}DBh}{{{b{HHj}}{b{dCb}}}DBh}{{{b{HHl}}{b{dCb}}}DBh}{{{b{HHn}}{b{dCb}}}DBh}{{{b{HI`}}{b{dCb}}}DBh}{{{b{HIb}}{b{dCb}}}DBh}{{{b{HId}}{b{dCb}}}DBh}{{{b{HIf}}{b{dCb}}}DBh}{{{b{HIh}}{b{dCb}}}DBh}{{{b{HIj}}{b{dCb}}}DBh}{{{b{HIl}}{b{dCb}}}DBh}{{{b{HIn}}{b{dCb}}}DBh}{{{b{HJ`}}{b{dCb}}}DBh}{{{b{HJb}}{b{dCb}}}DBh}{{{b{HJd}}{b{dCb}}}DBh}{{{b{HJf}}{b{dCb}}}DBh}{{{b{HJh}}{b{dCb}}}DBh}{{{b{HJj}}{b{dCb}}}DBh}{{{b{HJl}}{b{dCb}}}DBh}{{{b{HJn}}{b{dCb}}}DBh}{{{b{HK`}}{b{dCb}}}DBh}{{{b{HKb}}{b{dCb}}}DBh}{{{b{HKd}}{b{dCb}}}DBh}{{{b{HKf}}{b{dCb}}}DBh}{{{b{HKh}}{b{dCb}}}DBh}{{{b{HKj}}{b{dCb}}}DBh}{{{b{HKl}}{b{dCb}}}DBh}{{{b{HKn}}{b{dCb}}}DBh}{{{b{HL`}}{b{dCb}}}DBh}{{{b{HLb}}{b{dCb}}}DBh}{{{b{HLd}}{b{dCb}}}DBh}{{{b{HLf}}{b{dCb}}}DBh}{{{b{HLh}}{b{dCb}}}DBh}{{{b{HLj}}{b{dCb}}}DBh}{{{b{HLl}}{b{dCb}}}DBh}{{{b{HLn}}{b{dCb}}}DBh}{{{b{HM`}}{b{dCb}}}DBh}{{{b{HMb}}{b{dCb}}}DBh}{{{b{HMd}}{b{dCb}}}DBh}{{{b{HMf}}{b{dCb}}}DBh}{{{b{HMh}}{b{dCb}}}DBh}{{{b{HMj}}{b{dCb}}}DBh}{{{b{HMl}}{b{dCb}}}DBh}{{{b{HMn}}{b{dCb}}}DBh}{{{b{HN`}}{b{dCb}}}DBh}{{{b{HNb}}{b{dCb}}}DBh}{{{b{HNd}}{b{dCb}}}DBh}{{{b{HNf}}{b{dCb}}}DBh}{{{b{HNh}}{b{dCb}}}DBh}{{{b{HNj}}{b{dCb}}}DBh}{{{b{HNl}}{b{dCb}}}DBh}{{{b{HNn}}{b{dCb}}}DBh}{{{b{HO`}}{b{dCb}}}DBh}{{{b{HOb}}{b{dCb}}}DBh}{{{b{HOd}}{b{dCb}}}DBh}{{{b{HOf}}{b{dCb}}}DBh}{{{b{HOh}}{b{dCb}}}DBh}{{{b{HOj}}{b{dCb}}}DBh}{{{b{HOl}}{b{dCb}}}DBh}{{{b{HOn}}{b{dCb}}}DBh}{{{b{I@`}}{b{dCb}}}DBh}{{{b{I@b}}{b{dCb}}}DBh}{{{b{I@d}}{b{dCb}}}DBh}{{{b{I@f}}{b{dCb}}}DBh}{{{b{I@h}}{b{dCb}}}DBh}{{{b{I@j}}{b{dCb}}}DBh}{{{b{I@l}}{b{dCb}}}DBh}{{{b{I@n}}{b{dCb}}}DBh}{{{b{IA`}}{b{dCb}}}DBh}{{{b{IAb}}{b{dCb}}}DBh}{{{b{IAd}}{b{dCb}}}DBh}{{{b{IAf}}{b{dCb}}}DBh}{{{b{IAh}}{b{dCb}}}DBh}{{{b{IAj}}{b{dCb}}}DBh}{{{b{IAl}}{b{dCb}}}DBh}{{{b{GAj}}{b{dCb}}}DBh}0000{{{b{IAn}}{b{dCb}}}DBh}{{{b{IB`}}{b{dCb}}}DBh}{{{b{GAl}}{b{dCb}}}DBh}0000{{{b{IBb}}{b{dCb}}}DBh}{{{b{IBd}}{b{dCb}}}DBh}{{{b{IBf}}{b{dCb}}}DBh}{{{b{IBh}}{b{dCb}}}DBh}{{{b{IBj}}{b{dCb}}}DBh}{{{b{IBl}}{b{dCb}}}DBh}{{{b{IBn}}{b{dCb}}}DBh}{{{b{IC`}}{b{dCb}}}DBh}{{{b{ICb}}{b{dCb}}}DBh}{{{b{ICd}}{b{dCb}}}DBh}{{{b{ICf}}{b{dCb}}}DBh}{{{b{ICh}}{b{dCb}}}DBh}{{{b{ICj}}{b{dCb}}}DBh}{{{b{ICl}}{b{dCb}}}DBh}{{{b{ICn}}{b{dCb}}}DBh}{{{b{ID`}}{b{dCb}}}DBh}{{{b{IDb}}{b{dCb}}}DBh}{{{b{IDd}}{b{dCb}}}DBh}{{{b{IDf}}{b{dCb}}}DBh}{{{b{IDh}}{b{dCb}}}DBh}{{{b{IDj}}{b{dCb}}}DBh}{{{b{IDl}}{b{dCb}}}DBh}{{{b{IDn}}{b{dCb}}}DBh}{{{b{IE`}}{b{dCb}}}DBh}{{{b{IEb}}{b{dCb}}}DBh}{{{b{GAn}}{b{dCb}}}DBh}0000{{{b{GB`}}{b{dCb}}}DBh}0000{{{b{IEd}}{b{dCb}}}DBh}{{{b{GBb}}{b{dCb}}}DBh}0000{{{b{IEf}}{b{dCb}}}DBh}{{{b{IEh}}{b{dCb}}}DBh}{{{b{IEj}}{b{dCb}}}DBh}{{{b{IEl}}{b{dCb}}}DBh}{{{b{IEn}}{b{dCb}}}DBh}{{{b{IF`}}{b{dCb}}}DBh}{{{b{IFb}}{b{dCb}}}DBh}{{{b{IFd}}{b{dCb}}}DBh}{{{b{IFf}}{b{dCb}}}DBh}{{{b{IFh}}{b{dCb}}}DBh}{{{b{GBd}}{b{dCb}}}DBh}0000{{{b{IFj}}{b{dCb}}}DBh}{{{b{IFl}}{b{dCb}}}DBh}{{{b{IFn}}{b{dCb}}}DBh}{{{b{IG`}}{b{dCb}}}DBh}{{{b{IGb}}{b{dCb}}}DBh}{{{b{GBf}}{b{dCb}}}DBh}0000{{{b{IGd}}{b{dCb}}}DBh}{{{b{IGf}}{b{dCb}}}DBh}{{{b{IGh}}{b{dCb}}}DBh}{{{b{IGj}}{b{dCb}}}DBh}{{{b{IGl}}{b{dCb}}}DBh}{{{b{GBh}}{b{dCb}}}DBh}0000{{{b{IGn}}{b{dCb}}}DBh}{{{b{IH`}}{b{dCb}}}DBh}{{{b{GBj}}{b{dCb}}}DBh}0000{{{b{IHb}}{b{dCb}}}DBh}{{{b{IHd}}{b{dCb}}}DBh}{{{b{IHf}}{b{dCb}}}DBh}{{{b{IHh}}{b{dCb}}}DBh}{{{b{IHj}}{b{dCb}}}DBh}{{{b{IHl}}{b{dCb}}}DBh}{{{b{IHn}}{b{dCb}}}DBh}{{{b{II`}}{b{dCb}}}DBh}{{{b{IIb}}{b{dCb}}}DBh}{{{b{IId}}{b{dCb}}}DBh}{{{b{IIf}}{b{dCb}}}DBh}{{{b{IIh}}{b{dCb}}}DBh}{{{b{IIj}}{b{dCb}}}DBh}{{{b{IIl}}{b{dCb}}}DBh}{{{b{IIn}}{b{dCb}}}DBh}{{{b{GBl}}{b{dCb}}}DBh}0000{{{b{IJ`}}{b{dCb}}}DBh}{{{b{GBn}}{b{dCb}}}DBh}0000{{{b{IJb}}{b{dCb}}}DBh}{{{b{IJd}}{b{dCb}}}DBh}{{{b{IJf}}{b{dCb}}}DBh}{{{b{GC`}}{b{dCb}}}DBh}0000{{{b{IJh}}{b{dCb}}}DBh}{{{b{IJj}}{b{dCb}}}DBh}{{{b{IJl}}{b{dCb}}}DBh}{{{b{IJn}}{b{dCb}}}DBh}{{{b{IK`}}{b{dCb}}}DBh}{{{b{IKb}}{b{dCb}}}DBh}{{{b{IKd}}{b{dCb}}}DBh}{{{b{IKf}}{b{dCb}}}DBh}{{{b{IKh}}{b{dCb}}}DBh}{{{b{IKj}}{b{dCb}}}DBh}{{{b{IKl}}{b{dCb}}}DBh}{{{b{IKn}}{b{dCb}}}DBh}{{{b{IL`}}{b{dCb}}}DBh}{{{b{ILb}}{b{dCb}}}DBh}{{{b{GCb}}{b{dCb}}}DBh}0000{{{b{ILd}}{b{dCb}}}DBh}{{{b{GCd}}{b{dCb}}}DBh}0000{{{b{GCf}}{b{dCb}}}DBh}0000{{{b{ILf}}{b{dCb}}}DBh}{{{b{ILh}}{b{dCb}}}DBh}{{{b{ILj}}{b{dCb}}}DBh}{{{b{GCh}}{b{dCb}}}DBh}0000{{{b{ILl}}{b{dCb}}}DBh}{{{b{ILn}}{b{dCb}}}DBh}{{{b{IM`}}{b{dCb}}}DBh}{{{b{GCj}}{b{dCb}}}DBh}0000{{{b{GCl}}{b{dCb}}}DBh}0000{{{b{IMb}}{b{dCb}}}DBh}{{{b{GCn}}{b{dCb}}}DBh}0000{{{b{GD`}}{b{dCb}}}DBh}0000{{{b{GDb}}{b{dCb}}}DBh}0000{{{b{GDd}}{b{dCb}}}DBh}0000{{{b{IMd}}{b{dCb}}}DBh}{{{b{IMf}}{b{dCb}}}DBh}{{{b{IMh}}{b{dCb}}}DBh}{{{b{IMj}}{b{dCb}}}DBh}{{{b{IMl}}{b{dCb}}}DBh}{{{b{IMn}}{b{dCb}}}DBh}{{{b{GDf}}{b{dCb}}}DBh}0000{{{b{IN`}}{b{dCb}}}DBh}{{{b{GDh}}{b{dCb}}}DBh}0000{{{b{INb}}{b{dCb}}}DBh}{{{b{INd}}{b{dCb}}}DBh}{{{b{INf}}{b{dCb}}}DBh}{{{b{INh}}{b{dCb}}}DBh}{{{b{INj}}{b{dCb}}}DBh}{{{b{GDj}}{b{dCb}}}DBh}0000{{{b{GDl}}{b{dCb}}}DBh}0000{{{b{GDn}}{b{dCb}}}DBh}0000{{{b{INl}}{b{dCb}}}DBh}{{{b{INn}}{b{dCb}}}DBh}{{{b{IO`}}{b{dCb}}}DBh}{{{b{IOb}}{b{dCb}}}DBh}{{{b{IOd}}{b{dCb}}}DBh}{{{b{IOf}}{b{dCb}}}DBh}{{{b{IOh}}{b{dCb}}}DBh}{{{b{IOj}}{b{dCb}}}DBh}{{{b{IOl}}{b{dCb}}}DBh}{{{b{GE`}}{b{dCb}}}DBh}0000``````````````{cc{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{j{{DBj{GAj}}}}{j{{DBj{GAl}}}}{Bf{{DBj{GAn}}}}{Bf{{DBj{GB`}}}}{f{{DBj{GBb}}}}{j{{DBj{GBd}}}}{Bf{{DBj{GBf}}}}{Hl{{DBj{GBh}}}}{j{{DBj{GBj}}}}{f{{DBj{GBl}}}}{j{{DBj{GBn}}}}{f{{DBj{GC`}}}}{j{{DBj{GCb}}}}{f{{DBj{GCd}}}}{Bf{{DBj{GCf}}}}{j{{DBj{GCh}}}}{j{{DBj{GCj}}}}{Bf{{DBj{GCl}}}}{Hl{{DBj{GCn}}}}{j{{DBj{GD`}}}}{j{{DBj{GDb}}}}{f{{DBj{GDd}}}}{j{{DBj{GDf}}}}{f{{DBj{GDh}}}}{Bf{{DBj{GDj}}}}{f{{DBj{GDl}}}}{j{{DBj{GDn}}}}{Bf{{DBj{GE`}}}}{jGAj}{jGAl}{BfGAn}{BfGB`}{fGBb}{jGBd}{BfGBf}{HlGBh}{jGBj}{fGBl}{jGBn}{fGC`}{jGCb}{fGCd}{BfGCf}{jGCh}{jGCj}{BfGCl}{HlGCn}{jGD`}{jGDb}{fGDd}{jGDf}{fGDh}{BfGDj}{fGDl}{jGDn}{BfGE`}{jGAj}{jGAl}{BfGAn}{BfGB`}{fGBb}{jGBd}{BfGBf}{HlGBh}{jGBj}{fGBl}{jGBn}{fGC`}{jGCb}{fGCd}{BfGCf}{jGCh}{jGCj}{BfGCl}{HlGCn}{jGD`}{jGDb}{fGDd}{jGDf}{fGDh}{BfGDj}{fGDl}{jGDn}{BfGE`}{DBl{{DBj{IAd}}}}{DBl{{DBj{IAf}}}}{DBl{{DBj{IAh}}}}{DBl{{DBj{IAj}}}}{DBl{{DBj{IAl}}}}{DBl{{DBj{IAn}}}}{DBl{{DBj{IB`}}}}{DBl{{DBj{IBb}}}}{DBl{{DBj{IBd}}}}{DBl{{DBj{IBf}}}}{DBl{{DBj{IBh}}}}{DBl{{DBj{IBj}}}}{DBl{{DBj{IBl}}}}{DBl{{DBj{IBn}}}}{DBl{{DBj{IC`}}}}{DBl{{DBj{ICb}}}}{DBl{{DBj{ICd}}}}{DBl{{DBj{ICf}}}}{DBl{{DBj{ICh}}}}{DBl{{DBj{ICj}}}}{DBl{{DBj{ICl}}}}{DBl{{DBj{ICn}}}}{DBl{{DBj{ID`}}}}{DBl{{DBj{IDb}}}}{DBl{{DBj{IDd}}}}{DBl{{DBj{IDf}}}}{DBl{{DBj{IDh}}}}{DBl{{DBj{IDj}}}}{DBl{{DBj{IDl}}}}{DBl{{DBj{IDn}}}}{DBl{{DBj{IE`}}}}{DBl{{DBj{IEb}}}}{DBl{{DBj{IEd}}}}{DBl{{DBj{IEf}}}}{DBl{{DBj{IEh}}}}{DBl{{DBj{IEj}}}}{DBl{{DBj{IEl}}}}{DBl{{DBj{IEn}}}}{DBl{{DBj{IF`}}}}{DBl{{DBj{IFb}}}}{DBl{{DBj{IFd}}}}{DBl{{DBj{IFf}}}}{DBl{{DBj{IFh}}}}{DBl{{DBj{IFj}}}}{DBl{{DBj{IFl}}}}{DBl{{DBj{IFn}}}}{DBl{{DBj{IG`}}}}{DBl{{DBj{IGb}}}}{DBl{{DBj{IGd}}}}{DBl{{DBj{IGf}}}}{DBl{{DBj{IGh}}}}{DBl{{DBj{IGj}}}}{DBl{{DBj{IGl}}}}{DBl{{DBj{IGn}}}}{DBl{{DBj{IH`}}}}{DBl{{DBj{IHb}}}}{DBl{{DBj{IHd}}}}{DBl{{DBj{IHf}}}}{DBl{{DBj{IHh}}}}{DBl{{DBj{IHj}}}}{DBl{{DBj{IHl}}}}{DBl{{DBj{IHn}}}}{DBl{{DBj{II`}}}}{DBl{{DBj{IIb}}}}{DBl{{DBj{IId}}}}{DBl{{DBj{IIf}}}}{DBl{{DBj{IIh}}}}{DBl{{DBj{IIj}}}}{DBl{{DBj{IIl}}}}{DBl{{DBj{IIn}}}}{DBl{{DBj{IJ`}}}}{DBl{{DBj{IJb}}}}{DBl{{DBj{IJd}}}}{DBl{{DBj{IJf}}}}{DBl{{DBj{IJh}}}}{DBl{{DBj{IJj}}}}{DBl{{DBj{IJl}}}}{DBl{{DBj{IJn}}}}{DBl{{DBj{IK`}}}}{DBl{{DBj{IKb}}}}{DBl{{DBj{IKd}}}}{DBl{{DBj{IKf}}}}{DBl{{DBj{IKh}}}}{DBl{{DBj{IKj}}}}{DBl{{DBj{IKl}}}}{DBl{{DBj{IKn}}}}{DBl{{DBj{IL`}}}}{DBl{{DBj{ILb}}}}{DBl{{DBj{ILd}}}}{DBl{{DBj{ILf}}}}{DBl{{DBj{ILh}}}}{DBl{{DBj{ILj}}}}{DBl{{DBj{ILl}}}}{DBl{{DBj{ILn}}}}{DBl{{DBj{IM`}}}}{DBl{{DBj{IMb}}}}{DBl{{DBj{IMd}}}}{DBl{{DBj{IMf}}}}{DBl{{DBj{IMh}}}}{DBl{{DBj{IMj}}}}{DBl{{DBj{IMl}}}}{DBl{{DBj{IMn}}}}{DBl{{DBj{IN`}}}}{DBl{{DBj{INb}}}}{DBl{{DBj{INd}}}}{DBl{{DBj{INf}}}}{DBl{{DBj{INh}}}}{DBl{{DBj{INj}}}}{DBl{{DBj{INl}}}}{DBl{{DBj{INn}}}}{DBl{{DBj{IO`}}}}{DBl{{DBj{IOb}}}}{DBl{{DBj{IOd}}}}{DBl{{DBj{IOf}}}}{DBl{{DBj{IOh}}}}{DBl{{DBj{IOj}}}}{DBl{{DBj{IOl}}}}{cGAj{{DBf{}{{DBd{GAj}}}}}}{cGAl{{DBf{}{{DBd{GAl}}}}}}{cGAn{{DBf{}{{DBd{GAn}}}}}}{cGB`{{DBf{}{{DBd{GB`}}}}}}{cGBb{{DBf{}{{DBd{GBb}}}}}}{cGBd{{DBf{}{{DBd{GBd}}}}}}{cGBf{{DBf{}{{DBd{GBf}}}}}}{cGBh{{DBf{}{{DBd{GBh}}}}}}{cGBj{{DBf{}{{DBd{GBj}}}}}}{cGBl{{DBf{}{{DBd{GBl}}}}}}{cGBn{{DBf{}{{DBd{GBn}}}}}}{cGC`{{DBf{}{{DBd{GC`}}}}}}{cGCb{{DBf{}{{DBd{GCb}}}}}}{cGCd{{DBf{}{{DBd{GCd}}}}}}{cGCf{{DBf{}{{DBd{GCf}}}}}}{cGCh{{DBf{}{{DBd{GCh}}}}}}{cGCj{{DBf{}{{DBd{GCj}}}}}}{cGCl{{DBf{}{{DBd{GCl}}}}}}{cGCn{{DBf{}{{DBd{GCn}}}}}}{cGD`{{DBf{}{{DBd{GD`}}}}}}{cGDb{{DBf{}{{DBd{GDb}}}}}}{cGDd{{DBf{}{{DBd{GDd}}}}}}{cGDf{{DBf{}{{DBd{GDf}}}}}}{cGDh{{DBf{}{{DBd{GDh}}}}}}{cGDj{{DBf{}{{DBd{GDj}}}}}}{cGDl{{DBf{}{{DBd{GDl}}}}}}{cGDn{{DBf{}{{DBd{GDn}}}}}}{cGE`{{DBf{}{{DBd{GE`}}}}}}{Hl{{DBj{IAd}}}}{Hl{{DBj{IAf}}}}{Hl{{DBj{IAh}}}}{Hl{{DBj{IAj}}}}{Hl{{DBj{IAl}}}}{Hl{{DBj{IAn}}}}{Hl{{DBj{IB`}}}}{Hl{{DBj{IBb}}}}{Hl{{DBj{IBd}}}}{Hl{{DBj{IBf}}}}{Hl{{DBj{IBh}}}}{Hl{{DBj{IBj}}}}{Hl{{DBj{IBl}}}}{Hl{{DBj{IBn}}}}{Hl{{DBj{IC`}}}}{Hl{{DBj{ICb}}}}{Hl{{DBj{ICd}}}}{Hl{{DBj{ICf}}}}{Hl{{DBj{ICh}}}}{Hl{{DBj{ICj}}}}{Hl{{DBj{ICl}}}}{Hl{{DBj{ICn}}}}{Hl{{DBj{ID`}}}}{Hl{{DBj{IDb}}}}{Hl{{DBj{IDd}}}}{Hl{{DBj{IDf}}}}{Hl{{DBj{IDh}}}}{Hl{{DBj{IDj}}}}{Hl{{DBj{IDl}}}}{Hl{{DBj{IDn}}}}{Hl{{DBj{IE`}}}}{Hl{{DBj{IEb}}}}{Hl{{DBj{IEd}}}}{Hl{{DBj{IEf}}}}{Hl{{DBj{IEh}}}}{Hl{{DBj{IEj}}}}{Hl{{DBj{IEl}}}}{Hl{{DBj{IEn}}}}{Hl{{DBj{IF`}}}}{Hl{{DBj{IFb}}}}{Hl{{DBj{IFd}}}}{Hl{{DBj{IFf}}}}{Hl{{DBj{IFh}}}}{Hl{{DBj{IFj}}}}{Hl{{DBj{IFl}}}}{Hl{{DBj{IFn}}}}{Hl{{DBj{IG`}}}}{Hl{{DBj{IGb}}}}{Hl{{DBj{IGd}}}}{Hl{{DBj{IGf}}}}{Hl{{DBj{IGh}}}}{Hl{{DBj{IGj}}}}{Hl{{DBj{IGl}}}}{Hl{{DBj{IGn}}}}{Hl{{DBj{IH`}}}}{Hl{{DBj{IHb}}}}{Hl{{DBj{IHd}}}}{Hl{{DBj{IHf}}}}{Hl{{DBj{IHh}}}}{Hl{{DBj{IHj}}}}{Hl{{DBj{IHl}}}}{Hl{{DBj{IHn}}}}{Hl{{DBj{II`}}}}{Hl{{DBj{IIb}}}}{Hl{{DBj{IId}}}}{Hl{{DBj{IIf}}}}{Hl{{DBj{IIh}}}}{Hl{{DBj{IIj}}}}{Hl{{DBj{IIl}}}}{Hl{{DBj{IIn}}}}{Hl{{DBj{IJ`}}}}{Hl{{DBj{IJb}}}}{Hl{{DBj{IJd}}}}{Hl{{DBj{IJf}}}}{Hl{{DBj{IJh}}}}{Hl{{DBj{IJj}}}}{Hl{{DBj{IJl}}}}{Hl{{DBj{IJn}}}}{Hl{{DBj{IK`}}}}{Hl{{DBj{IKb}}}}{Hl{{DBj{IKd}}}}{Hl{{DBj{IKf}}}}{Hl{{DBj{IKh}}}}{Hl{{DBj{IKj}}}}{Hl{{DBj{IKl}}}}{Hl{{DBj{IKn}}}}{Hl{{DBj{IL`}}}}{Hl{{DBj{ILb}}}}{Hl{{DBj{ILd}}}}{Hl{{DBj{ILf}}}}{Hl{{DBj{ILh}}}}{Hl{{DBj{ILj}}}}{Hl{{DBj{ILl}}}}{Hl{{DBj{ILn}}}}{Hl{{DBj{IM`}}}}{Hl{{DBj{IMb}}}}{Hl{{DBj{IMd}}}}{Hl{{DBj{IMf}}}}{Hl{{DBj{IMh}}}}{Hl{{DBj{IMj}}}}{Hl{{DBj{IMl}}}}{Hl{{DBj{IMn}}}}{Hl{{DBj{IN`}}}}{Hl{{DBj{INb}}}}{Hl{{DBj{INd}}}}{Hl{{DBj{INf}}}}{Hl{{DBj{INh}}}}{Hl{{DBj{INj}}}}{Hl{{DBj{INl}}}}{Hl{{DBj{INn}}}}{Hl{{DBj{IO`}}}}{Hl{{DBj{IOb}}}}{Hl{{DBj{IOd}}}}{Hl{{DBj{IOf}}}}{Hl{{DBj{IOh}}}}{Hl{{DBj{IOj}}}}{Hl{{DBj{IOl}}}}````````````````````````````````````{{{b{GAj}}{b{dc}}}AjDBn}{{{b{GAl}}{b{dc}}}AjDBn}{{{b{GAn}}{b{dc}}}AjDBn}{{{b{GB`}}{b{dc}}}AjDBn}{{{b{GBb}}{b{dc}}}AjDBn}{{{b{GBd}}{b{dc}}}AjDBn}{{{b{GBf}}{b{dc}}}AjDBn}{{{b{GBh}}{b{dc}}}AjDBn}{{{b{GBj}}{b{dc}}}AjDBn}{{{b{GBl}}{b{dc}}}AjDBn}{{{b{GBn}}{b{dc}}}AjDBn}{{{b{GC`}}{b{dc}}}AjDBn}{{{b{GCb}}{b{dc}}}AjDBn}{{{b{GCd}}{b{dc}}}AjDBn}{{{b{GCf}}{b{dc}}}AjDBn}{{{b{GCh}}{b{dc}}}AjDBn}{{{b{GCj}}{b{dc}}}AjDBn}{{{b{GCl}}{b{dc}}}AjDBn}{{{b{GCn}}{b{dc}}}AjDBn}{{{b{GD`}}{b{dc}}}AjDBn}{{{b{GDb}}{b{dc}}}AjDBn}{{{b{GDd}}{b{dc}}}AjDBn}{{{b{GDf}}{b{dc}}}AjDBn}{{{b{GDh}}{b{dc}}}AjDBn}{{{b{GDj}}{b{dc}}}AjDBn}{{{b{GDl}}{b{dc}}}AjDBn}{{{b{GDn}}{b{dc}}}AjDBn}{{{b{GE`}}{b{dc}}}AjDBn}```````````````````````````````````````````````````````````````{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}``````````````{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}{{{b{GAj}}GAj}C`}{{{b{GAl}}GAl}C`}{{{b{GAn}}GAn}C`}{{{b{GB`}}GB`}C`}{{{b{GBb}}GBb}C`}{{{b{GBd}}GBd}C`}{{{b{GBf}}GBf}C`}{{{b{GBh}}GBh}C`}{{{b{GBj}}GBj}C`}{{{b{GBl}}GBl}C`}{{{b{GBn}}GBn}C`}{{{b{GC`}}GC`}C`}{{{b{GCb}}GCb}C`}{{{b{GCd}}GCd}C`}{{{b{GCf}}GCf}C`}{{{b{GCh}}GCh}C`}{{{b{GCj}}GCj}C`}{{{b{GCl}}GCl}C`}{{{b{GCn}}GCn}C`}{{{b{GD`}}GD`}C`}{{{b{GDb}}GDb}C`}{{{b{GDd}}GDd}C`}{{{b{GDf}}GDf}C`}{{{b{GDh}}GDh}C`}{{{b{GDj}}GDj}C`}{{{b{GDl}}GDl}C`}{{{b{GDn}}GDn}C`}{{{b{GE`}}GE`}C`}`{ce{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{GAj}}}C`}{{{b{GAl}}}C`}{{{b{GAn}}}C`}{{{b{GB`}}}C`}{{{b{GBb}}}C`}{{{b{GBd}}}C`}{{{b{GBf}}}C`}{{{b{GBh}}}C`}{{{b{GBj}}}C`}{{{b{GBl}}}C`}{{{b{GBn}}}C`}{{{b{GC`}}}C`}{{{b{GCb}}}C`}{{{b{GCd}}}C`}{{{b{GCf}}}C`}{{{b{GCh}}}C`}{{{b{GCj}}}C`}{{{b{GCl}}}C`}{{{b{GCn}}}C`}{{{b{GD`}}}C`}{{{b{GDb}}}C`}{{{b{GDd}}}C`}{{{b{GDf}}}C`}{{{b{GDh}}}C`}{{{b{GDj}}}C`}{{{b{GDl}}}C`}{{{b{GDn}}}C`}{{{b{GE`}}}C`}{{{b{GAj}}}C`}{{{b{GAl}}}C`}{{{b{GAn}}}C`}{{{b{GB`}}}C`}{{{b{GBb}}}C`}{{{b{GBd}}}C`}{{{b{GBf}}}C`}{{{b{GBh}}}C`}{{{b{GBj}}}C`}{{{b{GBl}}}C`}{{{b{GBn}}}C`}{{{b{GC`}}}C`}{{{b{GCb}}}C`}{{{b{GCd}}}C`}{{{b{GCf}}}C`}{{{b{GCh}}}C`}{{{b{GCj}}}C`}{{{b{GCl}}}C`}{{{b{GCn}}}C`}{{{b{GD`}}}C`}{{{b{GDb}}}C`}{{{b{GDd}}}C`}{{{b{GDf}}}C`}{{{b{GDh}}}C`}{{{b{GDj}}}C`}{{{b{GDl}}}C`}{{{b{GDn}}}C`}{{{b{GE`}}}C`}```````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{GEb}}}Bf}`{{{b{Al}}}{{Bd{Bf{b{Al}}}}}}{{{b{GEb}}}{{b{Al}}}}```````````````````````````````````````{GAjGAj}{GAlGAl}{GAnGAn}{GB`GB`}{GBbGBb}{GBdGBd}{GBfGBf}{GBhGBh}{GBjGBj}{GBlGBl}{GBnGBn}{GC`GC`}{GCbGCb}{GCdGCd}{GCfGCf}{GChGCh}{GCjGCj}{GClGCl}{GCnGCn}{GD`GD`}{GDbGDb}{GDdGDd}{GDfGDf}{GDhGDh}{GDjGDj}{GDlGDl}{GDnGDn}{GE`GE`}````````````````````````````````````````````````````````````````````````````````````````````{{AbBf{b{{h{f}}}}}{{Bd{GEbBl}}}}{{{b{GAj}}{b{GAj}}}{{DBj{DBb}}}}{{{b{GAl}}{b{GAl}}}{{DBj{DBb}}}}{{{b{GAn}}{b{GAn}}}{{DBj{DBb}}}}{{{b{GB`}}{b{GB`}}}{{DBj{DBb}}}}{{{b{GBb}}{b{GBb}}}{{DBj{DBb}}}}{{{b{GBd}}{b{GBd}}}{{DBj{DBb}}}}{{{b{GBf}}{b{GBf}}}{{DBj{DBb}}}}{{{b{GBh}}{b{GBh}}}{{DBj{DBb}}}}{{{b{GBj}}{b{GBj}}}{{DBj{DBb}}}}{{{b{GBl}}{b{GBl}}}{{DBj{DBb}}}}{{{b{GBn}}{b{GBn}}}{{DBj{DBb}}}}{{{b{GC`}}{b{GC`}}}{{DBj{DBb}}}}{{{b{GCb}}{b{GCb}}}{{DBj{DBb}}}}{{{b{GCd}}{b{GCd}}}{{DBj{DBb}}}}{{{b{GCf}}{b{GCf}}}{{DBj{DBb}}}}{{{b{GCh}}{b{GCh}}}{{DBj{DBb}}}}{{{b{GCj}}{b{GCj}}}{{DBj{DBb}}}}{{{b{GCl}}{b{GCl}}}{{DBj{DBb}}}}{{{b{GCn}}{b{GCn}}}{{DBj{DBb}}}}{{{b{GD`}}{b{GD`}}}{{DBj{DBb}}}}{{{b{GDb}}{b{GDb}}}{{DBj{DBb}}}}{{{b{GDd}}{b{GDd}}}{{DBj{DBb}}}}{{{b{GDf}}{b{GDf}}}{{DBj{DBb}}}}{{{b{GDh}}{b{GDh}}}{{DBj{DBb}}}}{{{b{GDj}}{b{GDj}}}{{DBj{DBb}}}}{{{b{GDl}}{b{GDl}}}{{DBj{DBb}}}}{{{b{GDn}}{b{GDn}}}{{DBj{DBb}}}}{{{b{GE`}}{b{GE`}}}{{DBj{DBb}}}}`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}```````````````````````````````````````````````````````````````````````````````````````````````````{{{b{GEb}}Ab{b{d{h{f}}}}}D`}{{{b{GEd}}Ab{b{d{h{f}}}}}D`}{{{b{GEf}}Ab{b{d{h{f}}}}}D`}{{{b{GEh}}Ab{b{d{h{f}}}}}D`}{{{b{GEj}}Ab{b{d{h{f}}}}}D`}{{{b{GEl}}Ab{b{d{h{f}}}}}D`}{{{b{GEn}}Ab{b{d{h{f}}}}}D`}{{{b{GF`}}Ab{b{d{h{f}}}}}D`}{{{b{GFb}}Ab{b{d{h{f}}}}}D`}{{{b{GFd}}Ab{b{d{h{f}}}}}D`}{{{b{GFf}}Ab{b{d{h{f}}}}}D`}{{{b{GFh}}Ab{b{d{h{f}}}}}D`}{{{b{GFj}}Ab{b{d{h{f}}}}}D`}{{{b{GFl}}Ab{b{d{h{f}}}}}D`}{{{b{GFn}}Ab{b{d{h{f}}}}}D`}{{{b{GG`}}Ab{b{d{h{f}}}}}D`}{{{b{GGb}}Ab{b{d{h{f}}}}}D`}{{{b{GGd}}Ab{b{d{h{f}}}}}D`}{{{b{GGf}}Ab{b{d{h{f}}}}}D`}{{{b{GGh}}Ab{b{d{h{f}}}}}D`}{{{b{GGj}}Ab{b{d{h{f}}}}}D`}{{{b{GGl}}Ab{b{d{h{f}}}}}D`}{{{b{GGn}}Ab{b{d{h{f}}}}}D`}{{{b{GH`}}Ab{b{d{h{f}}}}}D`}{{{b{GHb}}Ab{b{d{h{f}}}}}D`}{{{b{GHd}}Ab{b{d{h{f}}}}}D`}{{{b{GHf}}Ab{b{d{h{f}}}}}D`}{{{b{GHh}}Ab{b{d{h{f}}}}}D`}{{{b{GHj}}Ab{b{d{h{f}}}}}D`}{{{b{GHl}}Ab{b{d{h{f}}}}}D`}{{{b{GHn}}Ab{b{d{h{f}}}}}D`}{{{b{GI`}}Ab{b{d{h{f}}}}}D`}{{{b{GIb}}Ab{b{d{h{f}}}}}D`}{{{b{GId}}Ab{b{d{h{f}}}}}D`}{{{b{GIf}}Ab{b{d{h{f}}}}}D`}{{{b{GIh}}Ab{b{d{h{f}}}}}D`}{{{b{GIj}}Ab{b{d{h{f}}}}}D`}{{{b{GIl}}Ab{b{d{h{f}}}}}D`}{{{b{GIn}}Ab{b{d{h{f}}}}}D`}{{{b{GJ`}}Ab{b{d{h{f}}}}}D`}{{{b{GJb}}Ab{b{d{h{f}}}}}D`}{{{b{GJd}}Ab{b{d{h{f}}}}}D`}{{{b{GJf}}Ab{b{d{h{f}}}}}D`}{{{b{GJh}}Ab{b{d{h{f}}}}}D`}{{{b{GJj}}Ab{b{d{h{f}}}}}D`}{{{b{GJl}}Ab{b{d{h{f}}}}}D`}{{{b{GJn}}Ab{b{d{h{f}}}}}D`}{{{b{GK`}}Ab{b{d{h{f}}}}}D`}{{{b{GKb}}Ab{b{d{h{f}}}}}D`}{{{b{GKd}}Ab{b{d{h{f}}}}}D`}{{{b{GKf}}Ab{b{d{h{f}}}}}D`}{{{b{GKh}}Ab{b{d{h{f}}}}}D`}{{{b{GKj}}Ab{b{d{h{f}}}}}D`}{{{b{GKl}}Ab{b{d{h{f}}}}}D`}{{{b{GKn}}Ab{b{d{h{f}}}}}D`}{{{b{GL`}}Ab{b{d{h{f}}}}}D`}{{{b{GLb}}Ab{b{d{h{f}}}}}D`}{{{b{GLd}}Ab{b{d{h{f}}}}}D`}{{{b{GLf}}Ab{b{d{h{f}}}}}D`}{{{b{GLh}}Ab{b{d{h{f}}}}}D`}{{{b{GLj}}Ab{b{d{h{f}}}}}D`}{{{b{GLl}}Ab{b{d{h{f}}}}}D`}{{{b{GLn}}Ab{b{d{h{f}}}}}D`}{{{b{GM`}}Ab{b{d{h{f}}}}}D`}{{{b{GMb}}Ab{b{d{h{f}}}}}D`}{{{b{GMd}}Ab{b{d{h{f}}}}}D`}{{{b{GMf}}Ab{b{d{h{f}}}}}D`}{{{b{GMh}}Ab{b{d{h{f}}}}}D`}{{{b{GMj}}Ab{b{d{h{f}}}}}D`}{{{b{GMl}}Ab{b{d{h{f}}}}}D`}{{{b{GMn}}Ab{b{d{h{f}}}}}D`}{{{b{GN`}}Ab{b{d{h{f}}}}}D`}{{{b{GNb}}Ab{b{d{h{f}}}}}D`}{{{b{GNd}}Ab{b{d{h{f}}}}}D`}{{{b{GNf}}Ab{b{d{h{f}}}}}D`}{{{b{GNh}}Ab{b{d{h{f}}}}}D`}{{{b{GNj}}Ab{b{d{h{f}}}}}D`}{{{b{GNl}}Ab{b{d{h{f}}}}}D`}{{{b{GNn}}Ab{b{d{h{f}}}}}D`}{{{b{GO`}}Ab{b{d{h{f}}}}}D`}{{{b{GOb}}Ab{b{d{h{f}}}}}D`}{{{b{GOd}}Ab{b{d{h{f}}}}}D`}{{{b{GOf}}Ab{b{d{h{f}}}}}D`}{{{b{GOh}}Ab{b{d{h{f}}}}}D`}{{{b{GOj}}Ab{b{d{h{f}}}}}D`}{{{b{GOl}}Ab{b{d{h{f}}}}}D`}{{{b{GOn}}Ab{b{d{h{f}}}}}D`}{{{b{H@`}}Ab{b{d{h{f}}}}}D`}{{{b{H@b}}Ab{b{d{h{f}}}}}D`}{{{b{H@d}}Ab{b{d{h{f}}}}}D`}{{{b{H@f}}Ab{b{d{h{f}}}}}D`}{{{b{H@h}}Ab{b{d{h{f}}}}}D`}{{{b{H@j}}Ab{b{d{h{f}}}}}D`}{{{b{H@l}}Ab{b{d{h{f}}}}}D`}{{{b{H@n}}Ab{b{d{h{f}}}}}D`}{{{b{HA`}}Ab{b{d{h{f}}}}}D`}{{{b{HAb}}Ab{b{d{h{f}}}}}D`}{{{b{HAd}}Ab{b{d{h{f}}}}}D`}{{{b{HAf}}Ab{b{d{h{f}}}}}D`}{{{b{HAh}}Ab{b{d{h{f}}}}}D`}{{{b{HAj}}Ab{b{d{h{f}}}}}D`}{{{b{HAl}}Ab{b{d{h{f}}}}}D`}{{{b{HAn}}Ab{b{d{h{f}}}}}D`}{{{b{HB`}}Ab{b{d{h{f}}}}}D`}{{{b{HBb}}Ab{b{d{h{f}}}}}D`}{{{b{HBd}}Ab{b{d{h{f}}}}}D`}{{{b{HBf}}Ab{b{d{h{f}}}}}D`}{{{b{HBh}}Ab{b{d{h{f}}}}}D`}{{{b{HBj}}Ab{b{d{h{f}}}}}D`}{{{b{HBl}}Ab{b{d{h{f}}}}}D`}{{{b{HBn}}Ab{b{d{h{f}}}}}D`}{{{b{HC`}}Ab{b{d{h{f}}}}}D`}{{{b{HCb}}Ab{b{d{h{f}}}}}D`}{{{b{HCd}}Ab{b{d{h{f}}}}}D`}{{{b{HCf}}Ab{b{d{h{f}}}}}D`}{{{b{HCh}}Ab{b{d{h{f}}}}}D`}{{{b{HCj}}Ab{b{d{h{f}}}}}D`}{{{b{HCl}}Ab{b{d{h{f}}}}}D`}{{{b{HCn}}Ab{b{d{h{f}}}}}D`}{{{b{HD`}}Ab{b{d{h{f}}}}}D`}{{{b{HDb}}Ab{b{d{h{f}}}}}D`}{{{b{HDd}}Ab{b{d{h{f}}}}}D`}{{{b{HDf}}Ab{b{d{h{f}}}}}D`}{{{b{HDh}}Ab{b{d{h{f}}}}}D`}{{{b{HDj}}Ab{b{d{h{f}}}}}D`}{{{b{HDl}}Ab{b{d{h{f}}}}}D`}{{{b{HDn}}Ab{b{d{h{f}}}}}D`}{{{b{HE`}}Ab{b{d{h{f}}}}}D`}{{{b{HEb}}Ab{b{d{h{f}}}}}D`}{{{b{HEd}}Ab{b{d{h{f}}}}}D`}{{{b{HEf}}Ab{b{d{h{f}}}}}D`}{{{b{HEh}}Ab{b{d{h{f}}}}}D`}{{{b{HEj}}Ab{b{d{h{f}}}}}D`}{{{b{HEl}}Ab{b{d{h{f}}}}}D`}{{{b{HEn}}Ab{b{d{h{f}}}}}D`}{{{b{HF`}}Ab{b{d{h{f}}}}}D`}{{{b{HFb}}Ab{b{d{h{f}}}}}D`}{{{b{HFd}}Ab{b{d{h{f}}}}}D`}{{{b{HFf}}Ab{b{d{h{f}}}}}D`}{{{b{HFh}}Ab{b{d{h{f}}}}}D`}{{{b{HFj}}Ab{b{d{h{f}}}}}D`}{{{b{HFl}}Ab{b{d{h{f}}}}}D`}{{{b{HFn}}Ab{b{d{h{f}}}}}D`}{{{b{HG`}}Ab{b{d{h{f}}}}}D`}{{{b{HGb}}Ab{b{d{h{f}}}}}D`}{{{b{HGd}}Ab{b{d{h{f}}}}}D`}{{{b{HGf}}Ab{b{d{h{f}}}}}D`}{{{b{HGh}}Ab{b{d{h{f}}}}}D`}{{{b{HGj}}Ab{b{d{h{f}}}}}D`}{{{b{HGl}}Ab{b{d{h{f}}}}}D`}{{{b{HGn}}Ab{b{d{h{f}}}}}D`}{{{b{HH`}}Ab{b{d{h{f}}}}}D`}{{{b{HHb}}Ab{b{d{h{f}}}}}D`}{{{b{HHd}}Ab{b{d{h{f}}}}}D`}{{{b{HHf}}Ab{b{d{h{f}}}}}D`}{{{b{HHh}}Ab{b{d{h{f}}}}}D`}{{{b{HHj}}Ab{b{d{h{f}}}}}D`}{{{b{HHl}}Ab{b{d{h{f}}}}}D`}{{{b{HHn}}Ab{b{d{h{f}}}}}D`}{{{b{HI`}}Ab{b{d{h{f}}}}}D`}{{{b{HIb}}Ab{b{d{h{f}}}}}D`}{{{b{HId}}Ab{b{d{h{f}}}}}D`}{{{b{HIf}}Ab{b{d{h{f}}}}}D`}{{{b{HIh}}Ab{b{d{h{f}}}}}D`}{{{b{HIj}}Ab{b{d{h{f}}}}}D`}{{{b{HIl}}Ab{b{d{h{f}}}}}D`}{{{b{HIn}}Ab{b{d{h{f}}}}}D`}{{{b{HJ`}}Ab{b{d{h{f}}}}}D`}{{{b{HJb}}Ab{b{d{h{f}}}}}D`}{{{b{HJd}}Ab{b{d{h{f}}}}}D`}{{{b{HJf}}Ab{b{d{h{f}}}}}D`}{{{b{HJh}}Ab{b{d{h{f}}}}}D`}{{{b{HJj}}Ab{b{d{h{f}}}}}D`}{{{b{HJl}}Ab{b{d{h{f}}}}}D`}{{{b{HJn}}Ab{b{d{h{f}}}}}D`}{{{b{HK`}}Ab{b{d{h{f}}}}}D`}{{{b{HKb}}Ab{b{d{h{f}}}}}D`}{{{b{HKd}}Ab{b{d{h{f}}}}}D`}{{{b{HKf}}Ab{b{d{h{f}}}}}D`}{{{b{HKh}}Ab{b{d{h{f}}}}}D`}{{{b{HKj}}Ab{b{d{h{f}}}}}D`}{{{b{HKl}}Ab{b{d{h{f}}}}}D`}{{{b{HKn}}Ab{b{d{h{f}}}}}D`}{{{b{HL`}}Ab{b{d{h{f}}}}}D`}{{{b{HLb}}Ab{b{d{h{f}}}}}D`}{{{b{HLd}}Ab{b{d{h{f}}}}}D`}{{{b{HLf}}Ab{b{d{h{f}}}}}D`}{{{b{HLh}}Ab{b{d{h{f}}}}}D`}{{{b{HLj}}Ab{b{d{h{f}}}}}D`}{{{b{HLl}}Ab{b{d{h{f}}}}}D`}{{{b{HLn}}Ab{b{d{h{f}}}}}D`}{{{b{HM`}}Ab{b{d{h{f}}}}}D`}{{{b{HMb}}Ab{b{d{h{f}}}}}D`}{{{b{HMd}}Ab{b{d{h{f}}}}}D`}{{{b{HMf}}Ab{b{d{h{f}}}}}D`}{{{b{HMh}}Ab{b{d{h{f}}}}}D`}{{{b{HMj}}Ab{b{d{h{f}}}}}D`}{{{b{HMl}}Ab{b{d{h{f}}}}}D`}{{{b{HMn}}Ab{b{d{h{f}}}}}D`}{{{b{HN`}}Ab{b{d{h{f}}}}}D`}{{{b{HNb}}Ab{b{d{h{f}}}}}D`}{{{b{HNd}}Ab{b{d{h{f}}}}}D`}{{{b{HNf}}Ab{b{d{h{f}}}}}D`}{{{b{HNh}}Ab{b{d{h{f}}}}}D`}{{{b{HNj}}Ab{b{d{h{f}}}}}D`}{{{b{HNl}}Ab{b{d{h{f}}}}}D`}{{{b{HNn}}Ab{b{d{h{f}}}}}D`}{{{b{HO`}}Ab{b{d{h{f}}}}}D`}{{{b{HOb}}Ab{b{d{h{f}}}}}D`}{{{b{HOd}}Ab{b{d{h{f}}}}}D`}{{{b{HOf}}Ab{b{d{h{f}}}}}D`}{{{b{HOh}}Ab{b{d{h{f}}}}}D`}{{{b{HOj}}Ab{b{d{h{f}}}}}D`}{{{b{HOl}}Ab{b{d{h{f}}}}}D`}{{{b{HOn}}Ab{b{d{h{f}}}}}D`}{{{b{I@`}}Ab{b{d{h{f}}}}}D`}{{{b{I@b}}Ab{b{d{h{f}}}}}D`}{{{b{I@d}}Ab{b{d{h{f}}}}}D`}{{{b{I@f}}Ab{b{d{h{f}}}}}D`}{{{b{I@h}}Ab{b{d{h{f}}}}}D`}{{{b{I@j}}Ab{b{d{h{f}}}}}D`}{{{b{I@l}}Ab{b{d{h{f}}}}}D`}{{{b{I@n}}Ab{b{d{h{f}}}}}D`}{{{b{IA`}}Ab{b{d{h{f}}}}}D`}{{{b{IAb}}Ab{b{d{h{f}}}}}D`}`{{{b{GEb}}c}BdDd}{{{b{GEd}}c}BdDd}{{{b{GEf}}c}BdDd}{{{b{GEh}}c}BdDd}{{{b{GEj}}c}BdDd}{{{b{GEl}}c}BdDd}{{{b{GEn}}c}BdDd}{{{b{GF`}}c}BdDd}{{{b{GFb}}c}BdDd}{{{b{GFd}}c}BdDd}{{{b{GFf}}c}BdDd}{{{b{GFh}}c}BdDd}{{{b{GFj}}c}BdDd}{{{b{GFl}}c}BdDd}{{{b{GFn}}c}BdDd}{{{b{GG`}}c}BdDd}{{{b{GGb}}c}BdDd}{{{b{GGd}}c}BdDd}{{{b{GGf}}c}BdDd}{{{b{GGh}}c}BdDd}{{{b{GGj}}c}BdDd}{{{b{GGl}}c}BdDd}{{{b{GGn}}c}BdDd}{{{b{GH`}}c}BdDd}{{{b{GHb}}c}BdDd}{{{b{GHd}}c}BdDd}{{{b{GHf}}c}BdDd}{{{b{GHh}}c}BdDd}{{{b{GHj}}c}BdDd}{{{b{GHl}}c}BdDd}{{{b{GHn}}c}BdDd}{{{b{GI`}}c}BdDd}{{{b{GIb}}c}BdDd}{{{b{GId}}c}BdDd}{{{b{GIf}}c}BdDd}{{{b{GIh}}c}BdDd}{{{b{GIj}}c}BdDd}{{{b{GIl}}c}BdDd}{{{b{GIn}}c}BdDd}{{{b{GJ`}}c}BdDd}{{{b{GJb}}c}BdDd}{{{b{GJd}}c}BdDd}{{{b{GJf}}c}BdDd}{{{b{GJh}}c}BdDd}{{{b{GJj}}c}BdDd}{{{b{GJl}}c}BdDd}{{{b{GJn}}c}BdDd}{{{b{GK`}}c}BdDd}{{{b{GKb}}c}BdDd}{{{b{GKd}}c}BdDd}{{{b{GKf}}c}BdDd}{{{b{GKh}}c}BdDd}{{{b{GKj}}c}BdDd}{{{b{GKl}}c}BdDd}{{{b{GKn}}c}BdDd}{{{b{GL`}}c}BdDd}{{{b{GLb}}c}BdDd}{{{b{GLd}}c}BdDd}{{{b{GLf}}c}BdDd}{{{b{GLh}}c}BdDd}{{{b{GLj}}c}BdDd}{{{b{GLl}}c}BdDd}{{{b{GLn}}c}BdDd}{{{b{GM`}}c}BdDd}{{{b{GMb}}c}BdDd}{{{b{GMd}}c}BdDd}{{{b{GMf}}c}BdDd}{{{b{GMh}}c}BdDd}{{{b{GMj}}c}BdDd}{{{b{GMl}}c}BdDd}{{{b{GMn}}c}BdDd}{{{b{GN`}}c}BdDd}{{{b{GNb}}c}BdDd}{{{b{GNd}}c}BdDd}{{{b{GNf}}c}BdDd}{{{b{GNh}}c}BdDd}{{{b{GNj}}c}BdDd}{{{b{GNl}}c}BdDd}{{{b{GNn}}c}BdDd}{{{b{GO`}}c}BdDd}{{{b{GOb}}c}BdDd}{{{b{GOd}}c}BdDd}{{{b{GOf}}c}BdDd}{{{b{GOh}}c}BdDd}{{{b{GOj}}c}BdDd}{{{b{GOl}}c}BdDd}{{{b{GOn}}c}BdDd}{{{b{H@`}}c}BdDd}{{{b{H@b}}c}BdDd}{{{b{H@d}}c}BdDd}{{{b{H@f}}c}BdDd}{{{b{H@h}}c}BdDd}{{{b{H@j}}c}BdDd}{{{b{H@l}}c}BdDd}{{{b{H@n}}c}BdDd}{{{b{HA`}}c}BdDd}{{{b{HAb}}c}BdDd}{{{b{HAd}}c}BdDd}{{{b{HAf}}c}BdDd}{{{b{HAh}}c}BdDd}{{{b{HAj}}c}BdDd}{{{b{HAl}}c}BdDd}{{{b{HAn}}c}BdDd}{{{b{HB`}}c}BdDd}{{{b{HBb}}c}BdDd}{{{b{HBd}}c}BdDd}{{{b{HBf}}c}BdDd}{{{b{HBh}}c}BdDd}{{{b{HBj}}c}BdDd}{{{b{HBl}}c}BdDd}{{{b{HBn}}c}BdDd}{{{b{HC`}}c}BdDd}{{{b{HCb}}c}BdDd}{{{b{HCd}}c}BdDd}{{{b{HCf}}c}BdDd}{{{b{HCh}}c}BdDd}{{{b{HCj}}c}BdDd}{{{b{HCl}}c}BdDd}{{{b{HCn}}c}BdDd}{{{b{HD`}}c}BdDd}{{{b{HDb}}c}BdDd}{{{b{HDd}}c}BdDd}{{{b{HDf}}c}BdDd}{{{b{HDh}}c}BdDd}{{{b{HDj}}c}BdDd}{{{b{HDl}}c}BdDd}{{{b{HDn}}c}BdDd}{{{b{HE`}}c}BdDd}{{{b{HEb}}c}BdDd}{{{b{HEd}}c}BdDd}{{{b{HEf}}c}BdDd}{{{b{HEh}}c}BdDd}{{{b{HEj}}c}BdDd}{{{b{HEl}}c}BdDd}{{{b{HEn}}c}BdDd}{{{b{HF`}}c}BdDd}{{{b{HFb}}c}BdDd}{{{b{HFd}}c}BdDd}{{{b{HFf}}c}BdDd}{{{b{HFh}}c}BdDd}{{{b{HFj}}c}BdDd}{{{b{HFl}}c}BdDd}{{{b{HFn}}c}BdDd}{{{b{HG`}}c}BdDd}{{{b{HGb}}c}BdDd}{{{b{HGd}}c}BdDd}{{{b{HGf}}c}BdDd}{{{b{HGh}}c}BdDd}{{{b{HGj}}c}BdDd}{{{b{HGl}}c}BdDd}{{{b{HGn}}c}BdDd}{{{b{HH`}}c}BdDd}{{{b{HHb}}c}BdDd}{{{b{HHd}}c}BdDd}{{{b{HHf}}c}BdDd}{{{b{HHh}}c}BdDd}{{{b{HHj}}c}BdDd}{{{b{HHl}}c}BdDd}{{{b{HHn}}c}BdDd}{{{b{HI`}}c}BdDd}{{{b{HIb}}c}BdDd}{{{b{HId}}c}BdDd}{{{b{HIf}}c}BdDd}{{{b{HIh}}c}BdDd}{{{b{HIj}}c}BdDd}{{{b{HIl}}c}BdDd}{{{b{HIn}}c}BdDd}{{{b{HJ`}}c}BdDd}{{{b{HJb}}c}BdDd}{{{b{HJd}}c}BdDd}{{{b{HJf}}c}BdDd}{{{b{HJh}}c}BdDd}{{{b{HJj}}c}BdDd}{{{b{HJl}}c}BdDd}{{{b{HJn}}c}BdDd}{{{b{HK`}}c}BdDd}{{{b{HKb}}c}BdDd}{{{b{HKd}}c}BdDd}{{{b{HKf}}c}BdDd}{{{b{HKh}}c}BdDd}{{{b{HKj}}c}BdDd}{{{b{HKl}}c}BdDd}{{{b{HKn}}c}BdDd}{{{b{HL`}}c}BdDd}{{{b{HLb}}c}BdDd}{{{b{HLd}}c}BdDd}{{{b{HLf}}c}BdDd}{{{b{HLh}}c}BdDd}{{{b{HLj}}c}BdDd}{{{b{HLl}}c}BdDd}{{{b{HLn}}c}BdDd}{{{b{HM`}}c}BdDd}{{{b{HMb}}c}BdDd}{{{b{HMd}}c}BdDd}{{{b{HMf}}c}BdDd}{{{b{HMh}}c}BdDd}{{{b{HMj}}c}BdDd}{{{b{HMl}}c}BdDd}{{{b{HMn}}c}BdDd}{{{b{HN`}}c}BdDd}{{{b{HNb}}c}BdDd}{{{b{HNd}}c}BdDd}{{{b{HNf}}c}BdDd}{{{b{HNh}}c}BdDd}{{{b{HNj}}c}BdDd}{{{b{HNl}}c}BdDd}{{{b{HNn}}c}BdDd}{{{b{HO`}}c}BdDd}{{{b{HOb}}c}BdDd}{{{b{HOd}}c}BdDd}{{{b{HOf}}c}BdDd}{{{b{HOh}}c}BdDd}{{{b{HOj}}c}BdDd}{{{b{HOl}}c}BdDd}{{{b{HOn}}c}BdDd}{{{b{I@`}}c}BdDd}{{{b{I@b}}c}BdDd}{{{b{I@d}}c}BdDd}{{{b{I@f}}c}BdDd}{{{b{I@h}}c}BdDd}{{{b{I@j}}c}BdDd}{{{b{I@l}}c}BdDd}{{{b{I@n}}c}BdDd}{{{b{IA`}}c}BdDd}{{{b{IAb}}c}BdDd}{{{b{IAd}}c}BdDd}{{{b{IAf}}c}BdDd}{{{b{IAh}}c}BdDd}{{{b{IAj}}c}BdDd}{{{b{IAl}}c}BdDd}{{{b{GAj}}c}BdDd}{{{b{IAn}}c}BdDd}{{{b{IB`}}c}BdDd}{{{b{GAl}}c}BdDd}{{{b{IBb}}c}BdDd}{{{b{IBd}}c}BdDd}{{{b{IBf}}c}BdDd}{{{b{IBh}}c}BdDd}{{{b{IBj}}c}BdDd}{{{b{IBl}}c}BdDd}{{{b{IBn}}c}BdDd}{{{b{IC`}}c}BdDd}{{{b{ICb}}c}BdDd}{{{b{ICd}}c}BdDd}{{{b{ICf}}c}BdDd}{{{b{ICh}}c}BdDd}{{{b{ICj}}c}BdDd}{{{b{ICl}}c}BdDd}{{{b{ICn}}c}BdDd}{{{b{ID`}}c}BdDd}{{{b{IDb}}c}BdDd}{{{b{IDd}}c}BdDd}{{{b{IDf}}c}BdDd}{{{b{IDh}}c}BdDd}{{{b{IDj}}c}BdDd}{{{b{IDl}}c}BdDd}{{{b{IDn}}c}BdDd}{{{b{IE`}}c}BdDd}{{{b{IEb}}c}BdDd}{{{b{GAn}}c}BdDd}{{{b{GB`}}c}BdDd}{{{b{IEd}}c}BdDd}{{{b{GBb}}c}BdDd}{{{b{IEf}}c}BdDd}{{{b{IEh}}c}BdDd}{{{b{IEj}}c}BdDd}{{{b{IEl}}c}BdDd}{{{b{IEn}}c}BdDd}{{{b{IF`}}c}BdDd}{{{b{IFb}}c}BdDd}{{{b{IFd}}c}BdDd}{{{b{IFf}}c}BdDd}{{{b{IFh}}c}BdDd}{{{b{GBd}}c}BdDd}{{{b{IFj}}c}BdDd}{{{b{IFl}}c}BdDd}{{{b{IFn}}c}BdDd}{{{b{IG`}}c}BdDd}{{{b{IGb}}c}BdDd}{{{b{GBf}}c}BdDd}{{{b{IGd}}c}BdDd}{{{b{IGf}}c}BdDd}{{{b{IGh}}c}BdDd}{{{b{IGj}}c}BdDd}{{{b{IGl}}c}BdDd}{{{b{GBh}}c}BdDd}{{{b{IGn}}c}BdDd}{{{b{IH`}}c}BdDd}{{{b{GBj}}c}BdDd}{{{b{IHb}}c}BdDd}{{{b{IHd}}c}BdDd}{{{b{IHf}}c}BdDd}{{{b{IHh}}c}BdDd}{{{b{IHj}}c}BdDd}{{{b{IHl}}c}BdDd}{{{b{IHn}}c}BdDd}{{{b{II`}}c}BdDd}{{{b{IIb}}c}BdDd}{{{b{IId}}c}BdDd}{{{b{IIf}}c}BdDd}{{{b{IIh}}c}BdDd}{{{b{IIj}}c}BdDd}{{{b{IIl}}c}BdDd}{{{b{IIn}}c}BdDd}{{{b{GBl}}c}BdDd}{{{b{IJ`}}c}BdDd}{{{b{GBn}}c}BdDd}{{{b{IJb}}c}BdDd}{{{b{IJd}}c}BdDd}{{{b{IJf}}c}BdDd}{{{b{GC`}}c}BdDd}{{{b{IJh}}c}BdDd}{{{b{IJj}}c}BdDd}{{{b{IJl}}c}BdDd}{{{b{IJn}}c}BdDd}{{{b{IK`}}c}BdDd}{{{b{IKb}}c}BdDd}{{{b{IKd}}c}BdDd}{{{b{IKf}}c}BdDd}{{{b{IKh}}c}BdDd}{{{b{IKj}}c}BdDd}{{{b{IKl}}c}BdDd}{{{b{IKn}}c}BdDd}{{{b{IL`}}c}BdDd}{{{b{ILb}}c}BdDd}{{{b{GCb}}c}BdDd}{{{b{ILd}}c}BdDd}{{{b{GCd}}c}BdDd}{{{b{GCf}}c}BdDd}{{{b{ILf}}c}BdDd}{{{b{ILh}}c}BdDd}{{{b{ILj}}c}BdDd}{{{b{GCh}}c}BdDd}{{{b{ILl}}c}BdDd}{{{b{ILn}}c}BdDd}{{{b{IM`}}c}BdDd}{{{b{GCj}}c}BdDd}{{{b{GCl}}c}BdDd}{{{b{IMb}}c}BdDd}{{{b{GCn}}c}BdDd}{{{b{GD`}}c}BdDd}{{{b{GDb}}c}BdDd}{{{b{GDd}}c}BdDd}{{{b{IMd}}c}BdDd}{{{b{IMf}}c}BdDd}{{{b{IMh}}c}BdDd}{{{b{IMj}}c}BdDd}{{{b{IMl}}c}BdDd}{{{b{IMn}}c}BdDd}{{{b{GDf}}c}BdDd}{{{b{IN`}}c}BdDd}{{{b{GDh}}c}BdDd}{{{b{INb}}c}BdDd}{{{b{INd}}c}BdDd}{{{b{INf}}c}BdDd}{{{b{INh}}c}BdDd}{{{b{INj}}c}BdDd}{{{b{GDj}}c}BdDd}{{{b{GDl}}c}BdDd}{{{b{GDn}}c}BdDd}{{{b{INl}}c}BdDd}{{{b{INn}}c}BdDd}{{{b{IO`}}c}BdDd}{{{b{IOb}}c}BdDd}{{{b{IOd}}c}BdDd}{{{b{IOf}}c}BdDd}{{{b{IOh}}c}BdDd}{{{b{IOj}}c}BdDd}{{{b{IOl}}c}BdDd}{{{b{GE`}}c}BdDd}````````{{{b{dGAj}}GAjC`}Aj}{{{b{dGAl}}GAlC`}Aj}{{{b{dGAn}}GAnC`}Aj}{{{b{dGB`}}GB`C`}Aj}{{{b{dGBb}}GBbC`}Aj}{{{b{dGBd}}GBdC`}Aj}{{{b{dGBf}}GBfC`}Aj}{{{b{dGBh}}GBhC`}Aj}{{{b{dGBj}}GBjC`}Aj}{{{b{dGBl}}GBlC`}Aj}{{{b{dGBn}}GBnC`}Aj}{{{b{dGC`}}GC`C`}Aj}{{{b{dGCb}}GCbC`}Aj}{{{b{dGCd}}GCdC`}Aj}{{{b{dGCf}}GCfC`}Aj}{{{b{dGCh}}GChC`}Aj}{{{b{dGCj}}GCjC`}Aj}{{{b{dGCl}}GClC`}Aj}{{{b{dGCn}}GCnC`}Aj}{{{b{dGD`}}GD`C`}Aj}{{{b{dGDb}}GDbC`}Aj}{{{b{dGDd}}GDdC`}Aj}{{{b{dGDf}}GDfC`}Aj}{{{b{dGDh}}GDhC`}Aj}{{{b{dGDj}}GDjC`}Aj}{{{b{dGDl}}GDlC`}Aj}{{{b{dGDn}}GDnC`}Aj}{{{b{dGE`}}GE`C`}Aj}```````````````````````````````````````````{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}`````{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{IAd}}}{{DBj{DBl}}}}{{{b{IAf}}}{{DBj{DBl}}}}{{{b{IAh}}}{{DBj{DBl}}}}{{{b{IAj}}}{{DBj{DBl}}}}{{{b{IAl}}}{{DBj{DBl}}}}{{{b{IAn}}}{{DBj{DBl}}}}{{{b{IB`}}}{{DBj{DBl}}}}{{{b{IBb}}}{{DBj{DBl}}}}{{{b{IBd}}}{{DBj{DBl}}}}{{{b{IBf}}}{{DBj{DBl}}}}{{{b{IBh}}}{{DBj{DBl}}}}{{{b{IBj}}}{{DBj{DBl}}}}{{{b{IBl}}}{{DBj{DBl}}}}{{{b{IBn}}}{{DBj{DBl}}}}{{{b{IC`}}}{{DBj{DBl}}}}{{{b{ICb}}}{{DBj{DBl}}}}{{{b{ICd}}}{{DBj{DBl}}}}{{{b{ICf}}}{{DBj{DBl}}}}{{{b{ICh}}}{{DBj{DBl}}}}{{{b{ICj}}}{{DBj{DBl}}}}{{{b{ICl}}}{{DBj{DBl}}}}{{{b{ICn}}}{{DBj{DBl}}}}{{{b{ID`}}}{{DBj{DBl}}}}{{{b{IDb}}}{{DBj{DBl}}}}{{{b{IDd}}}{{DBj{DBl}}}}{{{b{IDf}}}{{DBj{DBl}}}}{{{b{IDh}}}{{DBj{DBl}}}}{{{b{IDj}}}{{DBj{DBl}}}}{{{b{IDl}}}{{DBj{DBl}}}}{{{b{IDn}}}{{DBj{DBl}}}}{{{b{IE`}}}{{DBj{DBl}}}}{{{b{IEb}}}{{DBj{DBl}}}}{{{b{IEd}}}{{DBj{DBl}}}}{{{b{IEf}}}{{DBj{DBl}}}}{{{b{IEh}}}{{DBj{DBl}}}}{{{b{IEj}}}{{DBj{DBl}}}}{{{b{IEl}}}{{DBj{DBl}}}}{{{b{IEn}}}{{DBj{DBl}}}}{{{b{IF`}}}{{DBj{DBl}}}}{{{b{IFb}}}{{DBj{DBl}}}}{{{b{IFd}}}{{DBj{DBl}}}}{{{b{IFf}}}{{DBj{DBl}}}}{{{b{IFh}}}{{DBj{DBl}}}}{{{b{IFj}}}{{DBj{DBl}}}}{{{b{IFl}}}{{DBj{DBl}}}}{{{b{IFn}}}{{DBj{DBl}}}}{{{b{IG`}}}{{DBj{DBl}}}}{{{b{IGb}}}{{DBj{DBl}}}}{{{b{IGd}}}{{DBj{DBl}}}}{{{b{IGf}}}{{DBj{DBl}}}}{{{b{IGh}}}{{DBj{DBl}}}}{{{b{IGj}}}{{DBj{DBl}}}}{{{b{IGl}}}{{DBj{DBl}}}}{{{b{IGn}}}{{DBj{DBl}}}}{{{b{IH`}}}{{DBj{DBl}}}}{{{b{IHb}}}{{DBj{DBl}}}}{{{b{IHd}}}{{DBj{DBl}}}}{{{b{IHf}}}{{DBj{DBl}}}}{{{b{IHh}}}{{DBj{DBl}}}}{{{b{IHj}}}{{DBj{DBl}}}}{{{b{IHl}}}{{DBj{DBl}}}}{{{b{IHn}}}{{DBj{DBl}}}}{{{b{II`}}}{{DBj{DBl}}}}{{{b{IIb}}}{{DBj{DBl}}}}{{{b{IId}}}{{DBj{DBl}}}}{{{b{IIf}}}{{DBj{DBl}}}}{{{b{IIh}}}{{DBj{DBl}}}}{{{b{IIj}}}{{DBj{DBl}}}}{{{b{IIl}}}{{DBj{DBl}}}}{{{b{IIn}}}{{DBj{DBl}}}}{{{b{IJ`}}}{{DBj{DBl}}}}{{{b{IJb}}}{{DBj{DBl}}}}{{{b{IJd}}}{{DBj{DBl}}}}{{{b{IJf}}}{{DBj{DBl}}}}{{{b{IJh}}}{{DBj{DBl}}}}{{{b{IJj}}}{{DBj{DBl}}}}{{{b{IJl}}}{{DBj{DBl}}}}{{{b{IJn}}}{{DBj{DBl}}}}{{{b{IK`}}}{{DBj{DBl}}}}{{{b{IKb}}}{{DBj{DBl}}}}{{{b{IKd}}}{{DBj{DBl}}}}{{{b{IKf}}}{{DBj{DBl}}}}{{{b{IKh}}}{{DBj{DBl}}}}{{{b{IKj}}}{{DBj{DBl}}}}{{{b{IKl}}}{{DBj{DBl}}}}{{{b{IKn}}}{{DBj{DBl}}}}{{{b{IL`}}}{{DBj{DBl}}}}{{{b{ILb}}}{{DBj{DBl}}}}{{{b{ILd}}}{{DBj{DBl}}}}{{{b{ILf}}}{{DBj{DBl}}}}{{{b{ILh}}}{{DBj{DBl}}}}{{{b{ILj}}}{{DBj{DBl}}}}{{{b{ILl}}}{{DBj{DBl}}}}{{{b{ILn}}}{{DBj{DBl}}}}{{{b{IM`}}}{{DBj{DBl}}}}{{{b{IMb}}}{{DBj{DBl}}}}{{{b{IMd}}}{{DBj{DBl}}}}{{{b{IMf}}}{{DBj{DBl}}}}{{{b{IMh}}}{{DBj{DBl}}}}{{{b{IMj}}}{{DBj{DBl}}}}{{{b{IMl}}}{{DBj{DBl}}}}{{{b{IMn}}}{{DBj{DBl}}}}{{{b{IN`}}}{{DBj{DBl}}}}{{{b{INb}}}{{DBj{DBl}}}}{{{b{INd}}}{{DBj{DBl}}}}{{{b{INf}}}{{DBj{DBl}}}}{{{b{INh}}}{{DBj{DBl}}}}{{{b{INj}}}{{DBj{DBl}}}}{{{b{INl}}}{{DBj{DBl}}}}{{{b{INn}}}{{DBj{DBl}}}}{{{b{IO`}}}{{DBj{DBl}}}}{{{b{IOb}}}{{DBj{DBl}}}}{{{b{IOd}}}{{DBj{DBl}}}}{{{b{IOf}}}{{DBj{DBl}}}}{{{b{IOh}}}{{DBj{DBl}}}}{{{b{IOj}}}{{DBj{DBl}}}}{{{b{IOl}}}{{DBj{DBl}}}}{{{b{c}}}e{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{IAd}}}{{DBj{Hl}}}}{{{b{IAf}}}{{DBj{Hl}}}}{{{b{IAh}}}{{DBj{Hl}}}}{{{b{IAj}}}{{DBj{Hl}}}}{{{b{IAl}}}{{DBj{Hl}}}}{{{b{IAn}}}{{DBj{Hl}}}}{{{b{IB`}}}{{DBj{Hl}}}}{{{b{IBb}}}{{DBj{Hl}}}}{{{b{IBd}}}{{DBj{Hl}}}}{{{b{IBf}}}{{DBj{Hl}}}}{{{b{IBh}}}{{DBj{Hl}}}}{{{b{IBj}}}{{DBj{Hl}}}}{{{b{IBl}}}{{DBj{Hl}}}}{{{b{IBn}}}{{DBj{Hl}}}}{{{b{IC`}}}{{DBj{Hl}}}}{{{b{ICb}}}{{DBj{Hl}}}}{{{b{ICd}}}{{DBj{Hl}}}}{{{b{ICf}}}{{DBj{Hl}}}}{{{b{ICh}}}{{DBj{Hl}}}}{{{b{ICj}}}{{DBj{Hl}}}}{{{b{ICl}}}{{DBj{Hl}}}}{{{b{ICn}}}{{DBj{Hl}}}}{{{b{ID`}}}{{DBj{Hl}}}}{{{b{IDb}}}{{DBj{Hl}}}}{{{b{IDd}}}{{DBj{Hl}}}}{{{b{IDf}}}{{DBj{Hl}}}}{{{b{IDh}}}{{DBj{Hl}}}}{{{b{IDj}}}{{DBj{Hl}}}}{{{b{IDl}}}{{DBj{Hl}}}}{{{b{IDn}}}{{DBj{Hl}}}}{{{b{IE`}}}{{DBj{Hl}}}}{{{b{IEb}}}{{DBj{Hl}}}}{{{b{IEd}}}{{DBj{Hl}}}}{{{b{IEf}}}{{DBj{Hl}}}}{{{b{IEh}}}{{DBj{Hl}}}}{{{b{IEj}}}{{DBj{Hl}}}}{{{b{IEl}}}{{DBj{Hl}}}}{{{b{IEn}}}{{DBj{Hl}}}}{{{b{IF`}}}{{DBj{Hl}}}}{{{b{IFb}}}{{DBj{Hl}}}}{{{b{IFd}}}{{DBj{Hl}}}}{{{b{IFf}}}{{DBj{Hl}}}}{{{b{IFh}}}{{DBj{Hl}}}}{{{b{IFj}}}{{DBj{Hl}}}}{{{b{IFl}}}{{DBj{Hl}}}}{{{b{IFn}}}{{DBj{Hl}}}}{{{b{IG`}}}{{DBj{Hl}}}}{{{b{IGb}}}{{DBj{Hl}}}}{{{b{IGd}}}{{DBj{Hl}}}}{{{b{IGf}}}{{DBj{Hl}}}}{{{b{IGh}}}{{DBj{Hl}}}}{{{b{IGj}}}{{DBj{Hl}}}}{{{b{IGl}}}{{DBj{Hl}}}}{{{b{IGn}}}{{DBj{Hl}}}}{{{b{IH`}}}{{DBj{Hl}}}}{{{b{IHb}}}{{DBj{Hl}}}}{{{b{IHd}}}{{DBj{Hl}}}}{{{b{IHf}}}{{DBj{Hl}}}}{{{b{IHh}}}{{DBj{Hl}}}}{{{b{IHj}}}{{DBj{Hl}}}}{{{b{IHl}}}{{DBj{Hl}}}}{{{b{IHn}}}{{DBj{Hl}}}}{{{b{II`}}}{{DBj{Hl}}}}{{{b{IIb}}}{{DBj{Hl}}}}{{{b{IId}}}{{DBj{Hl}}}}{{{b{IIf}}}{{DBj{Hl}}}}{{{b{IIh}}}{{DBj{Hl}}}}{{{b{IIj}}}{{DBj{Hl}}}}{{{b{IIl}}}{{DBj{Hl}}}}{{{b{IIn}}}{{DBj{Hl}}}}{{{b{IJ`}}}{{DBj{Hl}}}}{{{b{IJb}}}{{DBj{Hl}}}}{{{b{IJd}}}{{DBj{Hl}}}}{{{b{IJf}}}{{DBj{Hl}}}}{{{b{IJh}}}{{DBj{Hl}}}}{{{b{IJj}}}{{DBj{Hl}}}}{{{b{IJl}}}{{DBj{Hl}}}}{{{b{IJn}}}{{DBj{Hl}}}}{{{b{IK`}}}{{DBj{Hl}}}}{{{b{IKb}}}{{DBj{Hl}}}}{{{b{IKd}}}{{DBj{Hl}}}}{{{b{IKf}}}{{DBj{Hl}}}}{{{b{IKh}}}{{DBj{Hl}}}}{{{b{IKj}}}{{DBj{Hl}}}}{{{b{IKl}}}{{DBj{Hl}}}}{{{b{IKn}}}{{DBj{Hl}}}}{{{b{IL`}}}{{DBj{Hl}}}}{{{b{ILb}}}{{DBj{Hl}}}}{{{b{ILd}}}{{DBj{Hl}}}}{{{b{ILf}}}{{DBj{Hl}}}}{{{b{ILh}}}{{DBj{Hl}}}}{{{b{ILj}}}{{DBj{Hl}}}}{{{b{ILl}}}{{DBj{Hl}}}}{{{b{ILn}}}{{DBj{Hl}}}}{{{b{IM`}}}{{DBj{Hl}}}}{{{b{IMb}}}{{DBj{Hl}}}}{{{b{IMd}}}{{DBj{Hl}}}}{{{b{IMf}}}{{DBj{Hl}}}}{{{b{IMh}}}{{DBj{Hl}}}}{{{b{IMj}}}{{DBj{Hl}}}}{{{b{IMl}}}{{DBj{Hl}}}}{{{b{IMn}}}{{DBj{Hl}}}}{{{b{IN`}}}{{DBj{Hl}}}}{{{b{INb}}}{{DBj{Hl}}}}{{{b{INd}}}{{DBj{Hl}}}}{{{b{INf}}}{{DBj{Hl}}}}{{{b{INh}}}{{DBj{Hl}}}}{{{b{INj}}}{{DBj{Hl}}}}{{{b{INl}}}{{DBj{Hl}}}}{{{b{INn}}}{{DBj{Hl}}}}{{{b{IO`}}}{{DBj{Hl}}}}{{{b{IOb}}}{{DBj{Hl}}}}{{{b{IOd}}}{{DBj{Hl}}}}{{{b{IOf}}}{{DBj{Hl}}}}{{{b{IOh}}}{{DBj{Hl}}}}{{{b{IOj}}}{{DBj{Hl}}}}{{{b{IOl}}}{{DBj{Hl}}}}{{{b{dGAj}}GAj}Aj}{{{b{dGAl}}GAl}Aj}{{{b{dGAn}}GAn}Aj}{{{b{dGB`}}GB`}Aj}{{{b{dGBb}}GBb}Aj}{{{b{dGBd}}GBd}Aj}{{{b{dGBf}}GBf}Aj}{{{b{dGBh}}GBh}Aj}{{{b{dGBj}}GBj}Aj}{{{b{dGBl}}GBl}Aj}{{{b{dGBn}}GBn}Aj}{{{b{dGC`}}GC`}Aj}{{{b{dGCb}}GCb}Aj}{{{b{dGCd}}GCd}Aj}{{{b{dGCf}}GCf}Aj}{{{b{dGCh}}GCh}Aj}{{{b{dGCj}}GCj}Aj}{{{b{dGCl}}GCl}Aj}{{{b{dGCn}}GCn}Aj}{{{b{dGD`}}GD`}Aj}{{{b{dGDb}}GDb}Aj}{{{b{dGDd}}GDd}Aj}{{{b{dGDf}}GDf}Aj}{{{b{dGDh}}GDh}Aj}{{{b{dGDj}}GDj}Aj}{{{b{dGDl}}GDl}Aj}{{{b{dGDn}}GDn}Aj}{{{b{dGE`}}GE`}Aj}````````{c{{Bd{e}}}{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000```````````{{{b{c}}}Dh{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000```````````{{GAjGAj}GAj}{{GAlGAl}GAl}{{GAnGAn}GAn}{{GB`GB`}GB`}{{GBbGBb}GBb}{{GBdGBd}GBd}{{GBfGBf}GBf}{{GBhGBh}GBh}{{GBjGBj}GBj}{{GBlGBl}GBl}{{GBnGBn}GBn}{{GC`GC`}GC`}{{GCbGCb}GCb}{{GCdGCd}GCd}{{GCfGCf}GCf}{{GChGCh}GCh}{{GCjGCj}GCj}{{GClGCl}GCl}{{GCnGCn}GCn}{{GD`GD`}GD`}{{GDbGDb}GDb}{{GDdGDd}GDd}{{GDfGDf}GDf}{{GDhGDh}GDh}{{GDjGDj}GDj}{{GDlGDl}GDl}{{GDnGDn}GDn}{{GE`GE`}GE`}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{b{{h{f}}}}}D`}","D":"AHCfMOh","p":[[1,"reference"],[0,"mut"],[1,"u8"],[1,"slice"],[1,"u16"],[5,"MAVLinkV1MessageRaw",0,39175],[5,"MAVLinkV2MessageRaw",0,39175],[5,"MavHeader",0,39175],[6,"MavlinkVersion",0,39175],[5,"MavFrame",0,39175],[10,"Clone",39176],[10,"Message",0,39175],[1,"unit"],[1,"str"],[10,"MavConnection",0,39177],[5,"Box",39178],[5,"Error",39179],[6,"Result",39180],[1,"u32"],[17,"Message"],[10,"MessageData",0,39175],[6,"ParserError",27060,39181],[10,"Deserializer",39182],[1,"bool"],[5,"Formatter",39183],[5,"Error",39183],[10,"Debug",39183],[5,"PeekReader",27239,39184],[1,"tuple"],[6,"MessageReadError",27060,39181],[10,"Read",39185],[1,"usize"],[6,"MessageWriteError",27060,39181],[10,"Serializer",39186],[10,"Serialize",39186],[5,"TypeId",39187],[10,"Write",39185],[5,"EkfStatusFlags",156],[5,"RallyFlags",156],[5,"UavionixAdsbOutDynamicState",156],[5,"PositionTargetTypemask",156],[5,"SerialControlFlag",156],[5,"MavWinchStatusFlag",156],[5,"HlFailureFlag",156],[5,"LimitModule",156],[5,"EstimatorStatusFlags",156],[5,"MavModeFlag",156],[5,"UavionixAdsbRfHealth",156],[5,"UtmDataAvailFlags",156],[5,"TuneFormat",156],[5,"MavSysStatusSensor",156],[5,"UavionixAdsbOutRfSelect",156],[5,"GpsInputIgnoreFlags",156],[5,"HilSensorUpdatedFlags",156],[5,"EscFailureFlags",156],[5,"HighresImuUpdatedFlags",156],[5,"MavEventCurrentSequenceFlags",156],[5,"CameraCapFlags",156],[5,"GimbalManagerCapFlags",156],[5,"GoproHeartbeatFlags",156],[5,"AisFlags",156],[5,"AdsbFlags",156],[5,"MavGeneratorStatusFlag",156],[5,"GimbalDeviceErrorFlags",156],[5,"GimbalDeviceFlags",156],[5,"GimbalDeviceCapFlags",156],[5,"AttitudeTargetTypemask",156],[5,"MavPowerStatus",156],[5,"MavProtocolCapability",156],[1,"u64"],[6,"MavMessage",156],[5,"OSD_PARAM_CONFIG_DATA",156],[5,"GPS_STATUS_DATA",156],[5,"FOLLOW_TARGET_DATA",156],[5,"ALTITUDE_DATA",156],[5,"COMMAND_INT_DATA",156],[5,"LOG_REQUEST_DATA_DATA",156],[5,"MCU_STATUS_DATA",156],[5,"ONBOARD_COMPUTER_STATUS_DATA",156],[5,"VISION_SPEED_ESTIMATE_DATA",156],[5,"GIMBAL_REPORT_DATA",156],[5,"ESC_TELEMETRY_1_TO_4_DATA",156],[5,"AIRSPEED_AUTOCAL_DATA",156],[5,"SAFETY_SET_ALLOWED_AREA_DATA",156],[5,"HERELINK_TELEM_DATA",156],[5,"ACTUATOR_OUTPUT_STATUS_DATA",156],[5,"RC_CHANNELS_RAW_DATA",156],[5,"GOPRO_HEARTBEAT_DATA",156],[5,"SET_ATTITUDE_TARGET_DATA",156],[5,"VIDEO_STREAM_INFORMATION_DATA",156],[5,"COMPONENT_INFORMATION_DATA",156],[5,"VIDEO_STREAM_STATUS_DATA",156],[5,"SET_GPS_GLOBAL_ORIGIN_DATA",156],[5,"OPEN_DRONE_ID_BASIC_ID_DATA",156],[5,"SAFETY_ALLOWED_AREA_DATA",156],[5,"DATA_STREAM_DATA",156],[5,"CELLULAR_STATUS_DATA",156],[5,"MAG_CAL_REPORT_DATA",156],[5,"REMOTE_LOG_BLOCK_STATUS_DATA",156],[5,"GIMBAL_MANAGER_SET_PITCHYAW_DATA",156],[5,"MISSION_ITEM_INT_DATA",156],[5,"OBSTACLE_DISTANCE_3D_DATA",156],[5,"HIL_RC_INPUTS_RAW_DATA",156],[5,"PARAM_REQUEST_LIST_DATA",156],[5,"CAMERA_FEEDBACK_DATA",156],[5,"STATUSTEXT_DATA",156],[5,"GIMBAL_MANAGER_STATUS_DATA",156],[5,"MISSION_REQUEST_PARTIAL_LIST_DATA",156],[5,"DEEPSTALL_DATA",156],[5,"BATTERY_STATUS_DATA",156],[5,"MISSION_COUNT_DATA",156],[5,"COLLISION_DATA",156],[5,"DEVICE_OP_WRITE_DATA",156],[5,"DIGICAM_CONFIGURE_DATA",156],[5,"SET_POSITION_TARGET_LOCAL_NED_DATA",156],[5,"CAMERA_TRIGGER_DATA",156],[5,"OPEN_DRONE_ID_SELF_ID_DATA",156],[5,"MISSION_REQUEST_INT_DATA",156],[5,"GENERATOR_STATUS_DATA",156],[5,"HIGH_LATENCY2_DATA",156],[5,"SCALED_PRESSURE_DATA",156],[5,"SET_POSITION_TARGET_GLOBAL_INT_DATA",156],[5,"SET_ACTUATOR_CONTROL_TARGET_DATA",156],[5,"LOGGING_DATA_DATA",156],[5,"CURRENT_EVENT_SEQUENCE_DATA",156],[5,"HIL_OPTICAL_FLOW_DATA",156],[5,"ODOMETRY_DATA",156],[5,"DEBUG_FLOAT_ARRAY_DATA",156],[5,"LOG_DATA_DATA",156],[5,"RADIO_STATUS_DATA",156],[5,"CUBEPILOT_FIRMWARE_UPDATE_START_DATA",156],[5,"OSD_PARAM_SHOW_CONFIG_DATA",156],[5,"AP_ADC_DATA",156],[5,"UAVIONIX_ADSB_OUT_DYNAMIC_DATA",156],[5,"COMPASSMOT_STATUS_DATA",156],[5,"MISSION_ITEM_REACHED_DATA",156],[5,"WIFI_CONFIG_AP_DATA",156],[5,"CANFD_FRAME_DATA",156],[5,"MOUNT_STATUS_DATA",156],[5,"SUPPORTED_TUNES_DATA",156],[5,"GPS_GLOBAL_ORIGIN_DATA",156],[5,"LOG_REQUEST_LIST_DATA",156],[5,"NAV_CONTROLLER_OUTPUT_DATA",156],[5,"OPEN_DRONE_ID_AUTHENTICATION_DATA",156],[5,"LANDING_TARGET_DATA",156],[5,"ATTITUDE_DATA",156],[5,"SCALED_IMU2_DATA",156],[5,"RESPONSE_EVENT_ERROR_DATA",156],[5,"NAMED_VALUE_FLOAT_DATA",156],[5,"MISSION_ITEM_DATA",156],[5,"SET_MODE_DATA",156],[5,"EFI_STATUS_DATA",156],[5,"DISTANCE_SENSOR_DATA",156],[5,"DATA64_DATA",156],[5,"SMART_BATTERY_INFO_DATA",156],[5,"GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA",156],[5,"GPS_RTCM_DATA_DATA",156],[5,"TIMESYNC_DATA",156],[5,"HIL_GPS_DATA",156],[5,"ICAROUS_HEARTBEAT_DATA",156],[5,"FENCE_STATUS_DATA",156],[5,"ATTITUDE_QUATERNION_DATA",156],[5,"ATTITUDE_QUATERNION_COV_DATA",156],[5,"GLOBAL_POSITION_INT_COV_DATA",156],[5,"SYS_STATUS_DATA",156],[5,"VIBRATION_DATA",156],[5,"LOG_ENTRY_DATA",156],[5,"CELLULAR_CONFIG_DATA",156],[5,"GIMBAL_MANAGER_INFORMATION_DATA",156],[5,"MISSION_CLEAR_ALL_DATA",156],[5,"PARAM_EXT_REQUEST_LIST_DATA",156],[5,"SCALED_PRESSURE3_DATA",156],[5,"CHANGE_OPERATOR_CONTROL_ACK_DATA",156],[5,"MANUAL_CONTROL_DATA",156],[5,"POSITION_TARGET_GLOBAL_INT_DATA",156],[5,"RADIO_DATA",156],[5,"RC_CHANNELS_OVERRIDE_DATA",156],[5,"SENSOR_OFFSETS_DATA",156],[5,"SCALED_IMU3_DATA",156],[5,"ORBIT_EXECUTION_STATUS_DATA",156],[5,"RC_CHANNELS_SCALED_DATA",156],[5,"TERRAIN_REPORT_DATA",156],[5,"NAMED_VALUE_INT_DATA",156],[5,"PARAM_MAP_RC_DATA",156],[5,"HIGHRES_IMU_DATA",156],[5,"RAW_PRESSURE_DATA",156],[5,"BUTTON_CHANGE_DATA",156],[5,"CAMERA_INFORMATION_DATA",156],[5,"CAMERA_TRACKING_GEO_STATUS_DATA",156],[5,"WATER_DEPTH_DATA",156],[5,"OPEN_DRONE_ID_MESSAGE_PACK_DATA",156],[5,"AOA_SSA_DATA",156],[5,"RPM_DATA",156],[5,"GIMBAL_DEVICE_ATTITUDE_STATUS_DATA",156],[5,"GPS_RAW_INT_DATA",156],[5,"DEVICE_OP_READ_REPLY_DATA",156],[5,"FLIGHT_INFORMATION_DATA",156],[5,"LOGGING_DATA_ACKED_DATA",156],[5,"HIL_STATE_QUATERNION_DATA",156],[5,"UAVCAN_NODE_INFO_DATA",156],[5,"ENCAPSULATED_DATA_DATA",156],[5,"HIL_ACTUATOR_CONTROLS_DATA",156],[5,"HERELINK_VIDEO_STREAM_INFORMATION_DATA",156],[5,"ISBD_LINK_STATUS_DATA",156],[5,"AHRS3_DATA",156],[5,"RAW_IMU_DATA",156],[5,"DEBUG_VECT_DATA",156],[5,"EVENT_DATA",156],[5,"LOG_ERASE_DATA",156],[5,"SERVO_OUTPUT_RAW_DATA",156],[5,"OPTICAL_FLOW_DATA",156],[5,"GLOBAL_VISION_POSITION_ESTIMATE_DATA",156],[5,"CAN_FRAME_DATA",156],[5,"GOPRO_GET_RESPONSE_DATA",156],[5,"AIS_VESSEL_DATA",156],[5,"OBSTACLE_DISTANCE_DATA",156],[5,"ICAROUS_KINEMATIC_BANDS_DATA",156],[5,"HWSTATUS_DATA",156],[5,"PARAM_EXT_SET_DATA",156],[5,"EKF_STATUS_REPORT_DATA",156],[5,"MEMORY_VECT_DATA",156],[5,"OSD_PARAM_SHOW_CONFIG_REPLY_DATA",156],[5,"ESTIMATOR_STATUS_DATA",156],[5,"VISION_POSITION_DELTA_DATA",156],[5,"DEVICE_OP_READ_DATA",156],[5,"MEMINFO_DATA",156],[5,"LOGGING_ACK_DATA",156],[5,"MISSION_ACK_DATA",156],[5,"STORAGE_INFORMATION_DATA",156],[5,"HYGROMETER_SENSOR_DATA",156],[5,"CAMERA_STATUS_DATA",156],[5,"REQUEST_EVENT_DATA",156],[5,"OPEN_DRONE_ID_LOCATION_DATA",156],[5,"GPS2_RAW_DATA",156],[5,"DIGICAM_CONTROL_DATA",156],[5,"ADSB_VEHICLE_DATA",156],[5,"SET_MAG_OFFSETS_DATA",156],[5,"COMMAND_CANCEL_DATA",156],[5,"CAMERA_TRACKING_IMAGE_STATUS_DATA",156],[5,"PARAM_EXT_ACK_DATA",156],[5,"CAN_FILTER_MODIFY_DATA",156],[5,"SERIAL_CONTROL_DATA",156],[5,"CAMERA_SETTINGS_DATA",156],[5,"CONTROL_SYSTEM_STATE_DATA",156],[5,"CAMERA_CAPTURE_STATUS_DATA",156],[5,"VICON_POSITION_ESTIMATE_DATA",156],[5,"RC_CHANNELS_DATA",156],[5,"MOUNT_ORIENTATION_DATA",156],[5,"DEBUG_DATA",156],[5,"GIMBAL_DEVICE_INFORMATION_DATA",156],[5,"HEARTBEAT_DATA",156],[5,"PARAM_VALUE_DATA",156],[5,"COMMAND_ACK_DATA",156],[5,"EXTENDED_SYS_STATE_DATA",156],[5,"WIND_DATA",156],[5,"ESC_STATUS_DATA",156],[5,"RESOURCE_REQUEST_DATA",156],[5,"SET_HOME_POSITION_DATA",156],[5,"RAW_RPM_DATA",156],[5,"TRAJECTORY_REPRESENTATION_BEZIER_DATA",156],[5,"GLOBAL_POSITION_INT_DATA",156],[5,"V2_EXTENSION_DATA",156],[5,"CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA",156],[5,"RALLY_FETCH_POINT_DATA",156],[5,"ACTUATOR_CONTROL_TARGET_DATA",156],[5,"ESC_TELEMETRY_9_TO_12_DATA",156],[5,"DEVICE_OP_WRITE_REPLY_DATA",156],[5,"GOPRO_SET_RESPONSE_DATA",156],[5,"RALLY_POINT_DATA",156],[5,"MISSION_SET_CURRENT_DATA",156],[5,"POWER_STATUS_DATA",156],[5,"VFR_HUD_DATA",156],[5,"GPS_INPUT_DATA",156],[5,"MISSION_WRITE_PARTIAL_LIST_DATA",156],[5,"SETUP_SIGNING_DATA",156],[5,"AHRS_DATA",156],[5,"TERRAIN_DATA_DATA",156],[5,"OPTICAL_FLOW_RAD_DATA",156],[5,"TUNNEL_DATA",156],[5,"ESC_INFO_DATA",156],[5,"ADAP_TUNING_DATA",156],[5,"PID_TUNING_DATA",156],[5,"LINK_NODE_STATUS_DATA",156],[5,"CHANGE_OPERATOR_CONTROL_DATA",156],[5,"DATA_TRANSMISSION_HANDSHAKE_DATA",156],[5,"AUTH_KEY_DATA",156],[5,"LIMITS_STATUS_DATA",156],[5,"CAMERA_IMAGE_CAPTURED_DATA",156],[5,"HIGH_LATENCY_DATA",156],[5,"SCALED_IMU_DATA",156],[5,"UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA",156],[5,"MESSAGE_INTERVAL_DATA",156],[5,"GPS_RTK_DATA",156],[5,"PARAM_EXT_VALUE_DATA",156],[5,"BATTERY2_DATA",156],[5,"OSD_PARAM_CONFIG_REPLY_DATA",156],[5,"RANGEFINDER_DATA",156],[5,"GOPRO_GET_REQUEST_DATA",156],[5,"HIL_STATE_DATA",156],[5,"SIM_STATE_DATA",156],[5,"GIMBAL_DEVICE_SET_ATTITUDE_DATA",156],[5,"PLAY_TUNE_V2_DATA",156],[5,"AHRS2_DATA",156],[5,"SCALED_PRESSURE2_DATA",156],[5,"SIMSTATE_DATA",156],[5,"MOUNT_CONTROL_DATA",156],[5,"SYSTEM_TIME_DATA",156],[5,"PARAM_SET_DATA",156],[5,"CUBEPILOT_RAW_RC_DATA",156],[5,"PING_DATA",156],[5,"TIME_ESTIMATE_TO_TARGET_DATA",156],[5,"HIL_CONTROLS_DATA",156],[5,"FILE_TRANSFER_PROTOCOL_DATA",156],[5,"FENCE_POINT_DATA",156],[5,"LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA",156],[5,"OPEN_DRONE_ID_SYSTEM_DATA",156],[5,"LOG_REQUEST_END_DATA",156],[5,"VISION_POSITION_ESTIMATE_DATA",156],[5,"PLAY_TUNE_DATA",156],[5,"MISSION_REQUEST_LIST_DATA",156],[5,"WIND_COV_DATA",156],[5,"ESC_TELEMETRY_5_TO_8_DATA",156],[5,"GOPRO_SET_REQUEST_DATA",156],[5,"UTM_GLOBAL_POSITION_DATA",156],[5,"DATA96_DATA",156],[5,"UAVIONIX_ADSB_OUT_CFG_DATA",156],[5,"OPEN_DRONE_ID_SYSTEM_UPDATE_DATA",156],[5,"TERRAIN_CHECK_DATA",156],[5,"PROTOCOL_VERSION_DATA",156],[5,"LED_CONTROL_DATA",156],[5,"DATA32_DATA",156],[5,"ATT_POS_MOCAP_DATA",156],[5,"OPEN_DRONE_ID_OPERATOR_ID_DATA",156],[5,"LOCAL_POSITION_NED_COV_DATA",156],[5,"WHEEL_DISTANCE_DATA",156],[5,"GPS2_RTK_DATA",156],[5,"HOME_POSITION_DATA",156],[5,"REQUEST_DATA_STREAM_DATA",156],[5,"MISSION_REQUEST_DATA",156],[5,"UAVCAN_NODE_STATUS_DATA",156],[5,"LOCAL_POSITION_NED_DATA",156],[5,"GPS_INJECT_DATA_DATA",156],[5,"TERRAIN_REQUEST_DATA",156],[5,"AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA",156],[5,"CAMERA_FOV_STATUS_DATA",156],[5,"GIMBAL_TORQUE_CMD_REPORT_DATA",156],[5,"REMOTE_LOG_DATA_BLOCK_DATA",156],[5,"HIL_SENSOR_DATA",156],[5,"MOUNT_CONFIGURE_DATA",156],[5,"MAG_CAL_PROGRESS_DATA",156],[5,"ATTITUDE_TARGET_DATA",156],[5,"COMMAND_LONG_DATA",156],[5,"MISSION_CURRENT_DATA",156],[5,"DATA16_DATA",156],[5,"AUTOPILOT_VERSION_DATA",156],[5,"OPEN_DRONE_ID_ARM_STATUS_DATA",156],[5,"MANUAL_SETPOINT_DATA",156],[5,"POSITION_TARGET_LOCAL_NED_DATA",156],[5,"TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA",156],[5,"AUTOPILOT_VERSION_REQUEST_DATA",156],[5,"GIMBAL_MANAGER_SET_ATTITUDE_DATA",156],[5,"PARAM_REQUEST_READ_DATA",156],[5,"WINCH_STATUS_DATA",156],[5,"PARAM_EXT_REQUEST_READ_DATA",156],[5,"COMPONENT_METADATA_DATA",156],[5,"FENCE_FETCH_POINT_DATA",156],[5,"GIMBAL_CONTROL_DATA",156],[6,"FailureType",156],[6,"MavSensorOrientation",156],[6,"LimitsState",156],[6,"NavVtolLandOptions",156],[6,"RoverMode",156],[6,"MavBatteryType",156],[6,"MavlinkDataStreamType",156],[6,"MagCalStatus",156],[6,"MavOdidIdType",156],[6,"ActuatorConfiguration",156],[6,"MavDataStream",156],[6,"CameraTrackingStatusFlags",156],[6,"MavMode",156],[6,"WifiConfigApResponse",156],[6,"MavBatteryMode",156],[6,"GoproFieldOfView",156],[6,"AdsbEmitterType",156],[6,"StorageType",156],[6,"MavArmAuthDeniedReason",156],[6,"CameraTrackingTargetData",156],[6,"HeadingType",156],[6,"PlaneMode",156],[6,"GimbalAxisCalibrationStatus",156],[6,"UavionixAdsbEmergencyStatus",156],[6,"DeepstallStage",156],[6,"MavState",156],[6,"MotorTestThrottleType",156],[6,"WinchActions",156],[6,"MavOdidCategoryEu",156],[6,"CellularStatusFlag",156],[6,"VtolTransitionHeading",156],[6,"MavCollisionAction",156],[6,"GimbalAxisCalibrationRequired",156],[6,"FenceBreach",156],[6,"MavLandedState",156],[6,"MavRoi",156],[6,"GoproCharging",156],[6,"MavCmdAck",156],[6,"CameraFeedbackFlags",156],[6,"MavFtpErr",156],[6,"PrecisionLandMode",156],[6,"ScriptingCmd",156],[6,"GoproProtuneWhiteBalance",156],[6,"AccelcalVehiclePos",156],[6,"MavOdidOperatorLocationType",156],[6,"AdsbAltitudeType",156],[6,"MavOdidVerAcc",156],[6,"MavFtpOpcode",156],[6,"MavBatteryChargeState",156],[6,"SetFocusType",156],[6,"TrackerMode",156],[6,"CopterMode",156],[6,"FenceAction",156],[6,"GoproCaptureMode",156],[6,"MavVtolState",156],[6,"SerialControlDev",156],[6,"GripperActions",156],[6,"GoproModel",156],[6,"UavionixAdsbOutCfgGpsOffsetLon",156],[6,"CompMetadataType",156],[6,"ActuatorOutputFunction",156],[6,"AisNavStatus",156],[6,"ParachuteAction",156],[6,"MavTunnelPayloadType",156],[6,"CellularNetworkRadioType",156],[6,"RtkBaselineCoordinateSystem",156],[6,"CellularNetworkFailedReason",156],[6,"MavMountMode",156],[6,"IcarousFmsState",156],[6,"MavDistanceSensor",156],[6,"GpsFixType",156],[6,"MavBatteryFunction",156],[6,"IcarousTrackBandTypes",156],[6,"MavBatteryFault",156],[6,"CameraZoomType",156],[6,"UavcanNodeMode",156],[6,"VideoStreamType",156],[6,"MavCmdDoAuxFunctionSwitchLevel",156],[6,"OsdParamConfigError",156],[6,"EscConnectionType",156],[6,"GoproFrameRate",156],[6,"GoproCommand",156],[6,"MavGoto",156],[6,"MavDoRepositionFlags",156],[6,"GimbalAxis",156],[6,"MavOdidTimeAcc",156],[6,"FailureUnit",156],[6,"MavParamExtType",156],[6,"MavOdidClassEu",156],[6,"UavionixAdsbOutCfgGpsOffsetLat",156],[6,"MavResult",156],[6,"MavMissionType",156],[6,"CellularConfigResponse",156],[6,"LandingTargetType",156],[6,"GoproPhotoResolution",156],[6,"FirmwareVersionType",156],[6,"MavOdidSpeedAcc",156],[6,"MavRemoteLogDataBlockCommands",156],[6,"MavSeverity",156],[6,"StorageStatus",156],[6,"PidTuningAxis",156],[6,"GoproRequestStatus",156],[6,"MavCmd",156],[6,"UavcanNodeHealth",156],[6,"SubMode",156],[6,"MavRemoteLogDataBlockStatuses",156],[6,"GoproProtuneGain",156],[6,"MavOdidDescType",156],[6,"MavModeGimbal",156],[6,"OrbitYawBehaviour",156],[6,"VideoStreamStatusFlags",156],[6,"WifiConfigApMode",156],[6,"GoproProtuneExposure",156],[6,"GoproVideoSettingsFlags",156],[6,"GoproResolution",156],[6,"MavOdidStatus",156],[6,"CanFilterOp",156],[6,"AisType",156],[6,"MavComponent",156],[6,"GimbalManagerFlags",156],[6,"GoproBurstRate",156],[6,"CameraStatusTypes",156],[6,"UavionixAdsbOutDynamicGpsFix",156],[6,"MavFrame",156],[6,"MavParamType",156],[6,"MavOdidClassificationType",156],[6,"CameraMode",156],[6,"RcType",156],[6,"MavOdidAuthType",156],[6,"StorageUsageFlag",156],[6,"FenceMitigate",156],[6,"MissionState",156],[6,"MavType",156],[6,"PreflightStorageParameterAction",156],[6,"OsdParamConfigType",156],[6,"GoproHeartbeatStatus",156],[6,"MavOdidUaType",156],[6,"UtmFlightState",156],[6,"DeviceOpBustype",156],[6,"MavModeFlagDecodePosition",156],[6,"GoproProtuneSharpness",156],[6,"SpeedType",156],[6,"UavionixAdsbOutCfgAircraftSize",156],[6,"MavEstimatorType",156],[6,"MavOdidArmStatus",156],[6,"LedControlPattern",156],[6,"MavOdidOperatorIdType",156],[6,"MotorTestOrder",156],[6,"MavOdidHorAcc",156],[6,"MavSysStatusSensorExtended",156],[6,"PreflightStorageMissionAction",156],[6,"CameraTrackingMode",156],[6,"MavAutopilot",156],[6,"MavMissionResult",156],[6,"MavCollisionSrc",156],[6,"MavEventErrorReason",156],[6,"AutotuneAxis",156],[6,"MavOdidHeightRef",156],[6,"ParamAck",156],[6,"MavCollisionThreatLevel",156],[6,"GoproProtuneColour",156],[6,"Ordering",39188],[17,"Item"],[10,"IntoIterator",39189],[8,"Result",39183],[6,"Option",39190],[1,"i64"],[10,"Hasher",39191],[5,"Bytes",15498,39192],[1,"array"],[1,"f32"],[1,"f64"],[1,"i16"],[1,"i32"],[1,"i8"],[5,"BytesMut",15522,39193],[5,"MavWinchStatusFlag",15547],[5,"GpsInputIgnoreFlags",15547],[5,"MavSysStatusSensor",15547],[5,"MavModeFlag",15547],[5,"UtmDataAvailFlags",15547],[5,"AttitudeTargetTypemask",15547],[5,"HilSensorUpdatedFlags",15547],[5,"AisFlags",15547],[5,"SerialControlFlag",15547],[5,"HighresImuUpdatedFlags",15547],[5,"GimbalManagerCapFlags",15547],[5,"HlFailureFlag",15547],[5,"AdsbFlags",15547],[5,"MavEventCurrentSequenceFlags",15547],[5,"CameraCapFlags",15547],[5,"EstimatorStatusFlags",15547],[5,"EscFailureFlags",15547],[5,"MavProtocolCapability",15547],[5,"MavGeneratorStatusFlag",15547],[5,"PositionTargetTypemask",15547],[5,"MavPowerStatus",15547],[5,"GimbalDeviceCapFlags",15547],[5,"GimbalDeviceErrorFlags",15547],[5,"GimbalDeviceFlags",15547],[5,"TuneFormat",15547],[6,"MavMessage",15547],[5,"SCALED_PRESSURE_DATA",15547],[5,"LOG_ENTRY_DATA",15547],[5,"HIL_GPS_DATA",15547],[5,"AIS_VESSEL_DATA",15547],[5,"LANDING_TARGET_DATA",15547],[5,"GIMBAL_DEVICE_ATTITUDE_STATUS_DATA",15547],[5,"GIMBAL_MANAGER_INFORMATION_DATA",15547],[5,"MISSION_REQUEST_DATA",15547],[5,"MISSION_WRITE_PARTIAL_LIST_DATA",15547],[5,"FENCE_STATUS_DATA",15547],[5,"DATA_TRANSMISSION_HANDSHAKE_DATA",15547],[5,"WHEEL_DISTANCE_DATA",15547],[5,"GPS2_RAW_DATA",15547],[5,"COMMAND_CANCEL_DATA",15547],[5,"SET_GPS_GLOBAL_ORIGIN_DATA",15547],[5,"OPEN_DRONE_ID_LOCATION_DATA",15547],[5,"OPEN_DRONE_ID_BASIC_ID_DATA",15547],[5,"BATTERY_STATUS_DATA",15547],[5,"MISSION_REQUEST_INT_DATA",15547],[5,"SERIAL_CONTROL_DATA",15547],[5,"HIL_ACTUATOR_CONTROLS_DATA",15547],[5,"RAW_IMU_DATA",15547],[5,"LOCAL_POSITION_NED_DATA",15547],[5,"ATTITUDE_TARGET_DATA",15547],[5,"CURRENT_EVENT_SEQUENCE_DATA",15547],[5,"SMART_BATTERY_INFO_DATA",15547],[5,"LOCAL_POSITION_NED_COV_DATA",15547],[5,"DEBUG_FLOAT_ARRAY_DATA",15547],[5,"WIFI_CONFIG_AP_DATA",15547],[5,"RAW_RPM_DATA",15547],[5,"GIMBAL_MANAGER_STATUS_DATA",15547],[5,"COMMAND_LONG_DATA",15547],[5,"VFR_HUD_DATA",15547],[5,"VIDEO_STREAM_STATUS_DATA",15547],[5,"HIGH_LATENCY_DATA",15547],[5,"LOGGING_DATA_ACKED_DATA",15547],[5,"SCALED_PRESSURE3_DATA",15547],[5,"GLOBAL_POSITION_INT_COV_DATA",15547],[5,"COMMAND_ACK_DATA",15547],[5,"LOG_REQUEST_DATA_DATA",15547],[5,"SET_ATTITUDE_TARGET_DATA",15547],[5,"PARAM_EXT_REQUEST_LIST_DATA",15547],[5,"PLAY_TUNE_DATA",15547],[5,"AUTOPILOT_VERSION_DATA",15547],[5,"VISION_POSITION_ESTIMATE_DATA",15547],[5,"ESC_STATUS_DATA",15547],[5,"BUTTON_CHANGE_DATA",15547],[5,"ADSB_VEHICLE_DATA",15547],[5,"SIM_STATE_DATA",15547],[5,"SET_POSITION_TARGET_GLOBAL_INT_DATA",15547],[5,"SYS_STATUS_DATA",15547],[5,"OPEN_DRONE_ID_OPERATOR_ID_DATA",15547],[5,"GIMBAL_DEVICE_SET_ATTITUDE_DATA",15547],[5,"CAMERA_IMAGE_CAPTURED_DATA",15547],[5,"AUTH_KEY_DATA",15547],[5,"LOGGING_ACK_DATA",15547],[5,"ATTITUDE_QUATERNION_COV_DATA",15547],[5,"LINK_NODE_STATUS_DATA",15547],[5,"STORAGE_INFORMATION_DATA",15547],[5,"DEBUG_DATA",15547],[5,"LOG_ERASE_DATA",15547],[5,"HIGH_LATENCY2_DATA",15547],[5,"LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA",15547],[5,"RC_CHANNELS_DATA",15547],[5,"MANUAL_CONTROL_DATA",15547],[5,"CHANGE_OPERATOR_CONTROL_DATA",15547],[5,"MISSION_ACK_DATA",15547],[5,"SET_POSITION_TARGET_LOCAL_NED_DATA",15547],[5,"OPEN_DRONE_ID_ARM_STATUS_DATA",15547],[5,"VICON_POSITION_ESTIMATE_DATA",15547],[5,"EVENT_DATA",15547],[5,"GIMBAL_MANAGER_SET_PITCHYAW_DATA",15547],[5,"CAMERA_TRACKING_IMAGE_STATUS_DATA",15547],[5,"SET_ACTUATOR_CONTROL_TARGET_DATA",15547],[5,"MISSION_CLEAR_ALL_DATA",15547],[5,"NAV_CONTROLLER_OUTPUT_DATA",15547],[5,"SERVO_OUTPUT_RAW_DATA",15547],[5,"GPS_RAW_INT_DATA",15547],[5,"PARAM_EXT_VALUE_DATA",15547],[5,"CAN_FRAME_DATA",15547],[5,"HEARTBEAT_DATA",15547],[5,"POSITION_TARGET_GLOBAL_INT_DATA",15547],[5,"GLOBAL_POSITION_INT_DATA",15547],[5,"GPS_RTK_DATA",15547],[5,"PING_DATA",15547],[5,"REQUEST_DATA_STREAM_DATA",15547],[5,"OBSTACLE_DISTANCE_DATA",15547],[5,"GPS_INJECT_DATA_DATA",15547],[5,"HIL_OPTICAL_FLOW_DATA",15547],[5,"PARAM_REQUEST_LIST_DATA",15547],[5,"COLLISION_DATA",15547],[5,"CAMERA_INFORMATION_DATA",15547],[5,"V2_EXTENSION_DATA",15547],[5,"WIND_COV_DATA",15547],[5,"OPEN_DRONE_ID_SYSTEM_UPDATE_DATA",15547],[5,"SUPPORTED_TUNES_DATA",15547],[5,"CAMERA_FOV_STATUS_DATA",15547],[5,"CONTROL_SYSTEM_STATE_DATA",15547],[5,"PROTOCOL_VERSION_DATA",15547],[5,"LOG_REQUEST_LIST_DATA",15547],[5,"CAMERA_TRIGGER_DATA",15547],[5,"VIBRATION_DATA",15547],[5,"DISTANCE_SENSOR_DATA",15547],[5,"HIL_SENSOR_DATA",15547],[5,"POSITION_TARGET_LOCAL_NED_DATA",15547],[5,"CHANGE_OPERATOR_CONTROL_ACK_DATA",15547],[5,"GPS_RTCM_DATA_DATA",15547],[5,"ESTIMATOR_STATUS_DATA",15547],[5,"GENERATOR_STATUS_DATA",15547],[5,"TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA",15547],[5,"OPEN_DRONE_ID_MESSAGE_PACK_DATA",15547],[5,"GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA",15547],[5,"CAN_FILTER_MODIFY_DATA",15547],[5,"TIME_ESTIMATE_TO_TARGET_DATA",15547],[5,"ISBD_LINK_STATUS_DATA",15547],[5,"OPEN_DRONE_ID_SELF_ID_DATA",15547],[5,"WINCH_STATUS_DATA",15547],[5,"PARAM_EXT_REQUEST_READ_DATA",15547],[5,"FILE_TRANSFER_PROTOCOL_DATA",15547],[5,"LOG_REQUEST_END_DATA",15547],[5,"CAMERA_CAPTURE_STATUS_DATA",15547],[5,"DEBUG_VECT_DATA",15547],[5,"MESSAGE_INTERVAL_DATA",15547],[5,"SCALED_IMU3_DATA",15547],[5,"MISSION_ITEM_INT_DATA",15547],[5,"RAW_PRESSURE_DATA",15547],[5,"RESPONSE_EVENT_ERROR_DATA",15547],[5,"PARAM_EXT_ACK_DATA",15547],[5,"ALTITUDE_DATA",15547],[5,"OPEN_DRONE_ID_SYSTEM_DATA",15547],[5,"ODOMETRY_DATA",15547],[5,"SAFETY_ALLOWED_AREA_DATA",15547],[5,"GIMBAL_DEVICE_INFORMATION_DATA",15547],[5,"NAMED_VALUE_INT_DATA",15547],[5,"COMPONENT_INFORMATION_DATA",15547],[5,"TIMESYNC_DATA",15547],[5,"MAG_CAL_REPORT_DATA",15547],[5,"CELLULAR_CONFIG_DATA",15547],[5,"HYGROMETER_SENSOR_DATA",15547],[5,"PLAY_TUNE_V2_DATA",15547],[5,"MEMORY_VECT_DATA",15547],[5,"ENCAPSULATED_DATA_DATA",15547],[5,"TUNNEL_DATA",15547],[5,"UTM_GLOBAL_POSITION_DATA",15547],[5,"CELLULAR_STATUS_DATA",15547],[5,"ESC_INFO_DATA",15547],[5,"ATTITUDE_DATA",15547],[5,"GPS2_RTK_DATA",15547],[5,"RC_CHANNELS_SCALED_DATA",15547],[5,"MOUNT_ORIENTATION_DATA",15547],[5,"PARAM_EXT_SET_DATA",15547],[5,"LOGGING_DATA_DATA",15547],[5,"FLIGHT_INFORMATION_DATA",15547],[5,"SET_HOME_POSITION_DATA",15547],[5,"EFI_STATUS_DATA",15547],[5,"MISSION_REQUEST_LIST_DATA",15547],[5,"TERRAIN_CHECK_DATA",15547],[5,"HIL_STATE_QUATERNION_DATA",15547],[5,"GPS_GLOBAL_ORIGIN_DATA",15547],[5,"TERRAIN_REPORT_DATA",15547],[5,"PARAM_REQUEST_READ_DATA",15547],[5,"TERRAIN_REQUEST_DATA",15547],[5,"POWER_STATUS_DATA",15547],[5,"OPTICAL_FLOW_DATA",15547],[5,"MISSION_SET_CURRENT_DATA",15547],[5,"MANUAL_SETPOINT_DATA",15547],[5,"PARAM_VALUE_DATA",15547],[5,"SYSTEM_TIME_DATA",15547],[5,"OPEN_DRONE_ID_AUTHENTICATION_DATA",15547],[5,"COMPONENT_METADATA_DATA",15547],[5,"UAVCAN_NODE_INFO_DATA",15547],[5,"GIMBAL_MANAGER_SET_ATTITUDE_DATA",15547],[5,"RC_CHANNELS_RAW_DATA",15547],[5,"SETUP_SIGNING_DATA",15547],[5,"EXTENDED_SYS_STATE_DATA",15547],[5,"LOG_DATA_DATA",15547],[5,"PARAM_MAP_RC_DATA",15547],[5,"MISSION_COUNT_DATA",15547],[5,"SCALED_IMU_DATA",15547],[5,"VISION_SPEED_ESTIMATE_DATA",15547],[5,"MISSION_ITEM_DATA",15547],[5,"GPS_STATUS_DATA",15547],[5,"ATT_POS_MOCAP_DATA",15547],[5,"SCALED_PRESSURE2_DATA",15547],[5,"TERRAIN_DATA_DATA",15547],[5,"HIL_STATE_DATA",15547],[5,"RADIO_STATUS_DATA",15547],[5,"MISSION_CURRENT_DATA",15547],[5,"MISSION_REQUEST_PARTIAL_LIST_DATA",15547],[5,"ATTITUDE_QUATERNION_DATA",15547],[5,"ONBOARD_COMPUTER_STATUS_DATA",15547],[5,"UAVCAN_NODE_STATUS_DATA",15547],[5,"PARAM_SET_DATA",15547],[5,"HOME_POSITION_DATA",15547],[5,"CAMERA_TRACKING_GEO_STATUS_DATA",15547],[5,"GPS_INPUT_DATA",15547],[5,"HIL_CONTROLS_DATA",15547],[5,"RESOURCE_REQUEST_DATA",15547],[5,"NAMED_VALUE_FLOAT_DATA",15547],[5,"OPTICAL_FLOW_RAD_DATA",15547],[5,"GLOBAL_VISION_POSITION_ESTIMATE_DATA",15547],[5,"CAMERA_SETTINGS_DATA",15547],[5,"TRAJECTORY_REPRESENTATION_BEZIER_DATA",15547],[5,"ACTUATOR_OUTPUT_STATUS_DATA",15547],[5,"STATUSTEXT_DATA",15547],[5,"FOLLOW_TARGET_DATA",15547],[5,"HIGHRES_IMU_DATA",15547],[5,"HIL_RC_INPUTS_RAW_DATA",15547],[5,"MISSION_ITEM_REACHED_DATA",15547],[5,"DATA_STREAM_DATA",15547],[5,"ACTUATOR_CONTROL_TARGET_DATA",15547],[5,"SCALED_IMU2_DATA",15547],[5,"RC_CHANNELS_OVERRIDE_DATA",15547],[5,"COMMAND_INT_DATA",15547],[5,"SAFETY_SET_ALLOWED_AREA_DATA",15547],[5,"VIDEO_STREAM_INFORMATION_DATA",15547],[5,"CANFD_FRAME_DATA",15547],[5,"SET_MODE_DATA",15547],[5,"REQUEST_EVENT_DATA",15547],[5,"ORBIT_EXECUTION_STATUS_DATA",15547],[5,"AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA",15547],[6,"MavOdidDescType",15547],[6,"MavSysStatusSensorExtended",15547],[6,"SetFocusType",15547],[6,"MavCollisionAction",15547],[6,"MavOdidCategoryEu",15547],[6,"CameraTrackingStatusFlags",15547],[6,"MavAutopilot",15547],[6,"MavBatteryType",15547],[6,"MissionState",15547],[6,"AdsbEmitterType",15547],[6,"MavOdidOperatorIdType",15547],[6,"LandingTargetType",15547],[6,"PrecisionLandMode",15547],[6,"GpsFixType",15547],[6,"MavEstimatorType",15547],[6,"CellularNetworkRadioType",15547],[6,"CompMetadataType",15547],[6,"EscConnectionType",15547],[6,"MavOdidSpeedAcc",15547],[6,"CameraMode",15547],[6,"MavBatteryFunction",15547],[6,"VtolTransitionHeading",15547],[6,"VideoStreamType",15547],[6,"MavOdidClassEu",15547],[6,"WinchActions",15547],[6,"CellularNetworkFailedReason",15547],[6,"MavModeFlagDecodePosition",15547],[6,"ActuatorOutputFunction",15547],[6,"FenceMitigate",15547],[6,"MavMissionType",15547],[6,"MavOdidClassificationType",15547],[6,"AdsbAltitudeType",15547],[6,"MavRoi",15547],[6,"MavType",15547],[6,"MotorTestThrottleType",15547],[6,"MavGoto",15547],[6,"MavOdidHorAcc",15547],[6,"MavCmd",15547],[6,"MavSensorOrientation",15547],[6,"FenceBreach",15547],[6,"MavVtolState",15547],[6,"MavBatteryMode",15547],[6,"FailureUnit",15547],[6,"MavArmAuthDeniedReason",15547],[6,"CellularConfigResponse",15547],[6,"MavOdidHeightRef",15547],[6,"MavDataStream",15547],[6,"AisNavStatus",15547],[6,"MavFtpErr",15547],[6,"MotorTestOrder",15547],[6,"MavOdidTimeAcc",15547],[6,"MavMode",15547],[6,"FailureType",15547],[6,"CanFilterOp",15547],[6,"MavOdidVerAcc",15547],[6,"CameraZoomType",15547],[6,"VideoStreamStatusFlags",15547],[6,"ParachuteAction",15547],[6,"MavDoRepositionFlags",15547],[6,"MavParamExtType",15547],[6,"StorageUsageFlag",15547],[6,"MavlinkDataStreamType",15547],[6,"WifiConfigApResponse",15547],[6,"MavEventErrorReason",15547],[6,"GripperActions",15547],[6,"MavOdidStatus",15547],[6,"MagCalStatus",15547],[6,"MavCmdAck",15547],[6,"MavOdidUaType",15547],[6,"MavBatteryFault",15547],[6,"MavMissionResult",15547],[6,"GimbalManagerFlags",15547],[6,"AisType",15547],[6,"MavOdidIdType",15547],[6,"MavState",15547],[6,"NavVtolLandOptions",15547],[6,"UavcanNodeMode",15547],[6,"StorageStatus",15547],[6,"FenceAction",15547],[6,"MavBatteryChargeState",15547],[6,"WifiConfigApMode",15547],[6,"CameraTrackingTargetData",15547],[6,"UtmFlightState",15547],[6,"MavResult",15547],[6,"OrbitYawBehaviour",15547],[6,"CellularStatusFlag",15547],[6,"MavLandedState",15547],[6,"MavComponent",15547],[6,"MavFtpOpcode",15547],[6,"MavDistanceSensor",15547],[6,"MavOdidArmStatus",15547],[6,"SerialControlDev",15547],[6,"CameraTrackingMode",15547],[6,"PreflightStorageMissionAction",15547],[6,"RtkBaselineCoordinateSystem",15547],[6,"MavSeverity",15547],[6,"RcType",15547],[6,"MavCollisionSrc",15547],[6,"ParamAck",15547],[6,"MavFrame",15547],[6,"UavcanNodeHealth",15547],[6,"MavOdidOperatorLocationType",15547],[6,"MavOdidAuthType",15547],[6,"MavCollisionThreatLevel",15547],[6,"AutotuneAxis",15547],[6,"StorageType",15547],[6,"MavTunnelPayloadType",15547],[6,"FirmwareVersionType",15547],[6,"MavParamType",15547],[6,"PreflightStorageParameterAction",15547],[6,"MavMountMode",15547],[6,"ActuatorConfiguration",15547],[5,"String",39194],[6,"MavMessage",27107],[5,"ICAROUS_HEARTBEAT_DATA",27107],[5,"ICAROUS_KINEMATIC_BANDS_DATA",27107],[6,"IcarousTrackBandTypes",27107],[6,"IcarousFmsState",27107],[5,"PositionTargetTypemask",27254],[5,"GpsInputIgnoreFlags",27254],[5,"TuneFormat",27254],[5,"GimbalDeviceErrorFlags",27254],[5,"MavModeFlag",27254],[5,"GimbalDeviceCapFlags",27254],[5,"MavSysStatusSensor",27254],[5,"MavProtocolCapability",27254],[5,"AisFlags",27254],[5,"MavEventCurrentSequenceFlags",27254],[5,"HighresImuUpdatedFlags",27254],[5,"UtmDataAvailFlags",27254],[5,"HlFailureFlag",27254],[5,"UavionixAdsbOutRfSelect",27254],[5,"GimbalManagerCapFlags",27254],[5,"EstimatorStatusFlags",27254],[5,"MavPowerStatus",27254],[5,"HilSensorUpdatedFlags",27254],[5,"MavGeneratorStatusFlag",27254],[5,"UavionixAdsbOutDynamicState",27254],[5,"EscFailureFlags",27254],[5,"AttitudeTargetTypemask",27254],[5,"AdsbFlags",27254],[5,"UavionixAdsbRfHealth",27254],[5,"MavWinchStatusFlag",27254],[5,"SerialControlFlag",27254],[5,"GimbalDeviceFlags",27254],[5,"CameraCapFlags",27254],[6,"MavMessage",27254],[5,"CONTROL_SYSTEM_STATE_DATA",27254],[5,"GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA",27254],[5,"SAFETY_ALLOWED_AREA_DATA",27254],[5,"HOME_POSITION_DATA",27254],[5,"MOUNT_ORIENTATION_DATA",27254],[5,"SMART_BATTERY_INFO_DATA",27254],[5,"SETUP_SIGNING_DATA",27254],[5,"MISSION_REQUEST_PARTIAL_LIST_DATA",27254],[5,"SCALED_IMU3_DATA",27254],[5,"BATTERY_STATUS_DATA",27254],[5,"SET_ATTITUDE_TARGET_DATA",27254],[5,"OPEN_DRONE_ID_BASIC_ID_DATA",27254],[5,"UTM_GLOBAL_POSITION_DATA",27254],[5,"PARAM_EXT_REQUEST_READ_DATA",27254],[5,"CAN_FILTER_MODIFY_DATA",27254],[5,"GLOBAL_POSITION_INT_DATA",27254],[5,"LINK_NODE_STATUS_DATA",27254],[5,"RC_CHANNELS_OVERRIDE_DATA",27254],[5,"MANUAL_SETPOINT_DATA",27254],[5,"FOLLOW_TARGET_DATA",27254],[5,"SET_GPS_GLOBAL_ORIGIN_DATA",27254],[5,"PLAY_TUNE_V2_DATA",27254],[5,"PARAM_EXT_VALUE_DATA",27254],[5,"LOG_DATA_DATA",27254],[5,"LOGGING_ACK_DATA",27254],[5,"GLOBAL_POSITION_INT_COV_DATA",27254],[5,"LOGGING_DATA_ACKED_DATA",27254],[5,"PARAM_REQUEST_LIST_DATA",27254],[5,"WINCH_STATUS_DATA",27254],[5,"SERIAL_CONTROL_DATA",27254],[5,"GIMBAL_MANAGER_STATUS_DATA",27254],[5,"RESPONSE_EVENT_ERROR_DATA",27254],[5,"SCALED_IMU2_DATA",27254],[5,"OPEN_DRONE_ID_LOCATION_DATA",27254],[5,"GPS_GLOBAL_ORIGIN_DATA",27254],[5,"TERRAIN_DATA_DATA",27254],[5,"AIS_VESSEL_DATA",27254],[5,"COLLISION_DATA",27254],[5,"GPS_RAW_INT_DATA",27254],[5,"BUTTON_CHANGE_DATA",27254],[5,"HIL_STATE_DATA",27254],[5,"LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA",27254],[5,"LOG_ERASE_DATA",27254],[5,"MISSION_SET_CURRENT_DATA",27254],[5,"COMMAND_INT_DATA",27254],[5,"GPS2_RAW_DATA",27254],[5,"VISION_SPEED_ESTIMATE_DATA",27254],[5,"EFI_STATUS_DATA",27254],[5,"TIMESYNC_DATA",27254],[5,"LANDING_TARGET_DATA",27254],[5,"CAMERA_CAPTURE_STATUS_DATA",27254],[5,"PARAM_EXT_SET_DATA",27254],[5,"FLIGHT_INFORMATION_DATA",27254],[5,"EVENT_DATA",27254],[5,"UAVCAN_NODE_INFO_DATA",27254],[5,"RC_CHANNELS_RAW_DATA",27254],[5,"OBSTACLE_DISTANCE_DATA",27254],[5,"VIBRATION_DATA",27254],[5,"CAMERA_INFORMATION_DATA",27254],[5,"PARAM_MAP_RC_DATA",27254],[5,"COMPONENT_INFORMATION_DATA",27254],[5,"DEBUG_VECT_DATA",27254],[5,"AUTOPILOT_VERSION_DATA",27254],[5,"HIGH_LATENCY2_DATA",27254],[5,"ESTIMATOR_STATUS_DATA",27254],[5,"UAVIONIX_ADSB_OUT_CFG_DATA",27254],[5,"COMMAND_LONG_DATA",27254],[5,"V2_EXTENSION_DATA",27254],[5,"HIL_SENSOR_DATA",27254],[5,"SET_POSITION_TARGET_GLOBAL_INT_DATA",27254],[5,"ISBD_LINK_STATUS_DATA",27254],[5,"TERRAIN_REQUEST_DATA",27254],[5,"LOG_REQUEST_DATA_DATA",27254],[5,"HIL_CONTROLS_DATA",27254],[5,"LOG_ENTRY_DATA",27254],[5,"MEMORY_VECT_DATA",27254],[5,"RC_CHANNELS_SCALED_DATA",27254],[5,"LOGGING_DATA_DATA",27254],[5,"STATUSTEXT_DATA",27254],[5,"DATA_TRANSMISSION_HANDSHAKE_DATA",27254],[5,"MISSION_ITEM_REACHED_DATA",27254],[5,"ATTITUDE_QUATERNION_DATA",27254],[5,"SERVO_OUTPUT_RAW_DATA",27254],[5,"MANUAL_CONTROL_DATA",27254],[5,"AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA",27254],[5,"RAW_IMU_DATA",27254],[5,"ONBOARD_COMPUTER_STATUS_DATA",27254],[5,"UAVCAN_NODE_STATUS_DATA",27254],[5,"ATT_POS_MOCAP_DATA",27254],[5,"MISSION_WRITE_PARTIAL_LIST_DATA",27254],[5,"VIDEO_STREAM_STATUS_DATA",27254],[5,"RC_CHANNELS_DATA",27254],[5,"LOG_REQUEST_LIST_DATA",27254],[5,"MISSION_REQUEST_INT_DATA",27254],[5,"CHANGE_OPERATOR_CONTROL_DATA",27254],[5,"ALTITUDE_DATA",27254],[5,"SET_POSITION_TARGET_LOCAL_NED_DATA",27254],[5,"ORBIT_EXECUTION_STATUS_DATA",27254],[5,"VISION_POSITION_ESTIMATE_DATA",27254],[5,"UAVIONIX_ADSB_OUT_DYNAMIC_DATA",27254],[5,"SAFETY_SET_ALLOWED_AREA_DATA",27254],[5,"TERRAIN_CHECK_DATA",27254],[5,"MISSION_ITEM_INT_DATA",27254],[5,"GIMBAL_DEVICE_SET_ATTITUDE_DATA",27254],[5,"OPEN_DRONE_ID_MESSAGE_PACK_DATA",27254],[5,"GIMBAL_DEVICE_ATTITUDE_STATUS_DATA",27254],[5,"DEBUG_FLOAT_ARRAY_DATA",27254],[5,"CELLULAR_STATUS_DATA",27254],[5,"MAG_CAL_REPORT_DATA",27254],[5,"GLOBAL_VISION_POSITION_ESTIMATE_DATA",27254],[5,"LOCAL_POSITION_NED_DATA",27254],[5,"OPEN_DRONE_ID_AUTHENTICATION_DATA",27254],[5,"ACTUATOR_CONTROL_TARGET_DATA",27254],[5,"RAW_PRESSURE_DATA",27254],[5,"OPEN_DRONE_ID_SYSTEM_UPDATE_DATA",27254],[5,"CAMERA_TRIGGER_DATA",27254],[5,"MISSION_REQUEST_DATA",27254],[5,"RESOURCE_REQUEST_DATA",27254],[5,"SCALED_PRESSURE_DATA",27254],[5,"LOCAL_POSITION_NED_COV_DATA",27254],[5,"REQUEST_EVENT_DATA",27254],[5,"GIMBAL_DEVICE_INFORMATION_DATA",27254],[5,"GENERATOR_STATUS_DATA",27254],[5,"SYS_STATUS_DATA",27254],[5,"GIMBAL_MANAGER_SET_PITCHYAW_DATA",27254],[5,"EXTENDED_SYS_STATE_DATA",27254],[5,"REQUEST_DATA_STREAM_DATA",27254],[5,"SET_ACTUATOR_CONTROL_TARGET_DATA",27254],[5,"AUTH_KEY_DATA",27254],[5,"MISSION_COUNT_DATA",27254],[5,"HEARTBEAT_DATA",27254],[5,"ATTITUDE_TARGET_DATA",27254],[5,"WHEEL_DISTANCE_DATA",27254],[5,"ACTUATOR_OUTPUT_STATUS_DATA",27254],[5,"OPTICAL_FLOW_RAD_DATA",27254],[5,"MISSION_CLEAR_ALL_DATA",27254],[5,"OPEN_DRONE_ID_SYSTEM_DATA",27254],[5,"WIFI_CONFIG_AP_DATA",27254],[5,"DISTANCE_SENSOR_DATA",27254],[5,"COMMAND_ACK_DATA",27254],[5,"GPS_STATUS_DATA",27254],[5,"DATA_STREAM_DATA",27254],[5,"TUNNEL_DATA",27254],[5,"SCALED_PRESSURE2_DATA",27254],[5,"CAMERA_FOV_STATUS_DATA",27254],[5,"HIL_ACTUATOR_CONTROLS_DATA",27254],[5,"NAMED_VALUE_FLOAT_DATA",27254],[5,"PING_DATA",27254],[5,"MISSION_REQUEST_LIST_DATA",27254],[5,"HIL_OPTICAL_FLOW_DATA",27254],[5,"POSITION_TARGET_LOCAL_NED_DATA",27254],[5,"ADSB_VEHICLE_DATA",27254],[5,"SYSTEM_TIME_DATA",27254],[5,"SET_MODE_DATA",27254],[5,"PARAM_EXT_REQUEST_LIST_DATA",27254],[5,"UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA",27254],[5,"OPEN_DRONE_ID_SELF_ID_DATA",27254],[5,"VICON_POSITION_ESTIMATE_DATA",27254],[5,"ENCAPSULATED_DATA_DATA",27254],[5,"POSITION_TARGET_GLOBAL_INT_DATA",27254],[5,"GIMBAL_MANAGER_SET_ATTITUDE_DATA",27254],[5,"GPS_INJECT_DATA_DATA",27254],[5,"COMPONENT_METADATA_DATA",27254],[5,"ATTITUDE_QUATERNION_COV_DATA",27254],[5,"POWER_STATUS_DATA",27254],[5,"TRAJECTORY_REPRESENTATION_BEZIER_DATA",27254],[5,"FILE_TRANSFER_PROTOCOL_DATA",27254],[5,"LOG_REQUEST_END_DATA",27254],[5,"GPS_RTCM_DATA_DATA",27254],[5,"HIL_GPS_DATA",27254],[5,"TIME_ESTIMATE_TO_TARGET_DATA",27254],[5,"RADIO_STATUS_DATA",27254],[5,"ESC_INFO_DATA",27254],[5,"VFR_HUD_DATA",27254],[5,"NAMED_VALUE_INT_DATA",27254],[5,"FENCE_STATUS_DATA",27254],[5,"STORAGE_INFORMATION_DATA",27254],[5,"SCALED_IMU_DATA",27254],[5,"MESSAGE_INTERVAL_DATA",27254],[5,"OPEN_DRONE_ID_ARM_STATUS_DATA",27254],[5,"HIL_STATE_QUATERNION_DATA",27254],[5,"CAMERA_IMAGE_CAPTURED_DATA",27254],[5,"CAN_FRAME_DATA",27254],[5,"HYGROMETER_SENSOR_DATA",27254],[5,"WIND_COV_DATA",27254],[5,"GPS_INPUT_DATA",27254],[5,"OPTICAL_FLOW_DATA",27254],[5,"TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA",27254],[5,"CAMERA_SETTINGS_DATA",27254],[5,"CANFD_FRAME_DATA",27254],[5,"CHANGE_OPERATOR_CONTROL_ACK_DATA",27254],[5,"GPS_RTK_DATA",27254],[5,"PROTOCOL_VERSION_DATA",27254],[5,"SCALED_PRESSURE3_DATA",27254],[5,"SIM_STATE_DATA",27254],[5,"HIGHRES_IMU_DATA",27254],[5,"PARAM_SET_DATA",27254],[5,"ATTITUDE_DATA",27254],[5,"PARAM_REQUEST_READ_DATA",27254],[5,"HIGH_LATENCY_DATA",27254],[5,"ODOMETRY_DATA",27254],[5,"HIL_RC_INPUTS_RAW_DATA",27254],[5,"TERRAIN_REPORT_DATA",27254],[5,"PARAM_EXT_ACK_DATA",27254],[5,"NAV_CONTROLLER_OUTPUT_DATA",27254],[5,"GIMBAL_MANAGER_INFORMATION_DATA",27254],[5,"DEBUG_DATA",27254],[5,"GPS2_RTK_DATA",27254],[5,"ESC_STATUS_DATA",27254],[5,"CURRENT_EVENT_SEQUENCE_DATA",27254],[5,"PLAY_TUNE_DATA",27254],[5,"CELLULAR_CONFIG_DATA",27254],[5,"VIDEO_STREAM_INFORMATION_DATA",27254],[5,"RAW_RPM_DATA",27254],[5,"MISSION_CURRENT_DATA",27254],[5,"MISSION_ITEM_DATA",27254],[5,"CAMERA_TRACKING_GEO_STATUS_DATA",27254],[5,"SET_HOME_POSITION_DATA",27254],[5,"OPEN_DRONE_ID_OPERATOR_ID_DATA",27254],[5,"SUPPORTED_TUNES_DATA",27254],[5,"PARAM_VALUE_DATA",27254],[5,"CAMERA_TRACKING_IMAGE_STATUS_DATA",27254],[5,"COMMAND_CANCEL_DATA",27254],[5,"MISSION_ACK_DATA",27254],[6,"MavCollisionSrc",27254],[6,"MavDistanceSensor",27254],[6,"MavParamExtType",27254],[6,"GpsFixType",27254],[6,"MavOdidStatus",27254],[6,"MavOdidHeightRef",27254],[6,"MavCollisionThreatLevel",27254],[6,"CameraTrackingMode",27254],[6,"MagCalStatus",27254],[6,"PreflightStorageMissionAction",27254],[6,"SerialControlDev",27254],[6,"MavOdidArmStatus",27254],[6,"MavDataStream",27254],[6,"CameraTrackingStatusFlags",27254],[6,"StorageType",27254],[6,"MavOdidOperatorLocationType",27254],[6,"MavEstimatorType",27254],[6,"MavOdidAuthType",27254],[6,"MavVtolState",27254],[6,"MavState",27254],[6,"OrbitYawBehaviour",27254],[6,"MavCmd",27254],[6,"MavCmdAck",27254],[6,"AisType",27254],[6,"UavionixAdsbEmergencyStatus",27254],[6,"MavBatteryType",27254],[6,"MavType",27254],[6,"MavBatteryChargeState",27254],[6,"ParachuteAction",27254],[6,"MavlinkDataStreamType",27254],[6,"MavLandedState",27254],[6,"VideoStreamType",27254],[6,"MavArmAuthDeniedReason",27254],[6,"MavOdidSpeedAcc",27254],[6,"GimbalManagerFlags",27254],[6,"MavDoRepositionFlags",27254],[6,"RtkBaselineCoordinateSystem",27254],[6,"MavEventErrorReason",27254],[6,"MavOdidVerAcc",27254],[6,"MavMountMode",27254],[6,"VideoStreamStatusFlags",27254],[6,"RcType",27254],[6,"MavMissionType",27254],[6,"ActuatorConfiguration",27254],[6,"MavOdidClassificationType",27254],[6,"CellularConfigResponse",27254],[6,"MavOdidIdType",27254],[6,"FirmwareVersionType",27254],[6,"CompMetadataType",27254],[6,"MavModeFlagDecodePosition",27254],[6,"GripperActions",27254],[6,"FenceBreach",27254],[6,"FailureUnit",27254],[6,"AdsbAltitudeType",27254],[6,"NavVtolLandOptions",27254],[6,"CameraTrackingTargetData",27254],[6,"PrecisionLandMode",27254],[6,"CellularNetworkFailedReason",27254],[6,"MavOdidHorAcc",27254],[6,"MavRoi",27254],[6,"LandingTargetType",27254],[6,"UtmFlightState",27254],[6,"CellularStatusFlag",27254],[6,"WifiConfigApResponse",27254],[6,"MavBatteryMode",27254],[6,"CanFilterOp",27254],[6,"SetFocusType",27254],[6,"FenceMitigate",27254],[6,"VtolTransitionHeading",27254],[6,"MavResult",27254],[6,"MavComponent",27254],[6,"ParamAck",27254],[6,"MavOdidUaType",27254],[6,"ActuatorOutputFunction",27254],[6,"CameraMode",27254],[6,"FailureType",27254],[6,"WifiConfigApMode",27254],[6,"MavFrame",27254],[6,"UavionixAdsbOutCfgGpsOffsetLat",27254],[6,"AisNavStatus",27254],[6,"StorageUsageFlag",27254],[6,"UavcanNodeMode",27254],[6,"CellularNetworkRadioType",27254],[6,"MavGoto",27254],[6,"MotorTestThrottleType",27254],[6,"MavFtpErr",27254],[6,"MavSeverity",27254],[6,"MavOdidCategoryEu",27254],[6,"MotorTestOrder",27254],[6,"MavTunnelPayloadType",27254],[6,"MavAutopilot",27254],[6,"MavBatteryFunction",27254],[6,"MavSysStatusSensorExtended",27254],[6,"MavFtpOpcode",27254],[6,"MavBatteryFault",27254],[6,"PreflightStorageParameterAction",27254],[6,"MavOdidTimeAcc",27254],[6,"WinchActions",27254],[6,"MavOdidDescType",27254],[6,"EscConnectionType",27254],[6,"UavionixAdsbOutDynamicGpsFix",27254],[6,"AutotuneAxis",27254],[6,"MavCollisionAction",27254],[6,"MavOdidClassEu",27254],[6,"MissionState",27254],[6,"UavionixAdsbOutCfgAircraftSize",27254],[6,"CameraZoomType",27254],[6,"MavMode",27254],[6,"MavMissionResult",27254],[6,"StorageStatus",27254],[6,"MavOdidOperatorIdType",27254],[6,"UavcanNodeHealth",27254],[6,"MavParamType",27254],[6,"MavSensorOrientation",27254],[6,"AdsbEmitterType",27254],[6,"FenceAction",27254],[6,"UavionixAdsbOutCfgGpsOffsetLon",27254],[15,"InvalidEnum",27102],[15,"InvalidFlag",27102],[15,"UnknownMessage",27102]],"r":[[3,39175],[4,39175],[5,39175],[6,39175],[7,39175],[8,39177],[9,39175],[10,39175],[11,39175],[12,39175],[14,39175],[29,39175],[30,39175],[31,39175],[49,39177],[61,39175],[100,39175],[104,39175],[105,39175],[106,39175],[107,39175],[108,39175],[152,39175],[153,39175],[154,39175],[155,39175],[15498,39192],[15522,39193],[27064,39181],[27065,39181],[27067,39181],[27239,39184],[39174,39195]],"b":[[8650,"impl-Binary-for-EkfStatusFlags"],[8651,"impl-UpperHex-for-EkfStatusFlags"],[8652,"impl-LowerHex-for-EkfStatusFlags"],[8653,"impl-Octal-for-EkfStatusFlags"],[8654,"impl-Debug-for-EkfStatusFlags"],[8658,"impl-Debug-for-RallyFlags"],[8659,"impl-LowerHex-for-RallyFlags"],[8660,"impl-Octal-for-RallyFlags"],[8661,"impl-UpperHex-for-RallyFlags"],[8662,"impl-Binary-for-RallyFlags"],[8665,"impl-Octal-for-UavionixAdsbOutDynamicState"],[8666,"impl-Binary-for-UavionixAdsbOutDynamicState"],[8667,"impl-Debug-for-UavionixAdsbOutDynamicState"],[8668,"impl-LowerHex-for-UavionixAdsbOutDynamicState"],[8669,"impl-UpperHex-for-UavionixAdsbOutDynamicState"],[8672,"impl-LowerHex-for-PositionTargetTypemask"],[8673,"impl-Debug-for-PositionTargetTypemask"],[8674,"impl-UpperHex-for-PositionTargetTypemask"],[8675,"impl-Octal-for-PositionTargetTypemask"],[8676,"impl-Binary-for-PositionTargetTypemask"],[8679,"impl-UpperHex-for-SerialControlFlag"],[8680,"impl-LowerHex-for-SerialControlFlag"],[8681,"impl-Debug-for-SerialControlFlag"],[8682,"impl-Octal-for-SerialControlFlag"],[8683,"impl-Binary-for-SerialControlFlag"],[8702,"impl-UpperHex-for-MavWinchStatusFlag"],[8703,"impl-Debug-for-MavWinchStatusFlag"],[8704,"impl-Binary-for-MavWinchStatusFlag"],[8705,"impl-Octal-for-MavWinchStatusFlag"],[8706,"impl-LowerHex-for-MavWinchStatusFlag"],[8715,"impl-LowerHex-for-HlFailureFlag"],[8716,"impl-Debug-for-HlFailureFlag"],[8717,"impl-Octal-for-HlFailureFlag"],[8718,"impl-Binary-for-HlFailureFlag"],[8719,"impl-UpperHex-for-HlFailureFlag"],[8720,"impl-Octal-for-LimitModule"],[8721,"impl-UpperHex-for-LimitModule"],[8722,"impl-Debug-for-LimitModule"],[8723,"impl-Binary-for-LimitModule"],[8724,"impl-LowerHex-for-LimitModule"],[8729,"impl-Octal-for-EstimatorStatusFlags"],[8730,"impl-LowerHex-for-EstimatorStatusFlags"],[8731,"impl-Debug-for-EstimatorStatusFlags"],[8732,"impl-UpperHex-for-EstimatorStatusFlags"],[8733,"impl-Binary-for-EstimatorStatusFlags"],[8735,"impl-Octal-for-MavModeFlag"],[8736,"impl-LowerHex-for-MavModeFlag"],[8737,"impl-UpperHex-for-MavModeFlag"],[8738,"impl-Debug-for-MavModeFlag"],[8739,"impl-Binary-for-MavModeFlag"],[8740,"impl-Debug-for-UavionixAdsbRfHealth"],[8741,"impl-Binary-for-UavionixAdsbRfHealth"],[8742,"impl-UpperHex-for-UavionixAdsbRfHealth"],[8743,"impl-LowerHex-for-UavionixAdsbRfHealth"],[8744,"impl-Octal-for-UavionixAdsbRfHealth"],[8748,"impl-UpperHex-for-UtmDataAvailFlags"],[8749,"impl-Octal-for-UtmDataAvailFlags"],[8750,"impl-Binary-for-UtmDataAvailFlags"],[8751,"impl-Debug-for-UtmDataAvailFlags"],[8752,"impl-LowerHex-for-UtmDataAvailFlags"],[8772,"impl-Debug-for-TuneFormat"],[8773,"impl-UpperHex-for-TuneFormat"],[8774,"impl-Binary-for-TuneFormat"],[8775,"impl-LowerHex-for-TuneFormat"],[8776,"impl-Octal-for-TuneFormat"],[8781,"impl-LowerHex-for-MavSysStatusSensor"],[8782,"impl-Debug-for-MavSysStatusSensor"],[8783,"impl-Binary-for-MavSysStatusSensor"],[8784,"impl-Octal-for-MavSysStatusSensor"],[8785,"impl-UpperHex-for-MavSysStatusSensor"],[8787,"impl-LowerHex-for-UavionixAdsbOutRfSelect"],[8788,"impl-Debug-for-UavionixAdsbOutRfSelect"],[8789,"impl-Binary-for-UavionixAdsbOutRfSelect"],[8790,"impl-Octal-for-UavionixAdsbOutRfSelect"],[8791,"impl-UpperHex-for-UavionixAdsbOutRfSelect"],[8795,"impl-Debug-for-GpsInputIgnoreFlags"],[8796,"impl-LowerHex-for-GpsInputIgnoreFlags"],[8797,"impl-Octal-for-GpsInputIgnoreFlags"],[8798,"impl-Binary-for-GpsInputIgnoreFlags"],[8799,"impl-UpperHex-for-GpsInputIgnoreFlags"],[8818,"impl-Debug-for-HilSensorUpdatedFlags"],[8819,"impl-UpperHex-for-HilSensorUpdatedFlags"],[8820,"impl-LowerHex-for-HilSensorUpdatedFlags"],[8821,"impl-Binary-for-HilSensorUpdatedFlags"],[8822,"impl-Octal-for-HilSensorUpdatedFlags"],[8825,"impl-Debug-for-EscFailureFlags"],[8826,"impl-UpperHex-for-EscFailureFlags"],[8827,"impl-LowerHex-for-EscFailureFlags"],[8828,"impl-Octal-for-EscFailureFlags"],[8829,"impl-Binary-for-EscFailureFlags"],[8853,"impl-UpperHex-for-HighresImuUpdatedFlags"],[8854,"impl-Octal-for-HighresImuUpdatedFlags"],[8855,"impl-Debug-for-HighresImuUpdatedFlags"],[8856,"impl-LowerHex-for-HighresImuUpdatedFlags"],[8857,"impl-Binary-for-HighresImuUpdatedFlags"],[8868,"impl-LowerHex-for-MavEventCurrentSequenceFlags"],[8869,"impl-Binary-for-MavEventCurrentSequenceFlags"],[8870,"impl-Debug-for-MavEventCurrentSequenceFlags"],[8871,"impl-Octal-for-MavEventCurrentSequenceFlags"],[8872,"impl-UpperHex-for-MavEventCurrentSequenceFlags"],[8886,"impl-Debug-for-CameraCapFlags"],[8887,"impl-LowerHex-for-CameraCapFlags"],[8888,"impl-UpperHex-for-CameraCapFlags"],[8889,"impl-Binary-for-CameraCapFlags"],[8890,"impl-Octal-for-CameraCapFlags"],[8894,"impl-LowerHex-for-GimbalManagerCapFlags"],[8895,"impl-Octal-for-GimbalManagerCapFlags"],[8896,"impl-Debug-for-GimbalManagerCapFlags"],[8897,"impl-Binary-for-GimbalManagerCapFlags"],[8898,"impl-UpperHex-for-GimbalManagerCapFlags"],[8902,"impl-LowerHex-for-GoproHeartbeatFlags"],[8903,"impl-Octal-for-GoproHeartbeatFlags"],[8904,"impl-Debug-for-GoproHeartbeatFlags"],[8905,"impl-UpperHex-for-GoproHeartbeatFlags"],[8906,"impl-Binary-for-GoproHeartbeatFlags"],[8907,"impl-Debug-for-AisFlags"],[8908,"impl-Binary-for-AisFlags"],[8909,"impl-Octal-for-AisFlags"],[8910,"impl-LowerHex-for-AisFlags"],[8911,"impl-UpperHex-for-AisFlags"],[8913,"impl-UpperHex-for-AdsbFlags"],[8914,"impl-Debug-for-AdsbFlags"],[8915,"impl-Binary-for-AdsbFlags"],[8916,"impl-LowerHex-for-AdsbFlags"],[8917,"impl-Octal-for-AdsbFlags"],[8923,"impl-Octal-for-MavGeneratorStatusFlag"],[8924,"impl-Debug-for-MavGeneratorStatusFlag"],[8925,"impl-LowerHex-for-MavGeneratorStatusFlag"],[8926,"impl-Binary-for-MavGeneratorStatusFlag"],[8927,"impl-UpperHex-for-MavGeneratorStatusFlag"],[8928,"impl-LowerHex-for-GimbalDeviceErrorFlags"],[8929,"impl-UpperHex-for-GimbalDeviceErrorFlags"],[8930,"impl-Binary-for-GimbalDeviceErrorFlags"],[8931,"impl-Debug-for-GimbalDeviceErrorFlags"],[8932,"impl-Octal-for-GimbalDeviceErrorFlags"],[8933,"impl-Octal-for-GimbalDeviceFlags"],[8934,"impl-Binary-for-GimbalDeviceFlags"],[8935,"impl-Debug-for-GimbalDeviceFlags"],[8936,"impl-UpperHex-for-GimbalDeviceFlags"],[8937,"impl-LowerHex-for-GimbalDeviceFlags"],[8938,"impl-Octal-for-GimbalDeviceCapFlags"],[8939,"impl-Debug-for-GimbalDeviceCapFlags"],[8940,"impl-LowerHex-for-GimbalDeviceCapFlags"],[8941,"impl-Binary-for-GimbalDeviceCapFlags"],[8942,"impl-UpperHex-for-GimbalDeviceCapFlags"],[8946,"impl-LowerHex-for-AttitudeTargetTypemask"],[8947,"impl-Octal-for-AttitudeTargetTypemask"],[8948,"impl-UpperHex-for-AttitudeTargetTypemask"],[8949,"impl-Debug-for-AttitudeTargetTypemask"],[8950,"impl-Binary-for-AttitudeTargetTypemask"],[8957,"impl-UpperHex-for-MavPowerStatus"],[8958,"impl-Debug-for-MavPowerStatus"],[8959,"impl-LowerHex-for-MavPowerStatus"],[8960,"impl-Octal-for-MavPowerStatus"],[8961,"impl-Binary-for-MavPowerStatus"],[8963,"impl-LowerHex-for-MavProtocolCapability"],[8964,"impl-Octal-for-MavProtocolCapability"],[8965,"impl-Debug-for-MavProtocolCapability"],[8966,"impl-UpperHex-for-MavProtocolCapability"],[8967,"impl-Binary-for-MavProtocolCapability"],[21924,"impl-Octal-for-MavWinchStatusFlag"],[21925,"impl-UpperHex-for-MavWinchStatusFlag"],[21926,"impl-Binary-for-MavWinchStatusFlag"],[21927,"impl-Debug-for-MavWinchStatusFlag"],[21928,"impl-LowerHex-for-MavWinchStatusFlag"],[21931,"impl-LowerHex-for-GpsInputIgnoreFlags"],[21932,"impl-Binary-for-GpsInputIgnoreFlags"],[21933,"impl-UpperHex-for-GpsInputIgnoreFlags"],[21934,"impl-Debug-for-GpsInputIgnoreFlags"],[21935,"impl-Octal-for-GpsInputIgnoreFlags"],[21948,"impl-UpperHex-for-MavSysStatusSensor"],[21949,"impl-LowerHex-for-MavSysStatusSensor"],[21950,"impl-Octal-for-MavSysStatusSensor"],[21951,"impl-Debug-for-MavSysStatusSensor"],[21952,"impl-Binary-for-MavSysStatusSensor"],[21954,"impl-Debug-for-MavModeFlag"],[21955,"impl-Binary-for-MavModeFlag"],[21956,"impl-UpperHex-for-MavModeFlag"],[21957,"impl-Octal-for-MavModeFlag"],[21958,"impl-LowerHex-for-MavModeFlag"],[21969,"impl-Debug-for-UtmDataAvailFlags"],[21970,"impl-UpperHex-for-UtmDataAvailFlags"],[21971,"impl-Binary-for-UtmDataAvailFlags"],[21972,"impl-LowerHex-for-UtmDataAvailFlags"],[21973,"impl-Octal-for-UtmDataAvailFlags"],[21974,"impl-LowerHex-for-AttitudeTargetTypemask"],[21975,"impl-Debug-for-AttitudeTargetTypemask"],[21976,"impl-Octal-for-AttitudeTargetTypemask"],[21977,"impl-Binary-for-AttitudeTargetTypemask"],[21978,"impl-UpperHex-for-AttitudeTargetTypemask"],[21989,"impl-LowerHex-for-HilSensorUpdatedFlags"],[21990,"impl-Binary-for-HilSensorUpdatedFlags"],[21991,"impl-Debug-for-HilSensorUpdatedFlags"],[21992,"impl-UpperHex-for-HilSensorUpdatedFlags"],[21993,"impl-Octal-for-HilSensorUpdatedFlags"],[21997,"impl-LowerHex-for-AisFlags"],[21998,"impl-Octal-for-AisFlags"],[21999,"impl-UpperHex-for-AisFlags"],[22000,"impl-Debug-for-AisFlags"],[22001,"impl-Binary-for-AisFlags"],[22002,"impl-UpperHex-for-SerialControlFlag"],[22003,"impl-Debug-for-SerialControlFlag"],[22004,"impl-Octal-for-SerialControlFlag"],[22005,"impl-Binary-for-SerialControlFlag"],[22006,"impl-LowerHex-for-SerialControlFlag"],[22009,"impl-Debug-for-HighresImuUpdatedFlags"],[22010,"impl-Binary-for-HighresImuUpdatedFlags"],[22011,"impl-UpperHex-for-HighresImuUpdatedFlags"],[22012,"impl-Octal-for-HighresImuUpdatedFlags"],[22013,"impl-LowerHex-for-HighresImuUpdatedFlags"],[22015,"impl-Binary-for-GimbalManagerCapFlags"],[22016,"impl-Octal-for-GimbalManagerCapFlags"],[22017,"impl-LowerHex-for-GimbalManagerCapFlags"],[22018,"impl-UpperHex-for-GimbalManagerCapFlags"],[22019,"impl-Debug-for-GimbalManagerCapFlags"],[22023,"impl-UpperHex-for-HlFailureFlag"],[22024,"impl-Octal-for-HlFailureFlag"],[22025,"impl-LowerHex-for-HlFailureFlag"],[22026,"impl-Binary-for-HlFailureFlag"],[22027,"impl-Debug-for-HlFailureFlag"],[22029,"impl-LowerHex-for-AdsbFlags"],[22030,"impl-Binary-for-AdsbFlags"],[22031,"impl-UpperHex-for-AdsbFlags"],[22032,"impl-Debug-for-AdsbFlags"],[22033,"impl-Octal-for-AdsbFlags"],[22035,"impl-Binary-for-MavEventCurrentSequenceFlags"],[22036,"impl-Octal-for-MavEventCurrentSequenceFlags"],[22037,"impl-LowerHex-for-MavEventCurrentSequenceFlags"],[22038,"impl-UpperHex-for-MavEventCurrentSequenceFlags"],[22039,"impl-Debug-for-MavEventCurrentSequenceFlags"],[22048,"impl-Octal-for-CameraCapFlags"],[22049,"impl-LowerHex-for-CameraCapFlags"],[22050,"impl-Binary-for-CameraCapFlags"],[22051,"impl-UpperHex-for-CameraCapFlags"],[22052,"impl-Debug-for-CameraCapFlags"],[22064,"impl-Binary-for-EstimatorStatusFlags"],[22065,"impl-LowerHex-for-EstimatorStatusFlags"],[22066,"impl-UpperHex-for-EstimatorStatusFlags"],[22067,"impl-Debug-for-EstimatorStatusFlags"],[22068,"impl-Octal-for-EstimatorStatusFlags"],[22069,"impl-Octal-for-EscFailureFlags"],[22070,"impl-UpperHex-for-EscFailureFlags"],[22071,"impl-Debug-for-EscFailureFlags"],[22072,"impl-Binary-for-EscFailureFlags"],[22073,"impl-LowerHex-for-EscFailureFlags"],[22074,"impl-Debug-for-MavProtocolCapability"],[22075,"impl-UpperHex-for-MavProtocolCapability"],[22076,"impl-Octal-for-MavProtocolCapability"],[22077,"impl-Binary-for-MavProtocolCapability"],[22078,"impl-LowerHex-for-MavProtocolCapability"],[22081,"impl-LowerHex-for-MavGeneratorStatusFlag"],[22082,"impl-Octal-for-MavGeneratorStatusFlag"],[22083,"impl-Binary-for-MavGeneratorStatusFlag"],[22084,"impl-UpperHex-for-MavGeneratorStatusFlag"],[22085,"impl-Debug-for-MavGeneratorStatusFlag"],[22088,"impl-UpperHex-for-PositionTargetTypemask"],[22089,"impl-Octal-for-PositionTargetTypemask"],[22090,"impl-Binary-for-PositionTargetTypemask"],[22091,"impl-Debug-for-PositionTargetTypemask"],[22092,"impl-LowerHex-for-PositionTargetTypemask"],[22096,"impl-LowerHex-for-MavPowerStatus"],[22097,"impl-UpperHex-for-MavPowerStatus"],[22098,"impl-Octal-for-MavPowerStatus"],[22099,"impl-Debug-for-MavPowerStatus"],[22100,"impl-Binary-for-MavPowerStatus"],[22112,"impl-Debug-for-GimbalDeviceCapFlags"],[22113,"impl-Octal-for-GimbalDeviceCapFlags"],[22114,"impl-LowerHex-for-GimbalDeviceCapFlags"],[22115,"impl-Binary-for-GimbalDeviceCapFlags"],[22116,"impl-UpperHex-for-GimbalDeviceCapFlags"],[22118,"impl-Octal-for-GimbalDeviceErrorFlags"],[22119,"impl-UpperHex-for-GimbalDeviceErrorFlags"],[22120,"impl-Binary-for-GimbalDeviceErrorFlags"],[22121,"impl-LowerHex-for-GimbalDeviceErrorFlags"],[22122,"impl-Debug-for-GimbalDeviceErrorFlags"],[22136,"impl-Binary-for-GimbalDeviceFlags"],[22137,"impl-UpperHex-for-GimbalDeviceFlags"],[22138,"impl-Debug-for-GimbalDeviceFlags"],[22139,"impl-LowerHex-for-GimbalDeviceFlags"],[22140,"impl-Octal-for-GimbalDeviceFlags"],[22147,"impl-Debug-for-TuneFormat"],[22148,"impl-Binary-for-TuneFormat"],[22149,"impl-Octal-for-TuneFormat"],[22150,"impl-UpperHex-for-TuneFormat"],[22151,"impl-LowerHex-for-TuneFormat"],[27075,"impl-Display-for-ParserError"],[27076,"impl-Debug-for-ParserError"],[27077,"impl-Display-for-MessageReadError"],[27078,"impl-Debug-for-MessageReadError"],[27079,"impl-Display-for-MessageWriteError"],[27080,"impl-Debug-for-MessageWriteError"],[27082,"impl-From%3CParserError%3E-for-MessageReadError"],[27083,"impl-From%3CError%3E-for-MessageReadError"],[33847,"impl-LowerHex-for-PositionTargetTypemask"],[33848,"impl-Debug-for-PositionTargetTypemask"],[33849,"impl-Octal-for-PositionTargetTypemask"],[33850,"impl-Binary-for-PositionTargetTypemask"],[33851,"impl-UpperHex-for-PositionTargetTypemask"],[33854,"impl-LowerHex-for-GpsInputIgnoreFlags"],[33855,"impl-Binary-for-GpsInputIgnoreFlags"],[33856,"impl-Debug-for-GpsInputIgnoreFlags"],[33857,"impl-UpperHex-for-GpsInputIgnoreFlags"],[33858,"impl-Octal-for-GpsInputIgnoreFlags"],[33884,"impl-LowerHex-for-TuneFormat"],[33885,"impl-Octal-for-TuneFormat"],[33886,"impl-Debug-for-TuneFormat"],[33887,"impl-UpperHex-for-TuneFormat"],[33888,"impl-Binary-for-TuneFormat"],[33889,"impl-Octal-for-GimbalDeviceErrorFlags"],[33890,"impl-UpperHex-for-GimbalDeviceErrorFlags"],[33891,"impl-LowerHex-for-GimbalDeviceErrorFlags"],[33892,"impl-Binary-for-GimbalDeviceErrorFlags"],[33893,"impl-Debug-for-GimbalDeviceErrorFlags"],[33895,"impl-UpperHex-for-MavModeFlag"],[33896,"impl-Binary-for-MavModeFlag"],[33897,"impl-Octal-for-MavModeFlag"],[33898,"impl-Debug-for-MavModeFlag"],[33899,"impl-LowerHex-for-MavModeFlag"],[33910,"impl-Octal-for-GimbalDeviceCapFlags"],[33911,"impl-LowerHex-for-GimbalDeviceCapFlags"],[33912,"impl-Binary-for-GimbalDeviceCapFlags"],[33913,"impl-UpperHex-for-GimbalDeviceCapFlags"],[33914,"impl-Debug-for-GimbalDeviceCapFlags"],[33920,"impl-UpperHex-for-MavSysStatusSensor"],[33921,"impl-Binary-for-MavSysStatusSensor"],[33922,"impl-LowerHex-for-MavSysStatusSensor"],[33923,"impl-Octal-for-MavSysStatusSensor"],[33924,"impl-Debug-for-MavSysStatusSensor"],[33930,"impl-UpperHex-for-MavProtocolCapability"],[33931,"impl-LowerHex-for-MavProtocolCapability"],[33932,"impl-Binary-for-MavProtocolCapability"],[33933,"impl-Octal-for-MavProtocolCapability"],[33934,"impl-Debug-for-MavProtocolCapability"],[33937,"impl-LowerHex-for-AisFlags"],[33938,"impl-Octal-for-AisFlags"],[33939,"impl-UpperHex-for-AisFlags"],[33940,"impl-Binary-for-AisFlags"],[33941,"impl-Debug-for-AisFlags"],[33957,"impl-Binary-for-MavEventCurrentSequenceFlags"],[33958,"impl-Octal-for-MavEventCurrentSequenceFlags"],[33959,"impl-UpperHex-for-MavEventCurrentSequenceFlags"],[33960,"impl-LowerHex-for-MavEventCurrentSequenceFlags"],[33961,"impl-Debug-for-MavEventCurrentSequenceFlags"],[33963,"impl-Octal-for-HighresImuUpdatedFlags"],[33964,"impl-Debug-for-HighresImuUpdatedFlags"],[33965,"impl-UpperHex-for-HighresImuUpdatedFlags"],[33966,"impl-LowerHex-for-HighresImuUpdatedFlags"],[33967,"impl-Binary-for-HighresImuUpdatedFlags"],[33971,"impl-Binary-for-UtmDataAvailFlags"],[33972,"impl-UpperHex-for-UtmDataAvailFlags"],[33973,"impl-Debug-for-UtmDataAvailFlags"],[33974,"impl-LowerHex-for-UtmDataAvailFlags"],[33975,"impl-Octal-for-UtmDataAvailFlags"],[33990,"impl-Debug-for-HlFailureFlag"],[33991,"impl-Octal-for-HlFailureFlag"],[33992,"impl-LowerHex-for-HlFailureFlag"],[33993,"impl-UpperHex-for-HlFailureFlag"],[33994,"impl-Binary-for-HlFailureFlag"],[33996,"impl-Binary-for-UavionixAdsbOutRfSelect"],[33997,"impl-UpperHex-for-UavionixAdsbOutRfSelect"],[33998,"impl-Debug-for-UavionixAdsbOutRfSelect"],[33999,"impl-LowerHex-for-UavionixAdsbOutRfSelect"],[34000,"impl-Octal-for-UavionixAdsbOutRfSelect"],[34001,"impl-Debug-for-GimbalManagerCapFlags"],[34002,"impl-LowerHex-for-GimbalManagerCapFlags"],[34003,"impl-UpperHex-for-GimbalManagerCapFlags"],[34004,"impl-Binary-for-GimbalManagerCapFlags"],[34005,"impl-Octal-for-GimbalManagerCapFlags"],[34009,"impl-Octal-for-EstimatorStatusFlags"],[34010,"impl-Binary-for-EstimatorStatusFlags"],[34011,"impl-LowerHex-for-EstimatorStatusFlags"],[34012,"impl-UpperHex-for-EstimatorStatusFlags"],[34013,"impl-Debug-for-EstimatorStatusFlags"],[34017,"impl-LowerHex-for-MavPowerStatus"],[34018,"impl-Binary-for-MavPowerStatus"],[34019,"impl-Octal-for-MavPowerStatus"],[34020,"impl-UpperHex-for-MavPowerStatus"],[34021,"impl-Debug-for-MavPowerStatus"],[34022,"impl-Octal-for-HilSensorUpdatedFlags"],[34023,"impl-LowerHex-for-HilSensorUpdatedFlags"],[34024,"impl-Debug-for-HilSensorUpdatedFlags"],[34025,"impl-UpperHex-for-HilSensorUpdatedFlags"],[34026,"impl-Binary-for-HilSensorUpdatedFlags"],[34028,"impl-Octal-for-MavGeneratorStatusFlag"],[34029,"impl-UpperHex-for-MavGeneratorStatusFlag"],[34030,"impl-Binary-for-MavGeneratorStatusFlag"],[34031,"impl-Debug-for-MavGeneratorStatusFlag"],[34032,"impl-LowerHex-for-MavGeneratorStatusFlag"],[34033,"impl-UpperHex-for-UavionixAdsbOutDynamicState"],[34034,"impl-Binary-for-UavionixAdsbOutDynamicState"],[34035,"impl-LowerHex-for-UavionixAdsbOutDynamicState"],[34036,"impl-Octal-for-UavionixAdsbOutDynamicState"],[34037,"impl-Debug-for-UavionixAdsbOutDynamicState"],[34038,"impl-Debug-for-EscFailureFlags"],[34039,"impl-Octal-for-EscFailureFlags"],[34040,"impl-Binary-for-EscFailureFlags"],[34041,"impl-LowerHex-for-EscFailureFlags"],[34042,"impl-UpperHex-for-EscFailureFlags"],[34043,"impl-Octal-for-AttitudeTargetTypemask"],[34044,"impl-Binary-for-AttitudeTargetTypemask"],[34045,"impl-UpperHex-for-AttitudeTargetTypemask"],[34046,"impl-LowerHex-for-AttitudeTargetTypemask"],[34047,"impl-Debug-for-AttitudeTargetTypemask"],[34054,"impl-LowerHex-for-AdsbFlags"],[34055,"impl-Debug-for-AdsbFlags"],[34056,"impl-UpperHex-for-AdsbFlags"],[34057,"impl-Octal-for-AdsbFlags"],[34058,"impl-Binary-for-AdsbFlags"],[34060,"impl-Octal-for-UavionixAdsbRfHealth"],[34061,"impl-Debug-for-UavionixAdsbRfHealth"],[34062,"impl-Binary-for-UavionixAdsbRfHealth"],[34063,"impl-LowerHex-for-UavionixAdsbRfHealth"],[34064,"impl-UpperHex-for-UavionixAdsbRfHealth"],[34070,"impl-Debug-for-MavWinchStatusFlag"],[34071,"impl-UpperHex-for-MavWinchStatusFlag"],[34072,"impl-Octal-for-MavWinchStatusFlag"],[34073,"impl-Binary-for-MavWinchStatusFlag"],[34074,"impl-LowerHex-for-MavWinchStatusFlag"],[34075,"impl-UpperHex-for-SerialControlFlag"],[34076,"impl-Binary-for-SerialControlFlag"],[34077,"impl-LowerHex-for-SerialControlFlag"],[34078,"impl-Octal-for-SerialControlFlag"],[34079,"impl-Debug-for-SerialControlFlag"],[34080,"impl-Binary-for-GimbalDeviceFlags"],[34081,"impl-LowerHex-for-GimbalDeviceFlags"],[34082,"impl-Octal-for-GimbalDeviceFlags"],[34083,"impl-UpperHex-for-GimbalDeviceFlags"],[34084,"impl-Debug-for-GimbalDeviceFlags"],[34094,"impl-Debug-for-CameraCapFlags"],[34095,"impl-Binary-for-CameraCapFlags"],[34096,"impl-UpperHex-for-CameraCapFlags"],[34097,"impl-LowerHex-for-CameraCapFlags"],[34098,"impl-Octal-for-CameraCapFlags"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAPCFUgAAAAUACAAAAA0ABQAUABgALgADADMABAA5AAsASgACAE4AAgBSAAAAWAAMAGYAAgBtAAAAcwACAHcAAAB5AB4AmQAAAJ0AzA2KDnYAgQ8CAOQPSwhQGAYAdxhmBf4dFwA2HuYEZyX1AX0nDwDNJwAA+CnYAPEqHAEuLKED8C8+AG8wBACUMIkEPjXlBUQ7SQGPPA0AnjwHAKg8lApWR2YAIUgBAG5IIAaoTgEAw07wA81SDgD1UqYDTlhuAdZZDQAWWgAAsFuZAGNc7QBqXa4CMmAnAIxgBACqYGEDJWRSBJFoOAHLaQEAzmkAANNpUQAqagMAM2o0AGlqAQB0atkKanVnAEJ2AQCYdlAGBX0BACN9CQRJgRAAdoHLAwiHhAGpiA0A74gAAJqKmQBQi/EAXoy+AjmPKgCcjwQAvY92A1CTcwTglyYB"}],\ ["mavlink_bindgen",{"t":"EFFCONNNNHCNNHNNHNNOOOCONNNNNNHGPPPPNNNNNNNNNNNOOOOOOOOPPPPPPPPPPPPPPPPPFFFFFGGPPPPPPPPPPPONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONOOONNNNNNNHONNNNNNNNNNNNNNHONNNNNNNOOOOOOOOHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNO","n":["BindGenError","GeneratedBinding","GeneratedBindings","binder","bindings","borrow","borrow","borrow_mut","borrow_mut","emit_cargo_build_messages","error","fmt","fmt","format_generated_code","from","from","generate","into","into","mavlink_xml","mod_rs","module_name","parser","rust_module","try_from","try_from","try_into","try_into","type_id","type_id","generate","BindGenError","CouldNotCreateRustBindingsFile","CouldNotReadDefinitionFile","CouldNotReadDefinitionsDirectory","CouldNotReadDirectoryEntryInDefinitionsDirectory","borrow","borrow_mut","fmt","fmt","from","into","source","to_string","try_from","try_into","type_id","dest_path","path","path","path","source","source","source","source","Array","Char","Deprecated","Description","Dialect","Double","Entry","Enum","Enums","Extensions","Field","Float","Include","Int16","Int32","Int64","Int8","MavEnum","MavEnumEntry","MavField","MavMessage","MavProfile","MavType","MavXmlElement","Mavlink","Message","Messages","Param","UInt16","UInt32","UInt64","UInt8","UInt8MavlinkVersion","Version","Wip","bitfield","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","compare","default","default","default","default","default","default","description","description","description","description","display","emit_default_value","entries","enums","enumtype","eq","eq","eq","eq","eq","eq","eq","extra_crc","fields","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","generate","id","into","into","into","into","into","into","into","is_extension","mavtype","messages","name","name","name","name","params","parse_profile","primitive_type","rust_primitive_type","rust_reader","rust_type","rust_writer","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","value"],"q":[[0,"mavlink_bindgen"],[30,"mavlink_bindgen::binder"],[31,"mavlink_bindgen::error"],[47,"mavlink_bindgen::error::BindGenError"],[55,"mavlink_bindgen::parser"],[210,"core::fmt"],[211,"core::result"],[212,"std::path"],[213,"core::convert"],[214,"core::any"],[215,"alloc::vec"],[216,"std::io"],[217,"core::error"],[218,"core::option"],[219,"alloc::string"],[220,"core::cmp"],[221,"proc_macro2"],[222,"std::collections::hash::set"]],"i":[0,0,0,0,3,5,3,5,3,0,0,5,3,0,5,3,0,5,3,5,3,5,0,5,5,3,5,3,5,3,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,33,34,35,36,34,35,36,33,24,24,25,25,25,24,25,25,25,25,25,24,25,24,24,24,24,0,0,0,0,0,0,0,25,25,25,25,24,24,24,24,24,25,25,20,19,20,21,22,23,24,25,19,20,21,22,23,24,25,19,20,21,22,23,24,25,19,20,21,22,23,24,25,24,19,20,21,22,23,24,20,21,22,23,23,24,20,19,23,19,20,21,22,23,24,25,0,22,19,20,21,22,23,24,25,19,20,21,22,23,24,25,0,22,19,20,21,22,23,24,25,23,23,19,20,21,22,23,21,0,24,24,24,24,24,19,20,21,22,23,24,25,19,20,21,22,23,24,25,19,20,21,22,23,24,25,19,20,21,22,23,24,25,21],"f":"`````{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{f}}}h}`{{{b{j}}{b{dl}}}n}{{{b{f}}{b{dl}}}n}2{cc{}}0{{ce}{{Ab{fA`}}}{{Af{Ad}}}{{Af{Ad}}}}{ce{}{}}0`````{c{{Ab{e}}}{}{}}000{{{b{c}}}Ah{}}0{{{Al{{b{Aj}}}}{b{dc}}}hAn}`````:9{{{b{A`}}{b{dl}}}n}064{{{b{A`}}}{{Bb{{b{B`}}}}}}{{{b{c}}}Bd{}}554````````````````````````````````````````````=======<<<<<<<{{{b{Bf}}}Bf}{{{b{Bh}}}Bh}{{{b{Bj}}}Bj}{{{b{Bl}}}Bl}{{{b{Bn}}}Bn}{{{b{C`}}}C`}{{{b{Cb}}}Cb}{{{b{c}}{b{de}}}h{}{}}000000{{{b{C`}}{b{C`}}}Cd}{{}Bf}{{}Bh}{{}Bj}{{}Bl}{{}Bn}{{}C`}`````{{{b{C`}}}Cf}```{{{b{Bf}}{b{Bf}}}Ch}{{{b{Bh}}{b{Bh}}}Ch}{{{b{Bj}}{b{Bj}}}Ch}{{{b{Bl}}{b{Bl}}}Ch}{{{b{Bn}}{b{Bn}}}Ch}{{{b{C`}}{b{C`}}}Ch}{{{b{Cb}}{b{Cb}}}Ch}{{{b{Bl}}}Cj}`{{{b{Bf}}{b{dl}}}n}{{{b{Bh}}{b{dl}}}n}{{{b{Bj}}{b{dl}}}n}{{{b{Bl}}{b{dl}}}n}{{{b{Bn}}{b{dl}}}n}{{{b{C`}}{b{dl}}}n}{{{b{Cb}}{b{dl}}}n}{cc{}}000000{{{b{Ad}}{b{Ad}}{b{dc}}}{{Ab{hA`}}}An}`{ce{}{}}000000````````{{{b{Ad}}{b{Ad}}{b{d{Cn{Cl}}}}}{{Ab{BfA`}}}}{{{b{C`}}}Bd}0{{{b{C`}}{b{Cf}}D`}Cf}10{{{b{c}}}e{}{}}000000{c{{Ab{e}}}{}{}}0000000000000{{{b{c}}}Ah{}}000000`","D":"Dh","p":[[1,"reference"],[0,"mut"],[5,"GeneratedBindings",0],[1,"unit"],[5,"GeneratedBinding",0],[5,"Formatter",210],[8,"Result",210],[6,"BindGenError",31],[6,"Result",211],[5,"Path",212],[10,"AsRef",213],[5,"TypeId",214],[1,"str"],[5,"Vec",215],[10,"Write",216],[10,"Error",217],[6,"Option",218],[5,"String",219],[5,"MavProfile",55],[5,"MavEnum",55],[5,"MavEnumEntry",55],[5,"MavMessage",55],[5,"MavField",55],[6,"MavType",55],[6,"MavXmlElement",55],[6,"Ordering",220],[5,"TokenStream",221],[1,"bool"],[1,"u8"],[5,"PathBuf",212],[5,"HashSet",222],[5,"Ident",221],[15,"CouldNotCreateRustBindingsFile",47],[15,"CouldNotReadDefinitionsDirectory",47],[15,"CouldNotReadDefinitionFile",47],[15,"CouldNotReadDirectoryEntryInDefinitionsDirectory",47]],"r":[[0,31]],"b":[[38,"impl-Debug-for-BindGenError"],[39,"impl-Display-for-BindGenError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAK4ACwAAAAkACwACABQADAAlAAMAKwAvAFwAGwB5ABUAkAAHAKAAAACoAAgAtgAcAA=="}],\ -["mavlink_core",{"t":"TTTFFSSSKFFGKRKTPPNNNNNNNNNNCCHNNNNNNNNNNNNNNNOHNNNMMNNNNNNCMNNNNNNNNNNMNNNNNONNNNNNMNNMMONNMNNNNCONNHHHHHMNNMNNNNNNOMMNNNNNNNNMNNONNNNNNNNNNNNNNNNNNNNCHHHFNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNPPPPGGPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOFNNNNNNNNNNNNNNH","n":["ENCODED_LEN","EXTRA_CRC","ID","MAVLinkV1MessageRaw","MAVLinkV2MessageRaw","MAV_STX","MAV_STX_V2","MAX_FRAME_SIZE","MavConnection","MavFrame","MavHeader","MavlinkVersion","Message","Message","MessageData","NAME","V1","V2","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes_mut","calculate_crc","checksum","checksum","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","compatibility_flags","component_id","component_id","component_id","connect","default","default","default","default_message_from_id","deser","deser","deserialize","eq","eq","eq","eq","error","extra_crc","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_protocol_version","has_valid_crc","has_valid_crc","header","header","header","header","incompatibility_flags","into","into","into","into","into","message_id","message_id","message_id","message_id_from_name","message_name","msg","new","new","parse","payload","payload","payload_length","payload_length","peek_reader","protocol_version","raw_bytes","raw_bytes","read_v1_msg","read_v1_raw_message","read_v2_msg","read_v2_raw_message","read_versioned_msg","recv","recv_frame","recv_frame","send","send_default","send_default","send_frame","send_frame","sequence","sequence","sequence","ser","ser","ser","serialize","serialize","serialize","serialize_message","serialize_message","serialize_message_data","serialize_message_data","set_protocol_version","system_id","system_id","system_id","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","utils","write_v1_msg","write_v2_msg","write_versioned_msg","Bytes","borrow","borrow_mut","from","get_array","get_bytes","get_f32_le","get_f64_le","get_i16_le","get_i24_le","get_i32_le","get_i64_le","get_i8","get_u16_le","get_u24_le","get_u32_le","get_u64_le","get_u8","into","new","remaining_bytes","try_from","try_into","type_id","BytesMut","borrow","borrow_mut","from","into","is_empty","len","new","put_f32_le","put_f64_le","put_i16_le","put_i24_le","put_i32_le","put_i64_le","put_i8","put_slice","put_u16_le","put_u24_le","put_u32_le","put_u64_le","put_u8","remaining","try_from","try_into","type_id","InvalidEnum","InvalidFlag","Io","Io","MessageReadError","MessageWriteError","Parse","ParserError","UnknownMessage","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","enum_type","flag_type","id","value","value","PeekReader","borrow","borrow_mut","consume","from","into","new","peek_exact","read_exact","read_u8","reader_mut","reader_ref","try_from","try_into","type_id","remove_trailing_zeroes"],"q":[[0,"mavlink_core"],[155,"mavlink_core::bytes"],[179,"mavlink_core::bytes_mut"],[204,"mavlink_core::error"],[246,"mavlink_core::error::ParserError"],[251,"mavlink_core::peek_reader"],[266,"mavlink_core::utils"],[267,"core::clone"],[268,"mavlink_core::connection"],[269,"alloc::boxed"],[270,"std::io::error"],[271,"core::result"],[272,"serde::de"],[273,"core::fmt"],[274,"std::io"],[275,"serde::ser"],[276,"core::any"],[277,"alloc::string"]],"i":[21,21,21,0,0,0,0,0,0,0,0,0,0,21,0,21,9,9,8,9,10,6,7,8,9,10,6,7,0,0,0,6,7,8,9,10,6,7,8,9,10,6,7,7,6,7,8,0,8,6,7,12,21,10,8,8,9,6,7,0,12,8,9,10,6,7,8,9,10,6,7,15,6,7,10,6,7,10,7,8,9,10,6,7,12,6,7,12,12,10,6,7,12,6,7,6,7,0,10,6,7,0,0,0,0,0,15,15,15,15,15,15,15,15,6,7,8,12,21,10,8,9,10,6,7,6,7,15,6,7,8,8,9,10,6,7,8,9,10,6,7,8,9,10,6,7,8,9,10,6,7,0,0,0,0,0,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,0,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,22,22,30,33,0,0,30,0,22,22,30,33,22,30,33,22,22,30,30,33,33,22,30,30,30,33,33,22,30,33,22,30,33,22,30,33,22,30,33,22,30,33,50,51,52,51,50,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0],"f":"``````````````````{{{b{c}}}{{b{e}}}{}{}}0000{{{b{dc}}}{{b{de}}}{}{}}0000``{{{b{{h{f}}}}f}j}{{{b{l}}}j}{{{b{n}}}j}{{{b{A`}}}A`}{{{b{Ab}}}Ab}{{{b{{Ad{c}}}}}{{Ad{c}}}{AfAh}}{{{b{l}}}l}{{{b{n}}}n}{{{b{c}}{b{de}}}Aj{}{}}0000{{{b{n}}}f}{{{b{l}}}f}1`{{{b{Al}}}{{Bb{{B`{An}}}}}}{{}A`}{{}l}{{}n}{Bd{{Bf{Ah{b{Al}}}}}}{{Ab{b{{h{f}}}}}{{Bf{{Bj{}{{Bh{c}}}}Bl}}}Ah}{{Ab{b{{h{f}}}}}{{Bf{{Ad{c}}Bl}}}Ah}{c{{Bf{A`}}}Bn}{{{b{A`}}{b{A`}}}C`}{{{b{Ab}}{b{Ab}}}C`}{{{b{l}}{b{l}}}C`}{{{b{n}}{b{n}}}C`}`{Bdf}{{{b{A`}}{b{dCb}}}Cd}{{{b{Ab}}{b{dCb}}}Cd}{{{b{{Ad{c}}}}{b{dCb}}}Cd{CfAh}}{{{b{l}}{b{dCb}}}Cd}{{{b{n}}{b{dCb}}}Cd}{cc{}}0000{{{b{An}}}Ab}{{{b{l}}}C`}{{{b{n}}}C`}{{{b{{Ad{c}}}}}A`Ah}{{{b{dl}}}{{b{{h{f}}}}}}{{{b{dn}}}{{b{{h{f}}}}}}`{{{b{n}}}f}{ce{}{}}0000{{{b{Ah}}}Bd}{{{b{l}}}f}{{{b{n}}}Bd}{{{b{Al}}}{{Bf{Bd{b{Al}}}}}}{{{b{Ah}}}{{b{Al}}}}`{{}l}{{}n}{{AbBd{b{{h{f}}}}}{{Bf{AhBl}}}}{{{b{l}}}{{b{{h{f}}}}}}{{{b{n}}}{{b{{h{f}}}}}}8;``10{{{b{d{Ch{c}}}}}{{Bf{{Cj{A`e}}Cl}}}CnAh}{{{b{d{Ch{c}}}}}{{Bf{lCl}}}Cn}1{{{b{d{Ch{c}}}}}{{Bf{nCl}}}Cn}{{{b{d{Ch{c}}}}Ab}{{Bf{{Cj{A`e}}Cl}}}CnAh}{{{b{An}}}{{Bf{{Cj{A`c}}Cl}}}Ah}{{{b{An}}}{{Bf{{Ad{c}}Cl}}}Ah}0{{{b{An}}{b{A`}}{b{c}}}{{Bf{D`Db}}}Ah}{{{b{An}}{b{c}}}{{Bf{D`Db}}}Ah}0{{{b{An}}{b{{Ad{c}}}}}{{Bf{D`Db}}}Ah}0{{{b{l}}}f}{{{b{n}}}f}`{{{b{Ah}}Ab{b{d{h{f}}}}}D`}{{{b{{Bj{}{{Bh{c}}}}}}Ab{b{d{h{f}}}}}D`Ah}{{{b{{Ad{c}}}}{b{d{h{f}}}}}D`Ah}{{{b{A`}}c}BfDd}{{{b{Ab}}c}BfDd}{{{b{{Ad{c}}}}e}Bf{DfAh}Dd}{{{b{dl}}A`{b{c}}}AjAh}{{{b{dn}}A`{b{c}}}AjAh}{{{b{dl}}A`{b{c}}}AjBj}{{{b{dn}}A`{b{c}}}AjBj}{{{b{dAn}}Ab}Aj}<;`{{{b{c}}}e{}{}}0000{c{{Bf{e}}}{}{}}000000000{{{b{c}}}Dh{}}0000`{{{b{dc}}A`{b{e}}}{{Bf{D`Db}}}DjAh}0{{{b{dc}}AbA`{b{e}}}{{Bf{D`Db}}}DjAh}`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{cc{}}{{{b{dDl}}}{{Dn{f}}}}{{{b{dDl}}D`}{{b{{h{f}}}}}}{{{b{dDl}}}E`}{{{b{dDl}}}Eb}{{{b{dDl}}}Ed}{{{b{dDl}}}Ef}0{{{b{dDl}}}Eh}{{{b{dDl}}}Ej}{{{b{dDl}}}j}{{{b{dDl}}}Bd}0{{{b{dDl}}}El}{{{b{dDl}}}f}{ce{}{}}{{{b{{h{f}}}}}Dl}{{{b{Dl}}}{{b{{h{f}}}}}}{c{{Bf{e}}}{}{}}0{{{b{c}}}Dh{}}`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{cc{}}7{{{b{En}}}C`}{{{b{En}}}D`}{{{b{d{h{f}}}}}En}{{{b{dEn}}E`}Aj}{{{b{dEn}}Eb}Aj}{{{b{dEn}}Ed}Aj}{{{b{dEn}}Ef}Aj}0{{{b{dEn}}Eh}Aj}{{{b{dEn}}Ej}Aj}{{{b{dEn}}{b{{h{f}}}}}Aj}{{{b{dEn}}j}Aj}{{{b{dEn}}Bd}Aj}0{{{b{dEn}}El}Aj}{{{b{dEn}}f}Aj}<{c{{Bf{e}}}{}{}}0{{{b{c}}}Dh{}}`````````{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{Bl}}{b{dCb}}}Cd}0{{{b{Cl}}{b{dCb}}}Cd}0{{{b{Db}}{b{dCb}}}Cd}0{cc{}}{BlCl}1{F`Cl}2{F`Db}{ce{}{}}00{{{b{c}}}Fb{}}00<<<<<<;;;``````:9{{{b{d{Ch{c}}}}D`}D`Cn}62{c{{Ch{c}}}Cn}{{{b{d{Ch{c}}}}D`}{{Bf{{b{{h{f}}}}Cl}}}Cn}0{{{b{d{Ch{c}}}}}{{Bf{fCl}}}Cn}{{{b{d{Ch{c}}}}}{{b{dc}}}Cn}{{{b{d{Ch{c}}}}}{{b{c}}}Cn}{c{{Bf{e}}}{}{}}0{{{b{c}}}Dh{}}{{{b{{h{f}}}}}D`}","D":"Gf","p":[[1,"reference"],[0,"mut"],[1,"u8"],[1,"slice"],[1,"u16"],[5,"MAVLinkV1MessageRaw",0],[5,"MAVLinkV2MessageRaw",0],[5,"MavHeader",0],[6,"MavlinkVersion",0],[5,"MavFrame",0],[10,"Clone",267],[10,"Message",0],[1,"unit"],[1,"str"],[10,"MavConnection",0,268],[5,"Box",269],[8,"Result",270],[1,"u32"],[6,"Result",271],[17,"Message"],[10,"MessageData",0],[6,"ParserError",204],[10,"Deserializer",272],[1,"bool"],[5,"Formatter",273],[8,"Result",273],[10,"Debug",273],[5,"PeekReader",251],[1,"tuple"],[6,"MessageReadError",204],[10,"Read",274],[1,"usize"],[6,"MessageWriteError",204],[10,"Serializer",275],[10,"Serialize",275],[5,"TypeId",276],[10,"Write",274],[5,"Bytes",155],[1,"array"],[1,"f32"],[1,"f64"],[1,"i16"],[1,"i32"],[1,"i64"],[1,"i8"],[1,"u64"],[5,"BytesMut",179],[5,"Error",270],[5,"String",277],[15,"InvalidEnum",246],[15,"InvalidFlag",246],[15,"UnknownMessage",246]],"r":[[8,268],[47,268]],"b":[[219,"impl-Debug-for-ParserError"],[220,"impl-Display-for-ParserError"],[221,"impl-Debug-for-MessageReadError"],[222,"impl-Display-for-MessageReadError"],[223,"impl-Display-for-MessageWriteError"],[224,"impl-Debug-for-MessageWriteError"],[226,"impl-From%3CParserError%3E-for-MessageReadError"],[228,"impl-From%3CError%3E-for-MessageReadError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAANAAFwABAAQACAAAAA0AIgAxAAQANwALAEgAAgBMAAMAVQAMAGMAAgBqAAAAcwACAHcAAAB5AB8AnAACAKAADQCvAAcAuQAoAOMAAADlAAAA5wAAAOsAEAD9AAEACAECAA=="}],\ +["mavlink_core",{"t":"TTTFFSSSKFFGKRKTPPNNNNNNNNNNCCHNNNNNNNNNNNNNNNOHNNNMMNNNNNNCMNNNNNNNNNNMNNNNNONNNNNNMNNMMONNMNNNNCONNHHHHHMNNMNNNNNNOMMNNNNNNNNMNNONNNNNNNNNNNNNNNNNNNNCHHHFNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNPPPPGGPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOFNNNNNNNNNNNNNNH","n":["ENCODED_LEN","EXTRA_CRC","ID","MAVLinkV1MessageRaw","MAVLinkV2MessageRaw","MAV_STX","MAV_STX_V2","MAX_FRAME_SIZE","MavConnection","MavFrame","MavHeader","MavlinkVersion","Message","Message","MessageData","NAME","V1","V2","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes_mut","calculate_crc","checksum","checksum","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","compatibility_flags","component_id","component_id","component_id","connect","default","default","default","default_message_from_id","deser","deser","deserialize","eq","eq","eq","eq","error","extra_crc","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_protocol_version","has_valid_crc","has_valid_crc","header","header","header","header","incompatibility_flags","into","into","into","into","into","message_id","message_id","message_id","message_id_from_name","message_name","msg","new","new","parse","payload","payload","payload_length","payload_length","peek_reader","protocol_version","raw_bytes","raw_bytes","read_v1_msg","read_v1_raw_message","read_v2_msg","read_v2_raw_message","read_versioned_msg","recv","recv_frame","recv_frame","send","send_default","send_default","send_frame","send_frame","sequence","sequence","sequence","ser","ser","ser","serialize","serialize","serialize","serialize_message","serialize_message","serialize_message_data","serialize_message_data","set_protocol_version","system_id","system_id","system_id","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","utils","write_v1_msg","write_v2_msg","write_versioned_msg","Bytes","borrow","borrow_mut","from","get_array","get_bytes","get_f32_le","get_f64_le","get_i16_le","get_i24_le","get_i32_le","get_i64_le","get_i8","get_u16_le","get_u24_le","get_u32_le","get_u64_le","get_u8","into","new","remaining_bytes","try_from","try_into","type_id","BytesMut","borrow","borrow_mut","from","into","is_empty","len","new","put_f32_le","put_f64_le","put_i16_le","put_i24_le","put_i32_le","put_i64_le","put_i8","put_slice","put_u16_le","put_u24_le","put_u32_le","put_u64_le","put_u8","remaining","try_from","try_into","type_id","InvalidEnum","InvalidFlag","Io","Io","MessageReadError","MessageWriteError","Parse","ParserError","UnknownMessage","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","enum_type","flag_type","id","value","value","PeekReader","borrow","borrow_mut","consume","from","into","new","peek_exact","read_exact","read_u8","reader_mut","reader_ref","try_from","try_into","type_id","remove_trailing_zeroes"],"q":[[0,"mavlink_core"],[155,"mavlink_core::bytes"],[179,"mavlink_core::bytes_mut"],[204,"mavlink_core::error"],[246,"mavlink_core::error::ParserError"],[251,"mavlink_core::peek_reader"],[266,"mavlink_core::utils"],[267,"core::clone"],[268,"mavlink_core::connection"],[269,"alloc::boxed"],[270,"std::io::error"],[271,"core::result"],[272,"serde::de"],[273,"core::fmt"],[274,"std::io"],[275,"serde::ser"],[276,"core::any"],[277,"alloc::string"]],"i":[21,21,21,0,0,0,0,0,0,0,0,0,0,21,0,21,9,9,8,9,10,6,7,8,9,10,6,7,0,0,0,6,7,8,9,10,6,7,8,9,10,6,7,7,6,7,8,0,8,6,7,12,21,10,8,8,9,6,7,0,12,8,9,10,6,7,8,9,10,6,7,15,6,7,10,6,7,10,7,8,9,10,6,7,12,6,7,12,12,10,6,7,12,6,7,6,7,0,10,6,7,0,0,0,0,0,15,15,15,15,15,15,15,15,6,7,8,12,21,10,8,9,10,6,7,6,7,15,6,7,8,8,9,10,6,7,8,9,10,6,7,8,9,10,6,7,8,9,10,6,7,0,0,0,0,0,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,0,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,22,22,30,33,0,0,30,0,22,22,30,33,22,30,33,22,22,30,30,33,33,22,30,30,30,33,33,22,30,33,22,30,33,22,30,33,22,30,33,22,30,33,50,51,52,51,50,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0],"f":"``````````````````{{{b{c}}}{{b{e}}}{}{}}0000{{{b{dc}}}{{b{de}}}{}{}}0000``{{{b{{h{f}}}}f}j}{{{b{l}}}j}{{{b{n}}}j}{{{b{A`}}}A`}{{{b{Ab}}}Ab}{{{b{{Ad{c}}}}}{{Ad{c}}}{AfAh}}{{{b{l}}}l}{{{b{n}}}n}{{{b{c}}{b{de}}}Aj{}{}}0000{{{b{n}}}f}{{{b{l}}}f}1`{{{b{Al}}}{{Bb{{B`{An}}}}}}{{}A`}{{}l}{{}n}{Bd{{Bf{Ah{b{Al}}}}}}{{Ab{b{{h{f}}}}}{{Bf{{Bj{}{{Bh{c}}}}Bl}}}Ah}{{Ab{b{{h{f}}}}}{{Bf{{Ad{c}}Bl}}}Ah}{c{{Bf{A`}}}Bn}{{{b{A`}}{b{A`}}}C`}{{{b{Ab}}{b{Ab}}}C`}{{{b{l}}{b{l}}}C`}{{{b{n}}{b{n}}}C`}`{Bdf}{{{b{A`}}{b{dCb}}}Cd}{{{b{Ab}}{b{dCb}}}Cd}{{{b{{Ad{c}}}}{b{dCb}}}Cd{CfAh}}{{{b{l}}{b{dCb}}}Cd}{{{b{n}}{b{dCb}}}Cd}{cc{}}0000{{{b{An}}}Ab}{{{b{l}}}C`}{{{b{n}}}C`}{{{b{{Ad{c}}}}}A`Ah}{{{b{dl}}}{{b{{h{f}}}}}}{{{b{dn}}}{{b{{h{f}}}}}}`{{{b{n}}}f}{ce{}{}}0000{{{b{Ah}}}Bd}{{{b{l}}}f}{{{b{n}}}Bd}{{{b{Al}}}{{Bf{Bd{b{Al}}}}}}{{{b{Ah}}}{{b{Al}}}}`{{}l}{{}n}{{AbBd{b{{h{f}}}}}{{Bf{AhBl}}}}{{{b{l}}}{{b{{h{f}}}}}}{{{b{n}}}{{b{{h{f}}}}}}8;``10{{{b{d{Ch{c}}}}}{{Bf{{Cj{A`e}}Cl}}}CnAh}{{{b{d{Ch{c}}}}}{{Bf{lCl}}}Cn}1{{{b{d{Ch{c}}}}}{{Bf{nCl}}}Cn}{{{b{d{Ch{c}}}}Ab}{{Bf{{Cj{A`e}}Cl}}}CnAh}{{{b{An}}}{{Bf{{Cj{A`c}}Cl}}}Ah}{{{b{An}}}{{Bf{{Ad{c}}Cl}}}Ah}0{{{b{An}}{b{A`}}{b{c}}}{{Bf{D`Db}}}Ah}{{{b{An}}{b{c}}}{{Bf{D`Db}}}Ah}0{{{b{An}}{b{{Ad{c}}}}}{{Bf{D`Db}}}Ah}0{{{b{l}}}f}{{{b{n}}}f}`{{{b{Ah}}Ab{b{d{h{f}}}}}D`}{{{b{{Bj{}{{Bh{c}}}}}}Ab{b{d{h{f}}}}}D`Ah}{{{b{{Ad{c}}}}{b{d{h{f}}}}}D`Ah}{{{b{A`}}c}BfDd}{{{b{Ab}}c}BfDd}{{{b{{Ad{c}}}}e}Bf{DfAh}Dd}{{{b{dl}}A`{b{c}}}AjAh}{{{b{dn}}A`{b{c}}}AjAh}{{{b{dl}}A`{b{c}}}AjBj}{{{b{dn}}A`{b{c}}}AjBj}{{{b{dAn}}Ab}Aj}<;`{{{b{c}}}e{}{}}0000{c{{Bf{e}}}{}{}}000000000{{{b{c}}}Dh{}}0000`{{{b{dc}}A`{b{e}}}{{Bf{D`Db}}}DjAh}0{{{b{dc}}AbA`{b{e}}}{{Bf{D`Db}}}DjAh}`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{cc{}}{{{b{dDl}}}{{Dn{f}}}}{{{b{dDl}}D`}{{b{{h{f}}}}}}{{{b{dDl}}}E`}{{{b{dDl}}}Eb}{{{b{dDl}}}Ed}{{{b{dDl}}}Ef}0{{{b{dDl}}}Eh}{{{b{dDl}}}Ej}{{{b{dDl}}}j}{{{b{dDl}}}Bd}0{{{b{dDl}}}El}{{{b{dDl}}}f}{ce{}{}}{{{b{{h{f}}}}}Dl}{{{b{Dl}}}{{b{{h{f}}}}}}{c{{Bf{e}}}{}{}}0{{{b{c}}}Dh{}}`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{cc{}}7{{{b{En}}}C`}{{{b{En}}}D`}{{{b{d{h{f}}}}}En}{{{b{dEn}}E`}Aj}{{{b{dEn}}Eb}Aj}{{{b{dEn}}Ed}Aj}{{{b{dEn}}Ef}Aj}0{{{b{dEn}}Eh}Aj}{{{b{dEn}}Ej}Aj}{{{b{dEn}}{b{{h{f}}}}}Aj}{{{b{dEn}}j}Aj}{{{b{dEn}}Bd}Aj}0{{{b{dEn}}El}Aj}{{{b{dEn}}f}Aj}<{c{{Bf{e}}}{}{}}0{{{b{c}}}Dh{}}`````````{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{Bl}}{b{dCb}}}Cd}0{{{b{Cl}}{b{dCb}}}Cd}0{{{b{Db}}{b{dCb}}}Cd}0{cc{}}{BlCl}{F`Cl}2{F`Db}3{ce{}{}}00{{{b{c}}}Fb{}}00<<<<<<;;;``````:9{{{b{d{Ch{c}}}}D`}D`Cn}62{c{{Ch{c}}}Cn}{{{b{d{Ch{c}}}}D`}{{Bf{{b{{h{f}}}}Cl}}}Cn}0{{{b{d{Ch{c}}}}}{{Bf{fCl}}}Cn}{{{b{d{Ch{c}}}}}{{b{dc}}}Cn}{{{b{d{Ch{c}}}}}{{b{c}}}Cn}{c{{Bf{e}}}{}{}}0{{{b{c}}}Dh{}}{{{b{{h{f}}}}}D`}","D":"Gf","p":[[1,"reference"],[0,"mut"],[1,"u8"],[1,"slice"],[1,"u16"],[5,"MAVLinkV1MessageRaw",0],[5,"MAVLinkV2MessageRaw",0],[5,"MavHeader",0],[6,"MavlinkVersion",0],[5,"MavFrame",0],[10,"Clone",267],[10,"Message",0],[1,"unit"],[1,"str"],[10,"MavConnection",0,268],[5,"Box",269],[8,"Result",270],[1,"u32"],[6,"Result",271],[17,"Message"],[10,"MessageData",0],[6,"ParserError",204],[10,"Deserializer",272],[1,"bool"],[5,"Formatter",273],[8,"Result",273],[10,"Debug",273],[5,"PeekReader",251],[1,"tuple"],[6,"MessageReadError",204],[10,"Read",274],[1,"usize"],[6,"MessageWriteError",204],[10,"Serializer",275],[10,"Serialize",275],[5,"TypeId",276],[10,"Write",274],[5,"Bytes",155],[1,"array"],[1,"f32"],[1,"f64"],[1,"i16"],[1,"i32"],[1,"i64"],[1,"i8"],[1,"u64"],[5,"BytesMut",179],[5,"Error",270],[5,"String",277],[15,"InvalidEnum",246],[15,"InvalidFlag",246],[15,"UnknownMessage",246]],"r":[[8,268],[47,268]],"b":[[219,"impl-Debug-for-ParserError"],[220,"impl-Display-for-ParserError"],[221,"impl-Debug-for-MessageReadError"],[222,"impl-Display-for-MessageReadError"],[223,"impl-Display-for-MessageWriteError"],[224,"impl-Debug-for-MessageWriteError"],[226,"impl-From%3CParserError%3E-for-MessageReadError"],[227,"impl-From%3CError%3E-for-MessageReadError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAANAAFgABAAQACAAAAA0AIgAxAAQANwALAEgAAgBMAAMAVQAMAGMAAgBqAAAAcwACAHcAAAB5AB8AnAACAKAADQCvAAcAuQAoAOMAAQDmAAAA6wAQAP0AAQAIAQIA"}],\ ["memchr",{"t":"FFFCNNNNNNNNNNNNNNNNNNNNNNNNNHHHHHHCHHHHHHNNNNNNNNNNNNNNNNNNNNNNNNCCHHHHCCCCCFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFKFNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNCCCCFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNCCFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNPFFFFFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNHNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Memchr","Memchr2","Memchr3","arch","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","count","fmt","fmt","fmt","from","from","from","into","into","into","into_iter","into_iter","into_iter","memchr","memchr2","memchr2_iter","memchr3","memchr3_iter","memchr_iter","memmem","memrchr","memrchr2","memrchr2_iter","memrchr3","memrchr3_iter","memrchr_iter","new","new","new","next","next","next","next_back","next_back","next_back","size_hint","size_hint","size_hint","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","all","x86_64","is_equal","is_equal_raw","is_prefix","is_suffix","memchr","packedpair","rabinkarp","shiftor","twoway","One","OneIter","Three","ThreeIter","Two","TwoIter","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","count","count","count_raw","find","find","find","find_raw","find_raw","find_raw","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","into_iter","into_iter","into_iter","iter","iter","iter","new","new","new","next","next","next","next_back","next_back","next_back","rfind","rfind","rfind","rfind_raw","rfind_raw","rfind_raw","size_hint","size_hint","size_hint","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","Finder","HeuristicFrequencyRank","Pair","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","find_prefilter","fmt","fmt","from","from","index1","index2","into","into","new","new","pair","rank","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","with_indices","with_pair","with_ranker","Finder","FinderRev","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","find","find_raw","fmt","fmt","from","from","into","into","new","new","rfind","rfind_raw","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","Finder","borrow","borrow_mut","find","fmt","from","into","new","try_from","try_into","type_id","Finder","FinderRev","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","find","fmt","fmt","from","from","into","into","new","new","rfind","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","avx2","sse2","memchr","packedpair","One","OneIter","Three","ThreeIter","Two","TwoIter","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","count","count","count_raw","find","find","find","find_raw","find_raw","find_raw","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","into_iter","into_iter","into_iter","is_available","is_available","is_available","iter","iter","iter","new","new","new","new_unchecked","new_unchecked","new_unchecked","next","next","next","next_back","next_back","next_back","rfind","rfind","rfind","rfind_raw","rfind_raw","rfind_raw","size_hint","size_hint","size_hint","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","Finder","borrow","borrow_mut","clone","clone_into","find","find_prefilter","fmt","from","into","is_available","min_haystack_len","new","pair","to_owned","try_from","try_into","type_id","with_pair","memchr","packedpair","One","OneIter","Three","ThreeIter","Two","TwoIter","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","count","count","count_raw","find","find","find","find_raw","find_raw","find_raw","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","into_iter","into_iter","into_iter","is_available","is_available","is_available","iter","iter","iter","new","new","new","new_unchecked","new_unchecked","new_unchecked","next","next","next","next_back","next_back","next_back","rfind","rfind","rfind","rfind_raw","rfind_raw","rfind_raw","size_hint","size_hint","size_hint","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","Finder","borrow","borrow_mut","clone","clone_into","find","find_prefilter","fmt","from","into","is_available","min_haystack_len","new","pair","to_owned","try_from","try_into","type_id","with_pair","Auto","FindIter","FindRevIter","Finder","FinderBuilder","FinderRev","None","Prefilter","as_ref","as_ref","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_forward","build_forward_with_ranker","build_reverse","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","find","find","find_iter","find_iter","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","into","into","into","into","into","into","into_iter","into_iter","into_owned","into_owned","into_owned","into_owned","needle","needle","new","new","new","next","next","prefilter","rfind","rfind","rfind_iter","rfind_iter","size_hint","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id"],"q":[[0,"memchr"],[66,"memchr::arch"],[68,"memchr::arch::all"],[77,"memchr::arch::all::memchr"],[182,"memchr::arch::all::packedpair"],[217,"memchr::arch::all::rabinkarp"],[247,"memchr::arch::all::shiftor"],[258,"memchr::arch::all::twoway"],[286,"memchr::arch::x86_64"],[288,"memchr::arch::x86_64::avx2"],[290,"memchr::arch::x86_64::avx2::memchr"],[401,"memchr::arch::x86_64::avx2::packedpair"],[420,"memchr::arch::x86_64::sse2"],[422,"memchr::arch::x86_64::sse2::memchr"],[533,"memchr::arch::x86_64::sse2::packedpair"],[552,"memchr::memmem"],[656,"memchr::memchr"],[657,"core::fmt"],[658,"core::option"],[659,"core::iter::adapters::rev"],[660,"core::result"],[661,"core::any"],[662,"core::marker"],[663,"core::convert"]],"i":[0,0,0,0,3,4,5,3,4,5,3,4,5,3,4,5,3,3,4,5,3,4,5,3,4,5,3,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,5,3,4,5,3,4,5,3,4,5,3,4,5,3,4,5,3,4,5,3,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,19,20,21,22,23,18,19,20,21,22,23,18,19,20,21,22,23,18,19,20,21,22,23,18,19,18,18,20,22,18,20,22,18,19,20,21,22,23,18,19,20,21,22,23,18,19,20,21,22,23,19,21,23,18,20,22,18,20,22,19,21,23,19,21,23,18,20,22,18,20,22,19,21,23,18,19,20,21,22,23,18,19,20,21,22,23,18,19,20,21,22,23,18,19,20,21,22,23,0,0,0,24,25,24,25,24,25,24,25,24,24,25,24,25,25,25,24,25,24,25,24,26,24,25,24,25,24,25,24,25,25,24,25,0,0,27,28,27,28,27,28,27,28,27,27,27,28,27,28,27,28,27,28,28,28,27,28,27,28,27,28,27,28,0,29,29,29,29,29,29,29,29,29,29,0,0,30,31,30,31,30,31,30,31,30,30,31,30,31,30,31,30,31,31,30,31,30,31,30,31,30,31,0,0,0,0,0,0,0,0,0,0,32,33,34,35,36,37,32,33,34,35,36,37,32,33,34,35,36,37,32,33,34,35,36,37,32,33,32,32,34,36,32,34,36,32,33,34,35,36,37,32,33,34,35,36,37,32,33,34,35,36,37,33,35,37,32,34,36,32,34,36,32,34,36,32,34,36,33,35,37,33,35,37,32,34,36,32,34,36,33,35,37,32,33,34,35,36,37,32,33,34,35,36,37,32,33,34,35,36,37,32,33,34,35,36,37,0,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,0,0,0,0,0,0,0,0,39,40,41,42,43,44,39,40,41,42,43,44,39,40,41,42,43,44,39,40,41,42,43,44,39,40,39,39,41,43,39,41,43,39,40,41,42,43,44,39,40,41,42,43,44,39,40,41,42,43,44,40,42,44,39,41,43,39,41,43,39,41,43,39,41,43,40,42,44,40,42,44,39,41,43,39,41,43,40,42,44,39,40,41,42,43,44,39,40,41,42,43,44,39,40,41,42,43,44,39,40,41,42,43,44,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,51,0,0,0,0,0,51,0,46,47,51,52,53,46,47,48,51,52,53,46,47,48,48,48,48,51,52,53,46,47,48,51,52,53,46,47,48,51,48,0,46,0,46,51,52,53,46,47,48,51,52,53,46,47,48,51,52,53,46,47,48,52,53,52,53,46,47,46,47,46,47,48,52,53,48,0,47,0,47,52,51,52,53,46,47,48,51,52,53,46,47,48,51,52,53,46,47,48,51,52,53,46,47,48],"f":"````{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{f}}}f}{{{b{h}}}h}{{{b{j}}}j}{{{b{c}}{b{de}}}l{}{}}00{fn}{{{b{f}}{b{dA`}}}Ab}{{{b{h}}{b{dA`}}}Ab}{{{b{j}}{b{dA`}}}Ab}{cc{}}00{ce{}{}}00000{{Ad{b{{Af{Ad}}}}}{{Ah{n}}}}{{AdAd{b{{Af{Ad}}}}}{{Ah{n}}}}{{AdAd{b{{Af{Ad}}}}}h}{{AdAdAd{b{{Af{Ad}}}}}{{Ah{n}}}}{{AdAdAd{b{{Af{Ad}}}}}j}{{Ad{b{{Af{Ad}}}}}f}`54{{AdAd{b{{Af{Ad}}}}}{{Aj{h}}}}3{{AdAdAd{b{{Af{Ad}}}}}{{Aj{j}}}}{{Ad{b{{Af{Ad}}}}}{{Aj{f}}}}364{{{b{df}}}{{Ah{n}}}}{{{b{dh}}}{{Ah{n}}}}{{{b{dj}}}{{Ah{n}}}}210{{{b{f}}}{{Al{n{Ah{n}}}}}}{{{b{h}}}{{Al{n{Ah{n}}}}}}{{{b{j}}}{{Al{n{Ah{n}}}}}}{{{b{c}}}e{}{}}00{c{{An{e}}}{}{}}00000{{{b{c}}}B`{}}00``{{{b{{Af{Ad}}}}{b{{Af{Ad}}}}}Bb}{{AdAdn}Bb}11```````````{{{b{c}}}{{b{e}}}{}{}}00000{{{b{dc}}}{{b{de}}}{}{}}00000{{{b{Bd}}}Bd}{{{b{Bf}}}Bf}{{{b{Bh}}}Bh}{{{b{Bj}}}Bj}{{{b{Bl}}}Bl}{{{b{Bn}}}Bn}{{{b{c}}{b{de}}}l{}{}}00000{{{b{Bd}}{b{{Af{Ad}}}}}n}{Bfn}{{{b{Bd}}AdAd}n}{{{b{Bd}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Bh}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Bl}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Bd}}AdAd}{{Ah{Ad}}}}{{{b{Bh}}AdAd}{{Ah{Ad}}}}{{{b{Bl}}AdAd}{{Ah{Ad}}}}{{{b{Bd}}{b{dA`}}}Ab}{{{b{Bf}}{b{dA`}}}Ab}{{{b{Bh}}{b{dA`}}}Ab}{{{b{Bj}}{b{dA`}}}Ab}{{{b{Bl}}{b{dA`}}}Ab}{{{b{Bn}}{b{dA`}}}Ab}{cc{}}00000{ce{}{}}00000000{{{b{Bd}}{b{{Af{Ad}}}}}Bf}{{{b{Bh}}{b{{Af{Ad}}}}}Bj}{{{b{Bl}}{b{{Af{Ad}}}}}Bn}{AdBd}{{AdAd}Bh}{{AdAdAd}Bl}{{{b{dBf}}}{{Ah{n}}}}{{{b{dBj}}}{{Ah{n}}}}{{{b{dBn}}}{{Ah{n}}}}210{{{b{Bd}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Bh}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Bl}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Bd}}AdAd}{{Ah{Ad}}}}{{{b{Bh}}AdAd}{{Ah{Ad}}}}{{{b{Bl}}AdAd}{{Ah{Ad}}}}{{{b{Bf}}}{{Al{n{Ah{n}}}}}}{{{b{Bj}}}{{Al{n{Ah{n}}}}}}{{{b{Bn}}}{{Al{n{Ah{n}}}}}}{{{b{c}}}e{}{}}00000{c{{An{e}}}{}{}}00000000000{{{b{c}}}B`{}}00000```{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{C`}}}C`}{{{b{Cb}}}Cb}{{{b{c}}{b{de}}}l{}{}}0{{{b{C`}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{C`}}{b{dA`}}}Ab}{{{b{Cb}}{b{dA`}}}Ab}{cc{}}0{{{b{Cb}}}Ad}0{ce{}{}}0{{{b{{Af{Ad}}}}}{{Ah{C`}}}}{{{b{{Af{Ad}}}}}{{Ah{Cb}}}}{{{b{C`}}}{{b{Cb}}}}{{{b{Cd}}Ad}Ad}{{{b{c}}}e{}{}}0{c{{An{e}}}{}{}}000{{{b{c}}}B`{}}0{{{b{{Af{Ad}}}}AdAd}{{Ah{Cb}}}}{{{b{{Af{Ad}}}}Cb}{{Ah{C`}}}}{{{b{{Af{Ad}}}}c}{{Ah{Cb}}}Cd}``{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{Cf}}}Cf}{{{b{Ch}}}Ch}{{{b{c}}{b{de}}}l{}{}}0{{{b{Cf}}{b{{Af{Ad}}}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Cf}}AdAdAdAd}{{Ah{Ad}}}}{{{b{Cf}}{b{dA`}}}Ab}{{{b{Ch}}{b{dA`}}}Ab}{cc{}}0{ce{}{}}0{{{b{{Af{Ad}}}}}Cf}{{{b{{Af{Ad}}}}}Ch}{{{b{Ch}}{b{{Af{Ad}}}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Ch}}AdAdAdAd}{{Ah{Ad}}}}{{{b{c}}}e{}{}}0{c{{An{e}}}{}{}}000{{{b{c}}}B`{}}0`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{Cj}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Cj}}{b{dA`}}}Ab}<;{{{b{{Af{Ad}}}}}{{Ah{Cj}}}}665``4433{{{b{Cl}}}Cl}{{{b{Cn}}}Cn}{{{b{c}}{b{de}}}l{}{}}0{{{b{Cl}}{b{{Af{Ad}}}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Cl}}{b{dA`}}}Ab}{{{b{Cn}}{b{dA`}}}Ab}{cc{}}0{ce{}{}}0{{{b{{Af{Ad}}}}}Cl}{{{b{{Af{Ad}}}}}Cn}{{{b{Cn}}{b{{Af{Ad}}}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{c}}}e{}{}}0{c{{An{e}}}{}{}}000{{{b{c}}}B`{}}0``````````{{{b{c}}}{{b{e}}}{}{}}00000{{{b{dc}}}{{b{de}}}{}{}}00000{{{b{D`}}}D`}{{{b{Db}}}Db}{{{b{Dd}}}Dd}{{{b{Df}}}Df}{{{b{Dh}}}Dh}{{{b{Dj}}}Dj}{{{b{c}}{b{de}}}l{}{}}00000{{{b{D`}}{b{{Af{Ad}}}}}n}{Dbn}{{{b{D`}}AdAd}n}{{{b{D`}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Dd}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Dh}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{D`}}AdAd}{{Ah{Ad}}}}{{{b{Dd}}AdAd}{{Ah{Ad}}}}{{{b{Dh}}AdAd}{{Ah{Ad}}}}{{{b{D`}}{b{dA`}}}Ab}{{{b{Db}}{b{dA`}}}Ab}{{{b{Dd}}{b{dA`}}}Ab}{{{b{Df}}{b{dA`}}}Ab}{{{b{Dh}}{b{dA`}}}Ab}{{{b{Dj}}{b{dA`}}}Ab}{cc{}}00000{ce{}{}}00000000{{}Bb}00{{{b{D`}}{b{{Af{Ad}}}}}Db}{{{b{Dd}}{b{{Af{Ad}}}}}Df}{{{b{Dh}}{b{{Af{Ad}}}}}Dj}{Ad{{Ah{D`}}}}{{AdAd}{{Ah{Dd}}}}{{AdAdAd}{{Ah{Dh}}}}{AdD`}{{AdAd}Dd}{{AdAdAd}Dh}{{{b{dDb}}}{{Ah{n}}}}{{{b{dDf}}}{{Ah{n}}}}{{{b{dDj}}}{{Ah{n}}}}210{{{b{D`}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Dd}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Dh}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{D`}}AdAd}{{Ah{Ad}}}}{{{b{Dd}}AdAd}{{Ah{Ad}}}}{{{b{Dh}}AdAd}{{Ah{Ad}}}}{{{b{Db}}}{{Al{n{Ah{n}}}}}}{{{b{Df}}}{{Al{n{Ah{n}}}}}}{{{b{Dj}}}{{Al{n{Ah{n}}}}}}{{{b{c}}}e{}{}}00000{c{{An{e}}}{}{}}00000000000{{{b{c}}}B`{}}00000`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{Dl}}}Dl}{{{b{c}}{b{de}}}l{}{}}{{{b{Dl}}{b{{Af{Ad}}}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Dl}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Dl}}{b{dA`}}}Ab}{cc{}}{ce{}{}}{{}Bb}{{{b{Dl}}}n}{{{b{{Af{Ad}}}}}{{Ah{Dl}}}}{{{b{Dl}}}{{b{Cb}}}}?>>={{{b{{Af{Ad}}}}Cb}{{Ah{Dl}}}}````````======<<<<<<{{{b{Dn}}}Dn}{{{b{E`}}}E`}{{{b{Eb}}}Eb}{{{b{Ed}}}Ed}{{{b{Ef}}}Ef}{{{b{Eh}}}Eh}{{{b{c}}{b{de}}}l{}{}}00000{{{b{Dn}}{b{{Af{Ad}}}}}n}{E`n}{{{b{Dn}}AdAd}n}{{{b{Dn}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Eb}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Ef}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Dn}}AdAd}{{Ah{Ad}}}}{{{b{Eb}}AdAd}{{Ah{Ad}}}}{{{b{Ef}}AdAd}{{Ah{Ad}}}}{{{b{Dn}}{b{dA`}}}Ab}{{{b{E`}}{b{dA`}}}Ab}{{{b{Eb}}{b{dA`}}}Ab}{{{b{Ed}}{b{dA`}}}Ab}{{{b{Ef}}{b{dA`}}}Ab}{{{b{Eh}}{b{dA`}}}Ab}{cc{}}00000{ce{}{}}00000000{{}Bb}00{{{b{Dn}}{b{{Af{Ad}}}}}E`}{{{b{Eb}}{b{{Af{Ad}}}}}Ed}{{{b{Ef}}{b{{Af{Ad}}}}}Eh}{Ad{{Ah{Dn}}}}{{AdAd}{{Ah{Eb}}}}{{AdAdAd}{{Ah{Ef}}}}{AdDn}{{AdAd}Eb}{{AdAdAd}Ef}{{{b{dE`}}}{{Ah{n}}}}{{{b{dEd}}}{{Ah{n}}}}{{{b{dEh}}}{{Ah{n}}}}210{{{b{Dn}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Eb}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Ef}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Dn}}AdAd}{{Ah{Ad}}}}{{{b{Eb}}AdAd}{{Ah{Ad}}}}{{{b{Ef}}AdAd}{{Ah{Ad}}}}{{{b{E`}}}{{Al{n{Ah{n}}}}}}{{{b{Ed}}}{{Al{n{Ah{n}}}}}}{{{b{Eh}}}{{Al{n{Ah{n}}}}}}{{{b{c}}}e{}{}}00000{c{{An{e}}}{}{}}00000000000{{{b{c}}}B`{}}00000`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{Ej}}}Ej}{{{b{c}}{b{de}}}l{}{}}{{{b{Ej}}{b{{Af{Ad}}}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Ej}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{Ej}}{b{dA`}}}Ab}{cc{}}{ce{}{}}{{}Bb}{{{b{Ej}}}n}{{{b{{Af{Ad}}}}}{{Ah{Ej}}}}{{{b{Ej}}}{{b{Cb}}}}?>>={{{b{{Af{Ad}}}}Cb}{{Ah{Ej}}}}````````{{{b{El}}}El}{{{b{En}}}En}??????>>>>>>{{{b{F`}}{b{c}}}El{Fb{Fd{{Af{Ad}}}}}}{{{b{F`}}c{b{e}}}ElCd{Fb{Fd{{Af{Ad}}}}}}{{{b{F`}}{b{c}}}En{Fb{Fd{{Af{Ad}}}}}}{{{b{Ff}}}Ff}{{{b{Fh}}}Fh}{{{b{Fj}}}Fj}76{{{b{F`}}}F`}{{{b{c}}{b{de}}}l{}{}}00000{{}Ff}{{}F`}{{{b{{Af{Ad}}}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{El}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{{Af{Ad}}}}{b{c}}}Fh{Fb{Fd{{Af{Ad}}}}}}{{{b{El}}{b{{Af{Ad}}}}}Fh}{{{b{Ff}}{b{dA`}}}Ab}{{{b{Fh}}{b{dA`}}}Ab}{{{b{Fj}}{b{dA`}}}Ab}{{{b{El}}{b{dA`}}}Ab}{{{b{En}}{b{dA`}}}Ab}{{{b{F`}}{b{dA`}}}Ab}{cc{}}00000{ce{}{}}0000000{FhFh}{FjFj}{ElEl}{EnEn}{{{b{El}}}{{b{{Af{Ad}}}}}}{{{b{En}}}{{b{{Af{Ad}}}}}}{{{b{c}}}El{Fb{Fd{{Af{Ad}}}}}}{{{b{c}}}En{Fb{Fd{{Af{Ad}}}}}}{{}F`}{{{b{dFh}}}{{Ah{n}}}}{{{b{dFj}}}{{Ah{n}}}}{{{b{dF`}}Ff}{{b{dF`}}}}{{{b{{Af{Ad}}}}{b{{Af{Ad}}}}}{{Ah{n}}}}{{{b{En}}c}{{Ah{n}}}{{Fd{{Af{Ad}}}}}}{{{b{{Af{Ad}}}}{b{c}}}Fj{Fb{Fd{{Af{Ad}}}}}}{{{b{En}}{b{{Af{Ad}}}}}Fj}{{{b{Fh}}}{{Al{n{Ah{n}}}}}}{{{b{c}}}e{}{}}00000{c{{An{e}}}{}{}}00000000000{{{b{c}}}B`{}}00000","D":"BBj","p":[[1,"reference"],[0,"mut"],[5,"Memchr",0,656],[5,"Memchr2",0,656],[5,"Memchr3",0,656],[1,"unit"],[1,"usize"],[5,"Formatter",657],[8,"Result",657],[1,"u8"],[1,"slice"],[6,"Option",658],[5,"Rev",659],[1,"tuple"],[6,"Result",660],[5,"TypeId",661],[1,"bool"],[5,"One",77],[5,"OneIter",77],[5,"Two",77],[5,"TwoIter",77],[5,"Three",77],[5,"ThreeIter",77],[5,"Finder",182],[5,"Pair",182],[10,"HeuristicFrequencyRank",182],[5,"Finder",217],[5,"FinderRev",217],[5,"Finder",247],[5,"Finder",258],[5,"FinderRev",258],[5,"One",290],[5,"OneIter",290],[5,"Two",290],[5,"TwoIter",290],[5,"Three",290],[5,"ThreeIter",290],[5,"Finder",401],[5,"One",422],[5,"OneIter",422],[5,"Two",422],[5,"TwoIter",422],[5,"Three",422],[5,"ThreeIter",422],[5,"Finder",533],[5,"Finder",552],[5,"FinderRev",552],[5,"FinderBuilder",552],[10,"Sized",662],[10,"AsRef",663],[6,"Prefilter",552],[5,"FindIter",552],[5,"FindRevIter",552]],"r":[[0,656],[1,656],[2,656],[29,656],[30,656],[31,656],[32,656],[33,656],[34,656],[36,656],[37,656],[38,656],[39,656],[40,656],[41,656]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAHsBLQAFAA8AGwACAC4AFABUABcAbQAAAHUABQCHAAIAkAAFAJwAGgC6AAcAwwABAM8ABwDcAAcA5gABAPAABwD5AAEA/AAAAAABAgAFAQcADgEBABcBBwApARcAQgEAAEoBBQBcAQIAawEFAHcBGgCTAQMAmQEAAKABAwCtARcAxgEAAM4BBQDgAQIA7wEFAPsBGgAXAgMAHQIAACQCAwAzAgsAQgINAFQCBQBmAgEAcQIBAHgCGAA="}],\ ["num_derive",{"t":"YYYYYYYY","n":["Float","FromPrimitive","Num","NumCast","NumOps","One","ToPrimitive","Zero"],"q":[[0,"num_derive"]],"i":[0,0,0,0,0,0,0,0],"f":"````````","D":"Ab","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ ["num_traits",{"t":"EEEEEEEEEEEEEPEEGEEREPEEKKKKEKKEFEEKEEEEEEEEEEEEEEEEENNNNCCEEHHHCNNNNNMCCNNOECCECENNNNNNEKKKMMMMKKKKMHMNNNNNMNNNNNMNNNNNNNMNNNNNMNNMMMMMMMMMMKKMMNMNMMMNKNNNMMNNMMNNNNNNNNMNMMMMMNNNNMMMNKKTKTKNMHMNNHMKMMMMNMMNMMMMMMMNMMMCCCCCCCCRRKKKMMNMMNKKKKKKKKMMMMMMMMKKMNMMNMKRMKKRMMKKKMMMKKKKMMMMMKKKKKKMMMMMMRKHHMKKHMHMMMHM","n":["AsPrimitive","Bounded","CheckedAdd","CheckedDiv","CheckedEuclid","CheckedMul","CheckedNeg","CheckedRem","CheckedShl","CheckedShr","CheckedSub","ConstOne","ConstZero","Empty","Euclid","FloatConst","FloatErrorKind","FromBytes","FromPrimitive","FromStrRadixErr","Inv","Invalid","MulAdd","MulAddAssign","Num","NumAssign","NumAssignOps","NumAssignRef","NumCast","NumOps","NumRef","One","ParseFloatError","Pow","PrimInt","RefNum","Saturating","SaturatingAdd","SaturatingMul","SaturatingSub","Signed","ToBytes","ToPrimitive","Unsigned","WrappingAdd","WrappingMul","WrappingNeg","WrappingShl","WrappingShr","WrappingSub","Zero","abs","abs_sub","borrow","borrow","borrow_mut","borrow_mut","bounds","cast","cast","checked_pow","clamp","clamp_max","clamp_min","float","fmt","fmt","fmt","from","from","from_str_radix","identities","int","into","into","kind","one","ops","pow","pow","sign","signum","try_from","try_from","try_into","try_into","type_id","type_id","zero","Bounded","LowerBounded","UpperBounded","max_value","max_value","min_value","min_value","AsPrimitive","FromPrimitive","NumCast","ToPrimitive","as_","cast","from","from_f32","from_f64","from_i128","from_i16","from_i32","from_i64","from_i8","from_isize","from_u128","from_u16","from_u32","from_u64","from_u8","from_usize","to_f32","to_f64","to_i128","to_i16","to_i32","to_i64","to_i8","to_isize","to_u128","to_u16","to_u32","to_u64","to_u8","to_usize","E","FRAC_1_PI","FRAC_1_SQRT_2","FRAC_2_PI","FRAC_2_SQRT_PI","FRAC_PI_2","FRAC_PI_3","FRAC_PI_4","FRAC_PI_6","FRAC_PI_8","FloatConst","FloatCore","LN_10","LN_2","LOG10_2","LOG10_E","LOG2_10","LOG2_E","PI","SQRT_2","TAU","TotalOrder","abs","ceil","clamp","classify","epsilon","floor","fract","infinity","integer_decode","is_finite","is_infinite","is_nan","is_normal","is_sign_negative","is_sign_positive","is_subnormal","max","max_value","min","min_positive_value","min_value","nan","neg_infinity","neg_zero","powi","recip","round","signum","to_degrees","to_radians","total_cmp","trunc","ConstOne","ConstZero","ONE","One","ZERO","Zero","is_one","is_zero","one","one","set_one","set_zero","zero","zero","PrimInt","count_ones","count_zeros","from_be","from_le","leading_ones","leading_zeros","pow","reverse_bits","rotate_left","rotate_right","signed_shl","signed_shr","swap_bytes","to_be","to_le","trailing_ones","trailing_zeros","unsigned_shl","unsigned_shr","bytes","checked","euclid","inv","mul_add","overflowing","saturating","wrapping","Bytes","Bytes","FromBytes","NumBytes","ToBytes","from_be_bytes","from_le_bytes","from_ne_bytes","to_be_bytes","to_le_bytes","to_ne_bytes","CheckedAdd","CheckedDiv","CheckedMul","CheckedNeg","CheckedRem","CheckedShl","CheckedShr","CheckedSub","checked_add","checked_div","checked_mul","checked_neg","checked_rem","checked_shl","checked_shr","checked_sub","CheckedEuclid","Euclid","checked_div_euclid","checked_div_rem_euclid","checked_rem_euclid","div_euclid","div_rem_euclid","rem_euclid","Inv","Output","inv","MulAdd","MulAddAssign","Output","mul_add","mul_add_assign","OverflowingAdd","OverflowingMul","OverflowingSub","overflowing_add","overflowing_mul","overflowing_sub","Saturating","SaturatingAdd","SaturatingMul","SaturatingSub","saturating_add","saturating_add","saturating_mul","saturating_sub","saturating_sub","WrappingAdd","WrappingMul","WrappingNeg","WrappingShl","WrappingShr","WrappingSub","wrapping_add","wrapping_mul","wrapping_neg","wrapping_shl","wrapping_shr","wrapping_sub","Output","Pow","checked_pow","pow","pow","Signed","Unsigned","abs","abs","abs_sub","abs_sub","is_negative","is_positive","signum","signum"],"q":[[0,"num_traits"],[89,"num_traits::bounds"],[96,"num_traits::cast"],[131,"num_traits::float"],[185,"num_traits::identities"],[199,"num_traits::int"],[219,"num_traits::ops"],[227,"num_traits::ops::bytes"],[238,"num_traits::ops::checked"],[254,"num_traits::ops::euclid"],[262,"num_traits::ops::inv"],[265,"num_traits::ops::mul_add"],[270,"num_traits::ops::overflowing"],[276,"num_traits::ops::saturating"],[285,"num_traits::ops::wrapping"],[297,"num_traits::pow"],[302,"num_traits::sign"],[312,"core::cmp"],[313,"core::fmt"],[314,"core::result"],[315,"core::any"],[316,"core::marker"],[317,"core::option"],[318,"core::num"],[319,"core::clone"],[320,"core::ops::arith"]],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,11,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,4,7,0,0,0,0,0,0,0,0,4,7,7,4,7,11,0,0,4,7,7,0,0,0,0,0,0,4,7,4,7,4,7,0,0,0,0,14,15,14,16,0,0,0,0,17,0,20,23,23,23,23,23,23,23,23,23,23,23,23,23,23,21,21,21,21,21,21,21,21,21,21,21,21,21,21,36,36,36,36,36,36,36,36,36,36,0,0,36,36,36,36,36,36,36,36,36,0,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,41,37,0,0,83,0,84,0,43,44,0,43,43,44,0,44,0,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,0,0,0,0,0,0,0,0,51,48,0,0,0,48,48,48,51,51,51,0,0,0,0,0,0,0,0,52,53,54,55,56,57,58,59,0,0,60,60,60,61,61,61,0,63,63,0,0,64,64,65,0,0,0,66,67,68,0,0,0,0,69,70,71,69,72,0,0,0,0,0,0,73,74,75,76,77,78,81,0,0,0,81,0,0,0,82,0,82,82,82,0,82],"f":"`````````````````````````````````````````````````````{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0````{{ccc}cf}{{cc}cf}0`{{{b{h}}{b{dj}}}l}{{{b{n}}{b{dj}}}l}0{cc{}}0{{{b{A`}}Ab}{{Ah{{Af{}{{Ad{c}}}}c}}}{}}``{ce{}{}}0```````{c{{Ah{e}}}{}{}}000{{{b{c}}}Aj{}}0````{{}Al}{{}An}1{{}B`}````{BbcBd}{c{{Bf{e}}}BhBh}{c{{Bf{Bh}}}Bj}{Bl{{Bf{Bn}}}}{C`{{Bf{Bn}}}}{Cb{{Bf{Bn}}}}{Cd{{Bf{Bn}}}}{Cf{{Bf{Bn}}}}{Ch{{Bf{Bn}}}}{Cj{{Bf{Bn}}}}{Cl{{Bf{Bn}}}}{Cn{{Bf{Bn}}}}{D`{{Bf{Bn}}}}{Ab{{Bf{Bn}}}}{Db{{Bf{Bn}}}}{Dd{{Bf{Bn}}}}{Df{{Bf{Bn}}}}{{{b{Bj}}}{{Bf{Bl}}}}{{{b{Bj}}}{{Bf{C`}}}}{{{b{Bj}}}{{Bf{Cb}}}}{{{b{Bj}}}{{Bf{Cd}}}}{{{b{Bj}}}{{Bf{Cf}}}}{{{b{Bj}}}{{Bf{Ch}}}}{{{b{Bj}}}{{Bf{Cj}}}}{{{b{Bj}}}{{Bf{Cl}}}}{{{b{Bj}}}{{Bf{Cn}}}}{{{b{Bj}}}{{Bf{D`}}}}{{{b{Bj}}}{{Bf{Ab}}}}{{{b{Bj}}}{{Bf{Db}}}}{{{b{Bj}}}{{Bf{Dd}}}}{{{b{Bj}}}{{Bf{Df}}}}{{}Dh}000000000``000000000`{DjDj}0{{DjDjDj}Dj}{DjDl}{{}Dj}330{Dj{{Dn{DbCdCj}}}}{DjE`}000000{{DjDj}Dj}3033333{{DjCf}Dj}77777{{{b{Eb}}{b{Eb}}}Ed}8``````{{{b{Ef}}}E`}{{{b{Eh}}}E`}{{}cEf}{{}Ef}{{{b{dEf}}}Ej}{{{b{dEh}}}Ej}{{}cEh}{{}Eh}`{ElAb}0{ElEl}011{{ElAb}El}100001112200`````````````{{{b{c}}}{{F`{}{{En{c}}}}}{FbFd}}00{{{b{{Ff{}{{En{c}}}}}}}cFb}00````````{{{b{Fh}}{b{Fh}}}{{Bf{Fh}}}}{{{b{Fj}}{b{Fj}}}{{Bf{Fj}}}}{{{b{Fl}}{b{Fl}}}{{Bf{Fl}}}}{{{b{Fn}}}{{Bf{Fn}}}}{{{b{G`}}{b{G`}}}{{Bf{G`}}}}{{{b{Gb}}Ab}{{Bf{Gb}}}}{{{b{Gd}}Ab}{{Bf{Gd}}}}{{{b{Gf}}{b{Gf}}}{{Bf{Gf}}}}``{{{b{Gh}}{b{Gh}}}{{Bf{Gh}}}}{{{b{Gh}}{b{Gh}}}{{Bf{{Dn{GhGh}}}}}}1{{{b{Gj}}{b{Gj}}}Gj}{{{b{Gj}}{b{Gj}}}{{Dn{GjGj}}}}1``{{{Gn{}{{Gl{c}}}}}c{}}```{{{H`{}{{Gl{c}}}}eg}c{}{}{}}{{{b{dHb}}ce}Ej{}{}}```{{{b{Hd}}{b{Hd}}}{{Dn{HdE`}}}}{{{b{Hf}}{b{Hf}}}{{Dn{HfE`}}}}{{{b{Hh}}{b{Hh}}}{{Dn{HhE`}}}}````{{HjHj}Hj}{{{b{Hl}}{b{Hl}}}Hl}{{{b{Hn}}{b{Hn}}}Hn}2{{{b{I`}}{b{I`}}}I`}``````{{{b{Ib}}{b{Ib}}}Ib}{{{b{Id}}{b{Id}}}Id}{{{b{If}}}If}{{{b{Ih}}Ab}Ih}{{{b{Ij}}Ab}Ij}{{{b{Il}}{b{Il}}}Il}``{{cDf}{{Bf{c}}}{InEfFl}}{{cDf}c{InEf{J`{}{{Gl{}}}}}}{{{Jb{}{{Gl{c}}}}e}c{}{}}``{ccJd}{{{b{Jd}}}Jd}{{cc}cJd}{{{b{Jd}}{b{Jd}}}Jd}{{{b{Jd}}}E`}043","D":"AKn","p":[[1,"reference"],[0,"mut"],[10,"PartialOrd",312],[6,"FloatErrorKind",0],[5,"Formatter",313],[8,"Result",313],[5,"ParseFloatError",0],[1,"str"],[1,"u32"],[17,"FromStrRadixErr"],[10,"Num",0],[6,"Result",314],[5,"TypeId",315],[10,"Bounded",89],[10,"UpperBounded",89],[10,"LowerBounded",89],[10,"AsPrimitive",96],[10,"Copy",316],[6,"Option",317],[10,"NumCast",96],[10,"ToPrimitive",96],[1,"f32"],[10,"FromPrimitive",96],[1,"f64"],[1,"i128"],[1,"i16"],[1,"i32"],[1,"i64"],[1,"i8"],[1,"isize"],[1,"u128"],[1,"u16"],[1,"u64"],[1,"u8"],[1,"usize"],[10,"FloatConst",131],[10,"FloatCore",131],[6,"FpCategory",318],[1,"tuple"],[1,"bool"],[10,"TotalOrder",131],[6,"Ordering",312],[10,"One",185],[10,"Zero",185],[1,"unit"],[10,"PrimInt",199],[17,"Bytes"],[10,"FromBytes",227],[10,"NumBytes",227],[10,"Sized",316],[10,"ToBytes",227],[10,"CheckedAdd",238],[10,"CheckedDiv",238],[10,"CheckedMul",238],[10,"CheckedNeg",238],[10,"CheckedRem",238],[10,"CheckedShl",238],[10,"CheckedShr",238],[10,"CheckedSub",238],[10,"CheckedEuclid",254],[10,"Euclid",254],[17,"Output"],[10,"Inv",262],[10,"MulAdd",265],[10,"MulAddAssign",265],[10,"OverflowingAdd",270],[10,"OverflowingMul",270],[10,"OverflowingSub",270],[10,"Saturating",276],[10,"SaturatingAdd",276],[10,"SaturatingMul",276],[10,"SaturatingSub",276],[10,"WrappingAdd",285],[10,"WrappingMul",285],[10,"WrappingNeg",285],[10,"WrappingShl",285],[10,"WrappingShr",285],[10,"WrappingSub",285],[10,"Clone",319],[10,"Mul",320],[10,"Pow",297],[10,"Signed",302],[10,"ConstOne",185],[10,"ConstZero",185]],"r":[[0,96],[1,89],[2,238],[3,238],[4,254],[5,238],[6,238],[7,238],[8,238],[9,238],[10,238],[11,185],[12,185],[14,254],[15,131],[17,227],[18,96],[20,262],[22,265],[23,265],[28,96],[31,185],[33,297],[34,199],[36,276],[37,276],[38,276],[39,276],[40,302],[41,227],[42,96],[43,302],[44,285],[45,285],[46,285],[47,285],[48,285],[49,285],[50,185],[51,302],[52,302],[59,96],[60,297],[76,185],[79,297],[81,302],[88,185]],"b":[[66,"impl-Display-for-ParseFloatError"],[67,"impl-Debug-for-ParseFloatError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAFkACgABABcAHQAAACAAAwAlABgAQQADAEgAAQBMAA0AjgAAANwADAD/AAEA"}],\ diff --git a/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/ardupilotmega.rs.html b/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/ardupilotmega.rs.html index c522ce917d..1ab6cd26e6 100644 --- a/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/ardupilotmega.rs.html +++ b/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/ardupilotmega.rs.html @@ -1,3 +1,3 @@ ardupilotmega.rs - source
1
-
# ! [doc = "This file was automatically generated, do not edit"] # [allow (unused_imports)] use num_derive :: FromPrimitive ; # [allow (unused_imports)] use num_traits :: FromPrimitive ; # [allow (unused_imports)] use num_derive :: ToPrimitive ; # [allow (unused_imports)] use num_traits :: ToPrimitive ; # [allow (unused_imports)] use bitflags :: bitflags ; use mavlink_core :: { MavlinkVersion , Message , MessageData , bytes :: Bytes , bytes_mut :: BytesMut } ; # [cfg (feature = "serde")] use serde :: { Serialize , Deserialize } ; # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavEventErrorReason { MAV_EVENT_ERROR_REASON_UNAVAILABLE = 0 , } impl MavEventErrorReason { pub const DEFAULT : Self = Self :: MAV_EVENT_ERROR_REASON_UNAVAILABLE ; } impl Default for MavEventErrorReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MagCalStatus { MAG_CAL_NOT_STARTED = 0 , MAG_CAL_WAITING_TO_START = 1 , MAG_CAL_RUNNING_STEP_ONE = 2 , MAG_CAL_RUNNING_STEP_TWO = 3 , MAG_CAL_SUCCESS = 4 , MAG_CAL_FAILED = 5 , MAG_CAL_BAD_ORIENTATION = 6 , MAG_CAL_BAD_RADIUS = 7 , } impl MagCalStatus { pub const DEFAULT : Self = Self :: MAG_CAL_NOT_STARTED ; } impl Default for MagCalStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavAutopilot { MAV_AUTOPILOT_GENERIC = 0 , MAV_AUTOPILOT_RESERVED = 1 , MAV_AUTOPILOT_SLUGS = 2 , MAV_AUTOPILOT_ARDUPILOTMEGA = 3 , MAV_AUTOPILOT_OPENPILOT = 4 , MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY = 5 , MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY = 6 , MAV_AUTOPILOT_GENERIC_MISSION_FULL = 7 , MAV_AUTOPILOT_INVALID = 8 , MAV_AUTOPILOT_PPZ = 9 , MAV_AUTOPILOT_UDB = 10 , MAV_AUTOPILOT_FP = 11 , MAV_AUTOPILOT_PX4 = 12 , MAV_AUTOPILOT_SMACCMPILOT = 13 , MAV_AUTOPILOT_AUTOQUAD = 14 , MAV_AUTOPILOT_ARMAZILA = 15 , MAV_AUTOPILOT_AEROB = 16 , MAV_AUTOPILOT_ASLUAV = 17 , MAV_AUTOPILOT_SMARTAP = 18 , MAV_AUTOPILOT_AIRRAILS = 19 , MAV_AUTOPILOT_REFLEX = 20 , } impl MavAutopilot { pub const DEFAULT : Self = Self :: MAV_AUTOPILOT_GENERIC ; } impl Default for MavAutopilot { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidOperatorIdType { MAV_ODID_OPERATOR_ID_TYPE_CAA = 0 , } impl MavOdidOperatorIdType { pub const DEFAULT : Self = Self :: MAV_ODID_OPERATOR_ID_TYPE_CAA ; } impl Default for MavOdidOperatorIdType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutCfgGpsOffsetLat { UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_NO_DATA = 0 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_2M = 1 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_4M = 2 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_6M = 3 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_0M = 4 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_2M = 5 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_4M = 6 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_6M = 7 , } impl UavionixAdsbOutCfgGpsOffsetLat { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_NO_DATA ; } impl Default for UavionixAdsbOutCfgGpsOffsetLat { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutCfgGpsOffsetLon { UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_NO_DATA = 0 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_APPLIED_BY_SENSOR = 1 , } impl UavionixAdsbOutCfgGpsOffsetLon { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_NO_DATA ; } impl Default for UavionixAdsbOutCfgGpsOffsetLon { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AccelcalVehiclePos { ACCELCAL_VEHICLE_POS_LEVEL = 1 , ACCELCAL_VEHICLE_POS_LEFT = 2 , ACCELCAL_VEHICLE_POS_RIGHT = 3 , ACCELCAL_VEHICLE_POS_NOSEDOWN = 4 , ACCELCAL_VEHICLE_POS_NOSEUP = 5 , ACCELCAL_VEHICLE_POS_BACK = 6 , ACCELCAL_VEHICLE_POS_SUCCESS = 16777215 , ACCELCAL_VEHICLE_POS_FAILED = 16777216 , } impl AccelcalVehiclePos { pub const DEFAULT : Self = Self :: ACCELCAL_VEHICLE_POS_LEVEL ; } impl Default for AccelcalVehiclePos { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GimbalAxisCalibrationRequired { GIMBAL_AXIS_CALIBRATION_REQUIRED_UNKNOWN = 0 , GIMBAL_AXIS_CALIBRATION_REQUIRED_TRUE = 1 , GIMBAL_AXIS_CALIBRATION_REQUIRED_FALSE = 2 , } impl GimbalAxisCalibrationRequired { pub const DEFAULT : Self = Self :: GIMBAL_AXIS_CALIBRATION_REQUIRED_UNKNOWN ; } impl Default for GimbalAxisCalibrationRequired { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AisNavStatus { UNDER_WAY = 0 , AIS_NAV_ANCHORED = 1 , AIS_NAV_UN_COMMANDED = 2 , AIS_NAV_RESTRICTED_MANOEUVERABILITY = 3 , AIS_NAV_DRAUGHT_CONSTRAINED = 4 , AIS_NAV_MOORED = 5 , AIS_NAV_AGROUND = 6 , AIS_NAV_FISHING = 7 , AIS_NAV_SAILING = 8 , AIS_NAV_RESERVED_HSC = 9 , AIS_NAV_RESERVED_WIG = 10 , AIS_NAV_RESERVED_1 = 11 , AIS_NAV_RESERVED_2 = 12 , AIS_NAV_RESERVED_3 = 13 , AIS_NAV_AIS_SART = 14 , AIS_NAV_UNKNOWN = 15 , } impl AisNavStatus { pub const DEFAULT : Self = Self :: UNDER_WAY ; } impl Default for AisNavStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SerialControlDev { SERIAL_CONTROL_DEV_TELEM1 = 0 , SERIAL_CONTROL_DEV_TELEM2 = 1 , SERIAL_CONTROL_DEV_GPS1 = 2 , SERIAL_CONTROL_DEV_GPS2 = 3 , SERIAL_CONTROL_DEV_SHELL = 10 , SERIAL_CONTROL_SERIAL0 = 100 , SERIAL_CONTROL_SERIAL1 = 101 , SERIAL_CONTROL_SERIAL2 = 102 , SERIAL_CONTROL_SERIAL3 = 103 , SERIAL_CONTROL_SERIAL4 = 104 , SERIAL_CONTROL_SERIAL5 = 105 , SERIAL_CONTROL_SERIAL6 = 106 , SERIAL_CONTROL_SERIAL7 = 107 , SERIAL_CONTROL_SERIAL8 = 108 , SERIAL_CONTROL_SERIAL9 = 109 , } impl SerialControlDev { pub const DEFAULT : Self = Self :: SERIAL_CONTROL_DEV_TELEM1 ; } impl Default for SerialControlDev { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VtolTransitionHeading { VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT = 0 , VTOL_TRANSITION_HEADING_NEXT_WAYPOINT = 1 , VTOL_TRANSITION_HEADING_TAKEOFF = 2 , VTOL_TRANSITION_HEADING_SPECIFIED = 3 , VTOL_TRANSITION_HEADING_ANY = 4 , } impl VtolTransitionHeading { pub const DEFAULT : Self = Self :: VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT ; } impl Default for VtolTransitionHeading { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UavionixAdsbOutRfSelect : u8 { const UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY = 0 ; const UAVIONIX_ADSB_OUT_RF_SELECT_RX_ENABLED = 1 ; const UAVIONIX_ADSB_OUT_RF_SELECT_TX_ENABLED = 2 ; } } impl UavionixAdsbOutRfSelect { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY ; } impl Default for UavionixAdsbOutRfSelect { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproCommand { GOPRO_COMMAND_POWER = 0 , GOPRO_COMMAND_CAPTURE_MODE = 1 , GOPRO_COMMAND_SHUTTER = 2 , GOPRO_COMMAND_BATTERY = 3 , GOPRO_COMMAND_MODEL = 4 , GOPRO_COMMAND_VIDEO_SETTINGS = 5 , GOPRO_COMMAND_LOW_LIGHT = 6 , GOPRO_COMMAND_PHOTO_RESOLUTION = 7 , GOPRO_COMMAND_PHOTO_BURST_RATE = 8 , GOPRO_COMMAND_PROTUNE = 9 , GOPRO_COMMAND_PROTUNE_WHITE_BALANCE = 10 , GOPRO_COMMAND_PROTUNE_COLOUR = 11 , GOPRO_COMMAND_PROTUNE_GAIN = 12 , GOPRO_COMMAND_PROTUNE_SHARPNESS = 13 , GOPRO_COMMAND_PROTUNE_EXPOSURE = 14 , GOPRO_COMMAND_TIME = 15 , GOPRO_COMMAND_CHARGING = 16 , } impl GoproCommand { pub const DEFAULT : Self = Self :: GOPRO_COMMAND_POWER ; } impl Default for GoproCommand { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WinchActions { WINCH_RELAXED = 0 , WINCH_RELATIVE_LENGTH_CONTROL = 1 , WINCH_RATE_CONTROL = 2 , WINCH_LOCK = 3 , WINCH_DELIVER = 4 , WINCH_HOLD = 5 , WINCH_RETRACT = 6 , WINCH_LOAD_LINE = 7 , WINCH_ABANDON_LINE = 8 , WINCH_LOAD_PAYLOAD = 9 , } impl WinchActions { pub const DEFAULT : Self = Self :: WINCH_RELAXED ; } impl Default for WinchActions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageType { STORAGE_TYPE_UNKNOWN = 0 , STORAGE_TYPE_USB_STICK = 1 , STORAGE_TYPE_SD = 2 , STORAGE_TYPE_MICROSD = 3 , STORAGE_TYPE_CF = 4 , STORAGE_TYPE_CFE = 5 , STORAGE_TYPE_XQD = 6 , STORAGE_TYPE_HD = 7 , STORAGE_TYPE_OTHER = 254 , } impl StorageType { pub const DEFAULT : Self = Self :: STORAGE_TYPE_UNKNOWN ; } impl Default for StorageType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproCharging { GOPRO_CHARGING_DISABLED = 0 , GOPRO_CHARGING_ENABLED = 1 , } impl GoproCharging { pub const DEFAULT : Self = Self :: GOPRO_CHARGING_DISABLED ; } impl Default for GoproCharging { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproProtuneGain { GOPRO_PROTUNE_GAIN_400 = 0 , GOPRO_PROTUNE_GAIN_800 = 1 , GOPRO_PROTUNE_GAIN_1600 = 2 , GOPRO_PROTUNE_GAIN_3200 = 3 , GOPRO_PROTUNE_GAIN_6400 = 4 , } impl GoproProtuneGain { pub const DEFAULT : Self = Self :: GOPRO_PROTUNE_GAIN_400 ; } impl Default for GoproProtuneGain { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidCategoryEu { MAV_ODID_CATEGORY_EU_UNDECLARED = 0 , MAV_ODID_CATEGORY_EU_OPEN = 1 , MAV_ODID_CATEGORY_EU_SPECIFIC = 2 , MAV_ODID_CATEGORY_EU_CERTIFIED = 3 , } impl MavOdidCategoryEu { pub const DEFAULT : Self = Self :: MAV_ODID_CATEGORY_EU_UNDECLARED ; } impl Default for MavOdidCategoryEu { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidClassificationType { MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED = 0 , MAV_ODID_CLASSIFICATION_TYPE_EU = 1 , } impl MavOdidClassificationType { pub const DEFAULT : Self = Self :: MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED ; } impl Default for MavOdidClassificationType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavState { MAV_STATE_UNINIT = 0 , MAV_STATE_BOOT = 1 , MAV_STATE_CALIBRATING = 2 , MAV_STATE_STANDBY = 3 , MAV_STATE_ACTIVE = 4 , MAV_STATE_CRITICAL = 5 , MAV_STATE_EMERGENCY = 6 , MAV_STATE_POWEROFF = 7 , MAV_STATE_FLIGHT_TERMINATION = 8 , } impl MavState { pub const DEFAULT : Self = Self :: MAV_STATE_UNINIT ; } impl Default for MavState { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RallyFlags : u8 { const FAVORABLE_WIND = 1 ; const LAND_IMMEDIATELY = 2 ; } } impl RallyFlags { pub const DEFAULT : Self = Self :: FAVORABLE_WIND ; } impl Default for RallyFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavEstimatorType { MAV_ESTIMATOR_TYPE_UNKNOWN = 0 , MAV_ESTIMATOR_TYPE_NAIVE = 1 , MAV_ESTIMATOR_TYPE_VISION = 2 , MAV_ESTIMATOR_TYPE_VIO = 3 , MAV_ESTIMATOR_TYPE_GPS = 4 , MAV_ESTIMATOR_TYPE_GPS_INS = 5 , MAV_ESTIMATOR_TYPE_MOCAP = 6 , MAV_ESTIMATOR_TYPE_LIDAR = 7 , MAV_ESTIMATOR_TYPE_AUTOPILOT = 8 , } impl MavEstimatorType { pub const DEFAULT : Self = Self :: MAV_ESTIMATOR_TYPE_UNKNOWN ; } impl Default for MavEstimatorType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavRemoteLogDataBlockCommands { MAV_REMOTE_LOG_DATA_BLOCK_STOP = 2147483645 , MAV_REMOTE_LOG_DATA_BLOCK_START = 2147483646 , } impl MavRemoteLogDataBlockCommands { pub const DEFAULT : Self = Self :: MAV_REMOTE_LOG_DATA_BLOCK_STOP ; } impl Default for MavRemoteLogDataBlockCommands { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavModeGimbal { MAV_MODE_GIMBAL_UNINITIALIZED = 0 , MAV_MODE_GIMBAL_CALIBRATING_PITCH = 1 , MAV_MODE_GIMBAL_CALIBRATING_ROLL = 2 , MAV_MODE_GIMBAL_CALIBRATING_YAW = 3 , MAV_MODE_GIMBAL_INITIALIZED = 4 , MAV_MODE_GIMBAL_ACTIVE = 5 , MAV_MODE_GIMBAL_RATE_CMD_TIMEOUT = 6 , } impl MavModeGimbal { pub const DEFAULT : Self = Self :: MAV_MODE_GIMBAL_UNINITIALIZED ; } impl Default for MavModeGimbal { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproFrameRate { GOPRO_FRAME_RATE_12 = 0 , GOPRO_FRAME_RATE_15 = 1 , GOPRO_FRAME_RATE_24 = 2 , GOPRO_FRAME_RATE_25 = 3 , GOPRO_FRAME_RATE_30 = 4 , GOPRO_FRAME_RATE_48 = 5 , GOPRO_FRAME_RATE_50 = 6 , GOPRO_FRAME_RATE_60 = 7 , GOPRO_FRAME_RATE_80 = 8 , GOPRO_FRAME_RATE_90 = 9 , GOPRO_FRAME_RATE_100 = 10 , GOPRO_FRAME_RATE_120 = 11 , GOPRO_FRAME_RATE_240 = 12 , GOPRO_FRAME_RATE_12_5 = 13 , } impl GoproFrameRate { pub const DEFAULT : Self = Self :: GOPRO_FRAME_RATE_12 ; } impl Default for GoproFrameRate { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PreflightStorageParameterAction { PARAM_READ_PERSISTENT = 0 , PARAM_WRITE_PERSISTENT = 1 , PARAM_RESET_CONFIG_DEFAULT = 2 , PARAM_RESET_SENSOR_DEFAULT = 3 , PARAM_RESET_ALL_DEFAULT = 4 , } impl PreflightStorageParameterAction { pub const DEFAULT : Self = Self :: PARAM_READ_PERSISTENT ; } impl Default for PreflightStorageParameterAction { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CameraCapFlags : u32 { const CAMERA_CAP_FLAGS_CAPTURE_VIDEO = 1 ; const CAMERA_CAP_FLAGS_CAPTURE_IMAGE = 2 ; const CAMERA_CAP_FLAGS_HAS_MODES = 4 ; const CAMERA_CAP_FLAGS_CAN_CAPTURE_IMAGE_IN_VIDEO_MODE = 8 ; const CAMERA_CAP_FLAGS_CAN_CAPTURE_VIDEO_IN_IMAGE_MODE = 16 ; const CAMERA_CAP_FLAGS_HAS_IMAGE_SURVEY_MODE = 32 ; const CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM = 64 ; const CAMERA_CAP_FLAGS_HAS_BASIC_FOCUS = 128 ; const CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM = 256 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_POINT = 512 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE = 1024 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_GEO_STATUS = 2048 ; } } impl CameraCapFlags { pub const DEFAULT : Self = Self :: CAMERA_CAP_FLAGS_CAPTURE_VIDEO ; } impl Default for CameraCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MissionState { MISSION_STATE_UNKNOWN = 0 , MISSION_STATE_NO_MISSION = 1 , MISSION_STATE_NOT_STARTED = 2 , MISSION_STATE_ACTIVE = 3 , MISSION_STATE_PAUSED = 4 , MISSION_STATE_COMPLETE = 5 , } impl MissionState { pub const DEFAULT : Self = Self :: MISSION_STATE_UNKNOWN ; } impl Default for MissionState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFtpErr { MAV_FTP_ERR_NONE = 0 , MAV_FTP_ERR_FAIL = 1 , MAV_FTP_ERR_FAILERRNO = 2 , MAV_FTP_ERR_INVALIDDATASIZE = 3 , MAV_FTP_ERR_INVALIDSESSION = 4 , MAV_FTP_ERR_NOSESSIONSAVAILABLE = 5 , MAV_FTP_ERR_EOF = 6 , MAV_FTP_ERR_UNKNOWNCOMMAND = 7 , MAV_FTP_ERR_FILEEXISTS = 8 , MAV_FTP_ERR_FILEPROTECTED = 9 , MAV_FTP_ERR_FILENOTFOUND = 10 , } impl MavFtpErr { pub const DEFAULT : Self = Self :: MAV_FTP_ERR_NONE ; } impl Default for MavFtpErr { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WifiConfigApMode { WIFI_CONFIG_AP_MODE_UNDEFINED = 0 , WIFI_CONFIG_AP_MODE_AP = 1 , WIFI_CONFIG_AP_MODE_STATION = 2 , WIFI_CONFIG_AP_MODE_DISABLED = 3 , } impl WifiConfigApMode { pub const DEFAULT : Self = Self :: WIFI_CONFIG_AP_MODE_UNDEFINED ; } impl Default for WifiConfigApMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproBurstRate { GOPRO_BURST_RATE_3_IN_1_SECOND = 0 , GOPRO_BURST_RATE_5_IN_1_SECOND = 1 , GOPRO_BURST_RATE_10_IN_1_SECOND = 2 , GOPRO_BURST_RATE_10_IN_2_SECOND = 3 , GOPRO_BURST_RATE_10_IN_3_SECOND = 4 , GOPRO_BURST_RATE_30_IN_1_SECOND = 5 , GOPRO_BURST_RATE_30_IN_2_SECOND = 6 , GOPRO_BURST_RATE_30_IN_3_SECOND = 7 , GOPRO_BURST_RATE_30_IN_6_SECOND = 8 , } impl GoproBurstRate { pub const DEFAULT : Self = Self :: GOPRO_BURST_RATE_3_IN_1_SECOND ; } impl Default for GoproBurstRate { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum LedControlPattern { LED_CONTROL_PATTERN_OFF = 0 , LED_CONTROL_PATTERN_FIRMWAREUPDATE = 1 , LED_CONTROL_PATTERN_CUSTOM = 255 , } impl LedControlPattern { pub const DEFAULT : Self = Self :: LED_CONTROL_PATTERN_OFF ; } impl Default for LedControlPattern { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceFlags : u16 { const GIMBAL_DEVICE_FLAGS_RETRACT = 1 ; const GIMBAL_DEVICE_FLAGS_NEUTRAL = 2 ; const GIMBAL_DEVICE_FLAGS_ROLL_LOCK = 4 ; const GIMBAL_DEVICE_FLAGS_PITCH_LOCK = 8 ; const GIMBAL_DEVICE_FLAGS_YAW_LOCK = 16 ; const GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME = 32 ; const GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME = 64 ; const GIMBAL_DEVICE_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME = 128 ; const GIMBAL_DEVICE_FLAGS_RC_EXCLUSIVE = 256 ; const GIMBAL_DEVICE_FLAGS_RC_MIXED = 512 ; } } impl GimbalDeviceFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_FLAGS_RETRACT ; } impl Default for GimbalDeviceFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavModeFlag : u8 { const MAV_MODE_FLAG_SAFETY_ARMED = 128 ; const MAV_MODE_FLAG_MANUAL_INPUT_ENABLED = 64 ; const MAV_MODE_FLAG_HIL_ENABLED = 32 ; const MAV_MODE_FLAG_STABILIZE_ENABLED = 16 ; const MAV_MODE_FLAG_GUIDED_ENABLED = 8 ; const MAV_MODE_FLAG_AUTO_ENABLED = 4 ; const MAV_MODE_FLAG_TEST_ENABLED = 2 ; const MAV_MODE_FLAG_CUSTOM_MODE_ENABLED = 1 ; } } impl MavModeFlag { pub const DEFAULT : Self = Self :: MAV_MODE_FLAG_SAFETY_ARMED ; } impl Default for MavModeFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidDescType { MAV_ODID_DESC_TYPE_TEXT = 0 , MAV_ODID_DESC_TYPE_EMERGENCY = 1 , MAV_ODID_DESC_TYPE_EXTENDED_STATUS = 2 , } impl MavOdidDescType { pub const DEFAULT : Self = Self :: MAV_ODID_DESC_TYPE_TEXT ; } impl Default for MavOdidDescType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFtpOpcode { MAV_FTP_OPCODE_NONE = 0 , MAV_FTP_OPCODE_TERMINATESESSION = 1 , MAV_FTP_OPCODE_RESETSESSION = 2 , MAV_FTP_OPCODE_LISTDIRECTORY = 3 , MAV_FTP_OPCODE_OPENFILERO = 4 , MAV_FTP_OPCODE_READFILE = 5 , MAV_FTP_OPCODE_CREATEFILE = 6 , MAV_FTP_OPCODE_WRITEFILE = 7 , MAV_FTP_OPCODE_REMOVEFILE = 8 , MAV_FTP_OPCODE_CREATEDIRECTORY = 9 , MAV_FTP_OPCODE_REMOVEDIRECTORY = 10 , MAV_FTP_OPCODE_OPENFILEWO = 11 , MAV_FTP_OPCODE_TRUNCATEFILE = 12 , MAV_FTP_OPCODE_RENAME = 13 , MAV_FTP_OPCODE_CALCFILECRC = 14 , MAV_FTP_OPCODE_BURSTREADFILE = 15 , MAV_FTP_OPCODE_ACK = 128 , MAV_FTP_OPCODE_NAK = 129 , } impl MavFtpOpcode { pub const DEFAULT : Self = Self :: MAV_FTP_OPCODE_NONE ; } impl Default for MavFtpOpcode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularConfigResponse { CELLULAR_CONFIG_RESPONSE_ACCEPTED = 0 , CELLULAR_CONFIG_RESPONSE_APN_ERROR = 1 , CELLULAR_CONFIG_RESPONSE_PIN_ERROR = 2 , CELLULAR_CONFIG_RESPONSE_REJECTED = 3 , CELLULAR_CONFIG_BLOCKED_PUK_REQUIRED = 4 , } impl CellularConfigResponse { pub const DEFAULT : Self = Self :: CELLULAR_CONFIG_RESPONSE_ACCEPTED ; } impl Default for CellularConfigResponse { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMissionResult { MAV_MISSION_ACCEPTED = 0 , MAV_MISSION_ERROR = 1 , MAV_MISSION_UNSUPPORTED_FRAME = 2 , MAV_MISSION_UNSUPPORTED = 3 , MAV_MISSION_NO_SPACE = 4 , MAV_MISSION_INVALID = 5 , MAV_MISSION_INVALID_PARAM1 = 6 , MAV_MISSION_INVALID_PARAM2 = 7 , MAV_MISSION_INVALID_PARAM3 = 8 , MAV_MISSION_INVALID_PARAM4 = 9 , MAV_MISSION_INVALID_PARAM5_X = 10 , MAV_MISSION_INVALID_PARAM6_Y = 11 , MAV_MISSION_INVALID_PARAM7 = 12 , MAV_MISSION_INVALID_SEQUENCE = 13 , MAV_MISSION_DENIED = 14 , MAV_MISSION_OPERATION_CANCELLED = 15 , } impl MavMissionResult { pub const DEFAULT : Self = Self :: MAV_MISSION_ACCEPTED ; } impl Default for MavMissionResult { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PositionTargetTypemask : u16 { const POSITION_TARGET_TYPEMASK_X_IGNORE = 1 ; const POSITION_TARGET_TYPEMASK_Y_IGNORE = 2 ; const POSITION_TARGET_TYPEMASK_Z_IGNORE = 4 ; const POSITION_TARGET_TYPEMASK_VX_IGNORE = 8 ; const POSITION_TARGET_TYPEMASK_VY_IGNORE = 16 ; const POSITION_TARGET_TYPEMASK_VZ_IGNORE = 32 ; const POSITION_TARGET_TYPEMASK_AX_IGNORE = 64 ; const POSITION_TARGET_TYPEMASK_AY_IGNORE = 128 ; const POSITION_TARGET_TYPEMASK_AZ_IGNORE = 256 ; const POSITION_TARGET_TYPEMASK_FORCE_SET = 512 ; const POSITION_TARGET_TYPEMASK_YAW_IGNORE = 1024 ; const POSITION_TARGET_TYPEMASK_YAW_RATE_IGNORE = 2048 ; } } impl PositionTargetTypemask { pub const DEFAULT : Self = Self :: POSITION_TARGET_TYPEMASK_X_IGNORE ; } impl Default for PositionTargetTypemask { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproModel { GOPRO_MODEL_UNKNOWN = 0 , GOPRO_MODEL_HERO_3_PLUS_SILVER = 1 , GOPRO_MODEL_HERO_3_PLUS_BLACK = 2 , GOPRO_MODEL_HERO_4_SILVER = 3 , GOPRO_MODEL_HERO_4_BLACK = 4 , } impl GoproModel { pub const DEFAULT : Self = Self :: GOPRO_MODEL_UNKNOWN ; } impl Default for GoproModel { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PrecisionLandMode { PRECISION_LAND_MODE_DISABLED = 0 , PRECISION_LAND_MODE_OPPORTUNISTIC = 1 , PRECISION_LAND_MODE_REQUIRED = 2 , } impl PrecisionLandMode { pub const DEFAULT : Self = Self :: PRECISION_LAND_MODE_DISABLED ; } impl Default for PrecisionLandMode { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EkfStatusFlags : u16 { const EKF_ATTITUDE = 1 ; const EKF_VELOCITY_HORIZ = 2 ; const EKF_VELOCITY_VERT = 4 ; const EKF_POS_HORIZ_REL = 8 ; const EKF_POS_HORIZ_ABS = 16 ; const EKF_POS_VERT_ABS = 32 ; const EKF_POS_VERT_AGL = 64 ; const EKF_CONST_POS_MODE = 128 ; const EKF_PRED_POS_HORIZ_REL = 256 ; const EKF_PRED_POS_HORIZ_ABS = 512 ; const EKF_UNINITIALIZED = 1024 ; } } impl EkfStatusFlags { pub const DEFAULT : Self = Self :: EKF_ATTITUDE ; } impl Default for EkfStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CompMetadataType { COMP_METADATA_TYPE_GENERAL = 0 , COMP_METADATA_TYPE_PARAMETER = 1 , COMP_METADATA_TYPE_COMMANDS = 2 , COMP_METADATA_TYPE_PERIPHERALS = 3 , COMP_METADATA_TYPE_EVENTS = 4 , COMP_METADATA_TYPE_ACTUATORS = 5 , } impl CompMetadataType { pub const DEFAULT : Self = Self :: COMP_METADATA_TYPE_GENERAL ; } impl Default for CompMetadataType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavModeFlagDecodePosition { MAV_MODE_FLAG_DECODE_POSITION_SAFETY = 128 , MAV_MODE_FLAG_DECODE_POSITION_MANUAL = 64 , MAV_MODE_FLAG_DECODE_POSITION_HIL = 32 , MAV_MODE_FLAG_DECODE_POSITION_STABILIZE = 16 , MAV_MODE_FLAG_DECODE_POSITION_GUIDED = 8 , MAV_MODE_FLAG_DECODE_POSITION_AUTO = 4 , MAV_MODE_FLAG_DECODE_POSITION_TEST = 2 , MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE = 1 , } impl MavModeFlagDecodePosition { pub const DEFAULT : Self = Self :: MAV_MODE_FLAG_DECODE_POSITION_SAFETY ; } impl Default for MavModeFlagDecodePosition { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceMitigate { FENCE_MITIGATE_UNKNOWN = 0 , FENCE_MITIGATE_NONE = 1 , FENCE_MITIGATE_VEL_LIMIT = 2 , } impl FenceMitigate { pub const DEFAULT : Self = Self :: FENCE_MITIGATE_UNKNOWN ; } impl Default for FenceMitigate { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum NavVtolLandOptions { NAV_VTOL_LAND_OPTIONS_DEFAULT = 0 , NAV_VTOL_LAND_OPTIONS_FW_DESCENT = 1 , NAV_VTOL_LAND_OPTIONS_HOVER_DESCENT = 2 , } impl NavVtolLandOptions { pub const DEFAULT : Self = Self :: NAV_VTOL_LAND_OPTIONS_DEFAULT ; } impl Default for NavVtolLandOptions { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceCapFlags : u16 { const GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT = 1 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_NEUTRAL = 2 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_AXIS = 4 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_FOLLOW = 8 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_LOCK = 16 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_AXIS = 32 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_FOLLOW = 64 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_LOCK = 128 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_AXIS = 256 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_FOLLOW = 512 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_LOCK = 1024 ; const GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_INFINITE_YAW = 2048 ; const GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME = 4096 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_RC_INPUTS = 8192 ; } } impl GimbalDeviceCapFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT ; } impl Default for GimbalDeviceCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavLandedState { MAV_LANDED_STATE_UNDEFINED = 0 , MAV_LANDED_STATE_ON_GROUND = 1 , MAV_LANDED_STATE_IN_AIR = 2 , MAV_LANDED_STATE_TAKEOFF = 3 , MAV_LANDED_STATE_LANDING = 4 , } impl MavLandedState { pub const DEFAULT : Self = Self :: MAV_LANDED_STATE_UNDEFINED ; } impl Default for MavLandedState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionAction { MAV_COLLISION_ACTION_NONE = 0 , MAV_COLLISION_ACTION_REPORT = 1 , MAV_COLLISION_ACTION_ASCEND_OR_DESCEND = 2 , MAV_COLLISION_ACTION_MOVE_HORIZONTALLY = 3 , MAV_COLLISION_ACTION_MOVE_PERPENDICULAR = 4 , MAV_COLLISION_ACTION_RTL = 5 , MAV_COLLISION_ACTION_HOVER = 6 , } impl MavCollisionAction { pub const DEFAULT : Self = Self :: MAV_COLLISION_ACTION_NONE ; } impl Default for MavCollisionAction { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalManagerCapFlags : u32 { const GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT = 1 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL = 2 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS = 4 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_FOLLOW = 8 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_LOCK = 16 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS = 32 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_FOLLOW = 64 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_LOCK = 128 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS = 256 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW = 512 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK = 1024 ; const GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_INFINITE_YAW = 2048 ; const GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME = 4096 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_RC_INPUTS = 8192 ; const GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_LOCAL = 65536 ; const GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_GLOBAL = 131072 ; } } impl GimbalManagerCapFlags { pub const DEFAULT : Self = Self :: GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT ; } impl Default for GimbalManagerCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GpsFixType { GPS_FIX_TYPE_NO_GPS = 0 , GPS_FIX_TYPE_NO_FIX = 1 , GPS_FIX_TYPE_2D_FIX = 2 , GPS_FIX_TYPE_3D_FIX = 3 , GPS_FIX_TYPE_DGPS = 4 , GPS_FIX_TYPE_RTK_FLOAT = 5 , GPS_FIX_TYPE_RTK_FIXED = 6 , GPS_FIX_TYPE_STATIC = 7 , GPS_FIX_TYPE_PPP = 8 , } impl GpsFixType { pub const DEFAULT : Self = Self :: GPS_FIX_TYPE_NO_GPS ; } impl Default for GpsFixType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageUsageFlag { STORAGE_USAGE_FLAG_SET = 1 , STORAGE_USAGE_FLAG_PHOTO = 2 , STORAGE_USAGE_FLAG_VIDEO = 4 , STORAGE_USAGE_FLAG_LOGS = 8 , } impl StorageUsageFlag { pub const DEFAULT : Self = Self :: STORAGE_USAGE_FLAG_SET ; } impl Default for StorageUsageFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutCfgAircraftSize { UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_NO_DATA = 0 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L15M_W23M = 1 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25M_W28P5M = 2 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25_34M = 3 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_33M = 4 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_38M = 5 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_39P5M = 6 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_45M = 7 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_45M = 8 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_52M = 9 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_59P5M = 10 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_67M = 11 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W72P5M = 12 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W80M = 13 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W80M = 14 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W90M = 15 , } impl UavionixAdsbOutCfgAircraftSize { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_NO_DATA ; } impl Default for UavionixAdsbOutCfgAircraftSize { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidTimeAcc { MAV_ODID_TIME_ACC_UNKNOWN = 0 , MAV_ODID_TIME_ACC_0_1_SECOND = 1 , MAV_ODID_TIME_ACC_0_2_SECOND = 2 , MAV_ODID_TIME_ACC_0_3_SECOND = 3 , MAV_ODID_TIME_ACC_0_4_SECOND = 4 , MAV_ODID_TIME_ACC_0_5_SECOND = 5 , MAV_ODID_TIME_ACC_0_6_SECOND = 6 , MAV_ODID_TIME_ACC_0_7_SECOND = 7 , MAV_ODID_TIME_ACC_0_8_SECOND = 8 , MAV_ODID_TIME_ACC_0_9_SECOND = 9 , MAV_ODID_TIME_ACC_1_0_SECOND = 10 , MAV_ODID_TIME_ACC_1_1_SECOND = 11 , MAV_ODID_TIME_ACC_1_2_SECOND = 12 , MAV_ODID_TIME_ACC_1_3_SECOND = 13 , MAV_ODID_TIME_ACC_1_4_SECOND = 14 , MAV_ODID_TIME_ACC_1_5_SECOND = 15 , } impl MavOdidTimeAcc { pub const DEFAULT : Self = Self :: MAV_ODID_TIME_ACC_UNKNOWN ; } impl Default for MavOdidTimeAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SpeedType { SPEED_TYPE_AIRSPEED = 0 , SPEED_TYPE_GROUNDSPEED = 1 , } impl SpeedType { pub const DEFAULT : Self = Self :: SPEED_TYPE_AIRSPEED ; } impl Default for SpeedType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproVideoSettingsFlags { GOPRO_VIDEO_SETTINGS_TV_MODE = 1 , } impl GoproVideoSettingsFlags { pub const DEFAULT : Self = Self :: GOPRO_VIDEO_SETTINGS_TV_MODE ; } impl Default for GoproVideoSettingsFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HighresImuUpdatedFlags : u16 { const HIGHRES_IMU_UPDATED_NONE = 0 ; const HIGHRES_IMU_UPDATED_XACC = 1 ; const HIGHRES_IMU_UPDATED_YACC = 2 ; const HIGHRES_IMU_UPDATED_ZACC = 4 ; const HIGHRES_IMU_UPDATED_XGYRO = 8 ; const HIGHRES_IMU_UPDATED_YGYRO = 16 ; const HIGHRES_IMU_UPDATED_ZGYRO = 32 ; const HIGHRES_IMU_UPDATED_XMAG = 64 ; const HIGHRES_IMU_UPDATED_YMAG = 128 ; const HIGHRES_IMU_UPDATED_ZMAG = 256 ; const HIGHRES_IMU_UPDATED_ABS_PRESSURE = 512 ; const HIGHRES_IMU_UPDATED_DIFF_PRESSURE = 1024 ; const HIGHRES_IMU_UPDATED_PRESSURE_ALT = 2048 ; const HIGHRES_IMU_UPDATED_TEMPERATURE = 4096 ; const HIGHRES_IMU_UPDATED_ALL = 65535 ; } } impl HighresImuUpdatedFlags { pub const DEFAULT : Self = Self :: HIGHRES_IMU_UPDATED_NONE ; } impl Default for HighresImuUpdatedFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproProtuneColour { GOPRO_PROTUNE_COLOUR_STANDARD = 0 , GOPRO_PROTUNE_COLOUR_NEUTRAL = 1 , } impl GoproProtuneColour { pub const DEFAULT : Self = Self :: GOPRO_PROTUNE_COLOUR_STANDARD ; } impl Default for GoproProtuneColour { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TuneFormat : u32 { const TUNE_FORMAT_QBASIC1_1 = 1 ; const TUNE_FORMAT_MML_MODERN = 2 ; } } impl TuneFormat { pub const DEFAULT : Self = Self :: TUNE_FORMAT_QBASIC1_1 ; } impl Default for TuneFormat { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraMode { CAMERA_MODE_IMAGE = 0 , CAMERA_MODE_VIDEO = 1 , CAMERA_MODE_IMAGE_SURVEY = 2 , } impl CameraMode { pub const DEFAULT : Self = Self :: CAMERA_MODE_IMAGE ; } impl Default for CameraMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmd { MAV_CMD_NAV_WAYPOINT = 16 , MAV_CMD_NAV_LOITER_UNLIM = 17 , MAV_CMD_NAV_LOITER_TURNS = 18 , MAV_CMD_NAV_LOITER_TIME = 19 , MAV_CMD_NAV_RETURN_TO_LAUNCH = 20 , MAV_CMD_NAV_LAND = 21 , MAV_CMD_NAV_TAKEOFF = 22 , MAV_CMD_NAV_LAND_LOCAL = 23 , MAV_CMD_NAV_TAKEOFF_LOCAL = 24 , MAV_CMD_NAV_FOLLOW = 25 , MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT = 30 , MAV_CMD_NAV_LOITER_TO_ALT = 31 , MAV_CMD_DO_FOLLOW = 32 , MAV_CMD_DO_FOLLOW_REPOSITION = 33 , MAV_CMD_DO_ORBIT = 34 , MAV_CMD_NAV_ROI = 80 , MAV_CMD_NAV_PATHPLANNING = 81 , MAV_CMD_NAV_SPLINE_WAYPOINT = 82 , MAV_CMD_NAV_VTOL_TAKEOFF = 84 , MAV_CMD_NAV_VTOL_LAND = 85 , MAV_CMD_NAV_GUIDED_ENABLE = 92 , MAV_CMD_NAV_DELAY = 93 , MAV_CMD_NAV_PAYLOAD_PLACE = 94 , MAV_CMD_NAV_LAST = 95 , MAV_CMD_CONDITION_DELAY = 112 , MAV_CMD_CONDITION_CHANGE_ALT = 113 , MAV_CMD_CONDITION_DISTANCE = 114 , MAV_CMD_CONDITION_YAW = 115 , MAV_CMD_CONDITION_LAST = 159 , MAV_CMD_DO_SET_MODE = 176 , MAV_CMD_DO_JUMP = 177 , MAV_CMD_DO_CHANGE_SPEED = 178 , MAV_CMD_DO_SET_HOME = 179 , MAV_CMD_DO_SET_PARAMETER = 180 , MAV_CMD_DO_SET_RELAY = 181 , MAV_CMD_DO_REPEAT_RELAY = 182 , MAV_CMD_DO_SET_SERVO = 183 , MAV_CMD_DO_REPEAT_SERVO = 184 , MAV_CMD_DO_FLIGHTTERMINATION = 185 , MAV_CMD_DO_CHANGE_ALTITUDE = 186 , MAV_CMD_DO_SET_ACTUATOR = 187 , MAV_CMD_DO_LAND_START = 189 , MAV_CMD_DO_RALLY_LAND = 190 , MAV_CMD_DO_GO_AROUND = 191 , MAV_CMD_DO_REPOSITION = 192 , MAV_CMD_DO_PAUSE_CONTINUE = 193 , MAV_CMD_DO_SET_REVERSE = 194 , MAV_CMD_DO_SET_ROI_LOCATION = 195 , MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET = 196 , MAV_CMD_DO_SET_ROI_NONE = 197 , MAV_CMD_DO_SET_ROI_SYSID = 198 , MAV_CMD_DO_CONTROL_VIDEO = 200 , MAV_CMD_DO_SET_ROI = 201 , MAV_CMD_DO_DIGICAM_CONFIGURE = 202 , MAV_CMD_DO_DIGICAM_CONTROL = 203 , MAV_CMD_DO_MOUNT_CONFIGURE = 204 , MAV_CMD_DO_MOUNT_CONTROL = 205 , MAV_CMD_DO_SET_CAM_TRIGG_DIST = 206 , MAV_CMD_DO_FENCE_ENABLE = 207 , MAV_CMD_DO_PARACHUTE = 208 , MAV_CMD_DO_MOTOR_TEST = 209 , MAV_CMD_DO_INVERTED_FLIGHT = 210 , MAV_CMD_DO_GRIPPER = 211 , MAV_CMD_DO_AUTOTUNE_ENABLE = 212 , MAV_CMD_NAV_SET_YAW_SPEED = 213 , MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL = 214 , MAV_CMD_DO_MOUNT_CONTROL_QUAT = 220 , MAV_CMD_DO_GUIDED_MASTER = 221 , MAV_CMD_DO_GUIDED_LIMITS = 222 , MAV_CMD_DO_ENGINE_CONTROL = 223 , MAV_CMD_DO_SET_MISSION_CURRENT = 224 , MAV_CMD_DO_LAST = 240 , MAV_CMD_PREFLIGHT_CALIBRATION = 241 , MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS = 242 , MAV_CMD_PREFLIGHT_UAVCAN = 243 , MAV_CMD_PREFLIGHT_STORAGE = 245 , MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN = 246 , MAV_CMD_OVERRIDE_GOTO = 252 , MAV_CMD_OBLIQUE_SURVEY = 260 , MAV_CMD_MISSION_START = 300 , MAV_CMD_ACTUATOR_TEST = 310 , MAV_CMD_CONFIGURE_ACTUATOR = 311 , MAV_CMD_COMPONENT_ARM_DISARM = 400 , MAV_CMD_RUN_PREARM_CHECKS = 401 , MAV_CMD_ILLUMINATOR_ON_OFF = 405 , MAV_CMD_GET_HOME_POSITION = 410 , MAV_CMD_INJECT_FAILURE = 420 , MAV_CMD_START_RX_PAIR = 500 , MAV_CMD_GET_MESSAGE_INTERVAL = 510 , MAV_CMD_SET_MESSAGE_INTERVAL = 511 , MAV_CMD_REQUEST_MESSAGE = 512 , MAV_CMD_REQUEST_PROTOCOL_VERSION = 519 , MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES = 520 , MAV_CMD_REQUEST_CAMERA_INFORMATION = 521 , MAV_CMD_REQUEST_CAMERA_SETTINGS = 522 , MAV_CMD_REQUEST_STORAGE_INFORMATION = 525 , MAV_CMD_STORAGE_FORMAT = 526 , MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS = 527 , MAV_CMD_REQUEST_FLIGHT_INFORMATION = 528 , MAV_CMD_RESET_CAMERA_SETTINGS = 529 , MAV_CMD_SET_CAMERA_MODE = 530 , MAV_CMD_SET_CAMERA_ZOOM = 531 , MAV_CMD_SET_CAMERA_FOCUS = 532 , MAV_CMD_SET_STORAGE_USAGE = 533 , MAV_CMD_JUMP_TAG = 600 , MAV_CMD_DO_JUMP_TAG = 601 , MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW = 1000 , MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE = 1001 , MAV_CMD_IMAGE_START_CAPTURE = 2000 , MAV_CMD_IMAGE_STOP_CAPTURE = 2001 , MAV_CMD_REQUEST_CAMERA_IMAGE_CAPTURE = 2002 , MAV_CMD_DO_TRIGGER_CONTROL = 2003 , MAV_CMD_CAMERA_TRACK_POINT = 2004 , MAV_CMD_CAMERA_TRACK_RECTANGLE = 2005 , MAV_CMD_CAMERA_STOP_TRACKING = 2010 , MAV_CMD_VIDEO_START_CAPTURE = 2500 , MAV_CMD_VIDEO_STOP_CAPTURE = 2501 , MAV_CMD_VIDEO_START_STREAMING = 2502 , MAV_CMD_VIDEO_STOP_STREAMING = 2503 , MAV_CMD_REQUEST_VIDEO_STREAM_INFORMATION = 2504 , MAV_CMD_REQUEST_VIDEO_STREAM_STATUS = 2505 , MAV_CMD_LOGGING_START = 2510 , MAV_CMD_LOGGING_STOP = 2511 , MAV_CMD_AIRFRAME_CONFIGURATION = 2520 , MAV_CMD_CONTROL_HIGH_LATENCY = 2600 , MAV_CMD_PANORAMA_CREATE = 2800 , MAV_CMD_DO_VTOL_TRANSITION = 3000 , MAV_CMD_ARM_AUTHORIZATION_REQUEST = 3001 , MAV_CMD_SET_GUIDED_SUBMODE_STANDARD = 4000 , MAV_CMD_SET_GUIDED_SUBMODE_CIRCLE = 4001 , MAV_CMD_CONDITION_GATE = 4501 , MAV_CMD_NAV_FENCE_RETURN_POINT = 5000 , MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION = 5001 , MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION = 5002 , MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION = 5003 , MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION = 5004 , MAV_CMD_NAV_RALLY_POINT = 5100 , MAV_CMD_UAVCAN_GET_NODE_INFO = 5200 , MAV_CMD_DO_ADSB_OUT_IDENT = 10001 , MAV_CMD_PAYLOAD_PREPARE_DEPLOY = 30001 , MAV_CMD_PAYLOAD_CONTROL_DEPLOY = 30002 , MAV_CMD_FIXED_MAG_CAL_YAW = 42006 , MAV_CMD_DO_WINCH = 42600 , MAV_CMD_WAYPOINT_USER_1 = 31000 , MAV_CMD_WAYPOINT_USER_2 = 31001 , MAV_CMD_WAYPOINT_USER_3 = 31002 , MAV_CMD_WAYPOINT_USER_4 = 31003 , MAV_CMD_WAYPOINT_USER_5 = 31004 , MAV_CMD_SPATIAL_USER_1 = 31005 , MAV_CMD_SPATIAL_USER_2 = 31006 , MAV_CMD_SPATIAL_USER_3 = 31007 , MAV_CMD_SPATIAL_USER_4 = 31008 , MAV_CMD_SPATIAL_USER_5 = 31009 , MAV_CMD_USER_1 = 31010 , MAV_CMD_USER_2 = 31011 , MAV_CMD_USER_3 = 31012 , MAV_CMD_USER_4 = 31013 , MAV_CMD_USER_5 = 31014 , MAV_CMD_CAN_FORWARD = 32000 , MAV_CMD_DO_SET_RESUME_REPEAT_DIST = 215 , MAV_CMD_DO_SPRAYER = 216 , MAV_CMD_DO_SEND_SCRIPT_MESSAGE = 217 , MAV_CMD_DO_AUX_FUNCTION = 218 , MAV_CMD_NAV_ALTITUDE_WAIT = 83 , MAV_CMD_POWER_OFF_INITIATED = 42000 , MAV_CMD_SOLO_BTN_FLY_CLICK = 42001 , MAV_CMD_SOLO_BTN_FLY_HOLD = 42002 , MAV_CMD_SOLO_BTN_PAUSE_CLICK = 42003 , MAV_CMD_FIXED_MAG_CAL = 42004 , MAV_CMD_FIXED_MAG_CAL_FIELD = 42005 , MAV_CMD_SET_EKF_SOURCE_SET = 42007 , MAV_CMD_DO_START_MAG_CAL = 42424 , MAV_CMD_DO_ACCEPT_MAG_CAL = 42425 , MAV_CMD_DO_CANCEL_MAG_CAL = 42426 , MAV_CMD_ACCELCAL_VEHICLE_POS = 42429 , MAV_CMD_DO_SEND_BANNER = 42428 , MAV_CMD_SET_FACTORY_TEST_MODE = 42427 , MAV_CMD_GIMBAL_RESET = 42501 , MAV_CMD_GIMBAL_AXIS_CALIBRATION_STATUS = 42502 , MAV_CMD_GIMBAL_REQUEST_AXIS_CALIBRATION = 42503 , MAV_CMD_GIMBAL_FULL_RESET = 42505 , MAV_CMD_FLASH_BOOTLOADER = 42650 , MAV_CMD_BATTERY_RESET = 42651 , MAV_CMD_DEBUG_TRAP = 42700 , MAV_CMD_SCRIPTING = 42701 , MAV_CMD_NAV_SCRIPT_TIME = 42702 , MAV_CMD_NAV_ATTITUDE_TIME = 42703 , MAV_CMD_GUIDED_CHANGE_SPEED = 43000 , MAV_CMD_GUIDED_CHANGE_ALTITUDE = 43001 , MAV_CMD_GUIDED_CHANGE_HEADING = 43002 , } impl MavCmd { pub const DEFAULT : Self = Self :: MAV_CMD_NAV_WAYPOINT ; } impl Default for MavCmd { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproFieldOfView { GOPRO_FIELD_OF_VIEW_WIDE = 0 , GOPRO_FIELD_OF_VIEW_MEDIUM = 1 , GOPRO_FIELD_OF_VIEW_NARROW = 2 , } impl GoproFieldOfView { pub const DEFAULT : Self = Self :: GOPRO_FIELD_OF_VIEW_WIDE ; } impl Default for GoproFieldOfView { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavArmAuthDeniedReason { MAV_ARM_AUTH_DENIED_REASON_GENERIC = 0 , MAV_ARM_AUTH_DENIED_REASON_NONE = 1 , MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT = 2 , MAV_ARM_AUTH_DENIED_REASON_TIMEOUT = 3 , MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE = 4 , MAV_ARM_AUTH_DENIED_REASON_BAD_WEATHER = 5 , } impl MavArmAuthDeniedReason { pub const DEFAULT : Self = Self :: MAV_ARM_AUTH_DENIED_REASON_GENERIC ; } impl Default for MavArmAuthDeniedReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SubMode { SUB_MODE_STABILIZE = 0 , SUB_MODE_ACRO = 1 , SUB_MODE_ALT_HOLD = 2 , SUB_MODE_AUTO = 3 , SUB_MODE_GUIDED = 4 , SUB_MODE_CIRCLE = 7 , SUB_MODE_SURFACE = 9 , SUB_MODE_POSHOLD = 16 , SUB_MODE_MANUAL = 19 , } impl SubMode { pub const DEFAULT : Self = Self :: SUB_MODE_STABILIZE ; } impl Default for SubMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum OsdParamConfigError { OSD_PARAM_SUCCESS = 0 , OSD_PARAM_INVALID_SCREEN = 1 , OSD_PARAM_INVALID_PARAMETER_INDEX = 2 , OSD_PARAM_INVALID_PARAMETER = 3 , } impl OsdParamConfigError { pub const DEFAULT : Self = Self :: OSD_PARAM_SUCCESS ; } impl Default for OsdParamConfigError { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FirmwareVersionType { FIRMWARE_VERSION_TYPE_DEV = 0 , FIRMWARE_VERSION_TYPE_ALPHA = 64 , FIRMWARE_VERSION_TYPE_BETA = 128 , FIRMWARE_VERSION_TYPE_RC = 192 , FIRMWARE_VERSION_TYPE_OFFICIAL = 255 , } impl FirmwareVersionType { pub const DEFAULT : Self = Self :: FIRMWARE_VERSION_TYPE_DEV ; } impl Default for FirmwareVersionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WifiConfigApResponse { WIFI_CONFIG_AP_RESPONSE_UNDEFINED = 0 , WIFI_CONFIG_AP_RESPONSE_ACCEPTED = 1 , WIFI_CONFIG_AP_RESPONSE_REJECTED = 2 , WIFI_CONFIG_AP_RESPONSE_MODE_ERROR = 3 , WIFI_CONFIG_AP_RESPONSE_SSID_ERROR = 4 , WIFI_CONFIG_AP_RESPONSE_PASSWORD_ERROR = 5 , } impl WifiConfigApResponse { pub const DEFAULT : Self = Self :: WIFI_CONFIG_AP_RESPONSE_UNDEFINED ; } impl Default for WifiConfigApResponse { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AisFlags : u16 { const AIS_FLAGS_POSITION_ACCURACY = 1 ; const AIS_FLAGS_VALID_COG = 2 ; const AIS_FLAGS_VALID_VELOCITY = 4 ; const AIS_FLAGS_HIGH_VELOCITY = 8 ; const AIS_FLAGS_VALID_TURN_RATE = 16 ; const AIS_FLAGS_TURN_RATE_SIGN_ONLY = 32 ; const AIS_FLAGS_VALID_DIMENSIONS = 64 ; const AIS_FLAGS_LARGE_BOW_DIMENSION = 128 ; const AIS_FLAGS_LARGE_STERN_DIMENSION = 256 ; const AIS_FLAGS_LARGE_PORT_DIMENSION = 512 ; const AIS_FLAGS_LARGE_STARBOARD_DIMENSION = 1024 ; const AIS_FLAGS_VALID_CALLSIGN = 2048 ; const AIS_FLAGS_VALID_NAME = 4096 ; } } impl AisFlags { pub const DEFAULT : Self = Self :: AIS_FLAGS_POSITION_ACCURACY ; } impl Default for AisFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MotorTestThrottleType { MOTOR_TEST_THROTTLE_PERCENT = 0 , MOTOR_TEST_THROTTLE_PWM = 1 , MOTOR_TEST_THROTTLE_PILOT = 2 , MOTOR_TEST_COMPASS_CAL = 3 , } impl MotorTestThrottleType { pub const DEFAULT : Self = Self :: MOTOR_TEST_THROTTLE_PERCENT ; } impl Default for MotorTestThrottleType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidVerAcc { MAV_ODID_VER_ACC_UNKNOWN = 0 , MAV_ODID_VER_ACC_150_METER = 1 , MAV_ODID_VER_ACC_45_METER = 2 , MAV_ODID_VER_ACC_25_METER = 3 , MAV_ODID_VER_ACC_10_METER = 4 , MAV_ODID_VER_ACC_3_METER = 5 , MAV_ODID_VER_ACC_1_METER = 6 , } impl MavOdidVerAcc { pub const DEFAULT : Self = Self :: MAV_ODID_VER_ACC_UNKNOWN ; } impl Default for MavOdidVerAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularStatusFlag { CELLULAR_STATUS_FLAG_UNKNOWN = 0 , CELLULAR_STATUS_FLAG_FAILED = 1 , CELLULAR_STATUS_FLAG_INITIALIZING = 2 , CELLULAR_STATUS_FLAG_LOCKED = 3 , CELLULAR_STATUS_FLAG_DISABLED = 4 , CELLULAR_STATUS_FLAG_DISABLING = 5 , CELLULAR_STATUS_FLAG_ENABLING = 6 , CELLULAR_STATUS_FLAG_ENABLED = 7 , CELLULAR_STATUS_FLAG_SEARCHING = 8 , CELLULAR_STATUS_FLAG_REGISTERED = 9 , CELLULAR_STATUS_FLAG_DISCONNECTING = 10 , CELLULAR_STATUS_FLAG_CONNECTING = 11 , CELLULAR_STATUS_FLAG_CONNECTED = 12 , } impl CellularStatusFlag { pub const DEFAULT : Self = Self :: CELLULAR_STATUS_FLAG_UNKNOWN ; } impl Default for CellularStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutDynamicGpsFix { UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_0 = 0 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_1 = 1 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_2D = 2 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_3D = 3 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_DGPS = 4 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_RTK = 5 , } impl UavionixAdsbOutDynamicGpsFix { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_0 ; } impl Default for UavionixAdsbOutDynamicGpsFix { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidAuthType { MAV_ODID_AUTH_TYPE_NONE = 0 , MAV_ODID_AUTH_TYPE_UAS_ID_SIGNATURE = 1 , MAV_ODID_AUTH_TYPE_OPERATOR_ID_SIGNATURE = 2 , MAV_ODID_AUTH_TYPE_MESSAGE_SET_SIGNATURE = 3 , MAV_ODID_AUTH_TYPE_NETWORK_REMOTE_ID = 4 , MAV_ODID_AUTH_TYPE_SPECIFIC_AUTHENTICATION = 5 , } impl MavOdidAuthType { pub const DEFAULT : Self = Self :: MAV_ODID_AUTH_TYPE_NONE ; } impl Default for MavOdidAuthType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavcanNodeMode { UAVCAN_NODE_MODE_OPERATIONAL = 0 , UAVCAN_NODE_MODE_INITIALIZATION = 1 , UAVCAN_NODE_MODE_MAINTENANCE = 2 , UAVCAN_NODE_MODE_SOFTWARE_UPDATE = 3 , UAVCAN_NODE_MODE_OFFLINE = 7 , } impl UavcanNodeMode { pub const DEFAULT : Self = Self :: UAVCAN_NODE_MODE_OPERATIONAL ; } impl Default for UavcanNodeMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavlinkDataStreamType { MAVLINK_DATA_STREAM_IMG_JPEG = 0 , MAVLINK_DATA_STREAM_IMG_BMP = 1 , MAVLINK_DATA_STREAM_IMG_RAW8U = 2 , MAVLINK_DATA_STREAM_IMG_RAW32U = 3 , MAVLINK_DATA_STREAM_IMG_PGM = 4 , MAVLINK_DATA_STREAM_IMG_PNG = 5 , } impl MavlinkDataStreamType { pub const DEFAULT : Self = Self :: MAVLINK_DATA_STREAM_IMG_JPEG ; } impl Default for MavlinkDataStreamType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceErrorFlags : u32 { const GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT = 1 ; const GIMBAL_DEVICE_ERROR_FLAGS_AT_PITCH_LIMIT = 2 ; const GIMBAL_DEVICE_ERROR_FLAGS_AT_YAW_LIMIT = 4 ; const GIMBAL_DEVICE_ERROR_FLAGS_ENCODER_ERROR = 8 ; const GIMBAL_DEVICE_ERROR_FLAGS_POWER_ERROR = 16 ; const GIMBAL_DEVICE_ERROR_FLAGS_MOTOR_ERROR = 32 ; const GIMBAL_DEVICE_ERROR_FLAGS_SOFTWARE_ERROR = 64 ; const GIMBAL_DEVICE_ERROR_FLAGS_COMMS_ERROR = 128 ; const GIMBAL_DEVICE_ERROR_FLAGS_CALIBRATION_RUNNING = 256 ; const GIMBAL_DEVICE_ERROR_FLAGS_NO_MANAGER = 512 ; } } impl GimbalDeviceErrorFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT ; } impl Default for GimbalDeviceErrorFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AttitudeTargetTypemask : u8 { const ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE = 1 ; const ATTITUDE_TARGET_TYPEMASK_BODY_PITCH_RATE_IGNORE = 2 ; const ATTITUDE_TARGET_TYPEMASK_BODY_YAW_RATE_IGNORE = 4 ; const ATTITUDE_TARGET_TYPEMASK_THRUST_BODY_SET = 32 ; const ATTITUDE_TARGET_TYPEMASK_THROTTLE_IGNORE = 64 ; const ATTITUDE_TARGET_TYPEMASK_ATTITUDE_IGNORE = 128 ; } } impl AttitudeTargetTypemask { pub const DEFAULT : Self = Self :: ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE ; } impl Default for AttitudeTargetTypemask { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SetFocusType { FOCUS_TYPE_STEP = 0 , FOCUS_TYPE_CONTINUOUS = 1 , FOCUS_TYPE_RANGE = 2 , FOCUS_TYPE_METERS = 3 , FOCUS_TYPE_AUTO = 4 , FOCUS_TYPE_AUTO_SINGLE = 5 , FOCUS_TYPE_AUTO_CONTINUOUS = 6 , } impl SetFocusType { pub const DEFAULT : Self = Self :: FOCUS_TYPE_STEP ; } impl Default for SetFocusType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryFault { MAV_BATTERY_FAULT_DEEP_DISCHARGE = 1 , MAV_BATTERY_FAULT_SPIKES = 2 , MAV_BATTERY_FAULT_CELL_FAIL = 4 , MAV_BATTERY_FAULT_OVER_CURRENT = 8 , MAV_BATTERY_FAULT_OVER_TEMPERATURE = 16 , MAV_BATTERY_FAULT_UNDER_TEMPERATURE = 32 , MAV_BATTERY_FAULT_INCOMPATIBLE_VOLTAGE = 64 , MAV_BATTERY_FAULT_INCOMPATIBLE_FIRMWARE = 128 , BATTERY_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION = 256 , } impl MavBatteryFault { pub const DEFAULT : Self = Self :: MAV_BATTERY_FAULT_DEEP_DISCHARGE ; } impl Default for MavBatteryFault { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum EscConnectionType { ESC_CONNECTION_TYPE_PPM = 0 , ESC_CONNECTION_TYPE_SERIAL = 1 , ESC_CONNECTION_TYPE_ONESHOT = 2 , ESC_CONNECTION_TYPE_I2C = 3 , ESC_CONNECTION_TYPE_CAN = 4 , ESC_CONNECTION_TYPE_DSHOT = 5 , } impl EscConnectionType { pub const DEFAULT : Self = Self :: ESC_CONNECTION_TYPE_PPM ; } impl Default for EscConnectionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AutotuneAxis { AUTOTUNE_AXIS_DEFAULT = 0 , AUTOTUNE_AXIS_ROLL = 1 , AUTOTUNE_AXIS_PITCH = 2 , AUTOTUNE_AXIS_YAW = 4 , } impl AutotuneAxis { pub const DEFAULT : Self = Self :: AUTOTUNE_AXIS_DEFAULT ; } impl Default for AutotuneAxis { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularNetworkFailedReason { CELLULAR_NETWORK_FAILED_REASON_NONE = 0 , CELLULAR_NETWORK_FAILED_REASON_UNKNOWN = 1 , CELLULAR_NETWORK_FAILED_REASON_SIM_MISSING = 2 , CELLULAR_NETWORK_FAILED_REASON_SIM_ERROR = 3 , } impl CellularNetworkFailedReason { pub const DEFAULT : Self = Self :: CELLULAR_NETWORK_FAILED_REASON_NONE ; } impl Default for CellularNetworkFailedReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum IcarousFmsState { ICAROUS_FMS_STATE_IDLE = 0 , ICAROUS_FMS_STATE_TAKEOFF = 1 , ICAROUS_FMS_STATE_CLIMB = 2 , ICAROUS_FMS_STATE_CRUISE = 3 , ICAROUS_FMS_STATE_APPROACH = 4 , ICAROUS_FMS_STATE_LAND = 5 , } impl IcarousFmsState { pub const DEFAULT : Self = Self :: ICAROUS_FMS_STATE_IDLE ; } impl Default for IcarousFmsState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceAction { FENCE_ACTION_NONE = 0 , FENCE_ACTION_GUIDED = 1 , FENCE_ACTION_REPORT = 2 , FENCE_ACTION_GUIDED_THR_PASS = 3 , FENCE_ACTION_RTL = 4 , FENCE_ACTION_HOLD = 5 , FENCE_ACTION_TERMINATE = 6 , FENCE_ACTION_LAND = 7 , } impl FenceAction { pub const DEFAULT : Self = Self :: FENCE_ACTION_NONE ; } impl Default for FenceAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraFeedbackFlags { CAMERA_FEEDBACK_PHOTO = 0 , CAMERA_FEEDBACK_VIDEO = 1 , CAMERA_FEEDBACK_BADEXPOSURE = 2 , CAMERA_FEEDBACK_CLOSEDLOOP = 3 , CAMERA_FEEDBACK_OPENLOOP = 4 , } impl CameraFeedbackFlags { pub const DEFAULT : Self = Self :: CAMERA_FEEDBACK_PHOTO ; } impl Default for CameraFeedbackFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionSrc { MAV_COLLISION_SRC_ADSB = 0 , MAV_COLLISION_SRC_MAVLINK_GPS_GLOBAL_INT = 1 , } impl MavCollisionSrc { pub const DEFAULT : Self = Self :: MAV_COLLISION_SRC_ADSB ; } impl Default for MavCollisionSrc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavType { MAV_TYPE_GENERIC = 0 , MAV_TYPE_FIXED_WING = 1 , MAV_TYPE_QUADROTOR = 2 , MAV_TYPE_COAXIAL = 3 , MAV_TYPE_HELICOPTER = 4 , MAV_TYPE_ANTENNA_TRACKER = 5 , MAV_TYPE_GCS = 6 , MAV_TYPE_AIRSHIP = 7 , MAV_TYPE_FREE_BALLOON = 8 , MAV_TYPE_ROCKET = 9 , MAV_TYPE_GROUND_ROVER = 10 , MAV_TYPE_SURFACE_BOAT = 11 , MAV_TYPE_SUBMARINE = 12 , MAV_TYPE_HEXAROTOR = 13 , MAV_TYPE_OCTOROTOR = 14 , MAV_TYPE_TRICOPTER = 15 , MAV_TYPE_FLAPPING_WING = 16 , MAV_TYPE_KITE = 17 , MAV_TYPE_ONBOARD_CONTROLLER = 18 , MAV_TYPE_VTOL_TAILSITTER_DUOROTOR = 19 , MAV_TYPE_VTOL_TAILSITTER_QUADROTOR = 20 , MAV_TYPE_VTOL_TILTROTOR = 21 , MAV_TYPE_VTOL_FIXEDROTOR = 22 , MAV_TYPE_VTOL_TAILSITTER = 23 , MAV_TYPE_VTOL_TILTWING = 24 , MAV_TYPE_VTOL_RESERVED5 = 25 , MAV_TYPE_GIMBAL = 26 , MAV_TYPE_ADSB = 27 , MAV_TYPE_PARAFOIL = 28 , MAV_TYPE_DODECAROTOR = 29 , MAV_TYPE_CAMERA = 30 , MAV_TYPE_CHARGING_STATION = 31 , MAV_TYPE_FLARM = 32 , MAV_TYPE_SERVO = 33 , MAV_TYPE_ODID = 34 , MAV_TYPE_DECAROTOR = 35 , MAV_TYPE_BATTERY = 36 , MAV_TYPE_PARACHUTE = 37 , MAV_TYPE_LOG = 38 , MAV_TYPE_OSD = 39 , MAV_TYPE_IMU = 40 , MAV_TYPE_GPS = 41 , MAV_TYPE_WINCH = 42 , } impl MavType { pub const DEFAULT : Self = Self :: MAV_TYPE_GENERIC ; } impl Default for MavType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum LandingTargetType { LANDING_TARGET_TYPE_LIGHT_BEACON = 0 , LANDING_TARGET_TYPE_RADIO_BEACON = 1 , LANDING_TARGET_TYPE_VISION_FIDUCIAL = 2 , LANDING_TARGET_TYPE_VISION_OTHER = 3 , } impl LandingTargetType { pub const DEFAULT : Self = Self :: LANDING_TARGET_TYPE_LIGHT_BEACON ; } impl Default for LandingTargetType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum HeadingType { HEADING_TYPE_COURSE_OVER_GROUND = 0 , HEADING_TYPE_HEADING = 1 , } impl HeadingType { pub const DEFAULT : Self = Self :: HEADING_TYPE_COURSE_OVER_GROUND ; } impl Default for HeadingType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GimbalManagerFlags { GIMBAL_MANAGER_FLAGS_RETRACT = 1 , GIMBAL_MANAGER_FLAGS_NEUTRAL = 2 , GIMBAL_MANAGER_FLAGS_ROLL_LOCK = 4 , GIMBAL_MANAGER_FLAGS_PITCH_LOCK = 8 , GIMBAL_MANAGER_FLAGS_YAW_LOCK = 16 , GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME = 32 , GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME = 64 , GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME = 128 , GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE = 256 , GIMBAL_MANAGER_FLAGS_RC_MIXED = 512 , } impl GimbalManagerFlags { pub const DEFAULT : Self = Self :: GIMBAL_MANAGER_FLAGS_RETRACT ; } impl Default for GimbalManagerFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproProtuneSharpness { GOPRO_PROTUNE_SHARPNESS_LOW = 0 , GOPRO_PROTUNE_SHARPNESS_MEDIUM = 1 , GOPRO_PROTUNE_SHARPNESS_HIGH = 2 , } impl GoproProtuneSharpness { pub const DEFAULT : Self = Self :: GOPRO_PROTUNE_SHARPNESS_LOW ; } impl Default for GoproProtuneSharpness { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CopterMode { COPTER_MODE_STABILIZE = 0 , COPTER_MODE_ACRO = 1 , COPTER_MODE_ALT_HOLD = 2 , COPTER_MODE_AUTO = 3 , COPTER_MODE_GUIDED = 4 , COPTER_MODE_LOITER = 5 , COPTER_MODE_RTL = 6 , COPTER_MODE_CIRCLE = 7 , COPTER_MODE_LAND = 9 , COPTER_MODE_DRIFT = 11 , COPTER_MODE_SPORT = 13 , COPTER_MODE_FLIP = 14 , COPTER_MODE_AUTOTUNE = 15 , COPTER_MODE_POSHOLD = 16 , COPTER_MODE_BRAKE = 17 , COPTER_MODE_THROW = 18 , COPTER_MODE_AVOID_ADSB = 19 , COPTER_MODE_GUIDED_NOGPS = 20 , COPTER_MODE_SMART_RTL = 21 , COPTER_MODE_FLOWHOLD = 22 , COPTER_MODE_FOLLOW = 23 , COPTER_MODE_ZIGZAG = 24 , COPTER_MODE_SYSTEMID = 25 , COPTER_MODE_AUTOROTATE = 26 , COPTER_MODE_AUTO_RTL = 27 , } impl CopterMode { pub const DEFAULT : Self = Self :: COPTER_MODE_STABILIZE ; } impl Default for CopterMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RoverMode { ROVER_MODE_MANUAL = 0 , ROVER_MODE_ACRO = 1 , ROVER_MODE_STEERING = 3 , ROVER_MODE_HOLD = 4 , ROVER_MODE_LOITER = 5 , ROVER_MODE_FOLLOW = 6 , ROVER_MODE_SIMPLE = 7 , ROVER_MODE_AUTO = 10 , ROVER_MODE_RTL = 11 , ROVER_MODE_SMART_RTL = 12 , ROVER_MODE_GUIDED = 15 , ROVER_MODE_INITIALIZING = 16 , } impl RoverMode { pub const DEFAULT : Self = Self :: ROVER_MODE_MANUAL ; } impl Default for RoverMode { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LimitModule : u8 { const LIMIT_GPSLOCK = 1 ; const LIMIT_GEOFENCE = 2 ; const LIMIT_ALTITUDE = 4 ; } } impl LimitModule { pub const DEFAULT : Self = Self :: LIMIT_GPSLOCK ; } impl Default for LimitModule { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FailureUnit { FAILURE_UNIT_SENSOR_GYRO = 0 , FAILURE_UNIT_SENSOR_ACCEL = 1 , FAILURE_UNIT_SENSOR_MAG = 2 , FAILURE_UNIT_SENSOR_BARO = 3 , FAILURE_UNIT_SENSOR_GPS = 4 , FAILURE_UNIT_SENSOR_OPTICAL_FLOW = 5 , FAILURE_UNIT_SENSOR_VIO = 6 , FAILURE_UNIT_SENSOR_DISTANCE_SENSOR = 7 , FAILURE_UNIT_SENSOR_AIRSPEED = 8 , FAILURE_UNIT_SYSTEM_BATTERY = 100 , FAILURE_UNIT_SYSTEM_MOTOR = 101 , FAILURE_UNIT_SYSTEM_SERVO = 102 , FAILURE_UNIT_SYSTEM_AVOIDANCE = 103 , FAILURE_UNIT_SYSTEM_RC_SIGNAL = 104 , FAILURE_UNIT_SYSTEM_MAVLINK_SIGNAL = 105 , } impl FailureUnit { pub const DEFAULT : Self = Self :: FAILURE_UNIT_SENSOR_GYRO ; } impl Default for FailureUnit { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FailureType { FAILURE_TYPE_OK = 0 , FAILURE_TYPE_OFF = 1 , FAILURE_TYPE_STUCK = 2 , FAILURE_TYPE_GARBAGE = 3 , FAILURE_TYPE_WRONG = 4 , FAILURE_TYPE_SLOW = 5 , FAILURE_TYPE_DELAYED = 6 , FAILURE_TYPE_INTERMITTENT = 7 , } impl FailureType { pub const DEFAULT : Self = Self :: FAILURE_TYPE_OK ; } impl Default for FailureType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraZoomType { ZOOM_TYPE_STEP = 0 , ZOOM_TYPE_CONTINUOUS = 1 , ZOOM_TYPE_RANGE = 2 , ZOOM_TYPE_FOCAL_LENGTH = 3 , } impl CameraZoomType { pub const DEFAULT : Self = Self :: ZOOM_TYPE_STEP ; } impl Default for CameraZoomType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CanFilterOp { CAN_FILTER_REPLACE = 0 , CAN_FILTER_ADD = 1 , CAN_FILTER_REMOVE = 2 , } impl CanFilterOp { pub const DEFAULT : Self = Self :: CAN_FILTER_REPLACE ; } impl Default for CanFilterOp { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryType { MAV_BATTERY_TYPE_UNKNOWN = 0 , MAV_BATTERY_TYPE_LIPO = 1 , MAV_BATTERY_TYPE_LIFE = 2 , MAV_BATTERY_TYPE_LION = 3 , MAV_BATTERY_TYPE_NIMH = 4 , } impl MavBatteryType { pub const DEFAULT : Self = Self :: MAV_BATTERY_TYPE_UNKNOWN ; } impl Default for MavBatteryType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ActuatorConfiguration { ACTUATOR_CONFIGURATION_NONE = 0 , ACTUATOR_CONFIGURATION_BEEP = 1 , ACTUATOR_CONFIGURATION_3D_MODE_ON = 2 , ACTUATOR_CONFIGURATION_3D_MODE_OFF = 3 , ACTUATOR_CONFIGURATION_SPIN_DIRECTION1 = 4 , ACTUATOR_CONFIGURATION_SPIN_DIRECTION2 = 5 , } impl ActuatorConfiguration { pub const DEFAULT : Self = Self :: ACTUATOR_CONFIGURATION_NONE ; } impl Default for ActuatorConfiguration { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UavionixAdsbOutDynamicState : u16 { const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE = 1 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_AUTOPILOT_ENABLED = 2 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_NICBARO_CROSSCHECKED = 4 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_ON_GROUND = 8 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_IDENT = 16 ; } } impl UavionixAdsbOutDynamicState { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE ; } impl Default for UavionixAdsbOutDynamicState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GimbalAxisCalibrationStatus { GIMBAL_AXIS_CALIBRATION_STATUS_IN_PROGRESS = 0 , GIMBAL_AXIS_CALIBRATION_STATUS_SUCCEEDED = 1 , GIMBAL_AXIS_CALIBRATION_STATUS_FAILED = 2 , } impl GimbalAxisCalibrationStatus { pub const DEFAULT : Self = Self :: GIMBAL_AXIS_CALIBRATION_STATUS_IN_PROGRESS ; } impl Default for GimbalAxisCalibrationStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionThreatLevel { MAV_COLLISION_THREAT_LEVEL_NONE = 0 , MAV_COLLISION_THREAT_LEVEL_LOW = 1 , MAV_COLLISION_THREAT_LEVEL_HIGH = 2 , } impl MavCollisionThreatLevel { pub const DEFAULT : Self = Self :: MAV_COLLISION_THREAT_LEVEL_NONE ; } impl Default for MavCollisionThreatLevel { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RcType { RC_TYPE_SPEKTRUM_DSM2 = 0 , RC_TYPE_SPEKTRUM_DSMX = 1 , } impl RcType { pub const DEFAULT : Self = Self :: RC_TYPE_SPEKTRUM_DSM2 ; } impl Default for RcType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmdAck { MAV_CMD_ACK_OK = 0 , MAV_CMD_ACK_ERR_FAIL = 1 , MAV_CMD_ACK_ERR_ACCESS_DENIED = 2 , MAV_CMD_ACK_ERR_NOT_SUPPORTED = 3 , MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED = 4 , MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE = 5 , MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE = 6 , MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE = 7 , MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE = 8 , } impl MavCmdAck { pub const DEFAULT : Self = Self :: MAV_CMD_ACK_OK ; } impl Default for MavCmdAck { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproHeartbeatStatus { GOPRO_HEARTBEAT_STATUS_DISCONNECTED = 0 , GOPRO_HEARTBEAT_STATUS_INCOMPATIBLE = 1 , GOPRO_HEARTBEAT_STATUS_CONNECTED = 2 , GOPRO_HEARTBEAT_STATUS_ERROR = 3 , } impl GoproHeartbeatStatus { pub const DEFAULT : Self = Self :: GOPRO_HEARTBEAT_STATUS_DISCONNECTED ; } impl Default for GoproHeartbeatStatus { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UtmDataAvailFlags : u8 { const UTM_DATA_AVAIL_FLAGS_TIME_VALID = 1 ; const UTM_DATA_AVAIL_FLAGS_UAS_ID_AVAILABLE = 2 ; const UTM_DATA_AVAIL_FLAGS_POSITION_AVAILABLE = 4 ; const UTM_DATA_AVAIL_FLAGS_ALTITUDE_AVAILABLE = 8 ; const UTM_DATA_AVAIL_FLAGS_RELATIVE_ALTITUDE_AVAILABLE = 16 ; const UTM_DATA_AVAIL_FLAGS_HORIZONTAL_VELO_AVAILABLE = 32 ; const UTM_DATA_AVAIL_FLAGS_VERTICAL_VELO_AVAILABLE = 64 ; const UTM_DATA_AVAIL_FLAGS_NEXT_WAYPOINT_AVAILABLE = 128 ; } } impl UtmDataAvailFlags { pub const DEFAULT : Self = Self :: UTM_DATA_AVAIL_FLAGS_TIME_VALID ; } impl Default for UtmDataAvailFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproResolution { GOPRO_RESOLUTION_480p = 0 , GOPRO_RESOLUTION_720p = 1 , GOPRO_RESOLUTION_960p = 2 , GOPRO_RESOLUTION_1080p = 3 , GOPRO_RESOLUTION_1440p = 4 , GOPRO_RESOLUTION_2_7k_17_9 = 5 , GOPRO_RESOLUTION_2_7k_16_9 = 6 , GOPRO_RESOLUTION_2_7k_4_3 = 7 , GOPRO_RESOLUTION_4k_16_9 = 8 , GOPRO_RESOLUTION_4k_17_9 = 9 , GOPRO_RESOLUTION_720p_SUPERVIEW = 10 , GOPRO_RESOLUTION_1080p_SUPERVIEW = 11 , GOPRO_RESOLUTION_2_7k_SUPERVIEW = 12 , GOPRO_RESOLUTION_4k_SUPERVIEW = 13 , } impl GoproResolution { pub const DEFAULT : Self = Self :: GOPRO_RESOLUTION_480p ; } impl Default for GoproResolution { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavPowerStatus : u16 { const MAV_POWER_STATUS_BRICK_VALID = 1 ; const MAV_POWER_STATUS_SERVO_VALID = 2 ; const MAV_POWER_STATUS_USB_CONNECTED = 4 ; const MAV_POWER_STATUS_PERIPH_OVERCURRENT = 8 ; const MAV_POWER_STATUS_PERIPH_HIPOWER_OVERCURRENT = 16 ; const MAV_POWER_STATUS_CHANGED = 32 ; } } impl MavPowerStatus { pub const DEFAULT : Self = Self :: MAV_POWER_STATUS_BRICK_VALID ; } impl Default for MavPowerStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMode { MAV_MODE_PREFLIGHT = 0 , MAV_MODE_STABILIZE_DISARMED = 80 , MAV_MODE_STABILIZE_ARMED = 208 , MAV_MODE_MANUAL_DISARMED = 64 , MAV_MODE_MANUAL_ARMED = 192 , MAV_MODE_GUIDED_DISARMED = 88 , MAV_MODE_GUIDED_ARMED = 216 , MAV_MODE_AUTO_DISARMED = 92 , MAV_MODE_AUTO_ARMED = 220 , MAV_MODE_TEST_DISARMED = 66 , MAV_MODE_TEST_ARMED = 194 , } impl MavMode { pub const DEFAULT : Self = Self :: MAV_MODE_PREFLIGHT ; } impl Default for MavMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidOperatorLocationType { MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF = 0 , MAV_ODID_OPERATOR_LOCATION_TYPE_LIVE_GNSS = 1 , MAV_ODID_OPERATOR_LOCATION_TYPE_FIXED = 2 , } impl MavOdidOperatorLocationType { pub const DEFAULT : Self = Self :: MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF ; } impl Default for MavOdidOperatorLocationType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SerialControlFlag : u8 { const SERIAL_CONTROL_FLAG_REPLY = 1 ; const SERIAL_CONTROL_FLAG_RESPOND = 2 ; const SERIAL_CONTROL_FLAG_EXCLUSIVE = 4 ; const SERIAL_CONTROL_FLAG_BLOCKING = 8 ; const SERIAL_CONTROL_FLAG_MULTI = 16 ; } } impl SerialControlFlag { pub const DEFAULT : Self = Self :: SERIAL_CONTROL_FLAG_REPLY ; } impl Default for SerialControlFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidArmStatus { MAV_ODID_ARM_STATUS_GOOD_TO_ARM = 0 , MAV_ODID_ARM_STATUS_PRE_ARM_FAIL_GENERIC = 1 , } impl MavOdidArmStatus { pub const DEFAULT : Self = Self :: MAV_ODID_ARM_STATUS_GOOD_TO_ARM ; } impl Default for MavOdidArmStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ScriptingCmd { SCRIPTING_CMD_REPL_START = 0 , SCRIPTING_CMD_REPL_STOP = 1 , SCRIPTING_CMD_STOP = 2 , SCRIPTING_CMD_STOP_AND_RESTART = 3 , } impl ScriptingCmd { pub const DEFAULT : Self = Self :: SCRIPTING_CMD_REPL_START ; } impl Default for ScriptingCmd { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AdsbEmitterType { ADSB_EMITTER_TYPE_NO_INFO = 0 , ADSB_EMITTER_TYPE_LIGHT = 1 , ADSB_EMITTER_TYPE_SMALL = 2 , ADSB_EMITTER_TYPE_LARGE = 3 , ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE = 4 , ADSB_EMITTER_TYPE_HEAVY = 5 , ADSB_EMITTER_TYPE_HIGHLY_MANUV = 6 , ADSB_EMITTER_TYPE_ROTOCRAFT = 7 , ADSB_EMITTER_TYPE_UNASSIGNED = 8 , ADSB_EMITTER_TYPE_GLIDER = 9 , ADSB_EMITTER_TYPE_LIGHTER_AIR = 10 , ADSB_EMITTER_TYPE_PARACHUTE = 11 , ADSB_EMITTER_TYPE_ULTRA_LIGHT = 12 , ADSB_EMITTER_TYPE_UNASSIGNED2 = 13 , ADSB_EMITTER_TYPE_UAV = 14 , ADSB_EMITTER_TYPE_SPACE = 15 , ADSB_EMITTER_TYPE_UNASSGINED3 = 16 , ADSB_EMITTER_TYPE_EMERGENCY_SURFACE = 17 , ADSB_EMITTER_TYPE_SERVICE_SURFACE = 18 , ADSB_EMITTER_TYPE_POINT_OBSTACLE = 19 , } impl AdsbEmitterType { pub const DEFAULT : Self = Self :: ADSB_EMITTER_TYPE_NO_INFO ; } impl Default for AdsbEmitterType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AisType { AIS_TYPE_UNKNOWN = 0 , AIS_TYPE_RESERVED_1 = 1 , AIS_TYPE_RESERVED_2 = 2 , AIS_TYPE_RESERVED_3 = 3 , AIS_TYPE_RESERVED_4 = 4 , AIS_TYPE_RESERVED_5 = 5 , AIS_TYPE_RESERVED_6 = 6 , AIS_TYPE_RESERVED_7 = 7 , AIS_TYPE_RESERVED_8 = 8 , AIS_TYPE_RESERVED_9 = 9 , AIS_TYPE_RESERVED_10 = 10 , AIS_TYPE_RESERVED_11 = 11 , AIS_TYPE_RESERVED_12 = 12 , AIS_TYPE_RESERVED_13 = 13 , AIS_TYPE_RESERVED_14 = 14 , AIS_TYPE_RESERVED_15 = 15 , AIS_TYPE_RESERVED_16 = 16 , AIS_TYPE_RESERVED_17 = 17 , AIS_TYPE_RESERVED_18 = 18 , AIS_TYPE_RESERVED_19 = 19 , AIS_TYPE_WIG = 20 , AIS_TYPE_WIG_HAZARDOUS_A = 21 , AIS_TYPE_WIG_HAZARDOUS_B = 22 , AIS_TYPE_WIG_HAZARDOUS_C = 23 , AIS_TYPE_WIG_HAZARDOUS_D = 24 , AIS_TYPE_WIG_RESERVED_1 = 25 , AIS_TYPE_WIG_RESERVED_2 = 26 , AIS_TYPE_WIG_RESERVED_3 = 27 , AIS_TYPE_WIG_RESERVED_4 = 28 , AIS_TYPE_WIG_RESERVED_5 = 29 , AIS_TYPE_FISHING = 30 , AIS_TYPE_TOWING = 31 , AIS_TYPE_TOWING_LARGE = 32 , AIS_TYPE_DREDGING = 33 , AIS_TYPE_DIVING = 34 , AIS_TYPE_MILITARY = 35 , AIS_TYPE_SAILING = 36 , AIS_TYPE_PLEASURE = 37 , AIS_TYPE_RESERVED_20 = 38 , AIS_TYPE_RESERVED_21 = 39 , AIS_TYPE_HSC = 40 , AIS_TYPE_HSC_HAZARDOUS_A = 41 , AIS_TYPE_HSC_HAZARDOUS_B = 42 , AIS_TYPE_HSC_HAZARDOUS_C = 43 , AIS_TYPE_HSC_HAZARDOUS_D = 44 , AIS_TYPE_HSC_RESERVED_1 = 45 , AIS_TYPE_HSC_RESERVED_2 = 46 , AIS_TYPE_HSC_RESERVED_3 = 47 , AIS_TYPE_HSC_RESERVED_4 = 48 , AIS_TYPE_HSC_UNKNOWN = 49 , AIS_TYPE_PILOT = 50 , AIS_TYPE_SAR = 51 , AIS_TYPE_TUG = 52 , AIS_TYPE_PORT_TENDER = 53 , AIS_TYPE_ANTI_POLLUTION = 54 , AIS_TYPE_LAW_ENFORCEMENT = 55 , AIS_TYPE_SPARE_LOCAL_1 = 56 , AIS_TYPE_SPARE_LOCAL_2 = 57 , AIS_TYPE_MEDICAL_TRANSPORT = 58 , AIS_TYPE_NONECOMBATANT = 59 , AIS_TYPE_PASSENGER = 60 , AIS_TYPE_PASSENGER_HAZARDOUS_A = 61 , AIS_TYPE_PASSENGER_HAZARDOUS_B = 62 , AIS_TYPE_PASSENGER_HAZARDOUS_C = 63 , AIS_TYPE_PASSENGER_HAZARDOUS_D = 64 , AIS_TYPE_PASSENGER_RESERVED_1 = 65 , AIS_TYPE_PASSENGER_RESERVED_2 = 66 , AIS_TYPE_PASSENGER_RESERVED_3 = 67 , AIS_TYPE_PASSENGER_RESERVED_4 = 68 , AIS_TYPE_PASSENGER_UNKNOWN = 69 , AIS_TYPE_CARGO = 70 , AIS_TYPE_CARGO_HAZARDOUS_A = 71 , AIS_TYPE_CARGO_HAZARDOUS_B = 72 , AIS_TYPE_CARGO_HAZARDOUS_C = 73 , AIS_TYPE_CARGO_HAZARDOUS_D = 74 , AIS_TYPE_CARGO_RESERVED_1 = 75 , AIS_TYPE_CARGO_RESERVED_2 = 76 , AIS_TYPE_CARGO_RESERVED_3 = 77 , AIS_TYPE_CARGO_RESERVED_4 = 78 , AIS_TYPE_CARGO_UNKNOWN = 79 , AIS_TYPE_TANKER = 80 , AIS_TYPE_TANKER_HAZARDOUS_A = 81 , AIS_TYPE_TANKER_HAZARDOUS_B = 82 , AIS_TYPE_TANKER_HAZARDOUS_C = 83 , AIS_TYPE_TANKER_HAZARDOUS_D = 84 , AIS_TYPE_TANKER_RESERVED_1 = 85 , AIS_TYPE_TANKER_RESERVED_2 = 86 , AIS_TYPE_TANKER_RESERVED_3 = 87 , AIS_TYPE_TANKER_RESERVED_4 = 88 , AIS_TYPE_TANKER_UNKNOWN = 89 , AIS_TYPE_OTHER = 90 , AIS_TYPE_OTHER_HAZARDOUS_A = 91 , AIS_TYPE_OTHER_HAZARDOUS_B = 92 , AIS_TYPE_OTHER_HAZARDOUS_C = 93 , AIS_TYPE_OTHER_HAZARDOUS_D = 94 , AIS_TYPE_OTHER_RESERVED_1 = 95 , AIS_TYPE_OTHER_RESERVED_2 = 96 , AIS_TYPE_OTHER_RESERVED_3 = 97 , AIS_TYPE_OTHER_RESERVED_4 = 98 , AIS_TYPE_OTHER_UNKNOWN = 99 , } impl AisType { pub const DEFAULT : Self = Self :: AIS_TYPE_UNKNOWN ; } impl Default for AisType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidIdType { MAV_ODID_ID_TYPE_NONE = 0 , MAV_ODID_ID_TYPE_SERIAL_NUMBER = 1 , MAV_ODID_ID_TYPE_CAA_REGISTRATION_ID = 2 , MAV_ODID_ID_TYPE_UTM_ASSIGNED_UUID = 3 , MAV_ODID_ID_TYPE_SPECIFIC_SESSION_ID = 4 , } impl MavOdidIdType { pub const DEFAULT : Self = Self :: MAV_ODID_ID_TYPE_NONE ; } impl Default for MavOdidIdType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidStatus { MAV_ODID_STATUS_UNDECLARED = 0 , MAV_ODID_STATUS_GROUND = 1 , MAV_ODID_STATUS_AIRBORNE = 2 , MAV_ODID_STATUS_EMERGENCY = 3 , MAV_ODID_STATUS_REMOTE_ID_SYSTEM_FAILURE = 4 , } impl MavOdidStatus { pub const DEFAULT : Self = Self :: MAV_ODID_STATUS_UNDECLARED ; } impl Default for MavOdidStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum IcarousTrackBandTypes { ICAROUS_TRACK_BAND_TYPE_NONE = 0 , ICAROUS_TRACK_BAND_TYPE_NEAR = 1 , ICAROUS_TRACK_BAND_TYPE_RECOVERY = 2 , } impl IcarousTrackBandTypes { pub const DEFAULT : Self = Self :: ICAROUS_TRACK_BAND_TYPE_NONE ; } impl Default for IcarousTrackBandTypes { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HlFailureFlag : u16 { const HL_FAILURE_FLAG_GPS = 1 ; const HL_FAILURE_FLAG_DIFFERENTIAL_PRESSURE = 2 ; const HL_FAILURE_FLAG_ABSOLUTE_PRESSURE = 4 ; const HL_FAILURE_FLAG_3D_ACCEL = 8 ; const HL_FAILURE_FLAG_3D_GYRO = 16 ; const HL_FAILURE_FLAG_3D_MAG = 32 ; const HL_FAILURE_FLAG_TERRAIN = 64 ; const HL_FAILURE_FLAG_BATTERY = 128 ; const HL_FAILURE_FLAG_RC_RECEIVER = 256 ; const HL_FAILURE_FLAG_OFFBOARD_LINK = 512 ; const HL_FAILURE_FLAG_ENGINE = 1024 ; const HL_FAILURE_FLAG_GEOFENCE = 2048 ; const HL_FAILURE_FLAG_ESTIMATOR = 4096 ; const HL_FAILURE_FLAG_MISSION = 8192 ; } } impl HlFailureFlag { pub const DEFAULT : Self = Self :: HL_FAILURE_FLAG_GPS ; } impl Default for HlFailureFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproRequestStatus { GOPRO_REQUEST_SUCCESS = 0 , GOPRO_REQUEST_FAILED = 1 , } impl GoproRequestStatus { pub const DEFAULT : Self = Self :: GOPRO_REQUEST_SUCCESS ; } impl Default for GoproRequestStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum DeviceOpBustype { DEVICE_OP_BUSTYPE_I2C = 0 , DEVICE_OP_BUSTYPE_SPI = 1 , } impl DeviceOpBustype { pub const DEFAULT : Self = Self :: DEVICE_OP_BUSTYPE_I2C ; } impl Default for DeviceOpBustype { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSensorOrientation { MAV_SENSOR_ROTATION_NONE = 0 , MAV_SENSOR_ROTATION_YAW_45 = 1 , MAV_SENSOR_ROTATION_YAW_90 = 2 , MAV_SENSOR_ROTATION_YAW_135 = 3 , MAV_SENSOR_ROTATION_YAW_180 = 4 , MAV_SENSOR_ROTATION_YAW_225 = 5 , MAV_SENSOR_ROTATION_YAW_270 = 6 , MAV_SENSOR_ROTATION_YAW_315 = 7 , MAV_SENSOR_ROTATION_ROLL_180 = 8 , MAV_SENSOR_ROTATION_ROLL_180_YAW_45 = 9 , MAV_SENSOR_ROTATION_ROLL_180_YAW_90 = 10 , MAV_SENSOR_ROTATION_ROLL_180_YAW_135 = 11 , MAV_SENSOR_ROTATION_PITCH_180 = 12 , MAV_SENSOR_ROTATION_ROLL_180_YAW_225 = 13 , MAV_SENSOR_ROTATION_ROLL_180_YAW_270 = 14 , MAV_SENSOR_ROTATION_ROLL_180_YAW_315 = 15 , MAV_SENSOR_ROTATION_ROLL_90 = 16 , MAV_SENSOR_ROTATION_ROLL_90_YAW_45 = 17 , MAV_SENSOR_ROTATION_ROLL_90_YAW_90 = 18 , MAV_SENSOR_ROTATION_ROLL_90_YAW_135 = 19 , MAV_SENSOR_ROTATION_ROLL_270 = 20 , MAV_SENSOR_ROTATION_ROLL_270_YAW_45 = 21 , MAV_SENSOR_ROTATION_ROLL_270_YAW_90 = 22 , MAV_SENSOR_ROTATION_ROLL_270_YAW_135 = 23 , MAV_SENSOR_ROTATION_PITCH_90 = 24 , MAV_SENSOR_ROTATION_PITCH_270 = 25 , MAV_SENSOR_ROTATION_PITCH_180_YAW_90 = 26 , MAV_SENSOR_ROTATION_PITCH_180_YAW_270 = 27 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_90 = 28 , MAV_SENSOR_ROTATION_ROLL_180_PITCH_90 = 29 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_90 = 30 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_180 = 31 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_180 = 32 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_270 = 33 , MAV_SENSOR_ROTATION_ROLL_180_PITCH_270 = 34 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_270 = 35 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_180_YAW_90 = 36 , MAV_SENSOR_ROTATION_ROLL_90_YAW_270 = 37 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_68_YAW_293 = 38 , MAV_SENSOR_ROTATION_PITCH_315 = 39 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_315 = 40 , MAV_SENSOR_ROTATION_CUSTOM = 100 , } impl MavSensorOrientation { pub const DEFAULT : Self = Self :: MAV_SENSOR_ROTATION_NONE ; } impl Default for MavSensorOrientation { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDataStream { MAV_DATA_STREAM_ALL = 0 , MAV_DATA_STREAM_RAW_SENSORS = 1 , MAV_DATA_STREAM_EXTENDED_STATUS = 2 , MAV_DATA_STREAM_RC_CHANNELS = 3 , MAV_DATA_STREAM_RAW_CONTROLLER = 4 , MAV_DATA_STREAM_POSITION = 6 , MAV_DATA_STREAM_EXTRA1 = 10 , MAV_DATA_STREAM_EXTRA2 = 11 , MAV_DATA_STREAM_EXTRA3 = 12 , } impl MavDataStream { pub const DEFAULT : Self = Self :: MAV_DATA_STREAM_ALL ; } impl Default for MavDataStream { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavRoi { MAV_ROI_NONE = 0 , MAV_ROI_WPNEXT = 1 , MAV_ROI_WPINDEX = 2 , MAV_ROI_LOCATION = 3 , MAV_ROI_TARGET = 4 , } impl MavRoi { pub const DEFAULT : Self = Self :: MAV_ROI_NONE ; } impl Default for MavRoi { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavParamExtType { MAV_PARAM_EXT_TYPE_UINT8 = 1 , MAV_PARAM_EXT_TYPE_INT8 = 2 , MAV_PARAM_EXT_TYPE_UINT16 = 3 , MAV_PARAM_EXT_TYPE_INT16 = 4 , MAV_PARAM_EXT_TYPE_UINT32 = 5 , MAV_PARAM_EXT_TYPE_INT32 = 6 , MAV_PARAM_EXT_TYPE_UINT64 = 7 , MAV_PARAM_EXT_TYPE_INT64 = 8 , MAV_PARAM_EXT_TYPE_REAL32 = 9 , MAV_PARAM_EXT_TYPE_REAL64 = 10 , MAV_PARAM_EXT_TYPE_CUSTOM = 11 , } impl MavParamExtType { pub const DEFAULT : Self = Self :: MAV_PARAM_EXT_TYPE_UINT8 ; } impl Default for MavParamExtType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidHorAcc { MAV_ODID_HOR_ACC_UNKNOWN = 0 , MAV_ODID_HOR_ACC_10NM = 1 , MAV_ODID_HOR_ACC_4NM = 2 , MAV_ODID_HOR_ACC_2NM = 3 , MAV_ODID_HOR_ACC_1NM = 4 , MAV_ODID_HOR_ACC_0_5NM = 5 , MAV_ODID_HOR_ACC_0_3NM = 6 , MAV_ODID_HOR_ACC_0_1NM = 7 , MAV_ODID_HOR_ACC_0_05NM = 8 , MAV_ODID_HOR_ACC_30_METER = 9 , MAV_ODID_HOR_ACC_10_METER = 10 , MAV_ODID_HOR_ACC_3_METER = 11 , MAV_ODID_HOR_ACC_1_METER = 12 , } impl MavOdidHorAcc { pub const DEFAULT : Self = Self :: MAV_ODID_HOR_ACC_UNKNOWN ; } impl Default for MavOdidHorAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavResult { MAV_RESULT_ACCEPTED = 0 , MAV_RESULT_TEMPORARILY_REJECTED = 1 , MAV_RESULT_DENIED = 2 , MAV_RESULT_UNSUPPORTED = 3 , MAV_RESULT_FAILED = 4 , MAV_RESULT_IN_PROGRESS = 5 , MAV_RESULT_CANCELLED = 6 , } impl MavResult { pub const DEFAULT : Self = Self :: MAV_RESULT_ACCEPTED ; } impl Default for MavResult { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproCaptureMode { GOPRO_CAPTURE_MODE_VIDEO = 0 , GOPRO_CAPTURE_MODE_PHOTO = 1 , GOPRO_CAPTURE_MODE_BURST = 2 , GOPRO_CAPTURE_MODE_TIME_LAPSE = 3 , GOPRO_CAPTURE_MODE_MULTI_SHOT = 4 , GOPRO_CAPTURE_MODE_PLAYBACK = 5 , GOPRO_CAPTURE_MODE_SETUP = 6 , GOPRO_CAPTURE_MODE_UNKNOWN = 255 , } impl GoproCaptureMode { pub const DEFAULT : Self = Self :: GOPRO_CAPTURE_MODE_VIDEO ; } impl Default for GoproCaptureMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavRemoteLogDataBlockStatuses { MAV_REMOTE_LOG_DATA_BLOCK_NACK = 0 , MAV_REMOTE_LOG_DATA_BLOCK_ACK = 1 , } impl MavRemoteLogDataBlockStatuses { pub const DEFAULT : Self = Self :: MAV_REMOTE_LOG_DATA_BLOCK_NACK ; } impl Default for MavRemoteLogDataBlockStatuses { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularNetworkRadioType { CELLULAR_NETWORK_RADIO_TYPE_NONE = 0 , CELLULAR_NETWORK_RADIO_TYPE_GSM = 1 , CELLULAR_NETWORK_RADIO_TYPE_CDMA = 2 , CELLULAR_NETWORK_RADIO_TYPE_WCDMA = 3 , CELLULAR_NETWORK_RADIO_TYPE_LTE = 4 , } impl CellularNetworkRadioType { pub const DEFAULT : Self = Self :: CELLULAR_NETWORK_RADIO_TYPE_NONE ; } impl Default for CellularNetworkRadioType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavcanNodeHealth { UAVCAN_NODE_HEALTH_OK = 0 , UAVCAN_NODE_HEALTH_WARNING = 1 , UAVCAN_NODE_HEALTH_ERROR = 2 , UAVCAN_NODE_HEALTH_CRITICAL = 3 , } impl UavcanNodeHealth { pub const DEFAULT : Self = Self :: UAVCAN_NODE_HEALTH_OK ; } impl Default for UavcanNodeHealth { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavEventCurrentSequenceFlags : u8 { const MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET = 1 ; } } impl MavEventCurrentSequenceFlags { pub const DEFAULT : Self = Self :: MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET ; } impl Default for MavEventCurrentSequenceFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ParachuteAction { PARACHUTE_DISABLE = 0 , PARACHUTE_ENABLE = 1 , PARACHUTE_RELEASE = 2 , } impl ParachuteAction { pub const DEFAULT : Self = Self :: PARACHUTE_DISABLE ; } impl Default for ParachuteAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageStatus { STORAGE_STATUS_EMPTY = 0 , STORAGE_STATUS_UNFORMATTED = 1 , STORAGE_STATUS_READY = 2 , STORAGE_STATUS_NOT_SUPPORTED = 3 , } impl StorageStatus { pub const DEFAULT : Self = Self :: STORAGE_STATUS_EMPTY ; } impl Default for StorageStatus { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavSysStatusSensor : u32 { const MAV_SYS_STATUS_SENSOR_3D_GYRO = 1 ; const MAV_SYS_STATUS_SENSOR_3D_ACCEL = 2 ; const MAV_SYS_STATUS_SENSOR_3D_MAG = 4 ; const MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE = 8 ; const MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE = 16 ; const MAV_SYS_STATUS_SENSOR_GPS = 32 ; const MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW = 64 ; const MAV_SYS_STATUS_SENSOR_VISION_POSITION = 128 ; const MAV_SYS_STATUS_SENSOR_LASER_POSITION = 256 ; const MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH = 512 ; const MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL = 1024 ; const MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION = 2048 ; const MAV_SYS_STATUS_SENSOR_YAW_POSITION = 4096 ; const MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL = 8192 ; const MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL = 16384 ; const MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS = 32768 ; const MAV_SYS_STATUS_SENSOR_RC_RECEIVER = 65536 ; const MAV_SYS_STATUS_SENSOR_3D_GYRO2 = 131072 ; const MAV_SYS_STATUS_SENSOR_3D_ACCEL2 = 262144 ; const MAV_SYS_STATUS_SENSOR_3D_MAG2 = 524288 ; const MAV_SYS_STATUS_GEOFENCE = 1048576 ; const MAV_SYS_STATUS_AHRS = 2097152 ; const MAV_SYS_STATUS_TERRAIN = 4194304 ; const MAV_SYS_STATUS_REVERSE_MOTOR = 8388608 ; const MAV_SYS_STATUS_LOGGING = 16777216 ; const MAV_SYS_STATUS_SENSOR_BATTERY = 33554432 ; const MAV_SYS_STATUS_SENSOR_PROXIMITY = 67108864 ; const MAV_SYS_STATUS_SENSOR_SATCOM = 134217728 ; const MAV_SYS_STATUS_PREARM_CHECK = 268435456 ; const MAV_SYS_STATUS_OBSTACLE_AVOIDANCE = 536870912 ; const MAV_SYS_STATUS_SENSOR_PROPULSION = 1073741824 ; const MAV_SYS_STATUS_EXTENSION_USED = 2147483648 ; } } impl MavSysStatusSensor { pub const DEFAULT : Self = Self :: MAV_SYS_STATUS_SENSOR_3D_GYRO ; } impl Default for MavSysStatusSensor { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFrame { MAV_FRAME_GLOBAL = 0 , MAV_FRAME_LOCAL_NED = 1 , MAV_FRAME_MISSION = 2 , MAV_FRAME_GLOBAL_RELATIVE_ALT = 3 , MAV_FRAME_LOCAL_ENU = 4 , MAV_FRAME_GLOBAL_INT = 5 , MAV_FRAME_GLOBAL_RELATIVE_ALT_INT = 6 , MAV_FRAME_LOCAL_OFFSET_NED = 7 , MAV_FRAME_BODY_NED = 8 , MAV_FRAME_BODY_OFFSET_NED = 9 , MAV_FRAME_GLOBAL_TERRAIN_ALT = 10 , MAV_FRAME_GLOBAL_TERRAIN_ALT_INT = 11 , MAV_FRAME_BODY_FRD = 12 , MAV_FRAME_RESERVED_13 = 13 , MAV_FRAME_RESERVED_14 = 14 , MAV_FRAME_RESERVED_15 = 15 , MAV_FRAME_RESERVED_16 = 16 , MAV_FRAME_RESERVED_17 = 17 , MAV_FRAME_RESERVED_18 = 18 , MAV_FRAME_RESERVED_19 = 19 , MAV_FRAME_LOCAL_FRD = 20 , MAV_FRAME_LOCAL_FLU = 21 , } impl MavFrame { pub const DEFAULT : Self = Self :: MAV_FRAME_GLOBAL ; } impl Default for MavFrame { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavGeneratorStatusFlag : u64 { const MAV_GENERATOR_STATUS_FLAG_OFF = 1 ; const MAV_GENERATOR_STATUS_FLAG_READY = 2 ; const MAV_GENERATOR_STATUS_FLAG_GENERATING = 4 ; const MAV_GENERATOR_STATUS_FLAG_CHARGING = 8 ; const MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER = 16 ; const MAV_GENERATOR_STATUS_FLAG_MAXPOWER = 32 ; const MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING = 64 ; const MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT = 128 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING = 256 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT = 512 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT = 1024 ; const MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT = 2048 ; const MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING = 4096 ; const MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING = 8192 ; const MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT = 16384 ; const MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT = 32768 ; const MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT = 65536 ; const MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT = 131072 ; const MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT = 262144 ; const MAV_GENERATOR_STATUS_FLAG_START_INHIBITED = 524288 ; const MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED = 1048576 ; const MAV_GENERATOR_STATUS_FLAG_WARMING_UP = 2097152 ; const MAV_GENERATOR_STATUS_FLAG_IDLE = 4194304 ; } } impl MavGeneratorStatusFlag { pub const DEFAULT : Self = Self :: MAV_GENERATOR_STATUS_FLAG_OFF ; } impl Default for MavGeneratorStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproProtuneWhiteBalance { GOPRO_PROTUNE_WHITE_BALANCE_AUTO = 0 , GOPRO_PROTUNE_WHITE_BALANCE_3000K = 1 , GOPRO_PROTUNE_WHITE_BALANCE_5500K = 2 , GOPRO_PROTUNE_WHITE_BALANCE_6500K = 3 , GOPRO_PROTUNE_WHITE_BALANCE_RAW = 4 , } impl GoproProtuneWhiteBalance { pub const DEFAULT : Self = Self :: GOPRO_PROTUNE_WHITE_BALANCE_AUTO ; } impl Default for GoproProtuneWhiteBalance { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDoRepositionFlags { MAV_DO_REPOSITION_FLAGS_CHANGE_MODE = 1 , } impl MavDoRepositionFlags { pub const DEFAULT : Self = Self :: MAV_DO_REPOSITION_FLAGS_CHANGE_MODE ; } impl Default for MavDoRepositionFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidSpeedAcc { MAV_ODID_SPEED_ACC_UNKNOWN = 0 , MAV_ODID_SPEED_ACC_10_METERS_PER_SECOND = 1 , MAV_ODID_SPEED_ACC_3_METERS_PER_SECOND = 2 , MAV_ODID_SPEED_ACC_1_METERS_PER_SECOND = 3 , MAV_ODID_SPEED_ACC_0_3_METERS_PER_SECOND = 4 , } impl MavOdidSpeedAcc { pub const DEFAULT : Self = Self :: MAV_ODID_SPEED_ACC_UNKNOWN ; } impl Default for MavOdidSpeedAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PreflightStorageMissionAction { MISSION_READ_PERSISTENT = 0 , MISSION_WRITE_PERSISTENT = 1 , MISSION_RESET_DEFAULT = 2 , } impl PreflightStorageMissionAction { pub const DEFAULT : Self = Self :: MISSION_READ_PERSISTENT ; } impl Default for PreflightStorageMissionAction { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GoproHeartbeatFlags : u8 { const GOPRO_FLAG_RECORDING = 1 ; } } impl GoproHeartbeatFlags { pub const DEFAULT : Self = Self :: GOPRO_FLAG_RECORDING ; } impl Default for GoproHeartbeatFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ParamAck { PARAM_ACK_ACCEPTED = 0 , PARAM_ACK_VALUE_UNSUPPORTED = 1 , PARAM_ACK_FAILED = 2 , PARAM_ACK_IN_PROGRESS = 3 , } impl ParamAck { pub const DEFAULT : Self = Self :: PARAM_ACK_ACCEPTED ; } impl Default for ParamAck { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GimbalAxis { GIMBAL_AXIS_YAW = 0 , GIMBAL_AXIS_PITCH = 1 , GIMBAL_AXIS_ROLL = 2 , } impl GimbalAxis { pub const DEFAULT : Self = Self :: GIMBAL_AXIS_YAW ; } impl Default for GimbalAxis { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AdsbFlags : u16 { const ADSB_FLAGS_VALID_COORDS = 1 ; const ADSB_FLAGS_VALID_ALTITUDE = 2 ; const ADSB_FLAGS_VALID_HEADING = 4 ; const ADSB_FLAGS_VALID_VELOCITY = 8 ; const ADSB_FLAGS_VALID_CALLSIGN = 16 ; const ADSB_FLAGS_VALID_SQUAWK = 32 ; const ADSB_FLAGS_SIMULATED = 64 ; const ADSB_FLAGS_VERTICAL_VELOCITY_VALID = 128 ; const ADSB_FLAGS_BARO_VALID = 256 ; const ADSB_FLAGS_SOURCE_UAT = 32768 ; } } impl AdsbFlags { pub const DEFAULT : Self = Self :: ADSB_FLAGS_VALID_COORDS ; } impl Default for AdsbFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbEmergencyStatus { UAVIONIX_ADSB_OUT_NO_EMERGENCY = 0 , UAVIONIX_ADSB_OUT_GENERAL_EMERGENCY = 1 , UAVIONIX_ADSB_OUT_LIFEGUARD_EMERGENCY = 2 , UAVIONIX_ADSB_OUT_MINIMUM_FUEL_EMERGENCY = 3 , UAVIONIX_ADSB_OUT_NO_COMM_EMERGENCY = 4 , UAVIONIX_ADSB_OUT_UNLAWFUL_INTERFERANCE_EMERGENCY = 5 , UAVIONIX_ADSB_OUT_DOWNED_AIRCRAFT_EMERGENCY = 6 , UAVIONIX_ADSB_OUT_RESERVED = 7 , } impl UavionixAdsbEmergencyStatus { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_NO_EMERGENCY ; } impl Default for UavionixAdsbEmergencyStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum TrackerMode { TRACKER_MODE_MANUAL = 0 , TRACKER_MODE_STOP = 1 , TRACKER_MODE_SCAN = 2 , TRACKER_MODE_SERVO_TEST = 3 , TRACKER_MODE_AUTO = 10 , TRACKER_MODE_INITIALIZING = 16 , } impl TrackerMode { pub const DEFAULT : Self = Self :: TRACKER_MODE_MANUAL ; } impl Default for TrackerMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RtkBaselineCoordinateSystem { RTK_BASELINE_COORDINATE_SYSTEM_ECEF = 0 , RTK_BASELINE_COORDINATE_SYSTEM_NED = 1 , } impl RtkBaselineCoordinateSystem { pub const DEFAULT : Self = Self :: RTK_BASELINE_COORDINATE_SYSTEM_ECEF ; } impl Default for RtkBaselineCoordinateSystem { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VideoStreamType { VIDEO_STREAM_TYPE_RTSP = 0 , VIDEO_STREAM_TYPE_RTPUDP = 1 , VIDEO_STREAM_TYPE_TCP_MPEG = 2 , VIDEO_STREAM_TYPE_MPEG_TS_H264 = 3 , } impl VideoStreamType { pub const DEFAULT : Self = Self :: VIDEO_STREAM_TYPE_RTSP ; } impl Default for VideoStreamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproPhotoResolution { GOPRO_PHOTO_RESOLUTION_5MP_MEDIUM = 0 , GOPRO_PHOTO_RESOLUTION_7MP_MEDIUM = 1 , GOPRO_PHOTO_RESOLUTION_7MP_WIDE = 2 , GOPRO_PHOTO_RESOLUTION_10MP_WIDE = 3 , GOPRO_PHOTO_RESOLUTION_12MP_WIDE = 4 , } impl GoproPhotoResolution { pub const DEFAULT : Self = Self :: GOPRO_PHOTO_RESOLUTION_5MP_MEDIUM ; } impl Default for GoproPhotoResolution { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PidTuningAxis { PID_TUNING_ROLL = 1 , PID_TUNING_PITCH = 2 , PID_TUNING_YAW = 3 , PID_TUNING_ACCZ = 4 , PID_TUNING_STEER = 5 , PID_TUNING_LANDING = 6 , } impl PidTuningAxis { pub const DEFAULT : Self = Self :: PID_TUNING_ROLL ; } impl Default for PidTuningAxis { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMountMode { MAV_MOUNT_MODE_RETRACT = 0 , MAV_MOUNT_MODE_NEUTRAL = 1 , MAV_MOUNT_MODE_MAVLINK_TARGETING = 2 , MAV_MOUNT_MODE_RC_TARGETING = 3 , MAV_MOUNT_MODE_GPS_POINT = 4 , MAV_MOUNT_MODE_SYSID_TARGET = 5 , MAV_MOUNT_MODE_HOME_LOCATION = 6 , } impl MavMountMode { pub const DEFAULT : Self = Self :: MAV_MOUNT_MODE_RETRACT ; } impl Default for MavMountMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidUaType { MAV_ODID_UA_TYPE_NONE = 0 , MAV_ODID_UA_TYPE_AEROPLANE = 1 , MAV_ODID_UA_TYPE_HELICOPTER_OR_MULTIROTOR = 2 , MAV_ODID_UA_TYPE_GYROPLANE = 3 , MAV_ODID_UA_TYPE_HYBRID_LIFT = 4 , MAV_ODID_UA_TYPE_ORNITHOPTER = 5 , MAV_ODID_UA_TYPE_GLIDER = 6 , MAV_ODID_UA_TYPE_KITE = 7 , MAV_ODID_UA_TYPE_FREE_BALLOON = 8 , MAV_ODID_UA_TYPE_CAPTIVE_BALLOON = 9 , MAV_ODID_UA_TYPE_AIRSHIP = 10 , MAV_ODID_UA_TYPE_FREE_FALL_PARACHUTE = 11 , MAV_ODID_UA_TYPE_ROCKET = 12 , MAV_ODID_UA_TYPE_TETHERED_POWERED_AIRCRAFT = 13 , MAV_ODID_UA_TYPE_GROUND_OBSTACLE = 14 , MAV_ODID_UA_TYPE_OTHER = 15 , } impl MavOdidUaType { pub const DEFAULT : Self = Self :: MAV_ODID_UA_TYPE_NONE ; } impl Default for MavOdidUaType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavTunnelPayloadType { MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN = 0 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED0 = 200 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED1 = 201 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED2 = 202 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED3 = 203 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED4 = 204 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED5 = 205 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED6 = 206 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED7 = 207 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED8 = 208 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED9 = 209 , } impl MavTunnelPayloadType { pub const DEFAULT : Self = Self :: MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN ; } impl Default for MavTunnelPayloadType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HilSensorUpdatedFlags : u32 { const HIL_SENSOR_UPDATED_NONE = 0 ; const HIL_SENSOR_UPDATED_XACC = 1 ; const HIL_SENSOR_UPDATED_YACC = 2 ; const HIL_SENSOR_UPDATED_ZACC = 4 ; const HIL_SENSOR_UPDATED_XGYRO = 8 ; const HIL_SENSOR_UPDATED_YGYRO = 16 ; const HIL_SENSOR_UPDATED_ZGYRO = 32 ; const HIL_SENSOR_UPDATED_XMAG = 64 ; const HIL_SENSOR_UPDATED_YMAG = 128 ; const HIL_SENSOR_UPDATED_ZMAG = 256 ; const HIL_SENSOR_UPDATED_ABS_PRESSURE = 512 ; const HIL_SENSOR_UPDATED_DIFF_PRESSURE = 1024 ; const HIL_SENSOR_UPDATED_PRESSURE_ALT = 2048 ; const HIL_SENSOR_UPDATED_TEMPERATURE = 4096 ; const HIL_SENSOR_UPDATED_RESET = 2147483648 ; } } impl HilSensorUpdatedFlags { pub const DEFAULT : Self = Self :: HIL_SENSOR_UPDATED_NONE ; } impl Default for HilSensorUpdatedFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproProtuneExposure { GOPRO_PROTUNE_EXPOSURE_NEG_5_0 = 0 , GOPRO_PROTUNE_EXPOSURE_NEG_4_5 = 1 , GOPRO_PROTUNE_EXPOSURE_NEG_4_0 = 2 , GOPRO_PROTUNE_EXPOSURE_NEG_3_5 = 3 , GOPRO_PROTUNE_EXPOSURE_NEG_3_0 = 4 , GOPRO_PROTUNE_EXPOSURE_NEG_2_5 = 5 , GOPRO_PROTUNE_EXPOSURE_NEG_2_0 = 6 , GOPRO_PROTUNE_EXPOSURE_NEG_1_5 = 7 , GOPRO_PROTUNE_EXPOSURE_NEG_1_0 = 8 , GOPRO_PROTUNE_EXPOSURE_NEG_0_5 = 9 , GOPRO_PROTUNE_EXPOSURE_ZERO = 10 , GOPRO_PROTUNE_EXPOSURE_POS_0_5 = 11 , GOPRO_PROTUNE_EXPOSURE_POS_1_0 = 12 , GOPRO_PROTUNE_EXPOSURE_POS_1_5 = 13 , GOPRO_PROTUNE_EXPOSURE_POS_2_0 = 14 , GOPRO_PROTUNE_EXPOSURE_POS_2_5 = 15 , GOPRO_PROTUNE_EXPOSURE_POS_3_0 = 16 , GOPRO_PROTUNE_EXPOSURE_POS_3_5 = 17 , GOPRO_PROTUNE_EXPOSURE_POS_4_0 = 18 , GOPRO_PROTUNE_EXPOSURE_POS_4_5 = 19 , GOPRO_PROTUNE_EXPOSURE_POS_5_0 = 20 , } impl GoproProtuneExposure { pub const DEFAULT : Self = Self :: GOPRO_PROTUNE_EXPOSURE_NEG_5_0 ; } impl Default for GoproProtuneExposure { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMissionType { MAV_MISSION_TYPE_MISSION = 0 , MAV_MISSION_TYPE_FENCE = 1 , MAV_MISSION_TYPE_RALLY = 2 , MAV_MISSION_TYPE_ALL = 255 , } impl MavMissionType { pub const DEFAULT : Self = Self :: MAV_MISSION_TYPE_MISSION ; } impl Default for MavMissionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceBreach { FENCE_BREACH_NONE = 0 , FENCE_BREACH_MINALT = 1 , FENCE_BREACH_MAXALT = 2 , FENCE_BREACH_BOUNDARY = 3 , } impl FenceBreach { pub const DEFAULT : Self = Self :: FENCE_BREACH_NONE ; } impl Default for FenceBreach { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavVtolState { MAV_VTOL_STATE_UNDEFINED = 0 , MAV_VTOL_STATE_TRANSITION_TO_FW = 1 , MAV_VTOL_STATE_TRANSITION_TO_MC = 2 , MAV_VTOL_STATE_MC = 3 , MAV_VTOL_STATE_FW = 4 , } impl MavVtolState { pub const DEFAULT : Self = Self :: MAV_VTOL_STATE_UNDEFINED ; } impl Default for MavVtolState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MotorTestOrder { MOTOR_TEST_ORDER_DEFAULT = 0 , MOTOR_TEST_ORDER_SEQUENCE = 1 , MOTOR_TEST_ORDER_BOARD = 2 , } impl MotorTestOrder { pub const DEFAULT : Self = Self :: MOTOR_TEST_ORDER_DEFAULT ; } impl Default for MotorTestOrder { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraStatusTypes { CAMERA_STATUS_TYPE_HEARTBEAT = 0 , CAMERA_STATUS_TYPE_TRIGGER = 1 , CAMERA_STATUS_TYPE_DISCONNECT = 2 , CAMERA_STATUS_TYPE_ERROR = 3 , CAMERA_STATUS_TYPE_LOWBATT = 4 , CAMERA_STATUS_TYPE_LOWSTORE = 5 , CAMERA_STATUS_TYPE_LOWSTOREV = 6 , } impl CameraStatusTypes { pub const DEFAULT : Self = Self :: CAMERA_STATUS_TYPE_HEARTBEAT ; } impl Default for CameraStatusTypes { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum OrbitYawBehaviour { ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER = 0 , ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING = 1 , ORBIT_YAW_BEHAVIOUR_UNCONTROLLED = 2 , ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE = 3 , ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED = 4 , } impl OrbitYawBehaviour { pub const DEFAULT : Self = Self :: ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER ; } impl Default for OrbitYawBehaviour { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AdsbAltitudeType { ADSB_ALTITUDE_TYPE_PRESSURE_QNH = 0 , ADSB_ALTITUDE_TYPE_GEOMETRIC = 1 , } impl AdsbAltitudeType { pub const DEFAULT : Self = Self :: ADSB_ALTITUDE_TYPE_PRESSURE_QNH ; } impl Default for AdsbAltitudeType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavWinchStatusFlag : u32 { const MAV_WINCH_STATUS_HEALTHY = 1 ; const MAV_WINCH_STATUS_FULLY_RETRACTED = 2 ; const MAV_WINCH_STATUS_MOVING = 4 ; const MAV_WINCH_STATUS_CLUTCH_ENGAGED = 8 ; const MAV_WINCH_STATUS_LOCKED = 16 ; const MAV_WINCH_STATUS_DROPPING = 32 ; const MAV_WINCH_STATUS_ARRESTING = 64 ; const MAV_WINCH_STATUS_GROUND_SENSE = 128 ; const MAV_WINCH_STATUS_RETRACTING = 256 ; const MAV_WINCH_STATUS_REDELIVER = 512 ; const MAV_WINCH_STATUS_ABANDON_LINE = 1024 ; const MAV_WINCH_STATUS_LOCKING = 2048 ; const MAV_WINCH_STATUS_LOAD_LINE = 4096 ; const MAV_WINCH_STATUS_LOAD_PAYLOAD = 8192 ; } } impl MavWinchStatusFlag { pub const DEFAULT : Self = Self :: MAV_WINCH_STATUS_HEALTHY ; } impl Default for MavWinchStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavParamType { MAV_PARAM_TYPE_UINT8 = 1 , MAV_PARAM_TYPE_INT8 = 2 , MAV_PARAM_TYPE_UINT16 = 3 , MAV_PARAM_TYPE_INT16 = 4 , MAV_PARAM_TYPE_UINT32 = 5 , MAV_PARAM_TYPE_INT32 = 6 , MAV_PARAM_TYPE_UINT64 = 7 , MAV_PARAM_TYPE_INT64 = 8 , MAV_PARAM_TYPE_REAL32 = 9 , MAV_PARAM_TYPE_REAL64 = 10 , } impl MavParamType { pub const DEFAULT : Self = Self :: MAV_PARAM_TYPE_UINT8 ; } impl Default for MavParamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryFunction { MAV_BATTERY_FUNCTION_UNKNOWN = 0 , MAV_BATTERY_FUNCTION_ALL = 1 , MAV_BATTERY_FUNCTION_PROPULSION = 2 , MAV_BATTERY_FUNCTION_AVIONICS = 3 , MAV_BATTERY_FUNCTION_PAYLOAD = 4 , } impl MavBatteryFunction { pub const DEFAULT : Self = Self :: MAV_BATTERY_FUNCTION_UNKNOWN ; } impl Default for MavBatteryFunction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum LimitsState { LIMITS_INIT = 0 , LIMITS_DISABLED = 1 , LIMITS_ENABLED = 2 , LIMITS_TRIGGERED = 3 , LIMITS_RECOVERING = 4 , LIMITS_RECOVERED = 5 , } impl LimitsState { pub const DEFAULT : Self = Self :: LIMITS_INIT ; } impl Default for LimitsState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavComponent { MAV_COMP_ID_ALL = 0 , MAV_COMP_ID_AUTOPILOT1 = 1 , MAV_COMP_ID_USER1 = 25 , MAV_COMP_ID_USER2 = 26 , MAV_COMP_ID_USER3 = 27 , MAV_COMP_ID_USER4 = 28 , MAV_COMP_ID_USER5 = 29 , MAV_COMP_ID_USER6 = 30 , MAV_COMP_ID_USER7 = 31 , MAV_COMP_ID_USER8 = 32 , MAV_COMP_ID_USER9 = 33 , MAV_COMP_ID_USER10 = 34 , MAV_COMP_ID_USER11 = 35 , MAV_COMP_ID_USER12 = 36 , MAV_COMP_ID_USER13 = 37 , MAV_COMP_ID_USER14 = 38 , MAV_COMP_ID_USER15 = 39 , MAV_COMP_ID_USER16 = 40 , MAV_COMP_ID_USER17 = 41 , MAV_COMP_ID_USER18 = 42 , MAV_COMP_ID_USER19 = 43 , MAV_COMP_ID_USER20 = 44 , MAV_COMP_ID_USER21 = 45 , MAV_COMP_ID_USER22 = 46 , MAV_COMP_ID_USER23 = 47 , MAV_COMP_ID_USER24 = 48 , MAV_COMP_ID_USER25 = 49 , MAV_COMP_ID_USER26 = 50 , MAV_COMP_ID_USER27 = 51 , MAV_COMP_ID_USER28 = 52 , MAV_COMP_ID_USER29 = 53 , MAV_COMP_ID_USER30 = 54 , MAV_COMP_ID_USER31 = 55 , MAV_COMP_ID_USER32 = 56 , MAV_COMP_ID_USER33 = 57 , MAV_COMP_ID_USER34 = 58 , MAV_COMP_ID_USER35 = 59 , MAV_COMP_ID_USER36 = 60 , MAV_COMP_ID_USER37 = 61 , MAV_COMP_ID_USER38 = 62 , MAV_COMP_ID_USER39 = 63 , MAV_COMP_ID_USER40 = 64 , MAV_COMP_ID_USER41 = 65 , MAV_COMP_ID_USER42 = 66 , MAV_COMP_ID_USER43 = 67 , MAV_COMP_ID_TELEMETRY_RADIO = 68 , MAV_COMP_ID_USER45 = 69 , MAV_COMP_ID_USER46 = 70 , MAV_COMP_ID_USER47 = 71 , MAV_COMP_ID_USER48 = 72 , MAV_COMP_ID_USER49 = 73 , MAV_COMP_ID_USER50 = 74 , MAV_COMP_ID_USER51 = 75 , MAV_COMP_ID_USER52 = 76 , MAV_COMP_ID_USER53 = 77 , MAV_COMP_ID_USER54 = 78 , MAV_COMP_ID_USER55 = 79 , MAV_COMP_ID_USER56 = 80 , MAV_COMP_ID_USER57 = 81 , MAV_COMP_ID_USER58 = 82 , MAV_COMP_ID_USER59 = 83 , MAV_COMP_ID_USER60 = 84 , MAV_COMP_ID_USER61 = 85 , MAV_COMP_ID_USER62 = 86 , MAV_COMP_ID_USER63 = 87 , MAV_COMP_ID_USER64 = 88 , MAV_COMP_ID_USER65 = 89 , MAV_COMP_ID_USER66 = 90 , MAV_COMP_ID_USER67 = 91 , MAV_COMP_ID_USER68 = 92 , MAV_COMP_ID_USER69 = 93 , MAV_COMP_ID_USER70 = 94 , MAV_COMP_ID_USER71 = 95 , MAV_COMP_ID_USER72 = 96 , MAV_COMP_ID_USER73 = 97 , MAV_COMP_ID_USER74 = 98 , MAV_COMP_ID_USER75 = 99 , MAV_COMP_ID_CAMERA = 100 , MAV_COMP_ID_CAMERA2 = 101 , MAV_COMP_ID_CAMERA3 = 102 , MAV_COMP_ID_CAMERA4 = 103 , MAV_COMP_ID_CAMERA5 = 104 , MAV_COMP_ID_CAMERA6 = 105 , MAV_COMP_ID_SERVO1 = 140 , MAV_COMP_ID_SERVO2 = 141 , MAV_COMP_ID_SERVO3 = 142 , MAV_COMP_ID_SERVO4 = 143 , MAV_COMP_ID_SERVO5 = 144 , MAV_COMP_ID_SERVO6 = 145 , MAV_COMP_ID_SERVO7 = 146 , MAV_COMP_ID_SERVO8 = 147 , MAV_COMP_ID_SERVO9 = 148 , MAV_COMP_ID_SERVO10 = 149 , MAV_COMP_ID_SERVO11 = 150 , MAV_COMP_ID_SERVO12 = 151 , MAV_COMP_ID_SERVO13 = 152 , MAV_COMP_ID_SERVO14 = 153 , MAV_COMP_ID_GIMBAL = 154 , MAV_COMP_ID_LOG = 155 , MAV_COMP_ID_ADSB = 156 , MAV_COMP_ID_OSD = 157 , MAV_COMP_ID_PERIPHERAL = 158 , MAV_COMP_ID_QX1_GIMBAL = 159 , MAV_COMP_ID_FLARM = 160 , MAV_COMP_ID_PARACHUTE = 161 , MAV_COMP_ID_WINCH = 169 , MAV_COMP_ID_GIMBAL2 = 171 , MAV_COMP_ID_GIMBAL3 = 172 , MAV_COMP_ID_GIMBAL4 = 173 , MAV_COMP_ID_GIMBAL5 = 174 , MAV_COMP_ID_GIMBAL6 = 175 , MAV_COMP_ID_BATTERY = 180 , MAV_COMP_ID_BATTERY2 = 181 , MAV_COMP_ID_MAVCAN = 189 , MAV_COMP_ID_MISSIONPLANNER = 190 , MAV_COMP_ID_ONBOARD_COMPUTER = 191 , MAV_COMP_ID_ONBOARD_COMPUTER2 = 192 , MAV_COMP_ID_ONBOARD_COMPUTER3 = 193 , MAV_COMP_ID_ONBOARD_COMPUTER4 = 194 , MAV_COMP_ID_PATHPLANNER = 195 , MAV_COMP_ID_OBSTACLE_AVOIDANCE = 196 , MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY = 197 , MAV_COMP_ID_PAIRING_MANAGER = 198 , MAV_COMP_ID_IMU = 200 , MAV_COMP_ID_IMU_2 = 201 , MAV_COMP_ID_IMU_3 = 202 , MAV_COMP_ID_GPS = 220 , MAV_COMP_ID_GPS2 = 221 , MAV_COMP_ID_ODID_TXRX_1 = 236 , MAV_COMP_ID_ODID_TXRX_2 = 237 , MAV_COMP_ID_ODID_TXRX_3 = 238 , MAV_COMP_ID_UDP_BRIDGE = 240 , MAV_COMP_ID_UART_BRIDGE = 241 , MAV_COMP_ID_TUNNEL_NODE = 242 , MAV_COMP_ID_SYSTEM_CONTROL = 250 , } impl MavComponent { pub const DEFAULT : Self = Self :: MAV_COMP_ID_ALL ; } impl Default for MavComponent { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ActuatorOutputFunction { ACTUATOR_OUTPUT_FUNCTION_NONE = 0 , ACTUATOR_OUTPUT_FUNCTION_MOTOR1 = 1 , ACTUATOR_OUTPUT_FUNCTION_MOTOR2 = 2 , ACTUATOR_OUTPUT_FUNCTION_MOTOR3 = 3 , ACTUATOR_OUTPUT_FUNCTION_MOTOR4 = 4 , ACTUATOR_OUTPUT_FUNCTION_MOTOR5 = 5 , ACTUATOR_OUTPUT_FUNCTION_MOTOR6 = 6 , ACTUATOR_OUTPUT_FUNCTION_MOTOR7 = 7 , ACTUATOR_OUTPUT_FUNCTION_MOTOR8 = 8 , ACTUATOR_OUTPUT_FUNCTION_MOTOR9 = 9 , ACTUATOR_OUTPUT_FUNCTION_MOTOR10 = 10 , ACTUATOR_OUTPUT_FUNCTION_MOTOR11 = 11 , ACTUATOR_OUTPUT_FUNCTION_MOTOR12 = 12 , ACTUATOR_OUTPUT_FUNCTION_MOTOR13 = 13 , ACTUATOR_OUTPUT_FUNCTION_MOTOR14 = 14 , ACTUATOR_OUTPUT_FUNCTION_MOTOR15 = 15 , ACTUATOR_OUTPUT_FUNCTION_MOTOR16 = 16 , ACTUATOR_OUTPUT_FUNCTION_SERVO1 = 33 , ACTUATOR_OUTPUT_FUNCTION_SERVO2 = 34 , ACTUATOR_OUTPUT_FUNCTION_SERVO3 = 35 , ACTUATOR_OUTPUT_FUNCTION_SERVO4 = 36 , ACTUATOR_OUTPUT_FUNCTION_SERVO5 = 37 , ACTUATOR_OUTPUT_FUNCTION_SERVO6 = 38 , ACTUATOR_OUTPUT_FUNCTION_SERVO7 = 39 , ACTUATOR_OUTPUT_FUNCTION_SERVO8 = 40 , ACTUATOR_OUTPUT_FUNCTION_SERVO9 = 41 , ACTUATOR_OUTPUT_FUNCTION_SERVO10 = 42 , ACTUATOR_OUTPUT_FUNCTION_SERVO11 = 43 , ACTUATOR_OUTPUT_FUNCTION_SERVO12 = 44 , ACTUATOR_OUTPUT_FUNCTION_SERVO13 = 45 , ACTUATOR_OUTPUT_FUNCTION_SERVO14 = 46 , ACTUATOR_OUTPUT_FUNCTION_SERVO15 = 47 , ACTUATOR_OUTPUT_FUNCTION_SERVO16 = 48 , } impl ActuatorOutputFunction { pub const DEFAULT : Self = Self :: ACTUATOR_OUTPUT_FUNCTION_NONE ; } impl Default for ActuatorOutputFunction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSysStatusSensorExtended { MAV_SYS_STATUS_RECOVERY_SYSTEM = 1 , } impl MavSysStatusSensorExtended { pub const DEFAULT : Self = Self :: MAV_SYS_STATUS_RECOVERY_SYSTEM ; } impl Default for MavSysStatusSensorExtended { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingTargetData { CAMERA_TRACKING_TARGET_DATA_NONE = 0 , CAMERA_TRACKING_TARGET_DATA_EMBEDDED = 1 , CAMERA_TRACKING_TARGET_DATA_RENDERED = 2 , CAMERA_TRACKING_TARGET_DATA_IN_STATUS = 4 , } impl CameraTrackingTargetData { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_TARGET_DATA_NONE ; } impl Default for CameraTrackingTargetData { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDistanceSensor { MAV_DISTANCE_SENSOR_LASER = 0 , MAV_DISTANCE_SENSOR_ULTRASOUND = 1 , MAV_DISTANCE_SENSOR_INFRARED = 2 , MAV_DISTANCE_SENSOR_RADAR = 3 , MAV_DISTANCE_SENSOR_UNKNOWN = 4 , } impl MavDistanceSensor { pub const DEFAULT : Self = Self :: MAV_DISTANCE_SENSOR_LASER ; } impl Default for MavDistanceSensor { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmdDoAuxFunctionSwitchLevel { MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_LOW = 0 , MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_MIDDLE = 1 , MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_HIGH = 2 , } impl MavCmdDoAuxFunctionSwitchLevel { pub const DEFAULT : Self = Self :: MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_LOW ; } impl Default for MavCmdDoAuxFunctionSwitchLevel { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PlaneMode { PLANE_MODE_MANUAL = 0 , PLANE_MODE_CIRCLE = 1 , PLANE_MODE_STABILIZE = 2 , PLANE_MODE_TRAINING = 3 , PLANE_MODE_ACRO = 4 , PLANE_MODE_FLY_BY_WIRE_A = 5 , PLANE_MODE_FLY_BY_WIRE_B = 6 , PLANE_MODE_CRUISE = 7 , PLANE_MODE_AUTOTUNE = 8 , PLANE_MODE_AUTO = 10 , PLANE_MODE_RTL = 11 , PLANE_MODE_LOITER = 12 , PLANE_MODE_TAKEOFF = 13 , PLANE_MODE_AVOID_ADSB = 14 , PLANE_MODE_GUIDED = 15 , PLANE_MODE_INITIALIZING = 16 , PLANE_MODE_QSTABILIZE = 17 , PLANE_MODE_QHOVER = 18 , PLANE_MODE_QLOITER = 19 , PLANE_MODE_QLAND = 20 , PLANE_MODE_QRTL = 21 , PLANE_MODE_QAUTOTUNE = 22 , PLANE_MODE_QACRO = 23 , PLANE_MODE_THERMAL = 24 , } impl PlaneMode { pub const DEFAULT : Self = Self :: PLANE_MODE_MANUAL ; } impl Default for PlaneMode { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UavionixAdsbRfHealth : u8 { const UAVIONIX_ADSB_RF_HEALTH_INITIALIZING = 0 ; const UAVIONIX_ADSB_RF_HEALTH_OK = 1 ; const UAVIONIX_ADSB_RF_HEALTH_FAIL_TX = 2 ; const UAVIONIX_ADSB_RF_HEALTH_FAIL_RX = 16 ; } } impl UavionixAdsbRfHealth { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_RF_HEALTH_INITIALIZING ; } impl Default for UavionixAdsbRfHealth { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum OsdParamConfigType { OSD_PARAM_NONE = 0 , OSD_PARAM_SERIAL_PROTOCOL = 1 , OSD_PARAM_SERVO_FUNCTION = 2 , OSD_PARAM_AUX_FUNCTION = 3 , OSD_PARAM_FLIGHT_MODE = 4 , OSD_PARAM_FAILSAFE_ACTION = 5 , OSD_PARAM_FAILSAFE_ACTION_1 = 6 , OSD_PARAM_FAILSAFE_ACTION_2 = 7 , OSD_PARAM_NUM_TYPES = 8 , } impl OsdParamConfigType { pub const DEFAULT : Self = Self :: OSD_PARAM_NONE ; } impl Default for OsdParamConfigType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingMode { CAMERA_TRACKING_MODE_NONE = 0 , CAMERA_TRACKING_MODE_POINT = 1 , CAMERA_TRACKING_MODE_RECTANGLE = 2 , } impl CameraTrackingMode { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_MODE_NONE ; } impl Default for CameraTrackingMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum DeepstallStage { DEEPSTALL_STAGE_FLY_TO_LANDING = 0 , DEEPSTALL_STAGE_ESTIMATE_WIND = 1 , DEEPSTALL_STAGE_WAIT_FOR_BREAKOUT = 2 , DEEPSTALL_STAGE_FLY_TO_ARC = 3 , DEEPSTALL_STAGE_ARC = 4 , DEEPSTALL_STAGE_APPROACH = 5 , DEEPSTALL_STAGE_LAND = 6 , } impl DeepstallStage { pub const DEFAULT : Self = Self :: DEEPSTALL_STAGE_FLY_TO_LANDING ; } impl Default for DeepstallStage { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EscFailureFlags : u16 { const ESC_FAILURE_NONE = 0 ; const ESC_FAILURE_OVER_CURRENT = 1 ; const ESC_FAILURE_OVER_VOLTAGE = 2 ; const ESC_FAILURE_OVER_TEMPERATURE = 4 ; const ESC_FAILURE_OVER_RPM = 8 ; const ESC_FAILURE_INCONSISTENT_CMD = 16 ; const ESC_FAILURE_MOTOR_STUCK = 32 ; const ESC_FAILURE_GENERIC = 64 ; } } impl EscFailureFlags { pub const DEFAULT : Self = Self :: ESC_FAILURE_NONE ; } impl Default for EscFailureFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UtmFlightState { UTM_FLIGHT_STATE_UNKNOWN = 1 , UTM_FLIGHT_STATE_GROUND = 2 , UTM_FLIGHT_STATE_AIRBORNE = 3 , UTM_FLIGHT_STATE_EMERGENCY = 16 , UTM_FLIGHT_STATE_NOCTRL = 32 , } impl UtmFlightState { pub const DEFAULT : Self = Self :: UTM_FLIGHT_STATE_UNKNOWN ; } impl Default for UtmFlightState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidClassEu { MAV_ODID_CLASS_EU_UNDECLARED = 0 , MAV_ODID_CLASS_EU_CLASS_0 = 1 , MAV_ODID_CLASS_EU_CLASS_1 = 2 , MAV_ODID_CLASS_EU_CLASS_2 = 3 , MAV_ODID_CLASS_EU_CLASS_3 = 4 , MAV_ODID_CLASS_EU_CLASS_4 = 5 , MAV_ODID_CLASS_EU_CLASS_5 = 6 , MAV_ODID_CLASS_EU_CLASS_6 = 7 , } impl MavOdidClassEu { pub const DEFAULT : Self = Self :: MAV_ODID_CLASS_EU_UNDECLARED ; } impl Default for MavOdidClassEu { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VideoStreamStatusFlags { VIDEO_STREAM_STATUS_FLAGS_RUNNING = 1 , VIDEO_STREAM_STATUS_FLAGS_THERMAL = 2 , } impl VideoStreamStatusFlags { pub const DEFAULT : Self = Self :: VIDEO_STREAM_STATUS_FLAGS_RUNNING ; } impl Default for VideoStreamStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryMode { MAV_BATTERY_MODE_UNKNOWN = 0 , MAV_BATTERY_MODE_AUTO_DISCHARGING = 1 , MAV_BATTERY_MODE_HOT_SWAP = 2 , } impl MavBatteryMode { pub const DEFAULT : Self = Self :: MAV_BATTERY_MODE_UNKNOWN ; } impl Default for MavBatteryMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingStatusFlags { CAMERA_TRACKING_STATUS_FLAGS_IDLE = 0 , CAMERA_TRACKING_STATUS_FLAGS_ACTIVE = 1 , CAMERA_TRACKING_STATUS_FLAGS_ERROR = 2 , } impl CameraTrackingStatusFlags { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_STATUS_FLAGS_IDLE ; } impl Default for CameraTrackingStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidHeightRef { MAV_ODID_HEIGHT_REF_OVER_TAKEOFF = 0 , MAV_ODID_HEIGHT_REF_OVER_GROUND = 1 , } impl MavOdidHeightRef { pub const DEFAULT : Self = Self :: MAV_ODID_HEIGHT_REF_OVER_TAKEOFF ; } impl Default for MavOdidHeightRef { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSeverity { MAV_SEVERITY_EMERGENCY = 0 , MAV_SEVERITY_ALERT = 1 , MAV_SEVERITY_CRITICAL = 2 , MAV_SEVERITY_ERROR = 3 , MAV_SEVERITY_WARNING = 4 , MAV_SEVERITY_NOTICE = 5 , MAV_SEVERITY_INFO = 6 , MAV_SEVERITY_DEBUG = 7 , } impl MavSeverity { pub const DEFAULT : Self = Self :: MAV_SEVERITY_EMERGENCY ; } impl Default for MavSeverity { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryChargeState { MAV_BATTERY_CHARGE_STATE_UNDEFINED = 0 , MAV_BATTERY_CHARGE_STATE_OK = 1 , MAV_BATTERY_CHARGE_STATE_LOW = 2 , MAV_BATTERY_CHARGE_STATE_CRITICAL = 3 , MAV_BATTERY_CHARGE_STATE_EMERGENCY = 4 , MAV_BATTERY_CHARGE_STATE_FAILED = 5 , MAV_BATTERY_CHARGE_STATE_UNHEALTHY = 6 , MAV_BATTERY_CHARGE_STATE_CHARGING = 7 , } impl MavBatteryChargeState { pub const DEFAULT : Self = Self :: MAV_BATTERY_CHARGE_STATE_UNDEFINED ; } impl Default for MavBatteryChargeState { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GpsInputIgnoreFlags : u16 { const GPS_INPUT_IGNORE_FLAG_ALT = 1 ; const GPS_INPUT_IGNORE_FLAG_HDOP = 2 ; const GPS_INPUT_IGNORE_FLAG_VDOP = 4 ; const GPS_INPUT_IGNORE_FLAG_VEL_HORIZ = 8 ; const GPS_INPUT_IGNORE_FLAG_VEL_VERT = 16 ; const GPS_INPUT_IGNORE_FLAG_SPEED_ACCURACY = 32 ; const GPS_INPUT_IGNORE_FLAG_HORIZONTAL_ACCURACY = 64 ; const GPS_INPUT_IGNORE_FLAG_VERTICAL_ACCURACY = 128 ; } } impl GpsInputIgnoreFlags { pub const DEFAULT : Self = Self :: GPS_INPUT_IGNORE_FLAG_ALT ; } impl Default for GpsInputIgnoreFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EstimatorStatusFlags : u16 { const ESTIMATOR_ATTITUDE = 1 ; const ESTIMATOR_VELOCITY_HORIZ = 2 ; const ESTIMATOR_VELOCITY_VERT = 4 ; const ESTIMATOR_POS_HORIZ_REL = 8 ; const ESTIMATOR_POS_HORIZ_ABS = 16 ; const ESTIMATOR_POS_VERT_ABS = 32 ; const ESTIMATOR_POS_VERT_AGL = 64 ; const ESTIMATOR_CONST_POS_MODE = 128 ; const ESTIMATOR_PRED_POS_HORIZ_REL = 256 ; const ESTIMATOR_PRED_POS_HORIZ_ABS = 512 ; const ESTIMATOR_GPS_GLITCH = 1024 ; const ESTIMATOR_ACCEL_ERROR = 2048 ; } } impl EstimatorStatusFlags { pub const DEFAULT : Self = Self :: ESTIMATOR_ATTITUDE ; } impl Default for EstimatorStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GripperActions { GRIPPER_ACTION_RELEASE = 0 , GRIPPER_ACTION_GRAB = 1 , } impl GripperActions { pub const DEFAULT : Self = Self :: GRIPPER_ACTION_RELEASE ; } impl Default for GripperActions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavGoto { MAV_GOTO_DO_HOLD = 0 , MAV_GOTO_DO_CONTINUE = 1 , MAV_GOTO_HOLD_AT_CURRENT_POSITION = 2 , MAV_GOTO_HOLD_AT_SPECIFIED_POSITION = 3 , } impl MavGoto { pub const DEFAULT : Self = Self :: MAV_GOTO_DO_HOLD ; } impl Default for MavGoto { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavProtocolCapability : u64 { const MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT = 1 ; const MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT = 2 ; const MAV_PROTOCOL_CAPABILITY_MISSION_INT = 4 ; const MAV_PROTOCOL_CAPABILITY_COMMAND_INT = 8 ; const MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE = 16 ; const MAV_PROTOCOL_CAPABILITY_FTP = 32 ; const MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET = 64 ; const MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED = 128 ; const MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT = 256 ; const MAV_PROTOCOL_CAPABILITY_TERRAIN = 512 ; const MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET = 1024 ; const MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION = 2048 ; const MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION = 4096 ; const MAV_PROTOCOL_CAPABILITY_MAVLINK2 = 8192 ; const MAV_PROTOCOL_CAPABILITY_MISSION_FENCE = 16384 ; const MAV_PROTOCOL_CAPABILITY_MISSION_RALLY = 32768 ; const MAV_PROTOCOL_CAPABILITY_RESERVED2 = 65536 ; const MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST = 131072 ; } } impl MavProtocolCapability { pub const DEFAULT : Self = Self :: MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT ; } impl Default for MavProtocolCapability { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_ARM_STATUS_DATA { pub status : MavOdidArmStatus , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub error : [u8 ; 50] , } impl OPEN_DRONE_ID_ARM_STATUS_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { status : MavOdidArmStatus :: DEFAULT , error : [0_u8 ; 50usize] , } ; } impl Default for OPEN_DRONE_ID_ARM_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_ARM_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 12918u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_ARM_STATUS" ; const EXTRA_CRC : u8 = 139u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidArmStatus" , value : tmp as u32 }) ? ; for v in & mut __struct . error { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . status as u8) ; for val in & self . error { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct STORAGE_INFORMATION_DATA { pub time_boot_ms : u32 , pub total_capacity : f32 , pub used_capacity : f32 , pub available_capacity : f32 , pub read_speed : f32 , pub write_speed : f32 , pub storage_id : u8 , pub storage_count : u8 , pub status : StorageStatus , } impl STORAGE_INFORMATION_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , total_capacity : 0.0_f32 , used_capacity : 0.0_f32 , available_capacity : 0.0_f32 , read_speed : 0.0_f32 , write_speed : 0.0_f32 , storage_id : 0_u8 , storage_count : 0_u8 , status : StorageStatus :: DEFAULT , } ; } impl Default for STORAGE_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for STORAGE_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 261u32 ; const NAME : & 'static str = "STORAGE_INFORMATION" ; const EXTRA_CRC : u8 = 179u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . total_capacity = buf . get_f32_le () ; __struct . used_capacity = buf . get_f32_le () ; __struct . available_capacity = buf . get_f32_le () ; __struct . read_speed = buf . get_f32_le () ; __struct . write_speed = buf . get_f32_le () ; __struct . storage_id = buf . get_u8 () ; __struct . storage_count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "StorageStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . total_capacity) ; __tmp . put_f32_le (self . used_capacity) ; __tmp . put_f32_le (self . available_capacity) ; __tmp . put_f32_le (self . read_speed) ; __tmp . put_f32_le (self . write_speed) ; __tmp . put_u8 (self . storage_id) ; __tmp . put_u8 (self . storage_count) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MEMINFO_DATA { pub brkval : u16 , pub freemem : u16 , } impl MEMINFO_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { brkval : 0_u16 , freemem : 0_u16 , } ; } impl Default for MEMINFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MEMINFO_DATA { type Message = MavMessage ; const ID : u32 = 152u32 ; const NAME : & 'static str = "MEMINFO" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . brkval = buf . get_u16_le () ; __struct . freemem = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . brkval) ; __tmp . put_u16_le (self . freemem) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HEARTBEAT_DATA { pub custom_mode : u32 , pub mavtype : MavType , pub autopilot : MavAutopilot , pub base_mode : MavModeFlag , pub system_status : MavState , pub mavlink_version : u8 , } impl HEARTBEAT_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , mavtype : MavType :: DEFAULT , autopilot : MavAutopilot :: DEFAULT , base_mode : MavModeFlag :: DEFAULT , system_status : MavState :: DEFAULT , mavlink_version : 0_u8 , } ; } impl Default for HEARTBEAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HEARTBEAT_DATA { type Message = MavMessage ; const ID : u32 = 0u32 ; const NAME : & 'static str = "HEARTBEAT" ; const EXTRA_CRC : u8 = 50u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . autopilot = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavAutopilot" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . base_mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . system_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavState" , value : tmp as u32 }) ? ; __struct . mavlink_version = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . autopilot as u8) ; __tmp . put_u8 (self . base_mode . bits ()) ; __tmp . put_u8 (self . system_status as u8) ; __tmp . put_u8 (self . mavlink_version) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MCU_STATUS_DATA { pub MCU_temperature : i16 , pub MCU_voltage : u16 , pub MCU_voltage_min : u16 , pub MCU_voltage_max : u16 , pub id : u8 , } impl MCU_STATUS_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { MCU_temperature : 0_i16 , MCU_voltage : 0_u16 , MCU_voltage_min : 0_u16 , MCU_voltage_max : 0_u16 , id : 0_u8 , } ; } impl Default for MCU_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MCU_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 11039u32 ; const NAME : & 'static str = "MCU_STATUS" ; const EXTRA_CRC : u8 = 142u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . MCU_temperature = buf . get_i16_le () ; __struct . MCU_voltage = buf . get_u16_le () ; __struct . MCU_voltage_min = buf . get_u16_le () ; __struct . MCU_voltage_max = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . MCU_temperature) ; __tmp . put_u16_le (self . MCU_voltage) ; __tmp . put_u16_le (self . MCU_voltage_min) ; __tmp . put_u16_le (self . MCU_voltage_max) ; __tmp . put_u8 (self . id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ALTITUDE_DATA { pub time_usec : u64 , pub altitude_monotonic : f32 , pub altitude_amsl : f32 , pub altitude_local : f32 , pub altitude_relative : f32 , pub altitude_terrain : f32 , pub bottom_clearance : f32 , } impl ALTITUDE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , altitude_monotonic : 0.0_f32 , altitude_amsl : 0.0_f32 , altitude_local : 0.0_f32 , altitude_relative : 0.0_f32 , altitude_terrain : 0.0_f32 , bottom_clearance : 0.0_f32 , } ; } impl Default for ALTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ALTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 141u32 ; const NAME : & 'static str = "ALTITUDE" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . altitude_monotonic = buf . get_f32_le () ; __struct . altitude_amsl = buf . get_f32_le () ; __struct . altitude_local = buf . get_f32_le () ; __struct . altitude_relative = buf . get_f32_le () ; __struct . altitude_terrain = buf . get_f32_le () ; __struct . bottom_clearance = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . altitude_monotonic) ; __tmp . put_f32_le (self . altitude_amsl) ; __tmp . put_f32_le (self . altitude_local) ; __tmp . put_f32_le (self . altitude_relative) ; __tmp . put_f32_le (self . altitude_terrain) ; __tmp . put_f32_le (self . bottom_clearance) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_ACK_DATA { pub command : MavCmd , pub result : MavResult , } impl COMMAND_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { command : MavCmd :: DEFAULT , result : MavResult :: DEFAULT , } ; } impl Default for COMMAND_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_ACK_DATA { type Message = MavMessage ; const ID : u32 = 77u32 ; const NAME : & 'static str = "COMMAND_ACK" ; const EXTRA_CRC : u8 = 143u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavResult" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_DATA { pub time_boot_ms : u32 , pub value : f32 , pub ind : u8 , } impl DEBUG_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0.0_f32 , ind : 0_u8 , } ; } impl Default for DEBUG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_DATA { type Message = MavMessage ; const ID : u32 = 254u32 ; const NAME : & 'static str = "DEBUG" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_f32_le () ; __struct . ind = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . value) ; __tmp . put_u8 (self . ind) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_ACK_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , pub param_result : ParamAck , } impl PARAM_EXT_ACK_DATA { pub const ENCODED_LEN : usize = 146usize ; pub const DEFAULT : Self = Self { param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , param_result : ParamAck :: DEFAULT , } ; } impl Default for PARAM_EXT_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_ACK_DATA { type Message = MavMessage ; const ID : u32 = 324u32 ; const NAME : & 'static str = "PARAM_EXT_ACK" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 146usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . param_result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "ParamAck" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; __tmp . put_u8 (self . param_result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REMOTE_LOG_BLOCK_STATUS_DATA { pub seqno : u32 , pub target_system : u8 , pub target_component : u8 , pub status : MavRemoteLogDataBlockStatuses , } impl REMOTE_LOG_BLOCK_STATUS_DATA { pub const ENCODED_LEN : usize = 7usize ; pub const DEFAULT : Self = Self { seqno : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , status : MavRemoteLogDataBlockStatuses :: DEFAULT , } ; } impl Default for REMOTE_LOG_BLOCK_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REMOTE_LOG_BLOCK_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 185u32 ; const NAME : & 'static str = "REMOTE_LOG_BLOCK_STATUS" ; const EXTRA_CRC : u8 = 186u8 ; const ENCODED_LEN : usize = 7usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seqno = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavRemoteLogDataBlockStatuses" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . seqno) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPTICAL_FLOW_RAD_DATA { pub time_usec : u64 , pub integration_time_us : u32 , pub integrated_x : f32 , pub integrated_y : f32 , pub integrated_xgyro : f32 , pub integrated_ygyro : f32 , pub integrated_zgyro : f32 , pub time_delta_distance_us : u32 , pub distance : f32 , pub temperature : i16 , pub sensor_id : u8 , pub quality : u8 , } impl OPTICAL_FLOW_RAD_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , integration_time_us : 0_u32 , integrated_x : 0.0_f32 , integrated_y : 0.0_f32 , integrated_xgyro : 0.0_f32 , integrated_ygyro : 0.0_f32 , integrated_zgyro : 0.0_f32 , time_delta_distance_us : 0_u32 , distance : 0.0_f32 , temperature : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for OPTICAL_FLOW_RAD_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPTICAL_FLOW_RAD_DATA { type Message = MavMessage ; const ID : u32 = 106u32 ; const NAME : & 'static str = "OPTICAL_FLOW_RAD" ; const EXTRA_CRC : u8 = 138u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . integration_time_us = buf . get_u32_le () ; __struct . integrated_x = buf . get_f32_le () ; __struct . integrated_y = buf . get_f32_le () ; __struct . integrated_xgyro = buf . get_f32_le () ; __struct . integrated_ygyro = buf . get_f32_le () ; __struct . integrated_zgyro = buf . get_f32_le () ; __struct . time_delta_distance_us = buf . get_u32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . integration_time_us) ; __tmp . put_f32_le (self . integrated_x) ; __tmp . put_f32_le (self . integrated_y) ; __tmp . put_f32_le (self . integrated_xgyro) ; __tmp . put_f32_le (self . integrated_ygyro) ; __tmp . put_f32_le (self . integrated_zgyro) ; __tmp . put_u32_le (self . time_delta_distance_us) ; __tmp . put_f32_le (self . distance) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RTCM_DATA_DATA { pub flags : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 180] , } impl GPS_RTCM_DATA_DATA { pub const ENCODED_LEN : usize = 182usize ; pub const DEFAULT : Self = Self { flags : 0_u8 , len : 0_u8 , data : [0_u8 ; 180usize] , } ; } impl Default for GPS_RTCM_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RTCM_DATA_DATA { type Message = MavMessage ; const ID : u32 = 233u32 ; const NAME : & 'static str = "GPS_RTCM_DATA" ; const EXTRA_CRC : u8 = 35u8 ; const ENCODED_LEN : usize = 182usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . flags = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . flags) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REQUEST_EVENT_DATA { pub first_sequence : u16 , pub last_sequence : u16 , pub target_system : u8 , pub target_component : u8 , } impl REQUEST_EVENT_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { first_sequence : 0_u16 , last_sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for REQUEST_EVENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REQUEST_EVENT_DATA { type Message = MavMessage ; const ID : u32 = 412u32 ; const NAME : & 'static str = "REQUEST_EVENT" ; const EXTRA_CRC : u8 = 33u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . first_sequence = buf . get_u16_le () ; __struct . last_sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . first_sequence) ; __tmp . put_u16_le (self . last_sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_COV_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub ax : f32 , pub ay : f32 , pub az : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 45] , pub estimator_type : MavEstimatorType , } impl LOCAL_POSITION_NED_COV_DATA { pub const ENCODED_LEN : usize = 225usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , ax : 0.0_f32 , ay : 0.0_f32 , az : 0.0_f32 , covariance : [0.0_f32 ; 45usize] , estimator_type : MavEstimatorType :: DEFAULT , } ; } impl Default for LOCAL_POSITION_NED_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_COV_DATA { type Message = MavMessage ; const ID : u32 = 64u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED_COV" ; const EXTRA_CRC : u8 = 191u8 ; const ENCODED_LEN : usize = 225usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . ax = buf . get_f32_le () ; __struct . ay = buf . get_f32_le () ; __struct . az = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . estimator_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEstimatorType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . ax) ; __tmp . put_f32_le (self . ay) ; __tmp . put_f32_le (self . az) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . estimator_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_POSITION_DELTA_DATA { pub time_usec : u64 , pub time_delta_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub angle_delta : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub position_delta : [f32 ; 3] , pub confidence : f32 , } impl VISION_POSITION_DELTA_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , time_delta_usec : 0_u64 , angle_delta : [0.0_f32 ; 3usize] , position_delta : [0.0_f32 ; 3usize] , confidence : 0.0_f32 , } ; } impl Default for VISION_POSITION_DELTA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_POSITION_DELTA_DATA { type Message = MavMessage ; const ID : u32 = 11011u32 ; const NAME : & 'static str = "VISION_POSITION_DELTA" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . time_delta_usec = buf . get_u64_le () ; for v in & mut __struct . angle_delta { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . position_delta { let val = buf . get_f32_le () ; * v = val ; } __struct . confidence = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u64_le (self . time_delta_usec) ; for val in & self . angle_delta { __tmp . put_f32_le (* val) ; } for val in & self . position_delta { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . confidence) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PLAY_TUNE_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub tune : [u8 ; 30] , } impl PLAY_TUNE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , tune : [0_u8 ; 30usize] , } ; } impl Default for PLAY_TUNE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PLAY_TUNE_DATA { type Message = MavMessage ; const ID : u32 = 258u32 ; const NAME : & 'static str = "PLAY_TUNE" ; const EXTRA_CRC : u8 = 187u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . tune { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . tune { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OSD_PARAM_SHOW_CONFIG_REPLY_DATA { pub request_id : u32 , pub min_value : f32 , pub max_value : f32 , pub increment : f32 , pub result : OsdParamConfigError , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub config_type : OsdParamConfigType , } impl OSD_PARAM_SHOW_CONFIG_REPLY_DATA { pub const ENCODED_LEN : usize = 34usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , min_value : 0.0_f32 , max_value : 0.0_f32 , increment : 0.0_f32 , result : OsdParamConfigError :: DEFAULT , param_id : [0_u8 ; 16usize] , config_type : OsdParamConfigType :: DEFAULT , } ; } impl Default for OSD_PARAM_SHOW_CONFIG_REPLY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OSD_PARAM_SHOW_CONFIG_REPLY_DATA { type Message = MavMessage ; const ID : u32 = 11036u32 ; const NAME : & 'static str = "OSD_PARAM_SHOW_CONFIG_REPLY" ; const EXTRA_CRC : u8 = 177u8 ; const ENCODED_LEN : usize = 34usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . min_value = buf . get_f32_le () ; __struct . max_value = buf . get_f32_le () ; __struct . increment = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "OsdParamConfigError" , value : tmp as u32 }) ? ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . config_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "OsdParamConfigType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_f32_le (self . min_value) ; __tmp . put_f32_le (self . max_value) ; __tmp . put_f32_le (self . increment) ; __tmp . put_u8 (self . result as u8) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . config_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CELLULAR_CONFIG_DATA { pub enable_lte : u8 , pub enable_pin : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pin : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub new_pin : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub apn : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub puk : [u8 ; 16] , pub roaming : u8 , pub response : CellularConfigResponse , } impl CELLULAR_CONFIG_DATA { pub const ENCODED_LEN : usize = 84usize ; pub const DEFAULT : Self = Self { enable_lte : 0_u8 , enable_pin : 0_u8 , pin : [0_u8 ; 16usize] , new_pin : [0_u8 ; 16usize] , apn : [0_u8 ; 32usize] , puk : [0_u8 ; 16usize] , roaming : 0_u8 , response : CellularConfigResponse :: DEFAULT , } ; } impl Default for CELLULAR_CONFIG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CELLULAR_CONFIG_DATA { type Message = MavMessage ; const ID : u32 = 336u32 ; const NAME : & 'static str = "CELLULAR_CONFIG" ; const EXTRA_CRC : u8 = 245u8 ; const ENCODED_LEN : usize = 84usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . enable_lte = buf . get_u8 () ; __struct . enable_pin = buf . get_u8 () ; for v in & mut __struct . pin { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . new_pin { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . apn { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . puk { let val = buf . get_u8 () ; * v = val ; } __struct . roaming = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . response = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularConfigResponse" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . enable_lte) ; __tmp . put_u8 (self . enable_pin) ; for val in & self . pin { __tmp . put_u8 (* val) ; } for val in & self . new_pin { __tmp . put_u8 (* val) ; } for val in & self . apn { __tmp . put_u8 (* val) ; } for val in & self . puk { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . roaming) ; __tmp . put_u8 (self . response as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_ATTITUDE_TARGET_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub body_roll_rate : f32 , pub body_pitch_rate : f32 , pub body_yaw_rate : f32 , pub thrust : f32 , pub target_system : u8 , pub target_component : u8 , pub type_mask : AttitudeTargetTypemask , } impl SET_ATTITUDE_TARGET_DATA { pub const ENCODED_LEN : usize = 39usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , body_roll_rate : 0.0_f32 , body_pitch_rate : 0.0_f32 , body_yaw_rate : 0.0_f32 , thrust : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , type_mask : AttitudeTargetTypemask :: DEFAULT , } ; } impl Default for SET_ATTITUDE_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_ATTITUDE_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 82u32 ; const NAME : & 'static str = "SET_ATTITUDE_TARGET" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 39usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . body_roll_rate = buf . get_f32_le () ; __struct . body_pitch_rate = buf . get_f32_le () ; __struct . body_yaw_rate = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . type_mask = AttitudeTargetTypemask :: from_bits (tmp & AttitudeTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AttitudeTargetTypemask" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . body_roll_rate) ; __tmp . put_f32_le (self . body_pitch_rate) ; __tmp . put_f32_le (self . body_yaw_rate) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . type_mask . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_GLOBAL_ORIGIN_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , } impl GPS_GLOBAL_ORIGIN_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , } ; } impl Default for GPS_GLOBAL_ORIGIN_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_GLOBAL_ORIGIN_DATA { type Message = MavMessage ; const ID : u32 = 49u32 ; const NAME : & 'static str = "GPS_GLOBAL_ORIGIN" ; const EXTRA_CRC : u8 = 39u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DISTANCE_SENSOR_DATA { pub time_boot_ms : u32 , pub min_distance : u16 , pub max_distance : u16 , pub current_distance : u16 , pub mavtype : MavDistanceSensor , pub id : u8 , pub orientation : MavSensorOrientation , pub covariance : u8 , } impl DISTANCE_SENSOR_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , min_distance : 0_u16 , max_distance : 0_u16 , current_distance : 0_u16 , mavtype : MavDistanceSensor :: DEFAULT , id : 0_u8 , orientation : MavSensorOrientation :: DEFAULT , covariance : 0_u8 , } ; } impl Default for DISTANCE_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DISTANCE_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 132u32 ; const NAME : & 'static str = "DISTANCE_SENSOR" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . min_distance = buf . get_u16_le () ; __struct . max_distance = buf . get_u16_le () ; __struct . current_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . orientation = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavSensorOrientation" , value : tmp as u32 }) ? ; __struct . covariance = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . min_distance) ; __tmp . put_u16_le (self . max_distance) ; __tmp . put_u16_le (self . current_distance) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . orientation as u8) ; __tmp . put_u8 (self . covariance) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EXTENDED_SYS_STATE_DATA { pub vtol_state : MavVtolState , pub landed_state : MavLandedState , } impl EXTENDED_SYS_STATE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { vtol_state : MavVtolState :: DEFAULT , landed_state : MavLandedState :: DEFAULT , } ; } impl Default for EXTENDED_SYS_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EXTENDED_SYS_STATE_DATA { type Message = MavMessage ; const ID : u32 = 245u32 ; const NAME : & 'static str = "EXTENDED_SYS_STATE" ; const EXTRA_CRC : u8 = 130u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . vtol_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavVtolState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . vtol_state as u8) ; __tmp . put_u8 (self . landed_state as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LANDING_TARGET_DATA { pub time_usec : u64 , pub angle_x : f32 , pub angle_y : f32 , pub distance : f32 , pub size_x : f32 , pub size_y : f32 , pub target_num : u8 , pub frame : MavFrame , } impl LANDING_TARGET_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , angle_x : 0.0_f32 , angle_y : 0.0_f32 , distance : 0.0_f32 , size_x : 0.0_f32 , size_y : 0.0_f32 , target_num : 0_u8 , frame : MavFrame :: DEFAULT , } ; } impl Default for LANDING_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LANDING_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 149u32 ; const NAME : & 'static str = "LANDING_TARGET" ; const EXTRA_CRC : u8 = 200u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . angle_x = buf . get_f32_le () ; __struct . angle_y = buf . get_f32_le () ; __struct . distance = buf . get_f32_le () ; __struct . size_x = buf . get_f32_le () ; __struct . size_y = buf . get_f32_le () ; __struct . target_num = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . angle_x) ; __tmp . put_f32_le (self . angle_y) ; __tmp . put_f32_le (self . distance) ; __tmp . put_f32_le (self . size_x) ; __tmp . put_f32_le (self . size_y) ; __tmp . put_u8 (self . target_num) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAV_CONTROLLER_OUTPUT_DATA { pub nav_roll : f32 , pub nav_pitch : f32 , pub alt_error : f32 , pub aspd_error : f32 , pub xtrack_error : f32 , pub nav_bearing : i16 , pub target_bearing : i16 , pub wp_dist : u16 , } impl NAV_CONTROLLER_OUTPUT_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { nav_roll : 0.0_f32 , nav_pitch : 0.0_f32 , alt_error : 0.0_f32 , aspd_error : 0.0_f32 , xtrack_error : 0.0_f32 , nav_bearing : 0_i16 , target_bearing : 0_i16 , wp_dist : 0_u16 , } ; } impl Default for NAV_CONTROLLER_OUTPUT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAV_CONTROLLER_OUTPUT_DATA { type Message = MavMessage ; const ID : u32 = 62u32 ; const NAME : & 'static str = "NAV_CONTROLLER_OUTPUT" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . nav_roll = buf . get_f32_le () ; __struct . nav_pitch = buf . get_f32_le () ; __struct . alt_error = buf . get_f32_le () ; __struct . aspd_error = buf . get_f32_le () ; __struct . xtrack_error = buf . get_f32_le () ; __struct . nav_bearing = buf . get_i16_le () ; __struct . target_bearing = buf . get_i16_le () ; __struct . wp_dist = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . nav_roll) ; __tmp . put_f32_le (self . nav_pitch) ; __tmp . put_f32_le (self . alt_error) ; __tmp . put_f32_le (self . aspd_error) ; __tmp . put_f32_le (self . xtrack_error) ; __tmp . put_i16_le (self . nav_bearing) ; __tmp . put_i16_le (self . target_bearing) ; __tmp . put_u16_le (self . wp_dist) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAMED_VALUE_FLOAT_DATA { pub time_boot_ms : u32 , pub value : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl NAMED_VALUE_FLOAT_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0.0_f32 , name : [0_u8 ; 10usize] , } ; } impl Default for NAMED_VALUE_FLOAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAMED_VALUE_FLOAT_DATA { type Message = MavMessage ; const ID : u32 = 251u32 ; const NAME : & 'static str = "NAMED_VALUE_FLOAT" ; const EXTRA_CRC : u8 = 170u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_f32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . value) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESTIMATOR_STATUS_DATA { pub time_usec : u64 , pub vel_ratio : f32 , pub pos_horiz_ratio : f32 , pub pos_vert_ratio : f32 , pub mag_ratio : f32 , pub hagl_ratio : f32 , pub tas_ratio : f32 , pub pos_horiz_accuracy : f32 , pub pos_vert_accuracy : f32 , pub flags : EstimatorStatusFlags , } impl ESTIMATOR_STATUS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , vel_ratio : 0.0_f32 , pos_horiz_ratio : 0.0_f32 , pos_vert_ratio : 0.0_f32 , mag_ratio : 0.0_f32 , hagl_ratio : 0.0_f32 , tas_ratio : 0.0_f32 , pos_horiz_accuracy : 0.0_f32 , pos_vert_accuracy : 0.0_f32 , flags : EstimatorStatusFlags :: DEFAULT , } ; } impl Default for ESTIMATOR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESTIMATOR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 230u32 ; const NAME : & 'static str = "ESTIMATOR_STATUS" ; const EXTRA_CRC : u8 = 163u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . vel_ratio = buf . get_f32_le () ; __struct . pos_horiz_ratio = buf . get_f32_le () ; __struct . pos_vert_ratio = buf . get_f32_le () ; __struct . mag_ratio = buf . get_f32_le () ; __struct . hagl_ratio = buf . get_f32_le () ; __struct . tas_ratio = buf . get_f32_le () ; __struct . pos_horiz_accuracy = buf . get_f32_le () ; __struct . pos_vert_accuracy = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = EstimatorStatusFlags :: from_bits (tmp & EstimatorStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EstimatorStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . vel_ratio) ; __tmp . put_f32_le (self . pos_horiz_ratio) ; __tmp . put_f32_le (self . pos_vert_ratio) ; __tmp . put_f32_le (self . mag_ratio) ; __tmp . put_f32_le (self . hagl_ratio) ; __tmp . put_f32_le (self . tas_ratio) ; __tmp . put_f32_le (self . pos_horiz_accuracy) ; __tmp . put_f32_le (self . pos_vert_accuracy) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_HOME_POSITION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub approach_x : f32 , pub approach_y : f32 , pub approach_z : f32 , pub target_system : u8 , } impl SET_HOME_POSITION_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , approach_x : 0.0_f32 , approach_y : 0.0_f32 , approach_z : 0.0_f32 , target_system : 0_u8 , } ; } impl Default for SET_HOME_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_HOME_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 243u32 ; const NAME : & 'static str = "SET_HOME_POSITION" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . approach_x = buf . get_f32_le () ; __struct . approach_y = buf . get_f32_le () ; __struct . approach_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . approach_x) ; __tmp . put_f32_le (self . approach_y) ; __tmp . put_f32_le (self . approach_z) ; __tmp . put_u8 (self . target_system) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVIONIX_ADSB_OUT_CFG_DATA { pub ICAO : u32 , pub stallSpeed : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 9] , pub emitterType : AdsbEmitterType , pub aircraftSize : UavionixAdsbOutCfgAircraftSize , pub gpsOffsetLat : UavionixAdsbOutCfgGpsOffsetLat , pub gpsOffsetLon : UavionixAdsbOutCfgGpsOffsetLon , pub rfSelect : UavionixAdsbOutRfSelect , } impl UAVIONIX_ADSB_OUT_CFG_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { ICAO : 0_u32 , stallSpeed : 0_u16 , callsign : [0_u8 ; 9usize] , emitterType : AdsbEmitterType :: DEFAULT , aircraftSize : UavionixAdsbOutCfgAircraftSize :: DEFAULT , gpsOffsetLat : UavionixAdsbOutCfgGpsOffsetLat :: DEFAULT , gpsOffsetLon : UavionixAdsbOutCfgGpsOffsetLon :: DEFAULT , rfSelect : UavionixAdsbOutRfSelect :: DEFAULT , } ; } impl Default for UAVIONIX_ADSB_OUT_CFG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVIONIX_ADSB_OUT_CFG_DATA { type Message = MavMessage ; const ID : u32 = 10001u32 ; const NAME : & 'static str = "UAVIONIX_ADSB_OUT_CFG" ; const EXTRA_CRC : u8 = 209u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ICAO = buf . get_u32_le () ; __struct . stallSpeed = buf . get_u16_le () ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . emitterType = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbEmitterType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . aircraftSize = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutCfgAircraftSize" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . gpsOffsetLat = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutCfgGpsOffsetLat" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . gpsOffsetLon = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutCfgGpsOffsetLon" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . rfSelect = UavionixAdsbOutRfSelect :: from_bits (tmp & UavionixAdsbOutRfSelect :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UavionixAdsbOutRfSelect" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ICAO) ; __tmp . put_u16_le (self . stallSpeed) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . emitterType as u8) ; __tmp . put_u8 (self . aircraftSize as u8) ; __tmp . put_u8 (self . gpsOffsetLat as u8) ; __tmp . put_u8 (self . gpsOffsetLon as u8) ; __tmp . put_u8 (self . rfSelect . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MOUNT_CONFIGURE_DATA { pub target_system : u8 , pub target_component : u8 , pub mount_mode : MavMountMode , pub stab_roll : u8 , pub stab_pitch : u8 , pub stab_yaw : u8 , } impl MOUNT_CONFIGURE_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , mount_mode : MavMountMode :: DEFAULT , stab_roll : 0_u8 , stab_pitch : 0_u8 , stab_yaw : 0_u8 , } ; } impl Default for MOUNT_CONFIGURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MOUNT_CONFIGURE_DATA { type Message = MavMessage ; const ID : u32 = 156u32 ; const NAME : & 'static str = "MOUNT_CONFIGURE" ; const EXTRA_CRC : u8 = 19u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mount_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMountMode" , value : tmp as u32 }) ? ; __struct . stab_roll = buf . get_u8 () ; __struct . stab_pitch = buf . get_u8 () ; __struct . stab_yaw = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . mount_mode as u8) ; __tmp . put_u8 (self . stab_roll) ; __tmp . put_u8 (self . stab_pitch) ; __tmp . put_u8 (self . stab_yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_REQUEST_READ_DATA { pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , } impl PARAM_EXT_REQUEST_READ_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , } ; } impl Default for PARAM_EXT_REQUEST_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_REQUEST_READ_DATA { type Message = MavMessage ; const ID : u32 = 320u32 ; const NAME : & 'static str = "PARAM_EXT_REQUEST_READ" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_FEEDBACK_DATA { pub time_usec : u64 , pub lat : i32 , pub lng : i32 , pub alt_msl : f32 , pub alt_rel : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub foc_len : f32 , pub img_idx : u16 , pub target_system : u8 , pub cam_idx : u8 , pub flags : CameraFeedbackFlags , } impl CAMERA_FEEDBACK_DATA { pub const ENCODED_LEN : usize = 45usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lng : 0_i32 , alt_msl : 0.0_f32 , alt_rel : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , foc_len : 0.0_f32 , img_idx : 0_u16 , target_system : 0_u8 , cam_idx : 0_u8 , flags : CameraFeedbackFlags :: DEFAULT , } ; } impl Default for CAMERA_FEEDBACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_FEEDBACK_DATA { type Message = MavMessage ; const ID : u32 = 180u32 ; const NAME : & 'static str = "CAMERA_FEEDBACK" ; const EXTRA_CRC : u8 = 52u8 ; const ENCODED_LEN : usize = 45usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lng = buf . get_i32_le () ; __struct . alt_msl = buf . get_f32_le () ; __struct . alt_rel = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . foc_len = buf . get_f32_le () ; __struct . img_idx = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . cam_idx = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . flags = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraFeedbackFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lng) ; __tmp . put_f32_le (self . alt_msl) ; __tmp . put_f32_le (self . alt_rel) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . foc_len) ; __tmp . put_u16_le (self . img_idx) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . cam_idx) ; __tmp . put_u8 (self . flags as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SERIAL_CONTROL_DATA { pub baudrate : u32 , pub timeout : u16 , pub device : SerialControlDev , pub flags : SerialControlFlag , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 70] , } impl SERIAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 79usize ; pub const DEFAULT : Self = Self { baudrate : 0_u32 , timeout : 0_u16 , device : SerialControlDev :: DEFAULT , flags : SerialControlFlag :: DEFAULT , count : 0_u8 , data : [0_u8 ; 70usize] , } ; } impl Default for SERIAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SERIAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 126u32 ; const NAME : & 'static str = "SERIAL_CONTROL" ; const EXTRA_CRC : u8 = 220u8 ; const ENCODED_LEN : usize = 79usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . baudrate = buf . get_u32_le () ; __struct . timeout = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . device = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "SerialControlDev" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = SerialControlFlag :: from_bits (tmp & SerialControlFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "SerialControlFlag" , value : tmp as u32 }) ? ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . baudrate) ; __tmp . put_u16_le (self . timeout) ; __tmp . put_u8 (self . device as u8) ; __tmp . put_u8 (self . flags . bits ()) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_CAPTURE_STATUS_DATA { pub time_boot_ms : u32 , pub image_interval : f32 , pub recording_time_ms : u32 , pub available_capacity : f32 , pub image_status : u8 , pub video_status : u8 , } impl CAMERA_CAPTURE_STATUS_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , image_interval : 0.0_f32 , recording_time_ms : 0_u32 , available_capacity : 0.0_f32 , image_status : 0_u8 , video_status : 0_u8 , } ; } impl Default for CAMERA_CAPTURE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_CAPTURE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 262u32 ; const NAME : & 'static str = "CAMERA_CAPTURE_STATUS" ; const EXTRA_CRC : u8 = 12u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . image_interval = buf . get_f32_le () ; __struct . recording_time_ms = buf . get_u32_le () ; __struct . available_capacity = buf . get_f32_le () ; __struct . image_status = buf . get_u8 () ; __struct . video_status = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . image_interval) ; __tmp . put_u32_le (self . recording_time_ms) ; __tmp . put_f32_le (self . available_capacity) ; __tmp . put_u8 (self . image_status) ; __tmp . put_u8 (self . video_status) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct V2_EXTENSION_DATA { pub message_type : u16 , pub target_network : u8 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 249] , } impl V2_EXTENSION_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { message_type : 0_u16 , target_network : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , payload : [0_u8 ; 249usize] , } ; } impl Default for V2_EXTENSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for V2_EXTENSION_DATA { type Message = MavMessage ; const ID : u32 = 248u32 ; const NAME : & 'static str = "V2_EXTENSION" ; const EXTRA_CRC : u8 = 8u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . message_type = buf . get_u16_le () ; __struct . target_network = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . message_type) ; __tmp . put_u8 (self . target_network) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPONENT_METADATA_DATA { pub time_boot_ms : u32 , pub file_crc : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 100] , } impl COMPONENT_METADATA_DATA { pub const ENCODED_LEN : usize = 108usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , file_crc : 0_u32 , uri : [0_u8 ; 100usize] , } ; } impl Default for COMPONENT_METADATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPONENT_METADATA_DATA { type Message = MavMessage ; const ID : u32 = 397u32 ; const NAME : & 'static str = "COMPONENT_METADATA" ; const EXTRA_CRC : u8 = 182u8 ; const ENCODED_LEN : usize = 108usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . file_crc = buf . get_u32_le () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . file_crc) ; for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DIGICAM_CONFIGURE_DATA { pub extra_value : f32 , pub shutter_speed : u16 , pub target_system : u8 , pub target_component : u8 , pub mode : u8 , pub aperture : u8 , pub iso : u8 , pub exposure_type : u8 , pub command_id : u8 , pub engine_cut_off : u8 , pub extra_param : u8 , } impl DIGICAM_CONFIGURE_DATA { pub const ENCODED_LEN : usize = 15usize ; pub const DEFAULT : Self = Self { extra_value : 0.0_f32 , shutter_speed : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , mode : 0_u8 , aperture : 0_u8 , iso : 0_u8 , exposure_type : 0_u8 , command_id : 0_u8 , engine_cut_off : 0_u8 , extra_param : 0_u8 , } ; } impl Default for DIGICAM_CONFIGURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DIGICAM_CONFIGURE_DATA { type Message = MavMessage ; const ID : u32 = 154u32 ; const NAME : & 'static str = "DIGICAM_CONFIGURE" ; const EXTRA_CRC : u8 = 84u8 ; const ENCODED_LEN : usize = 15usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . extra_value = buf . get_f32_le () ; __struct . shutter_speed = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . mode = buf . get_u8 () ; __struct . aperture = buf . get_u8 () ; __struct . iso = buf . get_u8 () ; __struct . exposure_type = buf . get_u8 () ; __struct . command_id = buf . get_u8 () ; __struct . engine_cut_off = buf . get_u8 () ; __struct . extra_param = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . extra_value) ; __tmp . put_u16_le (self . shutter_speed) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . mode) ; __tmp . put_u8 (self . aperture) ; __tmp . put_u8 (self . iso) ; __tmp . put_u8 (self . exposure_type) ; __tmp . put_u8 (self . command_id) ; __tmp . put_u8 (self . engine_cut_off) ; __tmp . put_u8 (self . extra_param) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BUTTON_CHANGE_DATA { pub time_boot_ms : u32 , pub last_change_ms : u32 , pub state : u8 , } impl BUTTON_CHANGE_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , last_change_ms : 0_u32 , state : 0_u8 , } ; } impl Default for BUTTON_CHANGE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BUTTON_CHANGE_DATA { type Message = MavMessage ; const ID : u32 = 257u32 ; const NAME : & 'static str = "BUTTON_CHANGE" ; const EXTRA_CRC : u8 = 131u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . last_change_ms = buf . get_u32_le () ; __struct . state = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . last_change_ms) ; __tmp . put_u8 (self . state) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct STATUSTEXT_DATA { pub severity : MavSeverity , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub text : [u8 ; 50] , } impl STATUSTEXT_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { severity : MavSeverity :: DEFAULT , text : [0_u8 ; 50usize] , } ; } impl Default for STATUSTEXT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for STATUSTEXT_DATA { type Message = MavMessage ; const ID : u32 = 253u32 ; const NAME : & 'static str = "STATUSTEXT" ; const EXTRA_CRC : u8 = 83u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . severity = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavSeverity" , value : tmp as u32 }) ? ; for v in & mut __struct . text { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . severity as u8) ; for val in & self . text { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAN_FRAME_DATA { pub id : u32 , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 8] , } impl CAN_FRAME_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , len : 0_u8 , data : [0_u8 ; 8usize] , } ; } impl Default for CAN_FRAME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAN_FRAME_DATA { type Message = MavMessage ; const ID : u32 = 386u32 ; const NAME : & 'static str = "CAN_FRAME" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ISBD_LINK_STATUS_DATA { pub timestamp : u64 , pub last_heartbeat : u64 , pub failed_sessions : u16 , pub successful_sessions : u16 , pub signal_quality : u8 , pub ring_pending : u8 , pub tx_session_pending : u8 , pub rx_session_pending : u8 , } impl ISBD_LINK_STATUS_DATA { pub const ENCODED_LEN : usize = 24usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , last_heartbeat : 0_u64 , failed_sessions : 0_u16 , successful_sessions : 0_u16 , signal_quality : 0_u8 , ring_pending : 0_u8 , tx_session_pending : 0_u8 , rx_session_pending : 0_u8 , } ; } impl Default for ISBD_LINK_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ISBD_LINK_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 335u32 ; const NAME : & 'static str = "ISBD_LINK_STATUS" ; const EXTRA_CRC : u8 = 225u8 ; const ENCODED_LEN : usize = 24usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . last_heartbeat = buf . get_u64_le () ; __struct . failed_sessions = buf . get_u16_le () ; __struct . successful_sessions = buf . get_u16_le () ; __struct . signal_quality = buf . get_u8 () ; __struct . ring_pending = buf . get_u8 () ; __struct . tx_session_pending = buf . get_u8 () ; __struct . rx_session_pending = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u64_le (self . last_heartbeat) ; __tmp . put_u16_le (self . failed_sessions) ; __tmp . put_u16_le (self . successful_sessions) ; __tmp . put_u8 (self . signal_quality) ; __tmp . put_u8 (self . ring_pending) ; __tmp . put_u8 (self . tx_session_pending) ; __tmp . put_u8 (self . rx_session_pending) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SENSOR_OFFSETS_DATA { pub mag_declination : f32 , pub raw_press : i32 , pub raw_temp : i32 , pub gyro_cal_x : f32 , pub gyro_cal_y : f32 , pub gyro_cal_z : f32 , pub accel_cal_x : f32 , pub accel_cal_y : f32 , pub accel_cal_z : f32 , pub mag_ofs_x : i16 , pub mag_ofs_y : i16 , pub mag_ofs_z : i16 , } impl SENSOR_OFFSETS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { mag_declination : 0.0_f32 , raw_press : 0_i32 , raw_temp : 0_i32 , gyro_cal_x : 0.0_f32 , gyro_cal_y : 0.0_f32 , gyro_cal_z : 0.0_f32 , accel_cal_x : 0.0_f32 , accel_cal_y : 0.0_f32 , accel_cal_z : 0.0_f32 , mag_ofs_x : 0_i16 , mag_ofs_y : 0_i16 , mag_ofs_z : 0_i16 , } ; } impl Default for SENSOR_OFFSETS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SENSOR_OFFSETS_DATA { type Message = MavMessage ; const ID : u32 = 150u32 ; const NAME : & 'static str = "SENSOR_OFFSETS" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mag_declination = buf . get_f32_le () ; __struct . raw_press = buf . get_i32_le () ; __struct . raw_temp = buf . get_i32_le () ; __struct . gyro_cal_x = buf . get_f32_le () ; __struct . gyro_cal_y = buf . get_f32_le () ; __struct . gyro_cal_z = buf . get_f32_le () ; __struct . accel_cal_x = buf . get_f32_le () ; __struct . accel_cal_y = buf . get_f32_le () ; __struct . accel_cal_z = buf . get_f32_le () ; __struct . mag_ofs_x = buf . get_i16_le () ; __struct . mag_ofs_y = buf . get_i16_le () ; __struct . mag_ofs_z = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . mag_declination) ; __tmp . put_i32_le (self . raw_press) ; __tmp . put_i32_le (self . raw_temp) ; __tmp . put_f32_le (self . gyro_cal_x) ; __tmp . put_f32_le (self . gyro_cal_y) ; __tmp . put_f32_le (self . gyro_cal_z) ; __tmp . put_f32_le (self . accel_cal_x) ; __tmp . put_f32_le (self . accel_cal_y) ; __tmp . put_f32_le (self . accel_cal_z) ; __tmp . put_i16_le (self . mag_ofs_x) ; __tmp . put_i16_le (self . mag_ofs_y) ; __tmp . put_i16_le (self . mag_ofs_z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BATTERY2_DATA { pub voltage : u16 , pub current_battery : i16 , } impl BATTERY2_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { voltage : 0_u16 , current_battery : 0_i16 , } ; } impl Default for BATTERY2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BATTERY2_DATA { type Message = MavMessage ; const ID : u32 = 181u32 ; const NAME : & 'static str = "BATTERY2" ; const EXTRA_CRC : u8 = 174u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . voltage = buf . get_u16_le () ; __struct . current_battery = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . voltage) ; __tmp . put_i16_le (self . current_battery) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU_DATA { type Message = MavMessage ; const ID : u32 = 26u32 ; const NAME : & 'static str = "SCALED_IMU" ; const EXTRA_CRC : u8 = 170u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIDEO_STREAM_STATUS_DATA { pub framerate : f32 , pub bitrate : u32 , pub flags : VideoStreamStatusFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub hfov : u16 , pub stream_id : u8 , } impl VIDEO_STREAM_STATUS_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , flags : VideoStreamStatusFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , hfov : 0_u16 , stream_id : 0_u8 , } ; } impl Default for VIDEO_STREAM_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIDEO_STREAM_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 270u32 ; const NAME : & 'static str = "VIDEO_STREAM_STATUS" ; const EXTRA_CRC : u8 = 59u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamStatusFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . hfov = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . flags as u16) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u16_le (self . hfov) ; __tmp . put_u8 (self . stream_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BATTERY_STATUS_DATA { pub current_consumed : i32 , pub energy_consumed : i32 , pub temperature : i16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltages : [u16 ; 10] , pub current_battery : i16 , pub id : u8 , pub battery_function : MavBatteryFunction , pub mavtype : MavBatteryType , pub battery_remaining : i8 , } impl BATTERY_STATUS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { current_consumed : 0_i32 , energy_consumed : 0_i32 , temperature : 0_i16 , voltages : [0_u16 ; 10usize] , current_battery : 0_i16 , id : 0_u8 , battery_function : MavBatteryFunction :: DEFAULT , mavtype : MavBatteryType :: DEFAULT , battery_remaining : 0_i8 , } ; } impl Default for BATTERY_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BATTERY_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 147u32 ; const NAME : & 'static str = "BATTERY_STATUS" ; const EXTRA_CRC : u8 = 154u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . current_consumed = buf . get_i32_le () ; __struct . energy_consumed = buf . get_i32_le () ; __struct . temperature = buf . get_i16_le () ; for v in & mut __struct . voltages { let val = buf . get_u16_le () ; * v = val ; } __struct . current_battery = buf . get_i16_le () ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . battery_function = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryFunction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryType" , value : tmp as u32 }) ? ; __struct . battery_remaining = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . current_consumed) ; __tmp . put_i32_le (self . energy_consumed) ; __tmp . put_i16_le (self . temperature) ; for val in & self . voltages { __tmp . put_u16_le (* val) ; } __tmp . put_i16_le (self . current_battery) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . battery_function as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_i8 (self . battery_remaining) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEVICE_OP_WRITE_DATA { pub request_id : u32 , pub target_system : u8 , pub target_component : u8 , pub bustype : DeviceOpBustype , pub bus : u8 , pub address : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub busname : [u8 ; 40] , pub regstart : u8 , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 128] , } impl DEVICE_OP_WRITE_DATA { pub const ENCODED_LEN : usize = 179usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bustype : DeviceOpBustype :: DEFAULT , bus : 0_u8 , address : 0_u8 , busname : [0_u8 ; 40usize] , regstart : 0_u8 , count : 0_u8 , data : [0_u8 ; 128usize] , } ; } impl Default for DEVICE_OP_WRITE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEVICE_OP_WRITE_DATA { type Message = MavMessage ; const ID : u32 = 11002u32 ; const NAME : & 'static str = "DEVICE_OP_WRITE" ; const EXTRA_CRC : u8 = 234u8 ; const ENCODED_LEN : usize = 179usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . bustype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "DeviceOpBustype" , value : tmp as u32 }) ? ; __struct . bus = buf . get_u8 () ; __struct . address = buf . get_u8 () ; for v in & mut __struct . busname { let val = buf . get_u8 () ; * v = val ; } __struct . regstart = buf . get_u8 () ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bustype as u8) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . address) ; for val in & self . busname { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . regstart) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGHRES_IMU_DATA { pub time_usec : u64 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub xmag : f32 , pub ymag : f32 , pub zmag : f32 , pub abs_pressure : f32 , pub diff_pressure : f32 , pub pressure_alt : f32 , pub temperature : f32 , pub fields_updated : HighresImuUpdatedFlags , } impl HIGHRES_IMU_DATA { pub const ENCODED_LEN : usize = 62usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , xmag : 0.0_f32 , ymag : 0.0_f32 , zmag : 0.0_f32 , abs_pressure : 0.0_f32 , diff_pressure : 0.0_f32 , pressure_alt : 0.0_f32 , temperature : 0.0_f32 , fields_updated : HighresImuUpdatedFlags :: DEFAULT , } ; } impl Default for HIGHRES_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGHRES_IMU_DATA { type Message = MavMessage ; const ID : u32 = 105u32 ; const NAME : & 'static str = "HIGHRES_IMU" ; const EXTRA_CRC : u8 = 93u8 ; const ENCODED_LEN : usize = 62usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . xmag = buf . get_f32_le () ; __struct . ymag = buf . get_f32_le () ; __struct . zmag = buf . get_f32_le () ; __struct . abs_pressure = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . pressure_alt = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . fields_updated = HighresImuUpdatedFlags :: from_bits (tmp & HighresImuUpdatedFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HighresImuUpdatedFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . xmag) ; __tmp . put_f32_le (self . ymag) ; __tmp . put_f32_le (self . zmag) ; __tmp . put_f32_le (self . abs_pressure) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . pressure_alt) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u16_le (self . fields_updated . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GOPRO_HEARTBEAT_DATA { pub status : GoproHeartbeatStatus , pub capture_mode : GoproCaptureMode , pub flags : GoproHeartbeatFlags , } impl GOPRO_HEARTBEAT_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { status : GoproHeartbeatStatus :: DEFAULT , capture_mode : GoproCaptureMode :: DEFAULT , flags : GoproHeartbeatFlags :: DEFAULT , } ; } impl Default for GOPRO_HEARTBEAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GOPRO_HEARTBEAT_DATA { type Message = MavMessage ; const ID : u32 = 215u32 ; const NAME : & 'static str = "GOPRO_HEARTBEAT" ; const EXTRA_CRC : u8 = 101u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproHeartbeatStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . capture_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproCaptureMode" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = GoproHeartbeatFlags :: from_bits (tmp & GoproHeartbeatFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GoproHeartbeatFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . capture_mode as u8) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WATER_DEPTH_DATA { pub time_boot_ms : u32 , pub lat : i32 , pub lng : i32 , pub alt : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub distance : f32 , pub temperature : f32 , pub id : u8 , pub healthy : u8 , } impl WATER_DEPTH_DATA { pub const ENCODED_LEN : usize = 38usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat : 0_i32 , lng : 0_i32 , alt : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , distance : 0.0_f32 , temperature : 0.0_f32 , id : 0_u8 , healthy : 0_u8 , } ; } impl Default for WATER_DEPTH_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WATER_DEPTH_DATA { type Message = MavMessage ; const ID : u32 = 11038u32 ; const NAME : & 'static str = "WATER_DEPTH" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 38usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lng = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; __struct . id = buf . get_u8 () ; __struct . healthy = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lng) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . distance) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . healthy) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_SENSOR_DATA { pub time_usec : u64 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub xmag : f32 , pub ymag : f32 , pub zmag : f32 , pub abs_pressure : f32 , pub diff_pressure : f32 , pub pressure_alt : f32 , pub temperature : f32 , pub fields_updated : HilSensorUpdatedFlags , } impl HIL_SENSOR_DATA { pub const ENCODED_LEN : usize = 64usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , xmag : 0.0_f32 , ymag : 0.0_f32 , zmag : 0.0_f32 , abs_pressure : 0.0_f32 , diff_pressure : 0.0_f32 , pressure_alt : 0.0_f32 , temperature : 0.0_f32 , fields_updated : HilSensorUpdatedFlags :: DEFAULT , } ; } impl Default for HIL_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 107u32 ; const NAME : & 'static str = "HIL_SENSOR" ; const EXTRA_CRC : u8 = 108u8 ; const ENCODED_LEN : usize = 64usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . xmag = buf . get_f32_le () ; __struct . ymag = buf . get_f32_le () ; __struct . zmag = buf . get_f32_le () ; __struct . abs_pressure = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . pressure_alt = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . fields_updated = HilSensorUpdatedFlags :: from_bits (tmp & HilSensorUpdatedFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HilSensorUpdatedFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . xmag) ; __tmp . put_f32_le (self . ymag) ; __tmp . put_f32_le (self . zmag) ; __tmp . put_f32_le (self . abs_pressure) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . pressure_alt) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u32_le (self . fields_updated . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POWER_STATUS_DATA { pub Vcc : u16 , pub Vservo : u16 , pub flags : MavPowerStatus , } impl POWER_STATUS_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { Vcc : 0_u16 , Vservo : 0_u16 , flags : MavPowerStatus :: DEFAULT , } ; } impl Default for POWER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POWER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 125u32 ; const NAME : & 'static str = "POWER_STATUS" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . Vcc = buf . get_u16_le () ; __struct . Vservo = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = MavPowerStatus :: from_bits (tmp & MavPowerStatus :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavPowerStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . Vcc) ; __tmp . put_u16_le (self . Vservo) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SYS_STATUS_DATA { pub onboard_control_sensors_present : MavSysStatusSensor , pub onboard_control_sensors_enabled : MavSysStatusSensor , pub onboard_control_sensors_health : MavSysStatusSensor , pub load : u16 , pub voltage_battery : u16 , pub current_battery : i16 , pub drop_rate_comm : u16 , pub errors_comm : u16 , pub errors_count1 : u16 , pub errors_count2 : u16 , pub errors_count3 : u16 , pub errors_count4 : u16 , pub battery_remaining : i8 , } impl SYS_STATUS_DATA { pub const ENCODED_LEN : usize = 31usize ; pub const DEFAULT : Self = Self { onboard_control_sensors_present : MavSysStatusSensor :: DEFAULT , onboard_control_sensors_enabled : MavSysStatusSensor :: DEFAULT , onboard_control_sensors_health : MavSysStatusSensor :: DEFAULT , load : 0_u16 , voltage_battery : 0_u16 , current_battery : 0_i16 , drop_rate_comm : 0_u16 , errors_comm : 0_u16 , errors_count1 : 0_u16 , errors_count2 : 0_u16 , errors_count3 : 0_u16 , errors_count4 : 0_u16 , battery_remaining : 0_i8 , } ; } impl Default for SYS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SYS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 1u32 ; const NAME : & 'static str = "SYS_STATUS" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 31usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_present = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_enabled = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_health = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; __struct . load = buf . get_u16_le () ; __struct . voltage_battery = buf . get_u16_le () ; __struct . current_battery = buf . get_i16_le () ; __struct . drop_rate_comm = buf . get_u16_le () ; __struct . errors_comm = buf . get_u16_le () ; __struct . errors_count1 = buf . get_u16_le () ; __struct . errors_count2 = buf . get_u16_le () ; __struct . errors_count3 = buf . get_u16_le () ; __struct . errors_count4 = buf . get_u16_le () ; __struct . battery_remaining = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . onboard_control_sensors_present . bits ()) ; __tmp . put_u32_le (self . onboard_control_sensors_enabled . bits ()) ; __tmp . put_u32_le (self . onboard_control_sensors_health . bits ()) ; __tmp . put_u16_le (self . load) ; __tmp . put_u16_le (self . voltage_battery) ; __tmp . put_i16_le (self . current_battery) ; __tmp . put_u16_le (self . drop_rate_comm) ; __tmp . put_u16_le (self . errors_comm) ; __tmp . put_u16_le (self . errors_count1) ; __tmp . put_u16_le (self . errors_count2) ; __tmp . put_u16_le (self . errors_count3) ; __tmp . put_u16_le (self . errors_count4) ; __tmp . put_i8 (self . battery_remaining) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAN_FILTER_MODIFY_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub ids : [u16 ; 16] , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub operation : CanFilterOp , pub num_ids : u8 , } impl CAN_FILTER_MODIFY_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { ids : [0_u16 ; 16usize] , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , operation : CanFilterOp :: DEFAULT , num_ids : 0_u8 , } ; } impl Default for CAN_FILTER_MODIFY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAN_FILTER_MODIFY_DATA { type Message = MavMessage ; const ID : u32 = 388u32 ; const NAME : & 'static str = "CAN_FILTER_MODIFY" ; const EXTRA_CRC : u8 = 8u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . ids { let val = buf . get_u16_le () ; * v = val ; } __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . operation = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CanFilterOp" , value : tmp as u32 }) ? ; __struct . num_ids = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . ids { __tmp . put_u16_le (* val) ; } __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . operation as u8) ; __tmp . put_u8 (self . num_ids) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_SCALED_DATA { pub time_boot_ms : u32 , pub chan1_scaled : i16 , pub chan2_scaled : i16 , pub chan3_scaled : i16 , pub chan4_scaled : i16 , pub chan5_scaled : i16 , pub chan6_scaled : i16 , pub chan7_scaled : i16 , pub chan8_scaled : i16 , pub port : u8 , pub rssi : u8 , } impl RC_CHANNELS_SCALED_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_scaled : 0_i16 , chan2_scaled : 0_i16 , chan3_scaled : 0_i16 , chan4_scaled : 0_i16 , chan5_scaled : 0_i16 , chan6_scaled : 0_i16 , chan7_scaled : 0_i16 , chan8_scaled : 0_i16 , port : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_SCALED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_SCALED_DATA { type Message = MavMessage ; const ID : u32 = 34u32 ; const NAME : & 'static str = "RC_CHANNELS_SCALED" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_scaled = buf . get_i16_le () ; __struct . chan2_scaled = buf . get_i16_le () ; __struct . chan3_scaled = buf . get_i16_le () ; __struct . chan4_scaled = buf . get_i16_le () ; __struct . chan5_scaled = buf . get_i16_le () ; __struct . chan6_scaled = buf . get_i16_le () ; __struct . chan7_scaled = buf . get_i16_le () ; __struct . chan8_scaled = buf . get_i16_le () ; __struct . port = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . chan1_scaled) ; __tmp . put_i16_le (self . chan2_scaled) ; __tmp . put_i16_le (self . chan3_scaled) ; __tmp . put_i16_le (self . chan4_scaled) ; __tmp . put_i16_le (self . chan5_scaled) ; __tmp . put_i16_le (self . chan6_scaled) ; __tmp . put_i16_le (self . chan7_scaled) ; __tmp . put_i16_le (self . chan8_scaled) ; __tmp . put_u8 (self . port) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SELF_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub description_type : MavOdidDescType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub description : [u8 ; 23] , } impl OPEN_DRONE_ID_SELF_ID_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , description_type : MavOdidDescType :: DEFAULT , description : [0_u8 ; 23usize] , } ; } impl Default for OPEN_DRONE_ID_SELF_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SELF_ID_DATA { type Message = MavMessage ; const ID : u32 = 12903u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SELF_ID" ; const EXTRA_CRC : u8 = 249u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . description_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidDescType" , value : tmp as u32 }) ? ; for v in & mut __struct . description { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . description_type as u8) ; for val in & self . description { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_REQUEST_READ_DATA { pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , } impl PARAM_REQUEST_READ_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , } ; } impl Default for PARAM_REQUEST_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_REQUEST_READ_DATA { type Message = MavMessage ; const ID : u32 = 20u32 ; const NAME : & 'static str = "PARAM_REQUEST_READ" ; const EXTRA_CRC : u8 = 214u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PLAY_TUNE_V2_DATA { pub format : TuneFormat , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub tune : [u8 ; 248] , } impl PLAY_TUNE_V2_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { format : TuneFormat :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , tune : [0_u8 ; 248usize] , } ; } impl Default for PLAY_TUNE_V2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PLAY_TUNE_V2_DATA { type Message = MavMessage ; const ID : u32 = 400u32 ; const NAME : & 'static str = "PLAY_TUNE_V2" ; const EXTRA_CRC : u8 = 110u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . format = TuneFormat :: from_bits (tmp & TuneFormat :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "TuneFormat" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . tune { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . format . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . tune { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_CHECK_DATA { pub lat : i32 , pub lon : i32 , } impl TERRAIN_CHECK_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , } ; } impl Default for TERRAIN_CHECK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_CHECK_DATA { type Message = MavMessage ; const ID : u32 = 135u32 ; const NAME : & 'static str = "TERRAIN_CHECK" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RTK_DATA { pub time_last_baseline_ms : u32 , pub tow : u32 , pub baseline_a_mm : i32 , pub baseline_b_mm : i32 , pub baseline_c_mm : i32 , pub accuracy : u32 , pub iar_num_hypotheses : i32 , pub wn : u16 , pub rtk_receiver_id : u8 , pub rtk_health : u8 , pub rtk_rate : u8 , pub nsats : u8 , pub baseline_coords_type : RtkBaselineCoordinateSystem , } impl GPS_RTK_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_last_baseline_ms : 0_u32 , tow : 0_u32 , baseline_a_mm : 0_i32 , baseline_b_mm : 0_i32 , baseline_c_mm : 0_i32 , accuracy : 0_u32 , iar_num_hypotheses : 0_i32 , wn : 0_u16 , rtk_receiver_id : 0_u8 , rtk_health : 0_u8 , rtk_rate : 0_u8 , nsats : 0_u8 , baseline_coords_type : RtkBaselineCoordinateSystem :: DEFAULT , } ; } impl Default for GPS_RTK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RTK_DATA { type Message = MavMessage ; const ID : u32 = 127u32 ; const NAME : & 'static str = "GPS_RTK" ; const EXTRA_CRC : u8 = 25u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_last_baseline_ms = buf . get_u32_le () ; __struct . tow = buf . get_u32_le () ; __struct . baseline_a_mm = buf . get_i32_le () ; __struct . baseline_b_mm = buf . get_i32_le () ; __struct . baseline_c_mm = buf . get_i32_le () ; __struct . accuracy = buf . get_u32_le () ; __struct . iar_num_hypotheses = buf . get_i32_le () ; __struct . wn = buf . get_u16_le () ; __struct . rtk_receiver_id = buf . get_u8 () ; __struct . rtk_health = buf . get_u8 () ; __struct . rtk_rate = buf . get_u8 () ; __struct . nsats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . baseline_coords_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "RtkBaselineCoordinateSystem" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_last_baseline_ms) ; __tmp . put_u32_le (self . tow) ; __tmp . put_i32_le (self . baseline_a_mm) ; __tmp . put_i32_le (self . baseline_b_mm) ; __tmp . put_i32_le (self . baseline_c_mm) ; __tmp . put_u32_le (self . accuracy) ; __tmp . put_i32_le (self . iar_num_hypotheses) ; __tmp . put_u16_le (self . wn) ; __tmp . put_u8 (self . rtk_receiver_id) ; __tmp . put_u8 (self . rtk_health) ; __tmp . put_u8 (self . rtk_rate) ; __tmp . put_u8 (self . nsats) ; __tmp . put_u8 (self . baseline_coords_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FOLLOW_TARGET_DATA { pub timestamp : u64 , pub custom_state : u64 , pub lat : i32 , pub lon : i32 , pub alt : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub attitude_q : [f32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rates : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub position_cov : [f32 ; 3] , pub est_capabilities : u8 , } impl FOLLOW_TARGET_DATA { pub const ENCODED_LEN : usize = 93usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , custom_state : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , vel : [0.0_f32 ; 3usize] , acc : [0.0_f32 ; 3usize] , attitude_q : [0.0_f32 ; 4usize] , rates : [0.0_f32 ; 3usize] , position_cov : [0.0_f32 ; 3usize] , est_capabilities : 0_u8 , } ; } impl Default for FOLLOW_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FOLLOW_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 144u32 ; const NAME : & 'static str = "FOLLOW_TARGET" ; const EXTRA_CRC : u8 = 127u8 ; const ENCODED_LEN : usize = 93usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . custom_state = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; for v in & mut __struct . vel { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . attitude_q { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . rates { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . position_cov { let val = buf . get_f32_le () ; * v = val ; } __struct . est_capabilities = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u64_le (self . custom_state) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; for val in & self . vel { __tmp . put_f32_le (* val) ; } for val in & self . acc { __tmp . put_f32_le (* val) ; } for val in & self . attitude_q { __tmp . put_f32_le (* val) ; } for val in & self . rates { __tmp . put_f32_le (* val) ; } for val in & self . position_cov { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . est_capabilities) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIND_DATA { pub direction : f32 , pub speed : f32 , pub speed_z : f32 , } impl WIND_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { direction : 0.0_f32 , speed : 0.0_f32 , speed_z : 0.0_f32 , } ; } impl Default for WIND_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIND_DATA { type Message = MavMessage ; const ID : u32 = 168u32 ; const NAME : & 'static str = "WIND" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . direction = buf . get_f32_le () ; __struct . speed = buf . get_f32_le () ; __struct . speed_z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . direction) ; __tmp . put_f32_le (self . speed) ; __tmp . put_f32_le (self . speed_z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_CURRENT_DATA { pub seq : u16 , } impl MISSION_CURRENT_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , } ; } impl Default for MISSION_CURRENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_CURRENT_DATA { type Message = MavMessage ; const ID : u32 = 42u32 ; const NAME : & 'static str = "MISSION_CURRENT" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_TORQUE_CMD_REPORT_DATA { pub rl_torque_cmd : i16 , pub el_torque_cmd : i16 , pub az_torque_cmd : i16 , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_TORQUE_CMD_REPORT_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { rl_torque_cmd : 0_i16 , el_torque_cmd : 0_i16 , az_torque_cmd : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_TORQUE_CMD_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_TORQUE_CMD_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 214u32 ; const NAME : & 'static str = "GIMBAL_TORQUE_CMD_REPORT" ; const EXTRA_CRC : u8 = 69u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . rl_torque_cmd = buf . get_i16_le () ; __struct . el_torque_cmd = buf . get_i16_le () ; __struct . az_torque_cmd = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . rl_torque_cmd) ; __tmp . put_i16_le (self . el_torque_cmd) ; __tmp . put_i16_le (self . az_torque_cmd) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GOPRO_SET_RESPONSE_DATA { pub cmd_id : GoproCommand , pub status : GoproRequestStatus , } impl GOPRO_SET_RESPONSE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { cmd_id : GoproCommand :: DEFAULT , status : GoproRequestStatus :: DEFAULT , } ; } impl Default for GOPRO_SET_RESPONSE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GOPRO_SET_RESPONSE_DATA { type Message = MavMessage ; const ID : u32 = 219u32 ; const NAME : & 'static str = "GOPRO_SET_RESPONSE" ; const EXTRA_CRC : u8 = 162u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . cmd_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproCommand" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproRequestStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . cmd_id as u8) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_INJECT_DATA_DATA { pub target_system : u8 , pub target_component : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 110] , } impl GPS_INJECT_DATA_DATA { pub const ENCODED_LEN : usize = 113usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , len : 0_u8 , data : [0_u8 ; 110usize] , } ; } impl Default for GPS_INJECT_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_INJECT_DATA_DATA { type Message = MavMessage ; const ID : u32 = 123u32 ; const NAME : & 'static str = "GPS_INJECT_DATA" ; const EXTRA_CRC : u8 = 250u8 ; const ENCODED_LEN : usize = 113usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SMART_BATTERY_INFO_DATA { pub capacity_full_specification : i32 , pub capacity_full : i32 , pub cycle_count : u16 , pub weight : u16 , pub discharge_minimum_voltage : u16 , pub charging_minimum_voltage : u16 , pub resting_minimum_voltage : u16 , pub id : u8 , pub battery_function : MavBatteryFunction , pub mavtype : MavBatteryType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub serial_number : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub device_name : [u8 ; 50] , } impl SMART_BATTERY_INFO_DATA { pub const ENCODED_LEN : usize = 87usize ; pub const DEFAULT : Self = Self { capacity_full_specification : 0_i32 , capacity_full : 0_i32 , cycle_count : 0_u16 , weight : 0_u16 , discharge_minimum_voltage : 0_u16 , charging_minimum_voltage : 0_u16 , resting_minimum_voltage : 0_u16 , id : 0_u8 , battery_function : MavBatteryFunction :: DEFAULT , mavtype : MavBatteryType :: DEFAULT , serial_number : [0_u8 ; 16usize] , device_name : [0_u8 ; 50usize] , } ; } impl Default for SMART_BATTERY_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SMART_BATTERY_INFO_DATA { type Message = MavMessage ; const ID : u32 = 370u32 ; const NAME : & 'static str = "SMART_BATTERY_INFO" ; const EXTRA_CRC : u8 = 75u8 ; const ENCODED_LEN : usize = 87usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . capacity_full_specification = buf . get_i32_le () ; __struct . capacity_full = buf . get_i32_le () ; __struct . cycle_count = buf . get_u16_le () ; __struct . weight = buf . get_u16_le () ; __struct . discharge_minimum_voltage = buf . get_u16_le () ; __struct . charging_minimum_voltage = buf . get_u16_le () ; __struct . resting_minimum_voltage = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . battery_function = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryFunction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryType" , value : tmp as u32 }) ? ; for v in & mut __struct . serial_number { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . device_name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . capacity_full_specification) ; __tmp . put_i32_le (self . capacity_full) ; __tmp . put_u16_le (self . cycle_count) ; __tmp . put_u16_le (self . weight) ; __tmp . put_u16_le (self . discharge_minimum_voltage) ; __tmp . put_u16_le (self . charging_minimum_voltage) ; __tmp . put_u16_le (self . resting_minimum_voltage) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . battery_function as u8) ; __tmp . put_u8 (self . mavtype as u8) ; for val in & self . serial_number { __tmp . put_u8 (* val) ; } for val in & self . device_name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ACTUATOR_CONTROL_TARGET_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 8] , pub group_mlx : u8 , } impl ACTUATOR_CONTROL_TARGET_DATA { pub const ENCODED_LEN : usize = 41usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , controls : [0.0_f32 ; 8usize] , group_mlx : 0_u8 , } ; } impl Default for ACTUATOR_CONTROL_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ACTUATOR_CONTROL_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 140u32 ; const NAME : & 'static str = "ACTUATOR_CONTROL_TARGET" ; const EXTRA_CRC : u8 = 181u8 ; const ENCODED_LEN : usize = 41usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } __struct . group_mlx = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . group_mlx) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA { pub offset : u32 , pub target_system : u8 , pub target_component : u8 , } impl CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { offset : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA { type Message = MavMessage ; const ID : u32 = 50005u32 ; const NAME : & 'static str = "CUBEPILOT_FIRMWARE_UPDATE_RESP" ; const EXTRA_CRC : u8 = 152u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . offset = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . offset) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA_TRANSMISSION_HANDSHAKE_DATA { pub size : u32 , pub width : u16 , pub height : u16 , pub packets : u16 , pub mavtype : MavlinkDataStreamType , pub payload : u8 , pub jpg_quality : u8 , } impl DATA_TRANSMISSION_HANDSHAKE_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { size : 0_u32 , width : 0_u16 , height : 0_u16 , packets : 0_u16 , mavtype : MavlinkDataStreamType :: DEFAULT , payload : 0_u8 , jpg_quality : 0_u8 , } ; } impl Default for DATA_TRANSMISSION_HANDSHAKE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA_TRANSMISSION_HANDSHAKE_DATA { type Message = MavMessage ; const ID : u32 = 130u32 ; const NAME : & 'static str = "DATA_TRANSMISSION_HANDSHAKE" ; const EXTRA_CRC : u8 = 29u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . size = buf . get_u32_le () ; __struct . width = buf . get_u16_le () ; __struct . height = buf . get_u16_le () ; __struct . packets = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavlinkDataStreamType" , value : tmp as u32 }) ? ; __struct . payload = buf . get_u8 () ; __struct . jpg_quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . size) ; __tmp . put_u16_le (self . width) ; __tmp . put_u16_le (self . height) ; __tmp . put_u16_le (self . packets) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . payload) ; __tmp . put_u8 (self . jpg_quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HYGROMETER_SENSOR_DATA { pub temperature : i16 , pub humidity : u16 , pub id : u8 , } impl HYGROMETER_SENSOR_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { temperature : 0_i16 , humidity : 0_u16 , id : 0_u8 , } ; } impl Default for HYGROMETER_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HYGROMETER_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 12920u32 ; const NAME : & 'static str = "HYGROMETER_SENSOR" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . temperature = buf . get_i16_le () ; __struct . humidity = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u16_le (self . humidity) ; __tmp . put_u8 (self . id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SYSTEM_TIME_DATA { pub time_unix_usec : u64 , pub time_boot_ms : u32 , } impl SYSTEM_TIME_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { time_unix_usec : 0_u64 , time_boot_ms : 0_u32 , } ; } impl Default for SYSTEM_TIME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SYSTEM_TIME_DATA { type Message = MavMessage ; const ID : u32 = 2u32 ; const NAME : & 'static str = "SYSTEM_TIME" ; const EXTRA_CRC : u8 = 137u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_unix_usec = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_unix_usec) ; __tmp . put_u32_le (self . time_boot_ms) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_END_DATA { pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_END_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_END_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_END_DATA { type Message = MavMessage ; const ID : u32 = 122u32 ; const NAME : & 'static str = "LOG_REQUEST_END" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PROTOCOL_VERSION_DATA { pub version : u16 , pub min_version : u16 , pub max_version : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub spec_version_hash : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub library_version_hash : [u8 ; 8] , } impl PROTOCOL_VERSION_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { version : 0_u16 , min_version : 0_u16 , max_version : 0_u16 , spec_version_hash : [0_u8 ; 8usize] , library_version_hash : [0_u8 ; 8usize] , } ; } impl Default for PROTOCOL_VERSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PROTOCOL_VERSION_DATA { type Message = MavMessage ; const ID : u32 = 300u32 ; const NAME : & 'static str = "PROTOCOL_VERSION" ; const EXTRA_CRC : u8 = 217u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . version = buf . get_u16_le () ; __struct . min_version = buf . get_u16_le () ; __struct . max_version = buf . get_u16_le () ; for v in & mut __struct . spec_version_hash { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . library_version_hash { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . version) ; __tmp . put_u16_le (self . min_version) ; __tmp . put_u16_le (self . max_version) ; for val in & self . spec_version_hash { __tmp . put_u8 (* val) ; } for val in & self . library_version_hash { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AIRSPEED_AUTOCAL_DATA { pub vx : f32 , pub vy : f32 , pub vz : f32 , pub diff_pressure : f32 , pub EAS2TAS : f32 , pub ratio : f32 , pub state_x : f32 , pub state_y : f32 , pub state_z : f32 , pub Pax : f32 , pub Pby : f32 , pub Pcz : f32 , } impl AIRSPEED_AUTOCAL_DATA { pub const ENCODED_LEN : usize = 48usize ; pub const DEFAULT : Self = Self { vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , diff_pressure : 0.0_f32 , EAS2TAS : 0.0_f32 , ratio : 0.0_f32 , state_x : 0.0_f32 , state_y : 0.0_f32 , state_z : 0.0_f32 , Pax : 0.0_f32 , Pby : 0.0_f32 , Pcz : 0.0_f32 , } ; } impl Default for AIRSPEED_AUTOCAL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AIRSPEED_AUTOCAL_DATA { type Message = MavMessage ; const ID : u32 = 174u32 ; const NAME : & 'static str = "AIRSPEED_AUTOCAL" ; const EXTRA_CRC : u8 = 167u8 ; const ENCODED_LEN : usize = 48usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . EAS2TAS = buf . get_f32_le () ; __struct . ratio = buf . get_f32_le () ; __struct . state_x = buf . get_f32_le () ; __struct . state_y = buf . get_f32_le () ; __struct . state_z = buf . get_f32_le () ; __struct . Pax = buf . get_f32_le () ; __struct . Pby = buf . get_f32_le () ; __struct . Pcz = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . EAS2TAS) ; __tmp . put_f32_le (self . ratio) ; __tmp . put_f32_le (self . state_x) ; __tmp . put_f32_le (self . state_y) ; __tmp . put_f32_le (self . state_z) ; __tmp . put_f32_le (self . Pax) ; __tmp . put_f32_le (self . Pby) ; __tmp . put_f32_le (self . Pcz) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_POSITION_INT_DATA { pub time_boot_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub hdg : u16 , } impl GLOBAL_POSITION_INT_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , hdg : 0_u16 , } ; } impl Default for GLOBAL_POSITION_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_POSITION_INT_DATA { type Message = MavMessage ; const ID : u32 = 33u32 ; const NAME : & 'static str = "GLOBAL_POSITION_INT" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . hdg = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . hdg) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ENCAPSULATED_DATA_DATA { pub seqnr : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 253] , } impl ENCAPSULATED_DATA_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { seqnr : 0_u16 , data : [0_u8 ; 253usize] , } ; } impl Default for ENCAPSULATED_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ENCAPSULATED_DATA_DATA { type Message = MavMessage ; const ID : u32 = 131u32 ; const NAME : & 'static str = "ENCAPSULATED_DATA" ; const EXTRA_CRC : u8 = 223u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seqnr = buf . get_u16_le () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seqnr) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { pub rfHealth : UavionixAdsbRfHealth , } impl UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { pub const ENCODED_LEN : usize = 1usize ; pub const DEFAULT : Self = Self { rfHealth : UavionixAdsbRfHealth :: DEFAULT , } ; } impl Default for UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 10003u32 ; const NAME : & 'static str = "UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 1usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . rfHealth = UavionixAdsbRfHealth :: from_bits (tmp & UavionixAdsbRfHealth :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UavionixAdsbRfHealth" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . rfHealth . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GOPRO_SET_REQUEST_DATA { pub target_system : u8 , pub target_component : u8 , pub cmd_id : GoproCommand , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub value : [u8 ; 4] , } impl GOPRO_SET_REQUEST_DATA { pub const ENCODED_LEN : usize = 7usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , cmd_id : GoproCommand :: DEFAULT , value : [0_u8 ; 4usize] , } ; } impl Default for GOPRO_SET_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GOPRO_SET_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 218u32 ; const NAME : & 'static str = "GOPRO_SET_REQUEST" ; const EXTRA_CRC : u8 = 17u8 ; const ENCODED_LEN : usize = 7usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . cmd_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproCommand" , value : tmp as u32 }) ? ; for v in & mut __struct . value { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . cmd_id as u8) ; for val in & self . value { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_LIST_DATA { pub start : u16 , pub end : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start : 0_u16 , end : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 117u32 ; const NAME : & 'static str = "LOG_REQUEST_LIST" ; const EXTRA_CRC : u8 = 128u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start = buf . get_u16_le () ; __struct . end = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . start) ; __tmp . put_u16_le (self . end) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_PITCHYAW_DATA { pub flags : GimbalManagerFlags , pub pitch : f32 , pub yaw : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_PITCHYAW_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , pitch : 0.0_f32 , yaw : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_PITCHYAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_PITCHYAW_DATA { type Message = MavMessage ; const ID : u32 = 287u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_PITCHYAW" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_MESSAGE_PACK_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub single_message_size : u8 , pub msg_pack_size : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub messages : [u8 ; 225] , } impl OPEN_DRONE_ID_MESSAGE_PACK_DATA { pub const ENCODED_LEN : usize = 249usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , single_message_size : 0_u8 , msg_pack_size : 0_u8 , messages : [0_u8 ; 225usize] , } ; } impl Default for OPEN_DRONE_ID_MESSAGE_PACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_MESSAGE_PACK_DATA { type Message = MavMessage ; const ID : u32 = 12915u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_MESSAGE_PACK" ; const EXTRA_CRC : u8 = 94u8 ; const ENCODED_LEN : usize = 249usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } __struct . single_message_size = buf . get_u8 () ; __struct . msg_pack_size = buf . get_u8 () ; for v in & mut __struct . messages { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . single_message_size) ; __tmp . put_u8 (self . msg_pack_size) ; for val in & self . messages { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_INFORMATION_DATA { pub time_boot_ms : u32 , pub cap_flags : GimbalManagerCapFlags , pub roll_min : f32 , pub roll_max : f32 , pub pitch_min : f32 , pub pitch_max : f32 , pub yaw_min : f32 , pub yaw_max : f32 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_INFORMATION_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , cap_flags : GimbalManagerCapFlags :: DEFAULT , roll_min : 0.0_f32 , roll_max : 0.0_f32 , pitch_min : 0.0_f32 , pitch_max : 0.0_f32 , yaw_min : 0.0_f32 , yaw_max : 0.0_f32 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 280u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_INFORMATION" ; const EXTRA_CRC : u8 = 70u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u32_le () ; __struct . cap_flags = GimbalManagerCapFlags :: from_bits (tmp & GimbalManagerCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalManagerCapFlags" , value : tmp as u32 }) ? ; __struct . roll_min = buf . get_f32_le () ; __struct . roll_max = buf . get_f32_le () ; __struct . pitch_min = buf . get_f32_le () ; __struct . pitch_max = buf . get_f32_le () ; __struct . yaw_min = buf . get_f32_le () ; __struct . yaw_max = buf . get_f32_le () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . cap_flags . bits ()) ; __tmp . put_f32_le (self . roll_min) ; __tmp . put_f32_le (self . roll_max) ; __tmp . put_f32_le (self . pitch_min) ; __tmp . put_f32_le (self . pitch_max) ; __tmp . put_f32_le (self . yaw_min) ; __tmp . put_f32_le (self . yaw_max) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_VECT_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl DEBUG_VECT_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , name : [0_u8 ; 10usize] , } ; } impl Default for DEBUG_VECT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_VECT_DATA { type Message = MavMessage ; const ID : u32 = 250u32 ; const NAME : & 'static str = "DEBUG_VECT" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_DATA { pub time_boot_ms : u32 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub chan9_raw : u16 , pub chan10_raw : u16 , pub chan11_raw : u16 , pub chan12_raw : u16 , pub chan13_raw : u16 , pub chan14_raw : u16 , pub chan15_raw : u16 , pub chan16_raw : u16 , pub chan17_raw : u16 , pub chan18_raw : u16 , pub chancount : u8 , pub rssi : u8 , } impl RC_CHANNELS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , chan9_raw : 0_u16 , chan10_raw : 0_u16 , chan11_raw : 0_u16 , chan12_raw : 0_u16 , chan13_raw : 0_u16 , chan14_raw : 0_u16 , chan15_raw : 0_u16 , chan16_raw : 0_u16 , chan17_raw : 0_u16 , chan18_raw : 0_u16 , chancount : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_DATA { type Message = MavMessage ; const ID : u32 = 65u32 ; const NAME : & 'static str = "RC_CHANNELS" ; const EXTRA_CRC : u8 = 118u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . chan9_raw = buf . get_u16_le () ; __struct . chan10_raw = buf . get_u16_le () ; __struct . chan11_raw = buf . get_u16_le () ; __struct . chan12_raw = buf . get_u16_le () ; __struct . chan13_raw = buf . get_u16_le () ; __struct . chan14_raw = buf . get_u16_le () ; __struct . chan15_raw = buf . get_u16_le () ; __struct . chan16_raw = buf . get_u16_le () ; __struct . chan17_raw = buf . get_u16_le () ; __struct . chan18_raw = buf . get_u16_le () ; __struct . chancount = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u16_le (self . chan9_raw) ; __tmp . put_u16_le (self . chan10_raw) ; __tmp . put_u16_le (self . chan11_raw) ; __tmp . put_u16_le (self . chan12_raw) ; __tmp . put_u16_le (self . chan13_raw) ; __tmp . put_u16_le (self . chan14_raw) ; __tmp . put_u16_le (self . chan15_raw) ; __tmp . put_u16_le (self . chan16_raw) ; __tmp . put_u16_le (self . chan17_raw) ; __tmp . put_u16_le (self . chan18_raw) ; __tmp . put_u8 (self . chancount) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SAFETY_ALLOWED_AREA_DATA { pub p1x : f32 , pub p1y : f32 , pub p1z : f32 , pub p2x : f32 , pub p2y : f32 , pub p2z : f32 , pub frame : MavFrame , } impl SAFETY_ALLOWED_AREA_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { p1x : 0.0_f32 , p1y : 0.0_f32 , p1z : 0.0_f32 , p2x : 0.0_f32 , p2y : 0.0_f32 , p2z : 0.0_f32 , frame : MavFrame :: DEFAULT , } ; } impl Default for SAFETY_ALLOWED_AREA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SAFETY_ALLOWED_AREA_DATA { type Message = MavMessage ; const ID : u32 = 55u32 ; const NAME : & 'static str = "SAFETY_ALLOWED_AREA" ; const EXTRA_CRC : u8 = 3u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . p1x = buf . get_f32_le () ; __struct . p1y = buf . get_f32_le () ; __struct . p1z = buf . get_f32_le () ; __struct . p2x = buf . get_f32_le () ; __struct . p2y = buf . get_f32_le () ; __struct . p2z = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . p1x) ; __tmp . put_f32_le (self . p1y) ; __tmp . put_f32_le (self . p1z) ; __tmp . put_f32_le (self . p2x) ; __tmp . put_f32_le (self . p2y) ; __tmp . put_f32_le (self . p2z) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SAFETY_SET_ALLOWED_AREA_DATA { pub p1x : f32 , pub p1y : f32 , pub p1z : f32 , pub p2x : f32 , pub p2y : f32 , pub p2z : f32 , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , } impl SAFETY_SET_ALLOWED_AREA_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { p1x : 0.0_f32 , p1y : 0.0_f32 , p1z : 0.0_f32 , p2x : 0.0_f32 , p2y : 0.0_f32 , p2z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , } ; } impl Default for SAFETY_SET_ALLOWED_AREA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SAFETY_SET_ALLOWED_AREA_DATA { type Message = MavMessage ; const ID : u32 = 54u32 ; const NAME : & 'static str = "SAFETY_SET_ALLOWED_AREA" ; const EXTRA_CRC : u8 = 15u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . p1x = buf . get_f32_le () ; __struct . p1y = buf . get_f32_le () ; __struct . p1z = buf . get_f32_le () ; __struct . p2x = buf . get_f32_le () ; __struct . p2y = buf . get_f32_le () ; __struct . p2z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . p1x) ; __tmp . put_f32_le (self . p1y) ; __tmp . put_f32_le (self . p1z) ; __tmp . put_f32_le (self . p2x) ; __tmp . put_f32_le (self . p2y) ; __tmp . put_f32_le (self . p2z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ACK_DATA { pub target_system : u8 , pub target_component : u8 , pub mavtype : MavMissionResult , } impl MISSION_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , mavtype : MavMissionResult :: DEFAULT , } ; } impl Default for MISSION_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ACK_DATA { type Message = MavMessage ; const ID : u32 = 47u32 ; const NAME : & 'static str = "MISSION_ACK" ; const EXTRA_CRC : u8 = 153u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMissionResult" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . mavtype as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UTM_GLOBAL_POSITION_DATA { pub time : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub next_lat : i32 , pub next_lon : i32 , pub next_alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub h_acc : u16 , pub v_acc : u16 , pub vel_acc : u16 , pub update_rate : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uas_id : [u8 ; 18] , pub flight_state : UtmFlightState , pub flags : UtmDataAvailFlags , } impl UTM_GLOBAL_POSITION_DATA { pub const ENCODED_LEN : usize = 70usize ; pub const DEFAULT : Self = Self { time : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , next_lat : 0_i32 , next_lon : 0_i32 , next_alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , h_acc : 0_u16 , v_acc : 0_u16 , vel_acc : 0_u16 , update_rate : 0_u16 , uas_id : [0_u8 ; 18usize] , flight_state : UtmFlightState :: DEFAULT , flags : UtmDataAvailFlags :: DEFAULT , } ; } impl Default for UTM_GLOBAL_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UTM_GLOBAL_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 340u32 ; const NAME : & 'static str = "UTM_GLOBAL_POSITION" ; const EXTRA_CRC : u8 = 99u8 ; const ENCODED_LEN : usize = 70usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . next_lat = buf . get_i32_le () ; __struct . next_lon = buf . get_i32_le () ; __struct . next_alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . h_acc = buf . get_u16_le () ; __struct . v_acc = buf . get_u16_le () ; __struct . vel_acc = buf . get_u16_le () ; __struct . update_rate = buf . get_u16_le () ; for v in & mut __struct . uas_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . flight_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UtmFlightState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = UtmDataAvailFlags :: from_bits (tmp & UtmDataAvailFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UtmDataAvailFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_i32_le (self . next_lat) ; __tmp . put_i32_le (self . next_lon) ; __tmp . put_i32_le (self . next_alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . h_acc) ; __tmp . put_u16_le (self . v_acc) ; __tmp . put_u16_le (self . vel_acc) ; __tmp . put_u16_le (self . update_rate) ; for val in & self . uas_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . flight_state as u8) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FLIGHT_INFORMATION_DATA { pub arming_time_utc : u64 , pub takeoff_time_utc : u64 , pub flight_uuid : u64 , pub time_boot_ms : u32 , } impl FLIGHT_INFORMATION_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { arming_time_utc : 0_u64 , takeoff_time_utc : 0_u64 , flight_uuid : 0_u64 , time_boot_ms : 0_u32 , } ; } impl Default for FLIGHT_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FLIGHT_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 264u32 ; const NAME : & 'static str = "FLIGHT_INFORMATION" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . arming_time_utc = buf . get_u64_le () ; __struct . takeoff_time_utc = buf . get_u64_le () ; __struct . flight_uuid = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . arming_time_utc) ; __tmp . put_u64_le (self . takeoff_time_utc) ; __tmp . put_u64_le (self . flight_uuid) ; __tmp . put_u32_le (self . time_boot_ms) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_TELEMETRY_1_TO_4_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltage : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub current : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub totalcurrent : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rpm : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub count : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature : [u8 ; 4] , } impl ESC_TELEMETRY_1_TO_4_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { voltage : [0_u16 ; 4usize] , current : [0_u16 ; 4usize] , totalcurrent : [0_u16 ; 4usize] , rpm : [0_u16 ; 4usize] , count : [0_u16 ; 4usize] , temperature : [0_u8 ; 4usize] , } ; } impl Default for ESC_TELEMETRY_1_TO_4_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_TELEMETRY_1_TO_4_DATA { type Message = MavMessage ; const ID : u32 = 11030u32 ; const NAME : & 'static str = "ESC_TELEMETRY_1_TO_4" ; const EXTRA_CRC : u8 = 144u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . voltage { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . current { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . totalcurrent { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . rpm { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . count { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . temperature { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . voltage { __tmp . put_u16_le (* val) ; } for val in & self . current { __tmp . put_u16_le (* val) ; } for val in & self . totalcurrent { __tmp . put_u16_le (* val) ; } for val in & self . rpm { __tmp . put_u16_le (* val) ; } for val in & self . count { __tmp . put_u16_le (* val) ; } for val in & self . temperature { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_ACK_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOGGING_ACK_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOGGING_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_ACK_DATA { type Message = MavMessage ; const ID : u32 = 268u32 ; const NAME : & 'static str = "LOGGING_ACK" ; const EXTRA_CRC : u8 = 14u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_LOCATION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude_barometric : f32 , pub altitude_geodetic : f32 , pub height : f32 , pub timestamp : f32 , pub direction : u16 , pub speed_horizontal : u16 , pub speed_vertical : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub status : MavOdidStatus , pub height_reference : MavOdidHeightRef , pub horizontal_accuracy : MavOdidHorAcc , pub vertical_accuracy : MavOdidVerAcc , pub barometer_accuracy : MavOdidVerAcc , pub speed_accuracy : MavOdidSpeedAcc , pub timestamp_accuracy : MavOdidTimeAcc , } impl OPEN_DRONE_ID_LOCATION_DATA { pub const ENCODED_LEN : usize = 59usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude_barometric : 0.0_f32 , altitude_geodetic : 0.0_f32 , height : 0.0_f32 , timestamp : 0.0_f32 , direction : 0_u16 , speed_horizontal : 0_u16 , speed_vertical : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , status : MavOdidStatus :: DEFAULT , height_reference : MavOdidHeightRef :: DEFAULT , horizontal_accuracy : MavOdidHorAcc :: DEFAULT , vertical_accuracy : MavOdidVerAcc :: DEFAULT , barometer_accuracy : MavOdidVerAcc :: DEFAULT , speed_accuracy : MavOdidSpeedAcc :: DEFAULT , timestamp_accuracy : MavOdidTimeAcc :: DEFAULT , } ; } impl Default for OPEN_DRONE_ID_LOCATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_LOCATION_DATA { type Message = MavMessage ; const ID : u32 = 12901u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_LOCATION" ; const EXTRA_CRC : u8 = 254u8 ; const ENCODED_LEN : usize = 59usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude_barometric = buf . get_f32_le () ; __struct . altitude_geodetic = buf . get_f32_le () ; __struct . height = buf . get_f32_le () ; __struct . timestamp = buf . get_f32_le () ; __struct . direction = buf . get_u16_le () ; __struct . speed_horizontal = buf . get_u16_le () ; __struct . speed_vertical = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . height_reference = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidHeightRef" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . horizontal_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidHorAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . vertical_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidVerAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . barometer_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidVerAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . speed_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidSpeedAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . timestamp_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidTimeAcc" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_f32_le (self . altitude_barometric) ; __tmp . put_f32_le (self . altitude_geodetic) ; __tmp . put_f32_le (self . height) ; __tmp . put_f32_le (self . timestamp) ; __tmp . put_u16_le (self . direction) ; __tmp . put_u16_le (self . speed_horizontal) ; __tmp . put_i16_le (self . speed_vertical) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . height_reference as u8) ; __tmp . put_u8 (self . horizontal_accuracy as u8) ; __tmp . put_u8 (self . vertical_accuracy as u8) ; __tmp . put_u8 (self . barometer_accuracy as u8) ; __tmp . put_u8 (self . speed_accuracy as u8) ; __tmp . put_u8 (self . timestamp_accuracy as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGH_LATENCY2_DATA { pub timestamp : u32 , pub latitude : i32 , pub longitude : i32 , pub custom_mode : u16 , pub altitude : i16 , pub target_altitude : i16 , pub target_distance : u16 , pub wp_num : u16 , pub failure_flags : HlFailureFlag , pub mavtype : MavType , pub autopilot : MavAutopilot , pub heading : u8 , pub target_heading : u8 , pub throttle : u8 , pub airspeed : u8 , pub airspeed_sp : u8 , pub groundspeed : u8 , pub windspeed : u8 , pub wind_heading : u8 , pub eph : u8 , pub epv : u8 , pub temperature_air : i8 , pub climb_rate : i8 , pub battery : i8 , pub custom0 : i8 , pub custom1 : i8 , pub custom2 : i8 , } impl HIGH_LATENCY2_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { timestamp : 0_u32 , latitude : 0_i32 , longitude : 0_i32 , custom_mode : 0_u16 , altitude : 0_i16 , target_altitude : 0_i16 , target_distance : 0_u16 , wp_num : 0_u16 , failure_flags : HlFailureFlag :: DEFAULT , mavtype : MavType :: DEFAULT , autopilot : MavAutopilot :: DEFAULT , heading : 0_u8 , target_heading : 0_u8 , throttle : 0_u8 , airspeed : 0_u8 , airspeed_sp : 0_u8 , groundspeed : 0_u8 , windspeed : 0_u8 , wind_heading : 0_u8 , eph : 0_u8 , epv : 0_u8 , temperature_air : 0_i8 , climb_rate : 0_i8 , battery : 0_i8 , custom0 : 0_i8 , custom1 : 0_i8 , custom2 : 0_i8 , } ; } impl Default for HIGH_LATENCY2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGH_LATENCY2_DATA { type Message = MavMessage ; const ID : u32 = 235u32 ; const NAME : & 'static str = "HIGH_LATENCY2" ; const EXTRA_CRC : u8 = 179u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u32_le () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . custom_mode = buf . get_u16_le () ; __struct . altitude = buf . get_i16_le () ; __struct . target_altitude = buf . get_i16_le () ; __struct . target_distance = buf . get_u16_le () ; __struct . wp_num = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . failure_flags = HlFailureFlag :: from_bits (tmp & HlFailureFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HlFailureFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . autopilot = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavAutopilot" , value : tmp as u32 }) ? ; __struct . heading = buf . get_u8 () ; __struct . target_heading = buf . get_u8 () ; __struct . throttle = buf . get_u8 () ; __struct . airspeed = buf . get_u8 () ; __struct . airspeed_sp = buf . get_u8 () ; __struct . groundspeed = buf . get_u8 () ; __struct . windspeed = buf . get_u8 () ; __struct . wind_heading = buf . get_u8 () ; __struct . eph = buf . get_u8 () ; __struct . epv = buf . get_u8 () ; __struct . temperature_air = buf . get_i8 () ; __struct . climb_rate = buf . get_i8 () ; __struct . battery = buf . get_i8 () ; __struct . custom0 = buf . get_i8 () ; __struct . custom1 = buf . get_i8 () ; __struct . custom2 = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_u16_le (self . custom_mode) ; __tmp . put_i16_le (self . altitude) ; __tmp . put_i16_le (self . target_altitude) ; __tmp . put_u16_le (self . target_distance) ; __tmp . put_u16_le (self . wp_num) ; __tmp . put_u16_le (self . failure_flags . bits ()) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . autopilot as u8) ; __tmp . put_u8 (self . heading) ; __tmp . put_u8 (self . target_heading) ; __tmp . put_u8 (self . throttle) ; __tmp . put_u8 (self . airspeed) ; __tmp . put_u8 (self . airspeed_sp) ; __tmp . put_u8 (self . groundspeed) ; __tmp . put_u8 (self . windspeed) ; __tmp . put_u8 (self . wind_heading) ; __tmp . put_u8 (self . eph) ; __tmp . put_u8 (self . epv) ; __tmp . put_i8 (self . temperature_air) ; __tmp . put_i8 (self . climb_rate) ; __tmp . put_i8 (self . battery) ; __tmp . put_i8 (self . custom0) ; __tmp . put_i8 (self . custom1) ; __tmp . put_i8 (self . custom2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TIME_ESTIMATE_TO_TARGET_DATA { pub safe_return : i32 , pub land : i32 , pub mission_next_item : i32 , pub mission_end : i32 , pub commanded_action : i32 , } impl TIME_ESTIMATE_TO_TARGET_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { safe_return : 0_i32 , land : 0_i32 , mission_next_item : 0_i32 , mission_end : 0_i32 , commanded_action : 0_i32 , } ; } impl Default for TIME_ESTIMATE_TO_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TIME_ESTIMATE_TO_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 380u32 ; const NAME : & 'static str = "TIME_ESTIMATE_TO_TARGET" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . safe_return = buf . get_i32_le () ; __struct . land = buf . get_i32_le () ; __struct . mission_next_item = buf . get_i32_le () ; __struct . mission_end = buf . get_i32_le () ; __struct . commanded_action = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . safe_return) ; __tmp . put_i32_le (self . land) ; __tmp . put_i32_le (self . mission_next_item) ; __tmp . put_i32_le (self . mission_end) ; __tmp . put_i32_le (self . commanded_action) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ICAROUS_KINEMATIC_BANDS_DATA { pub min1 : f32 , pub max1 : f32 , pub min2 : f32 , pub max2 : f32 , pub min3 : f32 , pub max3 : f32 , pub min4 : f32 , pub max4 : f32 , pub min5 : f32 , pub max5 : f32 , pub numBands : i8 , pub type1 : IcarousTrackBandTypes , pub type2 : IcarousTrackBandTypes , pub type3 : IcarousTrackBandTypes , pub type4 : IcarousTrackBandTypes , pub type5 : IcarousTrackBandTypes , } impl ICAROUS_KINEMATIC_BANDS_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { min1 : 0.0_f32 , max1 : 0.0_f32 , min2 : 0.0_f32 , max2 : 0.0_f32 , min3 : 0.0_f32 , max3 : 0.0_f32 , min4 : 0.0_f32 , max4 : 0.0_f32 , min5 : 0.0_f32 , max5 : 0.0_f32 , numBands : 0_i8 , type1 : IcarousTrackBandTypes :: DEFAULT , type2 : IcarousTrackBandTypes :: DEFAULT , type3 : IcarousTrackBandTypes :: DEFAULT , type4 : IcarousTrackBandTypes :: DEFAULT , type5 : IcarousTrackBandTypes :: DEFAULT , } ; } impl Default for ICAROUS_KINEMATIC_BANDS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ICAROUS_KINEMATIC_BANDS_DATA { type Message = MavMessage ; const ID : u32 = 42001u32 ; const NAME : & 'static str = "ICAROUS_KINEMATIC_BANDS" ; const EXTRA_CRC : u8 = 239u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . min1 = buf . get_f32_le () ; __struct . max1 = buf . get_f32_le () ; __struct . min2 = buf . get_f32_le () ; __struct . max2 = buf . get_f32_le () ; __struct . min3 = buf . get_f32_le () ; __struct . max3 = buf . get_f32_le () ; __struct . min4 = buf . get_f32_le () ; __struct . max4 = buf . get_f32_le () ; __struct . min5 = buf . get_f32_le () ; __struct . max5 = buf . get_f32_le () ; __struct . numBands = buf . get_i8 () ; let tmp = buf . get_u8 () ; __struct . type1 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type2 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type3 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type4 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type5 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . min1) ; __tmp . put_f32_le (self . max1) ; __tmp . put_f32_le (self . min2) ; __tmp . put_f32_le (self . max2) ; __tmp . put_f32_le (self . min3) ; __tmp . put_f32_le (self . max3) ; __tmp . put_f32_le (self . min4) ; __tmp . put_f32_le (self . max4) ; __tmp . put_f32_le (self . min5) ; __tmp . put_f32_le (self . max5) ; __tmp . put_i8 (self . numBands) ; __tmp . put_u8 (self . type1 as u8) ; __tmp . put_u8 (self . type2 as u8) ; __tmp . put_u8 (self . type3 as u8) ; __tmp . put_u8 (self . type4 as u8) ; __tmp . put_u8 (self . type5 as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FENCE_FETCH_POINT_DATA { pub target_system : u8 , pub target_component : u8 , pub idx : u8 , } impl FENCE_FETCH_POINT_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , idx : 0_u8 , } ; } impl Default for FENCE_FETCH_POINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FENCE_FETCH_POINT_DATA { type Message = MavMessage ; const ID : u32 = 161u32 ; const NAME : & 'static str = "FENCE_FETCH_POINT" ; const EXTRA_CRC : u8 = 68u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . idx = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . idx) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_STATE_DATA { pub time_usec : u64 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , } impl HIL_STATE_DATA { pub const ENCODED_LEN : usize = 56usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , } ; } impl Default for HIL_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_STATE_DATA { type Message = MavMessage ; const ID : u32 = 90u32 ; const NAME : & 'static str = "HIL_STATE" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 56usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_FLOAT_ARRAY_DATA { pub time_usec : u64 , pub array_id : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl DEBUG_FLOAT_ARRAY_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , array_id : 0_u16 , name : [0_u8 ; 10usize] , } ; } impl Default for DEBUG_FLOAT_ARRAY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_FLOAT_ARRAY_DATA { type Message = MavMessage ; const ID : u32 = 350u32 ; const NAME : & 'static str = "DEBUG_FLOAT_ARRAY" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . array_id = buf . get_u16_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u16_le (self . array_id) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CUBEPILOT_RAW_RC_DATA { } impl CUBEPILOT_RAW_RC_DATA { pub const ENCODED_LEN : usize = 0usize ; pub const DEFAULT : Self = Self { } ; } impl Default for CUBEPILOT_RAW_RC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CUBEPILOT_RAW_RC_DATA { type Message = MavMessage ; const ID : u32 = 50001u32 ; const NAME : & 'static str = "CUBEPILOT_RAW_RC" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 0usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { Ok (Self :: default ()) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ORBIT_EXECUTION_STATUS_DATA { pub time_usec : u64 , pub radius : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub frame : MavFrame , } impl ORBIT_EXECUTION_STATUS_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , radius : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , frame : MavFrame :: DEFAULT , } ; } impl Default for ORBIT_EXECUTION_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ORBIT_EXECUTION_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 360u32 ; const NAME : & 'static str = "ORBIT_EXECUTION_STATUS" ; const EXTRA_CRC : u8 = 11u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . radius = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . radius) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_BASIC_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub id_type : MavOdidIdType , pub ua_type : MavOdidUaType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uas_id : [u8 ; 20] , } impl OPEN_DRONE_ID_BASIC_ID_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , id_type : MavOdidIdType :: DEFAULT , ua_type : MavOdidUaType :: DEFAULT , uas_id : [0_u8 ; 20usize] , } ; } impl Default for OPEN_DRONE_ID_BASIC_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_BASIC_ID_DATA { type Message = MavMessage ; const ID : u32 = 12900u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_BASIC_ID" ; const EXTRA_CRC : u8 = 114u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . id_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidIdType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . ua_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidUaType" , value : tmp as u32 }) ? ; for v in & mut __struct . uas_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . id_type as u8) ; __tmp . put_u8 (self . ua_type as u8) ; for val in & self . uas_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VFR_HUD_DATA { pub airspeed : f32 , pub groundspeed : f32 , pub alt : f32 , pub climb : f32 , pub heading : i16 , pub throttle : u16 , } impl VFR_HUD_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { airspeed : 0.0_f32 , groundspeed : 0.0_f32 , alt : 0.0_f32 , climb : 0.0_f32 , heading : 0_i16 , throttle : 0_u16 , } ; } impl Default for VFR_HUD_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VFR_HUD_DATA { type Message = MavMessage ; const ID : u32 = 74u32 ; const NAME : & 'static str = "VFR_HUD" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . airspeed = buf . get_f32_le () ; __struct . groundspeed = buf . get_f32_le () ; __struct . alt = buf . get_f32_le () ; __struct . climb = buf . get_f32_le () ; __struct . heading = buf . get_i16_le () ; __struct . throttle = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . airspeed) ; __tmp . put_f32_le (self . groundspeed) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . climb) ; __tmp . put_i16_le (self . heading) ; __tmp . put_u16_le (self . throttle) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OSD_PARAM_CONFIG_REPLY_DATA { pub request_id : u32 , pub result : OsdParamConfigError , } impl OSD_PARAM_CONFIG_REPLY_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , result : OsdParamConfigError :: DEFAULT , } ; } impl Default for OSD_PARAM_CONFIG_REPLY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OSD_PARAM_CONFIG_REPLY_DATA { type Message = MavMessage ; const ID : u32 = 11034u32 ; const NAME : & 'static str = "OSD_PARAM_CONFIG_REPLY" ; const EXTRA_CRC : u8 = 79u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "OsdParamConfigError" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_u8 (self . result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LIMITS_STATUS_DATA { pub last_trigger : u32 , pub last_action : u32 , pub last_recovery : u32 , pub last_clear : u32 , pub breach_count : u16 , pub limits_state : LimitsState , pub mods_enabled : LimitModule , pub mods_required : LimitModule , pub mods_triggered : LimitModule , } impl LIMITS_STATUS_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { last_trigger : 0_u32 , last_action : 0_u32 , last_recovery : 0_u32 , last_clear : 0_u32 , breach_count : 0_u16 , limits_state : LimitsState :: DEFAULT , mods_enabled : LimitModule :: DEFAULT , mods_required : LimitModule :: DEFAULT , mods_triggered : LimitModule :: DEFAULT , } ; } impl Default for LIMITS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LIMITS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 167u32 ; const NAME : & 'static str = "LIMITS_STATUS" ; const EXTRA_CRC : u8 = 144u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . last_trigger = buf . get_u32_le () ; __struct . last_action = buf . get_u32_le () ; __struct . last_recovery = buf . get_u32_le () ; __struct . last_clear = buf . get_u32_le () ; __struct . breach_count = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . limits_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "LimitsState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mods_enabled = LimitModule :: from_bits (tmp & LimitModule :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "LimitModule" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mods_required = LimitModule :: from_bits (tmp & LimitModule :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "LimitModule" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mods_triggered = LimitModule :: from_bits (tmp & LimitModule :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "LimitModule" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . last_trigger) ; __tmp . put_u32_le (self . last_action) ; __tmp . put_u32_le (self . last_recovery) ; __tmp . put_u32_le (self . last_clear) ; __tmp . put_u16_le (self . breach_count) ; __tmp . put_u8 (self . limits_state as u8) ; __tmp . put_u8 (self . mods_enabled . bits ()) ; __tmp . put_u8 (self . mods_required . bits ()) ; __tmp . put_u8 (self . mods_triggered . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVCAN_NODE_STATUS_DATA { pub time_usec : u64 , pub uptime_sec : u32 , pub vendor_specific_status_code : u16 , pub health : UavcanNodeHealth , pub mode : UavcanNodeMode , pub sub_mode : u8 , } impl UAVCAN_NODE_STATUS_DATA { pub const ENCODED_LEN : usize = 17usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime_sec : 0_u32 , vendor_specific_status_code : 0_u16 , health : UavcanNodeHealth :: DEFAULT , mode : UavcanNodeMode :: DEFAULT , sub_mode : 0_u8 , } ; } impl Default for UAVCAN_NODE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVCAN_NODE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 310u32 ; const NAME : & 'static str = "UAVCAN_NODE_STATUS" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 17usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime_sec = buf . get_u32_le () ; __struct . vendor_specific_status_code = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . health = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavcanNodeHealth" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavcanNodeMode" , value : tmp as u32 }) ? ; __struct . sub_mode = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime_sec) ; __tmp . put_u16_le (self . vendor_specific_status_code) ; __tmp . put_u8 (self . health as u8) ; __tmp . put_u8 (self . mode as u8) ; __tmp . put_u8 (self . sub_mode) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RESOURCE_REQUEST_DATA { pub request_id : u8 , pub uri_type : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 120] , pub transfer_type : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage : [u8 ; 120] , } impl RESOURCE_REQUEST_DATA { pub const ENCODED_LEN : usize = 243usize ; pub const DEFAULT : Self = Self { request_id : 0_u8 , uri_type : 0_u8 , uri : [0_u8 ; 120usize] , transfer_type : 0_u8 , storage : [0_u8 ; 120usize] , } ; } impl Default for RESOURCE_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RESOURCE_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 142u32 ; const NAME : & 'static str = "RESOURCE_REQUEST" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 243usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u8 () ; __struct . uri_type = buf . get_u8 () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } __struct . transfer_type = buf . get_u8 () ; for v in & mut __struct . storage { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . request_id) ; __tmp . put_u8 (self . uri_type) ; for val in & self . uri { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . transfer_type) ; for val in & self . storage { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_REACHED_DATA { pub seq : u16 , } impl MISSION_ITEM_REACHED_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , } ; } impl Default for MISSION_ITEM_REACHED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_REACHED_DATA { type Message = MavMessage ; const ID : u32 = 46u32 ; const NAME : & 'static str = "MISSION_ITEM_REACHED" ; const EXTRA_CRC : u8 = 11u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GOPRO_GET_RESPONSE_DATA { pub cmd_id : GoproCommand , pub status : GoproRequestStatus , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub value : [u8 ; 4] , } impl GOPRO_GET_RESPONSE_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { cmd_id : GoproCommand :: DEFAULT , status : GoproRequestStatus :: DEFAULT , value : [0_u8 ; 4usize] , } ; } impl Default for GOPRO_GET_RESPONSE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GOPRO_GET_RESPONSE_DATA { type Message = MavMessage ; const ID : u32 = 217u32 ; const NAME : & 'static str = "GOPRO_GET_RESPONSE" ; const EXTRA_CRC : u8 = 202u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . cmd_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproCommand" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproRequestStatus" , value : tmp as u32 }) ? ; for v in & mut __struct . value { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . cmd_id as u8) ; __tmp . put_u8 (self . status as u8) ; for val in & self . value { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GENERATOR_STATUS_DATA { pub status : MavGeneratorStatusFlag , pub battery_current : f32 , pub load_current : f32 , pub power_generated : f32 , pub bus_voltage : f32 , pub bat_current_setpoint : f32 , pub runtime : u32 , pub time_until_maintenance : i32 , pub generator_speed : u16 , pub rectifier_temperature : i16 , pub generator_temperature : i16 , } impl GENERATOR_STATUS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { status : MavGeneratorStatusFlag :: DEFAULT , battery_current : 0.0_f32 , load_current : 0.0_f32 , power_generated : 0.0_f32 , bus_voltage : 0.0_f32 , bat_current_setpoint : 0.0_f32 , runtime : 0_u32 , time_until_maintenance : 0_i32 , generator_speed : 0_u16 , rectifier_temperature : 0_i16 , generator_temperature : 0_i16 , } ; } impl Default for GENERATOR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GENERATOR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 373u32 ; const NAME : & 'static str = "GENERATOR_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u64_le () ; __struct . status = MavGeneratorStatusFlag :: from_bits (tmp & MavGeneratorStatusFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavGeneratorStatusFlag" , value : tmp as u32 }) ? ; __struct . battery_current = buf . get_f32_le () ; __struct . load_current = buf . get_f32_le () ; __struct . power_generated = buf . get_f32_le () ; __struct . bus_voltage = buf . get_f32_le () ; __struct . bat_current_setpoint = buf . get_f32_le () ; __struct . runtime = buf . get_u32_le () ; __struct . time_until_maintenance = buf . get_i32_le () ; __struct . generator_speed = buf . get_u16_le () ; __struct . rectifier_temperature = buf . get_i16_le () ; __struct . generator_temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . status . bits ()) ; __tmp . put_f32_le (self . battery_current) ; __tmp . put_f32_le (self . load_current) ; __tmp . put_f32_le (self . power_generated) ; __tmp . put_f32_le (self . bus_voltage) ; __tmp . put_f32_le (self . bat_current_setpoint) ; __tmp . put_u32_le (self . runtime) ; __tmp . put_i32_le (self . time_until_maintenance) ; __tmp . put_u16_le (self . generator_speed) ; __tmp . put_i16_le (self . rectifier_temperature) ; __tmp . put_i16_le (self . generator_temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_CONTROLS_DATA { pub time_usec : u64 , pub roll_ailerons : f32 , pub pitch_elevator : f32 , pub yaw_rudder : f32 , pub throttle : f32 , pub aux1 : f32 , pub aux2 : f32 , pub aux3 : f32 , pub aux4 : f32 , pub mode : MavMode , pub nav_mode : u8 , } impl HIL_CONTROLS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , roll_ailerons : 0.0_f32 , pitch_elevator : 0.0_f32 , yaw_rudder : 0.0_f32 , throttle : 0.0_f32 , aux1 : 0.0_f32 , aux2 : 0.0_f32 , aux3 : 0.0_f32 , aux4 : 0.0_f32 , mode : MavMode :: DEFAULT , nav_mode : 0_u8 , } ; } impl Default for HIL_CONTROLS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_CONTROLS_DATA { type Message = MavMessage ; const ID : u32 = 91u32 ; const NAME : & 'static str = "HIL_CONTROLS" ; const EXTRA_CRC : u8 = 63u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . roll_ailerons = buf . get_f32_le () ; __struct . pitch_elevator = buf . get_f32_le () ; __struct . yaw_rudder = buf . get_f32_le () ; __struct . throttle = buf . get_f32_le () ; __struct . aux1 = buf . get_f32_le () ; __struct . aux2 = buf . get_f32_le () ; __struct . aux3 = buf . get_f32_le () ; __struct . aux4 = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMode" , value : tmp as u32 }) ? ; __struct . nav_mode = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . roll_ailerons) ; __tmp . put_f32_le (self . pitch_elevator) ; __tmp . put_f32_le (self . yaw_rudder) ; __tmp . put_f32_le (self . throttle) ; __tmp . put_f32_le (self . aux1) ; __tmp . put_f32_le (self . aux2) ; __tmp . put_f32_le (self . aux3) ; __tmp . put_f32_le (self . aux4) ; __tmp . put_u8 (self . mode as u8) ; __tmp . put_u8 (self . nav_mode) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CHANGE_OPERATOR_CONTROL_ACK_DATA { pub gcs_system_id : u8 , pub control_request : u8 , pub ack : u8 , } impl CHANGE_OPERATOR_CONTROL_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { gcs_system_id : 0_u8 , control_request : 0_u8 , ack : 0_u8 , } ; } impl Default for CHANGE_OPERATOR_CONTROL_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CHANGE_OPERATOR_CONTROL_ACK_DATA { type Message = MavMessage ; const ID : u32 = 6u32 ; const NAME : & 'static str = "CHANGE_OPERATOR_CONTROL_ACK" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . gcs_system_id = buf . get_u8 () ; __struct . control_request = buf . get_u8 () ; __struct . ack = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . gcs_system_id) ; __tmp . put_u8 (self . control_request) ; __tmp . put_u8 (self . ack) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_DATA_ACKED_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , pub length : u8 , pub first_message_offset : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 249] , } impl LOGGING_DATA_ACKED_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , length : 0_u8 , first_message_offset : 0_u8 , data : [0_u8 ; 249usize] , } ; } impl Default for LOGGING_DATA_ACKED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_DATA_ACKED_DATA { type Message = MavMessage ; const ID : u32 = 267u32 ; const NAME : & 'static str = "LOGGING_DATA_ACKED" ; const EXTRA_CRC : u8 = 35u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . length = buf . get_u8 () ; __struct . first_message_offset = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . length) ; __tmp . put_u8 (self . first_message_offset) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_POSITION_TARGET_GLOBAL_INT_DATA { pub time_boot_ms : u32 , pub lat_int : i32 , pub lon_int : i32 , pub alt : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub target_system : u8 , pub target_component : u8 , pub coordinate_frame : MavFrame , } impl SET_POSITION_TARGET_GLOBAL_INT_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_int : 0_i32 , lon_int : 0_i32 , alt : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for SET_POSITION_TARGET_GLOBAL_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_POSITION_TARGET_GLOBAL_INT_DATA { type Message = MavMessage ; const ID : u32 = 86u32 ; const NAME : & 'static str = "SET_POSITION_TARGET_GLOBAL_INT" ; const EXTRA_CRC : u8 = 5u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_int = buf . get_i32_le () ; __struct . lon_int = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_int) ; __tmp . put_i32_le (self . lon_int) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVCAN_NODE_INFO_DATA { pub time_usec : u64 , pub uptime_sec : u32 , pub sw_vcs_commit : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 80] , pub hw_version_major : u8 , pub hw_version_minor : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub hw_unique_id : [u8 ; 16] , pub sw_version_major : u8 , pub sw_version_minor : u8 , } impl UAVCAN_NODE_INFO_DATA { pub const ENCODED_LEN : usize = 116usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime_sec : 0_u32 , sw_vcs_commit : 0_u32 , name : [0_u8 ; 80usize] , hw_version_major : 0_u8 , hw_version_minor : 0_u8 , hw_unique_id : [0_u8 ; 16usize] , sw_version_major : 0_u8 , sw_version_minor : 0_u8 , } ; } impl Default for UAVCAN_NODE_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVCAN_NODE_INFO_DATA { type Message = MavMessage ; const ID : u32 = 311u32 ; const NAME : & 'static str = "UAVCAN_NODE_INFO" ; const EXTRA_CRC : u8 = 95u8 ; const ENCODED_LEN : usize = 116usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime_sec = buf . get_u32_le () ; __struct . sw_vcs_commit = buf . get_u32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } __struct . hw_version_major = buf . get_u8 () ; __struct . hw_version_minor = buf . get_u8 () ; for v in & mut __struct . hw_unique_id { let val = buf . get_u8 () ; * v = val ; } __struct . sw_version_major = buf . get_u8 () ; __struct . sw_version_minor = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime_sec) ; __tmp . put_u32_le (self . sw_vcs_commit) ; for val in & self . name { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . hw_version_major) ; __tmp . put_u8 (self . hw_version_minor) ; for val in & self . hw_unique_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . sw_version_major) ; __tmp . put_u8 (self . sw_version_minor) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SUPPORTED_TUNES_DATA { pub format : TuneFormat , pub target_system : u8 , pub target_component : u8 , } impl SUPPORTED_TUNES_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { format : TuneFormat :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SUPPORTED_TUNES_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SUPPORTED_TUNES_DATA { type Message = MavMessage ; const ID : u32 = 401u32 ; const NAME : & 'static str = "SUPPORTED_TUNES" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . format = TuneFormat :: from_bits (tmp & TuneFormat :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "TuneFormat" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . format . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CHANGE_OPERATOR_CONTROL_DATA { pub target_system : u8 , pub control_request : u8 , pub version : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub passkey : [u8 ; 25] , } impl CHANGE_OPERATOR_CONTROL_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , control_request : 0_u8 , version : 0_u8 , passkey : [0_u8 ; 25usize] , } ; } impl Default for CHANGE_OPERATOR_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CHANGE_OPERATOR_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 5u32 ; const NAME : & 'static str = "CHANGE_OPERATOR_CONTROL" ; const EXTRA_CRC : u8 = 217u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . control_request = buf . get_u8 () ; __struct . version = buf . get_u8 () ; for v in & mut __struct . passkey { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . control_request) ; __tmp . put_u8 (self . version) ; for val in & self . passkey { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , } impl LOCAL_POSITION_NED_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , } ; } impl Default for LOCAL_POSITION_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_DATA { type Message = MavMessage ; const ID : u32 = 32u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED" ; const EXTRA_CRC : u8 = 185u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_INT_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl COMMAND_INT_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for COMMAND_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_INT_DATA { type Message = MavMessage ; const ID : u32 = 75u32 ; const NAME : & 'static str = "COMMAND_INT" ; const EXTRA_CRC : u8 = 158u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FENCE_STATUS_DATA { pub breach_time : u32 , pub breach_count : u16 , pub breach_status : u8 , pub breach_type : FenceBreach , } impl FENCE_STATUS_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { breach_time : 0_u32 , breach_count : 0_u16 , breach_status : 0_u8 , breach_type : FenceBreach :: DEFAULT , } ; } impl Default for FENCE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FENCE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 162u32 ; const NAME : & 'static str = "FENCE_STATUS" ; const EXTRA_CRC : u8 = 189u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . breach_time = buf . get_u32_le () ; __struct . breach_count = buf . get_u16_le () ; __struct . breach_status = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . breach_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "FenceBreach" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . breach_time) ; __tmp . put_u16_le (self . breach_count) ; __tmp . put_u8 (self . breach_status) ; __tmp . put_u8 (self . breach_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ADAP_TUNING_DATA { pub desired : f32 , pub achieved : f32 , pub error : f32 , pub theta : f32 , pub omega : f32 , pub sigma : f32 , pub theta_dot : f32 , pub omega_dot : f32 , pub sigma_dot : f32 , pub f : f32 , pub f_dot : f32 , pub u : f32 , pub axis : PidTuningAxis , } impl ADAP_TUNING_DATA { pub const ENCODED_LEN : usize = 49usize ; pub const DEFAULT : Self = Self { desired : 0.0_f32 , achieved : 0.0_f32 , error : 0.0_f32 , theta : 0.0_f32 , omega : 0.0_f32 , sigma : 0.0_f32 , theta_dot : 0.0_f32 , omega_dot : 0.0_f32 , sigma_dot : 0.0_f32 , f : 0.0_f32 , f_dot : 0.0_f32 , u : 0.0_f32 , axis : PidTuningAxis :: DEFAULT , } ; } impl Default for ADAP_TUNING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ADAP_TUNING_DATA { type Message = MavMessage ; const ID : u32 = 11010u32 ; const NAME : & 'static str = "ADAP_TUNING" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 49usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . desired = buf . get_f32_le () ; __struct . achieved = buf . get_f32_le () ; __struct . error = buf . get_f32_le () ; __struct . theta = buf . get_f32_le () ; __struct . omega = buf . get_f32_le () ; __struct . sigma = buf . get_f32_le () ; __struct . theta_dot = buf . get_f32_le () ; __struct . omega_dot = buf . get_f32_le () ; __struct . sigma_dot = buf . get_f32_le () ; __struct . f = buf . get_f32_le () ; __struct . f_dot = buf . get_f32_le () ; __struct . u = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . axis = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "PidTuningAxis" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . desired) ; __tmp . put_f32_le (self . achieved) ; __tmp . put_f32_le (self . error) ; __tmp . put_f32_le (self . theta) ; __tmp . put_f32_le (self . omega) ; __tmp . put_f32_le (self . sigma) ; __tmp . put_f32_le (self . theta_dot) ; __tmp . put_f32_le (self . omega_dot) ; __tmp . put_f32_le (self . sigma_dot) ; __tmp . put_f32_le (self . f) ; __tmp . put_f32_le (self . f_dot) ; __tmp . put_f32_le (self . u) ; __tmp . put_u8 (self . axis as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VICON_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl VICON_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for VICON_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VICON_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 104u32 ; const NAME : & 'static str = "VICON_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 56u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_WRITE_PARTIAL_LIST_DATA { pub start_index : i16 , pub end_index : i16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_WRITE_PARTIAL_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start_index : 0_i16 , end_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_WRITE_PARTIAL_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_WRITE_PARTIAL_LIST_DATA { type Message = MavMessage ; const ID : u32 = 38u32 ; const NAME : & 'static str = "MISSION_WRITE_PARTIAL_LIST" ; const EXTRA_CRC : u8 = 9u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start_index = buf . get_i16_le () ; __struct . end_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . start_index) ; __tmp . put_i16_le (self . end_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RALLY_POINT_DATA { pub lat : i32 , pub lng : i32 , pub alt : i16 , pub break_alt : i16 , pub land_dir : u16 , pub target_system : u8 , pub target_component : u8 , pub idx : u8 , pub count : u8 , pub flags : RallyFlags , } impl RALLY_POINT_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lng : 0_i32 , alt : 0_i16 , break_alt : 0_i16 , land_dir : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , idx : 0_u8 , count : 0_u8 , flags : RallyFlags :: DEFAULT , } ; } impl Default for RALLY_POINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RALLY_POINT_DATA { type Message = MavMessage ; const ID : u32 = 175u32 ; const NAME : & 'static str = "RALLY_POINT" ; const EXTRA_CRC : u8 = 138u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lng = buf . get_i32_le () ; __struct . alt = buf . get_i16_le () ; __struct . break_alt = buf . get_i16_le () ; __struct . land_dir = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . idx = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . flags = RallyFlags :: from_bits (tmp & RallyFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "RallyFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lng) ; __tmp . put_i16_le (self . alt) ; __tmp . put_i16_le (self . break_alt) ; __tmp . put_u16_le (self . land_dir) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . idx) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_STATUS_DATA { pub satellites_visible : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_prn : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_used : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_elevation : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_azimuth : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_snr : [u8 ; 20] , } impl GPS_STATUS_DATA { pub const ENCODED_LEN : usize = 101usize ; pub const DEFAULT : Self = Self { satellites_visible : 0_u8 , satellite_prn : [0_u8 ; 20usize] , satellite_used : [0_u8 ; 20usize] , satellite_elevation : [0_u8 ; 20usize] , satellite_azimuth : [0_u8 ; 20usize] , satellite_snr : [0_u8 ; 20usize] , } ; } impl Default for GPS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 25u32 ; const NAME : & 'static str = "GPS_STATUS" ; const EXTRA_CRC : u8 = 23u8 ; const ENCODED_LEN : usize = 101usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . satellites_visible = buf . get_u8 () ; for v in & mut __struct . satellite_prn { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_used { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_elevation { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_azimuth { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_snr { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . satellites_visible) ; for val in & self . satellite_prn { __tmp . put_u8 (* val) ; } for val in & self . satellite_used { __tmp . put_u8 (* val) ; } for val in & self . satellite_elevation { __tmp . put_u8 (* val) ; } for val in & self . satellite_azimuth { __tmp . put_u8 (* val) ; } for val in & self . satellite_snr { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OSD_PARAM_CONFIG_DATA { pub request_id : u32 , pub min_value : f32 , pub max_value : f32 , pub increment : f32 , pub target_system : u8 , pub target_component : u8 , pub osd_screen : u8 , pub osd_index : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub config_type : OsdParamConfigType , } impl OSD_PARAM_CONFIG_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , min_value : 0.0_f32 , max_value : 0.0_f32 , increment : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , osd_screen : 0_u8 , osd_index : 0_u8 , param_id : [0_u8 ; 16usize] , config_type : OsdParamConfigType :: DEFAULT , } ; } impl Default for OSD_PARAM_CONFIG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OSD_PARAM_CONFIG_DATA { type Message = MavMessage ; const ID : u32 = 11033u32 ; const NAME : & 'static str = "OSD_PARAM_CONFIG" ; const EXTRA_CRC : u8 = 195u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . min_value = buf . get_f32_le () ; __struct . max_value = buf . get_f32_le () ; __struct . increment = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . osd_screen = buf . get_u8 () ; __struct . osd_index = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . config_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "OsdParamConfigType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_f32_le (self . min_value) ; __tmp . put_f32_le (self . max_value) ; __tmp . put_f32_le (self . increment) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . osd_screen) ; __tmp . put_u8 (self . osd_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . config_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AHRS2_DATA { pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub altitude : f32 , pub lat : i32 , pub lng : i32 , } impl AHRS2_DATA { pub const ENCODED_LEN : usize = 24usize ; pub const DEFAULT : Self = Self { roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , altitude : 0.0_f32 , lat : 0_i32 , lng : 0_i32 , } ; } impl Default for AHRS2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AHRS2_DATA { type Message = MavMessage ; const ID : u32 = 178u32 ; const NAME : & 'static str = "AHRS2" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 24usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . altitude = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lng = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . altitude) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lng) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_QUATERNION_COV_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 9] , } impl ATTITUDE_QUATERNION_COV_DATA { pub const ENCODED_LEN : usize = 72usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , q : [0.0_f32 ; 4usize] , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , covariance : [0.0_f32 ; 9usize] , } ; } impl Default for ATTITUDE_QUATERNION_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_QUATERNION_COV_DATA { type Message = MavMessage ; const ID : u32 = 61u32 ; const NAME : & 'static str = "ATTITUDE_QUATERNION_COV" ; const EXTRA_CRC : u8 = 167u8 ; const ENCODED_LEN : usize = 72usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OBSTACLE_DISTANCE_3D_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub min_distance : f32 , pub max_distance : f32 , pub obstacle_id : u16 , pub sensor_type : MavDistanceSensor , pub frame : MavFrame , } impl OBSTACLE_DISTANCE_3D_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , min_distance : 0.0_f32 , max_distance : 0.0_f32 , obstacle_id : 0_u16 , sensor_type : MavDistanceSensor :: DEFAULT , frame : MavFrame :: DEFAULT , } ; } impl Default for OBSTACLE_DISTANCE_3D_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OBSTACLE_DISTANCE_3D_DATA { type Message = MavMessage ; const ID : u32 = 11037u32 ; const NAME : & 'static str = "OBSTACLE_DISTANCE_3D" ; const EXTRA_CRC : u8 = 130u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . min_distance = buf . get_f32_le () ; __struct . max_distance = buf . get_f32_le () ; __struct . obstacle_id = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . sensor_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . min_distance) ; __tmp . put_f32_le (self . max_distance) ; __tmp . put_u16_le (self . obstacle_id) ; __tmp . put_u8 (self . sensor_type as u8) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl VISION_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for VISION_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 102u32 ; const NAME : & 'static str = "VISION_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 158u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_STATUS_DATA { pub time_boot_ms : u32 , pub flags : GimbalManagerFlags , pub gimbal_device_id : u8 , pub primary_control_sysid : u8 , pub primary_control_compid : u8 , pub secondary_control_sysid : u8 , pub secondary_control_compid : u8 , } impl GIMBAL_MANAGER_STATUS_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , flags : GimbalManagerFlags :: DEFAULT , gimbal_device_id : 0_u8 , primary_control_sysid : 0_u8 , primary_control_compid : 0_u8 , secondary_control_sysid : 0_u8 , secondary_control_compid : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 281u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_STATUS" ; const EXTRA_CRC : u8 = 48u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . gimbal_device_id = buf . get_u8 () ; __struct . primary_control_sysid = buf . get_u8 () ; __struct . primary_control_compid = buf . get_u8 () ; __struct . secondary_control_sysid = buf . get_u8 () ; __struct . secondary_control_compid = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_u8 (self . gimbal_device_id) ; __tmp . put_u8 (self . primary_control_sysid) ; __tmp . put_u8 (self . primary_control_compid) ; __tmp . put_u8 (self . secondary_control_sysid) ; __tmp . put_u8 (self . secondary_control_compid) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ACTUATOR_OUTPUT_STATUS_DATA { pub time_usec : u64 , pub active : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub actuator : [f32 ; 32] , } impl ACTUATOR_OUTPUT_STATUS_DATA { pub const ENCODED_LEN : usize = 140usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , active : 0_u32 , actuator : [0.0_f32 ; 32usize] , } ; } impl Default for ACTUATOR_OUTPUT_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ACTUATOR_OUTPUT_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 375u32 ; const NAME : & 'static str = "ACTUATOR_OUTPUT_STATUS" ; const EXTRA_CRC : u8 = 251u8 ; const ENCODED_LEN : usize = 140usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . active = buf . get_u32_le () ; for v in & mut __struct . actuator { let val = buf . get_f32_le () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . active) ; for val in & self . actuator { __tmp . put_f32_le (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_STATUS_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rpm : [i32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltage : [f32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub current : [f32 ; 4] , pub index : u8 , } impl ESC_STATUS_DATA { pub const ENCODED_LEN : usize = 57usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , rpm : [0_i32 ; 4usize] , voltage : [0.0_f32 ; 4usize] , current : [0.0_f32 ; 4usize] , index : 0_u8 , } ; } impl Default for ESC_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 291u32 ; const NAME : & 'static str = "ESC_STATUS" ; const EXTRA_CRC : u8 = 10u8 ; const ENCODED_LEN : usize = 57usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . rpm { let val = buf . get_i32_le () ; * v = val ; } for v in & mut __struct . voltage { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . current { let val = buf . get_f32_le () ; * v = val ; } __struct . index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . rpm { __tmp . put_i32_le (* val) ; } for val in & self . voltage { __tmp . put_f32_le (* val) ; } for val in & self . current { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RANGEFINDER_DATA { pub distance : f32 , pub voltage : f32 , } impl RANGEFINDER_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { distance : 0.0_f32 , voltage : 0.0_f32 , } ; } impl Default for RANGEFINDER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RANGEFINDER_DATA { type Message = MavMessage ; const ID : u32 = 173u32 ; const NAME : & 'static str = "RANGEFINDER" ; const EXTRA_CRC : u8 = 83u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . distance = buf . get_f32_le () ; __struct . voltage = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . distance) ; __tmp . put_f32_le (self . voltage) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REMOTE_LOG_DATA_BLOCK_DATA { pub seqno : MavRemoteLogDataBlockCommands , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 200] , } impl REMOTE_LOG_DATA_BLOCK_DATA { pub const ENCODED_LEN : usize = 206usize ; pub const DEFAULT : Self = Self { seqno : MavRemoteLogDataBlockCommands :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , data : [0_u8 ; 200usize] , } ; } impl Default for REMOTE_LOG_DATA_BLOCK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REMOTE_LOG_DATA_BLOCK_DATA { type Message = MavMessage ; const ID : u32 = 184u32 ; const NAME : & 'static str = "REMOTE_LOG_DATA_BLOCK" ; const EXTRA_CRC : u8 = 159u8 ; const ENCODED_LEN : usize = 206usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . seqno = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavRemoteLogDataBlockCommands" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . seqno as u32) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FENCE_POINT_DATA { pub lat : f32 , pub lng : f32 , pub target_system : u8 , pub target_component : u8 , pub idx : u8 , pub count : u8 , } impl FENCE_POINT_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { lat : 0.0_f32 , lng : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , idx : 0_u8 , count : 0_u8 , } ; } impl Default for FENCE_POINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FENCE_POINT_DATA { type Message = MavMessage ; const ID : u32 = 160u32 ; const NAME : & 'static str = "FENCE_POINT" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_f32_le () ; __struct . lng = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . idx = buf . get_u8 () ; __struct . count = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . lat) ; __tmp . put_f32_le (self . lng) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . idx) ; __tmp . put_u8 (self . count) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_TELEMETRY_5_TO_8_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltage : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub current : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub totalcurrent : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rpm : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub count : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature : [u8 ; 4] , } impl ESC_TELEMETRY_5_TO_8_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { voltage : [0_u16 ; 4usize] , current : [0_u16 ; 4usize] , totalcurrent : [0_u16 ; 4usize] , rpm : [0_u16 ; 4usize] , count : [0_u16 ; 4usize] , temperature : [0_u8 ; 4usize] , } ; } impl Default for ESC_TELEMETRY_5_TO_8_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_TELEMETRY_5_TO_8_DATA { type Message = MavMessage ; const ID : u32 = 11031u32 ; const NAME : & 'static str = "ESC_TELEMETRY_5_TO_8" ; const EXTRA_CRC : u8 = 133u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . voltage { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . current { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . totalcurrent { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . rpm { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . count { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . temperature { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . voltage { __tmp . put_u16_le (* val) ; } for val in & self . current { __tmp . put_u16_le (* val) ; } for val in & self . totalcurrent { __tmp . put_u16_le (* val) ; } for val in & self . rpm { __tmp . put_u16_le (* val) ; } for val in & self . count { __tmp . put_u16_le (* val) ; } for val in & self . temperature { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIND_COV_DATA { pub time_usec : u64 , pub wind_x : f32 , pub wind_y : f32 , pub wind_z : f32 , pub var_horiz : f32 , pub var_vert : f32 , pub wind_alt : f32 , pub horiz_accuracy : f32 , pub vert_accuracy : f32 , } impl WIND_COV_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , wind_x : 0.0_f32 , wind_y : 0.0_f32 , wind_z : 0.0_f32 , var_horiz : 0.0_f32 , var_vert : 0.0_f32 , wind_alt : 0.0_f32 , horiz_accuracy : 0.0_f32 , vert_accuracy : 0.0_f32 , } ; } impl Default for WIND_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIND_COV_DATA { type Message = MavMessage ; const ID : u32 = 231u32 ; const NAME : & 'static str = "WIND_COV" ; const EXTRA_CRC : u8 = 105u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . wind_x = buf . get_f32_le () ; __struct . wind_y = buf . get_f32_le () ; __struct . wind_z = buf . get_f32_le () ; __struct . var_horiz = buf . get_f32_le () ; __struct . var_vert = buf . get_f32_le () ; __struct . wind_alt = buf . get_f32_le () ; __struct . horiz_accuracy = buf . get_f32_le () ; __struct . vert_accuracy = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . wind_x) ; __tmp . put_f32_le (self . wind_y) ; __tmp . put_f32_le (self . wind_z) ; __tmp . put_f32_le (self . var_horiz) ; __tmp . put_f32_le (self . var_vert) ; __tmp . put_f32_le (self . wind_alt) ; __tmp . put_f32_le (self . horiz_accuracy) ; __tmp . put_f32_le (self . vert_accuracy) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FILE_TRANSFER_PROTOCOL_DATA { pub target_network : u8 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 251] , } impl FILE_TRANSFER_PROTOCOL_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { target_network : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , payload : [0_u8 ; 251usize] , } ; } impl Default for FILE_TRANSFER_PROTOCOL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FILE_TRANSFER_PROTOCOL_DATA { type Message = MavMessage ; const ID : u32 = 110u32 ; const NAME : & 'static str = "FILE_TRANSFER_PROTOCOL" ; const EXTRA_CRC : u8 = 84u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_network = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_network) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : f32 , pub y : f32 , pub z : f32 , pub seq : u16 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl MISSION_ITEM_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , seq : 0_u16 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for MISSION_ITEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_DATA { type Message = MavMessage ; const ID : u32 = 39u32 ; const NAME : & 'static str = "MISSION_ITEM" ; const EXTRA_CRC : u8 = 254u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . seq = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MANUAL_SETPOINT_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub thrust : f32 , pub mode_switch : u8 , pub manual_override_switch : u8 , } impl MANUAL_SETPOINT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , thrust : 0.0_f32 , mode_switch : 0_u8 , manual_override_switch : 0_u8 , } ; } impl Default for MANUAL_SETPOINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MANUAL_SETPOINT_DATA { type Message = MavMessage ; const ID : u32 = 81u32 ; const NAME : & 'static str = "MANUAL_SETPOINT" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; __struct . mode_switch = buf . get_u8 () ; __struct . manual_override_switch = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . mode_switch) ; __tmp . put_u8 (self . manual_override_switch) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPTICAL_FLOW_DATA { pub time_usec : u64 , pub flow_comp_m_x : f32 , pub flow_comp_m_y : f32 , pub ground_distance : f32 , pub flow_x : i16 , pub flow_y : i16 , pub sensor_id : u8 , pub quality : u8 , } impl OPTICAL_FLOW_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , flow_comp_m_x : 0.0_f32 , flow_comp_m_y : 0.0_f32 , ground_distance : 0.0_f32 , flow_x : 0_i16 , flow_y : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for OPTICAL_FLOW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPTICAL_FLOW_DATA { type Message = MavMessage ; const ID : u32 = 100u32 ; const NAME : & 'static str = "OPTICAL_FLOW" ; const EXTRA_CRC : u8 = 175u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . flow_comp_m_x = buf . get_f32_le () ; __struct . flow_comp_m_y = buf . get_f32_le () ; __struct . ground_distance = buf . get_f32_le () ; __struct . flow_x = buf . get_i16_le () ; __struct . flow_y = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . flow_comp_m_x) ; __tmp . put_f32_le (self . flow_comp_m_y) ; __tmp . put_f32_le (self . ground_distance) ; __tmp . put_i16_le (self . flow_x) ; __tmp . put_i16_le (self . flow_y) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WHEEL_DISTANCE_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub distance : [f64 ; 16] , pub count : u8 , } impl WHEEL_DISTANCE_DATA { pub const ENCODED_LEN : usize = 137usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , distance : [0.0_f64 ; 16usize] , count : 0_u8 , } ; } impl Default for WHEEL_DISTANCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WHEEL_DISTANCE_DATA { type Message = MavMessage ; const ID : u32 = 9000u32 ; const NAME : & 'static str = "WHEEL_DISTANCE" ; const EXTRA_CRC : u8 = 113u8 ; const ENCODED_LEN : usize = 137usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . distance { let val = buf . get_f64_le () ; * v = val ; } __struct . count = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . distance { __tmp . put_f64_le (* val) ; } __tmp . put_u8 (self . count) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SERVO_OUTPUT_RAW_DATA { pub time_usec : u32 , pub servo1_raw : u16 , pub servo2_raw : u16 , pub servo3_raw : u16 , pub servo4_raw : u16 , pub servo5_raw : u16 , pub servo6_raw : u16 , pub servo7_raw : u16 , pub servo8_raw : u16 , pub port : u8 , } impl SERVO_OUTPUT_RAW_DATA { pub const ENCODED_LEN : usize = 21usize ; pub const DEFAULT : Self = Self { time_usec : 0_u32 , servo1_raw : 0_u16 , servo2_raw : 0_u16 , servo3_raw : 0_u16 , servo4_raw : 0_u16 , servo5_raw : 0_u16 , servo6_raw : 0_u16 , servo7_raw : 0_u16 , servo8_raw : 0_u16 , port : 0_u8 , } ; } impl Default for SERVO_OUTPUT_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SERVO_OUTPUT_RAW_DATA { type Message = MavMessage ; const ID : u32 = 36u32 ; const NAME : & 'static str = "SERVO_OUTPUT_RAW" ; const EXTRA_CRC : u8 = 222u8 ; const ENCODED_LEN : usize = 21usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u32_le () ; __struct . servo1_raw = buf . get_u16_le () ; __struct . servo2_raw = buf . get_u16_le () ; __struct . servo3_raw = buf . get_u16_le () ; __struct . servo4_raw = buf . get_u16_le () ; __struct . servo5_raw = buf . get_u16_le () ; __struct . servo6_raw = buf . get_u16_le () ; __struct . servo7_raw = buf . get_u16_le () ; __struct . servo8_raw = buf . get_u16_le () ; __struct . port = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_usec) ; __tmp . put_u16_le (self . servo1_raw) ; __tmp . put_u16_le (self . servo2_raw) ; __tmp . put_u16_le (self . servo3_raw) ; __tmp . put_u16_le (self . servo4_raw) ; __tmp . put_u16_le (self . servo5_raw) ; __tmp . put_u16_le (self . servo6_raw) ; __tmp . put_u16_le (self . servo7_raw) ; __tmp . put_u16_le (self . servo8_raw) ; __tmp . put_u8 (self . port) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POSITION_TARGET_LOCAL_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub coordinate_frame : MavFrame , } impl POSITION_TARGET_LOCAL_NED_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for POSITION_TARGET_LOCAL_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POSITION_TARGET_LOCAL_NED_DATA { type Message = MavMessage ; const ID : u32 = 85u32 ; const NAME : & 'static str = "POSITION_TARGET_LOCAL_NED" ; const EXTRA_CRC : u8 = 140u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_ENTRY_DATA { pub time_utc : u32 , pub size : u32 , pub id : u16 , pub num_logs : u16 , pub last_log_num : u16 , } impl LOG_ENTRY_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_utc : 0_u32 , size : 0_u32 , id : 0_u16 , num_logs : 0_u16 , last_log_num : 0_u16 , } ; } impl Default for LOG_ENTRY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_ENTRY_DATA { type Message = MavMessage ; const ID : u32 = 118u32 ; const NAME : & 'static str = "LOG_ENTRY" ; const EXTRA_CRC : u8 = 56u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_utc = buf . get_u32_le () ; __struct . size = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . num_logs = buf . get_u16_le () ; __struct . last_log_num = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_utc) ; __tmp . put_u32_le (self . size) ; __tmp . put_u16_le (self . id) ; __tmp . put_u16_le (self . num_logs) ; __tmp . put_u16_le (self . last_log_num) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_SET_DATA { pub param_value : f32 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub param_type : MavParamType , } impl PARAM_SET_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { param_value : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , param_type : MavParamType :: DEFAULT , } ; } impl Default for PARAM_SET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_SET_DATA { type Message = MavMessage ; const ID : u32 = 23u32 ; const NAME : & 'static str = "PARAM_SET" ; const EXTRA_CRC : u8 = 168u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AP_ADC_DATA { pub adc1 : u16 , pub adc2 : u16 , pub adc3 : u16 , pub adc4 : u16 , pub adc5 : u16 , pub adc6 : u16 , } impl AP_ADC_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { adc1 : 0_u16 , adc2 : 0_u16 , adc3 : 0_u16 , adc4 : 0_u16 , adc5 : 0_u16 , adc6 : 0_u16 , } ; } impl Default for AP_ADC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AP_ADC_DATA { type Message = MavMessage ; const ID : u32 = 153u32 ; const NAME : & 'static str = "AP_ADC" ; const EXTRA_CRC : u8 = 188u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . adc1 = buf . get_u16_le () ; __struct . adc2 = buf . get_u16_le () ; __struct . adc3 = buf . get_u16_le () ; __struct . adc4 = buf . get_u16_le () ; __struct . adc5 = buf . get_u16_le () ; __struct . adc6 = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . adc1) ; __tmp . put_u16_le (self . adc2) ; __tmp . put_u16_le (self . adc3) ; __tmp . put_u16_le (self . adc4) ; __tmp . put_u16_le (self . adc5) ; __tmp . put_u16_le (self . adc6) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_POSITION_TARGET_LOCAL_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub target_system : u8 , pub target_component : u8 , pub coordinate_frame : MavFrame , } impl SET_POSITION_TARGET_LOCAL_NED_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for SET_POSITION_TARGET_LOCAL_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_POSITION_TARGET_LOCAL_NED_DATA { type Message = MavMessage ; const ID : u32 = 84u32 ; const NAME : & 'static str = "SET_POSITION_TARGET_LOCAL_NED" ; const EXTRA_CRC : u8 = 143u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEVICE_OP_WRITE_REPLY_DATA { pub request_id : u32 , pub result : u8 , } impl DEVICE_OP_WRITE_REPLY_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , result : 0_u8 , } ; } impl Default for DEVICE_OP_WRITE_REPLY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEVICE_OP_WRITE_REPLY_DATA { type Message = MavMessage ; const ID : u32 = 11003u32 ; const NAME : & 'static str = "DEVICE_OP_WRITE_REPLY" ; const EXTRA_CRC : u8 = 64u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . result = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_u8 (self . result) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MOUNT_STATUS_DATA { pub pointing_a : i32 , pub pointing_b : i32 , pub pointing_c : i32 , pub target_system : u8 , pub target_component : u8 , } impl MOUNT_STATUS_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { pointing_a : 0_i32 , pointing_b : 0_i32 , pointing_c : 0_i32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MOUNT_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MOUNT_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 158u32 ; const NAME : & 'static str = "MOUNT_STATUS" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . pointing_a = buf . get_i32_le () ; __struct . pointing_b = buf . get_i32_le () ; __struct . pointing_c = buf . get_i32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . pointing_a) ; __tmp . put_i32_le (self . pointing_b) ; __tmp . put_i32_le (self . pointing_c) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA16_DATA { pub mavtype : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 16] , } impl DATA16_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { mavtype : 0_u8 , len : 0_u8 , data : [0_u8 ; 16usize] , } ; } impl Default for DATA16_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA16_DATA { type Message = MavMessage ; const ID : u32 = 169u32 ; const NAME : & 'static str = "DATA16" ; const EXTRA_CRC : u8 = 234u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mavtype = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . mavtype) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SIMSTATE_DATA { pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub lat : i32 , pub lng : i32 , } impl SIMSTATE_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , lat : 0_i32 , lng : 0_i32 , } ; } impl Default for SIMSTATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SIMSTATE_DATA { type Message = MavMessage ; const ID : u32 = 164u32 ; const NAME : & 'static str = "SIMSTATE" ; const EXTRA_CRC : u8 = 154u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lng = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lng) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MAG_CAL_REPORT_DATA { pub fitness : f32 , pub ofs_x : f32 , pub ofs_y : f32 , pub ofs_z : f32 , pub diag_x : f32 , pub diag_y : f32 , pub diag_z : f32 , pub offdiag_x : f32 , pub offdiag_y : f32 , pub offdiag_z : f32 , pub compass_id : u8 , pub cal_mask : u8 , pub cal_status : MagCalStatus , pub autosaved : u8 , } impl MAG_CAL_REPORT_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { fitness : 0.0_f32 , ofs_x : 0.0_f32 , ofs_y : 0.0_f32 , ofs_z : 0.0_f32 , diag_x : 0.0_f32 , diag_y : 0.0_f32 , diag_z : 0.0_f32 , offdiag_x : 0.0_f32 , offdiag_y : 0.0_f32 , offdiag_z : 0.0_f32 , compass_id : 0_u8 , cal_mask : 0_u8 , cal_status : MagCalStatus :: DEFAULT , autosaved : 0_u8 , } ; } impl Default for MAG_CAL_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MAG_CAL_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 192u32 ; const NAME : & 'static str = "MAG_CAL_REPORT" ; const EXTRA_CRC : u8 = 36u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . fitness = buf . get_f32_le () ; __struct . ofs_x = buf . get_f32_le () ; __struct . ofs_y = buf . get_f32_le () ; __struct . ofs_z = buf . get_f32_le () ; __struct . diag_x = buf . get_f32_le () ; __struct . diag_y = buf . get_f32_le () ; __struct . diag_z = buf . get_f32_le () ; __struct . offdiag_x = buf . get_f32_le () ; __struct . offdiag_y = buf . get_f32_le () ; __struct . offdiag_z = buf . get_f32_le () ; __struct . compass_id = buf . get_u8 () ; __struct . cal_mask = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . cal_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MagCalStatus" , value : tmp as u32 }) ? ; __struct . autosaved = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . fitness) ; __tmp . put_f32_le (self . ofs_x) ; __tmp . put_f32_le (self . ofs_y) ; __tmp . put_f32_le (self . ofs_z) ; __tmp . put_f32_le (self . diag_x) ; __tmp . put_f32_le (self . diag_y) ; __tmp . put_f32_le (self . diag_z) ; __tmp . put_f32_le (self . offdiag_x) ; __tmp . put_f32_le (self . offdiag_y) ; __tmp . put_f32_le (self . offdiag_z) ; __tmp . put_u8 (self . compass_id) ; __tmp . put_u8 (self . cal_mask) ; __tmp . put_u8 (self . cal_status as u8) ; __tmp . put_u8 (self . autosaved) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE2_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE2_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE2_DATA { type Message = MavMessage ; const ID : u32 = 137u32 ; const NAME : & 'static str = "SCALED_PRESSURE2" ; const EXTRA_CRC : u8 = 195u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CUBEPILOT_FIRMWARE_UPDATE_START_DATA { pub size : u32 , pub crc : u32 , pub target_system : u8 , pub target_component : u8 , } impl CUBEPILOT_FIRMWARE_UPDATE_START_DATA { pub const ENCODED_LEN : usize = 10usize ; pub const DEFAULT : Self = Self { size : 0_u32 , crc : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for CUBEPILOT_FIRMWARE_UPDATE_START_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CUBEPILOT_FIRMWARE_UPDATE_START_DATA { type Message = MavMessage ; const ID : u32 = 50004u32 ; const NAME : & 'static str = "CUBEPILOT_FIRMWARE_UPDATE_START" ; const EXTRA_CRC : u8 = 240u8 ; const ENCODED_LEN : usize = 10usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . size = buf . get_u32_le () ; __struct . crc = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . size) ; __tmp . put_u32_le (self . crc) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_MODE_DATA { pub custom_mode : u32 , pub target_system : u8 , pub base_mode : MavMode , } impl SET_MODE_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , target_system : 0_u8 , base_mode : MavMode :: DEFAULT , } ; } impl Default for SET_MODE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_MODE_DATA { type Message = MavMessage ; const ID : u32 = 11u32 ; const NAME : & 'static str = "SET_MODE" ; const EXTRA_CRC : u8 = 89u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . base_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMode" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . base_mode as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SETUP_SIGNING_DATA { pub initial_timestamp : u64 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub secret_key : [u8 ; 32] , } impl SETUP_SIGNING_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { initial_timestamp : 0_u64 , target_system : 0_u8 , target_component : 0_u8 , secret_key : [0_u8 ; 32usize] , } ; } impl Default for SETUP_SIGNING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SETUP_SIGNING_DATA { type Message = MavMessage ; const ID : u32 = 256u32 ; const NAME : & 'static str = "SETUP_SIGNING" ; const EXTRA_CRC : u8 = 71u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . initial_timestamp = buf . get_u64_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . secret_key { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . initial_timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . secret_key { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_SET_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , } impl PARAM_EXT_SET_DATA { pub const ENCODED_LEN : usize = 147usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , } ; } impl Default for PARAM_EXT_SET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_SET_DATA { type Message = MavMessage ; const ID : u32 = 323u32 ; const NAME : & 'static str = "PARAM_EXT_SET" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 147usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HOME_POSITION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub approach_x : f32 , pub approach_y : f32 , pub approach_z : f32 , } impl HOME_POSITION_DATA { pub const ENCODED_LEN : usize = 52usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , approach_x : 0.0_f32 , approach_y : 0.0_f32 , approach_z : 0.0_f32 , } ; } impl Default for HOME_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HOME_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 242u32 ; const NAME : & 'static str = "HOME_POSITION" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 52usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . approach_x = buf . get_f32_le () ; __struct . approach_y = buf . get_f32_le () ; __struct . approach_z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . approach_x) ; __tmp . put_f32_le (self . approach_y) ; __tmp . put_f32_le (self . approach_z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_RPM_DATA { pub frequency : f32 , pub index : u8 , } impl RAW_RPM_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { frequency : 0.0_f32 , index : 0_u8 , } ; } impl Default for RAW_RPM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_RPM_DATA { type Message = MavMessage ; const ID : u32 = 339u32 ; const NAME : & 'static str = "RAW_RPM" ; const EXTRA_CRC : u8 = 199u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . frequency = buf . get_f32_le () ; __struct . index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . frequency) ; __tmp . put_u8 (self . index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_INFO_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub error_count : [u32 ; 4] , pub counter : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub failure_flags : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature : [i16 ; 4] , pub index : u8 , pub count : u8 , pub connection_type : EscConnectionType , pub info : u8 , } impl ESC_INFO_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , error_count : [0_u32 ; 4usize] , counter : 0_u16 , failure_flags : [0_u16 ; 4usize] , temperature : [0_i16 ; 4usize] , index : 0_u8 , count : 0_u8 , connection_type : EscConnectionType :: DEFAULT , info : 0_u8 , } ; } impl Default for ESC_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_INFO_DATA { type Message = MavMessage ; const ID : u32 = 290u32 ; const NAME : & 'static str = "ESC_INFO" ; const EXTRA_CRC : u8 = 251u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . error_count { let val = buf . get_u32_le () ; * v = val ; } __struct . counter = buf . get_u16_le () ; for v in & mut __struct . failure_flags { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . temperature { let val = buf . get_i16_le () ; * v = val ; } __struct . index = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . connection_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "EscConnectionType" , value : tmp as u32 }) ? ; __struct . info = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . error_count { __tmp . put_u32_le (* val) ; } __tmp . put_u16_le (self . counter) ; for val in & self . failure_flags { __tmp . put_u16_le (* val) ; } for val in & self . temperature { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . index) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . connection_type as u8) ; __tmp . put_u8 (self . info) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTH_KEY_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub key : [u8 ; 32] , } impl AUTH_KEY_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { key : [0_u8 ; 32usize] , } ; } impl Default for AUTH_KEY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTH_KEY_DATA { type Message = MavMessage ; const ID : u32 = 7u32 ; const NAME : & 'static str = "AUTH_KEY" ; const EXTRA_CRC : u8 = 119u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . key { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . key { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DIGICAM_CONTROL_DATA { pub extra_value : f32 , pub target_system : u8 , pub target_component : u8 , pub session : u8 , pub zoom_pos : u8 , pub zoom_step : i8 , pub focus_lock : u8 , pub shot : u8 , pub command_id : u8 , pub extra_param : u8 , } impl DIGICAM_CONTROL_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { extra_value : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , session : 0_u8 , zoom_pos : 0_u8 , zoom_step : 0_i8 , focus_lock : 0_u8 , shot : 0_u8 , command_id : 0_u8 , extra_param : 0_u8 , } ; } impl Default for DIGICAM_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DIGICAM_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 155u32 ; const NAME : & 'static str = "DIGICAM_CONTROL" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . extra_value = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . session = buf . get_u8 () ; __struct . zoom_pos = buf . get_u8 () ; __struct . zoom_step = buf . get_i8 () ; __struct . focus_lock = buf . get_u8 () ; __struct . shot = buf . get_u8 () ; __struct . command_id = buf . get_u8 () ; __struct . extra_param = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . extra_value) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . session) ; __tmp . put_u8 (self . zoom_pos) ; __tmp . put_i8 (self . zoom_step) ; __tmp . put_u8 (self . focus_lock) ; __tmp . put_u8 (self . shot) ; __tmp . put_u8 (self . command_id) ; __tmp . put_u8 (self . extra_param) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS2_RTK_DATA { pub time_last_baseline_ms : u32 , pub tow : u32 , pub baseline_a_mm : i32 , pub baseline_b_mm : i32 , pub baseline_c_mm : i32 , pub accuracy : u32 , pub iar_num_hypotheses : i32 , pub wn : u16 , pub rtk_receiver_id : u8 , pub rtk_health : u8 , pub rtk_rate : u8 , pub nsats : u8 , pub baseline_coords_type : RtkBaselineCoordinateSystem , } impl GPS2_RTK_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_last_baseline_ms : 0_u32 , tow : 0_u32 , baseline_a_mm : 0_i32 , baseline_b_mm : 0_i32 , baseline_c_mm : 0_i32 , accuracy : 0_u32 , iar_num_hypotheses : 0_i32 , wn : 0_u16 , rtk_receiver_id : 0_u8 , rtk_health : 0_u8 , rtk_rate : 0_u8 , nsats : 0_u8 , baseline_coords_type : RtkBaselineCoordinateSystem :: DEFAULT , } ; } impl Default for GPS2_RTK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS2_RTK_DATA { type Message = MavMessage ; const ID : u32 = 128u32 ; const NAME : & 'static str = "GPS2_RTK" ; const EXTRA_CRC : u8 = 226u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_last_baseline_ms = buf . get_u32_le () ; __struct . tow = buf . get_u32_le () ; __struct . baseline_a_mm = buf . get_i32_le () ; __struct . baseline_b_mm = buf . get_i32_le () ; __struct . baseline_c_mm = buf . get_i32_le () ; __struct . accuracy = buf . get_u32_le () ; __struct . iar_num_hypotheses = buf . get_i32_le () ; __struct . wn = buf . get_u16_le () ; __struct . rtk_receiver_id = buf . get_u8 () ; __struct . rtk_health = buf . get_u8 () ; __struct . rtk_rate = buf . get_u8 () ; __struct . nsats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . baseline_coords_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "RtkBaselineCoordinateSystem" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_last_baseline_ms) ; __tmp . put_u32_le (self . tow) ; __tmp . put_i32_le (self . baseline_a_mm) ; __tmp . put_i32_le (self . baseline_b_mm) ; __tmp . put_i32_le (self . baseline_c_mm) ; __tmp . put_u32_le (self . accuracy) ; __tmp . put_i32_le (self . iar_num_hypotheses) ; __tmp . put_u16_le (self . wn) ; __tmp . put_u8 (self . rtk_receiver_id) ; __tmp . put_u8 (self . rtk_health) ; __tmp . put_u8 (self . rtk_rate) ; __tmp . put_u8 (self . nsats) ; __tmp . put_u8 (self . baseline_coords_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_DATA_DATA { pub lat : i32 , pub lon : i32 , pub grid_spacing : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [i16 ; 16] , pub gridbit : u8 , } impl TERRAIN_DATA_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , grid_spacing : 0_u16 , data : [0_i16 ; 16usize] , gridbit : 0_u8 , } ; } impl Default for TERRAIN_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_DATA_DATA { type Message = MavMessage ; const ID : u32 = 134u32 ; const NAME : & 'static str = "TERRAIN_DATA" ; const EXTRA_CRC : u8 = 229u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . grid_spacing = buf . get_u16_le () ; for v in & mut __struct . data { let val = buf . get_i16_le () ; * v = val ; } __struct . gridbit = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . grid_spacing) ; for val in & self . data { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . gridbit) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CANFD_FRAME_DATA { pub id : u32 , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 64] , } impl CANFD_FRAME_DATA { pub const ENCODED_LEN : usize = 72usize ; pub const DEFAULT : Self = Self { id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , len : 0_u8 , data : [0_u8 ; 64usize] , } ; } impl Default for CANFD_FRAME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CANFD_FRAME_DATA { type Message = MavMessage ; const ID : u32 = 387u32 ; const NAME : & 'static str = "CANFD_FRAME" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 72usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_ACTUATOR_CONTROL_TARGET_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 8] , pub group_mlx : u8 , pub target_system : u8 , pub target_component : u8 , } impl SET_ACTUATOR_CONTROL_TARGET_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , controls : [0.0_f32 ; 8usize] , group_mlx : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SET_ACTUATOR_CONTROL_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_ACTUATOR_CONTROL_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 139u32 ; const NAME : & 'static str = "SET_ACTUATOR_CONTROL_TARGET" ; const EXTRA_CRC : u8 = 168u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } __struct . group_mlx = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . group_mlx) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TIMESYNC_DATA { pub tc1 : i64 , pub ts1 : i64 , } impl TIMESYNC_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { tc1 : 0_i64 , ts1 : 0_i64 , } ; } impl Default for TIMESYNC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TIMESYNC_DATA { type Message = MavMessage ; const ID : u32 = 111u32 ; const NAME : & 'static str = "TIMESYNC" ; const EXTRA_CRC : u8 = 34u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . tc1 = buf . get_i64_le () ; __struct . ts1 = buf . get_i64_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i64_le (self . tc1) ; __tmp . put_i64_le (self . ts1) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPASSMOT_STATUS_DATA { pub current : f32 , pub CompensationX : f32 , pub CompensationY : f32 , pub CompensationZ : f32 , pub throttle : u16 , pub interference : u16 , } impl COMPASSMOT_STATUS_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { current : 0.0_f32 , CompensationX : 0.0_f32 , CompensationY : 0.0_f32 , CompensationZ : 0.0_f32 , throttle : 0_u16 , interference : 0_u16 , } ; } impl Default for COMPASSMOT_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPASSMOT_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 177u32 ; const NAME : & 'static str = "COMPASSMOT_STATUS" ; const EXTRA_CRC : u8 = 240u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . current = buf . get_f32_le () ; __struct . CompensationX = buf . get_f32_le () ; __struct . CompensationY = buf . get_f32_le () ; __struct . CompensationZ = buf . get_f32_le () ; __struct . throttle = buf . get_u16_le () ; __struct . interference = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . current) ; __tmp . put_f32_le (self . CompensationX) ; __tmp . put_f32_le (self . CompensationY) ; __tmp . put_f32_le (self . CompensationZ) ; __tmp . put_u16_le (self . throttle) ; __tmp . put_u16_le (self . interference) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_INT_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_INT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_INT_DATA { type Message = MavMessage ; const ID : u32 = 51u32 ; const NAME : & 'static str = "MISSION_REQUEST_INT" ; const EXTRA_CRC : u8 = 196u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVIONIX_ADSB_OUT_DYNAMIC_DATA { pub utcTime : u32 , pub gpsLat : i32 , pub gpsLon : i32 , pub gpsAlt : i32 , pub baroAltMSL : i32 , pub accuracyHor : u32 , pub accuracyVert : u16 , pub accuracyVel : u16 , pub velVert : i16 , pub velNS : i16 , pub VelEW : i16 , pub state : UavionixAdsbOutDynamicState , pub squawk : u16 , pub gpsFix : UavionixAdsbOutDynamicGpsFix , pub numSats : u8 , pub emergencyStatus : UavionixAdsbEmergencyStatus , } impl UAVIONIX_ADSB_OUT_DYNAMIC_DATA { pub const ENCODED_LEN : usize = 41usize ; pub const DEFAULT : Self = Self { utcTime : 0_u32 , gpsLat : 0_i32 , gpsLon : 0_i32 , gpsAlt : 0_i32 , baroAltMSL : 0_i32 , accuracyHor : 0_u32 , accuracyVert : 0_u16 , accuracyVel : 0_u16 , velVert : 0_i16 , velNS : 0_i16 , VelEW : 0_i16 , state : UavionixAdsbOutDynamicState :: DEFAULT , squawk : 0_u16 , gpsFix : UavionixAdsbOutDynamicGpsFix :: DEFAULT , numSats : 0_u8 , emergencyStatus : UavionixAdsbEmergencyStatus :: DEFAULT , } ; } impl Default for UAVIONIX_ADSB_OUT_DYNAMIC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVIONIX_ADSB_OUT_DYNAMIC_DATA { type Message = MavMessage ; const ID : u32 = 10002u32 ; const NAME : & 'static str = "UAVIONIX_ADSB_OUT_DYNAMIC" ; const EXTRA_CRC : u8 = 186u8 ; const ENCODED_LEN : usize = 41usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . utcTime = buf . get_u32_le () ; __struct . gpsLat = buf . get_i32_le () ; __struct . gpsLon = buf . get_i32_le () ; __struct . gpsAlt = buf . get_i32_le () ; __struct . baroAltMSL = buf . get_i32_le () ; __struct . accuracyHor = buf . get_u32_le () ; __struct . accuracyVert = buf . get_u16_le () ; __struct . accuracyVel = buf . get_u16_le () ; __struct . velVert = buf . get_i16_le () ; __struct . velNS = buf . get_i16_le () ; __struct . VelEW = buf . get_i16_le () ; let tmp = buf . get_u16_le () ; __struct . state = UavionixAdsbOutDynamicState :: from_bits (tmp & UavionixAdsbOutDynamicState :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UavionixAdsbOutDynamicState" , value : tmp as u32 }) ? ; __struct . squawk = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . gpsFix = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutDynamicGpsFix" , value : tmp as u32 }) ? ; __struct . numSats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . emergencyStatus = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbEmergencyStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . utcTime) ; __tmp . put_i32_le (self . gpsLat) ; __tmp . put_i32_le (self . gpsLon) ; __tmp . put_i32_le (self . gpsAlt) ; __tmp . put_i32_le (self . baroAltMSL) ; __tmp . put_u32_le (self . accuracyHor) ; __tmp . put_u16_le (self . accuracyVert) ; __tmp . put_u16_le (self . accuracyVel) ; __tmp . put_i16_le (self . velVert) ; __tmp . put_i16_le (self . velNS) ; __tmp . put_i16_le (self . VelEW) ; __tmp . put_u16_le (self . state . bits ()) ; __tmp . put_u16_le (self . squawk) ; __tmp . put_u8 (self . gpsFix as u8) ; __tmp . put_u8 (self . numSats) ; __tmp . put_u8 (self . emergencyStatus as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA96_DATA { pub mavtype : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 96] , } impl DATA96_DATA { pub const ENCODED_LEN : usize = 98usize ; pub const DEFAULT : Self = Self { mavtype : 0_u8 , len : 0_u8 , data : [0_u8 ; 96usize] , } ; } impl Default for DATA96_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA96_DATA { type Message = MavMessage ; const ID : u32 = 172u32 ; const NAME : & 'static str = "DATA96" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 98usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mavtype = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . mavtype) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRACKING_GEO_STATUS_DATA { pub lat : i32 , pub lon : i32 , pub alt : f32 , pub h_acc : f32 , pub v_acc : f32 , pub vel_n : f32 , pub vel_e : f32 , pub vel_d : f32 , pub vel_acc : f32 , pub dist : f32 , pub hdg : f32 , pub hdg_acc : f32 , pub tracking_status : CameraTrackingStatusFlags , } impl CAMERA_TRACKING_GEO_STATUS_DATA { pub const ENCODED_LEN : usize = 49usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , h_acc : 0.0_f32 , v_acc : 0.0_f32 , vel_n : 0.0_f32 , vel_e : 0.0_f32 , vel_d : 0.0_f32 , vel_acc : 0.0_f32 , dist : 0.0_f32 , hdg : 0.0_f32 , hdg_acc : 0.0_f32 , tracking_status : CameraTrackingStatusFlags :: DEFAULT , } ; } impl Default for CAMERA_TRACKING_GEO_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRACKING_GEO_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 276u32 ; const NAME : & 'static str = "CAMERA_TRACKING_GEO_STATUS" ; const EXTRA_CRC : u8 = 18u8 ; const ENCODED_LEN : usize = 49usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . h_acc = buf . get_f32_le () ; __struct . v_acc = buf . get_f32_le () ; __struct . vel_n = buf . get_f32_le () ; __struct . vel_e = buf . get_f32_le () ; __struct . vel_d = buf . get_f32_le () ; __struct . vel_acc = buf . get_f32_le () ; __struct . dist = buf . get_f32_le () ; __struct . hdg = buf . get_f32_le () ; __struct . hdg_acc = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . tracking_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . h_acc) ; __tmp . put_f32_le (self . v_acc) ; __tmp . put_f32_le (self . vel_n) ; __tmp . put_f32_le (self . vel_e) ; __tmp . put_f32_le (self . vel_d) ; __tmp . put_f32_le (self . vel_acc) ; __tmp . put_f32_le (self . dist) ; __tmp . put_f32_le (self . hdg) ; __tmp . put_f32_le (self . hdg_acc) ; __tmp . put_u8 (self . tracking_status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_DATA_DATA { pub ofs : u32 , pub id : u16 , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 90] , } impl LOG_DATA_DATA { pub const ENCODED_LEN : usize = 97usize ; pub const DEFAULT : Self = Self { ofs : 0_u32 , id : 0_u16 , count : 0_u8 , data : [0_u8 ; 90usize] , } ; } impl Default for LOG_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_DATA_DATA { type Message = MavMessage ; const ID : u32 = 120u32 ; const NAME : & 'static str = "LOG_DATA" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 97usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ofs = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ofs) ; __tmp . put_u16_le (self . id) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HERELINK_VIDEO_STREAM_INFORMATION_DATA { pub framerate : f32 , pub bitrate : u32 , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub camera_id : u8 , pub status : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 230] , } impl HERELINK_VIDEO_STREAM_INFORMATION_DATA { pub const ENCODED_LEN : usize = 246usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , camera_id : 0_u8 , status : 0_u8 , uri : [0_u8 ; 230usize] , } ; } impl Default for HERELINK_VIDEO_STREAM_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HERELINK_VIDEO_STREAM_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 50002u32 ; const NAME : & 'static str = "HERELINK_VIDEO_STREAM_INFORMATION" ; const EXTRA_CRC : u8 = 181u8 ; const ENCODED_LEN : usize = 246usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . camera_id = buf . get_u8 () ; __struct . status = buf . get_u8 () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u8 (self . camera_id) ; __tmp . put_u8 (self . status) ; for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_PARTIAL_LIST_DATA { pub start_index : i16 , pub end_index : i16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_PARTIAL_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start_index : 0_i16 , end_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_PARTIAL_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_PARTIAL_LIST_DATA { type Message = MavMessage ; const ID : u32 = 37u32 ; const NAME : & 'static str = "MISSION_REQUEST_PARTIAL_LIST" ; const EXTRA_CRC : u8 = 212u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start_index = buf . get_i16_le () ; __struct . end_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . start_index) ; __tmp . put_i16_le (self . end_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_SET_CURRENT_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_SET_CURRENT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_SET_CURRENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_SET_CURRENT_DATA { type Message = MavMessage ; const ID : u32 = 41u32 ; const NAME : & 'static str = "MISSION_SET_CURRENT" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE_DATA { type Message = MavMessage ; const ID : u32 = 29u32 ; const NAME : & 'static str = "SCALED_PRESSURE" ; const EXTRA_CRC : u8 = 115u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PID_TUNING_DATA { pub desired : f32 , pub achieved : f32 , pub FF : f32 , pub P : f32 , pub I : f32 , pub D : f32 , pub axis : PidTuningAxis , } impl PID_TUNING_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { desired : 0.0_f32 , achieved : 0.0_f32 , FF : 0.0_f32 , P : 0.0_f32 , I : 0.0_f32 , D : 0.0_f32 , axis : PidTuningAxis :: DEFAULT , } ; } impl Default for PID_TUNING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PID_TUNING_DATA { type Message = MavMessage ; const ID : u32 = 194u32 ; const NAME : & 'static str = "PID_TUNING" ; const EXTRA_CRC : u8 = 98u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . desired = buf . get_f32_le () ; __struct . achieved = buf . get_f32_le () ; __struct . FF = buf . get_f32_le () ; __struct . P = buf . get_f32_le () ; __struct . I = buf . get_f32_le () ; __struct . D = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . axis = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "PidTuningAxis" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . desired) ; __tmp . put_f32_le (self . achieved) ; __tmp . put_f32_le (self . FF) ; __tmp . put_f32_le (self . P) ; __tmp . put_f32_le (self . I) ; __tmp . put_f32_le (self . D) ; __tmp . put_u8 (self . axis as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGH_LATENCY_DATA { pub custom_mode : u32 , pub latitude : i32 , pub longitude : i32 , pub roll : i16 , pub pitch : i16 , pub heading : u16 , pub heading_sp : i16 , pub altitude_amsl : i16 , pub altitude_sp : i16 , pub wp_distance : u16 , pub base_mode : MavModeFlag , pub landed_state : MavLandedState , pub throttle : i8 , pub airspeed : u8 , pub airspeed_sp : u8 , pub groundspeed : u8 , pub climb_rate : i8 , pub gps_nsat : u8 , pub gps_fix_type : GpsFixType , pub battery_remaining : u8 , pub temperature : i8 , pub temperature_air : i8 , pub failsafe : u8 , pub wp_num : u8 , } impl HIGH_LATENCY_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , latitude : 0_i32 , longitude : 0_i32 , roll : 0_i16 , pitch : 0_i16 , heading : 0_u16 , heading_sp : 0_i16 , altitude_amsl : 0_i16 , altitude_sp : 0_i16 , wp_distance : 0_u16 , base_mode : MavModeFlag :: DEFAULT , landed_state : MavLandedState :: DEFAULT , throttle : 0_i8 , airspeed : 0_u8 , airspeed_sp : 0_u8 , groundspeed : 0_u8 , climb_rate : 0_i8 , gps_nsat : 0_u8 , gps_fix_type : GpsFixType :: DEFAULT , battery_remaining : 0_u8 , temperature : 0_i8 , temperature_air : 0_i8 , failsafe : 0_u8 , wp_num : 0_u8 , } ; } impl Default for HIGH_LATENCY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGH_LATENCY_DATA { type Message = MavMessage ; const ID : u32 = 234u32 ; const NAME : & 'static str = "HIGH_LATENCY" ; const EXTRA_CRC : u8 = 150u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . roll = buf . get_i16_le () ; __struct . pitch = buf . get_i16_le () ; __struct . heading = buf . get_u16_le () ; __struct . heading_sp = buf . get_i16_le () ; __struct . altitude_amsl = buf . get_i16_le () ; __struct . altitude_sp = buf . get_i16_le () ; __struct . wp_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . base_mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; __struct . throttle = buf . get_i8 () ; __struct . airspeed = buf . get_u8 () ; __struct . airspeed_sp = buf . get_u8 () ; __struct . groundspeed = buf . get_u8 () ; __struct . climb_rate = buf . get_i8 () ; __struct . gps_nsat = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . gps_fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . battery_remaining = buf . get_u8 () ; __struct . temperature = buf . get_i8 () ; __struct . temperature_air = buf . get_i8 () ; __struct . failsafe = buf . get_u8 () ; __struct . wp_num = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i16_le (self . roll) ; __tmp . put_i16_le (self . pitch) ; __tmp . put_u16_le (self . heading) ; __tmp . put_i16_le (self . heading_sp) ; __tmp . put_i16_le (self . altitude_amsl) ; __tmp . put_i16_le (self . altitude_sp) ; __tmp . put_u16_le (self . wp_distance) ; __tmp . put_u8 (self . base_mode . bits ()) ; __tmp . put_u8 (self . landed_state as u8) ; __tmp . put_i8 (self . throttle) ; __tmp . put_u8 (self . airspeed) ; __tmp . put_u8 (self . airspeed_sp) ; __tmp . put_u8 (self . groundspeed) ; __tmp . put_i8 (self . climb_rate) ; __tmp . put_u8 (self . gps_nsat) ; __tmp . put_u8 (self . gps_fix_type as u8) ; __tmp . put_u8 (self . battery_remaining) ; __tmp . put_i8 (self . temperature) ; __tmp . put_i8 (self . temperature_air) ; __tmp . put_u8 (self . failsafe) ; __tmp . put_u8 (self . wp_num) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl PARAM_EXT_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PARAM_EXT_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 321u32 ; const NAME : & 'static str = "PARAM_EXT_REQUEST_LIST" ; const EXTRA_CRC : u8 = 88u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_FOV_STATUS_DATA { pub time_boot_ms : u32 , pub lat_camera : i32 , pub lon_camera : i32 , pub alt_camera : i32 , pub lat_image : i32 , pub lon_image : i32 , pub alt_image : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub hfov : f32 , pub vfov : f32 , } impl CAMERA_FOV_STATUS_DATA { pub const ENCODED_LEN : usize = 52usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_camera : 0_i32 , lon_camera : 0_i32 , alt_camera : 0_i32 , lat_image : 0_i32 , lon_image : 0_i32 , alt_image : 0_i32 , q : [0.0_f32 ; 4usize] , hfov : 0.0_f32 , vfov : 0.0_f32 , } ; } impl Default for CAMERA_FOV_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_FOV_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 271u32 ; const NAME : & 'static str = "CAMERA_FOV_STATUS" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 52usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_camera = buf . get_i32_le () ; __struct . lon_camera = buf . get_i32_le () ; __struct . alt_camera = buf . get_i32_le () ; __struct . lat_image = buf . get_i32_le () ; __struct . lon_image = buf . get_i32_le () ; __struct . alt_image = buf . get_i32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . hfov = buf . get_f32_le () ; __struct . vfov = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_camera) ; __tmp . put_i32_le (self . lon_camera) ; __tmp . put_i32_le (self . alt_camera) ; __tmp . put_i32_le (self . lat_image) ; __tmp . put_i32_le (self . lon_image) ; __tmp . put_i32_le (self . alt_image) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . hfov) ; __tmp . put_f32_le (self . vfov) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WINCH_STATUS_DATA { pub time_usec : u64 , pub line_length : f32 , pub speed : f32 , pub tension : f32 , pub voltage : f32 , pub current : f32 , pub status : MavWinchStatusFlag , pub temperature : i16 , } impl WINCH_STATUS_DATA { pub const ENCODED_LEN : usize = 34usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , line_length : 0.0_f32 , speed : 0.0_f32 , tension : 0.0_f32 , voltage : 0.0_f32 , current : 0.0_f32 , status : MavWinchStatusFlag :: DEFAULT , temperature : 0_i16 , } ; } impl Default for WINCH_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WINCH_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 9005u32 ; const NAME : & 'static str = "WINCH_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 34usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . line_length = buf . get_f32_le () ; __struct . speed = buf . get_f32_le () ; __struct . tension = buf . get_f32_le () ; __struct . voltage = buf . get_f32_le () ; __struct . current = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . status = MavWinchStatusFlag :: from_bits (tmp & MavWinchStatusFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavWinchStatusFlag" , value : tmp as u32 }) ? ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . line_length) ; __tmp . put_f32_le (self . speed) ; __tmp . put_f32_le (self . tension) ; __tmp . put_f32_le (self . voltage) ; __tmp . put_f32_le (self . current) ; __tmp . put_u32_le (self . status . bits ()) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HERELINK_TELEM_DATA { } impl HERELINK_TELEM_DATA { pub const ENCODED_LEN : usize = 0usize ; pub const DEFAULT : Self = Self { } ; } impl Default for HERELINK_TELEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HERELINK_TELEM_DATA { type Message = MavMessage ; const ID : u32 = 50003u32 ; const NAME : & 'static str = "HERELINK_TELEM" ; const EXTRA_CRC : u8 = 53u8 ; const ENCODED_LEN : usize = 0usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { Ok (Self :: default ()) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIDEO_STREAM_INFORMATION_DATA { pub framerate : f32 , pub bitrate : u32 , pub flags : VideoStreamStatusFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub hfov : u16 , pub stream_id : u8 , pub count : u8 , pub mavtype : VideoStreamType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 160] , } impl VIDEO_STREAM_INFORMATION_DATA { pub const ENCODED_LEN : usize = 213usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , flags : VideoStreamStatusFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , hfov : 0_u16 , stream_id : 0_u8 , count : 0_u8 , mavtype : VideoStreamType :: DEFAULT , name : [0_u8 ; 32usize] , uri : [0_u8 ; 160usize] , } ; } impl Default for VIDEO_STREAM_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIDEO_STREAM_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 269u32 ; const NAME : & 'static str = "VIDEO_STREAM_INFORMATION" ; const EXTRA_CRC : u8 = 109u8 ; const ENCODED_LEN : usize = 213usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamStatusFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . hfov = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamType" , value : tmp as u32 }) ? ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . flags as u16) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u16_le (self . hfov) ; __tmp . put_u8 (self . stream_id) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . mavtype as u8) ; for val in & self . name { __tmp . put_u8 (* val) ; } for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_OPTICAL_FLOW_DATA { pub time_usec : u64 , pub integration_time_us : u32 , pub integrated_x : f32 , pub integrated_y : f32 , pub integrated_xgyro : f32 , pub integrated_ygyro : f32 , pub integrated_zgyro : f32 , pub time_delta_distance_us : u32 , pub distance : f32 , pub temperature : i16 , pub sensor_id : u8 , pub quality : u8 , } impl HIL_OPTICAL_FLOW_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , integration_time_us : 0_u32 , integrated_x : 0.0_f32 , integrated_y : 0.0_f32 , integrated_xgyro : 0.0_f32 , integrated_ygyro : 0.0_f32 , integrated_zgyro : 0.0_f32 , time_delta_distance_us : 0_u32 , distance : 0.0_f32 , temperature : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for HIL_OPTICAL_FLOW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_OPTICAL_FLOW_DATA { type Message = MavMessage ; const ID : u32 = 114u32 ; const NAME : & 'static str = "HIL_OPTICAL_FLOW" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . integration_time_us = buf . get_u32_le () ; __struct . integrated_x = buf . get_f32_le () ; __struct . integrated_y = buf . get_f32_le () ; __struct . integrated_xgyro = buf . get_f32_le () ; __struct . integrated_ygyro = buf . get_f32_le () ; __struct . integrated_zgyro = buf . get_f32_le () ; __struct . time_delta_distance_us = buf . get_u32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . integration_time_us) ; __tmp . put_f32_le (self . integrated_x) ; __tmp . put_f32_le (self . integrated_y) ; __tmp . put_f32_le (self . integrated_xgyro) ; __tmp . put_f32_le (self . integrated_ygyro) ; __tmp . put_f32_le (self . integrated_zgyro) ; __tmp . put_u32_le (self . time_delta_distance_us) ; __tmp . put_f32_le (self . distance) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CELLULAR_STATUS_DATA { pub mcc : u16 , pub mnc : u16 , pub lac : u16 , pub status : CellularStatusFlag , pub failure_reason : CellularNetworkFailedReason , pub mavtype : CellularNetworkRadioType , pub quality : u8 , } impl CELLULAR_STATUS_DATA { pub const ENCODED_LEN : usize = 10usize ; pub const DEFAULT : Self = Self { mcc : 0_u16 , mnc : 0_u16 , lac : 0_u16 , status : CellularStatusFlag :: DEFAULT , failure_reason : CellularNetworkFailedReason :: DEFAULT , mavtype : CellularNetworkRadioType :: DEFAULT , quality : 0_u8 , } ; } impl Default for CELLULAR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CELLULAR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 334u32 ; const NAME : & 'static str = "CELLULAR_STATUS" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 10usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mcc = buf . get_u16_le () ; __struct . mnc = buf . get_u16_le () ; __struct . lac = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularStatusFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . failure_reason = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularNetworkFailedReason" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularNetworkRadioType" , value : tmp as u32 }) ? ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . mcc) ; __tmp . put_u16_le (self . mnc) ; __tmp . put_u16_le (self . lac) ; __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . failure_reason as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_REPORT_DATA { pub lat : i32 , pub lon : i32 , pub terrain_height : f32 , pub current_height : f32 , pub spacing : u16 , pub pending : u16 , pub loaded : u16 , } impl TERRAIN_REPORT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , terrain_height : 0.0_f32 , current_height : 0.0_f32 , spacing : 0_u16 , pending : 0_u16 , loaded : 0_u16 , } ; } impl Default for TERRAIN_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 136u32 ; const NAME : & 'static str = "TERRAIN_REPORT" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . terrain_height = buf . get_f32_le () ; __struct . current_height = buf . get_f32_le () ; __struct . spacing = buf . get_u16_le () ; __struct . pending = buf . get_u16_le () ; __struct . loaded = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . terrain_height) ; __tmp . put_f32_le (self . current_height) ; __tmp . put_u16_le (self . spacing) ; __tmp . put_u16_le (self . pending) ; __tmp . put_u16_le (self . loaded) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_ERASE_DATA { pub target_system : u8 , pub target_component : u8 , } impl LOG_ERASE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_ERASE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_ERASE_DATA { type Message = MavMessage ; const ID : u32 = 121u32 ; const NAME : & 'static str = "LOG_ERASE" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_OPERATOR_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub operator_id_type : MavOdidOperatorIdType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub operator_id : [u8 ; 20] , } impl OPEN_DRONE_ID_OPERATOR_ID_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , operator_id_type : MavOdidOperatorIdType :: DEFAULT , operator_id : [0_u8 ; 20usize] , } ; } impl Default for OPEN_DRONE_ID_OPERATOR_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_OPERATOR_ID_DATA { type Message = MavMessage ; const ID : u32 = 12905u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_OPERATOR_ID" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . operator_id_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidOperatorIdType" , value : tmp as u32 }) ? ; for v in & mut __struct . operator_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . operator_id_type as u8) ; for val in & self . operator_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_MAG_OFFSETS_DATA { pub mag_ofs_x : i16 , pub mag_ofs_y : i16 , pub mag_ofs_z : i16 , pub target_system : u8 , pub target_component : u8 , } impl SET_MAG_OFFSETS_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { mag_ofs_x : 0_i16 , mag_ofs_y : 0_i16 , mag_ofs_z : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SET_MAG_OFFSETS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_MAG_OFFSETS_DATA { type Message = MavMessage ; const ID : u32 = 151u32 ; const NAME : & 'static str = "SET_MAG_OFFSETS" ; const EXTRA_CRC : u8 = 219u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mag_ofs_x = buf . get_i16_le () ; __struct . mag_ofs_y = buf . get_i16_le () ; __struct . mag_ofs_z = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . mag_ofs_x) ; __tmp . put_i16_le (self . mag_ofs_y) ; __tmp . put_i16_le (self . mag_ofs_z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS2_RAW_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub dgps_age : u32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub cog : u16 , pub fix_type : GpsFixType , pub satellites_visible : u8 , pub dgps_numch : u8 , } impl GPS2_RAW_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , dgps_age : 0_u32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , cog : 0_u16 , fix_type : GpsFixType :: DEFAULT , satellites_visible : 0_u8 , dgps_numch : 0_u8 , } ; } impl Default for GPS2_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS2_RAW_DATA { type Message = MavMessage ; const ID : u32 = 124u32 ; const NAME : & 'static str = "GPS2_RAW" ; const EXTRA_CRC : u8 = 87u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . dgps_age = buf . get_u32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . cog = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . satellites_visible = buf . get_u8 () ; __struct . dgps_numch = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u32_le (self . dgps_age) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type as u8) ; __tmp . put_u8 (self . satellites_visible) ; __tmp . put_u8 (self . dgps_numch) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CURRENT_EVENT_SEQUENCE_DATA { pub sequence : u16 , pub flags : MavEventCurrentSequenceFlags , } impl CURRENT_EVENT_SEQUENCE_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , flags : MavEventCurrentSequenceFlags :: DEFAULT , } ; } impl Default for CURRENT_EVENT_SEQUENCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CURRENT_EVENT_SEQUENCE_DATA { type Message = MavMessage ; const ID : u32 = 411u32 ; const NAME : & 'static str = "CURRENT_EVENT_SEQUENCE" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . flags = MavEventCurrentSequenceFlags :: from_bits (tmp & MavEventCurrentSequenceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavEventCurrentSequenceFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SYSTEM_DATA { pub operator_latitude : i32 , pub operator_longitude : i32 , pub area_ceiling : f32 , pub area_floor : f32 , pub operator_altitude_geo : f32 , pub timestamp : u32 , pub area_count : u16 , pub area_radius : u16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub operator_location_type : MavOdidOperatorLocationType , pub classification_type : MavOdidClassificationType , pub category_eu : MavOdidCategoryEu , pub class_eu : MavOdidClassEu , } impl OPEN_DRONE_ID_SYSTEM_DATA { pub const ENCODED_LEN : usize = 54usize ; pub const DEFAULT : Self = Self { operator_latitude : 0_i32 , operator_longitude : 0_i32 , area_ceiling : 0.0_f32 , area_floor : 0.0_f32 , operator_altitude_geo : 0.0_f32 , timestamp : 0_u32 , area_count : 0_u16 , area_radius : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , operator_location_type : MavOdidOperatorLocationType :: DEFAULT , classification_type : MavOdidClassificationType :: DEFAULT , category_eu : MavOdidCategoryEu :: DEFAULT , class_eu : MavOdidClassEu :: DEFAULT , } ; } impl Default for OPEN_DRONE_ID_SYSTEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SYSTEM_DATA { type Message = MavMessage ; const ID : u32 = 12904u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SYSTEM" ; const EXTRA_CRC : u8 = 77u8 ; const ENCODED_LEN : usize = 54usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . operator_latitude = buf . get_i32_le () ; __struct . operator_longitude = buf . get_i32_le () ; __struct . area_ceiling = buf . get_f32_le () ; __struct . area_floor = buf . get_f32_le () ; __struct . operator_altitude_geo = buf . get_f32_le () ; __struct . timestamp = buf . get_u32_le () ; __struct . area_count = buf . get_u16_le () ; __struct . area_radius = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . operator_location_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidOperatorLocationType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . classification_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidClassificationType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . category_eu = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidCategoryEu" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . class_eu = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidClassEu" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . operator_latitude) ; __tmp . put_i32_le (self . operator_longitude) ; __tmp . put_f32_le (self . area_ceiling) ; __tmp . put_f32_le (self . area_floor) ; __tmp . put_f32_le (self . operator_altitude_geo) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u16_le (self . area_count) ; __tmp . put_u16_le (self . area_radius) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . operator_location_type as u8) ; __tmp . put_u8 (self . classification_type as u8) ; __tmp . put_u8 (self . category_eu as u8) ; __tmp . put_u8 (self . class_eu as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AHRS_DATA { pub omegaIx : f32 , pub omegaIy : f32 , pub omegaIz : f32 , pub accel_weight : f32 , pub renorm_val : f32 , pub error_rp : f32 , pub error_yaw : f32 , } impl AHRS_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { omegaIx : 0.0_f32 , omegaIy : 0.0_f32 , omegaIz : 0.0_f32 , accel_weight : 0.0_f32 , renorm_val : 0.0_f32 , error_rp : 0.0_f32 , error_yaw : 0.0_f32 , } ; } impl Default for AHRS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AHRS_DATA { type Message = MavMessage ; const ID : u32 = 163u32 ; const NAME : & 'static str = "AHRS" ; const EXTRA_CRC : u8 = 127u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . omegaIx = buf . get_f32_le () ; __struct . omegaIy = buf . get_f32_le () ; __struct . omegaIz = buf . get_f32_le () ; __struct . accel_weight = buf . get_f32_le () ; __struct . renorm_val = buf . get_f32_le () ; __struct . error_rp = buf . get_f32_le () ; __struct . error_yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . omegaIx) ; __tmp . put_f32_le (self . omegaIy) ; __tmp . put_f32_le (self . omegaIz) ; __tmp . put_f32_le (self . accel_weight) ; __tmp . put_f32_le (self . renorm_val) ; __tmp . put_f32_le (self . error_rp) ; __tmp . put_f32_le (self . error_yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , } impl ATTITUDE_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , } ; } impl Default for ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 30u32 ; const NAME : & 'static str = "ATTITUDE" ; const EXTRA_CRC : u8 = 39u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_DATA_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , pub length : u8 , pub first_message_offset : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 249] , } impl LOGGING_DATA_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , length : 0_u8 , first_message_offset : 0_u8 , data : [0_u8 ; 249usize] , } ; } impl Default for LOGGING_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_DATA_DATA { type Message = MavMessage ; const ID : u32 = 266u32 ; const NAME : & 'static str = "LOGGING_DATA" ; const EXTRA_CRC : u8 = 193u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . length = buf . get_u8 () ; __struct . first_message_offset = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . length) ; __tmp . put_u8 (self . first_message_offset) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRIGGER_DATA { pub time_usec : u64 , pub seq : u32 , } impl CAMERA_TRIGGER_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , seq : 0_u32 , } ; } impl Default for CAMERA_TRIGGER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRIGGER_DATA { type Message = MavMessage ; const ID : u32 = 112u32 ; const NAME : & 'static str = "CAMERA_TRIGGER" ; const EXTRA_CRC : u8 = 174u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . seq = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AIS_VESSEL_DATA { pub MMSI : u32 , pub lat : i32 , pub lon : i32 , pub COG : u16 , pub heading : u16 , pub velocity : u16 , pub dimension_bow : u16 , pub dimension_stern : u16 , pub tslc : u16 , pub flags : AisFlags , pub turn_rate : i8 , pub navigational_status : AisNavStatus , pub mavtype : AisType , pub dimension_port : u8 , pub dimension_starboard : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 7] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 20] , } impl AIS_VESSEL_DATA { pub const ENCODED_LEN : usize = 58usize ; pub const DEFAULT : Self = Self { MMSI : 0_u32 , lat : 0_i32 , lon : 0_i32 , COG : 0_u16 , heading : 0_u16 , velocity : 0_u16 , dimension_bow : 0_u16 , dimension_stern : 0_u16 , tslc : 0_u16 , flags : AisFlags :: DEFAULT , turn_rate : 0_i8 , navigational_status : AisNavStatus :: DEFAULT , mavtype : AisType :: DEFAULT , dimension_port : 0_u8 , dimension_starboard : 0_u8 , callsign : [0_u8 ; 7usize] , name : [0_u8 ; 20usize] , } ; } impl Default for AIS_VESSEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AIS_VESSEL_DATA { type Message = MavMessage ; const ID : u32 = 301u32 ; const NAME : & 'static str = "AIS_VESSEL" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 58usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . MMSI = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . COG = buf . get_u16_le () ; __struct . heading = buf . get_u16_le () ; __struct . velocity = buf . get_u16_le () ; __struct . dimension_bow = buf . get_u16_le () ; __struct . dimension_stern = buf . get_u16_le () ; __struct . tslc = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = AisFlags :: from_bits (tmp & AisFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AisFlags" , value : tmp as u32 }) ? ; __struct . turn_rate = buf . get_i8 () ; let tmp = buf . get_u8 () ; __struct . navigational_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AisNavStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AisType" , value : tmp as u32 }) ? ; __struct . dimension_port = buf . get_u8 () ; __struct . dimension_starboard = buf . get_u8 () ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . MMSI) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . COG) ; __tmp . put_u16_le (self . heading) ; __tmp . put_u16_le (self . velocity) ; __tmp . put_u16_le (self . dimension_bow) ; __tmp . put_u16_le (self . dimension_stern) ; __tmp . put_u16_le (self . tslc) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_i8 (self . turn_rate) ; __tmp . put_u8 (self . navigational_status as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . dimension_port) ; __tmp . put_u8 (self . dimension_starboard) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_VISION_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl GLOBAL_VISION_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for GLOBAL_VISION_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_VISION_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 101u32 ; const NAME : & 'static str = "GLOBAL_VISION_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 102u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_INT_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub seq : u16 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl MISSION_ITEM_INT_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , seq : 0_u16 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for MISSION_ITEM_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_INT_DATA { type Message = MavMessage ; const ID : u32 = 73u32 ; const NAME : & 'static str = "MISSION_ITEM_INT" ; const EXTRA_CRC : u8 = 38u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; __struct . seq = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_PRESSURE_DATA { pub time_usec : u64 , pub press_abs : i16 , pub press_diff1 : i16 , pub press_diff2 : i16 , pub temperature : i16 , } impl RAW_PRESSURE_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , press_abs : 0_i16 , press_diff1 : 0_i16 , press_diff2 : 0_i16 , temperature : 0_i16 , } ; } impl Default for RAW_PRESSURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_PRESSURE_DATA { type Message = MavMessage ; const ID : u32 = 28u32 ; const NAME : & 'static str = "RAW_PRESSURE" ; const EXTRA_CRC : u8 = 67u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . press_abs = buf . get_i16_le () ; __struct . press_diff1 = buf . get_i16_le () ; __struct . press_diff2 = buf . get_i16_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i16_le (self . press_abs) ; __tmp . put_i16_le (self . press_diff1) ; __tmp . put_i16_le (self . press_diff2) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_REQUEST_DATA { pub mask : u64 , pub lat : i32 , pub lon : i32 , pub grid_spacing : u16 , } impl TERRAIN_REQUEST_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { mask : 0_u64 , lat : 0_i32 , lon : 0_i32 , grid_spacing : 0_u16 , } ; } impl Default for TERRAIN_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 133u32 ; const NAME : & 'static str = "TERRAIN_REQUEST" ; const EXTRA_CRC : u8 = 6u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mask = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . grid_spacing = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . mask) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . grid_spacing) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MANUAL_CONTROL_DATA { pub x : i16 , pub y : i16 , pub z : i16 , pub r : i16 , pub buttons : u16 , pub target : u8 , } impl MANUAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 11usize ; pub const DEFAULT : Self = Self { x : 0_i16 , y : 0_i16 , z : 0_i16 , r : 0_i16 , buttons : 0_u16 , target : 0_u8 , } ; } impl Default for MANUAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MANUAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 69u32 ; const NAME : & 'static str = "MANUAL_CONTROL" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 11usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . x = buf . get_i16_le () ; __struct . y = buf . get_i16_le () ; __struct . z = buf . get_i16_le () ; __struct . r = buf . get_i16_le () ; __struct . buttons = buf . get_u16_le () ; __struct . target = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . x) ; __tmp . put_i16_le (self . y) ; __tmp . put_i16_le (self . z) ; __tmp . put_i16_le (self . r) ; __tmp . put_u16_le (self . buttons) ; __tmp . put_u8 (self . target) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIBRATION_DATA { pub time_usec : u64 , pub vibration_x : f32 , pub vibration_y : f32 , pub vibration_z : f32 , pub clipping_0 : u32 , pub clipping_1 : u32 , pub clipping_2 : u32 , } impl VIBRATION_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , vibration_x : 0.0_f32 , vibration_y : 0.0_f32 , vibration_z : 0.0_f32 , clipping_0 : 0_u32 , clipping_1 : 0_u32 , clipping_2 : 0_u32 , } ; } impl Default for VIBRATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIBRATION_DATA { type Message = MavMessage ; const ID : u32 = 241u32 ; const NAME : & 'static str = "VIBRATION" ; const EXTRA_CRC : u8 = 90u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . vibration_x = buf . get_f32_le () ; __struct . vibration_y = buf . get_f32_le () ; __struct . vibration_z = buf . get_f32_le () ; __struct . clipping_0 = buf . get_u32_le () ; __struct . clipping_1 = buf . get_u32_le () ; __struct . clipping_2 = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . vibration_x) ; __tmp . put_f32_le (self . vibration_y) ; __tmp . put_f32_le (self . vibration_z) ; __tmp . put_u32_le (self . clipping_0) ; __tmp . put_u32_le (self . clipping_1) ; __tmp . put_u32_le (self . clipping_2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_OVERRIDE_DATA { pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub target_system : u8 , pub target_component : u8 , } impl RC_CHANNELS_OVERRIDE_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for RC_CHANNELS_OVERRIDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_OVERRIDE_DATA { type Message = MavMessage ; const ID : u32 = 70u32 ; const NAME : & 'static str = "RC_CHANNELS_OVERRIDE" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ICAROUS_HEARTBEAT_DATA { pub status : IcarousFmsState , } impl ICAROUS_HEARTBEAT_DATA { pub const ENCODED_LEN : usize = 1usize ; pub const DEFAULT : Self = Self { status : IcarousFmsState :: DEFAULT , } ; } impl Default for ICAROUS_HEARTBEAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ICAROUS_HEARTBEAT_DATA { type Message = MavMessage ; const ID : u32 = 42000u32 ; const NAME : & 'static str = "ICAROUS_HEARTBEAT" ; const EXTRA_CRC : u8 = 227u8 ; const ENCODED_LEN : usize = 1usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousFmsState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_INFORMATION_DATA { pub uid : u64 , pub time_boot_ms : u32 , pub firmware_version : u32 , pub hardware_version : u32 , pub roll_min : f32 , pub roll_max : f32 , pub pitch_min : f32 , pub pitch_max : f32 , pub yaw_min : f32 , pub yaw_max : f32 , pub cap_flags : GimbalDeviceCapFlags , pub custom_cap_flags : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vendor_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub model_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub custom_name : [u8 ; 32] , } impl GIMBAL_DEVICE_INFORMATION_DATA { pub const ENCODED_LEN : usize = 144usize ; pub const DEFAULT : Self = Self { uid : 0_u64 , time_boot_ms : 0_u32 , firmware_version : 0_u32 , hardware_version : 0_u32 , roll_min : 0.0_f32 , roll_max : 0.0_f32 , pitch_min : 0.0_f32 , pitch_max : 0.0_f32 , yaw_min : 0.0_f32 , yaw_max : 0.0_f32 , cap_flags : GimbalDeviceCapFlags :: DEFAULT , custom_cap_flags : 0_u16 , vendor_name : [0_u8 ; 32usize] , model_name : [0_u8 ; 32usize] , custom_name : [0_u8 ; 32usize] , } ; } impl Default for GIMBAL_DEVICE_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 283u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_INFORMATION" ; const EXTRA_CRC : u8 = 74u8 ; const ENCODED_LEN : usize = 144usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . uid = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . firmware_version = buf . get_u32_le () ; __struct . hardware_version = buf . get_u32_le () ; __struct . roll_min = buf . get_f32_le () ; __struct . roll_max = buf . get_f32_le () ; __struct . pitch_min = buf . get_f32_le () ; __struct . pitch_max = buf . get_f32_le () ; __struct . yaw_min = buf . get_f32_le () ; __struct . yaw_max = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . cap_flags = GimbalDeviceCapFlags :: from_bits (tmp & GimbalDeviceCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceCapFlags" , value : tmp as u32 }) ? ; __struct . custom_cap_flags = buf . get_u16_le () ; for v in & mut __struct . vendor_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . model_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . custom_name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . uid) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . firmware_version) ; __tmp . put_u32_le (self . hardware_version) ; __tmp . put_f32_le (self . roll_min) ; __tmp . put_f32_le (self . roll_max) ; __tmp . put_f32_le (self . pitch_min) ; __tmp . put_f32_le (self . pitch_max) ; __tmp . put_f32_le (self . yaw_min) ; __tmp . put_f32_le (self . yaw_max) ; __tmp . put_u16_le (self . cap_flags . bits ()) ; __tmp . put_u16_le (self . custom_cap_flags) ; for val in & self . vendor_name { __tmp . put_u8 (* val) ; } for val in & self . model_name { __tmp . put_u8 (* val) ; } for val in & self . custom_name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_REPORT_DATA { pub delta_time : f32 , pub delta_angle_x : f32 , pub delta_angle_y : f32 , pub delta_angle_z : f32 , pub delta_velocity_x : f32 , pub delta_velocity_y : f32 , pub delta_velocity_z : f32 , pub joint_roll : f32 , pub joint_el : f32 , pub joint_az : f32 , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_REPORT_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { delta_time : 0.0_f32 , delta_angle_x : 0.0_f32 , delta_angle_y : 0.0_f32 , delta_angle_z : 0.0_f32 , delta_velocity_x : 0.0_f32 , delta_velocity_y : 0.0_f32 , delta_velocity_z : 0.0_f32 , joint_roll : 0.0_f32 , joint_el : 0.0_f32 , joint_az : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 200u32 ; const NAME : & 'static str = "GIMBAL_REPORT" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . delta_time = buf . get_f32_le () ; __struct . delta_angle_x = buf . get_f32_le () ; __struct . delta_angle_y = buf . get_f32_le () ; __struct . delta_angle_z = buf . get_f32_le () ; __struct . delta_velocity_x = buf . get_f32_le () ; __struct . delta_velocity_y = buf . get_f32_le () ; __struct . delta_velocity_z = buf . get_f32_le () ; __struct . joint_roll = buf . get_f32_le () ; __struct . joint_el = buf . get_f32_le () ; __struct . joint_az = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . delta_time) ; __tmp . put_f32_le (self . delta_angle_x) ; __tmp . put_f32_le (self . delta_angle_y) ; __tmp . put_f32_le (self . delta_angle_z) ; __tmp . put_f32_le (self . delta_velocity_x) ; __tmp . put_f32_le (self . delta_velocity_y) ; __tmp . put_f32_le (self . delta_velocity_z) ; __tmp . put_f32_le (self . joint_roll) ; __tmp . put_f32_le (self . joint_el) ; __tmp . put_f32_le (self . joint_az) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CONTROL_SYSTEM_STATE_DATA { pub time_usec : u64 , pub x_acc : f32 , pub y_acc : f32 , pub z_acc : f32 , pub x_vel : f32 , pub y_vel : f32 , pub z_vel : f32 , pub x_pos : f32 , pub y_pos : f32 , pub z_pos : f32 , pub airspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_variance : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_variance : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub roll_rate : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , } impl CONTROL_SYSTEM_STATE_DATA { pub const ENCODED_LEN : usize = 100usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x_acc : 0.0_f32 , y_acc : 0.0_f32 , z_acc : 0.0_f32 , x_vel : 0.0_f32 , y_vel : 0.0_f32 , z_vel : 0.0_f32 , x_pos : 0.0_f32 , y_pos : 0.0_f32 , z_pos : 0.0_f32 , airspeed : 0.0_f32 , vel_variance : [0.0_f32 ; 3usize] , pos_variance : [0.0_f32 ; 3usize] , q : [0.0_f32 ; 4usize] , roll_rate : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , } ; } impl Default for CONTROL_SYSTEM_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CONTROL_SYSTEM_STATE_DATA { type Message = MavMessage ; const ID : u32 = 146u32 ; const NAME : & 'static str = "CONTROL_SYSTEM_STATE" ; const EXTRA_CRC : u8 = 103u8 ; const ENCODED_LEN : usize = 100usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x_acc = buf . get_f32_le () ; __struct . y_acc = buf . get_f32_le () ; __struct . z_acc = buf . get_f32_le () ; __struct . x_vel = buf . get_f32_le () ; __struct . y_vel = buf . get_f32_le () ; __struct . z_vel = buf . get_f32_le () ; __struct . x_pos = buf . get_f32_le () ; __struct . y_pos = buf . get_f32_le () ; __struct . z_pos = buf . get_f32_le () ; __struct . airspeed = buf . get_f32_le () ; for v in & mut __struct . vel_variance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_variance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . roll_rate = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x_acc) ; __tmp . put_f32_le (self . y_acc) ; __tmp . put_f32_le (self . z_acc) ; __tmp . put_f32_le (self . x_vel) ; __tmp . put_f32_le (self . y_vel) ; __tmp . put_f32_le (self . z_vel) ; __tmp . put_f32_le (self . x_pos) ; __tmp . put_f32_le (self . y_pos) ; __tmp . put_f32_le (self . z_pos) ; __tmp . put_f32_le (self . airspeed) ; for val in & self . vel_variance { __tmp . put_f32_le (* val) ; } for val in & self . pos_variance { __tmp . put_f32_le (* val) ; } for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . roll_rate) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RESPONSE_EVENT_ERROR_DATA { pub sequence : u16 , pub sequence_oldest_available : u16 , pub target_system : u8 , pub target_component : u8 , pub reason : MavEventErrorReason , } impl RESPONSE_EVENT_ERROR_DATA { pub const ENCODED_LEN : usize = 7usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , sequence_oldest_available : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , reason : MavEventErrorReason :: DEFAULT , } ; } impl Default for RESPONSE_EVENT_ERROR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RESPONSE_EVENT_ERROR_DATA { type Message = MavMessage ; const ID : u32 = 413u32 ; const NAME : & 'static str = "RESPONSE_EVENT_ERROR" ; const EXTRA_CRC : u8 = 77u8 ; const ENCODED_LEN : usize = 7usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . sequence_oldest_available = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . reason = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEventErrorReason" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u16_le (self . sequence_oldest_available) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . reason as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_ATTITUDE_DATA { pub flags : GimbalManagerFlags , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_ATTITUDE_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 282u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_ATTITUDE" ; const EXTRA_CRC : u8 = 123u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AOA_SSA_DATA { pub time_usec : u64 , pub AOA : f32 , pub SSA : f32 , } impl AOA_SSA_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , AOA : 0.0_f32 , SSA : 0.0_f32 , } ; } impl Default for AOA_SSA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AOA_SSA_DATA { type Message = MavMessage ; const ID : u32 = 11020u32 ; const NAME : & 'static str = "AOA_SSA" ; const EXTRA_CRC : u8 = 205u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . AOA = buf . get_f32_le () ; __struct . SSA = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . AOA) ; __tmp . put_f32_le (self . SSA) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE3_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE3_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE3_DATA { type Message = MavMessage ; const ID : u32 = 143u32 ; const NAME : & 'static str = "SCALED_PRESSURE3" ; const EXTRA_CRC : u8 = 131u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAMED_VALUE_INT_DATA { pub time_boot_ms : u32 , pub value : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl NAMED_VALUE_INT_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0_i32 , name : [0_u8 ; 10usize] , } ; } impl Default for NAMED_VALUE_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAMED_VALUE_INT_DATA { type Message = MavMessage ; const ID : u32 = 252u32 ; const NAME : & 'static str = "NAMED_VALUE_INT" ; const EXTRA_CRC : u8 = 44u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_i32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . value) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRACKING_IMAGE_STATUS_DATA { pub point_x : f32 , pub point_y : f32 , pub radius : f32 , pub rec_top_x : f32 , pub rec_top_y : f32 , pub rec_bottom_x : f32 , pub rec_bottom_y : f32 , pub tracking_status : CameraTrackingStatusFlags , pub tracking_mode : CameraTrackingMode , pub target_data : CameraTrackingTargetData , } impl CAMERA_TRACKING_IMAGE_STATUS_DATA { pub const ENCODED_LEN : usize = 31usize ; pub const DEFAULT : Self = Self { point_x : 0.0_f32 , point_y : 0.0_f32 , radius : 0.0_f32 , rec_top_x : 0.0_f32 , rec_top_y : 0.0_f32 , rec_bottom_x : 0.0_f32 , rec_bottom_y : 0.0_f32 , tracking_status : CameraTrackingStatusFlags :: DEFAULT , tracking_mode : CameraTrackingMode :: DEFAULT , target_data : CameraTrackingTargetData :: DEFAULT , } ; } impl Default for CAMERA_TRACKING_IMAGE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRACKING_IMAGE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 275u32 ; const NAME : & 'static str = "CAMERA_TRACKING_IMAGE_STATUS" ; const EXTRA_CRC : u8 = 126u8 ; const ENCODED_LEN : usize = 31usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . point_x = buf . get_f32_le () ; __struct . point_y = buf . get_f32_le () ; __struct . radius = buf . get_f32_le () ; __struct . rec_top_x = buf . get_f32_le () ; __struct . rec_top_y = buf . get_f32_le () ; __struct . rec_bottom_x = buf . get_f32_le () ; __struct . rec_bottom_y = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . tracking_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingStatusFlags" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . tracking_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingMode" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . target_data = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingTargetData" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . point_x) ; __tmp . put_f32_le (self . point_y) ; __tmp . put_f32_le (self . radius) ; __tmp . put_f32_le (self . rec_top_x) ; __tmp . put_f32_le (self . rec_top_y) ; __tmp . put_f32_le (self . rec_bottom_x) ; __tmp . put_f32_le (self . rec_bottom_y) ; __tmp . put_u8 (self . tracking_status as u8) ; __tmp . put_u8 (self . tracking_mode as u8) ; __tmp . put_u8 (self . target_data as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LINK_NODE_STATUS_DATA { pub timestamp : u64 , pub tx_rate : u32 , pub rx_rate : u32 , pub messages_sent : u32 , pub messages_received : u32 , pub messages_lost : u32 , pub rx_parse_err : u16 , pub tx_overflows : u16 , pub rx_overflows : u16 , pub tx_buf : u8 , pub rx_buf : u8 , } impl LINK_NODE_STATUS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , tx_rate : 0_u32 , rx_rate : 0_u32 , messages_sent : 0_u32 , messages_received : 0_u32 , messages_lost : 0_u32 , rx_parse_err : 0_u16 , tx_overflows : 0_u16 , rx_overflows : 0_u16 , tx_buf : 0_u8 , rx_buf : 0_u8 , } ; } impl Default for LINK_NODE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LINK_NODE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 8u32 ; const NAME : & 'static str = "LINK_NODE_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . tx_rate = buf . get_u32_le () ; __struct . rx_rate = buf . get_u32_le () ; __struct . messages_sent = buf . get_u32_le () ; __struct . messages_received = buf . get_u32_le () ; __struct . messages_lost = buf . get_u32_le () ; __struct . rx_parse_err = buf . get_u16_le () ; __struct . tx_overflows = buf . get_u16_le () ; __struct . rx_overflows = buf . get_u16_le () ; __struct . tx_buf = buf . get_u8 () ; __struct . rx_buf = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u32_le (self . tx_rate) ; __tmp . put_u32_le (self . rx_rate) ; __tmp . put_u32_le (self . messages_sent) ; __tmp . put_u32_le (self . messages_received) ; __tmp . put_u32_le (self . messages_lost) ; __tmp . put_u16_le (self . rx_parse_err) ; __tmp . put_u16_le (self . tx_overflows) ; __tmp . put_u16_le (self . rx_overflows) ; __tmp . put_u8 (self . tx_buf) ; __tmp . put_u8 (self . rx_buf) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MAG_CAL_PROGRESS_DATA { pub direction_x : f32 , pub direction_y : f32 , pub direction_z : f32 , pub compass_id : u8 , pub cal_mask : u8 , pub cal_status : MagCalStatus , pub attempt : u8 , pub completion_pct : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub completion_mask : [u8 ; 10] , } impl MAG_CAL_PROGRESS_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { direction_x : 0.0_f32 , direction_y : 0.0_f32 , direction_z : 0.0_f32 , compass_id : 0_u8 , cal_mask : 0_u8 , cal_status : MagCalStatus :: DEFAULT , attempt : 0_u8 , completion_pct : 0_u8 , completion_mask : [0_u8 ; 10usize] , } ; } impl Default for MAG_CAL_PROGRESS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MAG_CAL_PROGRESS_DATA { type Message = MavMessage ; const ID : u32 = 191u32 ; const NAME : & 'static str = "MAG_CAL_PROGRESS" ; const EXTRA_CRC : u8 = 92u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . direction_x = buf . get_f32_le () ; __struct . direction_y = buf . get_f32_le () ; __struct . direction_z = buf . get_f32_le () ; __struct . compass_id = buf . get_u8 () ; __struct . cal_mask = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . cal_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MagCalStatus" , value : tmp as u32 }) ? ; __struct . attempt = buf . get_u8 () ; __struct . completion_pct = buf . get_u8 () ; for v in & mut __struct . completion_mask { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . direction_x) ; __tmp . put_f32_le (self . direction_y) ; __tmp . put_f32_le (self . direction_z) ; __tmp . put_u8 (self . compass_id) ; __tmp . put_u8 (self . cal_mask) ; __tmp . put_u8 (self . cal_status as u8) ; __tmp . put_u8 (self . attempt) ; __tmp . put_u8 (self . completion_pct) ; for val in & self . completion_mask { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_DATA_DATA { pub ofs : u32 , pub count : u32 , pub id : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_DATA_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { ofs : 0_u32 , count : 0_u32 , id : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_DATA_DATA { type Message = MavMessage ; const ID : u32 = 119u32 ; const NAME : & 'static str = "LOG_REQUEST_DATA" ; const EXTRA_CRC : u8 = 116u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ofs = buf . get_u32_le () ; __struct . count = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ofs) ; __tmp . put_u32_le (self . count) ; __tmp . put_u16_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl PARAM_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PARAM_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 21u32 ; const NAME : & 'static str = "PARAM_REQUEST_LIST" ; const EXTRA_CRC : u8 = 159u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RAW_INT_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub cog : u16 , pub fix_type : GpsFixType , pub satellites_visible : u8 , } impl GPS_RAW_INT_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , cog : 0_u16 , fix_type : GpsFixType :: DEFAULT , satellites_visible : 0_u8 , } ; } impl Default for GPS_RAW_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RAW_INT_DATA { type Message = MavMessage ; const ID : u32 = 24u32 ; const NAME : & 'static str = "GPS_RAW_INT" ; const EXTRA_CRC : u8 = 24u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . cog = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type as u8) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_VERSION_REQUEST_DATA { pub target_system : u8 , pub target_component : u8 , } impl AUTOPILOT_VERSION_REQUEST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for AUTOPILOT_VERSION_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_VERSION_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 183u32 ; const NAME : & 'static str = "AUTOPILOT_VERSION_REQUEST" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TUNNEL_DATA { pub payload_type : MavTunnelPayloadType , pub target_system : u8 , pub target_component : u8 , pub payload_length : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 128] , } impl TUNNEL_DATA { pub const ENCODED_LEN : usize = 133usize ; pub const DEFAULT : Self = Self { payload_type : MavTunnelPayloadType :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , payload_length : 0_u8 , payload : [0_u8 ; 128usize] , } ; } impl Default for TUNNEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TUNNEL_DATA { type Message = MavMessage ; const ID : u32 = 385u32 ; const NAME : & 'static str = "TUNNEL" ; const EXTRA_CRC : u8 = 147u8 ; const ENCODED_LEN : usize = 133usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . payload_type = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavTunnelPayloadType" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . payload_length = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . payload_type as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . payload_length) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OSD_PARAM_SHOW_CONFIG_DATA { pub request_id : u32 , pub target_system : u8 , pub target_component : u8 , pub osd_screen : u8 , pub osd_index : u8 , } impl OSD_PARAM_SHOW_CONFIG_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , osd_screen : 0_u8 , osd_index : 0_u8 , } ; } impl Default for OSD_PARAM_SHOW_CONFIG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OSD_PARAM_SHOW_CONFIG_DATA { type Message = MavMessage ; const ID : u32 = 11035u32 ; const NAME : & 'static str = "OSD_PARAM_SHOW_CONFIG" ; const EXTRA_CRC : u8 = 128u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . osd_screen = buf . get_u8 () ; __struct . osd_index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . osd_screen) ; __tmp . put_u8 (self . osd_index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TRAJECTORY_REPRESENTATION_BEZIER_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub delta : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_yaw : [f32 ; 5] , pub valid_points : u8 , } impl TRAJECTORY_REPRESENTATION_BEZIER_DATA { pub const ENCODED_LEN : usize = 109usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , pos_x : [0.0_f32 ; 5usize] , pos_y : [0.0_f32 ; 5usize] , pos_z : [0.0_f32 ; 5usize] , delta : [0.0_f32 ; 5usize] , pos_yaw : [0.0_f32 ; 5usize] , valid_points : 0_u8 , } ; } impl Default for TRAJECTORY_REPRESENTATION_BEZIER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TRAJECTORY_REPRESENTATION_BEZIER_DATA { type Message = MavMessage ; const ID : u32 = 333u32 ; const NAME : & 'static str = "TRAJECTORY_REPRESENTATION_BEZIER" ; const EXTRA_CRC : u8 = 231u8 ; const ENCODED_LEN : usize = 109usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . pos_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . delta { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_yaw { let val = buf . get_f32_le () ; * v = val ; } __struct . valid_points = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . pos_x { __tmp . put_f32_le (* val) ; } for val in & self . pos_y { __tmp . put_f32_le (* val) ; } for val in & self . pos_z { __tmp . put_f32_le (* val) ; } for val in & self . delta { __tmp . put_f32_le (* val) ; } for val in & self . pos_yaw { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . valid_points) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_SPEED_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , } impl VISION_SPEED_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , } ; } impl Default for VISION_SPEED_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_SPEED_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 103u32 ; const NAME : & 'static str = "VISION_SPEED_ESTIMATE" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OBSTACLE_DISTANCE_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub distances : [u16 ; 72] , pub min_distance : u16 , pub max_distance : u16 , pub sensor_type : MavDistanceSensor , pub increment : u8 , } impl OBSTACLE_DISTANCE_DATA { pub const ENCODED_LEN : usize = 158usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , distances : [0_u16 ; 72usize] , min_distance : 0_u16 , max_distance : 0_u16 , sensor_type : MavDistanceSensor :: DEFAULT , increment : 0_u8 , } ; } impl Default for OBSTACLE_DISTANCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OBSTACLE_DISTANCE_DATA { type Message = MavMessage ; const ID : u32 = 330u32 ; const NAME : & 'static str = "OBSTACLE_DISTANCE" ; const EXTRA_CRC : u8 = 23u8 ; const ENCODED_LEN : usize = 158usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . distances { let val = buf . get_u16_le () ; * v = val ; } __struct . min_distance = buf . get_u16_le () ; __struct . max_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . sensor_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; __struct . increment = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . distances { __tmp . put_u16_le (* val) ; } __tmp . put_u16_le (self . min_distance) ; __tmp . put_u16_le (self . max_distance) ; __tmp . put_u8 (self . sensor_type as u8) ; __tmp . put_u8 (self . increment) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU2_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU2_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU2_DATA { type Message = MavMessage ; const ID : u32 = 116u32 ; const NAME : & 'static str = "SCALED_IMU2" ; const EXTRA_CRC : u8 = 76u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 40u32 ; const NAME : & 'static str = "MISSION_REQUEST" ; const EXTRA_CRC : u8 = 230u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LED_CONTROL_DATA { pub target_system : u8 , pub target_component : u8 , pub instance : u8 , pub pattern : u8 , pub custom_len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub custom_bytes : [u8 ; 24] , } impl LED_CONTROL_DATA { pub const ENCODED_LEN : usize = 29usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , instance : 0_u8 , pattern : 0_u8 , custom_len : 0_u8 , custom_bytes : [0_u8 ; 24usize] , } ; } impl Default for LED_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LED_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 186u32 ; const NAME : & 'static str = "LED_CONTROL" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 29usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . instance = buf . get_u8 () ; __struct . pattern = buf . get_u8 () ; __struct . custom_len = buf . get_u8 () ; for v in & mut __struct . custom_bytes { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . instance) ; __tmp . put_u8 (self . pattern) ; __tmp . put_u8 (self . custom_len) ; for val in & self . custom_bytes { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU3_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU3_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU3_DATA { type Message = MavMessage ; const ID : u32 = 129u32 ; const NAME : & 'static str = "SCALED_IMU3" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_yaw : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_yaw : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub command : [u16 ; 5] , pub valid_points : u8 , } impl TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { pub const ENCODED_LEN : usize = 239usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , pos_x : [0.0_f32 ; 5usize] , pos_y : [0.0_f32 ; 5usize] , pos_z : [0.0_f32 ; 5usize] , vel_x : [0.0_f32 ; 5usize] , vel_y : [0.0_f32 ; 5usize] , vel_z : [0.0_f32 ; 5usize] , acc_x : [0.0_f32 ; 5usize] , acc_y : [0.0_f32 ; 5usize] , acc_z : [0.0_f32 ; 5usize] , pos_yaw : [0.0_f32 ; 5usize] , vel_yaw : [0.0_f32 ; 5usize] , command : [0_u16 ; 5usize] , valid_points : 0_u8 , } ; } impl Default for TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { type Message = MavMessage ; const ID : u32 = 332u32 ; const NAME : & 'static str = "TRAJECTORY_REPRESENTATION_WAYPOINTS" ; const EXTRA_CRC : u8 = 236u8 ; const ENCODED_LEN : usize = 239usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . pos_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_yaw { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_yaw { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . command { let val = buf . get_u16_le () ; * v = val ; } __struct . valid_points = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . pos_x { __tmp . put_f32_le (* val) ; } for val in & self . pos_y { __tmp . put_f32_le (* val) ; } for val in & self . pos_z { __tmp . put_f32_le (* val) ; } for val in & self . vel_x { __tmp . put_f32_le (* val) ; } for val in & self . vel_y { __tmp . put_f32_le (* val) ; } for val in & self . vel_z { __tmp . put_f32_le (* val) ; } for val in & self . acc_x { __tmp . put_f32_le (* val) ; } for val in & self . acc_y { __tmp . put_f32_le (* val) ; } for val in & self . acc_z { __tmp . put_f32_le (* val) ; } for val in & self . pos_yaw { __tmp . put_f32_le (* val) ; } for val in & self . vel_yaw { __tmp . put_f32_le (* val) ; } for val in & self . command { __tmp . put_u16_le (* val) ; } __tmp . put_u8 (self . valid_points) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COLLISION_DATA { pub id : u32 , pub time_to_minimum_delta : f32 , pub altitude_minimum_delta : f32 , pub horizontal_minimum_delta : f32 , pub src : MavCollisionSrc , pub action : MavCollisionAction , pub threat_level : MavCollisionThreatLevel , } impl COLLISION_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { id : 0_u32 , time_to_minimum_delta : 0.0_f32 , altitude_minimum_delta : 0.0_f32 , horizontal_minimum_delta : 0.0_f32 , src : MavCollisionSrc :: DEFAULT , action : MavCollisionAction :: DEFAULT , threat_level : MavCollisionThreatLevel :: DEFAULT , } ; } impl Default for COLLISION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COLLISION_DATA { type Message = MavMessage ; const ID : u32 = 247u32 ; const NAME : & 'static str = "COLLISION" ; const EXTRA_CRC : u8 = 81u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . time_to_minimum_delta = buf . get_f32_le () ; __struct . altitude_minimum_delta = buf . get_f32_le () ; __struct . horizontal_minimum_delta = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . src = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionSrc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . action = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionAction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . threat_level = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionThreatLevel" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_f32_le (self . time_to_minimum_delta) ; __tmp . put_f32_le (self . altitude_minimum_delta) ; __tmp . put_f32_le (self . horizontal_minimum_delta) ; __tmp . put_u8 (self . src as u8) ; __tmp . put_u8 (self . action as u8) ; __tmp . put_u8 (self . threat_level as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_COUNT_DATA { pub count : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_COUNT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { count : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_COUNT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_COUNT_DATA { type Message = MavMessage ; const ID : u32 = 44u32 ; const NAME : & 'static str = "MISSION_COUNT" ; const EXTRA_CRC : u8 = 221u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . count = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . count) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATT_POS_MOCAP_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub x : f32 , pub y : f32 , pub z : f32 , } impl ATT_POS_MOCAP_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , q : [0.0_f32 ; 4usize] , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , } ; } impl Default for ATT_POS_MOCAP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATT_POS_MOCAP_DATA { type Message = MavMessage ; const ID : u32 = 138u32 ; const NAME : & 'static str = "ATT_POS_MOCAP" ; const EXTRA_CRC : u8 = 109u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA32_DATA { pub mavtype : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 32] , } impl DATA32_DATA { pub const ENCODED_LEN : usize = 34usize ; pub const DEFAULT : Self = Self { mavtype : 0_u8 , len : 0_u8 , data : [0_u8 ; 32usize] , } ; } impl Default for DATA32_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA32_DATA { type Message = MavMessage ; const ID : u32 = 170u32 ; const NAME : & 'static str = "DATA32" ; const EXTRA_CRC : u8 = 73u8 ; const ENCODED_LEN : usize = 34usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mavtype = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . mavtype) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_VALUE_DATA { pub param_count : u16 , pub param_index : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , } impl PARAM_EXT_VALUE_DATA { pub const ENCODED_LEN : usize = 149usize ; pub const DEFAULT : Self = Self { param_count : 0_u16 , param_index : 0_u16 , param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , } ; } impl Default for PARAM_EXT_VALUE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_VALUE_DATA { type Message = MavMessage ; const ID : u32 = 322u32 ; const NAME : & 'static str = "PARAM_EXT_VALUE" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 149usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_count = buf . get_u16_le () ; __struct . param_index = buf . get_u16_le () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . param_count) ; __tmp . put_u16_le (self . param_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_VERSION_DATA { pub capabilities : MavProtocolCapability , pub uid : u64 , pub flight_sw_version : u32 , pub middleware_sw_version : u32 , pub os_sw_version : u32 , pub board_version : u32 , pub vendor_id : u16 , pub product_id : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub flight_custom_version : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub middleware_custom_version : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub os_custom_version : [u8 ; 8] , } impl AUTOPILOT_VERSION_DATA { pub const ENCODED_LEN : usize = 60usize ; pub const DEFAULT : Self = Self { capabilities : MavProtocolCapability :: DEFAULT , uid : 0_u64 , flight_sw_version : 0_u32 , middleware_sw_version : 0_u32 , os_sw_version : 0_u32 , board_version : 0_u32 , vendor_id : 0_u16 , product_id : 0_u16 , flight_custom_version : [0_u8 ; 8usize] , middleware_custom_version : [0_u8 ; 8usize] , os_custom_version : [0_u8 ; 8usize] , } ; } impl Default for AUTOPILOT_VERSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_VERSION_DATA { type Message = MavMessage ; const ID : u32 = 148u32 ; const NAME : & 'static str = "AUTOPILOT_VERSION" ; const EXTRA_CRC : u8 = 178u8 ; const ENCODED_LEN : usize = 60usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u64_le () ; __struct . capabilities = MavProtocolCapability :: from_bits (tmp & MavProtocolCapability :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavProtocolCapability" , value : tmp as u32 }) ? ; __struct . uid = buf . get_u64_le () ; __struct . flight_sw_version = buf . get_u32_le () ; __struct . middleware_sw_version = buf . get_u32_le () ; __struct . os_sw_version = buf . get_u32_le () ; __struct . board_version = buf . get_u32_le () ; __struct . vendor_id = buf . get_u16_le () ; __struct . product_id = buf . get_u16_le () ; for v in & mut __struct . flight_custom_version { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . middleware_custom_version { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . os_custom_version { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . capabilities . bits ()) ; __tmp . put_u64_le (self . uid) ; __tmp . put_u32_le (self . flight_sw_version) ; __tmp . put_u32_le (self . middleware_sw_version) ; __tmp . put_u32_le (self . os_sw_version) ; __tmp . put_u32_le (self . board_version) ; __tmp . put_u16_le (self . vendor_id) ; __tmp . put_u16_le (self . product_id) ; for val in & self . flight_custom_version { __tmp . put_u8 (* val) ; } for val in & self . middleware_custom_version { __tmp . put_u8 (* val) ; } for val in & self . os_custom_version { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { pub flags : GimbalManagerFlags , pub pitch : f32 , pub yaw : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , pitch : 0.0_f32 , yaw : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 288u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_MANUAL_CONTROL" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA64_DATA { pub mavtype : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 64] , } impl DATA64_DATA { pub const ENCODED_LEN : usize = 66usize ; pub const DEFAULT : Self = Self { mavtype : 0_u8 , len : 0_u8 , data : [0_u8 ; 64usize] , } ; } impl Default for DATA64_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA64_DATA { type Message = MavMessage ; const ID : u32 = 171u32 ; const NAME : & 'static str = "DATA64" ; const EXTRA_CRC : u8 = 181u8 ; const ENCODED_LEN : usize = 66usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mavtype = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . mavtype) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ODOMETRY_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pose_covariance : [f32 ; 21] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub velocity_covariance : [f32 ; 21] , pub frame_id : MavFrame , pub child_frame_id : MavFrame , } impl ODOMETRY_DATA { pub const ENCODED_LEN : usize = 230usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , pose_covariance : [0.0_f32 ; 21usize] , velocity_covariance : [0.0_f32 ; 21usize] , frame_id : MavFrame :: DEFAULT , child_frame_id : MavFrame :: DEFAULT , } ; } impl Default for ODOMETRY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ODOMETRY_DATA { type Message = MavMessage ; const ID : u32 = 331u32 ; const NAME : & 'static str = "ODOMETRY" ; const EXTRA_CRC : u8 = 91u8 ; const ENCODED_LEN : usize = 230usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; for v in & mut __struct . pose_covariance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . velocity_covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . frame_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . child_frame_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; for val in & self . pose_covariance { __tmp . put_f32_le (* val) ; } for val in & self . velocity_covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . frame_id as u8) ; __tmp . put_u8 (self . child_frame_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PING_DATA { pub time_usec : u64 , pub seq : u32 , pub target_system : u8 , pub target_component : u8 , } impl PING_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , seq : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PING_DATA { type Message = MavMessage ; const ID : u32 = 4u32 ; const NAME : & 'static str = "PING" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . seq = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MESSAGE_INTERVAL_DATA { pub interval_us : i32 , pub message_id : u16 , } impl MESSAGE_INTERVAL_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { interval_us : 0_i32 , message_id : 0_u16 , } ; } impl Default for MESSAGE_INTERVAL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MESSAGE_INTERVAL_DATA { type Message = MavMessage ; const ID : u32 = 244u32 ; const NAME : & 'static str = "MESSAGE_INTERVAL" ; const EXTRA_CRC : u8 = 95u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . interval_us = buf . get_i32_le () ; __struct . message_id = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . interval_us) ; __tmp . put_u16_le (self . message_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_ACTUATOR_CONTROLS_DATA { pub time_usec : u64 , pub flags : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 16] , pub mode : MavModeFlag , } impl HIL_ACTUATOR_CONTROLS_DATA { pub const ENCODED_LEN : usize = 81usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , flags : 0_u64 , controls : [0.0_f32 ; 16usize] , mode : MavModeFlag :: DEFAULT , } ; } impl Default for HIL_ACTUATOR_CONTROLS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_ACTUATOR_CONTROLS_DATA { type Message = MavMessage ; const ID : u32 = 93u32 ; const NAME : & 'static str = "HIL_ACTUATOR_CONTROLS" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 81usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . flags = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u64_le (self . flags) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . mode . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EKF_STATUS_REPORT_DATA { pub velocity_variance : f32 , pub pos_horiz_variance : f32 , pub pos_vert_variance : f32 , pub compass_variance : f32 , pub terrain_alt_variance : f32 , pub flags : EkfStatusFlags , } impl EKF_STATUS_REPORT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { velocity_variance : 0.0_f32 , pos_horiz_variance : 0.0_f32 , pos_vert_variance : 0.0_f32 , compass_variance : 0.0_f32 , terrain_alt_variance : 0.0_f32 , flags : EkfStatusFlags :: DEFAULT , } ; } impl Default for EKF_STATUS_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EKF_STATUS_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 193u32 ; const NAME : & 'static str = "EKF_STATUS_REPORT" ; const EXTRA_CRC : u8 = 71u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . velocity_variance = buf . get_f32_le () ; __struct . pos_horiz_variance = buf . get_f32_le () ; __struct . pos_vert_variance = buf . get_f32_le () ; __struct . compass_variance = buf . get_f32_le () ; __struct . terrain_alt_variance = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = EkfStatusFlags :: from_bits (tmp & EkfStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EkfStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . velocity_variance) ; __tmp . put_f32_le (self . pos_horiz_variance) ; __tmp . put_f32_le (self . pos_vert_variance) ; __tmp . put_f32_le (self . compass_variance) ; __tmp . put_f32_le (self . terrain_alt_variance) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AHRS3_DATA { pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub altitude : f32 , pub lat : i32 , pub lng : i32 , pub v1 : f32 , pub v2 : f32 , pub v3 : f32 , pub v4 : f32 , } impl AHRS3_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , altitude : 0.0_f32 , lat : 0_i32 , lng : 0_i32 , v1 : 0.0_f32 , v2 : 0.0_f32 , v3 : 0.0_f32 , v4 : 0.0_f32 , } ; } impl Default for AHRS3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AHRS3_DATA { type Message = MavMessage ; const ID : u32 = 182u32 ; const NAME : & 'static str = "AHRS3" ; const EXTRA_CRC : u8 = 229u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . altitude = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lng = buf . get_i32_le () ; __struct . v1 = buf . get_f32_le () ; __struct . v2 = buf . get_f32_le () ; __struct . v3 = buf . get_f32_le () ; __struct . v4 = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . altitude) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lng) ; __tmp . put_f32_le (self . v1) ; __tmp . put_f32_le (self . v2) ; __tmp . put_f32_le (self . v3) ; __tmp . put_f32_le (self . v4) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_STATE_QUATERNION_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub attitude_quaternion : [f32 ; 4] , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub ind_airspeed : u16 , pub true_airspeed : u16 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , } impl HIL_STATE_QUATERNION_DATA { pub const ENCODED_LEN : usize = 64usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , attitude_quaternion : [0.0_f32 ; 4usize] , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , ind_airspeed : 0_u16 , true_airspeed : 0_u16 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , } ; } impl Default for HIL_STATE_QUATERNION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_STATE_QUATERNION_DATA { type Message = MavMessage ; const ID : u32 = 115u32 ; const NAME : & 'static str = "HIL_STATE_QUATERNION" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 64usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . attitude_quaternion { let val = buf . get_f32_le () ; * v = val ; } __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . ind_airspeed = buf . get_u16_le () ; __struct . true_airspeed = buf . get_u16_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . attitude_quaternion { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . ind_airspeed) ; __tmp . put_u16_le (self . true_airspeed) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub failure_flags : GimbalDeviceErrorFlags , pub flags : GimbalDeviceFlags , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , failure_flags : GimbalDeviceErrorFlags :: DEFAULT , flags : GimbalDeviceFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 285u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_ATTITUDE_STATUS" ; const EXTRA_CRC : u8 = 137u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . failure_flags = GimbalDeviceErrorFlags :: from_bits (tmp & GimbalDeviceErrorFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceErrorFlags" , value : tmp as u32 }) ? ; let tmp = buf . get_u16_le () ; __struct . flags = GimbalDeviceFlags :: from_bits (tmp & GimbalDeviceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u32_le (self . failure_flags . bits ()) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_GPS_GLOBAL_ORIGIN_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub target_system : u8 , } impl SET_GPS_GLOBAL_ORIGIN_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , target_system : 0_u8 , } ; } impl Default for SET_GPS_GLOBAL_ORIGIN_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_GPS_GLOBAL_ORIGIN_DATA { type Message = MavMessage ; const ID : u32 = 48u32 ; const NAME : & 'static str = "SET_GPS_GLOBAL_ORIGIN" ; const EXTRA_CRC : u8 = 41u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . target_system = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_u8 (self . target_system) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POSITION_TARGET_GLOBAL_INT_DATA { pub time_boot_ms : u32 , pub lat_int : i32 , pub lon_int : i32 , pub alt : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub coordinate_frame : MavFrame , } impl POSITION_TARGET_GLOBAL_INT_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_int : 0_i32 , lon_int : 0_i32 , alt : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for POSITION_TARGET_GLOBAL_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POSITION_TARGET_GLOBAL_INT_DATA { type Message = MavMessage ; const ID : u32 = 87u32 ; const NAME : & 'static str = "POSITION_TARGET_GLOBAL_INT" ; const EXTRA_CRC : u8 = 150u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_int = buf . get_i32_le () ; __struct . lon_int = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_int) ; __tmp . put_i32_le (self . lon_int) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_TARGET_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub body_roll_rate : f32 , pub body_pitch_rate : f32 , pub body_yaw_rate : f32 , pub thrust : f32 , pub type_mask : AttitudeTargetTypemask , } impl ATTITUDE_TARGET_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , body_roll_rate : 0.0_f32 , body_pitch_rate : 0.0_f32 , body_yaw_rate : 0.0_f32 , thrust : 0.0_f32 , type_mask : AttitudeTargetTypemask :: DEFAULT , } ; } impl Default for ATTITUDE_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 83u32 ; const NAME : & 'static str = "ATTITUDE_TARGET" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . body_roll_rate = buf . get_f32_le () ; __struct . body_pitch_rate = buf . get_f32_le () ; __struct . body_yaw_rate = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . type_mask = AttitudeTargetTypemask :: from_bits (tmp & AttitudeTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AttitudeTargetTypemask" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . body_roll_rate) ; __tmp . put_f32_le (self . body_pitch_rate) ; __tmp . put_f32_le (self . body_yaw_rate) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . type_mask . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RADIO_DATA { pub rxerrors : u16 , pub fixed : u16 , pub rssi : u8 , pub remrssi : u8 , pub txbuf : u8 , pub noise : u8 , pub remnoise : u8 , } impl RADIO_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { rxerrors : 0_u16 , fixed : 0_u16 , rssi : 0_u8 , remrssi : 0_u8 , txbuf : 0_u8 , noise : 0_u8 , remnoise : 0_u8 , } ; } impl Default for RADIO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RADIO_DATA { type Message = MavMessage ; const ID : u32 = 166u32 ; const NAME : & 'static str = "RADIO" ; const EXTRA_CRC : u8 = 21u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . rxerrors = buf . get_u16_le () ; __struct . fixed = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; __struct . remrssi = buf . get_u8 () ; __struct . txbuf = buf . get_u8 () ; __struct . noise = buf . get_u8 () ; __struct . remnoise = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . rxerrors) ; __tmp . put_u16_le (self . fixed) ; __tmp . put_u8 (self . rssi) ; __tmp . put_u8 (self . remrssi) ; __tmp . put_u8 (self . txbuf) ; __tmp . put_u8 (self . noise) ; __tmp . put_u8 (self . remnoise) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_VALUE_DATA { pub param_value : f32 , pub param_count : u16 , pub param_index : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub param_type : MavParamType , } impl PARAM_VALUE_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { param_value : 0.0_f32 , param_count : 0_u16 , param_index : 0_u16 , param_id : [0_u8 ; 16usize] , param_type : MavParamType :: DEFAULT , } ; } impl Default for PARAM_VALUE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_VALUE_DATA { type Message = MavMessage ; const ID : u32 = 22u32 ; const NAME : & 'static str = "PARAM_VALUE" ; const EXTRA_CRC : u8 = 220u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value = buf . get_f32_le () ; __struct . param_count = buf . get_u16_le () ; __struct . param_index = buf . get_u16_le () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value) ; __tmp . put_u16_le (self . param_count) ; __tmp . put_u16_le (self . param_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { pub operator_latitude : i32 , pub operator_longitude : i32 , pub operator_altitude_geo : f32 , pub timestamp : u32 , pub target_system : u8 , pub target_component : u8 , } impl OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { operator_latitude : 0_i32 , operator_longitude : 0_i32 , operator_altitude_geo : 0.0_f32 , timestamp : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { type Message = MavMessage ; const ID : u32 = 12919u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SYSTEM_UPDATE" ; const EXTRA_CRC : u8 = 7u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . operator_latitude = buf . get_i32_le () ; __struct . operator_longitude = buf . get_i32_le () ; __struct . operator_altitude_geo = buf . get_f32_le () ; __struct . timestamp = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . operator_latitude) ; __tmp . put_i32_le (self . operator_longitude) ; __tmp . put_f32_le (self . operator_altitude_geo) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ADSB_VEHICLE_DATA { pub ICAO_address : u32 , pub lat : i32 , pub lon : i32 , pub altitude : i32 , pub heading : u16 , pub hor_velocity : u16 , pub ver_velocity : i16 , pub flags : AdsbFlags , pub squawk : u16 , pub altitude_type : AdsbAltitudeType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 9] , pub emitter_type : AdsbEmitterType , pub tslc : u8 , } impl ADSB_VEHICLE_DATA { pub const ENCODED_LEN : usize = 38usize ; pub const DEFAULT : Self = Self { ICAO_address : 0_u32 , lat : 0_i32 , lon : 0_i32 , altitude : 0_i32 , heading : 0_u16 , hor_velocity : 0_u16 , ver_velocity : 0_i16 , flags : AdsbFlags :: DEFAULT , squawk : 0_u16 , altitude_type : AdsbAltitudeType :: DEFAULT , callsign : [0_u8 ; 9usize] , emitter_type : AdsbEmitterType :: DEFAULT , tslc : 0_u8 , } ; } impl Default for ADSB_VEHICLE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ADSB_VEHICLE_DATA { type Message = MavMessage ; const ID : u32 = 246u32 ; const NAME : & 'static str = "ADSB_VEHICLE" ; const EXTRA_CRC : u8 = 184u8 ; const ENCODED_LEN : usize = 38usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ICAO_address = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . heading = buf . get_u16_le () ; __struct . hor_velocity = buf . get_u16_le () ; __struct . ver_velocity = buf . get_i16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = AdsbFlags :: from_bits (tmp & AdsbFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AdsbFlags" , value : tmp as u32 }) ? ; __struct . squawk = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . altitude_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbAltitudeType" , value : tmp as u32 }) ? ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . emitter_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbEmitterType" , value : tmp as u32 }) ? ; __struct . tslc = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ICAO_address) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_u16_le (self . heading) ; __tmp . put_u16_le (self . hor_velocity) ; __tmp . put_i16_le (self . ver_velocity) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u16_le (self . squawk) ; __tmp . put_u8 (self . altitude_type as u8) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . emitter_type as u8) ; __tmp . put_u8 (self . tslc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEVICE_OP_READ_DATA { pub request_id : u32 , pub target_system : u8 , pub target_component : u8 , pub bustype : DeviceOpBustype , pub bus : u8 , pub address : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub busname : [u8 ; 40] , pub regstart : u8 , pub count : u8 , } impl DEVICE_OP_READ_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bustype : DeviceOpBustype :: DEFAULT , bus : 0_u8 , address : 0_u8 , busname : [0_u8 ; 40usize] , regstart : 0_u8 , count : 0_u8 , } ; } impl Default for DEVICE_OP_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEVICE_OP_READ_DATA { type Message = MavMessage ; const ID : u32 = 11000u32 ; const NAME : & 'static str = "DEVICE_OP_READ" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . bustype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "DeviceOpBustype" , value : tmp as u32 }) ? ; __struct . bus = buf . get_u8 () ; __struct . address = buf . get_u8 () ; for v in & mut __struct . busname { let val = buf . get_u8 () ; * v = val ; } __struct . regstart = buf . get_u8 () ; __struct . count = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bustype as u8) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . address) ; for val in & self . busname { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . regstart) ; __tmp . put_u8 (self . count) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EVENT_DATA { pub id : u32 , pub event_time_boot_ms : u32 , pub sequence : u16 , pub destination_component : u8 , pub destination_system : u8 , pub log_levels : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub arguments : [u8 ; 40] , } impl EVENT_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { id : 0_u32 , event_time_boot_ms : 0_u32 , sequence : 0_u16 , destination_component : 0_u8 , destination_system : 0_u8 , log_levels : 0_u8 , arguments : [0_u8 ; 40usize] , } ; } impl Default for EVENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EVENT_DATA { type Message = MavMessage ; const ID : u32 = 410u32 ; const NAME : & 'static str = "EVENT" ; const EXTRA_CRC : u8 = 160u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . event_time_boot_ms = buf . get_u32_le () ; __struct . sequence = buf . get_u16_le () ; __struct . destination_component = buf . get_u8 () ; __struct . destination_system = buf . get_u8 () ; __struct . log_levels = buf . get_u8 () ; for v in & mut __struct . arguments { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u32_le (self . event_time_boot_ms) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . destination_component) ; __tmp . put_u8 (self . destination_system) ; __tmp . put_u8 (self . log_levels) ; for val in & self . arguments { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_LONG_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub param5 : f32 , pub param6 : f32 , pub param7 : f32 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub confirmation : u8 , } impl COMMAND_LONG_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , param5 : 0.0_f32 , param6 : 0.0_f32 , param7 : 0.0_f32 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , confirmation : 0_u8 , } ; } impl Default for COMMAND_LONG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_LONG_DATA { type Message = MavMessage ; const ID : u32 = 76u32 ; const NAME : & 'static str = "COMMAND_LONG" ; const EXTRA_CRC : u8 = 152u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . param5 = buf . get_f32_le () ; __struct . param6 = buf . get_f32_le () ; __struct . param7 = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . confirmation = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_f32_le (self . param5) ; __tmp . put_f32_le (self . param6) ; __tmp . put_f32_le (self . param7) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . confirmation) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RADIO_STATUS_DATA { pub rxerrors : u16 , pub fixed : u16 , pub rssi : u8 , pub remrssi : u8 , pub txbuf : u8 , pub noise : u8 , pub remnoise : u8 , } impl RADIO_STATUS_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { rxerrors : 0_u16 , fixed : 0_u16 , rssi : 0_u8 , remrssi : 0_u8 , txbuf : 0_u8 , noise : 0_u8 , remnoise : 0_u8 , } ; } impl Default for RADIO_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RADIO_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 109u32 ; const NAME : & 'static str = "RADIO_STATUS" ; const EXTRA_CRC : u8 = 185u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . rxerrors = buf . get_u16_le () ; __struct . fixed = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; __struct . remrssi = buf . get_u8 () ; __struct . txbuf = buf . get_u8 () ; __struct . noise = buf . get_u8 () ; __struct . remnoise = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . rxerrors) ; __tmp . put_u16_le (self . fixed) ; __tmp . put_u8 (self . rssi) ; __tmp . put_u8 (self . remrssi) ; __tmp . put_u8 (self . txbuf) ; __tmp . put_u8 (self . noise) ; __tmp . put_u8 (self . remnoise) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MEMORY_VECT_DATA { pub address : u16 , pub ver : u8 , pub mavtype : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub value : [i8 ; 32] , } impl MEMORY_VECT_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { address : 0_u16 , ver : 0_u8 , mavtype : 0_u8 , value : [0_i8 ; 32usize] , } ; } impl Default for MEMORY_VECT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MEMORY_VECT_DATA { type Message = MavMessage ; const ID : u32 = 249u32 ; const NAME : & 'static str = "MEMORY_VECT" ; const EXTRA_CRC : u8 = 204u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . address = buf . get_u16_le () ; __struct . ver = buf . get_u8 () ; __struct . mavtype = buf . get_u8 () ; for v in & mut __struct . value { let val = buf . get_i8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . address) ; __tmp . put_u8 (self . ver) ; __tmp . put_u8 (self . mavtype) ; for val in & self . value { __tmp . put_i8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REQUEST_DATA_STREAM_DATA { pub req_message_rate : u16 , pub target_system : u8 , pub target_component : u8 , pub req_stream_id : u8 , pub start_stop : u8 , } impl REQUEST_DATA_STREAM_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { req_message_rate : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , req_stream_id : 0_u8 , start_stop : 0_u8 , } ; } impl Default for REQUEST_DATA_STREAM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REQUEST_DATA_STREAM_DATA { type Message = MavMessage ; const ID : u32 = 66u32 ; const NAME : & 'static str = "REQUEST_DATA_STREAM" ; const EXTRA_CRC : u8 = 148u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . req_message_rate = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . req_stream_id = buf . get_u8 () ; __struct . start_stop = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . req_message_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . req_stream_id) ; __tmp . put_u8 (self . start_stop) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIFI_CONFIG_AP_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub ssid : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub password : [u8 ; 64] , } impl WIFI_CONFIG_AP_DATA { pub const ENCODED_LEN : usize = 96usize ; pub const DEFAULT : Self = Self { ssid : [0_u8 ; 32usize] , password : [0_u8 ; 64usize] , } ; } impl Default for WIFI_CONFIG_AP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIFI_CONFIG_AP_DATA { type Message = MavMessage ; const ID : u32 = 299u32 ; const NAME : & 'static str = "WIFI_CONFIG_AP" ; const EXTRA_CRC : u8 = 19u8 ; const ENCODED_LEN : usize = 96usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . ssid { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . password { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . ssid { __tmp . put_u8 (* val) ; } for val in & self . password { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_TELEMETRY_9_TO_12_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltage : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub current : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub totalcurrent : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rpm : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub count : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature : [u8 ; 4] , } impl ESC_TELEMETRY_9_TO_12_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { voltage : [0_u16 ; 4usize] , current : [0_u16 ; 4usize] , totalcurrent : [0_u16 ; 4usize] , rpm : [0_u16 ; 4usize] , count : [0_u16 ; 4usize] , temperature : [0_u8 ; 4usize] , } ; } impl Default for ESC_TELEMETRY_9_TO_12_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_TELEMETRY_9_TO_12_DATA { type Message = MavMessage ; const ID : u32 = 11032u32 ; const NAME : & 'static str = "ESC_TELEMETRY_9_TO_12" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . voltage { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . current { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . totalcurrent { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . rpm { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . count { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . temperature { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . voltage { __tmp . put_u16_le (* val) ; } for val in & self . current { __tmp . put_u16_le (* val) ; } for val in & self . totalcurrent { __tmp . put_u16_le (* val) ; } for val in & self . rpm { __tmp . put_u16_le (* val) ; } for val in & self . count { __tmp . put_u16_le (* val) ; } for val in & self . temperature { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_RC_INPUTS_RAW_DATA { pub time_usec : u64 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub chan9_raw : u16 , pub chan10_raw : u16 , pub chan11_raw : u16 , pub chan12_raw : u16 , pub rssi : u8 , } impl HIL_RC_INPUTS_RAW_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , chan9_raw : 0_u16 , chan10_raw : 0_u16 , chan11_raw : 0_u16 , chan12_raw : 0_u16 , rssi : 0_u8 , } ; } impl Default for HIL_RC_INPUTS_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_RC_INPUTS_RAW_DATA { type Message = MavMessage ; const ID : u32 = 92u32 ; const NAME : & 'static str = "HIL_RC_INPUTS_RAW" ; const EXTRA_CRC : u8 = 54u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . chan9_raw = buf . get_u16_le () ; __struct . chan10_raw = buf . get_u16_le () ; __struct . chan11_raw = buf . get_u16_le () ; __struct . chan12_raw = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u16_le (self . chan9_raw) ; __tmp . put_u16_le (self . chan10_raw) ; __tmp . put_u16_le (self . chan11_raw) ; __tmp . put_u16_le (self . chan12_raw) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_IMU_DATA { pub time_usec : u64 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl RAW_IMU_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for RAW_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_IMU_DATA { type Message = MavMessage ; const ID : u32 = 27u32 ; const NAME : & 'static str = "RAW_IMU" ; const EXTRA_CRC : u8 = 144u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EFI_STATUS_DATA { pub ecu_index : f32 , pub rpm : f32 , pub fuel_consumed : f32 , pub fuel_flow : f32 , pub engine_load : f32 , pub throttle_position : f32 , pub spark_dwell_time : f32 , pub barometric_pressure : f32 , pub intake_manifold_pressure : f32 , pub intake_manifold_temperature : f32 , pub cylinder_head_temperature : f32 , pub ignition_timing : f32 , pub injection_time : f32 , pub exhaust_gas_temperature : f32 , pub throttle_out : f32 , pub pt_compensation : f32 , pub health : u8 , } impl EFI_STATUS_DATA { pub const ENCODED_LEN : usize = 65usize ; pub const DEFAULT : Self = Self { ecu_index : 0.0_f32 , rpm : 0.0_f32 , fuel_consumed : 0.0_f32 , fuel_flow : 0.0_f32 , engine_load : 0.0_f32 , throttle_position : 0.0_f32 , spark_dwell_time : 0.0_f32 , barometric_pressure : 0.0_f32 , intake_manifold_pressure : 0.0_f32 , intake_manifold_temperature : 0.0_f32 , cylinder_head_temperature : 0.0_f32 , ignition_timing : 0.0_f32 , injection_time : 0.0_f32 , exhaust_gas_temperature : 0.0_f32 , throttle_out : 0.0_f32 , pt_compensation : 0.0_f32 , health : 0_u8 , } ; } impl Default for EFI_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EFI_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 225u32 ; const NAME : & 'static str = "EFI_STATUS" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 65usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ecu_index = buf . get_f32_le () ; __struct . rpm = buf . get_f32_le () ; __struct . fuel_consumed = buf . get_f32_le () ; __struct . fuel_flow = buf . get_f32_le () ; __struct . engine_load = buf . get_f32_le () ; __struct . throttle_position = buf . get_f32_le () ; __struct . spark_dwell_time = buf . get_f32_le () ; __struct . barometric_pressure = buf . get_f32_le () ; __struct . intake_manifold_pressure = buf . get_f32_le () ; __struct . intake_manifold_temperature = buf . get_f32_le () ; __struct . cylinder_head_temperature = buf . get_f32_le () ; __struct . ignition_timing = buf . get_f32_le () ; __struct . injection_time = buf . get_f32_le () ; __struct . exhaust_gas_temperature = buf . get_f32_le () ; __struct . throttle_out = buf . get_f32_le () ; __struct . pt_compensation = buf . get_f32_le () ; __struct . health = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . ecu_index) ; __tmp . put_f32_le (self . rpm) ; __tmp . put_f32_le (self . fuel_consumed) ; __tmp . put_f32_le (self . fuel_flow) ; __tmp . put_f32_le (self . engine_load) ; __tmp . put_f32_le (self . throttle_position) ; __tmp . put_f32_le (self . spark_dwell_time) ; __tmp . put_f32_le (self . barometric_pressure) ; __tmp . put_f32_le (self . intake_manifold_pressure) ; __tmp . put_f32_le (self . intake_manifold_temperature) ; __tmp . put_f32_le (self . cylinder_head_temperature) ; __tmp . put_f32_le (self . ignition_timing) ; __tmp . put_f32_le (self . injection_time) ; __tmp . put_f32_le (self . exhaust_gas_temperature) ; __tmp . put_f32_le (self . throttle_out) ; __tmp . put_f32_le (self . pt_compensation) ; __tmp . put_u8 (self . health) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 43u32 ; const NAME : & 'static str = "MISSION_REQUEST_LIST" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_AUTHENTICATION_DATA { pub timestamp : u32 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub authentication_type : MavOdidAuthType , pub data_page : u8 , pub last_page_index : u8 , pub length : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub authentication_data : [u8 ; 23] , } impl OPEN_DRONE_ID_AUTHENTICATION_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { timestamp : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , authentication_type : MavOdidAuthType :: DEFAULT , data_page : 0_u8 , last_page_index : 0_u8 , length : 0_u8 , authentication_data : [0_u8 ; 23usize] , } ; } impl Default for OPEN_DRONE_ID_AUTHENTICATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_AUTHENTICATION_DATA { type Message = MavMessage ; const ID : u32 = 12902u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_AUTHENTICATION" ; const EXTRA_CRC : u8 = 140u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . authentication_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidAuthType" , value : tmp as u32 }) ? ; __struct . data_page = buf . get_u8 () ; __struct . last_page_index = buf . get_u8 () ; __struct . length = buf . get_u8 () ; for v in & mut __struct . authentication_data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . authentication_type as u8) ; __tmp . put_u8 (self . data_page) ; __tmp . put_u8 (self . last_page_index) ; __tmp . put_u8 (self . length) ; for val in & self . authentication_data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { type Message = MavMessage ; const ID : u32 = 89u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET" ; const EXTRA_CRC : u8 = 231u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_INFORMATION_DATA { pub time_boot_ms : u32 , pub firmware_version : u32 , pub focal_length : f32 , pub sensor_size_h : f32 , pub sensor_size_v : f32 , pub flags : CameraCapFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub cam_definition_version : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vendor_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub model_name : [u8 ; 32] , pub lens_id : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cam_definition_uri : [u8 ; 140] , } impl CAMERA_INFORMATION_DATA { pub const ENCODED_LEN : usize = 235usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , firmware_version : 0_u32 , focal_length : 0.0_f32 , sensor_size_h : 0.0_f32 , sensor_size_v : 0.0_f32 , flags : CameraCapFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , cam_definition_version : 0_u16 , vendor_name : [0_u8 ; 32usize] , model_name : [0_u8 ; 32usize] , lens_id : 0_u8 , cam_definition_uri : [0_u8 ; 140usize] , } ; } impl Default for CAMERA_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 259u32 ; const NAME : & 'static str = "CAMERA_INFORMATION" ; const EXTRA_CRC : u8 = 92u8 ; const ENCODED_LEN : usize = 235usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . firmware_version = buf . get_u32_le () ; __struct . focal_length = buf . get_f32_le () ; __struct . sensor_size_h = buf . get_f32_le () ; __struct . sensor_size_v = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . flags = CameraCapFlags :: from_bits (tmp & CameraCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "CameraCapFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . cam_definition_version = buf . get_u16_le () ; for v in & mut __struct . vendor_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . model_name { let val = buf . get_u8 () ; * v = val ; } __struct . lens_id = buf . get_u8 () ; for v in & mut __struct . cam_definition_uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . firmware_version) ; __tmp . put_f32_le (self . focal_length) ; __tmp . put_f32_le (self . sensor_size_h) ; __tmp . put_f32_le (self . sensor_size_v) ; __tmp . put_u32_le (self . flags . bits ()) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . cam_definition_version) ; for val in & self . vendor_name { __tmp . put_u8 (* val) ; } for val in & self . model_name { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . lens_id) ; for val in & self . cam_definition_uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_QUATERNION_DATA { pub time_boot_ms : u32 , pub q1 : f32 , pub q2 : f32 , pub q3 : f32 , pub q4 : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , } impl ATTITUDE_QUATERNION_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q1 : 0.0_f32 , q2 : 0.0_f32 , q3 : 0.0_f32 , q4 : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , } ; } impl Default for ATTITUDE_QUATERNION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_QUATERNION_DATA { type Message = MavMessage ; const ID : u32 = 31u32 ; const NAME : & 'static str = "ATTITUDE_QUATERNION" ; const EXTRA_CRC : u8 = 246u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . q1 = buf . get_f32_le () ; __struct . q2 = buf . get_f32_le () ; __struct . q3 = buf . get_f32_le () ; __struct . q4 = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . q1) ; __tmp . put_f32_le (self . q2) ; __tmp . put_f32_le (self . q3) ; __tmp . put_f32_le (self . q4) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SIM_STATE_DATA { pub q1 : f32 , pub q2 : f32 , pub q3 : f32 , pub q4 : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub lat : f32 , pub lon : f32 , pub alt : f32 , pub std_dev_horz : f32 , pub std_dev_vert : f32 , pub vn : f32 , pub ve : f32 , pub vd : f32 , } impl SIM_STATE_DATA { pub const ENCODED_LEN : usize = 84usize ; pub const DEFAULT : Self = Self { q1 : 0.0_f32 , q2 : 0.0_f32 , q3 : 0.0_f32 , q4 : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , lat : 0.0_f32 , lon : 0.0_f32 , alt : 0.0_f32 , std_dev_horz : 0.0_f32 , std_dev_vert : 0.0_f32 , vn : 0.0_f32 , ve : 0.0_f32 , vd : 0.0_f32 , } ; } impl Default for SIM_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SIM_STATE_DATA { type Message = MavMessage ; const ID : u32 = 108u32 ; const NAME : & 'static str = "SIM_STATE" ; const EXTRA_CRC : u8 = 32u8 ; const ENCODED_LEN : usize = 84usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . q1 = buf . get_f32_le () ; __struct . q2 = buf . get_f32_le () ; __struct . q3 = buf . get_f32_le () ; __struct . q4 = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . lat = buf . get_f32_le () ; __struct . lon = buf . get_f32_le () ; __struct . alt = buf . get_f32_le () ; __struct . std_dev_horz = buf . get_f32_le () ; __struct . std_dev_vert = buf . get_f32_le () ; __struct . vn = buf . get_f32_le () ; __struct . ve = buf . get_f32_le () ; __struct . vd = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . q1) ; __tmp . put_f32_le (self . q2) ; __tmp . put_f32_le (self . q3) ; __tmp . put_f32_le (self . q4) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . lat) ; __tmp . put_f32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . std_dev_horz) ; __tmp . put_f32_le (self . std_dev_vert) ; __tmp . put_f32_le (self . vn) ; __tmp . put_f32_le (self . ve) ; __tmp . put_f32_le (self . vd) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MOUNT_CONTROL_DATA { pub input_a : i32 , pub input_b : i32 , pub input_c : i32 , pub target_system : u8 , pub target_component : u8 , pub save_position : u8 , } impl MOUNT_CONTROL_DATA { pub const ENCODED_LEN : usize = 15usize ; pub const DEFAULT : Self = Self { input_a : 0_i32 , input_b : 0_i32 , input_c : 0_i32 , target_system : 0_u8 , target_component : 0_u8 , save_position : 0_u8 , } ; } impl Default for MOUNT_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MOUNT_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 157u32 ; const NAME : & 'static str = "MOUNT_CONTROL" ; const EXTRA_CRC : u8 = 21u8 ; const ENCODED_LEN : usize = 15usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . input_a = buf . get_i32_le () ; __struct . input_b = buf . get_i32_le () ; __struct . input_c = buf . get_i32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . save_position = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . input_a) ; __tmp . put_i32_le (self . input_b) ; __tmp . put_i32_le (self . input_c) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . save_position) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_CANCEL_DATA { pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , } impl COMMAND_CANCEL_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for COMMAND_CANCEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_CANCEL_DATA { type Message = MavMessage ; const ID : u32 = 80u32 ; const NAME : & 'static str = "COMMAND_CANCEL" ; const EXTRA_CRC : u8 = 14u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_STATUS_DATA { pub time_usec : u64 , pub p1 : f32 , pub p2 : f32 , pub p3 : f32 , pub p4 : f32 , pub img_idx : u16 , pub target_system : u8 , pub cam_idx : u8 , pub event_id : CameraStatusTypes , } impl CAMERA_STATUS_DATA { pub const ENCODED_LEN : usize = 29usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , p1 : 0.0_f32 , p2 : 0.0_f32 , p3 : 0.0_f32 , p4 : 0.0_f32 , img_idx : 0_u16 , target_system : 0_u8 , cam_idx : 0_u8 , event_id : CameraStatusTypes :: DEFAULT , } ; } impl Default for CAMERA_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 179u32 ; const NAME : & 'static str = "CAMERA_STATUS" ; const EXTRA_CRC : u8 = 189u8 ; const ENCODED_LEN : usize = 29usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . p1 = buf . get_f32_le () ; __struct . p2 = buf . get_f32_le () ; __struct . p3 = buf . get_f32_le () ; __struct . p4 = buf . get_f32_le () ; __struct . img_idx = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . cam_idx = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . event_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraStatusTypes" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . p1) ; __tmp . put_f32_le (self . p2) ; __tmp . put_f32_le (self . p3) ; __tmp . put_f32_le (self . p4) ; __tmp . put_u16_le (self . img_idx) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . cam_idx) ; __tmp . put_u8 (self . event_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEEPSTALL_DATA { pub landing_lat : i32 , pub landing_lon : i32 , pub path_lat : i32 , pub path_lon : i32 , pub arc_entry_lat : i32 , pub arc_entry_lon : i32 , pub altitude : f32 , pub expected_travel_distance : f32 , pub cross_track_error : f32 , pub stage : DeepstallStage , } impl DEEPSTALL_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { landing_lat : 0_i32 , landing_lon : 0_i32 , path_lat : 0_i32 , path_lon : 0_i32 , arc_entry_lat : 0_i32 , arc_entry_lon : 0_i32 , altitude : 0.0_f32 , expected_travel_distance : 0.0_f32 , cross_track_error : 0.0_f32 , stage : DeepstallStage :: DEFAULT , } ; } impl Default for DEEPSTALL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEEPSTALL_DATA { type Message = MavMessage ; const ID : u32 = 195u32 ; const NAME : & 'static str = "DEEPSTALL" ; const EXTRA_CRC : u8 = 120u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . landing_lat = buf . get_i32_le () ; __struct . landing_lon = buf . get_i32_le () ; __struct . path_lat = buf . get_i32_le () ; __struct . path_lon = buf . get_i32_le () ; __struct . arc_entry_lat = buf . get_i32_le () ; __struct . arc_entry_lon = buf . get_i32_le () ; __struct . altitude = buf . get_f32_le () ; __struct . expected_travel_distance = buf . get_f32_le () ; __struct . cross_track_error = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . stage = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "DeepstallStage" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . landing_lat) ; __tmp . put_i32_le (self . landing_lon) ; __tmp . put_i32_le (self . path_lat) ; __tmp . put_i32_le (self . path_lon) ; __tmp . put_i32_le (self . arc_entry_lat) ; __tmp . put_i32_le (self . arc_entry_lon) ; __tmp . put_f32_le (self . altitude) ; __tmp . put_f32_le (self . expected_travel_distance) ; __tmp . put_f32_le (self . cross_track_error) ; __tmp . put_u8 (self . stage as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPONENT_INFORMATION_DATA { pub time_boot_ms : u32 , pub general_metadata_file_crc : u32 , pub peripherals_metadata_file_crc : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub general_metadata_uri : [u8 ; 100] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub peripherals_metadata_uri : [u8 ; 100] , } impl COMPONENT_INFORMATION_DATA { pub const ENCODED_LEN : usize = 212usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , general_metadata_file_crc : 0_u32 , peripherals_metadata_file_crc : 0_u32 , general_metadata_uri : [0_u8 ; 100usize] , peripherals_metadata_uri : [0_u8 ; 100usize] , } ; } impl Default for COMPONENT_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPONENT_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 395u32 ; const NAME : & 'static str = "COMPONENT_INFORMATION" ; const EXTRA_CRC : u8 = 0u8 ; const ENCODED_LEN : usize = 212usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . general_metadata_file_crc = buf . get_u32_le () ; __struct . peripherals_metadata_file_crc = buf . get_u32_le () ; for v in & mut __struct . general_metadata_uri { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . peripherals_metadata_uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . general_metadata_file_crc) ; __tmp . put_u32_le (self . peripherals_metadata_file_crc) ; for val in & self . general_metadata_uri { __tmp . put_u8 (* val) ; } for val in & self . peripherals_metadata_uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GOPRO_GET_REQUEST_DATA { pub target_system : u8 , pub target_component : u8 , pub cmd_id : GoproCommand , } impl GOPRO_GET_REQUEST_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , cmd_id : GoproCommand :: DEFAULT , } ; } impl Default for GOPRO_GET_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GOPRO_GET_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 216u32 ; const NAME : & 'static str = "GOPRO_GET_REQUEST" ; const EXTRA_CRC : u8 = 50u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . cmd_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproCommand" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . cmd_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RPM_DATA { pub rpm1 : f32 , pub rpm2 : f32 , } impl RPM_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { rpm1 : 0.0_f32 , rpm2 : 0.0_f32 , } ; } impl Default for RPM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RPM_DATA { type Message = MavMessage ; const ID : u32 = 226u32 ; const NAME : & 'static str = "RPM" ; const EXTRA_CRC : u8 = 207u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . rpm1 = buf . get_f32_le () ; __struct . rpm2 = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . rpm1) ; __tmp . put_f32_le (self . rpm2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_IMAGE_CAPTURED_DATA { pub time_utc : u64 , pub time_boot_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub image_index : i32 , pub camera_id : u8 , pub capture_result : i8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub file_url : [u8 ; 205] , } impl CAMERA_IMAGE_CAPTURED_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { time_utc : 0_u64 , time_boot_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , q : [0.0_f32 ; 4usize] , image_index : 0_i32 , camera_id : 0_u8 , capture_result : 0_i8 , file_url : [0_u8 ; 205usize] , } ; } impl Default for CAMERA_IMAGE_CAPTURED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_IMAGE_CAPTURED_DATA { type Message = MavMessage ; const ID : u32 = 263u32 ; const NAME : & 'static str = "CAMERA_IMAGE_CAPTURED" ; const EXTRA_CRC : u8 = 133u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_utc = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . image_index = buf . get_i32_le () ; __struct . camera_id = buf . get_u8 () ; __struct . capture_result = buf . get_i8 () ; for v in & mut __struct . file_url { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_utc) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_i32_le (self . image_index) ; __tmp . put_u8 (self . camera_id) ; __tmp . put_i8 (self . capture_result) ; for val in & self . file_url { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_POSITION_INT_COV_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 36] , pub estimator_type : MavEstimatorType , } impl GLOBAL_POSITION_INT_COV_DATA { pub const ENCODED_LEN : usize = 181usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , covariance : [0.0_f32 ; 36usize] , estimator_type : MavEstimatorType :: DEFAULT , } ; } impl Default for GLOBAL_POSITION_INT_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_POSITION_INT_COV_DATA { type Message = MavMessage ; const ID : u32 = 63u32 ; const NAME : & 'static str = "GLOBAL_POSITION_INT_COV" ; const EXTRA_CRC : u8 = 119u8 ; const ENCODED_LEN : usize = 181usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . estimator_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEstimatorType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . estimator_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_INPUT_DATA { pub time_usec : u64 , pub time_week_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : f32 , pub hdop : f32 , pub vdop : f32 , pub vn : f32 , pub ve : f32 , pub vd : f32 , pub speed_accuracy : f32 , pub horiz_accuracy : f32 , pub vert_accuracy : f32 , pub ignore_flags : GpsInputIgnoreFlags , pub time_week : u16 , pub gps_id : u8 , pub fix_type : u8 , pub satellites_visible : u8 , } impl GPS_INPUT_DATA { pub const ENCODED_LEN : usize = 63usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , time_week_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , hdop : 0.0_f32 , vdop : 0.0_f32 , vn : 0.0_f32 , ve : 0.0_f32 , vd : 0.0_f32 , speed_accuracy : 0.0_f32 , horiz_accuracy : 0.0_f32 , vert_accuracy : 0.0_f32 , ignore_flags : GpsInputIgnoreFlags :: DEFAULT , time_week : 0_u16 , gps_id : 0_u8 , fix_type : 0_u8 , satellites_visible : 0_u8 , } ; } impl Default for GPS_INPUT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_INPUT_DATA { type Message = MavMessage ; const ID : u32 = 232u32 ; const NAME : & 'static str = "GPS_INPUT" ; const EXTRA_CRC : u8 = 151u8 ; const ENCODED_LEN : usize = 63usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . time_week_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . hdop = buf . get_f32_le () ; __struct . vdop = buf . get_f32_le () ; __struct . vn = buf . get_f32_le () ; __struct . ve = buf . get_f32_le () ; __struct . vd = buf . get_f32_le () ; __struct . speed_accuracy = buf . get_f32_le () ; __struct . horiz_accuracy = buf . get_f32_le () ; __struct . vert_accuracy = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . ignore_flags = GpsInputIgnoreFlags :: from_bits (tmp & GpsInputIgnoreFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GpsInputIgnoreFlags" , value : tmp as u32 }) ? ; __struct . time_week = buf . get_u16_le () ; __struct . gps_id = buf . get_u8 () ; __struct . fix_type = buf . get_u8 () ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . time_week_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . hdop) ; __tmp . put_f32_le (self . vdop) ; __tmp . put_f32_le (self . vn) ; __tmp . put_f32_le (self . ve) ; __tmp . put_f32_le (self . vd) ; __tmp . put_f32_le (self . speed_accuracy) ; __tmp . put_f32_le (self . horiz_accuracy) ; __tmp . put_f32_le (self . vert_accuracy) ; __tmp . put_u16_le (self . ignore_flags . bits ()) ; __tmp . put_u16_le (self . time_week) ; __tmp . put_u8 (self . gps_id) ; __tmp . put_u8 (self . fix_type) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_CONTROL_DATA { pub demanded_rate_x : f32 , pub demanded_rate_y : f32 , pub demanded_rate_z : f32 , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { demanded_rate_x : 0.0_f32 , demanded_rate_y : 0.0_f32 , demanded_rate_z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 201u32 ; const NAME : & 'static str = "GIMBAL_CONTROL" ; const EXTRA_CRC : u8 = 205u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . demanded_rate_x = buf . get_f32_le () ; __struct . demanded_rate_y = buf . get_f32_le () ; __struct . demanded_rate_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . demanded_rate_x) ; __tmp . put_f32_le (self . demanded_rate_y) ; __tmp . put_f32_le (self . demanded_rate_z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MOUNT_ORIENTATION_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl MOUNT_ORIENTATION_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for MOUNT_ORIENTATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MOUNT_ORIENTATION_DATA { type Message = MavMessage ; const ID : u32 = 265u32 ; const NAME : & 'static str = "MOUNT_ORIENTATION" ; const EXTRA_CRC : u8 = 26u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEVICE_OP_READ_REPLY_DATA { pub request_id : u32 , pub result : u8 , pub regstart : u8 , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 128] , } impl DEVICE_OP_READ_REPLY_DATA { pub const ENCODED_LEN : usize = 135usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , result : 0_u8 , regstart : 0_u8 , count : 0_u8 , data : [0_u8 ; 128usize] , } ; } impl Default for DEVICE_OP_READ_REPLY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEVICE_OP_READ_REPLY_DATA { type Message = MavMessage ; const ID : u32 = 11001u32 ; const NAME : & 'static str = "DEVICE_OP_READ_REPLY" ; const EXTRA_CRC : u8 = 15u8 ; const ENCODED_LEN : usize = 135usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . result = buf . get_u8 () ; __struct . regstart = buf . get_u8 () ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_u8 (self . result) ; __tmp . put_u8 (self . regstart) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_RAW_DATA { pub time_boot_ms : u32 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub port : u8 , pub rssi : u8 , } impl RC_CHANNELS_RAW_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , port : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_RAW_DATA { type Message = MavMessage ; const ID : u32 = 35u32 ; const NAME : & 'static str = "RC_CHANNELS_RAW" ; const EXTRA_CRC : u8 = 244u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . port = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u8 (self . port) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA_STREAM_DATA { pub message_rate : u16 , pub stream_id : u8 , pub on_off : u8 , } impl DATA_STREAM_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { message_rate : 0_u16 , stream_id : 0_u8 , on_off : 0_u8 , } ; } impl Default for DATA_STREAM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA_STREAM_DATA { type Message = MavMessage ; const ID : u32 = 67u32 ; const NAME : & 'static str = "DATA_STREAM" ; const EXTRA_CRC : u8 = 21u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . message_rate = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; __struct . on_off = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . message_rate) ; __tmp . put_u8 (self . stream_id) ; __tmp . put_u8 (self . on_off) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_CLEAR_ALL_DATA { pub target_system : u8 , pub target_component : u8 , } impl MISSION_CLEAR_ALL_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_CLEAR_ALL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_CLEAR_ALL_DATA { type Message = MavMessage ; const ID : u32 = 45u32 ; const NAME : & 'static str = "MISSION_CLEAR_ALL" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_GPS_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub vn : i16 , pub ve : i16 , pub vd : i16 , pub cog : u16 , pub fix_type : u8 , pub satellites_visible : u8 , } impl HIL_GPS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , vn : 0_i16 , ve : 0_i16 , vd : 0_i16 , cog : 0_u16 , fix_type : 0_u8 , satellites_visible : 0_u8 , } ; } impl Default for HIL_GPS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_GPS_DATA { type Message = MavMessage ; const ID : u32 = 113u32 ; const NAME : & 'static str = "HIL_GPS" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . vn = buf . get_i16_le () ; __struct . ve = buf . get_i16_le () ; __struct . vd = buf . get_i16_le () ; __struct . cog = buf . get_u16_le () ; __struct . fix_type = buf . get_u8 () ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_i16_le (self . vn) ; __tmp . put_i16_le (self . ve) ; __tmp . put_i16_le (self . vd) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_MAP_RC_DATA { pub param_value0 : f32 , pub scale : f32 , pub param_value_min : f32 , pub param_value_max : f32 , pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub parameter_rc_channel_index : u8 , } impl PARAM_MAP_RC_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param_value0 : 0.0_f32 , scale : 0.0_f32 , param_value_min : 0.0_f32 , param_value_max : 0.0_f32 , param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , parameter_rc_channel_index : 0_u8 , } ; } impl Default for PARAM_MAP_RC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_MAP_RC_DATA { type Message = MavMessage ; const ID : u32 = 50u32 ; const NAME : & 'static str = "PARAM_MAP_RC" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value0 = buf . get_f32_le () ; __struct . scale = buf . get_f32_le () ; __struct . param_value_min = buf . get_f32_le () ; __struct . param_value_max = buf . get_f32_le () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } __struct . parameter_rc_channel_index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value0) ; __tmp . put_f32_le (self . scale) ; __tmp . put_f32_le (self . param_value_min) ; __tmp . put_f32_le (self . param_value_max) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . parameter_rc_channel_index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_SET_ATTITUDE_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub flags : GimbalDeviceFlags , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_DEVICE_SET_ATTITUDE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , flags : GimbalDeviceFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_DEVICE_SET_ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_SET_ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 284u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_SET_ATTITUDE" ; const EXTRA_CRC : u8 = 99u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = GimbalDeviceFlags :: from_bits (tmp & GimbalDeviceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_SETTINGS_DATA { pub time_boot_ms : u32 , pub mode_id : CameraMode , } impl CAMERA_SETTINGS_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , mode_id : CameraMode :: DEFAULT , } ; } impl Default for CAMERA_SETTINGS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_SETTINGS_DATA { type Message = MavMessage ; const ID : u32 = 260u32 ; const NAME : & 'static str = "CAMERA_SETTINGS" ; const EXTRA_CRC : u8 = 146u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . mode_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraMode" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u8 (self . mode_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { pub time_boot_us : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub q_estimated_delay_us : u32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub v_estimated_delay_us : u32 , pub feed_forward_angular_velocity_z : f32 , pub estimator_status : EstimatorStatusFlags , pub target_system : u8 , pub target_component : u8 , pub landed_state : MavLandedState , } impl AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_us : 0_u64 , q : [0.0_f32 ; 4usize] , q_estimated_delay_us : 0_u32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , v_estimated_delay_us : 0_u32 , feed_forward_angular_velocity_z : 0.0_f32 , estimator_status : EstimatorStatusFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , landed_state : MavLandedState :: DEFAULT , } ; } impl Default for AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { type Message = MavMessage ; const ID : u32 = 286u32 ; const NAME : & 'static str = "AUTOPILOT_STATE_FOR_GIMBAL_DEVICE" ; const EXTRA_CRC : u8 = 210u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_us = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . q_estimated_delay_us = buf . get_u32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . v_estimated_delay_us = buf . get_u32_le () ; __struct . feed_forward_angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . estimator_status = EstimatorStatusFlags :: from_bits (tmp & EstimatorStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EstimatorStatusFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_boot_us) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_u32_le (self . q_estimated_delay_us) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_u32_le (self . v_estimated_delay_us) ; __tmp . put_f32_le (self . feed_forward_angular_velocity_z) ; __tmp . put_u16_le (self . estimator_status . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . landed_state as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ONBOARD_COMPUTER_STATUS_DATA { pub time_usec : u64 , pub uptime : u32 , pub ram_usage : u32 , pub ram_total : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_type : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_usage : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_total : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_type : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_tx_rate : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_rx_rate : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_tx_max : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_rx_max : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub fan_speed : [i16 ; 4] , pub mavtype : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cpu_cores : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cpu_combined : [u8 ; 10] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub gpu_cores : [u8 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub gpu_combined : [u8 ; 10] , pub temperature_board : i8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature_core : [i8 ; 8] , } impl ONBOARD_COMPUTER_STATUS_DATA { pub const ENCODED_LEN : usize = 238usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime : 0_u32 , ram_usage : 0_u32 , ram_total : 0_u32 , storage_type : [0_u32 ; 4usize] , storage_usage : [0_u32 ; 4usize] , storage_total : [0_u32 ; 4usize] , link_type : [0_u32 ; 6usize] , link_tx_rate : [0_u32 ; 6usize] , link_rx_rate : [0_u32 ; 6usize] , link_tx_max : [0_u32 ; 6usize] , link_rx_max : [0_u32 ; 6usize] , fan_speed : [0_i16 ; 4usize] , mavtype : 0_u8 , cpu_cores : [0_u8 ; 8usize] , cpu_combined : [0_u8 ; 10usize] , gpu_cores : [0_u8 ; 4usize] , gpu_combined : [0_u8 ; 10usize] , temperature_board : 0_i8 , temperature_core : [0_i8 ; 8usize] , } ; } impl Default for ONBOARD_COMPUTER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ONBOARD_COMPUTER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 390u32 ; const NAME : & 'static str = "ONBOARD_COMPUTER_STATUS" ; const EXTRA_CRC : u8 = 156u8 ; const ENCODED_LEN : usize = 238usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime = buf . get_u32_le () ; __struct . ram_usage = buf . get_u32_le () ; __struct . ram_total = buf . get_u32_le () ; for v in & mut __struct . storage_type { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . storage_usage { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . storage_total { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_type { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_tx_rate { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_rx_rate { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_tx_max { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_rx_max { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . fan_speed { let val = buf . get_i16_le () ; * v = val ; } __struct . mavtype = buf . get_u8 () ; for v in & mut __struct . cpu_cores { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . cpu_combined { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . gpu_cores { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . gpu_combined { let val = buf . get_u8 () ; * v = val ; } __struct . temperature_board = buf . get_i8 () ; for v in & mut __struct . temperature_core { let val = buf . get_i8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime) ; __tmp . put_u32_le (self . ram_usage) ; __tmp . put_u32_le (self . ram_total) ; for val in & self . storage_type { __tmp . put_u32_le (* val) ; } for val in & self . storage_usage { __tmp . put_u32_le (* val) ; } for val in & self . storage_total { __tmp . put_u32_le (* val) ; } for val in & self . link_type { __tmp . put_u32_le (* val) ; } for val in & self . link_tx_rate { __tmp . put_u32_le (* val) ; } for val in & self . link_rx_rate { __tmp . put_u32_le (* val) ; } for val in & self . link_tx_max { __tmp . put_u32_le (* val) ; } for val in & self . link_rx_max { __tmp . put_u32_le (* val) ; } for val in & self . fan_speed { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . mavtype) ; for val in & self . cpu_cores { __tmp . put_u8 (* val) ; } for val in & self . cpu_combined { __tmp . put_u8 (* val) ; } for val in & self . gpu_cores { __tmp . put_u8 (* val) ; } for val in & self . gpu_combined { __tmp . put_u8 (* val) ; } __tmp . put_i8 (self . temperature_board) ; for val in & self . temperature_core { __tmp . put_i8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HWSTATUS_DATA { pub Vcc : u16 , pub I2Cerr : u8 , } impl HWSTATUS_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { Vcc : 0_u16 , I2Cerr : 0_u8 , } ; } impl Default for HWSTATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HWSTATUS_DATA { type Message = MavMessage ; const ID : u32 = 165u32 ; const NAME : & 'static str = "HWSTATUS" ; const EXTRA_CRC : u8 = 21u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . Vcc = buf . get_u16_le () ; __struct . I2Cerr = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . Vcc) ; __tmp . put_u8 (self . I2Cerr) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RALLY_FETCH_POINT_DATA { pub target_system : u8 , pub target_component : u8 , pub idx : u8 , } impl RALLY_FETCH_POINT_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , idx : 0_u8 , } ; } impl Default for RALLY_FETCH_POINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RALLY_FETCH_POINT_DATA { type Message = MavMessage ; const ID : u32 = 176u32 ; const NAME : & 'static str = "RALLY_FETCH_POINT" ; const EXTRA_CRC : u8 = 234u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . idx = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . idx) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Clone , PartialEq , Debug)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMessage { OPEN_DRONE_ID_ARM_STATUS (OPEN_DRONE_ID_ARM_STATUS_DATA) , STORAGE_INFORMATION (STORAGE_INFORMATION_DATA) , MEMINFO (MEMINFO_DATA) , HEARTBEAT (HEARTBEAT_DATA) , MCU_STATUS (MCU_STATUS_DATA) , ALTITUDE (ALTITUDE_DATA) , COMMAND_ACK (COMMAND_ACK_DATA) , DEBUG (DEBUG_DATA) , PARAM_EXT_ACK (PARAM_EXT_ACK_DATA) , REMOTE_LOG_BLOCK_STATUS (REMOTE_LOG_BLOCK_STATUS_DATA) , OPTICAL_FLOW_RAD (OPTICAL_FLOW_RAD_DATA) , GPS_RTCM_DATA (GPS_RTCM_DATA_DATA) , REQUEST_EVENT (REQUEST_EVENT_DATA) , LOCAL_POSITION_NED_COV (LOCAL_POSITION_NED_COV_DATA) , VISION_POSITION_DELTA (VISION_POSITION_DELTA_DATA) , PLAY_TUNE (PLAY_TUNE_DATA) , OSD_PARAM_SHOW_CONFIG_REPLY (OSD_PARAM_SHOW_CONFIG_REPLY_DATA) , CELLULAR_CONFIG (CELLULAR_CONFIG_DATA) , SET_ATTITUDE_TARGET (SET_ATTITUDE_TARGET_DATA) , GPS_GLOBAL_ORIGIN (GPS_GLOBAL_ORIGIN_DATA) , DISTANCE_SENSOR (DISTANCE_SENSOR_DATA) , EXTENDED_SYS_STATE (EXTENDED_SYS_STATE_DATA) , LANDING_TARGET (LANDING_TARGET_DATA) , NAV_CONTROLLER_OUTPUT (NAV_CONTROLLER_OUTPUT_DATA) , NAMED_VALUE_FLOAT (NAMED_VALUE_FLOAT_DATA) , ESTIMATOR_STATUS (ESTIMATOR_STATUS_DATA) , SET_HOME_POSITION (SET_HOME_POSITION_DATA) , UAVIONIX_ADSB_OUT_CFG (UAVIONIX_ADSB_OUT_CFG_DATA) , MOUNT_CONFIGURE (MOUNT_CONFIGURE_DATA) , PARAM_EXT_REQUEST_READ (PARAM_EXT_REQUEST_READ_DATA) , CAMERA_FEEDBACK (CAMERA_FEEDBACK_DATA) , SERIAL_CONTROL (SERIAL_CONTROL_DATA) , CAMERA_CAPTURE_STATUS (CAMERA_CAPTURE_STATUS_DATA) , V2_EXTENSION (V2_EXTENSION_DATA) , COMPONENT_METADATA (COMPONENT_METADATA_DATA) , DIGICAM_CONFIGURE (DIGICAM_CONFIGURE_DATA) , BUTTON_CHANGE (BUTTON_CHANGE_DATA) , STATUSTEXT (STATUSTEXT_DATA) , CAN_FRAME (CAN_FRAME_DATA) , ISBD_LINK_STATUS (ISBD_LINK_STATUS_DATA) , SENSOR_OFFSETS (SENSOR_OFFSETS_DATA) , BATTERY2 (BATTERY2_DATA) , SCALED_IMU (SCALED_IMU_DATA) , VIDEO_STREAM_STATUS (VIDEO_STREAM_STATUS_DATA) , BATTERY_STATUS (BATTERY_STATUS_DATA) , DEVICE_OP_WRITE (DEVICE_OP_WRITE_DATA) , HIGHRES_IMU (HIGHRES_IMU_DATA) , GOPRO_HEARTBEAT (GOPRO_HEARTBEAT_DATA) , WATER_DEPTH (WATER_DEPTH_DATA) , HIL_SENSOR (HIL_SENSOR_DATA) , POWER_STATUS (POWER_STATUS_DATA) , SYS_STATUS (SYS_STATUS_DATA) , CAN_FILTER_MODIFY (CAN_FILTER_MODIFY_DATA) , RC_CHANNELS_SCALED (RC_CHANNELS_SCALED_DATA) , OPEN_DRONE_ID_SELF_ID (OPEN_DRONE_ID_SELF_ID_DATA) , PARAM_REQUEST_READ (PARAM_REQUEST_READ_DATA) , PLAY_TUNE_V2 (PLAY_TUNE_V2_DATA) , TERRAIN_CHECK (TERRAIN_CHECK_DATA) , GPS_RTK (GPS_RTK_DATA) , FOLLOW_TARGET (FOLLOW_TARGET_DATA) , WIND (WIND_DATA) , MISSION_CURRENT (MISSION_CURRENT_DATA) , GIMBAL_TORQUE_CMD_REPORT (GIMBAL_TORQUE_CMD_REPORT_DATA) , GOPRO_SET_RESPONSE (GOPRO_SET_RESPONSE_DATA) , GPS_INJECT_DATA (GPS_INJECT_DATA_DATA) , SMART_BATTERY_INFO (SMART_BATTERY_INFO_DATA) , ACTUATOR_CONTROL_TARGET (ACTUATOR_CONTROL_TARGET_DATA) , CUBEPILOT_FIRMWARE_UPDATE_RESP (CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA) , DATA_TRANSMISSION_HANDSHAKE (DATA_TRANSMISSION_HANDSHAKE_DATA) , HYGROMETER_SENSOR (HYGROMETER_SENSOR_DATA) , SYSTEM_TIME (SYSTEM_TIME_DATA) , LOG_REQUEST_END (LOG_REQUEST_END_DATA) , PROTOCOL_VERSION (PROTOCOL_VERSION_DATA) , AIRSPEED_AUTOCAL (AIRSPEED_AUTOCAL_DATA) , GLOBAL_POSITION_INT (GLOBAL_POSITION_INT_DATA) , ENCAPSULATED_DATA (ENCAPSULATED_DATA_DATA) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA) , GOPRO_SET_REQUEST (GOPRO_SET_REQUEST_DATA) , LOG_REQUEST_LIST (LOG_REQUEST_LIST_DATA) , GIMBAL_MANAGER_SET_PITCHYAW (GIMBAL_MANAGER_SET_PITCHYAW_DATA) , OPEN_DRONE_ID_MESSAGE_PACK (OPEN_DRONE_ID_MESSAGE_PACK_DATA) , GIMBAL_MANAGER_INFORMATION (GIMBAL_MANAGER_INFORMATION_DATA) , DEBUG_VECT (DEBUG_VECT_DATA) , RC_CHANNELS (RC_CHANNELS_DATA) , SAFETY_ALLOWED_AREA (SAFETY_ALLOWED_AREA_DATA) , SAFETY_SET_ALLOWED_AREA (SAFETY_SET_ALLOWED_AREA_DATA) , MISSION_ACK (MISSION_ACK_DATA) , UTM_GLOBAL_POSITION (UTM_GLOBAL_POSITION_DATA) , FLIGHT_INFORMATION (FLIGHT_INFORMATION_DATA) , ESC_TELEMETRY_1_TO_4 (ESC_TELEMETRY_1_TO_4_DATA) , LOGGING_ACK (LOGGING_ACK_DATA) , OPEN_DRONE_ID_LOCATION (OPEN_DRONE_ID_LOCATION_DATA) , HIGH_LATENCY2 (HIGH_LATENCY2_DATA) , TIME_ESTIMATE_TO_TARGET (TIME_ESTIMATE_TO_TARGET_DATA) , ICAROUS_KINEMATIC_BANDS (ICAROUS_KINEMATIC_BANDS_DATA) , FENCE_FETCH_POINT (FENCE_FETCH_POINT_DATA) , HIL_STATE (HIL_STATE_DATA) , DEBUG_FLOAT_ARRAY (DEBUG_FLOAT_ARRAY_DATA) , CUBEPILOT_RAW_RC (CUBEPILOT_RAW_RC_DATA) , ORBIT_EXECUTION_STATUS (ORBIT_EXECUTION_STATUS_DATA) , OPEN_DRONE_ID_BASIC_ID (OPEN_DRONE_ID_BASIC_ID_DATA) , VFR_HUD (VFR_HUD_DATA) , OSD_PARAM_CONFIG_REPLY (OSD_PARAM_CONFIG_REPLY_DATA) , LIMITS_STATUS (LIMITS_STATUS_DATA) , UAVCAN_NODE_STATUS (UAVCAN_NODE_STATUS_DATA) , RESOURCE_REQUEST (RESOURCE_REQUEST_DATA) , MISSION_ITEM_REACHED (MISSION_ITEM_REACHED_DATA) , GOPRO_GET_RESPONSE (GOPRO_GET_RESPONSE_DATA) , GENERATOR_STATUS (GENERATOR_STATUS_DATA) , HIL_CONTROLS (HIL_CONTROLS_DATA) , CHANGE_OPERATOR_CONTROL_ACK (CHANGE_OPERATOR_CONTROL_ACK_DATA) , LOGGING_DATA_ACKED (LOGGING_DATA_ACKED_DATA) , SET_POSITION_TARGET_GLOBAL_INT (SET_POSITION_TARGET_GLOBAL_INT_DATA) , UAVCAN_NODE_INFO (UAVCAN_NODE_INFO_DATA) , SUPPORTED_TUNES (SUPPORTED_TUNES_DATA) , CHANGE_OPERATOR_CONTROL (CHANGE_OPERATOR_CONTROL_DATA) , LOCAL_POSITION_NED (LOCAL_POSITION_NED_DATA) , COMMAND_INT (COMMAND_INT_DATA) , FENCE_STATUS (FENCE_STATUS_DATA) , ADAP_TUNING (ADAP_TUNING_DATA) , VICON_POSITION_ESTIMATE (VICON_POSITION_ESTIMATE_DATA) , MISSION_WRITE_PARTIAL_LIST (MISSION_WRITE_PARTIAL_LIST_DATA) , RALLY_POINT (RALLY_POINT_DATA) , GPS_STATUS (GPS_STATUS_DATA) , OSD_PARAM_CONFIG (OSD_PARAM_CONFIG_DATA) , AHRS2 (AHRS2_DATA) , ATTITUDE_QUATERNION_COV (ATTITUDE_QUATERNION_COV_DATA) , OBSTACLE_DISTANCE_3D (OBSTACLE_DISTANCE_3D_DATA) , VISION_POSITION_ESTIMATE (VISION_POSITION_ESTIMATE_DATA) , GIMBAL_MANAGER_STATUS (GIMBAL_MANAGER_STATUS_DATA) , ACTUATOR_OUTPUT_STATUS (ACTUATOR_OUTPUT_STATUS_DATA) , ESC_STATUS (ESC_STATUS_DATA) , RANGEFINDER (RANGEFINDER_DATA) , REMOTE_LOG_DATA_BLOCK (REMOTE_LOG_DATA_BLOCK_DATA) , FENCE_POINT (FENCE_POINT_DATA) , ESC_TELEMETRY_5_TO_8 (ESC_TELEMETRY_5_TO_8_DATA) , WIND_COV (WIND_COV_DATA) , FILE_TRANSFER_PROTOCOL (FILE_TRANSFER_PROTOCOL_DATA) , MISSION_ITEM (MISSION_ITEM_DATA) , MANUAL_SETPOINT (MANUAL_SETPOINT_DATA) , OPTICAL_FLOW (OPTICAL_FLOW_DATA) , WHEEL_DISTANCE (WHEEL_DISTANCE_DATA) , SERVO_OUTPUT_RAW (SERVO_OUTPUT_RAW_DATA) , POSITION_TARGET_LOCAL_NED (POSITION_TARGET_LOCAL_NED_DATA) , LOG_ENTRY (LOG_ENTRY_DATA) , PARAM_SET (PARAM_SET_DATA) , AP_ADC (AP_ADC_DATA) , SET_POSITION_TARGET_LOCAL_NED (SET_POSITION_TARGET_LOCAL_NED_DATA) , DEVICE_OP_WRITE_REPLY (DEVICE_OP_WRITE_REPLY_DATA) , MOUNT_STATUS (MOUNT_STATUS_DATA) , DATA16 (DATA16_DATA) , SIMSTATE (SIMSTATE_DATA) , MAG_CAL_REPORT (MAG_CAL_REPORT_DATA) , SCALED_PRESSURE2 (SCALED_PRESSURE2_DATA) , CUBEPILOT_FIRMWARE_UPDATE_START (CUBEPILOT_FIRMWARE_UPDATE_START_DATA) , SET_MODE (SET_MODE_DATA) , SETUP_SIGNING (SETUP_SIGNING_DATA) , PARAM_EXT_SET (PARAM_EXT_SET_DATA) , HOME_POSITION (HOME_POSITION_DATA) , RAW_RPM (RAW_RPM_DATA) , ESC_INFO (ESC_INFO_DATA) , AUTH_KEY (AUTH_KEY_DATA) , DIGICAM_CONTROL (DIGICAM_CONTROL_DATA) , GPS2_RTK (GPS2_RTK_DATA) , TERRAIN_DATA (TERRAIN_DATA_DATA) , CANFD_FRAME (CANFD_FRAME_DATA) , SET_ACTUATOR_CONTROL_TARGET (SET_ACTUATOR_CONTROL_TARGET_DATA) , TIMESYNC (TIMESYNC_DATA) , COMPASSMOT_STATUS (COMPASSMOT_STATUS_DATA) , MISSION_REQUEST_INT (MISSION_REQUEST_INT_DATA) , UAVIONIX_ADSB_OUT_DYNAMIC (UAVIONIX_ADSB_OUT_DYNAMIC_DATA) , DATA96 (DATA96_DATA) , CAMERA_TRACKING_GEO_STATUS (CAMERA_TRACKING_GEO_STATUS_DATA) , LOG_DATA (LOG_DATA_DATA) , HERELINK_VIDEO_STREAM_INFORMATION (HERELINK_VIDEO_STREAM_INFORMATION_DATA) , MISSION_REQUEST_PARTIAL_LIST (MISSION_REQUEST_PARTIAL_LIST_DATA) , MISSION_SET_CURRENT (MISSION_SET_CURRENT_DATA) , SCALED_PRESSURE (SCALED_PRESSURE_DATA) , PID_TUNING (PID_TUNING_DATA) , HIGH_LATENCY (HIGH_LATENCY_DATA) , PARAM_EXT_REQUEST_LIST (PARAM_EXT_REQUEST_LIST_DATA) , CAMERA_FOV_STATUS (CAMERA_FOV_STATUS_DATA) , WINCH_STATUS (WINCH_STATUS_DATA) , HERELINK_TELEM (HERELINK_TELEM_DATA) , VIDEO_STREAM_INFORMATION (VIDEO_STREAM_INFORMATION_DATA) , HIL_OPTICAL_FLOW (HIL_OPTICAL_FLOW_DATA) , CELLULAR_STATUS (CELLULAR_STATUS_DATA) , TERRAIN_REPORT (TERRAIN_REPORT_DATA) , LOG_ERASE (LOG_ERASE_DATA) , OPEN_DRONE_ID_OPERATOR_ID (OPEN_DRONE_ID_OPERATOR_ID_DATA) , SET_MAG_OFFSETS (SET_MAG_OFFSETS_DATA) , GPS2_RAW (GPS2_RAW_DATA) , CURRENT_EVENT_SEQUENCE (CURRENT_EVENT_SEQUENCE_DATA) , OPEN_DRONE_ID_SYSTEM (OPEN_DRONE_ID_SYSTEM_DATA) , AHRS (AHRS_DATA) , ATTITUDE (ATTITUDE_DATA) , LOGGING_DATA (LOGGING_DATA_DATA) , CAMERA_TRIGGER (CAMERA_TRIGGER_DATA) , AIS_VESSEL (AIS_VESSEL_DATA) , GLOBAL_VISION_POSITION_ESTIMATE (GLOBAL_VISION_POSITION_ESTIMATE_DATA) , MISSION_ITEM_INT (MISSION_ITEM_INT_DATA) , RAW_PRESSURE (RAW_PRESSURE_DATA) , TERRAIN_REQUEST (TERRAIN_REQUEST_DATA) , MANUAL_CONTROL (MANUAL_CONTROL_DATA) , VIBRATION (VIBRATION_DATA) , RC_CHANNELS_OVERRIDE (RC_CHANNELS_OVERRIDE_DATA) , ICAROUS_HEARTBEAT (ICAROUS_HEARTBEAT_DATA) , GIMBAL_DEVICE_INFORMATION (GIMBAL_DEVICE_INFORMATION_DATA) , GIMBAL_REPORT (GIMBAL_REPORT_DATA) , CONTROL_SYSTEM_STATE (CONTROL_SYSTEM_STATE_DATA) , RESPONSE_EVENT_ERROR (RESPONSE_EVENT_ERROR_DATA) , GIMBAL_MANAGER_SET_ATTITUDE (GIMBAL_MANAGER_SET_ATTITUDE_DATA) , AOA_SSA (AOA_SSA_DATA) , SCALED_PRESSURE3 (SCALED_PRESSURE3_DATA) , NAMED_VALUE_INT (NAMED_VALUE_INT_DATA) , CAMERA_TRACKING_IMAGE_STATUS (CAMERA_TRACKING_IMAGE_STATUS_DATA) , LINK_NODE_STATUS (LINK_NODE_STATUS_DATA) , MAG_CAL_PROGRESS (MAG_CAL_PROGRESS_DATA) , LOG_REQUEST_DATA (LOG_REQUEST_DATA_DATA) , PARAM_REQUEST_LIST (PARAM_REQUEST_LIST_DATA) , GPS_RAW_INT (GPS_RAW_INT_DATA) , AUTOPILOT_VERSION_REQUEST (AUTOPILOT_VERSION_REQUEST_DATA) , TUNNEL (TUNNEL_DATA) , OSD_PARAM_SHOW_CONFIG (OSD_PARAM_SHOW_CONFIG_DATA) , TRAJECTORY_REPRESENTATION_BEZIER (TRAJECTORY_REPRESENTATION_BEZIER_DATA) , VISION_SPEED_ESTIMATE (VISION_SPEED_ESTIMATE_DATA) , OBSTACLE_DISTANCE (OBSTACLE_DISTANCE_DATA) , SCALED_IMU2 (SCALED_IMU2_DATA) , MISSION_REQUEST (MISSION_REQUEST_DATA) , LED_CONTROL (LED_CONTROL_DATA) , SCALED_IMU3 (SCALED_IMU3_DATA) , TRAJECTORY_REPRESENTATION_WAYPOINTS (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA) , COLLISION (COLLISION_DATA) , MISSION_COUNT (MISSION_COUNT_DATA) , ATT_POS_MOCAP (ATT_POS_MOCAP_DATA) , DATA32 (DATA32_DATA) , PARAM_EXT_VALUE (PARAM_EXT_VALUE_DATA) , AUTOPILOT_VERSION (AUTOPILOT_VERSION_DATA) , GIMBAL_MANAGER_SET_MANUAL_CONTROL (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA) , DATA64 (DATA64_DATA) , ODOMETRY (ODOMETRY_DATA) , PING (PING_DATA) , MESSAGE_INTERVAL (MESSAGE_INTERVAL_DATA) , HIL_ACTUATOR_CONTROLS (HIL_ACTUATOR_CONTROLS_DATA) , EKF_STATUS_REPORT (EKF_STATUS_REPORT_DATA) , AHRS3 (AHRS3_DATA) , HIL_STATE_QUATERNION (HIL_STATE_QUATERNION_DATA) , GIMBAL_DEVICE_ATTITUDE_STATUS (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA) , SET_GPS_GLOBAL_ORIGIN (SET_GPS_GLOBAL_ORIGIN_DATA) , POSITION_TARGET_GLOBAL_INT (POSITION_TARGET_GLOBAL_INT_DATA) , ATTITUDE_TARGET (ATTITUDE_TARGET_DATA) , RADIO (RADIO_DATA) , PARAM_VALUE (PARAM_VALUE_DATA) , OPEN_DRONE_ID_SYSTEM_UPDATE (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA) , ADSB_VEHICLE (ADSB_VEHICLE_DATA) , DEVICE_OP_READ (DEVICE_OP_READ_DATA) , EVENT (EVENT_DATA) , COMMAND_LONG (COMMAND_LONG_DATA) , RADIO_STATUS (RADIO_STATUS_DATA) , MEMORY_VECT (MEMORY_VECT_DATA) , REQUEST_DATA_STREAM (REQUEST_DATA_STREAM_DATA) , WIFI_CONFIG_AP (WIFI_CONFIG_AP_DATA) , ESC_TELEMETRY_9_TO_12 (ESC_TELEMETRY_9_TO_12_DATA) , HIL_RC_INPUTS_RAW (HIL_RC_INPUTS_RAW_DATA) , RAW_IMU (RAW_IMU_DATA) , EFI_STATUS (EFI_STATUS_DATA) , MISSION_REQUEST_LIST (MISSION_REQUEST_LIST_DATA) , OPEN_DRONE_ID_AUTHENTICATION (OPEN_DRONE_ID_AUTHENTICATION_DATA) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA) , CAMERA_INFORMATION (CAMERA_INFORMATION_DATA) , ATTITUDE_QUATERNION (ATTITUDE_QUATERNION_DATA) , SIM_STATE (SIM_STATE_DATA) , MOUNT_CONTROL (MOUNT_CONTROL_DATA) , COMMAND_CANCEL (COMMAND_CANCEL_DATA) , CAMERA_STATUS (CAMERA_STATUS_DATA) , DEEPSTALL (DEEPSTALL_DATA) , COMPONENT_INFORMATION (COMPONENT_INFORMATION_DATA) , GOPRO_GET_REQUEST (GOPRO_GET_REQUEST_DATA) , RPM (RPM_DATA) , CAMERA_IMAGE_CAPTURED (CAMERA_IMAGE_CAPTURED_DATA) , GLOBAL_POSITION_INT_COV (GLOBAL_POSITION_INT_COV_DATA) , GPS_INPUT (GPS_INPUT_DATA) , GIMBAL_CONTROL (GIMBAL_CONTROL_DATA) , MOUNT_ORIENTATION (MOUNT_ORIENTATION_DATA) , DEVICE_OP_READ_REPLY (DEVICE_OP_READ_REPLY_DATA) , RC_CHANNELS_RAW (RC_CHANNELS_RAW_DATA) , DATA_STREAM (DATA_STREAM_DATA) , MISSION_CLEAR_ALL (MISSION_CLEAR_ALL_DATA) , HIL_GPS (HIL_GPS_DATA) , PARAM_MAP_RC (PARAM_MAP_RC_DATA) , GIMBAL_DEVICE_SET_ATTITUDE (GIMBAL_DEVICE_SET_ATTITUDE_DATA) , CAMERA_SETTINGS (CAMERA_SETTINGS_DATA) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA) , ONBOARD_COMPUTER_STATUS (ONBOARD_COMPUTER_STATUS_DATA) , HWSTATUS (HWSTATUS_DATA) , RALLY_FETCH_POINT (RALLY_FETCH_POINT_DATA) , } impl Message for MavMessage { fn parse (version : MavlinkVersion , id : u32 , payload : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { match id { OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => OPEN_DRONE_ID_ARM_STATUS_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_ARM_STATUS) , STORAGE_INFORMATION_DATA :: ID => STORAGE_INFORMATION_DATA :: deser (version , payload) . map (Self :: STORAGE_INFORMATION) , MEMINFO_DATA :: ID => MEMINFO_DATA :: deser (version , payload) . map (Self :: MEMINFO) , HEARTBEAT_DATA :: ID => HEARTBEAT_DATA :: deser (version , payload) . map (Self :: HEARTBEAT) , MCU_STATUS_DATA :: ID => MCU_STATUS_DATA :: deser (version , payload) . map (Self :: MCU_STATUS) , ALTITUDE_DATA :: ID => ALTITUDE_DATA :: deser (version , payload) . map (Self :: ALTITUDE) , COMMAND_ACK_DATA :: ID => COMMAND_ACK_DATA :: deser (version , payload) . map (Self :: COMMAND_ACK) , DEBUG_DATA :: ID => DEBUG_DATA :: deser (version , payload) . map (Self :: DEBUG) , PARAM_EXT_ACK_DATA :: ID => PARAM_EXT_ACK_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_ACK) , REMOTE_LOG_BLOCK_STATUS_DATA :: ID => REMOTE_LOG_BLOCK_STATUS_DATA :: deser (version , payload) . map (Self :: REMOTE_LOG_BLOCK_STATUS) , OPTICAL_FLOW_RAD_DATA :: ID => OPTICAL_FLOW_RAD_DATA :: deser (version , payload) . map (Self :: OPTICAL_FLOW_RAD) , GPS_RTCM_DATA_DATA :: ID => GPS_RTCM_DATA_DATA :: deser (version , payload) . map (Self :: GPS_RTCM_DATA) , REQUEST_EVENT_DATA :: ID => REQUEST_EVENT_DATA :: deser (version , payload) . map (Self :: REQUEST_EVENT) , LOCAL_POSITION_NED_COV_DATA :: ID => LOCAL_POSITION_NED_COV_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED_COV) , VISION_POSITION_DELTA_DATA :: ID => VISION_POSITION_DELTA_DATA :: deser (version , payload) . map (Self :: VISION_POSITION_DELTA) , PLAY_TUNE_DATA :: ID => PLAY_TUNE_DATA :: deser (version , payload) . map (Self :: PLAY_TUNE) , OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: ID => OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: deser (version , payload) . map (Self :: OSD_PARAM_SHOW_CONFIG_REPLY) , CELLULAR_CONFIG_DATA :: ID => CELLULAR_CONFIG_DATA :: deser (version , payload) . map (Self :: CELLULAR_CONFIG) , SET_ATTITUDE_TARGET_DATA :: ID => SET_ATTITUDE_TARGET_DATA :: deser (version , payload) . map (Self :: SET_ATTITUDE_TARGET) , GPS_GLOBAL_ORIGIN_DATA :: ID => GPS_GLOBAL_ORIGIN_DATA :: deser (version , payload) . map (Self :: GPS_GLOBAL_ORIGIN) , DISTANCE_SENSOR_DATA :: ID => DISTANCE_SENSOR_DATA :: deser (version , payload) . map (Self :: DISTANCE_SENSOR) , EXTENDED_SYS_STATE_DATA :: ID => EXTENDED_SYS_STATE_DATA :: deser (version , payload) . map (Self :: EXTENDED_SYS_STATE) , LANDING_TARGET_DATA :: ID => LANDING_TARGET_DATA :: deser (version , payload) . map (Self :: LANDING_TARGET) , NAV_CONTROLLER_OUTPUT_DATA :: ID => NAV_CONTROLLER_OUTPUT_DATA :: deser (version , payload) . map (Self :: NAV_CONTROLLER_OUTPUT) , NAMED_VALUE_FLOAT_DATA :: ID => NAMED_VALUE_FLOAT_DATA :: deser (version , payload) . map (Self :: NAMED_VALUE_FLOAT) , ESTIMATOR_STATUS_DATA :: ID => ESTIMATOR_STATUS_DATA :: deser (version , payload) . map (Self :: ESTIMATOR_STATUS) , SET_HOME_POSITION_DATA :: ID => SET_HOME_POSITION_DATA :: deser (version , payload) . map (Self :: SET_HOME_POSITION) , UAVIONIX_ADSB_OUT_CFG_DATA :: ID => UAVIONIX_ADSB_OUT_CFG_DATA :: deser (version , payload) . map (Self :: UAVIONIX_ADSB_OUT_CFG) , MOUNT_CONFIGURE_DATA :: ID => MOUNT_CONFIGURE_DATA :: deser (version , payload) . map (Self :: MOUNT_CONFIGURE) , PARAM_EXT_REQUEST_READ_DATA :: ID => PARAM_EXT_REQUEST_READ_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_REQUEST_READ) , CAMERA_FEEDBACK_DATA :: ID => CAMERA_FEEDBACK_DATA :: deser (version , payload) . map (Self :: CAMERA_FEEDBACK) , SERIAL_CONTROL_DATA :: ID => SERIAL_CONTROL_DATA :: deser (version , payload) . map (Self :: SERIAL_CONTROL) , CAMERA_CAPTURE_STATUS_DATA :: ID => CAMERA_CAPTURE_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_CAPTURE_STATUS) , V2_EXTENSION_DATA :: ID => V2_EXTENSION_DATA :: deser (version , payload) . map (Self :: V2_EXTENSION) , COMPONENT_METADATA_DATA :: ID => COMPONENT_METADATA_DATA :: deser (version , payload) . map (Self :: COMPONENT_METADATA) , DIGICAM_CONFIGURE_DATA :: ID => DIGICAM_CONFIGURE_DATA :: deser (version , payload) . map (Self :: DIGICAM_CONFIGURE) , BUTTON_CHANGE_DATA :: ID => BUTTON_CHANGE_DATA :: deser (version , payload) . map (Self :: BUTTON_CHANGE) , STATUSTEXT_DATA :: ID => STATUSTEXT_DATA :: deser (version , payload) . map (Self :: STATUSTEXT) , CAN_FRAME_DATA :: ID => CAN_FRAME_DATA :: deser (version , payload) . map (Self :: CAN_FRAME) , ISBD_LINK_STATUS_DATA :: ID => ISBD_LINK_STATUS_DATA :: deser (version , payload) . map (Self :: ISBD_LINK_STATUS) , SENSOR_OFFSETS_DATA :: ID => SENSOR_OFFSETS_DATA :: deser (version , payload) . map (Self :: SENSOR_OFFSETS) , BATTERY2_DATA :: ID => BATTERY2_DATA :: deser (version , payload) . map (Self :: BATTERY2) , SCALED_IMU_DATA :: ID => SCALED_IMU_DATA :: deser (version , payload) . map (Self :: SCALED_IMU) , VIDEO_STREAM_STATUS_DATA :: ID => VIDEO_STREAM_STATUS_DATA :: deser (version , payload) . map (Self :: VIDEO_STREAM_STATUS) , BATTERY_STATUS_DATA :: ID => BATTERY_STATUS_DATA :: deser (version , payload) . map (Self :: BATTERY_STATUS) , DEVICE_OP_WRITE_DATA :: ID => DEVICE_OP_WRITE_DATA :: deser (version , payload) . map (Self :: DEVICE_OP_WRITE) , HIGHRES_IMU_DATA :: ID => HIGHRES_IMU_DATA :: deser (version , payload) . map (Self :: HIGHRES_IMU) , GOPRO_HEARTBEAT_DATA :: ID => GOPRO_HEARTBEAT_DATA :: deser (version , payload) . map (Self :: GOPRO_HEARTBEAT) , WATER_DEPTH_DATA :: ID => WATER_DEPTH_DATA :: deser (version , payload) . map (Self :: WATER_DEPTH) , HIL_SENSOR_DATA :: ID => HIL_SENSOR_DATA :: deser (version , payload) . map (Self :: HIL_SENSOR) , POWER_STATUS_DATA :: ID => POWER_STATUS_DATA :: deser (version , payload) . map (Self :: POWER_STATUS) , SYS_STATUS_DATA :: ID => SYS_STATUS_DATA :: deser (version , payload) . map (Self :: SYS_STATUS) , CAN_FILTER_MODIFY_DATA :: ID => CAN_FILTER_MODIFY_DATA :: deser (version , payload) . map (Self :: CAN_FILTER_MODIFY) , RC_CHANNELS_SCALED_DATA :: ID => RC_CHANNELS_SCALED_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_SCALED) , OPEN_DRONE_ID_SELF_ID_DATA :: ID => OPEN_DRONE_ID_SELF_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SELF_ID) , PARAM_REQUEST_READ_DATA :: ID => PARAM_REQUEST_READ_DATA :: deser (version , payload) . map (Self :: PARAM_REQUEST_READ) , PLAY_TUNE_V2_DATA :: ID => PLAY_TUNE_V2_DATA :: deser (version , payload) . map (Self :: PLAY_TUNE_V2) , TERRAIN_CHECK_DATA :: ID => TERRAIN_CHECK_DATA :: deser (version , payload) . map (Self :: TERRAIN_CHECK) , GPS_RTK_DATA :: ID => GPS_RTK_DATA :: deser (version , payload) . map (Self :: GPS_RTK) , FOLLOW_TARGET_DATA :: ID => FOLLOW_TARGET_DATA :: deser (version , payload) . map (Self :: FOLLOW_TARGET) , WIND_DATA :: ID => WIND_DATA :: deser (version , payload) . map (Self :: WIND) , MISSION_CURRENT_DATA :: ID => MISSION_CURRENT_DATA :: deser (version , payload) . map (Self :: MISSION_CURRENT) , GIMBAL_TORQUE_CMD_REPORT_DATA :: ID => GIMBAL_TORQUE_CMD_REPORT_DATA :: deser (version , payload) . map (Self :: GIMBAL_TORQUE_CMD_REPORT) , GOPRO_SET_RESPONSE_DATA :: ID => GOPRO_SET_RESPONSE_DATA :: deser (version , payload) . map (Self :: GOPRO_SET_RESPONSE) , GPS_INJECT_DATA_DATA :: ID => GPS_INJECT_DATA_DATA :: deser (version , payload) . map (Self :: GPS_INJECT_DATA) , SMART_BATTERY_INFO_DATA :: ID => SMART_BATTERY_INFO_DATA :: deser (version , payload) . map (Self :: SMART_BATTERY_INFO) , ACTUATOR_CONTROL_TARGET_DATA :: ID => ACTUATOR_CONTROL_TARGET_DATA :: deser (version , payload) . map (Self :: ACTUATOR_CONTROL_TARGET) , CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: ID => CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: deser (version , payload) . map (Self :: CUBEPILOT_FIRMWARE_UPDATE_RESP) , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => DATA_TRANSMISSION_HANDSHAKE_DATA :: deser (version , payload) . map (Self :: DATA_TRANSMISSION_HANDSHAKE) , HYGROMETER_SENSOR_DATA :: ID => HYGROMETER_SENSOR_DATA :: deser (version , payload) . map (Self :: HYGROMETER_SENSOR) , SYSTEM_TIME_DATA :: ID => SYSTEM_TIME_DATA :: deser (version , payload) . map (Self :: SYSTEM_TIME) , LOG_REQUEST_END_DATA :: ID => LOG_REQUEST_END_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_END) , PROTOCOL_VERSION_DATA :: ID => PROTOCOL_VERSION_DATA :: deser (version , payload) . map (Self :: PROTOCOL_VERSION) , AIRSPEED_AUTOCAL_DATA :: ID => AIRSPEED_AUTOCAL_DATA :: deser (version , payload) . map (Self :: AIRSPEED_AUTOCAL) , GLOBAL_POSITION_INT_DATA :: ID => GLOBAL_POSITION_INT_DATA :: deser (version , payload) . map (Self :: GLOBAL_POSITION_INT) , ENCAPSULATED_DATA_DATA :: ID => ENCAPSULATED_DATA_DATA :: deser (version , payload) . map (Self :: ENCAPSULATED_DATA) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: deser (version , payload) . map (Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT) , GOPRO_SET_REQUEST_DATA :: ID => GOPRO_SET_REQUEST_DATA :: deser (version , payload) . map (Self :: GOPRO_SET_REQUEST) , LOG_REQUEST_LIST_DATA :: ID => LOG_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_LIST) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_PITCHYAW) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_MESSAGE_PACK) , GIMBAL_MANAGER_INFORMATION_DATA :: ID => GIMBAL_MANAGER_INFORMATION_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_INFORMATION) , DEBUG_VECT_DATA :: ID => DEBUG_VECT_DATA :: deser (version , payload) . map (Self :: DEBUG_VECT) , RC_CHANNELS_DATA :: ID => RC_CHANNELS_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS) , SAFETY_ALLOWED_AREA_DATA :: ID => SAFETY_ALLOWED_AREA_DATA :: deser (version , payload) . map (Self :: SAFETY_ALLOWED_AREA) , SAFETY_SET_ALLOWED_AREA_DATA :: ID => SAFETY_SET_ALLOWED_AREA_DATA :: deser (version , payload) . map (Self :: SAFETY_SET_ALLOWED_AREA) , MISSION_ACK_DATA :: ID => MISSION_ACK_DATA :: deser (version , payload) . map (Self :: MISSION_ACK) , UTM_GLOBAL_POSITION_DATA :: ID => UTM_GLOBAL_POSITION_DATA :: deser (version , payload) . map (Self :: UTM_GLOBAL_POSITION) , FLIGHT_INFORMATION_DATA :: ID => FLIGHT_INFORMATION_DATA :: deser (version , payload) . map (Self :: FLIGHT_INFORMATION) , ESC_TELEMETRY_1_TO_4_DATA :: ID => ESC_TELEMETRY_1_TO_4_DATA :: deser (version , payload) . map (Self :: ESC_TELEMETRY_1_TO_4) , LOGGING_ACK_DATA :: ID => LOGGING_ACK_DATA :: deser (version , payload) . map (Self :: LOGGING_ACK) , OPEN_DRONE_ID_LOCATION_DATA :: ID => OPEN_DRONE_ID_LOCATION_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_LOCATION) , HIGH_LATENCY2_DATA :: ID => HIGH_LATENCY2_DATA :: deser (version , payload) . map (Self :: HIGH_LATENCY2) , TIME_ESTIMATE_TO_TARGET_DATA :: ID => TIME_ESTIMATE_TO_TARGET_DATA :: deser (version , payload) . map (Self :: TIME_ESTIMATE_TO_TARGET) , ICAROUS_KINEMATIC_BANDS_DATA :: ID => ICAROUS_KINEMATIC_BANDS_DATA :: deser (version , payload) . map (Self :: ICAROUS_KINEMATIC_BANDS) , FENCE_FETCH_POINT_DATA :: ID => FENCE_FETCH_POINT_DATA :: deser (version , payload) . map (Self :: FENCE_FETCH_POINT) , HIL_STATE_DATA :: ID => HIL_STATE_DATA :: deser (version , payload) . map (Self :: HIL_STATE) , DEBUG_FLOAT_ARRAY_DATA :: ID => DEBUG_FLOAT_ARRAY_DATA :: deser (version , payload) . map (Self :: DEBUG_FLOAT_ARRAY) , CUBEPILOT_RAW_RC_DATA :: ID => CUBEPILOT_RAW_RC_DATA :: deser (version , payload) . map (Self :: CUBEPILOT_RAW_RC) , ORBIT_EXECUTION_STATUS_DATA :: ID => ORBIT_EXECUTION_STATUS_DATA :: deser (version , payload) . map (Self :: ORBIT_EXECUTION_STATUS) , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => OPEN_DRONE_ID_BASIC_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_BASIC_ID) , VFR_HUD_DATA :: ID => VFR_HUD_DATA :: deser (version , payload) . map (Self :: VFR_HUD) , OSD_PARAM_CONFIG_REPLY_DATA :: ID => OSD_PARAM_CONFIG_REPLY_DATA :: deser (version , payload) . map (Self :: OSD_PARAM_CONFIG_REPLY) , LIMITS_STATUS_DATA :: ID => LIMITS_STATUS_DATA :: deser (version , payload) . map (Self :: LIMITS_STATUS) , UAVCAN_NODE_STATUS_DATA :: ID => UAVCAN_NODE_STATUS_DATA :: deser (version , payload) . map (Self :: UAVCAN_NODE_STATUS) , RESOURCE_REQUEST_DATA :: ID => RESOURCE_REQUEST_DATA :: deser (version , payload) . map (Self :: RESOURCE_REQUEST) , MISSION_ITEM_REACHED_DATA :: ID => MISSION_ITEM_REACHED_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM_REACHED) , GOPRO_GET_RESPONSE_DATA :: ID => GOPRO_GET_RESPONSE_DATA :: deser (version , payload) . map (Self :: GOPRO_GET_RESPONSE) , GENERATOR_STATUS_DATA :: ID => GENERATOR_STATUS_DATA :: deser (version , payload) . map (Self :: GENERATOR_STATUS) , HIL_CONTROLS_DATA :: ID => HIL_CONTROLS_DATA :: deser (version , payload) . map (Self :: HIL_CONTROLS) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => CHANGE_OPERATOR_CONTROL_ACK_DATA :: deser (version , payload) . map (Self :: CHANGE_OPERATOR_CONTROL_ACK) , LOGGING_DATA_ACKED_DATA :: ID => LOGGING_DATA_ACKED_DATA :: deser (version , payload) . map (Self :: LOGGING_DATA_ACKED) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => SET_POSITION_TARGET_GLOBAL_INT_DATA :: deser (version , payload) . map (Self :: SET_POSITION_TARGET_GLOBAL_INT) , UAVCAN_NODE_INFO_DATA :: ID => UAVCAN_NODE_INFO_DATA :: deser (version , payload) . map (Self :: UAVCAN_NODE_INFO) , SUPPORTED_TUNES_DATA :: ID => SUPPORTED_TUNES_DATA :: deser (version , payload) . map (Self :: SUPPORTED_TUNES) , CHANGE_OPERATOR_CONTROL_DATA :: ID => CHANGE_OPERATOR_CONTROL_DATA :: deser (version , payload) . map (Self :: CHANGE_OPERATOR_CONTROL) , LOCAL_POSITION_NED_DATA :: ID => LOCAL_POSITION_NED_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED) , COMMAND_INT_DATA :: ID => COMMAND_INT_DATA :: deser (version , payload) . map (Self :: COMMAND_INT) , FENCE_STATUS_DATA :: ID => FENCE_STATUS_DATA :: deser (version , payload) . map (Self :: FENCE_STATUS) , ADAP_TUNING_DATA :: ID => ADAP_TUNING_DATA :: deser (version , payload) . map (Self :: ADAP_TUNING) , VICON_POSITION_ESTIMATE_DATA :: ID => VICON_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VICON_POSITION_ESTIMATE) , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => MISSION_WRITE_PARTIAL_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_WRITE_PARTIAL_LIST) , RALLY_POINT_DATA :: ID => RALLY_POINT_DATA :: deser (version , payload) . map (Self :: RALLY_POINT) , GPS_STATUS_DATA :: ID => GPS_STATUS_DATA :: deser (version , payload) . map (Self :: GPS_STATUS) , OSD_PARAM_CONFIG_DATA :: ID => OSD_PARAM_CONFIG_DATA :: deser (version , payload) . map (Self :: OSD_PARAM_CONFIG) , AHRS2_DATA :: ID => AHRS2_DATA :: deser (version , payload) . map (Self :: AHRS2) , ATTITUDE_QUATERNION_COV_DATA :: ID => ATTITUDE_QUATERNION_COV_DATA :: deser (version , payload) . map (Self :: ATTITUDE_QUATERNION_COV) , OBSTACLE_DISTANCE_3D_DATA :: ID => OBSTACLE_DISTANCE_3D_DATA :: deser (version , payload) . map (Self :: OBSTACLE_DISTANCE_3D) , VISION_POSITION_ESTIMATE_DATA :: ID => VISION_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VISION_POSITION_ESTIMATE) , GIMBAL_MANAGER_STATUS_DATA :: ID => GIMBAL_MANAGER_STATUS_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_STATUS) , ACTUATOR_OUTPUT_STATUS_DATA :: ID => ACTUATOR_OUTPUT_STATUS_DATA :: deser (version , payload) . map (Self :: ACTUATOR_OUTPUT_STATUS) , ESC_STATUS_DATA :: ID => ESC_STATUS_DATA :: deser (version , payload) . map (Self :: ESC_STATUS) , RANGEFINDER_DATA :: ID => RANGEFINDER_DATA :: deser (version , payload) . map (Self :: RANGEFINDER) , REMOTE_LOG_DATA_BLOCK_DATA :: ID => REMOTE_LOG_DATA_BLOCK_DATA :: deser (version , payload) . map (Self :: REMOTE_LOG_DATA_BLOCK) , FENCE_POINT_DATA :: ID => FENCE_POINT_DATA :: deser (version , payload) . map (Self :: FENCE_POINT) , ESC_TELEMETRY_5_TO_8_DATA :: ID => ESC_TELEMETRY_5_TO_8_DATA :: deser (version , payload) . map (Self :: ESC_TELEMETRY_5_TO_8) , WIND_COV_DATA :: ID => WIND_COV_DATA :: deser (version , payload) . map (Self :: WIND_COV) , FILE_TRANSFER_PROTOCOL_DATA :: ID => FILE_TRANSFER_PROTOCOL_DATA :: deser (version , payload) . map (Self :: FILE_TRANSFER_PROTOCOL) , MISSION_ITEM_DATA :: ID => MISSION_ITEM_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM) , MANUAL_SETPOINT_DATA :: ID => MANUAL_SETPOINT_DATA :: deser (version , payload) . map (Self :: MANUAL_SETPOINT) , OPTICAL_FLOW_DATA :: ID => OPTICAL_FLOW_DATA :: deser (version , payload) . map (Self :: OPTICAL_FLOW) , WHEEL_DISTANCE_DATA :: ID => WHEEL_DISTANCE_DATA :: deser (version , payload) . map (Self :: WHEEL_DISTANCE) , SERVO_OUTPUT_RAW_DATA :: ID => SERVO_OUTPUT_RAW_DATA :: deser (version , payload) . map (Self :: SERVO_OUTPUT_RAW) , POSITION_TARGET_LOCAL_NED_DATA :: ID => POSITION_TARGET_LOCAL_NED_DATA :: deser (version , payload) . map (Self :: POSITION_TARGET_LOCAL_NED) , LOG_ENTRY_DATA :: ID => LOG_ENTRY_DATA :: deser (version , payload) . map (Self :: LOG_ENTRY) , PARAM_SET_DATA :: ID => PARAM_SET_DATA :: deser (version , payload) . map (Self :: PARAM_SET) , AP_ADC_DATA :: ID => AP_ADC_DATA :: deser (version , payload) . map (Self :: AP_ADC) , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => SET_POSITION_TARGET_LOCAL_NED_DATA :: deser (version , payload) . map (Self :: SET_POSITION_TARGET_LOCAL_NED) , DEVICE_OP_WRITE_REPLY_DATA :: ID => DEVICE_OP_WRITE_REPLY_DATA :: deser (version , payload) . map (Self :: DEVICE_OP_WRITE_REPLY) , MOUNT_STATUS_DATA :: ID => MOUNT_STATUS_DATA :: deser (version , payload) . map (Self :: MOUNT_STATUS) , DATA16_DATA :: ID => DATA16_DATA :: deser (version , payload) . map (Self :: DATA16) , SIMSTATE_DATA :: ID => SIMSTATE_DATA :: deser (version , payload) . map (Self :: SIMSTATE) , MAG_CAL_REPORT_DATA :: ID => MAG_CAL_REPORT_DATA :: deser (version , payload) . map (Self :: MAG_CAL_REPORT) , SCALED_PRESSURE2_DATA :: ID => SCALED_PRESSURE2_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE2) , CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: ID => CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: deser (version , payload) . map (Self :: CUBEPILOT_FIRMWARE_UPDATE_START) , SET_MODE_DATA :: ID => SET_MODE_DATA :: deser (version , payload) . map (Self :: SET_MODE) , SETUP_SIGNING_DATA :: ID => SETUP_SIGNING_DATA :: deser (version , payload) . map (Self :: SETUP_SIGNING) , PARAM_EXT_SET_DATA :: ID => PARAM_EXT_SET_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_SET) , HOME_POSITION_DATA :: ID => HOME_POSITION_DATA :: deser (version , payload) . map (Self :: HOME_POSITION) , RAW_RPM_DATA :: ID => RAW_RPM_DATA :: deser (version , payload) . map (Self :: RAW_RPM) , ESC_INFO_DATA :: ID => ESC_INFO_DATA :: deser (version , payload) . map (Self :: ESC_INFO) , AUTH_KEY_DATA :: ID => AUTH_KEY_DATA :: deser (version , payload) . map (Self :: AUTH_KEY) , DIGICAM_CONTROL_DATA :: ID => DIGICAM_CONTROL_DATA :: deser (version , payload) . map (Self :: DIGICAM_CONTROL) , GPS2_RTK_DATA :: ID => GPS2_RTK_DATA :: deser (version , payload) . map (Self :: GPS2_RTK) , TERRAIN_DATA_DATA :: ID => TERRAIN_DATA_DATA :: deser (version , payload) . map (Self :: TERRAIN_DATA) , CANFD_FRAME_DATA :: ID => CANFD_FRAME_DATA :: deser (version , payload) . map (Self :: CANFD_FRAME) , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => SET_ACTUATOR_CONTROL_TARGET_DATA :: deser (version , payload) . map (Self :: SET_ACTUATOR_CONTROL_TARGET) , TIMESYNC_DATA :: ID => TIMESYNC_DATA :: deser (version , payload) . map (Self :: TIMESYNC) , COMPASSMOT_STATUS_DATA :: ID => COMPASSMOT_STATUS_DATA :: deser (version , payload) . map (Self :: COMPASSMOT_STATUS) , MISSION_REQUEST_INT_DATA :: ID => MISSION_REQUEST_INT_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_INT) , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: deser (version , payload) . map (Self :: UAVIONIX_ADSB_OUT_DYNAMIC) , DATA96_DATA :: ID => DATA96_DATA :: deser (version , payload) . map (Self :: DATA96) , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => CAMERA_TRACKING_GEO_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_TRACKING_GEO_STATUS) , LOG_DATA_DATA :: ID => LOG_DATA_DATA :: deser (version , payload) . map (Self :: LOG_DATA) , HERELINK_VIDEO_STREAM_INFORMATION_DATA :: ID => HERELINK_VIDEO_STREAM_INFORMATION_DATA :: deser (version , payload) . map (Self :: HERELINK_VIDEO_STREAM_INFORMATION) , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => MISSION_REQUEST_PARTIAL_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_PARTIAL_LIST) , MISSION_SET_CURRENT_DATA :: ID => MISSION_SET_CURRENT_DATA :: deser (version , payload) . map (Self :: MISSION_SET_CURRENT) , SCALED_PRESSURE_DATA :: ID => SCALED_PRESSURE_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE) , PID_TUNING_DATA :: ID => PID_TUNING_DATA :: deser (version , payload) . map (Self :: PID_TUNING) , HIGH_LATENCY_DATA :: ID => HIGH_LATENCY_DATA :: deser (version , payload) . map (Self :: HIGH_LATENCY) , PARAM_EXT_REQUEST_LIST_DATA :: ID => PARAM_EXT_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_REQUEST_LIST) , CAMERA_FOV_STATUS_DATA :: ID => CAMERA_FOV_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_FOV_STATUS) , WINCH_STATUS_DATA :: ID => WINCH_STATUS_DATA :: deser (version , payload) . map (Self :: WINCH_STATUS) , HERELINK_TELEM_DATA :: ID => HERELINK_TELEM_DATA :: deser (version , payload) . map (Self :: HERELINK_TELEM) , VIDEO_STREAM_INFORMATION_DATA :: ID => VIDEO_STREAM_INFORMATION_DATA :: deser (version , payload) . map (Self :: VIDEO_STREAM_INFORMATION) , HIL_OPTICAL_FLOW_DATA :: ID => HIL_OPTICAL_FLOW_DATA :: deser (version , payload) . map (Self :: HIL_OPTICAL_FLOW) , CELLULAR_STATUS_DATA :: ID => CELLULAR_STATUS_DATA :: deser (version , payload) . map (Self :: CELLULAR_STATUS) , TERRAIN_REPORT_DATA :: ID => TERRAIN_REPORT_DATA :: deser (version , payload) . map (Self :: TERRAIN_REPORT) , LOG_ERASE_DATA :: ID => LOG_ERASE_DATA :: deser (version , payload) . map (Self :: LOG_ERASE) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => OPEN_DRONE_ID_OPERATOR_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_OPERATOR_ID) , SET_MAG_OFFSETS_DATA :: ID => SET_MAG_OFFSETS_DATA :: deser (version , payload) . map (Self :: SET_MAG_OFFSETS) , GPS2_RAW_DATA :: ID => GPS2_RAW_DATA :: deser (version , payload) . map (Self :: GPS2_RAW) , CURRENT_EVENT_SEQUENCE_DATA :: ID => CURRENT_EVENT_SEQUENCE_DATA :: deser (version , payload) . map (Self :: CURRENT_EVENT_SEQUENCE) , OPEN_DRONE_ID_SYSTEM_DATA :: ID => OPEN_DRONE_ID_SYSTEM_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SYSTEM) , AHRS_DATA :: ID => AHRS_DATA :: deser (version , payload) . map (Self :: AHRS) , ATTITUDE_DATA :: ID => ATTITUDE_DATA :: deser (version , payload) . map (Self :: ATTITUDE) , LOGGING_DATA_DATA :: ID => LOGGING_DATA_DATA :: deser (version , payload) . map (Self :: LOGGING_DATA) , CAMERA_TRIGGER_DATA :: ID => CAMERA_TRIGGER_DATA :: deser (version , payload) . map (Self :: CAMERA_TRIGGER) , AIS_VESSEL_DATA :: ID => AIS_VESSEL_DATA :: deser (version , payload) . map (Self :: AIS_VESSEL) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: GLOBAL_VISION_POSITION_ESTIMATE) , MISSION_ITEM_INT_DATA :: ID => MISSION_ITEM_INT_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM_INT) , RAW_PRESSURE_DATA :: ID => RAW_PRESSURE_DATA :: deser (version , payload) . map (Self :: RAW_PRESSURE) , TERRAIN_REQUEST_DATA :: ID => TERRAIN_REQUEST_DATA :: deser (version , payload) . map (Self :: TERRAIN_REQUEST) , MANUAL_CONTROL_DATA :: ID => MANUAL_CONTROL_DATA :: deser (version , payload) . map (Self :: MANUAL_CONTROL) , VIBRATION_DATA :: ID => VIBRATION_DATA :: deser (version , payload) . map (Self :: VIBRATION) , RC_CHANNELS_OVERRIDE_DATA :: ID => RC_CHANNELS_OVERRIDE_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_OVERRIDE) , ICAROUS_HEARTBEAT_DATA :: ID => ICAROUS_HEARTBEAT_DATA :: deser (version , payload) . map (Self :: ICAROUS_HEARTBEAT) , GIMBAL_DEVICE_INFORMATION_DATA :: ID => GIMBAL_DEVICE_INFORMATION_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_INFORMATION) , GIMBAL_REPORT_DATA :: ID => GIMBAL_REPORT_DATA :: deser (version , payload) . map (Self :: GIMBAL_REPORT) , CONTROL_SYSTEM_STATE_DATA :: ID => CONTROL_SYSTEM_STATE_DATA :: deser (version , payload) . map (Self :: CONTROL_SYSTEM_STATE) , RESPONSE_EVENT_ERROR_DATA :: ID => RESPONSE_EVENT_ERROR_DATA :: deser (version , payload) . map (Self :: RESPONSE_EVENT_ERROR) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_ATTITUDE) , AOA_SSA_DATA :: ID => AOA_SSA_DATA :: deser (version , payload) . map (Self :: AOA_SSA) , SCALED_PRESSURE3_DATA :: ID => SCALED_PRESSURE3_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE3) , NAMED_VALUE_INT_DATA :: ID => NAMED_VALUE_INT_DATA :: deser (version , payload) . map (Self :: NAMED_VALUE_INT) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => CAMERA_TRACKING_IMAGE_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_TRACKING_IMAGE_STATUS) , LINK_NODE_STATUS_DATA :: ID => LINK_NODE_STATUS_DATA :: deser (version , payload) . map (Self :: LINK_NODE_STATUS) , MAG_CAL_PROGRESS_DATA :: ID => MAG_CAL_PROGRESS_DATA :: deser (version , payload) . map (Self :: MAG_CAL_PROGRESS) , LOG_REQUEST_DATA_DATA :: ID => LOG_REQUEST_DATA_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_DATA) , PARAM_REQUEST_LIST_DATA :: ID => PARAM_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: PARAM_REQUEST_LIST) , GPS_RAW_INT_DATA :: ID => GPS_RAW_INT_DATA :: deser (version , payload) . map (Self :: GPS_RAW_INT) , AUTOPILOT_VERSION_REQUEST_DATA :: ID => AUTOPILOT_VERSION_REQUEST_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_VERSION_REQUEST) , TUNNEL_DATA :: ID => TUNNEL_DATA :: deser (version , payload) . map (Self :: TUNNEL) , OSD_PARAM_SHOW_CONFIG_DATA :: ID => OSD_PARAM_SHOW_CONFIG_DATA :: deser (version , payload) . map (Self :: OSD_PARAM_SHOW_CONFIG) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: deser (version , payload) . map (Self :: TRAJECTORY_REPRESENTATION_BEZIER) , VISION_SPEED_ESTIMATE_DATA :: ID => VISION_SPEED_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VISION_SPEED_ESTIMATE) , OBSTACLE_DISTANCE_DATA :: ID => OBSTACLE_DISTANCE_DATA :: deser (version , payload) . map (Self :: OBSTACLE_DISTANCE) , SCALED_IMU2_DATA :: ID => SCALED_IMU2_DATA :: deser (version , payload) . map (Self :: SCALED_IMU2) , MISSION_REQUEST_DATA :: ID => MISSION_REQUEST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST) , LED_CONTROL_DATA :: ID => LED_CONTROL_DATA :: deser (version , payload) . map (Self :: LED_CONTROL) , SCALED_IMU3_DATA :: ID => SCALED_IMU3_DATA :: deser (version , payload) . map (Self :: SCALED_IMU3) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: deser (version , payload) . map (Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS) , COLLISION_DATA :: ID => COLLISION_DATA :: deser (version , payload) . map (Self :: COLLISION) , MISSION_COUNT_DATA :: ID => MISSION_COUNT_DATA :: deser (version , payload) . map (Self :: MISSION_COUNT) , ATT_POS_MOCAP_DATA :: ID => ATT_POS_MOCAP_DATA :: deser (version , payload) . map (Self :: ATT_POS_MOCAP) , DATA32_DATA :: ID => DATA32_DATA :: deser (version , payload) . map (Self :: DATA32) , PARAM_EXT_VALUE_DATA :: ID => PARAM_EXT_VALUE_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_VALUE) , AUTOPILOT_VERSION_DATA :: ID => AUTOPILOT_VERSION_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_VERSION) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL) , DATA64_DATA :: ID => DATA64_DATA :: deser (version , payload) . map (Self :: DATA64) , ODOMETRY_DATA :: ID => ODOMETRY_DATA :: deser (version , payload) . map (Self :: ODOMETRY) , PING_DATA :: ID => PING_DATA :: deser (version , payload) . map (Self :: PING) , MESSAGE_INTERVAL_DATA :: ID => MESSAGE_INTERVAL_DATA :: deser (version , payload) . map (Self :: MESSAGE_INTERVAL) , HIL_ACTUATOR_CONTROLS_DATA :: ID => HIL_ACTUATOR_CONTROLS_DATA :: deser (version , payload) . map (Self :: HIL_ACTUATOR_CONTROLS) , EKF_STATUS_REPORT_DATA :: ID => EKF_STATUS_REPORT_DATA :: deser (version , payload) . map (Self :: EKF_STATUS_REPORT) , AHRS3_DATA :: ID => AHRS3_DATA :: deser (version , payload) . map (Self :: AHRS3) , HIL_STATE_QUATERNION_DATA :: ID => HIL_STATE_QUATERNION_DATA :: deser (version , payload) . map (Self :: HIL_STATE_QUATERNION) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_ATTITUDE_STATUS) , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => SET_GPS_GLOBAL_ORIGIN_DATA :: deser (version , payload) . map (Self :: SET_GPS_GLOBAL_ORIGIN) , POSITION_TARGET_GLOBAL_INT_DATA :: ID => POSITION_TARGET_GLOBAL_INT_DATA :: deser (version , payload) . map (Self :: POSITION_TARGET_GLOBAL_INT) , ATTITUDE_TARGET_DATA :: ID => ATTITUDE_TARGET_DATA :: deser (version , payload) . map (Self :: ATTITUDE_TARGET) , RADIO_DATA :: ID => RADIO_DATA :: deser (version , payload) . map (Self :: RADIO) , PARAM_VALUE_DATA :: ID => PARAM_VALUE_DATA :: deser (version , payload) . map (Self :: PARAM_VALUE) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SYSTEM_UPDATE) , ADSB_VEHICLE_DATA :: ID => ADSB_VEHICLE_DATA :: deser (version , payload) . map (Self :: ADSB_VEHICLE) , DEVICE_OP_READ_DATA :: ID => DEVICE_OP_READ_DATA :: deser (version , payload) . map (Self :: DEVICE_OP_READ) , EVENT_DATA :: ID => EVENT_DATA :: deser (version , payload) . map (Self :: EVENT) , COMMAND_LONG_DATA :: ID => COMMAND_LONG_DATA :: deser (version , payload) . map (Self :: COMMAND_LONG) , RADIO_STATUS_DATA :: ID => RADIO_STATUS_DATA :: deser (version , payload) . map (Self :: RADIO_STATUS) , MEMORY_VECT_DATA :: ID => MEMORY_VECT_DATA :: deser (version , payload) . map (Self :: MEMORY_VECT) , REQUEST_DATA_STREAM_DATA :: ID => REQUEST_DATA_STREAM_DATA :: deser (version , payload) . map (Self :: REQUEST_DATA_STREAM) , WIFI_CONFIG_AP_DATA :: ID => WIFI_CONFIG_AP_DATA :: deser (version , payload) . map (Self :: WIFI_CONFIG_AP) , ESC_TELEMETRY_9_TO_12_DATA :: ID => ESC_TELEMETRY_9_TO_12_DATA :: deser (version , payload) . map (Self :: ESC_TELEMETRY_9_TO_12) , HIL_RC_INPUTS_RAW_DATA :: ID => HIL_RC_INPUTS_RAW_DATA :: deser (version , payload) . map (Self :: HIL_RC_INPUTS_RAW) , RAW_IMU_DATA :: ID => RAW_IMU_DATA :: deser (version , payload) . map (Self :: RAW_IMU) , EFI_STATUS_DATA :: ID => EFI_STATUS_DATA :: deser (version , payload) . map (Self :: EFI_STATUS) , MISSION_REQUEST_LIST_DATA :: ID => MISSION_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_LIST) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => OPEN_DRONE_ID_AUTHENTICATION_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_AUTHENTICATION) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET) , CAMERA_INFORMATION_DATA :: ID => CAMERA_INFORMATION_DATA :: deser (version , payload) . map (Self :: CAMERA_INFORMATION) , ATTITUDE_QUATERNION_DATA :: ID => ATTITUDE_QUATERNION_DATA :: deser (version , payload) . map (Self :: ATTITUDE_QUATERNION) , SIM_STATE_DATA :: ID => SIM_STATE_DATA :: deser (version , payload) . map (Self :: SIM_STATE) , MOUNT_CONTROL_DATA :: ID => MOUNT_CONTROL_DATA :: deser (version , payload) . map (Self :: MOUNT_CONTROL) , COMMAND_CANCEL_DATA :: ID => COMMAND_CANCEL_DATA :: deser (version , payload) . map (Self :: COMMAND_CANCEL) , CAMERA_STATUS_DATA :: ID => CAMERA_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_STATUS) , DEEPSTALL_DATA :: ID => DEEPSTALL_DATA :: deser (version , payload) . map (Self :: DEEPSTALL) , COMPONENT_INFORMATION_DATA :: ID => COMPONENT_INFORMATION_DATA :: deser (version , payload) . map (Self :: COMPONENT_INFORMATION) , GOPRO_GET_REQUEST_DATA :: ID => GOPRO_GET_REQUEST_DATA :: deser (version , payload) . map (Self :: GOPRO_GET_REQUEST) , RPM_DATA :: ID => RPM_DATA :: deser (version , payload) . map (Self :: RPM) , CAMERA_IMAGE_CAPTURED_DATA :: ID => CAMERA_IMAGE_CAPTURED_DATA :: deser (version , payload) . map (Self :: CAMERA_IMAGE_CAPTURED) , GLOBAL_POSITION_INT_COV_DATA :: ID => GLOBAL_POSITION_INT_COV_DATA :: deser (version , payload) . map (Self :: GLOBAL_POSITION_INT_COV) , GPS_INPUT_DATA :: ID => GPS_INPUT_DATA :: deser (version , payload) . map (Self :: GPS_INPUT) , GIMBAL_CONTROL_DATA :: ID => GIMBAL_CONTROL_DATA :: deser (version , payload) . map (Self :: GIMBAL_CONTROL) , MOUNT_ORIENTATION_DATA :: ID => MOUNT_ORIENTATION_DATA :: deser (version , payload) . map (Self :: MOUNT_ORIENTATION) , DEVICE_OP_READ_REPLY_DATA :: ID => DEVICE_OP_READ_REPLY_DATA :: deser (version , payload) . map (Self :: DEVICE_OP_READ_REPLY) , RC_CHANNELS_RAW_DATA :: ID => RC_CHANNELS_RAW_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_RAW) , DATA_STREAM_DATA :: ID => DATA_STREAM_DATA :: deser (version , payload) . map (Self :: DATA_STREAM) , MISSION_CLEAR_ALL_DATA :: ID => MISSION_CLEAR_ALL_DATA :: deser (version , payload) . map (Self :: MISSION_CLEAR_ALL) , HIL_GPS_DATA :: ID => HIL_GPS_DATA :: deser (version , payload) . map (Self :: HIL_GPS) , PARAM_MAP_RC_DATA :: ID => PARAM_MAP_RC_DATA :: deser (version , payload) . map (Self :: PARAM_MAP_RC) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_SET_ATTITUDE) , CAMERA_SETTINGS_DATA :: ID => CAMERA_SETTINGS_DATA :: deser (version , payload) . map (Self :: CAMERA_SETTINGS) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE) , ONBOARD_COMPUTER_STATUS_DATA :: ID => ONBOARD_COMPUTER_STATUS_DATA :: deser (version , payload) . map (Self :: ONBOARD_COMPUTER_STATUS) , HWSTATUS_DATA :: ID => HWSTATUS_DATA :: deser (version , payload) . map (Self :: HWSTATUS) , RALLY_FETCH_POINT_DATA :: ID => RALLY_FETCH_POINT_DATA :: deser (version , payload) . map (Self :: RALLY_FETCH_POINT) , _ => { Err (:: mavlink_core :: error :: ParserError :: UnknownMessage { id }) } , } } fn message_name (& self) -> & 'static str { match self { Self :: OPEN_DRONE_ID_ARM_STATUS (..) => OPEN_DRONE_ID_ARM_STATUS_DATA :: NAME , Self :: STORAGE_INFORMATION (..) => STORAGE_INFORMATION_DATA :: NAME , Self :: MEMINFO (..) => MEMINFO_DATA :: NAME , Self :: HEARTBEAT (..) => HEARTBEAT_DATA :: NAME , Self :: MCU_STATUS (..) => MCU_STATUS_DATA :: NAME , Self :: ALTITUDE (..) => ALTITUDE_DATA :: NAME , Self :: COMMAND_ACK (..) => COMMAND_ACK_DATA :: NAME , Self :: DEBUG (..) => DEBUG_DATA :: NAME , Self :: PARAM_EXT_ACK (..) => PARAM_EXT_ACK_DATA :: NAME , Self :: REMOTE_LOG_BLOCK_STATUS (..) => REMOTE_LOG_BLOCK_STATUS_DATA :: NAME , Self :: OPTICAL_FLOW_RAD (..) => OPTICAL_FLOW_RAD_DATA :: NAME , Self :: GPS_RTCM_DATA (..) => GPS_RTCM_DATA_DATA :: NAME , Self :: REQUEST_EVENT (..) => REQUEST_EVENT_DATA :: NAME , Self :: LOCAL_POSITION_NED_COV (..) => LOCAL_POSITION_NED_COV_DATA :: NAME , Self :: VISION_POSITION_DELTA (..) => VISION_POSITION_DELTA_DATA :: NAME , Self :: PLAY_TUNE (..) => PLAY_TUNE_DATA :: NAME , Self :: OSD_PARAM_SHOW_CONFIG_REPLY (..) => OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: NAME , Self :: CELLULAR_CONFIG (..) => CELLULAR_CONFIG_DATA :: NAME , Self :: SET_ATTITUDE_TARGET (..) => SET_ATTITUDE_TARGET_DATA :: NAME , Self :: GPS_GLOBAL_ORIGIN (..) => GPS_GLOBAL_ORIGIN_DATA :: NAME , Self :: DISTANCE_SENSOR (..) => DISTANCE_SENSOR_DATA :: NAME , Self :: EXTENDED_SYS_STATE (..) => EXTENDED_SYS_STATE_DATA :: NAME , Self :: LANDING_TARGET (..) => LANDING_TARGET_DATA :: NAME , Self :: NAV_CONTROLLER_OUTPUT (..) => NAV_CONTROLLER_OUTPUT_DATA :: NAME , Self :: NAMED_VALUE_FLOAT (..) => NAMED_VALUE_FLOAT_DATA :: NAME , Self :: ESTIMATOR_STATUS (..) => ESTIMATOR_STATUS_DATA :: NAME , Self :: SET_HOME_POSITION (..) => SET_HOME_POSITION_DATA :: NAME , Self :: UAVIONIX_ADSB_OUT_CFG (..) => UAVIONIX_ADSB_OUT_CFG_DATA :: NAME , Self :: MOUNT_CONFIGURE (..) => MOUNT_CONFIGURE_DATA :: NAME , Self :: PARAM_EXT_REQUEST_READ (..) => PARAM_EXT_REQUEST_READ_DATA :: NAME , Self :: CAMERA_FEEDBACK (..) => CAMERA_FEEDBACK_DATA :: NAME , Self :: SERIAL_CONTROL (..) => SERIAL_CONTROL_DATA :: NAME , Self :: CAMERA_CAPTURE_STATUS (..) => CAMERA_CAPTURE_STATUS_DATA :: NAME , Self :: V2_EXTENSION (..) => V2_EXTENSION_DATA :: NAME , Self :: COMPONENT_METADATA (..) => COMPONENT_METADATA_DATA :: NAME , Self :: DIGICAM_CONFIGURE (..) => DIGICAM_CONFIGURE_DATA :: NAME , Self :: BUTTON_CHANGE (..) => BUTTON_CHANGE_DATA :: NAME , Self :: STATUSTEXT (..) => STATUSTEXT_DATA :: NAME , Self :: CAN_FRAME (..) => CAN_FRAME_DATA :: NAME , Self :: ISBD_LINK_STATUS (..) => ISBD_LINK_STATUS_DATA :: NAME , Self :: SENSOR_OFFSETS (..) => SENSOR_OFFSETS_DATA :: NAME , Self :: BATTERY2 (..) => BATTERY2_DATA :: NAME , Self :: SCALED_IMU (..) => SCALED_IMU_DATA :: NAME , Self :: VIDEO_STREAM_STATUS (..) => VIDEO_STREAM_STATUS_DATA :: NAME , Self :: BATTERY_STATUS (..) => BATTERY_STATUS_DATA :: NAME , Self :: DEVICE_OP_WRITE (..) => DEVICE_OP_WRITE_DATA :: NAME , Self :: HIGHRES_IMU (..) => HIGHRES_IMU_DATA :: NAME , Self :: GOPRO_HEARTBEAT (..) => GOPRO_HEARTBEAT_DATA :: NAME , Self :: WATER_DEPTH (..) => WATER_DEPTH_DATA :: NAME , Self :: HIL_SENSOR (..) => HIL_SENSOR_DATA :: NAME , Self :: POWER_STATUS (..) => POWER_STATUS_DATA :: NAME , Self :: SYS_STATUS (..) => SYS_STATUS_DATA :: NAME , Self :: CAN_FILTER_MODIFY (..) => CAN_FILTER_MODIFY_DATA :: NAME , Self :: RC_CHANNELS_SCALED (..) => RC_CHANNELS_SCALED_DATA :: NAME , Self :: OPEN_DRONE_ID_SELF_ID (..) => OPEN_DRONE_ID_SELF_ID_DATA :: NAME , Self :: PARAM_REQUEST_READ (..) => PARAM_REQUEST_READ_DATA :: NAME , Self :: PLAY_TUNE_V2 (..) => PLAY_TUNE_V2_DATA :: NAME , Self :: TERRAIN_CHECK (..) => TERRAIN_CHECK_DATA :: NAME , Self :: GPS_RTK (..) => GPS_RTK_DATA :: NAME , Self :: FOLLOW_TARGET (..) => FOLLOW_TARGET_DATA :: NAME , Self :: WIND (..) => WIND_DATA :: NAME , Self :: MISSION_CURRENT (..) => MISSION_CURRENT_DATA :: NAME , Self :: GIMBAL_TORQUE_CMD_REPORT (..) => GIMBAL_TORQUE_CMD_REPORT_DATA :: NAME , Self :: GOPRO_SET_RESPONSE (..) => GOPRO_SET_RESPONSE_DATA :: NAME , Self :: GPS_INJECT_DATA (..) => GPS_INJECT_DATA_DATA :: NAME , Self :: SMART_BATTERY_INFO (..) => SMART_BATTERY_INFO_DATA :: NAME , Self :: ACTUATOR_CONTROL_TARGET (..) => ACTUATOR_CONTROL_TARGET_DATA :: NAME , Self :: CUBEPILOT_FIRMWARE_UPDATE_RESP (..) => CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: NAME , Self :: DATA_TRANSMISSION_HANDSHAKE (..) => DATA_TRANSMISSION_HANDSHAKE_DATA :: NAME , Self :: HYGROMETER_SENSOR (..) => HYGROMETER_SENSOR_DATA :: NAME , Self :: SYSTEM_TIME (..) => SYSTEM_TIME_DATA :: NAME , Self :: LOG_REQUEST_END (..) => LOG_REQUEST_END_DATA :: NAME , Self :: PROTOCOL_VERSION (..) => PROTOCOL_VERSION_DATA :: NAME , Self :: AIRSPEED_AUTOCAL (..) => AIRSPEED_AUTOCAL_DATA :: NAME , Self :: GLOBAL_POSITION_INT (..) => GLOBAL_POSITION_INT_DATA :: NAME , Self :: ENCAPSULATED_DATA (..) => ENCAPSULATED_DATA_DATA :: NAME , Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (..) => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: NAME , Self :: GOPRO_SET_REQUEST (..) => GOPRO_SET_REQUEST_DATA :: NAME , Self :: LOG_REQUEST_LIST (..) => LOG_REQUEST_LIST_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_PITCHYAW (..) => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: NAME , Self :: OPEN_DRONE_ID_MESSAGE_PACK (..) => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: NAME , Self :: GIMBAL_MANAGER_INFORMATION (..) => GIMBAL_MANAGER_INFORMATION_DATA :: NAME , Self :: DEBUG_VECT (..) => DEBUG_VECT_DATA :: NAME , Self :: RC_CHANNELS (..) => RC_CHANNELS_DATA :: NAME , Self :: SAFETY_ALLOWED_AREA (..) => SAFETY_ALLOWED_AREA_DATA :: NAME , Self :: SAFETY_SET_ALLOWED_AREA (..) => SAFETY_SET_ALLOWED_AREA_DATA :: NAME , Self :: MISSION_ACK (..) => MISSION_ACK_DATA :: NAME , Self :: UTM_GLOBAL_POSITION (..) => UTM_GLOBAL_POSITION_DATA :: NAME , Self :: FLIGHT_INFORMATION (..) => FLIGHT_INFORMATION_DATA :: NAME , Self :: ESC_TELEMETRY_1_TO_4 (..) => ESC_TELEMETRY_1_TO_4_DATA :: NAME , Self :: LOGGING_ACK (..) => LOGGING_ACK_DATA :: NAME , Self :: OPEN_DRONE_ID_LOCATION (..) => OPEN_DRONE_ID_LOCATION_DATA :: NAME , Self :: HIGH_LATENCY2 (..) => HIGH_LATENCY2_DATA :: NAME , Self :: TIME_ESTIMATE_TO_TARGET (..) => TIME_ESTIMATE_TO_TARGET_DATA :: NAME , Self :: ICAROUS_KINEMATIC_BANDS (..) => ICAROUS_KINEMATIC_BANDS_DATA :: NAME , Self :: FENCE_FETCH_POINT (..) => FENCE_FETCH_POINT_DATA :: NAME , Self :: HIL_STATE (..) => HIL_STATE_DATA :: NAME , Self :: DEBUG_FLOAT_ARRAY (..) => DEBUG_FLOAT_ARRAY_DATA :: NAME , Self :: CUBEPILOT_RAW_RC (..) => CUBEPILOT_RAW_RC_DATA :: NAME , Self :: ORBIT_EXECUTION_STATUS (..) => ORBIT_EXECUTION_STATUS_DATA :: NAME , Self :: OPEN_DRONE_ID_BASIC_ID (..) => OPEN_DRONE_ID_BASIC_ID_DATA :: NAME , Self :: VFR_HUD (..) => VFR_HUD_DATA :: NAME , Self :: OSD_PARAM_CONFIG_REPLY (..) => OSD_PARAM_CONFIG_REPLY_DATA :: NAME , Self :: LIMITS_STATUS (..) => LIMITS_STATUS_DATA :: NAME , Self :: UAVCAN_NODE_STATUS (..) => UAVCAN_NODE_STATUS_DATA :: NAME , Self :: RESOURCE_REQUEST (..) => RESOURCE_REQUEST_DATA :: NAME , Self :: MISSION_ITEM_REACHED (..) => MISSION_ITEM_REACHED_DATA :: NAME , Self :: GOPRO_GET_RESPONSE (..) => GOPRO_GET_RESPONSE_DATA :: NAME , Self :: GENERATOR_STATUS (..) => GENERATOR_STATUS_DATA :: NAME , Self :: HIL_CONTROLS (..) => HIL_CONTROLS_DATA :: NAME , Self :: CHANGE_OPERATOR_CONTROL_ACK (..) => CHANGE_OPERATOR_CONTROL_ACK_DATA :: NAME , Self :: LOGGING_DATA_ACKED (..) => LOGGING_DATA_ACKED_DATA :: NAME , Self :: SET_POSITION_TARGET_GLOBAL_INT (..) => SET_POSITION_TARGET_GLOBAL_INT_DATA :: NAME , Self :: UAVCAN_NODE_INFO (..) => UAVCAN_NODE_INFO_DATA :: NAME , Self :: SUPPORTED_TUNES (..) => SUPPORTED_TUNES_DATA :: NAME , Self :: CHANGE_OPERATOR_CONTROL (..) => CHANGE_OPERATOR_CONTROL_DATA :: NAME , Self :: LOCAL_POSITION_NED (..) => LOCAL_POSITION_NED_DATA :: NAME , Self :: COMMAND_INT (..) => COMMAND_INT_DATA :: NAME , Self :: FENCE_STATUS (..) => FENCE_STATUS_DATA :: NAME , Self :: ADAP_TUNING (..) => ADAP_TUNING_DATA :: NAME , Self :: VICON_POSITION_ESTIMATE (..) => VICON_POSITION_ESTIMATE_DATA :: NAME , Self :: MISSION_WRITE_PARTIAL_LIST (..) => MISSION_WRITE_PARTIAL_LIST_DATA :: NAME , Self :: RALLY_POINT (..) => RALLY_POINT_DATA :: NAME , Self :: GPS_STATUS (..) => GPS_STATUS_DATA :: NAME , Self :: OSD_PARAM_CONFIG (..) => OSD_PARAM_CONFIG_DATA :: NAME , Self :: AHRS2 (..) => AHRS2_DATA :: NAME , Self :: ATTITUDE_QUATERNION_COV (..) => ATTITUDE_QUATERNION_COV_DATA :: NAME , Self :: OBSTACLE_DISTANCE_3D (..) => OBSTACLE_DISTANCE_3D_DATA :: NAME , Self :: VISION_POSITION_ESTIMATE (..) => VISION_POSITION_ESTIMATE_DATA :: NAME , Self :: GIMBAL_MANAGER_STATUS (..) => GIMBAL_MANAGER_STATUS_DATA :: NAME , Self :: ACTUATOR_OUTPUT_STATUS (..) => ACTUATOR_OUTPUT_STATUS_DATA :: NAME , Self :: ESC_STATUS (..) => ESC_STATUS_DATA :: NAME , Self :: RANGEFINDER (..) => RANGEFINDER_DATA :: NAME , Self :: REMOTE_LOG_DATA_BLOCK (..) => REMOTE_LOG_DATA_BLOCK_DATA :: NAME , Self :: FENCE_POINT (..) => FENCE_POINT_DATA :: NAME , Self :: ESC_TELEMETRY_5_TO_8 (..) => ESC_TELEMETRY_5_TO_8_DATA :: NAME , Self :: WIND_COV (..) => WIND_COV_DATA :: NAME , Self :: FILE_TRANSFER_PROTOCOL (..) => FILE_TRANSFER_PROTOCOL_DATA :: NAME , Self :: MISSION_ITEM (..) => MISSION_ITEM_DATA :: NAME , Self :: MANUAL_SETPOINT (..) => MANUAL_SETPOINT_DATA :: NAME , Self :: OPTICAL_FLOW (..) => OPTICAL_FLOW_DATA :: NAME , Self :: WHEEL_DISTANCE (..) => WHEEL_DISTANCE_DATA :: NAME , Self :: SERVO_OUTPUT_RAW (..) => SERVO_OUTPUT_RAW_DATA :: NAME , Self :: POSITION_TARGET_LOCAL_NED (..) => POSITION_TARGET_LOCAL_NED_DATA :: NAME , Self :: LOG_ENTRY (..) => LOG_ENTRY_DATA :: NAME , Self :: PARAM_SET (..) => PARAM_SET_DATA :: NAME , Self :: AP_ADC (..) => AP_ADC_DATA :: NAME , Self :: SET_POSITION_TARGET_LOCAL_NED (..) => SET_POSITION_TARGET_LOCAL_NED_DATA :: NAME , Self :: DEVICE_OP_WRITE_REPLY (..) => DEVICE_OP_WRITE_REPLY_DATA :: NAME , Self :: MOUNT_STATUS (..) => MOUNT_STATUS_DATA :: NAME , Self :: DATA16 (..) => DATA16_DATA :: NAME , Self :: SIMSTATE (..) => SIMSTATE_DATA :: NAME , Self :: MAG_CAL_REPORT (..) => MAG_CAL_REPORT_DATA :: NAME , Self :: SCALED_PRESSURE2 (..) => SCALED_PRESSURE2_DATA :: NAME , Self :: CUBEPILOT_FIRMWARE_UPDATE_START (..) => CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: NAME , Self :: SET_MODE (..) => SET_MODE_DATA :: NAME , Self :: SETUP_SIGNING (..) => SETUP_SIGNING_DATA :: NAME , Self :: PARAM_EXT_SET (..) => PARAM_EXT_SET_DATA :: NAME , Self :: HOME_POSITION (..) => HOME_POSITION_DATA :: NAME , Self :: RAW_RPM (..) => RAW_RPM_DATA :: NAME , Self :: ESC_INFO (..) => ESC_INFO_DATA :: NAME , Self :: AUTH_KEY (..) => AUTH_KEY_DATA :: NAME , Self :: DIGICAM_CONTROL (..) => DIGICAM_CONTROL_DATA :: NAME , Self :: GPS2_RTK (..) => GPS2_RTK_DATA :: NAME , Self :: TERRAIN_DATA (..) => TERRAIN_DATA_DATA :: NAME , Self :: CANFD_FRAME (..) => CANFD_FRAME_DATA :: NAME , Self :: SET_ACTUATOR_CONTROL_TARGET (..) => SET_ACTUATOR_CONTROL_TARGET_DATA :: NAME , Self :: TIMESYNC (..) => TIMESYNC_DATA :: NAME , Self :: COMPASSMOT_STATUS (..) => COMPASSMOT_STATUS_DATA :: NAME , Self :: MISSION_REQUEST_INT (..) => MISSION_REQUEST_INT_DATA :: NAME , Self :: UAVIONIX_ADSB_OUT_DYNAMIC (..) => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: NAME , Self :: DATA96 (..) => DATA96_DATA :: NAME , Self :: CAMERA_TRACKING_GEO_STATUS (..) => CAMERA_TRACKING_GEO_STATUS_DATA :: NAME , Self :: LOG_DATA (..) => LOG_DATA_DATA :: NAME , Self :: HERELINK_VIDEO_STREAM_INFORMATION (..) => HERELINK_VIDEO_STREAM_INFORMATION_DATA :: NAME , Self :: MISSION_REQUEST_PARTIAL_LIST (..) => MISSION_REQUEST_PARTIAL_LIST_DATA :: NAME , Self :: MISSION_SET_CURRENT (..) => MISSION_SET_CURRENT_DATA :: NAME , Self :: SCALED_PRESSURE (..) => SCALED_PRESSURE_DATA :: NAME , Self :: PID_TUNING (..) => PID_TUNING_DATA :: NAME , Self :: HIGH_LATENCY (..) => HIGH_LATENCY_DATA :: NAME , Self :: PARAM_EXT_REQUEST_LIST (..) => PARAM_EXT_REQUEST_LIST_DATA :: NAME , Self :: CAMERA_FOV_STATUS (..) => CAMERA_FOV_STATUS_DATA :: NAME , Self :: WINCH_STATUS (..) => WINCH_STATUS_DATA :: NAME , Self :: HERELINK_TELEM (..) => HERELINK_TELEM_DATA :: NAME , Self :: VIDEO_STREAM_INFORMATION (..) => VIDEO_STREAM_INFORMATION_DATA :: NAME , Self :: HIL_OPTICAL_FLOW (..) => HIL_OPTICAL_FLOW_DATA :: NAME , Self :: CELLULAR_STATUS (..) => CELLULAR_STATUS_DATA :: NAME , Self :: TERRAIN_REPORT (..) => TERRAIN_REPORT_DATA :: NAME , Self :: LOG_ERASE (..) => LOG_ERASE_DATA :: NAME , Self :: OPEN_DRONE_ID_OPERATOR_ID (..) => OPEN_DRONE_ID_OPERATOR_ID_DATA :: NAME , Self :: SET_MAG_OFFSETS (..) => SET_MAG_OFFSETS_DATA :: NAME , Self :: GPS2_RAW (..) => GPS2_RAW_DATA :: NAME , Self :: CURRENT_EVENT_SEQUENCE (..) => CURRENT_EVENT_SEQUENCE_DATA :: NAME , Self :: OPEN_DRONE_ID_SYSTEM (..) => OPEN_DRONE_ID_SYSTEM_DATA :: NAME , Self :: AHRS (..) => AHRS_DATA :: NAME , Self :: ATTITUDE (..) => ATTITUDE_DATA :: NAME , Self :: LOGGING_DATA (..) => LOGGING_DATA_DATA :: NAME , Self :: CAMERA_TRIGGER (..) => CAMERA_TRIGGER_DATA :: NAME , Self :: AIS_VESSEL (..) => AIS_VESSEL_DATA :: NAME , Self :: GLOBAL_VISION_POSITION_ESTIMATE (..) => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: NAME , Self :: MISSION_ITEM_INT (..) => MISSION_ITEM_INT_DATA :: NAME , Self :: RAW_PRESSURE (..) => RAW_PRESSURE_DATA :: NAME , Self :: TERRAIN_REQUEST (..) => TERRAIN_REQUEST_DATA :: NAME , Self :: MANUAL_CONTROL (..) => MANUAL_CONTROL_DATA :: NAME , Self :: VIBRATION (..) => VIBRATION_DATA :: NAME , Self :: RC_CHANNELS_OVERRIDE (..) => RC_CHANNELS_OVERRIDE_DATA :: NAME , Self :: ICAROUS_HEARTBEAT (..) => ICAROUS_HEARTBEAT_DATA :: NAME , Self :: GIMBAL_DEVICE_INFORMATION (..) => GIMBAL_DEVICE_INFORMATION_DATA :: NAME , Self :: GIMBAL_REPORT (..) => GIMBAL_REPORT_DATA :: NAME , Self :: CONTROL_SYSTEM_STATE (..) => CONTROL_SYSTEM_STATE_DATA :: NAME , Self :: RESPONSE_EVENT_ERROR (..) => RESPONSE_EVENT_ERROR_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_ATTITUDE (..) => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: NAME , Self :: AOA_SSA (..) => AOA_SSA_DATA :: NAME , Self :: SCALED_PRESSURE3 (..) => SCALED_PRESSURE3_DATA :: NAME , Self :: NAMED_VALUE_INT (..) => NAMED_VALUE_INT_DATA :: NAME , Self :: CAMERA_TRACKING_IMAGE_STATUS (..) => CAMERA_TRACKING_IMAGE_STATUS_DATA :: NAME , Self :: LINK_NODE_STATUS (..) => LINK_NODE_STATUS_DATA :: NAME , Self :: MAG_CAL_PROGRESS (..) => MAG_CAL_PROGRESS_DATA :: NAME , Self :: LOG_REQUEST_DATA (..) => LOG_REQUEST_DATA_DATA :: NAME , Self :: PARAM_REQUEST_LIST (..) => PARAM_REQUEST_LIST_DATA :: NAME , Self :: GPS_RAW_INT (..) => GPS_RAW_INT_DATA :: NAME , Self :: AUTOPILOT_VERSION_REQUEST (..) => AUTOPILOT_VERSION_REQUEST_DATA :: NAME , Self :: TUNNEL (..) => TUNNEL_DATA :: NAME , Self :: OSD_PARAM_SHOW_CONFIG (..) => OSD_PARAM_SHOW_CONFIG_DATA :: NAME , Self :: TRAJECTORY_REPRESENTATION_BEZIER (..) => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: NAME , Self :: VISION_SPEED_ESTIMATE (..) => VISION_SPEED_ESTIMATE_DATA :: NAME , Self :: OBSTACLE_DISTANCE (..) => OBSTACLE_DISTANCE_DATA :: NAME , Self :: SCALED_IMU2 (..) => SCALED_IMU2_DATA :: NAME , Self :: MISSION_REQUEST (..) => MISSION_REQUEST_DATA :: NAME , Self :: LED_CONTROL (..) => LED_CONTROL_DATA :: NAME , Self :: SCALED_IMU3 (..) => SCALED_IMU3_DATA :: NAME , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (..) => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: NAME , Self :: COLLISION (..) => COLLISION_DATA :: NAME , Self :: MISSION_COUNT (..) => MISSION_COUNT_DATA :: NAME , Self :: ATT_POS_MOCAP (..) => ATT_POS_MOCAP_DATA :: NAME , Self :: DATA32 (..) => DATA32_DATA :: NAME , Self :: PARAM_EXT_VALUE (..) => PARAM_EXT_VALUE_DATA :: NAME , Self :: AUTOPILOT_VERSION (..) => AUTOPILOT_VERSION_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (..) => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: NAME , Self :: DATA64 (..) => DATA64_DATA :: NAME , Self :: ODOMETRY (..) => ODOMETRY_DATA :: NAME , Self :: PING (..) => PING_DATA :: NAME , Self :: MESSAGE_INTERVAL (..) => MESSAGE_INTERVAL_DATA :: NAME , Self :: HIL_ACTUATOR_CONTROLS (..) => HIL_ACTUATOR_CONTROLS_DATA :: NAME , Self :: EKF_STATUS_REPORT (..) => EKF_STATUS_REPORT_DATA :: NAME , Self :: AHRS3 (..) => AHRS3_DATA :: NAME , Self :: HIL_STATE_QUATERNION (..) => HIL_STATE_QUATERNION_DATA :: NAME , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (..) => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: NAME , Self :: SET_GPS_GLOBAL_ORIGIN (..) => SET_GPS_GLOBAL_ORIGIN_DATA :: NAME , Self :: POSITION_TARGET_GLOBAL_INT (..) => POSITION_TARGET_GLOBAL_INT_DATA :: NAME , Self :: ATTITUDE_TARGET (..) => ATTITUDE_TARGET_DATA :: NAME , Self :: RADIO (..) => RADIO_DATA :: NAME , Self :: PARAM_VALUE (..) => PARAM_VALUE_DATA :: NAME , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (..) => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: NAME , Self :: ADSB_VEHICLE (..) => ADSB_VEHICLE_DATA :: NAME , Self :: DEVICE_OP_READ (..) => DEVICE_OP_READ_DATA :: NAME , Self :: EVENT (..) => EVENT_DATA :: NAME , Self :: COMMAND_LONG (..) => COMMAND_LONG_DATA :: NAME , Self :: RADIO_STATUS (..) => RADIO_STATUS_DATA :: NAME , Self :: MEMORY_VECT (..) => MEMORY_VECT_DATA :: NAME , Self :: REQUEST_DATA_STREAM (..) => REQUEST_DATA_STREAM_DATA :: NAME , Self :: WIFI_CONFIG_AP (..) => WIFI_CONFIG_AP_DATA :: NAME , Self :: ESC_TELEMETRY_9_TO_12 (..) => ESC_TELEMETRY_9_TO_12_DATA :: NAME , Self :: HIL_RC_INPUTS_RAW (..) => HIL_RC_INPUTS_RAW_DATA :: NAME , Self :: RAW_IMU (..) => RAW_IMU_DATA :: NAME , Self :: EFI_STATUS (..) => EFI_STATUS_DATA :: NAME , Self :: MISSION_REQUEST_LIST (..) => MISSION_REQUEST_LIST_DATA :: NAME , Self :: OPEN_DRONE_ID_AUTHENTICATION (..) => OPEN_DRONE_ID_AUTHENTICATION_DATA :: NAME , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (..) => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: NAME , Self :: CAMERA_INFORMATION (..) => CAMERA_INFORMATION_DATA :: NAME , Self :: ATTITUDE_QUATERNION (..) => ATTITUDE_QUATERNION_DATA :: NAME , Self :: SIM_STATE (..) => SIM_STATE_DATA :: NAME , Self :: MOUNT_CONTROL (..) => MOUNT_CONTROL_DATA :: NAME , Self :: COMMAND_CANCEL (..) => COMMAND_CANCEL_DATA :: NAME , Self :: CAMERA_STATUS (..) => CAMERA_STATUS_DATA :: NAME , Self :: DEEPSTALL (..) => DEEPSTALL_DATA :: NAME , Self :: COMPONENT_INFORMATION (..) => COMPONENT_INFORMATION_DATA :: NAME , Self :: GOPRO_GET_REQUEST (..) => GOPRO_GET_REQUEST_DATA :: NAME , Self :: RPM (..) => RPM_DATA :: NAME , Self :: CAMERA_IMAGE_CAPTURED (..) => CAMERA_IMAGE_CAPTURED_DATA :: NAME , Self :: GLOBAL_POSITION_INT_COV (..) => GLOBAL_POSITION_INT_COV_DATA :: NAME , Self :: GPS_INPUT (..) => GPS_INPUT_DATA :: NAME , Self :: GIMBAL_CONTROL (..) => GIMBAL_CONTROL_DATA :: NAME , Self :: MOUNT_ORIENTATION (..) => MOUNT_ORIENTATION_DATA :: NAME , Self :: DEVICE_OP_READ_REPLY (..) => DEVICE_OP_READ_REPLY_DATA :: NAME , Self :: RC_CHANNELS_RAW (..) => RC_CHANNELS_RAW_DATA :: NAME , Self :: DATA_STREAM (..) => DATA_STREAM_DATA :: NAME , Self :: MISSION_CLEAR_ALL (..) => MISSION_CLEAR_ALL_DATA :: NAME , Self :: HIL_GPS (..) => HIL_GPS_DATA :: NAME , Self :: PARAM_MAP_RC (..) => PARAM_MAP_RC_DATA :: NAME , Self :: GIMBAL_DEVICE_SET_ATTITUDE (..) => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: NAME , Self :: CAMERA_SETTINGS (..) => CAMERA_SETTINGS_DATA :: NAME , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (..) => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: NAME , Self :: ONBOARD_COMPUTER_STATUS (..) => ONBOARD_COMPUTER_STATUS_DATA :: NAME , Self :: HWSTATUS (..) => HWSTATUS_DATA :: NAME , Self :: RALLY_FETCH_POINT (..) => RALLY_FETCH_POINT_DATA :: NAME , } } fn message_id (& self) -> u32 { match self { Self :: OPEN_DRONE_ID_ARM_STATUS (..) => OPEN_DRONE_ID_ARM_STATUS_DATA :: ID , Self :: STORAGE_INFORMATION (..) => STORAGE_INFORMATION_DATA :: ID , Self :: MEMINFO (..) => MEMINFO_DATA :: ID , Self :: HEARTBEAT (..) => HEARTBEAT_DATA :: ID , Self :: MCU_STATUS (..) => MCU_STATUS_DATA :: ID , Self :: ALTITUDE (..) => ALTITUDE_DATA :: ID , Self :: COMMAND_ACK (..) => COMMAND_ACK_DATA :: ID , Self :: DEBUG (..) => DEBUG_DATA :: ID , Self :: PARAM_EXT_ACK (..) => PARAM_EXT_ACK_DATA :: ID , Self :: REMOTE_LOG_BLOCK_STATUS (..) => REMOTE_LOG_BLOCK_STATUS_DATA :: ID , Self :: OPTICAL_FLOW_RAD (..) => OPTICAL_FLOW_RAD_DATA :: ID , Self :: GPS_RTCM_DATA (..) => GPS_RTCM_DATA_DATA :: ID , Self :: REQUEST_EVENT (..) => REQUEST_EVENT_DATA :: ID , Self :: LOCAL_POSITION_NED_COV (..) => LOCAL_POSITION_NED_COV_DATA :: ID , Self :: VISION_POSITION_DELTA (..) => VISION_POSITION_DELTA_DATA :: ID , Self :: PLAY_TUNE (..) => PLAY_TUNE_DATA :: ID , Self :: OSD_PARAM_SHOW_CONFIG_REPLY (..) => OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: ID , Self :: CELLULAR_CONFIG (..) => CELLULAR_CONFIG_DATA :: ID , Self :: SET_ATTITUDE_TARGET (..) => SET_ATTITUDE_TARGET_DATA :: ID , Self :: GPS_GLOBAL_ORIGIN (..) => GPS_GLOBAL_ORIGIN_DATA :: ID , Self :: DISTANCE_SENSOR (..) => DISTANCE_SENSOR_DATA :: ID , Self :: EXTENDED_SYS_STATE (..) => EXTENDED_SYS_STATE_DATA :: ID , Self :: LANDING_TARGET (..) => LANDING_TARGET_DATA :: ID , Self :: NAV_CONTROLLER_OUTPUT (..) => NAV_CONTROLLER_OUTPUT_DATA :: ID , Self :: NAMED_VALUE_FLOAT (..) => NAMED_VALUE_FLOAT_DATA :: ID , Self :: ESTIMATOR_STATUS (..) => ESTIMATOR_STATUS_DATA :: ID , Self :: SET_HOME_POSITION (..) => SET_HOME_POSITION_DATA :: ID , Self :: UAVIONIX_ADSB_OUT_CFG (..) => UAVIONIX_ADSB_OUT_CFG_DATA :: ID , Self :: MOUNT_CONFIGURE (..) => MOUNT_CONFIGURE_DATA :: ID , Self :: PARAM_EXT_REQUEST_READ (..) => PARAM_EXT_REQUEST_READ_DATA :: ID , Self :: CAMERA_FEEDBACK (..) => CAMERA_FEEDBACK_DATA :: ID , Self :: SERIAL_CONTROL (..) => SERIAL_CONTROL_DATA :: ID , Self :: CAMERA_CAPTURE_STATUS (..) => CAMERA_CAPTURE_STATUS_DATA :: ID , Self :: V2_EXTENSION (..) => V2_EXTENSION_DATA :: ID , Self :: COMPONENT_METADATA (..) => COMPONENT_METADATA_DATA :: ID , Self :: DIGICAM_CONFIGURE (..) => DIGICAM_CONFIGURE_DATA :: ID , Self :: BUTTON_CHANGE (..) => BUTTON_CHANGE_DATA :: ID , Self :: STATUSTEXT (..) => STATUSTEXT_DATA :: ID , Self :: CAN_FRAME (..) => CAN_FRAME_DATA :: ID , Self :: ISBD_LINK_STATUS (..) => ISBD_LINK_STATUS_DATA :: ID , Self :: SENSOR_OFFSETS (..) => SENSOR_OFFSETS_DATA :: ID , Self :: BATTERY2 (..) => BATTERY2_DATA :: ID , Self :: SCALED_IMU (..) => SCALED_IMU_DATA :: ID , Self :: VIDEO_STREAM_STATUS (..) => VIDEO_STREAM_STATUS_DATA :: ID , Self :: BATTERY_STATUS (..) => BATTERY_STATUS_DATA :: ID , Self :: DEVICE_OP_WRITE (..) => DEVICE_OP_WRITE_DATA :: ID , Self :: HIGHRES_IMU (..) => HIGHRES_IMU_DATA :: ID , Self :: GOPRO_HEARTBEAT (..) => GOPRO_HEARTBEAT_DATA :: ID , Self :: WATER_DEPTH (..) => WATER_DEPTH_DATA :: ID , Self :: HIL_SENSOR (..) => HIL_SENSOR_DATA :: ID , Self :: POWER_STATUS (..) => POWER_STATUS_DATA :: ID , Self :: SYS_STATUS (..) => SYS_STATUS_DATA :: ID , Self :: CAN_FILTER_MODIFY (..) => CAN_FILTER_MODIFY_DATA :: ID , Self :: RC_CHANNELS_SCALED (..) => RC_CHANNELS_SCALED_DATA :: ID , Self :: OPEN_DRONE_ID_SELF_ID (..) => OPEN_DRONE_ID_SELF_ID_DATA :: ID , Self :: PARAM_REQUEST_READ (..) => PARAM_REQUEST_READ_DATA :: ID , Self :: PLAY_TUNE_V2 (..) => PLAY_TUNE_V2_DATA :: ID , Self :: TERRAIN_CHECK (..) => TERRAIN_CHECK_DATA :: ID , Self :: GPS_RTK (..) => GPS_RTK_DATA :: ID , Self :: FOLLOW_TARGET (..) => FOLLOW_TARGET_DATA :: ID , Self :: WIND (..) => WIND_DATA :: ID , Self :: MISSION_CURRENT (..) => MISSION_CURRENT_DATA :: ID , Self :: GIMBAL_TORQUE_CMD_REPORT (..) => GIMBAL_TORQUE_CMD_REPORT_DATA :: ID , Self :: GOPRO_SET_RESPONSE (..) => GOPRO_SET_RESPONSE_DATA :: ID , Self :: GPS_INJECT_DATA (..) => GPS_INJECT_DATA_DATA :: ID , Self :: SMART_BATTERY_INFO (..) => SMART_BATTERY_INFO_DATA :: ID , Self :: ACTUATOR_CONTROL_TARGET (..) => ACTUATOR_CONTROL_TARGET_DATA :: ID , Self :: CUBEPILOT_FIRMWARE_UPDATE_RESP (..) => CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: ID , Self :: DATA_TRANSMISSION_HANDSHAKE (..) => DATA_TRANSMISSION_HANDSHAKE_DATA :: ID , Self :: HYGROMETER_SENSOR (..) => HYGROMETER_SENSOR_DATA :: ID , Self :: SYSTEM_TIME (..) => SYSTEM_TIME_DATA :: ID , Self :: LOG_REQUEST_END (..) => LOG_REQUEST_END_DATA :: ID , Self :: PROTOCOL_VERSION (..) => PROTOCOL_VERSION_DATA :: ID , Self :: AIRSPEED_AUTOCAL (..) => AIRSPEED_AUTOCAL_DATA :: ID , Self :: GLOBAL_POSITION_INT (..) => GLOBAL_POSITION_INT_DATA :: ID , Self :: ENCAPSULATED_DATA (..) => ENCAPSULATED_DATA_DATA :: ID , Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (..) => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID , Self :: GOPRO_SET_REQUEST (..) => GOPRO_SET_REQUEST_DATA :: ID , Self :: LOG_REQUEST_LIST (..) => LOG_REQUEST_LIST_DATA :: ID , Self :: GIMBAL_MANAGER_SET_PITCHYAW (..) => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID , Self :: OPEN_DRONE_ID_MESSAGE_PACK (..) => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID , Self :: GIMBAL_MANAGER_INFORMATION (..) => GIMBAL_MANAGER_INFORMATION_DATA :: ID , Self :: DEBUG_VECT (..) => DEBUG_VECT_DATA :: ID , Self :: RC_CHANNELS (..) => RC_CHANNELS_DATA :: ID , Self :: SAFETY_ALLOWED_AREA (..) => SAFETY_ALLOWED_AREA_DATA :: ID , Self :: SAFETY_SET_ALLOWED_AREA (..) => SAFETY_SET_ALLOWED_AREA_DATA :: ID , Self :: MISSION_ACK (..) => MISSION_ACK_DATA :: ID , Self :: UTM_GLOBAL_POSITION (..) => UTM_GLOBAL_POSITION_DATA :: ID , Self :: FLIGHT_INFORMATION (..) => FLIGHT_INFORMATION_DATA :: ID , Self :: ESC_TELEMETRY_1_TO_4 (..) => ESC_TELEMETRY_1_TO_4_DATA :: ID , Self :: LOGGING_ACK (..) => LOGGING_ACK_DATA :: ID , Self :: OPEN_DRONE_ID_LOCATION (..) => OPEN_DRONE_ID_LOCATION_DATA :: ID , Self :: HIGH_LATENCY2 (..) => HIGH_LATENCY2_DATA :: ID , Self :: TIME_ESTIMATE_TO_TARGET (..) => TIME_ESTIMATE_TO_TARGET_DATA :: ID , Self :: ICAROUS_KINEMATIC_BANDS (..) => ICAROUS_KINEMATIC_BANDS_DATA :: ID , Self :: FENCE_FETCH_POINT (..) => FENCE_FETCH_POINT_DATA :: ID , Self :: HIL_STATE (..) => HIL_STATE_DATA :: ID , Self :: DEBUG_FLOAT_ARRAY (..) => DEBUG_FLOAT_ARRAY_DATA :: ID , Self :: CUBEPILOT_RAW_RC (..) => CUBEPILOT_RAW_RC_DATA :: ID , Self :: ORBIT_EXECUTION_STATUS (..) => ORBIT_EXECUTION_STATUS_DATA :: ID , Self :: OPEN_DRONE_ID_BASIC_ID (..) => OPEN_DRONE_ID_BASIC_ID_DATA :: ID , Self :: VFR_HUD (..) => VFR_HUD_DATA :: ID , Self :: OSD_PARAM_CONFIG_REPLY (..) => OSD_PARAM_CONFIG_REPLY_DATA :: ID , Self :: LIMITS_STATUS (..) => LIMITS_STATUS_DATA :: ID , Self :: UAVCAN_NODE_STATUS (..) => UAVCAN_NODE_STATUS_DATA :: ID , Self :: RESOURCE_REQUEST (..) => RESOURCE_REQUEST_DATA :: ID , Self :: MISSION_ITEM_REACHED (..) => MISSION_ITEM_REACHED_DATA :: ID , Self :: GOPRO_GET_RESPONSE (..) => GOPRO_GET_RESPONSE_DATA :: ID , Self :: GENERATOR_STATUS (..) => GENERATOR_STATUS_DATA :: ID , Self :: HIL_CONTROLS (..) => HIL_CONTROLS_DATA :: ID , Self :: CHANGE_OPERATOR_CONTROL_ACK (..) => CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID , Self :: LOGGING_DATA_ACKED (..) => LOGGING_DATA_ACKED_DATA :: ID , Self :: SET_POSITION_TARGET_GLOBAL_INT (..) => SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID , Self :: UAVCAN_NODE_INFO (..) => UAVCAN_NODE_INFO_DATA :: ID , Self :: SUPPORTED_TUNES (..) => SUPPORTED_TUNES_DATA :: ID , Self :: CHANGE_OPERATOR_CONTROL (..) => CHANGE_OPERATOR_CONTROL_DATA :: ID , Self :: LOCAL_POSITION_NED (..) => LOCAL_POSITION_NED_DATA :: ID , Self :: COMMAND_INT (..) => COMMAND_INT_DATA :: ID , Self :: FENCE_STATUS (..) => FENCE_STATUS_DATA :: ID , Self :: ADAP_TUNING (..) => ADAP_TUNING_DATA :: ID , Self :: VICON_POSITION_ESTIMATE (..) => VICON_POSITION_ESTIMATE_DATA :: ID , Self :: MISSION_WRITE_PARTIAL_LIST (..) => MISSION_WRITE_PARTIAL_LIST_DATA :: ID , Self :: RALLY_POINT (..) => RALLY_POINT_DATA :: ID , Self :: GPS_STATUS (..) => GPS_STATUS_DATA :: ID , Self :: OSD_PARAM_CONFIG (..) => OSD_PARAM_CONFIG_DATA :: ID , Self :: AHRS2 (..) => AHRS2_DATA :: ID , Self :: ATTITUDE_QUATERNION_COV (..) => ATTITUDE_QUATERNION_COV_DATA :: ID , Self :: OBSTACLE_DISTANCE_3D (..) => OBSTACLE_DISTANCE_3D_DATA :: ID , Self :: VISION_POSITION_ESTIMATE (..) => VISION_POSITION_ESTIMATE_DATA :: ID , Self :: GIMBAL_MANAGER_STATUS (..) => GIMBAL_MANAGER_STATUS_DATA :: ID , Self :: ACTUATOR_OUTPUT_STATUS (..) => ACTUATOR_OUTPUT_STATUS_DATA :: ID , Self :: ESC_STATUS (..) => ESC_STATUS_DATA :: ID , Self :: RANGEFINDER (..) => RANGEFINDER_DATA :: ID , Self :: REMOTE_LOG_DATA_BLOCK (..) => REMOTE_LOG_DATA_BLOCK_DATA :: ID , Self :: FENCE_POINT (..) => FENCE_POINT_DATA :: ID , Self :: ESC_TELEMETRY_5_TO_8 (..) => ESC_TELEMETRY_5_TO_8_DATA :: ID , Self :: WIND_COV (..) => WIND_COV_DATA :: ID , Self :: FILE_TRANSFER_PROTOCOL (..) => FILE_TRANSFER_PROTOCOL_DATA :: ID , Self :: MISSION_ITEM (..) => MISSION_ITEM_DATA :: ID , Self :: MANUAL_SETPOINT (..) => MANUAL_SETPOINT_DATA :: ID , Self :: OPTICAL_FLOW (..) => OPTICAL_FLOW_DATA :: ID , Self :: WHEEL_DISTANCE (..) => WHEEL_DISTANCE_DATA :: ID , Self :: SERVO_OUTPUT_RAW (..) => SERVO_OUTPUT_RAW_DATA :: ID , Self :: POSITION_TARGET_LOCAL_NED (..) => POSITION_TARGET_LOCAL_NED_DATA :: ID , Self :: LOG_ENTRY (..) => LOG_ENTRY_DATA :: ID , Self :: PARAM_SET (..) => PARAM_SET_DATA :: ID , Self :: AP_ADC (..) => AP_ADC_DATA :: ID , Self :: SET_POSITION_TARGET_LOCAL_NED (..) => SET_POSITION_TARGET_LOCAL_NED_DATA :: ID , Self :: DEVICE_OP_WRITE_REPLY (..) => DEVICE_OP_WRITE_REPLY_DATA :: ID , Self :: MOUNT_STATUS (..) => MOUNT_STATUS_DATA :: ID , Self :: DATA16 (..) => DATA16_DATA :: ID , Self :: SIMSTATE (..) => SIMSTATE_DATA :: ID , Self :: MAG_CAL_REPORT (..) => MAG_CAL_REPORT_DATA :: ID , Self :: SCALED_PRESSURE2 (..) => SCALED_PRESSURE2_DATA :: ID , Self :: CUBEPILOT_FIRMWARE_UPDATE_START (..) => CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: ID , Self :: SET_MODE (..) => SET_MODE_DATA :: ID , Self :: SETUP_SIGNING (..) => SETUP_SIGNING_DATA :: ID , Self :: PARAM_EXT_SET (..) => PARAM_EXT_SET_DATA :: ID , Self :: HOME_POSITION (..) => HOME_POSITION_DATA :: ID , Self :: RAW_RPM (..) => RAW_RPM_DATA :: ID , Self :: ESC_INFO (..) => ESC_INFO_DATA :: ID , Self :: AUTH_KEY (..) => AUTH_KEY_DATA :: ID , Self :: DIGICAM_CONTROL (..) => DIGICAM_CONTROL_DATA :: ID , Self :: GPS2_RTK (..) => GPS2_RTK_DATA :: ID , Self :: TERRAIN_DATA (..) => TERRAIN_DATA_DATA :: ID , Self :: CANFD_FRAME (..) => CANFD_FRAME_DATA :: ID , Self :: SET_ACTUATOR_CONTROL_TARGET (..) => SET_ACTUATOR_CONTROL_TARGET_DATA :: ID , Self :: TIMESYNC (..) => TIMESYNC_DATA :: ID , Self :: COMPASSMOT_STATUS (..) => COMPASSMOT_STATUS_DATA :: ID , Self :: MISSION_REQUEST_INT (..) => MISSION_REQUEST_INT_DATA :: ID , Self :: UAVIONIX_ADSB_OUT_DYNAMIC (..) => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID , Self :: DATA96 (..) => DATA96_DATA :: ID , Self :: CAMERA_TRACKING_GEO_STATUS (..) => CAMERA_TRACKING_GEO_STATUS_DATA :: ID , Self :: LOG_DATA (..) => LOG_DATA_DATA :: ID , Self :: HERELINK_VIDEO_STREAM_INFORMATION (..) => HERELINK_VIDEO_STREAM_INFORMATION_DATA :: ID , Self :: MISSION_REQUEST_PARTIAL_LIST (..) => MISSION_REQUEST_PARTIAL_LIST_DATA :: ID , Self :: MISSION_SET_CURRENT (..) => MISSION_SET_CURRENT_DATA :: ID , Self :: SCALED_PRESSURE (..) => SCALED_PRESSURE_DATA :: ID , Self :: PID_TUNING (..) => PID_TUNING_DATA :: ID , Self :: HIGH_LATENCY (..) => HIGH_LATENCY_DATA :: ID , Self :: PARAM_EXT_REQUEST_LIST (..) => PARAM_EXT_REQUEST_LIST_DATA :: ID , Self :: CAMERA_FOV_STATUS (..) => CAMERA_FOV_STATUS_DATA :: ID , Self :: WINCH_STATUS (..) => WINCH_STATUS_DATA :: ID , Self :: HERELINK_TELEM (..) => HERELINK_TELEM_DATA :: ID , Self :: VIDEO_STREAM_INFORMATION (..) => VIDEO_STREAM_INFORMATION_DATA :: ID , Self :: HIL_OPTICAL_FLOW (..) => HIL_OPTICAL_FLOW_DATA :: ID , Self :: CELLULAR_STATUS (..) => CELLULAR_STATUS_DATA :: ID , Self :: TERRAIN_REPORT (..) => TERRAIN_REPORT_DATA :: ID , Self :: LOG_ERASE (..) => LOG_ERASE_DATA :: ID , Self :: OPEN_DRONE_ID_OPERATOR_ID (..) => OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID , Self :: SET_MAG_OFFSETS (..) => SET_MAG_OFFSETS_DATA :: ID , Self :: GPS2_RAW (..) => GPS2_RAW_DATA :: ID , Self :: CURRENT_EVENT_SEQUENCE (..) => CURRENT_EVENT_SEQUENCE_DATA :: ID , Self :: OPEN_DRONE_ID_SYSTEM (..) => OPEN_DRONE_ID_SYSTEM_DATA :: ID , Self :: AHRS (..) => AHRS_DATA :: ID , Self :: ATTITUDE (..) => ATTITUDE_DATA :: ID , Self :: LOGGING_DATA (..) => LOGGING_DATA_DATA :: ID , Self :: CAMERA_TRIGGER (..) => CAMERA_TRIGGER_DATA :: ID , Self :: AIS_VESSEL (..) => AIS_VESSEL_DATA :: ID , Self :: GLOBAL_VISION_POSITION_ESTIMATE (..) => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID , Self :: MISSION_ITEM_INT (..) => MISSION_ITEM_INT_DATA :: ID , Self :: RAW_PRESSURE (..) => RAW_PRESSURE_DATA :: ID , Self :: TERRAIN_REQUEST (..) => TERRAIN_REQUEST_DATA :: ID , Self :: MANUAL_CONTROL (..) => MANUAL_CONTROL_DATA :: ID , Self :: VIBRATION (..) => VIBRATION_DATA :: ID , Self :: RC_CHANNELS_OVERRIDE (..) => RC_CHANNELS_OVERRIDE_DATA :: ID , Self :: ICAROUS_HEARTBEAT (..) => ICAROUS_HEARTBEAT_DATA :: ID , Self :: GIMBAL_DEVICE_INFORMATION (..) => GIMBAL_DEVICE_INFORMATION_DATA :: ID , Self :: GIMBAL_REPORT (..) => GIMBAL_REPORT_DATA :: ID , Self :: CONTROL_SYSTEM_STATE (..) => CONTROL_SYSTEM_STATE_DATA :: ID , Self :: RESPONSE_EVENT_ERROR (..) => RESPONSE_EVENT_ERROR_DATA :: ID , Self :: GIMBAL_MANAGER_SET_ATTITUDE (..) => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID , Self :: AOA_SSA (..) => AOA_SSA_DATA :: ID , Self :: SCALED_PRESSURE3 (..) => SCALED_PRESSURE3_DATA :: ID , Self :: NAMED_VALUE_INT (..) => NAMED_VALUE_INT_DATA :: ID , Self :: CAMERA_TRACKING_IMAGE_STATUS (..) => CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID , Self :: LINK_NODE_STATUS (..) => LINK_NODE_STATUS_DATA :: ID , Self :: MAG_CAL_PROGRESS (..) => MAG_CAL_PROGRESS_DATA :: ID , Self :: LOG_REQUEST_DATA (..) => LOG_REQUEST_DATA_DATA :: ID , Self :: PARAM_REQUEST_LIST (..) => PARAM_REQUEST_LIST_DATA :: ID , Self :: GPS_RAW_INT (..) => GPS_RAW_INT_DATA :: ID , Self :: AUTOPILOT_VERSION_REQUEST (..) => AUTOPILOT_VERSION_REQUEST_DATA :: ID , Self :: TUNNEL (..) => TUNNEL_DATA :: ID , Self :: OSD_PARAM_SHOW_CONFIG (..) => OSD_PARAM_SHOW_CONFIG_DATA :: ID , Self :: TRAJECTORY_REPRESENTATION_BEZIER (..) => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID , Self :: VISION_SPEED_ESTIMATE (..) => VISION_SPEED_ESTIMATE_DATA :: ID , Self :: OBSTACLE_DISTANCE (..) => OBSTACLE_DISTANCE_DATA :: ID , Self :: SCALED_IMU2 (..) => SCALED_IMU2_DATA :: ID , Self :: MISSION_REQUEST (..) => MISSION_REQUEST_DATA :: ID , Self :: LED_CONTROL (..) => LED_CONTROL_DATA :: ID , Self :: SCALED_IMU3 (..) => SCALED_IMU3_DATA :: ID , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (..) => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID , Self :: COLLISION (..) => COLLISION_DATA :: ID , Self :: MISSION_COUNT (..) => MISSION_COUNT_DATA :: ID , Self :: ATT_POS_MOCAP (..) => ATT_POS_MOCAP_DATA :: ID , Self :: DATA32 (..) => DATA32_DATA :: ID , Self :: PARAM_EXT_VALUE (..) => PARAM_EXT_VALUE_DATA :: ID , Self :: AUTOPILOT_VERSION (..) => AUTOPILOT_VERSION_DATA :: ID , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (..) => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID , Self :: DATA64 (..) => DATA64_DATA :: ID , Self :: ODOMETRY (..) => ODOMETRY_DATA :: ID , Self :: PING (..) => PING_DATA :: ID , Self :: MESSAGE_INTERVAL (..) => MESSAGE_INTERVAL_DATA :: ID , Self :: HIL_ACTUATOR_CONTROLS (..) => HIL_ACTUATOR_CONTROLS_DATA :: ID , Self :: EKF_STATUS_REPORT (..) => EKF_STATUS_REPORT_DATA :: ID , Self :: AHRS3 (..) => AHRS3_DATA :: ID , Self :: HIL_STATE_QUATERNION (..) => HIL_STATE_QUATERNION_DATA :: ID , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (..) => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID , Self :: SET_GPS_GLOBAL_ORIGIN (..) => SET_GPS_GLOBAL_ORIGIN_DATA :: ID , Self :: POSITION_TARGET_GLOBAL_INT (..) => POSITION_TARGET_GLOBAL_INT_DATA :: ID , Self :: ATTITUDE_TARGET (..) => ATTITUDE_TARGET_DATA :: ID , Self :: RADIO (..) => RADIO_DATA :: ID , Self :: PARAM_VALUE (..) => PARAM_VALUE_DATA :: ID , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (..) => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID , Self :: ADSB_VEHICLE (..) => ADSB_VEHICLE_DATA :: ID , Self :: DEVICE_OP_READ (..) => DEVICE_OP_READ_DATA :: ID , Self :: EVENT (..) => EVENT_DATA :: ID , Self :: COMMAND_LONG (..) => COMMAND_LONG_DATA :: ID , Self :: RADIO_STATUS (..) => RADIO_STATUS_DATA :: ID , Self :: MEMORY_VECT (..) => MEMORY_VECT_DATA :: ID , Self :: REQUEST_DATA_STREAM (..) => REQUEST_DATA_STREAM_DATA :: ID , Self :: WIFI_CONFIG_AP (..) => WIFI_CONFIG_AP_DATA :: ID , Self :: ESC_TELEMETRY_9_TO_12 (..) => ESC_TELEMETRY_9_TO_12_DATA :: ID , Self :: HIL_RC_INPUTS_RAW (..) => HIL_RC_INPUTS_RAW_DATA :: ID , Self :: RAW_IMU (..) => RAW_IMU_DATA :: ID , Self :: EFI_STATUS (..) => EFI_STATUS_DATA :: ID , Self :: MISSION_REQUEST_LIST (..) => MISSION_REQUEST_LIST_DATA :: ID , Self :: OPEN_DRONE_ID_AUTHENTICATION (..) => OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (..) => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID , Self :: CAMERA_INFORMATION (..) => CAMERA_INFORMATION_DATA :: ID , Self :: ATTITUDE_QUATERNION (..) => ATTITUDE_QUATERNION_DATA :: ID , Self :: SIM_STATE (..) => SIM_STATE_DATA :: ID , Self :: MOUNT_CONTROL (..) => MOUNT_CONTROL_DATA :: ID , Self :: COMMAND_CANCEL (..) => COMMAND_CANCEL_DATA :: ID , Self :: CAMERA_STATUS (..) => CAMERA_STATUS_DATA :: ID , Self :: DEEPSTALL (..) => DEEPSTALL_DATA :: ID , Self :: COMPONENT_INFORMATION (..) => COMPONENT_INFORMATION_DATA :: ID , Self :: GOPRO_GET_REQUEST (..) => GOPRO_GET_REQUEST_DATA :: ID , Self :: RPM (..) => RPM_DATA :: ID , Self :: CAMERA_IMAGE_CAPTURED (..) => CAMERA_IMAGE_CAPTURED_DATA :: ID , Self :: GLOBAL_POSITION_INT_COV (..) => GLOBAL_POSITION_INT_COV_DATA :: ID , Self :: GPS_INPUT (..) => GPS_INPUT_DATA :: ID , Self :: GIMBAL_CONTROL (..) => GIMBAL_CONTROL_DATA :: ID , Self :: MOUNT_ORIENTATION (..) => MOUNT_ORIENTATION_DATA :: ID , Self :: DEVICE_OP_READ_REPLY (..) => DEVICE_OP_READ_REPLY_DATA :: ID , Self :: RC_CHANNELS_RAW (..) => RC_CHANNELS_RAW_DATA :: ID , Self :: DATA_STREAM (..) => DATA_STREAM_DATA :: ID , Self :: MISSION_CLEAR_ALL (..) => MISSION_CLEAR_ALL_DATA :: ID , Self :: HIL_GPS (..) => HIL_GPS_DATA :: ID , Self :: PARAM_MAP_RC (..) => PARAM_MAP_RC_DATA :: ID , Self :: GIMBAL_DEVICE_SET_ATTITUDE (..) => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID , Self :: CAMERA_SETTINGS (..) => CAMERA_SETTINGS_DATA :: ID , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (..) => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID , Self :: ONBOARD_COMPUTER_STATUS (..) => ONBOARD_COMPUTER_STATUS_DATA :: ID , Self :: HWSTATUS (..) => HWSTATUS_DATA :: ID , Self :: RALLY_FETCH_POINT (..) => RALLY_FETCH_POINT_DATA :: ID , } } fn message_id_from_name (name : & str) -> Result < u32 , & 'static str > { match name { OPEN_DRONE_ID_ARM_STATUS_DATA :: NAME => Ok (OPEN_DRONE_ID_ARM_STATUS_DATA :: ID) , STORAGE_INFORMATION_DATA :: NAME => Ok (STORAGE_INFORMATION_DATA :: ID) , MEMINFO_DATA :: NAME => Ok (MEMINFO_DATA :: ID) , HEARTBEAT_DATA :: NAME => Ok (HEARTBEAT_DATA :: ID) , MCU_STATUS_DATA :: NAME => Ok (MCU_STATUS_DATA :: ID) , ALTITUDE_DATA :: NAME => Ok (ALTITUDE_DATA :: ID) , COMMAND_ACK_DATA :: NAME => Ok (COMMAND_ACK_DATA :: ID) , DEBUG_DATA :: NAME => Ok (DEBUG_DATA :: ID) , PARAM_EXT_ACK_DATA :: NAME => Ok (PARAM_EXT_ACK_DATA :: ID) , REMOTE_LOG_BLOCK_STATUS_DATA :: NAME => Ok (REMOTE_LOG_BLOCK_STATUS_DATA :: ID) , OPTICAL_FLOW_RAD_DATA :: NAME => Ok (OPTICAL_FLOW_RAD_DATA :: ID) , GPS_RTCM_DATA_DATA :: NAME => Ok (GPS_RTCM_DATA_DATA :: ID) , REQUEST_EVENT_DATA :: NAME => Ok (REQUEST_EVENT_DATA :: ID) , LOCAL_POSITION_NED_COV_DATA :: NAME => Ok (LOCAL_POSITION_NED_COV_DATA :: ID) , VISION_POSITION_DELTA_DATA :: NAME => Ok (VISION_POSITION_DELTA_DATA :: ID) , PLAY_TUNE_DATA :: NAME => Ok (PLAY_TUNE_DATA :: ID) , OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: NAME => Ok (OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: ID) , CELLULAR_CONFIG_DATA :: NAME => Ok (CELLULAR_CONFIG_DATA :: ID) , SET_ATTITUDE_TARGET_DATA :: NAME => Ok (SET_ATTITUDE_TARGET_DATA :: ID) , GPS_GLOBAL_ORIGIN_DATA :: NAME => Ok (GPS_GLOBAL_ORIGIN_DATA :: ID) , DISTANCE_SENSOR_DATA :: NAME => Ok (DISTANCE_SENSOR_DATA :: ID) , EXTENDED_SYS_STATE_DATA :: NAME => Ok (EXTENDED_SYS_STATE_DATA :: ID) , LANDING_TARGET_DATA :: NAME => Ok (LANDING_TARGET_DATA :: ID) , NAV_CONTROLLER_OUTPUT_DATA :: NAME => Ok (NAV_CONTROLLER_OUTPUT_DATA :: ID) , NAMED_VALUE_FLOAT_DATA :: NAME => Ok (NAMED_VALUE_FLOAT_DATA :: ID) , ESTIMATOR_STATUS_DATA :: NAME => Ok (ESTIMATOR_STATUS_DATA :: ID) , SET_HOME_POSITION_DATA :: NAME => Ok (SET_HOME_POSITION_DATA :: ID) , UAVIONIX_ADSB_OUT_CFG_DATA :: NAME => Ok (UAVIONIX_ADSB_OUT_CFG_DATA :: ID) , MOUNT_CONFIGURE_DATA :: NAME => Ok (MOUNT_CONFIGURE_DATA :: ID) , PARAM_EXT_REQUEST_READ_DATA :: NAME => Ok (PARAM_EXT_REQUEST_READ_DATA :: ID) , CAMERA_FEEDBACK_DATA :: NAME => Ok (CAMERA_FEEDBACK_DATA :: ID) , SERIAL_CONTROL_DATA :: NAME => Ok (SERIAL_CONTROL_DATA :: ID) , CAMERA_CAPTURE_STATUS_DATA :: NAME => Ok (CAMERA_CAPTURE_STATUS_DATA :: ID) , V2_EXTENSION_DATA :: NAME => Ok (V2_EXTENSION_DATA :: ID) , COMPONENT_METADATA_DATA :: NAME => Ok (COMPONENT_METADATA_DATA :: ID) , DIGICAM_CONFIGURE_DATA :: NAME => Ok (DIGICAM_CONFIGURE_DATA :: ID) , BUTTON_CHANGE_DATA :: NAME => Ok (BUTTON_CHANGE_DATA :: ID) , STATUSTEXT_DATA :: NAME => Ok (STATUSTEXT_DATA :: ID) , CAN_FRAME_DATA :: NAME => Ok (CAN_FRAME_DATA :: ID) , ISBD_LINK_STATUS_DATA :: NAME => Ok (ISBD_LINK_STATUS_DATA :: ID) , SENSOR_OFFSETS_DATA :: NAME => Ok (SENSOR_OFFSETS_DATA :: ID) , BATTERY2_DATA :: NAME => Ok (BATTERY2_DATA :: ID) , SCALED_IMU_DATA :: NAME => Ok (SCALED_IMU_DATA :: ID) , VIDEO_STREAM_STATUS_DATA :: NAME => Ok (VIDEO_STREAM_STATUS_DATA :: ID) , BATTERY_STATUS_DATA :: NAME => Ok (BATTERY_STATUS_DATA :: ID) , DEVICE_OP_WRITE_DATA :: NAME => Ok (DEVICE_OP_WRITE_DATA :: ID) , HIGHRES_IMU_DATA :: NAME => Ok (HIGHRES_IMU_DATA :: ID) , GOPRO_HEARTBEAT_DATA :: NAME => Ok (GOPRO_HEARTBEAT_DATA :: ID) , WATER_DEPTH_DATA :: NAME => Ok (WATER_DEPTH_DATA :: ID) , HIL_SENSOR_DATA :: NAME => Ok (HIL_SENSOR_DATA :: ID) , POWER_STATUS_DATA :: NAME => Ok (POWER_STATUS_DATA :: ID) , SYS_STATUS_DATA :: NAME => Ok (SYS_STATUS_DATA :: ID) , CAN_FILTER_MODIFY_DATA :: NAME => Ok (CAN_FILTER_MODIFY_DATA :: ID) , RC_CHANNELS_SCALED_DATA :: NAME => Ok (RC_CHANNELS_SCALED_DATA :: ID) , OPEN_DRONE_ID_SELF_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_SELF_ID_DATA :: ID) , PARAM_REQUEST_READ_DATA :: NAME => Ok (PARAM_REQUEST_READ_DATA :: ID) , PLAY_TUNE_V2_DATA :: NAME => Ok (PLAY_TUNE_V2_DATA :: ID) , TERRAIN_CHECK_DATA :: NAME => Ok (TERRAIN_CHECK_DATA :: ID) , GPS_RTK_DATA :: NAME => Ok (GPS_RTK_DATA :: ID) , FOLLOW_TARGET_DATA :: NAME => Ok (FOLLOW_TARGET_DATA :: ID) , WIND_DATA :: NAME => Ok (WIND_DATA :: ID) , MISSION_CURRENT_DATA :: NAME => Ok (MISSION_CURRENT_DATA :: ID) , GIMBAL_TORQUE_CMD_REPORT_DATA :: NAME => Ok (GIMBAL_TORQUE_CMD_REPORT_DATA :: ID) , GOPRO_SET_RESPONSE_DATA :: NAME => Ok (GOPRO_SET_RESPONSE_DATA :: ID) , GPS_INJECT_DATA_DATA :: NAME => Ok (GPS_INJECT_DATA_DATA :: ID) , SMART_BATTERY_INFO_DATA :: NAME => Ok (SMART_BATTERY_INFO_DATA :: ID) , ACTUATOR_CONTROL_TARGET_DATA :: NAME => Ok (ACTUATOR_CONTROL_TARGET_DATA :: ID) , CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: NAME => Ok (CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: ID) , DATA_TRANSMISSION_HANDSHAKE_DATA :: NAME => Ok (DATA_TRANSMISSION_HANDSHAKE_DATA :: ID) , HYGROMETER_SENSOR_DATA :: NAME => Ok (HYGROMETER_SENSOR_DATA :: ID) , SYSTEM_TIME_DATA :: NAME => Ok (SYSTEM_TIME_DATA :: ID) , LOG_REQUEST_END_DATA :: NAME => Ok (LOG_REQUEST_END_DATA :: ID) , PROTOCOL_VERSION_DATA :: NAME => Ok (PROTOCOL_VERSION_DATA :: ID) , AIRSPEED_AUTOCAL_DATA :: NAME => Ok (AIRSPEED_AUTOCAL_DATA :: ID) , GLOBAL_POSITION_INT_DATA :: NAME => Ok (GLOBAL_POSITION_INT_DATA :: ID) , ENCAPSULATED_DATA_DATA :: NAME => Ok (ENCAPSULATED_DATA_DATA :: ID) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: NAME => Ok (UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID) , GOPRO_SET_REQUEST_DATA :: NAME => Ok (GOPRO_SET_REQUEST_DATA :: ID) , LOG_REQUEST_LIST_DATA :: NAME => Ok (LOG_REQUEST_LIST_DATA :: ID) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: NAME => Ok (OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID) , GIMBAL_MANAGER_INFORMATION_DATA :: NAME => Ok (GIMBAL_MANAGER_INFORMATION_DATA :: ID) , DEBUG_VECT_DATA :: NAME => Ok (DEBUG_VECT_DATA :: ID) , RC_CHANNELS_DATA :: NAME => Ok (RC_CHANNELS_DATA :: ID) , SAFETY_ALLOWED_AREA_DATA :: NAME => Ok (SAFETY_ALLOWED_AREA_DATA :: ID) , SAFETY_SET_ALLOWED_AREA_DATA :: NAME => Ok (SAFETY_SET_ALLOWED_AREA_DATA :: ID) , MISSION_ACK_DATA :: NAME => Ok (MISSION_ACK_DATA :: ID) , UTM_GLOBAL_POSITION_DATA :: NAME => Ok (UTM_GLOBAL_POSITION_DATA :: ID) , FLIGHT_INFORMATION_DATA :: NAME => Ok (FLIGHT_INFORMATION_DATA :: ID) , ESC_TELEMETRY_1_TO_4_DATA :: NAME => Ok (ESC_TELEMETRY_1_TO_4_DATA :: ID) , LOGGING_ACK_DATA :: NAME => Ok (LOGGING_ACK_DATA :: ID) , OPEN_DRONE_ID_LOCATION_DATA :: NAME => Ok (OPEN_DRONE_ID_LOCATION_DATA :: ID) , HIGH_LATENCY2_DATA :: NAME => Ok (HIGH_LATENCY2_DATA :: ID) , TIME_ESTIMATE_TO_TARGET_DATA :: NAME => Ok (TIME_ESTIMATE_TO_TARGET_DATA :: ID) , ICAROUS_KINEMATIC_BANDS_DATA :: NAME => Ok (ICAROUS_KINEMATIC_BANDS_DATA :: ID) , FENCE_FETCH_POINT_DATA :: NAME => Ok (FENCE_FETCH_POINT_DATA :: ID) , HIL_STATE_DATA :: NAME => Ok (HIL_STATE_DATA :: ID) , DEBUG_FLOAT_ARRAY_DATA :: NAME => Ok (DEBUG_FLOAT_ARRAY_DATA :: ID) , CUBEPILOT_RAW_RC_DATA :: NAME => Ok (CUBEPILOT_RAW_RC_DATA :: ID) , ORBIT_EXECUTION_STATUS_DATA :: NAME => Ok (ORBIT_EXECUTION_STATUS_DATA :: ID) , OPEN_DRONE_ID_BASIC_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_BASIC_ID_DATA :: ID) , VFR_HUD_DATA :: NAME => Ok (VFR_HUD_DATA :: ID) , OSD_PARAM_CONFIG_REPLY_DATA :: NAME => Ok (OSD_PARAM_CONFIG_REPLY_DATA :: ID) , LIMITS_STATUS_DATA :: NAME => Ok (LIMITS_STATUS_DATA :: ID) , UAVCAN_NODE_STATUS_DATA :: NAME => Ok (UAVCAN_NODE_STATUS_DATA :: ID) , RESOURCE_REQUEST_DATA :: NAME => Ok (RESOURCE_REQUEST_DATA :: ID) , MISSION_ITEM_REACHED_DATA :: NAME => Ok (MISSION_ITEM_REACHED_DATA :: ID) , GOPRO_GET_RESPONSE_DATA :: NAME => Ok (GOPRO_GET_RESPONSE_DATA :: ID) , GENERATOR_STATUS_DATA :: NAME => Ok (GENERATOR_STATUS_DATA :: ID) , HIL_CONTROLS_DATA :: NAME => Ok (HIL_CONTROLS_DATA :: ID) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: NAME => Ok (CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID) , LOGGING_DATA_ACKED_DATA :: NAME => Ok (LOGGING_DATA_ACKED_DATA :: ID) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: NAME => Ok (SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID) , UAVCAN_NODE_INFO_DATA :: NAME => Ok (UAVCAN_NODE_INFO_DATA :: ID) , SUPPORTED_TUNES_DATA :: NAME => Ok (SUPPORTED_TUNES_DATA :: ID) , CHANGE_OPERATOR_CONTROL_DATA :: NAME => Ok (CHANGE_OPERATOR_CONTROL_DATA :: ID) , LOCAL_POSITION_NED_DATA :: NAME => Ok (LOCAL_POSITION_NED_DATA :: ID) , COMMAND_INT_DATA :: NAME => Ok (COMMAND_INT_DATA :: ID) , FENCE_STATUS_DATA :: NAME => Ok (FENCE_STATUS_DATA :: ID) , ADAP_TUNING_DATA :: NAME => Ok (ADAP_TUNING_DATA :: ID) , VICON_POSITION_ESTIMATE_DATA :: NAME => Ok (VICON_POSITION_ESTIMATE_DATA :: ID) , MISSION_WRITE_PARTIAL_LIST_DATA :: NAME => Ok (MISSION_WRITE_PARTIAL_LIST_DATA :: ID) , RALLY_POINT_DATA :: NAME => Ok (RALLY_POINT_DATA :: ID) , GPS_STATUS_DATA :: NAME => Ok (GPS_STATUS_DATA :: ID) , OSD_PARAM_CONFIG_DATA :: NAME => Ok (OSD_PARAM_CONFIG_DATA :: ID) , AHRS2_DATA :: NAME => Ok (AHRS2_DATA :: ID) , ATTITUDE_QUATERNION_COV_DATA :: NAME => Ok (ATTITUDE_QUATERNION_COV_DATA :: ID) , OBSTACLE_DISTANCE_3D_DATA :: NAME => Ok (OBSTACLE_DISTANCE_3D_DATA :: ID) , VISION_POSITION_ESTIMATE_DATA :: NAME => Ok (VISION_POSITION_ESTIMATE_DATA :: ID) , GIMBAL_MANAGER_STATUS_DATA :: NAME => Ok (GIMBAL_MANAGER_STATUS_DATA :: ID) , ACTUATOR_OUTPUT_STATUS_DATA :: NAME => Ok (ACTUATOR_OUTPUT_STATUS_DATA :: ID) , ESC_STATUS_DATA :: NAME => Ok (ESC_STATUS_DATA :: ID) , RANGEFINDER_DATA :: NAME => Ok (RANGEFINDER_DATA :: ID) , REMOTE_LOG_DATA_BLOCK_DATA :: NAME => Ok (REMOTE_LOG_DATA_BLOCK_DATA :: ID) , FENCE_POINT_DATA :: NAME => Ok (FENCE_POINT_DATA :: ID) , ESC_TELEMETRY_5_TO_8_DATA :: NAME => Ok (ESC_TELEMETRY_5_TO_8_DATA :: ID) , WIND_COV_DATA :: NAME => Ok (WIND_COV_DATA :: ID) , FILE_TRANSFER_PROTOCOL_DATA :: NAME => Ok (FILE_TRANSFER_PROTOCOL_DATA :: ID) , MISSION_ITEM_DATA :: NAME => Ok (MISSION_ITEM_DATA :: ID) , MANUAL_SETPOINT_DATA :: NAME => Ok (MANUAL_SETPOINT_DATA :: ID) , OPTICAL_FLOW_DATA :: NAME => Ok (OPTICAL_FLOW_DATA :: ID) , WHEEL_DISTANCE_DATA :: NAME => Ok (WHEEL_DISTANCE_DATA :: ID) , SERVO_OUTPUT_RAW_DATA :: NAME => Ok (SERVO_OUTPUT_RAW_DATA :: ID) , POSITION_TARGET_LOCAL_NED_DATA :: NAME => Ok (POSITION_TARGET_LOCAL_NED_DATA :: ID) , LOG_ENTRY_DATA :: NAME => Ok (LOG_ENTRY_DATA :: ID) , PARAM_SET_DATA :: NAME => Ok (PARAM_SET_DATA :: ID) , AP_ADC_DATA :: NAME => Ok (AP_ADC_DATA :: ID) , SET_POSITION_TARGET_LOCAL_NED_DATA :: NAME => Ok (SET_POSITION_TARGET_LOCAL_NED_DATA :: ID) , DEVICE_OP_WRITE_REPLY_DATA :: NAME => Ok (DEVICE_OP_WRITE_REPLY_DATA :: ID) , MOUNT_STATUS_DATA :: NAME => Ok (MOUNT_STATUS_DATA :: ID) , DATA16_DATA :: NAME => Ok (DATA16_DATA :: ID) , SIMSTATE_DATA :: NAME => Ok (SIMSTATE_DATA :: ID) , MAG_CAL_REPORT_DATA :: NAME => Ok (MAG_CAL_REPORT_DATA :: ID) , SCALED_PRESSURE2_DATA :: NAME => Ok (SCALED_PRESSURE2_DATA :: ID) , CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: NAME => Ok (CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: ID) , SET_MODE_DATA :: NAME => Ok (SET_MODE_DATA :: ID) , SETUP_SIGNING_DATA :: NAME => Ok (SETUP_SIGNING_DATA :: ID) , PARAM_EXT_SET_DATA :: NAME => Ok (PARAM_EXT_SET_DATA :: ID) , HOME_POSITION_DATA :: NAME => Ok (HOME_POSITION_DATA :: ID) , RAW_RPM_DATA :: NAME => Ok (RAW_RPM_DATA :: ID) , ESC_INFO_DATA :: NAME => Ok (ESC_INFO_DATA :: ID) , AUTH_KEY_DATA :: NAME => Ok (AUTH_KEY_DATA :: ID) , DIGICAM_CONTROL_DATA :: NAME => Ok (DIGICAM_CONTROL_DATA :: ID) , GPS2_RTK_DATA :: NAME => Ok (GPS2_RTK_DATA :: ID) , TERRAIN_DATA_DATA :: NAME => Ok (TERRAIN_DATA_DATA :: ID) , CANFD_FRAME_DATA :: NAME => Ok (CANFD_FRAME_DATA :: ID) , SET_ACTUATOR_CONTROL_TARGET_DATA :: NAME => Ok (SET_ACTUATOR_CONTROL_TARGET_DATA :: ID) , TIMESYNC_DATA :: NAME => Ok (TIMESYNC_DATA :: ID) , COMPASSMOT_STATUS_DATA :: NAME => Ok (COMPASSMOT_STATUS_DATA :: ID) , MISSION_REQUEST_INT_DATA :: NAME => Ok (MISSION_REQUEST_INT_DATA :: ID) , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: NAME => Ok (UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID) , DATA96_DATA :: NAME => Ok (DATA96_DATA :: ID) , CAMERA_TRACKING_GEO_STATUS_DATA :: NAME => Ok (CAMERA_TRACKING_GEO_STATUS_DATA :: ID) , LOG_DATA_DATA :: NAME => Ok (LOG_DATA_DATA :: ID) , HERELINK_VIDEO_STREAM_INFORMATION_DATA :: NAME => Ok (HERELINK_VIDEO_STREAM_INFORMATION_DATA :: ID) , MISSION_REQUEST_PARTIAL_LIST_DATA :: NAME => Ok (MISSION_REQUEST_PARTIAL_LIST_DATA :: ID) , MISSION_SET_CURRENT_DATA :: NAME => Ok (MISSION_SET_CURRENT_DATA :: ID) , SCALED_PRESSURE_DATA :: NAME => Ok (SCALED_PRESSURE_DATA :: ID) , PID_TUNING_DATA :: NAME => Ok (PID_TUNING_DATA :: ID) , HIGH_LATENCY_DATA :: NAME => Ok (HIGH_LATENCY_DATA :: ID) , PARAM_EXT_REQUEST_LIST_DATA :: NAME => Ok (PARAM_EXT_REQUEST_LIST_DATA :: ID) , CAMERA_FOV_STATUS_DATA :: NAME => Ok (CAMERA_FOV_STATUS_DATA :: ID) , WINCH_STATUS_DATA :: NAME => Ok (WINCH_STATUS_DATA :: ID) , HERELINK_TELEM_DATA :: NAME => Ok (HERELINK_TELEM_DATA :: ID) , VIDEO_STREAM_INFORMATION_DATA :: NAME => Ok (VIDEO_STREAM_INFORMATION_DATA :: ID) , HIL_OPTICAL_FLOW_DATA :: NAME => Ok (HIL_OPTICAL_FLOW_DATA :: ID) , CELLULAR_STATUS_DATA :: NAME => Ok (CELLULAR_STATUS_DATA :: ID) , TERRAIN_REPORT_DATA :: NAME => Ok (TERRAIN_REPORT_DATA :: ID) , LOG_ERASE_DATA :: NAME => Ok (LOG_ERASE_DATA :: ID) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID) , SET_MAG_OFFSETS_DATA :: NAME => Ok (SET_MAG_OFFSETS_DATA :: ID) , GPS2_RAW_DATA :: NAME => Ok (GPS2_RAW_DATA :: ID) , CURRENT_EVENT_SEQUENCE_DATA :: NAME => Ok (CURRENT_EVENT_SEQUENCE_DATA :: ID) , OPEN_DRONE_ID_SYSTEM_DATA :: NAME => Ok (OPEN_DRONE_ID_SYSTEM_DATA :: ID) , AHRS_DATA :: NAME => Ok (AHRS_DATA :: ID) , ATTITUDE_DATA :: NAME => Ok (ATTITUDE_DATA :: ID) , LOGGING_DATA_DATA :: NAME => Ok (LOGGING_DATA_DATA :: ID) , CAMERA_TRIGGER_DATA :: NAME => Ok (CAMERA_TRIGGER_DATA :: ID) , AIS_VESSEL_DATA :: NAME => Ok (AIS_VESSEL_DATA :: ID) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: NAME => Ok (GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID) , MISSION_ITEM_INT_DATA :: NAME => Ok (MISSION_ITEM_INT_DATA :: ID) , RAW_PRESSURE_DATA :: NAME => Ok (RAW_PRESSURE_DATA :: ID) , TERRAIN_REQUEST_DATA :: NAME => Ok (TERRAIN_REQUEST_DATA :: ID) , MANUAL_CONTROL_DATA :: NAME => Ok (MANUAL_CONTROL_DATA :: ID) , VIBRATION_DATA :: NAME => Ok (VIBRATION_DATA :: ID) , RC_CHANNELS_OVERRIDE_DATA :: NAME => Ok (RC_CHANNELS_OVERRIDE_DATA :: ID) , ICAROUS_HEARTBEAT_DATA :: NAME => Ok (ICAROUS_HEARTBEAT_DATA :: ID) , GIMBAL_DEVICE_INFORMATION_DATA :: NAME => Ok (GIMBAL_DEVICE_INFORMATION_DATA :: ID) , GIMBAL_REPORT_DATA :: NAME => Ok (GIMBAL_REPORT_DATA :: ID) , CONTROL_SYSTEM_STATE_DATA :: NAME => Ok (CONTROL_SYSTEM_STATE_DATA :: ID) , RESPONSE_EVENT_ERROR_DATA :: NAME => Ok (RESPONSE_EVENT_ERROR_DATA :: ID) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID) , AOA_SSA_DATA :: NAME => Ok (AOA_SSA_DATA :: ID) , SCALED_PRESSURE3_DATA :: NAME => Ok (SCALED_PRESSURE3_DATA :: ID) , NAMED_VALUE_INT_DATA :: NAME => Ok (NAMED_VALUE_INT_DATA :: ID) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: NAME => Ok (CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID) , LINK_NODE_STATUS_DATA :: NAME => Ok (LINK_NODE_STATUS_DATA :: ID) , MAG_CAL_PROGRESS_DATA :: NAME => Ok (MAG_CAL_PROGRESS_DATA :: ID) , LOG_REQUEST_DATA_DATA :: NAME => Ok (LOG_REQUEST_DATA_DATA :: ID) , PARAM_REQUEST_LIST_DATA :: NAME => Ok (PARAM_REQUEST_LIST_DATA :: ID) , GPS_RAW_INT_DATA :: NAME => Ok (GPS_RAW_INT_DATA :: ID) , AUTOPILOT_VERSION_REQUEST_DATA :: NAME => Ok (AUTOPILOT_VERSION_REQUEST_DATA :: ID) , TUNNEL_DATA :: NAME => Ok (TUNNEL_DATA :: ID) , OSD_PARAM_SHOW_CONFIG_DATA :: NAME => Ok (OSD_PARAM_SHOW_CONFIG_DATA :: ID) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: NAME => Ok (TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID) , VISION_SPEED_ESTIMATE_DATA :: NAME => Ok (VISION_SPEED_ESTIMATE_DATA :: ID) , OBSTACLE_DISTANCE_DATA :: NAME => Ok (OBSTACLE_DISTANCE_DATA :: ID) , SCALED_IMU2_DATA :: NAME => Ok (SCALED_IMU2_DATA :: ID) , MISSION_REQUEST_DATA :: NAME => Ok (MISSION_REQUEST_DATA :: ID) , LED_CONTROL_DATA :: NAME => Ok (LED_CONTROL_DATA :: ID) , SCALED_IMU3_DATA :: NAME => Ok (SCALED_IMU3_DATA :: ID) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: NAME => Ok (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID) , COLLISION_DATA :: NAME => Ok (COLLISION_DATA :: ID) , MISSION_COUNT_DATA :: NAME => Ok (MISSION_COUNT_DATA :: ID) , ATT_POS_MOCAP_DATA :: NAME => Ok (ATT_POS_MOCAP_DATA :: ID) , DATA32_DATA :: NAME => Ok (DATA32_DATA :: ID) , PARAM_EXT_VALUE_DATA :: NAME => Ok (PARAM_EXT_VALUE_DATA :: ID) , AUTOPILOT_VERSION_DATA :: NAME => Ok (AUTOPILOT_VERSION_DATA :: ID) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID) , DATA64_DATA :: NAME => Ok (DATA64_DATA :: ID) , ODOMETRY_DATA :: NAME => Ok (ODOMETRY_DATA :: ID) , PING_DATA :: NAME => Ok (PING_DATA :: ID) , MESSAGE_INTERVAL_DATA :: NAME => Ok (MESSAGE_INTERVAL_DATA :: ID) , HIL_ACTUATOR_CONTROLS_DATA :: NAME => Ok (HIL_ACTUATOR_CONTROLS_DATA :: ID) , EKF_STATUS_REPORT_DATA :: NAME => Ok (EKF_STATUS_REPORT_DATA :: ID) , AHRS3_DATA :: NAME => Ok (AHRS3_DATA :: ID) , HIL_STATE_QUATERNION_DATA :: NAME => Ok (HIL_STATE_QUATERNION_DATA :: ID) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: NAME => Ok (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID) , SET_GPS_GLOBAL_ORIGIN_DATA :: NAME => Ok (SET_GPS_GLOBAL_ORIGIN_DATA :: ID) , POSITION_TARGET_GLOBAL_INT_DATA :: NAME => Ok (POSITION_TARGET_GLOBAL_INT_DATA :: ID) , ATTITUDE_TARGET_DATA :: NAME => Ok (ATTITUDE_TARGET_DATA :: ID) , RADIO_DATA :: NAME => Ok (RADIO_DATA :: ID) , PARAM_VALUE_DATA :: NAME => Ok (PARAM_VALUE_DATA :: ID) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: NAME => Ok (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID) , ADSB_VEHICLE_DATA :: NAME => Ok (ADSB_VEHICLE_DATA :: ID) , DEVICE_OP_READ_DATA :: NAME => Ok (DEVICE_OP_READ_DATA :: ID) , EVENT_DATA :: NAME => Ok (EVENT_DATA :: ID) , COMMAND_LONG_DATA :: NAME => Ok (COMMAND_LONG_DATA :: ID) , RADIO_STATUS_DATA :: NAME => Ok (RADIO_STATUS_DATA :: ID) , MEMORY_VECT_DATA :: NAME => Ok (MEMORY_VECT_DATA :: ID) , REQUEST_DATA_STREAM_DATA :: NAME => Ok (REQUEST_DATA_STREAM_DATA :: ID) , WIFI_CONFIG_AP_DATA :: NAME => Ok (WIFI_CONFIG_AP_DATA :: ID) , ESC_TELEMETRY_9_TO_12_DATA :: NAME => Ok (ESC_TELEMETRY_9_TO_12_DATA :: ID) , HIL_RC_INPUTS_RAW_DATA :: NAME => Ok (HIL_RC_INPUTS_RAW_DATA :: ID) , RAW_IMU_DATA :: NAME => Ok (RAW_IMU_DATA :: ID) , EFI_STATUS_DATA :: NAME => Ok (EFI_STATUS_DATA :: ID) , MISSION_REQUEST_LIST_DATA :: NAME => Ok (MISSION_REQUEST_LIST_DATA :: ID) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: NAME => Ok (OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: NAME => Ok (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID) , CAMERA_INFORMATION_DATA :: NAME => Ok (CAMERA_INFORMATION_DATA :: ID) , ATTITUDE_QUATERNION_DATA :: NAME => Ok (ATTITUDE_QUATERNION_DATA :: ID) , SIM_STATE_DATA :: NAME => Ok (SIM_STATE_DATA :: ID) , MOUNT_CONTROL_DATA :: NAME => Ok (MOUNT_CONTROL_DATA :: ID) , COMMAND_CANCEL_DATA :: NAME => Ok (COMMAND_CANCEL_DATA :: ID) , CAMERA_STATUS_DATA :: NAME => Ok (CAMERA_STATUS_DATA :: ID) , DEEPSTALL_DATA :: NAME => Ok (DEEPSTALL_DATA :: ID) , COMPONENT_INFORMATION_DATA :: NAME => Ok (COMPONENT_INFORMATION_DATA :: ID) , GOPRO_GET_REQUEST_DATA :: NAME => Ok (GOPRO_GET_REQUEST_DATA :: ID) , RPM_DATA :: NAME => Ok (RPM_DATA :: ID) , CAMERA_IMAGE_CAPTURED_DATA :: NAME => Ok (CAMERA_IMAGE_CAPTURED_DATA :: ID) , GLOBAL_POSITION_INT_COV_DATA :: NAME => Ok (GLOBAL_POSITION_INT_COV_DATA :: ID) , GPS_INPUT_DATA :: NAME => Ok (GPS_INPUT_DATA :: ID) , GIMBAL_CONTROL_DATA :: NAME => Ok (GIMBAL_CONTROL_DATA :: ID) , MOUNT_ORIENTATION_DATA :: NAME => Ok (MOUNT_ORIENTATION_DATA :: ID) , DEVICE_OP_READ_REPLY_DATA :: NAME => Ok (DEVICE_OP_READ_REPLY_DATA :: ID) , RC_CHANNELS_RAW_DATA :: NAME => Ok (RC_CHANNELS_RAW_DATA :: ID) , DATA_STREAM_DATA :: NAME => Ok (DATA_STREAM_DATA :: ID) , MISSION_CLEAR_ALL_DATA :: NAME => Ok (MISSION_CLEAR_ALL_DATA :: ID) , HIL_GPS_DATA :: NAME => Ok (HIL_GPS_DATA :: ID) , PARAM_MAP_RC_DATA :: NAME => Ok (PARAM_MAP_RC_DATA :: ID) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: NAME => Ok (GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID) , CAMERA_SETTINGS_DATA :: NAME => Ok (CAMERA_SETTINGS_DATA :: ID) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: NAME => Ok (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID) , ONBOARD_COMPUTER_STATUS_DATA :: NAME => Ok (ONBOARD_COMPUTER_STATUS_DATA :: ID) , HWSTATUS_DATA :: NAME => Ok (HWSTATUS_DATA :: ID) , RALLY_FETCH_POINT_DATA :: NAME => Ok (RALLY_FETCH_POINT_DATA :: ID) , _ => { Err ("Invalid message name.") } } } fn default_message_from_id (id : u32) -> Result < Self , & 'static str > { match id { OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_ARM_STATUS (OPEN_DRONE_ID_ARM_STATUS_DATA :: default ())) , STORAGE_INFORMATION_DATA :: ID => Ok (Self :: STORAGE_INFORMATION (STORAGE_INFORMATION_DATA :: default ())) , MEMINFO_DATA :: ID => Ok (Self :: MEMINFO (MEMINFO_DATA :: default ())) , HEARTBEAT_DATA :: ID => Ok (Self :: HEARTBEAT (HEARTBEAT_DATA :: default ())) , MCU_STATUS_DATA :: ID => Ok (Self :: MCU_STATUS (MCU_STATUS_DATA :: default ())) , ALTITUDE_DATA :: ID => Ok (Self :: ALTITUDE (ALTITUDE_DATA :: default ())) , COMMAND_ACK_DATA :: ID => Ok (Self :: COMMAND_ACK (COMMAND_ACK_DATA :: default ())) , DEBUG_DATA :: ID => Ok (Self :: DEBUG (DEBUG_DATA :: default ())) , PARAM_EXT_ACK_DATA :: ID => Ok (Self :: PARAM_EXT_ACK (PARAM_EXT_ACK_DATA :: default ())) , REMOTE_LOG_BLOCK_STATUS_DATA :: ID => Ok (Self :: REMOTE_LOG_BLOCK_STATUS (REMOTE_LOG_BLOCK_STATUS_DATA :: default ())) , OPTICAL_FLOW_RAD_DATA :: ID => Ok (Self :: OPTICAL_FLOW_RAD (OPTICAL_FLOW_RAD_DATA :: default ())) , GPS_RTCM_DATA_DATA :: ID => Ok (Self :: GPS_RTCM_DATA (GPS_RTCM_DATA_DATA :: default ())) , REQUEST_EVENT_DATA :: ID => Ok (Self :: REQUEST_EVENT (REQUEST_EVENT_DATA :: default ())) , LOCAL_POSITION_NED_COV_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED_COV (LOCAL_POSITION_NED_COV_DATA :: default ())) , VISION_POSITION_DELTA_DATA :: ID => Ok (Self :: VISION_POSITION_DELTA (VISION_POSITION_DELTA_DATA :: default ())) , PLAY_TUNE_DATA :: ID => Ok (Self :: PLAY_TUNE (PLAY_TUNE_DATA :: default ())) , OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: ID => Ok (Self :: OSD_PARAM_SHOW_CONFIG_REPLY (OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: default ())) , CELLULAR_CONFIG_DATA :: ID => Ok (Self :: CELLULAR_CONFIG (CELLULAR_CONFIG_DATA :: default ())) , SET_ATTITUDE_TARGET_DATA :: ID => Ok (Self :: SET_ATTITUDE_TARGET (SET_ATTITUDE_TARGET_DATA :: default ())) , GPS_GLOBAL_ORIGIN_DATA :: ID => Ok (Self :: GPS_GLOBAL_ORIGIN (GPS_GLOBAL_ORIGIN_DATA :: default ())) , DISTANCE_SENSOR_DATA :: ID => Ok (Self :: DISTANCE_SENSOR (DISTANCE_SENSOR_DATA :: default ())) , EXTENDED_SYS_STATE_DATA :: ID => Ok (Self :: EXTENDED_SYS_STATE (EXTENDED_SYS_STATE_DATA :: default ())) , LANDING_TARGET_DATA :: ID => Ok (Self :: LANDING_TARGET (LANDING_TARGET_DATA :: default ())) , NAV_CONTROLLER_OUTPUT_DATA :: ID => Ok (Self :: NAV_CONTROLLER_OUTPUT (NAV_CONTROLLER_OUTPUT_DATA :: default ())) , NAMED_VALUE_FLOAT_DATA :: ID => Ok (Self :: NAMED_VALUE_FLOAT (NAMED_VALUE_FLOAT_DATA :: default ())) , ESTIMATOR_STATUS_DATA :: ID => Ok (Self :: ESTIMATOR_STATUS (ESTIMATOR_STATUS_DATA :: default ())) , SET_HOME_POSITION_DATA :: ID => Ok (Self :: SET_HOME_POSITION (SET_HOME_POSITION_DATA :: default ())) , UAVIONIX_ADSB_OUT_CFG_DATA :: ID => Ok (Self :: UAVIONIX_ADSB_OUT_CFG (UAVIONIX_ADSB_OUT_CFG_DATA :: default ())) , MOUNT_CONFIGURE_DATA :: ID => Ok (Self :: MOUNT_CONFIGURE (MOUNT_CONFIGURE_DATA :: default ())) , PARAM_EXT_REQUEST_READ_DATA :: ID => Ok (Self :: PARAM_EXT_REQUEST_READ (PARAM_EXT_REQUEST_READ_DATA :: default ())) , CAMERA_FEEDBACK_DATA :: ID => Ok (Self :: CAMERA_FEEDBACK (CAMERA_FEEDBACK_DATA :: default ())) , SERIAL_CONTROL_DATA :: ID => Ok (Self :: SERIAL_CONTROL (SERIAL_CONTROL_DATA :: default ())) , CAMERA_CAPTURE_STATUS_DATA :: ID => Ok (Self :: CAMERA_CAPTURE_STATUS (CAMERA_CAPTURE_STATUS_DATA :: default ())) , V2_EXTENSION_DATA :: ID => Ok (Self :: V2_EXTENSION (V2_EXTENSION_DATA :: default ())) , COMPONENT_METADATA_DATA :: ID => Ok (Self :: COMPONENT_METADATA (COMPONENT_METADATA_DATA :: default ())) , DIGICAM_CONFIGURE_DATA :: ID => Ok (Self :: DIGICAM_CONFIGURE (DIGICAM_CONFIGURE_DATA :: default ())) , BUTTON_CHANGE_DATA :: ID => Ok (Self :: BUTTON_CHANGE (BUTTON_CHANGE_DATA :: default ())) , STATUSTEXT_DATA :: ID => Ok (Self :: STATUSTEXT (STATUSTEXT_DATA :: default ())) , CAN_FRAME_DATA :: ID => Ok (Self :: CAN_FRAME (CAN_FRAME_DATA :: default ())) , ISBD_LINK_STATUS_DATA :: ID => Ok (Self :: ISBD_LINK_STATUS (ISBD_LINK_STATUS_DATA :: default ())) , SENSOR_OFFSETS_DATA :: ID => Ok (Self :: SENSOR_OFFSETS (SENSOR_OFFSETS_DATA :: default ())) , BATTERY2_DATA :: ID => Ok (Self :: BATTERY2 (BATTERY2_DATA :: default ())) , SCALED_IMU_DATA :: ID => Ok (Self :: SCALED_IMU (SCALED_IMU_DATA :: default ())) , VIDEO_STREAM_STATUS_DATA :: ID => Ok (Self :: VIDEO_STREAM_STATUS (VIDEO_STREAM_STATUS_DATA :: default ())) , BATTERY_STATUS_DATA :: ID => Ok (Self :: BATTERY_STATUS (BATTERY_STATUS_DATA :: default ())) , DEVICE_OP_WRITE_DATA :: ID => Ok (Self :: DEVICE_OP_WRITE (DEVICE_OP_WRITE_DATA :: default ())) , HIGHRES_IMU_DATA :: ID => Ok (Self :: HIGHRES_IMU (HIGHRES_IMU_DATA :: default ())) , GOPRO_HEARTBEAT_DATA :: ID => Ok (Self :: GOPRO_HEARTBEAT (GOPRO_HEARTBEAT_DATA :: default ())) , WATER_DEPTH_DATA :: ID => Ok (Self :: WATER_DEPTH (WATER_DEPTH_DATA :: default ())) , HIL_SENSOR_DATA :: ID => Ok (Self :: HIL_SENSOR (HIL_SENSOR_DATA :: default ())) , POWER_STATUS_DATA :: ID => Ok (Self :: POWER_STATUS (POWER_STATUS_DATA :: default ())) , SYS_STATUS_DATA :: ID => Ok (Self :: SYS_STATUS (SYS_STATUS_DATA :: default ())) , CAN_FILTER_MODIFY_DATA :: ID => Ok (Self :: CAN_FILTER_MODIFY (CAN_FILTER_MODIFY_DATA :: default ())) , RC_CHANNELS_SCALED_DATA :: ID => Ok (Self :: RC_CHANNELS_SCALED (RC_CHANNELS_SCALED_DATA :: default ())) , OPEN_DRONE_ID_SELF_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SELF_ID (OPEN_DRONE_ID_SELF_ID_DATA :: default ())) , PARAM_REQUEST_READ_DATA :: ID => Ok (Self :: PARAM_REQUEST_READ (PARAM_REQUEST_READ_DATA :: default ())) , PLAY_TUNE_V2_DATA :: ID => Ok (Self :: PLAY_TUNE_V2 (PLAY_TUNE_V2_DATA :: default ())) , TERRAIN_CHECK_DATA :: ID => Ok (Self :: TERRAIN_CHECK (TERRAIN_CHECK_DATA :: default ())) , GPS_RTK_DATA :: ID => Ok (Self :: GPS_RTK (GPS_RTK_DATA :: default ())) , FOLLOW_TARGET_DATA :: ID => Ok (Self :: FOLLOW_TARGET (FOLLOW_TARGET_DATA :: default ())) , WIND_DATA :: ID => Ok (Self :: WIND (WIND_DATA :: default ())) , MISSION_CURRENT_DATA :: ID => Ok (Self :: MISSION_CURRENT (MISSION_CURRENT_DATA :: default ())) , GIMBAL_TORQUE_CMD_REPORT_DATA :: ID => Ok (Self :: GIMBAL_TORQUE_CMD_REPORT (GIMBAL_TORQUE_CMD_REPORT_DATA :: default ())) , GOPRO_SET_RESPONSE_DATA :: ID => Ok (Self :: GOPRO_SET_RESPONSE (GOPRO_SET_RESPONSE_DATA :: default ())) , GPS_INJECT_DATA_DATA :: ID => Ok (Self :: GPS_INJECT_DATA (GPS_INJECT_DATA_DATA :: default ())) , SMART_BATTERY_INFO_DATA :: ID => Ok (Self :: SMART_BATTERY_INFO (SMART_BATTERY_INFO_DATA :: default ())) , ACTUATOR_CONTROL_TARGET_DATA :: ID => Ok (Self :: ACTUATOR_CONTROL_TARGET (ACTUATOR_CONTROL_TARGET_DATA :: default ())) , CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: ID => Ok (Self :: CUBEPILOT_FIRMWARE_UPDATE_RESP (CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: default ())) , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => Ok (Self :: DATA_TRANSMISSION_HANDSHAKE (DATA_TRANSMISSION_HANDSHAKE_DATA :: default ())) , HYGROMETER_SENSOR_DATA :: ID => Ok (Self :: HYGROMETER_SENSOR (HYGROMETER_SENSOR_DATA :: default ())) , SYSTEM_TIME_DATA :: ID => Ok (Self :: SYSTEM_TIME (SYSTEM_TIME_DATA :: default ())) , LOG_REQUEST_END_DATA :: ID => Ok (Self :: LOG_REQUEST_END (LOG_REQUEST_END_DATA :: default ())) , PROTOCOL_VERSION_DATA :: ID => Ok (Self :: PROTOCOL_VERSION (PROTOCOL_VERSION_DATA :: default ())) , AIRSPEED_AUTOCAL_DATA :: ID => Ok (Self :: AIRSPEED_AUTOCAL (AIRSPEED_AUTOCAL_DATA :: default ())) , GLOBAL_POSITION_INT_DATA :: ID => Ok (Self :: GLOBAL_POSITION_INT (GLOBAL_POSITION_INT_DATA :: default ())) , ENCAPSULATED_DATA_DATA :: ID => Ok (Self :: ENCAPSULATED_DATA (ENCAPSULATED_DATA_DATA :: default ())) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID => Ok (Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: default ())) , GOPRO_SET_REQUEST_DATA :: ID => Ok (Self :: GOPRO_SET_REQUEST (GOPRO_SET_REQUEST_DATA :: default ())) , LOG_REQUEST_LIST_DATA :: ID => Ok (Self :: LOG_REQUEST_LIST (LOG_REQUEST_LIST_DATA :: default ())) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_PITCHYAW (GIMBAL_MANAGER_SET_PITCHYAW_DATA :: default ())) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_MESSAGE_PACK (OPEN_DRONE_ID_MESSAGE_PACK_DATA :: default ())) , GIMBAL_MANAGER_INFORMATION_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_INFORMATION (GIMBAL_MANAGER_INFORMATION_DATA :: default ())) , DEBUG_VECT_DATA :: ID => Ok (Self :: DEBUG_VECT (DEBUG_VECT_DATA :: default ())) , RC_CHANNELS_DATA :: ID => Ok (Self :: RC_CHANNELS (RC_CHANNELS_DATA :: default ())) , SAFETY_ALLOWED_AREA_DATA :: ID => Ok (Self :: SAFETY_ALLOWED_AREA (SAFETY_ALLOWED_AREA_DATA :: default ())) , SAFETY_SET_ALLOWED_AREA_DATA :: ID => Ok (Self :: SAFETY_SET_ALLOWED_AREA (SAFETY_SET_ALLOWED_AREA_DATA :: default ())) , MISSION_ACK_DATA :: ID => Ok (Self :: MISSION_ACK (MISSION_ACK_DATA :: default ())) , UTM_GLOBAL_POSITION_DATA :: ID => Ok (Self :: UTM_GLOBAL_POSITION (UTM_GLOBAL_POSITION_DATA :: default ())) , FLIGHT_INFORMATION_DATA :: ID => Ok (Self :: FLIGHT_INFORMATION (FLIGHT_INFORMATION_DATA :: default ())) , ESC_TELEMETRY_1_TO_4_DATA :: ID => Ok (Self :: ESC_TELEMETRY_1_TO_4 (ESC_TELEMETRY_1_TO_4_DATA :: default ())) , LOGGING_ACK_DATA :: ID => Ok (Self :: LOGGING_ACK (LOGGING_ACK_DATA :: default ())) , OPEN_DRONE_ID_LOCATION_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_LOCATION (OPEN_DRONE_ID_LOCATION_DATA :: default ())) , HIGH_LATENCY2_DATA :: ID => Ok (Self :: HIGH_LATENCY2 (HIGH_LATENCY2_DATA :: default ())) , TIME_ESTIMATE_TO_TARGET_DATA :: ID => Ok (Self :: TIME_ESTIMATE_TO_TARGET (TIME_ESTIMATE_TO_TARGET_DATA :: default ())) , ICAROUS_KINEMATIC_BANDS_DATA :: ID => Ok (Self :: ICAROUS_KINEMATIC_BANDS (ICAROUS_KINEMATIC_BANDS_DATA :: default ())) , FENCE_FETCH_POINT_DATA :: ID => Ok (Self :: FENCE_FETCH_POINT (FENCE_FETCH_POINT_DATA :: default ())) , HIL_STATE_DATA :: ID => Ok (Self :: HIL_STATE (HIL_STATE_DATA :: default ())) , DEBUG_FLOAT_ARRAY_DATA :: ID => Ok (Self :: DEBUG_FLOAT_ARRAY (DEBUG_FLOAT_ARRAY_DATA :: default ())) , CUBEPILOT_RAW_RC_DATA :: ID => Ok (Self :: CUBEPILOT_RAW_RC (CUBEPILOT_RAW_RC_DATA :: default ())) , ORBIT_EXECUTION_STATUS_DATA :: ID => Ok (Self :: ORBIT_EXECUTION_STATUS (ORBIT_EXECUTION_STATUS_DATA :: default ())) , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_BASIC_ID (OPEN_DRONE_ID_BASIC_ID_DATA :: default ())) , VFR_HUD_DATA :: ID => Ok (Self :: VFR_HUD (VFR_HUD_DATA :: default ())) , OSD_PARAM_CONFIG_REPLY_DATA :: ID => Ok (Self :: OSD_PARAM_CONFIG_REPLY (OSD_PARAM_CONFIG_REPLY_DATA :: default ())) , LIMITS_STATUS_DATA :: ID => Ok (Self :: LIMITS_STATUS (LIMITS_STATUS_DATA :: default ())) , UAVCAN_NODE_STATUS_DATA :: ID => Ok (Self :: UAVCAN_NODE_STATUS (UAVCAN_NODE_STATUS_DATA :: default ())) , RESOURCE_REQUEST_DATA :: ID => Ok (Self :: RESOURCE_REQUEST (RESOURCE_REQUEST_DATA :: default ())) , MISSION_ITEM_REACHED_DATA :: ID => Ok (Self :: MISSION_ITEM_REACHED (MISSION_ITEM_REACHED_DATA :: default ())) , GOPRO_GET_RESPONSE_DATA :: ID => Ok (Self :: GOPRO_GET_RESPONSE (GOPRO_GET_RESPONSE_DATA :: default ())) , GENERATOR_STATUS_DATA :: ID => Ok (Self :: GENERATOR_STATUS (GENERATOR_STATUS_DATA :: default ())) , HIL_CONTROLS_DATA :: ID => Ok (Self :: HIL_CONTROLS (HIL_CONTROLS_DATA :: default ())) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => Ok (Self :: CHANGE_OPERATOR_CONTROL_ACK (CHANGE_OPERATOR_CONTROL_ACK_DATA :: default ())) , LOGGING_DATA_ACKED_DATA :: ID => Ok (Self :: LOGGING_DATA_ACKED (LOGGING_DATA_ACKED_DATA :: default ())) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => Ok (Self :: SET_POSITION_TARGET_GLOBAL_INT (SET_POSITION_TARGET_GLOBAL_INT_DATA :: default ())) , UAVCAN_NODE_INFO_DATA :: ID => Ok (Self :: UAVCAN_NODE_INFO (UAVCAN_NODE_INFO_DATA :: default ())) , SUPPORTED_TUNES_DATA :: ID => Ok (Self :: SUPPORTED_TUNES (SUPPORTED_TUNES_DATA :: default ())) , CHANGE_OPERATOR_CONTROL_DATA :: ID => Ok (Self :: CHANGE_OPERATOR_CONTROL (CHANGE_OPERATOR_CONTROL_DATA :: default ())) , LOCAL_POSITION_NED_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED (LOCAL_POSITION_NED_DATA :: default ())) , COMMAND_INT_DATA :: ID => Ok (Self :: COMMAND_INT (COMMAND_INT_DATA :: default ())) , FENCE_STATUS_DATA :: ID => Ok (Self :: FENCE_STATUS (FENCE_STATUS_DATA :: default ())) , ADAP_TUNING_DATA :: ID => Ok (Self :: ADAP_TUNING (ADAP_TUNING_DATA :: default ())) , VICON_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: VICON_POSITION_ESTIMATE (VICON_POSITION_ESTIMATE_DATA :: default ())) , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => Ok (Self :: MISSION_WRITE_PARTIAL_LIST (MISSION_WRITE_PARTIAL_LIST_DATA :: default ())) , RALLY_POINT_DATA :: ID => Ok (Self :: RALLY_POINT (RALLY_POINT_DATA :: default ())) , GPS_STATUS_DATA :: ID => Ok (Self :: GPS_STATUS (GPS_STATUS_DATA :: default ())) , OSD_PARAM_CONFIG_DATA :: ID => Ok (Self :: OSD_PARAM_CONFIG (OSD_PARAM_CONFIG_DATA :: default ())) , AHRS2_DATA :: ID => Ok (Self :: AHRS2 (AHRS2_DATA :: default ())) , ATTITUDE_QUATERNION_COV_DATA :: ID => Ok (Self :: ATTITUDE_QUATERNION_COV (ATTITUDE_QUATERNION_COV_DATA :: default ())) , OBSTACLE_DISTANCE_3D_DATA :: ID => Ok (Self :: OBSTACLE_DISTANCE_3D (OBSTACLE_DISTANCE_3D_DATA :: default ())) , VISION_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: VISION_POSITION_ESTIMATE (VISION_POSITION_ESTIMATE_DATA :: default ())) , GIMBAL_MANAGER_STATUS_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_STATUS (GIMBAL_MANAGER_STATUS_DATA :: default ())) , ACTUATOR_OUTPUT_STATUS_DATA :: ID => Ok (Self :: ACTUATOR_OUTPUT_STATUS (ACTUATOR_OUTPUT_STATUS_DATA :: default ())) , ESC_STATUS_DATA :: ID => Ok (Self :: ESC_STATUS (ESC_STATUS_DATA :: default ())) , RANGEFINDER_DATA :: ID => Ok (Self :: RANGEFINDER (RANGEFINDER_DATA :: default ())) , REMOTE_LOG_DATA_BLOCK_DATA :: ID => Ok (Self :: REMOTE_LOG_DATA_BLOCK (REMOTE_LOG_DATA_BLOCK_DATA :: default ())) , FENCE_POINT_DATA :: ID => Ok (Self :: FENCE_POINT (FENCE_POINT_DATA :: default ())) , ESC_TELEMETRY_5_TO_8_DATA :: ID => Ok (Self :: ESC_TELEMETRY_5_TO_8 (ESC_TELEMETRY_5_TO_8_DATA :: default ())) , WIND_COV_DATA :: ID => Ok (Self :: WIND_COV (WIND_COV_DATA :: default ())) , FILE_TRANSFER_PROTOCOL_DATA :: ID => Ok (Self :: FILE_TRANSFER_PROTOCOL (FILE_TRANSFER_PROTOCOL_DATA :: default ())) , MISSION_ITEM_DATA :: ID => Ok (Self :: MISSION_ITEM (MISSION_ITEM_DATA :: default ())) , MANUAL_SETPOINT_DATA :: ID => Ok (Self :: MANUAL_SETPOINT (MANUAL_SETPOINT_DATA :: default ())) , OPTICAL_FLOW_DATA :: ID => Ok (Self :: OPTICAL_FLOW (OPTICAL_FLOW_DATA :: default ())) , WHEEL_DISTANCE_DATA :: ID => Ok (Self :: WHEEL_DISTANCE (WHEEL_DISTANCE_DATA :: default ())) , SERVO_OUTPUT_RAW_DATA :: ID => Ok (Self :: SERVO_OUTPUT_RAW (SERVO_OUTPUT_RAW_DATA :: default ())) , POSITION_TARGET_LOCAL_NED_DATA :: ID => Ok (Self :: POSITION_TARGET_LOCAL_NED (POSITION_TARGET_LOCAL_NED_DATA :: default ())) , LOG_ENTRY_DATA :: ID => Ok (Self :: LOG_ENTRY (LOG_ENTRY_DATA :: default ())) , PARAM_SET_DATA :: ID => Ok (Self :: PARAM_SET (PARAM_SET_DATA :: default ())) , AP_ADC_DATA :: ID => Ok (Self :: AP_ADC (AP_ADC_DATA :: default ())) , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => Ok (Self :: SET_POSITION_TARGET_LOCAL_NED (SET_POSITION_TARGET_LOCAL_NED_DATA :: default ())) , DEVICE_OP_WRITE_REPLY_DATA :: ID => Ok (Self :: DEVICE_OP_WRITE_REPLY (DEVICE_OP_WRITE_REPLY_DATA :: default ())) , MOUNT_STATUS_DATA :: ID => Ok (Self :: MOUNT_STATUS (MOUNT_STATUS_DATA :: default ())) , DATA16_DATA :: ID => Ok (Self :: DATA16 (DATA16_DATA :: default ())) , SIMSTATE_DATA :: ID => Ok (Self :: SIMSTATE (SIMSTATE_DATA :: default ())) , MAG_CAL_REPORT_DATA :: ID => Ok (Self :: MAG_CAL_REPORT (MAG_CAL_REPORT_DATA :: default ())) , SCALED_PRESSURE2_DATA :: ID => Ok (Self :: SCALED_PRESSURE2 (SCALED_PRESSURE2_DATA :: default ())) , CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: ID => Ok (Self :: CUBEPILOT_FIRMWARE_UPDATE_START (CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: default ())) , SET_MODE_DATA :: ID => Ok (Self :: SET_MODE (SET_MODE_DATA :: default ())) , SETUP_SIGNING_DATA :: ID => Ok (Self :: SETUP_SIGNING (SETUP_SIGNING_DATA :: default ())) , PARAM_EXT_SET_DATA :: ID => Ok (Self :: PARAM_EXT_SET (PARAM_EXT_SET_DATA :: default ())) , HOME_POSITION_DATA :: ID => Ok (Self :: HOME_POSITION (HOME_POSITION_DATA :: default ())) , RAW_RPM_DATA :: ID => Ok (Self :: RAW_RPM (RAW_RPM_DATA :: default ())) , ESC_INFO_DATA :: ID => Ok (Self :: ESC_INFO (ESC_INFO_DATA :: default ())) , AUTH_KEY_DATA :: ID => Ok (Self :: AUTH_KEY (AUTH_KEY_DATA :: default ())) , DIGICAM_CONTROL_DATA :: ID => Ok (Self :: DIGICAM_CONTROL (DIGICAM_CONTROL_DATA :: default ())) , GPS2_RTK_DATA :: ID => Ok (Self :: GPS2_RTK (GPS2_RTK_DATA :: default ())) , TERRAIN_DATA_DATA :: ID => Ok (Self :: TERRAIN_DATA (TERRAIN_DATA_DATA :: default ())) , CANFD_FRAME_DATA :: ID => Ok (Self :: CANFD_FRAME (CANFD_FRAME_DATA :: default ())) , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => Ok (Self :: SET_ACTUATOR_CONTROL_TARGET (SET_ACTUATOR_CONTROL_TARGET_DATA :: default ())) , TIMESYNC_DATA :: ID => Ok (Self :: TIMESYNC (TIMESYNC_DATA :: default ())) , COMPASSMOT_STATUS_DATA :: ID => Ok (Self :: COMPASSMOT_STATUS (COMPASSMOT_STATUS_DATA :: default ())) , MISSION_REQUEST_INT_DATA :: ID => Ok (Self :: MISSION_REQUEST_INT (MISSION_REQUEST_INT_DATA :: default ())) , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID => Ok (Self :: UAVIONIX_ADSB_OUT_DYNAMIC (UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: default ())) , DATA96_DATA :: ID => Ok (Self :: DATA96 (DATA96_DATA :: default ())) , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => Ok (Self :: CAMERA_TRACKING_GEO_STATUS (CAMERA_TRACKING_GEO_STATUS_DATA :: default ())) , LOG_DATA_DATA :: ID => Ok (Self :: LOG_DATA (LOG_DATA_DATA :: default ())) , HERELINK_VIDEO_STREAM_INFORMATION_DATA :: ID => Ok (Self :: HERELINK_VIDEO_STREAM_INFORMATION (HERELINK_VIDEO_STREAM_INFORMATION_DATA :: default ())) , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => Ok (Self :: MISSION_REQUEST_PARTIAL_LIST (MISSION_REQUEST_PARTIAL_LIST_DATA :: default ())) , MISSION_SET_CURRENT_DATA :: ID => Ok (Self :: MISSION_SET_CURRENT (MISSION_SET_CURRENT_DATA :: default ())) , SCALED_PRESSURE_DATA :: ID => Ok (Self :: SCALED_PRESSURE (SCALED_PRESSURE_DATA :: default ())) , PID_TUNING_DATA :: ID => Ok (Self :: PID_TUNING (PID_TUNING_DATA :: default ())) , HIGH_LATENCY_DATA :: ID => Ok (Self :: HIGH_LATENCY (HIGH_LATENCY_DATA :: default ())) , PARAM_EXT_REQUEST_LIST_DATA :: ID => Ok (Self :: PARAM_EXT_REQUEST_LIST (PARAM_EXT_REQUEST_LIST_DATA :: default ())) , CAMERA_FOV_STATUS_DATA :: ID => Ok (Self :: CAMERA_FOV_STATUS (CAMERA_FOV_STATUS_DATA :: default ())) , WINCH_STATUS_DATA :: ID => Ok (Self :: WINCH_STATUS (WINCH_STATUS_DATA :: default ())) , HERELINK_TELEM_DATA :: ID => Ok (Self :: HERELINK_TELEM (HERELINK_TELEM_DATA :: default ())) , VIDEO_STREAM_INFORMATION_DATA :: ID => Ok (Self :: VIDEO_STREAM_INFORMATION (VIDEO_STREAM_INFORMATION_DATA :: default ())) , HIL_OPTICAL_FLOW_DATA :: ID => Ok (Self :: HIL_OPTICAL_FLOW (HIL_OPTICAL_FLOW_DATA :: default ())) , CELLULAR_STATUS_DATA :: ID => Ok (Self :: CELLULAR_STATUS (CELLULAR_STATUS_DATA :: default ())) , TERRAIN_REPORT_DATA :: ID => Ok (Self :: TERRAIN_REPORT (TERRAIN_REPORT_DATA :: default ())) , LOG_ERASE_DATA :: ID => Ok (Self :: LOG_ERASE (LOG_ERASE_DATA :: default ())) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_OPERATOR_ID (OPEN_DRONE_ID_OPERATOR_ID_DATA :: default ())) , SET_MAG_OFFSETS_DATA :: ID => Ok (Self :: SET_MAG_OFFSETS (SET_MAG_OFFSETS_DATA :: default ())) , GPS2_RAW_DATA :: ID => Ok (Self :: GPS2_RAW (GPS2_RAW_DATA :: default ())) , CURRENT_EVENT_SEQUENCE_DATA :: ID => Ok (Self :: CURRENT_EVENT_SEQUENCE (CURRENT_EVENT_SEQUENCE_DATA :: default ())) , OPEN_DRONE_ID_SYSTEM_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SYSTEM (OPEN_DRONE_ID_SYSTEM_DATA :: default ())) , AHRS_DATA :: ID => Ok (Self :: AHRS (AHRS_DATA :: default ())) , ATTITUDE_DATA :: ID => Ok (Self :: ATTITUDE (ATTITUDE_DATA :: default ())) , LOGGING_DATA_DATA :: ID => Ok (Self :: LOGGING_DATA (LOGGING_DATA_DATA :: default ())) , CAMERA_TRIGGER_DATA :: ID => Ok (Self :: CAMERA_TRIGGER (CAMERA_TRIGGER_DATA :: default ())) , AIS_VESSEL_DATA :: ID => Ok (Self :: AIS_VESSEL (AIS_VESSEL_DATA :: default ())) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: GLOBAL_VISION_POSITION_ESTIMATE (GLOBAL_VISION_POSITION_ESTIMATE_DATA :: default ())) , MISSION_ITEM_INT_DATA :: ID => Ok (Self :: MISSION_ITEM_INT (MISSION_ITEM_INT_DATA :: default ())) , RAW_PRESSURE_DATA :: ID => Ok (Self :: RAW_PRESSURE (RAW_PRESSURE_DATA :: default ())) , TERRAIN_REQUEST_DATA :: ID => Ok (Self :: TERRAIN_REQUEST (TERRAIN_REQUEST_DATA :: default ())) , MANUAL_CONTROL_DATA :: ID => Ok (Self :: MANUAL_CONTROL (MANUAL_CONTROL_DATA :: default ())) , VIBRATION_DATA :: ID => Ok (Self :: VIBRATION (VIBRATION_DATA :: default ())) , RC_CHANNELS_OVERRIDE_DATA :: ID => Ok (Self :: RC_CHANNELS_OVERRIDE (RC_CHANNELS_OVERRIDE_DATA :: default ())) , ICAROUS_HEARTBEAT_DATA :: ID => Ok (Self :: ICAROUS_HEARTBEAT (ICAROUS_HEARTBEAT_DATA :: default ())) , GIMBAL_DEVICE_INFORMATION_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_INFORMATION (GIMBAL_DEVICE_INFORMATION_DATA :: default ())) , GIMBAL_REPORT_DATA :: ID => Ok (Self :: GIMBAL_REPORT (GIMBAL_REPORT_DATA :: default ())) , CONTROL_SYSTEM_STATE_DATA :: ID => Ok (Self :: CONTROL_SYSTEM_STATE (CONTROL_SYSTEM_STATE_DATA :: default ())) , RESPONSE_EVENT_ERROR_DATA :: ID => Ok (Self :: RESPONSE_EVENT_ERROR (RESPONSE_EVENT_ERROR_DATA :: default ())) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_ATTITUDE (GIMBAL_MANAGER_SET_ATTITUDE_DATA :: default ())) , AOA_SSA_DATA :: ID => Ok (Self :: AOA_SSA (AOA_SSA_DATA :: default ())) , SCALED_PRESSURE3_DATA :: ID => Ok (Self :: SCALED_PRESSURE3 (SCALED_PRESSURE3_DATA :: default ())) , NAMED_VALUE_INT_DATA :: ID => Ok (Self :: NAMED_VALUE_INT (NAMED_VALUE_INT_DATA :: default ())) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => Ok (Self :: CAMERA_TRACKING_IMAGE_STATUS (CAMERA_TRACKING_IMAGE_STATUS_DATA :: default ())) , LINK_NODE_STATUS_DATA :: ID => Ok (Self :: LINK_NODE_STATUS (LINK_NODE_STATUS_DATA :: default ())) , MAG_CAL_PROGRESS_DATA :: ID => Ok (Self :: MAG_CAL_PROGRESS (MAG_CAL_PROGRESS_DATA :: default ())) , LOG_REQUEST_DATA_DATA :: ID => Ok (Self :: LOG_REQUEST_DATA (LOG_REQUEST_DATA_DATA :: default ())) , PARAM_REQUEST_LIST_DATA :: ID => Ok (Self :: PARAM_REQUEST_LIST (PARAM_REQUEST_LIST_DATA :: default ())) , GPS_RAW_INT_DATA :: ID => Ok (Self :: GPS_RAW_INT (GPS_RAW_INT_DATA :: default ())) , AUTOPILOT_VERSION_REQUEST_DATA :: ID => Ok (Self :: AUTOPILOT_VERSION_REQUEST (AUTOPILOT_VERSION_REQUEST_DATA :: default ())) , TUNNEL_DATA :: ID => Ok (Self :: TUNNEL (TUNNEL_DATA :: default ())) , OSD_PARAM_SHOW_CONFIG_DATA :: ID => Ok (Self :: OSD_PARAM_SHOW_CONFIG (OSD_PARAM_SHOW_CONFIG_DATA :: default ())) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => Ok (Self :: TRAJECTORY_REPRESENTATION_BEZIER (TRAJECTORY_REPRESENTATION_BEZIER_DATA :: default ())) , VISION_SPEED_ESTIMATE_DATA :: ID => Ok (Self :: VISION_SPEED_ESTIMATE (VISION_SPEED_ESTIMATE_DATA :: default ())) , OBSTACLE_DISTANCE_DATA :: ID => Ok (Self :: OBSTACLE_DISTANCE (OBSTACLE_DISTANCE_DATA :: default ())) , SCALED_IMU2_DATA :: ID => Ok (Self :: SCALED_IMU2 (SCALED_IMU2_DATA :: default ())) , MISSION_REQUEST_DATA :: ID => Ok (Self :: MISSION_REQUEST (MISSION_REQUEST_DATA :: default ())) , LED_CONTROL_DATA :: ID => Ok (Self :: LED_CONTROL (LED_CONTROL_DATA :: default ())) , SCALED_IMU3_DATA :: ID => Ok (Self :: SCALED_IMU3 (SCALED_IMU3_DATA :: default ())) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => Ok (Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: default ())) , COLLISION_DATA :: ID => Ok (Self :: COLLISION (COLLISION_DATA :: default ())) , MISSION_COUNT_DATA :: ID => Ok (Self :: MISSION_COUNT (MISSION_COUNT_DATA :: default ())) , ATT_POS_MOCAP_DATA :: ID => Ok (Self :: ATT_POS_MOCAP (ATT_POS_MOCAP_DATA :: default ())) , DATA32_DATA :: ID => Ok (Self :: DATA32 (DATA32_DATA :: default ())) , PARAM_EXT_VALUE_DATA :: ID => Ok (Self :: PARAM_EXT_VALUE (PARAM_EXT_VALUE_DATA :: default ())) , AUTOPILOT_VERSION_DATA :: ID => Ok (Self :: AUTOPILOT_VERSION (AUTOPILOT_VERSION_DATA :: default ())) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: default ())) , DATA64_DATA :: ID => Ok (Self :: DATA64 (DATA64_DATA :: default ())) , ODOMETRY_DATA :: ID => Ok (Self :: ODOMETRY (ODOMETRY_DATA :: default ())) , PING_DATA :: ID => Ok (Self :: PING (PING_DATA :: default ())) , MESSAGE_INTERVAL_DATA :: ID => Ok (Self :: MESSAGE_INTERVAL (MESSAGE_INTERVAL_DATA :: default ())) , HIL_ACTUATOR_CONTROLS_DATA :: ID => Ok (Self :: HIL_ACTUATOR_CONTROLS (HIL_ACTUATOR_CONTROLS_DATA :: default ())) , EKF_STATUS_REPORT_DATA :: ID => Ok (Self :: EKF_STATUS_REPORT (EKF_STATUS_REPORT_DATA :: default ())) , AHRS3_DATA :: ID => Ok (Self :: AHRS3 (AHRS3_DATA :: default ())) , HIL_STATE_QUATERNION_DATA :: ID => Ok (Self :: HIL_STATE_QUATERNION (HIL_STATE_QUATERNION_DATA :: default ())) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: default ())) , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => Ok (Self :: SET_GPS_GLOBAL_ORIGIN (SET_GPS_GLOBAL_ORIGIN_DATA :: default ())) , POSITION_TARGET_GLOBAL_INT_DATA :: ID => Ok (Self :: POSITION_TARGET_GLOBAL_INT (POSITION_TARGET_GLOBAL_INT_DATA :: default ())) , ATTITUDE_TARGET_DATA :: ID => Ok (Self :: ATTITUDE_TARGET (ATTITUDE_TARGET_DATA :: default ())) , RADIO_DATA :: ID => Ok (Self :: RADIO (RADIO_DATA :: default ())) , PARAM_VALUE_DATA :: ID => Ok (Self :: PARAM_VALUE (PARAM_VALUE_DATA :: default ())) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: default ())) , ADSB_VEHICLE_DATA :: ID => Ok (Self :: ADSB_VEHICLE (ADSB_VEHICLE_DATA :: default ())) , DEVICE_OP_READ_DATA :: ID => Ok (Self :: DEVICE_OP_READ (DEVICE_OP_READ_DATA :: default ())) , EVENT_DATA :: ID => Ok (Self :: EVENT (EVENT_DATA :: default ())) , COMMAND_LONG_DATA :: ID => Ok (Self :: COMMAND_LONG (COMMAND_LONG_DATA :: default ())) , RADIO_STATUS_DATA :: ID => Ok (Self :: RADIO_STATUS (RADIO_STATUS_DATA :: default ())) , MEMORY_VECT_DATA :: ID => Ok (Self :: MEMORY_VECT (MEMORY_VECT_DATA :: default ())) , REQUEST_DATA_STREAM_DATA :: ID => Ok (Self :: REQUEST_DATA_STREAM (REQUEST_DATA_STREAM_DATA :: default ())) , WIFI_CONFIG_AP_DATA :: ID => Ok (Self :: WIFI_CONFIG_AP (WIFI_CONFIG_AP_DATA :: default ())) , ESC_TELEMETRY_9_TO_12_DATA :: ID => Ok (Self :: ESC_TELEMETRY_9_TO_12 (ESC_TELEMETRY_9_TO_12_DATA :: default ())) , HIL_RC_INPUTS_RAW_DATA :: ID => Ok (Self :: HIL_RC_INPUTS_RAW (HIL_RC_INPUTS_RAW_DATA :: default ())) , RAW_IMU_DATA :: ID => Ok (Self :: RAW_IMU (RAW_IMU_DATA :: default ())) , EFI_STATUS_DATA :: ID => Ok (Self :: EFI_STATUS (EFI_STATUS_DATA :: default ())) , MISSION_REQUEST_LIST_DATA :: ID => Ok (Self :: MISSION_REQUEST_LIST (MISSION_REQUEST_LIST_DATA :: default ())) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_AUTHENTICATION (OPEN_DRONE_ID_AUTHENTICATION_DATA :: default ())) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: default ())) , CAMERA_INFORMATION_DATA :: ID => Ok (Self :: CAMERA_INFORMATION (CAMERA_INFORMATION_DATA :: default ())) , ATTITUDE_QUATERNION_DATA :: ID => Ok (Self :: ATTITUDE_QUATERNION (ATTITUDE_QUATERNION_DATA :: default ())) , SIM_STATE_DATA :: ID => Ok (Self :: SIM_STATE (SIM_STATE_DATA :: default ())) , MOUNT_CONTROL_DATA :: ID => Ok (Self :: MOUNT_CONTROL (MOUNT_CONTROL_DATA :: default ())) , COMMAND_CANCEL_DATA :: ID => Ok (Self :: COMMAND_CANCEL (COMMAND_CANCEL_DATA :: default ())) , CAMERA_STATUS_DATA :: ID => Ok (Self :: CAMERA_STATUS (CAMERA_STATUS_DATA :: default ())) , DEEPSTALL_DATA :: ID => Ok (Self :: DEEPSTALL (DEEPSTALL_DATA :: default ())) , COMPONENT_INFORMATION_DATA :: ID => Ok (Self :: COMPONENT_INFORMATION (COMPONENT_INFORMATION_DATA :: default ())) , GOPRO_GET_REQUEST_DATA :: ID => Ok (Self :: GOPRO_GET_REQUEST (GOPRO_GET_REQUEST_DATA :: default ())) , RPM_DATA :: ID => Ok (Self :: RPM (RPM_DATA :: default ())) , CAMERA_IMAGE_CAPTURED_DATA :: ID => Ok (Self :: CAMERA_IMAGE_CAPTURED (CAMERA_IMAGE_CAPTURED_DATA :: default ())) , GLOBAL_POSITION_INT_COV_DATA :: ID => Ok (Self :: GLOBAL_POSITION_INT_COV (GLOBAL_POSITION_INT_COV_DATA :: default ())) , GPS_INPUT_DATA :: ID => Ok (Self :: GPS_INPUT (GPS_INPUT_DATA :: default ())) , GIMBAL_CONTROL_DATA :: ID => Ok (Self :: GIMBAL_CONTROL (GIMBAL_CONTROL_DATA :: default ())) , MOUNT_ORIENTATION_DATA :: ID => Ok (Self :: MOUNT_ORIENTATION (MOUNT_ORIENTATION_DATA :: default ())) , DEVICE_OP_READ_REPLY_DATA :: ID => Ok (Self :: DEVICE_OP_READ_REPLY (DEVICE_OP_READ_REPLY_DATA :: default ())) , RC_CHANNELS_RAW_DATA :: ID => Ok (Self :: RC_CHANNELS_RAW (RC_CHANNELS_RAW_DATA :: default ())) , DATA_STREAM_DATA :: ID => Ok (Self :: DATA_STREAM (DATA_STREAM_DATA :: default ())) , MISSION_CLEAR_ALL_DATA :: ID => Ok (Self :: MISSION_CLEAR_ALL (MISSION_CLEAR_ALL_DATA :: default ())) , HIL_GPS_DATA :: ID => Ok (Self :: HIL_GPS (HIL_GPS_DATA :: default ())) , PARAM_MAP_RC_DATA :: ID => Ok (Self :: PARAM_MAP_RC (PARAM_MAP_RC_DATA :: default ())) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_SET_ATTITUDE (GIMBAL_DEVICE_SET_ATTITUDE_DATA :: default ())) , CAMERA_SETTINGS_DATA :: ID => Ok (Self :: CAMERA_SETTINGS (CAMERA_SETTINGS_DATA :: default ())) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => Ok (Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: default ())) , ONBOARD_COMPUTER_STATUS_DATA :: ID => Ok (Self :: ONBOARD_COMPUTER_STATUS (ONBOARD_COMPUTER_STATUS_DATA :: default ())) , HWSTATUS_DATA :: ID => Ok (Self :: HWSTATUS (HWSTATUS_DATA :: default ())) , RALLY_FETCH_POINT_DATA :: ID => Ok (Self :: RALLY_FETCH_POINT (RALLY_FETCH_POINT_DATA :: default ())) , _ => { Err ("Invalid message id.") } } } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { match self { Self :: OPEN_DRONE_ID_ARM_STATUS (body) => body . ser (version , bytes) , Self :: STORAGE_INFORMATION (body) => body . ser (version , bytes) , Self :: MEMINFO (body) => body . ser (version , bytes) , Self :: HEARTBEAT (body) => body . ser (version , bytes) , Self :: MCU_STATUS (body) => body . ser (version , bytes) , Self :: ALTITUDE (body) => body . ser (version , bytes) , Self :: COMMAND_ACK (body) => body . ser (version , bytes) , Self :: DEBUG (body) => body . ser (version , bytes) , Self :: PARAM_EXT_ACK (body) => body . ser (version , bytes) , Self :: REMOTE_LOG_BLOCK_STATUS (body) => body . ser (version , bytes) , Self :: OPTICAL_FLOW_RAD (body) => body . ser (version , bytes) , Self :: GPS_RTCM_DATA (body) => body . ser (version , bytes) , Self :: REQUEST_EVENT (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED_COV (body) => body . ser (version , bytes) , Self :: VISION_POSITION_DELTA (body) => body . ser (version , bytes) , Self :: PLAY_TUNE (body) => body . ser (version , bytes) , Self :: OSD_PARAM_SHOW_CONFIG_REPLY (body) => body . ser (version , bytes) , Self :: CELLULAR_CONFIG (body) => body . ser (version , bytes) , Self :: SET_ATTITUDE_TARGET (body) => body . ser (version , bytes) , Self :: GPS_GLOBAL_ORIGIN (body) => body . ser (version , bytes) , Self :: DISTANCE_SENSOR (body) => body . ser (version , bytes) , Self :: EXTENDED_SYS_STATE (body) => body . ser (version , bytes) , Self :: LANDING_TARGET (body) => body . ser (version , bytes) , Self :: NAV_CONTROLLER_OUTPUT (body) => body . ser (version , bytes) , Self :: NAMED_VALUE_FLOAT (body) => body . ser (version , bytes) , Self :: ESTIMATOR_STATUS (body) => body . ser (version , bytes) , Self :: SET_HOME_POSITION (body) => body . ser (version , bytes) , Self :: UAVIONIX_ADSB_OUT_CFG (body) => body . ser (version , bytes) , Self :: MOUNT_CONFIGURE (body) => body . ser (version , bytes) , Self :: PARAM_EXT_REQUEST_READ (body) => body . ser (version , bytes) , Self :: CAMERA_FEEDBACK (body) => body . ser (version , bytes) , Self :: SERIAL_CONTROL (body) => body . ser (version , bytes) , Self :: CAMERA_CAPTURE_STATUS (body) => body . ser (version , bytes) , Self :: V2_EXTENSION (body) => body . ser (version , bytes) , Self :: COMPONENT_METADATA (body) => body . ser (version , bytes) , Self :: DIGICAM_CONFIGURE (body) => body . ser (version , bytes) , Self :: BUTTON_CHANGE (body) => body . ser (version , bytes) , Self :: STATUSTEXT (body) => body . ser (version , bytes) , Self :: CAN_FRAME (body) => body . ser (version , bytes) , Self :: ISBD_LINK_STATUS (body) => body . ser (version , bytes) , Self :: SENSOR_OFFSETS (body) => body . ser (version , bytes) , Self :: BATTERY2 (body) => body . ser (version , bytes) , Self :: SCALED_IMU (body) => body . ser (version , bytes) , Self :: VIDEO_STREAM_STATUS (body) => body . ser (version , bytes) , Self :: BATTERY_STATUS (body) => body . ser (version , bytes) , Self :: DEVICE_OP_WRITE (body) => body . ser (version , bytes) , Self :: HIGHRES_IMU (body) => body . ser (version , bytes) , Self :: GOPRO_HEARTBEAT (body) => body . ser (version , bytes) , Self :: WATER_DEPTH (body) => body . ser (version , bytes) , Self :: HIL_SENSOR (body) => body . ser (version , bytes) , Self :: POWER_STATUS (body) => body . ser (version , bytes) , Self :: SYS_STATUS (body) => body . ser (version , bytes) , Self :: CAN_FILTER_MODIFY (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_SCALED (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SELF_ID (body) => body . ser (version , bytes) , Self :: PARAM_REQUEST_READ (body) => body . ser (version , bytes) , Self :: PLAY_TUNE_V2 (body) => body . ser (version , bytes) , Self :: TERRAIN_CHECK (body) => body . ser (version , bytes) , Self :: GPS_RTK (body) => body . ser (version , bytes) , Self :: FOLLOW_TARGET (body) => body . ser (version , bytes) , Self :: WIND (body) => body . ser (version , bytes) , Self :: MISSION_CURRENT (body) => body . ser (version , bytes) , Self :: GIMBAL_TORQUE_CMD_REPORT (body) => body . ser (version , bytes) , Self :: GOPRO_SET_RESPONSE (body) => body . ser (version , bytes) , Self :: GPS_INJECT_DATA (body) => body . ser (version , bytes) , Self :: SMART_BATTERY_INFO (body) => body . ser (version , bytes) , Self :: ACTUATOR_CONTROL_TARGET (body) => body . ser (version , bytes) , Self :: CUBEPILOT_FIRMWARE_UPDATE_RESP (body) => body . ser (version , bytes) , Self :: DATA_TRANSMISSION_HANDSHAKE (body) => body . ser (version , bytes) , Self :: HYGROMETER_SENSOR (body) => body . ser (version , bytes) , Self :: SYSTEM_TIME (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_END (body) => body . ser (version , bytes) , Self :: PROTOCOL_VERSION (body) => body . ser (version , bytes) , Self :: AIRSPEED_AUTOCAL (body) => body . ser (version , bytes) , Self :: GLOBAL_POSITION_INT (body) => body . ser (version , bytes) , Self :: ENCAPSULATED_DATA (body) => body . ser (version , bytes) , Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (body) => body . ser (version , bytes) , Self :: GOPRO_SET_REQUEST (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_PITCHYAW (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_MESSAGE_PACK (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_INFORMATION (body) => body . ser (version , bytes) , Self :: DEBUG_VECT (body) => body . ser (version , bytes) , Self :: RC_CHANNELS (body) => body . ser (version , bytes) , Self :: SAFETY_ALLOWED_AREA (body) => body . ser (version , bytes) , Self :: SAFETY_SET_ALLOWED_AREA (body) => body . ser (version , bytes) , Self :: MISSION_ACK (body) => body . ser (version , bytes) , Self :: UTM_GLOBAL_POSITION (body) => body . ser (version , bytes) , Self :: FLIGHT_INFORMATION (body) => body . ser (version , bytes) , Self :: ESC_TELEMETRY_1_TO_4 (body) => body . ser (version , bytes) , Self :: LOGGING_ACK (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_LOCATION (body) => body . ser (version , bytes) , Self :: HIGH_LATENCY2 (body) => body . ser (version , bytes) , Self :: TIME_ESTIMATE_TO_TARGET (body) => body . ser (version , bytes) , Self :: ICAROUS_KINEMATIC_BANDS (body) => body . ser (version , bytes) , Self :: FENCE_FETCH_POINT (body) => body . ser (version , bytes) , Self :: HIL_STATE (body) => body . ser (version , bytes) , Self :: DEBUG_FLOAT_ARRAY (body) => body . ser (version , bytes) , Self :: CUBEPILOT_RAW_RC (body) => body . ser (version , bytes) , Self :: ORBIT_EXECUTION_STATUS (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_BASIC_ID (body) => body . ser (version , bytes) , Self :: VFR_HUD (body) => body . ser (version , bytes) , Self :: OSD_PARAM_CONFIG_REPLY (body) => body . ser (version , bytes) , Self :: LIMITS_STATUS (body) => body . ser (version , bytes) , Self :: UAVCAN_NODE_STATUS (body) => body . ser (version , bytes) , Self :: RESOURCE_REQUEST (body) => body . ser (version , bytes) , Self :: MISSION_ITEM_REACHED (body) => body . ser (version , bytes) , Self :: GOPRO_GET_RESPONSE (body) => body . ser (version , bytes) , Self :: GENERATOR_STATUS (body) => body . ser (version , bytes) , Self :: HIL_CONTROLS (body) => body . ser (version , bytes) , Self :: CHANGE_OPERATOR_CONTROL_ACK (body) => body . ser (version , bytes) , Self :: LOGGING_DATA_ACKED (body) => body . ser (version , bytes) , Self :: SET_POSITION_TARGET_GLOBAL_INT (body) => body . ser (version , bytes) , Self :: UAVCAN_NODE_INFO (body) => body . ser (version , bytes) , Self :: SUPPORTED_TUNES (body) => body . ser (version , bytes) , Self :: CHANGE_OPERATOR_CONTROL (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED (body) => body . ser (version , bytes) , Self :: COMMAND_INT (body) => body . ser (version , bytes) , Self :: FENCE_STATUS (body) => body . ser (version , bytes) , Self :: ADAP_TUNING (body) => body . ser (version , bytes) , Self :: VICON_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: MISSION_WRITE_PARTIAL_LIST (body) => body . ser (version , bytes) , Self :: RALLY_POINT (body) => body . ser (version , bytes) , Self :: GPS_STATUS (body) => body . ser (version , bytes) , Self :: OSD_PARAM_CONFIG (body) => body . ser (version , bytes) , Self :: AHRS2 (body) => body . ser (version , bytes) , Self :: ATTITUDE_QUATERNION_COV (body) => body . ser (version , bytes) , Self :: OBSTACLE_DISTANCE_3D (body) => body . ser (version , bytes) , Self :: VISION_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_STATUS (body) => body . ser (version , bytes) , Self :: ACTUATOR_OUTPUT_STATUS (body) => body . ser (version , bytes) , Self :: ESC_STATUS (body) => body . ser (version , bytes) , Self :: RANGEFINDER (body) => body . ser (version , bytes) , Self :: REMOTE_LOG_DATA_BLOCK (body) => body . ser (version , bytes) , Self :: FENCE_POINT (body) => body . ser (version , bytes) , Self :: ESC_TELEMETRY_5_TO_8 (body) => body . ser (version , bytes) , Self :: WIND_COV (body) => body . ser (version , bytes) , Self :: FILE_TRANSFER_PROTOCOL (body) => body . ser (version , bytes) , Self :: MISSION_ITEM (body) => body . ser (version , bytes) , Self :: MANUAL_SETPOINT (body) => body . ser (version , bytes) , Self :: OPTICAL_FLOW (body) => body . ser (version , bytes) , Self :: WHEEL_DISTANCE (body) => body . ser (version , bytes) , Self :: SERVO_OUTPUT_RAW (body) => body . ser (version , bytes) , Self :: POSITION_TARGET_LOCAL_NED (body) => body . ser (version , bytes) , Self :: LOG_ENTRY (body) => body . ser (version , bytes) , Self :: PARAM_SET (body) => body . ser (version , bytes) , Self :: AP_ADC (body) => body . ser (version , bytes) , Self :: SET_POSITION_TARGET_LOCAL_NED (body) => body . ser (version , bytes) , Self :: DEVICE_OP_WRITE_REPLY (body) => body . ser (version , bytes) , Self :: MOUNT_STATUS (body) => body . ser (version , bytes) , Self :: DATA16 (body) => body . ser (version , bytes) , Self :: SIMSTATE (body) => body . ser (version , bytes) , Self :: MAG_CAL_REPORT (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE2 (body) => body . ser (version , bytes) , Self :: CUBEPILOT_FIRMWARE_UPDATE_START (body) => body . ser (version , bytes) , Self :: SET_MODE (body) => body . ser (version , bytes) , Self :: SETUP_SIGNING (body) => body . ser (version , bytes) , Self :: PARAM_EXT_SET (body) => body . ser (version , bytes) , Self :: HOME_POSITION (body) => body . ser (version , bytes) , Self :: RAW_RPM (body) => body . ser (version , bytes) , Self :: ESC_INFO (body) => body . ser (version , bytes) , Self :: AUTH_KEY (body) => body . ser (version , bytes) , Self :: DIGICAM_CONTROL (body) => body . ser (version , bytes) , Self :: GPS2_RTK (body) => body . ser (version , bytes) , Self :: TERRAIN_DATA (body) => body . ser (version , bytes) , Self :: CANFD_FRAME (body) => body . ser (version , bytes) , Self :: SET_ACTUATOR_CONTROL_TARGET (body) => body . ser (version , bytes) , Self :: TIMESYNC (body) => body . ser (version , bytes) , Self :: COMPASSMOT_STATUS (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_INT (body) => body . ser (version , bytes) , Self :: UAVIONIX_ADSB_OUT_DYNAMIC (body) => body . ser (version , bytes) , Self :: DATA96 (body) => body . ser (version , bytes) , Self :: CAMERA_TRACKING_GEO_STATUS (body) => body . ser (version , bytes) , Self :: LOG_DATA (body) => body . ser (version , bytes) , Self :: HERELINK_VIDEO_STREAM_INFORMATION (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_PARTIAL_LIST (body) => body . ser (version , bytes) , Self :: MISSION_SET_CURRENT (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE (body) => body . ser (version , bytes) , Self :: PID_TUNING (body) => body . ser (version , bytes) , Self :: HIGH_LATENCY (body) => body . ser (version , bytes) , Self :: PARAM_EXT_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: CAMERA_FOV_STATUS (body) => body . ser (version , bytes) , Self :: WINCH_STATUS (body) => body . ser (version , bytes) , Self :: HERELINK_TELEM (body) => body . ser (version , bytes) , Self :: VIDEO_STREAM_INFORMATION (body) => body . ser (version , bytes) , Self :: HIL_OPTICAL_FLOW (body) => body . ser (version , bytes) , Self :: CELLULAR_STATUS (body) => body . ser (version , bytes) , Self :: TERRAIN_REPORT (body) => body . ser (version , bytes) , Self :: LOG_ERASE (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_OPERATOR_ID (body) => body . ser (version , bytes) , Self :: SET_MAG_OFFSETS (body) => body . ser (version , bytes) , Self :: GPS2_RAW (body) => body . ser (version , bytes) , Self :: CURRENT_EVENT_SEQUENCE (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SYSTEM (body) => body . ser (version , bytes) , Self :: AHRS (body) => body . ser (version , bytes) , Self :: ATTITUDE (body) => body . ser (version , bytes) , Self :: LOGGING_DATA (body) => body . ser (version , bytes) , Self :: CAMERA_TRIGGER (body) => body . ser (version , bytes) , Self :: AIS_VESSEL (body) => body . ser (version , bytes) , Self :: GLOBAL_VISION_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: MISSION_ITEM_INT (body) => body . ser (version , bytes) , Self :: RAW_PRESSURE (body) => body . ser (version , bytes) , Self :: TERRAIN_REQUEST (body) => body . ser (version , bytes) , Self :: MANUAL_CONTROL (body) => body . ser (version , bytes) , Self :: VIBRATION (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_OVERRIDE (body) => body . ser (version , bytes) , Self :: ICAROUS_HEARTBEAT (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_INFORMATION (body) => body . ser (version , bytes) , Self :: GIMBAL_REPORT (body) => body . ser (version , bytes) , Self :: CONTROL_SYSTEM_STATE (body) => body . ser (version , bytes) , Self :: RESPONSE_EVENT_ERROR (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_ATTITUDE (body) => body . ser (version , bytes) , Self :: AOA_SSA (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE3 (body) => body . ser (version , bytes) , Self :: NAMED_VALUE_INT (body) => body . ser (version , bytes) , Self :: CAMERA_TRACKING_IMAGE_STATUS (body) => body . ser (version , bytes) , Self :: LINK_NODE_STATUS (body) => body . ser (version , bytes) , Self :: MAG_CAL_PROGRESS (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_DATA (body) => body . ser (version , bytes) , Self :: PARAM_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: GPS_RAW_INT (body) => body . ser (version , bytes) , Self :: AUTOPILOT_VERSION_REQUEST (body) => body . ser (version , bytes) , Self :: TUNNEL (body) => body . ser (version , bytes) , Self :: OSD_PARAM_SHOW_CONFIG (body) => body . ser (version , bytes) , Self :: TRAJECTORY_REPRESENTATION_BEZIER (body) => body . ser (version , bytes) , Self :: VISION_SPEED_ESTIMATE (body) => body . ser (version , bytes) , Self :: OBSTACLE_DISTANCE (body) => body . ser (version , bytes) , Self :: SCALED_IMU2 (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST (body) => body . ser (version , bytes) , Self :: LED_CONTROL (body) => body . ser (version , bytes) , Self :: SCALED_IMU3 (body) => body . ser (version , bytes) , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (body) => body . ser (version , bytes) , Self :: COLLISION (body) => body . ser (version , bytes) , Self :: MISSION_COUNT (body) => body . ser (version , bytes) , Self :: ATT_POS_MOCAP (body) => body . ser (version , bytes) , Self :: DATA32 (body) => body . ser (version , bytes) , Self :: PARAM_EXT_VALUE (body) => body . ser (version , bytes) , Self :: AUTOPILOT_VERSION (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (body) => body . ser (version , bytes) , Self :: DATA64 (body) => body . ser (version , bytes) , Self :: ODOMETRY (body) => body . ser (version , bytes) , Self :: PING (body) => body . ser (version , bytes) , Self :: MESSAGE_INTERVAL (body) => body . ser (version , bytes) , Self :: HIL_ACTUATOR_CONTROLS (body) => body . ser (version , bytes) , Self :: EKF_STATUS_REPORT (body) => body . ser (version , bytes) , Self :: AHRS3 (body) => body . ser (version , bytes) , Self :: HIL_STATE_QUATERNION (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (body) => body . ser (version , bytes) , Self :: SET_GPS_GLOBAL_ORIGIN (body) => body . ser (version , bytes) , Self :: POSITION_TARGET_GLOBAL_INT (body) => body . ser (version , bytes) , Self :: ATTITUDE_TARGET (body) => body . ser (version , bytes) , Self :: RADIO (body) => body . ser (version , bytes) , Self :: PARAM_VALUE (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (body) => body . ser (version , bytes) , Self :: ADSB_VEHICLE (body) => body . ser (version , bytes) , Self :: DEVICE_OP_READ (body) => body . ser (version , bytes) , Self :: EVENT (body) => body . ser (version , bytes) , Self :: COMMAND_LONG (body) => body . ser (version , bytes) , Self :: RADIO_STATUS (body) => body . ser (version , bytes) , Self :: MEMORY_VECT (body) => body . ser (version , bytes) , Self :: REQUEST_DATA_STREAM (body) => body . ser (version , bytes) , Self :: WIFI_CONFIG_AP (body) => body . ser (version , bytes) , Self :: ESC_TELEMETRY_9_TO_12 (body) => body . ser (version , bytes) , Self :: HIL_RC_INPUTS_RAW (body) => body . ser (version , bytes) , Self :: RAW_IMU (body) => body . ser (version , bytes) , Self :: EFI_STATUS (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_AUTHENTICATION (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (body) => body . ser (version , bytes) , Self :: CAMERA_INFORMATION (body) => body . ser (version , bytes) , Self :: ATTITUDE_QUATERNION (body) => body . ser (version , bytes) , Self :: SIM_STATE (body) => body . ser (version , bytes) , Self :: MOUNT_CONTROL (body) => body . ser (version , bytes) , Self :: COMMAND_CANCEL (body) => body . ser (version , bytes) , Self :: CAMERA_STATUS (body) => body . ser (version , bytes) , Self :: DEEPSTALL (body) => body . ser (version , bytes) , Self :: COMPONENT_INFORMATION (body) => body . ser (version , bytes) , Self :: GOPRO_GET_REQUEST (body) => body . ser (version , bytes) , Self :: RPM (body) => body . ser (version , bytes) , Self :: CAMERA_IMAGE_CAPTURED (body) => body . ser (version , bytes) , Self :: GLOBAL_POSITION_INT_COV (body) => body . ser (version , bytes) , Self :: GPS_INPUT (body) => body . ser (version , bytes) , Self :: GIMBAL_CONTROL (body) => body . ser (version , bytes) , Self :: MOUNT_ORIENTATION (body) => body . ser (version , bytes) , Self :: DEVICE_OP_READ_REPLY (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_RAW (body) => body . ser (version , bytes) , Self :: DATA_STREAM (body) => body . ser (version , bytes) , Self :: MISSION_CLEAR_ALL (body) => body . ser (version , bytes) , Self :: HIL_GPS (body) => body . ser (version , bytes) , Self :: PARAM_MAP_RC (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_SET_ATTITUDE (body) => body . ser (version , bytes) , Self :: CAMERA_SETTINGS (body) => body . ser (version , bytes) , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (body) => body . ser (version , bytes) , Self :: ONBOARD_COMPUTER_STATUS (body) => body . ser (version , bytes) , Self :: HWSTATUS (body) => body . ser (version , bytes) , Self :: RALLY_FETCH_POINT (body) => body . ser (version , bytes) , } } fn extra_crc (id : u32) -> u8 { match id { OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => OPEN_DRONE_ID_ARM_STATUS_DATA :: EXTRA_CRC , STORAGE_INFORMATION_DATA :: ID => STORAGE_INFORMATION_DATA :: EXTRA_CRC , MEMINFO_DATA :: ID => MEMINFO_DATA :: EXTRA_CRC , HEARTBEAT_DATA :: ID => HEARTBEAT_DATA :: EXTRA_CRC , MCU_STATUS_DATA :: ID => MCU_STATUS_DATA :: EXTRA_CRC , ALTITUDE_DATA :: ID => ALTITUDE_DATA :: EXTRA_CRC , COMMAND_ACK_DATA :: ID => COMMAND_ACK_DATA :: EXTRA_CRC , DEBUG_DATA :: ID => DEBUG_DATA :: EXTRA_CRC , PARAM_EXT_ACK_DATA :: ID => PARAM_EXT_ACK_DATA :: EXTRA_CRC , REMOTE_LOG_BLOCK_STATUS_DATA :: ID => REMOTE_LOG_BLOCK_STATUS_DATA :: EXTRA_CRC , OPTICAL_FLOW_RAD_DATA :: ID => OPTICAL_FLOW_RAD_DATA :: EXTRA_CRC , GPS_RTCM_DATA_DATA :: ID => GPS_RTCM_DATA_DATA :: EXTRA_CRC , REQUEST_EVENT_DATA :: ID => REQUEST_EVENT_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_COV_DATA :: ID => LOCAL_POSITION_NED_COV_DATA :: EXTRA_CRC , VISION_POSITION_DELTA_DATA :: ID => VISION_POSITION_DELTA_DATA :: EXTRA_CRC , PLAY_TUNE_DATA :: ID => PLAY_TUNE_DATA :: EXTRA_CRC , OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: ID => OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: EXTRA_CRC , CELLULAR_CONFIG_DATA :: ID => CELLULAR_CONFIG_DATA :: EXTRA_CRC , SET_ATTITUDE_TARGET_DATA :: ID => SET_ATTITUDE_TARGET_DATA :: EXTRA_CRC , GPS_GLOBAL_ORIGIN_DATA :: ID => GPS_GLOBAL_ORIGIN_DATA :: EXTRA_CRC , DISTANCE_SENSOR_DATA :: ID => DISTANCE_SENSOR_DATA :: EXTRA_CRC , EXTENDED_SYS_STATE_DATA :: ID => EXTENDED_SYS_STATE_DATA :: EXTRA_CRC , LANDING_TARGET_DATA :: ID => LANDING_TARGET_DATA :: EXTRA_CRC , NAV_CONTROLLER_OUTPUT_DATA :: ID => NAV_CONTROLLER_OUTPUT_DATA :: EXTRA_CRC , NAMED_VALUE_FLOAT_DATA :: ID => NAMED_VALUE_FLOAT_DATA :: EXTRA_CRC , ESTIMATOR_STATUS_DATA :: ID => ESTIMATOR_STATUS_DATA :: EXTRA_CRC , SET_HOME_POSITION_DATA :: ID => SET_HOME_POSITION_DATA :: EXTRA_CRC , UAVIONIX_ADSB_OUT_CFG_DATA :: ID => UAVIONIX_ADSB_OUT_CFG_DATA :: EXTRA_CRC , MOUNT_CONFIGURE_DATA :: ID => MOUNT_CONFIGURE_DATA :: EXTRA_CRC , PARAM_EXT_REQUEST_READ_DATA :: ID => PARAM_EXT_REQUEST_READ_DATA :: EXTRA_CRC , CAMERA_FEEDBACK_DATA :: ID => CAMERA_FEEDBACK_DATA :: EXTRA_CRC , SERIAL_CONTROL_DATA :: ID => SERIAL_CONTROL_DATA :: EXTRA_CRC , CAMERA_CAPTURE_STATUS_DATA :: ID => CAMERA_CAPTURE_STATUS_DATA :: EXTRA_CRC , V2_EXTENSION_DATA :: ID => V2_EXTENSION_DATA :: EXTRA_CRC , COMPONENT_METADATA_DATA :: ID => COMPONENT_METADATA_DATA :: EXTRA_CRC , DIGICAM_CONFIGURE_DATA :: ID => DIGICAM_CONFIGURE_DATA :: EXTRA_CRC , BUTTON_CHANGE_DATA :: ID => BUTTON_CHANGE_DATA :: EXTRA_CRC , STATUSTEXT_DATA :: ID => STATUSTEXT_DATA :: EXTRA_CRC , CAN_FRAME_DATA :: ID => CAN_FRAME_DATA :: EXTRA_CRC , ISBD_LINK_STATUS_DATA :: ID => ISBD_LINK_STATUS_DATA :: EXTRA_CRC , SENSOR_OFFSETS_DATA :: ID => SENSOR_OFFSETS_DATA :: EXTRA_CRC , BATTERY2_DATA :: ID => BATTERY2_DATA :: EXTRA_CRC , SCALED_IMU_DATA :: ID => SCALED_IMU_DATA :: EXTRA_CRC , VIDEO_STREAM_STATUS_DATA :: ID => VIDEO_STREAM_STATUS_DATA :: EXTRA_CRC , BATTERY_STATUS_DATA :: ID => BATTERY_STATUS_DATA :: EXTRA_CRC , DEVICE_OP_WRITE_DATA :: ID => DEVICE_OP_WRITE_DATA :: EXTRA_CRC , HIGHRES_IMU_DATA :: ID => HIGHRES_IMU_DATA :: EXTRA_CRC , GOPRO_HEARTBEAT_DATA :: ID => GOPRO_HEARTBEAT_DATA :: EXTRA_CRC , WATER_DEPTH_DATA :: ID => WATER_DEPTH_DATA :: EXTRA_CRC , HIL_SENSOR_DATA :: ID => HIL_SENSOR_DATA :: EXTRA_CRC , POWER_STATUS_DATA :: ID => POWER_STATUS_DATA :: EXTRA_CRC , SYS_STATUS_DATA :: ID => SYS_STATUS_DATA :: EXTRA_CRC , CAN_FILTER_MODIFY_DATA :: ID => CAN_FILTER_MODIFY_DATA :: EXTRA_CRC , RC_CHANNELS_SCALED_DATA :: ID => RC_CHANNELS_SCALED_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SELF_ID_DATA :: ID => OPEN_DRONE_ID_SELF_ID_DATA :: EXTRA_CRC , PARAM_REQUEST_READ_DATA :: ID => PARAM_REQUEST_READ_DATA :: EXTRA_CRC , PLAY_TUNE_V2_DATA :: ID => PLAY_TUNE_V2_DATA :: EXTRA_CRC , TERRAIN_CHECK_DATA :: ID => TERRAIN_CHECK_DATA :: EXTRA_CRC , GPS_RTK_DATA :: ID => GPS_RTK_DATA :: EXTRA_CRC , FOLLOW_TARGET_DATA :: ID => FOLLOW_TARGET_DATA :: EXTRA_CRC , WIND_DATA :: ID => WIND_DATA :: EXTRA_CRC , MISSION_CURRENT_DATA :: ID => MISSION_CURRENT_DATA :: EXTRA_CRC , GIMBAL_TORQUE_CMD_REPORT_DATA :: ID => GIMBAL_TORQUE_CMD_REPORT_DATA :: EXTRA_CRC , GOPRO_SET_RESPONSE_DATA :: ID => GOPRO_SET_RESPONSE_DATA :: EXTRA_CRC , GPS_INJECT_DATA_DATA :: ID => GPS_INJECT_DATA_DATA :: EXTRA_CRC , SMART_BATTERY_INFO_DATA :: ID => SMART_BATTERY_INFO_DATA :: EXTRA_CRC , ACTUATOR_CONTROL_TARGET_DATA :: ID => ACTUATOR_CONTROL_TARGET_DATA :: EXTRA_CRC , CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: ID => CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: EXTRA_CRC , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => DATA_TRANSMISSION_HANDSHAKE_DATA :: EXTRA_CRC , HYGROMETER_SENSOR_DATA :: ID => HYGROMETER_SENSOR_DATA :: EXTRA_CRC , SYSTEM_TIME_DATA :: ID => SYSTEM_TIME_DATA :: EXTRA_CRC , LOG_REQUEST_END_DATA :: ID => LOG_REQUEST_END_DATA :: EXTRA_CRC , PROTOCOL_VERSION_DATA :: ID => PROTOCOL_VERSION_DATA :: EXTRA_CRC , AIRSPEED_AUTOCAL_DATA :: ID => AIRSPEED_AUTOCAL_DATA :: EXTRA_CRC , GLOBAL_POSITION_INT_DATA :: ID => GLOBAL_POSITION_INT_DATA :: EXTRA_CRC , ENCAPSULATED_DATA_DATA :: ID => ENCAPSULATED_DATA_DATA :: EXTRA_CRC , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: EXTRA_CRC , GOPRO_SET_REQUEST_DATA :: ID => GOPRO_SET_REQUEST_DATA :: EXTRA_CRC , LOG_REQUEST_LIST_DATA :: ID => LOG_REQUEST_LIST_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: EXTRA_CRC , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: EXTRA_CRC , GIMBAL_MANAGER_INFORMATION_DATA :: ID => GIMBAL_MANAGER_INFORMATION_DATA :: EXTRA_CRC , DEBUG_VECT_DATA :: ID => DEBUG_VECT_DATA :: EXTRA_CRC , RC_CHANNELS_DATA :: ID => RC_CHANNELS_DATA :: EXTRA_CRC , SAFETY_ALLOWED_AREA_DATA :: ID => SAFETY_ALLOWED_AREA_DATA :: EXTRA_CRC , SAFETY_SET_ALLOWED_AREA_DATA :: ID => SAFETY_SET_ALLOWED_AREA_DATA :: EXTRA_CRC , MISSION_ACK_DATA :: ID => MISSION_ACK_DATA :: EXTRA_CRC , UTM_GLOBAL_POSITION_DATA :: ID => UTM_GLOBAL_POSITION_DATA :: EXTRA_CRC , FLIGHT_INFORMATION_DATA :: ID => FLIGHT_INFORMATION_DATA :: EXTRA_CRC , ESC_TELEMETRY_1_TO_4_DATA :: ID => ESC_TELEMETRY_1_TO_4_DATA :: EXTRA_CRC , LOGGING_ACK_DATA :: ID => LOGGING_ACK_DATA :: EXTRA_CRC , OPEN_DRONE_ID_LOCATION_DATA :: ID => OPEN_DRONE_ID_LOCATION_DATA :: EXTRA_CRC , HIGH_LATENCY2_DATA :: ID => HIGH_LATENCY2_DATA :: EXTRA_CRC , TIME_ESTIMATE_TO_TARGET_DATA :: ID => TIME_ESTIMATE_TO_TARGET_DATA :: EXTRA_CRC , ICAROUS_KINEMATIC_BANDS_DATA :: ID => ICAROUS_KINEMATIC_BANDS_DATA :: EXTRA_CRC , FENCE_FETCH_POINT_DATA :: ID => FENCE_FETCH_POINT_DATA :: EXTRA_CRC , HIL_STATE_DATA :: ID => HIL_STATE_DATA :: EXTRA_CRC , DEBUG_FLOAT_ARRAY_DATA :: ID => DEBUG_FLOAT_ARRAY_DATA :: EXTRA_CRC , CUBEPILOT_RAW_RC_DATA :: ID => CUBEPILOT_RAW_RC_DATA :: EXTRA_CRC , ORBIT_EXECUTION_STATUS_DATA :: ID => ORBIT_EXECUTION_STATUS_DATA :: EXTRA_CRC , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => OPEN_DRONE_ID_BASIC_ID_DATA :: EXTRA_CRC , VFR_HUD_DATA :: ID => VFR_HUD_DATA :: EXTRA_CRC , OSD_PARAM_CONFIG_REPLY_DATA :: ID => OSD_PARAM_CONFIG_REPLY_DATA :: EXTRA_CRC , LIMITS_STATUS_DATA :: ID => LIMITS_STATUS_DATA :: EXTRA_CRC , UAVCAN_NODE_STATUS_DATA :: ID => UAVCAN_NODE_STATUS_DATA :: EXTRA_CRC , RESOURCE_REQUEST_DATA :: ID => RESOURCE_REQUEST_DATA :: EXTRA_CRC , MISSION_ITEM_REACHED_DATA :: ID => MISSION_ITEM_REACHED_DATA :: EXTRA_CRC , GOPRO_GET_RESPONSE_DATA :: ID => GOPRO_GET_RESPONSE_DATA :: EXTRA_CRC , GENERATOR_STATUS_DATA :: ID => GENERATOR_STATUS_DATA :: EXTRA_CRC , HIL_CONTROLS_DATA :: ID => HIL_CONTROLS_DATA :: EXTRA_CRC , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => CHANGE_OPERATOR_CONTROL_ACK_DATA :: EXTRA_CRC , LOGGING_DATA_ACKED_DATA :: ID => LOGGING_DATA_ACKED_DATA :: EXTRA_CRC , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => SET_POSITION_TARGET_GLOBAL_INT_DATA :: EXTRA_CRC , UAVCAN_NODE_INFO_DATA :: ID => UAVCAN_NODE_INFO_DATA :: EXTRA_CRC , SUPPORTED_TUNES_DATA :: ID => SUPPORTED_TUNES_DATA :: EXTRA_CRC , CHANGE_OPERATOR_CONTROL_DATA :: ID => CHANGE_OPERATOR_CONTROL_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_DATA :: ID => LOCAL_POSITION_NED_DATA :: EXTRA_CRC , COMMAND_INT_DATA :: ID => COMMAND_INT_DATA :: EXTRA_CRC , FENCE_STATUS_DATA :: ID => FENCE_STATUS_DATA :: EXTRA_CRC , ADAP_TUNING_DATA :: ID => ADAP_TUNING_DATA :: EXTRA_CRC , VICON_POSITION_ESTIMATE_DATA :: ID => VICON_POSITION_ESTIMATE_DATA :: EXTRA_CRC , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => MISSION_WRITE_PARTIAL_LIST_DATA :: EXTRA_CRC , RALLY_POINT_DATA :: ID => RALLY_POINT_DATA :: EXTRA_CRC , GPS_STATUS_DATA :: ID => GPS_STATUS_DATA :: EXTRA_CRC , OSD_PARAM_CONFIG_DATA :: ID => OSD_PARAM_CONFIG_DATA :: EXTRA_CRC , AHRS2_DATA :: ID => AHRS2_DATA :: EXTRA_CRC , ATTITUDE_QUATERNION_COV_DATA :: ID => ATTITUDE_QUATERNION_COV_DATA :: EXTRA_CRC , OBSTACLE_DISTANCE_3D_DATA :: ID => OBSTACLE_DISTANCE_3D_DATA :: EXTRA_CRC , VISION_POSITION_ESTIMATE_DATA :: ID => VISION_POSITION_ESTIMATE_DATA :: EXTRA_CRC , GIMBAL_MANAGER_STATUS_DATA :: ID => GIMBAL_MANAGER_STATUS_DATA :: EXTRA_CRC , ACTUATOR_OUTPUT_STATUS_DATA :: ID => ACTUATOR_OUTPUT_STATUS_DATA :: EXTRA_CRC , ESC_STATUS_DATA :: ID => ESC_STATUS_DATA :: EXTRA_CRC , RANGEFINDER_DATA :: ID => RANGEFINDER_DATA :: EXTRA_CRC , REMOTE_LOG_DATA_BLOCK_DATA :: ID => REMOTE_LOG_DATA_BLOCK_DATA :: EXTRA_CRC , FENCE_POINT_DATA :: ID => FENCE_POINT_DATA :: EXTRA_CRC , ESC_TELEMETRY_5_TO_8_DATA :: ID => ESC_TELEMETRY_5_TO_8_DATA :: EXTRA_CRC , WIND_COV_DATA :: ID => WIND_COV_DATA :: EXTRA_CRC , FILE_TRANSFER_PROTOCOL_DATA :: ID => FILE_TRANSFER_PROTOCOL_DATA :: EXTRA_CRC , MISSION_ITEM_DATA :: ID => MISSION_ITEM_DATA :: EXTRA_CRC , MANUAL_SETPOINT_DATA :: ID => MANUAL_SETPOINT_DATA :: EXTRA_CRC , OPTICAL_FLOW_DATA :: ID => OPTICAL_FLOW_DATA :: EXTRA_CRC , WHEEL_DISTANCE_DATA :: ID => WHEEL_DISTANCE_DATA :: EXTRA_CRC , SERVO_OUTPUT_RAW_DATA :: ID => SERVO_OUTPUT_RAW_DATA :: EXTRA_CRC , POSITION_TARGET_LOCAL_NED_DATA :: ID => POSITION_TARGET_LOCAL_NED_DATA :: EXTRA_CRC , LOG_ENTRY_DATA :: ID => LOG_ENTRY_DATA :: EXTRA_CRC , PARAM_SET_DATA :: ID => PARAM_SET_DATA :: EXTRA_CRC , AP_ADC_DATA :: ID => AP_ADC_DATA :: EXTRA_CRC , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => SET_POSITION_TARGET_LOCAL_NED_DATA :: EXTRA_CRC , DEVICE_OP_WRITE_REPLY_DATA :: ID => DEVICE_OP_WRITE_REPLY_DATA :: EXTRA_CRC , MOUNT_STATUS_DATA :: ID => MOUNT_STATUS_DATA :: EXTRA_CRC , DATA16_DATA :: ID => DATA16_DATA :: EXTRA_CRC , SIMSTATE_DATA :: ID => SIMSTATE_DATA :: EXTRA_CRC , MAG_CAL_REPORT_DATA :: ID => MAG_CAL_REPORT_DATA :: EXTRA_CRC , SCALED_PRESSURE2_DATA :: ID => SCALED_PRESSURE2_DATA :: EXTRA_CRC , CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: ID => CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: EXTRA_CRC , SET_MODE_DATA :: ID => SET_MODE_DATA :: EXTRA_CRC , SETUP_SIGNING_DATA :: ID => SETUP_SIGNING_DATA :: EXTRA_CRC , PARAM_EXT_SET_DATA :: ID => PARAM_EXT_SET_DATA :: EXTRA_CRC , HOME_POSITION_DATA :: ID => HOME_POSITION_DATA :: EXTRA_CRC , RAW_RPM_DATA :: ID => RAW_RPM_DATA :: EXTRA_CRC , ESC_INFO_DATA :: ID => ESC_INFO_DATA :: EXTRA_CRC , AUTH_KEY_DATA :: ID => AUTH_KEY_DATA :: EXTRA_CRC , DIGICAM_CONTROL_DATA :: ID => DIGICAM_CONTROL_DATA :: EXTRA_CRC , GPS2_RTK_DATA :: ID => GPS2_RTK_DATA :: EXTRA_CRC , TERRAIN_DATA_DATA :: ID => TERRAIN_DATA_DATA :: EXTRA_CRC , CANFD_FRAME_DATA :: ID => CANFD_FRAME_DATA :: EXTRA_CRC , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => SET_ACTUATOR_CONTROL_TARGET_DATA :: EXTRA_CRC , TIMESYNC_DATA :: ID => TIMESYNC_DATA :: EXTRA_CRC , COMPASSMOT_STATUS_DATA :: ID => COMPASSMOT_STATUS_DATA :: EXTRA_CRC , MISSION_REQUEST_INT_DATA :: ID => MISSION_REQUEST_INT_DATA :: EXTRA_CRC , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: EXTRA_CRC , DATA96_DATA :: ID => DATA96_DATA :: EXTRA_CRC , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => CAMERA_TRACKING_GEO_STATUS_DATA :: EXTRA_CRC , LOG_DATA_DATA :: ID => LOG_DATA_DATA :: EXTRA_CRC , HERELINK_VIDEO_STREAM_INFORMATION_DATA :: ID => HERELINK_VIDEO_STREAM_INFORMATION_DATA :: EXTRA_CRC , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => MISSION_REQUEST_PARTIAL_LIST_DATA :: EXTRA_CRC , MISSION_SET_CURRENT_DATA :: ID => MISSION_SET_CURRENT_DATA :: EXTRA_CRC , SCALED_PRESSURE_DATA :: ID => SCALED_PRESSURE_DATA :: EXTRA_CRC , PID_TUNING_DATA :: ID => PID_TUNING_DATA :: EXTRA_CRC , HIGH_LATENCY_DATA :: ID => HIGH_LATENCY_DATA :: EXTRA_CRC , PARAM_EXT_REQUEST_LIST_DATA :: ID => PARAM_EXT_REQUEST_LIST_DATA :: EXTRA_CRC , CAMERA_FOV_STATUS_DATA :: ID => CAMERA_FOV_STATUS_DATA :: EXTRA_CRC , WINCH_STATUS_DATA :: ID => WINCH_STATUS_DATA :: EXTRA_CRC , HERELINK_TELEM_DATA :: ID => HERELINK_TELEM_DATA :: EXTRA_CRC , VIDEO_STREAM_INFORMATION_DATA :: ID => VIDEO_STREAM_INFORMATION_DATA :: EXTRA_CRC , HIL_OPTICAL_FLOW_DATA :: ID => HIL_OPTICAL_FLOW_DATA :: EXTRA_CRC , CELLULAR_STATUS_DATA :: ID => CELLULAR_STATUS_DATA :: EXTRA_CRC , TERRAIN_REPORT_DATA :: ID => TERRAIN_REPORT_DATA :: EXTRA_CRC , LOG_ERASE_DATA :: ID => LOG_ERASE_DATA :: EXTRA_CRC , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => OPEN_DRONE_ID_OPERATOR_ID_DATA :: EXTRA_CRC , SET_MAG_OFFSETS_DATA :: ID => SET_MAG_OFFSETS_DATA :: EXTRA_CRC , GPS2_RAW_DATA :: ID => GPS2_RAW_DATA :: EXTRA_CRC , CURRENT_EVENT_SEQUENCE_DATA :: ID => CURRENT_EVENT_SEQUENCE_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SYSTEM_DATA :: ID => OPEN_DRONE_ID_SYSTEM_DATA :: EXTRA_CRC , AHRS_DATA :: ID => AHRS_DATA :: EXTRA_CRC , ATTITUDE_DATA :: ID => ATTITUDE_DATA :: EXTRA_CRC , LOGGING_DATA_DATA :: ID => LOGGING_DATA_DATA :: EXTRA_CRC , CAMERA_TRIGGER_DATA :: ID => CAMERA_TRIGGER_DATA :: EXTRA_CRC , AIS_VESSEL_DATA :: ID => AIS_VESSEL_DATA :: EXTRA_CRC , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: EXTRA_CRC , MISSION_ITEM_INT_DATA :: ID => MISSION_ITEM_INT_DATA :: EXTRA_CRC , RAW_PRESSURE_DATA :: ID => RAW_PRESSURE_DATA :: EXTRA_CRC , TERRAIN_REQUEST_DATA :: ID => TERRAIN_REQUEST_DATA :: EXTRA_CRC , MANUAL_CONTROL_DATA :: ID => MANUAL_CONTROL_DATA :: EXTRA_CRC , VIBRATION_DATA :: ID => VIBRATION_DATA :: EXTRA_CRC , RC_CHANNELS_OVERRIDE_DATA :: ID => RC_CHANNELS_OVERRIDE_DATA :: EXTRA_CRC , ICAROUS_HEARTBEAT_DATA :: ID => ICAROUS_HEARTBEAT_DATA :: EXTRA_CRC , GIMBAL_DEVICE_INFORMATION_DATA :: ID => GIMBAL_DEVICE_INFORMATION_DATA :: EXTRA_CRC , GIMBAL_REPORT_DATA :: ID => GIMBAL_REPORT_DATA :: EXTRA_CRC , CONTROL_SYSTEM_STATE_DATA :: ID => CONTROL_SYSTEM_STATE_DATA :: EXTRA_CRC , RESPONSE_EVENT_ERROR_DATA :: ID => RESPONSE_EVENT_ERROR_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: EXTRA_CRC , AOA_SSA_DATA :: ID => AOA_SSA_DATA :: EXTRA_CRC , SCALED_PRESSURE3_DATA :: ID => SCALED_PRESSURE3_DATA :: EXTRA_CRC , NAMED_VALUE_INT_DATA :: ID => NAMED_VALUE_INT_DATA :: EXTRA_CRC , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => CAMERA_TRACKING_IMAGE_STATUS_DATA :: EXTRA_CRC , LINK_NODE_STATUS_DATA :: ID => LINK_NODE_STATUS_DATA :: EXTRA_CRC , MAG_CAL_PROGRESS_DATA :: ID => MAG_CAL_PROGRESS_DATA :: EXTRA_CRC , LOG_REQUEST_DATA_DATA :: ID => LOG_REQUEST_DATA_DATA :: EXTRA_CRC , PARAM_REQUEST_LIST_DATA :: ID => PARAM_REQUEST_LIST_DATA :: EXTRA_CRC , GPS_RAW_INT_DATA :: ID => GPS_RAW_INT_DATA :: EXTRA_CRC , AUTOPILOT_VERSION_REQUEST_DATA :: ID => AUTOPILOT_VERSION_REQUEST_DATA :: EXTRA_CRC , TUNNEL_DATA :: ID => TUNNEL_DATA :: EXTRA_CRC , OSD_PARAM_SHOW_CONFIG_DATA :: ID => OSD_PARAM_SHOW_CONFIG_DATA :: EXTRA_CRC , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: EXTRA_CRC , VISION_SPEED_ESTIMATE_DATA :: ID => VISION_SPEED_ESTIMATE_DATA :: EXTRA_CRC , OBSTACLE_DISTANCE_DATA :: ID => OBSTACLE_DISTANCE_DATA :: EXTRA_CRC , SCALED_IMU2_DATA :: ID => SCALED_IMU2_DATA :: EXTRA_CRC , MISSION_REQUEST_DATA :: ID => MISSION_REQUEST_DATA :: EXTRA_CRC , LED_CONTROL_DATA :: ID => LED_CONTROL_DATA :: EXTRA_CRC , SCALED_IMU3_DATA :: ID => SCALED_IMU3_DATA :: EXTRA_CRC , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: EXTRA_CRC , COLLISION_DATA :: ID => COLLISION_DATA :: EXTRA_CRC , MISSION_COUNT_DATA :: ID => MISSION_COUNT_DATA :: EXTRA_CRC , ATT_POS_MOCAP_DATA :: ID => ATT_POS_MOCAP_DATA :: EXTRA_CRC , DATA32_DATA :: ID => DATA32_DATA :: EXTRA_CRC , PARAM_EXT_VALUE_DATA :: ID => PARAM_EXT_VALUE_DATA :: EXTRA_CRC , AUTOPILOT_VERSION_DATA :: ID => AUTOPILOT_VERSION_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: EXTRA_CRC , DATA64_DATA :: ID => DATA64_DATA :: EXTRA_CRC , ODOMETRY_DATA :: ID => ODOMETRY_DATA :: EXTRA_CRC , PING_DATA :: ID => PING_DATA :: EXTRA_CRC , MESSAGE_INTERVAL_DATA :: ID => MESSAGE_INTERVAL_DATA :: EXTRA_CRC , HIL_ACTUATOR_CONTROLS_DATA :: ID => HIL_ACTUATOR_CONTROLS_DATA :: EXTRA_CRC , EKF_STATUS_REPORT_DATA :: ID => EKF_STATUS_REPORT_DATA :: EXTRA_CRC , AHRS3_DATA :: ID => AHRS3_DATA :: EXTRA_CRC , HIL_STATE_QUATERNION_DATA :: ID => HIL_STATE_QUATERNION_DATA :: EXTRA_CRC , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: EXTRA_CRC , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => SET_GPS_GLOBAL_ORIGIN_DATA :: EXTRA_CRC , POSITION_TARGET_GLOBAL_INT_DATA :: ID => POSITION_TARGET_GLOBAL_INT_DATA :: EXTRA_CRC , ATTITUDE_TARGET_DATA :: ID => ATTITUDE_TARGET_DATA :: EXTRA_CRC , RADIO_DATA :: ID => RADIO_DATA :: EXTRA_CRC , PARAM_VALUE_DATA :: ID => PARAM_VALUE_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: EXTRA_CRC , ADSB_VEHICLE_DATA :: ID => ADSB_VEHICLE_DATA :: EXTRA_CRC , DEVICE_OP_READ_DATA :: ID => DEVICE_OP_READ_DATA :: EXTRA_CRC , EVENT_DATA :: ID => EVENT_DATA :: EXTRA_CRC , COMMAND_LONG_DATA :: ID => COMMAND_LONG_DATA :: EXTRA_CRC , RADIO_STATUS_DATA :: ID => RADIO_STATUS_DATA :: EXTRA_CRC , MEMORY_VECT_DATA :: ID => MEMORY_VECT_DATA :: EXTRA_CRC , REQUEST_DATA_STREAM_DATA :: ID => REQUEST_DATA_STREAM_DATA :: EXTRA_CRC , WIFI_CONFIG_AP_DATA :: ID => WIFI_CONFIG_AP_DATA :: EXTRA_CRC , ESC_TELEMETRY_9_TO_12_DATA :: ID => ESC_TELEMETRY_9_TO_12_DATA :: EXTRA_CRC , HIL_RC_INPUTS_RAW_DATA :: ID => HIL_RC_INPUTS_RAW_DATA :: EXTRA_CRC , RAW_IMU_DATA :: ID => RAW_IMU_DATA :: EXTRA_CRC , EFI_STATUS_DATA :: ID => EFI_STATUS_DATA :: EXTRA_CRC , MISSION_REQUEST_LIST_DATA :: ID => MISSION_REQUEST_LIST_DATA :: EXTRA_CRC , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => OPEN_DRONE_ID_AUTHENTICATION_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: EXTRA_CRC , CAMERA_INFORMATION_DATA :: ID => CAMERA_INFORMATION_DATA :: EXTRA_CRC , ATTITUDE_QUATERNION_DATA :: ID => ATTITUDE_QUATERNION_DATA :: EXTRA_CRC , SIM_STATE_DATA :: ID => SIM_STATE_DATA :: EXTRA_CRC , MOUNT_CONTROL_DATA :: ID => MOUNT_CONTROL_DATA :: EXTRA_CRC , COMMAND_CANCEL_DATA :: ID => COMMAND_CANCEL_DATA :: EXTRA_CRC , CAMERA_STATUS_DATA :: ID => CAMERA_STATUS_DATA :: EXTRA_CRC , DEEPSTALL_DATA :: ID => DEEPSTALL_DATA :: EXTRA_CRC , COMPONENT_INFORMATION_DATA :: ID => COMPONENT_INFORMATION_DATA :: EXTRA_CRC , GOPRO_GET_REQUEST_DATA :: ID => GOPRO_GET_REQUEST_DATA :: EXTRA_CRC , RPM_DATA :: ID => RPM_DATA :: EXTRA_CRC , CAMERA_IMAGE_CAPTURED_DATA :: ID => CAMERA_IMAGE_CAPTURED_DATA :: EXTRA_CRC , GLOBAL_POSITION_INT_COV_DATA :: ID => GLOBAL_POSITION_INT_COV_DATA :: EXTRA_CRC , GPS_INPUT_DATA :: ID => GPS_INPUT_DATA :: EXTRA_CRC , GIMBAL_CONTROL_DATA :: ID => GIMBAL_CONTROL_DATA :: EXTRA_CRC , MOUNT_ORIENTATION_DATA :: ID => MOUNT_ORIENTATION_DATA :: EXTRA_CRC , DEVICE_OP_READ_REPLY_DATA :: ID => DEVICE_OP_READ_REPLY_DATA :: EXTRA_CRC , RC_CHANNELS_RAW_DATA :: ID => RC_CHANNELS_RAW_DATA :: EXTRA_CRC , DATA_STREAM_DATA :: ID => DATA_STREAM_DATA :: EXTRA_CRC , MISSION_CLEAR_ALL_DATA :: ID => MISSION_CLEAR_ALL_DATA :: EXTRA_CRC , HIL_GPS_DATA :: ID => HIL_GPS_DATA :: EXTRA_CRC , PARAM_MAP_RC_DATA :: ID => PARAM_MAP_RC_DATA :: EXTRA_CRC , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: EXTRA_CRC , CAMERA_SETTINGS_DATA :: ID => CAMERA_SETTINGS_DATA :: EXTRA_CRC , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: EXTRA_CRC , ONBOARD_COMPUTER_STATUS_DATA :: ID => ONBOARD_COMPUTER_STATUS_DATA :: EXTRA_CRC , HWSTATUS_DATA :: ID => HWSTATUS_DATA :: EXTRA_CRC , RALLY_FETCH_POINT_DATA :: ID => RALLY_FETCH_POINT_DATA :: EXTRA_CRC , _ => { 0 } , } } }
+
# ! [doc = "This file was automatically generated, do not edit"] # [allow (unused_imports)] use num_derive :: FromPrimitive ; # [allow (unused_imports)] use num_traits :: FromPrimitive ; # [allow (unused_imports)] use num_derive :: ToPrimitive ; # [allow (unused_imports)] use num_traits :: ToPrimitive ; # [allow (unused_imports)] use bitflags :: bitflags ; use mavlink_core :: { MavlinkVersion , Message , MessageData , bytes :: Bytes , bytes_mut :: BytesMut } ; # [cfg (feature = "serde")] use serde :: { Serialize , Deserialize } ; # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproProtuneColour { GOPRO_PROTUNE_COLOUR_STANDARD = 0 , GOPRO_PROTUNE_COLOUR_NEUTRAL = 1 , } impl GoproProtuneColour { pub const DEFAULT : Self = Self :: GOPRO_PROTUNE_COLOUR_STANDARD ; } impl Default for GoproProtuneColour { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavProtocolCapability : u64 { const MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT = 1 ; const MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT = 2 ; const MAV_PROTOCOL_CAPABILITY_MISSION_INT = 4 ; const MAV_PROTOCOL_CAPABILITY_COMMAND_INT = 8 ; const MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE = 16 ; const MAV_PROTOCOL_CAPABILITY_FTP = 32 ; const MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET = 64 ; const MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED = 128 ; const MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT = 256 ; const MAV_PROTOCOL_CAPABILITY_TERRAIN = 512 ; const MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET = 1024 ; const MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION = 2048 ; const MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION = 4096 ; const MAV_PROTOCOL_CAPABILITY_MAVLINK2 = 8192 ; const MAV_PROTOCOL_CAPABILITY_MISSION_FENCE = 16384 ; const MAV_PROTOCOL_CAPABILITY_MISSION_RALLY = 32768 ; const MAV_PROTOCOL_CAPABILITY_RESERVED2 = 65536 ; const MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST = 131072 ; } } impl MavProtocolCapability { pub const DEFAULT : Self = Self :: MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT ; } impl Default for MavProtocolCapability { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionThreatLevel { MAV_COLLISION_THREAT_LEVEL_NONE = 0 , MAV_COLLISION_THREAT_LEVEL_LOW = 1 , MAV_COLLISION_THREAT_LEVEL_HIGH = 2 , } impl MavCollisionThreatLevel { pub const DEFAULT : Self = Self :: MAV_COLLISION_THREAT_LEVEL_NONE ; } impl Default for MavCollisionThreatLevel { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavPowerStatus : u16 { const MAV_POWER_STATUS_BRICK_VALID = 1 ; const MAV_POWER_STATUS_SERVO_VALID = 2 ; const MAV_POWER_STATUS_USB_CONNECTED = 4 ; const MAV_POWER_STATUS_PERIPH_OVERCURRENT = 8 ; const MAV_POWER_STATUS_PERIPH_HIPOWER_OVERCURRENT = 16 ; const MAV_POWER_STATUS_CHANGED = 32 ; } } impl MavPowerStatus { pub const DEFAULT : Self = Self :: MAV_POWER_STATUS_BRICK_VALID ; } impl Default for MavPowerStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ParamAck { PARAM_ACK_ACCEPTED = 0 , PARAM_ACK_VALUE_UNSUPPORTED = 1 , PARAM_ACK_FAILED = 2 , PARAM_ACK_IN_PROGRESS = 3 , } impl ParamAck { pub const DEFAULT : Self = Self :: PARAM_ACK_ACCEPTED ; } impl Default for ParamAck { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidHeightRef { MAV_ODID_HEIGHT_REF_OVER_TAKEOFF = 0 , MAV_ODID_HEIGHT_REF_OVER_GROUND = 1 , } impl MavOdidHeightRef { pub const DEFAULT : Self = Self :: MAV_ODID_HEIGHT_REF_OVER_TAKEOFF ; } impl Default for MavOdidHeightRef { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AutotuneAxis { AUTOTUNE_AXIS_DEFAULT = 0 , AUTOTUNE_AXIS_ROLL = 1 , AUTOTUNE_AXIS_PITCH = 2 , AUTOTUNE_AXIS_YAW = 4 , } impl AutotuneAxis { pub const DEFAULT : Self = Self :: AUTOTUNE_AXIS_DEFAULT ; } impl Default for AutotuneAxis { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavEventErrorReason { MAV_EVENT_ERROR_REASON_UNAVAILABLE = 0 , } impl MavEventErrorReason { pub const DEFAULT : Self = Self :: MAV_EVENT_ERROR_REASON_UNAVAILABLE ; } impl Default for MavEventErrorReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionSrc { MAV_COLLISION_SRC_ADSB = 0 , MAV_COLLISION_SRC_MAVLINK_GPS_GLOBAL_INT = 1 , } impl MavCollisionSrc { pub const DEFAULT : Self = Self :: MAV_COLLISION_SRC_ADSB ; } impl Default for MavCollisionSrc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMissionResult { MAV_MISSION_ACCEPTED = 0 , MAV_MISSION_ERROR = 1 , MAV_MISSION_UNSUPPORTED_FRAME = 2 , MAV_MISSION_UNSUPPORTED = 3 , MAV_MISSION_NO_SPACE = 4 , MAV_MISSION_INVALID = 5 , MAV_MISSION_INVALID_PARAM1 = 6 , MAV_MISSION_INVALID_PARAM2 = 7 , MAV_MISSION_INVALID_PARAM3 = 8 , MAV_MISSION_INVALID_PARAM4 = 9 , MAV_MISSION_INVALID_PARAM5_X = 10 , MAV_MISSION_INVALID_PARAM6_Y = 11 , MAV_MISSION_INVALID_PARAM7 = 12 , MAV_MISSION_INVALID_SEQUENCE = 13 , MAV_MISSION_DENIED = 14 , MAV_MISSION_OPERATION_CANCELLED = 15 , } impl MavMissionResult { pub const DEFAULT : Self = Self :: MAV_MISSION_ACCEPTED ; } impl Default for MavMissionResult { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AttitudeTargetTypemask : u8 { const ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE = 1 ; const ATTITUDE_TARGET_TYPEMASK_BODY_PITCH_RATE_IGNORE = 2 ; const ATTITUDE_TARGET_TYPEMASK_BODY_YAW_RATE_IGNORE = 4 ; const ATTITUDE_TARGET_TYPEMASK_THRUST_BODY_SET = 32 ; const ATTITUDE_TARGET_TYPEMASK_THROTTLE_IGNORE = 64 ; const ATTITUDE_TARGET_TYPEMASK_ATTITUDE_IGNORE = 128 ; } } impl AttitudeTargetTypemask { pub const DEFAULT : Self = Self :: ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE ; } impl Default for AttitudeTargetTypemask { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavAutopilot { MAV_AUTOPILOT_GENERIC = 0 , MAV_AUTOPILOT_RESERVED = 1 , MAV_AUTOPILOT_SLUGS = 2 , MAV_AUTOPILOT_ARDUPILOTMEGA = 3 , MAV_AUTOPILOT_OPENPILOT = 4 , MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY = 5 , MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY = 6 , MAV_AUTOPILOT_GENERIC_MISSION_FULL = 7 , MAV_AUTOPILOT_INVALID = 8 , MAV_AUTOPILOT_PPZ = 9 , MAV_AUTOPILOT_UDB = 10 , MAV_AUTOPILOT_FP = 11 , MAV_AUTOPILOT_PX4 = 12 , MAV_AUTOPILOT_SMACCMPILOT = 13 , MAV_AUTOPILOT_AUTOQUAD = 14 , MAV_AUTOPILOT_ARMAZILA = 15 , MAV_AUTOPILOT_AEROB = 16 , MAV_AUTOPILOT_ASLUAV = 17 , MAV_AUTOPILOT_SMARTAP = 18 , MAV_AUTOPILOT_AIRRAILS = 19 , MAV_AUTOPILOT_REFLEX = 20 , } impl MavAutopilot { pub const DEFAULT : Self = Self :: MAV_AUTOPILOT_GENERIC ; } impl Default for MavAutopilot { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingMode { CAMERA_TRACKING_MODE_NONE = 0 , CAMERA_TRACKING_MODE_POINT = 1 , CAMERA_TRACKING_MODE_RECTANGLE = 2 , } impl CameraTrackingMode { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_MODE_NONE ; } impl Default for CameraTrackingMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PreflightStorageMissionAction { MISSION_READ_PERSISTENT = 0 , MISSION_WRITE_PERSISTENT = 1 , MISSION_RESET_DEFAULT = 2 , } impl PreflightStorageMissionAction { pub const DEFAULT : Self = Self :: MISSION_READ_PERSISTENT ; } impl Default for PreflightStorageMissionAction { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceCapFlags : u16 { const GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT = 1 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_NEUTRAL = 2 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_AXIS = 4 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_FOLLOW = 8 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_LOCK = 16 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_AXIS = 32 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_FOLLOW = 64 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_LOCK = 128 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_AXIS = 256 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_FOLLOW = 512 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_LOCK = 1024 ; const GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_INFINITE_YAW = 2048 ; const GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME = 4096 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_RC_INPUTS = 8192 ; } } impl GimbalDeviceCapFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT ; } impl Default for GimbalDeviceCapFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceFlags : u16 { const GIMBAL_DEVICE_FLAGS_RETRACT = 1 ; const GIMBAL_DEVICE_FLAGS_NEUTRAL = 2 ; const GIMBAL_DEVICE_FLAGS_ROLL_LOCK = 4 ; const GIMBAL_DEVICE_FLAGS_PITCH_LOCK = 8 ; const GIMBAL_DEVICE_FLAGS_YAW_LOCK = 16 ; const GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME = 32 ; const GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME = 64 ; const GIMBAL_DEVICE_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME = 128 ; const GIMBAL_DEVICE_FLAGS_RC_EXCLUSIVE = 256 ; const GIMBAL_DEVICE_FLAGS_RC_MIXED = 512 ; } } impl GimbalDeviceFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_FLAGS_RETRACT ; } impl Default for GimbalDeviceFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceErrorFlags : u32 { const GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT = 1 ; const GIMBAL_DEVICE_ERROR_FLAGS_AT_PITCH_LIMIT = 2 ; const GIMBAL_DEVICE_ERROR_FLAGS_AT_YAW_LIMIT = 4 ; const GIMBAL_DEVICE_ERROR_FLAGS_ENCODER_ERROR = 8 ; const GIMBAL_DEVICE_ERROR_FLAGS_POWER_ERROR = 16 ; const GIMBAL_DEVICE_ERROR_FLAGS_MOTOR_ERROR = 32 ; const GIMBAL_DEVICE_ERROR_FLAGS_SOFTWARE_ERROR = 64 ; const GIMBAL_DEVICE_ERROR_FLAGS_COMMS_ERROR = 128 ; const GIMBAL_DEVICE_ERROR_FLAGS_CALIBRATION_RUNNING = 256 ; const GIMBAL_DEVICE_ERROR_FLAGS_NO_MANAGER = 512 ; } } impl GimbalDeviceErrorFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT ; } impl Default for GimbalDeviceErrorFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavGeneratorStatusFlag : u64 { const MAV_GENERATOR_STATUS_FLAG_OFF = 1 ; const MAV_GENERATOR_STATUS_FLAG_READY = 2 ; const MAV_GENERATOR_STATUS_FLAG_GENERATING = 4 ; const MAV_GENERATOR_STATUS_FLAG_CHARGING = 8 ; const MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER = 16 ; const MAV_GENERATOR_STATUS_FLAG_MAXPOWER = 32 ; const MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING = 64 ; const MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT = 128 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING = 256 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT = 512 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT = 1024 ; const MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT = 2048 ; const MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING = 4096 ; const MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING = 8192 ; const MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT = 16384 ; const MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT = 32768 ; const MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT = 65536 ; const MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT = 131072 ; const MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT = 262144 ; const MAV_GENERATOR_STATUS_FLAG_START_INHIBITED = 524288 ; const MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED = 1048576 ; const MAV_GENERATOR_STATUS_FLAG_WARMING_UP = 2097152 ; const MAV_GENERATOR_STATUS_FLAG_IDLE = 4194304 ; } } impl MavGeneratorStatusFlag { pub const DEFAULT : Self = Self :: MAV_GENERATOR_STATUS_FLAG_OFF ; } impl Default for MavGeneratorStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSysStatusSensorExtended { MAV_SYS_STATUS_RECOVERY_SYSTEM = 1 , } impl MavSysStatusSensorExtended { pub const DEFAULT : Self = Self :: MAV_SYS_STATUS_RECOVERY_SYSTEM ; } impl Default for MavSysStatusSensorExtended { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidHorAcc { MAV_ODID_HOR_ACC_UNKNOWN = 0 , MAV_ODID_HOR_ACC_10NM = 1 , MAV_ODID_HOR_ACC_4NM = 2 , MAV_ODID_HOR_ACC_2NM = 3 , MAV_ODID_HOR_ACC_1NM = 4 , MAV_ODID_HOR_ACC_0_5NM = 5 , MAV_ODID_HOR_ACC_0_3NM = 6 , MAV_ODID_HOR_ACC_0_1NM = 7 , MAV_ODID_HOR_ACC_0_05NM = 8 , MAV_ODID_HOR_ACC_30_METER = 9 , MAV_ODID_HOR_ACC_10_METER = 10 , MAV_ODID_HOR_ACC_3_METER = 11 , MAV_ODID_HOR_ACC_1_METER = 12 , } impl MavOdidHorAcc { pub const DEFAULT : Self = Self :: MAV_ODID_HOR_ACC_UNKNOWN ; } impl Default for MavOdidHorAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MotorTestOrder { MOTOR_TEST_ORDER_DEFAULT = 0 , MOTOR_TEST_ORDER_SEQUENCE = 1 , MOTOR_TEST_ORDER_BOARD = 2 , } impl MotorTestOrder { pub const DEFAULT : Self = Self :: MOTOR_TEST_ORDER_DEFAULT ; } impl Default for MotorTestOrder { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidOperatorIdType { MAV_ODID_OPERATOR_ID_TYPE_CAA = 0 , } impl MavOdidOperatorIdType { pub const DEFAULT : Self = Self :: MAV_ODID_OPERATOR_ID_TYPE_CAA ; } impl Default for MavOdidOperatorIdType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum LedControlPattern { LED_CONTROL_PATTERN_OFF = 0 , LED_CONTROL_PATTERN_FIRMWAREUPDATE = 1 , LED_CONTROL_PATTERN_CUSTOM = 255 , } impl LedControlPattern { pub const DEFAULT : Self = Self :: LED_CONTROL_PATTERN_OFF ; } impl Default for LedControlPattern { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AdsbFlags : u16 { const ADSB_FLAGS_VALID_COORDS = 1 ; const ADSB_FLAGS_VALID_ALTITUDE = 2 ; const ADSB_FLAGS_VALID_HEADING = 4 ; const ADSB_FLAGS_VALID_VELOCITY = 8 ; const ADSB_FLAGS_VALID_CALLSIGN = 16 ; const ADSB_FLAGS_VALID_SQUAWK = 32 ; const ADSB_FLAGS_SIMULATED = 64 ; const ADSB_FLAGS_VERTICAL_VELOCITY_VALID = 128 ; const ADSB_FLAGS_BARO_VALID = 256 ; const ADSB_FLAGS_SOURCE_UAT = 32768 ; } } impl AdsbFlags { pub const DEFAULT : Self = Self :: ADSB_FLAGS_VALID_COORDS ; } impl Default for AdsbFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidArmStatus { MAV_ODID_ARM_STATUS_GOOD_TO_ARM = 0 , MAV_ODID_ARM_STATUS_PRE_ARM_FAIL_GENERIC = 1 , } impl MavOdidArmStatus { pub const DEFAULT : Self = Self :: MAV_ODID_ARM_STATUS_GOOD_TO_ARM ; } impl Default for MavOdidArmStatus { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AisFlags : u16 { const AIS_FLAGS_POSITION_ACCURACY = 1 ; const AIS_FLAGS_VALID_COG = 2 ; const AIS_FLAGS_VALID_VELOCITY = 4 ; const AIS_FLAGS_HIGH_VELOCITY = 8 ; const AIS_FLAGS_VALID_TURN_RATE = 16 ; const AIS_FLAGS_TURN_RATE_SIGN_ONLY = 32 ; const AIS_FLAGS_VALID_DIMENSIONS = 64 ; const AIS_FLAGS_LARGE_BOW_DIMENSION = 128 ; const AIS_FLAGS_LARGE_STERN_DIMENSION = 256 ; const AIS_FLAGS_LARGE_PORT_DIMENSION = 512 ; const AIS_FLAGS_LARGE_STARBOARD_DIMENSION = 1024 ; const AIS_FLAGS_VALID_CALLSIGN = 2048 ; const AIS_FLAGS_VALID_NAME = 4096 ; } } impl AisFlags { pub const DEFAULT : Self = Self :: AIS_FLAGS_POSITION_ACCURACY ; } impl Default for AisFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GoproHeartbeatFlags : u8 { const GOPRO_FLAG_RECORDING = 1 ; } } impl GoproHeartbeatFlags { pub const DEFAULT : Self = Self :: GOPRO_FLAG_RECORDING ; } impl Default for GoproHeartbeatFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavEstimatorType { MAV_ESTIMATOR_TYPE_UNKNOWN = 0 , MAV_ESTIMATOR_TYPE_NAIVE = 1 , MAV_ESTIMATOR_TYPE_VISION = 2 , MAV_ESTIMATOR_TYPE_VIO = 3 , MAV_ESTIMATOR_TYPE_GPS = 4 , MAV_ESTIMATOR_TYPE_GPS_INS = 5 , MAV_ESTIMATOR_TYPE_MOCAP = 6 , MAV_ESTIMATOR_TYPE_LIDAR = 7 , MAV_ESTIMATOR_TYPE_AUTOPILOT = 8 , } impl MavEstimatorType { pub const DEFAULT : Self = Self :: MAV_ESTIMATOR_TYPE_UNKNOWN ; } impl Default for MavEstimatorType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutCfgAircraftSize { UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_NO_DATA = 0 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L15M_W23M = 1 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25M_W28P5M = 2 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25_34M = 3 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_33M = 4 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_38M = 5 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_39P5M = 6 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_45M = 7 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_45M = 8 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_52M = 9 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_59P5M = 10 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_67M = 11 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W72P5M = 12 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W80M = 13 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W80M = 14 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W90M = 15 , } impl UavionixAdsbOutCfgAircraftSize { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_NO_DATA ; } impl Default for UavionixAdsbOutCfgAircraftSize { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SpeedType { SPEED_TYPE_AIRSPEED = 0 , SPEED_TYPE_GROUNDSPEED = 1 , } impl SpeedType { pub const DEFAULT : Self = Self :: SPEED_TYPE_AIRSPEED ; } impl Default for SpeedType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalManagerCapFlags : u32 { const GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT = 1 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL = 2 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS = 4 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_FOLLOW = 8 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_LOCK = 16 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS = 32 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_FOLLOW = 64 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_LOCK = 128 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS = 256 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW = 512 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK = 1024 ; const GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_INFINITE_YAW = 2048 ; const GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME = 4096 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_RC_INPUTS = 8192 ; const GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_LOCAL = 65536 ; const GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_GLOBAL = 131072 ; } } impl GimbalManagerCapFlags { pub const DEFAULT : Self = Self :: GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT ; } impl Default for GimbalManagerCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproProtuneSharpness { GOPRO_PROTUNE_SHARPNESS_LOW = 0 , GOPRO_PROTUNE_SHARPNESS_MEDIUM = 1 , GOPRO_PROTUNE_SHARPNESS_HIGH = 2 , } impl GoproProtuneSharpness { pub const DEFAULT : Self = Self :: GOPRO_PROTUNE_SHARPNESS_LOW ; } impl Default for GoproProtuneSharpness { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavModeFlagDecodePosition { MAV_MODE_FLAG_DECODE_POSITION_SAFETY = 128 , MAV_MODE_FLAG_DECODE_POSITION_MANUAL = 64 , MAV_MODE_FLAG_DECODE_POSITION_HIL = 32 , MAV_MODE_FLAG_DECODE_POSITION_STABILIZE = 16 , MAV_MODE_FLAG_DECODE_POSITION_GUIDED = 8 , MAV_MODE_FLAG_DECODE_POSITION_AUTO = 4 , MAV_MODE_FLAG_DECODE_POSITION_TEST = 2 , MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE = 1 , } impl MavModeFlagDecodePosition { pub const DEFAULT : Self = Self :: MAV_MODE_FLAG_DECODE_POSITION_SAFETY ; } impl Default for MavModeFlagDecodePosition { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum DeviceOpBustype { DEVICE_OP_BUSTYPE_I2C = 0 , DEVICE_OP_BUSTYPE_SPI = 1 , } impl DeviceOpBustype { pub const DEFAULT : Self = Self :: DEVICE_OP_BUSTYPE_I2C ; } impl Default for DeviceOpBustype { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CameraCapFlags : u32 { const CAMERA_CAP_FLAGS_CAPTURE_VIDEO = 1 ; const CAMERA_CAP_FLAGS_CAPTURE_IMAGE = 2 ; const CAMERA_CAP_FLAGS_HAS_MODES = 4 ; const CAMERA_CAP_FLAGS_CAN_CAPTURE_IMAGE_IN_VIDEO_MODE = 8 ; const CAMERA_CAP_FLAGS_CAN_CAPTURE_VIDEO_IN_IMAGE_MODE = 16 ; const CAMERA_CAP_FLAGS_HAS_IMAGE_SURVEY_MODE = 32 ; const CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM = 64 ; const CAMERA_CAP_FLAGS_HAS_BASIC_FOCUS = 128 ; const CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM = 256 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_POINT = 512 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE = 1024 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_GEO_STATUS = 2048 ; } } impl CameraCapFlags { pub const DEFAULT : Self = Self :: CAMERA_CAP_FLAGS_CAPTURE_VIDEO ; } impl Default for CameraCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UtmFlightState { UTM_FLIGHT_STATE_UNKNOWN = 1 , UTM_FLIGHT_STATE_GROUND = 2 , UTM_FLIGHT_STATE_AIRBORNE = 3 , UTM_FLIGHT_STATE_EMERGENCY = 16 , UTM_FLIGHT_STATE_NOCTRL = 32 , } impl UtmFlightState { pub const DEFAULT : Self = Self :: UTM_FLIGHT_STATE_UNKNOWN ; } impl Default for UtmFlightState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidUaType { MAV_ODID_UA_TYPE_NONE = 0 , MAV_ODID_UA_TYPE_AEROPLANE = 1 , MAV_ODID_UA_TYPE_HELICOPTER_OR_MULTIROTOR = 2 , MAV_ODID_UA_TYPE_GYROPLANE = 3 , MAV_ODID_UA_TYPE_HYBRID_LIFT = 4 , MAV_ODID_UA_TYPE_ORNITHOPTER = 5 , MAV_ODID_UA_TYPE_GLIDER = 6 , MAV_ODID_UA_TYPE_KITE = 7 , MAV_ODID_UA_TYPE_FREE_BALLOON = 8 , MAV_ODID_UA_TYPE_CAPTIVE_BALLOON = 9 , MAV_ODID_UA_TYPE_AIRSHIP = 10 , MAV_ODID_UA_TYPE_FREE_FALL_PARACHUTE = 11 , MAV_ODID_UA_TYPE_ROCKET = 12 , MAV_ODID_UA_TYPE_TETHERED_POWERED_AIRCRAFT = 13 , MAV_ODID_UA_TYPE_GROUND_OBSTACLE = 14 , MAV_ODID_UA_TYPE_OTHER = 15 , } impl MavOdidUaType { pub const DEFAULT : Self = Self :: MAV_ODID_UA_TYPE_NONE ; } impl Default for MavOdidUaType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproHeartbeatStatus { GOPRO_HEARTBEAT_STATUS_DISCONNECTED = 0 , GOPRO_HEARTBEAT_STATUS_INCOMPATIBLE = 1 , GOPRO_HEARTBEAT_STATUS_CONNECTED = 2 , GOPRO_HEARTBEAT_STATUS_ERROR = 3 , } impl GoproHeartbeatStatus { pub const DEFAULT : Self = Self :: GOPRO_HEARTBEAT_STATUS_DISCONNECTED ; } impl Default for GoproHeartbeatStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum OsdParamConfigType { OSD_PARAM_NONE = 0 , OSD_PARAM_SERIAL_PROTOCOL = 1 , OSD_PARAM_SERVO_FUNCTION = 2 , OSD_PARAM_AUX_FUNCTION = 3 , OSD_PARAM_FLIGHT_MODE = 4 , OSD_PARAM_FAILSAFE_ACTION = 5 , OSD_PARAM_FAILSAFE_ACTION_1 = 6 , OSD_PARAM_FAILSAFE_ACTION_2 = 7 , OSD_PARAM_NUM_TYPES = 8 , } impl OsdParamConfigType { pub const DEFAULT : Self = Self :: OSD_PARAM_NONE ; } impl Default for OsdParamConfigType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PreflightStorageParameterAction { PARAM_READ_PERSISTENT = 0 , PARAM_WRITE_PERSISTENT = 1 , PARAM_RESET_CONFIG_DEFAULT = 2 , PARAM_RESET_SENSOR_DEFAULT = 3 , PARAM_RESET_ALL_DEFAULT = 4 , } impl PreflightStorageParameterAction { pub const DEFAULT : Self = Self :: PARAM_READ_PERSISTENT ; } impl Default for PreflightStorageParameterAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavType { MAV_TYPE_GENERIC = 0 , MAV_TYPE_FIXED_WING = 1 , MAV_TYPE_QUADROTOR = 2 , MAV_TYPE_COAXIAL = 3 , MAV_TYPE_HELICOPTER = 4 , MAV_TYPE_ANTENNA_TRACKER = 5 , MAV_TYPE_GCS = 6 , MAV_TYPE_AIRSHIP = 7 , MAV_TYPE_FREE_BALLOON = 8 , MAV_TYPE_ROCKET = 9 , MAV_TYPE_GROUND_ROVER = 10 , MAV_TYPE_SURFACE_BOAT = 11 , MAV_TYPE_SUBMARINE = 12 , MAV_TYPE_HEXAROTOR = 13 , MAV_TYPE_OCTOROTOR = 14 , MAV_TYPE_TRICOPTER = 15 , MAV_TYPE_FLAPPING_WING = 16 , MAV_TYPE_KITE = 17 , MAV_TYPE_ONBOARD_CONTROLLER = 18 , MAV_TYPE_VTOL_TAILSITTER_DUOROTOR = 19 , MAV_TYPE_VTOL_TAILSITTER_QUADROTOR = 20 , MAV_TYPE_VTOL_TILTROTOR = 21 , MAV_TYPE_VTOL_FIXEDROTOR = 22 , MAV_TYPE_VTOL_TAILSITTER = 23 , MAV_TYPE_VTOL_TILTWING = 24 , MAV_TYPE_VTOL_RESERVED5 = 25 , MAV_TYPE_GIMBAL = 26 , MAV_TYPE_ADSB = 27 , MAV_TYPE_PARAFOIL = 28 , MAV_TYPE_DODECAROTOR = 29 , MAV_TYPE_CAMERA = 30 , MAV_TYPE_CHARGING_STATION = 31 , MAV_TYPE_FLARM = 32 , MAV_TYPE_SERVO = 33 , MAV_TYPE_ODID = 34 , MAV_TYPE_DECAROTOR = 35 , MAV_TYPE_BATTERY = 36 , MAV_TYPE_PARACHUTE = 37 , MAV_TYPE_LOG = 38 , MAV_TYPE_OSD = 39 , MAV_TYPE_IMU = 40 , MAV_TYPE_GPS = 41 , MAV_TYPE_WINCH = 42 , } impl MavType { pub const DEFAULT : Self = Self :: MAV_TYPE_GENERIC ; } impl Default for MavType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MissionState { MISSION_STATE_UNKNOWN = 0 , MISSION_STATE_NO_MISSION = 1 , MISSION_STATE_NOT_STARTED = 2 , MISSION_STATE_ACTIVE = 3 , MISSION_STATE_PAUSED = 4 , MISSION_STATE_COMPLETE = 5 , } impl MissionState { pub const DEFAULT : Self = Self :: MISSION_STATE_UNKNOWN ; } impl Default for MissionState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceMitigate { FENCE_MITIGATE_UNKNOWN = 0 , FENCE_MITIGATE_NONE = 1 , FENCE_MITIGATE_VEL_LIMIT = 2 , } impl FenceMitigate { pub const DEFAULT : Self = Self :: FENCE_MITIGATE_UNKNOWN ; } impl Default for FenceMitigate { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageUsageFlag { STORAGE_USAGE_FLAG_SET = 1 , STORAGE_USAGE_FLAG_PHOTO = 2 , STORAGE_USAGE_FLAG_VIDEO = 4 , STORAGE_USAGE_FLAG_LOGS = 8 , } impl StorageUsageFlag { pub const DEFAULT : Self = Self :: STORAGE_USAGE_FLAG_SET ; } impl Default for StorageUsageFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidAuthType { MAV_ODID_AUTH_TYPE_NONE = 0 , MAV_ODID_AUTH_TYPE_UAS_ID_SIGNATURE = 1 , MAV_ODID_AUTH_TYPE_OPERATOR_ID_SIGNATURE = 2 , MAV_ODID_AUTH_TYPE_MESSAGE_SET_SIGNATURE = 3 , MAV_ODID_AUTH_TYPE_NETWORK_REMOTE_ID = 4 , MAV_ODID_AUTH_TYPE_SPECIFIC_AUTHENTICATION = 5 , } impl MavOdidAuthType { pub const DEFAULT : Self = Self :: MAV_ODID_AUTH_TYPE_NONE ; } impl Default for MavOdidAuthType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RcType { RC_TYPE_SPEKTRUM_DSM2 = 0 , RC_TYPE_SPEKTRUM_DSMX = 1 , } impl RcType { pub const DEFAULT : Self = Self :: RC_TYPE_SPEKTRUM_DSM2 ; } impl Default for RcType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraMode { CAMERA_MODE_IMAGE = 0 , CAMERA_MODE_VIDEO = 1 , CAMERA_MODE_IMAGE_SURVEY = 2 , } impl CameraMode { pub const DEFAULT : Self = Self :: CAMERA_MODE_IMAGE ; } impl Default for CameraMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidClassificationType { MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED = 0 , MAV_ODID_CLASSIFICATION_TYPE_EU = 1 , } impl MavOdidClassificationType { pub const DEFAULT : Self = Self :: MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED ; } impl Default for MavOdidClassificationType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavEventCurrentSequenceFlags : u8 { const MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET = 1 ; } } impl MavEventCurrentSequenceFlags { pub const DEFAULT : Self = Self :: MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET ; } impl Default for MavEventCurrentSequenceFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavParamType { MAV_PARAM_TYPE_UINT8 = 1 , MAV_PARAM_TYPE_INT8 = 2 , MAV_PARAM_TYPE_UINT16 = 3 , MAV_PARAM_TYPE_INT16 = 4 , MAV_PARAM_TYPE_UINT32 = 5 , MAV_PARAM_TYPE_INT32 = 6 , MAV_PARAM_TYPE_UINT64 = 7 , MAV_PARAM_TYPE_INT64 = 8 , MAV_PARAM_TYPE_REAL32 = 9 , MAV_PARAM_TYPE_REAL64 = 10 , } impl MavParamType { pub const DEFAULT : Self = Self :: MAV_PARAM_TYPE_UINT8 ; } impl Default for MavParamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFrame { MAV_FRAME_GLOBAL = 0 , MAV_FRAME_LOCAL_NED = 1 , MAV_FRAME_MISSION = 2 , MAV_FRAME_GLOBAL_RELATIVE_ALT = 3 , MAV_FRAME_LOCAL_ENU = 4 , MAV_FRAME_GLOBAL_INT = 5 , MAV_FRAME_GLOBAL_RELATIVE_ALT_INT = 6 , MAV_FRAME_LOCAL_OFFSET_NED = 7 , MAV_FRAME_BODY_NED = 8 , MAV_FRAME_BODY_OFFSET_NED = 9 , MAV_FRAME_GLOBAL_TERRAIN_ALT = 10 , MAV_FRAME_GLOBAL_TERRAIN_ALT_INT = 11 , MAV_FRAME_BODY_FRD = 12 , MAV_FRAME_RESERVED_13 = 13 , MAV_FRAME_RESERVED_14 = 14 , MAV_FRAME_RESERVED_15 = 15 , MAV_FRAME_RESERVED_16 = 16 , MAV_FRAME_RESERVED_17 = 17 , MAV_FRAME_RESERVED_18 = 18 , MAV_FRAME_RESERVED_19 = 19 , MAV_FRAME_LOCAL_FRD = 20 , MAV_FRAME_LOCAL_FLU = 21 , } impl MavFrame { pub const DEFAULT : Self = Self :: MAV_FRAME_GLOBAL ; } impl Default for MavFrame { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutDynamicGpsFix { UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_0 = 0 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_1 = 1 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_2D = 2 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_3D = 3 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_DGPS = 4 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_RTK = 5 , } impl UavionixAdsbOutDynamicGpsFix { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_0 ; } impl Default for UavionixAdsbOutDynamicGpsFix { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraStatusTypes { CAMERA_STATUS_TYPE_HEARTBEAT = 0 , CAMERA_STATUS_TYPE_TRIGGER = 1 , CAMERA_STATUS_TYPE_DISCONNECT = 2 , CAMERA_STATUS_TYPE_ERROR = 3 , CAMERA_STATUS_TYPE_LOWBATT = 4 , CAMERA_STATUS_TYPE_LOWSTORE = 5 , CAMERA_STATUS_TYPE_LOWSTOREV = 6 , } impl CameraStatusTypes { pub const DEFAULT : Self = Self :: CAMERA_STATUS_TYPE_HEARTBEAT ; } impl Default for CameraStatusTypes { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproBurstRate { GOPRO_BURST_RATE_3_IN_1_SECOND = 0 , GOPRO_BURST_RATE_5_IN_1_SECOND = 1 , GOPRO_BURST_RATE_10_IN_1_SECOND = 2 , GOPRO_BURST_RATE_10_IN_2_SECOND = 3 , GOPRO_BURST_RATE_10_IN_3_SECOND = 4 , GOPRO_BURST_RATE_30_IN_1_SECOND = 5 , GOPRO_BURST_RATE_30_IN_2_SECOND = 6 , GOPRO_BURST_RATE_30_IN_3_SECOND = 7 , GOPRO_BURST_RATE_30_IN_6_SECOND = 8 , } impl GoproBurstRate { pub const DEFAULT : Self = Self :: GOPRO_BURST_RATE_3_IN_1_SECOND ; } impl Default for GoproBurstRate { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GimbalManagerFlags { GIMBAL_MANAGER_FLAGS_RETRACT = 1 , GIMBAL_MANAGER_FLAGS_NEUTRAL = 2 , GIMBAL_MANAGER_FLAGS_ROLL_LOCK = 4 , GIMBAL_MANAGER_FLAGS_PITCH_LOCK = 8 , GIMBAL_MANAGER_FLAGS_YAW_LOCK = 16 , GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME = 32 , GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME = 64 , GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME = 128 , GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE = 256 , GIMBAL_MANAGER_FLAGS_RC_MIXED = 512 , } impl GimbalManagerFlags { pub const DEFAULT : Self = Self :: GIMBAL_MANAGER_FLAGS_RETRACT ; } impl Default for GimbalManagerFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavComponent { MAV_COMP_ID_ALL = 0 , MAV_COMP_ID_AUTOPILOT1 = 1 , MAV_COMP_ID_USER1 = 25 , MAV_COMP_ID_USER2 = 26 , MAV_COMP_ID_USER3 = 27 , MAV_COMP_ID_USER4 = 28 , MAV_COMP_ID_USER5 = 29 , MAV_COMP_ID_USER6 = 30 , MAV_COMP_ID_USER7 = 31 , MAV_COMP_ID_USER8 = 32 , MAV_COMP_ID_USER9 = 33 , MAV_COMP_ID_USER10 = 34 , MAV_COMP_ID_USER11 = 35 , MAV_COMP_ID_USER12 = 36 , MAV_COMP_ID_USER13 = 37 , MAV_COMP_ID_USER14 = 38 , MAV_COMP_ID_USER15 = 39 , MAV_COMP_ID_USER16 = 40 , MAV_COMP_ID_USER17 = 41 , MAV_COMP_ID_USER18 = 42 , MAV_COMP_ID_USER19 = 43 , MAV_COMP_ID_USER20 = 44 , MAV_COMP_ID_USER21 = 45 , MAV_COMP_ID_USER22 = 46 , MAV_COMP_ID_USER23 = 47 , MAV_COMP_ID_USER24 = 48 , MAV_COMP_ID_USER25 = 49 , MAV_COMP_ID_USER26 = 50 , MAV_COMP_ID_USER27 = 51 , MAV_COMP_ID_USER28 = 52 , MAV_COMP_ID_USER29 = 53 , MAV_COMP_ID_USER30 = 54 , MAV_COMP_ID_USER31 = 55 , MAV_COMP_ID_USER32 = 56 , MAV_COMP_ID_USER33 = 57 , MAV_COMP_ID_USER34 = 58 , MAV_COMP_ID_USER35 = 59 , MAV_COMP_ID_USER36 = 60 , MAV_COMP_ID_USER37 = 61 , MAV_COMP_ID_USER38 = 62 , MAV_COMP_ID_USER39 = 63 , MAV_COMP_ID_USER40 = 64 , MAV_COMP_ID_USER41 = 65 , MAV_COMP_ID_USER42 = 66 , MAV_COMP_ID_USER43 = 67 , MAV_COMP_ID_TELEMETRY_RADIO = 68 , MAV_COMP_ID_USER45 = 69 , MAV_COMP_ID_USER46 = 70 , MAV_COMP_ID_USER47 = 71 , MAV_COMP_ID_USER48 = 72 , MAV_COMP_ID_USER49 = 73 , MAV_COMP_ID_USER50 = 74 , MAV_COMP_ID_USER51 = 75 , MAV_COMP_ID_USER52 = 76 , MAV_COMP_ID_USER53 = 77 , MAV_COMP_ID_USER54 = 78 , MAV_COMP_ID_USER55 = 79 , MAV_COMP_ID_USER56 = 80 , MAV_COMP_ID_USER57 = 81 , MAV_COMP_ID_USER58 = 82 , MAV_COMP_ID_USER59 = 83 , MAV_COMP_ID_USER60 = 84 , MAV_COMP_ID_USER61 = 85 , MAV_COMP_ID_USER62 = 86 , MAV_COMP_ID_USER63 = 87 , MAV_COMP_ID_USER64 = 88 , MAV_COMP_ID_USER65 = 89 , MAV_COMP_ID_USER66 = 90 , MAV_COMP_ID_USER67 = 91 , MAV_COMP_ID_USER68 = 92 , MAV_COMP_ID_USER69 = 93 , MAV_COMP_ID_USER70 = 94 , MAV_COMP_ID_USER71 = 95 , MAV_COMP_ID_USER72 = 96 , MAV_COMP_ID_USER73 = 97 , MAV_COMP_ID_USER74 = 98 , MAV_COMP_ID_USER75 = 99 , MAV_COMP_ID_CAMERA = 100 , MAV_COMP_ID_CAMERA2 = 101 , MAV_COMP_ID_CAMERA3 = 102 , MAV_COMP_ID_CAMERA4 = 103 , MAV_COMP_ID_CAMERA5 = 104 , MAV_COMP_ID_CAMERA6 = 105 , MAV_COMP_ID_SERVO1 = 140 , MAV_COMP_ID_SERVO2 = 141 , MAV_COMP_ID_SERVO3 = 142 , MAV_COMP_ID_SERVO4 = 143 , MAV_COMP_ID_SERVO5 = 144 , MAV_COMP_ID_SERVO6 = 145 , MAV_COMP_ID_SERVO7 = 146 , MAV_COMP_ID_SERVO8 = 147 , MAV_COMP_ID_SERVO9 = 148 , MAV_COMP_ID_SERVO10 = 149 , MAV_COMP_ID_SERVO11 = 150 , MAV_COMP_ID_SERVO12 = 151 , MAV_COMP_ID_SERVO13 = 152 , MAV_COMP_ID_SERVO14 = 153 , MAV_COMP_ID_GIMBAL = 154 , MAV_COMP_ID_LOG = 155 , MAV_COMP_ID_ADSB = 156 , MAV_COMP_ID_OSD = 157 , MAV_COMP_ID_PERIPHERAL = 158 , MAV_COMP_ID_QX1_GIMBAL = 159 , MAV_COMP_ID_FLARM = 160 , MAV_COMP_ID_PARACHUTE = 161 , MAV_COMP_ID_WINCH = 169 , MAV_COMP_ID_GIMBAL2 = 171 , MAV_COMP_ID_GIMBAL3 = 172 , MAV_COMP_ID_GIMBAL4 = 173 , MAV_COMP_ID_GIMBAL5 = 174 , MAV_COMP_ID_GIMBAL6 = 175 , MAV_COMP_ID_BATTERY = 180 , MAV_COMP_ID_BATTERY2 = 181 , MAV_COMP_ID_MAVCAN = 189 , MAV_COMP_ID_MISSIONPLANNER = 190 , MAV_COMP_ID_ONBOARD_COMPUTER = 191 , MAV_COMP_ID_ONBOARD_COMPUTER2 = 192 , MAV_COMP_ID_ONBOARD_COMPUTER3 = 193 , MAV_COMP_ID_ONBOARD_COMPUTER4 = 194 , MAV_COMP_ID_PATHPLANNER = 195 , MAV_COMP_ID_OBSTACLE_AVOIDANCE = 196 , MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY = 197 , MAV_COMP_ID_PAIRING_MANAGER = 198 , MAV_COMP_ID_IMU = 200 , MAV_COMP_ID_IMU_2 = 201 , MAV_COMP_ID_IMU_3 = 202 , MAV_COMP_ID_GPS = 220 , MAV_COMP_ID_GPS2 = 221 , MAV_COMP_ID_ODID_TXRX_1 = 236 , MAV_COMP_ID_ODID_TXRX_2 = 237 , MAV_COMP_ID_ODID_TXRX_3 = 238 , MAV_COMP_ID_UDP_BRIDGE = 240 , MAV_COMP_ID_UART_BRIDGE = 241 , MAV_COMP_ID_TUNNEL_NODE = 242 , MAV_COMP_ID_SYSTEM_CONTROL = 250 , } impl MavComponent { pub const DEFAULT : Self = Self :: MAV_COMP_ID_ALL ; } impl Default for MavComponent { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AisType { AIS_TYPE_UNKNOWN = 0 , AIS_TYPE_RESERVED_1 = 1 , AIS_TYPE_RESERVED_2 = 2 , AIS_TYPE_RESERVED_3 = 3 , AIS_TYPE_RESERVED_4 = 4 , AIS_TYPE_RESERVED_5 = 5 , AIS_TYPE_RESERVED_6 = 6 , AIS_TYPE_RESERVED_7 = 7 , AIS_TYPE_RESERVED_8 = 8 , AIS_TYPE_RESERVED_9 = 9 , AIS_TYPE_RESERVED_10 = 10 , AIS_TYPE_RESERVED_11 = 11 , AIS_TYPE_RESERVED_12 = 12 , AIS_TYPE_RESERVED_13 = 13 , AIS_TYPE_RESERVED_14 = 14 , AIS_TYPE_RESERVED_15 = 15 , AIS_TYPE_RESERVED_16 = 16 , AIS_TYPE_RESERVED_17 = 17 , AIS_TYPE_RESERVED_18 = 18 , AIS_TYPE_RESERVED_19 = 19 , AIS_TYPE_WIG = 20 , AIS_TYPE_WIG_HAZARDOUS_A = 21 , AIS_TYPE_WIG_HAZARDOUS_B = 22 , AIS_TYPE_WIG_HAZARDOUS_C = 23 , AIS_TYPE_WIG_HAZARDOUS_D = 24 , AIS_TYPE_WIG_RESERVED_1 = 25 , AIS_TYPE_WIG_RESERVED_2 = 26 , AIS_TYPE_WIG_RESERVED_3 = 27 , AIS_TYPE_WIG_RESERVED_4 = 28 , AIS_TYPE_WIG_RESERVED_5 = 29 , AIS_TYPE_FISHING = 30 , AIS_TYPE_TOWING = 31 , AIS_TYPE_TOWING_LARGE = 32 , AIS_TYPE_DREDGING = 33 , AIS_TYPE_DIVING = 34 , AIS_TYPE_MILITARY = 35 , AIS_TYPE_SAILING = 36 , AIS_TYPE_PLEASURE = 37 , AIS_TYPE_RESERVED_20 = 38 , AIS_TYPE_RESERVED_21 = 39 , AIS_TYPE_HSC = 40 , AIS_TYPE_HSC_HAZARDOUS_A = 41 , AIS_TYPE_HSC_HAZARDOUS_B = 42 , AIS_TYPE_HSC_HAZARDOUS_C = 43 , AIS_TYPE_HSC_HAZARDOUS_D = 44 , AIS_TYPE_HSC_RESERVED_1 = 45 , AIS_TYPE_HSC_RESERVED_2 = 46 , AIS_TYPE_HSC_RESERVED_3 = 47 , AIS_TYPE_HSC_RESERVED_4 = 48 , AIS_TYPE_HSC_UNKNOWN = 49 , AIS_TYPE_PILOT = 50 , AIS_TYPE_SAR = 51 , AIS_TYPE_TUG = 52 , AIS_TYPE_PORT_TENDER = 53 , AIS_TYPE_ANTI_POLLUTION = 54 , AIS_TYPE_LAW_ENFORCEMENT = 55 , AIS_TYPE_SPARE_LOCAL_1 = 56 , AIS_TYPE_SPARE_LOCAL_2 = 57 , AIS_TYPE_MEDICAL_TRANSPORT = 58 , AIS_TYPE_NONECOMBATANT = 59 , AIS_TYPE_PASSENGER = 60 , AIS_TYPE_PASSENGER_HAZARDOUS_A = 61 , AIS_TYPE_PASSENGER_HAZARDOUS_B = 62 , AIS_TYPE_PASSENGER_HAZARDOUS_C = 63 , AIS_TYPE_PASSENGER_HAZARDOUS_D = 64 , AIS_TYPE_PASSENGER_RESERVED_1 = 65 , AIS_TYPE_PASSENGER_RESERVED_2 = 66 , AIS_TYPE_PASSENGER_RESERVED_3 = 67 , AIS_TYPE_PASSENGER_RESERVED_4 = 68 , AIS_TYPE_PASSENGER_UNKNOWN = 69 , AIS_TYPE_CARGO = 70 , AIS_TYPE_CARGO_HAZARDOUS_A = 71 , AIS_TYPE_CARGO_HAZARDOUS_B = 72 , AIS_TYPE_CARGO_HAZARDOUS_C = 73 , AIS_TYPE_CARGO_HAZARDOUS_D = 74 , AIS_TYPE_CARGO_RESERVED_1 = 75 , AIS_TYPE_CARGO_RESERVED_2 = 76 , AIS_TYPE_CARGO_RESERVED_3 = 77 , AIS_TYPE_CARGO_RESERVED_4 = 78 , AIS_TYPE_CARGO_UNKNOWN = 79 , AIS_TYPE_TANKER = 80 , AIS_TYPE_TANKER_HAZARDOUS_A = 81 , AIS_TYPE_TANKER_HAZARDOUS_B = 82 , AIS_TYPE_TANKER_HAZARDOUS_C = 83 , AIS_TYPE_TANKER_HAZARDOUS_D = 84 , AIS_TYPE_TANKER_RESERVED_1 = 85 , AIS_TYPE_TANKER_RESERVED_2 = 86 , AIS_TYPE_TANKER_RESERVED_3 = 87 , AIS_TYPE_TANKER_RESERVED_4 = 88 , AIS_TYPE_TANKER_UNKNOWN = 89 , AIS_TYPE_OTHER = 90 , AIS_TYPE_OTHER_HAZARDOUS_A = 91 , AIS_TYPE_OTHER_HAZARDOUS_B = 92 , AIS_TYPE_OTHER_HAZARDOUS_C = 93 , AIS_TYPE_OTHER_HAZARDOUS_D = 94 , AIS_TYPE_OTHER_RESERVED_1 = 95 , AIS_TYPE_OTHER_RESERVED_2 = 96 , AIS_TYPE_OTHER_RESERVED_3 = 97 , AIS_TYPE_OTHER_RESERVED_4 = 98 , AIS_TYPE_OTHER_UNKNOWN = 99 , } impl AisType { pub const DEFAULT : Self = Self :: AIS_TYPE_UNKNOWN ; } impl Default for AisType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CanFilterOp { CAN_FILTER_REPLACE = 0 , CAN_FILTER_ADD = 1 , CAN_FILTER_REMOVE = 2 , } impl CanFilterOp { pub const DEFAULT : Self = Self :: CAN_FILTER_REPLACE ; } impl Default for CanFilterOp { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidStatus { MAV_ODID_STATUS_UNDECLARED = 0 , MAV_ODID_STATUS_GROUND = 1 , MAV_ODID_STATUS_AIRBORNE = 2 , MAV_ODID_STATUS_EMERGENCY = 3 , MAV_ODID_STATUS_REMOTE_ID_SYSTEM_FAILURE = 4 , } impl MavOdidStatus { pub const DEFAULT : Self = Self :: MAV_ODID_STATUS_UNDECLARED ; } impl Default for MavOdidStatus { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HighresImuUpdatedFlags : u16 { const HIGHRES_IMU_UPDATED_NONE = 0 ; const HIGHRES_IMU_UPDATED_XACC = 1 ; const HIGHRES_IMU_UPDATED_YACC = 2 ; const HIGHRES_IMU_UPDATED_ZACC = 4 ; const HIGHRES_IMU_UPDATED_XGYRO = 8 ; const HIGHRES_IMU_UPDATED_YGYRO = 16 ; const HIGHRES_IMU_UPDATED_ZGYRO = 32 ; const HIGHRES_IMU_UPDATED_XMAG = 64 ; const HIGHRES_IMU_UPDATED_YMAG = 128 ; const HIGHRES_IMU_UPDATED_ZMAG = 256 ; const HIGHRES_IMU_UPDATED_ABS_PRESSURE = 512 ; const HIGHRES_IMU_UPDATED_DIFF_PRESSURE = 1024 ; const HIGHRES_IMU_UPDATED_PRESSURE_ALT = 2048 ; const HIGHRES_IMU_UPDATED_TEMPERATURE = 4096 ; const HIGHRES_IMU_UPDATED_ALL = 65535 ; } } impl HighresImuUpdatedFlags { pub const DEFAULT : Self = Self :: HIGHRES_IMU_UPDATED_NONE ; } impl Default for HighresImuUpdatedFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproResolution { GOPRO_RESOLUTION_480p = 0 , GOPRO_RESOLUTION_720p = 1 , GOPRO_RESOLUTION_960p = 2 , GOPRO_RESOLUTION_1080p = 3 , GOPRO_RESOLUTION_1440p = 4 , GOPRO_RESOLUTION_2_7k_17_9 = 5 , GOPRO_RESOLUTION_2_7k_16_9 = 6 , GOPRO_RESOLUTION_2_7k_4_3 = 7 , GOPRO_RESOLUTION_4k_16_9 = 8 , GOPRO_RESOLUTION_4k_17_9 = 9 , GOPRO_RESOLUTION_720p_SUPERVIEW = 10 , GOPRO_RESOLUTION_1080p_SUPERVIEW = 11 , GOPRO_RESOLUTION_2_7k_SUPERVIEW = 12 , GOPRO_RESOLUTION_4k_SUPERVIEW = 13 , } impl GoproResolution { pub const DEFAULT : Self = Self :: GOPRO_RESOLUTION_480p ; } impl Default for GoproResolution { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproVideoSettingsFlags { GOPRO_VIDEO_SETTINGS_TV_MODE = 1 , } impl GoproVideoSettingsFlags { pub const DEFAULT : Self = Self :: GOPRO_VIDEO_SETTINGS_TV_MODE ; } impl Default for GoproVideoSettingsFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproProtuneExposure { GOPRO_PROTUNE_EXPOSURE_NEG_5_0 = 0 , GOPRO_PROTUNE_EXPOSURE_NEG_4_5 = 1 , GOPRO_PROTUNE_EXPOSURE_NEG_4_0 = 2 , GOPRO_PROTUNE_EXPOSURE_NEG_3_5 = 3 , GOPRO_PROTUNE_EXPOSURE_NEG_3_0 = 4 , GOPRO_PROTUNE_EXPOSURE_NEG_2_5 = 5 , GOPRO_PROTUNE_EXPOSURE_NEG_2_0 = 6 , GOPRO_PROTUNE_EXPOSURE_NEG_1_5 = 7 , GOPRO_PROTUNE_EXPOSURE_NEG_1_0 = 8 , GOPRO_PROTUNE_EXPOSURE_NEG_0_5 = 9 , GOPRO_PROTUNE_EXPOSURE_ZERO = 10 , GOPRO_PROTUNE_EXPOSURE_POS_0_5 = 11 , GOPRO_PROTUNE_EXPOSURE_POS_1_0 = 12 , GOPRO_PROTUNE_EXPOSURE_POS_1_5 = 13 , GOPRO_PROTUNE_EXPOSURE_POS_2_0 = 14 , GOPRO_PROTUNE_EXPOSURE_POS_2_5 = 15 , GOPRO_PROTUNE_EXPOSURE_POS_3_0 = 16 , GOPRO_PROTUNE_EXPOSURE_POS_3_5 = 17 , GOPRO_PROTUNE_EXPOSURE_POS_4_0 = 18 , GOPRO_PROTUNE_EXPOSURE_POS_4_5 = 19 , GOPRO_PROTUNE_EXPOSURE_POS_5_0 = 20 , } impl GoproProtuneExposure { pub const DEFAULT : Self = Self :: GOPRO_PROTUNE_EXPOSURE_NEG_5_0 ; } impl Default for GoproProtuneExposure { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WifiConfigApMode { WIFI_CONFIG_AP_MODE_UNDEFINED = 0 , WIFI_CONFIG_AP_MODE_AP = 1 , WIFI_CONFIG_AP_MODE_STATION = 2 , WIFI_CONFIG_AP_MODE_DISABLED = 3 , } impl WifiConfigApMode { pub const DEFAULT : Self = Self :: WIFI_CONFIG_AP_MODE_UNDEFINED ; } impl Default for WifiConfigApMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VideoStreamStatusFlags { VIDEO_STREAM_STATUS_FLAGS_RUNNING = 1 , VIDEO_STREAM_STATUS_FLAGS_THERMAL = 2 , } impl VideoStreamStatusFlags { pub const DEFAULT : Self = Self :: VIDEO_STREAM_STATUS_FLAGS_RUNNING ; } impl Default for VideoStreamStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum OrbitYawBehaviour { ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER = 0 , ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING = 1 , ORBIT_YAW_BEHAVIOUR_UNCONTROLLED = 2 , ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE = 3 , ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED = 4 , } impl OrbitYawBehaviour { pub const DEFAULT : Self = Self :: ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER ; } impl Default for OrbitYawBehaviour { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavModeGimbal { MAV_MODE_GIMBAL_UNINITIALIZED = 0 , MAV_MODE_GIMBAL_CALIBRATING_PITCH = 1 , MAV_MODE_GIMBAL_CALIBRATING_ROLL = 2 , MAV_MODE_GIMBAL_CALIBRATING_YAW = 3 , MAV_MODE_GIMBAL_INITIALIZED = 4 , MAV_MODE_GIMBAL_ACTIVE = 5 , MAV_MODE_GIMBAL_RATE_CMD_TIMEOUT = 6 , } impl MavModeGimbal { pub const DEFAULT : Self = Self :: MAV_MODE_GIMBAL_UNINITIALIZED ; } impl Default for MavModeGimbal { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidDescType { MAV_ODID_DESC_TYPE_TEXT = 0 , MAV_ODID_DESC_TYPE_EMERGENCY = 1 , MAV_ODID_DESC_TYPE_EXTENDED_STATUS = 2 , } impl MavOdidDescType { pub const DEFAULT : Self = Self :: MAV_ODID_DESC_TYPE_TEXT ; } impl Default for MavOdidDescType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproProtuneGain { GOPRO_PROTUNE_GAIN_400 = 0 , GOPRO_PROTUNE_GAIN_800 = 1 , GOPRO_PROTUNE_GAIN_1600 = 2 , GOPRO_PROTUNE_GAIN_3200 = 3 , GOPRO_PROTUNE_GAIN_6400 = 4 , } impl GoproProtuneGain { pub const DEFAULT : Self = Self :: GOPRO_PROTUNE_GAIN_400 ; } impl Default for GoproProtuneGain { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavRemoteLogDataBlockStatuses { MAV_REMOTE_LOG_DATA_BLOCK_NACK = 0 , MAV_REMOTE_LOG_DATA_BLOCK_ACK = 1 , } impl MavRemoteLogDataBlockStatuses { pub const DEFAULT : Self = Self :: MAV_REMOTE_LOG_DATA_BLOCK_NACK ; } impl Default for MavRemoteLogDataBlockStatuses { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SubMode { SUB_MODE_STABILIZE = 0 , SUB_MODE_ACRO = 1 , SUB_MODE_ALT_HOLD = 2 , SUB_MODE_AUTO = 3 , SUB_MODE_GUIDED = 4 , SUB_MODE_CIRCLE = 7 , SUB_MODE_SURFACE = 9 , SUB_MODE_POSHOLD = 16 , SUB_MODE_MANUAL = 19 , } impl SubMode { pub const DEFAULT : Self = Self :: SUB_MODE_STABILIZE ; } impl Default for SubMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavcanNodeHealth { UAVCAN_NODE_HEALTH_OK = 0 , UAVCAN_NODE_HEALTH_WARNING = 1 , UAVCAN_NODE_HEALTH_ERROR = 2 , UAVCAN_NODE_HEALTH_CRITICAL = 3 , } impl UavcanNodeHealth { pub const DEFAULT : Self = Self :: UAVCAN_NODE_HEALTH_OK ; } impl Default for UavcanNodeHealth { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmd { MAV_CMD_NAV_WAYPOINT = 16 , MAV_CMD_NAV_LOITER_UNLIM = 17 , MAV_CMD_NAV_LOITER_TURNS = 18 , MAV_CMD_NAV_LOITER_TIME = 19 , MAV_CMD_NAV_RETURN_TO_LAUNCH = 20 , MAV_CMD_NAV_LAND = 21 , MAV_CMD_NAV_TAKEOFF = 22 , MAV_CMD_NAV_LAND_LOCAL = 23 , MAV_CMD_NAV_TAKEOFF_LOCAL = 24 , MAV_CMD_NAV_FOLLOW = 25 , MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT = 30 , MAV_CMD_NAV_LOITER_TO_ALT = 31 , MAV_CMD_DO_FOLLOW = 32 , MAV_CMD_DO_FOLLOW_REPOSITION = 33 , MAV_CMD_DO_ORBIT = 34 , MAV_CMD_NAV_ROI = 80 , MAV_CMD_NAV_PATHPLANNING = 81 , MAV_CMD_NAV_SPLINE_WAYPOINT = 82 , MAV_CMD_NAV_VTOL_TAKEOFF = 84 , MAV_CMD_NAV_VTOL_LAND = 85 , MAV_CMD_NAV_GUIDED_ENABLE = 92 , MAV_CMD_NAV_DELAY = 93 , MAV_CMD_NAV_PAYLOAD_PLACE = 94 , MAV_CMD_NAV_LAST = 95 , MAV_CMD_CONDITION_DELAY = 112 , MAV_CMD_CONDITION_CHANGE_ALT = 113 , MAV_CMD_CONDITION_DISTANCE = 114 , MAV_CMD_CONDITION_YAW = 115 , MAV_CMD_CONDITION_LAST = 159 , MAV_CMD_DO_SET_MODE = 176 , MAV_CMD_DO_JUMP = 177 , MAV_CMD_DO_CHANGE_SPEED = 178 , MAV_CMD_DO_SET_HOME = 179 , MAV_CMD_DO_SET_PARAMETER = 180 , MAV_CMD_DO_SET_RELAY = 181 , MAV_CMD_DO_REPEAT_RELAY = 182 , MAV_CMD_DO_SET_SERVO = 183 , MAV_CMD_DO_REPEAT_SERVO = 184 , MAV_CMD_DO_FLIGHTTERMINATION = 185 , MAV_CMD_DO_CHANGE_ALTITUDE = 186 , MAV_CMD_DO_SET_ACTUATOR = 187 , MAV_CMD_DO_LAND_START = 189 , MAV_CMD_DO_RALLY_LAND = 190 , MAV_CMD_DO_GO_AROUND = 191 , MAV_CMD_DO_REPOSITION = 192 , MAV_CMD_DO_PAUSE_CONTINUE = 193 , MAV_CMD_DO_SET_REVERSE = 194 , MAV_CMD_DO_SET_ROI_LOCATION = 195 , MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET = 196 , MAV_CMD_DO_SET_ROI_NONE = 197 , MAV_CMD_DO_SET_ROI_SYSID = 198 , MAV_CMD_DO_CONTROL_VIDEO = 200 , MAV_CMD_DO_SET_ROI = 201 , MAV_CMD_DO_DIGICAM_CONFIGURE = 202 , MAV_CMD_DO_DIGICAM_CONTROL = 203 , MAV_CMD_DO_MOUNT_CONFIGURE = 204 , MAV_CMD_DO_MOUNT_CONTROL = 205 , MAV_CMD_DO_SET_CAM_TRIGG_DIST = 206 , MAV_CMD_DO_FENCE_ENABLE = 207 , MAV_CMD_DO_PARACHUTE = 208 , MAV_CMD_DO_MOTOR_TEST = 209 , MAV_CMD_DO_INVERTED_FLIGHT = 210 , MAV_CMD_DO_GRIPPER = 211 , MAV_CMD_DO_AUTOTUNE_ENABLE = 212 , MAV_CMD_NAV_SET_YAW_SPEED = 213 , MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL = 214 , MAV_CMD_DO_MOUNT_CONTROL_QUAT = 220 , MAV_CMD_DO_GUIDED_MASTER = 221 , MAV_CMD_DO_GUIDED_LIMITS = 222 , MAV_CMD_DO_ENGINE_CONTROL = 223 , MAV_CMD_DO_SET_MISSION_CURRENT = 224 , MAV_CMD_DO_LAST = 240 , MAV_CMD_PREFLIGHT_CALIBRATION = 241 , MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS = 242 , MAV_CMD_PREFLIGHT_UAVCAN = 243 , MAV_CMD_PREFLIGHT_STORAGE = 245 , MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN = 246 , MAV_CMD_OVERRIDE_GOTO = 252 , MAV_CMD_OBLIQUE_SURVEY = 260 , MAV_CMD_MISSION_START = 300 , MAV_CMD_ACTUATOR_TEST = 310 , MAV_CMD_CONFIGURE_ACTUATOR = 311 , MAV_CMD_COMPONENT_ARM_DISARM = 400 , MAV_CMD_RUN_PREARM_CHECKS = 401 , MAV_CMD_ILLUMINATOR_ON_OFF = 405 , MAV_CMD_GET_HOME_POSITION = 410 , MAV_CMD_INJECT_FAILURE = 420 , MAV_CMD_START_RX_PAIR = 500 , MAV_CMD_GET_MESSAGE_INTERVAL = 510 , MAV_CMD_SET_MESSAGE_INTERVAL = 511 , MAV_CMD_REQUEST_MESSAGE = 512 , MAV_CMD_REQUEST_PROTOCOL_VERSION = 519 , MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES = 520 , MAV_CMD_REQUEST_CAMERA_INFORMATION = 521 , MAV_CMD_REQUEST_CAMERA_SETTINGS = 522 , MAV_CMD_REQUEST_STORAGE_INFORMATION = 525 , MAV_CMD_STORAGE_FORMAT = 526 , MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS = 527 , MAV_CMD_REQUEST_FLIGHT_INFORMATION = 528 , MAV_CMD_RESET_CAMERA_SETTINGS = 529 , MAV_CMD_SET_CAMERA_MODE = 530 , MAV_CMD_SET_CAMERA_ZOOM = 531 , MAV_CMD_SET_CAMERA_FOCUS = 532 , MAV_CMD_SET_STORAGE_USAGE = 533 , MAV_CMD_JUMP_TAG = 600 , MAV_CMD_DO_JUMP_TAG = 601 , MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW = 1000 , MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE = 1001 , MAV_CMD_IMAGE_START_CAPTURE = 2000 , MAV_CMD_IMAGE_STOP_CAPTURE = 2001 , MAV_CMD_REQUEST_CAMERA_IMAGE_CAPTURE = 2002 , MAV_CMD_DO_TRIGGER_CONTROL = 2003 , MAV_CMD_CAMERA_TRACK_POINT = 2004 , MAV_CMD_CAMERA_TRACK_RECTANGLE = 2005 , MAV_CMD_CAMERA_STOP_TRACKING = 2010 , MAV_CMD_VIDEO_START_CAPTURE = 2500 , MAV_CMD_VIDEO_STOP_CAPTURE = 2501 , MAV_CMD_VIDEO_START_STREAMING = 2502 , MAV_CMD_VIDEO_STOP_STREAMING = 2503 , MAV_CMD_REQUEST_VIDEO_STREAM_INFORMATION = 2504 , MAV_CMD_REQUEST_VIDEO_STREAM_STATUS = 2505 , MAV_CMD_LOGGING_START = 2510 , MAV_CMD_LOGGING_STOP = 2511 , MAV_CMD_AIRFRAME_CONFIGURATION = 2520 , MAV_CMD_CONTROL_HIGH_LATENCY = 2600 , MAV_CMD_PANORAMA_CREATE = 2800 , MAV_CMD_DO_VTOL_TRANSITION = 3000 , MAV_CMD_ARM_AUTHORIZATION_REQUEST = 3001 , MAV_CMD_SET_GUIDED_SUBMODE_STANDARD = 4000 , MAV_CMD_SET_GUIDED_SUBMODE_CIRCLE = 4001 , MAV_CMD_CONDITION_GATE = 4501 , MAV_CMD_NAV_FENCE_RETURN_POINT = 5000 , MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION = 5001 , MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION = 5002 , MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION = 5003 , MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION = 5004 , MAV_CMD_NAV_RALLY_POINT = 5100 , MAV_CMD_UAVCAN_GET_NODE_INFO = 5200 , MAV_CMD_DO_ADSB_OUT_IDENT = 10001 , MAV_CMD_PAYLOAD_PREPARE_DEPLOY = 30001 , MAV_CMD_PAYLOAD_CONTROL_DEPLOY = 30002 , MAV_CMD_FIXED_MAG_CAL_YAW = 42006 , MAV_CMD_DO_WINCH = 42600 , MAV_CMD_WAYPOINT_USER_1 = 31000 , MAV_CMD_WAYPOINT_USER_2 = 31001 , MAV_CMD_WAYPOINT_USER_3 = 31002 , MAV_CMD_WAYPOINT_USER_4 = 31003 , MAV_CMD_WAYPOINT_USER_5 = 31004 , MAV_CMD_SPATIAL_USER_1 = 31005 , MAV_CMD_SPATIAL_USER_2 = 31006 , MAV_CMD_SPATIAL_USER_3 = 31007 , MAV_CMD_SPATIAL_USER_4 = 31008 , MAV_CMD_SPATIAL_USER_5 = 31009 , MAV_CMD_USER_1 = 31010 , MAV_CMD_USER_2 = 31011 , MAV_CMD_USER_3 = 31012 , MAV_CMD_USER_4 = 31013 , MAV_CMD_USER_5 = 31014 , MAV_CMD_CAN_FORWARD = 32000 , MAV_CMD_DO_SET_RESUME_REPEAT_DIST = 215 , MAV_CMD_DO_SPRAYER = 216 , MAV_CMD_DO_SEND_SCRIPT_MESSAGE = 217 , MAV_CMD_DO_AUX_FUNCTION = 218 , MAV_CMD_NAV_ALTITUDE_WAIT = 83 , MAV_CMD_POWER_OFF_INITIATED = 42000 , MAV_CMD_SOLO_BTN_FLY_CLICK = 42001 , MAV_CMD_SOLO_BTN_FLY_HOLD = 42002 , MAV_CMD_SOLO_BTN_PAUSE_CLICK = 42003 , MAV_CMD_FIXED_MAG_CAL = 42004 , MAV_CMD_FIXED_MAG_CAL_FIELD = 42005 , MAV_CMD_SET_EKF_SOURCE_SET = 42007 , MAV_CMD_DO_START_MAG_CAL = 42424 , MAV_CMD_DO_ACCEPT_MAG_CAL = 42425 , MAV_CMD_DO_CANCEL_MAG_CAL = 42426 , MAV_CMD_ACCELCAL_VEHICLE_POS = 42429 , MAV_CMD_DO_SEND_BANNER = 42428 , MAV_CMD_SET_FACTORY_TEST_MODE = 42427 , MAV_CMD_GIMBAL_RESET = 42501 , MAV_CMD_GIMBAL_AXIS_CALIBRATION_STATUS = 42502 , MAV_CMD_GIMBAL_REQUEST_AXIS_CALIBRATION = 42503 , MAV_CMD_GIMBAL_FULL_RESET = 42505 , MAV_CMD_FLASH_BOOTLOADER = 42650 , MAV_CMD_BATTERY_RESET = 42651 , MAV_CMD_DEBUG_TRAP = 42700 , MAV_CMD_SCRIPTING = 42701 , MAV_CMD_NAV_SCRIPT_TIME = 42702 , MAV_CMD_NAV_ATTITUDE_TIME = 42703 , MAV_CMD_GUIDED_CHANGE_SPEED = 43000 , MAV_CMD_GUIDED_CHANGE_ALTITUDE = 43001 , MAV_CMD_GUIDED_CHANGE_HEADING = 43002 , } impl MavCmd { pub const DEFAULT : Self = Self :: MAV_CMD_NAV_WAYPOINT ; } impl Default for MavCmd { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproRequestStatus { GOPRO_REQUEST_SUCCESS = 0 , GOPRO_REQUEST_FAILED = 1 , } impl GoproRequestStatus { pub const DEFAULT : Self = Self :: GOPRO_REQUEST_SUCCESS ; } impl Default for GoproRequestStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PidTuningAxis { PID_TUNING_ROLL = 1 , PID_TUNING_PITCH = 2 , PID_TUNING_YAW = 3 , PID_TUNING_ACCZ = 4 , PID_TUNING_STEER = 5 , PID_TUNING_LANDING = 6 , } impl PidTuningAxis { pub const DEFAULT : Self = Self :: PID_TUNING_ROLL ; } impl Default for PidTuningAxis { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageStatus { STORAGE_STATUS_EMPTY = 0 , STORAGE_STATUS_UNFORMATTED = 1 , STORAGE_STATUS_READY = 2 , STORAGE_STATUS_NOT_SUPPORTED = 3 , } impl StorageStatus { pub const DEFAULT : Self = Self :: STORAGE_STATUS_EMPTY ; } impl Default for StorageStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSeverity { MAV_SEVERITY_EMERGENCY = 0 , MAV_SEVERITY_ALERT = 1 , MAV_SEVERITY_CRITICAL = 2 , MAV_SEVERITY_ERROR = 3 , MAV_SEVERITY_WARNING = 4 , MAV_SEVERITY_NOTICE = 5 , MAV_SEVERITY_INFO = 6 , MAV_SEVERITY_DEBUG = 7 , } impl MavSeverity { pub const DEFAULT : Self = Self :: MAV_SEVERITY_EMERGENCY ; } impl Default for MavSeverity { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavRemoteLogDataBlockCommands { MAV_REMOTE_LOG_DATA_BLOCK_STOP = 2147483645 , MAV_REMOTE_LOG_DATA_BLOCK_START = 2147483646 , } impl MavRemoteLogDataBlockCommands { pub const DEFAULT : Self = Self :: MAV_REMOTE_LOG_DATA_BLOCK_STOP ; } impl Default for MavRemoteLogDataBlockCommands { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidSpeedAcc { MAV_ODID_SPEED_ACC_UNKNOWN = 0 , MAV_ODID_SPEED_ACC_10_METERS_PER_SECOND = 1 , MAV_ODID_SPEED_ACC_3_METERS_PER_SECOND = 2 , MAV_ODID_SPEED_ACC_1_METERS_PER_SECOND = 3 , MAV_ODID_SPEED_ACC_0_3_METERS_PER_SECOND = 4 , } impl MavOdidSpeedAcc { pub const DEFAULT : Self = Self :: MAV_ODID_SPEED_ACC_UNKNOWN ; } impl Default for MavOdidSpeedAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FirmwareVersionType { FIRMWARE_VERSION_TYPE_DEV = 0 , FIRMWARE_VERSION_TYPE_ALPHA = 64 , FIRMWARE_VERSION_TYPE_BETA = 128 , FIRMWARE_VERSION_TYPE_RC = 192 , FIRMWARE_VERSION_TYPE_OFFICIAL = 255 , } impl FirmwareVersionType { pub const DEFAULT : Self = Self :: FIRMWARE_VERSION_TYPE_DEV ; } impl Default for FirmwareVersionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproPhotoResolution { GOPRO_PHOTO_RESOLUTION_5MP_MEDIUM = 0 , GOPRO_PHOTO_RESOLUTION_7MP_MEDIUM = 1 , GOPRO_PHOTO_RESOLUTION_7MP_WIDE = 2 , GOPRO_PHOTO_RESOLUTION_10MP_WIDE = 3 , GOPRO_PHOTO_RESOLUTION_12MP_WIDE = 4 , } impl GoproPhotoResolution { pub const DEFAULT : Self = Self :: GOPRO_PHOTO_RESOLUTION_5MP_MEDIUM ; } impl Default for GoproPhotoResolution { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum LandingTargetType { LANDING_TARGET_TYPE_LIGHT_BEACON = 0 , LANDING_TARGET_TYPE_RADIO_BEACON = 1 , LANDING_TARGET_TYPE_VISION_FIDUCIAL = 2 , LANDING_TARGET_TYPE_VISION_OTHER = 3 , } impl LandingTargetType { pub const DEFAULT : Self = Self :: LANDING_TARGET_TYPE_LIGHT_BEACON ; } impl Default for LandingTargetType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularConfigResponse { CELLULAR_CONFIG_RESPONSE_ACCEPTED = 0 , CELLULAR_CONFIG_RESPONSE_APN_ERROR = 1 , CELLULAR_CONFIG_RESPONSE_PIN_ERROR = 2 , CELLULAR_CONFIG_RESPONSE_REJECTED = 3 , CELLULAR_CONFIG_BLOCKED_PUK_REQUIRED = 4 , } impl CellularConfigResponse { pub const DEFAULT : Self = Self :: CELLULAR_CONFIG_RESPONSE_ACCEPTED ; } impl Default for CellularConfigResponse { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EscFailureFlags : u16 { const ESC_FAILURE_NONE = 0 ; const ESC_FAILURE_OVER_CURRENT = 1 ; const ESC_FAILURE_OVER_VOLTAGE = 2 ; const ESC_FAILURE_OVER_TEMPERATURE = 4 ; const ESC_FAILURE_OVER_RPM = 8 ; const ESC_FAILURE_INCONSISTENT_CMD = 16 ; const ESC_FAILURE_MOTOR_STUCK = 32 ; const ESC_FAILURE_GENERIC = 64 ; } } impl EscFailureFlags { pub const DEFAULT : Self = Self :: ESC_FAILURE_NONE ; } impl Default for EscFailureFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMissionType { MAV_MISSION_TYPE_MISSION = 0 , MAV_MISSION_TYPE_FENCE = 1 , MAV_MISSION_TYPE_RALLY = 2 , MAV_MISSION_TYPE_ALL = 255 , } impl MavMissionType { pub const DEFAULT : Self = Self :: MAV_MISSION_TYPE_MISSION ; } impl Default for MavMissionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavResult { MAV_RESULT_ACCEPTED = 0 , MAV_RESULT_TEMPORARILY_REJECTED = 1 , MAV_RESULT_DENIED = 2 , MAV_RESULT_UNSUPPORTED = 3 , MAV_RESULT_FAILED = 4 , MAV_RESULT_IN_PROGRESS = 5 , MAV_RESULT_CANCELLED = 6 , } impl MavResult { pub const DEFAULT : Self = Self :: MAV_RESULT_ACCEPTED ; } impl Default for MavResult { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HilSensorUpdatedFlags : u32 { const HIL_SENSOR_UPDATED_NONE = 0 ; const HIL_SENSOR_UPDATED_XACC = 1 ; const HIL_SENSOR_UPDATED_YACC = 2 ; const HIL_SENSOR_UPDATED_ZACC = 4 ; const HIL_SENSOR_UPDATED_XGYRO = 8 ; const HIL_SENSOR_UPDATED_YGYRO = 16 ; const HIL_SENSOR_UPDATED_ZGYRO = 32 ; const HIL_SENSOR_UPDATED_XMAG = 64 ; const HIL_SENSOR_UPDATED_YMAG = 128 ; const HIL_SENSOR_UPDATED_ZMAG = 256 ; const HIL_SENSOR_UPDATED_ABS_PRESSURE = 512 ; const HIL_SENSOR_UPDATED_DIFF_PRESSURE = 1024 ; const HIL_SENSOR_UPDATED_PRESSURE_ALT = 2048 ; const HIL_SENSOR_UPDATED_TEMPERATURE = 4096 ; const HIL_SENSOR_UPDATED_RESET = 2147483648 ; } } impl HilSensorUpdatedFlags { pub const DEFAULT : Self = Self :: HIL_SENSOR_UPDATED_NONE ; } impl Default for HilSensorUpdatedFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutCfgGpsOffsetLat { UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_NO_DATA = 0 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_2M = 1 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_4M = 2 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_6M = 3 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_0M = 4 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_2M = 5 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_4M = 6 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_6M = 7 , } impl UavionixAdsbOutCfgGpsOffsetLat { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_NO_DATA ; } impl Default for UavionixAdsbOutCfgGpsOffsetLat { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidClassEu { MAV_ODID_CLASS_EU_UNDECLARED = 0 , MAV_ODID_CLASS_EU_CLASS_0 = 1 , MAV_ODID_CLASS_EU_CLASS_1 = 2 , MAV_ODID_CLASS_EU_CLASS_2 = 3 , MAV_ODID_CLASS_EU_CLASS_3 = 4 , MAV_ODID_CLASS_EU_CLASS_4 = 5 , MAV_ODID_CLASS_EU_CLASS_5 = 6 , MAV_ODID_CLASS_EU_CLASS_6 = 7 , } impl MavOdidClassEu { pub const DEFAULT : Self = Self :: MAV_ODID_CLASS_EU_UNDECLARED ; } impl Default for MavOdidClassEu { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavParamExtType { MAV_PARAM_EXT_TYPE_UINT8 = 1 , MAV_PARAM_EXT_TYPE_INT8 = 2 , MAV_PARAM_EXT_TYPE_UINT16 = 3 , MAV_PARAM_EXT_TYPE_INT16 = 4 , MAV_PARAM_EXT_TYPE_UINT32 = 5 , MAV_PARAM_EXT_TYPE_INT32 = 6 , MAV_PARAM_EXT_TYPE_UINT64 = 7 , MAV_PARAM_EXT_TYPE_INT64 = 8 , MAV_PARAM_EXT_TYPE_REAL32 = 9 , MAV_PARAM_EXT_TYPE_REAL64 = 10 , MAV_PARAM_EXT_TYPE_CUSTOM = 11 , } impl MavParamExtType { pub const DEFAULT : Self = Self :: MAV_PARAM_EXT_TYPE_UINT8 ; } impl Default for MavParamExtType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FailureUnit { FAILURE_UNIT_SENSOR_GYRO = 0 , FAILURE_UNIT_SENSOR_ACCEL = 1 , FAILURE_UNIT_SENSOR_MAG = 2 , FAILURE_UNIT_SENSOR_BARO = 3 , FAILURE_UNIT_SENSOR_GPS = 4 , FAILURE_UNIT_SENSOR_OPTICAL_FLOW = 5 , FAILURE_UNIT_SENSOR_VIO = 6 , FAILURE_UNIT_SENSOR_DISTANCE_SENSOR = 7 , FAILURE_UNIT_SENSOR_AIRSPEED = 8 , FAILURE_UNIT_SYSTEM_BATTERY = 100 , FAILURE_UNIT_SYSTEM_MOTOR = 101 , FAILURE_UNIT_SYSTEM_SERVO = 102 , FAILURE_UNIT_SYSTEM_AVOIDANCE = 103 , FAILURE_UNIT_SYSTEM_RC_SIGNAL = 104 , FAILURE_UNIT_SYSTEM_MAVLINK_SIGNAL = 105 , } impl FailureUnit { pub const DEFAULT : Self = Self :: FAILURE_UNIT_SENSOR_GYRO ; } impl Default for FailureUnit { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidTimeAcc { MAV_ODID_TIME_ACC_UNKNOWN = 0 , MAV_ODID_TIME_ACC_0_1_SECOND = 1 , MAV_ODID_TIME_ACC_0_2_SECOND = 2 , MAV_ODID_TIME_ACC_0_3_SECOND = 3 , MAV_ODID_TIME_ACC_0_4_SECOND = 4 , MAV_ODID_TIME_ACC_0_5_SECOND = 5 , MAV_ODID_TIME_ACC_0_6_SECOND = 6 , MAV_ODID_TIME_ACC_0_7_SECOND = 7 , MAV_ODID_TIME_ACC_0_8_SECOND = 8 , MAV_ODID_TIME_ACC_0_9_SECOND = 9 , MAV_ODID_TIME_ACC_1_0_SECOND = 10 , MAV_ODID_TIME_ACC_1_1_SECOND = 11 , MAV_ODID_TIME_ACC_1_2_SECOND = 12 , MAV_ODID_TIME_ACC_1_3_SECOND = 13 , MAV_ODID_TIME_ACC_1_4_SECOND = 14 , MAV_ODID_TIME_ACC_1_5_SECOND = 15 , } impl MavOdidTimeAcc { pub const DEFAULT : Self = Self :: MAV_ODID_TIME_ACC_UNKNOWN ; } impl Default for MavOdidTimeAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GimbalAxis { GIMBAL_AXIS_YAW = 0 , GIMBAL_AXIS_PITCH = 1 , GIMBAL_AXIS_ROLL = 2 , } impl GimbalAxis { pub const DEFAULT : Self = Self :: GIMBAL_AXIS_YAW ; } impl Default for GimbalAxis { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDoRepositionFlags { MAV_DO_REPOSITION_FLAGS_CHANGE_MODE = 1 , } impl MavDoRepositionFlags { pub const DEFAULT : Self = Self :: MAV_DO_REPOSITION_FLAGS_CHANGE_MODE ; } impl Default for MavDoRepositionFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavGoto { MAV_GOTO_DO_HOLD = 0 , MAV_GOTO_DO_CONTINUE = 1 , MAV_GOTO_HOLD_AT_CURRENT_POSITION = 2 , MAV_GOTO_HOLD_AT_SPECIFIED_POSITION = 3 , } impl MavGoto { pub const DEFAULT : Self = Self :: MAV_GOTO_DO_HOLD ; } impl Default for MavGoto { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproCommand { GOPRO_COMMAND_POWER = 0 , GOPRO_COMMAND_CAPTURE_MODE = 1 , GOPRO_COMMAND_SHUTTER = 2 , GOPRO_COMMAND_BATTERY = 3 , GOPRO_COMMAND_MODEL = 4 , GOPRO_COMMAND_VIDEO_SETTINGS = 5 , GOPRO_COMMAND_LOW_LIGHT = 6 , GOPRO_COMMAND_PHOTO_RESOLUTION = 7 , GOPRO_COMMAND_PHOTO_BURST_RATE = 8 , GOPRO_COMMAND_PROTUNE = 9 , GOPRO_COMMAND_PROTUNE_WHITE_BALANCE = 10 , GOPRO_COMMAND_PROTUNE_COLOUR = 11 , GOPRO_COMMAND_PROTUNE_GAIN = 12 , GOPRO_COMMAND_PROTUNE_SHARPNESS = 13 , GOPRO_COMMAND_PROTUNE_EXPOSURE = 14 , GOPRO_COMMAND_TIME = 15 , GOPRO_COMMAND_CHARGING = 16 , } impl GoproCommand { pub const DEFAULT : Self = Self :: GOPRO_COMMAND_POWER ; } impl Default for GoproCommand { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproFrameRate { GOPRO_FRAME_RATE_12 = 0 , GOPRO_FRAME_RATE_15 = 1 , GOPRO_FRAME_RATE_24 = 2 , GOPRO_FRAME_RATE_25 = 3 , GOPRO_FRAME_RATE_30 = 4 , GOPRO_FRAME_RATE_48 = 5 , GOPRO_FRAME_RATE_50 = 6 , GOPRO_FRAME_RATE_60 = 7 , GOPRO_FRAME_RATE_80 = 8 , GOPRO_FRAME_RATE_90 = 9 , GOPRO_FRAME_RATE_100 = 10 , GOPRO_FRAME_RATE_120 = 11 , GOPRO_FRAME_RATE_240 = 12 , GOPRO_FRAME_RATE_12_5 = 13 , } impl GoproFrameRate { pub const DEFAULT : Self = Self :: GOPRO_FRAME_RATE_12 ; } impl Default for GoproFrameRate { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum EscConnectionType { ESC_CONNECTION_TYPE_PPM = 0 , ESC_CONNECTION_TYPE_SERIAL = 1 , ESC_CONNECTION_TYPE_ONESHOT = 2 , ESC_CONNECTION_TYPE_I2C = 3 , ESC_CONNECTION_TYPE_CAN = 4 , ESC_CONNECTION_TYPE_DSHOT = 5 , } impl EscConnectionType { pub const DEFAULT : Self = Self :: ESC_CONNECTION_TYPE_PPM ; } impl Default for EscConnectionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum OsdParamConfigError { OSD_PARAM_SUCCESS = 0 , OSD_PARAM_INVALID_SCREEN = 1 , OSD_PARAM_INVALID_PARAMETER_INDEX = 2 , OSD_PARAM_INVALID_PARAMETER = 3 , } impl OsdParamConfigError { pub const DEFAULT : Self = Self :: OSD_PARAM_SUCCESS ; } impl Default for OsdParamConfigError { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmdDoAuxFunctionSwitchLevel { MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_LOW = 0 , MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_MIDDLE = 1 , MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_HIGH = 2 , } impl MavCmdDoAuxFunctionSwitchLevel { pub const DEFAULT : Self = Self :: MAV_CMD_DO_AUX_FUNCTION_SWITCH_LEVEL_LOW ; } impl Default for MavCmdDoAuxFunctionSwitchLevel { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VideoStreamType { VIDEO_STREAM_TYPE_RTSP = 0 , VIDEO_STREAM_TYPE_RTPUDP = 1 , VIDEO_STREAM_TYPE_TCP_MPEG = 2 , VIDEO_STREAM_TYPE_MPEG_TS_H264 = 3 , } impl VideoStreamType { pub const DEFAULT : Self = Self :: VIDEO_STREAM_TYPE_RTSP ; } impl Default for VideoStreamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavcanNodeMode { UAVCAN_NODE_MODE_OPERATIONAL = 0 , UAVCAN_NODE_MODE_INITIALIZATION = 1 , UAVCAN_NODE_MODE_MAINTENANCE = 2 , UAVCAN_NODE_MODE_SOFTWARE_UPDATE = 3 , UAVCAN_NODE_MODE_OFFLINE = 7 , } impl UavcanNodeMode { pub const DEFAULT : Self = Self :: UAVCAN_NODE_MODE_OPERATIONAL ; } impl Default for UavcanNodeMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraZoomType { ZOOM_TYPE_STEP = 0 , ZOOM_TYPE_CONTINUOUS = 1 , ZOOM_TYPE_RANGE = 2 , ZOOM_TYPE_FOCAL_LENGTH = 3 , } impl CameraZoomType { pub const DEFAULT : Self = Self :: ZOOM_TYPE_STEP ; } impl Default for CameraZoomType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryFault { MAV_BATTERY_FAULT_DEEP_DISCHARGE = 1 , MAV_BATTERY_FAULT_SPIKES = 2 , MAV_BATTERY_FAULT_CELL_FAIL = 4 , MAV_BATTERY_FAULT_OVER_CURRENT = 8 , MAV_BATTERY_FAULT_OVER_TEMPERATURE = 16 , MAV_BATTERY_FAULT_UNDER_TEMPERATURE = 32 , MAV_BATTERY_FAULT_INCOMPATIBLE_VOLTAGE = 64 , MAV_BATTERY_FAULT_INCOMPATIBLE_FIRMWARE = 128 , BATTERY_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION = 256 , } impl MavBatteryFault { pub const DEFAULT : Self = Self :: MAV_BATTERY_FAULT_DEEP_DISCHARGE ; } impl Default for MavBatteryFault { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum IcarousTrackBandTypes { ICAROUS_TRACK_BAND_TYPE_NONE = 0 , ICAROUS_TRACK_BAND_TYPE_NEAR = 1 , ICAROUS_TRACK_BAND_TYPE_RECOVERY = 2 , } impl IcarousTrackBandTypes { pub const DEFAULT : Self = Self :: ICAROUS_TRACK_BAND_TYPE_NONE ; } impl Default for IcarousTrackBandTypes { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GpsInputIgnoreFlags : u16 { const GPS_INPUT_IGNORE_FLAG_ALT = 1 ; const GPS_INPUT_IGNORE_FLAG_HDOP = 2 ; const GPS_INPUT_IGNORE_FLAG_VDOP = 4 ; const GPS_INPUT_IGNORE_FLAG_VEL_HORIZ = 8 ; const GPS_INPUT_IGNORE_FLAG_VEL_VERT = 16 ; const GPS_INPUT_IGNORE_FLAG_SPEED_ACCURACY = 32 ; const GPS_INPUT_IGNORE_FLAG_HORIZONTAL_ACCURACY = 64 ; const GPS_INPUT_IGNORE_FLAG_VERTICAL_ACCURACY = 128 ; } } impl GpsInputIgnoreFlags { pub const DEFAULT : Self = Self :: GPS_INPUT_IGNORE_FLAG_ALT ; } impl Default for GpsInputIgnoreFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryFunction { MAV_BATTERY_FUNCTION_UNKNOWN = 0 , MAV_BATTERY_FUNCTION_ALL = 1 , MAV_BATTERY_FUNCTION_PROPULSION = 2 , MAV_BATTERY_FUNCTION_AVIONICS = 3 , MAV_BATTERY_FUNCTION_PAYLOAD = 4 , } impl MavBatteryFunction { pub const DEFAULT : Self = Self :: MAV_BATTERY_FUNCTION_UNKNOWN ; } impl Default for MavBatteryFunction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GpsFixType { GPS_FIX_TYPE_NO_GPS = 0 , GPS_FIX_TYPE_NO_FIX = 1 , GPS_FIX_TYPE_2D_FIX = 2 , GPS_FIX_TYPE_3D_FIX = 3 , GPS_FIX_TYPE_DGPS = 4 , GPS_FIX_TYPE_RTK_FLOAT = 5 , GPS_FIX_TYPE_RTK_FIXED = 6 , GPS_FIX_TYPE_STATIC = 7 , GPS_FIX_TYPE_PPP = 8 , } impl GpsFixType { pub const DEFAULT : Self = Self :: GPS_FIX_TYPE_NO_GPS ; } impl Default for GpsFixType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDistanceSensor { MAV_DISTANCE_SENSOR_LASER = 0 , MAV_DISTANCE_SENSOR_ULTRASOUND = 1 , MAV_DISTANCE_SENSOR_INFRARED = 2 , MAV_DISTANCE_SENSOR_RADAR = 3 , MAV_DISTANCE_SENSOR_UNKNOWN = 4 , } impl MavDistanceSensor { pub const DEFAULT : Self = Self :: MAV_DISTANCE_SENSOR_LASER ; } impl Default for MavDistanceSensor { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UavionixAdsbOutRfSelect : u8 { const UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY = 0 ; const UAVIONIX_ADSB_OUT_RF_SELECT_RX_ENABLED = 1 ; const UAVIONIX_ADSB_OUT_RF_SELECT_TX_ENABLED = 2 ; } } impl UavionixAdsbOutRfSelect { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY ; } impl Default for UavionixAdsbOutRfSelect { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum IcarousFmsState { ICAROUS_FMS_STATE_IDLE = 0 , ICAROUS_FMS_STATE_TAKEOFF = 1 , ICAROUS_FMS_STATE_CLIMB = 2 , ICAROUS_FMS_STATE_CRUISE = 3 , ICAROUS_FMS_STATE_APPROACH = 4 , ICAROUS_FMS_STATE_LAND = 5 , } impl IcarousFmsState { pub const DEFAULT : Self = Self :: ICAROUS_FMS_STATE_IDLE ; } impl Default for IcarousFmsState { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavSysStatusSensor : u32 { const MAV_SYS_STATUS_SENSOR_3D_GYRO = 1 ; const MAV_SYS_STATUS_SENSOR_3D_ACCEL = 2 ; const MAV_SYS_STATUS_SENSOR_3D_MAG = 4 ; const MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE = 8 ; const MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE = 16 ; const MAV_SYS_STATUS_SENSOR_GPS = 32 ; const MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW = 64 ; const MAV_SYS_STATUS_SENSOR_VISION_POSITION = 128 ; const MAV_SYS_STATUS_SENSOR_LASER_POSITION = 256 ; const MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH = 512 ; const MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL = 1024 ; const MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION = 2048 ; const MAV_SYS_STATUS_SENSOR_YAW_POSITION = 4096 ; const MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL = 8192 ; const MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL = 16384 ; const MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS = 32768 ; const MAV_SYS_STATUS_SENSOR_RC_RECEIVER = 65536 ; const MAV_SYS_STATUS_SENSOR_3D_GYRO2 = 131072 ; const MAV_SYS_STATUS_SENSOR_3D_ACCEL2 = 262144 ; const MAV_SYS_STATUS_SENSOR_3D_MAG2 = 524288 ; const MAV_SYS_STATUS_GEOFENCE = 1048576 ; const MAV_SYS_STATUS_AHRS = 2097152 ; const MAV_SYS_STATUS_TERRAIN = 4194304 ; const MAV_SYS_STATUS_REVERSE_MOTOR = 8388608 ; const MAV_SYS_STATUS_LOGGING = 16777216 ; const MAV_SYS_STATUS_SENSOR_BATTERY = 33554432 ; const MAV_SYS_STATUS_SENSOR_PROXIMITY = 67108864 ; const MAV_SYS_STATUS_SENSOR_SATCOM = 134217728 ; const MAV_SYS_STATUS_PREARM_CHECK = 268435456 ; const MAV_SYS_STATUS_OBSTACLE_AVOIDANCE = 536870912 ; const MAV_SYS_STATUS_SENSOR_PROPULSION = 1073741824 ; const MAV_SYS_STATUS_EXTENSION_USED = 2147483648 ; } } impl MavSysStatusSensor { pub const DEFAULT : Self = Self :: MAV_SYS_STATUS_SENSOR_3D_GYRO ; } impl Default for MavSysStatusSensor { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMountMode { MAV_MOUNT_MODE_RETRACT = 0 , MAV_MOUNT_MODE_NEUTRAL = 1 , MAV_MOUNT_MODE_MAVLINK_TARGETING = 2 , MAV_MOUNT_MODE_RC_TARGETING = 3 , MAV_MOUNT_MODE_GPS_POINT = 4 , MAV_MOUNT_MODE_SYSID_TARGET = 5 , MAV_MOUNT_MODE_HOME_LOCATION = 6 , } impl MavMountMode { pub const DEFAULT : Self = Self :: MAV_MOUNT_MODE_RETRACT ; } impl Default for MavMountMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularNetworkFailedReason { CELLULAR_NETWORK_FAILED_REASON_NONE = 0 , CELLULAR_NETWORK_FAILED_REASON_UNKNOWN = 1 , CELLULAR_NETWORK_FAILED_REASON_SIM_MISSING = 2 , CELLULAR_NETWORK_FAILED_REASON_SIM_ERROR = 3 , } impl CellularNetworkFailedReason { pub const DEFAULT : Self = Self :: CELLULAR_NETWORK_FAILED_REASON_NONE ; } impl Default for CellularNetworkFailedReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RtkBaselineCoordinateSystem { RTK_BASELINE_COORDINATE_SYSTEM_ECEF = 0 , RTK_BASELINE_COORDINATE_SYSTEM_NED = 1 , } impl RtkBaselineCoordinateSystem { pub const DEFAULT : Self = Self :: RTK_BASELINE_COORDINATE_SYSTEM_ECEF ; } impl Default for RtkBaselineCoordinateSystem { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularNetworkRadioType { CELLULAR_NETWORK_RADIO_TYPE_NONE = 0 , CELLULAR_NETWORK_RADIO_TYPE_GSM = 1 , CELLULAR_NETWORK_RADIO_TYPE_CDMA = 2 , CELLULAR_NETWORK_RADIO_TYPE_WCDMA = 3 , CELLULAR_NETWORK_RADIO_TYPE_LTE = 4 , } impl CellularNetworkRadioType { pub const DEFAULT : Self = Self :: CELLULAR_NETWORK_RADIO_TYPE_NONE ; } impl Default for CellularNetworkRadioType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TuneFormat : u32 { const TUNE_FORMAT_QBASIC1_1 = 1 ; const TUNE_FORMAT_MML_MODERN = 2 ; } } impl TuneFormat { pub const DEFAULT : Self = Self :: TUNE_FORMAT_QBASIC1_1 ; } impl Default for TuneFormat { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavTunnelPayloadType { MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN = 0 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED0 = 200 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED1 = 201 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED2 = 202 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED3 = 203 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED4 = 204 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED5 = 205 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED6 = 206 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED7 = 207 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED8 = 208 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED9 = 209 , } impl MavTunnelPayloadType { pub const DEFAULT : Self = Self :: MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN ; } impl Default for MavTunnelPayloadType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ParachuteAction { PARACHUTE_DISABLE = 0 , PARACHUTE_ENABLE = 1 , PARACHUTE_RELEASE = 2 , } impl ParachuteAction { pub const DEFAULT : Self = Self :: PARACHUTE_DISABLE ; } impl Default for ParachuteAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AisNavStatus { UNDER_WAY = 0 , AIS_NAV_ANCHORED = 1 , AIS_NAV_UN_COMMANDED = 2 , AIS_NAV_RESTRICTED_MANOEUVERABILITY = 3 , AIS_NAV_DRAUGHT_CONSTRAINED = 4 , AIS_NAV_MOORED = 5 , AIS_NAV_AGROUND = 6 , AIS_NAV_FISHING = 7 , AIS_NAV_SAILING = 8 , AIS_NAV_RESERVED_HSC = 9 , AIS_NAV_RESERVED_WIG = 10 , AIS_NAV_RESERVED_1 = 11 , AIS_NAV_RESERVED_2 = 12 , AIS_NAV_RESERVED_3 = 13 , AIS_NAV_AIS_SART = 14 , AIS_NAV_UNKNOWN = 15 , } impl AisNavStatus { pub const DEFAULT : Self = Self :: UNDER_WAY ; } impl Default for AisNavStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ActuatorOutputFunction { ACTUATOR_OUTPUT_FUNCTION_NONE = 0 , ACTUATOR_OUTPUT_FUNCTION_MOTOR1 = 1 , ACTUATOR_OUTPUT_FUNCTION_MOTOR2 = 2 , ACTUATOR_OUTPUT_FUNCTION_MOTOR3 = 3 , ACTUATOR_OUTPUT_FUNCTION_MOTOR4 = 4 , ACTUATOR_OUTPUT_FUNCTION_MOTOR5 = 5 , ACTUATOR_OUTPUT_FUNCTION_MOTOR6 = 6 , ACTUATOR_OUTPUT_FUNCTION_MOTOR7 = 7 , ACTUATOR_OUTPUT_FUNCTION_MOTOR8 = 8 , ACTUATOR_OUTPUT_FUNCTION_MOTOR9 = 9 , ACTUATOR_OUTPUT_FUNCTION_MOTOR10 = 10 , ACTUATOR_OUTPUT_FUNCTION_MOTOR11 = 11 , ACTUATOR_OUTPUT_FUNCTION_MOTOR12 = 12 , ACTUATOR_OUTPUT_FUNCTION_MOTOR13 = 13 , ACTUATOR_OUTPUT_FUNCTION_MOTOR14 = 14 , ACTUATOR_OUTPUT_FUNCTION_MOTOR15 = 15 , ACTUATOR_OUTPUT_FUNCTION_MOTOR16 = 16 , ACTUATOR_OUTPUT_FUNCTION_SERVO1 = 33 , ACTUATOR_OUTPUT_FUNCTION_SERVO2 = 34 , ACTUATOR_OUTPUT_FUNCTION_SERVO3 = 35 , ACTUATOR_OUTPUT_FUNCTION_SERVO4 = 36 , ACTUATOR_OUTPUT_FUNCTION_SERVO5 = 37 , ACTUATOR_OUTPUT_FUNCTION_SERVO6 = 38 , ACTUATOR_OUTPUT_FUNCTION_SERVO7 = 39 , ACTUATOR_OUTPUT_FUNCTION_SERVO8 = 40 , ACTUATOR_OUTPUT_FUNCTION_SERVO9 = 41 , ACTUATOR_OUTPUT_FUNCTION_SERVO10 = 42 , ACTUATOR_OUTPUT_FUNCTION_SERVO11 = 43 , ACTUATOR_OUTPUT_FUNCTION_SERVO12 = 44 , ACTUATOR_OUTPUT_FUNCTION_SERVO13 = 45 , ACTUATOR_OUTPUT_FUNCTION_SERVO14 = 46 , ACTUATOR_OUTPUT_FUNCTION_SERVO15 = 47 , ACTUATOR_OUTPUT_FUNCTION_SERVO16 = 48 , } impl ActuatorOutputFunction { pub const DEFAULT : Self = Self :: ACTUATOR_OUTPUT_FUNCTION_NONE ; } impl Default for ActuatorOutputFunction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CompMetadataType { COMP_METADATA_TYPE_GENERAL = 0 , COMP_METADATA_TYPE_PARAMETER = 1 , COMP_METADATA_TYPE_COMMANDS = 2 , COMP_METADATA_TYPE_PERIPHERALS = 3 , COMP_METADATA_TYPE_EVENTS = 4 , COMP_METADATA_TYPE_ACTUATORS = 5 , } impl CompMetadataType { pub const DEFAULT : Self = Self :: COMP_METADATA_TYPE_GENERAL ; } impl Default for CompMetadataType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutCfgGpsOffsetLon { UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_NO_DATA = 0 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_APPLIED_BY_SENSOR = 1 , } impl UavionixAdsbOutCfgGpsOffsetLon { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_NO_DATA ; } impl Default for UavionixAdsbOutCfgGpsOffsetLon { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproModel { GOPRO_MODEL_UNKNOWN = 0 , GOPRO_MODEL_HERO_3_PLUS_SILVER = 1 , GOPRO_MODEL_HERO_3_PLUS_BLACK = 2 , GOPRO_MODEL_HERO_4_SILVER = 3 , GOPRO_MODEL_HERO_4_BLACK = 4 , } impl GoproModel { pub const DEFAULT : Self = Self :: GOPRO_MODEL_UNKNOWN ; } impl Default for GoproModel { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GripperActions { GRIPPER_ACTION_RELEASE = 0 , GRIPPER_ACTION_GRAB = 1 , } impl GripperActions { pub const DEFAULT : Self = Self :: GRIPPER_ACTION_RELEASE ; } impl Default for GripperActions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SerialControlDev { SERIAL_CONTROL_DEV_TELEM1 = 0 , SERIAL_CONTROL_DEV_TELEM2 = 1 , SERIAL_CONTROL_DEV_GPS1 = 2 , SERIAL_CONTROL_DEV_GPS2 = 3 , SERIAL_CONTROL_DEV_SHELL = 10 , SERIAL_CONTROL_SERIAL0 = 100 , SERIAL_CONTROL_SERIAL1 = 101 , SERIAL_CONTROL_SERIAL2 = 102 , SERIAL_CONTROL_SERIAL3 = 103 , SERIAL_CONTROL_SERIAL4 = 104 , SERIAL_CONTROL_SERIAL5 = 105 , SERIAL_CONTROL_SERIAL6 = 106 , SERIAL_CONTROL_SERIAL7 = 107 , SERIAL_CONTROL_SERIAL8 = 108 , SERIAL_CONTROL_SERIAL9 = 109 , } impl SerialControlDev { pub const DEFAULT : Self = Self :: SERIAL_CONTROL_DEV_TELEM1 ; } impl Default for SerialControlDev { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavVtolState { MAV_VTOL_STATE_UNDEFINED = 0 , MAV_VTOL_STATE_TRANSITION_TO_FW = 1 , MAV_VTOL_STATE_TRANSITION_TO_MC = 2 , MAV_VTOL_STATE_MC = 3 , MAV_VTOL_STATE_FW = 4 , } impl MavVtolState { pub const DEFAULT : Self = Self :: MAV_VTOL_STATE_UNDEFINED ; } impl Default for MavVtolState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproCaptureMode { GOPRO_CAPTURE_MODE_VIDEO = 0 , GOPRO_CAPTURE_MODE_PHOTO = 1 , GOPRO_CAPTURE_MODE_BURST = 2 , GOPRO_CAPTURE_MODE_TIME_LAPSE = 3 , GOPRO_CAPTURE_MODE_MULTI_SHOT = 4 , GOPRO_CAPTURE_MODE_PLAYBACK = 5 , GOPRO_CAPTURE_MODE_SETUP = 6 , GOPRO_CAPTURE_MODE_UNKNOWN = 255 , } impl GoproCaptureMode { pub const DEFAULT : Self = Self :: GOPRO_CAPTURE_MODE_VIDEO ; } impl Default for GoproCaptureMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceAction { FENCE_ACTION_NONE = 0 , FENCE_ACTION_GUIDED = 1 , FENCE_ACTION_REPORT = 2 , FENCE_ACTION_GUIDED_THR_PASS = 3 , FENCE_ACTION_RTL = 4 , FENCE_ACTION_HOLD = 5 , FENCE_ACTION_TERMINATE = 6 , FENCE_ACTION_LAND = 7 , } impl FenceAction { pub const DEFAULT : Self = Self :: FENCE_ACTION_NONE ; } impl Default for FenceAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CopterMode { COPTER_MODE_STABILIZE = 0 , COPTER_MODE_ACRO = 1 , COPTER_MODE_ALT_HOLD = 2 , COPTER_MODE_AUTO = 3 , COPTER_MODE_GUIDED = 4 , COPTER_MODE_LOITER = 5 , COPTER_MODE_RTL = 6 , COPTER_MODE_CIRCLE = 7 , COPTER_MODE_LAND = 9 , COPTER_MODE_DRIFT = 11 , COPTER_MODE_SPORT = 13 , COPTER_MODE_FLIP = 14 , COPTER_MODE_AUTOTUNE = 15 , COPTER_MODE_POSHOLD = 16 , COPTER_MODE_BRAKE = 17 , COPTER_MODE_THROW = 18 , COPTER_MODE_AVOID_ADSB = 19 , COPTER_MODE_GUIDED_NOGPS = 20 , COPTER_MODE_SMART_RTL = 21 , COPTER_MODE_FLOWHOLD = 22 , COPTER_MODE_FOLLOW = 23 , COPTER_MODE_ZIGZAG = 24 , COPTER_MODE_SYSTEMID = 25 , COPTER_MODE_AUTOROTATE = 26 , COPTER_MODE_AUTO_RTL = 27 , } impl CopterMode { pub const DEFAULT : Self = Self :: COPTER_MODE_STABILIZE ; } impl Default for CopterMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum TrackerMode { TRACKER_MODE_MANUAL = 0 , TRACKER_MODE_STOP = 1 , TRACKER_MODE_SCAN = 2 , TRACKER_MODE_SERVO_TEST = 3 , TRACKER_MODE_AUTO = 10 , TRACKER_MODE_INITIALIZING = 16 , } impl TrackerMode { pub const DEFAULT : Self = Self :: TRACKER_MODE_MANUAL ; } impl Default for TrackerMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SetFocusType { FOCUS_TYPE_STEP = 0 , FOCUS_TYPE_CONTINUOUS = 1 , FOCUS_TYPE_RANGE = 2 , FOCUS_TYPE_METERS = 3 , FOCUS_TYPE_AUTO = 4 , FOCUS_TYPE_AUTO_SINGLE = 5 , FOCUS_TYPE_AUTO_CONTINUOUS = 6 , } impl SetFocusType { pub const DEFAULT : Self = Self :: FOCUS_TYPE_STEP ; } impl Default for SetFocusType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryChargeState { MAV_BATTERY_CHARGE_STATE_UNDEFINED = 0 , MAV_BATTERY_CHARGE_STATE_OK = 1 , MAV_BATTERY_CHARGE_STATE_LOW = 2 , MAV_BATTERY_CHARGE_STATE_CRITICAL = 3 , MAV_BATTERY_CHARGE_STATE_EMERGENCY = 4 , MAV_BATTERY_CHARGE_STATE_FAILED = 5 , MAV_BATTERY_CHARGE_STATE_UNHEALTHY = 6 , MAV_BATTERY_CHARGE_STATE_CHARGING = 7 , } impl MavBatteryChargeState { pub const DEFAULT : Self = Self :: MAV_BATTERY_CHARGE_STATE_UNDEFINED ; } impl Default for MavBatteryChargeState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFtpOpcode { MAV_FTP_OPCODE_NONE = 0 , MAV_FTP_OPCODE_TERMINATESESSION = 1 , MAV_FTP_OPCODE_RESETSESSION = 2 , MAV_FTP_OPCODE_LISTDIRECTORY = 3 , MAV_FTP_OPCODE_OPENFILERO = 4 , MAV_FTP_OPCODE_READFILE = 5 , MAV_FTP_OPCODE_CREATEFILE = 6 , MAV_FTP_OPCODE_WRITEFILE = 7 , MAV_FTP_OPCODE_REMOVEFILE = 8 , MAV_FTP_OPCODE_CREATEDIRECTORY = 9 , MAV_FTP_OPCODE_REMOVEDIRECTORY = 10 , MAV_FTP_OPCODE_OPENFILEWO = 11 , MAV_FTP_OPCODE_TRUNCATEFILE = 12 , MAV_FTP_OPCODE_RENAME = 13 , MAV_FTP_OPCODE_CALCFILECRC = 14 , MAV_FTP_OPCODE_BURSTREADFILE = 15 , MAV_FTP_OPCODE_ACK = 128 , MAV_FTP_OPCODE_NAK = 129 , } impl MavFtpOpcode { pub const DEFAULT : Self = Self :: MAV_FTP_OPCODE_NONE ; } impl Default for MavFtpOpcode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidVerAcc { MAV_ODID_VER_ACC_UNKNOWN = 0 , MAV_ODID_VER_ACC_150_METER = 1 , MAV_ODID_VER_ACC_45_METER = 2 , MAV_ODID_VER_ACC_25_METER = 3 , MAV_ODID_VER_ACC_10_METER = 4 , MAV_ODID_VER_ACC_3_METER = 5 , MAV_ODID_VER_ACC_1_METER = 6 , } impl MavOdidVerAcc { pub const DEFAULT : Self = Self :: MAV_ODID_VER_ACC_UNKNOWN ; } impl Default for MavOdidVerAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AdsbAltitudeType { ADSB_ALTITUDE_TYPE_PRESSURE_QNH = 0 , ADSB_ALTITUDE_TYPE_GEOMETRIC = 1 , } impl AdsbAltitudeType { pub const DEFAULT : Self = Self :: ADSB_ALTITUDE_TYPE_PRESSURE_QNH ; } impl Default for AdsbAltitudeType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UtmDataAvailFlags : u8 { const UTM_DATA_AVAIL_FLAGS_TIME_VALID = 1 ; const UTM_DATA_AVAIL_FLAGS_UAS_ID_AVAILABLE = 2 ; const UTM_DATA_AVAIL_FLAGS_POSITION_AVAILABLE = 4 ; const UTM_DATA_AVAIL_FLAGS_ALTITUDE_AVAILABLE = 8 ; const UTM_DATA_AVAIL_FLAGS_RELATIVE_ALTITUDE_AVAILABLE = 16 ; const UTM_DATA_AVAIL_FLAGS_HORIZONTAL_VELO_AVAILABLE = 32 ; const UTM_DATA_AVAIL_FLAGS_VERTICAL_VELO_AVAILABLE = 64 ; const UTM_DATA_AVAIL_FLAGS_NEXT_WAYPOINT_AVAILABLE = 128 ; } } impl UtmDataAvailFlags { pub const DEFAULT : Self = Self :: UTM_DATA_AVAIL_FLAGS_TIME_VALID ; } impl Default for UtmDataAvailFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidOperatorLocationType { MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF = 0 , MAV_ODID_OPERATOR_LOCATION_TYPE_LIVE_GNSS = 1 , MAV_ODID_OPERATOR_LOCATION_TYPE_FIXED = 2 , } impl MavOdidOperatorLocationType { pub const DEFAULT : Self = Self :: MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF ; } impl Default for MavOdidOperatorLocationType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AccelcalVehiclePos { ACCELCAL_VEHICLE_POS_LEVEL = 1 , ACCELCAL_VEHICLE_POS_LEFT = 2 , ACCELCAL_VEHICLE_POS_RIGHT = 3 , ACCELCAL_VEHICLE_POS_NOSEDOWN = 4 , ACCELCAL_VEHICLE_POS_NOSEUP = 5 , ACCELCAL_VEHICLE_POS_BACK = 6 , ACCELCAL_VEHICLE_POS_SUCCESS = 16777215 , ACCELCAL_VEHICLE_POS_FAILED = 16777216 , } impl AccelcalVehiclePos { pub const DEFAULT : Self = Self :: ACCELCAL_VEHICLE_POS_LEVEL ; } impl Default for AccelcalVehiclePos { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproProtuneWhiteBalance { GOPRO_PROTUNE_WHITE_BALANCE_AUTO = 0 , GOPRO_PROTUNE_WHITE_BALANCE_3000K = 1 , GOPRO_PROTUNE_WHITE_BALANCE_5500K = 2 , GOPRO_PROTUNE_WHITE_BALANCE_6500K = 3 , GOPRO_PROTUNE_WHITE_BALANCE_RAW = 4 , } impl GoproProtuneWhiteBalance { pub const DEFAULT : Self = Self :: GOPRO_PROTUNE_WHITE_BALANCE_AUTO ; } impl Default for GoproProtuneWhiteBalance { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UavionixAdsbRfHealth : u8 { const UAVIONIX_ADSB_RF_HEALTH_INITIALIZING = 0 ; const UAVIONIX_ADSB_RF_HEALTH_OK = 1 ; const UAVIONIX_ADSB_RF_HEALTH_FAIL_TX = 2 ; const UAVIONIX_ADSB_RF_HEALTH_FAIL_RX = 16 ; } } impl UavionixAdsbRfHealth { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_RF_HEALTH_INITIALIZING ; } impl Default for UavionixAdsbRfHealth { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavModeFlag : u8 { const MAV_MODE_FLAG_SAFETY_ARMED = 128 ; const MAV_MODE_FLAG_MANUAL_INPUT_ENABLED = 64 ; const MAV_MODE_FLAG_HIL_ENABLED = 32 ; const MAV_MODE_FLAG_STABILIZE_ENABLED = 16 ; const MAV_MODE_FLAG_GUIDED_ENABLED = 8 ; const MAV_MODE_FLAG_AUTO_ENABLED = 4 ; const MAV_MODE_FLAG_TEST_ENABLED = 2 ; const MAV_MODE_FLAG_CUSTOM_MODE_ENABLED = 1 ; } } impl MavModeFlag { pub const DEFAULT : Self = Self :: MAV_MODE_FLAG_SAFETY_ARMED ; } impl Default for MavModeFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ScriptingCmd { SCRIPTING_CMD_REPL_START = 0 , SCRIPTING_CMD_REPL_STOP = 1 , SCRIPTING_CMD_STOP = 2 , SCRIPTING_CMD_STOP_AND_RESTART = 3 , } impl ScriptingCmd { pub const DEFAULT : Self = Self :: SCRIPTING_CMD_REPL_START ; } impl Default for ScriptingCmd { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EstimatorStatusFlags : u16 { const ESTIMATOR_ATTITUDE = 1 ; const ESTIMATOR_VELOCITY_HORIZ = 2 ; const ESTIMATOR_VELOCITY_VERT = 4 ; const ESTIMATOR_POS_HORIZ_REL = 8 ; const ESTIMATOR_POS_HORIZ_ABS = 16 ; const ESTIMATOR_POS_VERT_ABS = 32 ; const ESTIMATOR_POS_VERT_AGL = 64 ; const ESTIMATOR_CONST_POS_MODE = 128 ; const ESTIMATOR_PRED_POS_HORIZ_REL = 256 ; const ESTIMATOR_PRED_POS_HORIZ_ABS = 512 ; const ESTIMATOR_GPS_GLITCH = 1024 ; const ESTIMATOR_ACCEL_ERROR = 2048 ; } } impl EstimatorStatusFlags { pub const DEFAULT : Self = Self :: ESTIMATOR_ATTITUDE ; } impl Default for EstimatorStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PrecisionLandMode { PRECISION_LAND_MODE_DISABLED = 0 , PRECISION_LAND_MODE_OPPORTUNISTIC = 1 , PRECISION_LAND_MODE_REQUIRED = 2 , } impl PrecisionLandMode { pub const DEFAULT : Self = Self :: PRECISION_LAND_MODE_DISABLED ; } impl Default for PrecisionLandMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFtpErr { MAV_FTP_ERR_NONE = 0 , MAV_FTP_ERR_FAIL = 1 , MAV_FTP_ERR_FAILERRNO = 2 , MAV_FTP_ERR_INVALIDDATASIZE = 3 , MAV_FTP_ERR_INVALIDSESSION = 4 , MAV_FTP_ERR_NOSESSIONSAVAILABLE = 5 , MAV_FTP_ERR_EOF = 6 , MAV_FTP_ERR_UNKNOWNCOMMAND = 7 , MAV_FTP_ERR_FILEEXISTS = 8 , MAV_FTP_ERR_FILEPROTECTED = 9 , MAV_FTP_ERR_FILENOTFOUND = 10 , } impl MavFtpErr { pub const DEFAULT : Self = Self :: MAV_FTP_ERR_NONE ; } impl Default for MavFtpErr { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraFeedbackFlags { CAMERA_FEEDBACK_PHOTO = 0 , CAMERA_FEEDBACK_VIDEO = 1 , CAMERA_FEEDBACK_BADEXPOSURE = 2 , CAMERA_FEEDBACK_CLOSEDLOOP = 3 , CAMERA_FEEDBACK_OPENLOOP = 4 , } impl CameraFeedbackFlags { pub const DEFAULT : Self = Self :: CAMERA_FEEDBACK_PHOTO ; } impl Default for CameraFeedbackFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmdAck { MAV_CMD_ACK_OK = 0 , MAV_CMD_ACK_ERR_FAIL = 1 , MAV_CMD_ACK_ERR_ACCESS_DENIED = 2 , MAV_CMD_ACK_ERR_NOT_SUPPORTED = 3 , MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED = 4 , MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE = 5 , MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE = 6 , MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE = 7 , MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE = 8 , } impl MavCmdAck { pub const DEFAULT : Self = Self :: MAV_CMD_ACK_OK ; } impl Default for MavCmdAck { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LimitModule : u8 { const LIMIT_GPSLOCK = 1 ; const LIMIT_GEOFENCE = 2 ; const LIMIT_ALTITUDE = 4 ; } } impl LimitModule { pub const DEFAULT : Self = Self :: LIMIT_GPSLOCK ; } impl Default for LimitModule { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HlFailureFlag : u16 { const HL_FAILURE_FLAG_GPS = 1 ; const HL_FAILURE_FLAG_DIFFERENTIAL_PRESSURE = 2 ; const HL_FAILURE_FLAG_ABSOLUTE_PRESSURE = 4 ; const HL_FAILURE_FLAG_3D_ACCEL = 8 ; const HL_FAILURE_FLAG_3D_GYRO = 16 ; const HL_FAILURE_FLAG_3D_MAG = 32 ; const HL_FAILURE_FLAG_TERRAIN = 64 ; const HL_FAILURE_FLAG_BATTERY = 128 ; const HL_FAILURE_FLAG_RC_RECEIVER = 256 ; const HL_FAILURE_FLAG_OFFBOARD_LINK = 512 ; const HL_FAILURE_FLAG_ENGINE = 1024 ; const HL_FAILURE_FLAG_GEOFENCE = 2048 ; const HL_FAILURE_FLAG_ESTIMATOR = 4096 ; const HL_FAILURE_FLAG_MISSION = 8192 ; } } impl HlFailureFlag { pub const DEFAULT : Self = Self :: HL_FAILURE_FLAG_GPS ; } impl Default for HlFailureFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproCharging { GOPRO_CHARGING_DISABLED = 0 , GOPRO_CHARGING_ENABLED = 1 , } impl GoproCharging { pub const DEFAULT : Self = Self :: GOPRO_CHARGING_DISABLED ; } impl Default for GoproCharging { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavRoi { MAV_ROI_NONE = 0 , MAV_ROI_WPNEXT = 1 , MAV_ROI_WPINDEX = 2 , MAV_ROI_LOCATION = 3 , MAV_ROI_TARGET = 4 , } impl MavRoi { pub const DEFAULT : Self = Self :: MAV_ROI_NONE ; } impl Default for MavRoi { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavLandedState { MAV_LANDED_STATE_UNDEFINED = 0 , MAV_LANDED_STATE_ON_GROUND = 1 , MAV_LANDED_STATE_IN_AIR = 2 , MAV_LANDED_STATE_TAKEOFF = 3 , MAV_LANDED_STATE_LANDING = 4 , } impl MavLandedState { pub const DEFAULT : Self = Self :: MAV_LANDED_STATE_UNDEFINED ; } impl Default for MavLandedState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceBreach { FENCE_BREACH_NONE = 0 , FENCE_BREACH_MINALT = 1 , FENCE_BREACH_MAXALT = 2 , FENCE_BREACH_BOUNDARY = 3 , } impl FenceBreach { pub const DEFAULT : Self = Self :: FENCE_BREACH_NONE ; } impl Default for FenceBreach { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GimbalAxisCalibrationRequired { GIMBAL_AXIS_CALIBRATION_REQUIRED_UNKNOWN = 0 , GIMBAL_AXIS_CALIBRATION_REQUIRED_TRUE = 1 , GIMBAL_AXIS_CALIBRATION_REQUIRED_FALSE = 2 , } impl GimbalAxisCalibrationRequired { pub const DEFAULT : Self = Self :: GIMBAL_AXIS_CALIBRATION_REQUIRED_UNKNOWN ; } impl Default for GimbalAxisCalibrationRequired { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionAction { MAV_COLLISION_ACTION_NONE = 0 , MAV_COLLISION_ACTION_REPORT = 1 , MAV_COLLISION_ACTION_ASCEND_OR_DESCEND = 2 , MAV_COLLISION_ACTION_MOVE_HORIZONTALLY = 3 , MAV_COLLISION_ACTION_MOVE_PERPENDICULAR = 4 , MAV_COLLISION_ACTION_RTL = 5 , MAV_COLLISION_ACTION_HOVER = 6 , } impl MavCollisionAction { pub const DEFAULT : Self = Self :: MAV_COLLISION_ACTION_NONE ; } impl Default for MavCollisionAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VtolTransitionHeading { VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT = 0 , VTOL_TRANSITION_HEADING_NEXT_WAYPOINT = 1 , VTOL_TRANSITION_HEADING_TAKEOFF = 2 , VTOL_TRANSITION_HEADING_SPECIFIED = 3 , VTOL_TRANSITION_HEADING_ANY = 4 , } impl VtolTransitionHeading { pub const DEFAULT : Self = Self :: VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT ; } impl Default for VtolTransitionHeading { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularStatusFlag { CELLULAR_STATUS_FLAG_UNKNOWN = 0 , CELLULAR_STATUS_FLAG_FAILED = 1 , CELLULAR_STATUS_FLAG_INITIALIZING = 2 , CELLULAR_STATUS_FLAG_LOCKED = 3 , CELLULAR_STATUS_FLAG_DISABLED = 4 , CELLULAR_STATUS_FLAG_DISABLING = 5 , CELLULAR_STATUS_FLAG_ENABLING = 6 , CELLULAR_STATUS_FLAG_ENABLED = 7 , CELLULAR_STATUS_FLAG_SEARCHING = 8 , CELLULAR_STATUS_FLAG_REGISTERED = 9 , CELLULAR_STATUS_FLAG_DISCONNECTING = 10 , CELLULAR_STATUS_FLAG_CONNECTING = 11 , CELLULAR_STATUS_FLAG_CONNECTED = 12 , } impl CellularStatusFlag { pub const DEFAULT : Self = Self :: CELLULAR_STATUS_FLAG_UNKNOWN ; } impl Default for CellularStatusFlag { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavWinchStatusFlag : u32 { const MAV_WINCH_STATUS_HEALTHY = 1 ; const MAV_WINCH_STATUS_FULLY_RETRACTED = 2 ; const MAV_WINCH_STATUS_MOVING = 4 ; const MAV_WINCH_STATUS_CLUTCH_ENGAGED = 8 ; const MAV_WINCH_STATUS_LOCKED = 16 ; const MAV_WINCH_STATUS_DROPPING = 32 ; const MAV_WINCH_STATUS_ARRESTING = 64 ; const MAV_WINCH_STATUS_GROUND_SENSE = 128 ; const MAV_WINCH_STATUS_RETRACTING = 256 ; const MAV_WINCH_STATUS_REDELIVER = 512 ; const MAV_WINCH_STATUS_ABANDON_LINE = 1024 ; const MAV_WINCH_STATUS_LOCKING = 2048 ; const MAV_WINCH_STATUS_LOAD_LINE = 4096 ; const MAV_WINCH_STATUS_LOAD_PAYLOAD = 8192 ; } } impl MavWinchStatusFlag { pub const DEFAULT : Self = Self :: MAV_WINCH_STATUS_HEALTHY ; } impl Default for MavWinchStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidCategoryEu { MAV_ODID_CATEGORY_EU_UNDECLARED = 0 , MAV_ODID_CATEGORY_EU_OPEN = 1 , MAV_ODID_CATEGORY_EU_SPECIFIC = 2 , MAV_ODID_CATEGORY_EU_CERTIFIED = 3 , } impl MavOdidCategoryEu { pub const DEFAULT : Self = Self :: MAV_ODID_CATEGORY_EU_UNDECLARED ; } impl Default for MavOdidCategoryEu { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WinchActions { WINCH_RELAXED = 0 , WINCH_RELATIVE_LENGTH_CONTROL = 1 , WINCH_RATE_CONTROL = 2 , WINCH_LOCK = 3 , WINCH_DELIVER = 4 , WINCH_HOLD = 5 , WINCH_RETRACT = 6 , WINCH_LOAD_LINE = 7 , WINCH_ABANDON_LINE = 8 , WINCH_LOAD_PAYLOAD = 9 , } impl WinchActions { pub const DEFAULT : Self = Self :: WINCH_RELAXED ; } impl Default for WinchActions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MotorTestThrottleType { MOTOR_TEST_THROTTLE_PERCENT = 0 , MOTOR_TEST_THROTTLE_PWM = 1 , MOTOR_TEST_THROTTLE_PILOT = 2 , MOTOR_TEST_COMPASS_CAL = 3 , } impl MotorTestThrottleType { pub const DEFAULT : Self = Self :: MOTOR_TEST_THROTTLE_PERCENT ; } impl Default for MotorTestThrottleType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavState { MAV_STATE_UNINIT = 0 , MAV_STATE_BOOT = 1 , MAV_STATE_CALIBRATING = 2 , MAV_STATE_STANDBY = 3 , MAV_STATE_ACTIVE = 4 , MAV_STATE_CRITICAL = 5 , MAV_STATE_EMERGENCY = 6 , MAV_STATE_POWEROFF = 7 , MAV_STATE_FLIGHT_TERMINATION = 8 , } impl MavState { pub const DEFAULT : Self = Self :: MAV_STATE_UNINIT ; } impl Default for MavState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum DeepstallStage { DEEPSTALL_STAGE_FLY_TO_LANDING = 0 , DEEPSTALL_STAGE_ESTIMATE_WIND = 1 , DEEPSTALL_STAGE_WAIT_FOR_BREAKOUT = 2 , DEEPSTALL_STAGE_FLY_TO_ARC = 3 , DEEPSTALL_STAGE_ARC = 4 , DEEPSTALL_STAGE_APPROACH = 5 , DEEPSTALL_STAGE_LAND = 6 , } impl DeepstallStage { pub const DEFAULT : Self = Self :: DEEPSTALL_STAGE_FLY_TO_LANDING ; } impl Default for DeepstallStage { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbEmergencyStatus { UAVIONIX_ADSB_OUT_NO_EMERGENCY = 0 , UAVIONIX_ADSB_OUT_GENERAL_EMERGENCY = 1 , UAVIONIX_ADSB_OUT_LIFEGUARD_EMERGENCY = 2 , UAVIONIX_ADSB_OUT_MINIMUM_FUEL_EMERGENCY = 3 , UAVIONIX_ADSB_OUT_NO_COMM_EMERGENCY = 4 , UAVIONIX_ADSB_OUT_UNLAWFUL_INTERFERANCE_EMERGENCY = 5 , UAVIONIX_ADSB_OUT_DOWNED_AIRCRAFT_EMERGENCY = 6 , UAVIONIX_ADSB_OUT_RESERVED = 7 , } impl UavionixAdsbEmergencyStatus { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_NO_EMERGENCY ; } impl Default for UavionixAdsbEmergencyStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GimbalAxisCalibrationStatus { GIMBAL_AXIS_CALIBRATION_STATUS_IN_PROGRESS = 0 , GIMBAL_AXIS_CALIBRATION_STATUS_SUCCEEDED = 1 , GIMBAL_AXIS_CALIBRATION_STATUS_FAILED = 2 , } impl GimbalAxisCalibrationStatus { pub const DEFAULT : Self = Self :: GIMBAL_AXIS_CALIBRATION_STATUS_IN_PROGRESS ; } impl Default for GimbalAxisCalibrationStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PlaneMode { PLANE_MODE_MANUAL = 0 , PLANE_MODE_CIRCLE = 1 , PLANE_MODE_STABILIZE = 2 , PLANE_MODE_TRAINING = 3 , PLANE_MODE_ACRO = 4 , PLANE_MODE_FLY_BY_WIRE_A = 5 , PLANE_MODE_FLY_BY_WIRE_B = 6 , PLANE_MODE_CRUISE = 7 , PLANE_MODE_AUTOTUNE = 8 , PLANE_MODE_AUTO = 10 , PLANE_MODE_RTL = 11 , PLANE_MODE_LOITER = 12 , PLANE_MODE_TAKEOFF = 13 , PLANE_MODE_AVOID_ADSB = 14 , PLANE_MODE_GUIDED = 15 , PLANE_MODE_INITIALIZING = 16 , PLANE_MODE_QSTABILIZE = 17 , PLANE_MODE_QHOVER = 18 , PLANE_MODE_QLOITER = 19 , PLANE_MODE_QLAND = 20 , PLANE_MODE_QRTL = 21 , PLANE_MODE_QAUTOTUNE = 22 , PLANE_MODE_QACRO = 23 , PLANE_MODE_THERMAL = 24 , } impl PlaneMode { pub const DEFAULT : Self = Self :: PLANE_MODE_MANUAL ; } impl Default for PlaneMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum HeadingType { HEADING_TYPE_COURSE_OVER_GROUND = 0 , HEADING_TYPE_HEADING = 1 , } impl HeadingType { pub const DEFAULT : Self = Self :: HEADING_TYPE_COURSE_OVER_GROUND ; } impl Default for HeadingType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingTargetData { CAMERA_TRACKING_TARGET_DATA_NONE = 0 , CAMERA_TRACKING_TARGET_DATA_EMBEDDED = 1 , CAMERA_TRACKING_TARGET_DATA_RENDERED = 2 , CAMERA_TRACKING_TARGET_DATA_IN_STATUS = 4 , } impl CameraTrackingTargetData { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_TARGET_DATA_NONE ; } impl Default for CameraTrackingTargetData { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavArmAuthDeniedReason { MAV_ARM_AUTH_DENIED_REASON_GENERIC = 0 , MAV_ARM_AUTH_DENIED_REASON_NONE = 1 , MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT = 2 , MAV_ARM_AUTH_DENIED_REASON_TIMEOUT = 3 , MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE = 4 , MAV_ARM_AUTH_DENIED_REASON_BAD_WEATHER = 5 , } impl MavArmAuthDeniedReason { pub const DEFAULT : Self = Self :: MAV_ARM_AUTH_DENIED_REASON_GENERIC ; } impl Default for MavArmAuthDeniedReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageType { STORAGE_TYPE_UNKNOWN = 0 , STORAGE_TYPE_USB_STICK = 1 , STORAGE_TYPE_SD = 2 , STORAGE_TYPE_MICROSD = 3 , STORAGE_TYPE_CF = 4 , STORAGE_TYPE_CFE = 5 , STORAGE_TYPE_XQD = 6 , STORAGE_TYPE_HD = 7 , STORAGE_TYPE_OTHER = 254 , } impl StorageType { pub const DEFAULT : Self = Self :: STORAGE_TYPE_UNKNOWN ; } impl Default for StorageType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AdsbEmitterType { ADSB_EMITTER_TYPE_NO_INFO = 0 , ADSB_EMITTER_TYPE_LIGHT = 1 , ADSB_EMITTER_TYPE_SMALL = 2 , ADSB_EMITTER_TYPE_LARGE = 3 , ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE = 4 , ADSB_EMITTER_TYPE_HEAVY = 5 , ADSB_EMITTER_TYPE_HIGHLY_MANUV = 6 , ADSB_EMITTER_TYPE_ROTOCRAFT = 7 , ADSB_EMITTER_TYPE_UNASSIGNED = 8 , ADSB_EMITTER_TYPE_GLIDER = 9 , ADSB_EMITTER_TYPE_LIGHTER_AIR = 10 , ADSB_EMITTER_TYPE_PARACHUTE = 11 , ADSB_EMITTER_TYPE_ULTRA_LIGHT = 12 , ADSB_EMITTER_TYPE_UNASSIGNED2 = 13 , ADSB_EMITTER_TYPE_UAV = 14 , ADSB_EMITTER_TYPE_SPACE = 15 , ADSB_EMITTER_TYPE_UNASSGINED3 = 16 , ADSB_EMITTER_TYPE_EMERGENCY_SURFACE = 17 , ADSB_EMITTER_TYPE_SERVICE_SURFACE = 18 , ADSB_EMITTER_TYPE_POINT_OBSTACLE = 19 , } impl AdsbEmitterType { pub const DEFAULT : Self = Self :: ADSB_EMITTER_TYPE_NO_INFO ; } impl Default for AdsbEmitterType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GoproFieldOfView { GOPRO_FIELD_OF_VIEW_WIDE = 0 , GOPRO_FIELD_OF_VIEW_MEDIUM = 1 , GOPRO_FIELD_OF_VIEW_NARROW = 2 , } impl GoproFieldOfView { pub const DEFAULT : Self = Self :: GOPRO_FIELD_OF_VIEW_WIDE ; } impl Default for GoproFieldOfView { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryMode { MAV_BATTERY_MODE_UNKNOWN = 0 , MAV_BATTERY_MODE_AUTO_DISCHARGING = 1 , MAV_BATTERY_MODE_HOT_SWAP = 2 , } impl MavBatteryMode { pub const DEFAULT : Self = Self :: MAV_BATTERY_MODE_UNKNOWN ; } impl Default for MavBatteryMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WifiConfigApResponse { WIFI_CONFIG_AP_RESPONSE_UNDEFINED = 0 , WIFI_CONFIG_AP_RESPONSE_ACCEPTED = 1 , WIFI_CONFIG_AP_RESPONSE_REJECTED = 2 , WIFI_CONFIG_AP_RESPONSE_MODE_ERROR = 3 , WIFI_CONFIG_AP_RESPONSE_SSID_ERROR = 4 , WIFI_CONFIG_AP_RESPONSE_PASSWORD_ERROR = 5 , } impl WifiConfigApResponse { pub const DEFAULT : Self = Self :: WIFI_CONFIG_AP_RESPONSE_UNDEFINED ; } impl Default for WifiConfigApResponse { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMode { MAV_MODE_PREFLIGHT = 0 , MAV_MODE_STABILIZE_DISARMED = 80 , MAV_MODE_STABILIZE_ARMED = 208 , MAV_MODE_MANUAL_DISARMED = 64 , MAV_MODE_MANUAL_ARMED = 192 , MAV_MODE_GUIDED_DISARMED = 88 , MAV_MODE_GUIDED_ARMED = 216 , MAV_MODE_AUTO_DISARMED = 92 , MAV_MODE_AUTO_ARMED = 220 , MAV_MODE_TEST_DISARMED = 66 , MAV_MODE_TEST_ARMED = 194 , } impl MavMode { pub const DEFAULT : Self = Self :: MAV_MODE_PREFLIGHT ; } impl Default for MavMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingStatusFlags { CAMERA_TRACKING_STATUS_FLAGS_IDLE = 0 , CAMERA_TRACKING_STATUS_FLAGS_ACTIVE = 1 , CAMERA_TRACKING_STATUS_FLAGS_ERROR = 2 , } impl CameraTrackingStatusFlags { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_STATUS_FLAGS_IDLE ; } impl Default for CameraTrackingStatusFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SerialControlFlag : u8 { const SERIAL_CONTROL_FLAG_REPLY = 1 ; const SERIAL_CONTROL_FLAG_RESPOND = 2 ; const SERIAL_CONTROL_FLAG_EXCLUSIVE = 4 ; const SERIAL_CONTROL_FLAG_BLOCKING = 8 ; const SERIAL_CONTROL_FLAG_MULTI = 16 ; } } impl SerialControlFlag { pub const DEFAULT : Self = Self :: SERIAL_CONTROL_FLAG_REPLY ; } impl Default for SerialControlFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDataStream { MAV_DATA_STREAM_ALL = 0 , MAV_DATA_STREAM_RAW_SENSORS = 1 , MAV_DATA_STREAM_EXTENDED_STATUS = 2 , MAV_DATA_STREAM_RC_CHANNELS = 3 , MAV_DATA_STREAM_RAW_CONTROLLER = 4 , MAV_DATA_STREAM_POSITION = 6 , MAV_DATA_STREAM_EXTRA1 = 10 , MAV_DATA_STREAM_EXTRA2 = 11 , MAV_DATA_STREAM_EXTRA3 = 12 , } impl MavDataStream { pub const DEFAULT : Self = Self :: MAV_DATA_STREAM_ALL ; } impl Default for MavDataStream { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ActuatorConfiguration { ACTUATOR_CONFIGURATION_NONE = 0 , ACTUATOR_CONFIGURATION_BEEP = 1 , ACTUATOR_CONFIGURATION_3D_MODE_ON = 2 , ACTUATOR_CONFIGURATION_3D_MODE_OFF = 3 , ACTUATOR_CONFIGURATION_SPIN_DIRECTION1 = 4 , ACTUATOR_CONFIGURATION_SPIN_DIRECTION2 = 5 , } impl ActuatorConfiguration { pub const DEFAULT : Self = Self :: ACTUATOR_CONFIGURATION_NONE ; } impl Default for ActuatorConfiguration { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PositionTargetTypemask : u16 { const POSITION_TARGET_TYPEMASK_X_IGNORE = 1 ; const POSITION_TARGET_TYPEMASK_Y_IGNORE = 2 ; const POSITION_TARGET_TYPEMASK_Z_IGNORE = 4 ; const POSITION_TARGET_TYPEMASK_VX_IGNORE = 8 ; const POSITION_TARGET_TYPEMASK_VY_IGNORE = 16 ; const POSITION_TARGET_TYPEMASK_VZ_IGNORE = 32 ; const POSITION_TARGET_TYPEMASK_AX_IGNORE = 64 ; const POSITION_TARGET_TYPEMASK_AY_IGNORE = 128 ; const POSITION_TARGET_TYPEMASK_AZ_IGNORE = 256 ; const POSITION_TARGET_TYPEMASK_FORCE_SET = 512 ; const POSITION_TARGET_TYPEMASK_YAW_IGNORE = 1024 ; const POSITION_TARGET_TYPEMASK_YAW_RATE_IGNORE = 2048 ; } } impl PositionTargetTypemask { pub const DEFAULT : Self = Self :: POSITION_TARGET_TYPEMASK_X_IGNORE ; } impl Default for PositionTargetTypemask { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidIdType { MAV_ODID_ID_TYPE_NONE = 0 , MAV_ODID_ID_TYPE_SERIAL_NUMBER = 1 , MAV_ODID_ID_TYPE_CAA_REGISTRATION_ID = 2 , MAV_ODID_ID_TYPE_UTM_ASSIGNED_UUID = 3 , MAV_ODID_ID_TYPE_SPECIFIC_SESSION_ID = 4 , } impl MavOdidIdType { pub const DEFAULT : Self = Self :: MAV_ODID_ID_TYPE_NONE ; } impl Default for MavOdidIdType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MagCalStatus { MAG_CAL_NOT_STARTED = 0 , MAG_CAL_WAITING_TO_START = 1 , MAG_CAL_RUNNING_STEP_ONE = 2 , MAG_CAL_RUNNING_STEP_TWO = 3 , MAG_CAL_SUCCESS = 4 , MAG_CAL_FAILED = 5 , MAG_CAL_BAD_ORIENTATION = 6 , MAG_CAL_BAD_RADIUS = 7 , } impl MagCalStatus { pub const DEFAULT : Self = Self :: MAG_CAL_NOT_STARTED ; } impl Default for MagCalStatus { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UavionixAdsbOutDynamicState : u16 { const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE = 1 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_AUTOPILOT_ENABLED = 2 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_NICBARO_CROSSCHECKED = 4 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_ON_GROUND = 8 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_IDENT = 16 ; } } impl UavionixAdsbOutDynamicState { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE ; } impl Default for UavionixAdsbOutDynamicState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavlinkDataStreamType { MAVLINK_DATA_STREAM_IMG_JPEG = 0 , MAVLINK_DATA_STREAM_IMG_BMP = 1 , MAVLINK_DATA_STREAM_IMG_RAW8U = 2 , MAVLINK_DATA_STREAM_IMG_RAW32U = 3 , MAVLINK_DATA_STREAM_IMG_PGM = 4 , MAVLINK_DATA_STREAM_IMG_PNG = 5 , } impl MavlinkDataStreamType { pub const DEFAULT : Self = Self :: MAVLINK_DATA_STREAM_IMG_JPEG ; } impl Default for MavlinkDataStreamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryType { MAV_BATTERY_TYPE_UNKNOWN = 0 , MAV_BATTERY_TYPE_LIPO = 1 , MAV_BATTERY_TYPE_LIFE = 2 , MAV_BATTERY_TYPE_LION = 3 , MAV_BATTERY_TYPE_NIMH = 4 , } impl MavBatteryType { pub const DEFAULT : Self = Self :: MAV_BATTERY_TYPE_UNKNOWN ; } impl Default for MavBatteryType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RallyFlags : u8 { const FAVORABLE_WIND = 1 ; const LAND_IMMEDIATELY = 2 ; } } impl RallyFlags { pub const DEFAULT : Self = Self :: FAVORABLE_WIND ; } impl Default for RallyFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RoverMode { ROVER_MODE_MANUAL = 0 , ROVER_MODE_ACRO = 1 , ROVER_MODE_STEERING = 3 , ROVER_MODE_HOLD = 4 , ROVER_MODE_LOITER = 5 , ROVER_MODE_FOLLOW = 6 , ROVER_MODE_SIMPLE = 7 , ROVER_MODE_AUTO = 10 , ROVER_MODE_RTL = 11 , ROVER_MODE_SMART_RTL = 12 , ROVER_MODE_GUIDED = 15 , ROVER_MODE_INITIALIZING = 16 , } impl RoverMode { pub const DEFAULT : Self = Self :: ROVER_MODE_MANUAL ; } impl Default for RoverMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum NavVtolLandOptions { NAV_VTOL_LAND_OPTIONS_DEFAULT = 0 , NAV_VTOL_LAND_OPTIONS_FW_DESCENT = 1 , NAV_VTOL_LAND_OPTIONS_HOVER_DESCENT = 2 , } impl NavVtolLandOptions { pub const DEFAULT : Self = Self :: NAV_VTOL_LAND_OPTIONS_DEFAULT ; } impl Default for NavVtolLandOptions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum LimitsState { LIMITS_INIT = 0 , LIMITS_DISABLED = 1 , LIMITS_ENABLED = 2 , LIMITS_TRIGGERED = 3 , LIMITS_RECOVERING = 4 , LIMITS_RECOVERED = 5 , } impl LimitsState { pub const DEFAULT : Self = Self :: LIMITS_INIT ; } impl Default for LimitsState { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EkfStatusFlags : u16 { const EKF_ATTITUDE = 1 ; const EKF_VELOCITY_HORIZ = 2 ; const EKF_VELOCITY_VERT = 4 ; const EKF_POS_HORIZ_REL = 8 ; const EKF_POS_HORIZ_ABS = 16 ; const EKF_POS_VERT_ABS = 32 ; const EKF_POS_VERT_AGL = 64 ; const EKF_CONST_POS_MODE = 128 ; const EKF_PRED_POS_HORIZ_REL = 256 ; const EKF_PRED_POS_HORIZ_ABS = 512 ; const EKF_UNINITIALIZED = 1024 ; } } impl EkfStatusFlags { pub const DEFAULT : Self = Self :: EKF_ATTITUDE ; } impl Default for EkfStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSensorOrientation { MAV_SENSOR_ROTATION_NONE = 0 , MAV_SENSOR_ROTATION_YAW_45 = 1 , MAV_SENSOR_ROTATION_YAW_90 = 2 , MAV_SENSOR_ROTATION_YAW_135 = 3 , MAV_SENSOR_ROTATION_YAW_180 = 4 , MAV_SENSOR_ROTATION_YAW_225 = 5 , MAV_SENSOR_ROTATION_YAW_270 = 6 , MAV_SENSOR_ROTATION_YAW_315 = 7 , MAV_SENSOR_ROTATION_ROLL_180 = 8 , MAV_SENSOR_ROTATION_ROLL_180_YAW_45 = 9 , MAV_SENSOR_ROTATION_ROLL_180_YAW_90 = 10 , MAV_SENSOR_ROTATION_ROLL_180_YAW_135 = 11 , MAV_SENSOR_ROTATION_PITCH_180 = 12 , MAV_SENSOR_ROTATION_ROLL_180_YAW_225 = 13 , MAV_SENSOR_ROTATION_ROLL_180_YAW_270 = 14 , MAV_SENSOR_ROTATION_ROLL_180_YAW_315 = 15 , MAV_SENSOR_ROTATION_ROLL_90 = 16 , MAV_SENSOR_ROTATION_ROLL_90_YAW_45 = 17 , MAV_SENSOR_ROTATION_ROLL_90_YAW_90 = 18 , MAV_SENSOR_ROTATION_ROLL_90_YAW_135 = 19 , MAV_SENSOR_ROTATION_ROLL_270 = 20 , MAV_SENSOR_ROTATION_ROLL_270_YAW_45 = 21 , MAV_SENSOR_ROTATION_ROLL_270_YAW_90 = 22 , MAV_SENSOR_ROTATION_ROLL_270_YAW_135 = 23 , MAV_SENSOR_ROTATION_PITCH_90 = 24 , MAV_SENSOR_ROTATION_PITCH_270 = 25 , MAV_SENSOR_ROTATION_PITCH_180_YAW_90 = 26 , MAV_SENSOR_ROTATION_PITCH_180_YAW_270 = 27 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_90 = 28 , MAV_SENSOR_ROTATION_ROLL_180_PITCH_90 = 29 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_90 = 30 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_180 = 31 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_180 = 32 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_270 = 33 , MAV_SENSOR_ROTATION_ROLL_180_PITCH_270 = 34 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_270 = 35 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_180_YAW_90 = 36 , MAV_SENSOR_ROTATION_ROLL_90_YAW_270 = 37 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_68_YAW_293 = 38 , MAV_SENSOR_ROTATION_PITCH_315 = 39 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_315 = 40 , MAV_SENSOR_ROTATION_CUSTOM = 100 , } impl MavSensorOrientation { pub const DEFAULT : Self = Self :: MAV_SENSOR_ROTATION_NONE ; } impl Default for MavSensorOrientation { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FailureType { FAILURE_TYPE_OK = 0 , FAILURE_TYPE_OFF = 1 , FAILURE_TYPE_STUCK = 2 , FAILURE_TYPE_GARBAGE = 3 , FAILURE_TYPE_WRONG = 4 , FAILURE_TYPE_SLOW = 5 , FAILURE_TYPE_DELAYED = 6 , FAILURE_TYPE_INTERMITTENT = 7 , } impl FailureType { pub const DEFAULT : Self = Self :: FAILURE_TYPE_OK ; } impl Default for FailureType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_CONTROL_DATA { pub demanded_rate_x : f32 , pub demanded_rate_y : f32 , pub demanded_rate_z : f32 , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { demanded_rate_x : 0.0_f32 , demanded_rate_y : 0.0_f32 , demanded_rate_z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 201u32 ; const NAME : & 'static str = "GIMBAL_CONTROL" ; const EXTRA_CRC : u8 = 205u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . demanded_rate_x = buf . get_f32_le () ; __struct . demanded_rate_y = buf . get_f32_le () ; __struct . demanded_rate_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . demanded_rate_x) ; __tmp . put_f32_le (self . demanded_rate_y) ; __tmp . put_f32_le (self . demanded_rate_z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FENCE_FETCH_POINT_DATA { pub target_system : u8 , pub target_component : u8 , pub idx : u8 , } impl FENCE_FETCH_POINT_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , idx : 0_u8 , } ; } impl Default for FENCE_FETCH_POINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FENCE_FETCH_POINT_DATA { type Message = MavMessage ; const ID : u32 = 161u32 ; const NAME : & 'static str = "FENCE_FETCH_POINT" ; const EXTRA_CRC : u8 = 68u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . idx = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . idx) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPONENT_METADATA_DATA { pub time_boot_ms : u32 , pub file_crc : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 100] , } impl COMPONENT_METADATA_DATA { pub const ENCODED_LEN : usize = 108usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , file_crc : 0_u32 , uri : [0_u8 ; 100usize] , } ; } impl Default for COMPONENT_METADATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPONENT_METADATA_DATA { type Message = MavMessage ; const ID : u32 = 397u32 ; const NAME : & 'static str = "COMPONENT_METADATA" ; const EXTRA_CRC : u8 = 182u8 ; const ENCODED_LEN : usize = 108usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . file_crc = buf . get_u32_le () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . file_crc) ; for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_REQUEST_READ_DATA { pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , } impl PARAM_EXT_REQUEST_READ_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , } ; } impl Default for PARAM_EXT_REQUEST_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_REQUEST_READ_DATA { type Message = MavMessage ; const ID : u32 = 320u32 ; const NAME : & 'static str = "PARAM_EXT_REQUEST_READ" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WINCH_STATUS_DATA { pub time_usec : u64 , pub line_length : f32 , pub speed : f32 , pub tension : f32 , pub voltage : f32 , pub current : f32 , pub status : MavWinchStatusFlag , pub temperature : i16 , } impl WINCH_STATUS_DATA { pub const ENCODED_LEN : usize = 34usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , line_length : 0.0_f32 , speed : 0.0_f32 , tension : 0.0_f32 , voltage : 0.0_f32 , current : 0.0_f32 , status : MavWinchStatusFlag :: DEFAULT , temperature : 0_i16 , } ; } impl Default for WINCH_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WINCH_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 9005u32 ; const NAME : & 'static str = "WINCH_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 34usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . line_length = buf . get_f32_le () ; __struct . speed = buf . get_f32_le () ; __struct . tension = buf . get_f32_le () ; __struct . voltage = buf . get_f32_le () ; __struct . current = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . status = MavWinchStatusFlag :: from_bits (tmp & MavWinchStatusFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavWinchStatusFlag" , value : tmp as u32 }) ? ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . line_length) ; __tmp . put_f32_le (self . speed) ; __tmp . put_f32_le (self . tension) ; __tmp . put_f32_le (self . voltage) ; __tmp . put_f32_le (self . current) ; __tmp . put_u32_le (self . status . bits ()) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_REQUEST_READ_DATA { pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , } impl PARAM_REQUEST_READ_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , } ; } impl Default for PARAM_REQUEST_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_REQUEST_READ_DATA { type Message = MavMessage ; const ID : u32 = 20u32 ; const NAME : & 'static str = "PARAM_REQUEST_READ" ; const EXTRA_CRC : u8 = 214u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_ATTITUDE_DATA { pub flags : GimbalManagerFlags , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_ATTITUDE_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 282u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_ATTITUDE" ; const EXTRA_CRC : u8 = 123u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_VERSION_REQUEST_DATA { pub target_system : u8 , pub target_component : u8 , } impl AUTOPILOT_VERSION_REQUEST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for AUTOPILOT_VERSION_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_VERSION_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 183u32 ; const NAME : & 'static str = "AUTOPILOT_VERSION_REQUEST" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_yaw : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_yaw : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub command : [u16 ; 5] , pub valid_points : u8 , } impl TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { pub const ENCODED_LEN : usize = 239usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , pos_x : [0.0_f32 ; 5usize] , pos_y : [0.0_f32 ; 5usize] , pos_z : [0.0_f32 ; 5usize] , vel_x : [0.0_f32 ; 5usize] , vel_y : [0.0_f32 ; 5usize] , vel_z : [0.0_f32 ; 5usize] , acc_x : [0.0_f32 ; 5usize] , acc_y : [0.0_f32 ; 5usize] , acc_z : [0.0_f32 ; 5usize] , pos_yaw : [0.0_f32 ; 5usize] , vel_yaw : [0.0_f32 ; 5usize] , command : [0_u16 ; 5usize] , valid_points : 0_u8 , } ; } impl Default for TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { type Message = MavMessage ; const ID : u32 = 332u32 ; const NAME : & 'static str = "TRAJECTORY_REPRESENTATION_WAYPOINTS" ; const EXTRA_CRC : u8 = 236u8 ; const ENCODED_LEN : usize = 239usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . pos_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_yaw { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_yaw { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . command { let val = buf . get_u16_le () ; * v = val ; } __struct . valid_points = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . pos_x { __tmp . put_f32_le (* val) ; } for val in & self . pos_y { __tmp . put_f32_le (* val) ; } for val in & self . pos_z { __tmp . put_f32_le (* val) ; } for val in & self . vel_x { __tmp . put_f32_le (* val) ; } for val in & self . vel_y { __tmp . put_f32_le (* val) ; } for val in & self . vel_z { __tmp . put_f32_le (* val) ; } for val in & self . acc_x { __tmp . put_f32_le (* val) ; } for val in & self . acc_y { __tmp . put_f32_le (* val) ; } for val in & self . acc_z { __tmp . put_f32_le (* val) ; } for val in & self . pos_yaw { __tmp . put_f32_le (* val) ; } for val in & self . vel_yaw { __tmp . put_f32_le (* val) ; } for val in & self . command { __tmp . put_u16_le (* val) ; } __tmp . put_u8 (self . valid_points) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POSITION_TARGET_LOCAL_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub coordinate_frame : MavFrame , } impl POSITION_TARGET_LOCAL_NED_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for POSITION_TARGET_LOCAL_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POSITION_TARGET_LOCAL_NED_DATA { type Message = MavMessage ; const ID : u32 = 85u32 ; const NAME : & 'static str = "POSITION_TARGET_LOCAL_NED" ; const EXTRA_CRC : u8 = 140u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MANUAL_SETPOINT_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub thrust : f32 , pub mode_switch : u8 , pub manual_override_switch : u8 , } impl MANUAL_SETPOINT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , thrust : 0.0_f32 , mode_switch : 0_u8 , manual_override_switch : 0_u8 , } ; } impl Default for MANUAL_SETPOINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MANUAL_SETPOINT_DATA { type Message = MavMessage ; const ID : u32 = 81u32 ; const NAME : & 'static str = "MANUAL_SETPOINT" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; __struct . mode_switch = buf . get_u8 () ; __struct . manual_override_switch = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . mode_switch) ; __tmp . put_u8 (self . manual_override_switch) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_ARM_STATUS_DATA { pub status : MavOdidArmStatus , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub error : [u8 ; 50] , } impl OPEN_DRONE_ID_ARM_STATUS_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { status : MavOdidArmStatus :: DEFAULT , error : [0_u8 ; 50usize] , } ; } impl Default for OPEN_DRONE_ID_ARM_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_ARM_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 12918u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_ARM_STATUS" ; const EXTRA_CRC : u8 = 139u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidArmStatus" , value : tmp as u32 }) ? ; for v in & mut __struct . error { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . status as u8) ; for val in & self . error { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_VERSION_DATA { pub capabilities : MavProtocolCapability , pub uid : u64 , pub flight_sw_version : u32 , pub middleware_sw_version : u32 , pub os_sw_version : u32 , pub board_version : u32 , pub vendor_id : u16 , pub product_id : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub flight_custom_version : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub middleware_custom_version : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub os_custom_version : [u8 ; 8] , } impl AUTOPILOT_VERSION_DATA { pub const ENCODED_LEN : usize = 60usize ; pub const DEFAULT : Self = Self { capabilities : MavProtocolCapability :: DEFAULT , uid : 0_u64 , flight_sw_version : 0_u32 , middleware_sw_version : 0_u32 , os_sw_version : 0_u32 , board_version : 0_u32 , vendor_id : 0_u16 , product_id : 0_u16 , flight_custom_version : [0_u8 ; 8usize] , middleware_custom_version : [0_u8 ; 8usize] , os_custom_version : [0_u8 ; 8usize] , } ; } impl Default for AUTOPILOT_VERSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_VERSION_DATA { type Message = MavMessage ; const ID : u32 = 148u32 ; const NAME : & 'static str = "AUTOPILOT_VERSION" ; const EXTRA_CRC : u8 = 178u8 ; const ENCODED_LEN : usize = 60usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u64_le () ; __struct . capabilities = MavProtocolCapability :: from_bits (tmp & MavProtocolCapability :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavProtocolCapability" , value : tmp as u32 }) ? ; __struct . uid = buf . get_u64_le () ; __struct . flight_sw_version = buf . get_u32_le () ; __struct . middleware_sw_version = buf . get_u32_le () ; __struct . os_sw_version = buf . get_u32_le () ; __struct . board_version = buf . get_u32_le () ; __struct . vendor_id = buf . get_u16_le () ; __struct . product_id = buf . get_u16_le () ; for v in & mut __struct . flight_custom_version { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . middleware_custom_version { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . os_custom_version { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . capabilities . bits ()) ; __tmp . put_u64_le (self . uid) ; __tmp . put_u32_le (self . flight_sw_version) ; __tmp . put_u32_le (self . middleware_sw_version) ; __tmp . put_u32_le (self . os_sw_version) ; __tmp . put_u32_le (self . board_version) ; __tmp . put_u16_le (self . vendor_id) ; __tmp . put_u16_le (self . product_id) ; for val in & self . flight_custom_version { __tmp . put_u8 (* val) ; } for val in & self . middleware_custom_version { __tmp . put_u8 (* val) ; } for val in & self . os_custom_version { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA16_DATA { pub mavtype : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 16] , } impl DATA16_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { mavtype : 0_u8 , len : 0_u8 , data : [0_u8 ; 16usize] , } ; } impl Default for DATA16_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA16_DATA { type Message = MavMessage ; const ID : u32 = 169u32 ; const NAME : & 'static str = "DATA16" ; const EXTRA_CRC : u8 = 234u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mavtype = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . mavtype) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_CURRENT_DATA { pub seq : u16 , } impl MISSION_CURRENT_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , } ; } impl Default for MISSION_CURRENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_CURRENT_DATA { type Message = MavMessage ; const ID : u32 = 42u32 ; const NAME : & 'static str = "MISSION_CURRENT" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_LONG_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub param5 : f32 , pub param6 : f32 , pub param7 : f32 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub confirmation : u8 , } impl COMMAND_LONG_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , param5 : 0.0_f32 , param6 : 0.0_f32 , param7 : 0.0_f32 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , confirmation : 0_u8 , } ; } impl Default for COMMAND_LONG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_LONG_DATA { type Message = MavMessage ; const ID : u32 = 76u32 ; const NAME : & 'static str = "COMMAND_LONG" ; const EXTRA_CRC : u8 = 152u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . param5 = buf . get_f32_le () ; __struct . param6 = buf . get_f32_le () ; __struct . param7 = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . confirmation = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_f32_le (self . param5) ; __tmp . put_f32_le (self . param6) ; __tmp . put_f32_le (self . param7) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . confirmation) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_TARGET_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub body_roll_rate : f32 , pub body_pitch_rate : f32 , pub body_yaw_rate : f32 , pub thrust : f32 , pub type_mask : AttitudeTargetTypemask , } impl ATTITUDE_TARGET_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , body_roll_rate : 0.0_f32 , body_pitch_rate : 0.0_f32 , body_yaw_rate : 0.0_f32 , thrust : 0.0_f32 , type_mask : AttitudeTargetTypemask :: DEFAULT , } ; } impl Default for ATTITUDE_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 83u32 ; const NAME : & 'static str = "ATTITUDE_TARGET" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . body_roll_rate = buf . get_f32_le () ; __struct . body_pitch_rate = buf . get_f32_le () ; __struct . body_yaw_rate = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . type_mask = AttitudeTargetTypemask :: from_bits (tmp & AttitudeTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AttitudeTargetTypemask" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . body_roll_rate) ; __tmp . put_f32_le (self . body_pitch_rate) ; __tmp . put_f32_le (self . body_yaw_rate) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . type_mask . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MAG_CAL_PROGRESS_DATA { pub direction_x : f32 , pub direction_y : f32 , pub direction_z : f32 , pub compass_id : u8 , pub cal_mask : u8 , pub cal_status : MagCalStatus , pub attempt : u8 , pub completion_pct : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub completion_mask : [u8 ; 10] , } impl MAG_CAL_PROGRESS_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { direction_x : 0.0_f32 , direction_y : 0.0_f32 , direction_z : 0.0_f32 , compass_id : 0_u8 , cal_mask : 0_u8 , cal_status : MagCalStatus :: DEFAULT , attempt : 0_u8 , completion_pct : 0_u8 , completion_mask : [0_u8 ; 10usize] , } ; } impl Default for MAG_CAL_PROGRESS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MAG_CAL_PROGRESS_DATA { type Message = MavMessage ; const ID : u32 = 191u32 ; const NAME : & 'static str = "MAG_CAL_PROGRESS" ; const EXTRA_CRC : u8 = 92u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . direction_x = buf . get_f32_le () ; __struct . direction_y = buf . get_f32_le () ; __struct . direction_z = buf . get_f32_le () ; __struct . compass_id = buf . get_u8 () ; __struct . cal_mask = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . cal_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MagCalStatus" , value : tmp as u32 }) ? ; __struct . attempt = buf . get_u8 () ; __struct . completion_pct = buf . get_u8 () ; for v in & mut __struct . completion_mask { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . direction_x) ; __tmp . put_f32_le (self . direction_y) ; __tmp . put_f32_le (self . direction_z) ; __tmp . put_u8 (self . compass_id) ; __tmp . put_u8 (self . cal_mask) ; __tmp . put_u8 (self . cal_status as u8) ; __tmp . put_u8 (self . attempt) ; __tmp . put_u8 (self . completion_pct) ; for val in & self . completion_mask { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MOUNT_CONFIGURE_DATA { pub target_system : u8 , pub target_component : u8 , pub mount_mode : MavMountMode , pub stab_roll : u8 , pub stab_pitch : u8 , pub stab_yaw : u8 , } impl MOUNT_CONFIGURE_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , mount_mode : MavMountMode :: DEFAULT , stab_roll : 0_u8 , stab_pitch : 0_u8 , stab_yaw : 0_u8 , } ; } impl Default for MOUNT_CONFIGURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MOUNT_CONFIGURE_DATA { type Message = MavMessage ; const ID : u32 = 156u32 ; const NAME : & 'static str = "MOUNT_CONFIGURE" ; const EXTRA_CRC : u8 = 19u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mount_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMountMode" , value : tmp as u32 }) ? ; __struct . stab_roll = buf . get_u8 () ; __struct . stab_pitch = buf . get_u8 () ; __struct . stab_yaw = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . mount_mode as u8) ; __tmp . put_u8 (self . stab_roll) ; __tmp . put_u8 (self . stab_pitch) ; __tmp . put_u8 (self . stab_yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_SENSOR_DATA { pub time_usec : u64 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub xmag : f32 , pub ymag : f32 , pub zmag : f32 , pub abs_pressure : f32 , pub diff_pressure : f32 , pub pressure_alt : f32 , pub temperature : f32 , pub fields_updated : HilSensorUpdatedFlags , } impl HIL_SENSOR_DATA { pub const ENCODED_LEN : usize = 64usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , xmag : 0.0_f32 , ymag : 0.0_f32 , zmag : 0.0_f32 , abs_pressure : 0.0_f32 , diff_pressure : 0.0_f32 , pressure_alt : 0.0_f32 , temperature : 0.0_f32 , fields_updated : HilSensorUpdatedFlags :: DEFAULT , } ; } impl Default for HIL_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 107u32 ; const NAME : & 'static str = "HIL_SENSOR" ; const EXTRA_CRC : u8 = 108u8 ; const ENCODED_LEN : usize = 64usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . xmag = buf . get_f32_le () ; __struct . ymag = buf . get_f32_le () ; __struct . zmag = buf . get_f32_le () ; __struct . abs_pressure = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . pressure_alt = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . fields_updated = HilSensorUpdatedFlags :: from_bits (tmp & HilSensorUpdatedFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HilSensorUpdatedFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . xmag) ; __tmp . put_f32_le (self . ymag) ; __tmp . put_f32_le (self . zmag) ; __tmp . put_f32_le (self . abs_pressure) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . pressure_alt) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u32_le (self . fields_updated . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REMOTE_LOG_DATA_BLOCK_DATA { pub seqno : MavRemoteLogDataBlockCommands , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 200] , } impl REMOTE_LOG_DATA_BLOCK_DATA { pub const ENCODED_LEN : usize = 206usize ; pub const DEFAULT : Self = Self { seqno : MavRemoteLogDataBlockCommands :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , data : [0_u8 ; 200usize] , } ; } impl Default for REMOTE_LOG_DATA_BLOCK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REMOTE_LOG_DATA_BLOCK_DATA { type Message = MavMessage ; const ID : u32 = 184u32 ; const NAME : & 'static str = "REMOTE_LOG_DATA_BLOCK" ; const EXTRA_CRC : u8 = 159u8 ; const ENCODED_LEN : usize = 206usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . seqno = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavRemoteLogDataBlockCommands" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . seqno as u32) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_TORQUE_CMD_REPORT_DATA { pub rl_torque_cmd : i16 , pub el_torque_cmd : i16 , pub az_torque_cmd : i16 , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_TORQUE_CMD_REPORT_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { rl_torque_cmd : 0_i16 , el_torque_cmd : 0_i16 , az_torque_cmd : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_TORQUE_CMD_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_TORQUE_CMD_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 214u32 ; const NAME : & 'static str = "GIMBAL_TORQUE_CMD_REPORT" ; const EXTRA_CRC : u8 = 69u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . rl_torque_cmd = buf . get_i16_le () ; __struct . el_torque_cmd = buf . get_i16_le () ; __struct . az_torque_cmd = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . rl_torque_cmd) ; __tmp . put_i16_le (self . el_torque_cmd) ; __tmp . put_i16_le (self . az_torque_cmd) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_FOV_STATUS_DATA { pub time_boot_ms : u32 , pub lat_camera : i32 , pub lon_camera : i32 , pub alt_camera : i32 , pub lat_image : i32 , pub lon_image : i32 , pub alt_image : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub hfov : f32 , pub vfov : f32 , } impl CAMERA_FOV_STATUS_DATA { pub const ENCODED_LEN : usize = 52usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_camera : 0_i32 , lon_camera : 0_i32 , alt_camera : 0_i32 , lat_image : 0_i32 , lon_image : 0_i32 , alt_image : 0_i32 , q : [0.0_f32 ; 4usize] , hfov : 0.0_f32 , vfov : 0.0_f32 , } ; } impl Default for CAMERA_FOV_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_FOV_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 271u32 ; const NAME : & 'static str = "CAMERA_FOV_STATUS" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 52usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_camera = buf . get_i32_le () ; __struct . lon_camera = buf . get_i32_le () ; __struct . alt_camera = buf . get_i32_le () ; __struct . lat_image = buf . get_i32_le () ; __struct . lon_image = buf . get_i32_le () ; __struct . alt_image = buf . get_i32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . hfov = buf . get_f32_le () ; __struct . vfov = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_camera) ; __tmp . put_i32_le (self . lon_camera) ; __tmp . put_i32_le (self . alt_camera) ; __tmp . put_i32_le (self . lat_image) ; __tmp . put_i32_le (self . lon_image) ; __tmp . put_i32_le (self . alt_image) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . hfov) ; __tmp . put_f32_le (self . vfov) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { pub time_boot_us : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub q_estimated_delay_us : u32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub v_estimated_delay_us : u32 , pub feed_forward_angular_velocity_z : f32 , pub estimator_status : EstimatorStatusFlags , pub target_system : u8 , pub target_component : u8 , pub landed_state : MavLandedState , } impl AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_us : 0_u64 , q : [0.0_f32 ; 4usize] , q_estimated_delay_us : 0_u32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , v_estimated_delay_us : 0_u32 , feed_forward_angular_velocity_z : 0.0_f32 , estimator_status : EstimatorStatusFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , landed_state : MavLandedState :: DEFAULT , } ; } impl Default for AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { type Message = MavMessage ; const ID : u32 = 286u32 ; const NAME : & 'static str = "AUTOPILOT_STATE_FOR_GIMBAL_DEVICE" ; const EXTRA_CRC : u8 = 210u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_us = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . q_estimated_delay_us = buf . get_u32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . v_estimated_delay_us = buf . get_u32_le () ; __struct . feed_forward_angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . estimator_status = EstimatorStatusFlags :: from_bits (tmp & EstimatorStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EstimatorStatusFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_boot_us) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_u32_le (self . q_estimated_delay_us) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_u32_le (self . v_estimated_delay_us) ; __tmp . put_f32_le (self . feed_forward_angular_velocity_z) ; __tmp . put_u16_le (self . estimator_status . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . landed_state as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_REQUEST_DATA { pub mask : u64 , pub lat : i32 , pub lon : i32 , pub grid_spacing : u16 , } impl TERRAIN_REQUEST_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { mask : 0_u64 , lat : 0_i32 , lon : 0_i32 , grid_spacing : 0_u16 , } ; } impl Default for TERRAIN_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 133u32 ; const NAME : & 'static str = "TERRAIN_REQUEST" ; const EXTRA_CRC : u8 = 6u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mask = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . grid_spacing = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . mask) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . grid_spacing) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_INJECT_DATA_DATA { pub target_system : u8 , pub target_component : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 110] , } impl GPS_INJECT_DATA_DATA { pub const ENCODED_LEN : usize = 113usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , len : 0_u8 , data : [0_u8 ; 110usize] , } ; } impl Default for GPS_INJECT_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_INJECT_DATA_DATA { type Message = MavMessage ; const ID : u32 = 123u32 ; const NAME : & 'static str = "GPS_INJECT_DATA" ; const EXTRA_CRC : u8 = 250u8 ; const ENCODED_LEN : usize = 113usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , } impl LOCAL_POSITION_NED_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , } ; } impl Default for LOCAL_POSITION_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_DATA { type Message = MavMessage ; const ID : u32 = 32u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED" ; const EXTRA_CRC : u8 = 185u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVCAN_NODE_STATUS_DATA { pub time_usec : u64 , pub uptime_sec : u32 , pub vendor_specific_status_code : u16 , pub health : UavcanNodeHealth , pub mode : UavcanNodeMode , pub sub_mode : u8 , } impl UAVCAN_NODE_STATUS_DATA { pub const ENCODED_LEN : usize = 17usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime_sec : 0_u32 , vendor_specific_status_code : 0_u16 , health : UavcanNodeHealth :: DEFAULT , mode : UavcanNodeMode :: DEFAULT , sub_mode : 0_u8 , } ; } impl Default for UAVCAN_NODE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVCAN_NODE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 310u32 ; const NAME : & 'static str = "UAVCAN_NODE_STATUS" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 17usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime_sec = buf . get_u32_le () ; __struct . vendor_specific_status_code = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . health = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavcanNodeHealth" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavcanNodeMode" , value : tmp as u32 }) ? ; __struct . sub_mode = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime_sec) ; __tmp . put_u16_le (self . vendor_specific_status_code) ; __tmp . put_u8 (self . health as u8) ; __tmp . put_u8 (self . mode as u8) ; __tmp . put_u8 (self . sub_mode) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 40u32 ; const NAME : & 'static str = "MISSION_REQUEST" ; const EXTRA_CRC : u8 = 230u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REQUEST_DATA_STREAM_DATA { pub req_message_rate : u16 , pub target_system : u8 , pub target_component : u8 , pub req_stream_id : u8 , pub start_stop : u8 , } impl REQUEST_DATA_STREAM_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { req_message_rate : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , req_stream_id : 0_u8 , start_stop : 0_u8 , } ; } impl Default for REQUEST_DATA_STREAM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REQUEST_DATA_STREAM_DATA { type Message = MavMessage ; const ID : u32 = 66u32 ; const NAME : & 'static str = "REQUEST_DATA_STREAM" ; const EXTRA_CRC : u8 = 148u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . req_message_rate = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . req_stream_id = buf . get_u8 () ; __struct . start_stop = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . req_message_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . req_stream_id) ; __tmp . put_u8 (self . start_stop) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HOME_POSITION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub approach_x : f32 , pub approach_y : f32 , pub approach_z : f32 , } impl HOME_POSITION_DATA { pub const ENCODED_LEN : usize = 52usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , approach_x : 0.0_f32 , approach_y : 0.0_f32 , approach_z : 0.0_f32 , } ; } impl Default for HOME_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HOME_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 242u32 ; const NAME : & 'static str = "HOME_POSITION" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 52usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . approach_x = buf . get_f32_le () ; __struct . approach_y = buf . get_f32_le () ; __struct . approach_z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . approach_x) ; __tmp . put_f32_le (self . approach_y) ; __tmp . put_f32_le (self . approach_z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS2_RTK_DATA { pub time_last_baseline_ms : u32 , pub tow : u32 , pub baseline_a_mm : i32 , pub baseline_b_mm : i32 , pub baseline_c_mm : i32 , pub accuracy : u32 , pub iar_num_hypotheses : i32 , pub wn : u16 , pub rtk_receiver_id : u8 , pub rtk_health : u8 , pub rtk_rate : u8 , pub nsats : u8 , pub baseline_coords_type : RtkBaselineCoordinateSystem , } impl GPS2_RTK_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_last_baseline_ms : 0_u32 , tow : 0_u32 , baseline_a_mm : 0_i32 , baseline_b_mm : 0_i32 , baseline_c_mm : 0_i32 , accuracy : 0_u32 , iar_num_hypotheses : 0_i32 , wn : 0_u16 , rtk_receiver_id : 0_u8 , rtk_health : 0_u8 , rtk_rate : 0_u8 , nsats : 0_u8 , baseline_coords_type : RtkBaselineCoordinateSystem :: DEFAULT , } ; } impl Default for GPS2_RTK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS2_RTK_DATA { type Message = MavMessage ; const ID : u32 = 128u32 ; const NAME : & 'static str = "GPS2_RTK" ; const EXTRA_CRC : u8 = 226u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_last_baseline_ms = buf . get_u32_le () ; __struct . tow = buf . get_u32_le () ; __struct . baseline_a_mm = buf . get_i32_le () ; __struct . baseline_b_mm = buf . get_i32_le () ; __struct . baseline_c_mm = buf . get_i32_le () ; __struct . accuracy = buf . get_u32_le () ; __struct . iar_num_hypotheses = buf . get_i32_le () ; __struct . wn = buf . get_u16_le () ; __struct . rtk_receiver_id = buf . get_u8 () ; __struct . rtk_health = buf . get_u8 () ; __struct . rtk_rate = buf . get_u8 () ; __struct . nsats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . baseline_coords_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "RtkBaselineCoordinateSystem" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_last_baseline_ms) ; __tmp . put_u32_le (self . tow) ; __tmp . put_i32_le (self . baseline_a_mm) ; __tmp . put_i32_le (self . baseline_b_mm) ; __tmp . put_i32_le (self . baseline_c_mm) ; __tmp . put_u32_le (self . accuracy) ; __tmp . put_i32_le (self . iar_num_hypotheses) ; __tmp . put_u16_le (self . wn) ; __tmp . put_u8 (self . rtk_receiver_id) ; __tmp . put_u8 (self . rtk_health) ; __tmp . put_u8 (self . rtk_rate) ; __tmp . put_u8 (self . nsats) ; __tmp . put_u8 (self . baseline_coords_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WHEEL_DISTANCE_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub distance : [f64 ; 16] , pub count : u8 , } impl WHEEL_DISTANCE_DATA { pub const ENCODED_LEN : usize = 137usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , distance : [0.0_f64 ; 16usize] , count : 0_u8 , } ; } impl Default for WHEEL_DISTANCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WHEEL_DISTANCE_DATA { type Message = MavMessage ; const ID : u32 = 9000u32 ; const NAME : & 'static str = "WHEEL_DISTANCE" ; const EXTRA_CRC : u8 = 113u8 ; const ENCODED_LEN : usize = 137usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . distance { let val = buf . get_f64_le () ; * v = val ; } __struct . count = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . distance { __tmp . put_f64_le (* val) ; } __tmp . put_u8 (self . count) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_COV_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub ax : f32 , pub ay : f32 , pub az : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 45] , pub estimator_type : MavEstimatorType , } impl LOCAL_POSITION_NED_COV_DATA { pub const ENCODED_LEN : usize = 225usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , ax : 0.0_f32 , ay : 0.0_f32 , az : 0.0_f32 , covariance : [0.0_f32 ; 45usize] , estimator_type : MavEstimatorType :: DEFAULT , } ; } impl Default for LOCAL_POSITION_NED_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_COV_DATA { type Message = MavMessage ; const ID : u32 = 64u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED_COV" ; const EXTRA_CRC : u8 = 191u8 ; const ENCODED_LEN : usize = 225usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . ax = buf . get_f32_le () ; __struct . ay = buf . get_f32_le () ; __struct . az = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . estimator_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEstimatorType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . ax) ; __tmp . put_f32_le (self . ay) ; __tmp . put_f32_le (self . az) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . estimator_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_OPERATOR_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub operator_id_type : MavOdidOperatorIdType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub operator_id : [u8 ; 20] , } impl OPEN_DRONE_ID_OPERATOR_ID_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , operator_id_type : MavOdidOperatorIdType :: DEFAULT , operator_id : [0_u8 ; 20usize] , } ; } impl Default for OPEN_DRONE_ID_OPERATOR_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_OPERATOR_ID_DATA { type Message = MavMessage ; const ID : u32 = 12905u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_OPERATOR_ID" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . operator_id_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidOperatorIdType" , value : tmp as u32 }) ? ; for v in & mut __struct . operator_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . operator_id_type as u8) ; for val in & self . operator_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATT_POS_MOCAP_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub x : f32 , pub y : f32 , pub z : f32 , } impl ATT_POS_MOCAP_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , q : [0.0_f32 ; 4usize] , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , } ; } impl Default for ATT_POS_MOCAP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATT_POS_MOCAP_DATA { type Message = MavMessage ; const ID : u32 = 138u32 ; const NAME : & 'static str = "ATT_POS_MOCAP" ; const EXTRA_CRC : u8 = 109u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA32_DATA { pub mavtype : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 32] , } impl DATA32_DATA { pub const ENCODED_LEN : usize = 34usize ; pub const DEFAULT : Self = Self { mavtype : 0_u8 , len : 0_u8 , data : [0_u8 ; 32usize] , } ; } impl Default for DATA32_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA32_DATA { type Message = MavMessage ; const ID : u32 = 170u32 ; const NAME : & 'static str = "DATA32" ; const EXTRA_CRC : u8 = 73u8 ; const ENCODED_LEN : usize = 34usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mavtype = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . mavtype) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LED_CONTROL_DATA { pub target_system : u8 , pub target_component : u8 , pub instance : u8 , pub pattern : u8 , pub custom_len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub custom_bytes : [u8 ; 24] , } impl LED_CONTROL_DATA { pub const ENCODED_LEN : usize = 29usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , instance : 0_u8 , pattern : 0_u8 , custom_len : 0_u8 , custom_bytes : [0_u8 ; 24usize] , } ; } impl Default for LED_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LED_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 186u32 ; const NAME : & 'static str = "LED_CONTROL" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 29usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . instance = buf . get_u8 () ; __struct . pattern = buf . get_u8 () ; __struct . custom_len = buf . get_u8 () ; for v in & mut __struct . custom_bytes { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . instance) ; __tmp . put_u8 (self . pattern) ; __tmp . put_u8 (self . custom_len) ; for val in & self . custom_bytes { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PROTOCOL_VERSION_DATA { pub version : u16 , pub min_version : u16 , pub max_version : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub spec_version_hash : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub library_version_hash : [u8 ; 8] , } impl PROTOCOL_VERSION_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { version : 0_u16 , min_version : 0_u16 , max_version : 0_u16 , spec_version_hash : [0_u8 ; 8usize] , library_version_hash : [0_u8 ; 8usize] , } ; } impl Default for PROTOCOL_VERSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PROTOCOL_VERSION_DATA { type Message = MavMessage ; const ID : u32 = 300u32 ; const NAME : & 'static str = "PROTOCOL_VERSION" ; const EXTRA_CRC : u8 = 217u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . version = buf . get_u16_le () ; __struct . min_version = buf . get_u16_le () ; __struct . max_version = buf . get_u16_le () ; for v in & mut __struct . spec_version_hash { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . library_version_hash { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . version) ; __tmp . put_u16_le (self . min_version) ; __tmp . put_u16_le (self . max_version) ; for val in & self . spec_version_hash { __tmp . put_u8 (* val) ; } for val in & self . library_version_hash { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_CHECK_DATA { pub lat : i32 , pub lon : i32 , } impl TERRAIN_CHECK_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , } ; } impl Default for TERRAIN_CHECK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_CHECK_DATA { type Message = MavMessage ; const ID : u32 = 135u32 ; const NAME : & 'static str = "TERRAIN_CHECK" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { pub operator_latitude : i32 , pub operator_longitude : i32 , pub operator_altitude_geo : f32 , pub timestamp : u32 , pub target_system : u8 , pub target_component : u8 , } impl OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { operator_latitude : 0_i32 , operator_longitude : 0_i32 , operator_altitude_geo : 0.0_f32 , timestamp : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { type Message = MavMessage ; const ID : u32 = 12919u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SYSTEM_UPDATE" ; const EXTRA_CRC : u8 = 7u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . operator_latitude = buf . get_i32_le () ; __struct . operator_longitude = buf . get_i32_le () ; __struct . operator_altitude_geo = buf . get_f32_le () ; __struct . timestamp = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . operator_latitude) ; __tmp . put_i32_le (self . operator_longitude) ; __tmp . put_f32_le (self . operator_altitude_geo) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVIONIX_ADSB_OUT_CFG_DATA { pub ICAO : u32 , pub stallSpeed : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 9] , pub emitterType : AdsbEmitterType , pub aircraftSize : UavionixAdsbOutCfgAircraftSize , pub gpsOffsetLat : UavionixAdsbOutCfgGpsOffsetLat , pub gpsOffsetLon : UavionixAdsbOutCfgGpsOffsetLon , pub rfSelect : UavionixAdsbOutRfSelect , } impl UAVIONIX_ADSB_OUT_CFG_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { ICAO : 0_u32 , stallSpeed : 0_u16 , callsign : [0_u8 ; 9usize] , emitterType : AdsbEmitterType :: DEFAULT , aircraftSize : UavionixAdsbOutCfgAircraftSize :: DEFAULT , gpsOffsetLat : UavionixAdsbOutCfgGpsOffsetLat :: DEFAULT , gpsOffsetLon : UavionixAdsbOutCfgGpsOffsetLon :: DEFAULT , rfSelect : UavionixAdsbOutRfSelect :: DEFAULT , } ; } impl Default for UAVIONIX_ADSB_OUT_CFG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVIONIX_ADSB_OUT_CFG_DATA { type Message = MavMessage ; const ID : u32 = 10001u32 ; const NAME : & 'static str = "UAVIONIX_ADSB_OUT_CFG" ; const EXTRA_CRC : u8 = 209u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ICAO = buf . get_u32_le () ; __struct . stallSpeed = buf . get_u16_le () ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . emitterType = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbEmitterType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . aircraftSize = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutCfgAircraftSize" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . gpsOffsetLat = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutCfgGpsOffsetLat" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . gpsOffsetLon = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutCfgGpsOffsetLon" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . rfSelect = UavionixAdsbOutRfSelect :: from_bits (tmp & UavionixAdsbOutRfSelect :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UavionixAdsbOutRfSelect" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ICAO) ; __tmp . put_u16_le (self . stallSpeed) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . emitterType as u8) ; __tmp . put_u8 (self . aircraftSize as u8) ; __tmp . put_u8 (self . gpsOffsetLat as u8) ; __tmp . put_u8 (self . gpsOffsetLon as u8) ; __tmp . put_u8 (self . rfSelect . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA96_DATA { pub mavtype : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 96] , } impl DATA96_DATA { pub const ENCODED_LEN : usize = 98usize ; pub const DEFAULT : Self = Self { mavtype : 0_u8 , len : 0_u8 , data : [0_u8 ; 96usize] , } ; } impl Default for DATA96_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA96_DATA { type Message = MavMessage ; const ID : u32 = 172u32 ; const NAME : & 'static str = "DATA96" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 98usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mavtype = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . mavtype) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UTM_GLOBAL_POSITION_DATA { pub time : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub next_lat : i32 , pub next_lon : i32 , pub next_alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub h_acc : u16 , pub v_acc : u16 , pub vel_acc : u16 , pub update_rate : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uas_id : [u8 ; 18] , pub flight_state : UtmFlightState , pub flags : UtmDataAvailFlags , } impl UTM_GLOBAL_POSITION_DATA { pub const ENCODED_LEN : usize = 70usize ; pub const DEFAULT : Self = Self { time : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , next_lat : 0_i32 , next_lon : 0_i32 , next_alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , h_acc : 0_u16 , v_acc : 0_u16 , vel_acc : 0_u16 , update_rate : 0_u16 , uas_id : [0_u8 ; 18usize] , flight_state : UtmFlightState :: DEFAULT , flags : UtmDataAvailFlags :: DEFAULT , } ; } impl Default for UTM_GLOBAL_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UTM_GLOBAL_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 340u32 ; const NAME : & 'static str = "UTM_GLOBAL_POSITION" ; const EXTRA_CRC : u8 = 99u8 ; const ENCODED_LEN : usize = 70usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . next_lat = buf . get_i32_le () ; __struct . next_lon = buf . get_i32_le () ; __struct . next_alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . h_acc = buf . get_u16_le () ; __struct . v_acc = buf . get_u16_le () ; __struct . vel_acc = buf . get_u16_le () ; __struct . update_rate = buf . get_u16_le () ; for v in & mut __struct . uas_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . flight_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UtmFlightState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = UtmDataAvailFlags :: from_bits (tmp & UtmDataAvailFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UtmDataAvailFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_i32_le (self . next_lat) ; __tmp . put_i32_le (self . next_lon) ; __tmp . put_i32_le (self . next_alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . h_acc) ; __tmp . put_u16_le (self . v_acc) ; __tmp . put_u16_le (self . vel_acc) ; __tmp . put_u16_le (self . update_rate) ; for val in & self . uas_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . flight_state as u8) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GOPRO_SET_REQUEST_DATA { pub target_system : u8 , pub target_component : u8 , pub cmd_id : GoproCommand , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub value : [u8 ; 4] , } impl GOPRO_SET_REQUEST_DATA { pub const ENCODED_LEN : usize = 7usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , cmd_id : GoproCommand :: DEFAULT , value : [0_u8 ; 4usize] , } ; } impl Default for GOPRO_SET_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GOPRO_SET_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 218u32 ; const NAME : & 'static str = "GOPRO_SET_REQUEST" ; const EXTRA_CRC : u8 = 17u8 ; const ENCODED_LEN : usize = 7usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . cmd_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproCommand" , value : tmp as u32 }) ? ; for v in & mut __struct . value { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . cmd_id as u8) ; for val in & self . value { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_TELEMETRY_5_TO_8_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltage : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub current : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub totalcurrent : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rpm : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub count : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature : [u8 ; 4] , } impl ESC_TELEMETRY_5_TO_8_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { voltage : [0_u16 ; 4usize] , current : [0_u16 ; 4usize] , totalcurrent : [0_u16 ; 4usize] , rpm : [0_u16 ; 4usize] , count : [0_u16 ; 4usize] , temperature : [0_u8 ; 4usize] , } ; } impl Default for ESC_TELEMETRY_5_TO_8_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_TELEMETRY_5_TO_8_DATA { type Message = MavMessage ; const ID : u32 = 11031u32 ; const NAME : & 'static str = "ESC_TELEMETRY_5_TO_8" ; const EXTRA_CRC : u8 = 133u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . voltage { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . current { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . totalcurrent { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . rpm { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . count { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . temperature { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . voltage { __tmp . put_u16_le (* val) ; } for val in & self . current { __tmp . put_u16_le (* val) ; } for val in & self . totalcurrent { __tmp . put_u16_le (* val) ; } for val in & self . rpm { __tmp . put_u16_le (* val) ; } for val in & self . count { __tmp . put_u16_le (* val) ; } for val in & self . temperature { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIND_COV_DATA { pub time_usec : u64 , pub wind_x : f32 , pub wind_y : f32 , pub wind_z : f32 , pub var_horiz : f32 , pub var_vert : f32 , pub wind_alt : f32 , pub horiz_accuracy : f32 , pub vert_accuracy : f32 , } impl WIND_COV_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , wind_x : 0.0_f32 , wind_y : 0.0_f32 , wind_z : 0.0_f32 , var_horiz : 0.0_f32 , var_vert : 0.0_f32 , wind_alt : 0.0_f32 , horiz_accuracy : 0.0_f32 , vert_accuracy : 0.0_f32 , } ; } impl Default for WIND_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIND_COV_DATA { type Message = MavMessage ; const ID : u32 = 231u32 ; const NAME : & 'static str = "WIND_COV" ; const EXTRA_CRC : u8 = 105u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . wind_x = buf . get_f32_le () ; __struct . wind_y = buf . get_f32_le () ; __struct . wind_z = buf . get_f32_le () ; __struct . var_horiz = buf . get_f32_le () ; __struct . var_vert = buf . get_f32_le () ; __struct . wind_alt = buf . get_f32_le () ; __struct . horiz_accuracy = buf . get_f32_le () ; __struct . vert_accuracy = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . wind_x) ; __tmp . put_f32_le (self . wind_y) ; __tmp . put_f32_le (self . wind_z) ; __tmp . put_f32_le (self . var_horiz) ; __tmp . put_f32_le (self . var_vert) ; __tmp . put_f32_le (self . wind_alt) ; __tmp . put_f32_le (self . horiz_accuracy) ; __tmp . put_f32_le (self . vert_accuracy) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 43u32 ; const NAME : & 'static str = "MISSION_REQUEST_LIST" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PLAY_TUNE_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub tune : [u8 ; 30] , } impl PLAY_TUNE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , tune : [0_u8 ; 30usize] , } ; } impl Default for PLAY_TUNE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PLAY_TUNE_DATA { type Message = MavMessage ; const ID : u32 = 258u32 ; const NAME : & 'static str = "PLAY_TUNE" ; const EXTRA_CRC : u8 = 187u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . tune { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . tune { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl VISION_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for VISION_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 102u32 ; const NAME : & 'static str = "VISION_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 158u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_END_DATA { pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_END_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_END_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_END_DATA { type Message = MavMessage ; const ID : u32 = 122u32 ; const NAME : & 'static str = "LOG_REQUEST_END" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SYSTEM_DATA { pub operator_latitude : i32 , pub operator_longitude : i32 , pub area_ceiling : f32 , pub area_floor : f32 , pub operator_altitude_geo : f32 , pub timestamp : u32 , pub area_count : u16 , pub area_radius : u16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub operator_location_type : MavOdidOperatorLocationType , pub classification_type : MavOdidClassificationType , pub category_eu : MavOdidCategoryEu , pub class_eu : MavOdidClassEu , } impl OPEN_DRONE_ID_SYSTEM_DATA { pub const ENCODED_LEN : usize = 54usize ; pub const DEFAULT : Self = Self { operator_latitude : 0_i32 , operator_longitude : 0_i32 , area_ceiling : 0.0_f32 , area_floor : 0.0_f32 , operator_altitude_geo : 0.0_f32 , timestamp : 0_u32 , area_count : 0_u16 , area_radius : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , operator_location_type : MavOdidOperatorLocationType :: DEFAULT , classification_type : MavOdidClassificationType :: DEFAULT , category_eu : MavOdidCategoryEu :: DEFAULT , class_eu : MavOdidClassEu :: DEFAULT , } ; } impl Default for OPEN_DRONE_ID_SYSTEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SYSTEM_DATA { type Message = MavMessage ; const ID : u32 = 12904u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SYSTEM" ; const EXTRA_CRC : u8 = 77u8 ; const ENCODED_LEN : usize = 54usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . operator_latitude = buf . get_i32_le () ; __struct . operator_longitude = buf . get_i32_le () ; __struct . area_ceiling = buf . get_f32_le () ; __struct . area_floor = buf . get_f32_le () ; __struct . operator_altitude_geo = buf . get_f32_le () ; __struct . timestamp = buf . get_u32_le () ; __struct . area_count = buf . get_u16_le () ; __struct . area_radius = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . operator_location_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidOperatorLocationType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . classification_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidClassificationType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . category_eu = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidCategoryEu" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . class_eu = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidClassEu" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . operator_latitude) ; __tmp . put_i32_le (self . operator_longitude) ; __tmp . put_f32_le (self . area_ceiling) ; __tmp . put_f32_le (self . area_floor) ; __tmp . put_f32_le (self . operator_altitude_geo) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u16_le (self . area_count) ; __tmp . put_u16_le (self . area_radius) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . operator_location_type as u8) ; __tmp . put_u8 (self . classification_type as u8) ; __tmp . put_u8 (self . category_eu as u8) ; __tmp . put_u8 (self . class_eu as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { type Message = MavMessage ; const ID : u32 = 89u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET" ; const EXTRA_CRC : u8 = 231u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FENCE_POINT_DATA { pub lat : f32 , pub lng : f32 , pub target_system : u8 , pub target_component : u8 , pub idx : u8 , pub count : u8 , } impl FENCE_POINT_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { lat : 0.0_f32 , lng : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , idx : 0_u8 , count : 0_u8 , } ; } impl Default for FENCE_POINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FENCE_POINT_DATA { type Message = MavMessage ; const ID : u32 = 160u32 ; const NAME : & 'static str = "FENCE_POINT" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_f32_le () ; __struct . lng = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . idx = buf . get_u8 () ; __struct . count = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . lat) ; __tmp . put_f32_le (self . lng) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . idx) ; __tmp . put_u8 (self . count) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FILE_TRANSFER_PROTOCOL_DATA { pub target_network : u8 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 251] , } impl FILE_TRANSFER_PROTOCOL_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { target_network : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , payload : [0_u8 ; 251usize] , } ; } impl Default for FILE_TRANSFER_PROTOCOL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FILE_TRANSFER_PROTOCOL_DATA { type Message = MavMessage ; const ID : u32 = 110u32 ; const NAME : & 'static str = "FILE_TRANSFER_PROTOCOL" ; const EXTRA_CRC : u8 = 84u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_network = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_network) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_CONTROLS_DATA { pub time_usec : u64 , pub roll_ailerons : f32 , pub pitch_elevator : f32 , pub yaw_rudder : f32 , pub throttle : f32 , pub aux1 : f32 , pub aux2 : f32 , pub aux3 : f32 , pub aux4 : f32 , pub mode : MavMode , pub nav_mode : u8 , } impl HIL_CONTROLS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , roll_ailerons : 0.0_f32 , pitch_elevator : 0.0_f32 , yaw_rudder : 0.0_f32 , throttle : 0.0_f32 , aux1 : 0.0_f32 , aux2 : 0.0_f32 , aux3 : 0.0_f32 , aux4 : 0.0_f32 , mode : MavMode :: DEFAULT , nav_mode : 0_u8 , } ; } impl Default for HIL_CONTROLS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_CONTROLS_DATA { type Message = MavMessage ; const ID : u32 = 91u32 ; const NAME : & 'static str = "HIL_CONTROLS" ; const EXTRA_CRC : u8 = 63u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . roll_ailerons = buf . get_f32_le () ; __struct . pitch_elevator = buf . get_f32_le () ; __struct . yaw_rudder = buf . get_f32_le () ; __struct . throttle = buf . get_f32_le () ; __struct . aux1 = buf . get_f32_le () ; __struct . aux2 = buf . get_f32_le () ; __struct . aux3 = buf . get_f32_le () ; __struct . aux4 = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMode" , value : tmp as u32 }) ? ; __struct . nav_mode = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . roll_ailerons) ; __tmp . put_f32_le (self . pitch_elevator) ; __tmp . put_f32_le (self . yaw_rudder) ; __tmp . put_f32_le (self . throttle) ; __tmp . put_f32_le (self . aux1) ; __tmp . put_f32_le (self . aux2) ; __tmp . put_f32_le (self . aux3) ; __tmp . put_f32_le (self . aux4) ; __tmp . put_u8 (self . mode as u8) ; __tmp . put_u8 (self . nav_mode) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TIME_ESTIMATE_TO_TARGET_DATA { pub safe_return : i32 , pub land : i32 , pub mission_next_item : i32 , pub mission_end : i32 , pub commanded_action : i32 , } impl TIME_ESTIMATE_TO_TARGET_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { safe_return : 0_i32 , land : 0_i32 , mission_next_item : 0_i32 , mission_end : 0_i32 , commanded_action : 0_i32 , } ; } impl Default for TIME_ESTIMATE_TO_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TIME_ESTIMATE_TO_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 380u32 ; const NAME : & 'static str = "TIME_ESTIMATE_TO_TARGET" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . safe_return = buf . get_i32_le () ; __struct . land = buf . get_i32_le () ; __struct . mission_next_item = buf . get_i32_le () ; __struct . mission_end = buf . get_i32_le () ; __struct . commanded_action = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . safe_return) ; __tmp . put_i32_le (self . land) ; __tmp . put_i32_le (self . mission_next_item) ; __tmp . put_i32_le (self . mission_end) ; __tmp . put_i32_le (self . commanded_action) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PING_DATA { pub time_usec : u64 , pub seq : u32 , pub target_system : u8 , pub target_component : u8 , } impl PING_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , seq : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PING_DATA { type Message = MavMessage ; const ID : u32 = 4u32 ; const NAME : & 'static str = "PING" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . seq = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CUBEPILOT_RAW_RC_DATA { } impl CUBEPILOT_RAW_RC_DATA { pub const ENCODED_LEN : usize = 0usize ; pub const DEFAULT : Self = Self { } ; } impl Default for CUBEPILOT_RAW_RC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CUBEPILOT_RAW_RC_DATA { type Message = MavMessage ; const ID : u32 = 50001u32 ; const NAME : & 'static str = "CUBEPILOT_RAW_RC" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 0usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { Ok (Self :: default ()) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_SET_DATA { pub param_value : f32 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub param_type : MavParamType , } impl PARAM_SET_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { param_value : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , param_type : MavParamType :: DEFAULT , } ; } impl Default for PARAM_SET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_SET_DATA { type Message = MavMessage ; const ID : u32 = 23u32 ; const NAME : & 'static str = "PARAM_SET" ; const EXTRA_CRC : u8 = 168u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SYSTEM_TIME_DATA { pub time_unix_usec : u64 , pub time_boot_ms : u32 , } impl SYSTEM_TIME_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { time_unix_usec : 0_u64 , time_boot_ms : 0_u32 , } ; } impl Default for SYSTEM_TIME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SYSTEM_TIME_DATA { type Message = MavMessage ; const ID : u32 = 2u32 ; const NAME : & 'static str = "SYSTEM_TIME" ; const EXTRA_CRC : u8 = 137u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_unix_usec = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_unix_usec) ; __tmp . put_u32_le (self . time_boot_ms) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MOUNT_CONTROL_DATA { pub input_a : i32 , pub input_b : i32 , pub input_c : i32 , pub target_system : u8 , pub target_component : u8 , pub save_position : u8 , } impl MOUNT_CONTROL_DATA { pub const ENCODED_LEN : usize = 15usize ; pub const DEFAULT : Self = Self { input_a : 0_i32 , input_b : 0_i32 , input_c : 0_i32 , target_system : 0_u8 , target_component : 0_u8 , save_position : 0_u8 , } ; } impl Default for MOUNT_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MOUNT_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 157u32 ; const NAME : & 'static str = "MOUNT_CONTROL" ; const EXTRA_CRC : u8 = 21u8 ; const ENCODED_LEN : usize = 15usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . input_a = buf . get_i32_le () ; __struct . input_b = buf . get_i32_le () ; __struct . input_c = buf . get_i32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . save_position = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . input_a) ; __tmp . put_i32_le (self . input_b) ; __tmp . put_i32_le (self . input_c) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . save_position) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SIMSTATE_DATA { pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub lat : i32 , pub lng : i32 , } impl SIMSTATE_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , lat : 0_i32 , lng : 0_i32 , } ; } impl Default for SIMSTATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SIMSTATE_DATA { type Message = MavMessage ; const ID : u32 = 164u32 ; const NAME : & 'static str = "SIMSTATE" ; const EXTRA_CRC : u8 = 154u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lng = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lng) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE2_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE2_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE2_DATA { type Message = MavMessage ; const ID : u32 = 137u32 ; const NAME : & 'static str = "SCALED_PRESSURE2" ; const EXTRA_CRC : u8 = 195u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AHRS2_DATA { pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub altitude : f32 , pub lat : i32 , pub lng : i32 , } impl AHRS2_DATA { pub const ENCODED_LEN : usize = 24usize ; pub const DEFAULT : Self = Self { roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , altitude : 0.0_f32 , lat : 0_i32 , lng : 0_i32 , } ; } impl Default for AHRS2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AHRS2_DATA { type Message = MavMessage ; const ID : u32 = 178u32 ; const NAME : & 'static str = "AHRS2" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 24usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . altitude = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lng = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . altitude) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lng) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PLAY_TUNE_V2_DATA { pub format : TuneFormat , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub tune : [u8 ; 248] , } impl PLAY_TUNE_V2_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { format : TuneFormat :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , tune : [0_u8 ; 248usize] , } ; } impl Default for PLAY_TUNE_V2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PLAY_TUNE_V2_DATA { type Message = MavMessage ; const ID : u32 = 400u32 ; const NAME : & 'static str = "PLAY_TUNE_V2" ; const EXTRA_CRC : u8 = 110u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . format = TuneFormat :: from_bits (tmp & TuneFormat :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "TuneFormat" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . tune { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . format . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . tune { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_SET_ATTITUDE_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub flags : GimbalDeviceFlags , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_DEVICE_SET_ATTITUDE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , flags : GimbalDeviceFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_DEVICE_SET_ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_SET_ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 284u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_SET_ATTITUDE" ; const EXTRA_CRC : u8 = 99u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = GimbalDeviceFlags :: from_bits (tmp & GimbalDeviceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SIM_STATE_DATA { pub q1 : f32 , pub q2 : f32 , pub q3 : f32 , pub q4 : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub lat : f32 , pub lon : f32 , pub alt : f32 , pub std_dev_horz : f32 , pub std_dev_vert : f32 , pub vn : f32 , pub ve : f32 , pub vd : f32 , } impl SIM_STATE_DATA { pub const ENCODED_LEN : usize = 84usize ; pub const DEFAULT : Self = Self { q1 : 0.0_f32 , q2 : 0.0_f32 , q3 : 0.0_f32 , q4 : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , lat : 0.0_f32 , lon : 0.0_f32 , alt : 0.0_f32 , std_dev_horz : 0.0_f32 , std_dev_vert : 0.0_f32 , vn : 0.0_f32 , ve : 0.0_f32 , vd : 0.0_f32 , } ; } impl Default for SIM_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SIM_STATE_DATA { type Message = MavMessage ; const ID : u32 = 108u32 ; const NAME : & 'static str = "SIM_STATE" ; const EXTRA_CRC : u8 = 32u8 ; const ENCODED_LEN : usize = 84usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . q1 = buf . get_f32_le () ; __struct . q2 = buf . get_f32_le () ; __struct . q3 = buf . get_f32_le () ; __struct . q4 = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . lat = buf . get_f32_le () ; __struct . lon = buf . get_f32_le () ; __struct . alt = buf . get_f32_le () ; __struct . std_dev_horz = buf . get_f32_le () ; __struct . std_dev_vert = buf . get_f32_le () ; __struct . vn = buf . get_f32_le () ; __struct . ve = buf . get_f32_le () ; __struct . vd = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . q1) ; __tmp . put_f32_le (self . q2) ; __tmp . put_f32_le (self . q3) ; __tmp . put_f32_le (self . q4) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . lat) ; __tmp . put_f32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . std_dev_horz) ; __tmp . put_f32_le (self . std_dev_vert) ; __tmp . put_f32_le (self . vn) ; __tmp . put_f32_le (self . ve) ; __tmp . put_f32_le (self . vd) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_STATE_DATA { pub time_usec : u64 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , } impl HIL_STATE_DATA { pub const ENCODED_LEN : usize = 56usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , } ; } impl Default for HIL_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_STATE_DATA { type Message = MavMessage ; const ID : u32 = 90u32 ; const NAME : & 'static str = "HIL_STATE" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 56usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GOPRO_GET_REQUEST_DATA { pub target_system : u8 , pub target_component : u8 , pub cmd_id : GoproCommand , } impl GOPRO_GET_REQUEST_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , cmd_id : GoproCommand :: DEFAULT , } ; } impl Default for GOPRO_GET_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GOPRO_GET_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 216u32 ; const NAME : & 'static str = "GOPRO_GET_REQUEST" ; const EXTRA_CRC : u8 = 50u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . cmd_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproCommand" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . cmd_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RANGEFINDER_DATA { pub distance : f32 , pub voltage : f32 , } impl RANGEFINDER_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { distance : 0.0_f32 , voltage : 0.0_f32 , } ; } impl Default for RANGEFINDER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RANGEFINDER_DATA { type Message = MavMessage ; const ID : u32 = 173u32 ; const NAME : & 'static str = "RANGEFINDER" ; const EXTRA_CRC : u8 = 83u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . distance = buf . get_f32_le () ; __struct . voltage = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . distance) ; __tmp . put_f32_le (self . voltage) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OSD_PARAM_CONFIG_REPLY_DATA { pub request_id : u32 , pub result : OsdParamConfigError , } impl OSD_PARAM_CONFIG_REPLY_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , result : OsdParamConfigError :: DEFAULT , } ; } impl Default for OSD_PARAM_CONFIG_REPLY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OSD_PARAM_CONFIG_REPLY_DATA { type Message = MavMessage ; const ID : u32 = 11034u32 ; const NAME : & 'static str = "OSD_PARAM_CONFIG_REPLY" ; const EXTRA_CRC : u8 = 79u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "OsdParamConfigError" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_u8 (self . result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BATTERY2_DATA { pub voltage : u16 , pub current_battery : i16 , } impl BATTERY2_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { voltage : 0_u16 , current_battery : 0_i16 , } ; } impl Default for BATTERY2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BATTERY2_DATA { type Message = MavMessage ; const ID : u32 = 181u32 ; const NAME : & 'static str = "BATTERY2" ; const EXTRA_CRC : u8 = 174u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . voltage = buf . get_u16_le () ; __struct . current_battery = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . voltage) ; __tmp . put_i16_le (self . current_battery) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_VALUE_DATA { pub param_count : u16 , pub param_index : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , } impl PARAM_EXT_VALUE_DATA { pub const ENCODED_LEN : usize = 149usize ; pub const DEFAULT : Self = Self { param_count : 0_u16 , param_index : 0_u16 , param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , } ; } impl Default for PARAM_EXT_VALUE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_VALUE_DATA { type Message = MavMessage ; const ID : u32 = 322u32 ; const NAME : & 'static str = "PARAM_EXT_VALUE" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 149usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_count = buf . get_u16_le () ; __struct . param_index = buf . get_u16_le () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . param_count) ; __tmp . put_u16_le (self . param_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RTK_DATA { pub time_last_baseline_ms : u32 , pub tow : u32 , pub baseline_a_mm : i32 , pub baseline_b_mm : i32 , pub baseline_c_mm : i32 , pub accuracy : u32 , pub iar_num_hypotheses : i32 , pub wn : u16 , pub rtk_receiver_id : u8 , pub rtk_health : u8 , pub rtk_rate : u8 , pub nsats : u8 , pub baseline_coords_type : RtkBaselineCoordinateSystem , } impl GPS_RTK_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_last_baseline_ms : 0_u32 , tow : 0_u32 , baseline_a_mm : 0_i32 , baseline_b_mm : 0_i32 , baseline_c_mm : 0_i32 , accuracy : 0_u32 , iar_num_hypotheses : 0_i32 , wn : 0_u16 , rtk_receiver_id : 0_u8 , rtk_health : 0_u8 , rtk_rate : 0_u8 , nsats : 0_u8 , baseline_coords_type : RtkBaselineCoordinateSystem :: DEFAULT , } ; } impl Default for GPS_RTK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RTK_DATA { type Message = MavMessage ; const ID : u32 = 127u32 ; const NAME : & 'static str = "GPS_RTK" ; const EXTRA_CRC : u8 = 25u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_last_baseline_ms = buf . get_u32_le () ; __struct . tow = buf . get_u32_le () ; __struct . baseline_a_mm = buf . get_i32_le () ; __struct . baseline_b_mm = buf . get_i32_le () ; __struct . baseline_c_mm = buf . get_i32_le () ; __struct . accuracy = buf . get_u32_le () ; __struct . iar_num_hypotheses = buf . get_i32_le () ; __struct . wn = buf . get_u16_le () ; __struct . rtk_receiver_id = buf . get_u8 () ; __struct . rtk_health = buf . get_u8 () ; __struct . rtk_rate = buf . get_u8 () ; __struct . nsats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . baseline_coords_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "RtkBaselineCoordinateSystem" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_last_baseline_ms) ; __tmp . put_u32_le (self . tow) ; __tmp . put_i32_le (self . baseline_a_mm) ; __tmp . put_i32_le (self . baseline_b_mm) ; __tmp . put_i32_le (self . baseline_c_mm) ; __tmp . put_u32_le (self . accuracy) ; __tmp . put_i32_le (self . iar_num_hypotheses) ; __tmp . put_u16_le (self . wn) ; __tmp . put_u8 (self . rtk_receiver_id) ; __tmp . put_u8 (self . rtk_health) ; __tmp . put_u8 (self . rtk_rate) ; __tmp . put_u8 (self . nsats) ; __tmp . put_u8 (self . baseline_coords_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MESSAGE_INTERVAL_DATA { pub interval_us : i32 , pub message_id : u16 , } impl MESSAGE_INTERVAL_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { interval_us : 0_i32 , message_id : 0_u16 , } ; } impl Default for MESSAGE_INTERVAL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MESSAGE_INTERVAL_DATA { type Message = MavMessage ; const ID : u32 = 244u32 ; const NAME : & 'static str = "MESSAGE_INTERVAL" ; const EXTRA_CRC : u8 = 95u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . interval_us = buf . get_i32_le () ; __struct . message_id = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . interval_us) ; __tmp . put_u16_le (self . message_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { pub rfHealth : UavionixAdsbRfHealth , } impl UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { pub const ENCODED_LEN : usize = 1usize ; pub const DEFAULT : Self = Self { rfHealth : UavionixAdsbRfHealth :: DEFAULT , } ; } impl Default for UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 10003u32 ; const NAME : & 'static str = "UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 1usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . rfHealth = UavionixAdsbRfHealth :: from_bits (tmp & UavionixAdsbRfHealth :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UavionixAdsbRfHealth" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . rfHealth . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU_DATA { type Message = MavMessage ; const ID : u32 = 26u32 ; const NAME : & 'static str = "SCALED_IMU" ; const EXTRA_CRC : u8 = 170u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGH_LATENCY_DATA { pub custom_mode : u32 , pub latitude : i32 , pub longitude : i32 , pub roll : i16 , pub pitch : i16 , pub heading : u16 , pub heading_sp : i16 , pub altitude_amsl : i16 , pub altitude_sp : i16 , pub wp_distance : u16 , pub base_mode : MavModeFlag , pub landed_state : MavLandedState , pub throttle : i8 , pub airspeed : u8 , pub airspeed_sp : u8 , pub groundspeed : u8 , pub climb_rate : i8 , pub gps_nsat : u8 , pub gps_fix_type : GpsFixType , pub battery_remaining : u8 , pub temperature : i8 , pub temperature_air : i8 , pub failsafe : u8 , pub wp_num : u8 , } impl HIGH_LATENCY_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , latitude : 0_i32 , longitude : 0_i32 , roll : 0_i16 , pitch : 0_i16 , heading : 0_u16 , heading_sp : 0_i16 , altitude_amsl : 0_i16 , altitude_sp : 0_i16 , wp_distance : 0_u16 , base_mode : MavModeFlag :: DEFAULT , landed_state : MavLandedState :: DEFAULT , throttle : 0_i8 , airspeed : 0_u8 , airspeed_sp : 0_u8 , groundspeed : 0_u8 , climb_rate : 0_i8 , gps_nsat : 0_u8 , gps_fix_type : GpsFixType :: DEFAULT , battery_remaining : 0_u8 , temperature : 0_i8 , temperature_air : 0_i8 , failsafe : 0_u8 , wp_num : 0_u8 , } ; } impl Default for HIGH_LATENCY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGH_LATENCY_DATA { type Message = MavMessage ; const ID : u32 = 234u32 ; const NAME : & 'static str = "HIGH_LATENCY" ; const EXTRA_CRC : u8 = 150u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . roll = buf . get_i16_le () ; __struct . pitch = buf . get_i16_le () ; __struct . heading = buf . get_u16_le () ; __struct . heading_sp = buf . get_i16_le () ; __struct . altitude_amsl = buf . get_i16_le () ; __struct . altitude_sp = buf . get_i16_le () ; __struct . wp_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . base_mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; __struct . throttle = buf . get_i8 () ; __struct . airspeed = buf . get_u8 () ; __struct . airspeed_sp = buf . get_u8 () ; __struct . groundspeed = buf . get_u8 () ; __struct . climb_rate = buf . get_i8 () ; __struct . gps_nsat = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . gps_fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . battery_remaining = buf . get_u8 () ; __struct . temperature = buf . get_i8 () ; __struct . temperature_air = buf . get_i8 () ; __struct . failsafe = buf . get_u8 () ; __struct . wp_num = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i16_le (self . roll) ; __tmp . put_i16_le (self . pitch) ; __tmp . put_u16_le (self . heading) ; __tmp . put_i16_le (self . heading_sp) ; __tmp . put_i16_le (self . altitude_amsl) ; __tmp . put_i16_le (self . altitude_sp) ; __tmp . put_u16_le (self . wp_distance) ; __tmp . put_u8 (self . base_mode . bits ()) ; __tmp . put_u8 (self . landed_state as u8) ; __tmp . put_i8 (self . throttle) ; __tmp . put_u8 (self . airspeed) ; __tmp . put_u8 (self . airspeed_sp) ; __tmp . put_u8 (self . groundspeed) ; __tmp . put_i8 (self . climb_rate) ; __tmp . put_u8 (self . gps_nsat) ; __tmp . put_u8 (self . gps_fix_type as u8) ; __tmp . put_u8 (self . battery_remaining) ; __tmp . put_i8 (self . temperature) ; __tmp . put_i8 (self . temperature_air) ; __tmp . put_u8 (self . failsafe) ; __tmp . put_u8 (self . wp_num) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_IMAGE_CAPTURED_DATA { pub time_utc : u64 , pub time_boot_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub image_index : i32 , pub camera_id : u8 , pub capture_result : i8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub file_url : [u8 ; 205] , } impl CAMERA_IMAGE_CAPTURED_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { time_utc : 0_u64 , time_boot_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , q : [0.0_f32 ; 4usize] , image_index : 0_i32 , camera_id : 0_u8 , capture_result : 0_i8 , file_url : [0_u8 ; 205usize] , } ; } impl Default for CAMERA_IMAGE_CAPTURED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_IMAGE_CAPTURED_DATA { type Message = MavMessage ; const ID : u32 = 263u32 ; const NAME : & 'static str = "CAMERA_IMAGE_CAPTURED" ; const EXTRA_CRC : u8 = 133u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_utc = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . image_index = buf . get_i32_le () ; __struct . camera_id = buf . get_u8 () ; __struct . capture_result = buf . get_i8 () ; for v in & mut __struct . file_url { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_utc) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_i32_le (self . image_index) ; __tmp . put_u8 (self . camera_id) ; __tmp . put_i8 (self . capture_result) ; for val in & self . file_url { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LIMITS_STATUS_DATA { pub last_trigger : u32 , pub last_action : u32 , pub last_recovery : u32 , pub last_clear : u32 , pub breach_count : u16 , pub limits_state : LimitsState , pub mods_enabled : LimitModule , pub mods_required : LimitModule , pub mods_triggered : LimitModule , } impl LIMITS_STATUS_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { last_trigger : 0_u32 , last_action : 0_u32 , last_recovery : 0_u32 , last_clear : 0_u32 , breach_count : 0_u16 , limits_state : LimitsState :: DEFAULT , mods_enabled : LimitModule :: DEFAULT , mods_required : LimitModule :: DEFAULT , mods_triggered : LimitModule :: DEFAULT , } ; } impl Default for LIMITS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LIMITS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 167u32 ; const NAME : & 'static str = "LIMITS_STATUS" ; const EXTRA_CRC : u8 = 144u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . last_trigger = buf . get_u32_le () ; __struct . last_action = buf . get_u32_le () ; __struct . last_recovery = buf . get_u32_le () ; __struct . last_clear = buf . get_u32_le () ; __struct . breach_count = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . limits_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "LimitsState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mods_enabled = LimitModule :: from_bits (tmp & LimitModule :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "LimitModule" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mods_required = LimitModule :: from_bits (tmp & LimitModule :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "LimitModule" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mods_triggered = LimitModule :: from_bits (tmp & LimitModule :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "LimitModule" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . last_trigger) ; __tmp . put_u32_le (self . last_action) ; __tmp . put_u32_le (self . last_recovery) ; __tmp . put_u32_le (self . last_clear) ; __tmp . put_u16_le (self . breach_count) ; __tmp . put_u8 (self . limits_state as u8) ; __tmp . put_u8 (self . mods_enabled . bits ()) ; __tmp . put_u8 (self . mods_required . bits ()) ; __tmp . put_u8 (self . mods_triggered . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTH_KEY_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub key : [u8 ; 32] , } impl AUTH_KEY_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { key : [0_u8 ; 32usize] , } ; } impl Default for AUTH_KEY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTH_KEY_DATA { type Message = MavMessage ; const ID : u32 = 7u32 ; const NAME : & 'static str = "AUTH_KEY" ; const EXTRA_CRC : u8 = 119u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . key { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . key { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA_TRANSMISSION_HANDSHAKE_DATA { pub size : u32 , pub width : u16 , pub height : u16 , pub packets : u16 , pub mavtype : MavlinkDataStreamType , pub payload : u8 , pub jpg_quality : u8 , } impl DATA_TRANSMISSION_HANDSHAKE_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { size : 0_u32 , width : 0_u16 , height : 0_u16 , packets : 0_u16 , mavtype : MavlinkDataStreamType :: DEFAULT , payload : 0_u8 , jpg_quality : 0_u8 , } ; } impl Default for DATA_TRANSMISSION_HANDSHAKE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA_TRANSMISSION_HANDSHAKE_DATA { type Message = MavMessage ; const ID : u32 = 130u32 ; const NAME : & 'static str = "DATA_TRANSMISSION_HANDSHAKE" ; const EXTRA_CRC : u8 = 29u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . size = buf . get_u32_le () ; __struct . width = buf . get_u16_le () ; __struct . height = buf . get_u16_le () ; __struct . packets = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavlinkDataStreamType" , value : tmp as u32 }) ? ; __struct . payload = buf . get_u8 () ; __struct . jpg_quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . size) ; __tmp . put_u16_le (self . width) ; __tmp . put_u16_le (self . height) ; __tmp . put_u16_le (self . packets) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . payload) ; __tmp . put_u8 (self . jpg_quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CHANGE_OPERATOR_CONTROL_DATA { pub target_system : u8 , pub control_request : u8 , pub version : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub passkey : [u8 ; 25] , } impl CHANGE_OPERATOR_CONTROL_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , control_request : 0_u8 , version : 0_u8 , passkey : [0_u8 ; 25usize] , } ; } impl Default for CHANGE_OPERATOR_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CHANGE_OPERATOR_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 5u32 ; const NAME : & 'static str = "CHANGE_OPERATOR_CONTROL" ; const EXTRA_CRC : u8 = 217u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . control_request = buf . get_u8 () ; __struct . version = buf . get_u8 () ; for v in & mut __struct . passkey { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . control_request) ; __tmp . put_u8 (self . version) ; for val in & self . passkey { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LINK_NODE_STATUS_DATA { pub timestamp : u64 , pub tx_rate : u32 , pub rx_rate : u32 , pub messages_sent : u32 , pub messages_received : u32 , pub messages_lost : u32 , pub rx_parse_err : u16 , pub tx_overflows : u16 , pub rx_overflows : u16 , pub tx_buf : u8 , pub rx_buf : u8 , } impl LINK_NODE_STATUS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , tx_rate : 0_u32 , rx_rate : 0_u32 , messages_sent : 0_u32 , messages_received : 0_u32 , messages_lost : 0_u32 , rx_parse_err : 0_u16 , tx_overflows : 0_u16 , rx_overflows : 0_u16 , tx_buf : 0_u8 , rx_buf : 0_u8 , } ; } impl Default for LINK_NODE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LINK_NODE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 8u32 ; const NAME : & 'static str = "LINK_NODE_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . tx_rate = buf . get_u32_le () ; __struct . rx_rate = buf . get_u32_le () ; __struct . messages_sent = buf . get_u32_le () ; __struct . messages_received = buf . get_u32_le () ; __struct . messages_lost = buf . get_u32_le () ; __struct . rx_parse_err = buf . get_u16_le () ; __struct . tx_overflows = buf . get_u16_le () ; __struct . rx_overflows = buf . get_u16_le () ; __struct . tx_buf = buf . get_u8 () ; __struct . rx_buf = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u32_le (self . tx_rate) ; __tmp . put_u32_le (self . rx_rate) ; __tmp . put_u32_le (self . messages_sent) ; __tmp . put_u32_le (self . messages_received) ; __tmp . put_u32_le (self . messages_lost) ; __tmp . put_u16_le (self . rx_parse_err) ; __tmp . put_u16_le (self . tx_overflows) ; __tmp . put_u16_le (self . rx_overflows) ; __tmp . put_u8 (self . tx_buf) ; __tmp . put_u8 (self . rx_buf) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PID_TUNING_DATA { pub desired : f32 , pub achieved : f32 , pub FF : f32 , pub P : f32 , pub I : f32 , pub D : f32 , pub axis : PidTuningAxis , } impl PID_TUNING_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { desired : 0.0_f32 , achieved : 0.0_f32 , FF : 0.0_f32 , P : 0.0_f32 , I : 0.0_f32 , D : 0.0_f32 , axis : PidTuningAxis :: DEFAULT , } ; } impl Default for PID_TUNING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PID_TUNING_DATA { type Message = MavMessage ; const ID : u32 = 194u32 ; const NAME : & 'static str = "PID_TUNING" ; const EXTRA_CRC : u8 = 98u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . desired = buf . get_f32_le () ; __struct . achieved = buf . get_f32_le () ; __struct . FF = buf . get_f32_le () ; __struct . P = buf . get_f32_le () ; __struct . I = buf . get_f32_le () ; __struct . D = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . axis = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "PidTuningAxis" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . desired) ; __tmp . put_f32_le (self . achieved) ; __tmp . put_f32_le (self . FF) ; __tmp . put_f32_le (self . P) ; __tmp . put_f32_le (self . I) ; __tmp . put_f32_le (self . D) ; __tmp . put_u8 (self . axis as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ADAP_TUNING_DATA { pub desired : f32 , pub achieved : f32 , pub error : f32 , pub theta : f32 , pub omega : f32 , pub sigma : f32 , pub theta_dot : f32 , pub omega_dot : f32 , pub sigma_dot : f32 , pub f : f32 , pub f_dot : f32 , pub u : f32 , pub axis : PidTuningAxis , } impl ADAP_TUNING_DATA { pub const ENCODED_LEN : usize = 49usize ; pub const DEFAULT : Self = Self { desired : 0.0_f32 , achieved : 0.0_f32 , error : 0.0_f32 , theta : 0.0_f32 , omega : 0.0_f32 , sigma : 0.0_f32 , theta_dot : 0.0_f32 , omega_dot : 0.0_f32 , sigma_dot : 0.0_f32 , f : 0.0_f32 , f_dot : 0.0_f32 , u : 0.0_f32 , axis : PidTuningAxis :: DEFAULT , } ; } impl Default for ADAP_TUNING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ADAP_TUNING_DATA { type Message = MavMessage ; const ID : u32 = 11010u32 ; const NAME : & 'static str = "ADAP_TUNING" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 49usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . desired = buf . get_f32_le () ; __struct . achieved = buf . get_f32_le () ; __struct . error = buf . get_f32_le () ; __struct . theta = buf . get_f32_le () ; __struct . omega = buf . get_f32_le () ; __struct . sigma = buf . get_f32_le () ; __struct . theta_dot = buf . get_f32_le () ; __struct . omega_dot = buf . get_f32_le () ; __struct . sigma_dot = buf . get_f32_le () ; __struct . f = buf . get_f32_le () ; __struct . f_dot = buf . get_f32_le () ; __struct . u = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . axis = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "PidTuningAxis" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . desired) ; __tmp . put_f32_le (self . achieved) ; __tmp . put_f32_le (self . error) ; __tmp . put_f32_le (self . theta) ; __tmp . put_f32_le (self . omega) ; __tmp . put_f32_le (self . sigma) ; __tmp . put_f32_le (self . theta_dot) ; __tmp . put_f32_le (self . omega_dot) ; __tmp . put_f32_le (self . sigma_dot) ; __tmp . put_f32_le (self . f) ; __tmp . put_f32_le (self . f_dot) ; __tmp . put_f32_le (self . u) ; __tmp . put_u8 (self . axis as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_INFO_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub error_count : [u32 ; 4] , pub counter : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub failure_flags : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature : [i16 ; 4] , pub index : u8 , pub count : u8 , pub connection_type : EscConnectionType , pub info : u8 , } impl ESC_INFO_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , error_count : [0_u32 ; 4usize] , counter : 0_u16 , failure_flags : [0_u16 ; 4usize] , temperature : [0_i16 ; 4usize] , index : 0_u8 , count : 0_u8 , connection_type : EscConnectionType :: DEFAULT , info : 0_u8 , } ; } impl Default for ESC_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_INFO_DATA { type Message = MavMessage ; const ID : u32 = 290u32 ; const NAME : & 'static str = "ESC_INFO" ; const EXTRA_CRC : u8 = 251u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . error_count { let val = buf . get_u32_le () ; * v = val ; } __struct . counter = buf . get_u16_le () ; for v in & mut __struct . failure_flags { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . temperature { let val = buf . get_i16_le () ; * v = val ; } __struct . index = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . connection_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "EscConnectionType" , value : tmp as u32 }) ? ; __struct . info = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . error_count { __tmp . put_u32_le (* val) ; } __tmp . put_u16_le (self . counter) ; for val in & self . failure_flags { __tmp . put_u16_le (* val) ; } for val in & self . temperature { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . index) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . connection_type as u8) ; __tmp . put_u8 (self . info) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TUNNEL_DATA { pub payload_type : MavTunnelPayloadType , pub target_system : u8 , pub target_component : u8 , pub payload_length : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 128] , } impl TUNNEL_DATA { pub const ENCODED_LEN : usize = 133usize ; pub const DEFAULT : Self = Self { payload_type : MavTunnelPayloadType :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , payload_length : 0_u8 , payload : [0_u8 ; 128usize] , } ; } impl Default for TUNNEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TUNNEL_DATA { type Message = MavMessage ; const ID : u32 = 385u32 ; const NAME : & 'static str = "TUNNEL" ; const EXTRA_CRC : u8 = 147u8 ; const ENCODED_LEN : usize = 133usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . payload_type = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavTunnelPayloadType" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . payload_length = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . payload_type as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . payload_length) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPTICAL_FLOW_RAD_DATA { pub time_usec : u64 , pub integration_time_us : u32 , pub integrated_x : f32 , pub integrated_y : f32 , pub integrated_xgyro : f32 , pub integrated_ygyro : f32 , pub integrated_zgyro : f32 , pub time_delta_distance_us : u32 , pub distance : f32 , pub temperature : i16 , pub sensor_id : u8 , pub quality : u8 , } impl OPTICAL_FLOW_RAD_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , integration_time_us : 0_u32 , integrated_x : 0.0_f32 , integrated_y : 0.0_f32 , integrated_xgyro : 0.0_f32 , integrated_ygyro : 0.0_f32 , integrated_zgyro : 0.0_f32 , time_delta_distance_us : 0_u32 , distance : 0.0_f32 , temperature : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for OPTICAL_FLOW_RAD_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPTICAL_FLOW_RAD_DATA { type Message = MavMessage ; const ID : u32 = 106u32 ; const NAME : & 'static str = "OPTICAL_FLOW_RAD" ; const EXTRA_CRC : u8 = 138u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . integration_time_us = buf . get_u32_le () ; __struct . integrated_x = buf . get_f32_le () ; __struct . integrated_y = buf . get_f32_le () ; __struct . integrated_xgyro = buf . get_f32_le () ; __struct . integrated_ygyro = buf . get_f32_le () ; __struct . integrated_zgyro = buf . get_f32_le () ; __struct . time_delta_distance_us = buf . get_u32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . integration_time_us) ; __tmp . put_f32_le (self . integrated_x) ; __tmp . put_f32_le (self . integrated_y) ; __tmp . put_f32_le (self . integrated_xgyro) ; __tmp . put_f32_le (self . integrated_ygyro) ; __tmp . put_f32_le (self . integrated_zgyro) ; __tmp . put_u32_le (self . time_delta_distance_us) ; __tmp . put_f32_le (self . distance) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_DATA_DATA { pub lat : i32 , pub lon : i32 , pub grid_spacing : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [i16 ; 16] , pub gridbit : u8 , } impl TERRAIN_DATA_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , grid_spacing : 0_u16 , data : [0_i16 ; 16usize] , gridbit : 0_u8 , } ; } impl Default for TERRAIN_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_DATA_DATA { type Message = MavMessage ; const ID : u32 = 134u32 ; const NAME : & 'static str = "TERRAIN_DATA" ; const EXTRA_CRC : u8 = 229u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . grid_spacing = buf . get_u16_le () ; for v in & mut __struct . data { let val = buf . get_i16_le () ; * v = val ; } __struct . gridbit = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . grid_spacing) ; for val in & self . data { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . gridbit) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AHRS_DATA { pub omegaIx : f32 , pub omegaIy : f32 , pub omegaIz : f32 , pub accel_weight : f32 , pub renorm_val : f32 , pub error_rp : f32 , pub error_yaw : f32 , } impl AHRS_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { omegaIx : 0.0_f32 , omegaIy : 0.0_f32 , omegaIz : 0.0_f32 , accel_weight : 0.0_f32 , renorm_val : 0.0_f32 , error_rp : 0.0_f32 , error_yaw : 0.0_f32 , } ; } impl Default for AHRS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AHRS_DATA { type Message = MavMessage ; const ID : u32 = 163u32 ; const NAME : & 'static str = "AHRS" ; const EXTRA_CRC : u8 = 127u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . omegaIx = buf . get_f32_le () ; __struct . omegaIy = buf . get_f32_le () ; __struct . omegaIz = buf . get_f32_le () ; __struct . accel_weight = buf . get_f32_le () ; __struct . renorm_val = buf . get_f32_le () ; __struct . error_rp = buf . get_f32_le () ; __struct . error_yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . omegaIx) ; __tmp . put_f32_le (self . omegaIy) ; __tmp . put_f32_le (self . omegaIz) ; __tmp . put_f32_le (self . accel_weight) ; __tmp . put_f32_le (self . renorm_val) ; __tmp . put_f32_le (self . error_rp) ; __tmp . put_f32_le (self . error_yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SETUP_SIGNING_DATA { pub initial_timestamp : u64 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub secret_key : [u8 ; 32] , } impl SETUP_SIGNING_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { initial_timestamp : 0_u64 , target_system : 0_u8 , target_component : 0_u8 , secret_key : [0_u8 ; 32usize] , } ; } impl Default for SETUP_SIGNING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SETUP_SIGNING_DATA { type Message = MavMessage ; const ID : u32 = 256u32 ; const NAME : & 'static str = "SETUP_SIGNING" ; const EXTRA_CRC : u8 = 71u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . initial_timestamp = buf . get_u64_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . secret_key { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . initial_timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . secret_key { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_WRITE_PARTIAL_LIST_DATA { pub start_index : i16 , pub end_index : i16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_WRITE_PARTIAL_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start_index : 0_i16 , end_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_WRITE_PARTIAL_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_WRITE_PARTIAL_LIST_DATA { type Message = MavMessage ; const ID : u32 = 38u32 ; const NAME : & 'static str = "MISSION_WRITE_PARTIAL_LIST" ; const EXTRA_CRC : u8 = 9u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start_index = buf . get_i16_le () ; __struct . end_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . start_index) ; __tmp . put_i16_le (self . end_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_INPUT_DATA { pub time_usec : u64 , pub time_week_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : f32 , pub hdop : f32 , pub vdop : f32 , pub vn : f32 , pub ve : f32 , pub vd : f32 , pub speed_accuracy : f32 , pub horiz_accuracy : f32 , pub vert_accuracy : f32 , pub ignore_flags : GpsInputIgnoreFlags , pub time_week : u16 , pub gps_id : u8 , pub fix_type : u8 , pub satellites_visible : u8 , } impl GPS_INPUT_DATA { pub const ENCODED_LEN : usize = 63usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , time_week_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , hdop : 0.0_f32 , vdop : 0.0_f32 , vn : 0.0_f32 , ve : 0.0_f32 , vd : 0.0_f32 , speed_accuracy : 0.0_f32 , horiz_accuracy : 0.0_f32 , vert_accuracy : 0.0_f32 , ignore_flags : GpsInputIgnoreFlags :: DEFAULT , time_week : 0_u16 , gps_id : 0_u8 , fix_type : 0_u8 , satellites_visible : 0_u8 , } ; } impl Default for GPS_INPUT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_INPUT_DATA { type Message = MavMessage ; const ID : u32 = 232u32 ; const NAME : & 'static str = "GPS_INPUT" ; const EXTRA_CRC : u8 = 151u8 ; const ENCODED_LEN : usize = 63usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . time_week_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . hdop = buf . get_f32_le () ; __struct . vdop = buf . get_f32_le () ; __struct . vn = buf . get_f32_le () ; __struct . ve = buf . get_f32_le () ; __struct . vd = buf . get_f32_le () ; __struct . speed_accuracy = buf . get_f32_le () ; __struct . horiz_accuracy = buf . get_f32_le () ; __struct . vert_accuracy = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . ignore_flags = GpsInputIgnoreFlags :: from_bits (tmp & GpsInputIgnoreFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GpsInputIgnoreFlags" , value : tmp as u32 }) ? ; __struct . time_week = buf . get_u16_le () ; __struct . gps_id = buf . get_u8 () ; __struct . fix_type = buf . get_u8 () ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . time_week_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . hdop) ; __tmp . put_f32_le (self . vdop) ; __tmp . put_f32_le (self . vn) ; __tmp . put_f32_le (self . ve) ; __tmp . put_f32_le (self . vd) ; __tmp . put_f32_le (self . speed_accuracy) ; __tmp . put_f32_le (self . horiz_accuracy) ; __tmp . put_f32_le (self . vert_accuracy) ; __tmp . put_u16_le (self . ignore_flags . bits ()) ; __tmp . put_u16_le (self . time_week) ; __tmp . put_u8 (self . gps_id) ; __tmp . put_u8 (self . fix_type) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VFR_HUD_DATA { pub airspeed : f32 , pub groundspeed : f32 , pub alt : f32 , pub climb : f32 , pub heading : i16 , pub throttle : u16 , } impl VFR_HUD_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { airspeed : 0.0_f32 , groundspeed : 0.0_f32 , alt : 0.0_f32 , climb : 0.0_f32 , heading : 0_i16 , throttle : 0_u16 , } ; } impl Default for VFR_HUD_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VFR_HUD_DATA { type Message = MavMessage ; const ID : u32 = 74u32 ; const NAME : & 'static str = "VFR_HUD" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . airspeed = buf . get_f32_le () ; __struct . groundspeed = buf . get_f32_le () ; __struct . alt = buf . get_f32_le () ; __struct . climb = buf . get_f32_le () ; __struct . heading = buf . get_i16_le () ; __struct . throttle = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . airspeed) ; __tmp . put_f32_le (self . groundspeed) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . climb) ; __tmp . put_i16_le (self . heading) ; __tmp . put_u16_le (self . throttle) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POWER_STATUS_DATA { pub Vcc : u16 , pub Vservo : u16 , pub flags : MavPowerStatus , } impl POWER_STATUS_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { Vcc : 0_u16 , Vservo : 0_u16 , flags : MavPowerStatus :: DEFAULT , } ; } impl Default for POWER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POWER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 125u32 ; const NAME : & 'static str = "POWER_STATUS" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . Vcc = buf . get_u16_le () ; __struct . Vservo = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = MavPowerStatus :: from_bits (tmp & MavPowerStatus :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavPowerStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . Vcc) ; __tmp . put_u16_le (self . Vservo) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_SET_CURRENT_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_SET_CURRENT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_SET_CURRENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_SET_CURRENT_DATA { type Message = MavMessage ; const ID : u32 = 41u32 ; const NAME : & 'static str = "MISSION_SET_CURRENT" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RALLY_POINT_DATA { pub lat : i32 , pub lng : i32 , pub alt : i16 , pub break_alt : i16 , pub land_dir : u16 , pub target_system : u8 , pub target_component : u8 , pub idx : u8 , pub count : u8 , pub flags : RallyFlags , } impl RALLY_POINT_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lng : 0_i32 , alt : 0_i16 , break_alt : 0_i16 , land_dir : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , idx : 0_u8 , count : 0_u8 , flags : RallyFlags :: DEFAULT , } ; } impl Default for RALLY_POINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RALLY_POINT_DATA { type Message = MavMessage ; const ID : u32 = 175u32 ; const NAME : & 'static str = "RALLY_POINT" ; const EXTRA_CRC : u8 = 138u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lng = buf . get_i32_le () ; __struct . alt = buf . get_i16_le () ; __struct . break_alt = buf . get_i16_le () ; __struct . land_dir = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . idx = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . flags = RallyFlags :: from_bits (tmp & RallyFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "RallyFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lng) ; __tmp . put_i16_le (self . alt) ; __tmp . put_i16_le (self . break_alt) ; __tmp . put_u16_le (self . land_dir) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . idx) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GOPRO_SET_RESPONSE_DATA { pub cmd_id : GoproCommand , pub status : GoproRequestStatus , } impl GOPRO_SET_RESPONSE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { cmd_id : GoproCommand :: DEFAULT , status : GoproRequestStatus :: DEFAULT , } ; } impl Default for GOPRO_SET_RESPONSE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GOPRO_SET_RESPONSE_DATA { type Message = MavMessage ; const ID : u32 = 219u32 ; const NAME : & 'static str = "GOPRO_SET_RESPONSE" ; const EXTRA_CRC : u8 = 162u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . cmd_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproCommand" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproRequestStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . cmd_id as u8) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEVICE_OP_WRITE_REPLY_DATA { pub request_id : u32 , pub result : u8 , } impl DEVICE_OP_WRITE_REPLY_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , result : 0_u8 , } ; } impl Default for DEVICE_OP_WRITE_REPLY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEVICE_OP_WRITE_REPLY_DATA { type Message = MavMessage ; const ID : u32 = 11003u32 ; const NAME : & 'static str = "DEVICE_OP_WRITE_REPLY" ; const EXTRA_CRC : u8 = 64u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . result = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_u8 (self . result) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_TELEMETRY_9_TO_12_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltage : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub current : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub totalcurrent : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rpm : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub count : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature : [u8 ; 4] , } impl ESC_TELEMETRY_9_TO_12_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { voltage : [0_u16 ; 4usize] , current : [0_u16 ; 4usize] , totalcurrent : [0_u16 ; 4usize] , rpm : [0_u16 ; 4usize] , count : [0_u16 ; 4usize] , temperature : [0_u8 ; 4usize] , } ; } impl Default for ESC_TELEMETRY_9_TO_12_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_TELEMETRY_9_TO_12_DATA { type Message = MavMessage ; const ID : u32 = 11032u32 ; const NAME : & 'static str = "ESC_TELEMETRY_9_TO_12" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . voltage { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . current { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . totalcurrent { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . rpm { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . count { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . temperature { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . voltage { __tmp . put_u16_le (* val) ; } for val in & self . current { __tmp . put_u16_le (* val) ; } for val in & self . totalcurrent { __tmp . put_u16_le (* val) ; } for val in & self . rpm { __tmp . put_u16_le (* val) ; } for val in & self . count { __tmp . put_u16_le (* val) ; } for val in & self . temperature { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ACTUATOR_CONTROL_TARGET_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 8] , pub group_mlx : u8 , } impl ACTUATOR_CONTROL_TARGET_DATA { pub const ENCODED_LEN : usize = 41usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , controls : [0.0_f32 ; 8usize] , group_mlx : 0_u8 , } ; } impl Default for ACTUATOR_CONTROL_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ACTUATOR_CONTROL_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 140u32 ; const NAME : & 'static str = "ACTUATOR_CONTROL_TARGET" ; const EXTRA_CRC : u8 = 181u8 ; const ENCODED_LEN : usize = 41usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } __struct . group_mlx = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . group_mlx) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RALLY_FETCH_POINT_DATA { pub target_system : u8 , pub target_component : u8 , pub idx : u8 , } impl RALLY_FETCH_POINT_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , idx : 0_u8 , } ; } impl Default for RALLY_FETCH_POINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RALLY_FETCH_POINT_DATA { type Message = MavMessage ; const ID : u32 = 176u32 ; const NAME : & 'static str = "RALLY_FETCH_POINT" ; const EXTRA_CRC : u8 = 234u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . idx = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . idx) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA { pub offset : u32 , pub target_system : u8 , pub target_component : u8 , } impl CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { offset : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA { type Message = MavMessage ; const ID : u32 = 50005u32 ; const NAME : & 'static str = "CUBEPILOT_FIRMWARE_UPDATE_RESP" ; const EXTRA_CRC : u8 = 152u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . offset = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . offset) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct V2_EXTENSION_DATA { pub message_type : u16 , pub target_network : u8 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 249] , } impl V2_EXTENSION_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { message_type : 0_u16 , target_network : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , payload : [0_u8 ; 249usize] , } ; } impl Default for V2_EXTENSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for V2_EXTENSION_DATA { type Message = MavMessage ; const ID : u32 = 248u32 ; const NAME : & 'static str = "V2_EXTENSION" ; const EXTRA_CRC : u8 = 8u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . message_type = buf . get_u16_le () ; __struct . target_network = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . message_type) ; __tmp . put_u8 (self . target_network) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_POSITION_INT_DATA { pub time_boot_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub hdg : u16 , } impl GLOBAL_POSITION_INT_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , hdg : 0_u16 , } ; } impl Default for GLOBAL_POSITION_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_POSITION_INT_DATA { type Message = MavMessage ; const ID : u32 = 33u32 ; const NAME : & 'static str = "GLOBAL_POSITION_INT" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . hdg = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . hdg) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TRAJECTORY_REPRESENTATION_BEZIER_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub delta : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_yaw : [f32 ; 5] , pub valid_points : u8 , } impl TRAJECTORY_REPRESENTATION_BEZIER_DATA { pub const ENCODED_LEN : usize = 109usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , pos_x : [0.0_f32 ; 5usize] , pos_y : [0.0_f32 ; 5usize] , pos_z : [0.0_f32 ; 5usize] , delta : [0.0_f32 ; 5usize] , pos_yaw : [0.0_f32 ; 5usize] , valid_points : 0_u8 , } ; } impl Default for TRAJECTORY_REPRESENTATION_BEZIER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TRAJECTORY_REPRESENTATION_BEZIER_DATA { type Message = MavMessage ; const ID : u32 = 333u32 ; const NAME : & 'static str = "TRAJECTORY_REPRESENTATION_BEZIER" ; const EXTRA_CRC : u8 = 231u8 ; const ENCODED_LEN : usize = 109usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . pos_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . delta { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_yaw { let val = buf . get_f32_le () ; * v = val ; } __struct . valid_points = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . pos_x { __tmp . put_f32_le (* val) ; } for val in & self . pos_y { __tmp . put_f32_le (* val) ; } for val in & self . pos_z { __tmp . put_f32_le (* val) ; } for val in & self . delta { __tmp . put_f32_le (* val) ; } for val in & self . pos_yaw { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . valid_points) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_RPM_DATA { pub frequency : f32 , pub index : u8 , } impl RAW_RPM_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { frequency : 0.0_f32 , index : 0_u8 , } ; } impl Default for RAW_RPM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_RPM_DATA { type Message = MavMessage ; const ID : u32 = 339u32 ; const NAME : & 'static str = "RAW_RPM" ; const EXTRA_CRC : u8 = 199u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . frequency = buf . get_f32_le () ; __struct . index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . frequency) ; __tmp . put_u8 (self . index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_HOME_POSITION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub approach_x : f32 , pub approach_y : f32 , pub approach_z : f32 , pub target_system : u8 , } impl SET_HOME_POSITION_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , approach_x : 0.0_f32 , approach_y : 0.0_f32 , approach_z : 0.0_f32 , target_system : 0_u8 , } ; } impl Default for SET_HOME_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_HOME_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 243u32 ; const NAME : & 'static str = "SET_HOME_POSITION" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . approach_x = buf . get_f32_le () ; __struct . approach_y = buf . get_f32_le () ; __struct . approach_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . approach_x) ; __tmp . put_f32_le (self . approach_y) ; __tmp . put_f32_le (self . approach_z) ; __tmp . put_u8 (self . target_system) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RESOURCE_REQUEST_DATA { pub request_id : u8 , pub uri_type : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 120] , pub transfer_type : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage : [u8 ; 120] , } impl RESOURCE_REQUEST_DATA { pub const ENCODED_LEN : usize = 243usize ; pub const DEFAULT : Self = Self { request_id : 0_u8 , uri_type : 0_u8 , uri : [0_u8 ; 120usize] , transfer_type : 0_u8 , storage : [0_u8 ; 120usize] , } ; } impl Default for RESOURCE_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RESOURCE_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 142u32 ; const NAME : & 'static str = "RESOURCE_REQUEST" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 243usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u8 () ; __struct . uri_type = buf . get_u8 () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } __struct . transfer_type = buf . get_u8 () ; for v in & mut __struct . storage { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . request_id) ; __tmp . put_u8 (self . uri_type) ; for val in & self . uri { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . transfer_type) ; for val in & self . storage { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_STATUS_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rpm : [i32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltage : [f32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub current : [f32 ; 4] , pub index : u8 , } impl ESC_STATUS_DATA { pub const ENCODED_LEN : usize = 57usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , rpm : [0_i32 ; 4usize] , voltage : [0.0_f32 ; 4usize] , current : [0.0_f32 ; 4usize] , index : 0_u8 , } ; } impl Default for ESC_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 291u32 ; const NAME : & 'static str = "ESC_STATUS" ; const EXTRA_CRC : u8 = 10u8 ; const ENCODED_LEN : usize = 57usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . rpm { let val = buf . get_i32_le () ; * v = val ; } for v in & mut __struct . voltage { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . current { let val = buf . get_f32_le () ; * v = val ; } __struct . index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . rpm { __tmp . put_i32_le (* val) ; } for val in & self . voltage { __tmp . put_f32_le (* val) ; } for val in & self . current { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIND_DATA { pub direction : f32 , pub speed : f32 , pub speed_z : f32 , } impl WIND_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { direction : 0.0_f32 , speed : 0.0_f32 , speed_z : 0.0_f32 , } ; } impl Default for WIND_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIND_DATA { type Message = MavMessage ; const ID : u32 = 168u32 ; const NAME : & 'static str = "WIND" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . direction = buf . get_f32_le () ; __struct . speed = buf . get_f32_le () ; __struct . speed_z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . direction) ; __tmp . put_f32_le (self . speed) ; __tmp . put_f32_le (self . speed_z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EXTENDED_SYS_STATE_DATA { pub vtol_state : MavVtolState , pub landed_state : MavLandedState , } impl EXTENDED_SYS_STATE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { vtol_state : MavVtolState :: DEFAULT , landed_state : MavLandedState :: DEFAULT , } ; } impl Default for EXTENDED_SYS_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EXTENDED_SYS_STATE_DATA { type Message = MavMessage ; const ID : u32 = 245u32 ; const NAME : & 'static str = "EXTENDED_SYS_STATE" ; const EXTRA_CRC : u8 = 130u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . vtol_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavVtolState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . vtol_state as u8) ; __tmp . put_u8 (self . landed_state as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_ACK_DATA { pub command : MavCmd , pub result : MavResult , } impl COMMAND_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { command : MavCmd :: DEFAULT , result : MavResult :: DEFAULT , } ; } impl Default for COMMAND_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_ACK_DATA { type Message = MavMessage ; const ID : u32 = 77u32 ; const NAME : & 'static str = "COMMAND_ACK" ; const EXTRA_CRC : u8 = 143u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavResult" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_VALUE_DATA { pub param_value : f32 , pub param_count : u16 , pub param_index : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub param_type : MavParamType , } impl PARAM_VALUE_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { param_value : 0.0_f32 , param_count : 0_u16 , param_index : 0_u16 , param_id : [0_u8 ; 16usize] , param_type : MavParamType :: DEFAULT , } ; } impl Default for PARAM_VALUE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_VALUE_DATA { type Message = MavMessage ; const ID : u32 = 22u32 ; const NAME : & 'static str = "PARAM_VALUE" ; const EXTRA_CRC : u8 = 220u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value = buf . get_f32_le () ; __struct . param_count = buf . get_u16_le () ; __struct . param_index = buf . get_u16_le () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value) ; __tmp . put_u16_le (self . param_count) ; __tmp . put_u16_le (self . param_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HEARTBEAT_DATA { pub custom_mode : u32 , pub mavtype : MavType , pub autopilot : MavAutopilot , pub base_mode : MavModeFlag , pub system_status : MavState , pub mavlink_version : u8 , } impl HEARTBEAT_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , mavtype : MavType :: DEFAULT , autopilot : MavAutopilot :: DEFAULT , base_mode : MavModeFlag :: DEFAULT , system_status : MavState :: DEFAULT , mavlink_version : 0_u8 , } ; } impl Default for HEARTBEAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HEARTBEAT_DATA { type Message = MavMessage ; const ID : u32 = 0u32 ; const NAME : & 'static str = "HEARTBEAT" ; const EXTRA_CRC : u8 = 50u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . autopilot = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavAutopilot" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . base_mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . system_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavState" , value : tmp as u32 }) ? ; __struct . mavlink_version = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . autopilot as u8) ; __tmp . put_u8 (self . base_mode . bits ()) ; __tmp . put_u8 (self . system_status as u8) ; __tmp . put_u8 (self . mavlink_version) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_INFORMATION_DATA { pub uid : u64 , pub time_boot_ms : u32 , pub firmware_version : u32 , pub hardware_version : u32 , pub roll_min : f32 , pub roll_max : f32 , pub pitch_min : f32 , pub pitch_max : f32 , pub yaw_min : f32 , pub yaw_max : f32 , pub cap_flags : GimbalDeviceCapFlags , pub custom_cap_flags : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vendor_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub model_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub custom_name : [u8 ; 32] , } impl GIMBAL_DEVICE_INFORMATION_DATA { pub const ENCODED_LEN : usize = 144usize ; pub const DEFAULT : Self = Self { uid : 0_u64 , time_boot_ms : 0_u32 , firmware_version : 0_u32 , hardware_version : 0_u32 , roll_min : 0.0_f32 , roll_max : 0.0_f32 , pitch_min : 0.0_f32 , pitch_max : 0.0_f32 , yaw_min : 0.0_f32 , yaw_max : 0.0_f32 , cap_flags : GimbalDeviceCapFlags :: DEFAULT , custom_cap_flags : 0_u16 , vendor_name : [0_u8 ; 32usize] , model_name : [0_u8 ; 32usize] , custom_name : [0_u8 ; 32usize] , } ; } impl Default for GIMBAL_DEVICE_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 283u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_INFORMATION" ; const EXTRA_CRC : u8 = 74u8 ; const ENCODED_LEN : usize = 144usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . uid = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . firmware_version = buf . get_u32_le () ; __struct . hardware_version = buf . get_u32_le () ; __struct . roll_min = buf . get_f32_le () ; __struct . roll_max = buf . get_f32_le () ; __struct . pitch_min = buf . get_f32_le () ; __struct . pitch_max = buf . get_f32_le () ; __struct . yaw_min = buf . get_f32_le () ; __struct . yaw_max = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . cap_flags = GimbalDeviceCapFlags :: from_bits (tmp & GimbalDeviceCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceCapFlags" , value : tmp as u32 }) ? ; __struct . custom_cap_flags = buf . get_u16_le () ; for v in & mut __struct . vendor_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . model_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . custom_name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . uid) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . firmware_version) ; __tmp . put_u32_le (self . hardware_version) ; __tmp . put_f32_le (self . roll_min) ; __tmp . put_f32_le (self . roll_max) ; __tmp . put_f32_le (self . pitch_min) ; __tmp . put_f32_le (self . pitch_max) ; __tmp . put_f32_le (self . yaw_min) ; __tmp . put_f32_le (self . yaw_max) ; __tmp . put_u16_le (self . cap_flags . bits ()) ; __tmp . put_u16_le (self . custom_cap_flags) ; for val in & self . vendor_name { __tmp . put_u8 (* val) ; } for val in & self . model_name { __tmp . put_u8 (* val) ; } for val in & self . custom_name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_DATA { pub time_boot_ms : u32 , pub value : f32 , pub ind : u8 , } impl DEBUG_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0.0_f32 , ind : 0_u8 , } ; } impl Default for DEBUG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_DATA { type Message = MavMessage ; const ID : u32 = 254u32 ; const NAME : & 'static str = "DEBUG" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_f32_le () ; __struct . ind = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . value) ; __tmp . put_u8 (self . ind) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MOUNT_ORIENTATION_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl MOUNT_ORIENTATION_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for MOUNT_ORIENTATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MOUNT_ORIENTATION_DATA { type Message = MavMessage ; const ID : u32 = 265u32 ; const NAME : & 'static str = "MOUNT_ORIENTATION" ; const EXTRA_CRC : u8 = 26u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_DATA { pub time_boot_ms : u32 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub chan9_raw : u16 , pub chan10_raw : u16 , pub chan11_raw : u16 , pub chan12_raw : u16 , pub chan13_raw : u16 , pub chan14_raw : u16 , pub chan15_raw : u16 , pub chan16_raw : u16 , pub chan17_raw : u16 , pub chan18_raw : u16 , pub chancount : u8 , pub rssi : u8 , } impl RC_CHANNELS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , chan9_raw : 0_u16 , chan10_raw : 0_u16 , chan11_raw : 0_u16 , chan12_raw : 0_u16 , chan13_raw : 0_u16 , chan14_raw : 0_u16 , chan15_raw : 0_u16 , chan16_raw : 0_u16 , chan17_raw : 0_u16 , chan18_raw : 0_u16 , chancount : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_DATA { type Message = MavMessage ; const ID : u32 = 65u32 ; const NAME : & 'static str = "RC_CHANNELS" ; const EXTRA_CRC : u8 = 118u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . chan9_raw = buf . get_u16_le () ; __struct . chan10_raw = buf . get_u16_le () ; __struct . chan11_raw = buf . get_u16_le () ; __struct . chan12_raw = buf . get_u16_le () ; __struct . chan13_raw = buf . get_u16_le () ; __struct . chan14_raw = buf . get_u16_le () ; __struct . chan15_raw = buf . get_u16_le () ; __struct . chan16_raw = buf . get_u16_le () ; __struct . chan17_raw = buf . get_u16_le () ; __struct . chan18_raw = buf . get_u16_le () ; __struct . chancount = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u16_le (self . chan9_raw) ; __tmp . put_u16_le (self . chan10_raw) ; __tmp . put_u16_le (self . chan11_raw) ; __tmp . put_u16_le (self . chan12_raw) ; __tmp . put_u16_le (self . chan13_raw) ; __tmp . put_u16_le (self . chan14_raw) ; __tmp . put_u16_le (self . chan15_raw) ; __tmp . put_u16_le (self . chan16_raw) ; __tmp . put_u16_le (self . chan17_raw) ; __tmp . put_u16_le (self . chan18_raw) ; __tmp . put_u8 (self . chancount) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VICON_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl VICON_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for VICON_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VICON_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 104u32 ; const NAME : & 'static str = "VICON_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 56u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_CAPTURE_STATUS_DATA { pub time_boot_ms : u32 , pub image_interval : f32 , pub recording_time_ms : u32 , pub available_capacity : f32 , pub image_status : u8 , pub video_status : u8 , } impl CAMERA_CAPTURE_STATUS_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , image_interval : 0.0_f32 , recording_time_ms : 0_u32 , available_capacity : 0.0_f32 , image_status : 0_u8 , video_status : 0_u8 , } ; } impl Default for CAMERA_CAPTURE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_CAPTURE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 262u32 ; const NAME : & 'static str = "CAMERA_CAPTURE_STATUS" ; const EXTRA_CRC : u8 = 12u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . image_interval = buf . get_f32_le () ; __struct . recording_time_ms = buf . get_u32_le () ; __struct . available_capacity = buf . get_f32_le () ; __struct . image_status = buf . get_u8 () ; __struct . video_status = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . image_interval) ; __tmp . put_u32_le (self . recording_time_ms) ; __tmp . put_f32_le (self . available_capacity) ; __tmp . put_u8 (self . image_status) ; __tmp . put_u8 (self . video_status) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CONTROL_SYSTEM_STATE_DATA { pub time_usec : u64 , pub x_acc : f32 , pub y_acc : f32 , pub z_acc : f32 , pub x_vel : f32 , pub y_vel : f32 , pub z_vel : f32 , pub x_pos : f32 , pub y_pos : f32 , pub z_pos : f32 , pub airspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_variance : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_variance : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub roll_rate : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , } impl CONTROL_SYSTEM_STATE_DATA { pub const ENCODED_LEN : usize = 100usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x_acc : 0.0_f32 , y_acc : 0.0_f32 , z_acc : 0.0_f32 , x_vel : 0.0_f32 , y_vel : 0.0_f32 , z_vel : 0.0_f32 , x_pos : 0.0_f32 , y_pos : 0.0_f32 , z_pos : 0.0_f32 , airspeed : 0.0_f32 , vel_variance : [0.0_f32 ; 3usize] , pos_variance : [0.0_f32 ; 3usize] , q : [0.0_f32 ; 4usize] , roll_rate : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , } ; } impl Default for CONTROL_SYSTEM_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CONTROL_SYSTEM_STATE_DATA { type Message = MavMessage ; const ID : u32 = 146u32 ; const NAME : & 'static str = "CONTROL_SYSTEM_STATE" ; const EXTRA_CRC : u8 = 103u8 ; const ENCODED_LEN : usize = 100usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x_acc = buf . get_f32_le () ; __struct . y_acc = buf . get_f32_le () ; __struct . z_acc = buf . get_f32_le () ; __struct . x_vel = buf . get_f32_le () ; __struct . y_vel = buf . get_f32_le () ; __struct . z_vel = buf . get_f32_le () ; __struct . x_pos = buf . get_f32_le () ; __struct . y_pos = buf . get_f32_le () ; __struct . z_pos = buf . get_f32_le () ; __struct . airspeed = buf . get_f32_le () ; for v in & mut __struct . vel_variance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_variance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . roll_rate = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x_acc) ; __tmp . put_f32_le (self . y_acc) ; __tmp . put_f32_le (self . z_acc) ; __tmp . put_f32_le (self . x_vel) ; __tmp . put_f32_le (self . y_vel) ; __tmp . put_f32_le (self . z_vel) ; __tmp . put_f32_le (self . x_pos) ; __tmp . put_f32_le (self . y_pos) ; __tmp . put_f32_le (self . z_pos) ; __tmp . put_f32_le (self . airspeed) ; for val in & self . vel_variance { __tmp . put_f32_le (* val) ; } for val in & self . pos_variance { __tmp . put_f32_le (* val) ; } for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . roll_rate) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_SETTINGS_DATA { pub time_boot_ms : u32 , pub mode_id : CameraMode , } impl CAMERA_SETTINGS_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , mode_id : CameraMode :: DEFAULT , } ; } impl Default for CAMERA_SETTINGS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_SETTINGS_DATA { type Message = MavMessage ; const ID : u32 = 260u32 ; const NAME : & 'static str = "CAMERA_SETTINGS" ; const EXTRA_CRC : u8 = 146u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . mode_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraMode" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u8 (self . mode_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SERIAL_CONTROL_DATA { pub baudrate : u32 , pub timeout : u16 , pub device : SerialControlDev , pub flags : SerialControlFlag , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 70] , } impl SERIAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 79usize ; pub const DEFAULT : Self = Self { baudrate : 0_u32 , timeout : 0_u16 , device : SerialControlDev :: DEFAULT , flags : SerialControlFlag :: DEFAULT , count : 0_u8 , data : [0_u8 ; 70usize] , } ; } impl Default for SERIAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SERIAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 126u32 ; const NAME : & 'static str = "SERIAL_CONTROL" ; const EXTRA_CRC : u8 = 220u8 ; const ENCODED_LEN : usize = 79usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . baudrate = buf . get_u32_le () ; __struct . timeout = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . device = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "SerialControlDev" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = SerialControlFlag :: from_bits (tmp & SerialControlFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "SerialControlFlag" , value : tmp as u32 }) ? ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . baudrate) ; __tmp . put_u16_le (self . timeout) ; __tmp . put_u8 (self . device as u8) ; __tmp . put_u8 (self . flags . bits ()) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAN_FILTER_MODIFY_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub ids : [u16 ; 16] , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub operation : CanFilterOp , pub num_ids : u8 , } impl CAN_FILTER_MODIFY_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { ids : [0_u16 ; 16usize] , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , operation : CanFilterOp :: DEFAULT , num_ids : 0_u8 , } ; } impl Default for CAN_FILTER_MODIFY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAN_FILTER_MODIFY_DATA { type Message = MavMessage ; const ID : u32 = 388u32 ; const NAME : & 'static str = "CAN_FILTER_MODIFY" ; const EXTRA_CRC : u8 = 8u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . ids { let val = buf . get_u16_le () ; * v = val ; } __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . operation = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CanFilterOp" , value : tmp as u32 }) ? ; __struct . num_ids = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . ids { __tmp . put_u16_le (* val) ; } __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . operation as u8) ; __tmp . put_u8 (self . num_ids) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_ACK_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , pub param_result : ParamAck , } impl PARAM_EXT_ACK_DATA { pub const ENCODED_LEN : usize = 146usize ; pub const DEFAULT : Self = Self { param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , param_result : ParamAck :: DEFAULT , } ; } impl Default for PARAM_EXT_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_ACK_DATA { type Message = MavMessage ; const ID : u32 = 324u32 ; const NAME : & 'static str = "PARAM_EXT_ACK" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 146usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . param_result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "ParamAck" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; __tmp . put_u8 (self . param_result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRACKING_IMAGE_STATUS_DATA { pub point_x : f32 , pub point_y : f32 , pub radius : f32 , pub rec_top_x : f32 , pub rec_top_y : f32 , pub rec_bottom_x : f32 , pub rec_bottom_y : f32 , pub tracking_status : CameraTrackingStatusFlags , pub tracking_mode : CameraTrackingMode , pub target_data : CameraTrackingTargetData , } impl CAMERA_TRACKING_IMAGE_STATUS_DATA { pub const ENCODED_LEN : usize = 31usize ; pub const DEFAULT : Self = Self { point_x : 0.0_f32 , point_y : 0.0_f32 , radius : 0.0_f32 , rec_top_x : 0.0_f32 , rec_top_y : 0.0_f32 , rec_bottom_x : 0.0_f32 , rec_bottom_y : 0.0_f32 , tracking_status : CameraTrackingStatusFlags :: DEFAULT , tracking_mode : CameraTrackingMode :: DEFAULT , target_data : CameraTrackingTargetData :: DEFAULT , } ; } impl Default for CAMERA_TRACKING_IMAGE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRACKING_IMAGE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 275u32 ; const NAME : & 'static str = "CAMERA_TRACKING_IMAGE_STATUS" ; const EXTRA_CRC : u8 = 126u8 ; const ENCODED_LEN : usize = 31usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . point_x = buf . get_f32_le () ; __struct . point_y = buf . get_f32_le () ; __struct . radius = buf . get_f32_le () ; __struct . rec_top_x = buf . get_f32_le () ; __struct . rec_top_y = buf . get_f32_le () ; __struct . rec_bottom_x = buf . get_f32_le () ; __struct . rec_bottom_y = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . tracking_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingStatusFlags" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . tracking_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingMode" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . target_data = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingTargetData" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . point_x) ; __tmp . put_f32_le (self . point_y) ; __tmp . put_f32_le (self . radius) ; __tmp . put_f32_le (self . rec_top_x) ; __tmp . put_f32_le (self . rec_top_y) ; __tmp . put_f32_le (self . rec_bottom_x) ; __tmp . put_f32_le (self . rec_bottom_y) ; __tmp . put_u8 (self . tracking_status as u8) ; __tmp . put_u8 (self . tracking_mode as u8) ; __tmp . put_u8 (self . target_data as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_CANCEL_DATA { pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , } impl COMMAND_CANCEL_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for COMMAND_CANCEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_CANCEL_DATA { type Message = MavMessage ; const ID : u32 = 80u32 ; const NAME : & 'static str = "COMMAND_CANCEL" ; const EXTRA_CRC : u8 = 14u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_MAG_OFFSETS_DATA { pub mag_ofs_x : i16 , pub mag_ofs_y : i16 , pub mag_ofs_z : i16 , pub target_system : u8 , pub target_component : u8 , } impl SET_MAG_OFFSETS_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { mag_ofs_x : 0_i16 , mag_ofs_y : 0_i16 , mag_ofs_z : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SET_MAG_OFFSETS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_MAG_OFFSETS_DATA { type Message = MavMessage ; const ID : u32 = 151u32 ; const NAME : & 'static str = "SET_MAG_OFFSETS" ; const EXTRA_CRC : u8 = 219u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mag_ofs_x = buf . get_i16_le () ; __struct . mag_ofs_y = buf . get_i16_le () ; __struct . mag_ofs_z = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . mag_ofs_x) ; __tmp . put_i16_le (self . mag_ofs_y) ; __tmp . put_i16_le (self . mag_ofs_z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ADSB_VEHICLE_DATA { pub ICAO_address : u32 , pub lat : i32 , pub lon : i32 , pub altitude : i32 , pub heading : u16 , pub hor_velocity : u16 , pub ver_velocity : i16 , pub flags : AdsbFlags , pub squawk : u16 , pub altitude_type : AdsbAltitudeType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 9] , pub emitter_type : AdsbEmitterType , pub tslc : u8 , } impl ADSB_VEHICLE_DATA { pub const ENCODED_LEN : usize = 38usize ; pub const DEFAULT : Self = Self { ICAO_address : 0_u32 , lat : 0_i32 , lon : 0_i32 , altitude : 0_i32 , heading : 0_u16 , hor_velocity : 0_u16 , ver_velocity : 0_i16 , flags : AdsbFlags :: DEFAULT , squawk : 0_u16 , altitude_type : AdsbAltitudeType :: DEFAULT , callsign : [0_u8 ; 9usize] , emitter_type : AdsbEmitterType :: DEFAULT , tslc : 0_u8 , } ; } impl Default for ADSB_VEHICLE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ADSB_VEHICLE_DATA { type Message = MavMessage ; const ID : u32 = 246u32 ; const NAME : & 'static str = "ADSB_VEHICLE" ; const EXTRA_CRC : u8 = 184u8 ; const ENCODED_LEN : usize = 38usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ICAO_address = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . heading = buf . get_u16_le () ; __struct . hor_velocity = buf . get_u16_le () ; __struct . ver_velocity = buf . get_i16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = AdsbFlags :: from_bits (tmp & AdsbFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AdsbFlags" , value : tmp as u32 }) ? ; __struct . squawk = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . altitude_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbAltitudeType" , value : tmp as u32 }) ? ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . emitter_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbEmitterType" , value : tmp as u32 }) ? ; __struct . tslc = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ICAO_address) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_u16_le (self . heading) ; __tmp . put_u16_le (self . hor_velocity) ; __tmp . put_i16_le (self . ver_velocity) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u16_le (self . squawk) ; __tmp . put_u8 (self . altitude_type as u8) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . emitter_type as u8) ; __tmp . put_u8 (self . tslc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DIGICAM_CONTROL_DATA { pub extra_value : f32 , pub target_system : u8 , pub target_component : u8 , pub session : u8 , pub zoom_pos : u8 , pub zoom_step : i8 , pub focus_lock : u8 , pub shot : u8 , pub command_id : u8 , pub extra_param : u8 , } impl DIGICAM_CONTROL_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { extra_value : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , session : 0_u8 , zoom_pos : 0_u8 , zoom_step : 0_i8 , focus_lock : 0_u8 , shot : 0_u8 , command_id : 0_u8 , extra_param : 0_u8 , } ; } impl Default for DIGICAM_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DIGICAM_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 155u32 ; const NAME : & 'static str = "DIGICAM_CONTROL" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . extra_value = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . session = buf . get_u8 () ; __struct . zoom_pos = buf . get_u8 () ; __struct . zoom_step = buf . get_i8 () ; __struct . focus_lock = buf . get_u8 () ; __struct . shot = buf . get_u8 () ; __struct . command_id = buf . get_u8 () ; __struct . extra_param = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . extra_value) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . session) ; __tmp . put_u8 (self . zoom_pos) ; __tmp . put_i8 (self . zoom_step) ; __tmp . put_u8 (self . focus_lock) ; __tmp . put_u8 (self . shot) ; __tmp . put_u8 (self . command_id) ; __tmp . put_u8 (self . extra_param) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS2_RAW_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub dgps_age : u32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub cog : u16 , pub fix_type : GpsFixType , pub satellites_visible : u8 , pub dgps_numch : u8 , } impl GPS2_RAW_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , dgps_age : 0_u32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , cog : 0_u16 , fix_type : GpsFixType :: DEFAULT , satellites_visible : 0_u8 , dgps_numch : 0_u8 , } ; } impl Default for GPS2_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS2_RAW_DATA { type Message = MavMessage ; const ID : u32 = 124u32 ; const NAME : & 'static str = "GPS2_RAW" ; const EXTRA_CRC : u8 = 87u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . dgps_age = buf . get_u32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . cog = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . satellites_visible = buf . get_u8 () ; __struct . dgps_numch = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u32_le (self . dgps_age) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type as u8) ; __tmp . put_u8 (self . satellites_visible) ; __tmp . put_u8 (self . dgps_numch) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_LOCATION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude_barometric : f32 , pub altitude_geodetic : f32 , pub height : f32 , pub timestamp : f32 , pub direction : u16 , pub speed_horizontal : u16 , pub speed_vertical : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub status : MavOdidStatus , pub height_reference : MavOdidHeightRef , pub horizontal_accuracy : MavOdidHorAcc , pub vertical_accuracy : MavOdidVerAcc , pub barometer_accuracy : MavOdidVerAcc , pub speed_accuracy : MavOdidSpeedAcc , pub timestamp_accuracy : MavOdidTimeAcc , } impl OPEN_DRONE_ID_LOCATION_DATA { pub const ENCODED_LEN : usize = 59usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude_barometric : 0.0_f32 , altitude_geodetic : 0.0_f32 , height : 0.0_f32 , timestamp : 0.0_f32 , direction : 0_u16 , speed_horizontal : 0_u16 , speed_vertical : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , status : MavOdidStatus :: DEFAULT , height_reference : MavOdidHeightRef :: DEFAULT , horizontal_accuracy : MavOdidHorAcc :: DEFAULT , vertical_accuracy : MavOdidVerAcc :: DEFAULT , barometer_accuracy : MavOdidVerAcc :: DEFAULT , speed_accuracy : MavOdidSpeedAcc :: DEFAULT , timestamp_accuracy : MavOdidTimeAcc :: DEFAULT , } ; } impl Default for OPEN_DRONE_ID_LOCATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_LOCATION_DATA { type Message = MavMessage ; const ID : u32 = 12901u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_LOCATION" ; const EXTRA_CRC : u8 = 254u8 ; const ENCODED_LEN : usize = 59usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude_barometric = buf . get_f32_le () ; __struct . altitude_geodetic = buf . get_f32_le () ; __struct . height = buf . get_f32_le () ; __struct . timestamp = buf . get_f32_le () ; __struct . direction = buf . get_u16_le () ; __struct . speed_horizontal = buf . get_u16_le () ; __struct . speed_vertical = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . height_reference = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidHeightRef" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . horizontal_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidHorAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . vertical_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidVerAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . barometer_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidVerAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . speed_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidSpeedAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . timestamp_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidTimeAcc" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_f32_le (self . altitude_barometric) ; __tmp . put_f32_le (self . altitude_geodetic) ; __tmp . put_f32_le (self . height) ; __tmp . put_f32_le (self . timestamp) ; __tmp . put_u16_le (self . direction) ; __tmp . put_u16_le (self . speed_horizontal) ; __tmp . put_i16_le (self . speed_vertical) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . height_reference as u8) ; __tmp . put_u8 (self . horizontal_accuracy as u8) ; __tmp . put_u8 (self . vertical_accuracy as u8) ; __tmp . put_u8 (self . barometer_accuracy as u8) ; __tmp . put_u8 (self . speed_accuracy as u8) ; __tmp . put_u8 (self . timestamp_accuracy as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REQUEST_EVENT_DATA { pub first_sequence : u16 , pub last_sequence : u16 , pub target_system : u8 , pub target_component : u8 , } impl REQUEST_EVENT_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { first_sequence : 0_u16 , last_sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for REQUEST_EVENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REQUEST_EVENT_DATA { type Message = MavMessage ; const ID : u32 = 412u32 ; const NAME : & 'static str = "REQUEST_EVENT" ; const EXTRA_CRC : u8 = 33u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . first_sequence = buf . get_u16_le () ; __struct . last_sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . first_sequence) ; __tmp . put_u16_le (self . last_sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_STATUS_DATA { pub time_usec : u64 , pub p1 : f32 , pub p2 : f32 , pub p3 : f32 , pub p4 : f32 , pub img_idx : u16 , pub target_system : u8 , pub cam_idx : u8 , pub event_id : CameraStatusTypes , } impl CAMERA_STATUS_DATA { pub const ENCODED_LEN : usize = 29usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , p1 : 0.0_f32 , p2 : 0.0_f32 , p3 : 0.0_f32 , p4 : 0.0_f32 , img_idx : 0_u16 , target_system : 0_u8 , cam_idx : 0_u8 , event_id : CameraStatusTypes :: DEFAULT , } ; } impl Default for CAMERA_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 179u32 ; const NAME : & 'static str = "CAMERA_STATUS" ; const EXTRA_CRC : u8 = 189u8 ; const ENCODED_LEN : usize = 29usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . p1 = buf . get_f32_le () ; __struct . p2 = buf . get_f32_le () ; __struct . p3 = buf . get_f32_le () ; __struct . p4 = buf . get_f32_le () ; __struct . img_idx = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . cam_idx = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . event_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraStatusTypes" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . p1) ; __tmp . put_f32_le (self . p2) ; __tmp . put_f32_le (self . p3) ; __tmp . put_f32_le (self . p4) ; __tmp . put_u16_le (self . img_idx) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . cam_idx) ; __tmp . put_u8 (self . event_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HYGROMETER_SENSOR_DATA { pub temperature : i16 , pub humidity : u16 , pub id : u8 , } impl HYGROMETER_SENSOR_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { temperature : 0_i16 , humidity : 0_u16 , id : 0_u8 , } ; } impl Default for HYGROMETER_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HYGROMETER_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 12920u32 ; const NAME : & 'static str = "HYGROMETER_SENSOR" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . temperature = buf . get_i16_le () ; __struct . humidity = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u16_le (self . humidity) ; __tmp . put_u8 (self . id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct STORAGE_INFORMATION_DATA { pub time_boot_ms : u32 , pub total_capacity : f32 , pub used_capacity : f32 , pub available_capacity : f32 , pub read_speed : f32 , pub write_speed : f32 , pub storage_id : u8 , pub storage_count : u8 , pub status : StorageStatus , } impl STORAGE_INFORMATION_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , total_capacity : 0.0_f32 , used_capacity : 0.0_f32 , available_capacity : 0.0_f32 , read_speed : 0.0_f32 , write_speed : 0.0_f32 , storage_id : 0_u8 , storage_count : 0_u8 , status : StorageStatus :: DEFAULT , } ; } impl Default for STORAGE_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for STORAGE_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 261u32 ; const NAME : & 'static str = "STORAGE_INFORMATION" ; const EXTRA_CRC : u8 = 179u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . total_capacity = buf . get_f32_le () ; __struct . used_capacity = buf . get_f32_le () ; __struct . available_capacity = buf . get_f32_le () ; __struct . read_speed = buf . get_f32_le () ; __struct . write_speed = buf . get_f32_le () ; __struct . storage_id = buf . get_u8 () ; __struct . storage_count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "StorageStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . total_capacity) ; __tmp . put_f32_le (self . used_capacity) ; __tmp . put_f32_le (self . available_capacity) ; __tmp . put_f32_le (self . read_speed) ; __tmp . put_f32_le (self . write_speed) ; __tmp . put_u8 (self . storage_id) ; __tmp . put_u8 (self . storage_count) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ACK_DATA { pub target_system : u8 , pub target_component : u8 , pub mavtype : MavMissionResult , } impl MISSION_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , mavtype : MavMissionResult :: DEFAULT , } ; } impl Default for MISSION_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ACK_DATA { type Message = MavMessage ; const ID : u32 = 47u32 ; const NAME : & 'static str = "MISSION_ACK" ; const EXTRA_CRC : u8 = 153u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMissionResult" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . mavtype as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_ACK_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOGGING_ACK_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOGGING_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_ACK_DATA { type Message = MavMessage ; const ID : u32 = 268u32 ; const NAME : & 'static str = "LOGGING_ACK" ; const EXTRA_CRC : u8 = 14u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MEMINFO_DATA { pub brkval : u16 , pub freemem : u16 , } impl MEMINFO_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { brkval : 0_u16 , freemem : 0_u16 , } ; } impl Default for MEMINFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MEMINFO_DATA { type Message = MavMessage ; const ID : u32 = 152u32 ; const NAME : & 'static str = "MEMINFO" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . brkval = buf . get_u16_le () ; __struct . freemem = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . brkval) ; __tmp . put_u16_le (self . freemem) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEVICE_OP_READ_DATA { pub request_id : u32 , pub target_system : u8 , pub target_component : u8 , pub bustype : DeviceOpBustype , pub bus : u8 , pub address : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub busname : [u8 ; 40] , pub regstart : u8 , pub count : u8 , } impl DEVICE_OP_READ_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bustype : DeviceOpBustype :: DEFAULT , bus : 0_u8 , address : 0_u8 , busname : [0_u8 ; 40usize] , regstart : 0_u8 , count : 0_u8 , } ; } impl Default for DEVICE_OP_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEVICE_OP_READ_DATA { type Message = MavMessage ; const ID : u32 = 11000u32 ; const NAME : & 'static str = "DEVICE_OP_READ" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . bustype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "DeviceOpBustype" , value : tmp as u32 }) ? ; __struct . bus = buf . get_u8 () ; __struct . address = buf . get_u8 () ; for v in & mut __struct . busname { let val = buf . get_u8 () ; * v = val ; } __struct . regstart = buf . get_u8 () ; __struct . count = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bustype as u8) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . address) ; for val in & self . busname { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . regstart) ; __tmp . put_u8 (self . count) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_POSITION_DELTA_DATA { pub time_usec : u64 , pub time_delta_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub angle_delta : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub position_delta : [f32 ; 3] , pub confidence : f32 , } impl VISION_POSITION_DELTA_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , time_delta_usec : 0_u64 , angle_delta : [0.0_f32 ; 3usize] , position_delta : [0.0_f32 ; 3usize] , confidence : 0.0_f32 , } ; } impl Default for VISION_POSITION_DELTA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_POSITION_DELTA_DATA { type Message = MavMessage ; const ID : u32 = 11011u32 ; const NAME : & 'static str = "VISION_POSITION_DELTA" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . time_delta_usec = buf . get_u64_le () ; for v in & mut __struct . angle_delta { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . position_delta { let val = buf . get_f32_le () ; * v = val ; } __struct . confidence = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u64_le (self . time_delta_usec) ; for val in & self . angle_delta { __tmp . put_f32_le (* val) ; } for val in & self . position_delta { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . confidence) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESTIMATOR_STATUS_DATA { pub time_usec : u64 , pub vel_ratio : f32 , pub pos_horiz_ratio : f32 , pub pos_vert_ratio : f32 , pub mag_ratio : f32 , pub hagl_ratio : f32 , pub tas_ratio : f32 , pub pos_horiz_accuracy : f32 , pub pos_vert_accuracy : f32 , pub flags : EstimatorStatusFlags , } impl ESTIMATOR_STATUS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , vel_ratio : 0.0_f32 , pos_horiz_ratio : 0.0_f32 , pos_vert_ratio : 0.0_f32 , mag_ratio : 0.0_f32 , hagl_ratio : 0.0_f32 , tas_ratio : 0.0_f32 , pos_horiz_accuracy : 0.0_f32 , pos_vert_accuracy : 0.0_f32 , flags : EstimatorStatusFlags :: DEFAULT , } ; } impl Default for ESTIMATOR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESTIMATOR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 230u32 ; const NAME : & 'static str = "ESTIMATOR_STATUS" ; const EXTRA_CRC : u8 = 163u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . vel_ratio = buf . get_f32_le () ; __struct . pos_horiz_ratio = buf . get_f32_le () ; __struct . pos_vert_ratio = buf . get_f32_le () ; __struct . mag_ratio = buf . get_f32_le () ; __struct . hagl_ratio = buf . get_f32_le () ; __struct . tas_ratio = buf . get_f32_le () ; __struct . pos_horiz_accuracy = buf . get_f32_le () ; __struct . pos_vert_accuracy = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = EstimatorStatusFlags :: from_bits (tmp & EstimatorStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EstimatorStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . vel_ratio) ; __tmp . put_f32_le (self . pos_horiz_ratio) ; __tmp . put_f32_le (self . pos_vert_ratio) ; __tmp . put_f32_le (self . mag_ratio) ; __tmp . put_f32_le (self . hagl_ratio) ; __tmp . put_f32_le (self . tas_ratio) ; __tmp . put_f32_le (self . pos_horiz_accuracy) ; __tmp . put_f32_le (self . pos_vert_accuracy) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OSD_PARAM_SHOW_CONFIG_REPLY_DATA { pub request_id : u32 , pub min_value : f32 , pub max_value : f32 , pub increment : f32 , pub result : OsdParamConfigError , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub config_type : OsdParamConfigType , } impl OSD_PARAM_SHOW_CONFIG_REPLY_DATA { pub const ENCODED_LEN : usize = 34usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , min_value : 0.0_f32 , max_value : 0.0_f32 , increment : 0.0_f32 , result : OsdParamConfigError :: DEFAULT , param_id : [0_u8 ; 16usize] , config_type : OsdParamConfigType :: DEFAULT , } ; } impl Default for OSD_PARAM_SHOW_CONFIG_REPLY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OSD_PARAM_SHOW_CONFIG_REPLY_DATA { type Message = MavMessage ; const ID : u32 = 11036u32 ; const NAME : & 'static str = "OSD_PARAM_SHOW_CONFIG_REPLY" ; const EXTRA_CRC : u8 = 177u8 ; const ENCODED_LEN : usize = 34usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . min_value = buf . get_f32_le () ; __struct . max_value = buf . get_f32_le () ; __struct . increment = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "OsdParamConfigError" , value : tmp as u32 }) ? ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . config_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "OsdParamConfigType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_f32_le (self . min_value) ; __tmp . put_f32_le (self . max_value) ; __tmp . put_f32_le (self . increment) ; __tmp . put_u8 (self . result as u8) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . config_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MEMORY_VECT_DATA { pub address : u16 , pub ver : u8 , pub mavtype : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub value : [i8 ; 32] , } impl MEMORY_VECT_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { address : 0_u16 , ver : 0_u8 , mavtype : 0_u8 , value : [0_i8 ; 32usize] , } ; } impl Default for MEMORY_VECT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MEMORY_VECT_DATA { type Message = MavMessage ; const ID : u32 = 249u32 ; const NAME : & 'static str = "MEMORY_VECT" ; const EXTRA_CRC : u8 = 204u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . address = buf . get_u16_le () ; __struct . ver = buf . get_u8 () ; __struct . mavtype = buf . get_u8 () ; for v in & mut __struct . value { let val = buf . get_i8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . address) ; __tmp . put_u8 (self . ver) ; __tmp . put_u8 (self . mavtype) ; for val in & self . value { __tmp . put_i8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EKF_STATUS_REPORT_DATA { pub velocity_variance : f32 , pub pos_horiz_variance : f32 , pub pos_vert_variance : f32 , pub compass_variance : f32 , pub terrain_alt_variance : f32 , pub flags : EkfStatusFlags , } impl EKF_STATUS_REPORT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { velocity_variance : 0.0_f32 , pos_horiz_variance : 0.0_f32 , pos_vert_variance : 0.0_f32 , compass_variance : 0.0_f32 , terrain_alt_variance : 0.0_f32 , flags : EkfStatusFlags :: DEFAULT , } ; } impl Default for EKF_STATUS_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EKF_STATUS_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 193u32 ; const NAME : & 'static str = "EKF_STATUS_REPORT" ; const EXTRA_CRC : u8 = 71u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . velocity_variance = buf . get_f32_le () ; __struct . pos_horiz_variance = buf . get_f32_le () ; __struct . pos_vert_variance = buf . get_f32_le () ; __struct . compass_variance = buf . get_f32_le () ; __struct . terrain_alt_variance = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = EkfStatusFlags :: from_bits (tmp & EkfStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EkfStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . velocity_variance) ; __tmp . put_f32_le (self . pos_horiz_variance) ; __tmp . put_f32_le (self . pos_vert_variance) ; __tmp . put_f32_le (self . compass_variance) ; __tmp . put_f32_le (self . terrain_alt_variance) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_SET_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , } impl PARAM_EXT_SET_DATA { pub const ENCODED_LEN : usize = 147usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , } ; } impl Default for PARAM_EXT_SET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_SET_DATA { type Message = MavMessage ; const ID : u32 = 323u32 ; const NAME : & 'static str = "PARAM_EXT_SET" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 147usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HWSTATUS_DATA { pub Vcc : u16 , pub I2Cerr : u8 , } impl HWSTATUS_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { Vcc : 0_u16 , I2Cerr : 0_u8 , } ; } impl Default for HWSTATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HWSTATUS_DATA { type Message = MavMessage ; const ID : u32 = 165u32 ; const NAME : & 'static str = "HWSTATUS" ; const EXTRA_CRC : u8 = 21u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . Vcc = buf . get_u16_le () ; __struct . I2Cerr = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . Vcc) ; __tmp . put_u8 (self . I2Cerr) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ICAROUS_KINEMATIC_BANDS_DATA { pub min1 : f32 , pub max1 : f32 , pub min2 : f32 , pub max2 : f32 , pub min3 : f32 , pub max3 : f32 , pub min4 : f32 , pub max4 : f32 , pub min5 : f32 , pub max5 : f32 , pub numBands : i8 , pub type1 : IcarousTrackBandTypes , pub type2 : IcarousTrackBandTypes , pub type3 : IcarousTrackBandTypes , pub type4 : IcarousTrackBandTypes , pub type5 : IcarousTrackBandTypes , } impl ICAROUS_KINEMATIC_BANDS_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { min1 : 0.0_f32 , max1 : 0.0_f32 , min2 : 0.0_f32 , max2 : 0.0_f32 , min3 : 0.0_f32 , max3 : 0.0_f32 , min4 : 0.0_f32 , max4 : 0.0_f32 , min5 : 0.0_f32 , max5 : 0.0_f32 , numBands : 0_i8 , type1 : IcarousTrackBandTypes :: DEFAULT , type2 : IcarousTrackBandTypes :: DEFAULT , type3 : IcarousTrackBandTypes :: DEFAULT , type4 : IcarousTrackBandTypes :: DEFAULT , type5 : IcarousTrackBandTypes :: DEFAULT , } ; } impl Default for ICAROUS_KINEMATIC_BANDS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ICAROUS_KINEMATIC_BANDS_DATA { type Message = MavMessage ; const ID : u32 = 42001u32 ; const NAME : & 'static str = "ICAROUS_KINEMATIC_BANDS" ; const EXTRA_CRC : u8 = 239u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . min1 = buf . get_f32_le () ; __struct . max1 = buf . get_f32_le () ; __struct . min2 = buf . get_f32_le () ; __struct . max2 = buf . get_f32_le () ; __struct . min3 = buf . get_f32_le () ; __struct . max3 = buf . get_f32_le () ; __struct . min4 = buf . get_f32_le () ; __struct . max4 = buf . get_f32_le () ; __struct . min5 = buf . get_f32_le () ; __struct . max5 = buf . get_f32_le () ; __struct . numBands = buf . get_i8 () ; let tmp = buf . get_u8 () ; __struct . type1 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type2 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type3 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type4 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type5 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . min1) ; __tmp . put_f32_le (self . max1) ; __tmp . put_f32_le (self . min2) ; __tmp . put_f32_le (self . max2) ; __tmp . put_f32_le (self . min3) ; __tmp . put_f32_le (self . max3) ; __tmp . put_f32_le (self . min4) ; __tmp . put_f32_le (self . max4) ; __tmp . put_f32_le (self . min5) ; __tmp . put_f32_le (self . max5) ; __tmp . put_i8 (self . numBands) ; __tmp . put_u8 (self . type1 as u8) ; __tmp . put_u8 (self . type2 as u8) ; __tmp . put_u8 (self . type3 as u8) ; __tmp . put_u8 (self . type4 as u8) ; __tmp . put_u8 (self . type5 as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OBSTACLE_DISTANCE_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub distances : [u16 ; 72] , pub min_distance : u16 , pub max_distance : u16 , pub sensor_type : MavDistanceSensor , pub increment : u8 , } impl OBSTACLE_DISTANCE_DATA { pub const ENCODED_LEN : usize = 158usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , distances : [0_u16 ; 72usize] , min_distance : 0_u16 , max_distance : 0_u16 , sensor_type : MavDistanceSensor :: DEFAULT , increment : 0_u8 , } ; } impl Default for OBSTACLE_DISTANCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OBSTACLE_DISTANCE_DATA { type Message = MavMessage ; const ID : u32 = 330u32 ; const NAME : & 'static str = "OBSTACLE_DISTANCE" ; const EXTRA_CRC : u8 = 23u8 ; const ENCODED_LEN : usize = 158usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . distances { let val = buf . get_u16_le () ; * v = val ; } __struct . min_distance = buf . get_u16_le () ; __struct . max_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . sensor_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; __struct . increment = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . distances { __tmp . put_u16_le (* val) ; } __tmp . put_u16_le (self . min_distance) ; __tmp . put_u16_le (self . max_distance) ; __tmp . put_u8 (self . sensor_type as u8) ; __tmp . put_u8 (self . increment) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AIS_VESSEL_DATA { pub MMSI : u32 , pub lat : i32 , pub lon : i32 , pub COG : u16 , pub heading : u16 , pub velocity : u16 , pub dimension_bow : u16 , pub dimension_stern : u16 , pub tslc : u16 , pub flags : AisFlags , pub turn_rate : i8 , pub navigational_status : AisNavStatus , pub mavtype : AisType , pub dimension_port : u8 , pub dimension_starboard : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 7] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 20] , } impl AIS_VESSEL_DATA { pub const ENCODED_LEN : usize = 58usize ; pub const DEFAULT : Self = Self { MMSI : 0_u32 , lat : 0_i32 , lon : 0_i32 , COG : 0_u16 , heading : 0_u16 , velocity : 0_u16 , dimension_bow : 0_u16 , dimension_stern : 0_u16 , tslc : 0_u16 , flags : AisFlags :: DEFAULT , turn_rate : 0_i8 , navigational_status : AisNavStatus :: DEFAULT , mavtype : AisType :: DEFAULT , dimension_port : 0_u8 , dimension_starboard : 0_u8 , callsign : [0_u8 ; 7usize] , name : [0_u8 ; 20usize] , } ; } impl Default for AIS_VESSEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AIS_VESSEL_DATA { type Message = MavMessage ; const ID : u32 = 301u32 ; const NAME : & 'static str = "AIS_VESSEL" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 58usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . MMSI = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . COG = buf . get_u16_le () ; __struct . heading = buf . get_u16_le () ; __struct . velocity = buf . get_u16_le () ; __struct . dimension_bow = buf . get_u16_le () ; __struct . dimension_stern = buf . get_u16_le () ; __struct . tslc = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = AisFlags :: from_bits (tmp & AisFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AisFlags" , value : tmp as u32 }) ? ; __struct . turn_rate = buf . get_i8 () ; let tmp = buf . get_u8 () ; __struct . navigational_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AisNavStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AisType" , value : tmp as u32 }) ? ; __struct . dimension_port = buf . get_u8 () ; __struct . dimension_starboard = buf . get_u8 () ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . MMSI) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . COG) ; __tmp . put_u16_le (self . heading) ; __tmp . put_u16_le (self . velocity) ; __tmp . put_u16_le (self . dimension_bow) ; __tmp . put_u16_le (self . dimension_stern) ; __tmp . put_u16_le (self . tslc) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_i8 (self . turn_rate) ; __tmp . put_u8 (self . navigational_status as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . dimension_port) ; __tmp . put_u8 (self . dimension_starboard) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GOPRO_GET_RESPONSE_DATA { pub cmd_id : GoproCommand , pub status : GoproRequestStatus , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub value : [u8 ; 4] , } impl GOPRO_GET_RESPONSE_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { cmd_id : GoproCommand :: DEFAULT , status : GoproRequestStatus :: DEFAULT , value : [0_u8 ; 4usize] , } ; } impl Default for GOPRO_GET_RESPONSE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GOPRO_GET_RESPONSE_DATA { type Message = MavMessage ; const ID : u32 = 217u32 ; const NAME : & 'static str = "GOPRO_GET_RESPONSE" ; const EXTRA_CRC : u8 = 202u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . cmd_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproCommand" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproRequestStatus" , value : tmp as u32 }) ? ; for v in & mut __struct . value { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . cmd_id as u8) ; __tmp . put_u8 (self . status as u8) ; for val in & self . value { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAN_FRAME_DATA { pub id : u32 , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 8] , } impl CAN_FRAME_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , len : 0_u8 , data : [0_u8 ; 8usize] , } ; } impl Default for CAN_FRAME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAN_FRAME_DATA { type Message = MavMessage ; const ID : u32 = 386u32 ; const NAME : & 'static str = "CAN_FRAME" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_VISION_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl GLOBAL_VISION_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for GLOBAL_VISION_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_VISION_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 101u32 ; const NAME : & 'static str = "GLOBAL_VISION_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 102u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPTICAL_FLOW_DATA { pub time_usec : u64 , pub flow_comp_m_x : f32 , pub flow_comp_m_y : f32 , pub ground_distance : f32 , pub flow_x : i16 , pub flow_y : i16 , pub sensor_id : u8 , pub quality : u8 , } impl OPTICAL_FLOW_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , flow_comp_m_x : 0.0_f32 , flow_comp_m_y : 0.0_f32 , ground_distance : 0.0_f32 , flow_x : 0_i16 , flow_y : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for OPTICAL_FLOW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPTICAL_FLOW_DATA { type Message = MavMessage ; const ID : u32 = 100u32 ; const NAME : & 'static str = "OPTICAL_FLOW" ; const EXTRA_CRC : u8 = 175u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . flow_comp_m_x = buf . get_f32_le () ; __struct . flow_comp_m_y = buf . get_f32_le () ; __struct . ground_distance = buf . get_f32_le () ; __struct . flow_x = buf . get_i16_le () ; __struct . flow_y = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . flow_comp_m_x) ; __tmp . put_f32_le (self . flow_comp_m_y) ; __tmp . put_f32_le (self . ground_distance) ; __tmp . put_i16_le (self . flow_x) ; __tmp . put_i16_le (self . flow_y) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SERVO_OUTPUT_RAW_DATA { pub time_usec : u32 , pub servo1_raw : u16 , pub servo2_raw : u16 , pub servo3_raw : u16 , pub servo4_raw : u16 , pub servo5_raw : u16 , pub servo6_raw : u16 , pub servo7_raw : u16 , pub servo8_raw : u16 , pub port : u8 , } impl SERVO_OUTPUT_RAW_DATA { pub const ENCODED_LEN : usize = 21usize ; pub const DEFAULT : Self = Self { time_usec : 0_u32 , servo1_raw : 0_u16 , servo2_raw : 0_u16 , servo3_raw : 0_u16 , servo4_raw : 0_u16 , servo5_raw : 0_u16 , servo6_raw : 0_u16 , servo7_raw : 0_u16 , servo8_raw : 0_u16 , port : 0_u8 , } ; } impl Default for SERVO_OUTPUT_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SERVO_OUTPUT_RAW_DATA { type Message = MavMessage ; const ID : u32 = 36u32 ; const NAME : & 'static str = "SERVO_OUTPUT_RAW" ; const EXTRA_CRC : u8 = 222u8 ; const ENCODED_LEN : usize = 21usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u32_le () ; __struct . servo1_raw = buf . get_u16_le () ; __struct . servo2_raw = buf . get_u16_le () ; __struct . servo3_raw = buf . get_u16_le () ; __struct . servo4_raw = buf . get_u16_le () ; __struct . servo5_raw = buf . get_u16_le () ; __struct . servo6_raw = buf . get_u16_le () ; __struct . servo7_raw = buf . get_u16_le () ; __struct . servo8_raw = buf . get_u16_le () ; __struct . port = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_usec) ; __tmp . put_u16_le (self . servo1_raw) ; __tmp . put_u16_le (self . servo2_raw) ; __tmp . put_u16_le (self . servo3_raw) ; __tmp . put_u16_le (self . servo4_raw) ; __tmp . put_u16_le (self . servo5_raw) ; __tmp . put_u16_le (self . servo6_raw) ; __tmp . put_u16_le (self . servo7_raw) ; __tmp . put_u16_le (self . servo8_raw) ; __tmp . put_u8 (self . port) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_ERASE_DATA { pub target_system : u8 , pub target_component : u8 , } impl LOG_ERASE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_ERASE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_ERASE_DATA { type Message = MavMessage ; const ID : u32 = 121u32 ; const NAME : & 'static str = "LOG_ERASE" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EVENT_DATA { pub id : u32 , pub event_time_boot_ms : u32 , pub sequence : u16 , pub destination_component : u8 , pub destination_system : u8 , pub log_levels : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub arguments : [u8 ; 40] , } impl EVENT_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { id : 0_u32 , event_time_boot_ms : 0_u32 , sequence : 0_u16 , destination_component : 0_u8 , destination_system : 0_u8 , log_levels : 0_u8 , arguments : [0_u8 ; 40usize] , } ; } impl Default for EVENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EVENT_DATA { type Message = MavMessage ; const ID : u32 = 410u32 ; const NAME : & 'static str = "EVENT" ; const EXTRA_CRC : u8 = 160u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . event_time_boot_ms = buf . get_u32_le () ; __struct . sequence = buf . get_u16_le () ; __struct . destination_component = buf . get_u8 () ; __struct . destination_system = buf . get_u8 () ; __struct . log_levels = buf . get_u8 () ; for v in & mut __struct . arguments { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u32_le (self . event_time_boot_ms) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . destination_component) ; __tmp . put_u8 (self . destination_system) ; __tmp . put_u8 (self . log_levels) ; for val in & self . arguments { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_VECT_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl DEBUG_VECT_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , name : [0_u8 ; 10usize] , } ; } impl Default for DEBUG_VECT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_VECT_DATA { type Message = MavMessage ; const ID : u32 = 250u32 ; const NAME : & 'static str = "DEBUG_VECT" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_IMU_DATA { pub time_usec : u64 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl RAW_IMU_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for RAW_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_IMU_DATA { type Message = MavMessage ; const ID : u32 = 27u32 ; const NAME : & 'static str = "RAW_IMU" ; const EXTRA_CRC : u8 = 144u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AHRS3_DATA { pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub altitude : f32 , pub lat : i32 , pub lng : i32 , pub v1 : f32 , pub v2 : f32 , pub v3 : f32 , pub v4 : f32 , } impl AHRS3_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , altitude : 0.0_f32 , lat : 0_i32 , lng : 0_i32 , v1 : 0.0_f32 , v2 : 0.0_f32 , v3 : 0.0_f32 , v4 : 0.0_f32 , } ; } impl Default for AHRS3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AHRS3_DATA { type Message = MavMessage ; const ID : u32 = 182u32 ; const NAME : & 'static str = "AHRS3" ; const EXTRA_CRC : u8 = 229u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . altitude = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lng = buf . get_i32_le () ; __struct . v1 = buf . get_f32_le () ; __struct . v2 = buf . get_f32_le () ; __struct . v3 = buf . get_f32_le () ; __struct . v4 = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . altitude) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lng) ; __tmp . put_f32_le (self . v1) ; __tmp . put_f32_le (self . v2) ; __tmp . put_f32_le (self . v3) ; __tmp . put_f32_le (self . v4) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ISBD_LINK_STATUS_DATA { pub timestamp : u64 , pub last_heartbeat : u64 , pub failed_sessions : u16 , pub successful_sessions : u16 , pub signal_quality : u8 , pub ring_pending : u8 , pub tx_session_pending : u8 , pub rx_session_pending : u8 , } impl ISBD_LINK_STATUS_DATA { pub const ENCODED_LEN : usize = 24usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , last_heartbeat : 0_u64 , failed_sessions : 0_u16 , successful_sessions : 0_u16 , signal_quality : 0_u8 , ring_pending : 0_u8 , tx_session_pending : 0_u8 , rx_session_pending : 0_u8 , } ; } impl Default for ISBD_LINK_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ISBD_LINK_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 335u32 ; const NAME : & 'static str = "ISBD_LINK_STATUS" ; const EXTRA_CRC : u8 = 225u8 ; const ENCODED_LEN : usize = 24usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . last_heartbeat = buf . get_u64_le () ; __struct . failed_sessions = buf . get_u16_le () ; __struct . successful_sessions = buf . get_u16_le () ; __struct . signal_quality = buf . get_u8 () ; __struct . ring_pending = buf . get_u8 () ; __struct . tx_session_pending = buf . get_u8 () ; __struct . rx_session_pending = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u64_le (self . last_heartbeat) ; __tmp . put_u16_le (self . failed_sessions) ; __tmp . put_u16_le (self . successful_sessions) ; __tmp . put_u8 (self . signal_quality) ; __tmp . put_u8 (self . ring_pending) ; __tmp . put_u8 (self . tx_session_pending) ; __tmp . put_u8 (self . rx_session_pending) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HERELINK_VIDEO_STREAM_INFORMATION_DATA { pub framerate : f32 , pub bitrate : u32 , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub camera_id : u8 , pub status : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 230] , } impl HERELINK_VIDEO_STREAM_INFORMATION_DATA { pub const ENCODED_LEN : usize = 246usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , camera_id : 0_u8 , status : 0_u8 , uri : [0_u8 ; 230usize] , } ; } impl Default for HERELINK_VIDEO_STREAM_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HERELINK_VIDEO_STREAM_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 50002u32 ; const NAME : & 'static str = "HERELINK_VIDEO_STREAM_INFORMATION" ; const EXTRA_CRC : u8 = 181u8 ; const ENCODED_LEN : usize = 246usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . camera_id = buf . get_u8 () ; __struct . status = buf . get_u8 () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u8 (self . camera_id) ; __tmp . put_u8 (self . status) ; for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_ACTUATOR_CONTROLS_DATA { pub time_usec : u64 , pub flags : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 16] , pub mode : MavModeFlag , } impl HIL_ACTUATOR_CONTROLS_DATA { pub const ENCODED_LEN : usize = 81usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , flags : 0_u64 , controls : [0.0_f32 ; 16usize] , mode : MavModeFlag :: DEFAULT , } ; } impl Default for HIL_ACTUATOR_CONTROLS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_ACTUATOR_CONTROLS_DATA { type Message = MavMessage ; const ID : u32 = 93u32 ; const NAME : & 'static str = "HIL_ACTUATOR_CONTROLS" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 81usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . flags = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u64_le (self . flags) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . mode . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ENCAPSULATED_DATA_DATA { pub seqnr : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 253] , } impl ENCAPSULATED_DATA_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { seqnr : 0_u16 , data : [0_u8 ; 253usize] , } ; } impl Default for ENCAPSULATED_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ENCAPSULATED_DATA_DATA { type Message = MavMessage ; const ID : u32 = 131u32 ; const NAME : & 'static str = "ENCAPSULATED_DATA" ; const EXTRA_CRC : u8 = 223u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seqnr = buf . get_u16_le () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seqnr) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVCAN_NODE_INFO_DATA { pub time_usec : u64 , pub uptime_sec : u32 , pub sw_vcs_commit : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 80] , pub hw_version_major : u8 , pub hw_version_minor : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub hw_unique_id : [u8 ; 16] , pub sw_version_major : u8 , pub sw_version_minor : u8 , } impl UAVCAN_NODE_INFO_DATA { pub const ENCODED_LEN : usize = 116usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime_sec : 0_u32 , sw_vcs_commit : 0_u32 , name : [0_u8 ; 80usize] , hw_version_major : 0_u8 , hw_version_minor : 0_u8 , hw_unique_id : [0_u8 ; 16usize] , sw_version_major : 0_u8 , sw_version_minor : 0_u8 , } ; } impl Default for UAVCAN_NODE_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVCAN_NODE_INFO_DATA { type Message = MavMessage ; const ID : u32 = 311u32 ; const NAME : & 'static str = "UAVCAN_NODE_INFO" ; const EXTRA_CRC : u8 = 95u8 ; const ENCODED_LEN : usize = 116usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime_sec = buf . get_u32_le () ; __struct . sw_vcs_commit = buf . get_u32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } __struct . hw_version_major = buf . get_u8 () ; __struct . hw_version_minor = buf . get_u8 () ; for v in & mut __struct . hw_unique_id { let val = buf . get_u8 () ; * v = val ; } __struct . sw_version_major = buf . get_u8 () ; __struct . sw_version_minor = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime_sec) ; __tmp . put_u32_le (self . sw_vcs_commit) ; for val in & self . name { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . hw_version_major) ; __tmp . put_u8 (self . hw_version_minor) ; for val in & self . hw_unique_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . sw_version_major) ; __tmp . put_u8 (self . sw_version_minor) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_STATE_QUATERNION_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub attitude_quaternion : [f32 ; 4] , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub ind_airspeed : u16 , pub true_airspeed : u16 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , } impl HIL_STATE_QUATERNION_DATA { pub const ENCODED_LEN : usize = 64usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , attitude_quaternion : [0.0_f32 ; 4usize] , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , ind_airspeed : 0_u16 , true_airspeed : 0_u16 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , } ; } impl Default for HIL_STATE_QUATERNION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_STATE_QUATERNION_DATA { type Message = MavMessage ; const ID : u32 = 115u32 ; const NAME : & 'static str = "HIL_STATE_QUATERNION" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 64usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . attitude_quaternion { let val = buf . get_f32_le () ; * v = val ; } __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . ind_airspeed = buf . get_u16_le () ; __struct . true_airspeed = buf . get_u16_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . attitude_quaternion { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . ind_airspeed) ; __tmp . put_u16_le (self . true_airspeed) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_DATA_ACKED_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , pub length : u8 , pub first_message_offset : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 249] , } impl LOGGING_DATA_ACKED_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , length : 0_u8 , first_message_offset : 0_u8 , data : [0_u8 ; 249usize] , } ; } impl Default for LOGGING_DATA_ACKED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_DATA_ACKED_DATA { type Message = MavMessage ; const ID : u32 = 267u32 ; const NAME : & 'static str = "LOGGING_DATA_ACKED" ; const EXTRA_CRC : u8 = 35u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . length = buf . get_u8 () ; __struct . first_message_offset = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . length) ; __tmp . put_u8 (self . first_message_offset) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FLIGHT_INFORMATION_DATA { pub arming_time_utc : u64 , pub takeoff_time_utc : u64 , pub flight_uuid : u64 , pub time_boot_ms : u32 , } impl FLIGHT_INFORMATION_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { arming_time_utc : 0_u64 , takeoff_time_utc : 0_u64 , flight_uuid : 0_u64 , time_boot_ms : 0_u32 , } ; } impl Default for FLIGHT_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FLIGHT_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 264u32 ; const NAME : & 'static str = "FLIGHT_INFORMATION" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . arming_time_utc = buf . get_u64_le () ; __struct . takeoff_time_utc = buf . get_u64_le () ; __struct . flight_uuid = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . arming_time_utc) ; __tmp . put_u64_le (self . takeoff_time_utc) ; __tmp . put_u64_le (self . flight_uuid) ; __tmp . put_u32_le (self . time_boot_ms) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEVICE_OP_READ_REPLY_DATA { pub request_id : u32 , pub result : u8 , pub regstart : u8 , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 128] , } impl DEVICE_OP_READ_REPLY_DATA { pub const ENCODED_LEN : usize = 135usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , result : 0_u8 , regstart : 0_u8 , count : 0_u8 , data : [0_u8 ; 128usize] , } ; } impl Default for DEVICE_OP_READ_REPLY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEVICE_OP_READ_REPLY_DATA { type Message = MavMessage ; const ID : u32 = 11001u32 ; const NAME : & 'static str = "DEVICE_OP_READ_REPLY" ; const EXTRA_CRC : u8 = 15u8 ; const ENCODED_LEN : usize = 135usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . result = buf . get_u8 () ; __struct . regstart = buf . get_u8 () ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_u8 (self . result) ; __tmp . put_u8 (self . regstart) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RAW_INT_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub cog : u16 , pub fix_type : GpsFixType , pub satellites_visible : u8 , } impl GPS_RAW_INT_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , cog : 0_u16 , fix_type : GpsFixType :: DEFAULT , satellites_visible : 0_u8 , } ; } impl Default for GPS_RAW_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RAW_INT_DATA { type Message = MavMessage ; const ID : u32 = 24u32 ; const NAME : & 'static str = "GPS_RAW_INT" ; const EXTRA_CRC : u8 = 24u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . cog = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type as u8) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub failure_flags : GimbalDeviceErrorFlags , pub flags : GimbalDeviceFlags , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , failure_flags : GimbalDeviceErrorFlags :: DEFAULT , flags : GimbalDeviceFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 285u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_ATTITUDE_STATUS" ; const EXTRA_CRC : u8 = 137u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . failure_flags = GimbalDeviceErrorFlags :: from_bits (tmp & GimbalDeviceErrorFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceErrorFlags" , value : tmp as u32 }) ? ; let tmp = buf . get_u16_le () ; __struct . flags = GimbalDeviceFlags :: from_bits (tmp & GimbalDeviceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u32_le (self . failure_flags . bits ()) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RPM_DATA { pub rpm1 : f32 , pub rpm2 : f32 , } impl RPM_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { rpm1 : 0.0_f32 , rpm2 : 0.0_f32 , } ; } impl Default for RPM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RPM_DATA { type Message = MavMessage ; const ID : u32 = 226u32 ; const NAME : & 'static str = "RPM" ; const EXTRA_CRC : u8 = 207u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . rpm1 = buf . get_f32_le () ; __struct . rpm2 = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . rpm1) ; __tmp . put_f32_le (self . rpm2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AOA_SSA_DATA { pub time_usec : u64 , pub AOA : f32 , pub SSA : f32 , } impl AOA_SSA_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , AOA : 0.0_f32 , SSA : 0.0_f32 , } ; } impl Default for AOA_SSA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AOA_SSA_DATA { type Message = MavMessage ; const ID : u32 = 11020u32 ; const NAME : & 'static str = "AOA_SSA" ; const EXTRA_CRC : u8 = 205u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . AOA = buf . get_f32_le () ; __struct . SSA = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . AOA) ; __tmp . put_f32_le (self . SSA) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_MESSAGE_PACK_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub single_message_size : u8 , pub msg_pack_size : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub messages : [u8 ; 225] , } impl OPEN_DRONE_ID_MESSAGE_PACK_DATA { pub const ENCODED_LEN : usize = 249usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , single_message_size : 0_u8 , msg_pack_size : 0_u8 , messages : [0_u8 ; 225usize] , } ; } impl Default for OPEN_DRONE_ID_MESSAGE_PACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_MESSAGE_PACK_DATA { type Message = MavMessage ; const ID : u32 = 12915u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_MESSAGE_PACK" ; const EXTRA_CRC : u8 = 94u8 ; const ENCODED_LEN : usize = 249usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } __struct . single_message_size = buf . get_u8 () ; __struct . msg_pack_size = buf . get_u8 () ; for v in & mut __struct . messages { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . single_message_size) ; __tmp . put_u8 (self . msg_pack_size) ; for val in & self . messages { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WATER_DEPTH_DATA { pub time_boot_ms : u32 , pub lat : i32 , pub lng : i32 , pub alt : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub distance : f32 , pub temperature : f32 , pub id : u8 , pub healthy : u8 , } impl WATER_DEPTH_DATA { pub const ENCODED_LEN : usize = 38usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat : 0_i32 , lng : 0_i32 , alt : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , distance : 0.0_f32 , temperature : 0.0_f32 , id : 0_u8 , healthy : 0_u8 , } ; } impl Default for WATER_DEPTH_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WATER_DEPTH_DATA { type Message = MavMessage ; const ID : u32 = 11038u32 ; const NAME : & 'static str = "WATER_DEPTH" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 38usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lng = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; __struct . id = buf . get_u8 () ; __struct . healthy = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lng) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . distance) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . healthy) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRACKING_GEO_STATUS_DATA { pub lat : i32 , pub lon : i32 , pub alt : f32 , pub h_acc : f32 , pub v_acc : f32 , pub vel_n : f32 , pub vel_e : f32 , pub vel_d : f32 , pub vel_acc : f32 , pub dist : f32 , pub hdg : f32 , pub hdg_acc : f32 , pub tracking_status : CameraTrackingStatusFlags , } impl CAMERA_TRACKING_GEO_STATUS_DATA { pub const ENCODED_LEN : usize = 49usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , h_acc : 0.0_f32 , v_acc : 0.0_f32 , vel_n : 0.0_f32 , vel_e : 0.0_f32 , vel_d : 0.0_f32 , vel_acc : 0.0_f32 , dist : 0.0_f32 , hdg : 0.0_f32 , hdg_acc : 0.0_f32 , tracking_status : CameraTrackingStatusFlags :: DEFAULT , } ; } impl Default for CAMERA_TRACKING_GEO_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRACKING_GEO_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 276u32 ; const NAME : & 'static str = "CAMERA_TRACKING_GEO_STATUS" ; const EXTRA_CRC : u8 = 18u8 ; const ENCODED_LEN : usize = 49usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . h_acc = buf . get_f32_le () ; __struct . v_acc = buf . get_f32_le () ; __struct . vel_n = buf . get_f32_le () ; __struct . vel_e = buf . get_f32_le () ; __struct . vel_d = buf . get_f32_le () ; __struct . vel_acc = buf . get_f32_le () ; __struct . dist = buf . get_f32_le () ; __struct . hdg = buf . get_f32_le () ; __struct . hdg_acc = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . tracking_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . h_acc) ; __tmp . put_f32_le (self . v_acc) ; __tmp . put_f32_le (self . vel_n) ; __tmp . put_f32_le (self . vel_e) ; __tmp . put_f32_le (self . vel_d) ; __tmp . put_f32_le (self . vel_acc) ; __tmp . put_f32_le (self . dist) ; __tmp . put_f32_le (self . hdg) ; __tmp . put_f32_le (self . hdg_acc) ; __tmp . put_u8 (self . tracking_status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_INFORMATION_DATA { pub time_boot_ms : u32 , pub firmware_version : u32 , pub focal_length : f32 , pub sensor_size_h : f32 , pub sensor_size_v : f32 , pub flags : CameraCapFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub cam_definition_version : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vendor_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub model_name : [u8 ; 32] , pub lens_id : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cam_definition_uri : [u8 ; 140] , } impl CAMERA_INFORMATION_DATA { pub const ENCODED_LEN : usize = 235usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , firmware_version : 0_u32 , focal_length : 0.0_f32 , sensor_size_h : 0.0_f32 , sensor_size_v : 0.0_f32 , flags : CameraCapFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , cam_definition_version : 0_u16 , vendor_name : [0_u8 ; 32usize] , model_name : [0_u8 ; 32usize] , lens_id : 0_u8 , cam_definition_uri : [0_u8 ; 140usize] , } ; } impl Default for CAMERA_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 259u32 ; const NAME : & 'static str = "CAMERA_INFORMATION" ; const EXTRA_CRC : u8 = 92u8 ; const ENCODED_LEN : usize = 235usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . firmware_version = buf . get_u32_le () ; __struct . focal_length = buf . get_f32_le () ; __struct . sensor_size_h = buf . get_f32_le () ; __struct . sensor_size_v = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . flags = CameraCapFlags :: from_bits (tmp & CameraCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "CameraCapFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . cam_definition_version = buf . get_u16_le () ; for v in & mut __struct . vendor_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . model_name { let val = buf . get_u8 () ; * v = val ; } __struct . lens_id = buf . get_u8 () ; for v in & mut __struct . cam_definition_uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . firmware_version) ; __tmp . put_f32_le (self . focal_length) ; __tmp . put_f32_le (self . sensor_size_h) ; __tmp . put_f32_le (self . sensor_size_v) ; __tmp . put_u32_le (self . flags . bits ()) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . cam_definition_version) ; for val in & self . vendor_name { __tmp . put_u8 (* val) ; } for val in & self . model_name { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . lens_id) ; for val in & self . cam_definition_uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BUTTON_CHANGE_DATA { pub time_boot_ms : u32 , pub last_change_ms : u32 , pub state : u8 , } impl BUTTON_CHANGE_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , last_change_ms : 0_u32 , state : 0_u8 , } ; } impl Default for BUTTON_CHANGE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BUTTON_CHANGE_DATA { type Message = MavMessage ; const ID : u32 = 257u32 ; const NAME : & 'static str = "BUTTON_CHANGE" ; const EXTRA_CRC : u8 = 131u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . last_change_ms = buf . get_u32_le () ; __struct . state = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . last_change_ms) ; __tmp . put_u8 (self . state) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_PRESSURE_DATA { pub time_usec : u64 , pub press_abs : i16 , pub press_diff1 : i16 , pub press_diff2 : i16 , pub temperature : i16 , } impl RAW_PRESSURE_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , press_abs : 0_i16 , press_diff1 : 0_i16 , press_diff2 : 0_i16 , temperature : 0_i16 , } ; } impl Default for RAW_PRESSURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_PRESSURE_DATA { type Message = MavMessage ; const ID : u32 = 28u32 ; const NAME : & 'static str = "RAW_PRESSURE" ; const EXTRA_CRC : u8 = 67u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . press_abs = buf . get_i16_le () ; __struct . press_diff1 = buf . get_i16_le () ; __struct . press_diff2 = buf . get_i16_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i16_le (self . press_abs) ; __tmp . put_i16_le (self . press_diff1) ; __tmp . put_i16_le (self . press_diff2) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGHRES_IMU_DATA { pub time_usec : u64 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub xmag : f32 , pub ymag : f32 , pub zmag : f32 , pub abs_pressure : f32 , pub diff_pressure : f32 , pub pressure_alt : f32 , pub temperature : f32 , pub fields_updated : HighresImuUpdatedFlags , } impl HIGHRES_IMU_DATA { pub const ENCODED_LEN : usize = 62usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , xmag : 0.0_f32 , ymag : 0.0_f32 , zmag : 0.0_f32 , abs_pressure : 0.0_f32 , diff_pressure : 0.0_f32 , pressure_alt : 0.0_f32 , temperature : 0.0_f32 , fields_updated : HighresImuUpdatedFlags :: DEFAULT , } ; } impl Default for HIGHRES_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGHRES_IMU_DATA { type Message = MavMessage ; const ID : u32 = 105u32 ; const NAME : & 'static str = "HIGHRES_IMU" ; const EXTRA_CRC : u8 = 93u8 ; const ENCODED_LEN : usize = 62usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . xmag = buf . get_f32_le () ; __struct . ymag = buf . get_f32_le () ; __struct . zmag = buf . get_f32_le () ; __struct . abs_pressure = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . pressure_alt = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . fields_updated = HighresImuUpdatedFlags :: from_bits (tmp & HighresImuUpdatedFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HighresImuUpdatedFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . xmag) ; __tmp . put_f32_le (self . ymag) ; __tmp . put_f32_le (self . zmag) ; __tmp . put_f32_le (self . abs_pressure) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . pressure_alt) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u16_le (self . fields_updated . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_MAP_RC_DATA { pub param_value0 : f32 , pub scale : f32 , pub param_value_min : f32 , pub param_value_max : f32 , pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub parameter_rc_channel_index : u8 , } impl PARAM_MAP_RC_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param_value0 : 0.0_f32 , scale : 0.0_f32 , param_value_min : 0.0_f32 , param_value_max : 0.0_f32 , param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , parameter_rc_channel_index : 0_u8 , } ; } impl Default for PARAM_MAP_RC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_MAP_RC_DATA { type Message = MavMessage ; const ID : u32 = 50u32 ; const NAME : & 'static str = "PARAM_MAP_RC" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value0 = buf . get_f32_le () ; __struct . scale = buf . get_f32_le () ; __struct . param_value_min = buf . get_f32_le () ; __struct . param_value_max = buf . get_f32_le () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } __struct . parameter_rc_channel_index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value0) ; __tmp . put_f32_le (self . scale) ; __tmp . put_f32_le (self . param_value_min) ; __tmp . put_f32_le (self . param_value_max) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . parameter_rc_channel_index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAMED_VALUE_INT_DATA { pub time_boot_ms : u32 , pub value : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl NAMED_VALUE_INT_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0_i32 , name : [0_u8 ; 10usize] , } ; } impl Default for NAMED_VALUE_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAMED_VALUE_INT_DATA { type Message = MavMessage ; const ID : u32 = 252u32 ; const NAME : & 'static str = "NAMED_VALUE_INT" ; const EXTRA_CRC : u8 = 44u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_i32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . value) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_REPORT_DATA { pub lat : i32 , pub lon : i32 , pub terrain_height : f32 , pub current_height : f32 , pub spacing : u16 , pub pending : u16 , pub loaded : u16 , } impl TERRAIN_REPORT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , terrain_height : 0.0_f32 , current_height : 0.0_f32 , spacing : 0_u16 , pending : 0_u16 , loaded : 0_u16 , } ; } impl Default for TERRAIN_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 136u32 ; const NAME : & 'static str = "TERRAIN_REPORT" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . terrain_height = buf . get_f32_le () ; __struct . current_height = buf . get_f32_le () ; __struct . spacing = buf . get_u16_le () ; __struct . pending = buf . get_u16_le () ; __struct . loaded = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . terrain_height) ; __tmp . put_f32_le (self . current_height) ; __tmp . put_u16_le (self . spacing) ; __tmp . put_u16_le (self . pending) ; __tmp . put_u16_le (self . loaded) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_SCALED_DATA { pub time_boot_ms : u32 , pub chan1_scaled : i16 , pub chan2_scaled : i16 , pub chan3_scaled : i16 , pub chan4_scaled : i16 , pub chan5_scaled : i16 , pub chan6_scaled : i16 , pub chan7_scaled : i16 , pub chan8_scaled : i16 , pub port : u8 , pub rssi : u8 , } impl RC_CHANNELS_SCALED_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_scaled : 0_i16 , chan2_scaled : 0_i16 , chan3_scaled : 0_i16 , chan4_scaled : 0_i16 , chan5_scaled : 0_i16 , chan6_scaled : 0_i16 , chan7_scaled : 0_i16 , chan8_scaled : 0_i16 , port : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_SCALED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_SCALED_DATA { type Message = MavMessage ; const ID : u32 = 34u32 ; const NAME : & 'static str = "RC_CHANNELS_SCALED" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_scaled = buf . get_i16_le () ; __struct . chan2_scaled = buf . get_i16_le () ; __struct . chan3_scaled = buf . get_i16_le () ; __struct . chan4_scaled = buf . get_i16_le () ; __struct . chan5_scaled = buf . get_i16_le () ; __struct . chan6_scaled = buf . get_i16_le () ; __struct . chan7_scaled = buf . get_i16_le () ; __struct . chan8_scaled = buf . get_i16_le () ; __struct . port = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . chan1_scaled) ; __tmp . put_i16_le (self . chan2_scaled) ; __tmp . put_i16_le (self . chan3_scaled) ; __tmp . put_i16_le (self . chan4_scaled) ; __tmp . put_i16_le (self . chan5_scaled) ; __tmp . put_i16_le (self . chan6_scaled) ; __tmp . put_i16_le (self . chan7_scaled) ; __tmp . put_i16_le (self . chan8_scaled) ; __tmp . put_u8 (self . port) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ORBIT_EXECUTION_STATUS_DATA { pub time_usec : u64 , pub radius : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub frame : MavFrame , } impl ORBIT_EXECUTION_STATUS_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , radius : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , frame : MavFrame :: DEFAULT , } ; } impl Default for ORBIT_EXECUTION_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ORBIT_EXECUTION_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 360u32 ; const NAME : & 'static str = "ORBIT_EXECUTION_STATUS" ; const EXTRA_CRC : u8 = 11u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . radius = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . radius) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU3_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU3_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU3_DATA { type Message = MavMessage ; const ID : u32 = 129u32 ; const NAME : & 'static str = "SCALED_IMU3" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SENSOR_OFFSETS_DATA { pub mag_declination : f32 , pub raw_press : i32 , pub raw_temp : i32 , pub gyro_cal_x : f32 , pub gyro_cal_y : f32 , pub gyro_cal_z : f32 , pub accel_cal_x : f32 , pub accel_cal_y : f32 , pub accel_cal_z : f32 , pub mag_ofs_x : i16 , pub mag_ofs_y : i16 , pub mag_ofs_z : i16 , } impl SENSOR_OFFSETS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { mag_declination : 0.0_f32 , raw_press : 0_i32 , raw_temp : 0_i32 , gyro_cal_x : 0.0_f32 , gyro_cal_y : 0.0_f32 , gyro_cal_z : 0.0_f32 , accel_cal_x : 0.0_f32 , accel_cal_y : 0.0_f32 , accel_cal_z : 0.0_f32 , mag_ofs_x : 0_i16 , mag_ofs_y : 0_i16 , mag_ofs_z : 0_i16 , } ; } impl Default for SENSOR_OFFSETS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SENSOR_OFFSETS_DATA { type Message = MavMessage ; const ID : u32 = 150u32 ; const NAME : & 'static str = "SENSOR_OFFSETS" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mag_declination = buf . get_f32_le () ; __struct . raw_press = buf . get_i32_le () ; __struct . raw_temp = buf . get_i32_le () ; __struct . gyro_cal_x = buf . get_f32_le () ; __struct . gyro_cal_y = buf . get_f32_le () ; __struct . gyro_cal_z = buf . get_f32_le () ; __struct . accel_cal_x = buf . get_f32_le () ; __struct . accel_cal_y = buf . get_f32_le () ; __struct . accel_cal_z = buf . get_f32_le () ; __struct . mag_ofs_x = buf . get_i16_le () ; __struct . mag_ofs_y = buf . get_i16_le () ; __struct . mag_ofs_z = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . mag_declination) ; __tmp . put_i32_le (self . raw_press) ; __tmp . put_i32_le (self . raw_temp) ; __tmp . put_f32_le (self . gyro_cal_x) ; __tmp . put_f32_le (self . gyro_cal_y) ; __tmp . put_f32_le (self . gyro_cal_z) ; __tmp . put_f32_le (self . accel_cal_x) ; __tmp . put_f32_le (self . accel_cal_y) ; __tmp . put_f32_le (self . accel_cal_z) ; __tmp . put_i16_le (self . mag_ofs_x) ; __tmp . put_i16_le (self . mag_ofs_y) ; __tmp . put_i16_le (self . mag_ofs_z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_OVERRIDE_DATA { pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub target_system : u8 , pub target_component : u8 , } impl RC_CHANNELS_OVERRIDE_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for RC_CHANNELS_OVERRIDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_OVERRIDE_DATA { type Message = MavMessage ; const ID : u32 = 70u32 ; const NAME : & 'static str = "RC_CHANNELS_OVERRIDE" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RADIO_DATA { pub rxerrors : u16 , pub fixed : u16 , pub rssi : u8 , pub remrssi : u8 , pub txbuf : u8 , pub noise : u8 , pub remnoise : u8 , } impl RADIO_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { rxerrors : 0_u16 , fixed : 0_u16 , rssi : 0_u8 , remrssi : 0_u8 , txbuf : 0_u8 , noise : 0_u8 , remnoise : 0_u8 , } ; } impl Default for RADIO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RADIO_DATA { type Message = MavMessage ; const ID : u32 = 166u32 ; const NAME : & 'static str = "RADIO" ; const EXTRA_CRC : u8 = 21u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . rxerrors = buf . get_u16_le () ; __struct . fixed = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; __struct . remrssi = buf . get_u8 () ; __struct . txbuf = buf . get_u8 () ; __struct . noise = buf . get_u8 () ; __struct . remnoise = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . rxerrors) ; __tmp . put_u16_le (self . fixed) ; __tmp . put_u8 (self . rssi) ; __tmp . put_u8 (self . remrssi) ; __tmp . put_u8 (self . txbuf) ; __tmp . put_u8 (self . noise) ; __tmp . put_u8 (self . remnoise) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POSITION_TARGET_GLOBAL_INT_DATA { pub time_boot_ms : u32 , pub lat_int : i32 , pub lon_int : i32 , pub alt : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub coordinate_frame : MavFrame , } impl POSITION_TARGET_GLOBAL_INT_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_int : 0_i32 , lon_int : 0_i32 , alt : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for POSITION_TARGET_GLOBAL_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POSITION_TARGET_GLOBAL_INT_DATA { type Message = MavMessage ; const ID : u32 = 87u32 ; const NAME : & 'static str = "POSITION_TARGET_GLOBAL_INT" ; const EXTRA_CRC : u8 = 150u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_int = buf . get_i32_le () ; __struct . lon_int = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_int) ; __tmp . put_i32_le (self . lon_int) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MANUAL_CONTROL_DATA { pub x : i16 , pub y : i16 , pub z : i16 , pub r : i16 , pub buttons : u16 , pub target : u8 , } impl MANUAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 11usize ; pub const DEFAULT : Self = Self { x : 0_i16 , y : 0_i16 , z : 0_i16 , r : 0_i16 , buttons : 0_u16 , target : 0_u8 , } ; } impl Default for MANUAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MANUAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 69u32 ; const NAME : & 'static str = "MANUAL_CONTROL" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 11usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . x = buf . get_i16_le () ; __struct . y = buf . get_i16_le () ; __struct . z = buf . get_i16_le () ; __struct . r = buf . get_i16_le () ; __struct . buttons = buf . get_u16_le () ; __struct . target = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . x) ; __tmp . put_i16_le (self . y) ; __tmp . put_i16_le (self . z) ; __tmp . put_i16_le (self . r) ; __tmp . put_u16_le (self . buttons) ; __tmp . put_u8 (self . target) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CHANGE_OPERATOR_CONTROL_ACK_DATA { pub gcs_system_id : u8 , pub control_request : u8 , pub ack : u8 , } impl CHANGE_OPERATOR_CONTROL_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { gcs_system_id : 0_u8 , control_request : 0_u8 , ack : 0_u8 , } ; } impl Default for CHANGE_OPERATOR_CONTROL_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CHANGE_OPERATOR_CONTROL_ACK_DATA { type Message = MavMessage ; const ID : u32 = 6u32 ; const NAME : & 'static str = "CHANGE_OPERATOR_CONTROL_ACK" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . gcs_system_id = buf . get_u8 () ; __struct . control_request = buf . get_u8 () ; __struct . ack = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . gcs_system_id) ; __tmp . put_u8 (self . control_request) ; __tmp . put_u8 (self . ack) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE3_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE3_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE3_DATA { type Message = MavMessage ; const ID : u32 = 143u32 ; const NAME : & 'static str = "SCALED_PRESSURE3" ; const EXTRA_CRC : u8 = 131u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl PARAM_EXT_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PARAM_EXT_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 321u32 ; const NAME : & 'static str = "PARAM_EXT_REQUEST_LIST" ; const EXTRA_CRC : u8 = 88u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_CLEAR_ALL_DATA { pub target_system : u8 , pub target_component : u8 , } impl MISSION_CLEAR_ALL_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_CLEAR_ALL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_CLEAR_ALL_DATA { type Message = MavMessage ; const ID : u32 = 45u32 ; const NAME : & 'static str = "MISSION_CLEAR_ALL" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_INFORMATION_DATA { pub time_boot_ms : u32 , pub cap_flags : GimbalManagerCapFlags , pub roll_min : f32 , pub roll_max : f32 , pub pitch_min : f32 , pub pitch_max : f32 , pub yaw_min : f32 , pub yaw_max : f32 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_INFORMATION_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , cap_flags : GimbalManagerCapFlags :: DEFAULT , roll_min : 0.0_f32 , roll_max : 0.0_f32 , pitch_min : 0.0_f32 , pitch_max : 0.0_f32 , yaw_min : 0.0_f32 , yaw_max : 0.0_f32 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 280u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_INFORMATION" ; const EXTRA_CRC : u8 = 70u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u32_le () ; __struct . cap_flags = GimbalManagerCapFlags :: from_bits (tmp & GimbalManagerCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalManagerCapFlags" , value : tmp as u32 }) ? ; __struct . roll_min = buf . get_f32_le () ; __struct . roll_max = buf . get_f32_le () ; __struct . pitch_min = buf . get_f32_le () ; __struct . pitch_max = buf . get_f32_le () ; __struct . yaw_min = buf . get_f32_le () ; __struct . yaw_max = buf . get_f32_le () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . cap_flags . bits ()) ; __tmp . put_f32_le (self . roll_min) ; __tmp . put_f32_le (self . roll_max) ; __tmp . put_f32_le (self . pitch_min) ; __tmp . put_f32_le (self . pitch_max) ; __tmp . put_f32_le (self . yaw_min) ; __tmp . put_f32_le (self . yaw_max) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CELLULAR_CONFIG_DATA { pub enable_lte : u8 , pub enable_pin : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pin : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub new_pin : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub apn : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub puk : [u8 ; 16] , pub roaming : u8 , pub response : CellularConfigResponse , } impl CELLULAR_CONFIG_DATA { pub const ENCODED_LEN : usize = 84usize ; pub const DEFAULT : Self = Self { enable_lte : 0_u8 , enable_pin : 0_u8 , pin : [0_u8 ; 16usize] , new_pin : [0_u8 ; 16usize] , apn : [0_u8 ; 32usize] , puk : [0_u8 ; 16usize] , roaming : 0_u8 , response : CellularConfigResponse :: DEFAULT , } ; } impl Default for CELLULAR_CONFIG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CELLULAR_CONFIG_DATA { type Message = MavMessage ; const ID : u32 = 336u32 ; const NAME : & 'static str = "CELLULAR_CONFIG" ; const EXTRA_CRC : u8 = 245u8 ; const ENCODED_LEN : usize = 84usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . enable_lte = buf . get_u8 () ; __struct . enable_pin = buf . get_u8 () ; for v in & mut __struct . pin { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . new_pin { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . apn { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . puk { let val = buf . get_u8 () ; * v = val ; } __struct . roaming = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . response = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularConfigResponse" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . enable_lte) ; __tmp . put_u8 (self . enable_pin) ; for val in & self . pin { __tmp . put_u8 (* val) ; } for val in & self . new_pin { __tmp . put_u8 (* val) ; } for val in & self . apn { __tmp . put_u8 (* val) ; } for val in & self . puk { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . roaming) ; __tmp . put_u8 (self . response as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_ENTRY_DATA { pub time_utc : u32 , pub size : u32 , pub id : u16 , pub num_logs : u16 , pub last_log_num : u16 , } impl LOG_ENTRY_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_utc : 0_u32 , size : 0_u32 , id : 0_u16 , num_logs : 0_u16 , last_log_num : 0_u16 , } ; } impl Default for LOG_ENTRY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_ENTRY_DATA { type Message = MavMessage ; const ID : u32 = 118u32 ; const NAME : & 'static str = "LOG_ENTRY" ; const EXTRA_CRC : u8 = 56u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_utc = buf . get_u32_le () ; __struct . size = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . num_logs = buf . get_u16_le () ; __struct . last_log_num = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_utc) ; __tmp . put_u32_le (self . size) ; __tmp . put_u16_le (self . id) ; __tmp . put_u16_le (self . num_logs) ; __tmp . put_u16_le (self . last_log_num) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIBRATION_DATA { pub time_usec : u64 , pub vibration_x : f32 , pub vibration_y : f32 , pub vibration_z : f32 , pub clipping_0 : u32 , pub clipping_1 : u32 , pub clipping_2 : u32 , } impl VIBRATION_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , vibration_x : 0.0_f32 , vibration_y : 0.0_f32 , vibration_z : 0.0_f32 , clipping_0 : 0_u32 , clipping_1 : 0_u32 , clipping_2 : 0_u32 , } ; } impl Default for VIBRATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIBRATION_DATA { type Message = MavMessage ; const ID : u32 = 241u32 ; const NAME : & 'static str = "VIBRATION" ; const EXTRA_CRC : u8 = 90u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . vibration_x = buf . get_f32_le () ; __struct . vibration_y = buf . get_f32_le () ; __struct . vibration_z = buf . get_f32_le () ; __struct . clipping_0 = buf . get_u32_le () ; __struct . clipping_1 = buf . get_u32_le () ; __struct . clipping_2 = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . vibration_x) ; __tmp . put_f32_le (self . vibration_y) ; __tmp . put_f32_le (self . vibration_z) ; __tmp . put_u32_le (self . clipping_0) ; __tmp . put_u32_le (self . clipping_1) ; __tmp . put_u32_le (self . clipping_2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SYS_STATUS_DATA { pub onboard_control_sensors_present : MavSysStatusSensor , pub onboard_control_sensors_enabled : MavSysStatusSensor , pub onboard_control_sensors_health : MavSysStatusSensor , pub load : u16 , pub voltage_battery : u16 , pub current_battery : i16 , pub drop_rate_comm : u16 , pub errors_comm : u16 , pub errors_count1 : u16 , pub errors_count2 : u16 , pub errors_count3 : u16 , pub errors_count4 : u16 , pub battery_remaining : i8 , } impl SYS_STATUS_DATA { pub const ENCODED_LEN : usize = 31usize ; pub const DEFAULT : Self = Self { onboard_control_sensors_present : MavSysStatusSensor :: DEFAULT , onboard_control_sensors_enabled : MavSysStatusSensor :: DEFAULT , onboard_control_sensors_health : MavSysStatusSensor :: DEFAULT , load : 0_u16 , voltage_battery : 0_u16 , current_battery : 0_i16 , drop_rate_comm : 0_u16 , errors_comm : 0_u16 , errors_count1 : 0_u16 , errors_count2 : 0_u16 , errors_count3 : 0_u16 , errors_count4 : 0_u16 , battery_remaining : 0_i8 , } ; } impl Default for SYS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SYS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 1u32 ; const NAME : & 'static str = "SYS_STATUS" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 31usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_present = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_enabled = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_health = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; __struct . load = buf . get_u16_le () ; __struct . voltage_battery = buf . get_u16_le () ; __struct . current_battery = buf . get_i16_le () ; __struct . drop_rate_comm = buf . get_u16_le () ; __struct . errors_comm = buf . get_u16_le () ; __struct . errors_count1 = buf . get_u16_le () ; __struct . errors_count2 = buf . get_u16_le () ; __struct . errors_count3 = buf . get_u16_le () ; __struct . errors_count4 = buf . get_u16_le () ; __struct . battery_remaining = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . onboard_control_sensors_present . bits ()) ; __tmp . put_u32_le (self . onboard_control_sensors_enabled . bits ()) ; __tmp . put_u32_le (self . onboard_control_sensors_health . bits ()) ; __tmp . put_u16_le (self . load) ; __tmp . put_u16_le (self . voltage_battery) ; __tmp . put_i16_le (self . current_battery) ; __tmp . put_u16_le (self . drop_rate_comm) ; __tmp . put_u16_le (self . errors_comm) ; __tmp . put_u16_le (self . errors_count1) ; __tmp . put_u16_le (self . errors_count2) ; __tmp . put_u16_le (self . errors_count3) ; __tmp . put_u16_le (self . errors_count4) ; __tmp . put_i8 (self . battery_remaining) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_POSITION_INT_COV_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 36] , pub estimator_type : MavEstimatorType , } impl GLOBAL_POSITION_INT_COV_DATA { pub const ENCODED_LEN : usize = 181usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , covariance : [0.0_f32 ; 36usize] , estimator_type : MavEstimatorType :: DEFAULT , } ; } impl Default for GLOBAL_POSITION_INT_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_POSITION_INT_COV_DATA { type Message = MavMessage ; const ID : u32 = 63u32 ; const NAME : & 'static str = "GLOBAL_POSITION_INT_COV" ; const EXTRA_CRC : u8 = 119u8 ; const ENCODED_LEN : usize = 181usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . estimator_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEstimatorType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . estimator_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_QUATERNION_COV_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 9] , } impl ATTITUDE_QUATERNION_COV_DATA { pub const ENCODED_LEN : usize = 72usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , q : [0.0_f32 ; 4usize] , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , covariance : [0.0_f32 ; 9usize] , } ; } impl Default for ATTITUDE_QUATERNION_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_QUATERNION_COV_DATA { type Message = MavMessage ; const ID : u32 = 61u32 ; const NAME : & 'static str = "ATTITUDE_QUATERNION_COV" ; const EXTRA_CRC : u8 = 167u8 ; const ENCODED_LEN : usize = 72usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_QUATERNION_DATA { pub time_boot_ms : u32 , pub q1 : f32 , pub q2 : f32 , pub q3 : f32 , pub q4 : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , } impl ATTITUDE_QUATERNION_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q1 : 0.0_f32 , q2 : 0.0_f32 , q3 : 0.0_f32 , q4 : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , } ; } impl Default for ATTITUDE_QUATERNION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_QUATERNION_DATA { type Message = MavMessage ; const ID : u32 = 31u32 ; const NAME : & 'static str = "ATTITUDE_QUATERNION" ; const EXTRA_CRC : u8 = 246u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . q1 = buf . get_f32_le () ; __struct . q2 = buf . get_f32_le () ; __struct . q3 = buf . get_f32_le () ; __struct . q4 = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . q1) ; __tmp . put_f32_le (self . q2) ; __tmp . put_f32_le (self . q3) ; __tmp . put_f32_le (self . q4) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FENCE_STATUS_DATA { pub breach_time : u32 , pub breach_count : u16 , pub breach_status : u8 , pub breach_type : FenceBreach , } impl FENCE_STATUS_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { breach_time : 0_u32 , breach_count : 0_u16 , breach_status : 0_u8 , breach_type : FenceBreach :: DEFAULT , } ; } impl Default for FENCE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FENCE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 162u32 ; const NAME : & 'static str = "FENCE_STATUS" ; const EXTRA_CRC : u8 = 189u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . breach_time = buf . get_u32_le () ; __struct . breach_count = buf . get_u16_le () ; __struct . breach_status = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . breach_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "FenceBreach" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . breach_time) ; __tmp . put_u16_le (self . breach_count) ; __tmp . put_u8 (self . breach_status) ; __tmp . put_u8 (self . breach_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ICAROUS_HEARTBEAT_DATA { pub status : IcarousFmsState , } impl ICAROUS_HEARTBEAT_DATA { pub const ENCODED_LEN : usize = 1usize ; pub const DEFAULT : Self = Self { status : IcarousFmsState :: DEFAULT , } ; } impl Default for ICAROUS_HEARTBEAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ICAROUS_HEARTBEAT_DATA { type Message = MavMessage ; const ID : u32 = 42000u32 ; const NAME : & 'static str = "ICAROUS_HEARTBEAT" ; const EXTRA_CRC : u8 = 227u8 ; const ENCODED_LEN : usize = 1usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousFmsState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_GPS_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub vn : i16 , pub ve : i16 , pub vd : i16 , pub cog : u16 , pub fix_type : u8 , pub satellites_visible : u8 , } impl HIL_GPS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , vn : 0_i16 , ve : 0_i16 , vd : 0_i16 , cog : 0_u16 , fix_type : 0_u8 , satellites_visible : 0_u8 , } ; } impl Default for HIL_GPS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_GPS_DATA { type Message = MavMessage ; const ID : u32 = 113u32 ; const NAME : & 'static str = "HIL_GPS" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . vn = buf . get_i16_le () ; __struct . ve = buf . get_i16_le () ; __struct . vd = buf . get_i16_le () ; __struct . cog = buf . get_u16_le () ; __struct . fix_type = buf . get_u8 () ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_i16_le (self . vn) ; __tmp . put_i16_le (self . ve) ; __tmp . put_i16_le (self . vd) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TIMESYNC_DATA { pub tc1 : i64 , pub ts1 : i64 , } impl TIMESYNC_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { tc1 : 0_i64 , ts1 : 0_i64 , } ; } impl Default for TIMESYNC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TIMESYNC_DATA { type Message = MavMessage ; const ID : u32 = 111u32 ; const NAME : & 'static str = "TIMESYNC" ; const EXTRA_CRC : u8 = 34u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . tc1 = buf . get_i64_le () ; __struct . ts1 = buf . get_i64_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i64_le (self . tc1) ; __tmp . put_i64_le (self . ts1) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RTCM_DATA_DATA { pub flags : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 180] , } impl GPS_RTCM_DATA_DATA { pub const ENCODED_LEN : usize = 182usize ; pub const DEFAULT : Self = Self { flags : 0_u8 , len : 0_u8 , data : [0_u8 ; 180usize] , } ; } impl Default for GPS_RTCM_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RTCM_DATA_DATA { type Message = MavMessage ; const ID : u32 = 233u32 ; const NAME : & 'static str = "GPS_RTCM_DATA" ; const EXTRA_CRC : u8 = 35u8 ; const ENCODED_LEN : usize = 182usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . flags = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . flags) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { pub flags : GimbalManagerFlags , pub pitch : f32 , pub yaw : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , pitch : 0.0_f32 , yaw : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 288u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_MANUAL_CONTROL" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SMART_BATTERY_INFO_DATA { pub capacity_full_specification : i32 , pub capacity_full : i32 , pub cycle_count : u16 , pub weight : u16 , pub discharge_minimum_voltage : u16 , pub charging_minimum_voltage : u16 , pub resting_minimum_voltage : u16 , pub id : u8 , pub battery_function : MavBatteryFunction , pub mavtype : MavBatteryType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub serial_number : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub device_name : [u8 ; 50] , } impl SMART_BATTERY_INFO_DATA { pub const ENCODED_LEN : usize = 87usize ; pub const DEFAULT : Self = Self { capacity_full_specification : 0_i32 , capacity_full : 0_i32 , cycle_count : 0_u16 , weight : 0_u16 , discharge_minimum_voltage : 0_u16 , charging_minimum_voltage : 0_u16 , resting_minimum_voltage : 0_u16 , id : 0_u8 , battery_function : MavBatteryFunction :: DEFAULT , mavtype : MavBatteryType :: DEFAULT , serial_number : [0_u8 ; 16usize] , device_name : [0_u8 ; 50usize] , } ; } impl Default for SMART_BATTERY_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SMART_BATTERY_INFO_DATA { type Message = MavMessage ; const ID : u32 = 370u32 ; const NAME : & 'static str = "SMART_BATTERY_INFO" ; const EXTRA_CRC : u8 = 75u8 ; const ENCODED_LEN : usize = 87usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . capacity_full_specification = buf . get_i32_le () ; __struct . capacity_full = buf . get_i32_le () ; __struct . cycle_count = buf . get_u16_le () ; __struct . weight = buf . get_u16_le () ; __struct . discharge_minimum_voltage = buf . get_u16_le () ; __struct . charging_minimum_voltage = buf . get_u16_le () ; __struct . resting_minimum_voltage = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . battery_function = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryFunction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryType" , value : tmp as u32 }) ? ; for v in & mut __struct . serial_number { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . device_name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . capacity_full_specification) ; __tmp . put_i32_le (self . capacity_full) ; __tmp . put_u16_le (self . cycle_count) ; __tmp . put_u16_le (self . weight) ; __tmp . put_u16_le (self . discharge_minimum_voltage) ; __tmp . put_u16_le (self . charging_minimum_voltage) ; __tmp . put_u16_le (self . resting_minimum_voltage) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . battery_function as u8) ; __tmp . put_u8 (self . mavtype as u8) ; for val in & self . serial_number { __tmp . put_u8 (* val) ; } for val in & self . device_name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA64_DATA { pub mavtype : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 64] , } impl DATA64_DATA { pub const ENCODED_LEN : usize = 66usize ; pub const DEFAULT : Self = Self { mavtype : 0_u8 , len : 0_u8 , data : [0_u8 ; 64usize] , } ; } impl Default for DATA64_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA64_DATA { type Message = MavMessage ; const ID : u32 = 171u32 ; const NAME : & 'static str = "DATA64" ; const EXTRA_CRC : u8 = 181u8 ; const ENCODED_LEN : usize = 66usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mavtype = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . mavtype) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DISTANCE_SENSOR_DATA { pub time_boot_ms : u32 , pub min_distance : u16 , pub max_distance : u16 , pub current_distance : u16 , pub mavtype : MavDistanceSensor , pub id : u8 , pub orientation : MavSensorOrientation , pub covariance : u8 , } impl DISTANCE_SENSOR_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , min_distance : 0_u16 , max_distance : 0_u16 , current_distance : 0_u16 , mavtype : MavDistanceSensor :: DEFAULT , id : 0_u8 , orientation : MavSensorOrientation :: DEFAULT , covariance : 0_u8 , } ; } impl Default for DISTANCE_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DISTANCE_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 132u32 ; const NAME : & 'static str = "DISTANCE_SENSOR" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . min_distance = buf . get_u16_le () ; __struct . max_distance = buf . get_u16_le () ; __struct . current_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . orientation = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavSensorOrientation" , value : tmp as u32 }) ? ; __struct . covariance = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . min_distance) ; __tmp . put_u16_le (self . max_distance) ; __tmp . put_u16_le (self . current_distance) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . orientation as u8) ; __tmp . put_u8 (self . covariance) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EFI_STATUS_DATA { pub ecu_index : f32 , pub rpm : f32 , pub fuel_consumed : f32 , pub fuel_flow : f32 , pub engine_load : f32 , pub throttle_position : f32 , pub spark_dwell_time : f32 , pub barometric_pressure : f32 , pub intake_manifold_pressure : f32 , pub intake_manifold_temperature : f32 , pub cylinder_head_temperature : f32 , pub ignition_timing : f32 , pub injection_time : f32 , pub exhaust_gas_temperature : f32 , pub throttle_out : f32 , pub pt_compensation : f32 , pub health : u8 , } impl EFI_STATUS_DATA { pub const ENCODED_LEN : usize = 65usize ; pub const DEFAULT : Self = Self { ecu_index : 0.0_f32 , rpm : 0.0_f32 , fuel_consumed : 0.0_f32 , fuel_flow : 0.0_f32 , engine_load : 0.0_f32 , throttle_position : 0.0_f32 , spark_dwell_time : 0.0_f32 , barometric_pressure : 0.0_f32 , intake_manifold_pressure : 0.0_f32 , intake_manifold_temperature : 0.0_f32 , cylinder_head_temperature : 0.0_f32 , ignition_timing : 0.0_f32 , injection_time : 0.0_f32 , exhaust_gas_temperature : 0.0_f32 , throttle_out : 0.0_f32 , pt_compensation : 0.0_f32 , health : 0_u8 , } ; } impl Default for EFI_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EFI_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 225u32 ; const NAME : & 'static str = "EFI_STATUS" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 65usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ecu_index = buf . get_f32_le () ; __struct . rpm = buf . get_f32_le () ; __struct . fuel_consumed = buf . get_f32_le () ; __struct . fuel_flow = buf . get_f32_le () ; __struct . engine_load = buf . get_f32_le () ; __struct . throttle_position = buf . get_f32_le () ; __struct . spark_dwell_time = buf . get_f32_le () ; __struct . barometric_pressure = buf . get_f32_le () ; __struct . intake_manifold_pressure = buf . get_f32_le () ; __struct . intake_manifold_temperature = buf . get_f32_le () ; __struct . cylinder_head_temperature = buf . get_f32_le () ; __struct . ignition_timing = buf . get_f32_le () ; __struct . injection_time = buf . get_f32_le () ; __struct . exhaust_gas_temperature = buf . get_f32_le () ; __struct . throttle_out = buf . get_f32_le () ; __struct . pt_compensation = buf . get_f32_le () ; __struct . health = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . ecu_index) ; __tmp . put_f32_le (self . rpm) ; __tmp . put_f32_le (self . fuel_consumed) ; __tmp . put_f32_le (self . fuel_flow) ; __tmp . put_f32_le (self . engine_load) ; __tmp . put_f32_le (self . throttle_position) ; __tmp . put_f32_le (self . spark_dwell_time) ; __tmp . put_f32_le (self . barometric_pressure) ; __tmp . put_f32_le (self . intake_manifold_pressure) ; __tmp . put_f32_le (self . intake_manifold_temperature) ; __tmp . put_f32_le (self . cylinder_head_temperature) ; __tmp . put_f32_le (self . ignition_timing) ; __tmp . put_f32_le (self . injection_time) ; __tmp . put_f32_le (self . exhaust_gas_temperature) ; __tmp . put_f32_le (self . throttle_out) ; __tmp . put_f32_le (self . pt_compensation) ; __tmp . put_u8 (self . health) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_MODE_DATA { pub custom_mode : u32 , pub target_system : u8 , pub base_mode : MavMode , } impl SET_MODE_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , target_system : 0_u8 , base_mode : MavMode :: DEFAULT , } ; } impl Default for SET_MODE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_MODE_DATA { type Message = MavMessage ; const ID : u32 = 11u32 ; const NAME : & 'static str = "SET_MODE" ; const EXTRA_CRC : u8 = 89u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . base_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMode" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . base_mode as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : f32 , pub y : f32 , pub z : f32 , pub seq : u16 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl MISSION_ITEM_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , seq : 0_u16 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for MISSION_ITEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_DATA { type Message = MavMessage ; const ID : u32 = 39u32 ; const NAME : & 'static str = "MISSION_ITEM" ; const EXTRA_CRC : u8 = 254u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . seq = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAMED_VALUE_FLOAT_DATA { pub time_boot_ms : u32 , pub value : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl NAMED_VALUE_FLOAT_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0.0_f32 , name : [0_u8 ; 10usize] , } ; } impl Default for NAMED_VALUE_FLOAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAMED_VALUE_FLOAT_DATA { type Message = MavMessage ; const ID : u32 = 251u32 ; const NAME : & 'static str = "NAMED_VALUE_FLOAT" ; const EXTRA_CRC : u8 = 170u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_f32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . value) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RESPONSE_EVENT_ERROR_DATA { pub sequence : u16 , pub sequence_oldest_available : u16 , pub target_system : u8 , pub target_component : u8 , pub reason : MavEventErrorReason , } impl RESPONSE_EVENT_ERROR_DATA { pub const ENCODED_LEN : usize = 7usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , sequence_oldest_available : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , reason : MavEventErrorReason :: DEFAULT , } ; } impl Default for RESPONSE_EVENT_ERROR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RESPONSE_EVENT_ERROR_DATA { type Message = MavMessage ; const ID : u32 = 413u32 ; const NAME : & 'static str = "RESPONSE_EVENT_ERROR" ; const EXTRA_CRC : u8 = 77u8 ; const ENCODED_LEN : usize = 7usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . sequence_oldest_available = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . reason = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEventErrorReason" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u16_le (self . sequence_oldest_available) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . reason as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU2_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU2_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU2_DATA { type Message = MavMessage ; const ID : u32 = 116u32 ; const NAME : & 'static str = "SCALED_IMU2" ; const EXTRA_CRC : u8 = 76u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , } impl ATTITUDE_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , } ; } impl Default for ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 30u32 ; const NAME : & 'static str = "ATTITUDE" ; const EXTRA_CRC : u8 = 39u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LANDING_TARGET_DATA { pub time_usec : u64 , pub angle_x : f32 , pub angle_y : f32 , pub distance : f32 , pub size_x : f32 , pub size_y : f32 , pub target_num : u8 , pub frame : MavFrame , } impl LANDING_TARGET_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , angle_x : 0.0_f32 , angle_y : 0.0_f32 , distance : 0.0_f32 , size_x : 0.0_f32 , size_y : 0.0_f32 , target_num : 0_u8 , frame : MavFrame :: DEFAULT , } ; } impl Default for LANDING_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LANDING_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 149u32 ; const NAME : & 'static str = "LANDING_TARGET" ; const EXTRA_CRC : u8 = 200u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . angle_x = buf . get_f32_le () ; __struct . angle_y = buf . get_f32_le () ; __struct . distance = buf . get_f32_le () ; __struct . size_x = buf . get_f32_le () ; __struct . size_y = buf . get_f32_le () ; __struct . target_num = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . angle_x) ; __tmp . put_f32_le (self . angle_y) ; __tmp . put_f32_le (self . distance) ; __tmp . put_f32_le (self . size_x) ; __tmp . put_f32_le (self . size_y) ; __tmp . put_u8 (self . target_num) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_AUTHENTICATION_DATA { pub timestamp : u32 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub authentication_type : MavOdidAuthType , pub data_page : u8 , pub last_page_index : u8 , pub length : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub authentication_data : [u8 ; 23] , } impl OPEN_DRONE_ID_AUTHENTICATION_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { timestamp : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , authentication_type : MavOdidAuthType :: DEFAULT , data_page : 0_u8 , last_page_index : 0_u8 , length : 0_u8 , authentication_data : [0_u8 ; 23usize] , } ; } impl Default for OPEN_DRONE_ID_AUTHENTICATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_AUTHENTICATION_DATA { type Message = MavMessage ; const ID : u32 = 12902u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_AUTHENTICATION" ; const EXTRA_CRC : u8 = 140u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . authentication_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidAuthType" , value : tmp as u32 }) ? ; __struct . data_page = buf . get_u8 () ; __struct . last_page_index = buf . get_u8 () ; __struct . length = buf . get_u8 () ; for v in & mut __struct . authentication_data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . authentication_type as u8) ; __tmp . put_u8 (self . data_page) ; __tmp . put_u8 (self . last_page_index) ; __tmp . put_u8 (self . length) ; for val in & self . authentication_data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAV_CONTROLLER_OUTPUT_DATA { pub nav_roll : f32 , pub nav_pitch : f32 , pub alt_error : f32 , pub aspd_error : f32 , pub xtrack_error : f32 , pub nav_bearing : i16 , pub target_bearing : i16 , pub wp_dist : u16 , } impl NAV_CONTROLLER_OUTPUT_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { nav_roll : 0.0_f32 , nav_pitch : 0.0_f32 , alt_error : 0.0_f32 , aspd_error : 0.0_f32 , xtrack_error : 0.0_f32 , nav_bearing : 0_i16 , target_bearing : 0_i16 , wp_dist : 0_u16 , } ; } impl Default for NAV_CONTROLLER_OUTPUT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAV_CONTROLLER_OUTPUT_DATA { type Message = MavMessage ; const ID : u32 = 62u32 ; const NAME : & 'static str = "NAV_CONTROLLER_OUTPUT" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . nav_roll = buf . get_f32_le () ; __struct . nav_pitch = buf . get_f32_le () ; __struct . alt_error = buf . get_f32_le () ; __struct . aspd_error = buf . get_f32_le () ; __struct . xtrack_error = buf . get_f32_le () ; __struct . nav_bearing = buf . get_i16_le () ; __struct . target_bearing = buf . get_i16_le () ; __struct . wp_dist = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . nav_roll) ; __tmp . put_f32_le (self . nav_pitch) ; __tmp . put_f32_le (self . alt_error) ; __tmp . put_f32_le (self . aspd_error) ; __tmp . put_f32_le (self . xtrack_error) ; __tmp . put_i16_le (self . nav_bearing) ; __tmp . put_i16_le (self . target_bearing) ; __tmp . put_u16_le (self . wp_dist) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_LIST_DATA { pub start : u16 , pub end : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start : 0_u16 , end : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 117u32 ; const NAME : & 'static str = "LOG_REQUEST_LIST" ; const EXTRA_CRC : u8 = 128u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start = buf . get_u16_le () ; __struct . end = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . start) ; __tmp . put_u16_le (self . end) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_GLOBAL_ORIGIN_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , } impl GPS_GLOBAL_ORIGIN_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , } ; } impl Default for GPS_GLOBAL_ORIGIN_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_GLOBAL_ORIGIN_DATA { type Message = MavMessage ; const ID : u32 = 49u32 ; const NAME : & 'static str = "GPS_GLOBAL_ORIGIN" ; const EXTRA_CRC : u8 = 39u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SUPPORTED_TUNES_DATA { pub format : TuneFormat , pub target_system : u8 , pub target_component : u8 , } impl SUPPORTED_TUNES_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { format : TuneFormat :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SUPPORTED_TUNES_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SUPPORTED_TUNES_DATA { type Message = MavMessage ; const ID : u32 = 401u32 ; const NAME : & 'static str = "SUPPORTED_TUNES" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . format = TuneFormat :: from_bits (tmp & TuneFormat :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "TuneFormat" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . format . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MOUNT_STATUS_DATA { pub pointing_a : i32 , pub pointing_b : i32 , pub pointing_c : i32 , pub target_system : u8 , pub target_component : u8 , } impl MOUNT_STATUS_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { pointing_a : 0_i32 , pointing_b : 0_i32 , pointing_c : 0_i32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MOUNT_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MOUNT_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 158u32 ; const NAME : & 'static str = "MOUNT_STATUS" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . pointing_a = buf . get_i32_le () ; __struct . pointing_b = buf . get_i32_le () ; __struct . pointing_c = buf . get_i32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . pointing_a) ; __tmp . put_i32_le (self . pointing_b) ; __tmp . put_i32_le (self . pointing_c) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CANFD_FRAME_DATA { pub id : u32 , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 64] , } impl CANFD_FRAME_DATA { pub const ENCODED_LEN : usize = 72usize ; pub const DEFAULT : Self = Self { id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , len : 0_u8 , data : [0_u8 ; 64usize] , } ; } impl Default for CANFD_FRAME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CANFD_FRAME_DATA { type Message = MavMessage ; const ID : u32 = 387u32 ; const NAME : & 'static str = "CANFD_FRAME" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 72usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIFI_CONFIG_AP_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub ssid : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub password : [u8 ; 64] , } impl WIFI_CONFIG_AP_DATA { pub const ENCODED_LEN : usize = 96usize ; pub const DEFAULT : Self = Self { ssid : [0_u8 ; 32usize] , password : [0_u8 ; 64usize] , } ; } impl Default for WIFI_CONFIG_AP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIFI_CONFIG_AP_DATA { type Message = MavMessage ; const ID : u32 = 299u32 ; const NAME : & 'static str = "WIFI_CONFIG_AP" ; const EXTRA_CRC : u8 = 19u8 ; const ENCODED_LEN : usize = 96usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . ssid { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . password { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . ssid { __tmp . put_u8 (* val) ; } for val in & self . password { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_REACHED_DATA { pub seq : u16 , } impl MISSION_ITEM_REACHED_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , } ; } impl Default for MISSION_ITEM_REACHED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_REACHED_DATA { type Message = MavMessage ; const ID : u32 = 46u32 ; const NAME : & 'static str = "MISSION_ITEM_REACHED" ; const EXTRA_CRC : u8 = 11u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPASSMOT_STATUS_DATA { pub current : f32 , pub CompensationX : f32 , pub CompensationY : f32 , pub CompensationZ : f32 , pub throttle : u16 , pub interference : u16 , } impl COMPASSMOT_STATUS_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { current : 0.0_f32 , CompensationX : 0.0_f32 , CompensationY : 0.0_f32 , CompensationZ : 0.0_f32 , throttle : 0_u16 , interference : 0_u16 , } ; } impl Default for COMPASSMOT_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPASSMOT_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 177u32 ; const NAME : & 'static str = "COMPASSMOT_STATUS" ; const EXTRA_CRC : u8 = 240u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . current = buf . get_f32_le () ; __struct . CompensationX = buf . get_f32_le () ; __struct . CompensationY = buf . get_f32_le () ; __struct . CompensationZ = buf . get_f32_le () ; __struct . throttle = buf . get_u16_le () ; __struct . interference = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . current) ; __tmp . put_f32_le (self . CompensationX) ; __tmp . put_f32_le (self . CompensationY) ; __tmp . put_f32_le (self . CompensationZ) ; __tmp . put_u16_le (self . throttle) ; __tmp . put_u16_le (self . interference) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVIONIX_ADSB_OUT_DYNAMIC_DATA { pub utcTime : u32 , pub gpsLat : i32 , pub gpsLon : i32 , pub gpsAlt : i32 , pub baroAltMSL : i32 , pub accuracyHor : u32 , pub accuracyVert : u16 , pub accuracyVel : u16 , pub velVert : i16 , pub velNS : i16 , pub VelEW : i16 , pub state : UavionixAdsbOutDynamicState , pub squawk : u16 , pub gpsFix : UavionixAdsbOutDynamicGpsFix , pub numSats : u8 , pub emergencyStatus : UavionixAdsbEmergencyStatus , } impl UAVIONIX_ADSB_OUT_DYNAMIC_DATA { pub const ENCODED_LEN : usize = 41usize ; pub const DEFAULT : Self = Self { utcTime : 0_u32 , gpsLat : 0_i32 , gpsLon : 0_i32 , gpsAlt : 0_i32 , baroAltMSL : 0_i32 , accuracyHor : 0_u32 , accuracyVert : 0_u16 , accuracyVel : 0_u16 , velVert : 0_i16 , velNS : 0_i16 , VelEW : 0_i16 , state : UavionixAdsbOutDynamicState :: DEFAULT , squawk : 0_u16 , gpsFix : UavionixAdsbOutDynamicGpsFix :: DEFAULT , numSats : 0_u8 , emergencyStatus : UavionixAdsbEmergencyStatus :: DEFAULT , } ; } impl Default for UAVIONIX_ADSB_OUT_DYNAMIC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVIONIX_ADSB_OUT_DYNAMIC_DATA { type Message = MavMessage ; const ID : u32 = 10002u32 ; const NAME : & 'static str = "UAVIONIX_ADSB_OUT_DYNAMIC" ; const EXTRA_CRC : u8 = 186u8 ; const ENCODED_LEN : usize = 41usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . utcTime = buf . get_u32_le () ; __struct . gpsLat = buf . get_i32_le () ; __struct . gpsLon = buf . get_i32_le () ; __struct . gpsAlt = buf . get_i32_le () ; __struct . baroAltMSL = buf . get_i32_le () ; __struct . accuracyHor = buf . get_u32_le () ; __struct . accuracyVert = buf . get_u16_le () ; __struct . accuracyVel = buf . get_u16_le () ; __struct . velVert = buf . get_i16_le () ; __struct . velNS = buf . get_i16_le () ; __struct . VelEW = buf . get_i16_le () ; let tmp = buf . get_u16_le () ; __struct . state = UavionixAdsbOutDynamicState :: from_bits (tmp & UavionixAdsbOutDynamicState :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UavionixAdsbOutDynamicState" , value : tmp as u32 }) ? ; __struct . squawk = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . gpsFix = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutDynamicGpsFix" , value : tmp as u32 }) ? ; __struct . numSats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . emergencyStatus = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbEmergencyStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . utcTime) ; __tmp . put_i32_le (self . gpsLat) ; __tmp . put_i32_le (self . gpsLon) ; __tmp . put_i32_le (self . gpsAlt) ; __tmp . put_i32_le (self . baroAltMSL) ; __tmp . put_u32_le (self . accuracyHor) ; __tmp . put_u16_le (self . accuracyVert) ; __tmp . put_u16_le (self . accuracyVel) ; __tmp . put_i16_le (self . velVert) ; __tmp . put_i16_le (self . velNS) ; __tmp . put_i16_le (self . VelEW) ; __tmp . put_u16_le (self . state . bits ()) ; __tmp . put_u16_le (self . squawk) ; __tmp . put_u8 (self . gpsFix as u8) ; __tmp . put_u8 (self . numSats) ; __tmp . put_u8 (self . emergencyStatus as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AP_ADC_DATA { pub adc1 : u16 , pub adc2 : u16 , pub adc3 : u16 , pub adc4 : u16 , pub adc5 : u16 , pub adc6 : u16 , } impl AP_ADC_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { adc1 : 0_u16 , adc2 : 0_u16 , adc3 : 0_u16 , adc4 : 0_u16 , adc5 : 0_u16 , adc6 : 0_u16 , } ; } impl Default for AP_ADC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AP_ADC_DATA { type Message = MavMessage ; const ID : u32 = 153u32 ; const NAME : & 'static str = "AP_ADC" ; const EXTRA_CRC : u8 = 188u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . adc1 = buf . get_u16_le () ; __struct . adc2 = buf . get_u16_le () ; __struct . adc3 = buf . get_u16_le () ; __struct . adc4 = buf . get_u16_le () ; __struct . adc5 = buf . get_u16_le () ; __struct . adc6 = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . adc1) ; __tmp . put_u16_le (self . adc2) ; __tmp . put_u16_le (self . adc3) ; __tmp . put_u16_le (self . adc4) ; __tmp . put_u16_le (self . adc5) ; __tmp . put_u16_le (self . adc6) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OSD_PARAM_SHOW_CONFIG_DATA { pub request_id : u32 , pub target_system : u8 , pub target_component : u8 , pub osd_screen : u8 , pub osd_index : u8 , } impl OSD_PARAM_SHOW_CONFIG_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , osd_screen : 0_u8 , osd_index : 0_u8 , } ; } impl Default for OSD_PARAM_SHOW_CONFIG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OSD_PARAM_SHOW_CONFIG_DATA { type Message = MavMessage ; const ID : u32 = 11035u32 ; const NAME : & 'static str = "OSD_PARAM_SHOW_CONFIG" ; const EXTRA_CRC : u8 = 128u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . osd_screen = buf . get_u8 () ; __struct . osd_index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . osd_screen) ; __tmp . put_u8 (self . osd_index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CUBEPILOT_FIRMWARE_UPDATE_START_DATA { pub size : u32 , pub crc : u32 , pub target_system : u8 , pub target_component : u8 , } impl CUBEPILOT_FIRMWARE_UPDATE_START_DATA { pub const ENCODED_LEN : usize = 10usize ; pub const DEFAULT : Self = Self { size : 0_u32 , crc : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for CUBEPILOT_FIRMWARE_UPDATE_START_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CUBEPILOT_FIRMWARE_UPDATE_START_DATA { type Message = MavMessage ; const ID : u32 = 50004u32 ; const NAME : & 'static str = "CUBEPILOT_FIRMWARE_UPDATE_START" ; const EXTRA_CRC : u8 = 240u8 ; const ENCODED_LEN : usize = 10usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . size = buf . get_u32_le () ; __struct . crc = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . size) ; __tmp . put_u32_le (self . crc) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RADIO_STATUS_DATA { pub rxerrors : u16 , pub fixed : u16 , pub rssi : u8 , pub remrssi : u8 , pub txbuf : u8 , pub noise : u8 , pub remnoise : u8 , } impl RADIO_STATUS_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { rxerrors : 0_u16 , fixed : 0_u16 , rssi : 0_u8 , remrssi : 0_u8 , txbuf : 0_u8 , noise : 0_u8 , remnoise : 0_u8 , } ; } impl Default for RADIO_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RADIO_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 109u32 ; const NAME : & 'static str = "RADIO_STATUS" ; const EXTRA_CRC : u8 = 185u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . rxerrors = buf . get_u16_le () ; __struct . fixed = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; __struct . remrssi = buf . get_u8 () ; __struct . txbuf = buf . get_u8 () ; __struct . noise = buf . get_u8 () ; __struct . remnoise = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . rxerrors) ; __tmp . put_u16_le (self . fixed) ; __tmp . put_u8 (self . rssi) ; __tmp . put_u8 (self . remrssi) ; __tmp . put_u8 (self . txbuf) ; __tmp . put_u8 (self . noise) ; __tmp . put_u8 (self . remnoise) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_DATA_DATA { pub ofs : u32 , pub id : u16 , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 90] , } impl LOG_DATA_DATA { pub const ENCODED_LEN : usize = 97usize ; pub const DEFAULT : Self = Self { ofs : 0_u32 , id : 0_u16 , count : 0_u8 , data : [0_u8 ; 90usize] , } ; } impl Default for LOG_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_DATA_DATA { type Message = MavMessage ; const ID : u32 = 120u32 ; const NAME : & 'static str = "LOG_DATA" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 97usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ofs = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ofs) ; __tmp . put_u16_le (self . id) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_FLOAT_ARRAY_DATA { pub time_usec : u64 , pub array_id : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl DEBUG_FLOAT_ARRAY_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , array_id : 0_u16 , name : [0_u8 ; 10usize] , } ; } impl Default for DEBUG_FLOAT_ARRAY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_FLOAT_ARRAY_DATA { type Message = MavMessage ; const ID : u32 = 350u32 ; const NAME : & 'static str = "DEBUG_FLOAT_ARRAY" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . array_id = buf . get_u16_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u16_le (self . array_id) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ODOMETRY_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pose_covariance : [f32 ; 21] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub velocity_covariance : [f32 ; 21] , pub frame_id : MavFrame , pub child_frame_id : MavFrame , } impl ODOMETRY_DATA { pub const ENCODED_LEN : usize = 230usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , pose_covariance : [0.0_f32 ; 21usize] , velocity_covariance : [0.0_f32 ; 21usize] , frame_id : MavFrame :: DEFAULT , child_frame_id : MavFrame :: DEFAULT , } ; } impl Default for ODOMETRY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ODOMETRY_DATA { type Message = MavMessage ; const ID : u32 = 331u32 ; const NAME : & 'static str = "ODOMETRY" ; const EXTRA_CRC : u8 = 91u8 ; const ENCODED_LEN : usize = 230usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; for v in & mut __struct . pose_covariance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . velocity_covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . frame_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . child_frame_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; for val in & self . pose_covariance { __tmp . put_f32_le (* val) ; } for val in & self . velocity_covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . frame_id as u8) ; __tmp . put_u8 (self . child_frame_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_OPTICAL_FLOW_DATA { pub time_usec : u64 , pub integration_time_us : u32 , pub integrated_x : f32 , pub integrated_y : f32 , pub integrated_xgyro : f32 , pub integrated_ygyro : f32 , pub integrated_zgyro : f32 , pub time_delta_distance_us : u32 , pub distance : f32 , pub temperature : i16 , pub sensor_id : u8 , pub quality : u8 , } impl HIL_OPTICAL_FLOW_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , integration_time_us : 0_u32 , integrated_x : 0.0_f32 , integrated_y : 0.0_f32 , integrated_xgyro : 0.0_f32 , integrated_ygyro : 0.0_f32 , integrated_zgyro : 0.0_f32 , time_delta_distance_us : 0_u32 , distance : 0.0_f32 , temperature : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for HIL_OPTICAL_FLOW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_OPTICAL_FLOW_DATA { type Message = MavMessage ; const ID : u32 = 114u32 ; const NAME : & 'static str = "HIL_OPTICAL_FLOW" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . integration_time_us = buf . get_u32_le () ; __struct . integrated_x = buf . get_f32_le () ; __struct . integrated_y = buf . get_f32_le () ; __struct . integrated_xgyro = buf . get_f32_le () ; __struct . integrated_ygyro = buf . get_f32_le () ; __struct . integrated_zgyro = buf . get_f32_le () ; __struct . time_delta_distance_us = buf . get_u32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . integration_time_us) ; __tmp . put_f32_le (self . integrated_x) ; __tmp . put_f32_le (self . integrated_y) ; __tmp . put_f32_le (self . integrated_xgyro) ; __tmp . put_f32_le (self . integrated_ygyro) ; __tmp . put_f32_le (self . integrated_zgyro) ; __tmp . put_u32_le (self . time_delta_distance_us) ; __tmp . put_f32_le (self . distance) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CURRENT_EVENT_SEQUENCE_DATA { pub sequence : u16 , pub flags : MavEventCurrentSequenceFlags , } impl CURRENT_EVENT_SEQUENCE_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , flags : MavEventCurrentSequenceFlags :: DEFAULT , } ; } impl Default for CURRENT_EVENT_SEQUENCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CURRENT_EVENT_SEQUENCE_DATA { type Message = MavMessage ; const ID : u32 = 411u32 ; const NAME : & 'static str = "CURRENT_EVENT_SEQUENCE" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . flags = MavEventCurrentSequenceFlags :: from_bits (tmp & MavEventCurrentSequenceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavEventCurrentSequenceFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_DATA_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , pub length : u8 , pub first_message_offset : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 249] , } impl LOGGING_DATA_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , length : 0_u8 , first_message_offset : 0_u8 , data : [0_u8 ; 249usize] , } ; } impl Default for LOGGING_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_DATA_DATA { type Message = MavMessage ; const ID : u32 = 266u32 ; const NAME : & 'static str = "LOGGING_DATA" ; const EXTRA_CRC : u8 = 193u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . length = buf . get_u8 () ; __struct . first_message_offset = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . length) ; __tmp . put_u8 (self . first_message_offset) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_ACTUATOR_CONTROL_TARGET_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 8] , pub group_mlx : u8 , pub target_system : u8 , pub target_component : u8 , } impl SET_ACTUATOR_CONTROL_TARGET_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , controls : [0.0_f32 ; 8usize] , group_mlx : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SET_ACTUATOR_CONTROL_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_ACTUATOR_CONTROL_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 139u32 ; const NAME : & 'static str = "SET_ACTUATOR_CONTROL_TARGET" ; const EXTRA_CRC : u8 = 168u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } __struct . group_mlx = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . group_mlx) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_POSITION_TARGET_GLOBAL_INT_DATA { pub time_boot_ms : u32 , pub lat_int : i32 , pub lon_int : i32 , pub alt : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub target_system : u8 , pub target_component : u8 , pub coordinate_frame : MavFrame , } impl SET_POSITION_TARGET_GLOBAL_INT_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_int : 0_i32 , lon_int : 0_i32 , alt : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for SET_POSITION_TARGET_GLOBAL_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_POSITION_TARGET_GLOBAL_INT_DATA { type Message = MavMessage ; const ID : u32 = 86u32 ; const NAME : & 'static str = "SET_POSITION_TARGET_GLOBAL_INT" ; const EXTRA_CRC : u8 = 5u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_int = buf . get_i32_le () ; __struct . lon_int = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_int) ; __tmp . put_i32_le (self . lon_int) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE_DATA { type Message = MavMessage ; const ID : u32 = 29u32 ; const NAME : & 'static str = "SCALED_PRESSURE" ; const EXTRA_CRC : u8 = 115u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGH_LATENCY2_DATA { pub timestamp : u32 , pub latitude : i32 , pub longitude : i32 , pub custom_mode : u16 , pub altitude : i16 , pub target_altitude : i16 , pub target_distance : u16 , pub wp_num : u16 , pub failure_flags : HlFailureFlag , pub mavtype : MavType , pub autopilot : MavAutopilot , pub heading : u8 , pub target_heading : u8 , pub throttle : u8 , pub airspeed : u8 , pub airspeed_sp : u8 , pub groundspeed : u8 , pub windspeed : u8 , pub wind_heading : u8 , pub eph : u8 , pub epv : u8 , pub temperature_air : i8 , pub climb_rate : i8 , pub battery : i8 , pub custom0 : i8 , pub custom1 : i8 , pub custom2 : i8 , } impl HIGH_LATENCY2_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { timestamp : 0_u32 , latitude : 0_i32 , longitude : 0_i32 , custom_mode : 0_u16 , altitude : 0_i16 , target_altitude : 0_i16 , target_distance : 0_u16 , wp_num : 0_u16 , failure_flags : HlFailureFlag :: DEFAULT , mavtype : MavType :: DEFAULT , autopilot : MavAutopilot :: DEFAULT , heading : 0_u8 , target_heading : 0_u8 , throttle : 0_u8 , airspeed : 0_u8 , airspeed_sp : 0_u8 , groundspeed : 0_u8 , windspeed : 0_u8 , wind_heading : 0_u8 , eph : 0_u8 , epv : 0_u8 , temperature_air : 0_i8 , climb_rate : 0_i8 , battery : 0_i8 , custom0 : 0_i8 , custom1 : 0_i8 , custom2 : 0_i8 , } ; } impl Default for HIGH_LATENCY2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGH_LATENCY2_DATA { type Message = MavMessage ; const ID : u32 = 235u32 ; const NAME : & 'static str = "HIGH_LATENCY2" ; const EXTRA_CRC : u8 = 179u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u32_le () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . custom_mode = buf . get_u16_le () ; __struct . altitude = buf . get_i16_le () ; __struct . target_altitude = buf . get_i16_le () ; __struct . target_distance = buf . get_u16_le () ; __struct . wp_num = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . failure_flags = HlFailureFlag :: from_bits (tmp & HlFailureFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HlFailureFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . autopilot = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavAutopilot" , value : tmp as u32 }) ? ; __struct . heading = buf . get_u8 () ; __struct . target_heading = buf . get_u8 () ; __struct . throttle = buf . get_u8 () ; __struct . airspeed = buf . get_u8 () ; __struct . airspeed_sp = buf . get_u8 () ; __struct . groundspeed = buf . get_u8 () ; __struct . windspeed = buf . get_u8 () ; __struct . wind_heading = buf . get_u8 () ; __struct . eph = buf . get_u8 () ; __struct . epv = buf . get_u8 () ; __struct . temperature_air = buf . get_i8 () ; __struct . climb_rate = buf . get_i8 () ; __struct . battery = buf . get_i8 () ; __struct . custom0 = buf . get_i8 () ; __struct . custom1 = buf . get_i8 () ; __struct . custom2 = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_u16_le (self . custom_mode) ; __tmp . put_i16_le (self . altitude) ; __tmp . put_i16_le (self . target_altitude) ; __tmp . put_u16_le (self . target_distance) ; __tmp . put_u16_le (self . wp_num) ; __tmp . put_u16_le (self . failure_flags . bits ()) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . autopilot as u8) ; __tmp . put_u8 (self . heading) ; __tmp . put_u8 (self . target_heading) ; __tmp . put_u8 (self . throttle) ; __tmp . put_u8 (self . airspeed) ; __tmp . put_u8 (self . airspeed_sp) ; __tmp . put_u8 (self . groundspeed) ; __tmp . put_u8 (self . windspeed) ; __tmp . put_u8 (self . wind_heading) ; __tmp . put_u8 (self . eph) ; __tmp . put_u8 (self . epv) ; __tmp . put_i8 (self . temperature_air) ; __tmp . put_i8 (self . climb_rate) ; __tmp . put_i8 (self . battery) ; __tmp . put_i8 (self . custom0) ; __tmp . put_i8 (self . custom1) ; __tmp . put_i8 (self . custom2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GENERATOR_STATUS_DATA { pub status : MavGeneratorStatusFlag , pub battery_current : f32 , pub load_current : f32 , pub power_generated : f32 , pub bus_voltage : f32 , pub bat_current_setpoint : f32 , pub runtime : u32 , pub time_until_maintenance : i32 , pub generator_speed : u16 , pub rectifier_temperature : i16 , pub generator_temperature : i16 , } impl GENERATOR_STATUS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { status : MavGeneratorStatusFlag :: DEFAULT , battery_current : 0.0_f32 , load_current : 0.0_f32 , power_generated : 0.0_f32 , bus_voltage : 0.0_f32 , bat_current_setpoint : 0.0_f32 , runtime : 0_u32 , time_until_maintenance : 0_i32 , generator_speed : 0_u16 , rectifier_temperature : 0_i16 , generator_temperature : 0_i16 , } ; } impl Default for GENERATOR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GENERATOR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 373u32 ; const NAME : & 'static str = "GENERATOR_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u64_le () ; __struct . status = MavGeneratorStatusFlag :: from_bits (tmp & MavGeneratorStatusFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavGeneratorStatusFlag" , value : tmp as u32 }) ? ; __struct . battery_current = buf . get_f32_le () ; __struct . load_current = buf . get_f32_le () ; __struct . power_generated = buf . get_f32_le () ; __struct . bus_voltage = buf . get_f32_le () ; __struct . bat_current_setpoint = buf . get_f32_le () ; __struct . runtime = buf . get_u32_le () ; __struct . time_until_maintenance = buf . get_i32_le () ; __struct . generator_speed = buf . get_u16_le () ; __struct . rectifier_temperature = buf . get_i16_le () ; __struct . generator_temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . status . bits ()) ; __tmp . put_f32_le (self . battery_current) ; __tmp . put_f32_le (self . load_current) ; __tmp . put_f32_le (self . power_generated) ; __tmp . put_f32_le (self . bus_voltage) ; __tmp . put_f32_le (self . bat_current_setpoint) ; __tmp . put_u32_le (self . runtime) ; __tmp . put_i32_le (self . time_until_maintenance) ; __tmp . put_u16_le (self . generator_speed) ; __tmp . put_i16_le (self . rectifier_temperature) ; __tmp . put_i16_le (self . generator_temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_INT_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_INT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_INT_DATA { type Message = MavMessage ; const ID : u32 = 51u32 ; const NAME : & 'static str = "MISSION_REQUEST_INT" ; const EXTRA_CRC : u8 = 196u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SELF_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub description_type : MavOdidDescType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub description : [u8 ; 23] , } impl OPEN_DRONE_ID_SELF_ID_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , description_type : MavOdidDescType :: DEFAULT , description : [0_u8 ; 23usize] , } ; } impl Default for OPEN_DRONE_ID_SELF_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SELF_ID_DATA { type Message = MavMessage ; const ID : u32 = 12903u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SELF_ID" ; const EXTRA_CRC : u8 = 249u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . description_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidDescType" , value : tmp as u32 }) ? ; for v in & mut __struct . description { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . description_type as u8) ; for val in & self . description { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRIGGER_DATA { pub time_usec : u64 , pub seq : u32 , } impl CAMERA_TRIGGER_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , seq : 0_u32 , } ; } impl Default for CAMERA_TRIGGER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRIGGER_DATA { type Message = MavMessage ; const ID : u32 = 112u32 ; const NAME : & 'static str = "CAMERA_TRIGGER" ; const EXTRA_CRC : u8 = 174u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . seq = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_POSITION_TARGET_LOCAL_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub target_system : u8 , pub target_component : u8 , pub coordinate_frame : MavFrame , } impl SET_POSITION_TARGET_LOCAL_NED_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for SET_POSITION_TARGET_LOCAL_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_POSITION_TARGET_LOCAL_NED_DATA { type Message = MavMessage ; const ID : u32 = 84u32 ; const NAME : & 'static str = "SET_POSITION_TARGET_LOCAL_NED" ; const EXTRA_CRC : u8 = 143u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DIGICAM_CONFIGURE_DATA { pub extra_value : f32 , pub shutter_speed : u16 , pub target_system : u8 , pub target_component : u8 , pub mode : u8 , pub aperture : u8 , pub iso : u8 , pub exposure_type : u8 , pub command_id : u8 , pub engine_cut_off : u8 , pub extra_param : u8 , } impl DIGICAM_CONFIGURE_DATA { pub const ENCODED_LEN : usize = 15usize ; pub const DEFAULT : Self = Self { extra_value : 0.0_f32 , shutter_speed : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , mode : 0_u8 , aperture : 0_u8 , iso : 0_u8 , exposure_type : 0_u8 , command_id : 0_u8 , engine_cut_off : 0_u8 , extra_param : 0_u8 , } ; } impl Default for DIGICAM_CONFIGURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DIGICAM_CONFIGURE_DATA { type Message = MavMessage ; const ID : u32 = 154u32 ; const NAME : & 'static str = "DIGICAM_CONFIGURE" ; const EXTRA_CRC : u8 = 84u8 ; const ENCODED_LEN : usize = 15usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . extra_value = buf . get_f32_le () ; __struct . shutter_speed = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . mode = buf . get_u8 () ; __struct . aperture = buf . get_u8 () ; __struct . iso = buf . get_u8 () ; __struct . exposure_type = buf . get_u8 () ; __struct . command_id = buf . get_u8 () ; __struct . engine_cut_off = buf . get_u8 () ; __struct . extra_param = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . extra_value) ; __tmp . put_u16_le (self . shutter_speed) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . mode) ; __tmp . put_u8 (self . aperture) ; __tmp . put_u8 (self . iso) ; __tmp . put_u8 (self . exposure_type) ; __tmp . put_u8 (self . command_id) ; __tmp . put_u8 (self . engine_cut_off) ; __tmp . put_u8 (self . extra_param) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEVICE_OP_WRITE_DATA { pub request_id : u32 , pub target_system : u8 , pub target_component : u8 , pub bustype : DeviceOpBustype , pub bus : u8 , pub address : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub busname : [u8 ; 40] , pub regstart : u8 , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 128] , } impl DEVICE_OP_WRITE_DATA { pub const ENCODED_LEN : usize = 179usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bustype : DeviceOpBustype :: DEFAULT , bus : 0_u8 , address : 0_u8 , busname : [0_u8 ; 40usize] , regstart : 0_u8 , count : 0_u8 , data : [0_u8 ; 128usize] , } ; } impl Default for DEVICE_OP_WRITE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEVICE_OP_WRITE_DATA { type Message = MavMessage ; const ID : u32 = 11002u32 ; const NAME : & 'static str = "DEVICE_OP_WRITE" ; const EXTRA_CRC : u8 = 234u8 ; const ENCODED_LEN : usize = 179usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . bustype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "DeviceOpBustype" , value : tmp as u32 }) ? ; __struct . bus = buf . get_u8 () ; __struct . address = buf . get_u8 () ; for v in & mut __struct . busname { let val = buf . get_u8 () ; * v = val ; } __struct . regstart = buf . get_u8 () ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bustype as u8) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . address) ; for val in & self . busname { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . regstart) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COLLISION_DATA { pub id : u32 , pub time_to_minimum_delta : f32 , pub altitude_minimum_delta : f32 , pub horizontal_minimum_delta : f32 , pub src : MavCollisionSrc , pub action : MavCollisionAction , pub threat_level : MavCollisionThreatLevel , } impl COLLISION_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { id : 0_u32 , time_to_minimum_delta : 0.0_f32 , altitude_minimum_delta : 0.0_f32 , horizontal_minimum_delta : 0.0_f32 , src : MavCollisionSrc :: DEFAULT , action : MavCollisionAction :: DEFAULT , threat_level : MavCollisionThreatLevel :: DEFAULT , } ; } impl Default for COLLISION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COLLISION_DATA { type Message = MavMessage ; const ID : u32 = 247u32 ; const NAME : & 'static str = "COLLISION" ; const EXTRA_CRC : u8 = 81u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . time_to_minimum_delta = buf . get_f32_le () ; __struct . altitude_minimum_delta = buf . get_f32_le () ; __struct . horizontal_minimum_delta = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . src = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionSrc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . action = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionAction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . threat_level = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionThreatLevel" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_f32_le (self . time_to_minimum_delta) ; __tmp . put_f32_le (self . altitude_minimum_delta) ; __tmp . put_f32_le (self . horizontal_minimum_delta) ; __tmp . put_u8 (self . src as u8) ; __tmp . put_u8 (self . action as u8) ; __tmp . put_u8 (self . threat_level as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_COUNT_DATA { pub count : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_COUNT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { count : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_COUNT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_COUNT_DATA { type Message = MavMessage ; const ID : u32 = 44u32 ; const NAME : & 'static str = "MISSION_COUNT" ; const EXTRA_CRC : u8 = 221u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . count = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . count) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BATTERY_STATUS_DATA { pub current_consumed : i32 , pub energy_consumed : i32 , pub temperature : i16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltages : [u16 ; 10] , pub current_battery : i16 , pub id : u8 , pub battery_function : MavBatteryFunction , pub mavtype : MavBatteryType , pub battery_remaining : i8 , } impl BATTERY_STATUS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { current_consumed : 0_i32 , energy_consumed : 0_i32 , temperature : 0_i16 , voltages : [0_u16 ; 10usize] , current_battery : 0_i16 , id : 0_u8 , battery_function : MavBatteryFunction :: DEFAULT , mavtype : MavBatteryType :: DEFAULT , battery_remaining : 0_i8 , } ; } impl Default for BATTERY_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BATTERY_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 147u32 ; const NAME : & 'static str = "BATTERY_STATUS" ; const EXTRA_CRC : u8 = 154u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . current_consumed = buf . get_i32_le () ; __struct . energy_consumed = buf . get_i32_le () ; __struct . temperature = buf . get_i16_le () ; for v in & mut __struct . voltages { let val = buf . get_u16_le () ; * v = val ; } __struct . current_battery = buf . get_i16_le () ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . battery_function = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryFunction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryType" , value : tmp as u32 }) ? ; __struct . battery_remaining = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . current_consumed) ; __tmp . put_i32_le (self . energy_consumed) ; __tmp . put_i16_le (self . temperature) ; for val in & self . voltages { __tmp . put_u16_le (* val) ; } __tmp . put_i16_le (self . current_battery) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . battery_function as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_i8 (self . battery_remaining) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEEPSTALL_DATA { pub landing_lat : i32 , pub landing_lon : i32 , pub path_lat : i32 , pub path_lon : i32 , pub arc_entry_lat : i32 , pub arc_entry_lon : i32 , pub altitude : f32 , pub expected_travel_distance : f32 , pub cross_track_error : f32 , pub stage : DeepstallStage , } impl DEEPSTALL_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { landing_lat : 0_i32 , landing_lon : 0_i32 , path_lat : 0_i32 , path_lon : 0_i32 , arc_entry_lat : 0_i32 , arc_entry_lon : 0_i32 , altitude : 0.0_f32 , expected_travel_distance : 0.0_f32 , cross_track_error : 0.0_f32 , stage : DeepstallStage :: DEFAULT , } ; } impl Default for DEEPSTALL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEEPSTALL_DATA { type Message = MavMessage ; const ID : u32 = 195u32 ; const NAME : & 'static str = "DEEPSTALL" ; const EXTRA_CRC : u8 = 120u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . landing_lat = buf . get_i32_le () ; __struct . landing_lon = buf . get_i32_le () ; __struct . path_lat = buf . get_i32_le () ; __struct . path_lon = buf . get_i32_le () ; __struct . arc_entry_lat = buf . get_i32_le () ; __struct . arc_entry_lon = buf . get_i32_le () ; __struct . altitude = buf . get_f32_le () ; __struct . expected_travel_distance = buf . get_f32_le () ; __struct . cross_track_error = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . stage = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "DeepstallStage" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . landing_lat) ; __tmp . put_i32_le (self . landing_lon) ; __tmp . put_i32_le (self . path_lat) ; __tmp . put_i32_le (self . path_lon) ; __tmp . put_i32_le (self . arc_entry_lat) ; __tmp . put_i32_le (self . arc_entry_lon) ; __tmp . put_f32_le (self . altitude) ; __tmp . put_f32_le (self . expected_travel_distance) ; __tmp . put_f32_le (self . cross_track_error) ; __tmp . put_u8 (self . stage as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_PARTIAL_LIST_DATA { pub start_index : i16 , pub end_index : i16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_PARTIAL_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start_index : 0_i16 , end_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_PARTIAL_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_PARTIAL_LIST_DATA { type Message = MavMessage ; const ID : u32 = 37u32 ; const NAME : & 'static str = "MISSION_REQUEST_PARTIAL_LIST" ; const EXTRA_CRC : u8 = 212u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start_index = buf . get_i16_le () ; __struct . end_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . start_index) ; __tmp . put_i16_le (self . end_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_STATUS_DATA { pub time_boot_ms : u32 , pub flags : GimbalManagerFlags , pub gimbal_device_id : u8 , pub primary_control_sysid : u8 , pub primary_control_compid : u8 , pub secondary_control_sysid : u8 , pub secondary_control_compid : u8 , } impl GIMBAL_MANAGER_STATUS_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , flags : GimbalManagerFlags :: DEFAULT , gimbal_device_id : 0_u8 , primary_control_sysid : 0_u8 , primary_control_compid : 0_u8 , secondary_control_sysid : 0_u8 , secondary_control_compid : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 281u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_STATUS" ; const EXTRA_CRC : u8 = 48u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . gimbal_device_id = buf . get_u8 () ; __struct . primary_control_sysid = buf . get_u8 () ; __struct . primary_control_compid = buf . get_u8 () ; __struct . secondary_control_sysid = buf . get_u8 () ; __struct . secondary_control_compid = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_u8 (self . gimbal_device_id) ; __tmp . put_u8 (self . primary_control_sysid) ; __tmp . put_u8 (self . primary_control_compid) ; __tmp . put_u8 (self . secondary_control_sysid) ; __tmp . put_u8 (self . secondary_control_compid) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct STATUSTEXT_DATA { pub severity : MavSeverity , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub text : [u8 ; 50] , } impl STATUSTEXT_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { severity : MavSeverity :: DEFAULT , text : [0_u8 ; 50usize] , } ; } impl Default for STATUSTEXT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for STATUSTEXT_DATA { type Message = MavMessage ; const ID : u32 = 253u32 ; const NAME : & 'static str = "STATUSTEXT" ; const EXTRA_CRC : u8 = 83u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . severity = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavSeverity" , value : tmp as u32 }) ? ; for v in & mut __struct . text { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . severity as u8) ; for val in & self . text { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_FEEDBACK_DATA { pub time_usec : u64 , pub lat : i32 , pub lng : i32 , pub alt_msl : f32 , pub alt_rel : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub foc_len : f32 , pub img_idx : u16 , pub target_system : u8 , pub cam_idx : u8 , pub flags : CameraFeedbackFlags , } impl CAMERA_FEEDBACK_DATA { pub const ENCODED_LEN : usize = 45usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lng : 0_i32 , alt_msl : 0.0_f32 , alt_rel : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , foc_len : 0.0_f32 , img_idx : 0_u16 , target_system : 0_u8 , cam_idx : 0_u8 , flags : CameraFeedbackFlags :: DEFAULT , } ; } impl Default for CAMERA_FEEDBACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_FEEDBACK_DATA { type Message = MavMessage ; const ID : u32 = 180u32 ; const NAME : & 'static str = "CAMERA_FEEDBACK" ; const EXTRA_CRC : u8 = 52u8 ; const ENCODED_LEN : usize = 45usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lng = buf . get_i32_le () ; __struct . alt_msl = buf . get_f32_le () ; __struct . alt_rel = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . foc_len = buf . get_f32_le () ; __struct . img_idx = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . cam_idx = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . flags = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraFeedbackFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lng) ; __tmp . put_f32_le (self . alt_msl) ; __tmp . put_f32_le (self . alt_rel) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . foc_len) ; __tmp . put_u16_le (self . img_idx) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . cam_idx) ; __tmp . put_u8 (self . flags as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl PARAM_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PARAM_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 21u32 ; const NAME : & 'static str = "PARAM_REQUEST_LIST" ; const EXTRA_CRC : u8 = 159u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_RC_INPUTS_RAW_DATA { pub time_usec : u64 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub chan9_raw : u16 , pub chan10_raw : u16 , pub chan11_raw : u16 , pub chan12_raw : u16 , pub rssi : u8 , } impl HIL_RC_INPUTS_RAW_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , chan9_raw : 0_u16 , chan10_raw : 0_u16 , chan11_raw : 0_u16 , chan12_raw : 0_u16 , rssi : 0_u8 , } ; } impl Default for HIL_RC_INPUTS_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_RC_INPUTS_RAW_DATA { type Message = MavMessage ; const ID : u32 = 92u32 ; const NAME : & 'static str = "HIL_RC_INPUTS_RAW" ; const EXTRA_CRC : u8 = 54u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . chan9_raw = buf . get_u16_le () ; __struct . chan10_raw = buf . get_u16_le () ; __struct . chan11_raw = buf . get_u16_le () ; __struct . chan12_raw = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u16_le (self . chan9_raw) ; __tmp . put_u16_le (self . chan10_raw) ; __tmp . put_u16_le (self . chan11_raw) ; __tmp . put_u16_le (self . chan12_raw) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OBSTACLE_DISTANCE_3D_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub min_distance : f32 , pub max_distance : f32 , pub obstacle_id : u16 , pub sensor_type : MavDistanceSensor , pub frame : MavFrame , } impl OBSTACLE_DISTANCE_3D_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , min_distance : 0.0_f32 , max_distance : 0.0_f32 , obstacle_id : 0_u16 , sensor_type : MavDistanceSensor :: DEFAULT , frame : MavFrame :: DEFAULT , } ; } impl Default for OBSTACLE_DISTANCE_3D_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OBSTACLE_DISTANCE_3D_DATA { type Message = MavMessage ; const ID : u32 = 11037u32 ; const NAME : & 'static str = "OBSTACLE_DISTANCE_3D" ; const EXTRA_CRC : u8 = 130u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . min_distance = buf . get_f32_le () ; __struct . max_distance = buf . get_f32_le () ; __struct . obstacle_id = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . sensor_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . min_distance) ; __tmp . put_f32_le (self . max_distance) ; __tmp . put_u16_le (self . obstacle_id) ; __tmp . put_u8 (self . sensor_type as u8) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_INT_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub seq : u16 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl MISSION_ITEM_INT_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , seq : 0_u16 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for MISSION_ITEM_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_INT_DATA { type Message = MavMessage ; const ID : u32 = 73u32 ; const NAME : & 'static str = "MISSION_ITEM_INT" ; const EXTRA_CRC : u8 = 38u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; __struct . seq = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_PITCHYAW_DATA { pub flags : GimbalManagerFlags , pub pitch : f32 , pub yaw : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_PITCHYAW_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , pitch : 0.0_f32 , yaw : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_PITCHYAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_PITCHYAW_DATA { type Message = MavMessage ; const ID : u32 = 287u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_PITCHYAW" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REMOTE_LOG_BLOCK_STATUS_DATA { pub seqno : u32 , pub target_system : u8 , pub target_component : u8 , pub status : MavRemoteLogDataBlockStatuses , } impl REMOTE_LOG_BLOCK_STATUS_DATA { pub const ENCODED_LEN : usize = 7usize ; pub const DEFAULT : Self = Self { seqno : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , status : MavRemoteLogDataBlockStatuses :: DEFAULT , } ; } impl Default for REMOTE_LOG_BLOCK_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REMOTE_LOG_BLOCK_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 185u32 ; const NAME : & 'static str = "REMOTE_LOG_BLOCK_STATUS" ; const EXTRA_CRC : u8 = 186u8 ; const ENCODED_LEN : usize = 7usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seqno = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavRemoteLogDataBlockStatuses" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . seqno) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MAG_CAL_REPORT_DATA { pub fitness : f32 , pub ofs_x : f32 , pub ofs_y : f32 , pub ofs_z : f32 , pub diag_x : f32 , pub diag_y : f32 , pub diag_z : f32 , pub offdiag_x : f32 , pub offdiag_y : f32 , pub offdiag_z : f32 , pub compass_id : u8 , pub cal_mask : u8 , pub cal_status : MagCalStatus , pub autosaved : u8 , } impl MAG_CAL_REPORT_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { fitness : 0.0_f32 , ofs_x : 0.0_f32 , ofs_y : 0.0_f32 , ofs_z : 0.0_f32 , diag_x : 0.0_f32 , diag_y : 0.0_f32 , diag_z : 0.0_f32 , offdiag_x : 0.0_f32 , offdiag_y : 0.0_f32 , offdiag_z : 0.0_f32 , compass_id : 0_u8 , cal_mask : 0_u8 , cal_status : MagCalStatus :: DEFAULT , autosaved : 0_u8 , } ; } impl Default for MAG_CAL_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MAG_CAL_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 192u32 ; const NAME : & 'static str = "MAG_CAL_REPORT" ; const EXTRA_CRC : u8 = 36u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . fitness = buf . get_f32_le () ; __struct . ofs_x = buf . get_f32_le () ; __struct . ofs_y = buf . get_f32_le () ; __struct . ofs_z = buf . get_f32_le () ; __struct . diag_x = buf . get_f32_le () ; __struct . diag_y = buf . get_f32_le () ; __struct . diag_z = buf . get_f32_le () ; __struct . offdiag_x = buf . get_f32_le () ; __struct . offdiag_y = buf . get_f32_le () ; __struct . offdiag_z = buf . get_f32_le () ; __struct . compass_id = buf . get_u8 () ; __struct . cal_mask = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . cal_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MagCalStatus" , value : tmp as u32 }) ? ; __struct . autosaved = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . fitness) ; __tmp . put_f32_le (self . ofs_x) ; __tmp . put_f32_le (self . ofs_y) ; __tmp . put_f32_le (self . ofs_z) ; __tmp . put_f32_le (self . diag_x) ; __tmp . put_f32_le (self . diag_y) ; __tmp . put_f32_le (self . diag_z) ; __tmp . put_f32_le (self . offdiag_x) ; __tmp . put_f32_le (self . offdiag_y) ; __tmp . put_f32_le (self . offdiag_z) ; __tmp . put_u8 (self . compass_id) ; __tmp . put_u8 (self . cal_mask) ; __tmp . put_u8 (self . cal_status as u8) ; __tmp . put_u8 (self . autosaved) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CELLULAR_STATUS_DATA { pub mcc : u16 , pub mnc : u16 , pub lac : u16 , pub status : CellularStatusFlag , pub failure_reason : CellularNetworkFailedReason , pub mavtype : CellularNetworkRadioType , pub quality : u8 , } impl CELLULAR_STATUS_DATA { pub const ENCODED_LEN : usize = 10usize ; pub const DEFAULT : Self = Self { mcc : 0_u16 , mnc : 0_u16 , lac : 0_u16 , status : CellularStatusFlag :: DEFAULT , failure_reason : CellularNetworkFailedReason :: DEFAULT , mavtype : CellularNetworkRadioType :: DEFAULT , quality : 0_u8 , } ; } impl Default for CELLULAR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CELLULAR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 334u32 ; const NAME : & 'static str = "CELLULAR_STATUS" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 10usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mcc = buf . get_u16_le () ; __struct . mnc = buf . get_u16_le () ; __struct . lac = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularStatusFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . failure_reason = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularNetworkFailedReason" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularNetworkRadioType" , value : tmp as u32 }) ? ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . mcc) ; __tmp . put_u16_le (self . mnc) ; __tmp . put_u16_le (self . lac) ; __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . failure_reason as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA_STREAM_DATA { pub message_rate : u16 , pub stream_id : u8 , pub on_off : u8 , } impl DATA_STREAM_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { message_rate : 0_u16 , stream_id : 0_u8 , on_off : 0_u8 , } ; } impl Default for DATA_STREAM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA_STREAM_DATA { type Message = MavMessage ; const ID : u32 = 67u32 ; const NAME : & 'static str = "DATA_STREAM" ; const EXTRA_CRC : u8 = 21u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . message_rate = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; __struct . on_off = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . message_rate) ; __tmp . put_u8 (self . stream_id) ; __tmp . put_u8 (self . on_off) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SAFETY_ALLOWED_AREA_DATA { pub p1x : f32 , pub p1y : f32 , pub p1z : f32 , pub p2x : f32 , pub p2y : f32 , pub p2z : f32 , pub frame : MavFrame , } impl SAFETY_ALLOWED_AREA_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { p1x : 0.0_f32 , p1y : 0.0_f32 , p1z : 0.0_f32 , p2x : 0.0_f32 , p2y : 0.0_f32 , p2z : 0.0_f32 , frame : MavFrame :: DEFAULT , } ; } impl Default for SAFETY_ALLOWED_AREA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SAFETY_ALLOWED_AREA_DATA { type Message = MavMessage ; const ID : u32 = 55u32 ; const NAME : & 'static str = "SAFETY_ALLOWED_AREA" ; const EXTRA_CRC : u8 = 3u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . p1x = buf . get_f32_le () ; __struct . p1y = buf . get_f32_le () ; __struct . p1z = buf . get_f32_le () ; __struct . p2x = buf . get_f32_le () ; __struct . p2y = buf . get_f32_le () ; __struct . p2z = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . p1x) ; __tmp . put_f32_le (self . p1y) ; __tmp . put_f32_le (self . p1z) ; __tmp . put_f32_le (self . p2x) ; __tmp . put_f32_le (self . p2y) ; __tmp . put_f32_le (self . p2z) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_BASIC_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub id_type : MavOdidIdType , pub ua_type : MavOdidUaType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uas_id : [u8 ; 20] , } impl OPEN_DRONE_ID_BASIC_ID_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , id_type : MavOdidIdType :: DEFAULT , ua_type : MavOdidUaType :: DEFAULT , uas_id : [0_u8 ; 20usize] , } ; } impl Default for OPEN_DRONE_ID_BASIC_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_BASIC_ID_DATA { type Message = MavMessage ; const ID : u32 = 12900u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_BASIC_ID" ; const EXTRA_CRC : u8 = 114u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . id_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidIdType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . ua_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidUaType" , value : tmp as u32 }) ? ; for v in & mut __struct . uas_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . id_type as u8) ; __tmp . put_u8 (self . ua_type as u8) ; for val in & self . uas_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_GPS_GLOBAL_ORIGIN_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub target_system : u8 , } impl SET_GPS_GLOBAL_ORIGIN_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , target_system : 0_u8 , } ; } impl Default for SET_GPS_GLOBAL_ORIGIN_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_GPS_GLOBAL_ORIGIN_DATA { type Message = MavMessage ; const ID : u32 = 48u32 ; const NAME : & 'static str = "SET_GPS_GLOBAL_ORIGIN" ; const EXTRA_CRC : u8 = 41u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . target_system = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_u8 (self . target_system) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIDEO_STREAM_STATUS_DATA { pub framerate : f32 , pub bitrate : u32 , pub flags : VideoStreamStatusFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub hfov : u16 , pub stream_id : u8 , } impl VIDEO_STREAM_STATUS_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , flags : VideoStreamStatusFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , hfov : 0_u16 , stream_id : 0_u8 , } ; } impl Default for VIDEO_STREAM_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIDEO_STREAM_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 270u32 ; const NAME : & 'static str = "VIDEO_STREAM_STATUS" ; const EXTRA_CRC : u8 = 59u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamStatusFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . hfov = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . flags as u16) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u16_le (self . hfov) ; __tmp . put_u8 (self . stream_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPONENT_INFORMATION_DATA { pub time_boot_ms : u32 , pub general_metadata_file_crc : u32 , pub peripherals_metadata_file_crc : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub general_metadata_uri : [u8 ; 100] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub peripherals_metadata_uri : [u8 ; 100] , } impl COMPONENT_INFORMATION_DATA { pub const ENCODED_LEN : usize = 212usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , general_metadata_file_crc : 0_u32 , peripherals_metadata_file_crc : 0_u32 , general_metadata_uri : [0_u8 ; 100usize] , peripherals_metadata_uri : [0_u8 ; 100usize] , } ; } impl Default for COMPONENT_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPONENT_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 395u32 ; const NAME : & 'static str = "COMPONENT_INFORMATION" ; const EXTRA_CRC : u8 = 0u8 ; const ENCODED_LEN : usize = 212usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . general_metadata_file_crc = buf . get_u32_le () ; __struct . peripherals_metadata_file_crc = buf . get_u32_le () ; for v in & mut __struct . general_metadata_uri { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . peripherals_metadata_uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . general_metadata_file_crc) ; __tmp . put_u32_le (self . peripherals_metadata_file_crc) ; for val in & self . general_metadata_uri { __tmp . put_u8 (* val) ; } for val in & self . peripherals_metadata_uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIDEO_STREAM_INFORMATION_DATA { pub framerate : f32 , pub bitrate : u32 , pub flags : VideoStreamStatusFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub hfov : u16 , pub stream_id : u8 , pub count : u8 , pub mavtype : VideoStreamType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 160] , } impl VIDEO_STREAM_INFORMATION_DATA { pub const ENCODED_LEN : usize = 213usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , flags : VideoStreamStatusFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , hfov : 0_u16 , stream_id : 0_u8 , count : 0_u8 , mavtype : VideoStreamType :: DEFAULT , name : [0_u8 ; 32usize] , uri : [0_u8 ; 160usize] , } ; } impl Default for VIDEO_STREAM_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIDEO_STREAM_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 269u32 ; const NAME : & 'static str = "VIDEO_STREAM_INFORMATION" ; const EXTRA_CRC : u8 = 109u8 ; const ENCODED_LEN : usize = 213usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamStatusFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . hfov = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamType" , value : tmp as u32 }) ? ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . flags as u16) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u16_le (self . hfov) ; __tmp . put_u8 (self . stream_id) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . mavtype as u8) ; for val in & self . name { __tmp . put_u8 (* val) ; } for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_ATTITUDE_TARGET_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub body_roll_rate : f32 , pub body_pitch_rate : f32 , pub body_yaw_rate : f32 , pub thrust : f32 , pub target_system : u8 , pub target_component : u8 , pub type_mask : AttitudeTargetTypemask , } impl SET_ATTITUDE_TARGET_DATA { pub const ENCODED_LEN : usize = 39usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , body_roll_rate : 0.0_f32 , body_pitch_rate : 0.0_f32 , body_yaw_rate : 0.0_f32 , thrust : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , type_mask : AttitudeTargetTypemask :: DEFAULT , } ; } impl Default for SET_ATTITUDE_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_ATTITUDE_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 82u32 ; const NAME : & 'static str = "SET_ATTITUDE_TARGET" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 39usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . body_roll_rate = buf . get_f32_le () ; __struct . body_pitch_rate = buf . get_f32_le () ; __struct . body_yaw_rate = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . type_mask = AttitudeTargetTypemask :: from_bits (tmp & AttitudeTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AttitudeTargetTypemask" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . body_roll_rate) ; __tmp . put_f32_le (self . body_pitch_rate) ; __tmp . put_f32_le (self . body_yaw_rate) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . type_mask . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GOPRO_HEARTBEAT_DATA { pub status : GoproHeartbeatStatus , pub capture_mode : GoproCaptureMode , pub flags : GoproHeartbeatFlags , } impl GOPRO_HEARTBEAT_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { status : GoproHeartbeatStatus :: DEFAULT , capture_mode : GoproCaptureMode :: DEFAULT , flags : GoproHeartbeatFlags :: DEFAULT , } ; } impl Default for GOPRO_HEARTBEAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GOPRO_HEARTBEAT_DATA { type Message = MavMessage ; const ID : u32 = 215u32 ; const NAME : & 'static str = "GOPRO_HEARTBEAT" ; const EXTRA_CRC : u8 = 101u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproHeartbeatStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . capture_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GoproCaptureMode" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = GoproHeartbeatFlags :: from_bits (tmp & GoproHeartbeatFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GoproHeartbeatFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . capture_mode as u8) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_RAW_DATA { pub time_boot_ms : u32 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub port : u8 , pub rssi : u8 , } impl RC_CHANNELS_RAW_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , port : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_RAW_DATA { type Message = MavMessage ; const ID : u32 = 35u32 ; const NAME : & 'static str = "RC_CHANNELS_RAW" ; const EXTRA_CRC : u8 = 244u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . port = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u8 (self . port) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ACTUATOR_OUTPUT_STATUS_DATA { pub time_usec : u64 , pub active : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub actuator : [f32 ; 32] , } impl ACTUATOR_OUTPUT_STATUS_DATA { pub const ENCODED_LEN : usize = 140usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , active : 0_u32 , actuator : [0.0_f32 ; 32usize] , } ; } impl Default for ACTUATOR_OUTPUT_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ACTUATOR_OUTPUT_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 375u32 ; const NAME : & 'static str = "ACTUATOR_OUTPUT_STATUS" ; const EXTRA_CRC : u8 = 251u8 ; const ENCODED_LEN : usize = 140usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . active = buf . get_u32_le () ; for v in & mut __struct . actuator { let val = buf . get_f32_le () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . active) ; for val in & self . actuator { __tmp . put_f32_le (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HERELINK_TELEM_DATA { } impl HERELINK_TELEM_DATA { pub const ENCODED_LEN : usize = 0usize ; pub const DEFAULT : Self = Self { } ; } impl Default for HERELINK_TELEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HERELINK_TELEM_DATA { type Message = MavMessage ; const ID : u32 = 50003u32 ; const NAME : & 'static str = "HERELINK_TELEM" ; const EXTRA_CRC : u8 = 53u8 ; const ENCODED_LEN : usize = 0usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { Ok (Self :: default ()) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SAFETY_SET_ALLOWED_AREA_DATA { pub p1x : f32 , pub p1y : f32 , pub p1z : f32 , pub p2x : f32 , pub p2y : f32 , pub p2z : f32 , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , } impl SAFETY_SET_ALLOWED_AREA_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { p1x : 0.0_f32 , p1y : 0.0_f32 , p1z : 0.0_f32 , p2x : 0.0_f32 , p2y : 0.0_f32 , p2z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , } ; } impl Default for SAFETY_SET_ALLOWED_AREA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SAFETY_SET_ALLOWED_AREA_DATA { type Message = MavMessage ; const ID : u32 = 54u32 ; const NAME : & 'static str = "SAFETY_SET_ALLOWED_AREA" ; const EXTRA_CRC : u8 = 15u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . p1x = buf . get_f32_le () ; __struct . p1y = buf . get_f32_le () ; __struct . p1z = buf . get_f32_le () ; __struct . p2x = buf . get_f32_le () ; __struct . p2y = buf . get_f32_le () ; __struct . p2z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . p1x) ; __tmp . put_f32_le (self . p1y) ; __tmp . put_f32_le (self . p1z) ; __tmp . put_f32_le (self . p2x) ; __tmp . put_f32_le (self . p2y) ; __tmp . put_f32_le (self . p2z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AIRSPEED_AUTOCAL_DATA { pub vx : f32 , pub vy : f32 , pub vz : f32 , pub diff_pressure : f32 , pub EAS2TAS : f32 , pub ratio : f32 , pub state_x : f32 , pub state_y : f32 , pub state_z : f32 , pub Pax : f32 , pub Pby : f32 , pub Pcz : f32 , } impl AIRSPEED_AUTOCAL_DATA { pub const ENCODED_LEN : usize = 48usize ; pub const DEFAULT : Self = Self { vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , diff_pressure : 0.0_f32 , EAS2TAS : 0.0_f32 , ratio : 0.0_f32 , state_x : 0.0_f32 , state_y : 0.0_f32 , state_z : 0.0_f32 , Pax : 0.0_f32 , Pby : 0.0_f32 , Pcz : 0.0_f32 , } ; } impl Default for AIRSPEED_AUTOCAL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AIRSPEED_AUTOCAL_DATA { type Message = MavMessage ; const ID : u32 = 174u32 ; const NAME : & 'static str = "AIRSPEED_AUTOCAL" ; const EXTRA_CRC : u8 = 167u8 ; const ENCODED_LEN : usize = 48usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . EAS2TAS = buf . get_f32_le () ; __struct . ratio = buf . get_f32_le () ; __struct . state_x = buf . get_f32_le () ; __struct . state_y = buf . get_f32_le () ; __struct . state_z = buf . get_f32_le () ; __struct . Pax = buf . get_f32_le () ; __struct . Pby = buf . get_f32_le () ; __struct . Pcz = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . EAS2TAS) ; __tmp . put_f32_le (self . ratio) ; __tmp . put_f32_le (self . state_x) ; __tmp . put_f32_le (self . state_y) ; __tmp . put_f32_le (self . state_z) ; __tmp . put_f32_le (self . Pax) ; __tmp . put_f32_le (self . Pby) ; __tmp . put_f32_le (self . Pcz) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_TELEMETRY_1_TO_4_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltage : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub current : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub totalcurrent : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rpm : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub count : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature : [u8 ; 4] , } impl ESC_TELEMETRY_1_TO_4_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { voltage : [0_u16 ; 4usize] , current : [0_u16 ; 4usize] , totalcurrent : [0_u16 ; 4usize] , rpm : [0_u16 ; 4usize] , count : [0_u16 ; 4usize] , temperature : [0_u8 ; 4usize] , } ; } impl Default for ESC_TELEMETRY_1_TO_4_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_TELEMETRY_1_TO_4_DATA { type Message = MavMessage ; const ID : u32 = 11030u32 ; const NAME : & 'static str = "ESC_TELEMETRY_1_TO_4" ; const EXTRA_CRC : u8 = 144u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . voltage { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . current { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . totalcurrent { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . rpm { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . count { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . temperature { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . voltage { __tmp . put_u16_le (* val) ; } for val in & self . current { __tmp . put_u16_le (* val) ; } for val in & self . totalcurrent { __tmp . put_u16_le (* val) ; } for val in & self . rpm { __tmp . put_u16_le (* val) ; } for val in & self . count { __tmp . put_u16_le (* val) ; } for val in & self . temperature { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_REPORT_DATA { pub delta_time : f32 , pub delta_angle_x : f32 , pub delta_angle_y : f32 , pub delta_angle_z : f32 , pub delta_velocity_x : f32 , pub delta_velocity_y : f32 , pub delta_velocity_z : f32 , pub joint_roll : f32 , pub joint_el : f32 , pub joint_az : f32 , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_REPORT_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { delta_time : 0.0_f32 , delta_angle_x : 0.0_f32 , delta_angle_y : 0.0_f32 , delta_angle_z : 0.0_f32 , delta_velocity_x : 0.0_f32 , delta_velocity_y : 0.0_f32 , delta_velocity_z : 0.0_f32 , joint_roll : 0.0_f32 , joint_el : 0.0_f32 , joint_az : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 200u32 ; const NAME : & 'static str = "GIMBAL_REPORT" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . delta_time = buf . get_f32_le () ; __struct . delta_angle_x = buf . get_f32_le () ; __struct . delta_angle_y = buf . get_f32_le () ; __struct . delta_angle_z = buf . get_f32_le () ; __struct . delta_velocity_x = buf . get_f32_le () ; __struct . delta_velocity_y = buf . get_f32_le () ; __struct . delta_velocity_z = buf . get_f32_le () ; __struct . joint_roll = buf . get_f32_le () ; __struct . joint_el = buf . get_f32_le () ; __struct . joint_az = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . delta_time) ; __tmp . put_f32_le (self . delta_angle_x) ; __tmp . put_f32_le (self . delta_angle_y) ; __tmp . put_f32_le (self . delta_angle_z) ; __tmp . put_f32_le (self . delta_velocity_x) ; __tmp . put_f32_le (self . delta_velocity_y) ; __tmp . put_f32_le (self . delta_velocity_z) ; __tmp . put_f32_le (self . joint_roll) ; __tmp . put_f32_le (self . joint_el) ; __tmp . put_f32_le (self . joint_az) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_SPEED_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , } impl VISION_SPEED_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , } ; } impl Default for VISION_SPEED_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_SPEED_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 103u32 ; const NAME : & 'static str = "VISION_SPEED_ESTIMATE" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ONBOARD_COMPUTER_STATUS_DATA { pub time_usec : u64 , pub uptime : u32 , pub ram_usage : u32 , pub ram_total : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_type : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_usage : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_total : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_type : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_tx_rate : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_rx_rate : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_tx_max : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_rx_max : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub fan_speed : [i16 ; 4] , pub mavtype : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cpu_cores : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cpu_combined : [u8 ; 10] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub gpu_cores : [u8 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub gpu_combined : [u8 ; 10] , pub temperature_board : i8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature_core : [i8 ; 8] , } impl ONBOARD_COMPUTER_STATUS_DATA { pub const ENCODED_LEN : usize = 238usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime : 0_u32 , ram_usage : 0_u32 , ram_total : 0_u32 , storage_type : [0_u32 ; 4usize] , storage_usage : [0_u32 ; 4usize] , storage_total : [0_u32 ; 4usize] , link_type : [0_u32 ; 6usize] , link_tx_rate : [0_u32 ; 6usize] , link_rx_rate : [0_u32 ; 6usize] , link_tx_max : [0_u32 ; 6usize] , link_rx_max : [0_u32 ; 6usize] , fan_speed : [0_i16 ; 4usize] , mavtype : 0_u8 , cpu_cores : [0_u8 ; 8usize] , cpu_combined : [0_u8 ; 10usize] , gpu_cores : [0_u8 ; 4usize] , gpu_combined : [0_u8 ; 10usize] , temperature_board : 0_i8 , temperature_core : [0_i8 ; 8usize] , } ; } impl Default for ONBOARD_COMPUTER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ONBOARD_COMPUTER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 390u32 ; const NAME : & 'static str = "ONBOARD_COMPUTER_STATUS" ; const EXTRA_CRC : u8 = 156u8 ; const ENCODED_LEN : usize = 238usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime = buf . get_u32_le () ; __struct . ram_usage = buf . get_u32_le () ; __struct . ram_total = buf . get_u32_le () ; for v in & mut __struct . storage_type { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . storage_usage { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . storage_total { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_type { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_tx_rate { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_rx_rate { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_tx_max { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_rx_max { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . fan_speed { let val = buf . get_i16_le () ; * v = val ; } __struct . mavtype = buf . get_u8 () ; for v in & mut __struct . cpu_cores { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . cpu_combined { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . gpu_cores { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . gpu_combined { let val = buf . get_u8 () ; * v = val ; } __struct . temperature_board = buf . get_i8 () ; for v in & mut __struct . temperature_core { let val = buf . get_i8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime) ; __tmp . put_u32_le (self . ram_usage) ; __tmp . put_u32_le (self . ram_total) ; for val in & self . storage_type { __tmp . put_u32_le (* val) ; } for val in & self . storage_usage { __tmp . put_u32_le (* val) ; } for val in & self . storage_total { __tmp . put_u32_le (* val) ; } for val in & self . link_type { __tmp . put_u32_le (* val) ; } for val in & self . link_tx_rate { __tmp . put_u32_le (* val) ; } for val in & self . link_rx_rate { __tmp . put_u32_le (* val) ; } for val in & self . link_tx_max { __tmp . put_u32_le (* val) ; } for val in & self . link_rx_max { __tmp . put_u32_le (* val) ; } for val in & self . fan_speed { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . mavtype) ; for val in & self . cpu_cores { __tmp . put_u8 (* val) ; } for val in & self . cpu_combined { __tmp . put_u8 (* val) ; } for val in & self . gpu_cores { __tmp . put_u8 (* val) ; } for val in & self . gpu_combined { __tmp . put_u8 (* val) ; } __tmp . put_i8 (self . temperature_board) ; for val in & self . temperature_core { __tmp . put_i8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MCU_STATUS_DATA { pub MCU_temperature : i16 , pub MCU_voltage : u16 , pub MCU_voltage_min : u16 , pub MCU_voltage_max : u16 , pub id : u8 , } impl MCU_STATUS_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { MCU_temperature : 0_i16 , MCU_voltage : 0_u16 , MCU_voltage_min : 0_u16 , MCU_voltage_max : 0_u16 , id : 0_u8 , } ; } impl Default for MCU_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MCU_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 11039u32 ; const NAME : & 'static str = "MCU_STATUS" ; const EXTRA_CRC : u8 = 142u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . MCU_temperature = buf . get_i16_le () ; __struct . MCU_voltage = buf . get_u16_le () ; __struct . MCU_voltage_min = buf . get_u16_le () ; __struct . MCU_voltage_max = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . MCU_temperature) ; __tmp . put_u16_le (self . MCU_voltage) ; __tmp . put_u16_le (self . MCU_voltage_min) ; __tmp . put_u16_le (self . MCU_voltage_max) ; __tmp . put_u8 (self . id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_DATA_DATA { pub ofs : u32 , pub count : u32 , pub id : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_DATA_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { ofs : 0_u32 , count : 0_u32 , id : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_DATA_DATA { type Message = MavMessage ; const ID : u32 = 119u32 ; const NAME : & 'static str = "LOG_REQUEST_DATA" ; const EXTRA_CRC : u8 = 116u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ofs = buf . get_u32_le () ; __struct . count = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ofs) ; __tmp . put_u32_le (self . count) ; __tmp . put_u16_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_INT_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl COMMAND_INT_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for COMMAND_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_INT_DATA { type Message = MavMessage ; const ID : u32 = 75u32 ; const NAME : & 'static str = "COMMAND_INT" ; const EXTRA_CRC : u8 = 158u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ALTITUDE_DATA { pub time_usec : u64 , pub altitude_monotonic : f32 , pub altitude_amsl : f32 , pub altitude_local : f32 , pub altitude_relative : f32 , pub altitude_terrain : f32 , pub bottom_clearance : f32 , } impl ALTITUDE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , altitude_monotonic : 0.0_f32 , altitude_amsl : 0.0_f32 , altitude_local : 0.0_f32 , altitude_relative : 0.0_f32 , altitude_terrain : 0.0_f32 , bottom_clearance : 0.0_f32 , } ; } impl Default for ALTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ALTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 141u32 ; const NAME : & 'static str = "ALTITUDE" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . altitude_monotonic = buf . get_f32_le () ; __struct . altitude_amsl = buf . get_f32_le () ; __struct . altitude_local = buf . get_f32_le () ; __struct . altitude_relative = buf . get_f32_le () ; __struct . altitude_terrain = buf . get_f32_le () ; __struct . bottom_clearance = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . altitude_monotonic) ; __tmp . put_f32_le (self . altitude_amsl) ; __tmp . put_f32_le (self . altitude_local) ; __tmp . put_f32_le (self . altitude_relative) ; __tmp . put_f32_le (self . altitude_terrain) ; __tmp . put_f32_le (self . bottom_clearance) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FOLLOW_TARGET_DATA { pub timestamp : u64 , pub custom_state : u64 , pub lat : i32 , pub lon : i32 , pub alt : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub attitude_q : [f32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rates : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub position_cov : [f32 ; 3] , pub est_capabilities : u8 , } impl FOLLOW_TARGET_DATA { pub const ENCODED_LEN : usize = 93usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , custom_state : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , vel : [0.0_f32 ; 3usize] , acc : [0.0_f32 ; 3usize] , attitude_q : [0.0_f32 ; 4usize] , rates : [0.0_f32 ; 3usize] , position_cov : [0.0_f32 ; 3usize] , est_capabilities : 0_u8 , } ; } impl Default for FOLLOW_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FOLLOW_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 144u32 ; const NAME : & 'static str = "FOLLOW_TARGET" ; const EXTRA_CRC : u8 = 127u8 ; const ENCODED_LEN : usize = 93usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . custom_state = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; for v in & mut __struct . vel { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . attitude_q { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . rates { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . position_cov { let val = buf . get_f32_le () ; * v = val ; } __struct . est_capabilities = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u64_le (self . custom_state) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; for val in & self . vel { __tmp . put_f32_le (* val) ; } for val in & self . acc { __tmp . put_f32_le (* val) ; } for val in & self . attitude_q { __tmp . put_f32_le (* val) ; } for val in & self . rates { __tmp . put_f32_le (* val) ; } for val in & self . position_cov { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . est_capabilities) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_STATUS_DATA { pub satellites_visible : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_prn : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_used : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_elevation : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_azimuth : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_snr : [u8 ; 20] , } impl GPS_STATUS_DATA { pub const ENCODED_LEN : usize = 101usize ; pub const DEFAULT : Self = Self { satellites_visible : 0_u8 , satellite_prn : [0_u8 ; 20usize] , satellite_used : [0_u8 ; 20usize] , satellite_elevation : [0_u8 ; 20usize] , satellite_azimuth : [0_u8 ; 20usize] , satellite_snr : [0_u8 ; 20usize] , } ; } impl Default for GPS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 25u32 ; const NAME : & 'static str = "GPS_STATUS" ; const EXTRA_CRC : u8 = 23u8 ; const ENCODED_LEN : usize = 101usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . satellites_visible = buf . get_u8 () ; for v in & mut __struct . satellite_prn { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_used { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_elevation { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_azimuth { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_snr { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . satellites_visible) ; for val in & self . satellite_prn { __tmp . put_u8 (* val) ; } for val in & self . satellite_used { __tmp . put_u8 (* val) ; } for val in & self . satellite_elevation { __tmp . put_u8 (* val) ; } for val in & self . satellite_azimuth { __tmp . put_u8 (* val) ; } for val in & self . satellite_snr { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OSD_PARAM_CONFIG_DATA { pub request_id : u32 , pub min_value : f32 , pub max_value : f32 , pub increment : f32 , pub target_system : u8 , pub target_component : u8 , pub osd_screen : u8 , pub osd_index : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub config_type : OsdParamConfigType , } impl OSD_PARAM_CONFIG_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { request_id : 0_u32 , min_value : 0.0_f32 , max_value : 0.0_f32 , increment : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , osd_screen : 0_u8 , osd_index : 0_u8 , param_id : [0_u8 ; 16usize] , config_type : OsdParamConfigType :: DEFAULT , } ; } impl Default for OSD_PARAM_CONFIG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OSD_PARAM_CONFIG_DATA { type Message = MavMessage ; const ID : u32 = 11033u32 ; const NAME : & 'static str = "OSD_PARAM_CONFIG" ; const EXTRA_CRC : u8 = 195u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u32_le () ; __struct . min_value = buf . get_f32_le () ; __struct . max_value = buf . get_f32_le () ; __struct . increment = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . osd_screen = buf . get_u8 () ; __struct . osd_index = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . config_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "OsdParamConfigType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . request_id) ; __tmp . put_f32_le (self . min_value) ; __tmp . put_f32_le (self . max_value) ; __tmp . put_f32_le (self . increment) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . osd_screen) ; __tmp . put_u8 (self . osd_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . config_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Clone , PartialEq , Debug)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMessage { GIMBAL_CONTROL (GIMBAL_CONTROL_DATA) , FENCE_FETCH_POINT (FENCE_FETCH_POINT_DATA) , COMPONENT_METADATA (COMPONENT_METADATA_DATA) , PARAM_EXT_REQUEST_READ (PARAM_EXT_REQUEST_READ_DATA) , WINCH_STATUS (WINCH_STATUS_DATA) , PARAM_REQUEST_READ (PARAM_REQUEST_READ_DATA) , GIMBAL_MANAGER_SET_ATTITUDE (GIMBAL_MANAGER_SET_ATTITUDE_DATA) , AUTOPILOT_VERSION_REQUEST (AUTOPILOT_VERSION_REQUEST_DATA) , TRAJECTORY_REPRESENTATION_WAYPOINTS (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA) , POSITION_TARGET_LOCAL_NED (POSITION_TARGET_LOCAL_NED_DATA) , MANUAL_SETPOINT (MANUAL_SETPOINT_DATA) , OPEN_DRONE_ID_ARM_STATUS (OPEN_DRONE_ID_ARM_STATUS_DATA) , AUTOPILOT_VERSION (AUTOPILOT_VERSION_DATA) , DATA16 (DATA16_DATA) , MISSION_CURRENT (MISSION_CURRENT_DATA) , COMMAND_LONG (COMMAND_LONG_DATA) , ATTITUDE_TARGET (ATTITUDE_TARGET_DATA) , MAG_CAL_PROGRESS (MAG_CAL_PROGRESS_DATA) , MOUNT_CONFIGURE (MOUNT_CONFIGURE_DATA) , HIL_SENSOR (HIL_SENSOR_DATA) , REMOTE_LOG_DATA_BLOCK (REMOTE_LOG_DATA_BLOCK_DATA) , GIMBAL_TORQUE_CMD_REPORT (GIMBAL_TORQUE_CMD_REPORT_DATA) , CAMERA_FOV_STATUS (CAMERA_FOV_STATUS_DATA) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA) , TERRAIN_REQUEST (TERRAIN_REQUEST_DATA) , GPS_INJECT_DATA (GPS_INJECT_DATA_DATA) , LOCAL_POSITION_NED (LOCAL_POSITION_NED_DATA) , UAVCAN_NODE_STATUS (UAVCAN_NODE_STATUS_DATA) , MISSION_REQUEST (MISSION_REQUEST_DATA) , REQUEST_DATA_STREAM (REQUEST_DATA_STREAM_DATA) , HOME_POSITION (HOME_POSITION_DATA) , GPS2_RTK (GPS2_RTK_DATA) , WHEEL_DISTANCE (WHEEL_DISTANCE_DATA) , LOCAL_POSITION_NED_COV (LOCAL_POSITION_NED_COV_DATA) , OPEN_DRONE_ID_OPERATOR_ID (OPEN_DRONE_ID_OPERATOR_ID_DATA) , ATT_POS_MOCAP (ATT_POS_MOCAP_DATA) , DATA32 (DATA32_DATA) , LED_CONTROL (LED_CONTROL_DATA) , PROTOCOL_VERSION (PROTOCOL_VERSION_DATA) , TERRAIN_CHECK (TERRAIN_CHECK_DATA) , OPEN_DRONE_ID_SYSTEM_UPDATE (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA) , UAVIONIX_ADSB_OUT_CFG (UAVIONIX_ADSB_OUT_CFG_DATA) , DATA96 (DATA96_DATA) , UTM_GLOBAL_POSITION (UTM_GLOBAL_POSITION_DATA) , GOPRO_SET_REQUEST (GOPRO_SET_REQUEST_DATA) , ESC_TELEMETRY_5_TO_8 (ESC_TELEMETRY_5_TO_8_DATA) , WIND_COV (WIND_COV_DATA) , MISSION_REQUEST_LIST (MISSION_REQUEST_LIST_DATA) , PLAY_TUNE (PLAY_TUNE_DATA) , VISION_POSITION_ESTIMATE (VISION_POSITION_ESTIMATE_DATA) , LOG_REQUEST_END (LOG_REQUEST_END_DATA) , OPEN_DRONE_ID_SYSTEM (OPEN_DRONE_ID_SYSTEM_DATA) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA) , FENCE_POINT (FENCE_POINT_DATA) , FILE_TRANSFER_PROTOCOL (FILE_TRANSFER_PROTOCOL_DATA) , HIL_CONTROLS (HIL_CONTROLS_DATA) , TIME_ESTIMATE_TO_TARGET (TIME_ESTIMATE_TO_TARGET_DATA) , PING (PING_DATA) , CUBEPILOT_RAW_RC (CUBEPILOT_RAW_RC_DATA) , PARAM_SET (PARAM_SET_DATA) , SYSTEM_TIME (SYSTEM_TIME_DATA) , MOUNT_CONTROL (MOUNT_CONTROL_DATA) , SIMSTATE (SIMSTATE_DATA) , SCALED_PRESSURE2 (SCALED_PRESSURE2_DATA) , AHRS2 (AHRS2_DATA) , PLAY_TUNE_V2 (PLAY_TUNE_V2_DATA) , GIMBAL_DEVICE_SET_ATTITUDE (GIMBAL_DEVICE_SET_ATTITUDE_DATA) , SIM_STATE (SIM_STATE_DATA) , HIL_STATE (HIL_STATE_DATA) , GOPRO_GET_REQUEST (GOPRO_GET_REQUEST_DATA) , RANGEFINDER (RANGEFINDER_DATA) , OSD_PARAM_CONFIG_REPLY (OSD_PARAM_CONFIG_REPLY_DATA) , BATTERY2 (BATTERY2_DATA) , PARAM_EXT_VALUE (PARAM_EXT_VALUE_DATA) , GPS_RTK (GPS_RTK_DATA) , MESSAGE_INTERVAL (MESSAGE_INTERVAL_DATA) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA) , SCALED_IMU (SCALED_IMU_DATA) , HIGH_LATENCY (HIGH_LATENCY_DATA) , CAMERA_IMAGE_CAPTURED (CAMERA_IMAGE_CAPTURED_DATA) , LIMITS_STATUS (LIMITS_STATUS_DATA) , AUTH_KEY (AUTH_KEY_DATA) , DATA_TRANSMISSION_HANDSHAKE (DATA_TRANSMISSION_HANDSHAKE_DATA) , CHANGE_OPERATOR_CONTROL (CHANGE_OPERATOR_CONTROL_DATA) , LINK_NODE_STATUS (LINK_NODE_STATUS_DATA) , PID_TUNING (PID_TUNING_DATA) , ADAP_TUNING (ADAP_TUNING_DATA) , ESC_INFO (ESC_INFO_DATA) , TUNNEL (TUNNEL_DATA) , OPTICAL_FLOW_RAD (OPTICAL_FLOW_RAD_DATA) , TERRAIN_DATA (TERRAIN_DATA_DATA) , AHRS (AHRS_DATA) , SETUP_SIGNING (SETUP_SIGNING_DATA) , MISSION_WRITE_PARTIAL_LIST (MISSION_WRITE_PARTIAL_LIST_DATA) , GPS_INPUT (GPS_INPUT_DATA) , VFR_HUD (VFR_HUD_DATA) , POWER_STATUS (POWER_STATUS_DATA) , MISSION_SET_CURRENT (MISSION_SET_CURRENT_DATA) , RALLY_POINT (RALLY_POINT_DATA) , GOPRO_SET_RESPONSE (GOPRO_SET_RESPONSE_DATA) , DEVICE_OP_WRITE_REPLY (DEVICE_OP_WRITE_REPLY_DATA) , ESC_TELEMETRY_9_TO_12 (ESC_TELEMETRY_9_TO_12_DATA) , ACTUATOR_CONTROL_TARGET (ACTUATOR_CONTROL_TARGET_DATA) , RALLY_FETCH_POINT (RALLY_FETCH_POINT_DATA) , CUBEPILOT_FIRMWARE_UPDATE_RESP (CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA) , V2_EXTENSION (V2_EXTENSION_DATA) , GLOBAL_POSITION_INT (GLOBAL_POSITION_INT_DATA) , TRAJECTORY_REPRESENTATION_BEZIER (TRAJECTORY_REPRESENTATION_BEZIER_DATA) , RAW_RPM (RAW_RPM_DATA) , SET_HOME_POSITION (SET_HOME_POSITION_DATA) , RESOURCE_REQUEST (RESOURCE_REQUEST_DATA) , ESC_STATUS (ESC_STATUS_DATA) , WIND (WIND_DATA) , EXTENDED_SYS_STATE (EXTENDED_SYS_STATE_DATA) , COMMAND_ACK (COMMAND_ACK_DATA) , PARAM_VALUE (PARAM_VALUE_DATA) , HEARTBEAT (HEARTBEAT_DATA) , GIMBAL_DEVICE_INFORMATION (GIMBAL_DEVICE_INFORMATION_DATA) , DEBUG (DEBUG_DATA) , MOUNT_ORIENTATION (MOUNT_ORIENTATION_DATA) , RC_CHANNELS (RC_CHANNELS_DATA) , VICON_POSITION_ESTIMATE (VICON_POSITION_ESTIMATE_DATA) , CAMERA_CAPTURE_STATUS (CAMERA_CAPTURE_STATUS_DATA) , CONTROL_SYSTEM_STATE (CONTROL_SYSTEM_STATE_DATA) , CAMERA_SETTINGS (CAMERA_SETTINGS_DATA) , SERIAL_CONTROL (SERIAL_CONTROL_DATA) , CAN_FILTER_MODIFY (CAN_FILTER_MODIFY_DATA) , PARAM_EXT_ACK (PARAM_EXT_ACK_DATA) , CAMERA_TRACKING_IMAGE_STATUS (CAMERA_TRACKING_IMAGE_STATUS_DATA) , COMMAND_CANCEL (COMMAND_CANCEL_DATA) , SET_MAG_OFFSETS (SET_MAG_OFFSETS_DATA) , ADSB_VEHICLE (ADSB_VEHICLE_DATA) , DIGICAM_CONTROL (DIGICAM_CONTROL_DATA) , GPS2_RAW (GPS2_RAW_DATA) , OPEN_DRONE_ID_LOCATION (OPEN_DRONE_ID_LOCATION_DATA) , REQUEST_EVENT (REQUEST_EVENT_DATA) , CAMERA_STATUS (CAMERA_STATUS_DATA) , HYGROMETER_SENSOR (HYGROMETER_SENSOR_DATA) , STORAGE_INFORMATION (STORAGE_INFORMATION_DATA) , MISSION_ACK (MISSION_ACK_DATA) , LOGGING_ACK (LOGGING_ACK_DATA) , MEMINFO (MEMINFO_DATA) , DEVICE_OP_READ (DEVICE_OP_READ_DATA) , VISION_POSITION_DELTA (VISION_POSITION_DELTA_DATA) , ESTIMATOR_STATUS (ESTIMATOR_STATUS_DATA) , OSD_PARAM_SHOW_CONFIG_REPLY (OSD_PARAM_SHOW_CONFIG_REPLY_DATA) , MEMORY_VECT (MEMORY_VECT_DATA) , EKF_STATUS_REPORT (EKF_STATUS_REPORT_DATA) , PARAM_EXT_SET (PARAM_EXT_SET_DATA) , HWSTATUS (HWSTATUS_DATA) , ICAROUS_KINEMATIC_BANDS (ICAROUS_KINEMATIC_BANDS_DATA) , OBSTACLE_DISTANCE (OBSTACLE_DISTANCE_DATA) , AIS_VESSEL (AIS_VESSEL_DATA) , GOPRO_GET_RESPONSE (GOPRO_GET_RESPONSE_DATA) , CAN_FRAME (CAN_FRAME_DATA) , GLOBAL_VISION_POSITION_ESTIMATE (GLOBAL_VISION_POSITION_ESTIMATE_DATA) , OPTICAL_FLOW (OPTICAL_FLOW_DATA) , SERVO_OUTPUT_RAW (SERVO_OUTPUT_RAW_DATA) , LOG_ERASE (LOG_ERASE_DATA) , EVENT (EVENT_DATA) , DEBUG_VECT (DEBUG_VECT_DATA) , RAW_IMU (RAW_IMU_DATA) , AHRS3 (AHRS3_DATA) , ISBD_LINK_STATUS (ISBD_LINK_STATUS_DATA) , HERELINK_VIDEO_STREAM_INFORMATION (HERELINK_VIDEO_STREAM_INFORMATION_DATA) , HIL_ACTUATOR_CONTROLS (HIL_ACTUATOR_CONTROLS_DATA) , ENCAPSULATED_DATA (ENCAPSULATED_DATA_DATA) , UAVCAN_NODE_INFO (UAVCAN_NODE_INFO_DATA) , HIL_STATE_QUATERNION (HIL_STATE_QUATERNION_DATA) , LOGGING_DATA_ACKED (LOGGING_DATA_ACKED_DATA) , FLIGHT_INFORMATION (FLIGHT_INFORMATION_DATA) , DEVICE_OP_READ_REPLY (DEVICE_OP_READ_REPLY_DATA) , GPS_RAW_INT (GPS_RAW_INT_DATA) , GIMBAL_DEVICE_ATTITUDE_STATUS (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA) , RPM (RPM_DATA) , AOA_SSA (AOA_SSA_DATA) , OPEN_DRONE_ID_MESSAGE_PACK (OPEN_DRONE_ID_MESSAGE_PACK_DATA) , WATER_DEPTH (WATER_DEPTH_DATA) , CAMERA_TRACKING_GEO_STATUS (CAMERA_TRACKING_GEO_STATUS_DATA) , CAMERA_INFORMATION (CAMERA_INFORMATION_DATA) , BUTTON_CHANGE (BUTTON_CHANGE_DATA) , RAW_PRESSURE (RAW_PRESSURE_DATA) , HIGHRES_IMU (HIGHRES_IMU_DATA) , PARAM_MAP_RC (PARAM_MAP_RC_DATA) , NAMED_VALUE_INT (NAMED_VALUE_INT_DATA) , TERRAIN_REPORT (TERRAIN_REPORT_DATA) , RC_CHANNELS_SCALED (RC_CHANNELS_SCALED_DATA) , ORBIT_EXECUTION_STATUS (ORBIT_EXECUTION_STATUS_DATA) , SCALED_IMU3 (SCALED_IMU3_DATA) , SENSOR_OFFSETS (SENSOR_OFFSETS_DATA) , RC_CHANNELS_OVERRIDE (RC_CHANNELS_OVERRIDE_DATA) , RADIO (RADIO_DATA) , POSITION_TARGET_GLOBAL_INT (POSITION_TARGET_GLOBAL_INT_DATA) , MANUAL_CONTROL (MANUAL_CONTROL_DATA) , CHANGE_OPERATOR_CONTROL_ACK (CHANGE_OPERATOR_CONTROL_ACK_DATA) , SCALED_PRESSURE3 (SCALED_PRESSURE3_DATA) , PARAM_EXT_REQUEST_LIST (PARAM_EXT_REQUEST_LIST_DATA) , MISSION_CLEAR_ALL (MISSION_CLEAR_ALL_DATA) , GIMBAL_MANAGER_INFORMATION (GIMBAL_MANAGER_INFORMATION_DATA) , CELLULAR_CONFIG (CELLULAR_CONFIG_DATA) , LOG_ENTRY (LOG_ENTRY_DATA) , VIBRATION (VIBRATION_DATA) , SYS_STATUS (SYS_STATUS_DATA) , GLOBAL_POSITION_INT_COV (GLOBAL_POSITION_INT_COV_DATA) , ATTITUDE_QUATERNION_COV (ATTITUDE_QUATERNION_COV_DATA) , ATTITUDE_QUATERNION (ATTITUDE_QUATERNION_DATA) , FENCE_STATUS (FENCE_STATUS_DATA) , ICAROUS_HEARTBEAT (ICAROUS_HEARTBEAT_DATA) , HIL_GPS (HIL_GPS_DATA) , TIMESYNC (TIMESYNC_DATA) , GPS_RTCM_DATA (GPS_RTCM_DATA_DATA) , GIMBAL_MANAGER_SET_MANUAL_CONTROL (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA) , SMART_BATTERY_INFO (SMART_BATTERY_INFO_DATA) , DATA64 (DATA64_DATA) , DISTANCE_SENSOR (DISTANCE_SENSOR_DATA) , EFI_STATUS (EFI_STATUS_DATA) , SET_MODE (SET_MODE_DATA) , MISSION_ITEM (MISSION_ITEM_DATA) , NAMED_VALUE_FLOAT (NAMED_VALUE_FLOAT_DATA) , RESPONSE_EVENT_ERROR (RESPONSE_EVENT_ERROR_DATA) , SCALED_IMU2 (SCALED_IMU2_DATA) , ATTITUDE (ATTITUDE_DATA) , LANDING_TARGET (LANDING_TARGET_DATA) , OPEN_DRONE_ID_AUTHENTICATION (OPEN_DRONE_ID_AUTHENTICATION_DATA) , NAV_CONTROLLER_OUTPUT (NAV_CONTROLLER_OUTPUT_DATA) , LOG_REQUEST_LIST (LOG_REQUEST_LIST_DATA) , GPS_GLOBAL_ORIGIN (GPS_GLOBAL_ORIGIN_DATA) , SUPPORTED_TUNES (SUPPORTED_TUNES_DATA) , MOUNT_STATUS (MOUNT_STATUS_DATA) , CANFD_FRAME (CANFD_FRAME_DATA) , WIFI_CONFIG_AP (WIFI_CONFIG_AP_DATA) , MISSION_ITEM_REACHED (MISSION_ITEM_REACHED_DATA) , COMPASSMOT_STATUS (COMPASSMOT_STATUS_DATA) , UAVIONIX_ADSB_OUT_DYNAMIC (UAVIONIX_ADSB_OUT_DYNAMIC_DATA) , AP_ADC (AP_ADC_DATA) , OSD_PARAM_SHOW_CONFIG (OSD_PARAM_SHOW_CONFIG_DATA) , CUBEPILOT_FIRMWARE_UPDATE_START (CUBEPILOT_FIRMWARE_UPDATE_START_DATA) , RADIO_STATUS (RADIO_STATUS_DATA) , LOG_DATA (LOG_DATA_DATA) , DEBUG_FLOAT_ARRAY (DEBUG_FLOAT_ARRAY_DATA) , ODOMETRY (ODOMETRY_DATA) , HIL_OPTICAL_FLOW (HIL_OPTICAL_FLOW_DATA) , CURRENT_EVENT_SEQUENCE (CURRENT_EVENT_SEQUENCE_DATA) , LOGGING_DATA (LOGGING_DATA_DATA) , SET_ACTUATOR_CONTROL_TARGET (SET_ACTUATOR_CONTROL_TARGET_DATA) , SET_POSITION_TARGET_GLOBAL_INT (SET_POSITION_TARGET_GLOBAL_INT_DATA) , SCALED_PRESSURE (SCALED_PRESSURE_DATA) , HIGH_LATENCY2 (HIGH_LATENCY2_DATA) , GENERATOR_STATUS (GENERATOR_STATUS_DATA) , MISSION_REQUEST_INT (MISSION_REQUEST_INT_DATA) , OPEN_DRONE_ID_SELF_ID (OPEN_DRONE_ID_SELF_ID_DATA) , CAMERA_TRIGGER (CAMERA_TRIGGER_DATA) , SET_POSITION_TARGET_LOCAL_NED (SET_POSITION_TARGET_LOCAL_NED_DATA) , DIGICAM_CONFIGURE (DIGICAM_CONFIGURE_DATA) , DEVICE_OP_WRITE (DEVICE_OP_WRITE_DATA) , COLLISION (COLLISION_DATA) , MISSION_COUNT (MISSION_COUNT_DATA) , BATTERY_STATUS (BATTERY_STATUS_DATA) , DEEPSTALL (DEEPSTALL_DATA) , MISSION_REQUEST_PARTIAL_LIST (MISSION_REQUEST_PARTIAL_LIST_DATA) , GIMBAL_MANAGER_STATUS (GIMBAL_MANAGER_STATUS_DATA) , STATUSTEXT (STATUSTEXT_DATA) , CAMERA_FEEDBACK (CAMERA_FEEDBACK_DATA) , PARAM_REQUEST_LIST (PARAM_REQUEST_LIST_DATA) , HIL_RC_INPUTS_RAW (HIL_RC_INPUTS_RAW_DATA) , OBSTACLE_DISTANCE_3D (OBSTACLE_DISTANCE_3D_DATA) , MISSION_ITEM_INT (MISSION_ITEM_INT_DATA) , GIMBAL_MANAGER_SET_PITCHYAW (GIMBAL_MANAGER_SET_PITCHYAW_DATA) , REMOTE_LOG_BLOCK_STATUS (REMOTE_LOG_BLOCK_STATUS_DATA) , MAG_CAL_REPORT (MAG_CAL_REPORT_DATA) , CELLULAR_STATUS (CELLULAR_STATUS_DATA) , DATA_STREAM (DATA_STREAM_DATA) , SAFETY_ALLOWED_AREA (SAFETY_ALLOWED_AREA_DATA) , OPEN_DRONE_ID_BASIC_ID (OPEN_DRONE_ID_BASIC_ID_DATA) , SET_GPS_GLOBAL_ORIGIN (SET_GPS_GLOBAL_ORIGIN_DATA) , VIDEO_STREAM_STATUS (VIDEO_STREAM_STATUS_DATA) , COMPONENT_INFORMATION (COMPONENT_INFORMATION_DATA) , VIDEO_STREAM_INFORMATION (VIDEO_STREAM_INFORMATION_DATA) , SET_ATTITUDE_TARGET (SET_ATTITUDE_TARGET_DATA) , GOPRO_HEARTBEAT (GOPRO_HEARTBEAT_DATA) , RC_CHANNELS_RAW (RC_CHANNELS_RAW_DATA) , ACTUATOR_OUTPUT_STATUS (ACTUATOR_OUTPUT_STATUS_DATA) , HERELINK_TELEM (HERELINK_TELEM_DATA) , SAFETY_SET_ALLOWED_AREA (SAFETY_SET_ALLOWED_AREA_DATA) , AIRSPEED_AUTOCAL (AIRSPEED_AUTOCAL_DATA) , ESC_TELEMETRY_1_TO_4 (ESC_TELEMETRY_1_TO_4_DATA) , GIMBAL_REPORT (GIMBAL_REPORT_DATA) , VISION_SPEED_ESTIMATE (VISION_SPEED_ESTIMATE_DATA) , ONBOARD_COMPUTER_STATUS (ONBOARD_COMPUTER_STATUS_DATA) , MCU_STATUS (MCU_STATUS_DATA) , LOG_REQUEST_DATA (LOG_REQUEST_DATA_DATA) , COMMAND_INT (COMMAND_INT_DATA) , ALTITUDE (ALTITUDE_DATA) , FOLLOW_TARGET (FOLLOW_TARGET_DATA) , GPS_STATUS (GPS_STATUS_DATA) , OSD_PARAM_CONFIG (OSD_PARAM_CONFIG_DATA) , } impl Message for MavMessage { fn parse (version : MavlinkVersion , id : u32 , payload : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { match id { GIMBAL_CONTROL_DATA :: ID => GIMBAL_CONTROL_DATA :: deser (version , payload) . map (Self :: GIMBAL_CONTROL) , FENCE_FETCH_POINT_DATA :: ID => FENCE_FETCH_POINT_DATA :: deser (version , payload) . map (Self :: FENCE_FETCH_POINT) , COMPONENT_METADATA_DATA :: ID => COMPONENT_METADATA_DATA :: deser (version , payload) . map (Self :: COMPONENT_METADATA) , PARAM_EXT_REQUEST_READ_DATA :: ID => PARAM_EXT_REQUEST_READ_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_REQUEST_READ) , WINCH_STATUS_DATA :: ID => WINCH_STATUS_DATA :: deser (version , payload) . map (Self :: WINCH_STATUS) , PARAM_REQUEST_READ_DATA :: ID => PARAM_REQUEST_READ_DATA :: deser (version , payload) . map (Self :: PARAM_REQUEST_READ) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_ATTITUDE) , AUTOPILOT_VERSION_REQUEST_DATA :: ID => AUTOPILOT_VERSION_REQUEST_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_VERSION_REQUEST) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: deser (version , payload) . map (Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS) , POSITION_TARGET_LOCAL_NED_DATA :: ID => POSITION_TARGET_LOCAL_NED_DATA :: deser (version , payload) . map (Self :: POSITION_TARGET_LOCAL_NED) , MANUAL_SETPOINT_DATA :: ID => MANUAL_SETPOINT_DATA :: deser (version , payload) . map (Self :: MANUAL_SETPOINT) , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => OPEN_DRONE_ID_ARM_STATUS_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_ARM_STATUS) , AUTOPILOT_VERSION_DATA :: ID => AUTOPILOT_VERSION_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_VERSION) , DATA16_DATA :: ID => DATA16_DATA :: deser (version , payload) . map (Self :: DATA16) , MISSION_CURRENT_DATA :: ID => MISSION_CURRENT_DATA :: deser (version , payload) . map (Self :: MISSION_CURRENT) , COMMAND_LONG_DATA :: ID => COMMAND_LONG_DATA :: deser (version , payload) . map (Self :: COMMAND_LONG) , ATTITUDE_TARGET_DATA :: ID => ATTITUDE_TARGET_DATA :: deser (version , payload) . map (Self :: ATTITUDE_TARGET) , MAG_CAL_PROGRESS_DATA :: ID => MAG_CAL_PROGRESS_DATA :: deser (version , payload) . map (Self :: MAG_CAL_PROGRESS) , MOUNT_CONFIGURE_DATA :: ID => MOUNT_CONFIGURE_DATA :: deser (version , payload) . map (Self :: MOUNT_CONFIGURE) , HIL_SENSOR_DATA :: ID => HIL_SENSOR_DATA :: deser (version , payload) . map (Self :: HIL_SENSOR) , REMOTE_LOG_DATA_BLOCK_DATA :: ID => REMOTE_LOG_DATA_BLOCK_DATA :: deser (version , payload) . map (Self :: REMOTE_LOG_DATA_BLOCK) , GIMBAL_TORQUE_CMD_REPORT_DATA :: ID => GIMBAL_TORQUE_CMD_REPORT_DATA :: deser (version , payload) . map (Self :: GIMBAL_TORQUE_CMD_REPORT) , CAMERA_FOV_STATUS_DATA :: ID => CAMERA_FOV_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_FOV_STATUS) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE) , TERRAIN_REQUEST_DATA :: ID => TERRAIN_REQUEST_DATA :: deser (version , payload) . map (Self :: TERRAIN_REQUEST) , GPS_INJECT_DATA_DATA :: ID => GPS_INJECT_DATA_DATA :: deser (version , payload) . map (Self :: GPS_INJECT_DATA) , LOCAL_POSITION_NED_DATA :: ID => LOCAL_POSITION_NED_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED) , UAVCAN_NODE_STATUS_DATA :: ID => UAVCAN_NODE_STATUS_DATA :: deser (version , payload) . map (Self :: UAVCAN_NODE_STATUS) , MISSION_REQUEST_DATA :: ID => MISSION_REQUEST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST) , REQUEST_DATA_STREAM_DATA :: ID => REQUEST_DATA_STREAM_DATA :: deser (version , payload) . map (Self :: REQUEST_DATA_STREAM) , HOME_POSITION_DATA :: ID => HOME_POSITION_DATA :: deser (version , payload) . map (Self :: HOME_POSITION) , GPS2_RTK_DATA :: ID => GPS2_RTK_DATA :: deser (version , payload) . map (Self :: GPS2_RTK) , WHEEL_DISTANCE_DATA :: ID => WHEEL_DISTANCE_DATA :: deser (version , payload) . map (Self :: WHEEL_DISTANCE) , LOCAL_POSITION_NED_COV_DATA :: ID => LOCAL_POSITION_NED_COV_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED_COV) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => OPEN_DRONE_ID_OPERATOR_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_OPERATOR_ID) , ATT_POS_MOCAP_DATA :: ID => ATT_POS_MOCAP_DATA :: deser (version , payload) . map (Self :: ATT_POS_MOCAP) , DATA32_DATA :: ID => DATA32_DATA :: deser (version , payload) . map (Self :: DATA32) , LED_CONTROL_DATA :: ID => LED_CONTROL_DATA :: deser (version , payload) . map (Self :: LED_CONTROL) , PROTOCOL_VERSION_DATA :: ID => PROTOCOL_VERSION_DATA :: deser (version , payload) . map (Self :: PROTOCOL_VERSION) , TERRAIN_CHECK_DATA :: ID => TERRAIN_CHECK_DATA :: deser (version , payload) . map (Self :: TERRAIN_CHECK) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SYSTEM_UPDATE) , UAVIONIX_ADSB_OUT_CFG_DATA :: ID => UAVIONIX_ADSB_OUT_CFG_DATA :: deser (version , payload) . map (Self :: UAVIONIX_ADSB_OUT_CFG) , DATA96_DATA :: ID => DATA96_DATA :: deser (version , payload) . map (Self :: DATA96) , UTM_GLOBAL_POSITION_DATA :: ID => UTM_GLOBAL_POSITION_DATA :: deser (version , payload) . map (Self :: UTM_GLOBAL_POSITION) , GOPRO_SET_REQUEST_DATA :: ID => GOPRO_SET_REQUEST_DATA :: deser (version , payload) . map (Self :: GOPRO_SET_REQUEST) , ESC_TELEMETRY_5_TO_8_DATA :: ID => ESC_TELEMETRY_5_TO_8_DATA :: deser (version , payload) . map (Self :: ESC_TELEMETRY_5_TO_8) , WIND_COV_DATA :: ID => WIND_COV_DATA :: deser (version , payload) . map (Self :: WIND_COV) , MISSION_REQUEST_LIST_DATA :: ID => MISSION_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_LIST) , PLAY_TUNE_DATA :: ID => PLAY_TUNE_DATA :: deser (version , payload) . map (Self :: PLAY_TUNE) , VISION_POSITION_ESTIMATE_DATA :: ID => VISION_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VISION_POSITION_ESTIMATE) , LOG_REQUEST_END_DATA :: ID => LOG_REQUEST_END_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_END) , OPEN_DRONE_ID_SYSTEM_DATA :: ID => OPEN_DRONE_ID_SYSTEM_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SYSTEM) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET) , FENCE_POINT_DATA :: ID => FENCE_POINT_DATA :: deser (version , payload) . map (Self :: FENCE_POINT) , FILE_TRANSFER_PROTOCOL_DATA :: ID => FILE_TRANSFER_PROTOCOL_DATA :: deser (version , payload) . map (Self :: FILE_TRANSFER_PROTOCOL) , HIL_CONTROLS_DATA :: ID => HIL_CONTROLS_DATA :: deser (version , payload) . map (Self :: HIL_CONTROLS) , TIME_ESTIMATE_TO_TARGET_DATA :: ID => TIME_ESTIMATE_TO_TARGET_DATA :: deser (version , payload) . map (Self :: TIME_ESTIMATE_TO_TARGET) , PING_DATA :: ID => PING_DATA :: deser (version , payload) . map (Self :: PING) , CUBEPILOT_RAW_RC_DATA :: ID => CUBEPILOT_RAW_RC_DATA :: deser (version , payload) . map (Self :: CUBEPILOT_RAW_RC) , PARAM_SET_DATA :: ID => PARAM_SET_DATA :: deser (version , payload) . map (Self :: PARAM_SET) , SYSTEM_TIME_DATA :: ID => SYSTEM_TIME_DATA :: deser (version , payload) . map (Self :: SYSTEM_TIME) , MOUNT_CONTROL_DATA :: ID => MOUNT_CONTROL_DATA :: deser (version , payload) . map (Self :: MOUNT_CONTROL) , SIMSTATE_DATA :: ID => SIMSTATE_DATA :: deser (version , payload) . map (Self :: SIMSTATE) , SCALED_PRESSURE2_DATA :: ID => SCALED_PRESSURE2_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE2) , AHRS2_DATA :: ID => AHRS2_DATA :: deser (version , payload) . map (Self :: AHRS2) , PLAY_TUNE_V2_DATA :: ID => PLAY_TUNE_V2_DATA :: deser (version , payload) . map (Self :: PLAY_TUNE_V2) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_SET_ATTITUDE) , SIM_STATE_DATA :: ID => SIM_STATE_DATA :: deser (version , payload) . map (Self :: SIM_STATE) , HIL_STATE_DATA :: ID => HIL_STATE_DATA :: deser (version , payload) . map (Self :: HIL_STATE) , GOPRO_GET_REQUEST_DATA :: ID => GOPRO_GET_REQUEST_DATA :: deser (version , payload) . map (Self :: GOPRO_GET_REQUEST) , RANGEFINDER_DATA :: ID => RANGEFINDER_DATA :: deser (version , payload) . map (Self :: RANGEFINDER) , OSD_PARAM_CONFIG_REPLY_DATA :: ID => OSD_PARAM_CONFIG_REPLY_DATA :: deser (version , payload) . map (Self :: OSD_PARAM_CONFIG_REPLY) , BATTERY2_DATA :: ID => BATTERY2_DATA :: deser (version , payload) . map (Self :: BATTERY2) , PARAM_EXT_VALUE_DATA :: ID => PARAM_EXT_VALUE_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_VALUE) , GPS_RTK_DATA :: ID => GPS_RTK_DATA :: deser (version , payload) . map (Self :: GPS_RTK) , MESSAGE_INTERVAL_DATA :: ID => MESSAGE_INTERVAL_DATA :: deser (version , payload) . map (Self :: MESSAGE_INTERVAL) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: deser (version , payload) . map (Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT) , SCALED_IMU_DATA :: ID => SCALED_IMU_DATA :: deser (version , payload) . map (Self :: SCALED_IMU) , HIGH_LATENCY_DATA :: ID => HIGH_LATENCY_DATA :: deser (version , payload) . map (Self :: HIGH_LATENCY) , CAMERA_IMAGE_CAPTURED_DATA :: ID => CAMERA_IMAGE_CAPTURED_DATA :: deser (version , payload) . map (Self :: CAMERA_IMAGE_CAPTURED) , LIMITS_STATUS_DATA :: ID => LIMITS_STATUS_DATA :: deser (version , payload) . map (Self :: LIMITS_STATUS) , AUTH_KEY_DATA :: ID => AUTH_KEY_DATA :: deser (version , payload) . map (Self :: AUTH_KEY) , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => DATA_TRANSMISSION_HANDSHAKE_DATA :: deser (version , payload) . map (Self :: DATA_TRANSMISSION_HANDSHAKE) , CHANGE_OPERATOR_CONTROL_DATA :: ID => CHANGE_OPERATOR_CONTROL_DATA :: deser (version , payload) . map (Self :: CHANGE_OPERATOR_CONTROL) , LINK_NODE_STATUS_DATA :: ID => LINK_NODE_STATUS_DATA :: deser (version , payload) . map (Self :: LINK_NODE_STATUS) , PID_TUNING_DATA :: ID => PID_TUNING_DATA :: deser (version , payload) . map (Self :: PID_TUNING) , ADAP_TUNING_DATA :: ID => ADAP_TUNING_DATA :: deser (version , payload) . map (Self :: ADAP_TUNING) , ESC_INFO_DATA :: ID => ESC_INFO_DATA :: deser (version , payload) . map (Self :: ESC_INFO) , TUNNEL_DATA :: ID => TUNNEL_DATA :: deser (version , payload) . map (Self :: TUNNEL) , OPTICAL_FLOW_RAD_DATA :: ID => OPTICAL_FLOW_RAD_DATA :: deser (version , payload) . map (Self :: OPTICAL_FLOW_RAD) , TERRAIN_DATA_DATA :: ID => TERRAIN_DATA_DATA :: deser (version , payload) . map (Self :: TERRAIN_DATA) , AHRS_DATA :: ID => AHRS_DATA :: deser (version , payload) . map (Self :: AHRS) , SETUP_SIGNING_DATA :: ID => SETUP_SIGNING_DATA :: deser (version , payload) . map (Self :: SETUP_SIGNING) , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => MISSION_WRITE_PARTIAL_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_WRITE_PARTIAL_LIST) , GPS_INPUT_DATA :: ID => GPS_INPUT_DATA :: deser (version , payload) . map (Self :: GPS_INPUT) , VFR_HUD_DATA :: ID => VFR_HUD_DATA :: deser (version , payload) . map (Self :: VFR_HUD) , POWER_STATUS_DATA :: ID => POWER_STATUS_DATA :: deser (version , payload) . map (Self :: POWER_STATUS) , MISSION_SET_CURRENT_DATA :: ID => MISSION_SET_CURRENT_DATA :: deser (version , payload) . map (Self :: MISSION_SET_CURRENT) , RALLY_POINT_DATA :: ID => RALLY_POINT_DATA :: deser (version , payload) . map (Self :: RALLY_POINT) , GOPRO_SET_RESPONSE_DATA :: ID => GOPRO_SET_RESPONSE_DATA :: deser (version , payload) . map (Self :: GOPRO_SET_RESPONSE) , DEVICE_OP_WRITE_REPLY_DATA :: ID => DEVICE_OP_WRITE_REPLY_DATA :: deser (version , payload) . map (Self :: DEVICE_OP_WRITE_REPLY) , ESC_TELEMETRY_9_TO_12_DATA :: ID => ESC_TELEMETRY_9_TO_12_DATA :: deser (version , payload) . map (Self :: ESC_TELEMETRY_9_TO_12) , ACTUATOR_CONTROL_TARGET_DATA :: ID => ACTUATOR_CONTROL_TARGET_DATA :: deser (version , payload) . map (Self :: ACTUATOR_CONTROL_TARGET) , RALLY_FETCH_POINT_DATA :: ID => RALLY_FETCH_POINT_DATA :: deser (version , payload) . map (Self :: RALLY_FETCH_POINT) , CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: ID => CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: deser (version , payload) . map (Self :: CUBEPILOT_FIRMWARE_UPDATE_RESP) , V2_EXTENSION_DATA :: ID => V2_EXTENSION_DATA :: deser (version , payload) . map (Self :: V2_EXTENSION) , GLOBAL_POSITION_INT_DATA :: ID => GLOBAL_POSITION_INT_DATA :: deser (version , payload) . map (Self :: GLOBAL_POSITION_INT) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: deser (version , payload) . map (Self :: TRAJECTORY_REPRESENTATION_BEZIER) , RAW_RPM_DATA :: ID => RAW_RPM_DATA :: deser (version , payload) . map (Self :: RAW_RPM) , SET_HOME_POSITION_DATA :: ID => SET_HOME_POSITION_DATA :: deser (version , payload) . map (Self :: SET_HOME_POSITION) , RESOURCE_REQUEST_DATA :: ID => RESOURCE_REQUEST_DATA :: deser (version , payload) . map (Self :: RESOURCE_REQUEST) , ESC_STATUS_DATA :: ID => ESC_STATUS_DATA :: deser (version , payload) . map (Self :: ESC_STATUS) , WIND_DATA :: ID => WIND_DATA :: deser (version , payload) . map (Self :: WIND) , EXTENDED_SYS_STATE_DATA :: ID => EXTENDED_SYS_STATE_DATA :: deser (version , payload) . map (Self :: EXTENDED_SYS_STATE) , COMMAND_ACK_DATA :: ID => COMMAND_ACK_DATA :: deser (version , payload) . map (Self :: COMMAND_ACK) , PARAM_VALUE_DATA :: ID => PARAM_VALUE_DATA :: deser (version , payload) . map (Self :: PARAM_VALUE) , HEARTBEAT_DATA :: ID => HEARTBEAT_DATA :: deser (version , payload) . map (Self :: HEARTBEAT) , GIMBAL_DEVICE_INFORMATION_DATA :: ID => GIMBAL_DEVICE_INFORMATION_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_INFORMATION) , DEBUG_DATA :: ID => DEBUG_DATA :: deser (version , payload) . map (Self :: DEBUG) , MOUNT_ORIENTATION_DATA :: ID => MOUNT_ORIENTATION_DATA :: deser (version , payload) . map (Self :: MOUNT_ORIENTATION) , RC_CHANNELS_DATA :: ID => RC_CHANNELS_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS) , VICON_POSITION_ESTIMATE_DATA :: ID => VICON_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VICON_POSITION_ESTIMATE) , CAMERA_CAPTURE_STATUS_DATA :: ID => CAMERA_CAPTURE_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_CAPTURE_STATUS) , CONTROL_SYSTEM_STATE_DATA :: ID => CONTROL_SYSTEM_STATE_DATA :: deser (version , payload) . map (Self :: CONTROL_SYSTEM_STATE) , CAMERA_SETTINGS_DATA :: ID => CAMERA_SETTINGS_DATA :: deser (version , payload) . map (Self :: CAMERA_SETTINGS) , SERIAL_CONTROL_DATA :: ID => SERIAL_CONTROL_DATA :: deser (version , payload) . map (Self :: SERIAL_CONTROL) , CAN_FILTER_MODIFY_DATA :: ID => CAN_FILTER_MODIFY_DATA :: deser (version , payload) . map (Self :: CAN_FILTER_MODIFY) , PARAM_EXT_ACK_DATA :: ID => PARAM_EXT_ACK_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_ACK) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => CAMERA_TRACKING_IMAGE_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_TRACKING_IMAGE_STATUS) , COMMAND_CANCEL_DATA :: ID => COMMAND_CANCEL_DATA :: deser (version , payload) . map (Self :: COMMAND_CANCEL) , SET_MAG_OFFSETS_DATA :: ID => SET_MAG_OFFSETS_DATA :: deser (version , payload) . map (Self :: SET_MAG_OFFSETS) , ADSB_VEHICLE_DATA :: ID => ADSB_VEHICLE_DATA :: deser (version , payload) . map (Self :: ADSB_VEHICLE) , DIGICAM_CONTROL_DATA :: ID => DIGICAM_CONTROL_DATA :: deser (version , payload) . map (Self :: DIGICAM_CONTROL) , GPS2_RAW_DATA :: ID => GPS2_RAW_DATA :: deser (version , payload) . map (Self :: GPS2_RAW) , OPEN_DRONE_ID_LOCATION_DATA :: ID => OPEN_DRONE_ID_LOCATION_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_LOCATION) , REQUEST_EVENT_DATA :: ID => REQUEST_EVENT_DATA :: deser (version , payload) . map (Self :: REQUEST_EVENT) , CAMERA_STATUS_DATA :: ID => CAMERA_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_STATUS) , HYGROMETER_SENSOR_DATA :: ID => HYGROMETER_SENSOR_DATA :: deser (version , payload) . map (Self :: HYGROMETER_SENSOR) , STORAGE_INFORMATION_DATA :: ID => STORAGE_INFORMATION_DATA :: deser (version , payload) . map (Self :: STORAGE_INFORMATION) , MISSION_ACK_DATA :: ID => MISSION_ACK_DATA :: deser (version , payload) . map (Self :: MISSION_ACK) , LOGGING_ACK_DATA :: ID => LOGGING_ACK_DATA :: deser (version , payload) . map (Self :: LOGGING_ACK) , MEMINFO_DATA :: ID => MEMINFO_DATA :: deser (version , payload) . map (Self :: MEMINFO) , DEVICE_OP_READ_DATA :: ID => DEVICE_OP_READ_DATA :: deser (version , payload) . map (Self :: DEVICE_OP_READ) , VISION_POSITION_DELTA_DATA :: ID => VISION_POSITION_DELTA_DATA :: deser (version , payload) . map (Self :: VISION_POSITION_DELTA) , ESTIMATOR_STATUS_DATA :: ID => ESTIMATOR_STATUS_DATA :: deser (version , payload) . map (Self :: ESTIMATOR_STATUS) , OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: ID => OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: deser (version , payload) . map (Self :: OSD_PARAM_SHOW_CONFIG_REPLY) , MEMORY_VECT_DATA :: ID => MEMORY_VECT_DATA :: deser (version , payload) . map (Self :: MEMORY_VECT) , EKF_STATUS_REPORT_DATA :: ID => EKF_STATUS_REPORT_DATA :: deser (version , payload) . map (Self :: EKF_STATUS_REPORT) , PARAM_EXT_SET_DATA :: ID => PARAM_EXT_SET_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_SET) , HWSTATUS_DATA :: ID => HWSTATUS_DATA :: deser (version , payload) . map (Self :: HWSTATUS) , ICAROUS_KINEMATIC_BANDS_DATA :: ID => ICAROUS_KINEMATIC_BANDS_DATA :: deser (version , payload) . map (Self :: ICAROUS_KINEMATIC_BANDS) , OBSTACLE_DISTANCE_DATA :: ID => OBSTACLE_DISTANCE_DATA :: deser (version , payload) . map (Self :: OBSTACLE_DISTANCE) , AIS_VESSEL_DATA :: ID => AIS_VESSEL_DATA :: deser (version , payload) . map (Self :: AIS_VESSEL) , GOPRO_GET_RESPONSE_DATA :: ID => GOPRO_GET_RESPONSE_DATA :: deser (version , payload) . map (Self :: GOPRO_GET_RESPONSE) , CAN_FRAME_DATA :: ID => CAN_FRAME_DATA :: deser (version , payload) . map (Self :: CAN_FRAME) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: GLOBAL_VISION_POSITION_ESTIMATE) , OPTICAL_FLOW_DATA :: ID => OPTICAL_FLOW_DATA :: deser (version , payload) . map (Self :: OPTICAL_FLOW) , SERVO_OUTPUT_RAW_DATA :: ID => SERVO_OUTPUT_RAW_DATA :: deser (version , payload) . map (Self :: SERVO_OUTPUT_RAW) , LOG_ERASE_DATA :: ID => LOG_ERASE_DATA :: deser (version , payload) . map (Self :: LOG_ERASE) , EVENT_DATA :: ID => EVENT_DATA :: deser (version , payload) . map (Self :: EVENT) , DEBUG_VECT_DATA :: ID => DEBUG_VECT_DATA :: deser (version , payload) . map (Self :: DEBUG_VECT) , RAW_IMU_DATA :: ID => RAW_IMU_DATA :: deser (version , payload) . map (Self :: RAW_IMU) , AHRS3_DATA :: ID => AHRS3_DATA :: deser (version , payload) . map (Self :: AHRS3) , ISBD_LINK_STATUS_DATA :: ID => ISBD_LINK_STATUS_DATA :: deser (version , payload) . map (Self :: ISBD_LINK_STATUS) , HERELINK_VIDEO_STREAM_INFORMATION_DATA :: ID => HERELINK_VIDEO_STREAM_INFORMATION_DATA :: deser (version , payload) . map (Self :: HERELINK_VIDEO_STREAM_INFORMATION) , HIL_ACTUATOR_CONTROLS_DATA :: ID => HIL_ACTUATOR_CONTROLS_DATA :: deser (version , payload) . map (Self :: HIL_ACTUATOR_CONTROLS) , ENCAPSULATED_DATA_DATA :: ID => ENCAPSULATED_DATA_DATA :: deser (version , payload) . map (Self :: ENCAPSULATED_DATA) , UAVCAN_NODE_INFO_DATA :: ID => UAVCAN_NODE_INFO_DATA :: deser (version , payload) . map (Self :: UAVCAN_NODE_INFO) , HIL_STATE_QUATERNION_DATA :: ID => HIL_STATE_QUATERNION_DATA :: deser (version , payload) . map (Self :: HIL_STATE_QUATERNION) , LOGGING_DATA_ACKED_DATA :: ID => LOGGING_DATA_ACKED_DATA :: deser (version , payload) . map (Self :: LOGGING_DATA_ACKED) , FLIGHT_INFORMATION_DATA :: ID => FLIGHT_INFORMATION_DATA :: deser (version , payload) . map (Self :: FLIGHT_INFORMATION) , DEVICE_OP_READ_REPLY_DATA :: ID => DEVICE_OP_READ_REPLY_DATA :: deser (version , payload) . map (Self :: DEVICE_OP_READ_REPLY) , GPS_RAW_INT_DATA :: ID => GPS_RAW_INT_DATA :: deser (version , payload) . map (Self :: GPS_RAW_INT) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_ATTITUDE_STATUS) , RPM_DATA :: ID => RPM_DATA :: deser (version , payload) . map (Self :: RPM) , AOA_SSA_DATA :: ID => AOA_SSA_DATA :: deser (version , payload) . map (Self :: AOA_SSA) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_MESSAGE_PACK) , WATER_DEPTH_DATA :: ID => WATER_DEPTH_DATA :: deser (version , payload) . map (Self :: WATER_DEPTH) , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => CAMERA_TRACKING_GEO_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_TRACKING_GEO_STATUS) , CAMERA_INFORMATION_DATA :: ID => CAMERA_INFORMATION_DATA :: deser (version , payload) . map (Self :: CAMERA_INFORMATION) , BUTTON_CHANGE_DATA :: ID => BUTTON_CHANGE_DATA :: deser (version , payload) . map (Self :: BUTTON_CHANGE) , RAW_PRESSURE_DATA :: ID => RAW_PRESSURE_DATA :: deser (version , payload) . map (Self :: RAW_PRESSURE) , HIGHRES_IMU_DATA :: ID => HIGHRES_IMU_DATA :: deser (version , payload) . map (Self :: HIGHRES_IMU) , PARAM_MAP_RC_DATA :: ID => PARAM_MAP_RC_DATA :: deser (version , payload) . map (Self :: PARAM_MAP_RC) , NAMED_VALUE_INT_DATA :: ID => NAMED_VALUE_INT_DATA :: deser (version , payload) . map (Self :: NAMED_VALUE_INT) , TERRAIN_REPORT_DATA :: ID => TERRAIN_REPORT_DATA :: deser (version , payload) . map (Self :: TERRAIN_REPORT) , RC_CHANNELS_SCALED_DATA :: ID => RC_CHANNELS_SCALED_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_SCALED) , ORBIT_EXECUTION_STATUS_DATA :: ID => ORBIT_EXECUTION_STATUS_DATA :: deser (version , payload) . map (Self :: ORBIT_EXECUTION_STATUS) , SCALED_IMU3_DATA :: ID => SCALED_IMU3_DATA :: deser (version , payload) . map (Self :: SCALED_IMU3) , SENSOR_OFFSETS_DATA :: ID => SENSOR_OFFSETS_DATA :: deser (version , payload) . map (Self :: SENSOR_OFFSETS) , RC_CHANNELS_OVERRIDE_DATA :: ID => RC_CHANNELS_OVERRIDE_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_OVERRIDE) , RADIO_DATA :: ID => RADIO_DATA :: deser (version , payload) . map (Self :: RADIO) , POSITION_TARGET_GLOBAL_INT_DATA :: ID => POSITION_TARGET_GLOBAL_INT_DATA :: deser (version , payload) . map (Self :: POSITION_TARGET_GLOBAL_INT) , MANUAL_CONTROL_DATA :: ID => MANUAL_CONTROL_DATA :: deser (version , payload) . map (Self :: MANUAL_CONTROL) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => CHANGE_OPERATOR_CONTROL_ACK_DATA :: deser (version , payload) . map (Self :: CHANGE_OPERATOR_CONTROL_ACK) , SCALED_PRESSURE3_DATA :: ID => SCALED_PRESSURE3_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE3) , PARAM_EXT_REQUEST_LIST_DATA :: ID => PARAM_EXT_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_REQUEST_LIST) , MISSION_CLEAR_ALL_DATA :: ID => MISSION_CLEAR_ALL_DATA :: deser (version , payload) . map (Self :: MISSION_CLEAR_ALL) , GIMBAL_MANAGER_INFORMATION_DATA :: ID => GIMBAL_MANAGER_INFORMATION_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_INFORMATION) , CELLULAR_CONFIG_DATA :: ID => CELLULAR_CONFIG_DATA :: deser (version , payload) . map (Self :: CELLULAR_CONFIG) , LOG_ENTRY_DATA :: ID => LOG_ENTRY_DATA :: deser (version , payload) . map (Self :: LOG_ENTRY) , VIBRATION_DATA :: ID => VIBRATION_DATA :: deser (version , payload) . map (Self :: VIBRATION) , SYS_STATUS_DATA :: ID => SYS_STATUS_DATA :: deser (version , payload) . map (Self :: SYS_STATUS) , GLOBAL_POSITION_INT_COV_DATA :: ID => GLOBAL_POSITION_INT_COV_DATA :: deser (version , payload) . map (Self :: GLOBAL_POSITION_INT_COV) , ATTITUDE_QUATERNION_COV_DATA :: ID => ATTITUDE_QUATERNION_COV_DATA :: deser (version , payload) . map (Self :: ATTITUDE_QUATERNION_COV) , ATTITUDE_QUATERNION_DATA :: ID => ATTITUDE_QUATERNION_DATA :: deser (version , payload) . map (Self :: ATTITUDE_QUATERNION) , FENCE_STATUS_DATA :: ID => FENCE_STATUS_DATA :: deser (version , payload) . map (Self :: FENCE_STATUS) , ICAROUS_HEARTBEAT_DATA :: ID => ICAROUS_HEARTBEAT_DATA :: deser (version , payload) . map (Self :: ICAROUS_HEARTBEAT) , HIL_GPS_DATA :: ID => HIL_GPS_DATA :: deser (version , payload) . map (Self :: HIL_GPS) , TIMESYNC_DATA :: ID => TIMESYNC_DATA :: deser (version , payload) . map (Self :: TIMESYNC) , GPS_RTCM_DATA_DATA :: ID => GPS_RTCM_DATA_DATA :: deser (version , payload) . map (Self :: GPS_RTCM_DATA) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL) , SMART_BATTERY_INFO_DATA :: ID => SMART_BATTERY_INFO_DATA :: deser (version , payload) . map (Self :: SMART_BATTERY_INFO) , DATA64_DATA :: ID => DATA64_DATA :: deser (version , payload) . map (Self :: DATA64) , DISTANCE_SENSOR_DATA :: ID => DISTANCE_SENSOR_DATA :: deser (version , payload) . map (Self :: DISTANCE_SENSOR) , EFI_STATUS_DATA :: ID => EFI_STATUS_DATA :: deser (version , payload) . map (Self :: EFI_STATUS) , SET_MODE_DATA :: ID => SET_MODE_DATA :: deser (version , payload) . map (Self :: SET_MODE) , MISSION_ITEM_DATA :: ID => MISSION_ITEM_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM) , NAMED_VALUE_FLOAT_DATA :: ID => NAMED_VALUE_FLOAT_DATA :: deser (version , payload) . map (Self :: NAMED_VALUE_FLOAT) , RESPONSE_EVENT_ERROR_DATA :: ID => RESPONSE_EVENT_ERROR_DATA :: deser (version , payload) . map (Self :: RESPONSE_EVENT_ERROR) , SCALED_IMU2_DATA :: ID => SCALED_IMU2_DATA :: deser (version , payload) . map (Self :: SCALED_IMU2) , ATTITUDE_DATA :: ID => ATTITUDE_DATA :: deser (version , payload) . map (Self :: ATTITUDE) , LANDING_TARGET_DATA :: ID => LANDING_TARGET_DATA :: deser (version , payload) . map (Self :: LANDING_TARGET) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => OPEN_DRONE_ID_AUTHENTICATION_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_AUTHENTICATION) , NAV_CONTROLLER_OUTPUT_DATA :: ID => NAV_CONTROLLER_OUTPUT_DATA :: deser (version , payload) . map (Self :: NAV_CONTROLLER_OUTPUT) , LOG_REQUEST_LIST_DATA :: ID => LOG_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_LIST) , GPS_GLOBAL_ORIGIN_DATA :: ID => GPS_GLOBAL_ORIGIN_DATA :: deser (version , payload) . map (Self :: GPS_GLOBAL_ORIGIN) , SUPPORTED_TUNES_DATA :: ID => SUPPORTED_TUNES_DATA :: deser (version , payload) . map (Self :: SUPPORTED_TUNES) , MOUNT_STATUS_DATA :: ID => MOUNT_STATUS_DATA :: deser (version , payload) . map (Self :: MOUNT_STATUS) , CANFD_FRAME_DATA :: ID => CANFD_FRAME_DATA :: deser (version , payload) . map (Self :: CANFD_FRAME) , WIFI_CONFIG_AP_DATA :: ID => WIFI_CONFIG_AP_DATA :: deser (version , payload) . map (Self :: WIFI_CONFIG_AP) , MISSION_ITEM_REACHED_DATA :: ID => MISSION_ITEM_REACHED_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM_REACHED) , COMPASSMOT_STATUS_DATA :: ID => COMPASSMOT_STATUS_DATA :: deser (version , payload) . map (Self :: COMPASSMOT_STATUS) , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: deser (version , payload) . map (Self :: UAVIONIX_ADSB_OUT_DYNAMIC) , AP_ADC_DATA :: ID => AP_ADC_DATA :: deser (version , payload) . map (Self :: AP_ADC) , OSD_PARAM_SHOW_CONFIG_DATA :: ID => OSD_PARAM_SHOW_CONFIG_DATA :: deser (version , payload) . map (Self :: OSD_PARAM_SHOW_CONFIG) , CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: ID => CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: deser (version , payload) . map (Self :: CUBEPILOT_FIRMWARE_UPDATE_START) , RADIO_STATUS_DATA :: ID => RADIO_STATUS_DATA :: deser (version , payload) . map (Self :: RADIO_STATUS) , LOG_DATA_DATA :: ID => LOG_DATA_DATA :: deser (version , payload) . map (Self :: LOG_DATA) , DEBUG_FLOAT_ARRAY_DATA :: ID => DEBUG_FLOAT_ARRAY_DATA :: deser (version , payload) . map (Self :: DEBUG_FLOAT_ARRAY) , ODOMETRY_DATA :: ID => ODOMETRY_DATA :: deser (version , payload) . map (Self :: ODOMETRY) , HIL_OPTICAL_FLOW_DATA :: ID => HIL_OPTICAL_FLOW_DATA :: deser (version , payload) . map (Self :: HIL_OPTICAL_FLOW) , CURRENT_EVENT_SEQUENCE_DATA :: ID => CURRENT_EVENT_SEQUENCE_DATA :: deser (version , payload) . map (Self :: CURRENT_EVENT_SEQUENCE) , LOGGING_DATA_DATA :: ID => LOGGING_DATA_DATA :: deser (version , payload) . map (Self :: LOGGING_DATA) , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => SET_ACTUATOR_CONTROL_TARGET_DATA :: deser (version , payload) . map (Self :: SET_ACTUATOR_CONTROL_TARGET) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => SET_POSITION_TARGET_GLOBAL_INT_DATA :: deser (version , payload) . map (Self :: SET_POSITION_TARGET_GLOBAL_INT) , SCALED_PRESSURE_DATA :: ID => SCALED_PRESSURE_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE) , HIGH_LATENCY2_DATA :: ID => HIGH_LATENCY2_DATA :: deser (version , payload) . map (Self :: HIGH_LATENCY2) , GENERATOR_STATUS_DATA :: ID => GENERATOR_STATUS_DATA :: deser (version , payload) . map (Self :: GENERATOR_STATUS) , MISSION_REQUEST_INT_DATA :: ID => MISSION_REQUEST_INT_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_INT) , OPEN_DRONE_ID_SELF_ID_DATA :: ID => OPEN_DRONE_ID_SELF_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SELF_ID) , CAMERA_TRIGGER_DATA :: ID => CAMERA_TRIGGER_DATA :: deser (version , payload) . map (Self :: CAMERA_TRIGGER) , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => SET_POSITION_TARGET_LOCAL_NED_DATA :: deser (version , payload) . map (Self :: SET_POSITION_TARGET_LOCAL_NED) , DIGICAM_CONFIGURE_DATA :: ID => DIGICAM_CONFIGURE_DATA :: deser (version , payload) . map (Self :: DIGICAM_CONFIGURE) , DEVICE_OP_WRITE_DATA :: ID => DEVICE_OP_WRITE_DATA :: deser (version , payload) . map (Self :: DEVICE_OP_WRITE) , COLLISION_DATA :: ID => COLLISION_DATA :: deser (version , payload) . map (Self :: COLLISION) , MISSION_COUNT_DATA :: ID => MISSION_COUNT_DATA :: deser (version , payload) . map (Self :: MISSION_COUNT) , BATTERY_STATUS_DATA :: ID => BATTERY_STATUS_DATA :: deser (version , payload) . map (Self :: BATTERY_STATUS) , DEEPSTALL_DATA :: ID => DEEPSTALL_DATA :: deser (version , payload) . map (Self :: DEEPSTALL) , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => MISSION_REQUEST_PARTIAL_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_PARTIAL_LIST) , GIMBAL_MANAGER_STATUS_DATA :: ID => GIMBAL_MANAGER_STATUS_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_STATUS) , STATUSTEXT_DATA :: ID => STATUSTEXT_DATA :: deser (version , payload) . map (Self :: STATUSTEXT) , CAMERA_FEEDBACK_DATA :: ID => CAMERA_FEEDBACK_DATA :: deser (version , payload) . map (Self :: CAMERA_FEEDBACK) , PARAM_REQUEST_LIST_DATA :: ID => PARAM_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: PARAM_REQUEST_LIST) , HIL_RC_INPUTS_RAW_DATA :: ID => HIL_RC_INPUTS_RAW_DATA :: deser (version , payload) . map (Self :: HIL_RC_INPUTS_RAW) , OBSTACLE_DISTANCE_3D_DATA :: ID => OBSTACLE_DISTANCE_3D_DATA :: deser (version , payload) . map (Self :: OBSTACLE_DISTANCE_3D) , MISSION_ITEM_INT_DATA :: ID => MISSION_ITEM_INT_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM_INT) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_PITCHYAW) , REMOTE_LOG_BLOCK_STATUS_DATA :: ID => REMOTE_LOG_BLOCK_STATUS_DATA :: deser (version , payload) . map (Self :: REMOTE_LOG_BLOCK_STATUS) , MAG_CAL_REPORT_DATA :: ID => MAG_CAL_REPORT_DATA :: deser (version , payload) . map (Self :: MAG_CAL_REPORT) , CELLULAR_STATUS_DATA :: ID => CELLULAR_STATUS_DATA :: deser (version , payload) . map (Self :: CELLULAR_STATUS) , DATA_STREAM_DATA :: ID => DATA_STREAM_DATA :: deser (version , payload) . map (Self :: DATA_STREAM) , SAFETY_ALLOWED_AREA_DATA :: ID => SAFETY_ALLOWED_AREA_DATA :: deser (version , payload) . map (Self :: SAFETY_ALLOWED_AREA) , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => OPEN_DRONE_ID_BASIC_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_BASIC_ID) , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => SET_GPS_GLOBAL_ORIGIN_DATA :: deser (version , payload) . map (Self :: SET_GPS_GLOBAL_ORIGIN) , VIDEO_STREAM_STATUS_DATA :: ID => VIDEO_STREAM_STATUS_DATA :: deser (version , payload) . map (Self :: VIDEO_STREAM_STATUS) , COMPONENT_INFORMATION_DATA :: ID => COMPONENT_INFORMATION_DATA :: deser (version , payload) . map (Self :: COMPONENT_INFORMATION) , VIDEO_STREAM_INFORMATION_DATA :: ID => VIDEO_STREAM_INFORMATION_DATA :: deser (version , payload) . map (Self :: VIDEO_STREAM_INFORMATION) , SET_ATTITUDE_TARGET_DATA :: ID => SET_ATTITUDE_TARGET_DATA :: deser (version , payload) . map (Self :: SET_ATTITUDE_TARGET) , GOPRO_HEARTBEAT_DATA :: ID => GOPRO_HEARTBEAT_DATA :: deser (version , payload) . map (Self :: GOPRO_HEARTBEAT) , RC_CHANNELS_RAW_DATA :: ID => RC_CHANNELS_RAW_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_RAW) , ACTUATOR_OUTPUT_STATUS_DATA :: ID => ACTUATOR_OUTPUT_STATUS_DATA :: deser (version , payload) . map (Self :: ACTUATOR_OUTPUT_STATUS) , HERELINK_TELEM_DATA :: ID => HERELINK_TELEM_DATA :: deser (version , payload) . map (Self :: HERELINK_TELEM) , SAFETY_SET_ALLOWED_AREA_DATA :: ID => SAFETY_SET_ALLOWED_AREA_DATA :: deser (version , payload) . map (Self :: SAFETY_SET_ALLOWED_AREA) , AIRSPEED_AUTOCAL_DATA :: ID => AIRSPEED_AUTOCAL_DATA :: deser (version , payload) . map (Self :: AIRSPEED_AUTOCAL) , ESC_TELEMETRY_1_TO_4_DATA :: ID => ESC_TELEMETRY_1_TO_4_DATA :: deser (version , payload) . map (Self :: ESC_TELEMETRY_1_TO_4) , GIMBAL_REPORT_DATA :: ID => GIMBAL_REPORT_DATA :: deser (version , payload) . map (Self :: GIMBAL_REPORT) , VISION_SPEED_ESTIMATE_DATA :: ID => VISION_SPEED_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VISION_SPEED_ESTIMATE) , ONBOARD_COMPUTER_STATUS_DATA :: ID => ONBOARD_COMPUTER_STATUS_DATA :: deser (version , payload) . map (Self :: ONBOARD_COMPUTER_STATUS) , MCU_STATUS_DATA :: ID => MCU_STATUS_DATA :: deser (version , payload) . map (Self :: MCU_STATUS) , LOG_REQUEST_DATA_DATA :: ID => LOG_REQUEST_DATA_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_DATA) , COMMAND_INT_DATA :: ID => COMMAND_INT_DATA :: deser (version , payload) . map (Self :: COMMAND_INT) , ALTITUDE_DATA :: ID => ALTITUDE_DATA :: deser (version , payload) . map (Self :: ALTITUDE) , FOLLOW_TARGET_DATA :: ID => FOLLOW_TARGET_DATA :: deser (version , payload) . map (Self :: FOLLOW_TARGET) , GPS_STATUS_DATA :: ID => GPS_STATUS_DATA :: deser (version , payload) . map (Self :: GPS_STATUS) , OSD_PARAM_CONFIG_DATA :: ID => OSD_PARAM_CONFIG_DATA :: deser (version , payload) . map (Self :: OSD_PARAM_CONFIG) , _ => { Err (:: mavlink_core :: error :: ParserError :: UnknownMessage { id }) } , } } fn message_name (& self) -> & 'static str { match self { Self :: GIMBAL_CONTROL (..) => GIMBAL_CONTROL_DATA :: NAME , Self :: FENCE_FETCH_POINT (..) => FENCE_FETCH_POINT_DATA :: NAME , Self :: COMPONENT_METADATA (..) => COMPONENT_METADATA_DATA :: NAME , Self :: PARAM_EXT_REQUEST_READ (..) => PARAM_EXT_REQUEST_READ_DATA :: NAME , Self :: WINCH_STATUS (..) => WINCH_STATUS_DATA :: NAME , Self :: PARAM_REQUEST_READ (..) => PARAM_REQUEST_READ_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_ATTITUDE (..) => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: NAME , Self :: AUTOPILOT_VERSION_REQUEST (..) => AUTOPILOT_VERSION_REQUEST_DATA :: NAME , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (..) => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: NAME , Self :: POSITION_TARGET_LOCAL_NED (..) => POSITION_TARGET_LOCAL_NED_DATA :: NAME , Self :: MANUAL_SETPOINT (..) => MANUAL_SETPOINT_DATA :: NAME , Self :: OPEN_DRONE_ID_ARM_STATUS (..) => OPEN_DRONE_ID_ARM_STATUS_DATA :: NAME , Self :: AUTOPILOT_VERSION (..) => AUTOPILOT_VERSION_DATA :: NAME , Self :: DATA16 (..) => DATA16_DATA :: NAME , Self :: MISSION_CURRENT (..) => MISSION_CURRENT_DATA :: NAME , Self :: COMMAND_LONG (..) => COMMAND_LONG_DATA :: NAME , Self :: ATTITUDE_TARGET (..) => ATTITUDE_TARGET_DATA :: NAME , Self :: MAG_CAL_PROGRESS (..) => MAG_CAL_PROGRESS_DATA :: NAME , Self :: MOUNT_CONFIGURE (..) => MOUNT_CONFIGURE_DATA :: NAME , Self :: HIL_SENSOR (..) => HIL_SENSOR_DATA :: NAME , Self :: REMOTE_LOG_DATA_BLOCK (..) => REMOTE_LOG_DATA_BLOCK_DATA :: NAME , Self :: GIMBAL_TORQUE_CMD_REPORT (..) => GIMBAL_TORQUE_CMD_REPORT_DATA :: NAME , Self :: CAMERA_FOV_STATUS (..) => CAMERA_FOV_STATUS_DATA :: NAME , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (..) => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: NAME , Self :: TERRAIN_REQUEST (..) => TERRAIN_REQUEST_DATA :: NAME , Self :: GPS_INJECT_DATA (..) => GPS_INJECT_DATA_DATA :: NAME , Self :: LOCAL_POSITION_NED (..) => LOCAL_POSITION_NED_DATA :: NAME , Self :: UAVCAN_NODE_STATUS (..) => UAVCAN_NODE_STATUS_DATA :: NAME , Self :: MISSION_REQUEST (..) => MISSION_REQUEST_DATA :: NAME , Self :: REQUEST_DATA_STREAM (..) => REQUEST_DATA_STREAM_DATA :: NAME , Self :: HOME_POSITION (..) => HOME_POSITION_DATA :: NAME , Self :: GPS2_RTK (..) => GPS2_RTK_DATA :: NAME , Self :: WHEEL_DISTANCE (..) => WHEEL_DISTANCE_DATA :: NAME , Self :: LOCAL_POSITION_NED_COV (..) => LOCAL_POSITION_NED_COV_DATA :: NAME , Self :: OPEN_DRONE_ID_OPERATOR_ID (..) => OPEN_DRONE_ID_OPERATOR_ID_DATA :: NAME , Self :: ATT_POS_MOCAP (..) => ATT_POS_MOCAP_DATA :: NAME , Self :: DATA32 (..) => DATA32_DATA :: NAME , Self :: LED_CONTROL (..) => LED_CONTROL_DATA :: NAME , Self :: PROTOCOL_VERSION (..) => PROTOCOL_VERSION_DATA :: NAME , Self :: TERRAIN_CHECK (..) => TERRAIN_CHECK_DATA :: NAME , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (..) => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: NAME , Self :: UAVIONIX_ADSB_OUT_CFG (..) => UAVIONIX_ADSB_OUT_CFG_DATA :: NAME , Self :: DATA96 (..) => DATA96_DATA :: NAME , Self :: UTM_GLOBAL_POSITION (..) => UTM_GLOBAL_POSITION_DATA :: NAME , Self :: GOPRO_SET_REQUEST (..) => GOPRO_SET_REQUEST_DATA :: NAME , Self :: ESC_TELEMETRY_5_TO_8 (..) => ESC_TELEMETRY_5_TO_8_DATA :: NAME , Self :: WIND_COV (..) => WIND_COV_DATA :: NAME , Self :: MISSION_REQUEST_LIST (..) => MISSION_REQUEST_LIST_DATA :: NAME , Self :: PLAY_TUNE (..) => PLAY_TUNE_DATA :: NAME , Self :: VISION_POSITION_ESTIMATE (..) => VISION_POSITION_ESTIMATE_DATA :: NAME , Self :: LOG_REQUEST_END (..) => LOG_REQUEST_END_DATA :: NAME , Self :: OPEN_DRONE_ID_SYSTEM (..) => OPEN_DRONE_ID_SYSTEM_DATA :: NAME , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (..) => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: NAME , Self :: FENCE_POINT (..) => FENCE_POINT_DATA :: NAME , Self :: FILE_TRANSFER_PROTOCOL (..) => FILE_TRANSFER_PROTOCOL_DATA :: NAME , Self :: HIL_CONTROLS (..) => HIL_CONTROLS_DATA :: NAME , Self :: TIME_ESTIMATE_TO_TARGET (..) => TIME_ESTIMATE_TO_TARGET_DATA :: NAME , Self :: PING (..) => PING_DATA :: NAME , Self :: CUBEPILOT_RAW_RC (..) => CUBEPILOT_RAW_RC_DATA :: NAME , Self :: PARAM_SET (..) => PARAM_SET_DATA :: NAME , Self :: SYSTEM_TIME (..) => SYSTEM_TIME_DATA :: NAME , Self :: MOUNT_CONTROL (..) => MOUNT_CONTROL_DATA :: NAME , Self :: SIMSTATE (..) => SIMSTATE_DATA :: NAME , Self :: SCALED_PRESSURE2 (..) => SCALED_PRESSURE2_DATA :: NAME , Self :: AHRS2 (..) => AHRS2_DATA :: NAME , Self :: PLAY_TUNE_V2 (..) => PLAY_TUNE_V2_DATA :: NAME , Self :: GIMBAL_DEVICE_SET_ATTITUDE (..) => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: NAME , Self :: SIM_STATE (..) => SIM_STATE_DATA :: NAME , Self :: HIL_STATE (..) => HIL_STATE_DATA :: NAME , Self :: GOPRO_GET_REQUEST (..) => GOPRO_GET_REQUEST_DATA :: NAME , Self :: RANGEFINDER (..) => RANGEFINDER_DATA :: NAME , Self :: OSD_PARAM_CONFIG_REPLY (..) => OSD_PARAM_CONFIG_REPLY_DATA :: NAME , Self :: BATTERY2 (..) => BATTERY2_DATA :: NAME , Self :: PARAM_EXT_VALUE (..) => PARAM_EXT_VALUE_DATA :: NAME , Self :: GPS_RTK (..) => GPS_RTK_DATA :: NAME , Self :: MESSAGE_INTERVAL (..) => MESSAGE_INTERVAL_DATA :: NAME , Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (..) => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: NAME , Self :: SCALED_IMU (..) => SCALED_IMU_DATA :: NAME , Self :: HIGH_LATENCY (..) => HIGH_LATENCY_DATA :: NAME , Self :: CAMERA_IMAGE_CAPTURED (..) => CAMERA_IMAGE_CAPTURED_DATA :: NAME , Self :: LIMITS_STATUS (..) => LIMITS_STATUS_DATA :: NAME , Self :: AUTH_KEY (..) => AUTH_KEY_DATA :: NAME , Self :: DATA_TRANSMISSION_HANDSHAKE (..) => DATA_TRANSMISSION_HANDSHAKE_DATA :: NAME , Self :: CHANGE_OPERATOR_CONTROL (..) => CHANGE_OPERATOR_CONTROL_DATA :: NAME , Self :: LINK_NODE_STATUS (..) => LINK_NODE_STATUS_DATA :: NAME , Self :: PID_TUNING (..) => PID_TUNING_DATA :: NAME , Self :: ADAP_TUNING (..) => ADAP_TUNING_DATA :: NAME , Self :: ESC_INFO (..) => ESC_INFO_DATA :: NAME , Self :: TUNNEL (..) => TUNNEL_DATA :: NAME , Self :: OPTICAL_FLOW_RAD (..) => OPTICAL_FLOW_RAD_DATA :: NAME , Self :: TERRAIN_DATA (..) => TERRAIN_DATA_DATA :: NAME , Self :: AHRS (..) => AHRS_DATA :: NAME , Self :: SETUP_SIGNING (..) => SETUP_SIGNING_DATA :: NAME , Self :: MISSION_WRITE_PARTIAL_LIST (..) => MISSION_WRITE_PARTIAL_LIST_DATA :: NAME , Self :: GPS_INPUT (..) => GPS_INPUT_DATA :: NAME , Self :: VFR_HUD (..) => VFR_HUD_DATA :: NAME , Self :: POWER_STATUS (..) => POWER_STATUS_DATA :: NAME , Self :: MISSION_SET_CURRENT (..) => MISSION_SET_CURRENT_DATA :: NAME , Self :: RALLY_POINT (..) => RALLY_POINT_DATA :: NAME , Self :: GOPRO_SET_RESPONSE (..) => GOPRO_SET_RESPONSE_DATA :: NAME , Self :: DEVICE_OP_WRITE_REPLY (..) => DEVICE_OP_WRITE_REPLY_DATA :: NAME , Self :: ESC_TELEMETRY_9_TO_12 (..) => ESC_TELEMETRY_9_TO_12_DATA :: NAME , Self :: ACTUATOR_CONTROL_TARGET (..) => ACTUATOR_CONTROL_TARGET_DATA :: NAME , Self :: RALLY_FETCH_POINT (..) => RALLY_FETCH_POINT_DATA :: NAME , Self :: CUBEPILOT_FIRMWARE_UPDATE_RESP (..) => CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: NAME , Self :: V2_EXTENSION (..) => V2_EXTENSION_DATA :: NAME , Self :: GLOBAL_POSITION_INT (..) => GLOBAL_POSITION_INT_DATA :: NAME , Self :: TRAJECTORY_REPRESENTATION_BEZIER (..) => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: NAME , Self :: RAW_RPM (..) => RAW_RPM_DATA :: NAME , Self :: SET_HOME_POSITION (..) => SET_HOME_POSITION_DATA :: NAME , Self :: RESOURCE_REQUEST (..) => RESOURCE_REQUEST_DATA :: NAME , Self :: ESC_STATUS (..) => ESC_STATUS_DATA :: NAME , Self :: WIND (..) => WIND_DATA :: NAME , Self :: EXTENDED_SYS_STATE (..) => EXTENDED_SYS_STATE_DATA :: NAME , Self :: COMMAND_ACK (..) => COMMAND_ACK_DATA :: NAME , Self :: PARAM_VALUE (..) => PARAM_VALUE_DATA :: NAME , Self :: HEARTBEAT (..) => HEARTBEAT_DATA :: NAME , Self :: GIMBAL_DEVICE_INFORMATION (..) => GIMBAL_DEVICE_INFORMATION_DATA :: NAME , Self :: DEBUG (..) => DEBUG_DATA :: NAME , Self :: MOUNT_ORIENTATION (..) => MOUNT_ORIENTATION_DATA :: NAME , Self :: RC_CHANNELS (..) => RC_CHANNELS_DATA :: NAME , Self :: VICON_POSITION_ESTIMATE (..) => VICON_POSITION_ESTIMATE_DATA :: NAME , Self :: CAMERA_CAPTURE_STATUS (..) => CAMERA_CAPTURE_STATUS_DATA :: NAME , Self :: CONTROL_SYSTEM_STATE (..) => CONTROL_SYSTEM_STATE_DATA :: NAME , Self :: CAMERA_SETTINGS (..) => CAMERA_SETTINGS_DATA :: NAME , Self :: SERIAL_CONTROL (..) => SERIAL_CONTROL_DATA :: NAME , Self :: CAN_FILTER_MODIFY (..) => CAN_FILTER_MODIFY_DATA :: NAME , Self :: PARAM_EXT_ACK (..) => PARAM_EXT_ACK_DATA :: NAME , Self :: CAMERA_TRACKING_IMAGE_STATUS (..) => CAMERA_TRACKING_IMAGE_STATUS_DATA :: NAME , Self :: COMMAND_CANCEL (..) => COMMAND_CANCEL_DATA :: NAME , Self :: SET_MAG_OFFSETS (..) => SET_MAG_OFFSETS_DATA :: NAME , Self :: ADSB_VEHICLE (..) => ADSB_VEHICLE_DATA :: NAME , Self :: DIGICAM_CONTROL (..) => DIGICAM_CONTROL_DATA :: NAME , Self :: GPS2_RAW (..) => GPS2_RAW_DATA :: NAME , Self :: OPEN_DRONE_ID_LOCATION (..) => OPEN_DRONE_ID_LOCATION_DATA :: NAME , Self :: REQUEST_EVENT (..) => REQUEST_EVENT_DATA :: NAME , Self :: CAMERA_STATUS (..) => CAMERA_STATUS_DATA :: NAME , Self :: HYGROMETER_SENSOR (..) => HYGROMETER_SENSOR_DATA :: NAME , Self :: STORAGE_INFORMATION (..) => STORAGE_INFORMATION_DATA :: NAME , Self :: MISSION_ACK (..) => MISSION_ACK_DATA :: NAME , Self :: LOGGING_ACK (..) => LOGGING_ACK_DATA :: NAME , Self :: MEMINFO (..) => MEMINFO_DATA :: NAME , Self :: DEVICE_OP_READ (..) => DEVICE_OP_READ_DATA :: NAME , Self :: VISION_POSITION_DELTA (..) => VISION_POSITION_DELTA_DATA :: NAME , Self :: ESTIMATOR_STATUS (..) => ESTIMATOR_STATUS_DATA :: NAME , Self :: OSD_PARAM_SHOW_CONFIG_REPLY (..) => OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: NAME , Self :: MEMORY_VECT (..) => MEMORY_VECT_DATA :: NAME , Self :: EKF_STATUS_REPORT (..) => EKF_STATUS_REPORT_DATA :: NAME , Self :: PARAM_EXT_SET (..) => PARAM_EXT_SET_DATA :: NAME , Self :: HWSTATUS (..) => HWSTATUS_DATA :: NAME , Self :: ICAROUS_KINEMATIC_BANDS (..) => ICAROUS_KINEMATIC_BANDS_DATA :: NAME , Self :: OBSTACLE_DISTANCE (..) => OBSTACLE_DISTANCE_DATA :: NAME , Self :: AIS_VESSEL (..) => AIS_VESSEL_DATA :: NAME , Self :: GOPRO_GET_RESPONSE (..) => GOPRO_GET_RESPONSE_DATA :: NAME , Self :: CAN_FRAME (..) => CAN_FRAME_DATA :: NAME , Self :: GLOBAL_VISION_POSITION_ESTIMATE (..) => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: NAME , Self :: OPTICAL_FLOW (..) => OPTICAL_FLOW_DATA :: NAME , Self :: SERVO_OUTPUT_RAW (..) => SERVO_OUTPUT_RAW_DATA :: NAME , Self :: LOG_ERASE (..) => LOG_ERASE_DATA :: NAME , Self :: EVENT (..) => EVENT_DATA :: NAME , Self :: DEBUG_VECT (..) => DEBUG_VECT_DATA :: NAME , Self :: RAW_IMU (..) => RAW_IMU_DATA :: NAME , Self :: AHRS3 (..) => AHRS3_DATA :: NAME , Self :: ISBD_LINK_STATUS (..) => ISBD_LINK_STATUS_DATA :: NAME , Self :: HERELINK_VIDEO_STREAM_INFORMATION (..) => HERELINK_VIDEO_STREAM_INFORMATION_DATA :: NAME , Self :: HIL_ACTUATOR_CONTROLS (..) => HIL_ACTUATOR_CONTROLS_DATA :: NAME , Self :: ENCAPSULATED_DATA (..) => ENCAPSULATED_DATA_DATA :: NAME , Self :: UAVCAN_NODE_INFO (..) => UAVCAN_NODE_INFO_DATA :: NAME , Self :: HIL_STATE_QUATERNION (..) => HIL_STATE_QUATERNION_DATA :: NAME , Self :: LOGGING_DATA_ACKED (..) => LOGGING_DATA_ACKED_DATA :: NAME , Self :: FLIGHT_INFORMATION (..) => FLIGHT_INFORMATION_DATA :: NAME , Self :: DEVICE_OP_READ_REPLY (..) => DEVICE_OP_READ_REPLY_DATA :: NAME , Self :: GPS_RAW_INT (..) => GPS_RAW_INT_DATA :: NAME , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (..) => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: NAME , Self :: RPM (..) => RPM_DATA :: NAME , Self :: AOA_SSA (..) => AOA_SSA_DATA :: NAME , Self :: OPEN_DRONE_ID_MESSAGE_PACK (..) => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: NAME , Self :: WATER_DEPTH (..) => WATER_DEPTH_DATA :: NAME , Self :: CAMERA_TRACKING_GEO_STATUS (..) => CAMERA_TRACKING_GEO_STATUS_DATA :: NAME , Self :: CAMERA_INFORMATION (..) => CAMERA_INFORMATION_DATA :: NAME , Self :: BUTTON_CHANGE (..) => BUTTON_CHANGE_DATA :: NAME , Self :: RAW_PRESSURE (..) => RAW_PRESSURE_DATA :: NAME , Self :: HIGHRES_IMU (..) => HIGHRES_IMU_DATA :: NAME , Self :: PARAM_MAP_RC (..) => PARAM_MAP_RC_DATA :: NAME , Self :: NAMED_VALUE_INT (..) => NAMED_VALUE_INT_DATA :: NAME , Self :: TERRAIN_REPORT (..) => TERRAIN_REPORT_DATA :: NAME , Self :: RC_CHANNELS_SCALED (..) => RC_CHANNELS_SCALED_DATA :: NAME , Self :: ORBIT_EXECUTION_STATUS (..) => ORBIT_EXECUTION_STATUS_DATA :: NAME , Self :: SCALED_IMU3 (..) => SCALED_IMU3_DATA :: NAME , Self :: SENSOR_OFFSETS (..) => SENSOR_OFFSETS_DATA :: NAME , Self :: RC_CHANNELS_OVERRIDE (..) => RC_CHANNELS_OVERRIDE_DATA :: NAME , Self :: RADIO (..) => RADIO_DATA :: NAME , Self :: POSITION_TARGET_GLOBAL_INT (..) => POSITION_TARGET_GLOBAL_INT_DATA :: NAME , Self :: MANUAL_CONTROL (..) => MANUAL_CONTROL_DATA :: NAME , Self :: CHANGE_OPERATOR_CONTROL_ACK (..) => CHANGE_OPERATOR_CONTROL_ACK_DATA :: NAME , Self :: SCALED_PRESSURE3 (..) => SCALED_PRESSURE3_DATA :: NAME , Self :: PARAM_EXT_REQUEST_LIST (..) => PARAM_EXT_REQUEST_LIST_DATA :: NAME , Self :: MISSION_CLEAR_ALL (..) => MISSION_CLEAR_ALL_DATA :: NAME , Self :: GIMBAL_MANAGER_INFORMATION (..) => GIMBAL_MANAGER_INFORMATION_DATA :: NAME , Self :: CELLULAR_CONFIG (..) => CELLULAR_CONFIG_DATA :: NAME , Self :: LOG_ENTRY (..) => LOG_ENTRY_DATA :: NAME , Self :: VIBRATION (..) => VIBRATION_DATA :: NAME , Self :: SYS_STATUS (..) => SYS_STATUS_DATA :: NAME , Self :: GLOBAL_POSITION_INT_COV (..) => GLOBAL_POSITION_INT_COV_DATA :: NAME , Self :: ATTITUDE_QUATERNION_COV (..) => ATTITUDE_QUATERNION_COV_DATA :: NAME , Self :: ATTITUDE_QUATERNION (..) => ATTITUDE_QUATERNION_DATA :: NAME , Self :: FENCE_STATUS (..) => FENCE_STATUS_DATA :: NAME , Self :: ICAROUS_HEARTBEAT (..) => ICAROUS_HEARTBEAT_DATA :: NAME , Self :: HIL_GPS (..) => HIL_GPS_DATA :: NAME , Self :: TIMESYNC (..) => TIMESYNC_DATA :: NAME , Self :: GPS_RTCM_DATA (..) => GPS_RTCM_DATA_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (..) => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: NAME , Self :: SMART_BATTERY_INFO (..) => SMART_BATTERY_INFO_DATA :: NAME , Self :: DATA64 (..) => DATA64_DATA :: NAME , Self :: DISTANCE_SENSOR (..) => DISTANCE_SENSOR_DATA :: NAME , Self :: EFI_STATUS (..) => EFI_STATUS_DATA :: NAME , Self :: SET_MODE (..) => SET_MODE_DATA :: NAME , Self :: MISSION_ITEM (..) => MISSION_ITEM_DATA :: NAME , Self :: NAMED_VALUE_FLOAT (..) => NAMED_VALUE_FLOAT_DATA :: NAME , Self :: RESPONSE_EVENT_ERROR (..) => RESPONSE_EVENT_ERROR_DATA :: NAME , Self :: SCALED_IMU2 (..) => SCALED_IMU2_DATA :: NAME , Self :: ATTITUDE (..) => ATTITUDE_DATA :: NAME , Self :: LANDING_TARGET (..) => LANDING_TARGET_DATA :: NAME , Self :: OPEN_DRONE_ID_AUTHENTICATION (..) => OPEN_DRONE_ID_AUTHENTICATION_DATA :: NAME , Self :: NAV_CONTROLLER_OUTPUT (..) => NAV_CONTROLLER_OUTPUT_DATA :: NAME , Self :: LOG_REQUEST_LIST (..) => LOG_REQUEST_LIST_DATA :: NAME , Self :: GPS_GLOBAL_ORIGIN (..) => GPS_GLOBAL_ORIGIN_DATA :: NAME , Self :: SUPPORTED_TUNES (..) => SUPPORTED_TUNES_DATA :: NAME , Self :: MOUNT_STATUS (..) => MOUNT_STATUS_DATA :: NAME , Self :: CANFD_FRAME (..) => CANFD_FRAME_DATA :: NAME , Self :: WIFI_CONFIG_AP (..) => WIFI_CONFIG_AP_DATA :: NAME , Self :: MISSION_ITEM_REACHED (..) => MISSION_ITEM_REACHED_DATA :: NAME , Self :: COMPASSMOT_STATUS (..) => COMPASSMOT_STATUS_DATA :: NAME , Self :: UAVIONIX_ADSB_OUT_DYNAMIC (..) => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: NAME , Self :: AP_ADC (..) => AP_ADC_DATA :: NAME , Self :: OSD_PARAM_SHOW_CONFIG (..) => OSD_PARAM_SHOW_CONFIG_DATA :: NAME , Self :: CUBEPILOT_FIRMWARE_UPDATE_START (..) => CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: NAME , Self :: RADIO_STATUS (..) => RADIO_STATUS_DATA :: NAME , Self :: LOG_DATA (..) => LOG_DATA_DATA :: NAME , Self :: DEBUG_FLOAT_ARRAY (..) => DEBUG_FLOAT_ARRAY_DATA :: NAME , Self :: ODOMETRY (..) => ODOMETRY_DATA :: NAME , Self :: HIL_OPTICAL_FLOW (..) => HIL_OPTICAL_FLOW_DATA :: NAME , Self :: CURRENT_EVENT_SEQUENCE (..) => CURRENT_EVENT_SEQUENCE_DATA :: NAME , Self :: LOGGING_DATA (..) => LOGGING_DATA_DATA :: NAME , Self :: SET_ACTUATOR_CONTROL_TARGET (..) => SET_ACTUATOR_CONTROL_TARGET_DATA :: NAME , Self :: SET_POSITION_TARGET_GLOBAL_INT (..) => SET_POSITION_TARGET_GLOBAL_INT_DATA :: NAME , Self :: SCALED_PRESSURE (..) => SCALED_PRESSURE_DATA :: NAME , Self :: HIGH_LATENCY2 (..) => HIGH_LATENCY2_DATA :: NAME , Self :: GENERATOR_STATUS (..) => GENERATOR_STATUS_DATA :: NAME , Self :: MISSION_REQUEST_INT (..) => MISSION_REQUEST_INT_DATA :: NAME , Self :: OPEN_DRONE_ID_SELF_ID (..) => OPEN_DRONE_ID_SELF_ID_DATA :: NAME , Self :: CAMERA_TRIGGER (..) => CAMERA_TRIGGER_DATA :: NAME , Self :: SET_POSITION_TARGET_LOCAL_NED (..) => SET_POSITION_TARGET_LOCAL_NED_DATA :: NAME , Self :: DIGICAM_CONFIGURE (..) => DIGICAM_CONFIGURE_DATA :: NAME , Self :: DEVICE_OP_WRITE (..) => DEVICE_OP_WRITE_DATA :: NAME , Self :: COLLISION (..) => COLLISION_DATA :: NAME , Self :: MISSION_COUNT (..) => MISSION_COUNT_DATA :: NAME , Self :: BATTERY_STATUS (..) => BATTERY_STATUS_DATA :: NAME , Self :: DEEPSTALL (..) => DEEPSTALL_DATA :: NAME , Self :: MISSION_REQUEST_PARTIAL_LIST (..) => MISSION_REQUEST_PARTIAL_LIST_DATA :: NAME , Self :: GIMBAL_MANAGER_STATUS (..) => GIMBAL_MANAGER_STATUS_DATA :: NAME , Self :: STATUSTEXT (..) => STATUSTEXT_DATA :: NAME , Self :: CAMERA_FEEDBACK (..) => CAMERA_FEEDBACK_DATA :: NAME , Self :: PARAM_REQUEST_LIST (..) => PARAM_REQUEST_LIST_DATA :: NAME , Self :: HIL_RC_INPUTS_RAW (..) => HIL_RC_INPUTS_RAW_DATA :: NAME , Self :: OBSTACLE_DISTANCE_3D (..) => OBSTACLE_DISTANCE_3D_DATA :: NAME , Self :: MISSION_ITEM_INT (..) => MISSION_ITEM_INT_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_PITCHYAW (..) => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: NAME , Self :: REMOTE_LOG_BLOCK_STATUS (..) => REMOTE_LOG_BLOCK_STATUS_DATA :: NAME , Self :: MAG_CAL_REPORT (..) => MAG_CAL_REPORT_DATA :: NAME , Self :: CELLULAR_STATUS (..) => CELLULAR_STATUS_DATA :: NAME , Self :: DATA_STREAM (..) => DATA_STREAM_DATA :: NAME , Self :: SAFETY_ALLOWED_AREA (..) => SAFETY_ALLOWED_AREA_DATA :: NAME , Self :: OPEN_DRONE_ID_BASIC_ID (..) => OPEN_DRONE_ID_BASIC_ID_DATA :: NAME , Self :: SET_GPS_GLOBAL_ORIGIN (..) => SET_GPS_GLOBAL_ORIGIN_DATA :: NAME , Self :: VIDEO_STREAM_STATUS (..) => VIDEO_STREAM_STATUS_DATA :: NAME , Self :: COMPONENT_INFORMATION (..) => COMPONENT_INFORMATION_DATA :: NAME , Self :: VIDEO_STREAM_INFORMATION (..) => VIDEO_STREAM_INFORMATION_DATA :: NAME , Self :: SET_ATTITUDE_TARGET (..) => SET_ATTITUDE_TARGET_DATA :: NAME , Self :: GOPRO_HEARTBEAT (..) => GOPRO_HEARTBEAT_DATA :: NAME , Self :: RC_CHANNELS_RAW (..) => RC_CHANNELS_RAW_DATA :: NAME , Self :: ACTUATOR_OUTPUT_STATUS (..) => ACTUATOR_OUTPUT_STATUS_DATA :: NAME , Self :: HERELINK_TELEM (..) => HERELINK_TELEM_DATA :: NAME , Self :: SAFETY_SET_ALLOWED_AREA (..) => SAFETY_SET_ALLOWED_AREA_DATA :: NAME , Self :: AIRSPEED_AUTOCAL (..) => AIRSPEED_AUTOCAL_DATA :: NAME , Self :: ESC_TELEMETRY_1_TO_4 (..) => ESC_TELEMETRY_1_TO_4_DATA :: NAME , Self :: GIMBAL_REPORT (..) => GIMBAL_REPORT_DATA :: NAME , Self :: VISION_SPEED_ESTIMATE (..) => VISION_SPEED_ESTIMATE_DATA :: NAME , Self :: ONBOARD_COMPUTER_STATUS (..) => ONBOARD_COMPUTER_STATUS_DATA :: NAME , Self :: MCU_STATUS (..) => MCU_STATUS_DATA :: NAME , Self :: LOG_REQUEST_DATA (..) => LOG_REQUEST_DATA_DATA :: NAME , Self :: COMMAND_INT (..) => COMMAND_INT_DATA :: NAME , Self :: ALTITUDE (..) => ALTITUDE_DATA :: NAME , Self :: FOLLOW_TARGET (..) => FOLLOW_TARGET_DATA :: NAME , Self :: GPS_STATUS (..) => GPS_STATUS_DATA :: NAME , Self :: OSD_PARAM_CONFIG (..) => OSD_PARAM_CONFIG_DATA :: NAME , } } fn message_id (& self) -> u32 { match self { Self :: GIMBAL_CONTROL (..) => GIMBAL_CONTROL_DATA :: ID , Self :: FENCE_FETCH_POINT (..) => FENCE_FETCH_POINT_DATA :: ID , Self :: COMPONENT_METADATA (..) => COMPONENT_METADATA_DATA :: ID , Self :: PARAM_EXT_REQUEST_READ (..) => PARAM_EXT_REQUEST_READ_DATA :: ID , Self :: WINCH_STATUS (..) => WINCH_STATUS_DATA :: ID , Self :: PARAM_REQUEST_READ (..) => PARAM_REQUEST_READ_DATA :: ID , Self :: GIMBAL_MANAGER_SET_ATTITUDE (..) => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID , Self :: AUTOPILOT_VERSION_REQUEST (..) => AUTOPILOT_VERSION_REQUEST_DATA :: ID , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (..) => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID , Self :: POSITION_TARGET_LOCAL_NED (..) => POSITION_TARGET_LOCAL_NED_DATA :: ID , Self :: MANUAL_SETPOINT (..) => MANUAL_SETPOINT_DATA :: ID , Self :: OPEN_DRONE_ID_ARM_STATUS (..) => OPEN_DRONE_ID_ARM_STATUS_DATA :: ID , Self :: AUTOPILOT_VERSION (..) => AUTOPILOT_VERSION_DATA :: ID , Self :: DATA16 (..) => DATA16_DATA :: ID , Self :: MISSION_CURRENT (..) => MISSION_CURRENT_DATA :: ID , Self :: COMMAND_LONG (..) => COMMAND_LONG_DATA :: ID , Self :: ATTITUDE_TARGET (..) => ATTITUDE_TARGET_DATA :: ID , Self :: MAG_CAL_PROGRESS (..) => MAG_CAL_PROGRESS_DATA :: ID , Self :: MOUNT_CONFIGURE (..) => MOUNT_CONFIGURE_DATA :: ID , Self :: HIL_SENSOR (..) => HIL_SENSOR_DATA :: ID , Self :: REMOTE_LOG_DATA_BLOCK (..) => REMOTE_LOG_DATA_BLOCK_DATA :: ID , Self :: GIMBAL_TORQUE_CMD_REPORT (..) => GIMBAL_TORQUE_CMD_REPORT_DATA :: ID , Self :: CAMERA_FOV_STATUS (..) => CAMERA_FOV_STATUS_DATA :: ID , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (..) => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID , Self :: TERRAIN_REQUEST (..) => TERRAIN_REQUEST_DATA :: ID , Self :: GPS_INJECT_DATA (..) => GPS_INJECT_DATA_DATA :: ID , Self :: LOCAL_POSITION_NED (..) => LOCAL_POSITION_NED_DATA :: ID , Self :: UAVCAN_NODE_STATUS (..) => UAVCAN_NODE_STATUS_DATA :: ID , Self :: MISSION_REQUEST (..) => MISSION_REQUEST_DATA :: ID , Self :: REQUEST_DATA_STREAM (..) => REQUEST_DATA_STREAM_DATA :: ID , Self :: HOME_POSITION (..) => HOME_POSITION_DATA :: ID , Self :: GPS2_RTK (..) => GPS2_RTK_DATA :: ID , Self :: WHEEL_DISTANCE (..) => WHEEL_DISTANCE_DATA :: ID , Self :: LOCAL_POSITION_NED_COV (..) => LOCAL_POSITION_NED_COV_DATA :: ID , Self :: OPEN_DRONE_ID_OPERATOR_ID (..) => OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID , Self :: ATT_POS_MOCAP (..) => ATT_POS_MOCAP_DATA :: ID , Self :: DATA32 (..) => DATA32_DATA :: ID , Self :: LED_CONTROL (..) => LED_CONTROL_DATA :: ID , Self :: PROTOCOL_VERSION (..) => PROTOCOL_VERSION_DATA :: ID , Self :: TERRAIN_CHECK (..) => TERRAIN_CHECK_DATA :: ID , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (..) => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID , Self :: UAVIONIX_ADSB_OUT_CFG (..) => UAVIONIX_ADSB_OUT_CFG_DATA :: ID , Self :: DATA96 (..) => DATA96_DATA :: ID , Self :: UTM_GLOBAL_POSITION (..) => UTM_GLOBAL_POSITION_DATA :: ID , Self :: GOPRO_SET_REQUEST (..) => GOPRO_SET_REQUEST_DATA :: ID , Self :: ESC_TELEMETRY_5_TO_8 (..) => ESC_TELEMETRY_5_TO_8_DATA :: ID , Self :: WIND_COV (..) => WIND_COV_DATA :: ID , Self :: MISSION_REQUEST_LIST (..) => MISSION_REQUEST_LIST_DATA :: ID , Self :: PLAY_TUNE (..) => PLAY_TUNE_DATA :: ID , Self :: VISION_POSITION_ESTIMATE (..) => VISION_POSITION_ESTIMATE_DATA :: ID , Self :: LOG_REQUEST_END (..) => LOG_REQUEST_END_DATA :: ID , Self :: OPEN_DRONE_ID_SYSTEM (..) => OPEN_DRONE_ID_SYSTEM_DATA :: ID , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (..) => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID , Self :: FENCE_POINT (..) => FENCE_POINT_DATA :: ID , Self :: FILE_TRANSFER_PROTOCOL (..) => FILE_TRANSFER_PROTOCOL_DATA :: ID , Self :: HIL_CONTROLS (..) => HIL_CONTROLS_DATA :: ID , Self :: TIME_ESTIMATE_TO_TARGET (..) => TIME_ESTIMATE_TO_TARGET_DATA :: ID , Self :: PING (..) => PING_DATA :: ID , Self :: CUBEPILOT_RAW_RC (..) => CUBEPILOT_RAW_RC_DATA :: ID , Self :: PARAM_SET (..) => PARAM_SET_DATA :: ID , Self :: SYSTEM_TIME (..) => SYSTEM_TIME_DATA :: ID , Self :: MOUNT_CONTROL (..) => MOUNT_CONTROL_DATA :: ID , Self :: SIMSTATE (..) => SIMSTATE_DATA :: ID , Self :: SCALED_PRESSURE2 (..) => SCALED_PRESSURE2_DATA :: ID , Self :: AHRS2 (..) => AHRS2_DATA :: ID , Self :: PLAY_TUNE_V2 (..) => PLAY_TUNE_V2_DATA :: ID , Self :: GIMBAL_DEVICE_SET_ATTITUDE (..) => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID , Self :: SIM_STATE (..) => SIM_STATE_DATA :: ID , Self :: HIL_STATE (..) => HIL_STATE_DATA :: ID , Self :: GOPRO_GET_REQUEST (..) => GOPRO_GET_REQUEST_DATA :: ID , Self :: RANGEFINDER (..) => RANGEFINDER_DATA :: ID , Self :: OSD_PARAM_CONFIG_REPLY (..) => OSD_PARAM_CONFIG_REPLY_DATA :: ID , Self :: BATTERY2 (..) => BATTERY2_DATA :: ID , Self :: PARAM_EXT_VALUE (..) => PARAM_EXT_VALUE_DATA :: ID , Self :: GPS_RTK (..) => GPS_RTK_DATA :: ID , Self :: MESSAGE_INTERVAL (..) => MESSAGE_INTERVAL_DATA :: ID , Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (..) => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID , Self :: SCALED_IMU (..) => SCALED_IMU_DATA :: ID , Self :: HIGH_LATENCY (..) => HIGH_LATENCY_DATA :: ID , Self :: CAMERA_IMAGE_CAPTURED (..) => CAMERA_IMAGE_CAPTURED_DATA :: ID , Self :: LIMITS_STATUS (..) => LIMITS_STATUS_DATA :: ID , Self :: AUTH_KEY (..) => AUTH_KEY_DATA :: ID , Self :: DATA_TRANSMISSION_HANDSHAKE (..) => DATA_TRANSMISSION_HANDSHAKE_DATA :: ID , Self :: CHANGE_OPERATOR_CONTROL (..) => CHANGE_OPERATOR_CONTROL_DATA :: ID , Self :: LINK_NODE_STATUS (..) => LINK_NODE_STATUS_DATA :: ID , Self :: PID_TUNING (..) => PID_TUNING_DATA :: ID , Self :: ADAP_TUNING (..) => ADAP_TUNING_DATA :: ID , Self :: ESC_INFO (..) => ESC_INFO_DATA :: ID , Self :: TUNNEL (..) => TUNNEL_DATA :: ID , Self :: OPTICAL_FLOW_RAD (..) => OPTICAL_FLOW_RAD_DATA :: ID , Self :: TERRAIN_DATA (..) => TERRAIN_DATA_DATA :: ID , Self :: AHRS (..) => AHRS_DATA :: ID , Self :: SETUP_SIGNING (..) => SETUP_SIGNING_DATA :: ID , Self :: MISSION_WRITE_PARTIAL_LIST (..) => MISSION_WRITE_PARTIAL_LIST_DATA :: ID , Self :: GPS_INPUT (..) => GPS_INPUT_DATA :: ID , Self :: VFR_HUD (..) => VFR_HUD_DATA :: ID , Self :: POWER_STATUS (..) => POWER_STATUS_DATA :: ID , Self :: MISSION_SET_CURRENT (..) => MISSION_SET_CURRENT_DATA :: ID , Self :: RALLY_POINT (..) => RALLY_POINT_DATA :: ID , Self :: GOPRO_SET_RESPONSE (..) => GOPRO_SET_RESPONSE_DATA :: ID , Self :: DEVICE_OP_WRITE_REPLY (..) => DEVICE_OP_WRITE_REPLY_DATA :: ID , Self :: ESC_TELEMETRY_9_TO_12 (..) => ESC_TELEMETRY_9_TO_12_DATA :: ID , Self :: ACTUATOR_CONTROL_TARGET (..) => ACTUATOR_CONTROL_TARGET_DATA :: ID , Self :: RALLY_FETCH_POINT (..) => RALLY_FETCH_POINT_DATA :: ID , Self :: CUBEPILOT_FIRMWARE_UPDATE_RESP (..) => CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: ID , Self :: V2_EXTENSION (..) => V2_EXTENSION_DATA :: ID , Self :: GLOBAL_POSITION_INT (..) => GLOBAL_POSITION_INT_DATA :: ID , Self :: TRAJECTORY_REPRESENTATION_BEZIER (..) => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID , Self :: RAW_RPM (..) => RAW_RPM_DATA :: ID , Self :: SET_HOME_POSITION (..) => SET_HOME_POSITION_DATA :: ID , Self :: RESOURCE_REQUEST (..) => RESOURCE_REQUEST_DATA :: ID , Self :: ESC_STATUS (..) => ESC_STATUS_DATA :: ID , Self :: WIND (..) => WIND_DATA :: ID , Self :: EXTENDED_SYS_STATE (..) => EXTENDED_SYS_STATE_DATA :: ID , Self :: COMMAND_ACK (..) => COMMAND_ACK_DATA :: ID , Self :: PARAM_VALUE (..) => PARAM_VALUE_DATA :: ID , Self :: HEARTBEAT (..) => HEARTBEAT_DATA :: ID , Self :: GIMBAL_DEVICE_INFORMATION (..) => GIMBAL_DEVICE_INFORMATION_DATA :: ID , Self :: DEBUG (..) => DEBUG_DATA :: ID , Self :: MOUNT_ORIENTATION (..) => MOUNT_ORIENTATION_DATA :: ID , Self :: RC_CHANNELS (..) => RC_CHANNELS_DATA :: ID , Self :: VICON_POSITION_ESTIMATE (..) => VICON_POSITION_ESTIMATE_DATA :: ID , Self :: CAMERA_CAPTURE_STATUS (..) => CAMERA_CAPTURE_STATUS_DATA :: ID , Self :: CONTROL_SYSTEM_STATE (..) => CONTROL_SYSTEM_STATE_DATA :: ID , Self :: CAMERA_SETTINGS (..) => CAMERA_SETTINGS_DATA :: ID , Self :: SERIAL_CONTROL (..) => SERIAL_CONTROL_DATA :: ID , Self :: CAN_FILTER_MODIFY (..) => CAN_FILTER_MODIFY_DATA :: ID , Self :: PARAM_EXT_ACK (..) => PARAM_EXT_ACK_DATA :: ID , Self :: CAMERA_TRACKING_IMAGE_STATUS (..) => CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID , Self :: COMMAND_CANCEL (..) => COMMAND_CANCEL_DATA :: ID , Self :: SET_MAG_OFFSETS (..) => SET_MAG_OFFSETS_DATA :: ID , Self :: ADSB_VEHICLE (..) => ADSB_VEHICLE_DATA :: ID , Self :: DIGICAM_CONTROL (..) => DIGICAM_CONTROL_DATA :: ID , Self :: GPS2_RAW (..) => GPS2_RAW_DATA :: ID , Self :: OPEN_DRONE_ID_LOCATION (..) => OPEN_DRONE_ID_LOCATION_DATA :: ID , Self :: REQUEST_EVENT (..) => REQUEST_EVENT_DATA :: ID , Self :: CAMERA_STATUS (..) => CAMERA_STATUS_DATA :: ID , Self :: HYGROMETER_SENSOR (..) => HYGROMETER_SENSOR_DATA :: ID , Self :: STORAGE_INFORMATION (..) => STORAGE_INFORMATION_DATA :: ID , Self :: MISSION_ACK (..) => MISSION_ACK_DATA :: ID , Self :: LOGGING_ACK (..) => LOGGING_ACK_DATA :: ID , Self :: MEMINFO (..) => MEMINFO_DATA :: ID , Self :: DEVICE_OP_READ (..) => DEVICE_OP_READ_DATA :: ID , Self :: VISION_POSITION_DELTA (..) => VISION_POSITION_DELTA_DATA :: ID , Self :: ESTIMATOR_STATUS (..) => ESTIMATOR_STATUS_DATA :: ID , Self :: OSD_PARAM_SHOW_CONFIG_REPLY (..) => OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: ID , Self :: MEMORY_VECT (..) => MEMORY_VECT_DATA :: ID , Self :: EKF_STATUS_REPORT (..) => EKF_STATUS_REPORT_DATA :: ID , Self :: PARAM_EXT_SET (..) => PARAM_EXT_SET_DATA :: ID , Self :: HWSTATUS (..) => HWSTATUS_DATA :: ID , Self :: ICAROUS_KINEMATIC_BANDS (..) => ICAROUS_KINEMATIC_BANDS_DATA :: ID , Self :: OBSTACLE_DISTANCE (..) => OBSTACLE_DISTANCE_DATA :: ID , Self :: AIS_VESSEL (..) => AIS_VESSEL_DATA :: ID , Self :: GOPRO_GET_RESPONSE (..) => GOPRO_GET_RESPONSE_DATA :: ID , Self :: CAN_FRAME (..) => CAN_FRAME_DATA :: ID , Self :: GLOBAL_VISION_POSITION_ESTIMATE (..) => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID , Self :: OPTICAL_FLOW (..) => OPTICAL_FLOW_DATA :: ID , Self :: SERVO_OUTPUT_RAW (..) => SERVO_OUTPUT_RAW_DATA :: ID , Self :: LOG_ERASE (..) => LOG_ERASE_DATA :: ID , Self :: EVENT (..) => EVENT_DATA :: ID , Self :: DEBUG_VECT (..) => DEBUG_VECT_DATA :: ID , Self :: RAW_IMU (..) => RAW_IMU_DATA :: ID , Self :: AHRS3 (..) => AHRS3_DATA :: ID , Self :: ISBD_LINK_STATUS (..) => ISBD_LINK_STATUS_DATA :: ID , Self :: HERELINK_VIDEO_STREAM_INFORMATION (..) => HERELINK_VIDEO_STREAM_INFORMATION_DATA :: ID , Self :: HIL_ACTUATOR_CONTROLS (..) => HIL_ACTUATOR_CONTROLS_DATA :: ID , Self :: ENCAPSULATED_DATA (..) => ENCAPSULATED_DATA_DATA :: ID , Self :: UAVCAN_NODE_INFO (..) => UAVCAN_NODE_INFO_DATA :: ID , Self :: HIL_STATE_QUATERNION (..) => HIL_STATE_QUATERNION_DATA :: ID , Self :: LOGGING_DATA_ACKED (..) => LOGGING_DATA_ACKED_DATA :: ID , Self :: FLIGHT_INFORMATION (..) => FLIGHT_INFORMATION_DATA :: ID , Self :: DEVICE_OP_READ_REPLY (..) => DEVICE_OP_READ_REPLY_DATA :: ID , Self :: GPS_RAW_INT (..) => GPS_RAW_INT_DATA :: ID , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (..) => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID , Self :: RPM (..) => RPM_DATA :: ID , Self :: AOA_SSA (..) => AOA_SSA_DATA :: ID , Self :: OPEN_DRONE_ID_MESSAGE_PACK (..) => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID , Self :: WATER_DEPTH (..) => WATER_DEPTH_DATA :: ID , Self :: CAMERA_TRACKING_GEO_STATUS (..) => CAMERA_TRACKING_GEO_STATUS_DATA :: ID , Self :: CAMERA_INFORMATION (..) => CAMERA_INFORMATION_DATA :: ID , Self :: BUTTON_CHANGE (..) => BUTTON_CHANGE_DATA :: ID , Self :: RAW_PRESSURE (..) => RAW_PRESSURE_DATA :: ID , Self :: HIGHRES_IMU (..) => HIGHRES_IMU_DATA :: ID , Self :: PARAM_MAP_RC (..) => PARAM_MAP_RC_DATA :: ID , Self :: NAMED_VALUE_INT (..) => NAMED_VALUE_INT_DATA :: ID , Self :: TERRAIN_REPORT (..) => TERRAIN_REPORT_DATA :: ID , Self :: RC_CHANNELS_SCALED (..) => RC_CHANNELS_SCALED_DATA :: ID , Self :: ORBIT_EXECUTION_STATUS (..) => ORBIT_EXECUTION_STATUS_DATA :: ID , Self :: SCALED_IMU3 (..) => SCALED_IMU3_DATA :: ID , Self :: SENSOR_OFFSETS (..) => SENSOR_OFFSETS_DATA :: ID , Self :: RC_CHANNELS_OVERRIDE (..) => RC_CHANNELS_OVERRIDE_DATA :: ID , Self :: RADIO (..) => RADIO_DATA :: ID , Self :: POSITION_TARGET_GLOBAL_INT (..) => POSITION_TARGET_GLOBAL_INT_DATA :: ID , Self :: MANUAL_CONTROL (..) => MANUAL_CONTROL_DATA :: ID , Self :: CHANGE_OPERATOR_CONTROL_ACK (..) => CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID , Self :: SCALED_PRESSURE3 (..) => SCALED_PRESSURE3_DATA :: ID , Self :: PARAM_EXT_REQUEST_LIST (..) => PARAM_EXT_REQUEST_LIST_DATA :: ID , Self :: MISSION_CLEAR_ALL (..) => MISSION_CLEAR_ALL_DATA :: ID , Self :: GIMBAL_MANAGER_INFORMATION (..) => GIMBAL_MANAGER_INFORMATION_DATA :: ID , Self :: CELLULAR_CONFIG (..) => CELLULAR_CONFIG_DATA :: ID , Self :: LOG_ENTRY (..) => LOG_ENTRY_DATA :: ID , Self :: VIBRATION (..) => VIBRATION_DATA :: ID , Self :: SYS_STATUS (..) => SYS_STATUS_DATA :: ID , Self :: GLOBAL_POSITION_INT_COV (..) => GLOBAL_POSITION_INT_COV_DATA :: ID , Self :: ATTITUDE_QUATERNION_COV (..) => ATTITUDE_QUATERNION_COV_DATA :: ID , Self :: ATTITUDE_QUATERNION (..) => ATTITUDE_QUATERNION_DATA :: ID , Self :: FENCE_STATUS (..) => FENCE_STATUS_DATA :: ID , Self :: ICAROUS_HEARTBEAT (..) => ICAROUS_HEARTBEAT_DATA :: ID , Self :: HIL_GPS (..) => HIL_GPS_DATA :: ID , Self :: TIMESYNC (..) => TIMESYNC_DATA :: ID , Self :: GPS_RTCM_DATA (..) => GPS_RTCM_DATA_DATA :: ID , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (..) => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID , Self :: SMART_BATTERY_INFO (..) => SMART_BATTERY_INFO_DATA :: ID , Self :: DATA64 (..) => DATA64_DATA :: ID , Self :: DISTANCE_SENSOR (..) => DISTANCE_SENSOR_DATA :: ID , Self :: EFI_STATUS (..) => EFI_STATUS_DATA :: ID , Self :: SET_MODE (..) => SET_MODE_DATA :: ID , Self :: MISSION_ITEM (..) => MISSION_ITEM_DATA :: ID , Self :: NAMED_VALUE_FLOAT (..) => NAMED_VALUE_FLOAT_DATA :: ID , Self :: RESPONSE_EVENT_ERROR (..) => RESPONSE_EVENT_ERROR_DATA :: ID , Self :: SCALED_IMU2 (..) => SCALED_IMU2_DATA :: ID , Self :: ATTITUDE (..) => ATTITUDE_DATA :: ID , Self :: LANDING_TARGET (..) => LANDING_TARGET_DATA :: ID , Self :: OPEN_DRONE_ID_AUTHENTICATION (..) => OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID , Self :: NAV_CONTROLLER_OUTPUT (..) => NAV_CONTROLLER_OUTPUT_DATA :: ID , Self :: LOG_REQUEST_LIST (..) => LOG_REQUEST_LIST_DATA :: ID , Self :: GPS_GLOBAL_ORIGIN (..) => GPS_GLOBAL_ORIGIN_DATA :: ID , Self :: SUPPORTED_TUNES (..) => SUPPORTED_TUNES_DATA :: ID , Self :: MOUNT_STATUS (..) => MOUNT_STATUS_DATA :: ID , Self :: CANFD_FRAME (..) => CANFD_FRAME_DATA :: ID , Self :: WIFI_CONFIG_AP (..) => WIFI_CONFIG_AP_DATA :: ID , Self :: MISSION_ITEM_REACHED (..) => MISSION_ITEM_REACHED_DATA :: ID , Self :: COMPASSMOT_STATUS (..) => COMPASSMOT_STATUS_DATA :: ID , Self :: UAVIONIX_ADSB_OUT_DYNAMIC (..) => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID , Self :: AP_ADC (..) => AP_ADC_DATA :: ID , Self :: OSD_PARAM_SHOW_CONFIG (..) => OSD_PARAM_SHOW_CONFIG_DATA :: ID , Self :: CUBEPILOT_FIRMWARE_UPDATE_START (..) => CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: ID , Self :: RADIO_STATUS (..) => RADIO_STATUS_DATA :: ID , Self :: LOG_DATA (..) => LOG_DATA_DATA :: ID , Self :: DEBUG_FLOAT_ARRAY (..) => DEBUG_FLOAT_ARRAY_DATA :: ID , Self :: ODOMETRY (..) => ODOMETRY_DATA :: ID , Self :: HIL_OPTICAL_FLOW (..) => HIL_OPTICAL_FLOW_DATA :: ID , Self :: CURRENT_EVENT_SEQUENCE (..) => CURRENT_EVENT_SEQUENCE_DATA :: ID , Self :: LOGGING_DATA (..) => LOGGING_DATA_DATA :: ID , Self :: SET_ACTUATOR_CONTROL_TARGET (..) => SET_ACTUATOR_CONTROL_TARGET_DATA :: ID , Self :: SET_POSITION_TARGET_GLOBAL_INT (..) => SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID , Self :: SCALED_PRESSURE (..) => SCALED_PRESSURE_DATA :: ID , Self :: HIGH_LATENCY2 (..) => HIGH_LATENCY2_DATA :: ID , Self :: GENERATOR_STATUS (..) => GENERATOR_STATUS_DATA :: ID , Self :: MISSION_REQUEST_INT (..) => MISSION_REQUEST_INT_DATA :: ID , Self :: OPEN_DRONE_ID_SELF_ID (..) => OPEN_DRONE_ID_SELF_ID_DATA :: ID , Self :: CAMERA_TRIGGER (..) => CAMERA_TRIGGER_DATA :: ID , Self :: SET_POSITION_TARGET_LOCAL_NED (..) => SET_POSITION_TARGET_LOCAL_NED_DATA :: ID , Self :: DIGICAM_CONFIGURE (..) => DIGICAM_CONFIGURE_DATA :: ID , Self :: DEVICE_OP_WRITE (..) => DEVICE_OP_WRITE_DATA :: ID , Self :: COLLISION (..) => COLLISION_DATA :: ID , Self :: MISSION_COUNT (..) => MISSION_COUNT_DATA :: ID , Self :: BATTERY_STATUS (..) => BATTERY_STATUS_DATA :: ID , Self :: DEEPSTALL (..) => DEEPSTALL_DATA :: ID , Self :: MISSION_REQUEST_PARTIAL_LIST (..) => MISSION_REQUEST_PARTIAL_LIST_DATA :: ID , Self :: GIMBAL_MANAGER_STATUS (..) => GIMBAL_MANAGER_STATUS_DATA :: ID , Self :: STATUSTEXT (..) => STATUSTEXT_DATA :: ID , Self :: CAMERA_FEEDBACK (..) => CAMERA_FEEDBACK_DATA :: ID , Self :: PARAM_REQUEST_LIST (..) => PARAM_REQUEST_LIST_DATA :: ID , Self :: HIL_RC_INPUTS_RAW (..) => HIL_RC_INPUTS_RAW_DATA :: ID , Self :: OBSTACLE_DISTANCE_3D (..) => OBSTACLE_DISTANCE_3D_DATA :: ID , Self :: MISSION_ITEM_INT (..) => MISSION_ITEM_INT_DATA :: ID , Self :: GIMBAL_MANAGER_SET_PITCHYAW (..) => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID , Self :: REMOTE_LOG_BLOCK_STATUS (..) => REMOTE_LOG_BLOCK_STATUS_DATA :: ID , Self :: MAG_CAL_REPORT (..) => MAG_CAL_REPORT_DATA :: ID , Self :: CELLULAR_STATUS (..) => CELLULAR_STATUS_DATA :: ID , Self :: DATA_STREAM (..) => DATA_STREAM_DATA :: ID , Self :: SAFETY_ALLOWED_AREA (..) => SAFETY_ALLOWED_AREA_DATA :: ID , Self :: OPEN_DRONE_ID_BASIC_ID (..) => OPEN_DRONE_ID_BASIC_ID_DATA :: ID , Self :: SET_GPS_GLOBAL_ORIGIN (..) => SET_GPS_GLOBAL_ORIGIN_DATA :: ID , Self :: VIDEO_STREAM_STATUS (..) => VIDEO_STREAM_STATUS_DATA :: ID , Self :: COMPONENT_INFORMATION (..) => COMPONENT_INFORMATION_DATA :: ID , Self :: VIDEO_STREAM_INFORMATION (..) => VIDEO_STREAM_INFORMATION_DATA :: ID , Self :: SET_ATTITUDE_TARGET (..) => SET_ATTITUDE_TARGET_DATA :: ID , Self :: GOPRO_HEARTBEAT (..) => GOPRO_HEARTBEAT_DATA :: ID , Self :: RC_CHANNELS_RAW (..) => RC_CHANNELS_RAW_DATA :: ID , Self :: ACTUATOR_OUTPUT_STATUS (..) => ACTUATOR_OUTPUT_STATUS_DATA :: ID , Self :: HERELINK_TELEM (..) => HERELINK_TELEM_DATA :: ID , Self :: SAFETY_SET_ALLOWED_AREA (..) => SAFETY_SET_ALLOWED_AREA_DATA :: ID , Self :: AIRSPEED_AUTOCAL (..) => AIRSPEED_AUTOCAL_DATA :: ID , Self :: ESC_TELEMETRY_1_TO_4 (..) => ESC_TELEMETRY_1_TO_4_DATA :: ID , Self :: GIMBAL_REPORT (..) => GIMBAL_REPORT_DATA :: ID , Self :: VISION_SPEED_ESTIMATE (..) => VISION_SPEED_ESTIMATE_DATA :: ID , Self :: ONBOARD_COMPUTER_STATUS (..) => ONBOARD_COMPUTER_STATUS_DATA :: ID , Self :: MCU_STATUS (..) => MCU_STATUS_DATA :: ID , Self :: LOG_REQUEST_DATA (..) => LOG_REQUEST_DATA_DATA :: ID , Self :: COMMAND_INT (..) => COMMAND_INT_DATA :: ID , Self :: ALTITUDE (..) => ALTITUDE_DATA :: ID , Self :: FOLLOW_TARGET (..) => FOLLOW_TARGET_DATA :: ID , Self :: GPS_STATUS (..) => GPS_STATUS_DATA :: ID , Self :: OSD_PARAM_CONFIG (..) => OSD_PARAM_CONFIG_DATA :: ID , } } fn message_id_from_name (name : & str) -> Result < u32 , & 'static str > { match name { GIMBAL_CONTROL_DATA :: NAME => Ok (GIMBAL_CONTROL_DATA :: ID) , FENCE_FETCH_POINT_DATA :: NAME => Ok (FENCE_FETCH_POINT_DATA :: ID) , COMPONENT_METADATA_DATA :: NAME => Ok (COMPONENT_METADATA_DATA :: ID) , PARAM_EXT_REQUEST_READ_DATA :: NAME => Ok (PARAM_EXT_REQUEST_READ_DATA :: ID) , WINCH_STATUS_DATA :: NAME => Ok (WINCH_STATUS_DATA :: ID) , PARAM_REQUEST_READ_DATA :: NAME => Ok (PARAM_REQUEST_READ_DATA :: ID) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID) , AUTOPILOT_VERSION_REQUEST_DATA :: NAME => Ok (AUTOPILOT_VERSION_REQUEST_DATA :: ID) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: NAME => Ok (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID) , POSITION_TARGET_LOCAL_NED_DATA :: NAME => Ok (POSITION_TARGET_LOCAL_NED_DATA :: ID) , MANUAL_SETPOINT_DATA :: NAME => Ok (MANUAL_SETPOINT_DATA :: ID) , OPEN_DRONE_ID_ARM_STATUS_DATA :: NAME => Ok (OPEN_DRONE_ID_ARM_STATUS_DATA :: ID) , AUTOPILOT_VERSION_DATA :: NAME => Ok (AUTOPILOT_VERSION_DATA :: ID) , DATA16_DATA :: NAME => Ok (DATA16_DATA :: ID) , MISSION_CURRENT_DATA :: NAME => Ok (MISSION_CURRENT_DATA :: ID) , COMMAND_LONG_DATA :: NAME => Ok (COMMAND_LONG_DATA :: ID) , ATTITUDE_TARGET_DATA :: NAME => Ok (ATTITUDE_TARGET_DATA :: ID) , MAG_CAL_PROGRESS_DATA :: NAME => Ok (MAG_CAL_PROGRESS_DATA :: ID) , MOUNT_CONFIGURE_DATA :: NAME => Ok (MOUNT_CONFIGURE_DATA :: ID) , HIL_SENSOR_DATA :: NAME => Ok (HIL_SENSOR_DATA :: ID) , REMOTE_LOG_DATA_BLOCK_DATA :: NAME => Ok (REMOTE_LOG_DATA_BLOCK_DATA :: ID) , GIMBAL_TORQUE_CMD_REPORT_DATA :: NAME => Ok (GIMBAL_TORQUE_CMD_REPORT_DATA :: ID) , CAMERA_FOV_STATUS_DATA :: NAME => Ok (CAMERA_FOV_STATUS_DATA :: ID) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: NAME => Ok (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID) , TERRAIN_REQUEST_DATA :: NAME => Ok (TERRAIN_REQUEST_DATA :: ID) , GPS_INJECT_DATA_DATA :: NAME => Ok (GPS_INJECT_DATA_DATA :: ID) , LOCAL_POSITION_NED_DATA :: NAME => Ok (LOCAL_POSITION_NED_DATA :: ID) , UAVCAN_NODE_STATUS_DATA :: NAME => Ok (UAVCAN_NODE_STATUS_DATA :: ID) , MISSION_REQUEST_DATA :: NAME => Ok (MISSION_REQUEST_DATA :: ID) , REQUEST_DATA_STREAM_DATA :: NAME => Ok (REQUEST_DATA_STREAM_DATA :: ID) , HOME_POSITION_DATA :: NAME => Ok (HOME_POSITION_DATA :: ID) , GPS2_RTK_DATA :: NAME => Ok (GPS2_RTK_DATA :: ID) , WHEEL_DISTANCE_DATA :: NAME => Ok (WHEEL_DISTANCE_DATA :: ID) , LOCAL_POSITION_NED_COV_DATA :: NAME => Ok (LOCAL_POSITION_NED_COV_DATA :: ID) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID) , ATT_POS_MOCAP_DATA :: NAME => Ok (ATT_POS_MOCAP_DATA :: ID) , DATA32_DATA :: NAME => Ok (DATA32_DATA :: ID) , LED_CONTROL_DATA :: NAME => Ok (LED_CONTROL_DATA :: ID) , PROTOCOL_VERSION_DATA :: NAME => Ok (PROTOCOL_VERSION_DATA :: ID) , TERRAIN_CHECK_DATA :: NAME => Ok (TERRAIN_CHECK_DATA :: ID) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: NAME => Ok (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID) , UAVIONIX_ADSB_OUT_CFG_DATA :: NAME => Ok (UAVIONIX_ADSB_OUT_CFG_DATA :: ID) , DATA96_DATA :: NAME => Ok (DATA96_DATA :: ID) , UTM_GLOBAL_POSITION_DATA :: NAME => Ok (UTM_GLOBAL_POSITION_DATA :: ID) , GOPRO_SET_REQUEST_DATA :: NAME => Ok (GOPRO_SET_REQUEST_DATA :: ID) , ESC_TELEMETRY_5_TO_8_DATA :: NAME => Ok (ESC_TELEMETRY_5_TO_8_DATA :: ID) , WIND_COV_DATA :: NAME => Ok (WIND_COV_DATA :: ID) , MISSION_REQUEST_LIST_DATA :: NAME => Ok (MISSION_REQUEST_LIST_DATA :: ID) , PLAY_TUNE_DATA :: NAME => Ok (PLAY_TUNE_DATA :: ID) , VISION_POSITION_ESTIMATE_DATA :: NAME => Ok (VISION_POSITION_ESTIMATE_DATA :: ID) , LOG_REQUEST_END_DATA :: NAME => Ok (LOG_REQUEST_END_DATA :: ID) , OPEN_DRONE_ID_SYSTEM_DATA :: NAME => Ok (OPEN_DRONE_ID_SYSTEM_DATA :: ID) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: NAME => Ok (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID) , FENCE_POINT_DATA :: NAME => Ok (FENCE_POINT_DATA :: ID) , FILE_TRANSFER_PROTOCOL_DATA :: NAME => Ok (FILE_TRANSFER_PROTOCOL_DATA :: ID) , HIL_CONTROLS_DATA :: NAME => Ok (HIL_CONTROLS_DATA :: ID) , TIME_ESTIMATE_TO_TARGET_DATA :: NAME => Ok (TIME_ESTIMATE_TO_TARGET_DATA :: ID) , PING_DATA :: NAME => Ok (PING_DATA :: ID) , CUBEPILOT_RAW_RC_DATA :: NAME => Ok (CUBEPILOT_RAW_RC_DATA :: ID) , PARAM_SET_DATA :: NAME => Ok (PARAM_SET_DATA :: ID) , SYSTEM_TIME_DATA :: NAME => Ok (SYSTEM_TIME_DATA :: ID) , MOUNT_CONTROL_DATA :: NAME => Ok (MOUNT_CONTROL_DATA :: ID) , SIMSTATE_DATA :: NAME => Ok (SIMSTATE_DATA :: ID) , SCALED_PRESSURE2_DATA :: NAME => Ok (SCALED_PRESSURE2_DATA :: ID) , AHRS2_DATA :: NAME => Ok (AHRS2_DATA :: ID) , PLAY_TUNE_V2_DATA :: NAME => Ok (PLAY_TUNE_V2_DATA :: ID) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: NAME => Ok (GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID) , SIM_STATE_DATA :: NAME => Ok (SIM_STATE_DATA :: ID) , HIL_STATE_DATA :: NAME => Ok (HIL_STATE_DATA :: ID) , GOPRO_GET_REQUEST_DATA :: NAME => Ok (GOPRO_GET_REQUEST_DATA :: ID) , RANGEFINDER_DATA :: NAME => Ok (RANGEFINDER_DATA :: ID) , OSD_PARAM_CONFIG_REPLY_DATA :: NAME => Ok (OSD_PARAM_CONFIG_REPLY_DATA :: ID) , BATTERY2_DATA :: NAME => Ok (BATTERY2_DATA :: ID) , PARAM_EXT_VALUE_DATA :: NAME => Ok (PARAM_EXT_VALUE_DATA :: ID) , GPS_RTK_DATA :: NAME => Ok (GPS_RTK_DATA :: ID) , MESSAGE_INTERVAL_DATA :: NAME => Ok (MESSAGE_INTERVAL_DATA :: ID) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: NAME => Ok (UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID) , SCALED_IMU_DATA :: NAME => Ok (SCALED_IMU_DATA :: ID) , HIGH_LATENCY_DATA :: NAME => Ok (HIGH_LATENCY_DATA :: ID) , CAMERA_IMAGE_CAPTURED_DATA :: NAME => Ok (CAMERA_IMAGE_CAPTURED_DATA :: ID) , LIMITS_STATUS_DATA :: NAME => Ok (LIMITS_STATUS_DATA :: ID) , AUTH_KEY_DATA :: NAME => Ok (AUTH_KEY_DATA :: ID) , DATA_TRANSMISSION_HANDSHAKE_DATA :: NAME => Ok (DATA_TRANSMISSION_HANDSHAKE_DATA :: ID) , CHANGE_OPERATOR_CONTROL_DATA :: NAME => Ok (CHANGE_OPERATOR_CONTROL_DATA :: ID) , LINK_NODE_STATUS_DATA :: NAME => Ok (LINK_NODE_STATUS_DATA :: ID) , PID_TUNING_DATA :: NAME => Ok (PID_TUNING_DATA :: ID) , ADAP_TUNING_DATA :: NAME => Ok (ADAP_TUNING_DATA :: ID) , ESC_INFO_DATA :: NAME => Ok (ESC_INFO_DATA :: ID) , TUNNEL_DATA :: NAME => Ok (TUNNEL_DATA :: ID) , OPTICAL_FLOW_RAD_DATA :: NAME => Ok (OPTICAL_FLOW_RAD_DATA :: ID) , TERRAIN_DATA_DATA :: NAME => Ok (TERRAIN_DATA_DATA :: ID) , AHRS_DATA :: NAME => Ok (AHRS_DATA :: ID) , SETUP_SIGNING_DATA :: NAME => Ok (SETUP_SIGNING_DATA :: ID) , MISSION_WRITE_PARTIAL_LIST_DATA :: NAME => Ok (MISSION_WRITE_PARTIAL_LIST_DATA :: ID) , GPS_INPUT_DATA :: NAME => Ok (GPS_INPUT_DATA :: ID) , VFR_HUD_DATA :: NAME => Ok (VFR_HUD_DATA :: ID) , POWER_STATUS_DATA :: NAME => Ok (POWER_STATUS_DATA :: ID) , MISSION_SET_CURRENT_DATA :: NAME => Ok (MISSION_SET_CURRENT_DATA :: ID) , RALLY_POINT_DATA :: NAME => Ok (RALLY_POINT_DATA :: ID) , GOPRO_SET_RESPONSE_DATA :: NAME => Ok (GOPRO_SET_RESPONSE_DATA :: ID) , DEVICE_OP_WRITE_REPLY_DATA :: NAME => Ok (DEVICE_OP_WRITE_REPLY_DATA :: ID) , ESC_TELEMETRY_9_TO_12_DATA :: NAME => Ok (ESC_TELEMETRY_9_TO_12_DATA :: ID) , ACTUATOR_CONTROL_TARGET_DATA :: NAME => Ok (ACTUATOR_CONTROL_TARGET_DATA :: ID) , RALLY_FETCH_POINT_DATA :: NAME => Ok (RALLY_FETCH_POINT_DATA :: ID) , CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: NAME => Ok (CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: ID) , V2_EXTENSION_DATA :: NAME => Ok (V2_EXTENSION_DATA :: ID) , GLOBAL_POSITION_INT_DATA :: NAME => Ok (GLOBAL_POSITION_INT_DATA :: ID) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: NAME => Ok (TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID) , RAW_RPM_DATA :: NAME => Ok (RAW_RPM_DATA :: ID) , SET_HOME_POSITION_DATA :: NAME => Ok (SET_HOME_POSITION_DATA :: ID) , RESOURCE_REQUEST_DATA :: NAME => Ok (RESOURCE_REQUEST_DATA :: ID) , ESC_STATUS_DATA :: NAME => Ok (ESC_STATUS_DATA :: ID) , WIND_DATA :: NAME => Ok (WIND_DATA :: ID) , EXTENDED_SYS_STATE_DATA :: NAME => Ok (EXTENDED_SYS_STATE_DATA :: ID) , COMMAND_ACK_DATA :: NAME => Ok (COMMAND_ACK_DATA :: ID) , PARAM_VALUE_DATA :: NAME => Ok (PARAM_VALUE_DATA :: ID) , HEARTBEAT_DATA :: NAME => Ok (HEARTBEAT_DATA :: ID) , GIMBAL_DEVICE_INFORMATION_DATA :: NAME => Ok (GIMBAL_DEVICE_INFORMATION_DATA :: ID) , DEBUG_DATA :: NAME => Ok (DEBUG_DATA :: ID) , MOUNT_ORIENTATION_DATA :: NAME => Ok (MOUNT_ORIENTATION_DATA :: ID) , RC_CHANNELS_DATA :: NAME => Ok (RC_CHANNELS_DATA :: ID) , VICON_POSITION_ESTIMATE_DATA :: NAME => Ok (VICON_POSITION_ESTIMATE_DATA :: ID) , CAMERA_CAPTURE_STATUS_DATA :: NAME => Ok (CAMERA_CAPTURE_STATUS_DATA :: ID) , CONTROL_SYSTEM_STATE_DATA :: NAME => Ok (CONTROL_SYSTEM_STATE_DATA :: ID) , CAMERA_SETTINGS_DATA :: NAME => Ok (CAMERA_SETTINGS_DATA :: ID) , SERIAL_CONTROL_DATA :: NAME => Ok (SERIAL_CONTROL_DATA :: ID) , CAN_FILTER_MODIFY_DATA :: NAME => Ok (CAN_FILTER_MODIFY_DATA :: ID) , PARAM_EXT_ACK_DATA :: NAME => Ok (PARAM_EXT_ACK_DATA :: ID) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: NAME => Ok (CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID) , COMMAND_CANCEL_DATA :: NAME => Ok (COMMAND_CANCEL_DATA :: ID) , SET_MAG_OFFSETS_DATA :: NAME => Ok (SET_MAG_OFFSETS_DATA :: ID) , ADSB_VEHICLE_DATA :: NAME => Ok (ADSB_VEHICLE_DATA :: ID) , DIGICAM_CONTROL_DATA :: NAME => Ok (DIGICAM_CONTROL_DATA :: ID) , GPS2_RAW_DATA :: NAME => Ok (GPS2_RAW_DATA :: ID) , OPEN_DRONE_ID_LOCATION_DATA :: NAME => Ok (OPEN_DRONE_ID_LOCATION_DATA :: ID) , REQUEST_EVENT_DATA :: NAME => Ok (REQUEST_EVENT_DATA :: ID) , CAMERA_STATUS_DATA :: NAME => Ok (CAMERA_STATUS_DATA :: ID) , HYGROMETER_SENSOR_DATA :: NAME => Ok (HYGROMETER_SENSOR_DATA :: ID) , STORAGE_INFORMATION_DATA :: NAME => Ok (STORAGE_INFORMATION_DATA :: ID) , MISSION_ACK_DATA :: NAME => Ok (MISSION_ACK_DATA :: ID) , LOGGING_ACK_DATA :: NAME => Ok (LOGGING_ACK_DATA :: ID) , MEMINFO_DATA :: NAME => Ok (MEMINFO_DATA :: ID) , DEVICE_OP_READ_DATA :: NAME => Ok (DEVICE_OP_READ_DATA :: ID) , VISION_POSITION_DELTA_DATA :: NAME => Ok (VISION_POSITION_DELTA_DATA :: ID) , ESTIMATOR_STATUS_DATA :: NAME => Ok (ESTIMATOR_STATUS_DATA :: ID) , OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: NAME => Ok (OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: ID) , MEMORY_VECT_DATA :: NAME => Ok (MEMORY_VECT_DATA :: ID) , EKF_STATUS_REPORT_DATA :: NAME => Ok (EKF_STATUS_REPORT_DATA :: ID) , PARAM_EXT_SET_DATA :: NAME => Ok (PARAM_EXT_SET_DATA :: ID) , HWSTATUS_DATA :: NAME => Ok (HWSTATUS_DATA :: ID) , ICAROUS_KINEMATIC_BANDS_DATA :: NAME => Ok (ICAROUS_KINEMATIC_BANDS_DATA :: ID) , OBSTACLE_DISTANCE_DATA :: NAME => Ok (OBSTACLE_DISTANCE_DATA :: ID) , AIS_VESSEL_DATA :: NAME => Ok (AIS_VESSEL_DATA :: ID) , GOPRO_GET_RESPONSE_DATA :: NAME => Ok (GOPRO_GET_RESPONSE_DATA :: ID) , CAN_FRAME_DATA :: NAME => Ok (CAN_FRAME_DATA :: ID) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: NAME => Ok (GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID) , OPTICAL_FLOW_DATA :: NAME => Ok (OPTICAL_FLOW_DATA :: ID) , SERVO_OUTPUT_RAW_DATA :: NAME => Ok (SERVO_OUTPUT_RAW_DATA :: ID) , LOG_ERASE_DATA :: NAME => Ok (LOG_ERASE_DATA :: ID) , EVENT_DATA :: NAME => Ok (EVENT_DATA :: ID) , DEBUG_VECT_DATA :: NAME => Ok (DEBUG_VECT_DATA :: ID) , RAW_IMU_DATA :: NAME => Ok (RAW_IMU_DATA :: ID) , AHRS3_DATA :: NAME => Ok (AHRS3_DATA :: ID) , ISBD_LINK_STATUS_DATA :: NAME => Ok (ISBD_LINK_STATUS_DATA :: ID) , HERELINK_VIDEO_STREAM_INFORMATION_DATA :: NAME => Ok (HERELINK_VIDEO_STREAM_INFORMATION_DATA :: ID) , HIL_ACTUATOR_CONTROLS_DATA :: NAME => Ok (HIL_ACTUATOR_CONTROLS_DATA :: ID) , ENCAPSULATED_DATA_DATA :: NAME => Ok (ENCAPSULATED_DATA_DATA :: ID) , UAVCAN_NODE_INFO_DATA :: NAME => Ok (UAVCAN_NODE_INFO_DATA :: ID) , HIL_STATE_QUATERNION_DATA :: NAME => Ok (HIL_STATE_QUATERNION_DATA :: ID) , LOGGING_DATA_ACKED_DATA :: NAME => Ok (LOGGING_DATA_ACKED_DATA :: ID) , FLIGHT_INFORMATION_DATA :: NAME => Ok (FLIGHT_INFORMATION_DATA :: ID) , DEVICE_OP_READ_REPLY_DATA :: NAME => Ok (DEVICE_OP_READ_REPLY_DATA :: ID) , GPS_RAW_INT_DATA :: NAME => Ok (GPS_RAW_INT_DATA :: ID) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: NAME => Ok (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID) , RPM_DATA :: NAME => Ok (RPM_DATA :: ID) , AOA_SSA_DATA :: NAME => Ok (AOA_SSA_DATA :: ID) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: NAME => Ok (OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID) , WATER_DEPTH_DATA :: NAME => Ok (WATER_DEPTH_DATA :: ID) , CAMERA_TRACKING_GEO_STATUS_DATA :: NAME => Ok (CAMERA_TRACKING_GEO_STATUS_DATA :: ID) , CAMERA_INFORMATION_DATA :: NAME => Ok (CAMERA_INFORMATION_DATA :: ID) , BUTTON_CHANGE_DATA :: NAME => Ok (BUTTON_CHANGE_DATA :: ID) , RAW_PRESSURE_DATA :: NAME => Ok (RAW_PRESSURE_DATA :: ID) , HIGHRES_IMU_DATA :: NAME => Ok (HIGHRES_IMU_DATA :: ID) , PARAM_MAP_RC_DATA :: NAME => Ok (PARAM_MAP_RC_DATA :: ID) , NAMED_VALUE_INT_DATA :: NAME => Ok (NAMED_VALUE_INT_DATA :: ID) , TERRAIN_REPORT_DATA :: NAME => Ok (TERRAIN_REPORT_DATA :: ID) , RC_CHANNELS_SCALED_DATA :: NAME => Ok (RC_CHANNELS_SCALED_DATA :: ID) , ORBIT_EXECUTION_STATUS_DATA :: NAME => Ok (ORBIT_EXECUTION_STATUS_DATA :: ID) , SCALED_IMU3_DATA :: NAME => Ok (SCALED_IMU3_DATA :: ID) , SENSOR_OFFSETS_DATA :: NAME => Ok (SENSOR_OFFSETS_DATA :: ID) , RC_CHANNELS_OVERRIDE_DATA :: NAME => Ok (RC_CHANNELS_OVERRIDE_DATA :: ID) , RADIO_DATA :: NAME => Ok (RADIO_DATA :: ID) , POSITION_TARGET_GLOBAL_INT_DATA :: NAME => Ok (POSITION_TARGET_GLOBAL_INT_DATA :: ID) , MANUAL_CONTROL_DATA :: NAME => Ok (MANUAL_CONTROL_DATA :: ID) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: NAME => Ok (CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID) , SCALED_PRESSURE3_DATA :: NAME => Ok (SCALED_PRESSURE3_DATA :: ID) , PARAM_EXT_REQUEST_LIST_DATA :: NAME => Ok (PARAM_EXT_REQUEST_LIST_DATA :: ID) , MISSION_CLEAR_ALL_DATA :: NAME => Ok (MISSION_CLEAR_ALL_DATA :: ID) , GIMBAL_MANAGER_INFORMATION_DATA :: NAME => Ok (GIMBAL_MANAGER_INFORMATION_DATA :: ID) , CELLULAR_CONFIG_DATA :: NAME => Ok (CELLULAR_CONFIG_DATA :: ID) , LOG_ENTRY_DATA :: NAME => Ok (LOG_ENTRY_DATA :: ID) , VIBRATION_DATA :: NAME => Ok (VIBRATION_DATA :: ID) , SYS_STATUS_DATA :: NAME => Ok (SYS_STATUS_DATA :: ID) , GLOBAL_POSITION_INT_COV_DATA :: NAME => Ok (GLOBAL_POSITION_INT_COV_DATA :: ID) , ATTITUDE_QUATERNION_COV_DATA :: NAME => Ok (ATTITUDE_QUATERNION_COV_DATA :: ID) , ATTITUDE_QUATERNION_DATA :: NAME => Ok (ATTITUDE_QUATERNION_DATA :: ID) , FENCE_STATUS_DATA :: NAME => Ok (FENCE_STATUS_DATA :: ID) , ICAROUS_HEARTBEAT_DATA :: NAME => Ok (ICAROUS_HEARTBEAT_DATA :: ID) , HIL_GPS_DATA :: NAME => Ok (HIL_GPS_DATA :: ID) , TIMESYNC_DATA :: NAME => Ok (TIMESYNC_DATA :: ID) , GPS_RTCM_DATA_DATA :: NAME => Ok (GPS_RTCM_DATA_DATA :: ID) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID) , SMART_BATTERY_INFO_DATA :: NAME => Ok (SMART_BATTERY_INFO_DATA :: ID) , DATA64_DATA :: NAME => Ok (DATA64_DATA :: ID) , DISTANCE_SENSOR_DATA :: NAME => Ok (DISTANCE_SENSOR_DATA :: ID) , EFI_STATUS_DATA :: NAME => Ok (EFI_STATUS_DATA :: ID) , SET_MODE_DATA :: NAME => Ok (SET_MODE_DATA :: ID) , MISSION_ITEM_DATA :: NAME => Ok (MISSION_ITEM_DATA :: ID) , NAMED_VALUE_FLOAT_DATA :: NAME => Ok (NAMED_VALUE_FLOAT_DATA :: ID) , RESPONSE_EVENT_ERROR_DATA :: NAME => Ok (RESPONSE_EVENT_ERROR_DATA :: ID) , SCALED_IMU2_DATA :: NAME => Ok (SCALED_IMU2_DATA :: ID) , ATTITUDE_DATA :: NAME => Ok (ATTITUDE_DATA :: ID) , LANDING_TARGET_DATA :: NAME => Ok (LANDING_TARGET_DATA :: ID) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: NAME => Ok (OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID) , NAV_CONTROLLER_OUTPUT_DATA :: NAME => Ok (NAV_CONTROLLER_OUTPUT_DATA :: ID) , LOG_REQUEST_LIST_DATA :: NAME => Ok (LOG_REQUEST_LIST_DATA :: ID) , GPS_GLOBAL_ORIGIN_DATA :: NAME => Ok (GPS_GLOBAL_ORIGIN_DATA :: ID) , SUPPORTED_TUNES_DATA :: NAME => Ok (SUPPORTED_TUNES_DATA :: ID) , MOUNT_STATUS_DATA :: NAME => Ok (MOUNT_STATUS_DATA :: ID) , CANFD_FRAME_DATA :: NAME => Ok (CANFD_FRAME_DATA :: ID) , WIFI_CONFIG_AP_DATA :: NAME => Ok (WIFI_CONFIG_AP_DATA :: ID) , MISSION_ITEM_REACHED_DATA :: NAME => Ok (MISSION_ITEM_REACHED_DATA :: ID) , COMPASSMOT_STATUS_DATA :: NAME => Ok (COMPASSMOT_STATUS_DATA :: ID) , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: NAME => Ok (UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID) , AP_ADC_DATA :: NAME => Ok (AP_ADC_DATA :: ID) , OSD_PARAM_SHOW_CONFIG_DATA :: NAME => Ok (OSD_PARAM_SHOW_CONFIG_DATA :: ID) , CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: NAME => Ok (CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: ID) , RADIO_STATUS_DATA :: NAME => Ok (RADIO_STATUS_DATA :: ID) , LOG_DATA_DATA :: NAME => Ok (LOG_DATA_DATA :: ID) , DEBUG_FLOAT_ARRAY_DATA :: NAME => Ok (DEBUG_FLOAT_ARRAY_DATA :: ID) , ODOMETRY_DATA :: NAME => Ok (ODOMETRY_DATA :: ID) , HIL_OPTICAL_FLOW_DATA :: NAME => Ok (HIL_OPTICAL_FLOW_DATA :: ID) , CURRENT_EVENT_SEQUENCE_DATA :: NAME => Ok (CURRENT_EVENT_SEQUENCE_DATA :: ID) , LOGGING_DATA_DATA :: NAME => Ok (LOGGING_DATA_DATA :: ID) , SET_ACTUATOR_CONTROL_TARGET_DATA :: NAME => Ok (SET_ACTUATOR_CONTROL_TARGET_DATA :: ID) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: NAME => Ok (SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID) , SCALED_PRESSURE_DATA :: NAME => Ok (SCALED_PRESSURE_DATA :: ID) , HIGH_LATENCY2_DATA :: NAME => Ok (HIGH_LATENCY2_DATA :: ID) , GENERATOR_STATUS_DATA :: NAME => Ok (GENERATOR_STATUS_DATA :: ID) , MISSION_REQUEST_INT_DATA :: NAME => Ok (MISSION_REQUEST_INT_DATA :: ID) , OPEN_DRONE_ID_SELF_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_SELF_ID_DATA :: ID) , CAMERA_TRIGGER_DATA :: NAME => Ok (CAMERA_TRIGGER_DATA :: ID) , SET_POSITION_TARGET_LOCAL_NED_DATA :: NAME => Ok (SET_POSITION_TARGET_LOCAL_NED_DATA :: ID) , DIGICAM_CONFIGURE_DATA :: NAME => Ok (DIGICAM_CONFIGURE_DATA :: ID) , DEVICE_OP_WRITE_DATA :: NAME => Ok (DEVICE_OP_WRITE_DATA :: ID) , COLLISION_DATA :: NAME => Ok (COLLISION_DATA :: ID) , MISSION_COUNT_DATA :: NAME => Ok (MISSION_COUNT_DATA :: ID) , BATTERY_STATUS_DATA :: NAME => Ok (BATTERY_STATUS_DATA :: ID) , DEEPSTALL_DATA :: NAME => Ok (DEEPSTALL_DATA :: ID) , MISSION_REQUEST_PARTIAL_LIST_DATA :: NAME => Ok (MISSION_REQUEST_PARTIAL_LIST_DATA :: ID) , GIMBAL_MANAGER_STATUS_DATA :: NAME => Ok (GIMBAL_MANAGER_STATUS_DATA :: ID) , STATUSTEXT_DATA :: NAME => Ok (STATUSTEXT_DATA :: ID) , CAMERA_FEEDBACK_DATA :: NAME => Ok (CAMERA_FEEDBACK_DATA :: ID) , PARAM_REQUEST_LIST_DATA :: NAME => Ok (PARAM_REQUEST_LIST_DATA :: ID) , HIL_RC_INPUTS_RAW_DATA :: NAME => Ok (HIL_RC_INPUTS_RAW_DATA :: ID) , OBSTACLE_DISTANCE_3D_DATA :: NAME => Ok (OBSTACLE_DISTANCE_3D_DATA :: ID) , MISSION_ITEM_INT_DATA :: NAME => Ok (MISSION_ITEM_INT_DATA :: ID) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID) , REMOTE_LOG_BLOCK_STATUS_DATA :: NAME => Ok (REMOTE_LOG_BLOCK_STATUS_DATA :: ID) , MAG_CAL_REPORT_DATA :: NAME => Ok (MAG_CAL_REPORT_DATA :: ID) , CELLULAR_STATUS_DATA :: NAME => Ok (CELLULAR_STATUS_DATA :: ID) , DATA_STREAM_DATA :: NAME => Ok (DATA_STREAM_DATA :: ID) , SAFETY_ALLOWED_AREA_DATA :: NAME => Ok (SAFETY_ALLOWED_AREA_DATA :: ID) , OPEN_DRONE_ID_BASIC_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_BASIC_ID_DATA :: ID) , SET_GPS_GLOBAL_ORIGIN_DATA :: NAME => Ok (SET_GPS_GLOBAL_ORIGIN_DATA :: ID) , VIDEO_STREAM_STATUS_DATA :: NAME => Ok (VIDEO_STREAM_STATUS_DATA :: ID) , COMPONENT_INFORMATION_DATA :: NAME => Ok (COMPONENT_INFORMATION_DATA :: ID) , VIDEO_STREAM_INFORMATION_DATA :: NAME => Ok (VIDEO_STREAM_INFORMATION_DATA :: ID) , SET_ATTITUDE_TARGET_DATA :: NAME => Ok (SET_ATTITUDE_TARGET_DATA :: ID) , GOPRO_HEARTBEAT_DATA :: NAME => Ok (GOPRO_HEARTBEAT_DATA :: ID) , RC_CHANNELS_RAW_DATA :: NAME => Ok (RC_CHANNELS_RAW_DATA :: ID) , ACTUATOR_OUTPUT_STATUS_DATA :: NAME => Ok (ACTUATOR_OUTPUT_STATUS_DATA :: ID) , HERELINK_TELEM_DATA :: NAME => Ok (HERELINK_TELEM_DATA :: ID) , SAFETY_SET_ALLOWED_AREA_DATA :: NAME => Ok (SAFETY_SET_ALLOWED_AREA_DATA :: ID) , AIRSPEED_AUTOCAL_DATA :: NAME => Ok (AIRSPEED_AUTOCAL_DATA :: ID) , ESC_TELEMETRY_1_TO_4_DATA :: NAME => Ok (ESC_TELEMETRY_1_TO_4_DATA :: ID) , GIMBAL_REPORT_DATA :: NAME => Ok (GIMBAL_REPORT_DATA :: ID) , VISION_SPEED_ESTIMATE_DATA :: NAME => Ok (VISION_SPEED_ESTIMATE_DATA :: ID) , ONBOARD_COMPUTER_STATUS_DATA :: NAME => Ok (ONBOARD_COMPUTER_STATUS_DATA :: ID) , MCU_STATUS_DATA :: NAME => Ok (MCU_STATUS_DATA :: ID) , LOG_REQUEST_DATA_DATA :: NAME => Ok (LOG_REQUEST_DATA_DATA :: ID) , COMMAND_INT_DATA :: NAME => Ok (COMMAND_INT_DATA :: ID) , ALTITUDE_DATA :: NAME => Ok (ALTITUDE_DATA :: ID) , FOLLOW_TARGET_DATA :: NAME => Ok (FOLLOW_TARGET_DATA :: ID) , GPS_STATUS_DATA :: NAME => Ok (GPS_STATUS_DATA :: ID) , OSD_PARAM_CONFIG_DATA :: NAME => Ok (OSD_PARAM_CONFIG_DATA :: ID) , _ => { Err ("Invalid message name.") } } } fn default_message_from_id (id : u32) -> Result < Self , & 'static str > { match id { GIMBAL_CONTROL_DATA :: ID => Ok (Self :: GIMBAL_CONTROL (GIMBAL_CONTROL_DATA :: default ())) , FENCE_FETCH_POINT_DATA :: ID => Ok (Self :: FENCE_FETCH_POINT (FENCE_FETCH_POINT_DATA :: default ())) , COMPONENT_METADATA_DATA :: ID => Ok (Self :: COMPONENT_METADATA (COMPONENT_METADATA_DATA :: default ())) , PARAM_EXT_REQUEST_READ_DATA :: ID => Ok (Self :: PARAM_EXT_REQUEST_READ (PARAM_EXT_REQUEST_READ_DATA :: default ())) , WINCH_STATUS_DATA :: ID => Ok (Self :: WINCH_STATUS (WINCH_STATUS_DATA :: default ())) , PARAM_REQUEST_READ_DATA :: ID => Ok (Self :: PARAM_REQUEST_READ (PARAM_REQUEST_READ_DATA :: default ())) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_ATTITUDE (GIMBAL_MANAGER_SET_ATTITUDE_DATA :: default ())) , AUTOPILOT_VERSION_REQUEST_DATA :: ID => Ok (Self :: AUTOPILOT_VERSION_REQUEST (AUTOPILOT_VERSION_REQUEST_DATA :: default ())) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => Ok (Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: default ())) , POSITION_TARGET_LOCAL_NED_DATA :: ID => Ok (Self :: POSITION_TARGET_LOCAL_NED (POSITION_TARGET_LOCAL_NED_DATA :: default ())) , MANUAL_SETPOINT_DATA :: ID => Ok (Self :: MANUAL_SETPOINT (MANUAL_SETPOINT_DATA :: default ())) , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_ARM_STATUS (OPEN_DRONE_ID_ARM_STATUS_DATA :: default ())) , AUTOPILOT_VERSION_DATA :: ID => Ok (Self :: AUTOPILOT_VERSION (AUTOPILOT_VERSION_DATA :: default ())) , DATA16_DATA :: ID => Ok (Self :: DATA16 (DATA16_DATA :: default ())) , MISSION_CURRENT_DATA :: ID => Ok (Self :: MISSION_CURRENT (MISSION_CURRENT_DATA :: default ())) , COMMAND_LONG_DATA :: ID => Ok (Self :: COMMAND_LONG (COMMAND_LONG_DATA :: default ())) , ATTITUDE_TARGET_DATA :: ID => Ok (Self :: ATTITUDE_TARGET (ATTITUDE_TARGET_DATA :: default ())) , MAG_CAL_PROGRESS_DATA :: ID => Ok (Self :: MAG_CAL_PROGRESS (MAG_CAL_PROGRESS_DATA :: default ())) , MOUNT_CONFIGURE_DATA :: ID => Ok (Self :: MOUNT_CONFIGURE (MOUNT_CONFIGURE_DATA :: default ())) , HIL_SENSOR_DATA :: ID => Ok (Self :: HIL_SENSOR (HIL_SENSOR_DATA :: default ())) , REMOTE_LOG_DATA_BLOCK_DATA :: ID => Ok (Self :: REMOTE_LOG_DATA_BLOCK (REMOTE_LOG_DATA_BLOCK_DATA :: default ())) , GIMBAL_TORQUE_CMD_REPORT_DATA :: ID => Ok (Self :: GIMBAL_TORQUE_CMD_REPORT (GIMBAL_TORQUE_CMD_REPORT_DATA :: default ())) , CAMERA_FOV_STATUS_DATA :: ID => Ok (Self :: CAMERA_FOV_STATUS (CAMERA_FOV_STATUS_DATA :: default ())) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => Ok (Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: default ())) , TERRAIN_REQUEST_DATA :: ID => Ok (Self :: TERRAIN_REQUEST (TERRAIN_REQUEST_DATA :: default ())) , GPS_INJECT_DATA_DATA :: ID => Ok (Self :: GPS_INJECT_DATA (GPS_INJECT_DATA_DATA :: default ())) , LOCAL_POSITION_NED_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED (LOCAL_POSITION_NED_DATA :: default ())) , UAVCAN_NODE_STATUS_DATA :: ID => Ok (Self :: UAVCAN_NODE_STATUS (UAVCAN_NODE_STATUS_DATA :: default ())) , MISSION_REQUEST_DATA :: ID => Ok (Self :: MISSION_REQUEST (MISSION_REQUEST_DATA :: default ())) , REQUEST_DATA_STREAM_DATA :: ID => Ok (Self :: REQUEST_DATA_STREAM (REQUEST_DATA_STREAM_DATA :: default ())) , HOME_POSITION_DATA :: ID => Ok (Self :: HOME_POSITION (HOME_POSITION_DATA :: default ())) , GPS2_RTK_DATA :: ID => Ok (Self :: GPS2_RTK (GPS2_RTK_DATA :: default ())) , WHEEL_DISTANCE_DATA :: ID => Ok (Self :: WHEEL_DISTANCE (WHEEL_DISTANCE_DATA :: default ())) , LOCAL_POSITION_NED_COV_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED_COV (LOCAL_POSITION_NED_COV_DATA :: default ())) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_OPERATOR_ID (OPEN_DRONE_ID_OPERATOR_ID_DATA :: default ())) , ATT_POS_MOCAP_DATA :: ID => Ok (Self :: ATT_POS_MOCAP (ATT_POS_MOCAP_DATA :: default ())) , DATA32_DATA :: ID => Ok (Self :: DATA32 (DATA32_DATA :: default ())) , LED_CONTROL_DATA :: ID => Ok (Self :: LED_CONTROL (LED_CONTROL_DATA :: default ())) , PROTOCOL_VERSION_DATA :: ID => Ok (Self :: PROTOCOL_VERSION (PROTOCOL_VERSION_DATA :: default ())) , TERRAIN_CHECK_DATA :: ID => Ok (Self :: TERRAIN_CHECK (TERRAIN_CHECK_DATA :: default ())) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: default ())) , UAVIONIX_ADSB_OUT_CFG_DATA :: ID => Ok (Self :: UAVIONIX_ADSB_OUT_CFG (UAVIONIX_ADSB_OUT_CFG_DATA :: default ())) , DATA96_DATA :: ID => Ok (Self :: DATA96 (DATA96_DATA :: default ())) , UTM_GLOBAL_POSITION_DATA :: ID => Ok (Self :: UTM_GLOBAL_POSITION (UTM_GLOBAL_POSITION_DATA :: default ())) , GOPRO_SET_REQUEST_DATA :: ID => Ok (Self :: GOPRO_SET_REQUEST (GOPRO_SET_REQUEST_DATA :: default ())) , ESC_TELEMETRY_5_TO_8_DATA :: ID => Ok (Self :: ESC_TELEMETRY_5_TO_8 (ESC_TELEMETRY_5_TO_8_DATA :: default ())) , WIND_COV_DATA :: ID => Ok (Self :: WIND_COV (WIND_COV_DATA :: default ())) , MISSION_REQUEST_LIST_DATA :: ID => Ok (Self :: MISSION_REQUEST_LIST (MISSION_REQUEST_LIST_DATA :: default ())) , PLAY_TUNE_DATA :: ID => Ok (Self :: PLAY_TUNE (PLAY_TUNE_DATA :: default ())) , VISION_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: VISION_POSITION_ESTIMATE (VISION_POSITION_ESTIMATE_DATA :: default ())) , LOG_REQUEST_END_DATA :: ID => Ok (Self :: LOG_REQUEST_END (LOG_REQUEST_END_DATA :: default ())) , OPEN_DRONE_ID_SYSTEM_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SYSTEM (OPEN_DRONE_ID_SYSTEM_DATA :: default ())) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: default ())) , FENCE_POINT_DATA :: ID => Ok (Self :: FENCE_POINT (FENCE_POINT_DATA :: default ())) , FILE_TRANSFER_PROTOCOL_DATA :: ID => Ok (Self :: FILE_TRANSFER_PROTOCOL (FILE_TRANSFER_PROTOCOL_DATA :: default ())) , HIL_CONTROLS_DATA :: ID => Ok (Self :: HIL_CONTROLS (HIL_CONTROLS_DATA :: default ())) , TIME_ESTIMATE_TO_TARGET_DATA :: ID => Ok (Self :: TIME_ESTIMATE_TO_TARGET (TIME_ESTIMATE_TO_TARGET_DATA :: default ())) , PING_DATA :: ID => Ok (Self :: PING (PING_DATA :: default ())) , CUBEPILOT_RAW_RC_DATA :: ID => Ok (Self :: CUBEPILOT_RAW_RC (CUBEPILOT_RAW_RC_DATA :: default ())) , PARAM_SET_DATA :: ID => Ok (Self :: PARAM_SET (PARAM_SET_DATA :: default ())) , SYSTEM_TIME_DATA :: ID => Ok (Self :: SYSTEM_TIME (SYSTEM_TIME_DATA :: default ())) , MOUNT_CONTROL_DATA :: ID => Ok (Self :: MOUNT_CONTROL (MOUNT_CONTROL_DATA :: default ())) , SIMSTATE_DATA :: ID => Ok (Self :: SIMSTATE (SIMSTATE_DATA :: default ())) , SCALED_PRESSURE2_DATA :: ID => Ok (Self :: SCALED_PRESSURE2 (SCALED_PRESSURE2_DATA :: default ())) , AHRS2_DATA :: ID => Ok (Self :: AHRS2 (AHRS2_DATA :: default ())) , PLAY_TUNE_V2_DATA :: ID => Ok (Self :: PLAY_TUNE_V2 (PLAY_TUNE_V2_DATA :: default ())) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_SET_ATTITUDE (GIMBAL_DEVICE_SET_ATTITUDE_DATA :: default ())) , SIM_STATE_DATA :: ID => Ok (Self :: SIM_STATE (SIM_STATE_DATA :: default ())) , HIL_STATE_DATA :: ID => Ok (Self :: HIL_STATE (HIL_STATE_DATA :: default ())) , GOPRO_GET_REQUEST_DATA :: ID => Ok (Self :: GOPRO_GET_REQUEST (GOPRO_GET_REQUEST_DATA :: default ())) , RANGEFINDER_DATA :: ID => Ok (Self :: RANGEFINDER (RANGEFINDER_DATA :: default ())) , OSD_PARAM_CONFIG_REPLY_DATA :: ID => Ok (Self :: OSD_PARAM_CONFIG_REPLY (OSD_PARAM_CONFIG_REPLY_DATA :: default ())) , BATTERY2_DATA :: ID => Ok (Self :: BATTERY2 (BATTERY2_DATA :: default ())) , PARAM_EXT_VALUE_DATA :: ID => Ok (Self :: PARAM_EXT_VALUE (PARAM_EXT_VALUE_DATA :: default ())) , GPS_RTK_DATA :: ID => Ok (Self :: GPS_RTK (GPS_RTK_DATA :: default ())) , MESSAGE_INTERVAL_DATA :: ID => Ok (Self :: MESSAGE_INTERVAL (MESSAGE_INTERVAL_DATA :: default ())) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID => Ok (Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: default ())) , SCALED_IMU_DATA :: ID => Ok (Self :: SCALED_IMU (SCALED_IMU_DATA :: default ())) , HIGH_LATENCY_DATA :: ID => Ok (Self :: HIGH_LATENCY (HIGH_LATENCY_DATA :: default ())) , CAMERA_IMAGE_CAPTURED_DATA :: ID => Ok (Self :: CAMERA_IMAGE_CAPTURED (CAMERA_IMAGE_CAPTURED_DATA :: default ())) , LIMITS_STATUS_DATA :: ID => Ok (Self :: LIMITS_STATUS (LIMITS_STATUS_DATA :: default ())) , AUTH_KEY_DATA :: ID => Ok (Self :: AUTH_KEY (AUTH_KEY_DATA :: default ())) , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => Ok (Self :: DATA_TRANSMISSION_HANDSHAKE (DATA_TRANSMISSION_HANDSHAKE_DATA :: default ())) , CHANGE_OPERATOR_CONTROL_DATA :: ID => Ok (Self :: CHANGE_OPERATOR_CONTROL (CHANGE_OPERATOR_CONTROL_DATA :: default ())) , LINK_NODE_STATUS_DATA :: ID => Ok (Self :: LINK_NODE_STATUS (LINK_NODE_STATUS_DATA :: default ())) , PID_TUNING_DATA :: ID => Ok (Self :: PID_TUNING (PID_TUNING_DATA :: default ())) , ADAP_TUNING_DATA :: ID => Ok (Self :: ADAP_TUNING (ADAP_TUNING_DATA :: default ())) , ESC_INFO_DATA :: ID => Ok (Self :: ESC_INFO (ESC_INFO_DATA :: default ())) , TUNNEL_DATA :: ID => Ok (Self :: TUNNEL (TUNNEL_DATA :: default ())) , OPTICAL_FLOW_RAD_DATA :: ID => Ok (Self :: OPTICAL_FLOW_RAD (OPTICAL_FLOW_RAD_DATA :: default ())) , TERRAIN_DATA_DATA :: ID => Ok (Self :: TERRAIN_DATA (TERRAIN_DATA_DATA :: default ())) , AHRS_DATA :: ID => Ok (Self :: AHRS (AHRS_DATA :: default ())) , SETUP_SIGNING_DATA :: ID => Ok (Self :: SETUP_SIGNING (SETUP_SIGNING_DATA :: default ())) , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => Ok (Self :: MISSION_WRITE_PARTIAL_LIST (MISSION_WRITE_PARTIAL_LIST_DATA :: default ())) , GPS_INPUT_DATA :: ID => Ok (Self :: GPS_INPUT (GPS_INPUT_DATA :: default ())) , VFR_HUD_DATA :: ID => Ok (Self :: VFR_HUD (VFR_HUD_DATA :: default ())) , POWER_STATUS_DATA :: ID => Ok (Self :: POWER_STATUS (POWER_STATUS_DATA :: default ())) , MISSION_SET_CURRENT_DATA :: ID => Ok (Self :: MISSION_SET_CURRENT (MISSION_SET_CURRENT_DATA :: default ())) , RALLY_POINT_DATA :: ID => Ok (Self :: RALLY_POINT (RALLY_POINT_DATA :: default ())) , GOPRO_SET_RESPONSE_DATA :: ID => Ok (Self :: GOPRO_SET_RESPONSE (GOPRO_SET_RESPONSE_DATA :: default ())) , DEVICE_OP_WRITE_REPLY_DATA :: ID => Ok (Self :: DEVICE_OP_WRITE_REPLY (DEVICE_OP_WRITE_REPLY_DATA :: default ())) , ESC_TELEMETRY_9_TO_12_DATA :: ID => Ok (Self :: ESC_TELEMETRY_9_TO_12 (ESC_TELEMETRY_9_TO_12_DATA :: default ())) , ACTUATOR_CONTROL_TARGET_DATA :: ID => Ok (Self :: ACTUATOR_CONTROL_TARGET (ACTUATOR_CONTROL_TARGET_DATA :: default ())) , RALLY_FETCH_POINT_DATA :: ID => Ok (Self :: RALLY_FETCH_POINT (RALLY_FETCH_POINT_DATA :: default ())) , CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: ID => Ok (Self :: CUBEPILOT_FIRMWARE_UPDATE_RESP (CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: default ())) , V2_EXTENSION_DATA :: ID => Ok (Self :: V2_EXTENSION (V2_EXTENSION_DATA :: default ())) , GLOBAL_POSITION_INT_DATA :: ID => Ok (Self :: GLOBAL_POSITION_INT (GLOBAL_POSITION_INT_DATA :: default ())) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => Ok (Self :: TRAJECTORY_REPRESENTATION_BEZIER (TRAJECTORY_REPRESENTATION_BEZIER_DATA :: default ())) , RAW_RPM_DATA :: ID => Ok (Self :: RAW_RPM (RAW_RPM_DATA :: default ())) , SET_HOME_POSITION_DATA :: ID => Ok (Self :: SET_HOME_POSITION (SET_HOME_POSITION_DATA :: default ())) , RESOURCE_REQUEST_DATA :: ID => Ok (Self :: RESOURCE_REQUEST (RESOURCE_REQUEST_DATA :: default ())) , ESC_STATUS_DATA :: ID => Ok (Self :: ESC_STATUS (ESC_STATUS_DATA :: default ())) , WIND_DATA :: ID => Ok (Self :: WIND (WIND_DATA :: default ())) , EXTENDED_SYS_STATE_DATA :: ID => Ok (Self :: EXTENDED_SYS_STATE (EXTENDED_SYS_STATE_DATA :: default ())) , COMMAND_ACK_DATA :: ID => Ok (Self :: COMMAND_ACK (COMMAND_ACK_DATA :: default ())) , PARAM_VALUE_DATA :: ID => Ok (Self :: PARAM_VALUE (PARAM_VALUE_DATA :: default ())) , HEARTBEAT_DATA :: ID => Ok (Self :: HEARTBEAT (HEARTBEAT_DATA :: default ())) , GIMBAL_DEVICE_INFORMATION_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_INFORMATION (GIMBAL_DEVICE_INFORMATION_DATA :: default ())) , DEBUG_DATA :: ID => Ok (Self :: DEBUG (DEBUG_DATA :: default ())) , MOUNT_ORIENTATION_DATA :: ID => Ok (Self :: MOUNT_ORIENTATION (MOUNT_ORIENTATION_DATA :: default ())) , RC_CHANNELS_DATA :: ID => Ok (Self :: RC_CHANNELS (RC_CHANNELS_DATA :: default ())) , VICON_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: VICON_POSITION_ESTIMATE (VICON_POSITION_ESTIMATE_DATA :: default ())) , CAMERA_CAPTURE_STATUS_DATA :: ID => Ok (Self :: CAMERA_CAPTURE_STATUS (CAMERA_CAPTURE_STATUS_DATA :: default ())) , CONTROL_SYSTEM_STATE_DATA :: ID => Ok (Self :: CONTROL_SYSTEM_STATE (CONTROL_SYSTEM_STATE_DATA :: default ())) , CAMERA_SETTINGS_DATA :: ID => Ok (Self :: CAMERA_SETTINGS (CAMERA_SETTINGS_DATA :: default ())) , SERIAL_CONTROL_DATA :: ID => Ok (Self :: SERIAL_CONTROL (SERIAL_CONTROL_DATA :: default ())) , CAN_FILTER_MODIFY_DATA :: ID => Ok (Self :: CAN_FILTER_MODIFY (CAN_FILTER_MODIFY_DATA :: default ())) , PARAM_EXT_ACK_DATA :: ID => Ok (Self :: PARAM_EXT_ACK (PARAM_EXT_ACK_DATA :: default ())) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => Ok (Self :: CAMERA_TRACKING_IMAGE_STATUS (CAMERA_TRACKING_IMAGE_STATUS_DATA :: default ())) , COMMAND_CANCEL_DATA :: ID => Ok (Self :: COMMAND_CANCEL (COMMAND_CANCEL_DATA :: default ())) , SET_MAG_OFFSETS_DATA :: ID => Ok (Self :: SET_MAG_OFFSETS (SET_MAG_OFFSETS_DATA :: default ())) , ADSB_VEHICLE_DATA :: ID => Ok (Self :: ADSB_VEHICLE (ADSB_VEHICLE_DATA :: default ())) , DIGICAM_CONTROL_DATA :: ID => Ok (Self :: DIGICAM_CONTROL (DIGICAM_CONTROL_DATA :: default ())) , GPS2_RAW_DATA :: ID => Ok (Self :: GPS2_RAW (GPS2_RAW_DATA :: default ())) , OPEN_DRONE_ID_LOCATION_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_LOCATION (OPEN_DRONE_ID_LOCATION_DATA :: default ())) , REQUEST_EVENT_DATA :: ID => Ok (Self :: REQUEST_EVENT (REQUEST_EVENT_DATA :: default ())) , CAMERA_STATUS_DATA :: ID => Ok (Self :: CAMERA_STATUS (CAMERA_STATUS_DATA :: default ())) , HYGROMETER_SENSOR_DATA :: ID => Ok (Self :: HYGROMETER_SENSOR (HYGROMETER_SENSOR_DATA :: default ())) , STORAGE_INFORMATION_DATA :: ID => Ok (Self :: STORAGE_INFORMATION (STORAGE_INFORMATION_DATA :: default ())) , MISSION_ACK_DATA :: ID => Ok (Self :: MISSION_ACK (MISSION_ACK_DATA :: default ())) , LOGGING_ACK_DATA :: ID => Ok (Self :: LOGGING_ACK (LOGGING_ACK_DATA :: default ())) , MEMINFO_DATA :: ID => Ok (Self :: MEMINFO (MEMINFO_DATA :: default ())) , DEVICE_OP_READ_DATA :: ID => Ok (Self :: DEVICE_OP_READ (DEVICE_OP_READ_DATA :: default ())) , VISION_POSITION_DELTA_DATA :: ID => Ok (Self :: VISION_POSITION_DELTA (VISION_POSITION_DELTA_DATA :: default ())) , ESTIMATOR_STATUS_DATA :: ID => Ok (Self :: ESTIMATOR_STATUS (ESTIMATOR_STATUS_DATA :: default ())) , OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: ID => Ok (Self :: OSD_PARAM_SHOW_CONFIG_REPLY (OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: default ())) , MEMORY_VECT_DATA :: ID => Ok (Self :: MEMORY_VECT (MEMORY_VECT_DATA :: default ())) , EKF_STATUS_REPORT_DATA :: ID => Ok (Self :: EKF_STATUS_REPORT (EKF_STATUS_REPORT_DATA :: default ())) , PARAM_EXT_SET_DATA :: ID => Ok (Self :: PARAM_EXT_SET (PARAM_EXT_SET_DATA :: default ())) , HWSTATUS_DATA :: ID => Ok (Self :: HWSTATUS (HWSTATUS_DATA :: default ())) , ICAROUS_KINEMATIC_BANDS_DATA :: ID => Ok (Self :: ICAROUS_KINEMATIC_BANDS (ICAROUS_KINEMATIC_BANDS_DATA :: default ())) , OBSTACLE_DISTANCE_DATA :: ID => Ok (Self :: OBSTACLE_DISTANCE (OBSTACLE_DISTANCE_DATA :: default ())) , AIS_VESSEL_DATA :: ID => Ok (Self :: AIS_VESSEL (AIS_VESSEL_DATA :: default ())) , GOPRO_GET_RESPONSE_DATA :: ID => Ok (Self :: GOPRO_GET_RESPONSE (GOPRO_GET_RESPONSE_DATA :: default ())) , CAN_FRAME_DATA :: ID => Ok (Self :: CAN_FRAME (CAN_FRAME_DATA :: default ())) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: GLOBAL_VISION_POSITION_ESTIMATE (GLOBAL_VISION_POSITION_ESTIMATE_DATA :: default ())) , OPTICAL_FLOW_DATA :: ID => Ok (Self :: OPTICAL_FLOW (OPTICAL_FLOW_DATA :: default ())) , SERVO_OUTPUT_RAW_DATA :: ID => Ok (Self :: SERVO_OUTPUT_RAW (SERVO_OUTPUT_RAW_DATA :: default ())) , LOG_ERASE_DATA :: ID => Ok (Self :: LOG_ERASE (LOG_ERASE_DATA :: default ())) , EVENT_DATA :: ID => Ok (Self :: EVENT (EVENT_DATA :: default ())) , DEBUG_VECT_DATA :: ID => Ok (Self :: DEBUG_VECT (DEBUG_VECT_DATA :: default ())) , RAW_IMU_DATA :: ID => Ok (Self :: RAW_IMU (RAW_IMU_DATA :: default ())) , AHRS3_DATA :: ID => Ok (Self :: AHRS3 (AHRS3_DATA :: default ())) , ISBD_LINK_STATUS_DATA :: ID => Ok (Self :: ISBD_LINK_STATUS (ISBD_LINK_STATUS_DATA :: default ())) , HERELINK_VIDEO_STREAM_INFORMATION_DATA :: ID => Ok (Self :: HERELINK_VIDEO_STREAM_INFORMATION (HERELINK_VIDEO_STREAM_INFORMATION_DATA :: default ())) , HIL_ACTUATOR_CONTROLS_DATA :: ID => Ok (Self :: HIL_ACTUATOR_CONTROLS (HIL_ACTUATOR_CONTROLS_DATA :: default ())) , ENCAPSULATED_DATA_DATA :: ID => Ok (Self :: ENCAPSULATED_DATA (ENCAPSULATED_DATA_DATA :: default ())) , UAVCAN_NODE_INFO_DATA :: ID => Ok (Self :: UAVCAN_NODE_INFO (UAVCAN_NODE_INFO_DATA :: default ())) , HIL_STATE_QUATERNION_DATA :: ID => Ok (Self :: HIL_STATE_QUATERNION (HIL_STATE_QUATERNION_DATA :: default ())) , LOGGING_DATA_ACKED_DATA :: ID => Ok (Self :: LOGGING_DATA_ACKED (LOGGING_DATA_ACKED_DATA :: default ())) , FLIGHT_INFORMATION_DATA :: ID => Ok (Self :: FLIGHT_INFORMATION (FLIGHT_INFORMATION_DATA :: default ())) , DEVICE_OP_READ_REPLY_DATA :: ID => Ok (Self :: DEVICE_OP_READ_REPLY (DEVICE_OP_READ_REPLY_DATA :: default ())) , GPS_RAW_INT_DATA :: ID => Ok (Self :: GPS_RAW_INT (GPS_RAW_INT_DATA :: default ())) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: default ())) , RPM_DATA :: ID => Ok (Self :: RPM (RPM_DATA :: default ())) , AOA_SSA_DATA :: ID => Ok (Self :: AOA_SSA (AOA_SSA_DATA :: default ())) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_MESSAGE_PACK (OPEN_DRONE_ID_MESSAGE_PACK_DATA :: default ())) , WATER_DEPTH_DATA :: ID => Ok (Self :: WATER_DEPTH (WATER_DEPTH_DATA :: default ())) , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => Ok (Self :: CAMERA_TRACKING_GEO_STATUS (CAMERA_TRACKING_GEO_STATUS_DATA :: default ())) , CAMERA_INFORMATION_DATA :: ID => Ok (Self :: CAMERA_INFORMATION (CAMERA_INFORMATION_DATA :: default ())) , BUTTON_CHANGE_DATA :: ID => Ok (Self :: BUTTON_CHANGE (BUTTON_CHANGE_DATA :: default ())) , RAW_PRESSURE_DATA :: ID => Ok (Self :: RAW_PRESSURE (RAW_PRESSURE_DATA :: default ())) , HIGHRES_IMU_DATA :: ID => Ok (Self :: HIGHRES_IMU (HIGHRES_IMU_DATA :: default ())) , PARAM_MAP_RC_DATA :: ID => Ok (Self :: PARAM_MAP_RC (PARAM_MAP_RC_DATA :: default ())) , NAMED_VALUE_INT_DATA :: ID => Ok (Self :: NAMED_VALUE_INT (NAMED_VALUE_INT_DATA :: default ())) , TERRAIN_REPORT_DATA :: ID => Ok (Self :: TERRAIN_REPORT (TERRAIN_REPORT_DATA :: default ())) , RC_CHANNELS_SCALED_DATA :: ID => Ok (Self :: RC_CHANNELS_SCALED (RC_CHANNELS_SCALED_DATA :: default ())) , ORBIT_EXECUTION_STATUS_DATA :: ID => Ok (Self :: ORBIT_EXECUTION_STATUS (ORBIT_EXECUTION_STATUS_DATA :: default ())) , SCALED_IMU3_DATA :: ID => Ok (Self :: SCALED_IMU3 (SCALED_IMU3_DATA :: default ())) , SENSOR_OFFSETS_DATA :: ID => Ok (Self :: SENSOR_OFFSETS (SENSOR_OFFSETS_DATA :: default ())) , RC_CHANNELS_OVERRIDE_DATA :: ID => Ok (Self :: RC_CHANNELS_OVERRIDE (RC_CHANNELS_OVERRIDE_DATA :: default ())) , RADIO_DATA :: ID => Ok (Self :: RADIO (RADIO_DATA :: default ())) , POSITION_TARGET_GLOBAL_INT_DATA :: ID => Ok (Self :: POSITION_TARGET_GLOBAL_INT (POSITION_TARGET_GLOBAL_INT_DATA :: default ())) , MANUAL_CONTROL_DATA :: ID => Ok (Self :: MANUAL_CONTROL (MANUAL_CONTROL_DATA :: default ())) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => Ok (Self :: CHANGE_OPERATOR_CONTROL_ACK (CHANGE_OPERATOR_CONTROL_ACK_DATA :: default ())) , SCALED_PRESSURE3_DATA :: ID => Ok (Self :: SCALED_PRESSURE3 (SCALED_PRESSURE3_DATA :: default ())) , PARAM_EXT_REQUEST_LIST_DATA :: ID => Ok (Self :: PARAM_EXT_REQUEST_LIST (PARAM_EXT_REQUEST_LIST_DATA :: default ())) , MISSION_CLEAR_ALL_DATA :: ID => Ok (Self :: MISSION_CLEAR_ALL (MISSION_CLEAR_ALL_DATA :: default ())) , GIMBAL_MANAGER_INFORMATION_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_INFORMATION (GIMBAL_MANAGER_INFORMATION_DATA :: default ())) , CELLULAR_CONFIG_DATA :: ID => Ok (Self :: CELLULAR_CONFIG (CELLULAR_CONFIG_DATA :: default ())) , LOG_ENTRY_DATA :: ID => Ok (Self :: LOG_ENTRY (LOG_ENTRY_DATA :: default ())) , VIBRATION_DATA :: ID => Ok (Self :: VIBRATION (VIBRATION_DATA :: default ())) , SYS_STATUS_DATA :: ID => Ok (Self :: SYS_STATUS (SYS_STATUS_DATA :: default ())) , GLOBAL_POSITION_INT_COV_DATA :: ID => Ok (Self :: GLOBAL_POSITION_INT_COV (GLOBAL_POSITION_INT_COV_DATA :: default ())) , ATTITUDE_QUATERNION_COV_DATA :: ID => Ok (Self :: ATTITUDE_QUATERNION_COV (ATTITUDE_QUATERNION_COV_DATA :: default ())) , ATTITUDE_QUATERNION_DATA :: ID => Ok (Self :: ATTITUDE_QUATERNION (ATTITUDE_QUATERNION_DATA :: default ())) , FENCE_STATUS_DATA :: ID => Ok (Self :: FENCE_STATUS (FENCE_STATUS_DATA :: default ())) , ICAROUS_HEARTBEAT_DATA :: ID => Ok (Self :: ICAROUS_HEARTBEAT (ICAROUS_HEARTBEAT_DATA :: default ())) , HIL_GPS_DATA :: ID => Ok (Self :: HIL_GPS (HIL_GPS_DATA :: default ())) , TIMESYNC_DATA :: ID => Ok (Self :: TIMESYNC (TIMESYNC_DATA :: default ())) , GPS_RTCM_DATA_DATA :: ID => Ok (Self :: GPS_RTCM_DATA (GPS_RTCM_DATA_DATA :: default ())) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: default ())) , SMART_BATTERY_INFO_DATA :: ID => Ok (Self :: SMART_BATTERY_INFO (SMART_BATTERY_INFO_DATA :: default ())) , DATA64_DATA :: ID => Ok (Self :: DATA64 (DATA64_DATA :: default ())) , DISTANCE_SENSOR_DATA :: ID => Ok (Self :: DISTANCE_SENSOR (DISTANCE_SENSOR_DATA :: default ())) , EFI_STATUS_DATA :: ID => Ok (Self :: EFI_STATUS (EFI_STATUS_DATA :: default ())) , SET_MODE_DATA :: ID => Ok (Self :: SET_MODE (SET_MODE_DATA :: default ())) , MISSION_ITEM_DATA :: ID => Ok (Self :: MISSION_ITEM (MISSION_ITEM_DATA :: default ())) , NAMED_VALUE_FLOAT_DATA :: ID => Ok (Self :: NAMED_VALUE_FLOAT (NAMED_VALUE_FLOAT_DATA :: default ())) , RESPONSE_EVENT_ERROR_DATA :: ID => Ok (Self :: RESPONSE_EVENT_ERROR (RESPONSE_EVENT_ERROR_DATA :: default ())) , SCALED_IMU2_DATA :: ID => Ok (Self :: SCALED_IMU2 (SCALED_IMU2_DATA :: default ())) , ATTITUDE_DATA :: ID => Ok (Self :: ATTITUDE (ATTITUDE_DATA :: default ())) , LANDING_TARGET_DATA :: ID => Ok (Self :: LANDING_TARGET (LANDING_TARGET_DATA :: default ())) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_AUTHENTICATION (OPEN_DRONE_ID_AUTHENTICATION_DATA :: default ())) , NAV_CONTROLLER_OUTPUT_DATA :: ID => Ok (Self :: NAV_CONTROLLER_OUTPUT (NAV_CONTROLLER_OUTPUT_DATA :: default ())) , LOG_REQUEST_LIST_DATA :: ID => Ok (Self :: LOG_REQUEST_LIST (LOG_REQUEST_LIST_DATA :: default ())) , GPS_GLOBAL_ORIGIN_DATA :: ID => Ok (Self :: GPS_GLOBAL_ORIGIN (GPS_GLOBAL_ORIGIN_DATA :: default ())) , SUPPORTED_TUNES_DATA :: ID => Ok (Self :: SUPPORTED_TUNES (SUPPORTED_TUNES_DATA :: default ())) , MOUNT_STATUS_DATA :: ID => Ok (Self :: MOUNT_STATUS (MOUNT_STATUS_DATA :: default ())) , CANFD_FRAME_DATA :: ID => Ok (Self :: CANFD_FRAME (CANFD_FRAME_DATA :: default ())) , WIFI_CONFIG_AP_DATA :: ID => Ok (Self :: WIFI_CONFIG_AP (WIFI_CONFIG_AP_DATA :: default ())) , MISSION_ITEM_REACHED_DATA :: ID => Ok (Self :: MISSION_ITEM_REACHED (MISSION_ITEM_REACHED_DATA :: default ())) , COMPASSMOT_STATUS_DATA :: ID => Ok (Self :: COMPASSMOT_STATUS (COMPASSMOT_STATUS_DATA :: default ())) , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID => Ok (Self :: UAVIONIX_ADSB_OUT_DYNAMIC (UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: default ())) , AP_ADC_DATA :: ID => Ok (Self :: AP_ADC (AP_ADC_DATA :: default ())) , OSD_PARAM_SHOW_CONFIG_DATA :: ID => Ok (Self :: OSD_PARAM_SHOW_CONFIG (OSD_PARAM_SHOW_CONFIG_DATA :: default ())) , CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: ID => Ok (Self :: CUBEPILOT_FIRMWARE_UPDATE_START (CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: default ())) , RADIO_STATUS_DATA :: ID => Ok (Self :: RADIO_STATUS (RADIO_STATUS_DATA :: default ())) , LOG_DATA_DATA :: ID => Ok (Self :: LOG_DATA (LOG_DATA_DATA :: default ())) , DEBUG_FLOAT_ARRAY_DATA :: ID => Ok (Self :: DEBUG_FLOAT_ARRAY (DEBUG_FLOAT_ARRAY_DATA :: default ())) , ODOMETRY_DATA :: ID => Ok (Self :: ODOMETRY (ODOMETRY_DATA :: default ())) , HIL_OPTICAL_FLOW_DATA :: ID => Ok (Self :: HIL_OPTICAL_FLOW (HIL_OPTICAL_FLOW_DATA :: default ())) , CURRENT_EVENT_SEQUENCE_DATA :: ID => Ok (Self :: CURRENT_EVENT_SEQUENCE (CURRENT_EVENT_SEQUENCE_DATA :: default ())) , LOGGING_DATA_DATA :: ID => Ok (Self :: LOGGING_DATA (LOGGING_DATA_DATA :: default ())) , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => Ok (Self :: SET_ACTUATOR_CONTROL_TARGET (SET_ACTUATOR_CONTROL_TARGET_DATA :: default ())) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => Ok (Self :: SET_POSITION_TARGET_GLOBAL_INT (SET_POSITION_TARGET_GLOBAL_INT_DATA :: default ())) , SCALED_PRESSURE_DATA :: ID => Ok (Self :: SCALED_PRESSURE (SCALED_PRESSURE_DATA :: default ())) , HIGH_LATENCY2_DATA :: ID => Ok (Self :: HIGH_LATENCY2 (HIGH_LATENCY2_DATA :: default ())) , GENERATOR_STATUS_DATA :: ID => Ok (Self :: GENERATOR_STATUS (GENERATOR_STATUS_DATA :: default ())) , MISSION_REQUEST_INT_DATA :: ID => Ok (Self :: MISSION_REQUEST_INT (MISSION_REQUEST_INT_DATA :: default ())) , OPEN_DRONE_ID_SELF_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SELF_ID (OPEN_DRONE_ID_SELF_ID_DATA :: default ())) , CAMERA_TRIGGER_DATA :: ID => Ok (Self :: CAMERA_TRIGGER (CAMERA_TRIGGER_DATA :: default ())) , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => Ok (Self :: SET_POSITION_TARGET_LOCAL_NED (SET_POSITION_TARGET_LOCAL_NED_DATA :: default ())) , DIGICAM_CONFIGURE_DATA :: ID => Ok (Self :: DIGICAM_CONFIGURE (DIGICAM_CONFIGURE_DATA :: default ())) , DEVICE_OP_WRITE_DATA :: ID => Ok (Self :: DEVICE_OP_WRITE (DEVICE_OP_WRITE_DATA :: default ())) , COLLISION_DATA :: ID => Ok (Self :: COLLISION (COLLISION_DATA :: default ())) , MISSION_COUNT_DATA :: ID => Ok (Self :: MISSION_COUNT (MISSION_COUNT_DATA :: default ())) , BATTERY_STATUS_DATA :: ID => Ok (Self :: BATTERY_STATUS (BATTERY_STATUS_DATA :: default ())) , DEEPSTALL_DATA :: ID => Ok (Self :: DEEPSTALL (DEEPSTALL_DATA :: default ())) , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => Ok (Self :: MISSION_REQUEST_PARTIAL_LIST (MISSION_REQUEST_PARTIAL_LIST_DATA :: default ())) , GIMBAL_MANAGER_STATUS_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_STATUS (GIMBAL_MANAGER_STATUS_DATA :: default ())) , STATUSTEXT_DATA :: ID => Ok (Self :: STATUSTEXT (STATUSTEXT_DATA :: default ())) , CAMERA_FEEDBACK_DATA :: ID => Ok (Self :: CAMERA_FEEDBACK (CAMERA_FEEDBACK_DATA :: default ())) , PARAM_REQUEST_LIST_DATA :: ID => Ok (Self :: PARAM_REQUEST_LIST (PARAM_REQUEST_LIST_DATA :: default ())) , HIL_RC_INPUTS_RAW_DATA :: ID => Ok (Self :: HIL_RC_INPUTS_RAW (HIL_RC_INPUTS_RAW_DATA :: default ())) , OBSTACLE_DISTANCE_3D_DATA :: ID => Ok (Self :: OBSTACLE_DISTANCE_3D (OBSTACLE_DISTANCE_3D_DATA :: default ())) , MISSION_ITEM_INT_DATA :: ID => Ok (Self :: MISSION_ITEM_INT (MISSION_ITEM_INT_DATA :: default ())) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_PITCHYAW (GIMBAL_MANAGER_SET_PITCHYAW_DATA :: default ())) , REMOTE_LOG_BLOCK_STATUS_DATA :: ID => Ok (Self :: REMOTE_LOG_BLOCK_STATUS (REMOTE_LOG_BLOCK_STATUS_DATA :: default ())) , MAG_CAL_REPORT_DATA :: ID => Ok (Self :: MAG_CAL_REPORT (MAG_CAL_REPORT_DATA :: default ())) , CELLULAR_STATUS_DATA :: ID => Ok (Self :: CELLULAR_STATUS (CELLULAR_STATUS_DATA :: default ())) , DATA_STREAM_DATA :: ID => Ok (Self :: DATA_STREAM (DATA_STREAM_DATA :: default ())) , SAFETY_ALLOWED_AREA_DATA :: ID => Ok (Self :: SAFETY_ALLOWED_AREA (SAFETY_ALLOWED_AREA_DATA :: default ())) , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_BASIC_ID (OPEN_DRONE_ID_BASIC_ID_DATA :: default ())) , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => Ok (Self :: SET_GPS_GLOBAL_ORIGIN (SET_GPS_GLOBAL_ORIGIN_DATA :: default ())) , VIDEO_STREAM_STATUS_DATA :: ID => Ok (Self :: VIDEO_STREAM_STATUS (VIDEO_STREAM_STATUS_DATA :: default ())) , COMPONENT_INFORMATION_DATA :: ID => Ok (Self :: COMPONENT_INFORMATION (COMPONENT_INFORMATION_DATA :: default ())) , VIDEO_STREAM_INFORMATION_DATA :: ID => Ok (Self :: VIDEO_STREAM_INFORMATION (VIDEO_STREAM_INFORMATION_DATA :: default ())) , SET_ATTITUDE_TARGET_DATA :: ID => Ok (Self :: SET_ATTITUDE_TARGET (SET_ATTITUDE_TARGET_DATA :: default ())) , GOPRO_HEARTBEAT_DATA :: ID => Ok (Self :: GOPRO_HEARTBEAT (GOPRO_HEARTBEAT_DATA :: default ())) , RC_CHANNELS_RAW_DATA :: ID => Ok (Self :: RC_CHANNELS_RAW (RC_CHANNELS_RAW_DATA :: default ())) , ACTUATOR_OUTPUT_STATUS_DATA :: ID => Ok (Self :: ACTUATOR_OUTPUT_STATUS (ACTUATOR_OUTPUT_STATUS_DATA :: default ())) , HERELINK_TELEM_DATA :: ID => Ok (Self :: HERELINK_TELEM (HERELINK_TELEM_DATA :: default ())) , SAFETY_SET_ALLOWED_AREA_DATA :: ID => Ok (Self :: SAFETY_SET_ALLOWED_AREA (SAFETY_SET_ALLOWED_AREA_DATA :: default ())) , AIRSPEED_AUTOCAL_DATA :: ID => Ok (Self :: AIRSPEED_AUTOCAL (AIRSPEED_AUTOCAL_DATA :: default ())) , ESC_TELEMETRY_1_TO_4_DATA :: ID => Ok (Self :: ESC_TELEMETRY_1_TO_4 (ESC_TELEMETRY_1_TO_4_DATA :: default ())) , GIMBAL_REPORT_DATA :: ID => Ok (Self :: GIMBAL_REPORT (GIMBAL_REPORT_DATA :: default ())) , VISION_SPEED_ESTIMATE_DATA :: ID => Ok (Self :: VISION_SPEED_ESTIMATE (VISION_SPEED_ESTIMATE_DATA :: default ())) , ONBOARD_COMPUTER_STATUS_DATA :: ID => Ok (Self :: ONBOARD_COMPUTER_STATUS (ONBOARD_COMPUTER_STATUS_DATA :: default ())) , MCU_STATUS_DATA :: ID => Ok (Self :: MCU_STATUS (MCU_STATUS_DATA :: default ())) , LOG_REQUEST_DATA_DATA :: ID => Ok (Self :: LOG_REQUEST_DATA (LOG_REQUEST_DATA_DATA :: default ())) , COMMAND_INT_DATA :: ID => Ok (Self :: COMMAND_INT (COMMAND_INT_DATA :: default ())) , ALTITUDE_DATA :: ID => Ok (Self :: ALTITUDE (ALTITUDE_DATA :: default ())) , FOLLOW_TARGET_DATA :: ID => Ok (Self :: FOLLOW_TARGET (FOLLOW_TARGET_DATA :: default ())) , GPS_STATUS_DATA :: ID => Ok (Self :: GPS_STATUS (GPS_STATUS_DATA :: default ())) , OSD_PARAM_CONFIG_DATA :: ID => Ok (Self :: OSD_PARAM_CONFIG (OSD_PARAM_CONFIG_DATA :: default ())) , _ => { Err ("Invalid message id.") } } } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { match self { Self :: GIMBAL_CONTROL (body) => body . ser (version , bytes) , Self :: FENCE_FETCH_POINT (body) => body . ser (version , bytes) , Self :: COMPONENT_METADATA (body) => body . ser (version , bytes) , Self :: PARAM_EXT_REQUEST_READ (body) => body . ser (version , bytes) , Self :: WINCH_STATUS (body) => body . ser (version , bytes) , Self :: PARAM_REQUEST_READ (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_ATTITUDE (body) => body . ser (version , bytes) , Self :: AUTOPILOT_VERSION_REQUEST (body) => body . ser (version , bytes) , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (body) => body . ser (version , bytes) , Self :: POSITION_TARGET_LOCAL_NED (body) => body . ser (version , bytes) , Self :: MANUAL_SETPOINT (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_ARM_STATUS (body) => body . ser (version , bytes) , Self :: AUTOPILOT_VERSION (body) => body . ser (version , bytes) , Self :: DATA16 (body) => body . ser (version , bytes) , Self :: MISSION_CURRENT (body) => body . ser (version , bytes) , Self :: COMMAND_LONG (body) => body . ser (version , bytes) , Self :: ATTITUDE_TARGET (body) => body . ser (version , bytes) , Self :: MAG_CAL_PROGRESS (body) => body . ser (version , bytes) , Self :: MOUNT_CONFIGURE (body) => body . ser (version , bytes) , Self :: HIL_SENSOR (body) => body . ser (version , bytes) , Self :: REMOTE_LOG_DATA_BLOCK (body) => body . ser (version , bytes) , Self :: GIMBAL_TORQUE_CMD_REPORT (body) => body . ser (version , bytes) , Self :: CAMERA_FOV_STATUS (body) => body . ser (version , bytes) , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (body) => body . ser (version , bytes) , Self :: TERRAIN_REQUEST (body) => body . ser (version , bytes) , Self :: GPS_INJECT_DATA (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED (body) => body . ser (version , bytes) , Self :: UAVCAN_NODE_STATUS (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST (body) => body . ser (version , bytes) , Self :: REQUEST_DATA_STREAM (body) => body . ser (version , bytes) , Self :: HOME_POSITION (body) => body . ser (version , bytes) , Self :: GPS2_RTK (body) => body . ser (version , bytes) , Self :: WHEEL_DISTANCE (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED_COV (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_OPERATOR_ID (body) => body . ser (version , bytes) , Self :: ATT_POS_MOCAP (body) => body . ser (version , bytes) , Self :: DATA32 (body) => body . ser (version , bytes) , Self :: LED_CONTROL (body) => body . ser (version , bytes) , Self :: PROTOCOL_VERSION (body) => body . ser (version , bytes) , Self :: TERRAIN_CHECK (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (body) => body . ser (version , bytes) , Self :: UAVIONIX_ADSB_OUT_CFG (body) => body . ser (version , bytes) , Self :: DATA96 (body) => body . ser (version , bytes) , Self :: UTM_GLOBAL_POSITION (body) => body . ser (version , bytes) , Self :: GOPRO_SET_REQUEST (body) => body . ser (version , bytes) , Self :: ESC_TELEMETRY_5_TO_8 (body) => body . ser (version , bytes) , Self :: WIND_COV (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: PLAY_TUNE (body) => body . ser (version , bytes) , Self :: VISION_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_END (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SYSTEM (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (body) => body . ser (version , bytes) , Self :: FENCE_POINT (body) => body . ser (version , bytes) , Self :: FILE_TRANSFER_PROTOCOL (body) => body . ser (version , bytes) , Self :: HIL_CONTROLS (body) => body . ser (version , bytes) , Self :: TIME_ESTIMATE_TO_TARGET (body) => body . ser (version , bytes) , Self :: PING (body) => body . ser (version , bytes) , Self :: CUBEPILOT_RAW_RC (body) => body . ser (version , bytes) , Self :: PARAM_SET (body) => body . ser (version , bytes) , Self :: SYSTEM_TIME (body) => body . ser (version , bytes) , Self :: MOUNT_CONTROL (body) => body . ser (version , bytes) , Self :: SIMSTATE (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE2 (body) => body . ser (version , bytes) , Self :: AHRS2 (body) => body . ser (version , bytes) , Self :: PLAY_TUNE_V2 (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_SET_ATTITUDE (body) => body . ser (version , bytes) , Self :: SIM_STATE (body) => body . ser (version , bytes) , Self :: HIL_STATE (body) => body . ser (version , bytes) , Self :: GOPRO_GET_REQUEST (body) => body . ser (version , bytes) , Self :: RANGEFINDER (body) => body . ser (version , bytes) , Self :: OSD_PARAM_CONFIG_REPLY (body) => body . ser (version , bytes) , Self :: BATTERY2 (body) => body . ser (version , bytes) , Self :: PARAM_EXT_VALUE (body) => body . ser (version , bytes) , Self :: GPS_RTK (body) => body . ser (version , bytes) , Self :: MESSAGE_INTERVAL (body) => body . ser (version , bytes) , Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (body) => body . ser (version , bytes) , Self :: SCALED_IMU (body) => body . ser (version , bytes) , Self :: HIGH_LATENCY (body) => body . ser (version , bytes) , Self :: CAMERA_IMAGE_CAPTURED (body) => body . ser (version , bytes) , Self :: LIMITS_STATUS (body) => body . ser (version , bytes) , Self :: AUTH_KEY (body) => body . ser (version , bytes) , Self :: DATA_TRANSMISSION_HANDSHAKE (body) => body . ser (version , bytes) , Self :: CHANGE_OPERATOR_CONTROL (body) => body . ser (version , bytes) , Self :: LINK_NODE_STATUS (body) => body . ser (version , bytes) , Self :: PID_TUNING (body) => body . ser (version , bytes) , Self :: ADAP_TUNING (body) => body . ser (version , bytes) , Self :: ESC_INFO (body) => body . ser (version , bytes) , Self :: TUNNEL (body) => body . ser (version , bytes) , Self :: OPTICAL_FLOW_RAD (body) => body . ser (version , bytes) , Self :: TERRAIN_DATA (body) => body . ser (version , bytes) , Self :: AHRS (body) => body . ser (version , bytes) , Self :: SETUP_SIGNING (body) => body . ser (version , bytes) , Self :: MISSION_WRITE_PARTIAL_LIST (body) => body . ser (version , bytes) , Self :: GPS_INPUT (body) => body . ser (version , bytes) , Self :: VFR_HUD (body) => body . ser (version , bytes) , Self :: POWER_STATUS (body) => body . ser (version , bytes) , Self :: MISSION_SET_CURRENT (body) => body . ser (version , bytes) , Self :: RALLY_POINT (body) => body . ser (version , bytes) , Self :: GOPRO_SET_RESPONSE (body) => body . ser (version , bytes) , Self :: DEVICE_OP_WRITE_REPLY (body) => body . ser (version , bytes) , Self :: ESC_TELEMETRY_9_TO_12 (body) => body . ser (version , bytes) , Self :: ACTUATOR_CONTROL_TARGET (body) => body . ser (version , bytes) , Self :: RALLY_FETCH_POINT (body) => body . ser (version , bytes) , Self :: CUBEPILOT_FIRMWARE_UPDATE_RESP (body) => body . ser (version , bytes) , Self :: V2_EXTENSION (body) => body . ser (version , bytes) , Self :: GLOBAL_POSITION_INT (body) => body . ser (version , bytes) , Self :: TRAJECTORY_REPRESENTATION_BEZIER (body) => body . ser (version , bytes) , Self :: RAW_RPM (body) => body . ser (version , bytes) , Self :: SET_HOME_POSITION (body) => body . ser (version , bytes) , Self :: RESOURCE_REQUEST (body) => body . ser (version , bytes) , Self :: ESC_STATUS (body) => body . ser (version , bytes) , Self :: WIND (body) => body . ser (version , bytes) , Self :: EXTENDED_SYS_STATE (body) => body . ser (version , bytes) , Self :: COMMAND_ACK (body) => body . ser (version , bytes) , Self :: PARAM_VALUE (body) => body . ser (version , bytes) , Self :: HEARTBEAT (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_INFORMATION (body) => body . ser (version , bytes) , Self :: DEBUG (body) => body . ser (version , bytes) , Self :: MOUNT_ORIENTATION (body) => body . ser (version , bytes) , Self :: RC_CHANNELS (body) => body . ser (version , bytes) , Self :: VICON_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: CAMERA_CAPTURE_STATUS (body) => body . ser (version , bytes) , Self :: CONTROL_SYSTEM_STATE (body) => body . ser (version , bytes) , Self :: CAMERA_SETTINGS (body) => body . ser (version , bytes) , Self :: SERIAL_CONTROL (body) => body . ser (version , bytes) , Self :: CAN_FILTER_MODIFY (body) => body . ser (version , bytes) , Self :: PARAM_EXT_ACK (body) => body . ser (version , bytes) , Self :: CAMERA_TRACKING_IMAGE_STATUS (body) => body . ser (version , bytes) , Self :: COMMAND_CANCEL (body) => body . ser (version , bytes) , Self :: SET_MAG_OFFSETS (body) => body . ser (version , bytes) , Self :: ADSB_VEHICLE (body) => body . ser (version , bytes) , Self :: DIGICAM_CONTROL (body) => body . ser (version , bytes) , Self :: GPS2_RAW (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_LOCATION (body) => body . ser (version , bytes) , Self :: REQUEST_EVENT (body) => body . ser (version , bytes) , Self :: CAMERA_STATUS (body) => body . ser (version , bytes) , Self :: HYGROMETER_SENSOR (body) => body . ser (version , bytes) , Self :: STORAGE_INFORMATION (body) => body . ser (version , bytes) , Self :: MISSION_ACK (body) => body . ser (version , bytes) , Self :: LOGGING_ACK (body) => body . ser (version , bytes) , Self :: MEMINFO (body) => body . ser (version , bytes) , Self :: DEVICE_OP_READ (body) => body . ser (version , bytes) , Self :: VISION_POSITION_DELTA (body) => body . ser (version , bytes) , Self :: ESTIMATOR_STATUS (body) => body . ser (version , bytes) , Self :: OSD_PARAM_SHOW_CONFIG_REPLY (body) => body . ser (version , bytes) , Self :: MEMORY_VECT (body) => body . ser (version , bytes) , Self :: EKF_STATUS_REPORT (body) => body . ser (version , bytes) , Self :: PARAM_EXT_SET (body) => body . ser (version , bytes) , Self :: HWSTATUS (body) => body . ser (version , bytes) , Self :: ICAROUS_KINEMATIC_BANDS (body) => body . ser (version , bytes) , Self :: OBSTACLE_DISTANCE (body) => body . ser (version , bytes) , Self :: AIS_VESSEL (body) => body . ser (version , bytes) , Self :: GOPRO_GET_RESPONSE (body) => body . ser (version , bytes) , Self :: CAN_FRAME (body) => body . ser (version , bytes) , Self :: GLOBAL_VISION_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: OPTICAL_FLOW (body) => body . ser (version , bytes) , Self :: SERVO_OUTPUT_RAW (body) => body . ser (version , bytes) , Self :: LOG_ERASE (body) => body . ser (version , bytes) , Self :: EVENT (body) => body . ser (version , bytes) , Self :: DEBUG_VECT (body) => body . ser (version , bytes) , Self :: RAW_IMU (body) => body . ser (version , bytes) , Self :: AHRS3 (body) => body . ser (version , bytes) , Self :: ISBD_LINK_STATUS (body) => body . ser (version , bytes) , Self :: HERELINK_VIDEO_STREAM_INFORMATION (body) => body . ser (version , bytes) , Self :: HIL_ACTUATOR_CONTROLS (body) => body . ser (version , bytes) , Self :: ENCAPSULATED_DATA (body) => body . ser (version , bytes) , Self :: UAVCAN_NODE_INFO (body) => body . ser (version , bytes) , Self :: HIL_STATE_QUATERNION (body) => body . ser (version , bytes) , Self :: LOGGING_DATA_ACKED (body) => body . ser (version , bytes) , Self :: FLIGHT_INFORMATION (body) => body . ser (version , bytes) , Self :: DEVICE_OP_READ_REPLY (body) => body . ser (version , bytes) , Self :: GPS_RAW_INT (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (body) => body . ser (version , bytes) , Self :: RPM (body) => body . ser (version , bytes) , Self :: AOA_SSA (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_MESSAGE_PACK (body) => body . ser (version , bytes) , Self :: WATER_DEPTH (body) => body . ser (version , bytes) , Self :: CAMERA_TRACKING_GEO_STATUS (body) => body . ser (version , bytes) , Self :: CAMERA_INFORMATION (body) => body . ser (version , bytes) , Self :: BUTTON_CHANGE (body) => body . ser (version , bytes) , Self :: RAW_PRESSURE (body) => body . ser (version , bytes) , Self :: HIGHRES_IMU (body) => body . ser (version , bytes) , Self :: PARAM_MAP_RC (body) => body . ser (version , bytes) , Self :: NAMED_VALUE_INT (body) => body . ser (version , bytes) , Self :: TERRAIN_REPORT (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_SCALED (body) => body . ser (version , bytes) , Self :: ORBIT_EXECUTION_STATUS (body) => body . ser (version , bytes) , Self :: SCALED_IMU3 (body) => body . ser (version , bytes) , Self :: SENSOR_OFFSETS (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_OVERRIDE (body) => body . ser (version , bytes) , Self :: RADIO (body) => body . ser (version , bytes) , Self :: POSITION_TARGET_GLOBAL_INT (body) => body . ser (version , bytes) , Self :: MANUAL_CONTROL (body) => body . ser (version , bytes) , Self :: CHANGE_OPERATOR_CONTROL_ACK (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE3 (body) => body . ser (version , bytes) , Self :: PARAM_EXT_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: MISSION_CLEAR_ALL (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_INFORMATION (body) => body . ser (version , bytes) , Self :: CELLULAR_CONFIG (body) => body . ser (version , bytes) , Self :: LOG_ENTRY (body) => body . ser (version , bytes) , Self :: VIBRATION (body) => body . ser (version , bytes) , Self :: SYS_STATUS (body) => body . ser (version , bytes) , Self :: GLOBAL_POSITION_INT_COV (body) => body . ser (version , bytes) , Self :: ATTITUDE_QUATERNION_COV (body) => body . ser (version , bytes) , Self :: ATTITUDE_QUATERNION (body) => body . ser (version , bytes) , Self :: FENCE_STATUS (body) => body . ser (version , bytes) , Self :: ICAROUS_HEARTBEAT (body) => body . ser (version , bytes) , Self :: HIL_GPS (body) => body . ser (version , bytes) , Self :: TIMESYNC (body) => body . ser (version , bytes) , Self :: GPS_RTCM_DATA (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (body) => body . ser (version , bytes) , Self :: SMART_BATTERY_INFO (body) => body . ser (version , bytes) , Self :: DATA64 (body) => body . ser (version , bytes) , Self :: DISTANCE_SENSOR (body) => body . ser (version , bytes) , Self :: EFI_STATUS (body) => body . ser (version , bytes) , Self :: SET_MODE (body) => body . ser (version , bytes) , Self :: MISSION_ITEM (body) => body . ser (version , bytes) , Self :: NAMED_VALUE_FLOAT (body) => body . ser (version , bytes) , Self :: RESPONSE_EVENT_ERROR (body) => body . ser (version , bytes) , Self :: SCALED_IMU2 (body) => body . ser (version , bytes) , Self :: ATTITUDE (body) => body . ser (version , bytes) , Self :: LANDING_TARGET (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_AUTHENTICATION (body) => body . ser (version , bytes) , Self :: NAV_CONTROLLER_OUTPUT (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: GPS_GLOBAL_ORIGIN (body) => body . ser (version , bytes) , Self :: SUPPORTED_TUNES (body) => body . ser (version , bytes) , Self :: MOUNT_STATUS (body) => body . ser (version , bytes) , Self :: CANFD_FRAME (body) => body . ser (version , bytes) , Self :: WIFI_CONFIG_AP (body) => body . ser (version , bytes) , Self :: MISSION_ITEM_REACHED (body) => body . ser (version , bytes) , Self :: COMPASSMOT_STATUS (body) => body . ser (version , bytes) , Self :: UAVIONIX_ADSB_OUT_DYNAMIC (body) => body . ser (version , bytes) , Self :: AP_ADC (body) => body . ser (version , bytes) , Self :: OSD_PARAM_SHOW_CONFIG (body) => body . ser (version , bytes) , Self :: CUBEPILOT_FIRMWARE_UPDATE_START (body) => body . ser (version , bytes) , Self :: RADIO_STATUS (body) => body . ser (version , bytes) , Self :: LOG_DATA (body) => body . ser (version , bytes) , Self :: DEBUG_FLOAT_ARRAY (body) => body . ser (version , bytes) , Self :: ODOMETRY (body) => body . ser (version , bytes) , Self :: HIL_OPTICAL_FLOW (body) => body . ser (version , bytes) , Self :: CURRENT_EVENT_SEQUENCE (body) => body . ser (version , bytes) , Self :: LOGGING_DATA (body) => body . ser (version , bytes) , Self :: SET_ACTUATOR_CONTROL_TARGET (body) => body . ser (version , bytes) , Self :: SET_POSITION_TARGET_GLOBAL_INT (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE (body) => body . ser (version , bytes) , Self :: HIGH_LATENCY2 (body) => body . ser (version , bytes) , Self :: GENERATOR_STATUS (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_INT (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SELF_ID (body) => body . ser (version , bytes) , Self :: CAMERA_TRIGGER (body) => body . ser (version , bytes) , Self :: SET_POSITION_TARGET_LOCAL_NED (body) => body . ser (version , bytes) , Self :: DIGICAM_CONFIGURE (body) => body . ser (version , bytes) , Self :: DEVICE_OP_WRITE (body) => body . ser (version , bytes) , Self :: COLLISION (body) => body . ser (version , bytes) , Self :: MISSION_COUNT (body) => body . ser (version , bytes) , Self :: BATTERY_STATUS (body) => body . ser (version , bytes) , Self :: DEEPSTALL (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_PARTIAL_LIST (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_STATUS (body) => body . ser (version , bytes) , Self :: STATUSTEXT (body) => body . ser (version , bytes) , Self :: CAMERA_FEEDBACK (body) => body . ser (version , bytes) , Self :: PARAM_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: HIL_RC_INPUTS_RAW (body) => body . ser (version , bytes) , Self :: OBSTACLE_DISTANCE_3D (body) => body . ser (version , bytes) , Self :: MISSION_ITEM_INT (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_PITCHYAW (body) => body . ser (version , bytes) , Self :: REMOTE_LOG_BLOCK_STATUS (body) => body . ser (version , bytes) , Self :: MAG_CAL_REPORT (body) => body . ser (version , bytes) , Self :: CELLULAR_STATUS (body) => body . ser (version , bytes) , Self :: DATA_STREAM (body) => body . ser (version , bytes) , Self :: SAFETY_ALLOWED_AREA (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_BASIC_ID (body) => body . ser (version , bytes) , Self :: SET_GPS_GLOBAL_ORIGIN (body) => body . ser (version , bytes) , Self :: VIDEO_STREAM_STATUS (body) => body . ser (version , bytes) , Self :: COMPONENT_INFORMATION (body) => body . ser (version , bytes) , Self :: VIDEO_STREAM_INFORMATION (body) => body . ser (version , bytes) , Self :: SET_ATTITUDE_TARGET (body) => body . ser (version , bytes) , Self :: GOPRO_HEARTBEAT (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_RAW (body) => body . ser (version , bytes) , Self :: ACTUATOR_OUTPUT_STATUS (body) => body . ser (version , bytes) , Self :: HERELINK_TELEM (body) => body . ser (version , bytes) , Self :: SAFETY_SET_ALLOWED_AREA (body) => body . ser (version , bytes) , Self :: AIRSPEED_AUTOCAL (body) => body . ser (version , bytes) , Self :: ESC_TELEMETRY_1_TO_4 (body) => body . ser (version , bytes) , Self :: GIMBAL_REPORT (body) => body . ser (version , bytes) , Self :: VISION_SPEED_ESTIMATE (body) => body . ser (version , bytes) , Self :: ONBOARD_COMPUTER_STATUS (body) => body . ser (version , bytes) , Self :: MCU_STATUS (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_DATA (body) => body . ser (version , bytes) , Self :: COMMAND_INT (body) => body . ser (version , bytes) , Self :: ALTITUDE (body) => body . ser (version , bytes) , Self :: FOLLOW_TARGET (body) => body . ser (version , bytes) , Self :: GPS_STATUS (body) => body . ser (version , bytes) , Self :: OSD_PARAM_CONFIG (body) => body . ser (version , bytes) , } } fn extra_crc (id : u32) -> u8 { match id { GIMBAL_CONTROL_DATA :: ID => GIMBAL_CONTROL_DATA :: EXTRA_CRC , FENCE_FETCH_POINT_DATA :: ID => FENCE_FETCH_POINT_DATA :: EXTRA_CRC , COMPONENT_METADATA_DATA :: ID => COMPONENT_METADATA_DATA :: EXTRA_CRC , PARAM_EXT_REQUEST_READ_DATA :: ID => PARAM_EXT_REQUEST_READ_DATA :: EXTRA_CRC , WINCH_STATUS_DATA :: ID => WINCH_STATUS_DATA :: EXTRA_CRC , PARAM_REQUEST_READ_DATA :: ID => PARAM_REQUEST_READ_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: EXTRA_CRC , AUTOPILOT_VERSION_REQUEST_DATA :: ID => AUTOPILOT_VERSION_REQUEST_DATA :: EXTRA_CRC , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: EXTRA_CRC , POSITION_TARGET_LOCAL_NED_DATA :: ID => POSITION_TARGET_LOCAL_NED_DATA :: EXTRA_CRC , MANUAL_SETPOINT_DATA :: ID => MANUAL_SETPOINT_DATA :: EXTRA_CRC , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => OPEN_DRONE_ID_ARM_STATUS_DATA :: EXTRA_CRC , AUTOPILOT_VERSION_DATA :: ID => AUTOPILOT_VERSION_DATA :: EXTRA_CRC , DATA16_DATA :: ID => DATA16_DATA :: EXTRA_CRC , MISSION_CURRENT_DATA :: ID => MISSION_CURRENT_DATA :: EXTRA_CRC , COMMAND_LONG_DATA :: ID => COMMAND_LONG_DATA :: EXTRA_CRC , ATTITUDE_TARGET_DATA :: ID => ATTITUDE_TARGET_DATA :: EXTRA_CRC , MAG_CAL_PROGRESS_DATA :: ID => MAG_CAL_PROGRESS_DATA :: EXTRA_CRC , MOUNT_CONFIGURE_DATA :: ID => MOUNT_CONFIGURE_DATA :: EXTRA_CRC , HIL_SENSOR_DATA :: ID => HIL_SENSOR_DATA :: EXTRA_CRC , REMOTE_LOG_DATA_BLOCK_DATA :: ID => REMOTE_LOG_DATA_BLOCK_DATA :: EXTRA_CRC , GIMBAL_TORQUE_CMD_REPORT_DATA :: ID => GIMBAL_TORQUE_CMD_REPORT_DATA :: EXTRA_CRC , CAMERA_FOV_STATUS_DATA :: ID => CAMERA_FOV_STATUS_DATA :: EXTRA_CRC , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: EXTRA_CRC , TERRAIN_REQUEST_DATA :: ID => TERRAIN_REQUEST_DATA :: EXTRA_CRC , GPS_INJECT_DATA_DATA :: ID => GPS_INJECT_DATA_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_DATA :: ID => LOCAL_POSITION_NED_DATA :: EXTRA_CRC , UAVCAN_NODE_STATUS_DATA :: ID => UAVCAN_NODE_STATUS_DATA :: EXTRA_CRC , MISSION_REQUEST_DATA :: ID => MISSION_REQUEST_DATA :: EXTRA_CRC , REQUEST_DATA_STREAM_DATA :: ID => REQUEST_DATA_STREAM_DATA :: EXTRA_CRC , HOME_POSITION_DATA :: ID => HOME_POSITION_DATA :: EXTRA_CRC , GPS2_RTK_DATA :: ID => GPS2_RTK_DATA :: EXTRA_CRC , WHEEL_DISTANCE_DATA :: ID => WHEEL_DISTANCE_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_COV_DATA :: ID => LOCAL_POSITION_NED_COV_DATA :: EXTRA_CRC , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => OPEN_DRONE_ID_OPERATOR_ID_DATA :: EXTRA_CRC , ATT_POS_MOCAP_DATA :: ID => ATT_POS_MOCAP_DATA :: EXTRA_CRC , DATA32_DATA :: ID => DATA32_DATA :: EXTRA_CRC , LED_CONTROL_DATA :: ID => LED_CONTROL_DATA :: EXTRA_CRC , PROTOCOL_VERSION_DATA :: ID => PROTOCOL_VERSION_DATA :: EXTRA_CRC , TERRAIN_CHECK_DATA :: ID => TERRAIN_CHECK_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: EXTRA_CRC , UAVIONIX_ADSB_OUT_CFG_DATA :: ID => UAVIONIX_ADSB_OUT_CFG_DATA :: EXTRA_CRC , DATA96_DATA :: ID => DATA96_DATA :: EXTRA_CRC , UTM_GLOBAL_POSITION_DATA :: ID => UTM_GLOBAL_POSITION_DATA :: EXTRA_CRC , GOPRO_SET_REQUEST_DATA :: ID => GOPRO_SET_REQUEST_DATA :: EXTRA_CRC , ESC_TELEMETRY_5_TO_8_DATA :: ID => ESC_TELEMETRY_5_TO_8_DATA :: EXTRA_CRC , WIND_COV_DATA :: ID => WIND_COV_DATA :: EXTRA_CRC , MISSION_REQUEST_LIST_DATA :: ID => MISSION_REQUEST_LIST_DATA :: EXTRA_CRC , PLAY_TUNE_DATA :: ID => PLAY_TUNE_DATA :: EXTRA_CRC , VISION_POSITION_ESTIMATE_DATA :: ID => VISION_POSITION_ESTIMATE_DATA :: EXTRA_CRC , LOG_REQUEST_END_DATA :: ID => LOG_REQUEST_END_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SYSTEM_DATA :: ID => OPEN_DRONE_ID_SYSTEM_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: EXTRA_CRC , FENCE_POINT_DATA :: ID => FENCE_POINT_DATA :: EXTRA_CRC , FILE_TRANSFER_PROTOCOL_DATA :: ID => FILE_TRANSFER_PROTOCOL_DATA :: EXTRA_CRC , HIL_CONTROLS_DATA :: ID => HIL_CONTROLS_DATA :: EXTRA_CRC , TIME_ESTIMATE_TO_TARGET_DATA :: ID => TIME_ESTIMATE_TO_TARGET_DATA :: EXTRA_CRC , PING_DATA :: ID => PING_DATA :: EXTRA_CRC , CUBEPILOT_RAW_RC_DATA :: ID => CUBEPILOT_RAW_RC_DATA :: EXTRA_CRC , PARAM_SET_DATA :: ID => PARAM_SET_DATA :: EXTRA_CRC , SYSTEM_TIME_DATA :: ID => SYSTEM_TIME_DATA :: EXTRA_CRC , MOUNT_CONTROL_DATA :: ID => MOUNT_CONTROL_DATA :: EXTRA_CRC , SIMSTATE_DATA :: ID => SIMSTATE_DATA :: EXTRA_CRC , SCALED_PRESSURE2_DATA :: ID => SCALED_PRESSURE2_DATA :: EXTRA_CRC , AHRS2_DATA :: ID => AHRS2_DATA :: EXTRA_CRC , PLAY_TUNE_V2_DATA :: ID => PLAY_TUNE_V2_DATA :: EXTRA_CRC , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: EXTRA_CRC , SIM_STATE_DATA :: ID => SIM_STATE_DATA :: EXTRA_CRC , HIL_STATE_DATA :: ID => HIL_STATE_DATA :: EXTRA_CRC , GOPRO_GET_REQUEST_DATA :: ID => GOPRO_GET_REQUEST_DATA :: EXTRA_CRC , RANGEFINDER_DATA :: ID => RANGEFINDER_DATA :: EXTRA_CRC , OSD_PARAM_CONFIG_REPLY_DATA :: ID => OSD_PARAM_CONFIG_REPLY_DATA :: EXTRA_CRC , BATTERY2_DATA :: ID => BATTERY2_DATA :: EXTRA_CRC , PARAM_EXT_VALUE_DATA :: ID => PARAM_EXT_VALUE_DATA :: EXTRA_CRC , GPS_RTK_DATA :: ID => GPS_RTK_DATA :: EXTRA_CRC , MESSAGE_INTERVAL_DATA :: ID => MESSAGE_INTERVAL_DATA :: EXTRA_CRC , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: EXTRA_CRC , SCALED_IMU_DATA :: ID => SCALED_IMU_DATA :: EXTRA_CRC , HIGH_LATENCY_DATA :: ID => HIGH_LATENCY_DATA :: EXTRA_CRC , CAMERA_IMAGE_CAPTURED_DATA :: ID => CAMERA_IMAGE_CAPTURED_DATA :: EXTRA_CRC , LIMITS_STATUS_DATA :: ID => LIMITS_STATUS_DATA :: EXTRA_CRC , AUTH_KEY_DATA :: ID => AUTH_KEY_DATA :: EXTRA_CRC , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => DATA_TRANSMISSION_HANDSHAKE_DATA :: EXTRA_CRC , CHANGE_OPERATOR_CONTROL_DATA :: ID => CHANGE_OPERATOR_CONTROL_DATA :: EXTRA_CRC , LINK_NODE_STATUS_DATA :: ID => LINK_NODE_STATUS_DATA :: EXTRA_CRC , PID_TUNING_DATA :: ID => PID_TUNING_DATA :: EXTRA_CRC , ADAP_TUNING_DATA :: ID => ADAP_TUNING_DATA :: EXTRA_CRC , ESC_INFO_DATA :: ID => ESC_INFO_DATA :: EXTRA_CRC , TUNNEL_DATA :: ID => TUNNEL_DATA :: EXTRA_CRC , OPTICAL_FLOW_RAD_DATA :: ID => OPTICAL_FLOW_RAD_DATA :: EXTRA_CRC , TERRAIN_DATA_DATA :: ID => TERRAIN_DATA_DATA :: EXTRA_CRC , AHRS_DATA :: ID => AHRS_DATA :: EXTRA_CRC , SETUP_SIGNING_DATA :: ID => SETUP_SIGNING_DATA :: EXTRA_CRC , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => MISSION_WRITE_PARTIAL_LIST_DATA :: EXTRA_CRC , GPS_INPUT_DATA :: ID => GPS_INPUT_DATA :: EXTRA_CRC , VFR_HUD_DATA :: ID => VFR_HUD_DATA :: EXTRA_CRC , POWER_STATUS_DATA :: ID => POWER_STATUS_DATA :: EXTRA_CRC , MISSION_SET_CURRENT_DATA :: ID => MISSION_SET_CURRENT_DATA :: EXTRA_CRC , RALLY_POINT_DATA :: ID => RALLY_POINT_DATA :: EXTRA_CRC , GOPRO_SET_RESPONSE_DATA :: ID => GOPRO_SET_RESPONSE_DATA :: EXTRA_CRC , DEVICE_OP_WRITE_REPLY_DATA :: ID => DEVICE_OP_WRITE_REPLY_DATA :: EXTRA_CRC , ESC_TELEMETRY_9_TO_12_DATA :: ID => ESC_TELEMETRY_9_TO_12_DATA :: EXTRA_CRC , ACTUATOR_CONTROL_TARGET_DATA :: ID => ACTUATOR_CONTROL_TARGET_DATA :: EXTRA_CRC , RALLY_FETCH_POINT_DATA :: ID => RALLY_FETCH_POINT_DATA :: EXTRA_CRC , CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: ID => CUBEPILOT_FIRMWARE_UPDATE_RESP_DATA :: EXTRA_CRC , V2_EXTENSION_DATA :: ID => V2_EXTENSION_DATA :: EXTRA_CRC , GLOBAL_POSITION_INT_DATA :: ID => GLOBAL_POSITION_INT_DATA :: EXTRA_CRC , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: EXTRA_CRC , RAW_RPM_DATA :: ID => RAW_RPM_DATA :: EXTRA_CRC , SET_HOME_POSITION_DATA :: ID => SET_HOME_POSITION_DATA :: EXTRA_CRC , RESOURCE_REQUEST_DATA :: ID => RESOURCE_REQUEST_DATA :: EXTRA_CRC , ESC_STATUS_DATA :: ID => ESC_STATUS_DATA :: EXTRA_CRC , WIND_DATA :: ID => WIND_DATA :: EXTRA_CRC , EXTENDED_SYS_STATE_DATA :: ID => EXTENDED_SYS_STATE_DATA :: EXTRA_CRC , COMMAND_ACK_DATA :: ID => COMMAND_ACK_DATA :: EXTRA_CRC , PARAM_VALUE_DATA :: ID => PARAM_VALUE_DATA :: EXTRA_CRC , HEARTBEAT_DATA :: ID => HEARTBEAT_DATA :: EXTRA_CRC , GIMBAL_DEVICE_INFORMATION_DATA :: ID => GIMBAL_DEVICE_INFORMATION_DATA :: EXTRA_CRC , DEBUG_DATA :: ID => DEBUG_DATA :: EXTRA_CRC , MOUNT_ORIENTATION_DATA :: ID => MOUNT_ORIENTATION_DATA :: EXTRA_CRC , RC_CHANNELS_DATA :: ID => RC_CHANNELS_DATA :: EXTRA_CRC , VICON_POSITION_ESTIMATE_DATA :: ID => VICON_POSITION_ESTIMATE_DATA :: EXTRA_CRC , CAMERA_CAPTURE_STATUS_DATA :: ID => CAMERA_CAPTURE_STATUS_DATA :: EXTRA_CRC , CONTROL_SYSTEM_STATE_DATA :: ID => CONTROL_SYSTEM_STATE_DATA :: EXTRA_CRC , CAMERA_SETTINGS_DATA :: ID => CAMERA_SETTINGS_DATA :: EXTRA_CRC , SERIAL_CONTROL_DATA :: ID => SERIAL_CONTROL_DATA :: EXTRA_CRC , CAN_FILTER_MODIFY_DATA :: ID => CAN_FILTER_MODIFY_DATA :: EXTRA_CRC , PARAM_EXT_ACK_DATA :: ID => PARAM_EXT_ACK_DATA :: EXTRA_CRC , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => CAMERA_TRACKING_IMAGE_STATUS_DATA :: EXTRA_CRC , COMMAND_CANCEL_DATA :: ID => COMMAND_CANCEL_DATA :: EXTRA_CRC , SET_MAG_OFFSETS_DATA :: ID => SET_MAG_OFFSETS_DATA :: EXTRA_CRC , ADSB_VEHICLE_DATA :: ID => ADSB_VEHICLE_DATA :: EXTRA_CRC , DIGICAM_CONTROL_DATA :: ID => DIGICAM_CONTROL_DATA :: EXTRA_CRC , GPS2_RAW_DATA :: ID => GPS2_RAW_DATA :: EXTRA_CRC , OPEN_DRONE_ID_LOCATION_DATA :: ID => OPEN_DRONE_ID_LOCATION_DATA :: EXTRA_CRC , REQUEST_EVENT_DATA :: ID => REQUEST_EVENT_DATA :: EXTRA_CRC , CAMERA_STATUS_DATA :: ID => CAMERA_STATUS_DATA :: EXTRA_CRC , HYGROMETER_SENSOR_DATA :: ID => HYGROMETER_SENSOR_DATA :: EXTRA_CRC , STORAGE_INFORMATION_DATA :: ID => STORAGE_INFORMATION_DATA :: EXTRA_CRC , MISSION_ACK_DATA :: ID => MISSION_ACK_DATA :: EXTRA_CRC , LOGGING_ACK_DATA :: ID => LOGGING_ACK_DATA :: EXTRA_CRC , MEMINFO_DATA :: ID => MEMINFO_DATA :: EXTRA_CRC , DEVICE_OP_READ_DATA :: ID => DEVICE_OP_READ_DATA :: EXTRA_CRC , VISION_POSITION_DELTA_DATA :: ID => VISION_POSITION_DELTA_DATA :: EXTRA_CRC , ESTIMATOR_STATUS_DATA :: ID => ESTIMATOR_STATUS_DATA :: EXTRA_CRC , OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: ID => OSD_PARAM_SHOW_CONFIG_REPLY_DATA :: EXTRA_CRC , MEMORY_VECT_DATA :: ID => MEMORY_VECT_DATA :: EXTRA_CRC , EKF_STATUS_REPORT_DATA :: ID => EKF_STATUS_REPORT_DATA :: EXTRA_CRC , PARAM_EXT_SET_DATA :: ID => PARAM_EXT_SET_DATA :: EXTRA_CRC , HWSTATUS_DATA :: ID => HWSTATUS_DATA :: EXTRA_CRC , ICAROUS_KINEMATIC_BANDS_DATA :: ID => ICAROUS_KINEMATIC_BANDS_DATA :: EXTRA_CRC , OBSTACLE_DISTANCE_DATA :: ID => OBSTACLE_DISTANCE_DATA :: EXTRA_CRC , AIS_VESSEL_DATA :: ID => AIS_VESSEL_DATA :: EXTRA_CRC , GOPRO_GET_RESPONSE_DATA :: ID => GOPRO_GET_RESPONSE_DATA :: EXTRA_CRC , CAN_FRAME_DATA :: ID => CAN_FRAME_DATA :: EXTRA_CRC , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: EXTRA_CRC , OPTICAL_FLOW_DATA :: ID => OPTICAL_FLOW_DATA :: EXTRA_CRC , SERVO_OUTPUT_RAW_DATA :: ID => SERVO_OUTPUT_RAW_DATA :: EXTRA_CRC , LOG_ERASE_DATA :: ID => LOG_ERASE_DATA :: EXTRA_CRC , EVENT_DATA :: ID => EVENT_DATA :: EXTRA_CRC , DEBUG_VECT_DATA :: ID => DEBUG_VECT_DATA :: EXTRA_CRC , RAW_IMU_DATA :: ID => RAW_IMU_DATA :: EXTRA_CRC , AHRS3_DATA :: ID => AHRS3_DATA :: EXTRA_CRC , ISBD_LINK_STATUS_DATA :: ID => ISBD_LINK_STATUS_DATA :: EXTRA_CRC , HERELINK_VIDEO_STREAM_INFORMATION_DATA :: ID => HERELINK_VIDEO_STREAM_INFORMATION_DATA :: EXTRA_CRC , HIL_ACTUATOR_CONTROLS_DATA :: ID => HIL_ACTUATOR_CONTROLS_DATA :: EXTRA_CRC , ENCAPSULATED_DATA_DATA :: ID => ENCAPSULATED_DATA_DATA :: EXTRA_CRC , UAVCAN_NODE_INFO_DATA :: ID => UAVCAN_NODE_INFO_DATA :: EXTRA_CRC , HIL_STATE_QUATERNION_DATA :: ID => HIL_STATE_QUATERNION_DATA :: EXTRA_CRC , LOGGING_DATA_ACKED_DATA :: ID => LOGGING_DATA_ACKED_DATA :: EXTRA_CRC , FLIGHT_INFORMATION_DATA :: ID => FLIGHT_INFORMATION_DATA :: EXTRA_CRC , DEVICE_OP_READ_REPLY_DATA :: ID => DEVICE_OP_READ_REPLY_DATA :: EXTRA_CRC , GPS_RAW_INT_DATA :: ID => GPS_RAW_INT_DATA :: EXTRA_CRC , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: EXTRA_CRC , RPM_DATA :: ID => RPM_DATA :: EXTRA_CRC , AOA_SSA_DATA :: ID => AOA_SSA_DATA :: EXTRA_CRC , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: EXTRA_CRC , WATER_DEPTH_DATA :: ID => WATER_DEPTH_DATA :: EXTRA_CRC , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => CAMERA_TRACKING_GEO_STATUS_DATA :: EXTRA_CRC , CAMERA_INFORMATION_DATA :: ID => CAMERA_INFORMATION_DATA :: EXTRA_CRC , BUTTON_CHANGE_DATA :: ID => BUTTON_CHANGE_DATA :: EXTRA_CRC , RAW_PRESSURE_DATA :: ID => RAW_PRESSURE_DATA :: EXTRA_CRC , HIGHRES_IMU_DATA :: ID => HIGHRES_IMU_DATA :: EXTRA_CRC , PARAM_MAP_RC_DATA :: ID => PARAM_MAP_RC_DATA :: EXTRA_CRC , NAMED_VALUE_INT_DATA :: ID => NAMED_VALUE_INT_DATA :: EXTRA_CRC , TERRAIN_REPORT_DATA :: ID => TERRAIN_REPORT_DATA :: EXTRA_CRC , RC_CHANNELS_SCALED_DATA :: ID => RC_CHANNELS_SCALED_DATA :: EXTRA_CRC , ORBIT_EXECUTION_STATUS_DATA :: ID => ORBIT_EXECUTION_STATUS_DATA :: EXTRA_CRC , SCALED_IMU3_DATA :: ID => SCALED_IMU3_DATA :: EXTRA_CRC , SENSOR_OFFSETS_DATA :: ID => SENSOR_OFFSETS_DATA :: EXTRA_CRC , RC_CHANNELS_OVERRIDE_DATA :: ID => RC_CHANNELS_OVERRIDE_DATA :: EXTRA_CRC , RADIO_DATA :: ID => RADIO_DATA :: EXTRA_CRC , POSITION_TARGET_GLOBAL_INT_DATA :: ID => POSITION_TARGET_GLOBAL_INT_DATA :: EXTRA_CRC , MANUAL_CONTROL_DATA :: ID => MANUAL_CONTROL_DATA :: EXTRA_CRC , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => CHANGE_OPERATOR_CONTROL_ACK_DATA :: EXTRA_CRC , SCALED_PRESSURE3_DATA :: ID => SCALED_PRESSURE3_DATA :: EXTRA_CRC , PARAM_EXT_REQUEST_LIST_DATA :: ID => PARAM_EXT_REQUEST_LIST_DATA :: EXTRA_CRC , MISSION_CLEAR_ALL_DATA :: ID => MISSION_CLEAR_ALL_DATA :: EXTRA_CRC , GIMBAL_MANAGER_INFORMATION_DATA :: ID => GIMBAL_MANAGER_INFORMATION_DATA :: EXTRA_CRC , CELLULAR_CONFIG_DATA :: ID => CELLULAR_CONFIG_DATA :: EXTRA_CRC , LOG_ENTRY_DATA :: ID => LOG_ENTRY_DATA :: EXTRA_CRC , VIBRATION_DATA :: ID => VIBRATION_DATA :: EXTRA_CRC , SYS_STATUS_DATA :: ID => SYS_STATUS_DATA :: EXTRA_CRC , GLOBAL_POSITION_INT_COV_DATA :: ID => GLOBAL_POSITION_INT_COV_DATA :: EXTRA_CRC , ATTITUDE_QUATERNION_COV_DATA :: ID => ATTITUDE_QUATERNION_COV_DATA :: EXTRA_CRC , ATTITUDE_QUATERNION_DATA :: ID => ATTITUDE_QUATERNION_DATA :: EXTRA_CRC , FENCE_STATUS_DATA :: ID => FENCE_STATUS_DATA :: EXTRA_CRC , ICAROUS_HEARTBEAT_DATA :: ID => ICAROUS_HEARTBEAT_DATA :: EXTRA_CRC , HIL_GPS_DATA :: ID => HIL_GPS_DATA :: EXTRA_CRC , TIMESYNC_DATA :: ID => TIMESYNC_DATA :: EXTRA_CRC , GPS_RTCM_DATA_DATA :: ID => GPS_RTCM_DATA_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: EXTRA_CRC , SMART_BATTERY_INFO_DATA :: ID => SMART_BATTERY_INFO_DATA :: EXTRA_CRC , DATA64_DATA :: ID => DATA64_DATA :: EXTRA_CRC , DISTANCE_SENSOR_DATA :: ID => DISTANCE_SENSOR_DATA :: EXTRA_CRC , EFI_STATUS_DATA :: ID => EFI_STATUS_DATA :: EXTRA_CRC , SET_MODE_DATA :: ID => SET_MODE_DATA :: EXTRA_CRC , MISSION_ITEM_DATA :: ID => MISSION_ITEM_DATA :: EXTRA_CRC , NAMED_VALUE_FLOAT_DATA :: ID => NAMED_VALUE_FLOAT_DATA :: EXTRA_CRC , RESPONSE_EVENT_ERROR_DATA :: ID => RESPONSE_EVENT_ERROR_DATA :: EXTRA_CRC , SCALED_IMU2_DATA :: ID => SCALED_IMU2_DATA :: EXTRA_CRC , ATTITUDE_DATA :: ID => ATTITUDE_DATA :: EXTRA_CRC , LANDING_TARGET_DATA :: ID => LANDING_TARGET_DATA :: EXTRA_CRC , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => OPEN_DRONE_ID_AUTHENTICATION_DATA :: EXTRA_CRC , NAV_CONTROLLER_OUTPUT_DATA :: ID => NAV_CONTROLLER_OUTPUT_DATA :: EXTRA_CRC , LOG_REQUEST_LIST_DATA :: ID => LOG_REQUEST_LIST_DATA :: EXTRA_CRC , GPS_GLOBAL_ORIGIN_DATA :: ID => GPS_GLOBAL_ORIGIN_DATA :: EXTRA_CRC , SUPPORTED_TUNES_DATA :: ID => SUPPORTED_TUNES_DATA :: EXTRA_CRC , MOUNT_STATUS_DATA :: ID => MOUNT_STATUS_DATA :: EXTRA_CRC , CANFD_FRAME_DATA :: ID => CANFD_FRAME_DATA :: EXTRA_CRC , WIFI_CONFIG_AP_DATA :: ID => WIFI_CONFIG_AP_DATA :: EXTRA_CRC , MISSION_ITEM_REACHED_DATA :: ID => MISSION_ITEM_REACHED_DATA :: EXTRA_CRC , COMPASSMOT_STATUS_DATA :: ID => COMPASSMOT_STATUS_DATA :: EXTRA_CRC , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: EXTRA_CRC , AP_ADC_DATA :: ID => AP_ADC_DATA :: EXTRA_CRC , OSD_PARAM_SHOW_CONFIG_DATA :: ID => OSD_PARAM_SHOW_CONFIG_DATA :: EXTRA_CRC , CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: ID => CUBEPILOT_FIRMWARE_UPDATE_START_DATA :: EXTRA_CRC , RADIO_STATUS_DATA :: ID => RADIO_STATUS_DATA :: EXTRA_CRC , LOG_DATA_DATA :: ID => LOG_DATA_DATA :: EXTRA_CRC , DEBUG_FLOAT_ARRAY_DATA :: ID => DEBUG_FLOAT_ARRAY_DATA :: EXTRA_CRC , ODOMETRY_DATA :: ID => ODOMETRY_DATA :: EXTRA_CRC , HIL_OPTICAL_FLOW_DATA :: ID => HIL_OPTICAL_FLOW_DATA :: EXTRA_CRC , CURRENT_EVENT_SEQUENCE_DATA :: ID => CURRENT_EVENT_SEQUENCE_DATA :: EXTRA_CRC , LOGGING_DATA_DATA :: ID => LOGGING_DATA_DATA :: EXTRA_CRC , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => SET_ACTUATOR_CONTROL_TARGET_DATA :: EXTRA_CRC , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => SET_POSITION_TARGET_GLOBAL_INT_DATA :: EXTRA_CRC , SCALED_PRESSURE_DATA :: ID => SCALED_PRESSURE_DATA :: EXTRA_CRC , HIGH_LATENCY2_DATA :: ID => HIGH_LATENCY2_DATA :: EXTRA_CRC , GENERATOR_STATUS_DATA :: ID => GENERATOR_STATUS_DATA :: EXTRA_CRC , MISSION_REQUEST_INT_DATA :: ID => MISSION_REQUEST_INT_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SELF_ID_DATA :: ID => OPEN_DRONE_ID_SELF_ID_DATA :: EXTRA_CRC , CAMERA_TRIGGER_DATA :: ID => CAMERA_TRIGGER_DATA :: EXTRA_CRC , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => SET_POSITION_TARGET_LOCAL_NED_DATA :: EXTRA_CRC , DIGICAM_CONFIGURE_DATA :: ID => DIGICAM_CONFIGURE_DATA :: EXTRA_CRC , DEVICE_OP_WRITE_DATA :: ID => DEVICE_OP_WRITE_DATA :: EXTRA_CRC , COLLISION_DATA :: ID => COLLISION_DATA :: EXTRA_CRC , MISSION_COUNT_DATA :: ID => MISSION_COUNT_DATA :: EXTRA_CRC , BATTERY_STATUS_DATA :: ID => BATTERY_STATUS_DATA :: EXTRA_CRC , DEEPSTALL_DATA :: ID => DEEPSTALL_DATA :: EXTRA_CRC , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => MISSION_REQUEST_PARTIAL_LIST_DATA :: EXTRA_CRC , GIMBAL_MANAGER_STATUS_DATA :: ID => GIMBAL_MANAGER_STATUS_DATA :: EXTRA_CRC , STATUSTEXT_DATA :: ID => STATUSTEXT_DATA :: EXTRA_CRC , CAMERA_FEEDBACK_DATA :: ID => CAMERA_FEEDBACK_DATA :: EXTRA_CRC , PARAM_REQUEST_LIST_DATA :: ID => PARAM_REQUEST_LIST_DATA :: EXTRA_CRC , HIL_RC_INPUTS_RAW_DATA :: ID => HIL_RC_INPUTS_RAW_DATA :: EXTRA_CRC , OBSTACLE_DISTANCE_3D_DATA :: ID => OBSTACLE_DISTANCE_3D_DATA :: EXTRA_CRC , MISSION_ITEM_INT_DATA :: ID => MISSION_ITEM_INT_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: EXTRA_CRC , REMOTE_LOG_BLOCK_STATUS_DATA :: ID => REMOTE_LOG_BLOCK_STATUS_DATA :: EXTRA_CRC , MAG_CAL_REPORT_DATA :: ID => MAG_CAL_REPORT_DATA :: EXTRA_CRC , CELLULAR_STATUS_DATA :: ID => CELLULAR_STATUS_DATA :: EXTRA_CRC , DATA_STREAM_DATA :: ID => DATA_STREAM_DATA :: EXTRA_CRC , SAFETY_ALLOWED_AREA_DATA :: ID => SAFETY_ALLOWED_AREA_DATA :: EXTRA_CRC , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => OPEN_DRONE_ID_BASIC_ID_DATA :: EXTRA_CRC , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => SET_GPS_GLOBAL_ORIGIN_DATA :: EXTRA_CRC , VIDEO_STREAM_STATUS_DATA :: ID => VIDEO_STREAM_STATUS_DATA :: EXTRA_CRC , COMPONENT_INFORMATION_DATA :: ID => COMPONENT_INFORMATION_DATA :: EXTRA_CRC , VIDEO_STREAM_INFORMATION_DATA :: ID => VIDEO_STREAM_INFORMATION_DATA :: EXTRA_CRC , SET_ATTITUDE_TARGET_DATA :: ID => SET_ATTITUDE_TARGET_DATA :: EXTRA_CRC , GOPRO_HEARTBEAT_DATA :: ID => GOPRO_HEARTBEAT_DATA :: EXTRA_CRC , RC_CHANNELS_RAW_DATA :: ID => RC_CHANNELS_RAW_DATA :: EXTRA_CRC , ACTUATOR_OUTPUT_STATUS_DATA :: ID => ACTUATOR_OUTPUT_STATUS_DATA :: EXTRA_CRC , HERELINK_TELEM_DATA :: ID => HERELINK_TELEM_DATA :: EXTRA_CRC , SAFETY_SET_ALLOWED_AREA_DATA :: ID => SAFETY_SET_ALLOWED_AREA_DATA :: EXTRA_CRC , AIRSPEED_AUTOCAL_DATA :: ID => AIRSPEED_AUTOCAL_DATA :: EXTRA_CRC , ESC_TELEMETRY_1_TO_4_DATA :: ID => ESC_TELEMETRY_1_TO_4_DATA :: EXTRA_CRC , GIMBAL_REPORT_DATA :: ID => GIMBAL_REPORT_DATA :: EXTRA_CRC , VISION_SPEED_ESTIMATE_DATA :: ID => VISION_SPEED_ESTIMATE_DATA :: EXTRA_CRC , ONBOARD_COMPUTER_STATUS_DATA :: ID => ONBOARD_COMPUTER_STATUS_DATA :: EXTRA_CRC , MCU_STATUS_DATA :: ID => MCU_STATUS_DATA :: EXTRA_CRC , LOG_REQUEST_DATA_DATA :: ID => LOG_REQUEST_DATA_DATA :: EXTRA_CRC , COMMAND_INT_DATA :: ID => COMMAND_INT_DATA :: EXTRA_CRC , ALTITUDE_DATA :: ID => ALTITUDE_DATA :: EXTRA_CRC , FOLLOW_TARGET_DATA :: ID => FOLLOW_TARGET_DATA :: EXTRA_CRC , GPS_STATUS_DATA :: ID => GPS_STATUS_DATA :: EXTRA_CRC , OSD_PARAM_CONFIG_DATA :: ID => OSD_PARAM_CONFIG_DATA :: EXTRA_CRC , _ => { 0 } , } } }
 
\ No newline at end of file diff --git a/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/common.rs.html b/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/common.rs.html index 1196bbf237..163719d73f 100644 --- a/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/common.rs.html +++ b/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/common.rs.html @@ -1,3 +1,3 @@ common.rs - source
1
-
# ! [doc = "This file was automatically generated, do not edit"] # [allow (unused_imports)] use num_derive :: FromPrimitive ; # [allow (unused_imports)] use num_traits :: FromPrimitive ; # [allow (unused_imports)] use num_derive :: ToPrimitive ; # [allow (unused_imports)] use num_traits :: ToPrimitive ; # [allow (unused_imports)] use bitflags :: bitflags ; use mavlink_core :: { MavlinkVersion , Message , MessageData , bytes :: Bytes , bytes_mut :: BytesMut } ; # [cfg (feature = "serde")] use serde :: { Serialize , Deserialize } ; # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavRoi { MAV_ROI_NONE = 0 , MAV_ROI_WPNEXT = 1 , MAV_ROI_WPINDEX = 2 , MAV_ROI_LOCATION = 3 , MAV_ROI_TARGET = 4 , } impl MavRoi { pub const DEFAULT : Self = Self :: MAV_ROI_NONE ; } impl Default for MavRoi { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavlinkDataStreamType { MAVLINK_DATA_STREAM_IMG_JPEG = 0 , MAVLINK_DATA_STREAM_IMG_BMP = 1 , MAVLINK_DATA_STREAM_IMG_RAW8U = 2 , MAVLINK_DATA_STREAM_IMG_RAW32U = 3 , MAVLINK_DATA_STREAM_IMG_PGM = 4 , MAVLINK_DATA_STREAM_IMG_PNG = 5 , } impl MavlinkDataStreamType { pub const DEFAULT : Self = Self :: MAVLINK_DATA_STREAM_IMG_JPEG ; } impl Default for MavlinkDataStreamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RtkBaselineCoordinateSystem { RTK_BASELINE_COORDINATE_SYSTEM_ECEF = 0 , RTK_BASELINE_COORDINATE_SYSTEM_NED = 1 , } impl RtkBaselineCoordinateSystem { pub const DEFAULT : Self = Self :: RTK_BASELINE_COORDINATE_SYSTEM_ECEF ; } impl Default for RtkBaselineCoordinateSystem { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularNetworkFailedReason { CELLULAR_NETWORK_FAILED_REASON_NONE = 0 , CELLULAR_NETWORK_FAILED_REASON_UNKNOWN = 1 , CELLULAR_NETWORK_FAILED_REASON_SIM_MISSING = 2 , CELLULAR_NETWORK_FAILED_REASON_SIM_ERROR = 3 , } impl CellularNetworkFailedReason { pub const DEFAULT : Self = Self :: CELLULAR_NETWORK_FAILED_REASON_NONE ; } impl Default for CellularNetworkFailedReason { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TuneFormat : u32 { const TUNE_FORMAT_QBASIC1_1 = 1 ; const TUNE_FORMAT_MML_MODERN = 2 ; } } impl TuneFormat { pub const DEFAULT : Self = Self :: TUNE_FORMAT_QBASIC1_1 ; } impl Default for TuneFormat { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavEventErrorReason { MAV_EVENT_ERROR_REASON_UNAVAILABLE = 0 , } impl MavEventErrorReason { pub const DEFAULT : Self = Self :: MAV_EVENT_ERROR_REASON_UNAVAILABLE ; } impl Default for MavEventErrorReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VideoStreamStatusFlags { VIDEO_STREAM_STATUS_FLAGS_RUNNING = 1 , VIDEO_STREAM_STATUS_FLAGS_THERMAL = 2 , } impl VideoStreamStatusFlags { pub const DEFAULT : Self = Self :: VIDEO_STREAM_STATUS_FLAGS_RUNNING ; } impl Default for VideoStreamStatusFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AttitudeTargetTypemask : u8 { const ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE = 1 ; const ATTITUDE_TARGET_TYPEMASK_BODY_PITCH_RATE_IGNORE = 2 ; const ATTITUDE_TARGET_TYPEMASK_BODY_YAW_RATE_IGNORE = 4 ; const ATTITUDE_TARGET_TYPEMASK_THRUST_BODY_SET = 32 ; const ATTITUDE_TARGET_TYPEMASK_THROTTLE_IGNORE = 64 ; const ATTITUDE_TARGET_TYPEMASK_ATTITUDE_IGNORE = 128 ; } } impl AttitudeTargetTypemask { pub const DEFAULT : Self = Self :: ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE ; } impl Default for AttitudeTargetTypemask { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionAction { MAV_COLLISION_ACTION_NONE = 0 , MAV_COLLISION_ACTION_REPORT = 1 , MAV_COLLISION_ACTION_ASCEND_OR_DESCEND = 2 , MAV_COLLISION_ACTION_MOVE_HORIZONTALLY = 3 , MAV_COLLISION_ACTION_MOVE_PERPENDICULAR = 4 , MAV_COLLISION_ACTION_RTL = 5 , MAV_COLLISION_ACTION_HOVER = 6 , } impl MavCollisionAction { pub const DEFAULT : Self = Self :: MAV_COLLISION_ACTION_NONE ; } impl Default for MavCollisionAction { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AisFlags : u16 { const AIS_FLAGS_POSITION_ACCURACY = 1 ; const AIS_FLAGS_VALID_COG = 2 ; const AIS_FLAGS_VALID_VELOCITY = 4 ; const AIS_FLAGS_HIGH_VELOCITY = 8 ; const AIS_FLAGS_VALID_TURN_RATE = 16 ; const AIS_FLAGS_TURN_RATE_SIGN_ONLY = 32 ; const AIS_FLAGS_VALID_DIMENSIONS = 64 ; const AIS_FLAGS_LARGE_BOW_DIMENSION = 128 ; const AIS_FLAGS_LARGE_STERN_DIMENSION = 256 ; const AIS_FLAGS_LARGE_PORT_DIMENSION = 512 ; const AIS_FLAGS_LARGE_STARBOARD_DIMENSION = 1024 ; const AIS_FLAGS_VALID_CALLSIGN = 2048 ; const AIS_FLAGS_VALID_NAME = 4096 ; } } impl AisFlags { pub const DEFAULT : Self = Self :: AIS_FLAGS_POSITION_ACCURACY ; } impl Default for AisFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFtpErr { MAV_FTP_ERR_NONE = 0 , MAV_FTP_ERR_FAIL = 1 , MAV_FTP_ERR_FAILERRNO = 2 , MAV_FTP_ERR_INVALIDDATASIZE = 3 , MAV_FTP_ERR_INVALIDSESSION = 4 , MAV_FTP_ERR_NOSESSIONSAVAILABLE = 5 , MAV_FTP_ERR_EOF = 6 , MAV_FTP_ERR_UNKNOWNCOMMAND = 7 , MAV_FTP_ERR_FILEEXISTS = 8 , MAV_FTP_ERR_FILEPROTECTED = 9 , MAV_FTP_ERR_FILENOTFOUND = 10 , } impl MavFtpErr { pub const DEFAULT : Self = Self :: MAV_FTP_ERR_NONE ; } impl Default for MavFtpErr { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavModeFlagDecodePosition { MAV_MODE_FLAG_DECODE_POSITION_SAFETY = 128 , MAV_MODE_FLAG_DECODE_POSITION_MANUAL = 64 , MAV_MODE_FLAG_DECODE_POSITION_HIL = 32 , MAV_MODE_FLAG_DECODE_POSITION_STABILIZE = 16 , MAV_MODE_FLAG_DECODE_POSITION_GUIDED = 8 , MAV_MODE_FLAG_DECODE_POSITION_AUTO = 4 , MAV_MODE_FLAG_DECODE_POSITION_TEST = 2 , MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE = 1 , } impl MavModeFlagDecodePosition { pub const DEFAULT : Self = Self :: MAV_MODE_FLAG_DECODE_POSITION_SAFETY ; } impl Default for MavModeFlagDecodePosition { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AdsbFlags : u16 { const ADSB_FLAGS_VALID_COORDS = 1 ; const ADSB_FLAGS_VALID_ALTITUDE = 2 ; const ADSB_FLAGS_VALID_HEADING = 4 ; const ADSB_FLAGS_VALID_VELOCITY = 8 ; const ADSB_FLAGS_VALID_CALLSIGN = 16 ; const ADSB_FLAGS_VALID_SQUAWK = 32 ; const ADSB_FLAGS_SIMULATED = 64 ; const ADSB_FLAGS_VERTICAL_VELOCITY_VALID = 128 ; const ADSB_FLAGS_BARO_VALID = 256 ; const ADSB_FLAGS_SOURCE_UAT = 32768 ; } } impl AdsbFlags { pub const DEFAULT : Self = Self :: ADSB_FLAGS_VALID_COORDS ; } impl Default for AdsbFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSysStatusSensorExtended { MAV_SYS_STATUS_RECOVERY_SYSTEM = 1 , } impl MavSysStatusSensorExtended { pub const DEFAULT : Self = Self :: MAV_SYS_STATUS_RECOVERY_SYSTEM ; } impl Default for MavSysStatusSensorExtended { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageType { STORAGE_TYPE_UNKNOWN = 0 , STORAGE_TYPE_USB_STICK = 1 , STORAGE_TYPE_SD = 2 , STORAGE_TYPE_MICROSD = 3 , STORAGE_TYPE_CF = 4 , STORAGE_TYPE_CFE = 5 , STORAGE_TYPE_XQD = 6 , STORAGE_TYPE_HD = 7 , STORAGE_TYPE_OTHER = 254 , } impl StorageType { pub const DEFAULT : Self = Self :: STORAGE_TYPE_UNKNOWN ; } impl Default for StorageType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSeverity { MAV_SEVERITY_EMERGENCY = 0 , MAV_SEVERITY_ALERT = 1 , MAV_SEVERITY_CRITICAL = 2 , MAV_SEVERITY_ERROR = 3 , MAV_SEVERITY_WARNING = 4 , MAV_SEVERITY_NOTICE = 5 , MAV_SEVERITY_INFO = 6 , MAV_SEVERITY_DEBUG = 7 , } impl MavSeverity { pub const DEFAULT : Self = Self :: MAV_SEVERITY_EMERGENCY ; } impl Default for MavSeverity { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceAction { FENCE_ACTION_NONE = 0 , FENCE_ACTION_GUIDED = 1 , FENCE_ACTION_REPORT = 2 , FENCE_ACTION_GUIDED_THR_PASS = 3 , FENCE_ACTION_RTL = 4 , FENCE_ACTION_HOLD = 5 , FENCE_ACTION_TERMINATE = 6 , FENCE_ACTION_LAND = 7 , } impl FenceAction { pub const DEFAULT : Self = Self :: FENCE_ACTION_NONE ; } impl Default for FenceAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FailureType { FAILURE_TYPE_OK = 0 , FAILURE_TYPE_OFF = 1 , FAILURE_TYPE_STUCK = 2 , FAILURE_TYPE_GARBAGE = 3 , FAILURE_TYPE_WRONG = 4 , FAILURE_TYPE_SLOW = 5 , FAILURE_TYPE_DELAYED = 6 , FAILURE_TYPE_INTERMITTENT = 7 , } impl FailureType { pub const DEFAULT : Self = Self :: FAILURE_TYPE_OK ; } impl Default for FailureType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageUsageFlag { STORAGE_USAGE_FLAG_SET = 1 , STORAGE_USAGE_FLAG_PHOTO = 2 , STORAGE_USAGE_FLAG_VIDEO = 4 , STORAGE_USAGE_FLAG_LOGS = 8 , } impl StorageUsageFlag { pub const DEFAULT : Self = Self :: STORAGE_USAGE_FLAG_SET ; } impl Default for StorageUsageFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MissionState { MISSION_STATE_UNKNOWN = 0 , MISSION_STATE_NO_MISSION = 1 , MISSION_STATE_NOT_STARTED = 2 , MISSION_STATE_ACTIVE = 3 , MISSION_STATE_PAUSED = 4 , MISSION_STATE_COMPLETE = 5 , } impl MissionState { pub const DEFAULT : Self = Self :: MISSION_STATE_UNKNOWN ; } impl Default for MissionState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavResult { MAV_RESULT_ACCEPTED = 0 , MAV_RESULT_TEMPORARILY_REJECTED = 1 , MAV_RESULT_DENIED = 2 , MAV_RESULT_UNSUPPORTED = 3 , MAV_RESULT_FAILED = 4 , MAV_RESULT_IN_PROGRESS = 5 , MAV_RESULT_CANCELLED = 6 , } impl MavResult { pub const DEFAULT : Self = Self :: MAV_RESULT_ACCEPTED ; } impl Default for MavResult { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EstimatorStatusFlags : u16 { const ESTIMATOR_ATTITUDE = 1 ; const ESTIMATOR_VELOCITY_HORIZ = 2 ; const ESTIMATOR_VELOCITY_VERT = 4 ; const ESTIMATOR_POS_HORIZ_REL = 8 ; const ESTIMATOR_POS_HORIZ_ABS = 16 ; const ESTIMATOR_POS_VERT_ABS = 32 ; const ESTIMATOR_POS_VERT_AGL = 64 ; const ESTIMATOR_CONST_POS_MODE = 128 ; const ESTIMATOR_PRED_POS_HORIZ_REL = 256 ; const ESTIMATOR_PRED_POS_HORIZ_ABS = 512 ; const ESTIMATOR_GPS_GLITCH = 1024 ; const ESTIMATOR_ACCEL_ERROR = 2048 ; } } impl EstimatorStatusFlags { pub const DEFAULT : Self = Self :: ESTIMATOR_ATTITUDE ; } impl Default for EstimatorStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ActuatorOutputFunction { ACTUATOR_OUTPUT_FUNCTION_NONE = 0 , ACTUATOR_OUTPUT_FUNCTION_MOTOR1 = 1 , ACTUATOR_OUTPUT_FUNCTION_MOTOR2 = 2 , ACTUATOR_OUTPUT_FUNCTION_MOTOR3 = 3 , ACTUATOR_OUTPUT_FUNCTION_MOTOR4 = 4 , ACTUATOR_OUTPUT_FUNCTION_MOTOR5 = 5 , ACTUATOR_OUTPUT_FUNCTION_MOTOR6 = 6 , ACTUATOR_OUTPUT_FUNCTION_MOTOR7 = 7 , ACTUATOR_OUTPUT_FUNCTION_MOTOR8 = 8 , ACTUATOR_OUTPUT_FUNCTION_MOTOR9 = 9 , ACTUATOR_OUTPUT_FUNCTION_MOTOR10 = 10 , ACTUATOR_OUTPUT_FUNCTION_MOTOR11 = 11 , ACTUATOR_OUTPUT_FUNCTION_MOTOR12 = 12 , ACTUATOR_OUTPUT_FUNCTION_MOTOR13 = 13 , ACTUATOR_OUTPUT_FUNCTION_MOTOR14 = 14 , ACTUATOR_OUTPUT_FUNCTION_MOTOR15 = 15 , ACTUATOR_OUTPUT_FUNCTION_MOTOR16 = 16 , ACTUATOR_OUTPUT_FUNCTION_SERVO1 = 33 , ACTUATOR_OUTPUT_FUNCTION_SERVO2 = 34 , ACTUATOR_OUTPUT_FUNCTION_SERVO3 = 35 , ACTUATOR_OUTPUT_FUNCTION_SERVO4 = 36 , ACTUATOR_OUTPUT_FUNCTION_SERVO5 = 37 , ACTUATOR_OUTPUT_FUNCTION_SERVO6 = 38 , ACTUATOR_OUTPUT_FUNCTION_SERVO7 = 39 , ACTUATOR_OUTPUT_FUNCTION_SERVO8 = 40 , ACTUATOR_OUTPUT_FUNCTION_SERVO9 = 41 , ACTUATOR_OUTPUT_FUNCTION_SERVO10 = 42 , ACTUATOR_OUTPUT_FUNCTION_SERVO11 = 43 , ACTUATOR_OUTPUT_FUNCTION_SERVO12 = 44 , ACTUATOR_OUTPUT_FUNCTION_SERVO13 = 45 , ACTUATOR_OUTPUT_FUNCTION_SERVO14 = 46 , ACTUATOR_OUTPUT_FUNCTION_SERVO15 = 47 , ACTUATOR_OUTPUT_FUNCTION_SERVO16 = 48 , } impl ActuatorOutputFunction { pub const DEFAULT : Self = Self :: ACTUATOR_OUTPUT_FUNCTION_NONE ; } impl Default for ActuatorOutputFunction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum LandingTargetType { LANDING_TARGET_TYPE_LIGHT_BEACON = 0 , LANDING_TARGET_TYPE_RADIO_BEACON = 1 , LANDING_TARGET_TYPE_VISION_FIDUCIAL = 2 , LANDING_TARGET_TYPE_VISION_OTHER = 3 , } impl LandingTargetType { pub const DEFAULT : Self = Self :: LANDING_TARGET_TYPE_LIGHT_BEACON ; } impl Default for LandingTargetType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavGoto { MAV_GOTO_DO_HOLD = 0 , MAV_GOTO_DO_CONTINUE = 1 , MAV_GOTO_HOLD_AT_CURRENT_POSITION = 2 , MAV_GOTO_HOLD_AT_SPECIFIED_POSITION = 3 , } impl MavGoto { pub const DEFAULT : Self = Self :: MAV_GOTO_DO_HOLD ; } impl Default for MavGoto { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidClassificationType { MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED = 0 , MAV_ODID_CLASSIFICATION_TYPE_EU = 1 , } impl MavOdidClassificationType { pub const DEFAULT : Self = Self :: MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED ; } impl Default for MavOdidClassificationType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidClassEu { MAV_ODID_CLASS_EU_UNDECLARED = 0 , MAV_ODID_CLASS_EU_CLASS_0 = 1 , MAV_ODID_CLASS_EU_CLASS_1 = 2 , MAV_ODID_CLASS_EU_CLASS_2 = 3 , MAV_ODID_CLASS_EU_CLASS_3 = 4 , MAV_ODID_CLASS_EU_CLASS_4 = 5 , MAV_ODID_CLASS_EU_CLASS_5 = 6 , MAV_ODID_CLASS_EU_CLASS_6 = 7 , } impl MavOdidClassEu { pub const DEFAULT : Self = Self :: MAV_ODID_CLASS_EU_UNDECLARED ; } impl Default for MavOdidClassEu { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraMode { CAMERA_MODE_IMAGE = 0 , CAMERA_MODE_VIDEO = 1 , CAMERA_MODE_IMAGE_SURVEY = 2 , } impl CameraMode { pub const DEFAULT : Self = Self :: CAMERA_MODE_IMAGE ; } impl Default for CameraMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MotorTestThrottleType { MOTOR_TEST_THROTTLE_PERCENT = 0 , MOTOR_TEST_THROTTLE_PWM = 1 , MOTOR_TEST_THROTTLE_PILOT = 2 , MOTOR_TEST_COMPASS_CAL = 3 , } impl MotorTestThrottleType { pub const DEFAULT : Self = Self :: MOTOR_TEST_THROTTLE_PERCENT ; } impl Default for MotorTestThrottleType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WifiConfigApResponse { WIFI_CONFIG_AP_RESPONSE_UNDEFINED = 0 , WIFI_CONFIG_AP_RESPONSE_ACCEPTED = 1 , WIFI_CONFIG_AP_RESPONSE_REJECTED = 2 , WIFI_CONFIG_AP_RESPONSE_MODE_ERROR = 3 , WIFI_CONFIG_AP_RESPONSE_SSID_ERROR = 4 , WIFI_CONFIG_AP_RESPONSE_PASSWORD_ERROR = 5 , } impl WifiConfigApResponse { pub const DEFAULT : Self = Self :: WIFI_CONFIG_AP_RESPONSE_UNDEFINED ; } impl Default for WifiConfigApResponse { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SetFocusType { FOCUS_TYPE_STEP = 0 , FOCUS_TYPE_CONTINUOUS = 1 , FOCUS_TYPE_RANGE = 2 , FOCUS_TYPE_METERS = 3 , FOCUS_TYPE_AUTO = 4 , FOCUS_TYPE_AUTO_SINGLE = 5 , FOCUS_TYPE_AUTO_CONTINUOUS = 6 , } impl SetFocusType { pub const DEFAULT : Self = Self :: FOCUS_TYPE_STEP ; } impl Default for SetFocusType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavArmAuthDeniedReason { MAV_ARM_AUTH_DENIED_REASON_GENERIC = 0 , MAV_ARM_AUTH_DENIED_REASON_NONE = 1 , MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT = 2 , MAV_ARM_AUTH_DENIED_REASON_TIMEOUT = 3 , MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE = 4 , MAV_ARM_AUTH_DENIED_REASON_BAD_WEATHER = 5 , } impl MavArmAuthDeniedReason { pub const DEFAULT : Self = Self :: MAV_ARM_AUTH_DENIED_REASON_GENERIC ; } impl Default for MavArmAuthDeniedReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidArmStatus { MAV_ODID_ARM_STATUS_GOOD_TO_ARM = 0 , MAV_ODID_ARM_STATUS_PRE_ARM_FAIL_GENERIC = 1 , } impl MavOdidArmStatus { pub const DEFAULT : Self = Self :: MAV_ODID_ARM_STATUS_GOOD_TO_ARM ; } impl Default for MavOdidArmStatus { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HilSensorUpdatedFlags : u32 { const HIL_SENSOR_UPDATED_NONE = 0 ; const HIL_SENSOR_UPDATED_XACC = 1 ; const HIL_SENSOR_UPDATED_YACC = 2 ; const HIL_SENSOR_UPDATED_ZACC = 4 ; const HIL_SENSOR_UPDATED_XGYRO = 8 ; const HIL_SENSOR_UPDATED_YGYRO = 16 ; const HIL_SENSOR_UPDATED_ZGYRO = 32 ; const HIL_SENSOR_UPDATED_XMAG = 64 ; const HIL_SENSOR_UPDATED_YMAG = 128 ; const HIL_SENSOR_UPDATED_ZMAG = 256 ; const HIL_SENSOR_UPDATED_ABS_PRESSURE = 512 ; const HIL_SENSOR_UPDATED_DIFF_PRESSURE = 1024 ; const HIL_SENSOR_UPDATED_PRESSURE_ALT = 2048 ; const HIL_SENSOR_UPDATED_TEMPERATURE = 4096 ; const HIL_SENSOR_UPDATED_RESET = 2147483648 ; } } impl HilSensorUpdatedFlags { pub const DEFAULT : Self = Self :: HIL_SENSOR_UPDATED_NONE ; } impl Default for HilSensorUpdatedFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EscFailureFlags : u16 { const ESC_FAILURE_NONE = 0 ; const ESC_FAILURE_OVER_CURRENT = 1 ; const ESC_FAILURE_OVER_VOLTAGE = 2 ; const ESC_FAILURE_OVER_TEMPERATURE = 4 ; const ESC_FAILURE_OVER_RPM = 8 ; const ESC_FAILURE_INCONSISTENT_CMD = 16 ; const ESC_FAILURE_MOTOR_STUCK = 32 ; const ESC_FAILURE_GENERIC = 64 ; } } impl EscFailureFlags { pub const DEFAULT : Self = Self :: ESC_FAILURE_NONE ; } impl Default for EscFailureFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryChargeState { MAV_BATTERY_CHARGE_STATE_UNDEFINED = 0 , MAV_BATTERY_CHARGE_STATE_OK = 1 , MAV_BATTERY_CHARGE_STATE_LOW = 2 , MAV_BATTERY_CHARGE_STATE_CRITICAL = 3 , MAV_BATTERY_CHARGE_STATE_EMERGENCY = 4 , MAV_BATTERY_CHARGE_STATE_FAILED = 5 , MAV_BATTERY_CHARGE_STATE_UNHEALTHY = 6 , MAV_BATTERY_CHARGE_STATE_CHARGING = 7 , } impl MavBatteryChargeState { pub const DEFAULT : Self = Self :: MAV_BATTERY_CHARGE_STATE_UNDEFINED ; } impl Default for MavBatteryChargeState { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HlFailureFlag : u16 { const HL_FAILURE_FLAG_GPS = 1 ; const HL_FAILURE_FLAG_DIFFERENTIAL_PRESSURE = 2 ; const HL_FAILURE_FLAG_ABSOLUTE_PRESSURE = 4 ; const HL_FAILURE_FLAG_3D_ACCEL = 8 ; const HL_FAILURE_FLAG_3D_GYRO = 16 ; const HL_FAILURE_FLAG_3D_MAG = 32 ; const HL_FAILURE_FLAG_TERRAIN = 64 ; const HL_FAILURE_FLAG_BATTERY = 128 ; const HL_FAILURE_FLAG_RC_RECEIVER = 256 ; const HL_FAILURE_FLAG_OFFBOARD_LINK = 512 ; const HL_FAILURE_FLAG_ENGINE = 1024 ; const HL_FAILURE_FLAG_GEOFENCE = 2048 ; const HL_FAILURE_FLAG_ESTIMATOR = 4096 ; const HL_FAILURE_FLAG_MISSION = 8192 ; } } impl HlFailureFlag { pub const DEFAULT : Self = Self :: HL_FAILURE_FLAG_GPS ; } impl Default for HlFailureFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidTimeAcc { MAV_ODID_TIME_ACC_UNKNOWN = 0 , MAV_ODID_TIME_ACC_0_1_SECOND = 1 , MAV_ODID_TIME_ACC_0_2_SECOND = 2 , MAV_ODID_TIME_ACC_0_3_SECOND = 3 , MAV_ODID_TIME_ACC_0_4_SECOND = 4 , MAV_ODID_TIME_ACC_0_5_SECOND = 5 , MAV_ODID_TIME_ACC_0_6_SECOND = 6 , MAV_ODID_TIME_ACC_0_7_SECOND = 7 , MAV_ODID_TIME_ACC_0_8_SECOND = 8 , MAV_ODID_TIME_ACC_0_9_SECOND = 9 , MAV_ODID_TIME_ACC_1_0_SECOND = 10 , MAV_ODID_TIME_ACC_1_1_SECOND = 11 , MAV_ODID_TIME_ACC_1_2_SECOND = 12 , MAV_ODID_TIME_ACC_1_3_SECOND = 13 , MAV_ODID_TIME_ACC_1_4_SECOND = 14 , MAV_ODID_TIME_ACC_1_5_SECOND = 15 , } impl MavOdidTimeAcc { pub const DEFAULT : Self = Self :: MAV_ODID_TIME_ACC_UNKNOWN ; } impl Default for MavOdidTimeAcc { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavProtocolCapability : u64 { const MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT = 1 ; const MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT = 2 ; const MAV_PROTOCOL_CAPABILITY_MISSION_INT = 4 ; const MAV_PROTOCOL_CAPABILITY_COMMAND_INT = 8 ; const MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE = 16 ; const MAV_PROTOCOL_CAPABILITY_FTP = 32 ; const MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET = 64 ; const MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED = 128 ; const MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT = 256 ; const MAV_PROTOCOL_CAPABILITY_TERRAIN = 512 ; const MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET = 1024 ; const MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION = 2048 ; const MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION = 4096 ; const MAV_PROTOCOL_CAPABILITY_MAVLINK2 = 8192 ; const MAV_PROTOCOL_CAPABILITY_MISSION_FENCE = 16384 ; const MAV_PROTOCOL_CAPABILITY_MISSION_RALLY = 32768 ; const MAV_PROTOCOL_CAPABILITY_RESERVED2 = 65536 ; const MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST = 131072 ; } } impl MavProtocolCapability { pub const DEFAULT : Self = Self :: MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT ; } impl Default for MavProtocolCapability { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDataStream { MAV_DATA_STREAM_ALL = 0 , MAV_DATA_STREAM_RAW_SENSORS = 1 , MAV_DATA_STREAM_EXTENDED_STATUS = 2 , MAV_DATA_STREAM_RC_CHANNELS = 3 , MAV_DATA_STREAM_RAW_CONTROLLER = 4 , MAV_DATA_STREAM_POSITION = 6 , MAV_DATA_STREAM_EXTRA1 = 10 , MAV_DATA_STREAM_EXTRA2 = 11 , MAV_DATA_STREAM_EXTRA3 = 12 , } impl MavDataStream { pub const DEFAULT : Self = Self :: MAV_DATA_STREAM_ALL ; } impl Default for MavDataStream { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RcType { RC_TYPE_SPEKTRUM_DSM2 = 0 , RC_TYPE_SPEKTRUM_DSMX = 1 , } impl RcType { pub const DEFAULT : Self = Self :: RC_TYPE_SPEKTRUM_DSM2 ; } impl Default for RcType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingTargetData { CAMERA_TRACKING_TARGET_DATA_NONE = 0 , CAMERA_TRACKING_TARGET_DATA_EMBEDDED = 1 , CAMERA_TRACKING_TARGET_DATA_RENDERED = 2 , CAMERA_TRACKING_TARGET_DATA_IN_STATUS = 4 , } impl CameraTrackingTargetData { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_TARGET_DATA_NONE ; } impl Default for CameraTrackingTargetData { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidStatus { MAV_ODID_STATUS_UNDECLARED = 0 , MAV_ODID_STATUS_GROUND = 1 , MAV_ODID_STATUS_AIRBORNE = 2 , MAV_ODID_STATUS_EMERGENCY = 3 , MAV_ODID_STATUS_REMOTE_ID_SYSTEM_FAILURE = 4 , } impl MavOdidStatus { pub const DEFAULT : Self = Self :: MAV_ODID_STATUS_UNDECLARED ; } impl Default for MavOdidStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMode { MAV_MODE_PREFLIGHT = 0 , MAV_MODE_STABILIZE_DISARMED = 80 , MAV_MODE_STABILIZE_ARMED = 208 , MAV_MODE_MANUAL_DISARMED = 64 , MAV_MODE_MANUAL_ARMED = 192 , MAV_MODE_GUIDED_DISARMED = 88 , MAV_MODE_GUIDED_ARMED = 216 , MAV_MODE_AUTO_DISARMED = 92 , MAV_MODE_AUTO_ARMED = 220 , MAV_MODE_TEST_DISARMED = 66 , MAV_MODE_TEST_ARMED = 194 , } impl MavMode { pub const DEFAULT : Self = Self :: MAV_MODE_PREFLIGHT ; } impl Default for MavMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFrame { MAV_FRAME_GLOBAL = 0 , MAV_FRAME_LOCAL_NED = 1 , MAV_FRAME_MISSION = 2 , MAV_FRAME_GLOBAL_RELATIVE_ALT = 3 , MAV_FRAME_LOCAL_ENU = 4 , MAV_FRAME_GLOBAL_INT = 5 , MAV_FRAME_GLOBAL_RELATIVE_ALT_INT = 6 , MAV_FRAME_LOCAL_OFFSET_NED = 7 , MAV_FRAME_BODY_NED = 8 , MAV_FRAME_BODY_OFFSET_NED = 9 , MAV_FRAME_GLOBAL_TERRAIN_ALT = 10 , MAV_FRAME_GLOBAL_TERRAIN_ALT_INT = 11 , MAV_FRAME_BODY_FRD = 12 , MAV_FRAME_RESERVED_13 = 13 , MAV_FRAME_RESERVED_14 = 14 , MAV_FRAME_RESERVED_15 = 15 , MAV_FRAME_RESERVED_16 = 16 , MAV_FRAME_RESERVED_17 = 17 , MAV_FRAME_RESERVED_18 = 18 , MAV_FRAME_RESERVED_19 = 19 , MAV_FRAME_LOCAL_FRD = 20 , MAV_FRAME_LOCAL_FLU = 21 , } impl MavFrame { pub const DEFAULT : Self = Self :: MAV_FRAME_GLOBAL ; } impl Default for MavFrame { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMissionType { MAV_MISSION_TYPE_MISSION = 0 , MAV_MISSION_TYPE_FENCE = 1 , MAV_MISSION_TYPE_RALLY = 2 , MAV_MISSION_TYPE_ALL = 255 , } impl MavMissionType { pub const DEFAULT : Self = Self :: MAV_MISSION_TYPE_MISSION ; } impl Default for MavMissionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ParamAck { PARAM_ACK_ACCEPTED = 0 , PARAM_ACK_VALUE_UNSUPPORTED = 1 , PARAM_ACK_FAILED = 2 , PARAM_ACK_IN_PROGRESS = 3 , } impl ParamAck { pub const DEFAULT : Self = Self :: PARAM_ACK_ACCEPTED ; } impl Default for ParamAck { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidOperatorIdType { MAV_ODID_OPERATOR_ID_TYPE_CAA = 0 , } impl MavOdidOperatorIdType { pub const DEFAULT : Self = Self :: MAV_ODID_OPERATOR_ID_TYPE_CAA ; } impl Default for MavOdidOperatorIdType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WifiConfigApMode { WIFI_CONFIG_AP_MODE_UNDEFINED = 0 , WIFI_CONFIG_AP_MODE_AP = 1 , WIFI_CONFIG_AP_MODE_STATION = 2 , WIFI_CONFIG_AP_MODE_DISABLED = 3 , } impl WifiConfigApMode { pub const DEFAULT : Self = Self :: WIFI_CONFIG_AP_MODE_UNDEFINED ; } impl Default for WifiConfigApMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CanFilterOp { CAN_FILTER_REPLACE = 0 , CAN_FILTER_ADD = 1 , CAN_FILTER_REMOVE = 2 , } impl CanFilterOp { pub const DEFAULT : Self = Self :: CAN_FILTER_REPLACE ; } impl Default for CanFilterOp { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSensorOrientation { MAV_SENSOR_ROTATION_NONE = 0 , MAV_SENSOR_ROTATION_YAW_45 = 1 , MAV_SENSOR_ROTATION_YAW_90 = 2 , MAV_SENSOR_ROTATION_YAW_135 = 3 , MAV_SENSOR_ROTATION_YAW_180 = 4 , MAV_SENSOR_ROTATION_YAW_225 = 5 , MAV_SENSOR_ROTATION_YAW_270 = 6 , MAV_SENSOR_ROTATION_YAW_315 = 7 , MAV_SENSOR_ROTATION_ROLL_180 = 8 , MAV_SENSOR_ROTATION_ROLL_180_YAW_45 = 9 , MAV_SENSOR_ROTATION_ROLL_180_YAW_90 = 10 , MAV_SENSOR_ROTATION_ROLL_180_YAW_135 = 11 , MAV_SENSOR_ROTATION_PITCH_180 = 12 , MAV_SENSOR_ROTATION_ROLL_180_YAW_225 = 13 , MAV_SENSOR_ROTATION_ROLL_180_YAW_270 = 14 , MAV_SENSOR_ROTATION_ROLL_180_YAW_315 = 15 , MAV_SENSOR_ROTATION_ROLL_90 = 16 , MAV_SENSOR_ROTATION_ROLL_90_YAW_45 = 17 , MAV_SENSOR_ROTATION_ROLL_90_YAW_90 = 18 , MAV_SENSOR_ROTATION_ROLL_90_YAW_135 = 19 , MAV_SENSOR_ROTATION_ROLL_270 = 20 , MAV_SENSOR_ROTATION_ROLL_270_YAW_45 = 21 , MAV_SENSOR_ROTATION_ROLL_270_YAW_90 = 22 , MAV_SENSOR_ROTATION_ROLL_270_YAW_135 = 23 , MAV_SENSOR_ROTATION_PITCH_90 = 24 , MAV_SENSOR_ROTATION_PITCH_270 = 25 , MAV_SENSOR_ROTATION_PITCH_180_YAW_90 = 26 , MAV_SENSOR_ROTATION_PITCH_180_YAW_270 = 27 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_90 = 28 , MAV_SENSOR_ROTATION_ROLL_180_PITCH_90 = 29 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_90 = 30 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_180 = 31 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_180 = 32 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_270 = 33 , MAV_SENSOR_ROTATION_ROLL_180_PITCH_270 = 34 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_270 = 35 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_180_YAW_90 = 36 , MAV_SENSOR_ROTATION_ROLL_90_YAW_270 = 37 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_68_YAW_293 = 38 , MAV_SENSOR_ROTATION_PITCH_315 = 39 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_315 = 40 , MAV_SENSOR_ROTATION_CUSTOM = 100 , } impl MavSensorOrientation { pub const DEFAULT : Self = Self :: MAV_SENSOR_ROTATION_NONE ; } impl Default for MavSensorOrientation { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryType { MAV_BATTERY_TYPE_UNKNOWN = 0 , MAV_BATTERY_TYPE_LIPO = 1 , MAV_BATTERY_TYPE_LIFE = 2 , MAV_BATTERY_TYPE_LION = 3 , MAV_BATTERY_TYPE_NIMH = 4 , } impl MavBatteryType { pub const DEFAULT : Self = Self :: MAV_BATTERY_TYPE_UNKNOWN ; } impl Default for MavBatteryType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidCategoryEu { MAV_ODID_CATEGORY_EU_UNDECLARED = 0 , MAV_ODID_CATEGORY_EU_OPEN = 1 , MAV_ODID_CATEGORY_EU_SPECIFIC = 2 , MAV_ODID_CATEGORY_EU_CERTIFIED = 3 , } impl MavOdidCategoryEu { pub const DEFAULT : Self = Self :: MAV_ODID_CATEGORY_EU_UNDECLARED ; } impl Default for MavOdidCategoryEu { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AisType { AIS_TYPE_UNKNOWN = 0 , AIS_TYPE_RESERVED_1 = 1 , AIS_TYPE_RESERVED_2 = 2 , AIS_TYPE_RESERVED_3 = 3 , AIS_TYPE_RESERVED_4 = 4 , AIS_TYPE_RESERVED_5 = 5 , AIS_TYPE_RESERVED_6 = 6 , AIS_TYPE_RESERVED_7 = 7 , AIS_TYPE_RESERVED_8 = 8 , AIS_TYPE_RESERVED_9 = 9 , AIS_TYPE_RESERVED_10 = 10 , AIS_TYPE_RESERVED_11 = 11 , AIS_TYPE_RESERVED_12 = 12 , AIS_TYPE_RESERVED_13 = 13 , AIS_TYPE_RESERVED_14 = 14 , AIS_TYPE_RESERVED_15 = 15 , AIS_TYPE_RESERVED_16 = 16 , AIS_TYPE_RESERVED_17 = 17 , AIS_TYPE_RESERVED_18 = 18 , AIS_TYPE_RESERVED_19 = 19 , AIS_TYPE_WIG = 20 , AIS_TYPE_WIG_HAZARDOUS_A = 21 , AIS_TYPE_WIG_HAZARDOUS_B = 22 , AIS_TYPE_WIG_HAZARDOUS_C = 23 , AIS_TYPE_WIG_HAZARDOUS_D = 24 , AIS_TYPE_WIG_RESERVED_1 = 25 , AIS_TYPE_WIG_RESERVED_2 = 26 , AIS_TYPE_WIG_RESERVED_3 = 27 , AIS_TYPE_WIG_RESERVED_4 = 28 , AIS_TYPE_WIG_RESERVED_5 = 29 , AIS_TYPE_FISHING = 30 , AIS_TYPE_TOWING = 31 , AIS_TYPE_TOWING_LARGE = 32 , AIS_TYPE_DREDGING = 33 , AIS_TYPE_DIVING = 34 , AIS_TYPE_MILITARY = 35 , AIS_TYPE_SAILING = 36 , AIS_TYPE_PLEASURE = 37 , AIS_TYPE_RESERVED_20 = 38 , AIS_TYPE_RESERVED_21 = 39 , AIS_TYPE_HSC = 40 , AIS_TYPE_HSC_HAZARDOUS_A = 41 , AIS_TYPE_HSC_HAZARDOUS_B = 42 , AIS_TYPE_HSC_HAZARDOUS_C = 43 , AIS_TYPE_HSC_HAZARDOUS_D = 44 , AIS_TYPE_HSC_RESERVED_1 = 45 , AIS_TYPE_HSC_RESERVED_2 = 46 , AIS_TYPE_HSC_RESERVED_3 = 47 , AIS_TYPE_HSC_RESERVED_4 = 48 , AIS_TYPE_HSC_UNKNOWN = 49 , AIS_TYPE_PILOT = 50 , AIS_TYPE_SAR = 51 , AIS_TYPE_TUG = 52 , AIS_TYPE_PORT_TENDER = 53 , AIS_TYPE_ANTI_POLLUTION = 54 , AIS_TYPE_LAW_ENFORCEMENT = 55 , AIS_TYPE_SPARE_LOCAL_1 = 56 , AIS_TYPE_SPARE_LOCAL_2 = 57 , AIS_TYPE_MEDICAL_TRANSPORT = 58 , AIS_TYPE_NONECOMBATANT = 59 , AIS_TYPE_PASSENGER = 60 , AIS_TYPE_PASSENGER_HAZARDOUS_A = 61 , AIS_TYPE_PASSENGER_HAZARDOUS_B = 62 , AIS_TYPE_PASSENGER_HAZARDOUS_C = 63 , AIS_TYPE_PASSENGER_HAZARDOUS_D = 64 , AIS_TYPE_PASSENGER_RESERVED_1 = 65 , AIS_TYPE_PASSENGER_RESERVED_2 = 66 , AIS_TYPE_PASSENGER_RESERVED_3 = 67 , AIS_TYPE_PASSENGER_RESERVED_4 = 68 , AIS_TYPE_PASSENGER_UNKNOWN = 69 , AIS_TYPE_CARGO = 70 , AIS_TYPE_CARGO_HAZARDOUS_A = 71 , AIS_TYPE_CARGO_HAZARDOUS_B = 72 , AIS_TYPE_CARGO_HAZARDOUS_C = 73 , AIS_TYPE_CARGO_HAZARDOUS_D = 74 , AIS_TYPE_CARGO_RESERVED_1 = 75 , AIS_TYPE_CARGO_RESERVED_2 = 76 , AIS_TYPE_CARGO_RESERVED_3 = 77 , AIS_TYPE_CARGO_RESERVED_4 = 78 , AIS_TYPE_CARGO_UNKNOWN = 79 , AIS_TYPE_TANKER = 80 , AIS_TYPE_TANKER_HAZARDOUS_A = 81 , AIS_TYPE_TANKER_HAZARDOUS_B = 82 , AIS_TYPE_TANKER_HAZARDOUS_C = 83 , AIS_TYPE_TANKER_HAZARDOUS_D = 84 , AIS_TYPE_TANKER_RESERVED_1 = 85 , AIS_TYPE_TANKER_RESERVED_2 = 86 , AIS_TYPE_TANKER_RESERVED_3 = 87 , AIS_TYPE_TANKER_RESERVED_4 = 88 , AIS_TYPE_TANKER_UNKNOWN = 89 , AIS_TYPE_OTHER = 90 , AIS_TYPE_OTHER_HAZARDOUS_A = 91 , AIS_TYPE_OTHER_HAZARDOUS_B = 92 , AIS_TYPE_OTHER_HAZARDOUS_C = 93 , AIS_TYPE_OTHER_HAZARDOUS_D = 94 , AIS_TYPE_OTHER_RESERVED_1 = 95 , AIS_TYPE_OTHER_RESERVED_2 = 96 , AIS_TYPE_OTHER_RESERVED_3 = 97 , AIS_TYPE_OTHER_RESERVED_4 = 98 , AIS_TYPE_OTHER_UNKNOWN = 99 , } impl AisType { pub const DEFAULT : Self = Self :: AIS_TYPE_UNKNOWN ; } impl Default for AisType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ParachuteAction { PARACHUTE_DISABLE = 0 , PARACHUTE_ENABLE = 1 , PARACHUTE_RELEASE = 2 , } impl ParachuteAction { pub const DEFAULT : Self = Self :: PARACHUTE_DISABLE ; } impl Default for ParachuteAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularNetworkRadioType { CELLULAR_NETWORK_RADIO_TYPE_NONE = 0 , CELLULAR_NETWORK_RADIO_TYPE_GSM = 1 , CELLULAR_NETWORK_RADIO_TYPE_CDMA = 2 , CELLULAR_NETWORK_RADIO_TYPE_WCDMA = 3 , CELLULAR_NETWORK_RADIO_TYPE_LTE = 4 , } impl CellularNetworkRadioType { pub const DEFAULT : Self = Self :: CELLULAR_NETWORK_RADIO_TYPE_NONE ; } impl Default for CellularNetworkRadioType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AdsbAltitudeType { ADSB_ALTITUDE_TYPE_PRESSURE_QNH = 0 , ADSB_ALTITUDE_TYPE_GEOMETRIC = 1 , } impl AdsbAltitudeType { pub const DEFAULT : Self = Self :: ADSB_ALTITUDE_TYPE_PRESSURE_QNH ; } impl Default for AdsbAltitudeType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavTunnelPayloadType { MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN = 0 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED0 = 200 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED1 = 201 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED2 = 202 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED3 = 203 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED4 = 204 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED5 = 205 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED6 = 206 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED7 = 207 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED8 = 208 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED9 = 209 , } impl MavTunnelPayloadType { pub const DEFAULT : Self = Self :: MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN ; } impl Default for MavTunnelPayloadType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VideoStreamType { VIDEO_STREAM_TYPE_RTSP = 0 , VIDEO_STREAM_TYPE_RTPUDP = 1 , VIDEO_STREAM_TYPE_TCP_MPEG = 2 , VIDEO_STREAM_TYPE_MPEG_TS_H264 = 3 , } impl VideoStreamType { pub const DEFAULT : Self = Self :: VIDEO_STREAM_TYPE_RTSP ; } impl Default for VideoStreamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MagCalStatus { MAG_CAL_NOT_STARTED = 0 , MAG_CAL_WAITING_TO_START = 1 , MAG_CAL_RUNNING_STEP_ONE = 2 , MAG_CAL_RUNNING_STEP_TWO = 3 , MAG_CAL_SUCCESS = 4 , MAG_CAL_FAILED = 5 , MAG_CAL_BAD_ORIENTATION = 6 , MAG_CAL_BAD_RADIUS = 7 , } impl MagCalStatus { pub const DEFAULT : Self = Self :: MAG_CAL_NOT_STARTED ; } impl Default for MagCalStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PrecisionLandMode { PRECISION_LAND_MODE_DISABLED = 0 , PRECISION_LAND_MODE_OPPORTUNISTIC = 1 , PRECISION_LAND_MODE_REQUIRED = 2 , } impl PrecisionLandMode { pub const DEFAULT : Self = Self :: PRECISION_LAND_MODE_DISABLED ; } impl Default for PrecisionLandMode { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PositionTargetTypemask : u16 { const POSITION_TARGET_TYPEMASK_X_IGNORE = 1 ; const POSITION_TARGET_TYPEMASK_Y_IGNORE = 2 ; const POSITION_TARGET_TYPEMASK_Z_IGNORE = 4 ; const POSITION_TARGET_TYPEMASK_VX_IGNORE = 8 ; const POSITION_TARGET_TYPEMASK_VY_IGNORE = 16 ; const POSITION_TARGET_TYPEMASK_VZ_IGNORE = 32 ; const POSITION_TARGET_TYPEMASK_AX_IGNORE = 64 ; const POSITION_TARGET_TYPEMASK_AY_IGNORE = 128 ; const POSITION_TARGET_TYPEMASK_AZ_IGNORE = 256 ; const POSITION_TARGET_TYPEMASK_FORCE_SET = 512 ; const POSITION_TARGET_TYPEMASK_YAW_IGNORE = 1024 ; const POSITION_TARGET_TYPEMASK_YAW_RATE_IGNORE = 2048 ; } } impl PositionTargetTypemask { pub const DEFAULT : Self = Self :: POSITION_TARGET_TYPEMASK_X_IGNORE ; } impl Default for PositionTargetTypemask { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDistanceSensor { MAV_DISTANCE_SENSOR_LASER = 0 , MAV_DISTANCE_SENSOR_ULTRASOUND = 1 , MAV_DISTANCE_SENSOR_INFRARED = 2 , MAV_DISTANCE_SENSOR_RADAR = 3 , MAV_DISTANCE_SENSOR_UNKNOWN = 4 , } impl MavDistanceSensor { pub const DEFAULT : Self = Self :: MAV_DISTANCE_SENSOR_LASER ; } impl Default for MavDistanceSensor { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageStatus { STORAGE_STATUS_EMPTY = 0 , STORAGE_STATUS_UNFORMATTED = 1 , STORAGE_STATUS_READY = 2 , STORAGE_STATUS_NOT_SUPPORTED = 3 , } impl StorageStatus { pub const DEFAULT : Self = Self :: STORAGE_STATUS_EMPTY ; } impl Default for StorageStatus { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GpsInputIgnoreFlags : u16 { const GPS_INPUT_IGNORE_FLAG_ALT = 1 ; const GPS_INPUT_IGNORE_FLAG_HDOP = 2 ; const GPS_INPUT_IGNORE_FLAG_VDOP = 4 ; const GPS_INPUT_IGNORE_FLAG_VEL_HORIZ = 8 ; const GPS_INPUT_IGNORE_FLAG_VEL_VERT = 16 ; const GPS_INPUT_IGNORE_FLAG_SPEED_ACCURACY = 32 ; const GPS_INPUT_IGNORE_FLAG_HORIZONTAL_ACCURACY = 64 ; const GPS_INPUT_IGNORE_FLAG_VERTICAL_ACCURACY = 128 ; } } impl GpsInputIgnoreFlags { pub const DEFAULT : Self = Self :: GPS_INPUT_IGNORE_FLAG_ALT ; } impl Default for GpsInputIgnoreFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AutotuneAxis { AUTOTUNE_AXIS_DEFAULT = 0 , AUTOTUNE_AXIS_ROLL = 1 , AUTOTUNE_AXIS_PITCH = 2 , AUTOTUNE_AXIS_YAW = 4 , } impl AutotuneAxis { pub const DEFAULT : Self = Self :: AUTOTUNE_AXIS_DEFAULT ; } impl Default for AutotuneAxis { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFtpOpcode { MAV_FTP_OPCODE_NONE = 0 , MAV_FTP_OPCODE_TERMINATESESSION = 1 , MAV_FTP_OPCODE_RESETSESSION = 2 , MAV_FTP_OPCODE_LISTDIRECTORY = 3 , MAV_FTP_OPCODE_OPENFILERO = 4 , MAV_FTP_OPCODE_READFILE = 5 , MAV_FTP_OPCODE_CREATEFILE = 6 , MAV_FTP_OPCODE_WRITEFILE = 7 , MAV_FTP_OPCODE_REMOVEFILE = 8 , MAV_FTP_OPCODE_CREATEDIRECTORY = 9 , MAV_FTP_OPCODE_REMOVEDIRECTORY = 10 , MAV_FTP_OPCODE_OPENFILEWO = 11 , MAV_FTP_OPCODE_TRUNCATEFILE = 12 , MAV_FTP_OPCODE_RENAME = 13 , MAV_FTP_OPCODE_CALCFILECRC = 14 , MAV_FTP_OPCODE_BURSTREADFILE = 15 , MAV_FTP_OPCODE_ACK = 128 , MAV_FTP_OPCODE_NAK = 129 , } impl MavFtpOpcode { pub const DEFAULT : Self = Self :: MAV_FTP_OPCODE_NONE ; } impl Default for MavFtpOpcode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum EscConnectionType { ESC_CONNECTION_TYPE_PPM = 0 , ESC_CONNECTION_TYPE_SERIAL = 1 , ESC_CONNECTION_TYPE_ONESHOT = 2 , ESC_CONNECTION_TYPE_I2C = 3 , ESC_CONNECTION_TYPE_CAN = 4 , ESC_CONNECTION_TYPE_DSHOT = 5 , } impl EscConnectionType { pub const DEFAULT : Self = Self :: ESC_CONNECTION_TYPE_PPM ; } impl Default for EscConnectionType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavPowerStatus : u16 { const MAV_POWER_STATUS_BRICK_VALID = 1 ; const MAV_POWER_STATUS_SERVO_VALID = 2 ; const MAV_POWER_STATUS_USB_CONNECTED = 4 ; const MAV_POWER_STATUS_PERIPH_OVERCURRENT = 8 ; const MAV_POWER_STATUS_PERIPH_HIPOWER_OVERCURRENT = 16 ; const MAV_POWER_STATUS_CHANGED = 32 ; } } impl MavPowerStatus { pub const DEFAULT : Self = Self :: MAV_POWER_STATUS_BRICK_VALID ; } impl Default for MavPowerStatus { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceErrorFlags : u32 { const GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT = 1 ; const GIMBAL_DEVICE_ERROR_FLAGS_AT_PITCH_LIMIT = 2 ; const GIMBAL_DEVICE_ERROR_FLAGS_AT_YAW_LIMIT = 4 ; const GIMBAL_DEVICE_ERROR_FLAGS_ENCODER_ERROR = 8 ; const GIMBAL_DEVICE_ERROR_FLAGS_POWER_ERROR = 16 ; const GIMBAL_DEVICE_ERROR_FLAGS_MOTOR_ERROR = 32 ; const GIMBAL_DEVICE_ERROR_FLAGS_SOFTWARE_ERROR = 64 ; const GIMBAL_DEVICE_ERROR_FLAGS_COMMS_ERROR = 128 ; const GIMBAL_DEVICE_ERROR_FLAGS_CALIBRATION_RUNNING = 256 ; const GIMBAL_DEVICE_ERROR_FLAGS_NO_MANAGER = 512 ; } } impl GimbalDeviceErrorFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT ; } impl Default for GimbalDeviceErrorFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmd { MAV_CMD_NAV_WAYPOINT = 16 , MAV_CMD_NAV_LOITER_UNLIM = 17 , MAV_CMD_NAV_LOITER_TURNS = 18 , MAV_CMD_NAV_LOITER_TIME = 19 , MAV_CMD_NAV_RETURN_TO_LAUNCH = 20 , MAV_CMD_NAV_LAND = 21 , MAV_CMD_NAV_TAKEOFF = 22 , MAV_CMD_NAV_LAND_LOCAL = 23 , MAV_CMD_NAV_TAKEOFF_LOCAL = 24 , MAV_CMD_NAV_FOLLOW = 25 , MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT = 30 , MAV_CMD_NAV_LOITER_TO_ALT = 31 , MAV_CMD_DO_FOLLOW = 32 , MAV_CMD_DO_FOLLOW_REPOSITION = 33 , MAV_CMD_DO_ORBIT = 34 , MAV_CMD_NAV_ROI = 80 , MAV_CMD_NAV_PATHPLANNING = 81 , MAV_CMD_NAV_SPLINE_WAYPOINT = 82 , MAV_CMD_NAV_VTOL_TAKEOFF = 84 , MAV_CMD_NAV_VTOL_LAND = 85 , MAV_CMD_NAV_GUIDED_ENABLE = 92 , MAV_CMD_NAV_DELAY = 93 , MAV_CMD_NAV_PAYLOAD_PLACE = 94 , MAV_CMD_NAV_LAST = 95 , MAV_CMD_CONDITION_DELAY = 112 , MAV_CMD_CONDITION_CHANGE_ALT = 113 , MAV_CMD_CONDITION_DISTANCE = 114 , MAV_CMD_CONDITION_YAW = 115 , MAV_CMD_CONDITION_LAST = 159 , MAV_CMD_DO_SET_MODE = 176 , MAV_CMD_DO_JUMP = 177 , MAV_CMD_DO_CHANGE_SPEED = 178 , MAV_CMD_DO_SET_HOME = 179 , MAV_CMD_DO_SET_PARAMETER = 180 , MAV_CMD_DO_SET_RELAY = 181 , MAV_CMD_DO_REPEAT_RELAY = 182 , MAV_CMD_DO_SET_SERVO = 183 , MAV_CMD_DO_REPEAT_SERVO = 184 , MAV_CMD_DO_FLIGHTTERMINATION = 185 , MAV_CMD_DO_CHANGE_ALTITUDE = 186 , MAV_CMD_DO_SET_ACTUATOR = 187 , MAV_CMD_DO_LAND_START = 189 , MAV_CMD_DO_RALLY_LAND = 190 , MAV_CMD_DO_GO_AROUND = 191 , MAV_CMD_DO_REPOSITION = 192 , MAV_CMD_DO_PAUSE_CONTINUE = 193 , MAV_CMD_DO_SET_REVERSE = 194 , MAV_CMD_DO_SET_ROI_LOCATION = 195 , MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET = 196 , MAV_CMD_DO_SET_ROI_NONE = 197 , MAV_CMD_DO_SET_ROI_SYSID = 198 , MAV_CMD_DO_CONTROL_VIDEO = 200 , MAV_CMD_DO_SET_ROI = 201 , MAV_CMD_DO_DIGICAM_CONFIGURE = 202 , MAV_CMD_DO_DIGICAM_CONTROL = 203 , MAV_CMD_DO_MOUNT_CONFIGURE = 204 , MAV_CMD_DO_MOUNT_CONTROL = 205 , MAV_CMD_DO_SET_CAM_TRIGG_DIST = 206 , MAV_CMD_DO_FENCE_ENABLE = 207 , MAV_CMD_DO_PARACHUTE = 208 , MAV_CMD_DO_MOTOR_TEST = 209 , MAV_CMD_DO_INVERTED_FLIGHT = 210 , MAV_CMD_DO_GRIPPER = 211 , MAV_CMD_DO_AUTOTUNE_ENABLE = 212 , MAV_CMD_NAV_SET_YAW_SPEED = 213 , MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL = 214 , MAV_CMD_DO_MOUNT_CONTROL_QUAT = 220 , MAV_CMD_DO_GUIDED_MASTER = 221 , MAV_CMD_DO_GUIDED_LIMITS = 222 , MAV_CMD_DO_ENGINE_CONTROL = 223 , MAV_CMD_DO_SET_MISSION_CURRENT = 224 , MAV_CMD_DO_LAST = 240 , MAV_CMD_PREFLIGHT_CALIBRATION = 241 , MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS = 242 , MAV_CMD_PREFLIGHT_UAVCAN = 243 , MAV_CMD_PREFLIGHT_STORAGE = 245 , MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN = 246 , MAV_CMD_OVERRIDE_GOTO = 252 , MAV_CMD_OBLIQUE_SURVEY = 260 , MAV_CMD_MISSION_START = 300 , MAV_CMD_ACTUATOR_TEST = 310 , MAV_CMD_CONFIGURE_ACTUATOR = 311 , MAV_CMD_COMPONENT_ARM_DISARM = 400 , MAV_CMD_RUN_PREARM_CHECKS = 401 , MAV_CMD_ILLUMINATOR_ON_OFF = 405 , MAV_CMD_GET_HOME_POSITION = 410 , MAV_CMD_INJECT_FAILURE = 420 , MAV_CMD_START_RX_PAIR = 500 , MAV_CMD_GET_MESSAGE_INTERVAL = 510 , MAV_CMD_SET_MESSAGE_INTERVAL = 511 , MAV_CMD_REQUEST_MESSAGE = 512 , MAV_CMD_REQUEST_PROTOCOL_VERSION = 519 , MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES = 520 , MAV_CMD_REQUEST_CAMERA_INFORMATION = 521 , MAV_CMD_REQUEST_CAMERA_SETTINGS = 522 , MAV_CMD_REQUEST_STORAGE_INFORMATION = 525 , MAV_CMD_STORAGE_FORMAT = 526 , MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS = 527 , MAV_CMD_REQUEST_FLIGHT_INFORMATION = 528 , MAV_CMD_RESET_CAMERA_SETTINGS = 529 , MAV_CMD_SET_CAMERA_MODE = 530 , MAV_CMD_SET_CAMERA_ZOOM = 531 , MAV_CMD_SET_CAMERA_FOCUS = 532 , MAV_CMD_SET_STORAGE_USAGE = 533 , MAV_CMD_JUMP_TAG = 600 , MAV_CMD_DO_JUMP_TAG = 601 , MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW = 1000 , MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE = 1001 , MAV_CMD_IMAGE_START_CAPTURE = 2000 , MAV_CMD_IMAGE_STOP_CAPTURE = 2001 , MAV_CMD_REQUEST_CAMERA_IMAGE_CAPTURE = 2002 , MAV_CMD_DO_TRIGGER_CONTROL = 2003 , MAV_CMD_CAMERA_TRACK_POINT = 2004 , MAV_CMD_CAMERA_TRACK_RECTANGLE = 2005 , MAV_CMD_CAMERA_STOP_TRACKING = 2010 , MAV_CMD_VIDEO_START_CAPTURE = 2500 , MAV_CMD_VIDEO_STOP_CAPTURE = 2501 , MAV_CMD_VIDEO_START_STREAMING = 2502 , MAV_CMD_VIDEO_STOP_STREAMING = 2503 , MAV_CMD_REQUEST_VIDEO_STREAM_INFORMATION = 2504 , MAV_CMD_REQUEST_VIDEO_STREAM_STATUS = 2505 , MAV_CMD_LOGGING_START = 2510 , MAV_CMD_LOGGING_STOP = 2511 , MAV_CMD_AIRFRAME_CONFIGURATION = 2520 , MAV_CMD_CONTROL_HIGH_LATENCY = 2600 , MAV_CMD_PANORAMA_CREATE = 2800 , MAV_CMD_DO_VTOL_TRANSITION = 3000 , MAV_CMD_ARM_AUTHORIZATION_REQUEST = 3001 , MAV_CMD_SET_GUIDED_SUBMODE_STANDARD = 4000 , MAV_CMD_SET_GUIDED_SUBMODE_CIRCLE = 4001 , MAV_CMD_CONDITION_GATE = 4501 , MAV_CMD_NAV_FENCE_RETURN_POINT = 5000 , MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION = 5001 , MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION = 5002 , MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION = 5003 , MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION = 5004 , MAV_CMD_NAV_RALLY_POINT = 5100 , MAV_CMD_UAVCAN_GET_NODE_INFO = 5200 , MAV_CMD_DO_ADSB_OUT_IDENT = 10001 , MAV_CMD_PAYLOAD_PREPARE_DEPLOY = 30001 , MAV_CMD_PAYLOAD_CONTROL_DEPLOY = 30002 , MAV_CMD_FIXED_MAG_CAL_YAW = 42006 , MAV_CMD_DO_WINCH = 42600 , MAV_CMD_WAYPOINT_USER_1 = 31000 , MAV_CMD_WAYPOINT_USER_2 = 31001 , MAV_CMD_WAYPOINT_USER_3 = 31002 , MAV_CMD_WAYPOINT_USER_4 = 31003 , MAV_CMD_WAYPOINT_USER_5 = 31004 , MAV_CMD_SPATIAL_USER_1 = 31005 , MAV_CMD_SPATIAL_USER_2 = 31006 , MAV_CMD_SPATIAL_USER_3 = 31007 , MAV_CMD_SPATIAL_USER_4 = 31008 , MAV_CMD_SPATIAL_USER_5 = 31009 , MAV_CMD_USER_1 = 31010 , MAV_CMD_USER_2 = 31011 , MAV_CMD_USER_3 = 31012 , MAV_CMD_USER_4 = 31013 , MAV_CMD_USER_5 = 31014 , MAV_CMD_CAN_FORWARD = 32000 , } impl MavCmd { pub const DEFAULT : Self = Self :: MAV_CMD_NAV_WAYPOINT ; } impl Default for MavCmd { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidHorAcc { MAV_ODID_HOR_ACC_UNKNOWN = 0 , MAV_ODID_HOR_ACC_10NM = 1 , MAV_ODID_HOR_ACC_4NM = 2 , MAV_ODID_HOR_ACC_2NM = 3 , MAV_ODID_HOR_ACC_1NM = 4 , MAV_ODID_HOR_ACC_0_5NM = 5 , MAV_ODID_HOR_ACC_0_3NM = 6 , MAV_ODID_HOR_ACC_0_1NM = 7 , MAV_ODID_HOR_ACC_0_05NM = 8 , MAV_ODID_HOR_ACC_30_METER = 9 , MAV_ODID_HOR_ACC_10_METER = 10 , MAV_ODID_HOR_ACC_3_METER = 11 , MAV_ODID_HOR_ACC_1_METER = 12 , } impl MavOdidHorAcc { pub const DEFAULT : Self = Self :: MAV_ODID_HOR_ACC_UNKNOWN ; } impl Default for MavOdidHorAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavEstimatorType { MAV_ESTIMATOR_TYPE_UNKNOWN = 0 , MAV_ESTIMATOR_TYPE_NAIVE = 1 , MAV_ESTIMATOR_TYPE_VISION = 2 , MAV_ESTIMATOR_TYPE_VIO = 3 , MAV_ESTIMATOR_TYPE_GPS = 4 , MAV_ESTIMATOR_TYPE_GPS_INS = 5 , MAV_ESTIMATOR_TYPE_MOCAP = 6 , MAV_ESTIMATOR_TYPE_LIDAR = 7 , MAV_ESTIMATOR_TYPE_AUTOPILOT = 8 , } impl MavEstimatorType { pub const DEFAULT : Self = Self :: MAV_ESTIMATOR_TYPE_UNKNOWN ; } impl Default for MavEstimatorType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMountMode { MAV_MOUNT_MODE_RETRACT = 0 , MAV_MOUNT_MODE_NEUTRAL = 1 , MAV_MOUNT_MODE_MAVLINK_TARGETING = 2 , MAV_MOUNT_MODE_RC_TARGETING = 3 , MAV_MOUNT_MODE_GPS_POINT = 4 , MAV_MOUNT_MODE_SYSID_TARGET = 5 , MAV_MOUNT_MODE_HOME_LOCATION = 6 , } impl MavMountMode { pub const DEFAULT : Self = Self :: MAV_MOUNT_MODE_RETRACT ; } impl Default for MavMountMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UtmFlightState { UTM_FLIGHT_STATE_UNKNOWN = 1 , UTM_FLIGHT_STATE_GROUND = 2 , UTM_FLIGHT_STATE_AIRBORNE = 3 , UTM_FLIGHT_STATE_EMERGENCY = 16 , UTM_FLIGHT_STATE_NOCTRL = 32 , } impl UtmFlightState { pub const DEFAULT : Self = Self :: UTM_FLIGHT_STATE_UNKNOWN ; } impl Default for UtmFlightState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceMitigate { FENCE_MITIGATE_UNKNOWN = 0 , FENCE_MITIGATE_NONE = 1 , FENCE_MITIGATE_VEL_LIMIT = 2 , } impl FenceMitigate { pub const DEFAULT : Self = Self :: FENCE_MITIGATE_UNKNOWN ; } impl Default for FenceMitigate { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidIdType { MAV_ODID_ID_TYPE_NONE = 0 , MAV_ODID_ID_TYPE_SERIAL_NUMBER = 1 , MAV_ODID_ID_TYPE_CAA_REGISTRATION_ID = 2 , MAV_ODID_ID_TYPE_UTM_ASSIGNED_UUID = 3 , MAV_ODID_ID_TYPE_SPECIFIC_SESSION_ID = 4 , } impl MavOdidIdType { pub const DEFAULT : Self = Self :: MAV_ODID_ID_TYPE_NONE ; } impl Default for MavOdidIdType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WinchActions { WINCH_RELAXED = 0 , WINCH_RELATIVE_LENGTH_CONTROL = 1 , WINCH_RATE_CONTROL = 2 , WINCH_LOCK = 3 , WINCH_DELIVER = 4 , WINCH_HOLD = 5 , WINCH_RETRACT = 6 , WINCH_LOAD_LINE = 7 , WINCH_ABANDON_LINE = 8 , WINCH_LOAD_PAYLOAD = 9 , } impl WinchActions { pub const DEFAULT : Self = Self :: WINCH_RELAXED ; } impl Default for WinchActions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VtolTransitionHeading { VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT = 0 , VTOL_TRANSITION_HEADING_NEXT_WAYPOINT = 1 , VTOL_TRANSITION_HEADING_TAKEOFF = 2 , VTOL_TRANSITION_HEADING_SPECIFIED = 3 , VTOL_TRANSITION_HEADING_ANY = 4 , } impl VtolTransitionHeading { pub const DEFAULT : Self = Self :: VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT ; } impl Default for VtolTransitionHeading { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalManagerCapFlags : u32 { const GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT = 1 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL = 2 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS = 4 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_FOLLOW = 8 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_LOCK = 16 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS = 32 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_FOLLOW = 64 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_LOCK = 128 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS = 256 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW = 512 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK = 1024 ; const GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_INFINITE_YAW = 2048 ; const GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME = 4096 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_RC_INPUTS = 8192 ; const GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_LOCAL = 65536 ; const GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_GLOBAL = 131072 ; } } impl GimbalManagerCapFlags { pub const DEFAULT : Self = Self :: GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT ; } impl Default for GimbalManagerCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularStatusFlag { CELLULAR_STATUS_FLAG_UNKNOWN = 0 , CELLULAR_STATUS_FLAG_FAILED = 1 , CELLULAR_STATUS_FLAG_INITIALIZING = 2 , CELLULAR_STATUS_FLAG_LOCKED = 3 , CELLULAR_STATUS_FLAG_DISABLED = 4 , CELLULAR_STATUS_FLAG_DISABLING = 5 , CELLULAR_STATUS_FLAG_ENABLING = 6 , CELLULAR_STATUS_FLAG_ENABLED = 7 , CELLULAR_STATUS_FLAG_SEARCHING = 8 , CELLULAR_STATUS_FLAG_REGISTERED = 9 , CELLULAR_STATUS_FLAG_DISCONNECTING = 10 , CELLULAR_STATUS_FLAG_CONNECTING = 11 , CELLULAR_STATUS_FLAG_CONNECTED = 12 , } impl CellularStatusFlag { pub const DEFAULT : Self = Self :: CELLULAR_STATUS_FLAG_UNKNOWN ; } impl Default for CellularStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FirmwareVersionType { FIRMWARE_VERSION_TYPE_DEV = 0 , FIRMWARE_VERSION_TYPE_ALPHA = 64 , FIRMWARE_VERSION_TYPE_BETA = 128 , FIRMWARE_VERSION_TYPE_RC = 192 , FIRMWARE_VERSION_TYPE_OFFICIAL = 255 , } impl FirmwareVersionType { pub const DEFAULT : Self = Self :: FIRMWARE_VERSION_TYPE_DEV ; } impl Default for FirmwareVersionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MotorTestOrder { MOTOR_TEST_ORDER_DEFAULT = 0 , MOTOR_TEST_ORDER_SEQUENCE = 1 , MOTOR_TEST_ORDER_BOARD = 2 , } impl MotorTestOrder { pub const DEFAULT : Self = Self :: MOTOR_TEST_ORDER_DEFAULT ; } impl Default for MotorTestOrder { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceBreach { FENCE_BREACH_NONE = 0 , FENCE_BREACH_MINALT = 1 , FENCE_BREACH_MAXALT = 2 , FENCE_BREACH_BOUNDARY = 3 , } impl FenceBreach { pub const DEFAULT : Self = Self :: FENCE_BREACH_NONE ; } impl Default for FenceBreach { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavType { MAV_TYPE_GENERIC = 0 , MAV_TYPE_FIXED_WING = 1 , MAV_TYPE_QUADROTOR = 2 , MAV_TYPE_COAXIAL = 3 , MAV_TYPE_HELICOPTER = 4 , MAV_TYPE_ANTENNA_TRACKER = 5 , MAV_TYPE_GCS = 6 , MAV_TYPE_AIRSHIP = 7 , MAV_TYPE_FREE_BALLOON = 8 , MAV_TYPE_ROCKET = 9 , MAV_TYPE_GROUND_ROVER = 10 , MAV_TYPE_SURFACE_BOAT = 11 , MAV_TYPE_SUBMARINE = 12 , MAV_TYPE_HEXAROTOR = 13 , MAV_TYPE_OCTOROTOR = 14 , MAV_TYPE_TRICOPTER = 15 , MAV_TYPE_FLAPPING_WING = 16 , MAV_TYPE_KITE = 17 , MAV_TYPE_ONBOARD_CONTROLLER = 18 , MAV_TYPE_VTOL_TAILSITTER_DUOROTOR = 19 , MAV_TYPE_VTOL_TAILSITTER_QUADROTOR = 20 , MAV_TYPE_VTOL_TILTROTOR = 21 , MAV_TYPE_VTOL_FIXEDROTOR = 22 , MAV_TYPE_VTOL_TAILSITTER = 23 , MAV_TYPE_VTOL_TILTWING = 24 , MAV_TYPE_VTOL_RESERVED5 = 25 , MAV_TYPE_GIMBAL = 26 , MAV_TYPE_ADSB = 27 , MAV_TYPE_PARAFOIL = 28 , MAV_TYPE_DODECAROTOR = 29 , MAV_TYPE_CAMERA = 30 , MAV_TYPE_CHARGING_STATION = 31 , MAV_TYPE_FLARM = 32 , MAV_TYPE_SERVO = 33 , MAV_TYPE_ODID = 34 , MAV_TYPE_DECAROTOR = 35 , MAV_TYPE_BATTERY = 36 , MAV_TYPE_PARACHUTE = 37 , MAV_TYPE_LOG = 38 , MAV_TYPE_OSD = 39 , MAV_TYPE_IMU = 40 , MAV_TYPE_GPS = 41 , MAV_TYPE_WINCH = 42 , } impl MavType { pub const DEFAULT : Self = Self :: MAV_TYPE_GENERIC ; } impl Default for MavType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavSysStatusSensor : u32 { const MAV_SYS_STATUS_SENSOR_3D_GYRO = 1 ; const MAV_SYS_STATUS_SENSOR_3D_ACCEL = 2 ; const MAV_SYS_STATUS_SENSOR_3D_MAG = 4 ; const MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE = 8 ; const MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE = 16 ; const MAV_SYS_STATUS_SENSOR_GPS = 32 ; const MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW = 64 ; const MAV_SYS_STATUS_SENSOR_VISION_POSITION = 128 ; const MAV_SYS_STATUS_SENSOR_LASER_POSITION = 256 ; const MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH = 512 ; const MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL = 1024 ; const MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION = 2048 ; const MAV_SYS_STATUS_SENSOR_YAW_POSITION = 4096 ; const MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL = 8192 ; const MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL = 16384 ; const MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS = 32768 ; const MAV_SYS_STATUS_SENSOR_RC_RECEIVER = 65536 ; const MAV_SYS_STATUS_SENSOR_3D_GYRO2 = 131072 ; const MAV_SYS_STATUS_SENSOR_3D_ACCEL2 = 262144 ; const MAV_SYS_STATUS_SENSOR_3D_MAG2 = 524288 ; const MAV_SYS_STATUS_GEOFENCE = 1048576 ; const MAV_SYS_STATUS_AHRS = 2097152 ; const MAV_SYS_STATUS_TERRAIN = 4194304 ; const MAV_SYS_STATUS_REVERSE_MOTOR = 8388608 ; const MAV_SYS_STATUS_LOGGING = 16777216 ; const MAV_SYS_STATUS_SENSOR_BATTERY = 33554432 ; const MAV_SYS_STATUS_SENSOR_PROXIMITY = 67108864 ; const MAV_SYS_STATUS_SENSOR_SATCOM = 134217728 ; const MAV_SYS_STATUS_PREARM_CHECK = 268435456 ; const MAV_SYS_STATUS_OBSTACLE_AVOIDANCE = 536870912 ; const MAV_SYS_STATUS_SENSOR_PROPULSION = 1073741824 ; const MAV_SYS_STATUS_EXTENSION_USED = 2147483648 ; } } impl MavSysStatusSensor { pub const DEFAULT : Self = Self :: MAV_SYS_STATUS_SENSOR_3D_GYRO ; } impl Default for MavSysStatusSensor { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CompMetadataType { COMP_METADATA_TYPE_GENERAL = 0 , COMP_METADATA_TYPE_PARAMETER = 1 , COMP_METADATA_TYPE_COMMANDS = 2 , COMP_METADATA_TYPE_PERIPHERALS = 3 , COMP_METADATA_TYPE_EVENTS = 4 , COMP_METADATA_TYPE_ACTUATORS = 5 , } impl CompMetadataType { pub const DEFAULT : Self = Self :: COMP_METADATA_TYPE_GENERAL ; } impl Default for CompMetadataType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HighresImuUpdatedFlags : u16 { const HIGHRES_IMU_UPDATED_NONE = 0 ; const HIGHRES_IMU_UPDATED_XACC = 1 ; const HIGHRES_IMU_UPDATED_YACC = 2 ; const HIGHRES_IMU_UPDATED_ZACC = 4 ; const HIGHRES_IMU_UPDATED_XGYRO = 8 ; const HIGHRES_IMU_UPDATED_YGYRO = 16 ; const HIGHRES_IMU_UPDATED_ZGYRO = 32 ; const HIGHRES_IMU_UPDATED_XMAG = 64 ; const HIGHRES_IMU_UPDATED_YMAG = 128 ; const HIGHRES_IMU_UPDATED_ZMAG = 256 ; const HIGHRES_IMU_UPDATED_ABS_PRESSURE = 512 ; const HIGHRES_IMU_UPDATED_DIFF_PRESSURE = 1024 ; const HIGHRES_IMU_UPDATED_PRESSURE_ALT = 2048 ; const HIGHRES_IMU_UPDATED_TEMPERATURE = 4096 ; const HIGHRES_IMU_UPDATED_ALL = 65535 ; } } impl HighresImuUpdatedFlags { pub const DEFAULT : Self = Self :: HIGHRES_IMU_UPDATED_NONE ; } impl Default for HighresImuUpdatedFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CameraCapFlags : u32 { const CAMERA_CAP_FLAGS_CAPTURE_VIDEO = 1 ; const CAMERA_CAP_FLAGS_CAPTURE_IMAGE = 2 ; const CAMERA_CAP_FLAGS_HAS_MODES = 4 ; const CAMERA_CAP_FLAGS_CAN_CAPTURE_IMAGE_IN_VIDEO_MODE = 8 ; const CAMERA_CAP_FLAGS_CAN_CAPTURE_VIDEO_IN_IMAGE_MODE = 16 ; const CAMERA_CAP_FLAGS_HAS_IMAGE_SURVEY_MODE = 32 ; const CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM = 64 ; const CAMERA_CAP_FLAGS_HAS_BASIC_FOCUS = 128 ; const CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM = 256 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_POINT = 512 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE = 1024 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_GEO_STATUS = 2048 ; } } impl CameraCapFlags { pub const DEFAULT : Self = Self :: CAMERA_CAP_FLAGS_CAPTURE_VIDEO ; } impl Default for CameraCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryFault { MAV_BATTERY_FAULT_DEEP_DISCHARGE = 1 , MAV_BATTERY_FAULT_SPIKES = 2 , MAV_BATTERY_FAULT_CELL_FAIL = 4 , MAV_BATTERY_FAULT_OVER_CURRENT = 8 , MAV_BATTERY_FAULT_OVER_TEMPERATURE = 16 , MAV_BATTERY_FAULT_UNDER_TEMPERATURE = 32 , MAV_BATTERY_FAULT_INCOMPATIBLE_VOLTAGE = 64 , MAV_BATTERY_FAULT_INCOMPATIBLE_FIRMWARE = 128 , BATTERY_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION = 256 , } impl MavBatteryFault { pub const DEFAULT : Self = Self :: MAV_BATTERY_FAULT_DEEP_DISCHARGE ; } impl Default for MavBatteryFault { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ActuatorConfiguration { ACTUATOR_CONFIGURATION_NONE = 0 , ACTUATOR_CONFIGURATION_BEEP = 1 , ACTUATOR_CONFIGURATION_3D_MODE_ON = 2 , ACTUATOR_CONFIGURATION_3D_MODE_OFF = 3 , ACTUATOR_CONFIGURATION_SPIN_DIRECTION1 = 4 , ACTUATOR_CONFIGURATION_SPIN_DIRECTION2 = 5 , } impl ActuatorConfiguration { pub const DEFAULT : Self = Self :: ACTUATOR_CONFIGURATION_NONE ; } impl Default for ActuatorConfiguration { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavState { MAV_STATE_UNINIT = 0 , MAV_STATE_BOOT = 1 , MAV_STATE_CALIBRATING = 2 , MAV_STATE_STANDBY = 3 , MAV_STATE_ACTIVE = 4 , MAV_STATE_CRITICAL = 5 , MAV_STATE_EMERGENCY = 6 , MAV_STATE_POWEROFF = 7 , MAV_STATE_FLIGHT_TERMINATION = 8 , } impl MavState { pub const DEFAULT : Self = Self :: MAV_STATE_UNINIT ; } impl Default for MavState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PreflightStorageParameterAction { PARAM_READ_PERSISTENT = 0 , PARAM_WRITE_PERSISTENT = 1 , PARAM_RESET_CONFIG_DEFAULT = 2 , PARAM_RESET_SENSOR_DEFAULT = 3 , PARAM_RESET_ALL_DEFAULT = 4 , } impl PreflightStorageParameterAction { pub const DEFAULT : Self = Self :: PARAM_READ_PERSISTENT ; } impl Default for PreflightStorageParameterAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidVerAcc { MAV_ODID_VER_ACC_UNKNOWN = 0 , MAV_ODID_VER_ACC_150_METER = 1 , MAV_ODID_VER_ACC_45_METER = 2 , MAV_ODID_VER_ACC_25_METER = 3 , MAV_ODID_VER_ACC_10_METER = 4 , MAV_ODID_VER_ACC_3_METER = 5 , MAV_ODID_VER_ACC_1_METER = 6 , } impl MavOdidVerAcc { pub const DEFAULT : Self = Self :: MAV_ODID_VER_ACC_UNKNOWN ; } impl Default for MavOdidVerAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FailureUnit { FAILURE_UNIT_SENSOR_GYRO = 0 , FAILURE_UNIT_SENSOR_ACCEL = 1 , FAILURE_UNIT_SENSOR_MAG = 2 , FAILURE_UNIT_SENSOR_BARO = 3 , FAILURE_UNIT_SENSOR_GPS = 4 , FAILURE_UNIT_SENSOR_OPTICAL_FLOW = 5 , FAILURE_UNIT_SENSOR_VIO = 6 , FAILURE_UNIT_SENSOR_DISTANCE_SENSOR = 7 , FAILURE_UNIT_SENSOR_AIRSPEED = 8 , FAILURE_UNIT_SYSTEM_BATTERY = 100 , FAILURE_UNIT_SYSTEM_MOTOR = 101 , FAILURE_UNIT_SYSTEM_SERVO = 102 , FAILURE_UNIT_SYSTEM_AVOIDANCE = 103 , FAILURE_UNIT_SYSTEM_RC_SIGNAL = 104 , FAILURE_UNIT_SYSTEM_MAVLINK_SIGNAL = 105 , } impl FailureUnit { pub const DEFAULT : Self = Self :: FAILURE_UNIT_SENSOR_GYRO ; } impl Default for FailureUnit { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum OrbitYawBehaviour { ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER = 0 , ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING = 1 , ORBIT_YAW_BEHAVIOUR_UNCONTROLLED = 2 , ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE = 3 , ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED = 4 , } impl OrbitYawBehaviour { pub const DEFAULT : Self = Self :: ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER ; } impl Default for OrbitYawBehaviour { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidAuthType { MAV_ODID_AUTH_TYPE_NONE = 0 , MAV_ODID_AUTH_TYPE_UAS_ID_SIGNATURE = 1 , MAV_ODID_AUTH_TYPE_OPERATOR_ID_SIGNATURE = 2 , MAV_ODID_AUTH_TYPE_MESSAGE_SET_SIGNATURE = 3 , MAV_ODID_AUTH_TYPE_NETWORK_REMOTE_ID = 4 , MAV_ODID_AUTH_TYPE_SPECIFIC_AUTHENTICATION = 5 , } impl MavOdidAuthType { pub const DEFAULT : Self = Self :: MAV_ODID_AUTH_TYPE_NONE ; } impl Default for MavOdidAuthType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavParamExtType { MAV_PARAM_EXT_TYPE_UINT8 = 1 , MAV_PARAM_EXT_TYPE_INT8 = 2 , MAV_PARAM_EXT_TYPE_UINT16 = 3 , MAV_PARAM_EXT_TYPE_INT16 = 4 , MAV_PARAM_EXT_TYPE_UINT32 = 5 , MAV_PARAM_EXT_TYPE_INT32 = 6 , MAV_PARAM_EXT_TYPE_UINT64 = 7 , MAV_PARAM_EXT_TYPE_INT64 = 8 , MAV_PARAM_EXT_TYPE_REAL32 = 9 , MAV_PARAM_EXT_TYPE_REAL64 = 10 , MAV_PARAM_EXT_TYPE_CUSTOM = 11 , } impl MavParamExtType { pub const DEFAULT : Self = Self :: MAV_PARAM_EXT_TYPE_UINT8 ; } impl Default for MavParamExtType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidOperatorLocationType { MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF = 0 , MAV_ODID_OPERATOR_LOCATION_TYPE_LIVE_GNSS = 1 , MAV_ODID_OPERATOR_LOCATION_TYPE_FIXED = 2 , } impl MavOdidOperatorLocationType { pub const DEFAULT : Self = Self :: MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF ; } impl Default for MavOdidOperatorLocationType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AisNavStatus { UNDER_WAY = 0 , AIS_NAV_ANCHORED = 1 , AIS_NAV_UN_COMMANDED = 2 , AIS_NAV_RESTRICTED_MANOEUVERABILITY = 3 , AIS_NAV_DRAUGHT_CONSTRAINED = 4 , AIS_NAV_MOORED = 5 , AIS_NAV_AGROUND = 6 , AIS_NAV_FISHING = 7 , AIS_NAV_SAILING = 8 , AIS_NAV_RESERVED_HSC = 9 , AIS_NAV_RESERVED_WIG = 10 , AIS_NAV_RESERVED_1 = 11 , AIS_NAV_RESERVED_2 = 12 , AIS_NAV_RESERVED_3 = 13 , AIS_NAV_AIS_SART = 14 , AIS_NAV_UNKNOWN = 15 , } impl AisNavStatus { pub const DEFAULT : Self = Self :: UNDER_WAY ; } impl Default for AisNavStatus { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavModeFlag : u8 { const MAV_MODE_FLAG_SAFETY_ARMED = 128 ; const MAV_MODE_FLAG_MANUAL_INPUT_ENABLED = 64 ; const MAV_MODE_FLAG_HIL_ENABLED = 32 ; const MAV_MODE_FLAG_STABILIZE_ENABLED = 16 ; const MAV_MODE_FLAG_GUIDED_ENABLED = 8 ; const MAV_MODE_FLAG_AUTO_ENABLED = 4 ; const MAV_MODE_FLAG_TEST_ENABLED = 2 ; const MAV_MODE_FLAG_CUSTOM_MODE_ENABLED = 1 ; } } impl MavModeFlag { pub const DEFAULT : Self = Self :: MAV_MODE_FLAG_SAFETY_ARMED ; } impl Default for MavModeFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionSrc { MAV_COLLISION_SRC_ADSB = 0 , MAV_COLLISION_SRC_MAVLINK_GPS_GLOBAL_INT = 1 , } impl MavCollisionSrc { pub const DEFAULT : Self = Self :: MAV_COLLISION_SRC_ADSB ; } impl Default for MavCollisionSrc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavcanNodeMode { UAVCAN_NODE_MODE_OPERATIONAL = 0 , UAVCAN_NODE_MODE_INITIALIZATION = 1 , UAVCAN_NODE_MODE_MAINTENANCE = 2 , UAVCAN_NODE_MODE_SOFTWARE_UPDATE = 3 , UAVCAN_NODE_MODE_OFFLINE = 7 , } impl UavcanNodeMode { pub const DEFAULT : Self = Self :: UAVCAN_NODE_MODE_OPERATIONAL ; } impl Default for UavcanNodeMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GpsFixType { GPS_FIX_TYPE_NO_GPS = 0 , GPS_FIX_TYPE_NO_FIX = 1 , GPS_FIX_TYPE_2D_FIX = 2 , GPS_FIX_TYPE_3D_FIX = 3 , GPS_FIX_TYPE_DGPS = 4 , GPS_FIX_TYPE_RTK_FLOAT = 5 , GPS_FIX_TYPE_RTK_FIXED = 6 , GPS_FIX_TYPE_STATIC = 7 , GPS_FIX_TYPE_PPP = 8 , } impl GpsFixType { pub const DEFAULT : Self = Self :: GPS_FIX_TYPE_NO_GPS ; } impl Default for GpsFixType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavEventCurrentSequenceFlags : u8 { const MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET = 1 ; } } impl MavEventCurrentSequenceFlags { pub const DEFAULT : Self = Self :: MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET ; } impl Default for MavEventCurrentSequenceFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GripperActions { GRIPPER_ACTION_RELEASE = 0 , GRIPPER_ACTION_GRAB = 1 , } impl GripperActions { pub const DEFAULT : Self = Self :: GRIPPER_ACTION_RELEASE ; } impl Default for GripperActions { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceCapFlags : u16 { const GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT = 1 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_NEUTRAL = 2 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_AXIS = 4 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_FOLLOW = 8 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_LOCK = 16 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_AXIS = 32 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_FOLLOW = 64 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_LOCK = 128 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_AXIS = 256 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_FOLLOW = 512 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_LOCK = 1024 ; const GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_INFINITE_YAW = 2048 ; const GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME = 4096 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_RC_INPUTS = 8192 ; } } impl GimbalDeviceCapFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT ; } impl Default for GimbalDeviceCapFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UtmDataAvailFlags : u8 { const UTM_DATA_AVAIL_FLAGS_TIME_VALID = 1 ; const UTM_DATA_AVAIL_FLAGS_UAS_ID_AVAILABLE = 2 ; const UTM_DATA_AVAIL_FLAGS_POSITION_AVAILABLE = 4 ; const UTM_DATA_AVAIL_FLAGS_ALTITUDE_AVAILABLE = 8 ; const UTM_DATA_AVAIL_FLAGS_RELATIVE_ALTITUDE_AVAILABLE = 16 ; const UTM_DATA_AVAIL_FLAGS_HORIZONTAL_VELO_AVAILABLE = 32 ; const UTM_DATA_AVAIL_FLAGS_VERTICAL_VELO_AVAILABLE = 64 ; const UTM_DATA_AVAIL_FLAGS_NEXT_WAYPOINT_AVAILABLE = 128 ; } } impl UtmDataAvailFlags { pub const DEFAULT : Self = Self :: UTM_DATA_AVAIL_FLAGS_TIME_VALID ; } impl Default for UtmDataAvailFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavcanNodeHealth { UAVCAN_NODE_HEALTH_OK = 0 , UAVCAN_NODE_HEALTH_WARNING = 1 , UAVCAN_NODE_HEALTH_ERROR = 2 , UAVCAN_NODE_HEALTH_CRITICAL = 3 , } impl UavcanNodeHealth { pub const DEFAULT : Self = Self :: UAVCAN_NODE_HEALTH_OK ; } impl Default for UavcanNodeHealth { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavAutopilot { MAV_AUTOPILOT_GENERIC = 0 , MAV_AUTOPILOT_RESERVED = 1 , MAV_AUTOPILOT_SLUGS = 2 , MAV_AUTOPILOT_ARDUPILOTMEGA = 3 , MAV_AUTOPILOT_OPENPILOT = 4 , MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY = 5 , MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY = 6 , MAV_AUTOPILOT_GENERIC_MISSION_FULL = 7 , MAV_AUTOPILOT_INVALID = 8 , MAV_AUTOPILOT_PPZ = 9 , MAV_AUTOPILOT_UDB = 10 , MAV_AUTOPILOT_FP = 11 , MAV_AUTOPILOT_PX4 = 12 , MAV_AUTOPILOT_SMACCMPILOT = 13 , MAV_AUTOPILOT_AUTOQUAD = 14 , MAV_AUTOPILOT_ARMAZILA = 15 , MAV_AUTOPILOT_AEROB = 16 , MAV_AUTOPILOT_ASLUAV = 17 , MAV_AUTOPILOT_SMARTAP = 18 , MAV_AUTOPILOT_AIRRAILS = 19 , MAV_AUTOPILOT_REFLEX = 20 , } impl MavAutopilot { pub const DEFAULT : Self = Self :: MAV_AUTOPILOT_GENERIC ; } impl Default for MavAutopilot { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMissionResult { MAV_MISSION_ACCEPTED = 0 , MAV_MISSION_ERROR = 1 , MAV_MISSION_UNSUPPORTED_FRAME = 2 , MAV_MISSION_UNSUPPORTED = 3 , MAV_MISSION_NO_SPACE = 4 , MAV_MISSION_INVALID = 5 , MAV_MISSION_INVALID_PARAM1 = 6 , MAV_MISSION_INVALID_PARAM2 = 7 , MAV_MISSION_INVALID_PARAM3 = 8 , MAV_MISSION_INVALID_PARAM4 = 9 , MAV_MISSION_INVALID_PARAM5_X = 10 , MAV_MISSION_INVALID_PARAM6_Y = 11 , MAV_MISSION_INVALID_PARAM7 = 12 , MAV_MISSION_INVALID_SEQUENCE = 13 , MAV_MISSION_DENIED = 14 , MAV_MISSION_OPERATION_CANCELLED = 15 , } impl MavMissionResult { pub const DEFAULT : Self = Self :: MAV_MISSION_ACCEPTED ; } impl Default for MavMissionResult { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavVtolState { MAV_VTOL_STATE_UNDEFINED = 0 , MAV_VTOL_STATE_TRANSITION_TO_FW = 1 , MAV_VTOL_STATE_TRANSITION_TO_MC = 2 , MAV_VTOL_STATE_MC = 3 , MAV_VTOL_STATE_FW = 4 , } impl MavVtolState { pub const DEFAULT : Self = Self :: MAV_VTOL_STATE_UNDEFINED ; } impl Default for MavVtolState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDoRepositionFlags { MAV_DO_REPOSITION_FLAGS_CHANGE_MODE = 1 , } impl MavDoRepositionFlags { pub const DEFAULT : Self = Self :: MAV_DO_REPOSITION_FLAGS_CHANGE_MODE ; } impl Default for MavDoRepositionFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionThreatLevel { MAV_COLLISION_THREAT_LEVEL_NONE = 0 , MAV_COLLISION_THREAT_LEVEL_LOW = 1 , MAV_COLLISION_THREAT_LEVEL_HIGH = 2 , } impl MavCollisionThreatLevel { pub const DEFAULT : Self = Self :: MAV_COLLISION_THREAT_LEVEL_NONE ; } impl Default for MavCollisionThreatLevel { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryMode { MAV_BATTERY_MODE_UNKNOWN = 0 , MAV_BATTERY_MODE_AUTO_DISCHARGING = 1 , MAV_BATTERY_MODE_HOT_SWAP = 2 , } impl MavBatteryMode { pub const DEFAULT : Self = Self :: MAV_BATTERY_MODE_UNKNOWN ; } impl Default for MavBatteryMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavLandedState { MAV_LANDED_STATE_UNDEFINED = 0 , MAV_LANDED_STATE_ON_GROUND = 1 , MAV_LANDED_STATE_IN_AIR = 2 , MAV_LANDED_STATE_TAKEOFF = 3 , MAV_LANDED_STATE_LANDING = 4 , } impl MavLandedState { pub const DEFAULT : Self = Self :: MAV_LANDED_STATE_UNDEFINED ; } impl Default for MavLandedState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingMode { CAMERA_TRACKING_MODE_NONE = 0 , CAMERA_TRACKING_MODE_POINT = 1 , CAMERA_TRACKING_MODE_RECTANGLE = 2 , } impl CameraTrackingMode { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_MODE_NONE ; } impl Default for CameraTrackingMode { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SerialControlFlag : u8 { const SERIAL_CONTROL_FLAG_REPLY = 1 ; const SERIAL_CONTROL_FLAG_RESPOND = 2 ; const SERIAL_CONTROL_FLAG_EXCLUSIVE = 4 ; const SERIAL_CONTROL_FLAG_BLOCKING = 8 ; const SERIAL_CONTROL_FLAG_MULTI = 16 ; } } impl SerialControlFlag { pub const DEFAULT : Self = Self :: SERIAL_CONTROL_FLAG_REPLY ; } impl Default for SerialControlFlag { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavWinchStatusFlag : u32 { const MAV_WINCH_STATUS_HEALTHY = 1 ; const MAV_WINCH_STATUS_FULLY_RETRACTED = 2 ; const MAV_WINCH_STATUS_MOVING = 4 ; const MAV_WINCH_STATUS_CLUTCH_ENGAGED = 8 ; const MAV_WINCH_STATUS_LOCKED = 16 ; const MAV_WINCH_STATUS_DROPPING = 32 ; const MAV_WINCH_STATUS_ARRESTING = 64 ; const MAV_WINCH_STATUS_GROUND_SENSE = 128 ; const MAV_WINCH_STATUS_RETRACTING = 256 ; const MAV_WINCH_STATUS_REDELIVER = 512 ; const MAV_WINCH_STATUS_ABANDON_LINE = 1024 ; const MAV_WINCH_STATUS_LOCKING = 2048 ; const MAV_WINCH_STATUS_LOAD_LINE = 4096 ; const MAV_WINCH_STATUS_LOAD_PAYLOAD = 8192 ; } } impl MavWinchStatusFlag { pub const DEFAULT : Self = Self :: MAV_WINCH_STATUS_HEALTHY ; } impl Default for MavWinchStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularConfigResponse { CELLULAR_CONFIG_RESPONSE_ACCEPTED = 0 , CELLULAR_CONFIG_RESPONSE_APN_ERROR = 1 , CELLULAR_CONFIG_RESPONSE_PIN_ERROR = 2 , CELLULAR_CONFIG_RESPONSE_REJECTED = 3 , CELLULAR_CONFIG_BLOCKED_PUK_REQUIRED = 4 , } impl CellularConfigResponse { pub const DEFAULT : Self = Self :: CELLULAR_CONFIG_RESPONSE_ACCEPTED ; } impl Default for CellularConfigResponse { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum NavVtolLandOptions { NAV_VTOL_LAND_OPTIONS_DEFAULT = 0 , NAV_VTOL_LAND_OPTIONS_FW_DESCENT = 1 , NAV_VTOL_LAND_OPTIONS_HOVER_DESCENT = 2 , } impl NavVtolLandOptions { pub const DEFAULT : Self = Self :: NAV_VTOL_LAND_OPTIONS_DEFAULT ; } impl Default for NavVtolLandOptions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GimbalManagerFlags { GIMBAL_MANAGER_FLAGS_RETRACT = 1 , GIMBAL_MANAGER_FLAGS_NEUTRAL = 2 , GIMBAL_MANAGER_FLAGS_ROLL_LOCK = 4 , GIMBAL_MANAGER_FLAGS_PITCH_LOCK = 8 , GIMBAL_MANAGER_FLAGS_YAW_LOCK = 16 , GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME = 32 , GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME = 64 , GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME = 128 , GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE = 256 , GIMBAL_MANAGER_FLAGS_RC_MIXED = 512 , } impl GimbalManagerFlags { pub const DEFAULT : Self = Self :: GIMBAL_MANAGER_FLAGS_RETRACT ; } impl Default for GimbalManagerFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SerialControlDev { SERIAL_CONTROL_DEV_TELEM1 = 0 , SERIAL_CONTROL_DEV_TELEM2 = 1 , SERIAL_CONTROL_DEV_GPS1 = 2 , SERIAL_CONTROL_DEV_GPS2 = 3 , SERIAL_CONTROL_DEV_SHELL = 10 , SERIAL_CONTROL_SERIAL0 = 100 , SERIAL_CONTROL_SERIAL1 = 101 , SERIAL_CONTROL_SERIAL2 = 102 , SERIAL_CONTROL_SERIAL3 = 103 , SERIAL_CONTROL_SERIAL4 = 104 , SERIAL_CONTROL_SERIAL5 = 105 , SERIAL_CONTROL_SERIAL6 = 106 , SERIAL_CONTROL_SERIAL7 = 107 , SERIAL_CONTROL_SERIAL8 = 108 , SERIAL_CONTROL_SERIAL9 = 109 , } impl SerialControlDev { pub const DEFAULT : Self = Self :: SERIAL_CONTROL_DEV_TELEM1 ; } impl Default for SerialControlDev { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidHeightRef { MAV_ODID_HEIGHT_REF_OVER_TAKEOFF = 0 , MAV_ODID_HEIGHT_REF_OVER_GROUND = 1 , } impl MavOdidHeightRef { pub const DEFAULT : Self = Self :: MAV_ODID_HEIGHT_REF_OVER_TAKEOFF ; } impl Default for MavOdidHeightRef { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AdsbEmitterType { ADSB_EMITTER_TYPE_NO_INFO = 0 , ADSB_EMITTER_TYPE_LIGHT = 1 , ADSB_EMITTER_TYPE_SMALL = 2 , ADSB_EMITTER_TYPE_LARGE = 3 , ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE = 4 , ADSB_EMITTER_TYPE_HEAVY = 5 , ADSB_EMITTER_TYPE_HIGHLY_MANUV = 6 , ADSB_EMITTER_TYPE_ROTOCRAFT = 7 , ADSB_EMITTER_TYPE_UNASSIGNED = 8 , ADSB_EMITTER_TYPE_GLIDER = 9 , ADSB_EMITTER_TYPE_LIGHTER_AIR = 10 , ADSB_EMITTER_TYPE_PARACHUTE = 11 , ADSB_EMITTER_TYPE_ULTRA_LIGHT = 12 , ADSB_EMITTER_TYPE_UNASSIGNED2 = 13 , ADSB_EMITTER_TYPE_UAV = 14 , ADSB_EMITTER_TYPE_SPACE = 15 , ADSB_EMITTER_TYPE_UNASSGINED3 = 16 , ADSB_EMITTER_TYPE_EMERGENCY_SURFACE = 17 , ADSB_EMITTER_TYPE_SERVICE_SURFACE = 18 , ADSB_EMITTER_TYPE_POINT_OBSTACLE = 19 , } impl AdsbEmitterType { pub const DEFAULT : Self = Self :: ADSB_EMITTER_TYPE_NO_INFO ; } impl Default for AdsbEmitterType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidSpeedAcc { MAV_ODID_SPEED_ACC_UNKNOWN = 0 , MAV_ODID_SPEED_ACC_10_METERS_PER_SECOND = 1 , MAV_ODID_SPEED_ACC_3_METERS_PER_SECOND = 2 , MAV_ODID_SPEED_ACC_1_METERS_PER_SECOND = 3 , MAV_ODID_SPEED_ACC_0_3_METERS_PER_SECOND = 4 , } impl MavOdidSpeedAcc { pub const DEFAULT : Self = Self :: MAV_ODID_SPEED_ACC_UNKNOWN ; } impl Default for MavOdidSpeedAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavComponent { MAV_COMP_ID_ALL = 0 , MAV_COMP_ID_AUTOPILOT1 = 1 , MAV_COMP_ID_USER1 = 25 , MAV_COMP_ID_USER2 = 26 , MAV_COMP_ID_USER3 = 27 , MAV_COMP_ID_USER4 = 28 , MAV_COMP_ID_USER5 = 29 , MAV_COMP_ID_USER6 = 30 , MAV_COMP_ID_USER7 = 31 , MAV_COMP_ID_USER8 = 32 , MAV_COMP_ID_USER9 = 33 , MAV_COMP_ID_USER10 = 34 , MAV_COMP_ID_USER11 = 35 , MAV_COMP_ID_USER12 = 36 , MAV_COMP_ID_USER13 = 37 , MAV_COMP_ID_USER14 = 38 , MAV_COMP_ID_USER15 = 39 , MAV_COMP_ID_USER16 = 40 , MAV_COMP_ID_USER17 = 41 , MAV_COMP_ID_USER18 = 42 , MAV_COMP_ID_USER19 = 43 , MAV_COMP_ID_USER20 = 44 , MAV_COMP_ID_USER21 = 45 , MAV_COMP_ID_USER22 = 46 , MAV_COMP_ID_USER23 = 47 , MAV_COMP_ID_USER24 = 48 , MAV_COMP_ID_USER25 = 49 , MAV_COMP_ID_USER26 = 50 , MAV_COMP_ID_USER27 = 51 , MAV_COMP_ID_USER28 = 52 , MAV_COMP_ID_USER29 = 53 , MAV_COMP_ID_USER30 = 54 , MAV_COMP_ID_USER31 = 55 , MAV_COMP_ID_USER32 = 56 , MAV_COMP_ID_USER33 = 57 , MAV_COMP_ID_USER34 = 58 , MAV_COMP_ID_USER35 = 59 , MAV_COMP_ID_USER36 = 60 , MAV_COMP_ID_USER37 = 61 , MAV_COMP_ID_USER38 = 62 , MAV_COMP_ID_USER39 = 63 , MAV_COMP_ID_USER40 = 64 , MAV_COMP_ID_USER41 = 65 , MAV_COMP_ID_USER42 = 66 , MAV_COMP_ID_USER43 = 67 , MAV_COMP_ID_TELEMETRY_RADIO = 68 , MAV_COMP_ID_USER45 = 69 , MAV_COMP_ID_USER46 = 70 , MAV_COMP_ID_USER47 = 71 , MAV_COMP_ID_USER48 = 72 , MAV_COMP_ID_USER49 = 73 , MAV_COMP_ID_USER50 = 74 , MAV_COMP_ID_USER51 = 75 , MAV_COMP_ID_USER52 = 76 , MAV_COMP_ID_USER53 = 77 , MAV_COMP_ID_USER54 = 78 , MAV_COMP_ID_USER55 = 79 , MAV_COMP_ID_USER56 = 80 , MAV_COMP_ID_USER57 = 81 , MAV_COMP_ID_USER58 = 82 , MAV_COMP_ID_USER59 = 83 , MAV_COMP_ID_USER60 = 84 , MAV_COMP_ID_USER61 = 85 , MAV_COMP_ID_USER62 = 86 , MAV_COMP_ID_USER63 = 87 , MAV_COMP_ID_USER64 = 88 , MAV_COMP_ID_USER65 = 89 , MAV_COMP_ID_USER66 = 90 , MAV_COMP_ID_USER67 = 91 , MAV_COMP_ID_USER68 = 92 , MAV_COMP_ID_USER69 = 93 , MAV_COMP_ID_USER70 = 94 , MAV_COMP_ID_USER71 = 95 , MAV_COMP_ID_USER72 = 96 , MAV_COMP_ID_USER73 = 97 , MAV_COMP_ID_USER74 = 98 , MAV_COMP_ID_USER75 = 99 , MAV_COMP_ID_CAMERA = 100 , MAV_COMP_ID_CAMERA2 = 101 , MAV_COMP_ID_CAMERA3 = 102 , MAV_COMP_ID_CAMERA4 = 103 , MAV_COMP_ID_CAMERA5 = 104 , MAV_COMP_ID_CAMERA6 = 105 , MAV_COMP_ID_SERVO1 = 140 , MAV_COMP_ID_SERVO2 = 141 , MAV_COMP_ID_SERVO3 = 142 , MAV_COMP_ID_SERVO4 = 143 , MAV_COMP_ID_SERVO5 = 144 , MAV_COMP_ID_SERVO6 = 145 , MAV_COMP_ID_SERVO7 = 146 , MAV_COMP_ID_SERVO8 = 147 , MAV_COMP_ID_SERVO9 = 148 , MAV_COMP_ID_SERVO10 = 149 , MAV_COMP_ID_SERVO11 = 150 , MAV_COMP_ID_SERVO12 = 151 , MAV_COMP_ID_SERVO13 = 152 , MAV_COMP_ID_SERVO14 = 153 , MAV_COMP_ID_GIMBAL = 154 , MAV_COMP_ID_LOG = 155 , MAV_COMP_ID_ADSB = 156 , MAV_COMP_ID_OSD = 157 , MAV_COMP_ID_PERIPHERAL = 158 , MAV_COMP_ID_QX1_GIMBAL = 159 , MAV_COMP_ID_FLARM = 160 , MAV_COMP_ID_PARACHUTE = 161 , MAV_COMP_ID_WINCH = 169 , MAV_COMP_ID_GIMBAL2 = 171 , MAV_COMP_ID_GIMBAL3 = 172 , MAV_COMP_ID_GIMBAL4 = 173 , MAV_COMP_ID_GIMBAL5 = 174 , MAV_COMP_ID_GIMBAL6 = 175 , MAV_COMP_ID_BATTERY = 180 , MAV_COMP_ID_BATTERY2 = 181 , MAV_COMP_ID_MAVCAN = 189 , MAV_COMP_ID_MISSIONPLANNER = 190 , MAV_COMP_ID_ONBOARD_COMPUTER = 191 , MAV_COMP_ID_ONBOARD_COMPUTER2 = 192 , MAV_COMP_ID_ONBOARD_COMPUTER3 = 193 , MAV_COMP_ID_ONBOARD_COMPUTER4 = 194 , MAV_COMP_ID_PATHPLANNER = 195 , MAV_COMP_ID_OBSTACLE_AVOIDANCE = 196 , MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY = 197 , MAV_COMP_ID_PAIRING_MANAGER = 198 , MAV_COMP_ID_IMU = 200 , MAV_COMP_ID_IMU_2 = 201 , MAV_COMP_ID_IMU_3 = 202 , MAV_COMP_ID_GPS = 220 , MAV_COMP_ID_GPS2 = 221 , MAV_COMP_ID_ODID_TXRX_1 = 236 , MAV_COMP_ID_ODID_TXRX_2 = 237 , MAV_COMP_ID_ODID_TXRX_3 = 238 , MAV_COMP_ID_UDP_BRIDGE = 240 , MAV_COMP_ID_UART_BRIDGE = 241 , MAV_COMP_ID_TUNNEL_NODE = 242 , MAV_COMP_ID_SYSTEM_CONTROL = 250 , } impl MavComponent { pub const DEFAULT : Self = Self :: MAV_COMP_ID_ALL ; } impl Default for MavComponent { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingStatusFlags { CAMERA_TRACKING_STATUS_FLAGS_IDLE = 0 , CAMERA_TRACKING_STATUS_FLAGS_ACTIVE = 1 , CAMERA_TRACKING_STATUS_FLAGS_ERROR = 2 , } impl CameraTrackingStatusFlags { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_STATUS_FLAGS_IDLE ; } impl Default for CameraTrackingStatusFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavGeneratorStatusFlag : u64 { const MAV_GENERATOR_STATUS_FLAG_OFF = 1 ; const MAV_GENERATOR_STATUS_FLAG_READY = 2 ; const MAV_GENERATOR_STATUS_FLAG_GENERATING = 4 ; const MAV_GENERATOR_STATUS_FLAG_CHARGING = 8 ; const MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER = 16 ; const MAV_GENERATOR_STATUS_FLAG_MAXPOWER = 32 ; const MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING = 64 ; const MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT = 128 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING = 256 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT = 512 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT = 1024 ; const MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT = 2048 ; const MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING = 4096 ; const MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING = 8192 ; const MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT = 16384 ; const MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT = 32768 ; const MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT = 65536 ; const MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT = 131072 ; const MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT = 262144 ; const MAV_GENERATOR_STATUS_FLAG_START_INHIBITED = 524288 ; const MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED = 1048576 ; const MAV_GENERATOR_STATUS_FLAG_WARMING_UP = 2097152 ; const MAV_GENERATOR_STATUS_FLAG_IDLE = 4194304 ; } } impl MavGeneratorStatusFlag { pub const DEFAULT : Self = Self :: MAV_GENERATOR_STATUS_FLAG_OFF ; } impl Default for MavGeneratorStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PreflightStorageMissionAction { MISSION_READ_PERSISTENT = 0 , MISSION_WRITE_PERSISTENT = 1 , MISSION_RESET_DEFAULT = 2 , } impl PreflightStorageMissionAction { pub const DEFAULT : Self = Self :: MISSION_READ_PERSISTENT ; } impl Default for PreflightStorageMissionAction { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceFlags : u16 { const GIMBAL_DEVICE_FLAGS_RETRACT = 1 ; const GIMBAL_DEVICE_FLAGS_NEUTRAL = 2 ; const GIMBAL_DEVICE_FLAGS_ROLL_LOCK = 4 ; const GIMBAL_DEVICE_FLAGS_PITCH_LOCK = 8 ; const GIMBAL_DEVICE_FLAGS_YAW_LOCK = 16 ; const GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME = 32 ; const GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME = 64 ; const GIMBAL_DEVICE_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME = 128 ; const GIMBAL_DEVICE_FLAGS_RC_EXCLUSIVE = 256 ; const GIMBAL_DEVICE_FLAGS_RC_MIXED = 512 ; } } impl GimbalDeviceFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_FLAGS_RETRACT ; } impl Default for GimbalDeviceFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavParamType { MAV_PARAM_TYPE_UINT8 = 1 , MAV_PARAM_TYPE_INT8 = 2 , MAV_PARAM_TYPE_UINT16 = 3 , MAV_PARAM_TYPE_INT16 = 4 , MAV_PARAM_TYPE_UINT32 = 5 , MAV_PARAM_TYPE_INT32 = 6 , MAV_PARAM_TYPE_UINT64 = 7 , MAV_PARAM_TYPE_INT64 = 8 , MAV_PARAM_TYPE_REAL32 = 9 , MAV_PARAM_TYPE_REAL64 = 10 , } impl MavParamType { pub const DEFAULT : Self = Self :: MAV_PARAM_TYPE_UINT8 ; } impl Default for MavParamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidUaType { MAV_ODID_UA_TYPE_NONE = 0 , MAV_ODID_UA_TYPE_AEROPLANE = 1 , MAV_ODID_UA_TYPE_HELICOPTER_OR_MULTIROTOR = 2 , MAV_ODID_UA_TYPE_GYROPLANE = 3 , MAV_ODID_UA_TYPE_HYBRID_LIFT = 4 , MAV_ODID_UA_TYPE_ORNITHOPTER = 5 , MAV_ODID_UA_TYPE_GLIDER = 6 , MAV_ODID_UA_TYPE_KITE = 7 , MAV_ODID_UA_TYPE_FREE_BALLOON = 8 , MAV_ODID_UA_TYPE_CAPTIVE_BALLOON = 9 , MAV_ODID_UA_TYPE_AIRSHIP = 10 , MAV_ODID_UA_TYPE_FREE_FALL_PARACHUTE = 11 , MAV_ODID_UA_TYPE_ROCKET = 12 , MAV_ODID_UA_TYPE_TETHERED_POWERED_AIRCRAFT = 13 , MAV_ODID_UA_TYPE_GROUND_OBSTACLE = 14 , MAV_ODID_UA_TYPE_OTHER = 15 , } impl MavOdidUaType { pub const DEFAULT : Self = Self :: MAV_ODID_UA_TYPE_NONE ; } impl Default for MavOdidUaType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidDescType { MAV_ODID_DESC_TYPE_TEXT = 0 , MAV_ODID_DESC_TYPE_EMERGENCY = 1 , MAV_ODID_DESC_TYPE_EXTENDED_STATUS = 2 , } impl MavOdidDescType { pub const DEFAULT : Self = Self :: MAV_ODID_DESC_TYPE_TEXT ; } impl Default for MavOdidDescType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraZoomType { ZOOM_TYPE_STEP = 0 , ZOOM_TYPE_CONTINUOUS = 1 , ZOOM_TYPE_RANGE = 2 , ZOOM_TYPE_FOCAL_LENGTH = 3 , } impl CameraZoomType { pub const DEFAULT : Self = Self :: ZOOM_TYPE_STEP ; } impl Default for CameraZoomType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryFunction { MAV_BATTERY_FUNCTION_UNKNOWN = 0 , MAV_BATTERY_FUNCTION_ALL = 1 , MAV_BATTERY_FUNCTION_PROPULSION = 2 , MAV_BATTERY_FUNCTION_AVIONICS = 3 , MAV_BATTERY_FUNCTION_PAYLOAD = 4 , } impl MavBatteryFunction { pub const DEFAULT : Self = Self :: MAV_BATTERY_FUNCTION_UNKNOWN ; } impl Default for MavBatteryFunction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmdAck { MAV_CMD_ACK_OK = 0 , MAV_CMD_ACK_ERR_FAIL = 1 , MAV_CMD_ACK_ERR_ACCESS_DENIED = 2 , MAV_CMD_ACK_ERR_NOT_SUPPORTED = 3 , MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED = 4 , MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE = 5 , MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE = 6 , MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE = 7 , MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE = 8 , } impl MavCmdAck { pub const DEFAULT : Self = Self :: MAV_CMD_ACK_OK ; } impl Default for MavCmdAck { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_RAW_DATA { pub time_boot_ms : u32 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub port : u8 , pub rssi : u8 , } impl RC_CHANNELS_RAW_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , port : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_RAW_DATA { type Message = MavMessage ; const ID : u32 = 35u32 ; const NAME : & 'static str = "RC_CHANNELS_RAW" ; const EXTRA_CRC : u8 = 244u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . port = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u8 (self . port) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TIME_ESTIMATE_TO_TARGET_DATA { pub safe_return : i32 , pub land : i32 , pub mission_next_item : i32 , pub mission_end : i32 , pub commanded_action : i32 , } impl TIME_ESTIMATE_TO_TARGET_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { safe_return : 0_i32 , land : 0_i32 , mission_next_item : 0_i32 , mission_end : 0_i32 , commanded_action : 0_i32 , } ; } impl Default for TIME_ESTIMATE_TO_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TIME_ESTIMATE_TO_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 380u32 ; const NAME : & 'static str = "TIME_ESTIMATE_TO_TARGET" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . safe_return = buf . get_i32_le () ; __struct . land = buf . get_i32_le () ; __struct . mission_next_item = buf . get_i32_le () ; __struct . mission_end = buf . get_i32_le () ; __struct . commanded_action = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . safe_return) ; __tmp . put_i32_le (self . land) ; __tmp . put_i32_le (self . mission_next_item) ; __tmp . put_i32_le (self . mission_end) ; __tmp . put_i32_le (self . commanded_action) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MESSAGE_INTERVAL_DATA { pub interval_us : i32 , pub message_id : u16 , } impl MESSAGE_INTERVAL_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { interval_us : 0_i32 , message_id : 0_u16 , } ; } impl Default for MESSAGE_INTERVAL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MESSAGE_INTERVAL_DATA { type Message = MavMessage ; const ID : u32 = 244u32 ; const NAME : & 'static str = "MESSAGE_INTERVAL" ; const EXTRA_CRC : u8 = 95u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . interval_us = buf . get_i32_le () ; __struct . message_id = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . interval_us) ; __tmp . put_u16_le (self . message_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RESPONSE_EVENT_ERROR_DATA { pub sequence : u16 , pub sequence_oldest_available : u16 , pub target_system : u8 , pub target_component : u8 , pub reason : MavEventErrorReason , } impl RESPONSE_EVENT_ERROR_DATA { pub const ENCODED_LEN : usize = 7usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , sequence_oldest_available : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , reason : MavEventErrorReason :: DEFAULT , } ; } impl Default for RESPONSE_EVENT_ERROR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RESPONSE_EVENT_ERROR_DATA { type Message = MavMessage ; const ID : u32 = 413u32 ; const NAME : & 'static str = "RESPONSE_EVENT_ERROR" ; const EXTRA_CRC : u8 = 77u8 ; const ENCODED_LEN : usize = 7usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . sequence_oldest_available = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . reason = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEventErrorReason" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u16_le (self . sequence_oldest_available) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . reason as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_yaw : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_yaw : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub command : [u16 ; 5] , pub valid_points : u8 , } impl TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { pub const ENCODED_LEN : usize = 239usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , pos_x : [0.0_f32 ; 5usize] , pos_y : [0.0_f32 ; 5usize] , pos_z : [0.0_f32 ; 5usize] , vel_x : [0.0_f32 ; 5usize] , vel_y : [0.0_f32 ; 5usize] , vel_z : [0.0_f32 ; 5usize] , acc_x : [0.0_f32 ; 5usize] , acc_y : [0.0_f32 ; 5usize] , acc_z : [0.0_f32 ; 5usize] , pos_yaw : [0.0_f32 ; 5usize] , vel_yaw : [0.0_f32 ; 5usize] , command : [0_u16 ; 5usize] , valid_points : 0_u8 , } ; } impl Default for TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { type Message = MavMessage ; const ID : u32 = 332u32 ; const NAME : & 'static str = "TRAJECTORY_REPRESENTATION_WAYPOINTS" ; const EXTRA_CRC : u8 = 236u8 ; const ENCODED_LEN : usize = 239usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . pos_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_yaw { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_yaw { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . command { let val = buf . get_u16_le () ; * v = val ; } __struct . valid_points = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . pos_x { __tmp . put_f32_le (* val) ; } for val in & self . pos_y { __tmp . put_f32_le (* val) ; } for val in & self . pos_z { __tmp . put_f32_le (* val) ; } for val in & self . vel_x { __tmp . put_f32_le (* val) ; } for val in & self . vel_y { __tmp . put_f32_le (* val) ; } for val in & self . vel_z { __tmp . put_f32_le (* val) ; } for val in & self . acc_x { __tmp . put_f32_le (* val) ; } for val in & self . acc_y { __tmp . put_f32_le (* val) ; } for val in & self . acc_z { __tmp . put_f32_le (* val) ; } for val in & self . pos_yaw { __tmp . put_f32_le (* val) ; } for val in & self . vel_yaw { __tmp . put_f32_le (* val) ; } for val in & self . command { __tmp . put_u16_le (* val) ; } __tmp . put_u8 (self . valid_points) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_REACHED_DATA { pub seq : u16 , } impl MISSION_ITEM_REACHED_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , } ; } impl Default for MISSION_ITEM_REACHED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_REACHED_DATA { type Message = MavMessage ; const ID : u32 = 46u32 ; const NAME : & 'static str = "MISSION_ITEM_REACHED" ; const EXTRA_CRC : u8 = 11u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TRAJECTORY_REPRESENTATION_BEZIER_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub delta : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_yaw : [f32 ; 5] , pub valid_points : u8 , } impl TRAJECTORY_REPRESENTATION_BEZIER_DATA { pub const ENCODED_LEN : usize = 109usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , pos_x : [0.0_f32 ; 5usize] , pos_y : [0.0_f32 ; 5usize] , pos_z : [0.0_f32 ; 5usize] , delta : [0.0_f32 ; 5usize] , pos_yaw : [0.0_f32 ; 5usize] , valid_points : 0_u8 , } ; } impl Default for TRAJECTORY_REPRESENTATION_BEZIER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TRAJECTORY_REPRESENTATION_BEZIER_DATA { type Message = MavMessage ; const ID : u32 = 333u32 ; const NAME : & 'static str = "TRAJECTORY_REPRESENTATION_BEZIER" ; const EXTRA_CRC : u8 = 231u8 ; const ENCODED_LEN : usize = 109usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . pos_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . delta { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_yaw { let val = buf . get_f32_le () ; * v = val ; } __struct . valid_points = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . pos_x { __tmp . put_f32_le (* val) ; } for val in & self . pos_y { __tmp . put_f32_le (* val) ; } for val in & self . pos_z { __tmp . put_f32_le (* val) ; } for val in & self . delta { __tmp . put_f32_le (* val) ; } for val in & self . pos_yaw { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . valid_points) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_IMU_DATA { pub time_usec : u64 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl RAW_IMU_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for RAW_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_IMU_DATA { type Message = MavMessage ; const ID : u32 = 27u32 ; const NAME : & 'static str = "RAW_IMU" ; const EXTRA_CRC : u8 = 144u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_POSITION_TARGET_GLOBAL_INT_DATA { pub time_boot_ms : u32 , pub lat_int : i32 , pub lon_int : i32 , pub alt : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub target_system : u8 , pub target_component : u8 , pub coordinate_frame : MavFrame , } impl SET_POSITION_TARGET_GLOBAL_INT_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_int : 0_i32 , lon_int : 0_i32 , alt : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for SET_POSITION_TARGET_GLOBAL_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_POSITION_TARGET_GLOBAL_INT_DATA { type Message = MavMessage ; const ID : u32 = 86u32 ; const NAME : & 'static str = "SET_POSITION_TARGET_GLOBAL_INT" ; const EXTRA_CRC : u8 = 5u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_int = buf . get_i32_le () ; __struct . lon_int = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_int) ; __tmp . put_i32_le (self . lon_int) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POSITION_TARGET_GLOBAL_INT_DATA { pub time_boot_ms : u32 , pub lat_int : i32 , pub lon_int : i32 , pub alt : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub coordinate_frame : MavFrame , } impl POSITION_TARGET_GLOBAL_INT_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_int : 0_i32 , lon_int : 0_i32 , alt : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for POSITION_TARGET_GLOBAL_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POSITION_TARGET_GLOBAL_INT_DATA { type Message = MavMessage ; const ID : u32 = 87u32 ; const NAME : & 'static str = "POSITION_TARGET_GLOBAL_INT" ; const EXTRA_CRC : u8 = 150u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_int = buf . get_i32_le () ; __struct . lon_int = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_int) ; __tmp . put_i32_le (self . lon_int) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_OPTICAL_FLOW_DATA { pub time_usec : u64 , pub integration_time_us : u32 , pub integrated_x : f32 , pub integrated_y : f32 , pub integrated_xgyro : f32 , pub integrated_ygyro : f32 , pub integrated_zgyro : f32 , pub time_delta_distance_us : u32 , pub distance : f32 , pub temperature : i16 , pub sensor_id : u8 , pub quality : u8 , } impl HIL_OPTICAL_FLOW_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , integration_time_us : 0_u32 , integrated_x : 0.0_f32 , integrated_y : 0.0_f32 , integrated_xgyro : 0.0_f32 , integrated_ygyro : 0.0_f32 , integrated_zgyro : 0.0_f32 , time_delta_distance_us : 0_u32 , distance : 0.0_f32 , temperature : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for HIL_OPTICAL_FLOW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_OPTICAL_FLOW_DATA { type Message = MavMessage ; const ID : u32 = 114u32 ; const NAME : & 'static str = "HIL_OPTICAL_FLOW" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . integration_time_us = buf . get_u32_le () ; __struct . integrated_x = buf . get_f32_le () ; __struct . integrated_y = buf . get_f32_le () ; __struct . integrated_xgyro = buf . get_f32_le () ; __struct . integrated_ygyro = buf . get_f32_le () ; __struct . integrated_zgyro = buf . get_f32_le () ; __struct . time_delta_distance_us = buf . get_u32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . integration_time_us) ; __tmp . put_f32_le (self . integrated_x) ; __tmp . put_f32_le (self . integrated_y) ; __tmp . put_f32_le (self . integrated_xgyro) ; __tmp . put_f32_le (self . integrated_ygyro) ; __tmp . put_f32_le (self . integrated_zgyro) ; __tmp . put_u32_le (self . time_delta_distance_us) ; __tmp . put_f32_le (self . distance) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LANDING_TARGET_DATA { pub time_usec : u64 , pub angle_x : f32 , pub angle_y : f32 , pub distance : f32 , pub size_x : f32 , pub size_y : f32 , pub target_num : u8 , pub frame : MavFrame , } impl LANDING_TARGET_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , angle_x : 0.0_f32 , angle_y : 0.0_f32 , distance : 0.0_f32 , size_x : 0.0_f32 , size_y : 0.0_f32 , target_num : 0_u8 , frame : MavFrame :: DEFAULT , } ; } impl Default for LANDING_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LANDING_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 149u32 ; const NAME : & 'static str = "LANDING_TARGET" ; const EXTRA_CRC : u8 = 200u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . angle_x = buf . get_f32_le () ; __struct . angle_y = buf . get_f32_le () ; __struct . distance = buf . get_f32_le () ; __struct . size_x = buf . get_f32_le () ; __struct . size_y = buf . get_f32_le () ; __struct . target_num = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . angle_x) ; __tmp . put_f32_le (self . angle_y) ; __tmp . put_f32_le (self . distance) ; __tmp . put_f32_le (self . size_x) ; __tmp . put_f32_le (self . size_y) ; __tmp . put_u8 (self . target_num) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MAG_CAL_REPORT_DATA { pub fitness : f32 , pub ofs_x : f32 , pub ofs_y : f32 , pub ofs_z : f32 , pub diag_x : f32 , pub diag_y : f32 , pub diag_z : f32 , pub offdiag_x : f32 , pub offdiag_y : f32 , pub offdiag_z : f32 , pub compass_id : u8 , pub cal_mask : u8 , pub cal_status : MagCalStatus , pub autosaved : u8 , } impl MAG_CAL_REPORT_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { fitness : 0.0_f32 , ofs_x : 0.0_f32 , ofs_y : 0.0_f32 , ofs_z : 0.0_f32 , diag_x : 0.0_f32 , diag_y : 0.0_f32 , diag_z : 0.0_f32 , offdiag_x : 0.0_f32 , offdiag_y : 0.0_f32 , offdiag_z : 0.0_f32 , compass_id : 0_u8 , cal_mask : 0_u8 , cal_status : MagCalStatus :: DEFAULT , autosaved : 0_u8 , } ; } impl Default for MAG_CAL_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MAG_CAL_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 192u32 ; const NAME : & 'static str = "MAG_CAL_REPORT" ; const EXTRA_CRC : u8 = 36u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . fitness = buf . get_f32_le () ; __struct . ofs_x = buf . get_f32_le () ; __struct . ofs_y = buf . get_f32_le () ; __struct . ofs_z = buf . get_f32_le () ; __struct . diag_x = buf . get_f32_le () ; __struct . diag_y = buf . get_f32_le () ; __struct . diag_z = buf . get_f32_le () ; __struct . offdiag_x = buf . get_f32_le () ; __struct . offdiag_y = buf . get_f32_le () ; __struct . offdiag_z = buf . get_f32_le () ; __struct . compass_id = buf . get_u8 () ; __struct . cal_mask = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . cal_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MagCalStatus" , value : tmp as u32 }) ? ; __struct . autosaved = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . fitness) ; __tmp . put_f32_le (self . ofs_x) ; __tmp . put_f32_le (self . ofs_y) ; __tmp . put_f32_le (self . ofs_z) ; __tmp . put_f32_le (self . diag_x) ; __tmp . put_f32_le (self . diag_y) ; __tmp . put_f32_le (self . diag_z) ; __tmp . put_f32_le (self . offdiag_x) ; __tmp . put_f32_le (self . offdiag_y) ; __tmp . put_f32_le (self . offdiag_z) ; __tmp . put_u8 (self . compass_id) ; __tmp . put_u8 (self . cal_mask) ; __tmp . put_u8 (self . cal_status as u8) ; __tmp . put_u8 (self . autosaved) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVCAN_NODE_INFO_DATA { pub time_usec : u64 , pub uptime_sec : u32 , pub sw_vcs_commit : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 80] , pub hw_version_major : u8 , pub hw_version_minor : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub hw_unique_id : [u8 ; 16] , pub sw_version_major : u8 , pub sw_version_minor : u8 , } impl UAVCAN_NODE_INFO_DATA { pub const ENCODED_LEN : usize = 116usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime_sec : 0_u32 , sw_vcs_commit : 0_u32 , name : [0_u8 ; 80usize] , hw_version_major : 0_u8 , hw_version_minor : 0_u8 , hw_unique_id : [0_u8 ; 16usize] , sw_version_major : 0_u8 , sw_version_minor : 0_u8 , } ; } impl Default for UAVCAN_NODE_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVCAN_NODE_INFO_DATA { type Message = MavMessage ; const ID : u32 = 311u32 ; const NAME : & 'static str = "UAVCAN_NODE_INFO" ; const EXTRA_CRC : u8 = 95u8 ; const ENCODED_LEN : usize = 116usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime_sec = buf . get_u32_le () ; __struct . sw_vcs_commit = buf . get_u32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } __struct . hw_version_major = buf . get_u8 () ; __struct . hw_version_minor = buf . get_u8 () ; for v in & mut __struct . hw_unique_id { let val = buf . get_u8 () ; * v = val ; } __struct . sw_version_major = buf . get_u8 () ; __struct . sw_version_minor = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime_sec) ; __tmp . put_u32_le (self . sw_vcs_commit) ; for val in & self . name { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . hw_version_major) ; __tmp . put_u8 (self . hw_version_minor) ; for val in & self . hw_unique_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . sw_version_major) ; __tmp . put_u8 (self . sw_version_minor) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRACKING_GEO_STATUS_DATA { pub lat : i32 , pub lon : i32 , pub alt : f32 , pub h_acc : f32 , pub v_acc : f32 , pub vel_n : f32 , pub vel_e : f32 , pub vel_d : f32 , pub vel_acc : f32 , pub dist : f32 , pub hdg : f32 , pub hdg_acc : f32 , pub tracking_status : CameraTrackingStatusFlags , } impl CAMERA_TRACKING_GEO_STATUS_DATA { pub const ENCODED_LEN : usize = 49usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , h_acc : 0.0_f32 , v_acc : 0.0_f32 , vel_n : 0.0_f32 , vel_e : 0.0_f32 , vel_d : 0.0_f32 , vel_acc : 0.0_f32 , dist : 0.0_f32 , hdg : 0.0_f32 , hdg_acc : 0.0_f32 , tracking_status : CameraTrackingStatusFlags :: DEFAULT , } ; } impl Default for CAMERA_TRACKING_GEO_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRACKING_GEO_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 276u32 ; const NAME : & 'static str = "CAMERA_TRACKING_GEO_STATUS" ; const EXTRA_CRC : u8 = 18u8 ; const ENCODED_LEN : usize = 49usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . h_acc = buf . get_f32_le () ; __struct . v_acc = buf . get_f32_le () ; __struct . vel_n = buf . get_f32_le () ; __struct . vel_e = buf . get_f32_le () ; __struct . vel_d = buf . get_f32_le () ; __struct . vel_acc = buf . get_f32_le () ; __struct . dist = buf . get_f32_le () ; __struct . hdg = buf . get_f32_le () ; __struct . hdg_acc = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . tracking_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . h_acc) ; __tmp . put_f32_le (self . v_acc) ; __tmp . put_f32_le (self . vel_n) ; __tmp . put_f32_le (self . vel_e) ; __tmp . put_f32_le (self . vel_d) ; __tmp . put_f32_le (self . vel_acc) ; __tmp . put_f32_le (self . dist) ; __tmp . put_f32_le (self . hdg) ; __tmp . put_f32_le (self . hdg_acc) ; __tmp . put_u8 (self . tracking_status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { type Message = MavMessage ; const ID : u32 = 89u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET" ; const EXTRA_CRC : u8 = 231u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ISBD_LINK_STATUS_DATA { pub timestamp : u64 , pub last_heartbeat : u64 , pub failed_sessions : u16 , pub successful_sessions : u16 , pub signal_quality : u8 , pub ring_pending : u8 , pub tx_session_pending : u8 , pub rx_session_pending : u8 , } impl ISBD_LINK_STATUS_DATA { pub const ENCODED_LEN : usize = 24usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , last_heartbeat : 0_u64 , failed_sessions : 0_u16 , successful_sessions : 0_u16 , signal_quality : 0_u8 , ring_pending : 0_u8 , tx_session_pending : 0_u8 , rx_session_pending : 0_u8 , } ; } impl Default for ISBD_LINK_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ISBD_LINK_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 335u32 ; const NAME : & 'static str = "ISBD_LINK_STATUS" ; const EXTRA_CRC : u8 = 225u8 ; const ENCODED_LEN : usize = 24usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . last_heartbeat = buf . get_u64_le () ; __struct . failed_sessions = buf . get_u16_le () ; __struct . successful_sessions = buf . get_u16_le () ; __struct . signal_quality = buf . get_u8 () ; __struct . ring_pending = buf . get_u8 () ; __struct . tx_session_pending = buf . get_u8 () ; __struct . rx_session_pending = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u64_le (self . last_heartbeat) ; __tmp . put_u16_le (self . failed_sessions) ; __tmp . put_u16_le (self . successful_sessions) ; __tmp . put_u8 (self . signal_quality) ; __tmp . put_u8 (self . ring_pending) ; __tmp . put_u8 (self . tx_session_pending) ; __tmp . put_u8 (self . rx_session_pending) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SMART_BATTERY_INFO_DATA { pub capacity_full_specification : i32 , pub capacity_full : i32 , pub cycle_count : u16 , pub weight : u16 , pub discharge_minimum_voltage : u16 , pub charging_minimum_voltage : u16 , pub resting_minimum_voltage : u16 , pub id : u8 , pub battery_function : MavBatteryFunction , pub mavtype : MavBatteryType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub serial_number : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub device_name : [u8 ; 50] , } impl SMART_BATTERY_INFO_DATA { pub const ENCODED_LEN : usize = 87usize ; pub const DEFAULT : Self = Self { capacity_full_specification : 0_i32 , capacity_full : 0_i32 , cycle_count : 0_u16 , weight : 0_u16 , discharge_minimum_voltage : 0_u16 , charging_minimum_voltage : 0_u16 , resting_minimum_voltage : 0_u16 , id : 0_u8 , battery_function : MavBatteryFunction :: DEFAULT , mavtype : MavBatteryType :: DEFAULT , serial_number : [0_u8 ; 16usize] , device_name : [0_u8 ; 50usize] , } ; } impl Default for SMART_BATTERY_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SMART_BATTERY_INFO_DATA { type Message = MavMessage ; const ID : u32 = 370u32 ; const NAME : & 'static str = "SMART_BATTERY_INFO" ; const EXTRA_CRC : u8 = 75u8 ; const ENCODED_LEN : usize = 87usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . capacity_full_specification = buf . get_i32_le () ; __struct . capacity_full = buf . get_i32_le () ; __struct . cycle_count = buf . get_u16_le () ; __struct . weight = buf . get_u16_le () ; __struct . discharge_minimum_voltage = buf . get_u16_le () ; __struct . charging_minimum_voltage = buf . get_u16_le () ; __struct . resting_minimum_voltage = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . battery_function = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryFunction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryType" , value : tmp as u32 }) ? ; for v in & mut __struct . serial_number { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . device_name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . capacity_full_specification) ; __tmp . put_i32_le (self . capacity_full) ; __tmp . put_u16_le (self . cycle_count) ; __tmp . put_u16_le (self . weight) ; __tmp . put_u16_le (self . discharge_minimum_voltage) ; __tmp . put_u16_le (self . charging_minimum_voltage) ; __tmp . put_u16_le (self . resting_minimum_voltage) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . battery_function as u8) ; __tmp . put_u8 (self . mavtype as u8) ; for val in & self . serial_number { __tmp . put_u8 (* val) ; } for val in & self . device_name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ACTUATOR_OUTPUT_STATUS_DATA { pub time_usec : u64 , pub active : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub actuator : [f32 ; 32] , } impl ACTUATOR_OUTPUT_STATUS_DATA { pub const ENCODED_LEN : usize = 140usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , active : 0_u32 , actuator : [0.0_f32 ; 32usize] , } ; } impl Default for ACTUATOR_OUTPUT_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ACTUATOR_OUTPUT_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 375u32 ; const NAME : & 'static str = "ACTUATOR_OUTPUT_STATUS" ; const EXTRA_CRC : u8 = 251u8 ; const ENCODED_LEN : usize = 140usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . active = buf . get_u32_le () ; for v in & mut __struct . actuator { let val = buf . get_f32_le () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . active) ; for val in & self . actuator { __tmp . put_f32_le (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPONENT_INFORMATION_DATA { pub time_boot_ms : u32 , pub general_metadata_file_crc : u32 , pub peripherals_metadata_file_crc : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub general_metadata_uri : [u8 ; 100] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub peripherals_metadata_uri : [u8 ; 100] , } impl COMPONENT_INFORMATION_DATA { pub const ENCODED_LEN : usize = 212usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , general_metadata_file_crc : 0_u32 , peripherals_metadata_file_crc : 0_u32 , general_metadata_uri : [0_u8 ; 100usize] , peripherals_metadata_uri : [0_u8 ; 100usize] , } ; } impl Default for COMPONENT_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPONENT_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 395u32 ; const NAME : & 'static str = "COMPONENT_INFORMATION" ; const EXTRA_CRC : u8 = 0u8 ; const ENCODED_LEN : usize = 212usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . general_metadata_file_crc = buf . get_u32_le () ; __struct . peripherals_metadata_file_crc = buf . get_u32_le () ; for v in & mut __struct . general_metadata_uri { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . peripherals_metadata_uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . general_metadata_file_crc) ; __tmp . put_u32_le (self . peripherals_metadata_file_crc) ; for val in & self . general_metadata_uri { __tmp . put_u8 (* val) ; } for val in & self . peripherals_metadata_uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_REQUEST_DATA { pub mask : u64 , pub lat : i32 , pub lon : i32 , pub grid_spacing : u16 , } impl TERRAIN_REQUEST_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { mask : 0_u64 , lat : 0_i32 , lon : 0_i32 , grid_spacing : 0_u16 , } ; } impl Default for TERRAIN_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 133u32 ; const NAME : & 'static str = "TERRAIN_REQUEST" ; const EXTRA_CRC : u8 = 6u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mask = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . grid_spacing = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . mask) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . grid_spacing) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct STORAGE_INFORMATION_DATA { pub time_boot_ms : u32 , pub total_capacity : f32 , pub used_capacity : f32 , pub available_capacity : f32 , pub read_speed : f32 , pub write_speed : f32 , pub storage_id : u8 , pub storage_count : u8 , pub status : StorageStatus , } impl STORAGE_INFORMATION_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , total_capacity : 0.0_f32 , used_capacity : 0.0_f32 , available_capacity : 0.0_f32 , read_speed : 0.0_f32 , write_speed : 0.0_f32 , storage_id : 0_u8 , storage_count : 0_u8 , status : StorageStatus :: DEFAULT , } ; } impl Default for STORAGE_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for STORAGE_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 261u32 ; const NAME : & 'static str = "STORAGE_INFORMATION" ; const EXTRA_CRC : u8 = 179u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . total_capacity = buf . get_f32_le () ; __struct . used_capacity = buf . get_f32_le () ; __struct . available_capacity = buf . get_f32_le () ; __struct . read_speed = buf . get_f32_le () ; __struct . write_speed = buf . get_f32_le () ; __struct . storage_id = buf . get_u8 () ; __struct . storage_count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "StorageStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . total_capacity) ; __tmp . put_f32_le (self . used_capacity) ; __tmp . put_f32_le (self . available_capacity) ; __tmp . put_f32_le (self . read_speed) ; __tmp . put_f32_le (self . write_speed) ; __tmp . put_u8 (self . storage_id) ; __tmp . put_u8 (self . storage_count) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAN_FILTER_MODIFY_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub ids : [u16 ; 16] , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub operation : CanFilterOp , pub num_ids : u8 , } impl CAN_FILTER_MODIFY_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { ids : [0_u16 ; 16usize] , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , operation : CanFilterOp :: DEFAULT , num_ids : 0_u8 , } ; } impl Default for CAN_FILTER_MODIFY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAN_FILTER_MODIFY_DATA { type Message = MavMessage ; const ID : u32 = 388u32 ; const NAME : & 'static str = "CAN_FILTER_MODIFY" ; const EXTRA_CRC : u8 = 8u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . ids { let val = buf . get_u16_le () ; * v = val ; } __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . operation = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CanFilterOp" , value : tmp as u32 }) ? ; __struct . num_ids = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . ids { __tmp . put_u16_le (* val) ; } __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . operation as u8) ; __tmp . put_u8 (self . num_ids) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE_DATA { type Message = MavMessage ; const ID : u32 = 29u32 ; const NAME : & 'static str = "SCALED_PRESSURE" ; const EXTRA_CRC : u8 = 115u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_DATA_DATA { pub ofs : u32 , pub id : u16 , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 90] , } impl LOG_DATA_DATA { pub const ENCODED_LEN : usize = 97usize ; pub const DEFAULT : Self = Self { ofs : 0_u32 , id : 0_u16 , count : 0_u8 , data : [0_u8 ; 90usize] , } ; } impl Default for LOG_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_DATA_DATA { type Message = MavMessage ; const ID : u32 = 120u32 ; const NAME : & 'static str = "LOG_DATA" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 97usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ofs = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ofs) ; __tmp . put_u16_le (self . id) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGH_LATENCY2_DATA { pub timestamp : u32 , pub latitude : i32 , pub longitude : i32 , pub custom_mode : u16 , pub altitude : i16 , pub target_altitude : i16 , pub target_distance : u16 , pub wp_num : u16 , pub failure_flags : HlFailureFlag , pub mavtype : MavType , pub autopilot : MavAutopilot , pub heading : u8 , pub target_heading : u8 , pub throttle : u8 , pub airspeed : u8 , pub airspeed_sp : u8 , pub groundspeed : u8 , pub windspeed : u8 , pub wind_heading : u8 , pub eph : u8 , pub epv : u8 , pub temperature_air : i8 , pub climb_rate : i8 , pub battery : i8 , pub custom0 : i8 , pub custom1 : i8 , pub custom2 : i8 , } impl HIGH_LATENCY2_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { timestamp : 0_u32 , latitude : 0_i32 , longitude : 0_i32 , custom_mode : 0_u16 , altitude : 0_i16 , target_altitude : 0_i16 , target_distance : 0_u16 , wp_num : 0_u16 , failure_flags : HlFailureFlag :: DEFAULT , mavtype : MavType :: DEFAULT , autopilot : MavAutopilot :: DEFAULT , heading : 0_u8 , target_heading : 0_u8 , throttle : 0_u8 , airspeed : 0_u8 , airspeed_sp : 0_u8 , groundspeed : 0_u8 , windspeed : 0_u8 , wind_heading : 0_u8 , eph : 0_u8 , epv : 0_u8 , temperature_air : 0_i8 , climb_rate : 0_i8 , battery : 0_i8 , custom0 : 0_i8 , custom1 : 0_i8 , custom2 : 0_i8 , } ; } impl Default for HIGH_LATENCY2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGH_LATENCY2_DATA { type Message = MavMessage ; const ID : u32 = 235u32 ; const NAME : & 'static str = "HIGH_LATENCY2" ; const EXTRA_CRC : u8 = 179u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u32_le () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . custom_mode = buf . get_u16_le () ; __struct . altitude = buf . get_i16_le () ; __struct . target_altitude = buf . get_i16_le () ; __struct . target_distance = buf . get_u16_le () ; __struct . wp_num = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . failure_flags = HlFailureFlag :: from_bits (tmp & HlFailureFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HlFailureFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . autopilot = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavAutopilot" , value : tmp as u32 }) ? ; __struct . heading = buf . get_u8 () ; __struct . target_heading = buf . get_u8 () ; __struct . throttle = buf . get_u8 () ; __struct . airspeed = buf . get_u8 () ; __struct . airspeed_sp = buf . get_u8 () ; __struct . groundspeed = buf . get_u8 () ; __struct . windspeed = buf . get_u8 () ; __struct . wind_heading = buf . get_u8 () ; __struct . eph = buf . get_u8 () ; __struct . epv = buf . get_u8 () ; __struct . temperature_air = buf . get_i8 () ; __struct . climb_rate = buf . get_i8 () ; __struct . battery = buf . get_i8 () ; __struct . custom0 = buf . get_i8 () ; __struct . custom1 = buf . get_i8 () ; __struct . custom2 = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_u16_le (self . custom_mode) ; __tmp . put_i16_le (self . altitude) ; __tmp . put_i16_le (self . target_altitude) ; __tmp . put_u16_le (self . target_distance) ; __tmp . put_u16_le (self . wp_num) ; __tmp . put_u16_le (self . failure_flags . bits ()) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . autopilot as u8) ; __tmp . put_u8 (self . heading) ; __tmp . put_u8 (self . target_heading) ; __tmp . put_u8 (self . throttle) ; __tmp . put_u8 (self . airspeed) ; __tmp . put_u8 (self . airspeed_sp) ; __tmp . put_u8 (self . groundspeed) ; __tmp . put_u8 (self . windspeed) ; __tmp . put_u8 (self . wind_heading) ; __tmp . put_u8 (self . eph) ; __tmp . put_u8 (self . epv) ; __tmp . put_i8 (self . temperature_air) ; __tmp . put_i8 (self . climb_rate) ; __tmp . put_i8 (self . battery) ; __tmp . put_i8 (self . custom0) ; __tmp . put_i8 (self . custom1) ; __tmp . put_i8 (self . custom2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_LOCATION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude_barometric : f32 , pub altitude_geodetic : f32 , pub height : f32 , pub timestamp : f32 , pub direction : u16 , pub speed_horizontal : u16 , pub speed_vertical : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub status : MavOdidStatus , pub height_reference : MavOdidHeightRef , pub horizontal_accuracy : MavOdidHorAcc , pub vertical_accuracy : MavOdidVerAcc , pub barometer_accuracy : MavOdidVerAcc , pub speed_accuracy : MavOdidSpeedAcc , pub timestamp_accuracy : MavOdidTimeAcc , } impl OPEN_DRONE_ID_LOCATION_DATA { pub const ENCODED_LEN : usize = 59usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude_barometric : 0.0_f32 , altitude_geodetic : 0.0_f32 , height : 0.0_f32 , timestamp : 0.0_f32 , direction : 0_u16 , speed_horizontal : 0_u16 , speed_vertical : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , status : MavOdidStatus :: DEFAULT , height_reference : MavOdidHeightRef :: DEFAULT , horizontal_accuracy : MavOdidHorAcc :: DEFAULT , vertical_accuracy : MavOdidVerAcc :: DEFAULT , barometer_accuracy : MavOdidVerAcc :: DEFAULT , speed_accuracy : MavOdidSpeedAcc :: DEFAULT , timestamp_accuracy : MavOdidTimeAcc :: DEFAULT , } ; } impl Default for OPEN_DRONE_ID_LOCATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_LOCATION_DATA { type Message = MavMessage ; const ID : u32 = 12901u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_LOCATION" ; const EXTRA_CRC : u8 = 254u8 ; const ENCODED_LEN : usize = 59usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude_barometric = buf . get_f32_le () ; __struct . altitude_geodetic = buf . get_f32_le () ; __struct . height = buf . get_f32_le () ; __struct . timestamp = buf . get_f32_le () ; __struct . direction = buf . get_u16_le () ; __struct . speed_horizontal = buf . get_u16_le () ; __struct . speed_vertical = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . height_reference = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidHeightRef" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . horizontal_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidHorAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . vertical_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidVerAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . barometer_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidVerAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . speed_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidSpeedAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . timestamp_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidTimeAcc" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_f32_le (self . altitude_barometric) ; __tmp . put_f32_le (self . altitude_geodetic) ; __tmp . put_f32_le (self . height) ; __tmp . put_f32_le (self . timestamp) ; __tmp . put_u16_le (self . direction) ; __tmp . put_u16_le (self . speed_horizontal) ; __tmp . put_i16_le (self . speed_vertical) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . height_reference as u8) ; __tmp . put_u8 (self . horizontal_accuracy as u8) ; __tmp . put_u8 (self . vertical_accuracy as u8) ; __tmp . put_u8 (self . barometer_accuracy as u8) ; __tmp . put_u8 (self . speed_accuracy as u8) ; __tmp . put_u8 (self . timestamp_accuracy as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_AUTHENTICATION_DATA { pub timestamp : u32 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub authentication_type : MavOdidAuthType , pub data_page : u8 , pub last_page_index : u8 , pub length : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub authentication_data : [u8 ; 23] , } impl OPEN_DRONE_ID_AUTHENTICATION_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { timestamp : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , authentication_type : MavOdidAuthType :: DEFAULT , data_page : 0_u8 , last_page_index : 0_u8 , length : 0_u8 , authentication_data : [0_u8 ; 23usize] , } ; } impl Default for OPEN_DRONE_ID_AUTHENTICATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_AUTHENTICATION_DATA { type Message = MavMessage ; const ID : u32 = 12902u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_AUTHENTICATION" ; const EXTRA_CRC : u8 = 140u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . authentication_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidAuthType" , value : tmp as u32 }) ? ; __struct . data_page = buf . get_u8 () ; __struct . last_page_index = buf . get_u8 () ; __struct . length = buf . get_u8 () ; for v in & mut __struct . authentication_data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . authentication_type as u8) ; __tmp . put_u8 (self . data_page) ; __tmp . put_u8 (self . last_page_index) ; __tmp . put_u8 (self . length) ; for val in & self . authentication_data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_STATUS_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rpm : [i32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltage : [f32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub current : [f32 ; 4] , pub index : u8 , } impl ESC_STATUS_DATA { pub const ENCODED_LEN : usize = 57usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , rpm : [0_i32 ; 4usize] , voltage : [0.0_f32 ; 4usize] , current : [0.0_f32 ; 4usize] , index : 0_u8 , } ; } impl Default for ESC_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 291u32 ; const NAME : & 'static str = "ESC_STATUS" ; const EXTRA_CRC : u8 = 10u8 ; const ENCODED_LEN : usize = 57usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . rpm { let val = buf . get_i32_le () ; * v = val ; } for v in & mut __struct . voltage { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . current { let val = buf . get_f32_le () ; * v = val ; } __struct . index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . rpm { __tmp . put_i32_le (* val) ; } for val in & self . voltage { __tmp . put_f32_le (* val) ; } for val in & self . current { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct V2_EXTENSION_DATA { pub message_type : u16 , pub target_network : u8 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 249] , } impl V2_EXTENSION_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { message_type : 0_u16 , target_network : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , payload : [0_u8 ; 249usize] , } ; } impl Default for V2_EXTENSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for V2_EXTENSION_DATA { type Message = MavMessage ; const ID : u32 = 248u32 ; const NAME : & 'static str = "V2_EXTENSION" ; const EXTRA_CRC : u8 = 8u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . message_type = buf . get_u16_le () ; __struct . target_network = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . message_type) ; __tmp . put_u8 (self . target_network) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ORBIT_EXECUTION_STATUS_DATA { pub time_usec : u64 , pub radius : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub frame : MavFrame , } impl ORBIT_EXECUTION_STATUS_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , radius : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , frame : MavFrame :: DEFAULT , } ; } impl Default for ORBIT_EXECUTION_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ORBIT_EXECUTION_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 360u32 ; const NAME : & 'static str = "ORBIT_EXECUTION_STATUS" ; const EXTRA_CRC : u8 = 11u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . radius = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . radius) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGH_LATENCY_DATA { pub custom_mode : u32 , pub latitude : i32 , pub longitude : i32 , pub roll : i16 , pub pitch : i16 , pub heading : u16 , pub heading_sp : i16 , pub altitude_amsl : i16 , pub altitude_sp : i16 , pub wp_distance : u16 , pub base_mode : MavModeFlag , pub landed_state : MavLandedState , pub throttle : i8 , pub airspeed : u8 , pub airspeed_sp : u8 , pub groundspeed : u8 , pub climb_rate : i8 , pub gps_nsat : u8 , pub gps_fix_type : GpsFixType , pub battery_remaining : u8 , pub temperature : i8 , pub temperature_air : i8 , pub failsafe : u8 , pub wp_num : u8 , } impl HIGH_LATENCY_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , latitude : 0_i32 , longitude : 0_i32 , roll : 0_i16 , pitch : 0_i16 , heading : 0_u16 , heading_sp : 0_i16 , altitude_amsl : 0_i16 , altitude_sp : 0_i16 , wp_distance : 0_u16 , base_mode : MavModeFlag :: DEFAULT , landed_state : MavLandedState :: DEFAULT , throttle : 0_i8 , airspeed : 0_u8 , airspeed_sp : 0_u8 , groundspeed : 0_u8 , climb_rate : 0_i8 , gps_nsat : 0_u8 , gps_fix_type : GpsFixType :: DEFAULT , battery_remaining : 0_u8 , temperature : 0_i8 , temperature_air : 0_i8 , failsafe : 0_u8 , wp_num : 0_u8 , } ; } impl Default for HIGH_LATENCY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGH_LATENCY_DATA { type Message = MavMessage ; const ID : u32 = 234u32 ; const NAME : & 'static str = "HIGH_LATENCY" ; const EXTRA_CRC : u8 = 150u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . roll = buf . get_i16_le () ; __struct . pitch = buf . get_i16_le () ; __struct . heading = buf . get_u16_le () ; __struct . heading_sp = buf . get_i16_le () ; __struct . altitude_amsl = buf . get_i16_le () ; __struct . altitude_sp = buf . get_i16_le () ; __struct . wp_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . base_mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; __struct . throttle = buf . get_i8 () ; __struct . airspeed = buf . get_u8 () ; __struct . airspeed_sp = buf . get_u8 () ; __struct . groundspeed = buf . get_u8 () ; __struct . climb_rate = buf . get_i8 () ; __struct . gps_nsat = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . gps_fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . battery_remaining = buf . get_u8 () ; __struct . temperature = buf . get_i8 () ; __struct . temperature_air = buf . get_i8 () ; __struct . failsafe = buf . get_u8 () ; __struct . wp_num = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i16_le (self . roll) ; __tmp . put_i16_le (self . pitch) ; __tmp . put_u16_le (self . heading) ; __tmp . put_i16_le (self . heading_sp) ; __tmp . put_i16_le (self . altitude_amsl) ; __tmp . put_i16_le (self . altitude_sp) ; __tmp . put_u16_le (self . wp_distance) ; __tmp . put_u8 (self . base_mode . bits ()) ; __tmp . put_u8 (self . landed_state as u8) ; __tmp . put_i8 (self . throttle) ; __tmp . put_u8 (self . airspeed) ; __tmp . put_u8 (self . airspeed_sp) ; __tmp . put_u8 (self . groundspeed) ; __tmp . put_i8 (self . climb_rate) ; __tmp . put_u8 (self . gps_nsat) ; __tmp . put_u8 (self . gps_fix_type as u8) ; __tmp . put_u8 (self . battery_remaining) ; __tmp . put_i8 (self . temperature) ; __tmp . put_i8 (self . temperature_air) ; __tmp . put_u8 (self . failsafe) ; __tmp . put_u8 (self . wp_num) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SUPPORTED_TUNES_DATA { pub format : TuneFormat , pub target_system : u8 , pub target_component : u8 , } impl SUPPORTED_TUNES_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { format : TuneFormat :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SUPPORTED_TUNES_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SUPPORTED_TUNES_DATA { type Message = MavMessage ; const ID : u32 = 401u32 ; const NAME : & 'static str = "SUPPORTED_TUNES" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . format = TuneFormat :: from_bits (tmp & TuneFormat :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "TuneFormat" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . format . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AIS_VESSEL_DATA { pub MMSI : u32 , pub lat : i32 , pub lon : i32 , pub COG : u16 , pub heading : u16 , pub velocity : u16 , pub dimension_bow : u16 , pub dimension_stern : u16 , pub tslc : u16 , pub flags : AisFlags , pub turn_rate : i8 , pub navigational_status : AisNavStatus , pub mavtype : AisType , pub dimension_port : u8 , pub dimension_starboard : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 7] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 20] , } impl AIS_VESSEL_DATA { pub const ENCODED_LEN : usize = 58usize ; pub const DEFAULT : Self = Self { MMSI : 0_u32 , lat : 0_i32 , lon : 0_i32 , COG : 0_u16 , heading : 0_u16 , velocity : 0_u16 , dimension_bow : 0_u16 , dimension_stern : 0_u16 , tslc : 0_u16 , flags : AisFlags :: DEFAULT , turn_rate : 0_i8 , navigational_status : AisNavStatus :: DEFAULT , mavtype : AisType :: DEFAULT , dimension_port : 0_u8 , dimension_starboard : 0_u8 , callsign : [0_u8 ; 7usize] , name : [0_u8 ; 20usize] , } ; } impl Default for AIS_VESSEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AIS_VESSEL_DATA { type Message = MavMessage ; const ID : u32 = 301u32 ; const NAME : & 'static str = "AIS_VESSEL" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 58usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . MMSI = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . COG = buf . get_u16_le () ; __struct . heading = buf . get_u16_le () ; __struct . velocity = buf . get_u16_le () ; __struct . dimension_bow = buf . get_u16_le () ; __struct . dimension_stern = buf . get_u16_le () ; __struct . tslc = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = AisFlags :: from_bits (tmp & AisFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AisFlags" , value : tmp as u32 }) ? ; __struct . turn_rate = buf . get_i8 () ; let tmp = buf . get_u8 () ; __struct . navigational_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AisNavStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AisType" , value : tmp as u32 }) ? ; __struct . dimension_port = buf . get_u8 () ; __struct . dimension_starboard = buf . get_u8 () ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . MMSI) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . COG) ; __tmp . put_u16_le (self . heading) ; __tmp . put_u16_le (self . velocity) ; __tmp . put_u16_le (self . dimension_bow) ; __tmp . put_u16_le (self . dimension_stern) ; __tmp . put_u16_le (self . tslc) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_i8 (self . turn_rate) ; __tmp . put_u8 (self . navigational_status as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . dimension_port) ; __tmp . put_u8 (self . dimension_starboard) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FILE_TRANSFER_PROTOCOL_DATA { pub target_network : u8 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 251] , } impl FILE_TRANSFER_PROTOCOL_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { target_network : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , payload : [0_u8 ; 251usize] , } ; } impl Default for FILE_TRANSFER_PROTOCOL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FILE_TRANSFER_PROTOCOL_DATA { type Message = MavMessage ; const ID : u32 = 110u32 ; const NAME : & 'static str = "FILE_TRANSFER_PROTOCOL" ; const EXTRA_CRC : u8 = 84u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_network = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_network) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGHRES_IMU_DATA { pub time_usec : u64 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub xmag : f32 , pub ymag : f32 , pub zmag : f32 , pub abs_pressure : f32 , pub diff_pressure : f32 , pub pressure_alt : f32 , pub temperature : f32 , pub fields_updated : HighresImuUpdatedFlags , } impl HIGHRES_IMU_DATA { pub const ENCODED_LEN : usize = 62usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , xmag : 0.0_f32 , ymag : 0.0_f32 , zmag : 0.0_f32 , abs_pressure : 0.0_f32 , diff_pressure : 0.0_f32 , pressure_alt : 0.0_f32 , temperature : 0.0_f32 , fields_updated : HighresImuUpdatedFlags :: DEFAULT , } ; } impl Default for HIGHRES_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGHRES_IMU_DATA { type Message = MavMessage ; const ID : u32 = 105u32 ; const NAME : & 'static str = "HIGHRES_IMU" ; const EXTRA_CRC : u8 = 93u8 ; const ENCODED_LEN : usize = 62usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . xmag = buf . get_f32_le () ; __struct . ymag = buf . get_f32_le () ; __struct . zmag = buf . get_f32_le () ; __struct . abs_pressure = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . pressure_alt = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . fields_updated = HighresImuUpdatedFlags :: from_bits (tmp & HighresImuUpdatedFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HighresImuUpdatedFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . xmag) ; __tmp . put_f32_le (self . ymag) ; __tmp . put_f32_le (self . zmag) ; __tmp . put_f32_le (self . abs_pressure) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . pressure_alt) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u16_le (self . fields_updated . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_PARTIAL_LIST_DATA { pub start_index : i16 , pub end_index : i16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_PARTIAL_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start_index : 0_i16 , end_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_PARTIAL_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_PARTIAL_LIST_DATA { type Message = MavMessage ; const ID : u32 = 37u32 ; const NAME : & 'static str = "MISSION_REQUEST_PARTIAL_LIST" ; const EXTRA_CRC : u8 = 212u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start_index = buf . get_i16_le () ; __struct . end_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . start_index) ; __tmp . put_i16_le (self . end_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COLLISION_DATA { pub id : u32 , pub time_to_minimum_delta : f32 , pub altitude_minimum_delta : f32 , pub horizontal_minimum_delta : f32 , pub src : MavCollisionSrc , pub action : MavCollisionAction , pub threat_level : MavCollisionThreatLevel , } impl COLLISION_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { id : 0_u32 , time_to_minimum_delta : 0.0_f32 , altitude_minimum_delta : 0.0_f32 , horizontal_minimum_delta : 0.0_f32 , src : MavCollisionSrc :: DEFAULT , action : MavCollisionAction :: DEFAULT , threat_level : MavCollisionThreatLevel :: DEFAULT , } ; } impl Default for COLLISION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COLLISION_DATA { type Message = MavMessage ; const ID : u32 = 247u32 ; const NAME : & 'static str = "COLLISION" ; const EXTRA_CRC : u8 = 81u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . time_to_minimum_delta = buf . get_f32_le () ; __struct . altitude_minimum_delta = buf . get_f32_le () ; __struct . horizontal_minimum_delta = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . src = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionSrc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . action = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionAction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . threat_level = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionThreatLevel" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_f32_le (self . time_to_minimum_delta) ; __tmp . put_f32_le (self . altitude_minimum_delta) ; __tmp . put_f32_le (self . horizontal_minimum_delta) ; __tmp . put_u8 (self . src as u8) ; __tmp . put_u8 (self . action as u8) ; __tmp . put_u8 (self . threat_level as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_DATA { pub time_boot_ms : u32 , pub value : f32 , pub ind : u8 , } impl DEBUG_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0.0_f32 , ind : 0_u8 , } ; } impl Default for DEBUG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_DATA { type Message = MavMessage ; const ID : u32 = 254u32 ; const NAME : & 'static str = "DEBUG" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_f32_le () ; __struct . ind = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . value) ; __tmp . put_u8 (self . ind) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SETUP_SIGNING_DATA { pub initial_timestamp : u64 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub secret_key : [u8 ; 32] , } impl SETUP_SIGNING_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { initial_timestamp : 0_u64 , target_system : 0_u8 , target_component : 0_u8 , secret_key : [0_u8 ; 32usize] , } ; } impl Default for SETUP_SIGNING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SETUP_SIGNING_DATA { type Message = MavMessage ; const ID : u32 = 256u32 ; const NAME : & 'static str = "SETUP_SIGNING" ; const EXTRA_CRC : u8 = 71u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . initial_timestamp = buf . get_u64_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . secret_key { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . initial_timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . secret_key { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE3_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE3_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE3_DATA { type Message = MavMessage ; const ID : u32 = 143u32 ; const NAME : & 'static str = "SCALED_PRESSURE3" ; const EXTRA_CRC : u8 = 131u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU2_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU2_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU2_DATA { type Message = MavMessage ; const ID : u32 = 116u32 ; const NAME : & 'static str = "SCALED_IMU2" ; const EXTRA_CRC : u8 = 76u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_ACK_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOGGING_ACK_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOGGING_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_ACK_DATA { type Message = MavMessage ; const ID : u32 = 268u32 ; const NAME : & 'static str = "LOGGING_ACK" ; const EXTRA_CRC : u8 = 14u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VICON_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl VICON_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for VICON_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VICON_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 104u32 ; const NAME : & 'static str = "VICON_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 56u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_INFO_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub error_count : [u32 ; 4] , pub counter : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub failure_flags : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature : [i16 ; 4] , pub index : u8 , pub count : u8 , pub connection_type : EscConnectionType , pub info : u8 , } impl ESC_INFO_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , error_count : [0_u32 ; 4usize] , counter : 0_u16 , failure_flags : [0_u16 ; 4usize] , temperature : [0_i16 ; 4usize] , index : 0_u8 , count : 0_u8 , connection_type : EscConnectionType :: DEFAULT , info : 0_u8 , } ; } impl Default for ESC_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_INFO_DATA { type Message = MavMessage ; const ID : u32 = 290u32 ; const NAME : & 'static str = "ESC_INFO" ; const EXTRA_CRC : u8 = 251u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . error_count { let val = buf . get_u32_le () ; * v = val ; } __struct . counter = buf . get_u16_le () ; for v in & mut __struct . failure_flags { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . temperature { let val = buf . get_i16_le () ; * v = val ; } __struct . index = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . connection_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "EscConnectionType" , value : tmp as u32 }) ? ; __struct . info = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . error_count { __tmp . put_u32_le (* val) ; } __tmp . put_u16_le (self . counter) ; for val in & self . failure_flags { __tmp . put_u16_le (* val) ; } for val in & self . temperature { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . index) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . connection_type as u8) ; __tmp . put_u8 (self . info) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_VALUE_DATA { pub param_count : u16 , pub param_index : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , } impl PARAM_EXT_VALUE_DATA { pub const ENCODED_LEN : usize = 149usize ; pub const DEFAULT : Self = Self { param_count : 0_u16 , param_index : 0_u16 , param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , } ; } impl Default for PARAM_EXT_VALUE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_VALUE_DATA { type Message = MavMessage ; const ID : u32 = 322u32 ; const NAME : & 'static str = "PARAM_EXT_VALUE" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 149usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_count = buf . get_u16_le () ; __struct . param_index = buf . get_u16_le () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . param_count) ; __tmp . put_u16_le (self . param_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PLAY_TUNE_V2_DATA { pub format : TuneFormat , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub tune : [u8 ; 248] , } impl PLAY_TUNE_V2_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { format : TuneFormat :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , tune : [0_u8 ; 248usize] , } ; } impl Default for PLAY_TUNE_V2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PLAY_TUNE_V2_DATA { type Message = MavMessage ; const ID : u32 = 400u32 ; const NAME : & 'static str = "PLAY_TUNE_V2" ; const EXTRA_CRC : u8 = 110u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . format = TuneFormat :: from_bits (tmp & TuneFormat :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "TuneFormat" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . tune { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . format . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . tune { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_ARM_STATUS_DATA { pub status : MavOdidArmStatus , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub error : [u8 ; 50] , } impl OPEN_DRONE_ID_ARM_STATUS_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { status : MavOdidArmStatus :: DEFAULT , error : [0_u8 ; 50usize] , } ; } impl Default for OPEN_DRONE_ID_ARM_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_ARM_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 12918u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_ARM_STATUS" ; const EXTRA_CRC : u8 = 139u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidArmStatus" , value : tmp as u32 }) ? ; for v in & mut __struct . error { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . status as u8) ; for val in & self . error { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_STATUS_DATA { pub time_boot_ms : u32 , pub flags : GimbalManagerFlags , pub gimbal_device_id : u8 , pub primary_control_sysid : u8 , pub primary_control_compid : u8 , pub secondary_control_sysid : u8 , pub secondary_control_compid : u8 , } impl GIMBAL_MANAGER_STATUS_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , flags : GimbalManagerFlags :: DEFAULT , gimbal_device_id : 0_u8 , primary_control_sysid : 0_u8 , primary_control_compid : 0_u8 , secondary_control_sysid : 0_u8 , secondary_control_compid : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 281u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_STATUS" ; const EXTRA_CRC : u8 = 48u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . gimbal_device_id = buf . get_u8 () ; __struct . primary_control_sysid = buf . get_u8 () ; __struct . primary_control_compid = buf . get_u8 () ; __struct . secondary_control_sysid = buf . get_u8 () ; __struct . secondary_control_compid = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_u8 (self . gimbal_device_id) ; __tmp . put_u8 (self . primary_control_sysid) ; __tmp . put_u8 (self . primary_control_compid) ; __tmp . put_u8 (self . secondary_control_sysid) ; __tmp . put_u8 (self . secondary_control_compid) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MANUAL_CONTROL_DATA { pub x : i16 , pub y : i16 , pub z : i16 , pub r : i16 , pub buttons : u16 , pub target : u8 , } impl MANUAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 11usize ; pub const DEFAULT : Self = Self { x : 0_i16 , y : 0_i16 , z : 0_i16 , r : 0_i16 , buttons : 0_u16 , target : 0_u8 , } ; } impl Default for MANUAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MANUAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 69u32 ; const NAME : & 'static str = "MANUAL_CONTROL" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 11usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . x = buf . get_i16_le () ; __struct . y = buf . get_i16_le () ; __struct . z = buf . get_i16_le () ; __struct . r = buf . get_i16_le () ; __struct . buttons = buf . get_u16_le () ; __struct . target = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . x) ; __tmp . put_i16_le (self . y) ; __tmp . put_i16_le (self . z) ; __tmp . put_i16_le (self . r) ; __tmp . put_u16_le (self . buttons) ; __tmp . put_u8 (self . target) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PROTOCOL_VERSION_DATA { pub version : u16 , pub min_version : u16 , pub max_version : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub spec_version_hash : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub library_version_hash : [u8 ; 8] , } impl PROTOCOL_VERSION_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { version : 0_u16 , min_version : 0_u16 , max_version : 0_u16 , spec_version_hash : [0_u8 ; 8usize] , library_version_hash : [0_u8 ; 8usize] , } ; } impl Default for PROTOCOL_VERSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PROTOCOL_VERSION_DATA { type Message = MavMessage ; const ID : u32 = 300u32 ; const NAME : & 'static str = "PROTOCOL_VERSION" ; const EXTRA_CRC : u8 = 217u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . version = buf . get_u16_le () ; __struct . min_version = buf . get_u16_le () ; __struct . max_version = buf . get_u16_le () ; for v in & mut __struct . spec_version_hash { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . library_version_hash { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . version) ; __tmp . put_u16_le (self . min_version) ; __tmp . put_u16_le (self . max_version) ; for val in & self . spec_version_hash { __tmp . put_u8 (* val) ; } for val in & self . library_version_hash { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CHANGE_OPERATOR_CONTROL_DATA { pub target_system : u8 , pub control_request : u8 , pub version : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub passkey : [u8 ; 25] , } impl CHANGE_OPERATOR_CONTROL_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , control_request : 0_u8 , version : 0_u8 , passkey : [0_u8 ; 25usize] , } ; } impl Default for CHANGE_OPERATOR_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CHANGE_OPERATOR_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 5u32 ; const NAME : & 'static str = "CHANGE_OPERATOR_CONTROL" ; const EXTRA_CRC : u8 = 217u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . control_request = buf . get_u8 () ; __struct . version = buf . get_u8 () ; for v in & mut __struct . passkey { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . control_request) ; __tmp . put_u8 (self . version) ; for val in & self . passkey { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , } impl LOCAL_POSITION_NED_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , } ; } impl Default for LOCAL_POSITION_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_DATA { type Message = MavMessage ; const ID : u32 = 32u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED" ; const EXTRA_CRC : u8 = 185u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_SENSOR_DATA { pub time_usec : u64 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub xmag : f32 , pub ymag : f32 , pub zmag : f32 , pub abs_pressure : f32 , pub diff_pressure : f32 , pub pressure_alt : f32 , pub temperature : f32 , pub fields_updated : HilSensorUpdatedFlags , } impl HIL_SENSOR_DATA { pub const ENCODED_LEN : usize = 64usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , xmag : 0.0_f32 , ymag : 0.0_f32 , zmag : 0.0_f32 , abs_pressure : 0.0_f32 , diff_pressure : 0.0_f32 , pressure_alt : 0.0_f32 , temperature : 0.0_f32 , fields_updated : HilSensorUpdatedFlags :: DEFAULT , } ; } impl Default for HIL_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 107u32 ; const NAME : & 'static str = "HIL_SENSOR" ; const EXTRA_CRC : u8 = 108u8 ; const ENCODED_LEN : usize = 64usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . xmag = buf . get_f32_le () ; __struct . ymag = buf . get_f32_le () ; __struct . zmag = buf . get_f32_le () ; __struct . abs_pressure = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . pressure_alt = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . fields_updated = HilSensorUpdatedFlags :: from_bits (tmp & HilSensorUpdatedFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HilSensorUpdatedFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . xmag) ; __tmp . put_f32_le (self . ymag) ; __tmp . put_f32_le (self . zmag) ; __tmp . put_f32_le (self . abs_pressure) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . pressure_alt) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u32_le (self . fields_updated . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FOLLOW_TARGET_DATA { pub timestamp : u64 , pub custom_state : u64 , pub lat : i32 , pub lon : i32 , pub alt : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub attitude_q : [f32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rates : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub position_cov : [f32 ; 3] , pub est_capabilities : u8 , } impl FOLLOW_TARGET_DATA { pub const ENCODED_LEN : usize = 93usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , custom_state : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , vel : [0.0_f32 ; 3usize] , acc : [0.0_f32 ; 3usize] , attitude_q : [0.0_f32 ; 4usize] , rates : [0.0_f32 ; 3usize] , position_cov : [0.0_f32 ; 3usize] , est_capabilities : 0_u8 , } ; } impl Default for FOLLOW_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FOLLOW_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 144u32 ; const NAME : & 'static str = "FOLLOW_TARGET" ; const EXTRA_CRC : u8 = 127u8 ; const ENCODED_LEN : usize = 93usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . custom_state = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; for v in & mut __struct . vel { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . attitude_q { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . rates { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . position_cov { let val = buf . get_f32_le () ; * v = val ; } __struct . est_capabilities = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u64_le (self . custom_state) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; for val in & self . vel { __tmp . put_f32_le (* val) ; } for val in & self . acc { __tmp . put_f32_le (* val) ; } for val in & self . attitude_q { __tmp . put_f32_le (* val) ; } for val in & self . rates { __tmp . put_f32_le (* val) ; } for val in & self . position_cov { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . est_capabilities) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_MESSAGE_PACK_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub single_message_size : u8 , pub msg_pack_size : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub messages : [u8 ; 225] , } impl OPEN_DRONE_ID_MESSAGE_PACK_DATA { pub const ENCODED_LEN : usize = 249usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , single_message_size : 0_u8 , msg_pack_size : 0_u8 , messages : [0_u8 ; 225usize] , } ; } impl Default for OPEN_DRONE_ID_MESSAGE_PACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_MESSAGE_PACK_DATA { type Message = MavMessage ; const ID : u32 = 12915u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_MESSAGE_PACK" ; const EXTRA_CRC : u8 = 94u8 ; const ENCODED_LEN : usize = 249usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } __struct . single_message_size = buf . get_u8 () ; __struct . msg_pack_size = buf . get_u8 () ; for v in & mut __struct . messages { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . single_message_size) ; __tmp . put_u8 (self . msg_pack_size) ; for val in & self . messages { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_MAP_RC_DATA { pub param_value0 : f32 , pub scale : f32 , pub param_value_min : f32 , pub param_value_max : f32 , pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub parameter_rc_channel_index : u8 , } impl PARAM_MAP_RC_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param_value0 : 0.0_f32 , scale : 0.0_f32 , param_value_min : 0.0_f32 , param_value_max : 0.0_f32 , param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , parameter_rc_channel_index : 0_u8 , } ; } impl Default for PARAM_MAP_RC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_MAP_RC_DATA { type Message = MavMessage ; const ID : u32 = 50u32 ; const NAME : & 'static str = "PARAM_MAP_RC" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value0 = buf . get_f32_le () ; __struct . scale = buf . get_f32_le () ; __struct . param_value_min = buf . get_f32_le () ; __struct . param_value_max = buf . get_f32_le () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } __struct . parameter_rc_channel_index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value0) ; __tmp . put_f32_le (self . scale) ; __tmp . put_f32_le (self . param_value_min) ; __tmp . put_f32_le (self . param_value_max) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . parameter_rc_channel_index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HYGROMETER_SENSOR_DATA { pub temperature : i16 , pub humidity : u16 , pub id : u8 , } impl HYGROMETER_SENSOR_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { temperature : 0_i16 , humidity : 0_u16 , id : 0_u8 , } ; } impl Default for HYGROMETER_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HYGROMETER_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 12920u32 ; const NAME : & 'static str = "HYGROMETER_SENSOR" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . temperature = buf . get_i16_le () ; __struct . humidity = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u16_le (self . humidity) ; __tmp . put_u8 (self . id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct STATUSTEXT_DATA { pub severity : MavSeverity , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub text : [u8 ; 50] , } impl STATUSTEXT_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { severity : MavSeverity :: DEFAULT , text : [0_u8 ; 50usize] , } ; } impl Default for STATUSTEXT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for STATUSTEXT_DATA { type Message = MavMessage ; const ID : u32 = 253u32 ; const NAME : & 'static str = "STATUSTEXT" ; const EXTRA_CRC : u8 = 83u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . severity = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavSeverity" , value : tmp as u32 }) ? ; for v in & mut __struct . text { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . severity as u8) ; for val in & self . text { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_STATE_DATA { pub time_usec : u64 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , } impl HIL_STATE_DATA { pub const ENCODED_LEN : usize = 56usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , } ; } impl Default for HIL_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_STATE_DATA { type Message = MavMessage ; const ID : u32 = 90u32 ; const NAME : & 'static str = "HIL_STATE" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 56usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POWER_STATUS_DATA { pub Vcc : u16 , pub Vservo : u16 , pub flags : MavPowerStatus , } impl POWER_STATUS_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { Vcc : 0_u16 , Vservo : 0_u16 , flags : MavPowerStatus :: DEFAULT , } ; } impl Default for POWER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POWER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 125u32 ; const NAME : & 'static str = "POWER_STATUS" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . Vcc = buf . get_u16_le () ; __struct . Vservo = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = MavPowerStatus :: from_bits (tmp & MavPowerStatus :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavPowerStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . Vcc) ; __tmp . put_u16_le (self . Vservo) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HEARTBEAT_DATA { pub custom_mode : u32 , pub mavtype : MavType , pub autopilot : MavAutopilot , pub base_mode : MavModeFlag , pub system_status : MavState , pub mavlink_version : u8 , } impl HEARTBEAT_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , mavtype : MavType :: DEFAULT , autopilot : MavAutopilot :: DEFAULT , base_mode : MavModeFlag :: DEFAULT , system_status : MavState :: DEFAULT , mavlink_version : 0_u8 , } ; } impl Default for HEARTBEAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HEARTBEAT_DATA { type Message = MavMessage ; const ID : u32 = 0u32 ; const NAME : & 'static str = "HEARTBEAT" ; const EXTRA_CRC : u8 = 50u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . autopilot = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavAutopilot" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . base_mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . system_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavState" , value : tmp as u32 }) ? ; __struct . mavlink_version = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . autopilot as u8) ; __tmp . put_u8 (self . base_mode . bits ()) ; __tmp . put_u8 (self . system_status as u8) ; __tmp . put_u8 (self . mavlink_version) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIND_COV_DATA { pub time_usec : u64 , pub wind_x : f32 , pub wind_y : f32 , pub wind_z : f32 , pub var_horiz : f32 , pub var_vert : f32 , pub wind_alt : f32 , pub horiz_accuracy : f32 , pub vert_accuracy : f32 , } impl WIND_COV_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , wind_x : 0.0_f32 , wind_y : 0.0_f32 , wind_z : 0.0_f32 , var_horiz : 0.0_f32 , var_vert : 0.0_f32 , wind_alt : 0.0_f32 , horiz_accuracy : 0.0_f32 , vert_accuracy : 0.0_f32 , } ; } impl Default for WIND_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIND_COV_DATA { type Message = MavMessage ; const ID : u32 = 231u32 ; const NAME : & 'static str = "WIND_COV" ; const EXTRA_CRC : u8 = 105u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . wind_x = buf . get_f32_le () ; __struct . wind_y = buf . get_f32_le () ; __struct . wind_z = buf . get_f32_le () ; __struct . var_horiz = buf . get_f32_le () ; __struct . var_vert = buf . get_f32_le () ; __struct . wind_alt = buf . get_f32_le () ; __struct . horiz_accuracy = buf . get_f32_le () ; __struct . vert_accuracy = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . wind_x) ; __tmp . put_f32_le (self . wind_y) ; __tmp . put_f32_le (self . wind_z) ; __tmp . put_f32_le (self . var_horiz) ; __tmp . put_f32_le (self . var_vert) ; __tmp . put_f32_le (self . wind_alt) ; __tmp . put_f32_le (self . horiz_accuracy) ; __tmp . put_f32_le (self . vert_accuracy) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { pub time_boot_us : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub q_estimated_delay_us : u32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub v_estimated_delay_us : u32 , pub feed_forward_angular_velocity_z : f32 , pub estimator_status : EstimatorStatusFlags , pub target_system : u8 , pub target_component : u8 , pub landed_state : MavLandedState , } impl AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_us : 0_u64 , q : [0.0_f32 ; 4usize] , q_estimated_delay_us : 0_u32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , v_estimated_delay_us : 0_u32 , feed_forward_angular_velocity_z : 0.0_f32 , estimator_status : EstimatorStatusFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , landed_state : MavLandedState :: DEFAULT , } ; } impl Default for AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { type Message = MavMessage ; const ID : u32 = 286u32 ; const NAME : & 'static str = "AUTOPILOT_STATE_FOR_GIMBAL_DEVICE" ; const EXTRA_CRC : u8 = 210u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_us = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . q_estimated_delay_us = buf . get_u32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . v_estimated_delay_us = buf . get_u32_le () ; __struct . feed_forward_angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . estimator_status = EstimatorStatusFlags :: from_bits (tmp & EstimatorStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EstimatorStatusFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_boot_us) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_u32_le (self . q_estimated_delay_us) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_u32_le (self . v_estimated_delay_us) ; __tmp . put_f32_le (self . feed_forward_angular_velocity_z) ; __tmp . put_u16_le (self . estimator_status . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . landed_state as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_POSITION_INT_DATA { pub time_boot_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub hdg : u16 , } impl GLOBAL_POSITION_INT_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , hdg : 0_u16 , } ; } impl Default for GLOBAL_POSITION_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_POSITION_INT_DATA { type Message = MavMessage ; const ID : u32 = 33u32 ; const NAME : & 'static str = "GLOBAL_POSITION_INT" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . hdg = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . hdg) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_RC_INPUTS_RAW_DATA { pub time_usec : u64 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub chan9_raw : u16 , pub chan10_raw : u16 , pub chan11_raw : u16 , pub chan12_raw : u16 , pub rssi : u8 , } impl HIL_RC_INPUTS_RAW_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , chan9_raw : 0_u16 , chan10_raw : 0_u16 , chan11_raw : 0_u16 , chan12_raw : 0_u16 , rssi : 0_u8 , } ; } impl Default for HIL_RC_INPUTS_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_RC_INPUTS_RAW_DATA { type Message = MavMessage ; const ID : u32 = 92u32 ; const NAME : & 'static str = "HIL_RC_INPUTS_RAW" ; const EXTRA_CRC : u8 = 54u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . chan9_raw = buf . get_u16_le () ; __struct . chan10_raw = buf . get_u16_le () ; __struct . chan11_raw = buf . get_u16_le () ; __struct . chan12_raw = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u16_le (self . chan9_raw) ; __tmp . put_u16_le (self . chan10_raw) ; __tmp . put_u16_le (self . chan11_raw) ; __tmp . put_u16_le (self . chan12_raw) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS2_RAW_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub dgps_age : u32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub cog : u16 , pub fix_type : GpsFixType , pub satellites_visible : u8 , pub dgps_numch : u8 , } impl GPS2_RAW_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , dgps_age : 0_u32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , cog : 0_u16 , fix_type : GpsFixType :: DEFAULT , satellites_visible : 0_u8 , dgps_numch : 0_u8 , } ; } impl Default for GPS2_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS2_RAW_DATA { type Message = MavMessage ; const ID : u32 = 124u32 ; const NAME : & 'static str = "GPS2_RAW" ; const EXTRA_CRC : u8 = 87u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . dgps_age = buf . get_u32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . cog = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . satellites_visible = buf . get_u8 () ; __struct . dgps_numch = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u32_le (self . dgps_age) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type as u8) ; __tmp . put_u8 (self . satellites_visible) ; __tmp . put_u8 (self . dgps_numch) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GENERATOR_STATUS_DATA { pub status : MavGeneratorStatusFlag , pub battery_current : f32 , pub load_current : f32 , pub power_generated : f32 , pub bus_voltage : f32 , pub bat_current_setpoint : f32 , pub runtime : u32 , pub time_until_maintenance : i32 , pub generator_speed : u16 , pub rectifier_temperature : i16 , pub generator_temperature : i16 , } impl GENERATOR_STATUS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { status : MavGeneratorStatusFlag :: DEFAULT , battery_current : 0.0_f32 , load_current : 0.0_f32 , power_generated : 0.0_f32 , bus_voltage : 0.0_f32 , bat_current_setpoint : 0.0_f32 , runtime : 0_u32 , time_until_maintenance : 0_i32 , generator_speed : 0_u16 , rectifier_temperature : 0_i16 , generator_temperature : 0_i16 , } ; } impl Default for GENERATOR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GENERATOR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 373u32 ; const NAME : & 'static str = "GENERATOR_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u64_le () ; __struct . status = MavGeneratorStatusFlag :: from_bits (tmp & MavGeneratorStatusFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavGeneratorStatusFlag" , value : tmp as u32 }) ? ; __struct . battery_current = buf . get_f32_le () ; __struct . load_current = buf . get_f32_le () ; __struct . power_generated = buf . get_f32_le () ; __struct . bus_voltage = buf . get_f32_le () ; __struct . bat_current_setpoint = buf . get_f32_le () ; __struct . runtime = buf . get_u32_le () ; __struct . time_until_maintenance = buf . get_i32_le () ; __struct . generator_speed = buf . get_u16_le () ; __struct . rectifier_temperature = buf . get_i16_le () ; __struct . generator_temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . status . bits ()) ; __tmp . put_f32_le (self . battery_current) ; __tmp . put_f32_le (self . load_current) ; __tmp . put_f32_le (self . power_generated) ; __tmp . put_f32_le (self . bus_voltage) ; __tmp . put_f32_le (self . bat_current_setpoint) ; __tmp . put_u32_le (self . runtime) ; __tmp . put_i32_le (self . time_until_maintenance) ; __tmp . put_u16_le (self . generator_speed) ; __tmp . put_i16_le (self . rectifier_temperature) ; __tmp . put_i16_le (self . generator_temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_SPEED_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , } impl VISION_SPEED_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , } ; } impl Default for VISION_SPEED_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_SPEED_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 103u32 ; const NAME : & 'static str = "VISION_SPEED_ESTIMATE" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_REQUEST_READ_DATA { pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , } impl PARAM_REQUEST_READ_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , } ; } impl Default for PARAM_REQUEST_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_REQUEST_READ_DATA { type Message = MavMessage ; const ID : u32 = 20u32 ; const NAME : & 'static str = "PARAM_REQUEST_READ" ; const EXTRA_CRC : u8 = 214u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_ATTITUDE_TARGET_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub body_roll_rate : f32 , pub body_pitch_rate : f32 , pub body_yaw_rate : f32 , pub thrust : f32 , pub target_system : u8 , pub target_component : u8 , pub type_mask : AttitudeTargetTypemask , } impl SET_ATTITUDE_TARGET_DATA { pub const ENCODED_LEN : usize = 39usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , body_roll_rate : 0.0_f32 , body_pitch_rate : 0.0_f32 , body_yaw_rate : 0.0_f32 , thrust : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , type_mask : AttitudeTargetTypemask :: DEFAULT , } ; } impl Default for SET_ATTITUDE_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_ATTITUDE_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 82u32 ; const NAME : & 'static str = "SET_ATTITUDE_TARGET" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 39usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . body_roll_rate = buf . get_f32_le () ; __struct . body_pitch_rate = buf . get_f32_le () ; __struct . body_yaw_rate = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . type_mask = AttitudeTargetTypemask :: from_bits (tmp & AttitudeTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AttitudeTargetTypemask" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . body_roll_rate) ; __tmp . put_f32_le (self . body_pitch_rate) ; __tmp . put_f32_le (self . body_yaw_rate) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . type_mask . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_ACK_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , pub param_result : ParamAck , } impl PARAM_EXT_ACK_DATA { pub const ENCODED_LEN : usize = 146usize ; pub const DEFAULT : Self = Self { param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , param_result : ParamAck :: DEFAULT , } ; } impl Default for PARAM_EXT_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_ACK_DATA { type Message = MavMessage ; const ID : u32 = 324u32 ; const NAME : & 'static str = "PARAM_EXT_ACK" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 146usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . param_result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "ParamAck" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; __tmp . put_u8 (self . param_result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_PITCHYAW_DATA { pub flags : GimbalManagerFlags , pub pitch : f32 , pub yaw : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_PITCHYAW_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , pitch : 0.0_f32 , yaw : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_PITCHYAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_PITCHYAW_DATA { type Message = MavMessage ; const ID : u32 = 287u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_PITCHYAW" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_REQUEST_READ_DATA { pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , } impl PARAM_EXT_REQUEST_READ_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , } ; } impl Default for PARAM_EXT_REQUEST_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_REQUEST_READ_DATA { type Message = MavMessage ; const ID : u32 = 320u32 ; const NAME : & 'static str = "PARAM_EXT_REQUEST_READ" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CONTROL_SYSTEM_STATE_DATA { pub time_usec : u64 , pub x_acc : f32 , pub y_acc : f32 , pub z_acc : f32 , pub x_vel : f32 , pub y_vel : f32 , pub z_vel : f32 , pub x_pos : f32 , pub y_pos : f32 , pub z_pos : f32 , pub airspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_variance : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_variance : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub roll_rate : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , } impl CONTROL_SYSTEM_STATE_DATA { pub const ENCODED_LEN : usize = 100usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x_acc : 0.0_f32 , y_acc : 0.0_f32 , z_acc : 0.0_f32 , x_vel : 0.0_f32 , y_vel : 0.0_f32 , z_vel : 0.0_f32 , x_pos : 0.0_f32 , y_pos : 0.0_f32 , z_pos : 0.0_f32 , airspeed : 0.0_f32 , vel_variance : [0.0_f32 ; 3usize] , pos_variance : [0.0_f32 ; 3usize] , q : [0.0_f32 ; 4usize] , roll_rate : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , } ; } impl Default for CONTROL_SYSTEM_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CONTROL_SYSTEM_STATE_DATA { type Message = MavMessage ; const ID : u32 = 146u32 ; const NAME : & 'static str = "CONTROL_SYSTEM_STATE" ; const EXTRA_CRC : u8 = 103u8 ; const ENCODED_LEN : usize = 100usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x_acc = buf . get_f32_le () ; __struct . y_acc = buf . get_f32_le () ; __struct . z_acc = buf . get_f32_le () ; __struct . x_vel = buf . get_f32_le () ; __struct . y_vel = buf . get_f32_le () ; __struct . z_vel = buf . get_f32_le () ; __struct . x_pos = buf . get_f32_le () ; __struct . y_pos = buf . get_f32_le () ; __struct . z_pos = buf . get_f32_le () ; __struct . airspeed = buf . get_f32_le () ; for v in & mut __struct . vel_variance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_variance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . roll_rate = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x_acc) ; __tmp . put_f32_le (self . y_acc) ; __tmp . put_f32_le (self . z_acc) ; __tmp . put_f32_le (self . x_vel) ; __tmp . put_f32_le (self . y_vel) ; __tmp . put_f32_le (self . z_vel) ; __tmp . put_f32_le (self . x_pos) ; __tmp . put_f32_le (self . y_pos) ; __tmp . put_f32_le (self . z_pos) ; __tmp . put_f32_le (self . airspeed) ; for val in & self . vel_variance { __tmp . put_f32_le (* val) ; } for val in & self . pos_variance { __tmp . put_f32_le (* val) ; } for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . roll_rate) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_CHECK_DATA { pub lat : i32 , pub lon : i32 , } impl TERRAIN_CHECK_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , } ; } impl Default for TERRAIN_CHECK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_CHECK_DATA { type Message = MavMessage ; const ID : u32 = 135u32 ; const NAME : & 'static str = "TERRAIN_CHECK" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAV_CONTROLLER_OUTPUT_DATA { pub nav_roll : f32 , pub nav_pitch : f32 , pub alt_error : f32 , pub aspd_error : f32 , pub xtrack_error : f32 , pub nav_bearing : i16 , pub target_bearing : i16 , pub wp_dist : u16 , } impl NAV_CONTROLLER_OUTPUT_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { nav_roll : 0.0_f32 , nav_pitch : 0.0_f32 , alt_error : 0.0_f32 , aspd_error : 0.0_f32 , xtrack_error : 0.0_f32 , nav_bearing : 0_i16 , target_bearing : 0_i16 , wp_dist : 0_u16 , } ; } impl Default for NAV_CONTROLLER_OUTPUT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAV_CONTROLLER_OUTPUT_DATA { type Message = MavMessage ; const ID : u32 = 62u32 ; const NAME : & 'static str = "NAV_CONTROLLER_OUTPUT" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . nav_roll = buf . get_f32_le () ; __struct . nav_pitch = buf . get_f32_le () ; __struct . alt_error = buf . get_f32_le () ; __struct . aspd_error = buf . get_f32_le () ; __struct . xtrack_error = buf . get_f32_le () ; __struct . nav_bearing = buf . get_i16_le () ; __struct . target_bearing = buf . get_i16_le () ; __struct . wp_dist = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . nav_roll) ; __tmp . put_f32_le (self . nav_pitch) ; __tmp . put_f32_le (self . alt_error) ; __tmp . put_f32_le (self . aspd_error) ; __tmp . put_f32_le (self . xtrack_error) ; __tmp . put_i16_le (self . nav_bearing) ; __tmp . put_i16_le (self . target_bearing) ; __tmp . put_u16_le (self . wp_dist) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_CURRENT_DATA { pub seq : u16 , } impl MISSION_CURRENT_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , } ; } impl Default for MISSION_CURRENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_CURRENT_DATA { type Message = MavMessage ; const ID : u32 = 42u32 ; const NAME : & 'static str = "MISSION_CURRENT" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl PARAM_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PARAM_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 21u32 ; const NAME : & 'static str = "PARAM_REQUEST_LIST" ; const EXTRA_CRC : u8 = 159u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RADIO_STATUS_DATA { pub rxerrors : u16 , pub fixed : u16 , pub rssi : u8 , pub remrssi : u8 , pub txbuf : u8 , pub noise : u8 , pub remnoise : u8 , } impl RADIO_STATUS_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { rxerrors : 0_u16 , fixed : 0_u16 , rssi : 0_u8 , remrssi : 0_u8 , txbuf : 0_u8 , noise : 0_u8 , remnoise : 0_u8 , } ; } impl Default for RADIO_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RADIO_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 109u32 ; const NAME : & 'static str = "RADIO_STATUS" ; const EXTRA_CRC : u8 = 185u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . rxerrors = buf . get_u16_le () ; __struct . fixed = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; __struct . remrssi = buf . get_u8 () ; __struct . txbuf = buf . get_u8 () ; __struct . noise = buf . get_u8 () ; __struct . remnoise = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . rxerrors) ; __tmp . put_u16_le (self . fixed) ; __tmp . put_u8 (self . rssi) ; __tmp . put_u8 (self . remrssi) ; __tmp . put_u8 (self . txbuf) ; __tmp . put_u8 (self . noise) ; __tmp . put_u8 (self . remnoise) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_END_DATA { pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_END_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_END_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_END_DATA { type Message = MavMessage ; const ID : u32 = 122u32 ; const NAME : & 'static str = "LOG_REQUEST_END" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIBRATION_DATA { pub time_usec : u64 , pub vibration_x : f32 , pub vibration_y : f32 , pub vibration_z : f32 , pub clipping_0 : u32 , pub clipping_1 : u32 , pub clipping_2 : u32 , } impl VIBRATION_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , vibration_x : 0.0_f32 , vibration_y : 0.0_f32 , vibration_z : 0.0_f32 , clipping_0 : 0_u32 , clipping_1 : 0_u32 , clipping_2 : 0_u32 , } ; } impl Default for VIBRATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIBRATION_DATA { type Message = MavMessage ; const ID : u32 = 241u32 ; const NAME : & 'static str = "VIBRATION" ; const EXTRA_CRC : u8 = 90u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . vibration_x = buf . get_f32_le () ; __struct . vibration_y = buf . get_f32_le () ; __struct . vibration_z = buf . get_f32_le () ; __struct . clipping_0 = buf . get_u32_le () ; __struct . clipping_1 = buf . get_u32_le () ; __struct . clipping_2 = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . vibration_x) ; __tmp . put_f32_le (self . vibration_y) ; __tmp . put_f32_le (self . vibration_z) ; __tmp . put_u32_le (self . clipping_0) ; __tmp . put_u32_le (self . clipping_1) ; __tmp . put_u32_le (self . clipping_2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_VERSION_DATA { pub capabilities : MavProtocolCapability , pub uid : u64 , pub flight_sw_version : u32 , pub middleware_sw_version : u32 , pub os_sw_version : u32 , pub board_version : u32 , pub vendor_id : u16 , pub product_id : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub flight_custom_version : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub middleware_custom_version : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub os_custom_version : [u8 ; 8] , } impl AUTOPILOT_VERSION_DATA { pub const ENCODED_LEN : usize = 60usize ; pub const DEFAULT : Self = Self { capabilities : MavProtocolCapability :: DEFAULT , uid : 0_u64 , flight_sw_version : 0_u32 , middleware_sw_version : 0_u32 , os_sw_version : 0_u32 , board_version : 0_u32 , vendor_id : 0_u16 , product_id : 0_u16 , flight_custom_version : [0_u8 ; 8usize] , middleware_custom_version : [0_u8 ; 8usize] , os_custom_version : [0_u8 ; 8usize] , } ; } impl Default for AUTOPILOT_VERSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_VERSION_DATA { type Message = MavMessage ; const ID : u32 = 148u32 ; const NAME : & 'static str = "AUTOPILOT_VERSION" ; const EXTRA_CRC : u8 = 178u8 ; const ENCODED_LEN : usize = 60usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u64_le () ; __struct . capabilities = MavProtocolCapability :: from_bits (tmp & MavProtocolCapability :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavProtocolCapability" , value : tmp as u32 }) ? ; __struct . uid = buf . get_u64_le () ; __struct . flight_sw_version = buf . get_u32_le () ; __struct . middleware_sw_version = buf . get_u32_le () ; __struct . os_sw_version = buf . get_u32_le () ; __struct . board_version = buf . get_u32_le () ; __struct . vendor_id = buf . get_u16_le () ; __struct . product_id = buf . get_u16_le () ; for v in & mut __struct . flight_custom_version { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . middleware_custom_version { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . os_custom_version { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . capabilities . bits ()) ; __tmp . put_u64_le (self . uid) ; __tmp . put_u32_le (self . flight_sw_version) ; __tmp . put_u32_le (self . middleware_sw_version) ; __tmp . put_u32_le (self . os_sw_version) ; __tmp . put_u32_le (self . board_version) ; __tmp . put_u16_le (self . vendor_id) ; __tmp . put_u16_le (self . product_id) ; for val in & self . flight_custom_version { __tmp . put_u8 (* val) ; } for val in & self . middleware_custom_version { __tmp . put_u8 (* val) ; } for val in & self . os_custom_version { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_SET_CURRENT_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_SET_CURRENT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_SET_CURRENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_SET_CURRENT_DATA { type Message = MavMessage ; const ID : u32 = 41u32 ; const NAME : & 'static str = "MISSION_SET_CURRENT" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_SETTINGS_DATA { pub time_boot_ms : u32 , pub mode_id : CameraMode , } impl CAMERA_SETTINGS_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , mode_id : CameraMode :: DEFAULT , } ; } impl Default for CAMERA_SETTINGS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_SETTINGS_DATA { type Message = MavMessage ; const ID : u32 = 260u32 ; const NAME : & 'static str = "CAMERA_SETTINGS" ; const EXTRA_CRC : u8 = 146u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . mode_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraMode" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u8 (self . mode_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_WRITE_PARTIAL_LIST_DATA { pub start_index : i16 , pub end_index : i16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_WRITE_PARTIAL_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start_index : 0_i16 , end_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_WRITE_PARTIAL_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_WRITE_PARTIAL_LIST_DATA { type Message = MavMessage ; const ID : u32 = 38u32 ; const NAME : & 'static str = "MISSION_WRITE_PARTIAL_LIST" ; const EXTRA_CRC : u8 = 9u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start_index = buf . get_i16_le () ; __struct . end_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . start_index) ; __tmp . put_i16_le (self . end_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIDEO_STREAM_STATUS_DATA { pub framerate : f32 , pub bitrate : u32 , pub flags : VideoStreamStatusFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub hfov : u16 , pub stream_id : u8 , } impl VIDEO_STREAM_STATUS_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , flags : VideoStreamStatusFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , hfov : 0_u16 , stream_id : 0_u8 , } ; } impl Default for VIDEO_STREAM_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIDEO_STREAM_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 270u32 ; const NAME : & 'static str = "VIDEO_STREAM_STATUS" ; const EXTRA_CRC : u8 = 59u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamStatusFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . hfov = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . flags as u16) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u16_le (self . hfov) ; __tmp . put_u8 (self . stream_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EVENT_DATA { pub id : u32 , pub event_time_boot_ms : u32 , pub sequence : u16 , pub destination_component : u8 , pub destination_system : u8 , pub log_levels : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub arguments : [u8 ; 40] , } impl EVENT_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { id : 0_u32 , event_time_boot_ms : 0_u32 , sequence : 0_u16 , destination_component : 0_u8 , destination_system : 0_u8 , log_levels : 0_u8 , arguments : [0_u8 ; 40usize] , } ; } impl Default for EVENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EVENT_DATA { type Message = MavMessage ; const ID : u32 = 410u32 ; const NAME : & 'static str = "EVENT" ; const EXTRA_CRC : u8 = 160u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . event_time_boot_ms = buf . get_u32_le () ; __struct . sequence = buf . get_u16_le () ; __struct . destination_component = buf . get_u8 () ; __struct . destination_system = buf . get_u8 () ; __struct . log_levels = buf . get_u8 () ; for v in & mut __struct . arguments { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u32_le (self . event_time_boot_ms) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . destination_component) ; __tmp . put_u8 (self . destination_system) ; __tmp . put_u8 (self . log_levels) ; for val in & self . arguments { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CANFD_FRAME_DATA { pub id : u32 , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 64] , } impl CANFD_FRAME_DATA { pub const ENCODED_LEN : usize = 72usize ; pub const DEFAULT : Self = Self { id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , len : 0_u8 , data : [0_u8 ; 64usize] , } ; } impl Default for CANFD_FRAME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CANFD_FRAME_DATA { type Message = MavMessage ; const ID : u32 = 387u32 ; const NAME : & 'static str = "CANFD_FRAME" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 72usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WINCH_STATUS_DATA { pub time_usec : u64 , pub line_length : f32 , pub speed : f32 , pub tension : f32 , pub voltage : f32 , pub current : f32 , pub status : MavWinchStatusFlag , pub temperature : i16 , } impl WINCH_STATUS_DATA { pub const ENCODED_LEN : usize = 34usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , line_length : 0.0_f32 , speed : 0.0_f32 , tension : 0.0_f32 , voltage : 0.0_f32 , current : 0.0_f32 , status : MavWinchStatusFlag :: DEFAULT , temperature : 0_i16 , } ; } impl Default for WINCH_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WINCH_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 9005u32 ; const NAME : & 'static str = "WINCH_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 34usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . line_length = buf . get_f32_le () ; __struct . speed = buf . get_f32_le () ; __struct . tension = buf . get_f32_le () ; __struct . voltage = buf . get_f32_le () ; __struct . current = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . status = MavWinchStatusFlag :: from_bits (tmp & MavWinchStatusFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavWinchStatusFlag" , value : tmp as u32 }) ? ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . line_length) ; __tmp . put_f32_le (self . speed) ; __tmp . put_f32_le (self . tension) ; __tmp . put_f32_le (self . voltage) ; __tmp . put_f32_le (self . current) ; __tmp . put_u32_le (self . status . bits ()) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_FLOAT_ARRAY_DATA { pub time_usec : u64 , pub array_id : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl DEBUG_FLOAT_ARRAY_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , array_id : 0_u16 , name : [0_u8 ; 10usize] , } ; } impl Default for DEBUG_FLOAT_ARRAY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_FLOAT_ARRAY_DATA { type Message = MavMessage ; const ID : u32 = 350u32 ; const NAME : & 'static str = "DEBUG_FLOAT_ARRAY" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . array_id = buf . get_u16_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u16_le (self . array_id) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_INT_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub seq : u16 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl MISSION_ITEM_INT_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , seq : 0_u16 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for MISSION_ITEM_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_INT_DATA { type Message = MavMessage ; const ID : u32 = 73u32 ; const NAME : & 'static str = "MISSION_ITEM_INT" ; const EXTRA_CRC : u8 = 38u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; __struct . seq = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_FOV_STATUS_DATA { pub time_boot_ms : u32 , pub lat_camera : i32 , pub lon_camera : i32 , pub alt_camera : i32 , pub lat_image : i32 , pub lon_image : i32 , pub alt_image : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub hfov : f32 , pub vfov : f32 , } impl CAMERA_FOV_STATUS_DATA { pub const ENCODED_LEN : usize = 52usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_camera : 0_i32 , lon_camera : 0_i32 , alt_camera : 0_i32 , lat_image : 0_i32 , lon_image : 0_i32 , alt_image : 0_i32 , q : [0.0_f32 ; 4usize] , hfov : 0.0_f32 , vfov : 0.0_f32 , } ; } impl Default for CAMERA_FOV_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_FOV_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 271u32 ; const NAME : & 'static str = "CAMERA_FOV_STATUS" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 52usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_camera = buf . get_i32_le () ; __struct . lon_camera = buf . get_i32_le () ; __struct . alt_camera = buf . get_i32_le () ; __struct . lat_image = buf . get_i32_le () ; __struct . lon_image = buf . get_i32_le () ; __struct . alt_image = buf . get_i32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . hfov = buf . get_f32_le () ; __struct . vfov = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_camera) ; __tmp . put_i32_le (self . lon_camera) ; __tmp . put_i32_le (self . alt_camera) ; __tmp . put_i32_le (self . lat_image) ; __tmp . put_i32_le (self . lon_image) ; __tmp . put_i32_le (self . alt_image) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . hfov) ; __tmp . put_f32_le (self . vfov) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { pub operator_latitude : i32 , pub operator_longitude : i32 , pub operator_altitude_geo : f32 , pub timestamp : u32 , pub target_system : u8 , pub target_component : u8 , } impl OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { operator_latitude : 0_i32 , operator_longitude : 0_i32 , operator_altitude_geo : 0.0_f32 , timestamp : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { type Message = MavMessage ; const ID : u32 = 12919u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SYSTEM_UPDATE" ; const EXTRA_CRC : u8 = 7u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . operator_latitude = buf . get_i32_le () ; __struct . operator_longitude = buf . get_i32_le () ; __struct . operator_altitude_geo = buf . get_f32_le () ; __struct . timestamp = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . operator_latitude) ; __tmp . put_i32_le (self . operator_longitude) ; __tmp . put_f32_le (self . operator_altitude_geo) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_TARGET_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub body_roll_rate : f32 , pub body_pitch_rate : f32 , pub body_yaw_rate : f32 , pub thrust : f32 , pub type_mask : AttitudeTargetTypemask , } impl ATTITUDE_TARGET_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , body_roll_rate : 0.0_f32 , body_pitch_rate : 0.0_f32 , body_yaw_rate : 0.0_f32 , thrust : 0.0_f32 , type_mask : AttitudeTargetTypemask :: DEFAULT , } ; } impl Default for ATTITUDE_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 83u32 ; const NAME : & 'static str = "ATTITUDE_TARGET" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . body_roll_rate = buf . get_f32_le () ; __struct . body_pitch_rate = buf . get_f32_le () ; __struct . body_yaw_rate = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . type_mask = AttitudeTargetTypemask :: from_bits (tmp & AttitudeTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AttitudeTargetTypemask" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . body_roll_rate) ; __tmp . put_f32_le (self . body_pitch_rate) ; __tmp . put_f32_le (self . body_yaw_rate) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . type_mask . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 43u32 ; const NAME : & 'static str = "MISSION_REQUEST_LIST" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TUNNEL_DATA { pub payload_type : MavTunnelPayloadType , pub target_system : u8 , pub target_component : u8 , pub payload_length : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 128] , } impl TUNNEL_DATA { pub const ENCODED_LEN : usize = 133usize ; pub const DEFAULT : Self = Self { payload_type : MavTunnelPayloadType :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , payload_length : 0_u8 , payload : [0_u8 ; 128usize] , } ; } impl Default for TUNNEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TUNNEL_DATA { type Message = MavMessage ; const ID : u32 = 385u32 ; const NAME : & 'static str = "TUNNEL" ; const EXTRA_CRC : u8 = 147u8 ; const ENCODED_LEN : usize = 133usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . payload_type = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavTunnelPayloadType" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . payload_length = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . payload_type as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . payload_length) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PLAY_TUNE_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub tune : [u8 ; 30] , } impl PLAY_TUNE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , tune : [0_u8 ; 30usize] , } ; } impl Default for PLAY_TUNE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PLAY_TUNE_DATA { type Message = MavMessage ; const ID : u32 = 258u32 ; const NAME : & 'static str = "PLAY_TUNE" ; const EXTRA_CRC : u8 = 187u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . tune { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . tune { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_POSITION_TARGET_LOCAL_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub target_system : u8 , pub target_component : u8 , pub coordinate_frame : MavFrame , } impl SET_POSITION_TARGET_LOCAL_NED_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for SET_POSITION_TARGET_LOCAL_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_POSITION_TARGET_LOCAL_NED_DATA { type Message = MavMessage ; const ID : u32 = 84u32 ; const NAME : & 'static str = "SET_POSITION_TARGET_LOCAL_NED" ; const EXTRA_CRC : u8 = 143u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_CLEAR_ALL_DATA { pub target_system : u8 , pub target_component : u8 , } impl MISSION_CLEAR_ALL_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_CLEAR_ALL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_CLEAR_ALL_DATA { type Message = MavMessage ; const ID : u32 = 45u32 ; const NAME : & 'static str = "MISSION_CLEAR_ALL" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ONBOARD_COMPUTER_STATUS_DATA { pub time_usec : u64 , pub uptime : u32 , pub ram_usage : u32 , pub ram_total : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_type : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_usage : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_total : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_type : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_tx_rate : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_rx_rate : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_tx_max : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_rx_max : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub fan_speed : [i16 ; 4] , pub mavtype : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cpu_cores : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cpu_combined : [u8 ; 10] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub gpu_cores : [u8 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub gpu_combined : [u8 ; 10] , pub temperature_board : i8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature_core : [i8 ; 8] , } impl ONBOARD_COMPUTER_STATUS_DATA { pub const ENCODED_LEN : usize = 238usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime : 0_u32 , ram_usage : 0_u32 , ram_total : 0_u32 , storage_type : [0_u32 ; 4usize] , storage_usage : [0_u32 ; 4usize] , storage_total : [0_u32 ; 4usize] , link_type : [0_u32 ; 6usize] , link_tx_rate : [0_u32 ; 6usize] , link_rx_rate : [0_u32 ; 6usize] , link_tx_max : [0_u32 ; 6usize] , link_rx_max : [0_u32 ; 6usize] , fan_speed : [0_i16 ; 4usize] , mavtype : 0_u8 , cpu_cores : [0_u8 ; 8usize] , cpu_combined : [0_u8 ; 10usize] , gpu_cores : [0_u8 ; 4usize] , gpu_combined : [0_u8 ; 10usize] , temperature_board : 0_i8 , temperature_core : [0_i8 ; 8usize] , } ; } impl Default for ONBOARD_COMPUTER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ONBOARD_COMPUTER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 390u32 ; const NAME : & 'static str = "ONBOARD_COMPUTER_STATUS" ; const EXTRA_CRC : u8 = 156u8 ; const ENCODED_LEN : usize = 238usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime = buf . get_u32_le () ; __struct . ram_usage = buf . get_u32_le () ; __struct . ram_total = buf . get_u32_le () ; for v in & mut __struct . storage_type { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . storage_usage { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . storage_total { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_type { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_tx_rate { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_rx_rate { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_tx_max { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_rx_max { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . fan_speed { let val = buf . get_i16_le () ; * v = val ; } __struct . mavtype = buf . get_u8 () ; for v in & mut __struct . cpu_cores { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . cpu_combined { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . gpu_cores { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . gpu_combined { let val = buf . get_u8 () ; * v = val ; } __struct . temperature_board = buf . get_i8 () ; for v in & mut __struct . temperature_core { let val = buf . get_i8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime) ; __tmp . put_u32_le (self . ram_usage) ; __tmp . put_u32_le (self . ram_total) ; for val in & self . storage_type { __tmp . put_u32_le (* val) ; } for val in & self . storage_usage { __tmp . put_u32_le (* val) ; } for val in & self . storage_total { __tmp . put_u32_le (* val) ; } for val in & self . link_type { __tmp . put_u32_le (* val) ; } for val in & self . link_tx_rate { __tmp . put_u32_le (* val) ; } for val in & self . link_rx_rate { __tmp . put_u32_le (* val) ; } for val in & self . link_tx_max { __tmp . put_u32_le (* val) ; } for val in & self . link_rx_max { __tmp . put_u32_le (* val) ; } for val in & self . fan_speed { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . mavtype) ; for val in & self . cpu_cores { __tmp . put_u8 (* val) ; } for val in & self . cpu_combined { __tmp . put_u8 (* val) ; } for val in & self . gpu_cores { __tmp . put_u8 (* val) ; } for val in & self . gpu_combined { __tmp . put_u8 (* val) ; } __tmp . put_i8 (self . temperature_board) ; for val in & self . temperature_core { __tmp . put_i8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_PRESSURE_DATA { pub time_usec : u64 , pub press_abs : i16 , pub press_diff1 : i16 , pub press_diff2 : i16 , pub temperature : i16 , } impl RAW_PRESSURE_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , press_abs : 0_i16 , press_diff1 : 0_i16 , press_diff2 : 0_i16 , temperature : 0_i16 , } ; } impl Default for RAW_PRESSURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_PRESSURE_DATA { type Message = MavMessage ; const ID : u32 = 28u32 ; const NAME : & 'static str = "RAW_PRESSURE" ; const EXTRA_CRC : u8 = 67u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . press_abs = buf . get_i16_le () ; __struct . press_diff1 = buf . get_i16_le () ; __struct . press_diff2 = buf . get_i16_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i16_le (self . press_abs) ; __tmp . put_i16_le (self . press_diff1) ; __tmp . put_i16_le (self . press_diff2) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_COV_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub ax : f32 , pub ay : f32 , pub az : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 45] , pub estimator_type : MavEstimatorType , } impl LOCAL_POSITION_NED_COV_DATA { pub const ENCODED_LEN : usize = 225usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , ax : 0.0_f32 , ay : 0.0_f32 , az : 0.0_f32 , covariance : [0.0_f32 ; 45usize] , estimator_type : MavEstimatorType :: DEFAULT , } ; } impl Default for LOCAL_POSITION_NED_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_COV_DATA { type Message = MavMessage ; const ID : u32 = 64u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED_COV" ; const EXTRA_CRC : u8 = 191u8 ; const ENCODED_LEN : usize = 225usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . ax = buf . get_f32_le () ; __struct . ay = buf . get_f32_le () ; __struct . az = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . estimator_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEstimatorType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . ax) ; __tmp . put_f32_le (self . ay) ; __tmp . put_f32_le (self . az) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . estimator_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_ACTUATOR_CONTROL_TARGET_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 8] , pub group_mlx : u8 , pub target_system : u8 , pub target_component : u8 , } impl SET_ACTUATOR_CONTROL_TARGET_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , controls : [0.0_f32 ; 8usize] , group_mlx : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SET_ACTUATOR_CONTROL_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_ACTUATOR_CONTROL_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 139u32 ; const NAME : & 'static str = "SET_ACTUATOR_CONTROL_TARGET" ; const EXTRA_CRC : u8 = 168u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } __struct . group_mlx = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . group_mlx) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RAW_INT_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub cog : u16 , pub fix_type : GpsFixType , pub satellites_visible : u8 , } impl GPS_RAW_INT_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , cog : 0_u16 , fix_type : GpsFixType :: DEFAULT , satellites_visible : 0_u8 , } ; } impl Default for GPS_RAW_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RAW_INT_DATA { type Message = MavMessage ; const ID : u32 = 24u32 ; const NAME : & 'static str = "GPS_RAW_INT" ; const EXTRA_CRC : u8 = 24u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . cog = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type as u8) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SAFETY_SET_ALLOWED_AREA_DATA { pub p1x : f32 , pub p1y : f32 , pub p1z : f32 , pub p2x : f32 , pub p2y : f32 , pub p2z : f32 , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , } impl SAFETY_SET_ALLOWED_AREA_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { p1x : 0.0_f32 , p1y : 0.0_f32 , p1z : 0.0_f32 , p2x : 0.0_f32 , p2y : 0.0_f32 , p2z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , } ; } impl Default for SAFETY_SET_ALLOWED_AREA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SAFETY_SET_ALLOWED_AREA_DATA { type Message = MavMessage ; const ID : u32 = 54u32 ; const NAME : & 'static str = "SAFETY_SET_ALLOWED_AREA" ; const EXTRA_CRC : u8 = 15u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . p1x = buf . get_f32_le () ; __struct . p1y = buf . get_f32_le () ; __struct . p1z = buf . get_f32_le () ; __struct . p2x = buf . get_f32_le () ; __struct . p2y = buf . get_f32_le () ; __struct . p2z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . p1x) ; __tmp . put_f32_le (self . p1y) ; __tmp . put_f32_le (self . p1z) ; __tmp . put_f32_le (self . p2x) ; __tmp . put_f32_le (self . p2y) ; __tmp . put_f32_le (self . p2z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_DATA_DATA { pub ofs : u32 , pub count : u32 , pub id : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_DATA_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { ofs : 0_u32 , count : 0_u32 , id : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_DATA_DATA { type Message = MavMessage ; const ID : u32 = 119u32 ; const NAME : & 'static str = "LOG_REQUEST_DATA" ; const EXTRA_CRC : u8 = 116u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ofs = buf . get_u32_le () ; __struct . count = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ofs) ; __tmp . put_u32_le (self . count) ; __tmp . put_u16_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BUTTON_CHANGE_DATA { pub time_boot_ms : u32 , pub last_change_ms : u32 , pub state : u8 , } impl BUTTON_CHANGE_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , last_change_ms : 0_u32 , state : 0_u8 , } ; } impl Default for BUTTON_CHANGE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BUTTON_CHANGE_DATA { type Message = MavMessage ; const ID : u32 = 257u32 ; const NAME : & 'static str = "BUTTON_CHANGE" ; const EXTRA_CRC : u8 = 131u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . last_change_ms = buf . get_u32_le () ; __struct . state = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . last_change_ms) ; __tmp . put_u8 (self . state) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_SCALED_DATA { pub time_boot_ms : u32 , pub chan1_scaled : i16 , pub chan2_scaled : i16 , pub chan3_scaled : i16 , pub chan4_scaled : i16 , pub chan5_scaled : i16 , pub chan6_scaled : i16 , pub chan7_scaled : i16 , pub chan8_scaled : i16 , pub port : u8 , pub rssi : u8 , } impl RC_CHANNELS_SCALED_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_scaled : 0_i16 , chan2_scaled : 0_i16 , chan3_scaled : 0_i16 , chan4_scaled : 0_i16 , chan5_scaled : 0_i16 , chan6_scaled : 0_i16 , chan7_scaled : 0_i16 , chan8_scaled : 0_i16 , port : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_SCALED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_SCALED_DATA { type Message = MavMessage ; const ID : u32 = 34u32 ; const NAME : & 'static str = "RC_CHANNELS_SCALED" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_scaled = buf . get_i16_le () ; __struct . chan2_scaled = buf . get_i16_le () ; __struct . chan3_scaled = buf . get_i16_le () ; __struct . chan4_scaled = buf . get_i16_le () ; __struct . chan5_scaled = buf . get_i16_le () ; __struct . chan6_scaled = buf . get_i16_le () ; __struct . chan7_scaled = buf . get_i16_le () ; __struct . chan8_scaled = buf . get_i16_le () ; __struct . port = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . chan1_scaled) ; __tmp . put_i16_le (self . chan2_scaled) ; __tmp . put_i16_le (self . chan3_scaled) ; __tmp . put_i16_le (self . chan4_scaled) ; __tmp . put_i16_le (self . chan5_scaled) ; __tmp . put_i16_le (self . chan6_scaled) ; __tmp . put_i16_le (self . chan7_scaled) ; __tmp . put_i16_le (self . chan8_scaled) ; __tmp . put_u8 (self . port) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU_DATA { type Message = MavMessage ; const ID : u32 = 26u32 ; const NAME : & 'static str = "SCALED_IMU" ; const EXTRA_CRC : u8 = 170u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAMED_VALUE_INT_DATA { pub time_boot_ms : u32 , pub value : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl NAMED_VALUE_INT_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0_i32 , name : [0_u8 ; 10usize] , } ; } impl Default for NAMED_VALUE_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAMED_VALUE_INT_DATA { type Message = MavMessage ; const ID : u32 = 252u32 ; const NAME : & 'static str = "NAMED_VALUE_INT" ; const EXTRA_CRC : u8 = 44u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_i32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . value) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ENCAPSULATED_DATA_DATA { pub seqnr : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 253] , } impl ENCAPSULATED_DATA_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { seqnr : 0_u16 , data : [0_u8 ; 253usize] , } ; } impl Default for ENCAPSULATED_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ENCAPSULATED_DATA_DATA { type Message = MavMessage ; const ID : u32 = 131u32 ; const NAME : & 'static str = "ENCAPSULATED_DATA" ; const EXTRA_CRC : u8 = 223u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seqnr = buf . get_u16_le () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seqnr) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_INT_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl COMMAND_INT_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for COMMAND_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_INT_DATA { type Message = MavMessage ; const ID : u32 = 75u32 ; const NAME : & 'static str = "COMMAND_INT" ; const EXTRA_CRC : u8 = 158u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPTICAL_FLOW_RAD_DATA { pub time_usec : u64 , pub integration_time_us : u32 , pub integrated_x : f32 , pub integrated_y : f32 , pub integrated_xgyro : f32 , pub integrated_ygyro : f32 , pub integrated_zgyro : f32 , pub time_delta_distance_us : u32 , pub distance : f32 , pub temperature : i16 , pub sensor_id : u8 , pub quality : u8 , } impl OPTICAL_FLOW_RAD_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , integration_time_us : 0_u32 , integrated_x : 0.0_f32 , integrated_y : 0.0_f32 , integrated_xgyro : 0.0_f32 , integrated_ygyro : 0.0_f32 , integrated_zgyro : 0.0_f32 , time_delta_distance_us : 0_u32 , distance : 0.0_f32 , temperature : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for OPTICAL_FLOW_RAD_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPTICAL_FLOW_RAD_DATA { type Message = MavMessage ; const ID : u32 = 106u32 ; const NAME : & 'static str = "OPTICAL_FLOW_RAD" ; const EXTRA_CRC : u8 = 138u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . integration_time_us = buf . get_u32_le () ; __struct . integrated_x = buf . get_f32_le () ; __struct . integrated_y = buf . get_f32_le () ; __struct . integrated_xgyro = buf . get_f32_le () ; __struct . integrated_ygyro = buf . get_f32_le () ; __struct . integrated_zgyro = buf . get_f32_le () ; __struct . time_delta_distance_us = buf . get_u32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . integration_time_us) ; __tmp . put_f32_le (self . integrated_x) ; __tmp . put_f32_le (self . integrated_y) ; __tmp . put_f32_le (self . integrated_xgyro) ; __tmp . put_f32_le (self . integrated_ygyro) ; __tmp . put_f32_le (self . integrated_zgyro) ; __tmp . put_u32_le (self . time_delta_distance_us) ; __tmp . put_f32_le (self . distance) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_INFORMATION_DATA { pub time_boot_ms : u32 , pub firmware_version : u32 , pub focal_length : f32 , pub sensor_size_h : f32 , pub sensor_size_v : f32 , pub flags : CameraCapFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub cam_definition_version : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vendor_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub model_name : [u8 ; 32] , pub lens_id : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cam_definition_uri : [u8 ; 140] , } impl CAMERA_INFORMATION_DATA { pub const ENCODED_LEN : usize = 235usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , firmware_version : 0_u32 , focal_length : 0.0_f32 , sensor_size_h : 0.0_f32 , sensor_size_v : 0.0_f32 , flags : CameraCapFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , cam_definition_version : 0_u16 , vendor_name : [0_u8 ; 32usize] , model_name : [0_u8 ; 32usize] , lens_id : 0_u8 , cam_definition_uri : [0_u8 ; 140usize] , } ; } impl Default for CAMERA_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 259u32 ; const NAME : & 'static str = "CAMERA_INFORMATION" ; const EXTRA_CRC : u8 = 92u8 ; const ENCODED_LEN : usize = 235usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . firmware_version = buf . get_u32_le () ; __struct . focal_length = buf . get_f32_le () ; __struct . sensor_size_h = buf . get_f32_le () ; __struct . sensor_size_v = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . flags = CameraCapFlags :: from_bits (tmp & CameraCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "CameraCapFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . cam_definition_version = buf . get_u16_le () ; for v in & mut __struct . vendor_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . model_name { let val = buf . get_u8 () ; * v = val ; } __struct . lens_id = buf . get_u8 () ; for v in & mut __struct . cam_definition_uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . firmware_version) ; __tmp . put_f32_le (self . focal_length) ; __tmp . put_f32_le (self . sensor_size_h) ; __tmp . put_f32_le (self . sensor_size_v) ; __tmp . put_u32_le (self . flags . bits ()) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . cam_definition_version) ; for val in & self . vendor_name { __tmp . put_u8 (* val) ; } for val in & self . model_name { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . lens_id) ; for val in & self . cam_definition_uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIFI_CONFIG_AP_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub ssid : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub password : [u8 ; 64] , } impl WIFI_CONFIG_AP_DATA { pub const ENCODED_LEN : usize = 96usize ; pub const DEFAULT : Self = Self { ssid : [0_u8 ; 32usize] , password : [0_u8 ; 64usize] , } ; } impl Default for WIFI_CONFIG_AP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIFI_CONFIG_AP_DATA { type Message = MavMessage ; const ID : u32 = 299u32 ; const NAME : & 'static str = "WIFI_CONFIG_AP" ; const EXTRA_CRC : u8 = 19u8 ; const ENCODED_LEN : usize = 96usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . ssid { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . password { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . ssid { __tmp . put_u8 (* val) ; } for val in & self . password { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_REPORT_DATA { pub lat : i32 , pub lon : i32 , pub terrain_height : f32 , pub current_height : f32 , pub spacing : u16 , pub pending : u16 , pub loaded : u16 , } impl TERRAIN_REPORT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , terrain_height : 0.0_f32 , current_height : 0.0_f32 , spacing : 0_u16 , pending : 0_u16 , loaded : 0_u16 , } ; } impl Default for TERRAIN_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 136u32 ; const NAME : & 'static str = "TERRAIN_REPORT" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . terrain_height = buf . get_f32_le () ; __struct . current_height = buf . get_f32_le () ; __struct . spacing = buf . get_u16_le () ; __struct . pending = buf . get_u16_le () ; __struct . loaded = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . terrain_height) ; __tmp . put_f32_le (self . current_height) ; __tmp . put_u16_le (self . spacing) ; __tmp . put_u16_le (self . pending) ; __tmp . put_u16_le (self . loaded) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_VISION_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl GLOBAL_VISION_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for GLOBAL_VISION_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_VISION_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 101u32 ; const NAME : & 'static str = "GLOBAL_VISION_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 102u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BATTERY_STATUS_DATA { pub current_consumed : i32 , pub energy_consumed : i32 , pub temperature : i16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltages : [u16 ; 10] , pub current_battery : i16 , pub id : u8 , pub battery_function : MavBatteryFunction , pub mavtype : MavBatteryType , pub battery_remaining : i8 , } impl BATTERY_STATUS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { current_consumed : 0_i32 , energy_consumed : 0_i32 , temperature : 0_i16 , voltages : [0_u16 ; 10usize] , current_battery : 0_i16 , id : 0_u8 , battery_function : MavBatteryFunction :: DEFAULT , mavtype : MavBatteryType :: DEFAULT , battery_remaining : 0_i8 , } ; } impl Default for BATTERY_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BATTERY_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 147u32 ; const NAME : & 'static str = "BATTERY_STATUS" ; const EXTRA_CRC : u8 = 154u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . current_consumed = buf . get_i32_le () ; __struct . energy_consumed = buf . get_i32_le () ; __struct . temperature = buf . get_i16_le () ; for v in & mut __struct . voltages { let val = buf . get_u16_le () ; * v = val ; } __struct . current_battery = buf . get_i16_le () ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . battery_function = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryFunction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryType" , value : tmp as u32 }) ? ; __struct . battery_remaining = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . current_consumed) ; __tmp . put_i32_le (self . energy_consumed) ; __tmp . put_i16_le (self . temperature) ; for val in & self . voltages { __tmp . put_u16_le (* val) ; } __tmp . put_i16_le (self . current_battery) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . battery_function as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_i8 (self . battery_remaining) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_BASIC_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub id_type : MavOdidIdType , pub ua_type : MavOdidUaType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uas_id : [u8 ; 20] , } impl OPEN_DRONE_ID_BASIC_ID_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , id_type : MavOdidIdType :: DEFAULT , ua_type : MavOdidUaType :: DEFAULT , uas_id : [0_u8 ; 20usize] , } ; } impl Default for OPEN_DRONE_ID_BASIC_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_BASIC_ID_DATA { type Message = MavMessage ; const ID : u32 = 12900u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_BASIC_ID" ; const EXTRA_CRC : u8 = 114u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . id_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidIdType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . ua_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidUaType" , value : tmp as u32 }) ? ; for v in & mut __struct . uas_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . id_type as u8) ; __tmp . put_u8 (self . ua_type as u8) ; for val in & self . uas_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CHANGE_OPERATOR_CONTROL_ACK_DATA { pub gcs_system_id : u8 , pub control_request : u8 , pub ack : u8 , } impl CHANGE_OPERATOR_CONTROL_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { gcs_system_id : 0_u8 , control_request : 0_u8 , ack : 0_u8 , } ; } impl Default for CHANGE_OPERATOR_CONTROL_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CHANGE_OPERATOR_CONTROL_ACK_DATA { type Message = MavMessage ; const ID : u32 = 6u32 ; const NAME : & 'static str = "CHANGE_OPERATOR_CONTROL_ACK" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . gcs_system_id = buf . get_u8 () ; __struct . control_request = buf . get_u8 () ; __struct . ack = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . gcs_system_id) ; __tmp . put_u8 (self . control_request) ; __tmp . put_u8 (self . ack) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_ACTUATOR_CONTROLS_DATA { pub time_usec : u64 , pub flags : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 16] , pub mode : MavModeFlag , } impl HIL_ACTUATOR_CONTROLS_DATA { pub const ENCODED_LEN : usize = 81usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , flags : 0_u64 , controls : [0.0_f32 ; 16usize] , mode : MavModeFlag :: DEFAULT , } ; } impl Default for HIL_ACTUATOR_CONTROLS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_ACTUATOR_CONTROLS_DATA { type Message = MavMessage ; const ID : u32 = 93u32 ; const NAME : & 'static str = "HIL_ACTUATOR_CONTROLS" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 81usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . flags = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u64_le (self . flags) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . mode . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REQUEST_EVENT_DATA { pub first_sequence : u16 , pub last_sequence : u16 , pub target_system : u8 , pub target_component : u8 , } impl REQUEST_EVENT_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { first_sequence : 0_u16 , last_sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for REQUEST_EVENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REQUEST_EVENT_DATA { type Message = MavMessage ; const ID : u32 = 412u32 ; const NAME : & 'static str = "REQUEST_EVENT" ; const EXTRA_CRC : u8 = 33u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . first_sequence = buf . get_u16_le () ; __struct . last_sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . first_sequence) ; __tmp . put_u16_le (self . last_sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SYS_STATUS_DATA { pub onboard_control_sensors_present : MavSysStatusSensor , pub onboard_control_sensors_enabled : MavSysStatusSensor , pub onboard_control_sensors_health : MavSysStatusSensor , pub load : u16 , pub voltage_battery : u16 , pub current_battery : i16 , pub drop_rate_comm : u16 , pub errors_comm : u16 , pub errors_count1 : u16 , pub errors_count2 : u16 , pub errors_count3 : u16 , pub errors_count4 : u16 , pub battery_remaining : i8 , } impl SYS_STATUS_DATA { pub const ENCODED_LEN : usize = 31usize ; pub const DEFAULT : Self = Self { onboard_control_sensors_present : MavSysStatusSensor :: DEFAULT , onboard_control_sensors_enabled : MavSysStatusSensor :: DEFAULT , onboard_control_sensors_health : MavSysStatusSensor :: DEFAULT , load : 0_u16 , voltage_battery : 0_u16 , current_battery : 0_i16 , drop_rate_comm : 0_u16 , errors_comm : 0_u16 , errors_count1 : 0_u16 , errors_count2 : 0_u16 , errors_count3 : 0_u16 , errors_count4 : 0_u16 , battery_remaining : 0_i8 , } ; } impl Default for SYS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SYS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 1u32 ; const NAME : & 'static str = "SYS_STATUS" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 31usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_present = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_enabled = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_health = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; __struct . load = buf . get_u16_le () ; __struct . voltage_battery = buf . get_u16_le () ; __struct . current_battery = buf . get_i16_le () ; __struct . drop_rate_comm = buf . get_u16_le () ; __struct . errors_comm = buf . get_u16_le () ; __struct . errors_count1 = buf . get_u16_le () ; __struct . errors_count2 = buf . get_u16_le () ; __struct . errors_count3 = buf . get_u16_le () ; __struct . errors_count4 = buf . get_u16_le () ; __struct . battery_remaining = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . onboard_control_sensors_present . bits ()) ; __tmp . put_u32_le (self . onboard_control_sensors_enabled . bits ()) ; __tmp . put_u32_le (self . onboard_control_sensors_health . bits ()) ; __tmp . put_u16_le (self . load) ; __tmp . put_u16_le (self . voltage_battery) ; __tmp . put_i16_le (self . current_battery) ; __tmp . put_u16_le (self . drop_rate_comm) ; __tmp . put_u16_le (self . errors_comm) ; __tmp . put_u16_le (self . errors_count1) ; __tmp . put_u16_le (self . errors_count2) ; __tmp . put_u16_le (self . errors_count3) ; __tmp . put_u16_le (self . errors_count4) ; __tmp . put_i8 (self . battery_remaining) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POSITION_TARGET_LOCAL_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub coordinate_frame : MavFrame , } impl POSITION_TARGET_LOCAL_NED_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for POSITION_TARGET_LOCAL_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POSITION_TARGET_LOCAL_NED_DATA { type Message = MavMessage ; const ID : u32 = 85u32 ; const NAME : & 'static str = "POSITION_TARGET_LOCAL_NED" ; const EXTRA_CRC : u8 = 140u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_LONG_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub param5 : f32 , pub param6 : f32 , pub param7 : f32 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub confirmation : u8 , } impl COMMAND_LONG_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , param5 : 0.0_f32 , param6 : 0.0_f32 , param7 : 0.0_f32 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , confirmation : 0_u8 , } ; } impl Default for COMMAND_LONG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_LONG_DATA { type Message = MavMessage ; const ID : u32 = 76u32 ; const NAME : & 'static str = "COMMAND_LONG" ; const EXTRA_CRC : u8 = 152u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . param5 = buf . get_f32_le () ; __struct . param6 = buf . get_f32_le () ; __struct . param7 = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . confirmation = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_f32_le (self . param5) ; __tmp . put_f32_le (self . param6) ; __tmp . put_f32_le (self . param7) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . confirmation) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub failure_flags : GimbalDeviceErrorFlags , pub flags : GimbalDeviceFlags , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , failure_flags : GimbalDeviceErrorFlags :: DEFAULT , flags : GimbalDeviceFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 285u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_ATTITUDE_STATUS" ; const EXTRA_CRC : u8 = 137u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . failure_flags = GimbalDeviceErrorFlags :: from_bits (tmp & GimbalDeviceErrorFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceErrorFlags" , value : tmp as u32 }) ? ; let tmp = buf . get_u16_le () ; __struct . flags = GimbalDeviceFlags :: from_bits (tmp & GimbalDeviceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u32_le (self . failure_flags . bits ()) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_QUATERNION_COV_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 9] , } impl ATTITUDE_QUATERNION_COV_DATA { pub const ENCODED_LEN : usize = 72usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , q : [0.0_f32 ; 4usize] , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , covariance : [0.0_f32 ; 9usize] , } ; } impl Default for ATTITUDE_QUATERNION_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_QUATERNION_COV_DATA { type Message = MavMessage ; const ID : u32 = 61u32 ; const NAME : & 'static str = "ATTITUDE_QUATERNION_COV" ; const EXTRA_CRC : u8 = 167u8 ; const ENCODED_LEN : usize = 72usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 40u32 ; const NAME : & 'static str = "MISSION_REQUEST" ; const EXTRA_CRC : u8 = 230u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_CONTROLS_DATA { pub time_usec : u64 , pub roll_ailerons : f32 , pub pitch_elevator : f32 , pub yaw_rudder : f32 , pub throttle : f32 , pub aux1 : f32 , pub aux2 : f32 , pub aux3 : f32 , pub aux4 : f32 , pub mode : MavMode , pub nav_mode : u8 , } impl HIL_CONTROLS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , roll_ailerons : 0.0_f32 , pitch_elevator : 0.0_f32 , yaw_rudder : 0.0_f32 , throttle : 0.0_f32 , aux1 : 0.0_f32 , aux2 : 0.0_f32 , aux3 : 0.0_f32 , aux4 : 0.0_f32 , mode : MavMode :: DEFAULT , nav_mode : 0_u8 , } ; } impl Default for HIL_CONTROLS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_CONTROLS_DATA { type Message = MavMessage ; const ID : u32 = 91u32 ; const NAME : & 'static str = "HIL_CONTROLS" ; const EXTRA_CRC : u8 = 63u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . roll_ailerons = buf . get_f32_le () ; __struct . pitch_elevator = buf . get_f32_le () ; __struct . yaw_rudder = buf . get_f32_le () ; __struct . throttle = buf . get_f32_le () ; __struct . aux1 = buf . get_f32_le () ; __struct . aux2 = buf . get_f32_le () ; __struct . aux3 = buf . get_f32_le () ; __struct . aux4 = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMode" , value : tmp as u32 }) ? ; __struct . nav_mode = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . roll_ailerons) ; __tmp . put_f32_le (self . pitch_elevator) ; __tmp . put_f32_le (self . yaw_rudder) ; __tmp . put_f32_le (self . throttle) ; __tmp . put_f32_le (self . aux1) ; __tmp . put_f32_le (self . aux2) ; __tmp . put_f32_le (self . aux3) ; __tmp . put_f32_le (self . aux4) ; __tmp . put_u8 (self . mode as u8) ; __tmp . put_u8 (self . nav_mode) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA_TRANSMISSION_HANDSHAKE_DATA { pub size : u32 , pub width : u16 , pub height : u16 , pub packets : u16 , pub mavtype : MavlinkDataStreamType , pub payload : u8 , pub jpg_quality : u8 , } impl DATA_TRANSMISSION_HANDSHAKE_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { size : 0_u32 , width : 0_u16 , height : 0_u16 , packets : 0_u16 , mavtype : MavlinkDataStreamType :: DEFAULT , payload : 0_u8 , jpg_quality : 0_u8 , } ; } impl Default for DATA_TRANSMISSION_HANDSHAKE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA_TRANSMISSION_HANDSHAKE_DATA { type Message = MavMessage ; const ID : u32 = 130u32 ; const NAME : & 'static str = "DATA_TRANSMISSION_HANDSHAKE" ; const EXTRA_CRC : u8 = 29u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . size = buf . get_u32_le () ; __struct . width = buf . get_u16_le () ; __struct . height = buf . get_u16_le () ; __struct . packets = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavlinkDataStreamType" , value : tmp as u32 }) ? ; __struct . payload = buf . get_u8 () ; __struct . jpg_quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . size) ; __tmp . put_u16_le (self . width) ; __tmp . put_u16_le (self . height) ; __tmp . put_u16_le (self . packets) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . payload) ; __tmp . put_u8 (self . jpg_quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESTIMATOR_STATUS_DATA { pub time_usec : u64 , pub vel_ratio : f32 , pub pos_horiz_ratio : f32 , pub pos_vert_ratio : f32 , pub mag_ratio : f32 , pub hagl_ratio : f32 , pub tas_ratio : f32 , pub pos_horiz_accuracy : f32 , pub pos_vert_accuracy : f32 , pub flags : EstimatorStatusFlags , } impl ESTIMATOR_STATUS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , vel_ratio : 0.0_f32 , pos_horiz_ratio : 0.0_f32 , pos_vert_ratio : 0.0_f32 , mag_ratio : 0.0_f32 , hagl_ratio : 0.0_f32 , tas_ratio : 0.0_f32 , pos_horiz_accuracy : 0.0_f32 , pos_vert_accuracy : 0.0_f32 , flags : EstimatorStatusFlags :: DEFAULT , } ; } impl Default for ESTIMATOR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESTIMATOR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 230u32 ; const NAME : & 'static str = "ESTIMATOR_STATUS" ; const EXTRA_CRC : u8 = 163u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . vel_ratio = buf . get_f32_le () ; __struct . pos_horiz_ratio = buf . get_f32_le () ; __struct . pos_vert_ratio = buf . get_f32_le () ; __struct . mag_ratio = buf . get_f32_le () ; __struct . hagl_ratio = buf . get_f32_le () ; __struct . tas_ratio = buf . get_f32_le () ; __struct . pos_horiz_accuracy = buf . get_f32_le () ; __struct . pos_vert_accuracy = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = EstimatorStatusFlags :: from_bits (tmp & EstimatorStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EstimatorStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . vel_ratio) ; __tmp . put_f32_le (self . pos_horiz_ratio) ; __tmp . put_f32_le (self . pos_vert_ratio) ; __tmp . put_f32_le (self . mag_ratio) ; __tmp . put_f32_le (self . hagl_ratio) ; __tmp . put_f32_le (self . tas_ratio) ; __tmp . put_f32_le (self . pos_horiz_accuracy) ; __tmp . put_f32_le (self . pos_vert_accuracy) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SERIAL_CONTROL_DATA { pub baudrate : u32 , pub timeout : u16 , pub device : SerialControlDev , pub flags : SerialControlFlag , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 70] , } impl SERIAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 79usize ; pub const DEFAULT : Self = Self { baudrate : 0_u32 , timeout : 0_u16 , device : SerialControlDev :: DEFAULT , flags : SerialControlFlag :: DEFAULT , count : 0_u8 , data : [0_u8 ; 70usize] , } ; } impl Default for SERIAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SERIAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 126u32 ; const NAME : & 'static str = "SERIAL_CONTROL" ; const EXTRA_CRC : u8 = 220u8 ; const ENCODED_LEN : usize = 79usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . baudrate = buf . get_u32_le () ; __struct . timeout = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . device = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "SerialControlDev" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = SerialControlFlag :: from_bits (tmp & SerialControlFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "SerialControlFlag" , value : tmp as u32 }) ? ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . baudrate) ; __tmp . put_u16_le (self . timeout) ; __tmp . put_u8 (self . device as u8) ; __tmp . put_u8 (self . flags . bits ()) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_DATA_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , pub length : u8 , pub first_message_offset : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 249] , } impl LOGGING_DATA_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , length : 0_u8 , first_message_offset : 0_u8 , data : [0_u8 ; 249usize] , } ; } impl Default for LOGGING_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_DATA_DATA { type Message = MavMessage ; const ID : u32 = 266u32 ; const NAME : & 'static str = "LOGGING_DATA" ; const EXTRA_CRC : u8 = 193u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . length = buf . get_u8 () ; __struct . first_message_offset = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . length) ; __tmp . put_u8 (self . first_message_offset) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EXTENDED_SYS_STATE_DATA { pub vtol_state : MavVtolState , pub landed_state : MavLandedState , } impl EXTENDED_SYS_STATE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { vtol_state : MavVtolState :: DEFAULT , landed_state : MavLandedState :: DEFAULT , } ; } impl Default for EXTENDED_SYS_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EXTENDED_SYS_STATE_DATA { type Message = MavMessage ; const ID : u32 = 245u32 ; const NAME : & 'static str = "EXTENDED_SYS_STATE" ; const EXTRA_CRC : u8 = 130u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . vtol_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavVtolState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . vtol_state as u8) ; __tmp . put_u8 (self . landed_state as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_HOME_POSITION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub approach_x : f32 , pub approach_y : f32 , pub approach_z : f32 , pub target_system : u8 , } impl SET_HOME_POSITION_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , approach_x : 0.0_f32 , approach_y : 0.0_f32 , approach_z : 0.0_f32 , target_system : 0_u8 , } ; } impl Default for SET_HOME_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_HOME_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 243u32 ; const NAME : & 'static str = "SET_HOME_POSITION" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . approach_x = buf . get_f32_le () ; __struct . approach_y = buf . get_f32_le () ; __struct . approach_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . approach_x) ; __tmp . put_f32_le (self . approach_y) ; __tmp . put_f32_le (self . approach_z) ; __tmp . put_u8 (self . target_system) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MEMORY_VECT_DATA { pub address : u16 , pub ver : u8 , pub mavtype : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub value : [i8 ; 32] , } impl MEMORY_VECT_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { address : 0_u16 , ver : 0_u8 , mavtype : 0_u8 , value : [0_i8 ; 32usize] , } ; } impl Default for MEMORY_VECT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MEMORY_VECT_DATA { type Message = MavMessage ; const ID : u32 = 249u32 ; const NAME : & 'static str = "MEMORY_VECT" ; const EXTRA_CRC : u8 = 204u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . address = buf . get_u16_le () ; __struct . ver = buf . get_u8 () ; __struct . mavtype = buf . get_u8 () ; for v in & mut __struct . value { let val = buf . get_i8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . address) ; __tmp . put_u8 (self . ver) ; __tmp . put_u8 (self . mavtype) ; for val in & self . value { __tmp . put_i8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_RPM_DATA { pub frequency : f32 , pub index : u8 , } impl RAW_RPM_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { frequency : 0.0_f32 , index : 0_u8 , } ; } impl Default for RAW_RPM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_RPM_DATA { type Message = MavMessage ; const ID : u32 = 339u32 ; const NAME : & 'static str = "RAW_RPM" ; const EXTRA_CRC : u8 = 199u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . frequency = buf . get_f32_le () ; __struct . index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . frequency) ; __tmp . put_u8 (self . index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_POSITION_INT_COV_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 36] , pub estimator_type : MavEstimatorType , } impl GLOBAL_POSITION_INT_COV_DATA { pub const ENCODED_LEN : usize = 181usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , covariance : [0.0_f32 ; 36usize] , estimator_type : MavEstimatorType :: DEFAULT , } ; } impl Default for GLOBAL_POSITION_INT_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_POSITION_INT_COV_DATA { type Message = MavMessage ; const ID : u32 = 63u32 ; const NAME : & 'static str = "GLOBAL_POSITION_INT_COV" ; const EXTRA_CRC : u8 = 119u8 ; const ENCODED_LEN : usize = 181usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . estimator_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEstimatorType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . estimator_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS2_RTK_DATA { pub time_last_baseline_ms : u32 , pub tow : u32 , pub baseline_a_mm : i32 , pub baseline_b_mm : i32 , pub baseline_c_mm : i32 , pub accuracy : u32 , pub iar_num_hypotheses : i32 , pub wn : u16 , pub rtk_receiver_id : u8 , pub rtk_health : u8 , pub rtk_rate : u8 , pub nsats : u8 , pub baseline_coords_type : RtkBaselineCoordinateSystem , } impl GPS2_RTK_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_last_baseline_ms : 0_u32 , tow : 0_u32 , baseline_a_mm : 0_i32 , baseline_b_mm : 0_i32 , baseline_c_mm : 0_i32 , accuracy : 0_u32 , iar_num_hypotheses : 0_i32 , wn : 0_u16 , rtk_receiver_id : 0_u8 , rtk_health : 0_u8 , rtk_rate : 0_u8 , nsats : 0_u8 , baseline_coords_type : RtkBaselineCoordinateSystem :: DEFAULT , } ; } impl Default for GPS2_RTK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS2_RTK_DATA { type Message = MavMessage ; const ID : u32 = 128u32 ; const NAME : & 'static str = "GPS2_RTK" ; const EXTRA_CRC : u8 = 226u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_last_baseline_ms = buf . get_u32_le () ; __struct . tow = buf . get_u32_le () ; __struct . baseline_a_mm = buf . get_i32_le () ; __struct . baseline_b_mm = buf . get_i32_le () ; __struct . baseline_c_mm = buf . get_i32_le () ; __struct . accuracy = buf . get_u32_le () ; __struct . iar_num_hypotheses = buf . get_i32_le () ; __struct . wn = buf . get_u16_le () ; __struct . rtk_receiver_id = buf . get_u8 () ; __struct . rtk_health = buf . get_u8 () ; __struct . rtk_rate = buf . get_u8 () ; __struct . nsats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . baseline_coords_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "RtkBaselineCoordinateSystem" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_last_baseline_ms) ; __tmp . put_u32_le (self . tow) ; __tmp . put_i32_le (self . baseline_a_mm) ; __tmp . put_i32_le (self . baseline_b_mm) ; __tmp . put_i32_le (self . baseline_c_mm) ; __tmp . put_u32_le (self . accuracy) ; __tmp . put_i32_le (self . iar_num_hypotheses) ; __tmp . put_u16_le (self . wn) ; __tmp . put_u8 (self . rtk_receiver_id) ; __tmp . put_u8 (self . rtk_health) ; __tmp . put_u8 (self . rtk_rate) ; __tmp . put_u8 (self . nsats) ; __tmp . put_u8 (self . baseline_coords_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_GLOBAL_ORIGIN_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , } impl GPS_GLOBAL_ORIGIN_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , } ; } impl Default for GPS_GLOBAL_ORIGIN_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_GLOBAL_ORIGIN_DATA { type Message = MavMessage ; const ID : u32 = 49u32 ; const NAME : & 'static str = "GPS_GLOBAL_ORIGIN" ; const EXTRA_CRC : u8 = 39u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPTICAL_FLOW_DATA { pub time_usec : u64 , pub flow_comp_m_x : f32 , pub flow_comp_m_y : f32 , pub ground_distance : f32 , pub flow_x : i16 , pub flow_y : i16 , pub sensor_id : u8 , pub quality : u8 , } impl OPTICAL_FLOW_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , flow_comp_m_x : 0.0_f32 , flow_comp_m_y : 0.0_f32 , ground_distance : 0.0_f32 , flow_x : 0_i16 , flow_y : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for OPTICAL_FLOW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPTICAL_FLOW_DATA { type Message = MavMessage ; const ID : u32 = 100u32 ; const NAME : & 'static str = "OPTICAL_FLOW" ; const EXTRA_CRC : u8 = 175u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . flow_comp_m_x = buf . get_f32_le () ; __struct . flow_comp_m_y = buf . get_f32_le () ; __struct . ground_distance = buf . get_f32_le () ; __struct . flow_x = buf . get_i16_le () ; __struct . flow_y = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . flow_comp_m_x) ; __tmp . put_f32_le (self . flow_comp_m_y) ; __tmp . put_f32_le (self . ground_distance) ; __tmp . put_i16_le (self . flow_x) ; __tmp . put_i16_le (self . flow_y) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_DATA_DATA { pub lat : i32 , pub lon : i32 , pub grid_spacing : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [i16 ; 16] , pub gridbit : u8 , } impl TERRAIN_DATA_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , grid_spacing : 0_u16 , data : [0_i16 ; 16usize] , gridbit : 0_u8 , } ; } impl Default for TERRAIN_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_DATA_DATA { type Message = MavMessage ; const ID : u32 = 134u32 ; const NAME : & 'static str = "TERRAIN_DATA" ; const EXTRA_CRC : u8 = 229u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . grid_spacing = buf . get_u16_le () ; for v in & mut __struct . data { let val = buf . get_i16_le () ; * v = val ; } __struct . gridbit = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . grid_spacing) ; for val in & self . data { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . gridbit) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FLIGHT_INFORMATION_DATA { pub arming_time_utc : u64 , pub takeoff_time_utc : u64 , pub flight_uuid : u64 , pub time_boot_ms : u32 , } impl FLIGHT_INFORMATION_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { arming_time_utc : 0_u64 , takeoff_time_utc : 0_u64 , flight_uuid : 0_u64 , time_boot_ms : 0_u32 , } ; } impl Default for FLIGHT_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FLIGHT_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 264u32 ; const NAME : & 'static str = "FLIGHT_INFORMATION" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . arming_time_utc = buf . get_u64_le () ; __struct . takeoff_time_utc = buf . get_u64_le () ; __struct . flight_uuid = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . arming_time_utc) ; __tmp . put_u64_le (self . takeoff_time_utc) ; __tmp . put_u64_le (self . flight_uuid) ; __tmp . put_u32_le (self . time_boot_ms) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE2_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE2_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE2_DATA { type Message = MavMessage ; const ID : u32 = 137u32 ; const NAME : & 'static str = "SCALED_PRESSURE2" ; const EXTRA_CRC : u8 = 195u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_CAPTURE_STATUS_DATA { pub time_boot_ms : u32 , pub image_interval : f32 , pub recording_time_ms : u32 , pub available_capacity : f32 , pub image_status : u8 , pub video_status : u8 , } impl CAMERA_CAPTURE_STATUS_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , image_interval : 0.0_f32 , recording_time_ms : 0_u32 , available_capacity : 0.0_f32 , image_status : 0_u8 , video_status : 0_u8 , } ; } impl Default for CAMERA_CAPTURE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_CAPTURE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 262u32 ; const NAME : & 'static str = "CAMERA_CAPTURE_STATUS" ; const EXTRA_CRC : u8 = 12u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . image_interval = buf . get_f32_le () ; __struct . recording_time_ms = buf . get_u32_le () ; __struct . available_capacity = buf . get_f32_le () ; __struct . image_status = buf . get_u8 () ; __struct . video_status = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . image_interval) ; __tmp . put_u32_le (self . recording_time_ms) ; __tmp . put_f32_le (self . available_capacity) ; __tmp . put_u8 (self . image_status) ; __tmp . put_u8 (self . video_status) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SAFETY_ALLOWED_AREA_DATA { pub p1x : f32 , pub p1y : f32 , pub p1z : f32 , pub p2x : f32 , pub p2y : f32 , pub p2z : f32 , pub frame : MavFrame , } impl SAFETY_ALLOWED_AREA_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { p1x : 0.0_f32 , p1y : 0.0_f32 , p1z : 0.0_f32 , p2x : 0.0_f32 , p2y : 0.0_f32 , p2z : 0.0_f32 , frame : MavFrame :: DEFAULT , } ; } impl Default for SAFETY_ALLOWED_AREA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SAFETY_ALLOWED_AREA_DATA { type Message = MavMessage ; const ID : u32 = 55u32 ; const NAME : & 'static str = "SAFETY_ALLOWED_AREA" ; const EXTRA_CRC : u8 = 3u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . p1x = buf . get_f32_le () ; __struct . p1y = buf . get_f32_le () ; __struct . p1z = buf . get_f32_le () ; __struct . p2x = buf . get_f32_le () ; __struct . p2y = buf . get_f32_le () ; __struct . p2z = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . p1x) ; __tmp . put_f32_le (self . p1y) ; __tmp . put_f32_le (self . p1z) ; __tmp . put_f32_le (self . p2x) ; __tmp . put_f32_le (self . p2y) ; __tmp . put_f32_le (self . p2z) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA_STREAM_DATA { pub message_rate : u16 , pub stream_id : u8 , pub on_off : u8 , } impl DATA_STREAM_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { message_rate : 0_u16 , stream_id : 0_u8 , on_off : 0_u8 , } ; } impl Default for DATA_STREAM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA_STREAM_DATA { type Message = MavMessage ; const ID : u32 = 67u32 ; const NAME : & 'static str = "DATA_STREAM" ; const EXTRA_CRC : u8 = 21u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . message_rate = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; __struct . on_off = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . message_rate) ; __tmp . put_u8 (self . stream_id) ; __tmp . put_u8 (self . on_off) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , } impl ATTITUDE_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , } ; } impl Default for ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 30u32 ; const NAME : & 'static str = "ATTITUDE" ; const EXTRA_CRC : u8 = 39u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_STATE_QUATERNION_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub attitude_quaternion : [f32 ; 4] , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub ind_airspeed : u16 , pub true_airspeed : u16 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , } impl HIL_STATE_QUATERNION_DATA { pub const ENCODED_LEN : usize = 64usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , attitude_quaternion : [0.0_f32 ; 4usize] , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , ind_airspeed : 0_u16 , true_airspeed : 0_u16 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , } ; } impl Default for HIL_STATE_QUATERNION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_STATE_QUATERNION_DATA { type Message = MavMessage ; const ID : u32 = 115u32 ; const NAME : & 'static str = "HIL_STATE_QUATERNION" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 64usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . attitude_quaternion { let val = buf . get_f32_le () ; * v = val ; } __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . ind_airspeed = buf . get_u16_le () ; __struct . true_airspeed = buf . get_u16_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . attitude_quaternion { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . ind_airspeed) ; __tmp . put_u16_le (self . true_airspeed) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_DATA_ACKED_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , pub length : u8 , pub first_message_offset : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 249] , } impl LOGGING_DATA_ACKED_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , length : 0_u8 , first_message_offset : 0_u8 , data : [0_u8 ; 249usize] , } ; } impl Default for LOGGING_DATA_ACKED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_DATA_ACKED_DATA { type Message = MavMessage ; const ID : u32 = 267u32 ; const NAME : & 'static str = "LOGGING_DATA_ACKED" ; const EXTRA_CRC : u8 = 35u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . length = buf . get_u8 () ; __struct . first_message_offset = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . length) ; __tmp . put_u8 (self . first_message_offset) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIDEO_STREAM_INFORMATION_DATA { pub framerate : f32 , pub bitrate : u32 , pub flags : VideoStreamStatusFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub hfov : u16 , pub stream_id : u8 , pub count : u8 , pub mavtype : VideoStreamType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 160] , } impl VIDEO_STREAM_INFORMATION_DATA { pub const ENCODED_LEN : usize = 213usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , flags : VideoStreamStatusFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , hfov : 0_u16 , stream_id : 0_u8 , count : 0_u8 , mavtype : VideoStreamType :: DEFAULT , name : [0_u8 ; 32usize] , uri : [0_u8 ; 160usize] , } ; } impl Default for VIDEO_STREAM_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIDEO_STREAM_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 269u32 ; const NAME : & 'static str = "VIDEO_STREAM_INFORMATION" ; const EXTRA_CRC : u8 = 109u8 ; const ENCODED_LEN : usize = 213usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamStatusFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . hfov = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamType" , value : tmp as u32 }) ? ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . flags as u16) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u16_le (self . hfov) ; __tmp . put_u8 (self . stream_id) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . mavtype as u8) ; for val in & self . name { __tmp . put_u8 (* val) ; } for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DISTANCE_SENSOR_DATA { pub time_boot_ms : u32 , pub min_distance : u16 , pub max_distance : u16 , pub current_distance : u16 , pub mavtype : MavDistanceSensor , pub id : u8 , pub orientation : MavSensorOrientation , pub covariance : u8 , } impl DISTANCE_SENSOR_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , min_distance : 0_u16 , max_distance : 0_u16 , current_distance : 0_u16 , mavtype : MavDistanceSensor :: DEFAULT , id : 0_u8 , orientation : MavSensorOrientation :: DEFAULT , covariance : 0_u8 , } ; } impl Default for DISTANCE_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DISTANCE_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 132u32 ; const NAME : & 'static str = "DISTANCE_SENSOR" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . min_distance = buf . get_u16_le () ; __struct . max_distance = buf . get_u16_le () ; __struct . current_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . orientation = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavSensorOrientation" , value : tmp as u32 }) ? ; __struct . covariance = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . min_distance) ; __tmp . put_u16_le (self . max_distance) ; __tmp . put_u16_le (self . current_distance) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . orientation as u8) ; __tmp . put_u8 (self . covariance) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTH_KEY_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub key : [u8 ; 32] , } impl AUTH_KEY_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { key : [0_u8 ; 32usize] , } ; } impl Default for AUTH_KEY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTH_KEY_DATA { type Message = MavMessage ; const ID : u32 = 7u32 ; const NAME : & 'static str = "AUTH_KEY" ; const EXTRA_CRC : u8 = 119u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . key { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . key { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_OVERRIDE_DATA { pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub target_system : u8 , pub target_component : u8 , } impl RC_CHANNELS_OVERRIDE_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for RC_CHANNELS_OVERRIDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_OVERRIDE_DATA { type Message = MavMessage ; const ID : u32 = 70u32 ; const NAME : & 'static str = "RC_CHANNELS_OVERRIDE" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_SET_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , } impl PARAM_EXT_SET_DATA { pub const ENCODED_LEN : usize = 147usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , } ; } impl Default for PARAM_EXT_SET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_SET_DATA { type Message = MavMessage ; const ID : u32 = 323u32 ; const NAME : & 'static str = "PARAM_EXT_SET" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 147usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ADSB_VEHICLE_DATA { pub ICAO_address : u32 , pub lat : i32 , pub lon : i32 , pub altitude : i32 , pub heading : u16 , pub hor_velocity : u16 , pub ver_velocity : i16 , pub flags : AdsbFlags , pub squawk : u16 , pub altitude_type : AdsbAltitudeType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 9] , pub emitter_type : AdsbEmitterType , pub tslc : u8 , } impl ADSB_VEHICLE_DATA { pub const ENCODED_LEN : usize = 38usize ; pub const DEFAULT : Self = Self { ICAO_address : 0_u32 , lat : 0_i32 , lon : 0_i32 , altitude : 0_i32 , heading : 0_u16 , hor_velocity : 0_u16 , ver_velocity : 0_i16 , flags : AdsbFlags :: DEFAULT , squawk : 0_u16 , altitude_type : AdsbAltitudeType :: DEFAULT , callsign : [0_u8 ; 9usize] , emitter_type : AdsbEmitterType :: DEFAULT , tslc : 0_u8 , } ; } impl Default for ADSB_VEHICLE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ADSB_VEHICLE_DATA { type Message = MavMessage ; const ID : u32 = 246u32 ; const NAME : & 'static str = "ADSB_VEHICLE" ; const EXTRA_CRC : u8 = 184u8 ; const ENCODED_LEN : usize = 38usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ICAO_address = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . heading = buf . get_u16_le () ; __struct . hor_velocity = buf . get_u16_le () ; __struct . ver_velocity = buf . get_i16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = AdsbFlags :: from_bits (tmp & AdsbFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AdsbFlags" , value : tmp as u32 }) ? ; __struct . squawk = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . altitude_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbAltitudeType" , value : tmp as u32 }) ? ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . emitter_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbEmitterType" , value : tmp as u32 }) ? ; __struct . tslc = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ICAO_address) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_u16_le (self . heading) ; __tmp . put_u16_le (self . hor_velocity) ; __tmp . put_i16_le (self . ver_velocity) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u16_le (self . squawk) ; __tmp . put_u8 (self . altitude_type as u8) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . emitter_type as u8) ; __tmp . put_u8 (self . tslc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SERVO_OUTPUT_RAW_DATA { pub time_usec : u32 , pub servo1_raw : u16 , pub servo2_raw : u16 , pub servo3_raw : u16 , pub servo4_raw : u16 , pub servo5_raw : u16 , pub servo6_raw : u16 , pub servo7_raw : u16 , pub servo8_raw : u16 , pub port : u8 , } impl SERVO_OUTPUT_RAW_DATA { pub const ENCODED_LEN : usize = 21usize ; pub const DEFAULT : Self = Self { time_usec : 0_u32 , servo1_raw : 0_u16 , servo2_raw : 0_u16 , servo3_raw : 0_u16 , servo4_raw : 0_u16 , servo5_raw : 0_u16 , servo6_raw : 0_u16 , servo7_raw : 0_u16 , servo8_raw : 0_u16 , port : 0_u8 , } ; } impl Default for SERVO_OUTPUT_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SERVO_OUTPUT_RAW_DATA { type Message = MavMessage ; const ID : u32 = 36u32 ; const NAME : & 'static str = "SERVO_OUTPUT_RAW" ; const EXTRA_CRC : u8 = 222u8 ; const ENCODED_LEN : usize = 21usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u32_le () ; __struct . servo1_raw = buf . get_u16_le () ; __struct . servo2_raw = buf . get_u16_le () ; __struct . servo3_raw = buf . get_u16_le () ; __struct . servo4_raw = buf . get_u16_le () ; __struct . servo5_raw = buf . get_u16_le () ; __struct . servo6_raw = buf . get_u16_le () ; __struct . servo7_raw = buf . get_u16_le () ; __struct . servo8_raw = buf . get_u16_le () ; __struct . port = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_usec) ; __tmp . put_u16_le (self . servo1_raw) ; __tmp . put_u16_le (self . servo2_raw) ; __tmp . put_u16_le (self . servo3_raw) ; __tmp . put_u16_le (self . servo4_raw) ; __tmp . put_u16_le (self . servo5_raw) ; __tmp . put_u16_le (self . servo6_raw) ; __tmp . put_u16_le (self . servo7_raw) ; __tmp . put_u16_le (self . servo8_raw) ; __tmp . put_u8 (self . port) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SIM_STATE_DATA { pub q1 : f32 , pub q2 : f32 , pub q3 : f32 , pub q4 : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub lat : f32 , pub lon : f32 , pub alt : f32 , pub std_dev_horz : f32 , pub std_dev_vert : f32 , pub vn : f32 , pub ve : f32 , pub vd : f32 , } impl SIM_STATE_DATA { pub const ENCODED_LEN : usize = 84usize ; pub const DEFAULT : Self = Self { q1 : 0.0_f32 , q2 : 0.0_f32 , q3 : 0.0_f32 , q4 : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , lat : 0.0_f32 , lon : 0.0_f32 , alt : 0.0_f32 , std_dev_horz : 0.0_f32 , std_dev_vert : 0.0_f32 , vn : 0.0_f32 , ve : 0.0_f32 , vd : 0.0_f32 , } ; } impl Default for SIM_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SIM_STATE_DATA { type Message = MavMessage ; const ID : u32 = 108u32 ; const NAME : & 'static str = "SIM_STATE" ; const EXTRA_CRC : u8 = 32u8 ; const ENCODED_LEN : usize = 84usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . q1 = buf . get_f32_le () ; __struct . q2 = buf . get_f32_le () ; __struct . q3 = buf . get_f32_le () ; __struct . q4 = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . lat = buf . get_f32_le () ; __struct . lon = buf . get_f32_le () ; __struct . alt = buf . get_f32_le () ; __struct . std_dev_horz = buf . get_f32_le () ; __struct . std_dev_vert = buf . get_f32_le () ; __struct . vn = buf . get_f32_le () ; __struct . ve = buf . get_f32_le () ; __struct . vd = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . q1) ; __tmp . put_f32_le (self . q2) ; __tmp . put_f32_le (self . q3) ; __tmp . put_f32_le (self . q4) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . lat) ; __tmp . put_f32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . std_dev_horz) ; __tmp . put_f32_le (self . std_dev_vert) ; __tmp . put_f32_le (self . vn) ; __tmp . put_f32_le (self . ve) ; __tmp . put_f32_le (self . vd) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FENCE_STATUS_DATA { pub breach_time : u32 , pub breach_count : u16 , pub breach_status : u8 , pub breach_type : FenceBreach , } impl FENCE_STATUS_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { breach_time : 0_u32 , breach_count : 0_u16 , breach_status : 0_u8 , breach_type : FenceBreach :: DEFAULT , } ; } impl Default for FENCE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FENCE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 162u32 ; const NAME : & 'static str = "FENCE_STATUS" ; const EXTRA_CRC : u8 = 189u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . breach_time = buf . get_u32_le () ; __struct . breach_count = buf . get_u16_le () ; __struct . breach_status = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . breach_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "FenceBreach" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . breach_time) ; __tmp . put_u16_le (self . breach_count) ; __tmp . put_u8 (self . breach_status) ; __tmp . put_u8 (self . breach_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_QUATERNION_DATA { pub time_boot_ms : u32 , pub q1 : f32 , pub q2 : f32 , pub q3 : f32 , pub q4 : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , } impl ATTITUDE_QUATERNION_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q1 : 0.0_f32 , q2 : 0.0_f32 , q3 : 0.0_f32 , q4 : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , } ; } impl Default for ATTITUDE_QUATERNION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_QUATERNION_DATA { type Message = MavMessage ; const ID : u32 = 31u32 ; const NAME : & 'static str = "ATTITUDE_QUATERNION" ; const EXTRA_CRC : u8 = 246u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . q1 = buf . get_f32_le () ; __struct . q2 = buf . get_f32_le () ; __struct . q3 = buf . get_f32_le () ; __struct . q4 = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . q1) ; __tmp . put_f32_le (self . q2) ; __tmp . put_f32_le (self . q3) ; __tmp . put_f32_le (self . q4) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATT_POS_MOCAP_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub x : f32 , pub y : f32 , pub z : f32 , } impl ATT_POS_MOCAP_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , q : [0.0_f32 ; 4usize] , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , } ; } impl Default for ATT_POS_MOCAP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATT_POS_MOCAP_DATA { type Message = MavMessage ; const ID : u32 = 138u32 ; const NAME : & 'static str = "ATT_POS_MOCAP" ; const EXTRA_CRC : u8 = 109u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_INT_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_INT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_INT_DATA { type Message = MavMessage ; const ID : u32 = 51u32 ; const NAME : & 'static str = "MISSION_REQUEST_INT" ; const EXTRA_CRC : u8 = 196u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_ACK_DATA { pub command : MavCmd , pub result : MavResult , } impl COMMAND_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { command : MavCmd :: DEFAULT , result : MavResult :: DEFAULT , } ; } impl Default for COMMAND_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_ACK_DATA { type Message = MavMessage ; const ID : u32 = 77u32 ; const NAME : & 'static str = "COMMAND_ACK" ; const EXTRA_CRC : u8 = 143u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavResult" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_COUNT_DATA { pub count : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_COUNT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { count : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_COUNT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_COUNT_DATA { type Message = MavMessage ; const ID : u32 = 44u32 ; const NAME : & 'static str = "MISSION_COUNT" ; const EXTRA_CRC : u8 = 221u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . count = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . count) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl VISION_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for VISION_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 102u32 ; const NAME : & 'static str = "VISION_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 158u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TIMESYNC_DATA { pub tc1 : i64 , pub ts1 : i64 , } impl TIMESYNC_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { tc1 : 0_i64 , ts1 : 0_i64 , } ; } impl Default for TIMESYNC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TIMESYNC_DATA { type Message = MavMessage ; const ID : u32 = 111u32 ; const NAME : & 'static str = "TIMESYNC" ; const EXTRA_CRC : u8 = 34u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . tc1 = buf . get_i64_le () ; __struct . ts1 = buf . get_i64_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i64_le (self . tc1) ; __tmp . put_i64_le (self . ts1) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_INPUT_DATA { pub time_usec : u64 , pub time_week_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : f32 , pub hdop : f32 , pub vdop : f32 , pub vn : f32 , pub ve : f32 , pub vd : f32 , pub speed_accuracy : f32 , pub horiz_accuracy : f32 , pub vert_accuracy : f32 , pub ignore_flags : GpsInputIgnoreFlags , pub time_week : u16 , pub gps_id : u8 , pub fix_type : u8 , pub satellites_visible : u8 , } impl GPS_INPUT_DATA { pub const ENCODED_LEN : usize = 63usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , time_week_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , hdop : 0.0_f32 , vdop : 0.0_f32 , vn : 0.0_f32 , ve : 0.0_f32 , vd : 0.0_f32 , speed_accuracy : 0.0_f32 , horiz_accuracy : 0.0_f32 , vert_accuracy : 0.0_f32 , ignore_flags : GpsInputIgnoreFlags :: DEFAULT , time_week : 0_u16 , gps_id : 0_u8 , fix_type : 0_u8 , satellites_visible : 0_u8 , } ; } impl Default for GPS_INPUT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_INPUT_DATA { type Message = MavMessage ; const ID : u32 = 232u32 ; const NAME : & 'static str = "GPS_INPUT" ; const EXTRA_CRC : u8 = 151u8 ; const ENCODED_LEN : usize = 63usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . time_week_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . hdop = buf . get_f32_le () ; __struct . vdop = buf . get_f32_le () ; __struct . vn = buf . get_f32_le () ; __struct . ve = buf . get_f32_le () ; __struct . vd = buf . get_f32_le () ; __struct . speed_accuracy = buf . get_f32_le () ; __struct . horiz_accuracy = buf . get_f32_le () ; __struct . vert_accuracy = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . ignore_flags = GpsInputIgnoreFlags :: from_bits (tmp & GpsInputIgnoreFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GpsInputIgnoreFlags" , value : tmp as u32 }) ? ; __struct . time_week = buf . get_u16_le () ; __struct . gps_id = buf . get_u8 () ; __struct . fix_type = buf . get_u8 () ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . time_week_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . hdop) ; __tmp . put_f32_le (self . vdop) ; __tmp . put_f32_le (self . vn) ; __tmp . put_f32_le (self . ve) ; __tmp . put_f32_le (self . vd) ; __tmp . put_f32_le (self . speed_accuracy) ; __tmp . put_f32_le (self . horiz_accuracy) ; __tmp . put_f32_le (self . vert_accuracy) ; __tmp . put_u16_le (self . ignore_flags . bits ()) ; __tmp . put_u16_le (self . time_week) ; __tmp . put_u8 (self . gps_id) ; __tmp . put_u8 (self . fix_type) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_IMAGE_CAPTURED_DATA { pub time_utc : u64 , pub time_boot_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub image_index : i32 , pub camera_id : u8 , pub capture_result : i8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub file_url : [u8 ; 205] , } impl CAMERA_IMAGE_CAPTURED_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { time_utc : 0_u64 , time_boot_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , q : [0.0_f32 ; 4usize] , image_index : 0_i32 , camera_id : 0_u8 , capture_result : 0_i8 , file_url : [0_u8 ; 205usize] , } ; } impl Default for CAMERA_IMAGE_CAPTURED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_IMAGE_CAPTURED_DATA { type Message = MavMessage ; const ID : u32 = 263u32 ; const NAME : & 'static str = "CAMERA_IMAGE_CAPTURED" ; const EXTRA_CRC : u8 = 133u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_utc = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . image_index = buf . get_i32_le () ; __struct . camera_id = buf . get_u8 () ; __struct . capture_result = buf . get_i8 () ; for v in & mut __struct . file_url { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_utc) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_i32_le (self . image_index) ; __tmp . put_u8 (self . camera_id) ; __tmp . put_i8 (self . capture_result) ; for val in & self . file_url { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRACKING_IMAGE_STATUS_DATA { pub point_x : f32 , pub point_y : f32 , pub radius : f32 , pub rec_top_x : f32 , pub rec_top_y : f32 , pub rec_bottom_x : f32 , pub rec_bottom_y : f32 , pub tracking_status : CameraTrackingStatusFlags , pub tracking_mode : CameraTrackingMode , pub target_data : CameraTrackingTargetData , } impl CAMERA_TRACKING_IMAGE_STATUS_DATA { pub const ENCODED_LEN : usize = 31usize ; pub const DEFAULT : Self = Self { point_x : 0.0_f32 , point_y : 0.0_f32 , radius : 0.0_f32 , rec_top_x : 0.0_f32 , rec_top_y : 0.0_f32 , rec_bottom_x : 0.0_f32 , rec_bottom_y : 0.0_f32 , tracking_status : CameraTrackingStatusFlags :: DEFAULT , tracking_mode : CameraTrackingMode :: DEFAULT , target_data : CameraTrackingTargetData :: DEFAULT , } ; } impl Default for CAMERA_TRACKING_IMAGE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRACKING_IMAGE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 275u32 ; const NAME : & 'static str = "CAMERA_TRACKING_IMAGE_STATUS" ; const EXTRA_CRC : u8 = 126u8 ; const ENCODED_LEN : usize = 31usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . point_x = buf . get_f32_le () ; __struct . point_y = buf . get_f32_le () ; __struct . radius = buf . get_f32_le () ; __struct . rec_top_x = buf . get_f32_le () ; __struct . rec_top_y = buf . get_f32_le () ; __struct . rec_bottom_x = buf . get_f32_le () ; __struct . rec_bottom_y = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . tracking_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingStatusFlags" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . tracking_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingMode" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . target_data = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingTargetData" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . point_x) ; __tmp . put_f32_le (self . point_y) ; __tmp . put_f32_le (self . radius) ; __tmp . put_f32_le (self . rec_top_x) ; __tmp . put_f32_le (self . rec_top_y) ; __tmp . put_f32_le (self . rec_bottom_x) ; __tmp . put_f32_le (self . rec_bottom_y) ; __tmp . put_u8 (self . tracking_status as u8) ; __tmp . put_u8 (self . tracking_mode as u8) ; __tmp . put_u8 (self . target_data as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_INFORMATION_DATA { pub time_boot_ms : u32 , pub cap_flags : GimbalManagerCapFlags , pub roll_min : f32 , pub roll_max : f32 , pub pitch_min : f32 , pub pitch_max : f32 , pub yaw_min : f32 , pub yaw_max : f32 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_INFORMATION_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , cap_flags : GimbalManagerCapFlags :: DEFAULT , roll_min : 0.0_f32 , roll_max : 0.0_f32 , pitch_min : 0.0_f32 , pitch_max : 0.0_f32 , yaw_min : 0.0_f32 , yaw_max : 0.0_f32 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 280u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_INFORMATION" ; const EXTRA_CRC : u8 = 70u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u32_le () ; __struct . cap_flags = GimbalManagerCapFlags :: from_bits (tmp & GimbalManagerCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalManagerCapFlags" , value : tmp as u32 }) ? ; __struct . roll_min = buf . get_f32_le () ; __struct . roll_max = buf . get_f32_le () ; __struct . pitch_min = buf . get_f32_le () ; __struct . pitch_max = buf . get_f32_le () ; __struct . yaw_min = buf . get_f32_le () ; __struct . yaw_max = buf . get_f32_le () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . cap_flags . bits ()) ; __tmp . put_f32_le (self . roll_min) ; __tmp . put_f32_le (self . roll_max) ; __tmp . put_f32_le (self . pitch_min) ; __tmp . put_f32_le (self . pitch_max) ; __tmp . put_f32_le (self . yaw_min) ; __tmp . put_f32_le (self . yaw_max) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVCAN_NODE_STATUS_DATA { pub time_usec : u64 , pub uptime_sec : u32 , pub vendor_specific_status_code : u16 , pub health : UavcanNodeHealth , pub mode : UavcanNodeMode , pub sub_mode : u8 , } impl UAVCAN_NODE_STATUS_DATA { pub const ENCODED_LEN : usize = 17usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime_sec : 0_u32 , vendor_specific_status_code : 0_u16 , health : UavcanNodeHealth :: DEFAULT , mode : UavcanNodeMode :: DEFAULT , sub_mode : 0_u8 , } ; } impl Default for UAVCAN_NODE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVCAN_NODE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 310u32 ; const NAME : & 'static str = "UAVCAN_NODE_STATUS" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 17usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime_sec = buf . get_u32_le () ; __struct . vendor_specific_status_code = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . health = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavcanNodeHealth" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavcanNodeMode" , value : tmp as u32 }) ? ; __struct . sub_mode = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime_sec) ; __tmp . put_u16_le (self . vendor_specific_status_code) ; __tmp . put_u8 (self . health as u8) ; __tmp . put_u8 (self . mode as u8) ; __tmp . put_u8 (self . sub_mode) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_INJECT_DATA_DATA { pub target_system : u8 , pub target_component : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 110] , } impl GPS_INJECT_DATA_DATA { pub const ENCODED_LEN : usize = 113usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , len : 0_u8 , data : [0_u8 ; 110usize] , } ; } impl Default for GPS_INJECT_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_INJECT_DATA_DATA { type Message = MavMessage ; const ID : u32 = 123u32 ; const NAME : & 'static str = "GPS_INJECT_DATA" ; const EXTRA_CRC : u8 = 250u8 ; const ENCODED_LEN : usize = 113usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl PARAM_EXT_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PARAM_EXT_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 321u32 ; const NAME : & 'static str = "PARAM_EXT_REQUEST_LIST" ; const EXTRA_CRC : u8 = 88u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_SET_DATA { pub param_value : f32 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub param_type : MavParamType , } impl PARAM_SET_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { param_value : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , param_type : MavParamType :: DEFAULT , } ; } impl Default for PARAM_SET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_SET_DATA { type Message = MavMessage ; const ID : u32 = 23u32 ; const NAME : & 'static str = "PARAM_SET" ; const EXTRA_CRC : u8 = 168u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RTK_DATA { pub time_last_baseline_ms : u32 , pub tow : u32 , pub baseline_a_mm : i32 , pub baseline_b_mm : i32 , pub baseline_c_mm : i32 , pub accuracy : u32 , pub iar_num_hypotheses : i32 , pub wn : u16 , pub rtk_receiver_id : u8 , pub rtk_health : u8 , pub rtk_rate : u8 , pub nsats : u8 , pub baseline_coords_type : RtkBaselineCoordinateSystem , } impl GPS_RTK_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_last_baseline_ms : 0_u32 , tow : 0_u32 , baseline_a_mm : 0_i32 , baseline_b_mm : 0_i32 , baseline_c_mm : 0_i32 , accuracy : 0_u32 , iar_num_hypotheses : 0_i32 , wn : 0_u16 , rtk_receiver_id : 0_u8 , rtk_health : 0_u8 , rtk_rate : 0_u8 , nsats : 0_u8 , baseline_coords_type : RtkBaselineCoordinateSystem :: DEFAULT , } ; } impl Default for GPS_RTK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RTK_DATA { type Message = MavMessage ; const ID : u32 = 127u32 ; const NAME : & 'static str = "GPS_RTK" ; const EXTRA_CRC : u8 = 25u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_last_baseline_ms = buf . get_u32_le () ; __struct . tow = buf . get_u32_le () ; __struct . baseline_a_mm = buf . get_i32_le () ; __struct . baseline_b_mm = buf . get_i32_le () ; __struct . baseline_c_mm = buf . get_i32_le () ; __struct . accuracy = buf . get_u32_le () ; __struct . iar_num_hypotheses = buf . get_i32_le () ; __struct . wn = buf . get_u16_le () ; __struct . rtk_receiver_id = buf . get_u8 () ; __struct . rtk_health = buf . get_u8 () ; __struct . rtk_rate = buf . get_u8 () ; __struct . nsats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . baseline_coords_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "RtkBaselineCoordinateSystem" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_last_baseline_ms) ; __tmp . put_u32_le (self . tow) ; __tmp . put_i32_le (self . baseline_a_mm) ; __tmp . put_i32_le (self . baseline_b_mm) ; __tmp . put_i32_le (self . baseline_c_mm) ; __tmp . put_u32_le (self . accuracy) ; __tmp . put_i32_le (self . iar_num_hypotheses) ; __tmp . put_u16_le (self . wn) ; __tmp . put_u8 (self . rtk_receiver_id) ; __tmp . put_u8 (self . rtk_health) ; __tmp . put_u8 (self . rtk_rate) ; __tmp . put_u8 (self . nsats) ; __tmp . put_u8 (self . baseline_coords_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_CANCEL_DATA { pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , } impl COMMAND_CANCEL_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for COMMAND_CANCEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_CANCEL_DATA { type Message = MavMessage ; const ID : u32 = 80u32 ; const NAME : & 'static str = "COMMAND_CANCEL" ; const EXTRA_CRC : u8 = 14u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_ENTRY_DATA { pub time_utc : u32 , pub size : u32 , pub id : u16 , pub num_logs : u16 , pub last_log_num : u16 , } impl LOG_ENTRY_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_utc : 0_u32 , size : 0_u32 , id : 0_u16 , num_logs : 0_u16 , last_log_num : 0_u16 , } ; } impl Default for LOG_ENTRY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_ENTRY_DATA { type Message = MavMessage ; const ID : u32 = 118u32 ; const NAME : & 'static str = "LOG_ENTRY" ; const EXTRA_CRC : u8 = 56u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_utc = buf . get_u32_le () ; __struct . size = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . num_logs = buf . get_u16_le () ; __struct . last_log_num = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_utc) ; __tmp . put_u32_le (self . size) ; __tmp . put_u16_le (self . id) ; __tmp . put_u16_le (self . num_logs) ; __tmp . put_u16_le (self . last_log_num) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : f32 , pub y : f32 , pub z : f32 , pub seq : u16 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl MISSION_ITEM_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , seq : 0_u16 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for MISSION_ITEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_DATA { type Message = MavMessage ; const ID : u32 = 39u32 ; const NAME : & 'static str = "MISSION_ITEM" ; const EXTRA_CRC : u8 = 254u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . seq = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ACTUATOR_CONTROL_TARGET_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 8] , pub group_mlx : u8 , } impl ACTUATOR_CONTROL_TARGET_DATA { pub const ENCODED_LEN : usize = 41usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , controls : [0.0_f32 ; 8usize] , group_mlx : 0_u8 , } ; } impl Default for ACTUATOR_CONTROL_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ACTUATOR_CONTROL_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 140u32 ; const NAME : & 'static str = "ACTUATOR_CONTROL_TARGET" ; const EXTRA_CRC : u8 = 181u8 ; const ENCODED_LEN : usize = 41usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } __struct . group_mlx = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . group_mlx) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU3_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU3_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU3_DATA { type Message = MavMessage ; const ID : u32 = 129u32 ; const NAME : & 'static str = "SCALED_IMU3" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VFR_HUD_DATA { pub airspeed : f32 , pub groundspeed : f32 , pub alt : f32 , pub climb : f32 , pub heading : i16 , pub throttle : u16 , } impl VFR_HUD_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { airspeed : 0.0_f32 , groundspeed : 0.0_f32 , alt : 0.0_f32 , climb : 0.0_f32 , heading : 0_i16 , throttle : 0_u16 , } ; } impl Default for VFR_HUD_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VFR_HUD_DATA { type Message = MavMessage ; const ID : u32 = 74u32 ; const NAME : & 'static str = "VFR_HUD" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . airspeed = buf . get_f32_le () ; __struct . groundspeed = buf . get_f32_le () ; __struct . alt = buf . get_f32_le () ; __struct . climb = buf . get_f32_le () ; __struct . heading = buf . get_i16_le () ; __struct . throttle = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . airspeed) ; __tmp . put_f32_le (self . groundspeed) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . climb) ; __tmp . put_i16_le (self . heading) ; __tmp . put_u16_le (self . throttle) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RESOURCE_REQUEST_DATA { pub request_id : u8 , pub uri_type : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 120] , pub transfer_type : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage : [u8 ; 120] , } impl RESOURCE_REQUEST_DATA { pub const ENCODED_LEN : usize = 243usize ; pub const DEFAULT : Self = Self { request_id : 0_u8 , uri_type : 0_u8 , uri : [0_u8 ; 120usize] , transfer_type : 0_u8 , storage : [0_u8 ; 120usize] , } ; } impl Default for RESOURCE_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RESOURCE_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 142u32 ; const NAME : & 'static str = "RESOURCE_REQUEST" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 243usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u8 () ; __struct . uri_type = buf . get_u8 () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } __struct . transfer_type = buf . get_u8 () ; for v in & mut __struct . storage { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . request_id) ; __tmp . put_u8 (self . uri_type) ; for val in & self . uri { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . transfer_type) ; for val in & self . storage { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RTCM_DATA_DATA { pub flags : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 180] , } impl GPS_RTCM_DATA_DATA { pub const ENCODED_LEN : usize = 182usize ; pub const DEFAULT : Self = Self { flags : 0_u8 , len : 0_u8 , data : [0_u8 ; 180usize] , } ; } impl Default for GPS_RTCM_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RTCM_DATA_DATA { type Message = MavMessage ; const ID : u32 = 233u32 ; const NAME : & 'static str = "GPS_RTCM_DATA" ; const EXTRA_CRC : u8 = 35u8 ; const ENCODED_LEN : usize = 182usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . flags = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . flags) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OBSTACLE_DISTANCE_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub distances : [u16 ; 72] , pub min_distance : u16 , pub max_distance : u16 , pub sensor_type : MavDistanceSensor , pub increment : u8 , } impl OBSTACLE_DISTANCE_DATA { pub const ENCODED_LEN : usize = 158usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , distances : [0_u16 ; 72usize] , min_distance : 0_u16 , max_distance : 0_u16 , sensor_type : MavDistanceSensor :: DEFAULT , increment : 0_u8 , } ; } impl Default for OBSTACLE_DISTANCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OBSTACLE_DISTANCE_DATA { type Message = MavMessage ; const ID : u32 = 330u32 ; const NAME : & 'static str = "OBSTACLE_DISTANCE" ; const EXTRA_CRC : u8 = 23u8 ; const ENCODED_LEN : usize = 158usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . distances { let val = buf . get_u16_le () ; * v = val ; } __struct . min_distance = buf . get_u16_le () ; __struct . max_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . sensor_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; __struct . increment = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . distances { __tmp . put_u16_le (* val) ; } __tmp . put_u16_le (self . min_distance) ; __tmp . put_u16_le (self . max_distance) ; __tmp . put_u8 (self . sensor_type as u8) ; __tmp . put_u8 (self . increment) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAMED_VALUE_FLOAT_DATA { pub time_boot_ms : u32 , pub value : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl NAMED_VALUE_FLOAT_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0.0_f32 , name : [0_u8 ; 10usize] , } ; } impl Default for NAMED_VALUE_FLOAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAMED_VALUE_FLOAT_DATA { type Message = MavMessage ; const ID : u32 = 251u32 ; const NAME : & 'static str = "NAMED_VALUE_FLOAT" ; const EXTRA_CRC : u8 = 170u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_f32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . value) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_LIST_DATA { pub start : u16 , pub end : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start : 0_u16 , end : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 117u32 ; const NAME : & 'static str = "LOG_REQUEST_LIST" ; const EXTRA_CRC : u8 = 128u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start = buf . get_u16_le () ; __struct . end = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . start) ; __tmp . put_u16_le (self . end) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LINK_NODE_STATUS_DATA { pub timestamp : u64 , pub tx_rate : u32 , pub rx_rate : u32 , pub messages_sent : u32 , pub messages_received : u32 , pub messages_lost : u32 , pub rx_parse_err : u16 , pub tx_overflows : u16 , pub rx_overflows : u16 , pub tx_buf : u8 , pub rx_buf : u8 , } impl LINK_NODE_STATUS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , tx_rate : 0_u32 , rx_rate : 0_u32 , messages_sent : 0_u32 , messages_received : 0_u32 , messages_lost : 0_u32 , rx_parse_err : 0_u16 , tx_overflows : 0_u16 , rx_overflows : 0_u16 , tx_buf : 0_u8 , rx_buf : 0_u8 , } ; } impl Default for LINK_NODE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LINK_NODE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 8u32 ; const NAME : & 'static str = "LINK_NODE_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . tx_rate = buf . get_u32_le () ; __struct . rx_rate = buf . get_u32_le () ; __struct . messages_sent = buf . get_u32_le () ; __struct . messages_received = buf . get_u32_le () ; __struct . messages_lost = buf . get_u32_le () ; __struct . rx_parse_err = buf . get_u16_le () ; __struct . tx_overflows = buf . get_u16_le () ; __struct . rx_overflows = buf . get_u16_le () ; __struct . tx_buf = buf . get_u8 () ; __struct . rx_buf = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u32_le (self . tx_rate) ; __tmp . put_u32_le (self . rx_rate) ; __tmp . put_u32_le (self . messages_sent) ; __tmp . put_u32_le (self . messages_received) ; __tmp . put_u32_le (self . messages_lost) ; __tmp . put_u16_le (self . rx_parse_err) ; __tmp . put_u16_le (self . tx_overflows) ; __tmp . put_u16_le (self . rx_overflows) ; __tmp . put_u8 (self . tx_buf) ; __tmp . put_u8 (self . rx_buf) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_STATUS_DATA { pub satellites_visible : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_prn : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_used : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_elevation : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_azimuth : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_snr : [u8 ; 20] , } impl GPS_STATUS_DATA { pub const ENCODED_LEN : usize = 101usize ; pub const DEFAULT : Self = Self { satellites_visible : 0_u8 , satellite_prn : [0_u8 ; 20usize] , satellite_used : [0_u8 ; 20usize] , satellite_elevation : [0_u8 ; 20usize] , satellite_azimuth : [0_u8 ; 20usize] , satellite_snr : [0_u8 ; 20usize] , } ; } impl Default for GPS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 25u32 ; const NAME : & 'static str = "GPS_STATUS" ; const EXTRA_CRC : u8 = 23u8 ; const ENCODED_LEN : usize = 101usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . satellites_visible = buf . get_u8 () ; for v in & mut __struct . satellite_prn { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_used { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_elevation { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_azimuth { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_snr { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . satellites_visible) ; for val in & self . satellite_prn { __tmp . put_u8 (* val) ; } for val in & self . satellite_used { __tmp . put_u8 (* val) ; } for val in & self . satellite_elevation { __tmp . put_u8 (* val) ; } for val in & self . satellite_azimuth { __tmp . put_u8 (* val) ; } for val in & self . satellite_snr { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MANUAL_SETPOINT_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub thrust : f32 , pub mode_switch : u8 , pub manual_override_switch : u8 , } impl MANUAL_SETPOINT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , thrust : 0.0_f32 , mode_switch : 0_u8 , manual_override_switch : 0_u8 , } ; } impl Default for MANUAL_SETPOINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MANUAL_SETPOINT_DATA { type Message = MavMessage ; const ID : u32 = 81u32 ; const NAME : & 'static str = "MANUAL_SETPOINT" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; __struct . mode_switch = buf . get_u8 () ; __struct . manual_override_switch = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . mode_switch) ; __tmp . put_u8 (self . manual_override_switch) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_DATA { pub time_boot_ms : u32 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub chan9_raw : u16 , pub chan10_raw : u16 , pub chan11_raw : u16 , pub chan12_raw : u16 , pub chan13_raw : u16 , pub chan14_raw : u16 , pub chan15_raw : u16 , pub chan16_raw : u16 , pub chan17_raw : u16 , pub chan18_raw : u16 , pub chancount : u8 , pub rssi : u8 , } impl RC_CHANNELS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , chan9_raw : 0_u16 , chan10_raw : 0_u16 , chan11_raw : 0_u16 , chan12_raw : 0_u16 , chan13_raw : 0_u16 , chan14_raw : 0_u16 , chan15_raw : 0_u16 , chan16_raw : 0_u16 , chan17_raw : 0_u16 , chan18_raw : 0_u16 , chancount : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_DATA { type Message = MavMessage ; const ID : u32 = 65u32 ; const NAME : & 'static str = "RC_CHANNELS" ; const EXTRA_CRC : u8 = 118u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . chan9_raw = buf . get_u16_le () ; __struct . chan10_raw = buf . get_u16_le () ; __struct . chan11_raw = buf . get_u16_le () ; __struct . chan12_raw = buf . get_u16_le () ; __struct . chan13_raw = buf . get_u16_le () ; __struct . chan14_raw = buf . get_u16_le () ; __struct . chan15_raw = buf . get_u16_le () ; __struct . chan16_raw = buf . get_u16_le () ; __struct . chan17_raw = buf . get_u16_le () ; __struct . chan18_raw = buf . get_u16_le () ; __struct . chancount = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u16_le (self . chan9_raw) ; __tmp . put_u16_le (self . chan10_raw) ; __tmp . put_u16_le (self . chan11_raw) ; __tmp . put_u16_le (self . chan12_raw) ; __tmp . put_u16_le (self . chan13_raw) ; __tmp . put_u16_le (self . chan14_raw) ; __tmp . put_u16_le (self . chan15_raw) ; __tmp . put_u16_le (self . chan16_raw) ; __tmp . put_u16_le (self . chan17_raw) ; __tmp . put_u16_le (self . chan18_raw) ; __tmp . put_u8 (self . chancount) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ALTITUDE_DATA { pub time_usec : u64 , pub altitude_monotonic : f32 , pub altitude_amsl : f32 , pub altitude_local : f32 , pub altitude_relative : f32 , pub altitude_terrain : f32 , pub bottom_clearance : f32 , } impl ALTITUDE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , altitude_monotonic : 0.0_f32 , altitude_amsl : 0.0_f32 , altitude_local : 0.0_f32 , altitude_relative : 0.0_f32 , altitude_terrain : 0.0_f32 , bottom_clearance : 0.0_f32 , } ; } impl Default for ALTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ALTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 141u32 ; const NAME : & 'static str = "ALTITUDE" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . altitude_monotonic = buf . get_f32_le () ; __struct . altitude_amsl = buf . get_f32_le () ; __struct . altitude_local = buf . get_f32_le () ; __struct . altitude_relative = buf . get_f32_le () ; __struct . altitude_terrain = buf . get_f32_le () ; __struct . bottom_clearance = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . altitude_monotonic) ; __tmp . put_f32_le (self . altitude_amsl) ; __tmp . put_f32_le (self . altitude_local) ; __tmp . put_f32_le (self . altitude_relative) ; __tmp . put_f32_le (self . altitude_terrain) ; __tmp . put_f32_le (self . bottom_clearance) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ODOMETRY_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pose_covariance : [f32 ; 21] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub velocity_covariance : [f32 ; 21] , pub frame_id : MavFrame , pub child_frame_id : MavFrame , } impl ODOMETRY_DATA { pub const ENCODED_LEN : usize = 230usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , pose_covariance : [0.0_f32 ; 21usize] , velocity_covariance : [0.0_f32 ; 21usize] , frame_id : MavFrame :: DEFAULT , child_frame_id : MavFrame :: DEFAULT , } ; } impl Default for ODOMETRY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ODOMETRY_DATA { type Message = MavMessage ; const ID : u32 = 331u32 ; const NAME : & 'static str = "ODOMETRY" ; const EXTRA_CRC : u8 = 91u8 ; const ENCODED_LEN : usize = 230usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; for v in & mut __struct . pose_covariance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . velocity_covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . frame_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . child_frame_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; for val in & self . pose_covariance { __tmp . put_f32_le (* val) ; } for val in & self . velocity_covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . frame_id as u8) ; __tmp . put_u8 (self . child_frame_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WHEEL_DISTANCE_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub distance : [f64 ; 16] , pub count : u8 , } impl WHEEL_DISTANCE_DATA { pub const ENCODED_LEN : usize = 137usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , distance : [0.0_f64 ; 16usize] , count : 0_u8 , } ; } impl Default for WHEEL_DISTANCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WHEEL_DISTANCE_DATA { type Message = MavMessage ; const ID : u32 = 9000u32 ; const NAME : & 'static str = "WHEEL_DISTANCE" ; const EXTRA_CRC : u8 = 113u8 ; const ENCODED_LEN : usize = 137usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . distance { let val = buf . get_f64_le () ; * v = val ; } __struct . count = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . distance { __tmp . put_f64_le (* val) ; } __tmp . put_u8 (self . count) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HOME_POSITION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub approach_x : f32 , pub approach_y : f32 , pub approach_z : f32 , } impl HOME_POSITION_DATA { pub const ENCODED_LEN : usize = 52usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , approach_x : 0.0_f32 , approach_y : 0.0_f32 , approach_z : 0.0_f32 , } ; } impl Default for HOME_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HOME_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 242u32 ; const NAME : & 'static str = "HOME_POSITION" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 52usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . approach_x = buf . get_f32_le () ; __struct . approach_y = buf . get_f32_le () ; __struct . approach_z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . approach_x) ; __tmp . put_f32_le (self . approach_y) ; __tmp . put_f32_le (self . approach_z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SELF_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub description_type : MavOdidDescType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub description : [u8 ; 23] , } impl OPEN_DRONE_ID_SELF_ID_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , description_type : MavOdidDescType :: DEFAULT , description : [0_u8 ; 23usize] , } ; } impl Default for OPEN_DRONE_ID_SELF_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SELF_ID_DATA { type Message = MavMessage ; const ID : u32 = 12903u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SELF_ID" ; const EXTRA_CRC : u8 = 249u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . description_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidDescType" , value : tmp as u32 }) ? ; for v in & mut __struct . description { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . description_type as u8) ; for val in & self . description { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SYSTEM_DATA { pub operator_latitude : i32 , pub operator_longitude : i32 , pub area_ceiling : f32 , pub area_floor : f32 , pub operator_altitude_geo : f32 , pub timestamp : u32 , pub area_count : u16 , pub area_radius : u16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub operator_location_type : MavOdidOperatorLocationType , pub classification_type : MavOdidClassificationType , pub category_eu : MavOdidCategoryEu , pub class_eu : MavOdidClassEu , } impl OPEN_DRONE_ID_SYSTEM_DATA { pub const ENCODED_LEN : usize = 54usize ; pub const DEFAULT : Self = Self { operator_latitude : 0_i32 , operator_longitude : 0_i32 , area_ceiling : 0.0_f32 , area_floor : 0.0_f32 , operator_altitude_geo : 0.0_f32 , timestamp : 0_u32 , area_count : 0_u16 , area_radius : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , operator_location_type : MavOdidOperatorLocationType :: DEFAULT , classification_type : MavOdidClassificationType :: DEFAULT , category_eu : MavOdidCategoryEu :: DEFAULT , class_eu : MavOdidClassEu :: DEFAULT , } ; } impl Default for OPEN_DRONE_ID_SYSTEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SYSTEM_DATA { type Message = MavMessage ; const ID : u32 = 12904u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SYSTEM" ; const EXTRA_CRC : u8 = 77u8 ; const ENCODED_LEN : usize = 54usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . operator_latitude = buf . get_i32_le () ; __struct . operator_longitude = buf . get_i32_le () ; __struct . area_ceiling = buf . get_f32_le () ; __struct . area_floor = buf . get_f32_le () ; __struct . operator_altitude_geo = buf . get_f32_le () ; __struct . timestamp = buf . get_u32_le () ; __struct . area_count = buf . get_u16_le () ; __struct . area_radius = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . operator_location_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidOperatorLocationType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . classification_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidClassificationType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . category_eu = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidCategoryEu" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . class_eu = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidClassEu" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . operator_latitude) ; __tmp . put_i32_le (self . operator_longitude) ; __tmp . put_f32_le (self . area_ceiling) ; __tmp . put_f32_le (self . area_floor) ; __tmp . put_f32_le (self . operator_altitude_geo) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u16_le (self . area_count) ; __tmp . put_u16_le (self . area_radius) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . operator_location_type as u8) ; __tmp . put_u8 (self . classification_type as u8) ; __tmp . put_u8 (self . category_eu as u8) ; __tmp . put_u8 (self . class_eu as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRIGGER_DATA { pub time_usec : u64 , pub seq : u32 , } impl CAMERA_TRIGGER_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , seq : 0_u32 , } ; } impl Default for CAMERA_TRIGGER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRIGGER_DATA { type Message = MavMessage ; const ID : u32 = 112u32 ; const NAME : & 'static str = "CAMERA_TRIGGER" ; const EXTRA_CRC : u8 = 174u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . seq = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_MODE_DATA { pub custom_mode : u32 , pub target_system : u8 , pub base_mode : MavMode , } impl SET_MODE_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , target_system : 0_u8 , base_mode : MavMode :: DEFAULT , } ; } impl Default for SET_MODE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_MODE_DATA { type Message = MavMessage ; const ID : u32 = 11u32 ; const NAME : & 'static str = "SET_MODE" ; const EXTRA_CRC : u8 = 89u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . base_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMode" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . base_mode as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EFI_STATUS_DATA { pub ecu_index : f32 , pub rpm : f32 , pub fuel_consumed : f32 , pub fuel_flow : f32 , pub engine_load : f32 , pub throttle_position : f32 , pub spark_dwell_time : f32 , pub barometric_pressure : f32 , pub intake_manifold_pressure : f32 , pub intake_manifold_temperature : f32 , pub cylinder_head_temperature : f32 , pub ignition_timing : f32 , pub injection_time : f32 , pub exhaust_gas_temperature : f32 , pub throttle_out : f32 , pub pt_compensation : f32 , pub health : u8 , } impl EFI_STATUS_DATA { pub const ENCODED_LEN : usize = 65usize ; pub const DEFAULT : Self = Self { ecu_index : 0.0_f32 , rpm : 0.0_f32 , fuel_consumed : 0.0_f32 , fuel_flow : 0.0_f32 , engine_load : 0.0_f32 , throttle_position : 0.0_f32 , spark_dwell_time : 0.0_f32 , barometric_pressure : 0.0_f32 , intake_manifold_pressure : 0.0_f32 , intake_manifold_temperature : 0.0_f32 , cylinder_head_temperature : 0.0_f32 , ignition_timing : 0.0_f32 , injection_time : 0.0_f32 , exhaust_gas_temperature : 0.0_f32 , throttle_out : 0.0_f32 , pt_compensation : 0.0_f32 , health : 0_u8 , } ; } impl Default for EFI_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EFI_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 225u32 ; const NAME : & 'static str = "EFI_STATUS" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 65usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ecu_index = buf . get_f32_le () ; __struct . rpm = buf . get_f32_le () ; __struct . fuel_consumed = buf . get_f32_le () ; __struct . fuel_flow = buf . get_f32_le () ; __struct . engine_load = buf . get_f32_le () ; __struct . throttle_position = buf . get_f32_le () ; __struct . spark_dwell_time = buf . get_f32_le () ; __struct . barometric_pressure = buf . get_f32_le () ; __struct . intake_manifold_pressure = buf . get_f32_le () ; __struct . intake_manifold_temperature = buf . get_f32_le () ; __struct . cylinder_head_temperature = buf . get_f32_le () ; __struct . ignition_timing = buf . get_f32_le () ; __struct . injection_time = buf . get_f32_le () ; __struct . exhaust_gas_temperature = buf . get_f32_le () ; __struct . throttle_out = buf . get_f32_le () ; __struct . pt_compensation = buf . get_f32_le () ; __struct . health = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . ecu_index) ; __tmp . put_f32_le (self . rpm) ; __tmp . put_f32_le (self . fuel_consumed) ; __tmp . put_f32_le (self . fuel_flow) ; __tmp . put_f32_le (self . engine_load) ; __tmp . put_f32_le (self . throttle_position) ; __tmp . put_f32_le (self . spark_dwell_time) ; __tmp . put_f32_le (self . barometric_pressure) ; __tmp . put_f32_le (self . intake_manifold_pressure) ; __tmp . put_f32_le (self . intake_manifold_temperature) ; __tmp . put_f32_le (self . cylinder_head_temperature) ; __tmp . put_f32_le (self . ignition_timing) ; __tmp . put_f32_le (self . injection_time) ; __tmp . put_f32_le (self . exhaust_gas_temperature) ; __tmp . put_f32_le (self . throttle_out) ; __tmp . put_f32_le (self . pt_compensation) ; __tmp . put_u8 (self . health) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PING_DATA { pub time_usec : u64 , pub seq : u32 , pub target_system : u8 , pub target_component : u8 , } impl PING_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , seq : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PING_DATA { type Message = MavMessage ; const ID : u32 = 4u32 ; const NAME : & 'static str = "PING" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . seq = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_VALUE_DATA { pub param_value : f32 , pub param_count : u16 , pub param_index : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub param_type : MavParamType , } impl PARAM_VALUE_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { param_value : 0.0_f32 , param_count : 0_u16 , param_index : 0_u16 , param_id : [0_u8 ; 16usize] , param_type : MavParamType :: DEFAULT , } ; } impl Default for PARAM_VALUE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_VALUE_DATA { type Message = MavMessage ; const ID : u32 = 22u32 ; const NAME : & 'static str = "PARAM_VALUE" ; const EXTRA_CRC : u8 = 220u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value = buf . get_f32_le () ; __struct . param_count = buf . get_u16_le () ; __struct . param_index = buf . get_u16_le () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value) ; __tmp . put_u16_le (self . param_count) ; __tmp . put_u16_le (self . param_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_GPS_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub vn : i16 , pub ve : i16 , pub vd : i16 , pub cog : u16 , pub fix_type : u8 , pub satellites_visible : u8 , } impl HIL_GPS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , vn : 0_i16 , ve : 0_i16 , vd : 0_i16 , cog : 0_u16 , fix_type : 0_u8 , satellites_visible : 0_u8 , } ; } impl Default for HIL_GPS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_GPS_DATA { type Message = MavMessage ; const ID : u32 = 113u32 ; const NAME : & 'static str = "HIL_GPS" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . vn = buf . get_i16_le () ; __struct . ve = buf . get_i16_le () ; __struct . vd = buf . get_i16_le () ; __struct . cog = buf . get_u16_le () ; __struct . fix_type = buf . get_u8 () ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_i16_le (self . vn) ; __tmp . put_i16_le (self . ve) ; __tmp . put_i16_le (self . vd) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_INFORMATION_DATA { pub uid : u64 , pub time_boot_ms : u32 , pub firmware_version : u32 , pub hardware_version : u32 , pub roll_min : f32 , pub roll_max : f32 , pub pitch_min : f32 , pub pitch_max : f32 , pub yaw_min : f32 , pub yaw_max : f32 , pub cap_flags : GimbalDeviceCapFlags , pub custom_cap_flags : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vendor_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub model_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub custom_name : [u8 ; 32] , } impl GIMBAL_DEVICE_INFORMATION_DATA { pub const ENCODED_LEN : usize = 144usize ; pub const DEFAULT : Self = Self { uid : 0_u64 , time_boot_ms : 0_u32 , firmware_version : 0_u32 , hardware_version : 0_u32 , roll_min : 0.0_f32 , roll_max : 0.0_f32 , pitch_min : 0.0_f32 , pitch_max : 0.0_f32 , yaw_min : 0.0_f32 , yaw_max : 0.0_f32 , cap_flags : GimbalDeviceCapFlags :: DEFAULT , custom_cap_flags : 0_u16 , vendor_name : [0_u8 ; 32usize] , model_name : [0_u8 ; 32usize] , custom_name : [0_u8 ; 32usize] , } ; } impl Default for GIMBAL_DEVICE_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 283u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_INFORMATION" ; const EXTRA_CRC : u8 = 74u8 ; const ENCODED_LEN : usize = 144usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . uid = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . firmware_version = buf . get_u32_le () ; __struct . hardware_version = buf . get_u32_le () ; __struct . roll_min = buf . get_f32_le () ; __struct . roll_max = buf . get_f32_le () ; __struct . pitch_min = buf . get_f32_le () ; __struct . pitch_max = buf . get_f32_le () ; __struct . yaw_min = buf . get_f32_le () ; __struct . yaw_max = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . cap_flags = GimbalDeviceCapFlags :: from_bits (tmp & GimbalDeviceCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceCapFlags" , value : tmp as u32 }) ? ; __struct . custom_cap_flags = buf . get_u16_le () ; for v in & mut __struct . vendor_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . model_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . custom_name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . uid) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . firmware_version) ; __tmp . put_u32_le (self . hardware_version) ; __tmp . put_f32_le (self . roll_min) ; __tmp . put_f32_le (self . roll_max) ; __tmp . put_f32_le (self . pitch_min) ; __tmp . put_f32_le (self . pitch_max) ; __tmp . put_f32_le (self . yaw_min) ; __tmp . put_f32_le (self . yaw_max) ; __tmp . put_u16_le (self . cap_flags . bits ()) ; __tmp . put_u16_le (self . custom_cap_flags) ; for val in & self . vendor_name { __tmp . put_u8 (* val) ; } for val in & self . model_name { __tmp . put_u8 (* val) ; } for val in & self . custom_name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAN_FRAME_DATA { pub id : u32 , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 8] , } impl CAN_FRAME_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , len : 0_u8 , data : [0_u8 ; 8usize] , } ; } impl Default for CAN_FRAME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAN_FRAME_DATA { type Message = MavMessage ; const ID : u32 = 386u32 ; const NAME : & 'static str = "CAN_FRAME" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_OPERATOR_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub operator_id_type : MavOdidOperatorIdType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub operator_id : [u8 ; 20] , } impl OPEN_DRONE_ID_OPERATOR_ID_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , operator_id_type : MavOdidOperatorIdType :: DEFAULT , operator_id : [0_u8 ; 20usize] , } ; } impl Default for OPEN_DRONE_ID_OPERATOR_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_OPERATOR_ID_DATA { type Message = MavMessage ; const ID : u32 = 12905u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_OPERATOR_ID" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . operator_id_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidOperatorIdType" , value : tmp as u32 }) ? ; for v in & mut __struct . operator_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . operator_id_type as u8) ; for val in & self . operator_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CELLULAR_CONFIG_DATA { pub enable_lte : u8 , pub enable_pin : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pin : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub new_pin : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub apn : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub puk : [u8 ; 16] , pub roaming : u8 , pub response : CellularConfigResponse , } impl CELLULAR_CONFIG_DATA { pub const ENCODED_LEN : usize = 84usize ; pub const DEFAULT : Self = Self { enable_lte : 0_u8 , enable_pin : 0_u8 , pin : [0_u8 ; 16usize] , new_pin : [0_u8 ; 16usize] , apn : [0_u8 ; 32usize] , puk : [0_u8 ; 16usize] , roaming : 0_u8 , response : CellularConfigResponse :: DEFAULT , } ; } impl Default for CELLULAR_CONFIG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CELLULAR_CONFIG_DATA { type Message = MavMessage ; const ID : u32 = 336u32 ; const NAME : & 'static str = "CELLULAR_CONFIG" ; const EXTRA_CRC : u8 = 245u8 ; const ENCODED_LEN : usize = 84usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . enable_lte = buf . get_u8 () ; __struct . enable_pin = buf . get_u8 () ; for v in & mut __struct . pin { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . new_pin { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . apn { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . puk { let val = buf . get_u8 () ; * v = val ; } __struct . roaming = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . response = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularConfigResponse" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . enable_lte) ; __tmp . put_u8 (self . enable_pin) ; for val in & self . pin { __tmp . put_u8 (* val) ; } for val in & self . new_pin { __tmp . put_u8 (* val) ; } for val in & self . apn { __tmp . put_u8 (* val) ; } for val in & self . puk { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . roaming) ; __tmp . put_u8 (self . response as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPONENT_METADATA_DATA { pub time_boot_ms : u32 , pub file_crc : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 100] , } impl COMPONENT_METADATA_DATA { pub const ENCODED_LEN : usize = 108usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , file_crc : 0_u32 , uri : [0_u8 ; 100usize] , } ; } impl Default for COMPONENT_METADATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPONENT_METADATA_DATA { type Message = MavMessage ; const ID : u32 = 397u32 ; const NAME : & 'static str = "COMPONENT_METADATA" ; const EXTRA_CRC : u8 = 182u8 ; const ENCODED_LEN : usize = 108usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . file_crc = buf . get_u32_le () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . file_crc) ; for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_ATTITUDE_DATA { pub flags : GimbalManagerFlags , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_ATTITUDE_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 282u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_ATTITUDE" ; const EXTRA_CRC : u8 = 123u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_SET_ATTITUDE_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub flags : GimbalDeviceFlags , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_DEVICE_SET_ATTITUDE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , flags : GimbalDeviceFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_DEVICE_SET_ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_SET_ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 284u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_SET_ATTITUDE" ; const EXTRA_CRC : u8 = 99u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = GimbalDeviceFlags :: from_bits (tmp & GimbalDeviceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REQUEST_DATA_STREAM_DATA { pub req_message_rate : u16 , pub target_system : u8 , pub target_component : u8 , pub req_stream_id : u8 , pub start_stop : u8 , } impl REQUEST_DATA_STREAM_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { req_message_rate : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , req_stream_id : 0_u8 , start_stop : 0_u8 , } ; } impl Default for REQUEST_DATA_STREAM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REQUEST_DATA_STREAM_DATA { type Message = MavMessage ; const ID : u32 = 66u32 ; const NAME : & 'static str = "REQUEST_DATA_STREAM" ; const EXTRA_CRC : u8 = 148u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . req_message_rate = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . req_stream_id = buf . get_u8 () ; __struct . start_stop = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . req_message_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . req_stream_id) ; __tmp . put_u8 (self . start_stop) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SYSTEM_TIME_DATA { pub time_unix_usec : u64 , pub time_boot_ms : u32 , } impl SYSTEM_TIME_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { time_unix_usec : 0_u64 , time_boot_ms : 0_u32 , } ; } impl Default for SYSTEM_TIME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SYSTEM_TIME_DATA { type Message = MavMessage ; const ID : u32 = 2u32 ; const NAME : & 'static str = "SYSTEM_TIME" ; const EXTRA_CRC : u8 = 137u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_unix_usec = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_unix_usec) ; __tmp . put_u32_le (self . time_boot_ms) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { pub flags : GimbalManagerFlags , pub pitch : f32 , pub yaw : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , pitch : 0.0_f32 , yaw : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 288u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_MANUAL_CONTROL" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UTM_GLOBAL_POSITION_DATA { pub time : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub next_lat : i32 , pub next_lon : i32 , pub next_alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub h_acc : u16 , pub v_acc : u16 , pub vel_acc : u16 , pub update_rate : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uas_id : [u8 ; 18] , pub flight_state : UtmFlightState , pub flags : UtmDataAvailFlags , } impl UTM_GLOBAL_POSITION_DATA { pub const ENCODED_LEN : usize = 70usize ; pub const DEFAULT : Self = Self { time : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , next_lat : 0_i32 , next_lon : 0_i32 , next_alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , h_acc : 0_u16 , v_acc : 0_u16 , vel_acc : 0_u16 , update_rate : 0_u16 , uas_id : [0_u8 ; 18usize] , flight_state : UtmFlightState :: DEFAULT , flags : UtmDataAvailFlags :: DEFAULT , } ; } impl Default for UTM_GLOBAL_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UTM_GLOBAL_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 340u32 ; const NAME : & 'static str = "UTM_GLOBAL_POSITION" ; const EXTRA_CRC : u8 = 99u8 ; const ENCODED_LEN : usize = 70usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . next_lat = buf . get_i32_le () ; __struct . next_lon = buf . get_i32_le () ; __struct . next_alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . h_acc = buf . get_u16_le () ; __struct . v_acc = buf . get_u16_le () ; __struct . vel_acc = buf . get_u16_le () ; __struct . update_rate = buf . get_u16_le () ; for v in & mut __struct . uas_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . flight_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UtmFlightState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = UtmDataAvailFlags :: from_bits (tmp & UtmDataAvailFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UtmDataAvailFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_i32_le (self . next_lat) ; __tmp . put_i32_le (self . next_lon) ; __tmp . put_i32_le (self . next_alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . h_acc) ; __tmp . put_u16_le (self . v_acc) ; __tmp . put_u16_le (self . vel_acc) ; __tmp . put_u16_le (self . update_rate) ; for val in & self . uas_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . flight_state as u8) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_ERASE_DATA { pub target_system : u8 , pub target_component : u8 , } impl LOG_ERASE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_ERASE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_ERASE_DATA { type Message = MavMessage ; const ID : u32 = 121u32 ; const NAME : & 'static str = "LOG_ERASE" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_GPS_GLOBAL_ORIGIN_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub target_system : u8 , } impl SET_GPS_GLOBAL_ORIGIN_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , target_system : 0_u8 , } ; } impl Default for SET_GPS_GLOBAL_ORIGIN_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_GPS_GLOBAL_ORIGIN_DATA { type Message = MavMessage ; const ID : u32 = 48u32 ; const NAME : & 'static str = "SET_GPS_GLOBAL_ORIGIN" ; const EXTRA_CRC : u8 = 41u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . target_system = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_u8 (self . target_system) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CELLULAR_STATUS_DATA { pub mcc : u16 , pub mnc : u16 , pub lac : u16 , pub status : CellularStatusFlag , pub failure_reason : CellularNetworkFailedReason , pub mavtype : CellularNetworkRadioType , pub quality : u8 , } impl CELLULAR_STATUS_DATA { pub const ENCODED_LEN : usize = 10usize ; pub const DEFAULT : Self = Self { mcc : 0_u16 , mnc : 0_u16 , lac : 0_u16 , status : CellularStatusFlag :: DEFAULT , failure_reason : CellularNetworkFailedReason :: DEFAULT , mavtype : CellularNetworkRadioType :: DEFAULT , quality : 0_u8 , } ; } impl Default for CELLULAR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CELLULAR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 334u32 ; const NAME : & 'static str = "CELLULAR_STATUS" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 10usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mcc = buf . get_u16_le () ; __struct . mnc = buf . get_u16_le () ; __struct . lac = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularStatusFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . failure_reason = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularNetworkFailedReason" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularNetworkRadioType" , value : tmp as u32 }) ? ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . mcc) ; __tmp . put_u16_le (self . mnc) ; __tmp . put_u16_le (self . lac) ; __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . failure_reason as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MOUNT_ORIENTATION_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl MOUNT_ORIENTATION_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for MOUNT_ORIENTATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MOUNT_ORIENTATION_DATA { type Message = MavMessage ; const ID : u32 = 265u32 ; const NAME : & 'static str = "MOUNT_ORIENTATION" ; const EXTRA_CRC : u8 = 26u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CURRENT_EVENT_SEQUENCE_DATA { pub sequence : u16 , pub flags : MavEventCurrentSequenceFlags , } impl CURRENT_EVENT_SEQUENCE_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , flags : MavEventCurrentSequenceFlags :: DEFAULT , } ; } impl Default for CURRENT_EVENT_SEQUENCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CURRENT_EVENT_SEQUENCE_DATA { type Message = MavMessage ; const ID : u32 = 411u32 ; const NAME : & 'static str = "CURRENT_EVENT_SEQUENCE" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . flags = MavEventCurrentSequenceFlags :: from_bits (tmp & MavEventCurrentSequenceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavEventCurrentSequenceFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ACK_DATA { pub target_system : u8 , pub target_component : u8 , pub mavtype : MavMissionResult , } impl MISSION_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , mavtype : MavMissionResult :: DEFAULT , } ; } impl Default for MISSION_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ACK_DATA { type Message = MavMessage ; const ID : u32 = 47u32 ; const NAME : & 'static str = "MISSION_ACK" ; const EXTRA_CRC : u8 = 153u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMissionResult" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . mavtype as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_VECT_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl DEBUG_VECT_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , name : [0_u8 ; 10usize] , } ; } impl Default for DEBUG_VECT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_VECT_DATA { type Message = MavMessage ; const ID : u32 = 250u32 ; const NAME : & 'static str = "DEBUG_VECT" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Clone , PartialEq , Debug)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMessage { RC_CHANNELS_RAW (RC_CHANNELS_RAW_DATA) , TIME_ESTIMATE_TO_TARGET (TIME_ESTIMATE_TO_TARGET_DATA) , MESSAGE_INTERVAL (MESSAGE_INTERVAL_DATA) , RESPONSE_EVENT_ERROR (RESPONSE_EVENT_ERROR_DATA) , TRAJECTORY_REPRESENTATION_WAYPOINTS (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA) , MISSION_ITEM_REACHED (MISSION_ITEM_REACHED_DATA) , TRAJECTORY_REPRESENTATION_BEZIER (TRAJECTORY_REPRESENTATION_BEZIER_DATA) , RAW_IMU (RAW_IMU_DATA) , SET_POSITION_TARGET_GLOBAL_INT (SET_POSITION_TARGET_GLOBAL_INT_DATA) , POSITION_TARGET_GLOBAL_INT (POSITION_TARGET_GLOBAL_INT_DATA) , HIL_OPTICAL_FLOW (HIL_OPTICAL_FLOW_DATA) , LANDING_TARGET (LANDING_TARGET_DATA) , MAG_CAL_REPORT (MAG_CAL_REPORT_DATA) , UAVCAN_NODE_INFO (UAVCAN_NODE_INFO_DATA) , CAMERA_TRACKING_GEO_STATUS (CAMERA_TRACKING_GEO_STATUS_DATA) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA) , ISBD_LINK_STATUS (ISBD_LINK_STATUS_DATA) , SMART_BATTERY_INFO (SMART_BATTERY_INFO_DATA) , ACTUATOR_OUTPUT_STATUS (ACTUATOR_OUTPUT_STATUS_DATA) , COMPONENT_INFORMATION (COMPONENT_INFORMATION_DATA) , TERRAIN_REQUEST (TERRAIN_REQUEST_DATA) , STORAGE_INFORMATION (STORAGE_INFORMATION_DATA) , CAN_FILTER_MODIFY (CAN_FILTER_MODIFY_DATA) , SCALED_PRESSURE (SCALED_PRESSURE_DATA) , LOG_DATA (LOG_DATA_DATA) , HIGH_LATENCY2 (HIGH_LATENCY2_DATA) , OPEN_DRONE_ID_LOCATION (OPEN_DRONE_ID_LOCATION_DATA) , OPEN_DRONE_ID_AUTHENTICATION (OPEN_DRONE_ID_AUTHENTICATION_DATA) , ESC_STATUS (ESC_STATUS_DATA) , V2_EXTENSION (V2_EXTENSION_DATA) , ORBIT_EXECUTION_STATUS (ORBIT_EXECUTION_STATUS_DATA) , HIGH_LATENCY (HIGH_LATENCY_DATA) , SUPPORTED_TUNES (SUPPORTED_TUNES_DATA) , AIS_VESSEL (AIS_VESSEL_DATA) , FILE_TRANSFER_PROTOCOL (FILE_TRANSFER_PROTOCOL_DATA) , HIGHRES_IMU (HIGHRES_IMU_DATA) , MISSION_REQUEST_PARTIAL_LIST (MISSION_REQUEST_PARTIAL_LIST_DATA) , COLLISION (COLLISION_DATA) , DEBUG (DEBUG_DATA) , SETUP_SIGNING (SETUP_SIGNING_DATA) , SCALED_PRESSURE3 (SCALED_PRESSURE3_DATA) , SCALED_IMU2 (SCALED_IMU2_DATA) , LOGGING_ACK (LOGGING_ACK_DATA) , VICON_POSITION_ESTIMATE (VICON_POSITION_ESTIMATE_DATA) , ESC_INFO (ESC_INFO_DATA) , PARAM_EXT_VALUE (PARAM_EXT_VALUE_DATA) , PLAY_TUNE_V2 (PLAY_TUNE_V2_DATA) , OPEN_DRONE_ID_ARM_STATUS (OPEN_DRONE_ID_ARM_STATUS_DATA) , GIMBAL_MANAGER_STATUS (GIMBAL_MANAGER_STATUS_DATA) , MANUAL_CONTROL (MANUAL_CONTROL_DATA) , PROTOCOL_VERSION (PROTOCOL_VERSION_DATA) , CHANGE_OPERATOR_CONTROL (CHANGE_OPERATOR_CONTROL_DATA) , LOCAL_POSITION_NED (LOCAL_POSITION_NED_DATA) , HIL_SENSOR (HIL_SENSOR_DATA) , FOLLOW_TARGET (FOLLOW_TARGET_DATA) , OPEN_DRONE_ID_MESSAGE_PACK (OPEN_DRONE_ID_MESSAGE_PACK_DATA) , PARAM_MAP_RC (PARAM_MAP_RC_DATA) , HYGROMETER_SENSOR (HYGROMETER_SENSOR_DATA) , STATUSTEXT (STATUSTEXT_DATA) , HIL_STATE (HIL_STATE_DATA) , POWER_STATUS (POWER_STATUS_DATA) , HEARTBEAT (HEARTBEAT_DATA) , WIND_COV (WIND_COV_DATA) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA) , GLOBAL_POSITION_INT (GLOBAL_POSITION_INT_DATA) , HIL_RC_INPUTS_RAW (HIL_RC_INPUTS_RAW_DATA) , GPS2_RAW (GPS2_RAW_DATA) , GENERATOR_STATUS (GENERATOR_STATUS_DATA) , VISION_SPEED_ESTIMATE (VISION_SPEED_ESTIMATE_DATA) , PARAM_REQUEST_READ (PARAM_REQUEST_READ_DATA) , SET_ATTITUDE_TARGET (SET_ATTITUDE_TARGET_DATA) , PARAM_EXT_ACK (PARAM_EXT_ACK_DATA) , GIMBAL_MANAGER_SET_PITCHYAW (GIMBAL_MANAGER_SET_PITCHYAW_DATA) , PARAM_EXT_REQUEST_READ (PARAM_EXT_REQUEST_READ_DATA) , CONTROL_SYSTEM_STATE (CONTROL_SYSTEM_STATE_DATA) , TERRAIN_CHECK (TERRAIN_CHECK_DATA) , NAV_CONTROLLER_OUTPUT (NAV_CONTROLLER_OUTPUT_DATA) , MISSION_CURRENT (MISSION_CURRENT_DATA) , PARAM_REQUEST_LIST (PARAM_REQUEST_LIST_DATA) , RADIO_STATUS (RADIO_STATUS_DATA) , LOG_REQUEST_END (LOG_REQUEST_END_DATA) , VIBRATION (VIBRATION_DATA) , AUTOPILOT_VERSION (AUTOPILOT_VERSION_DATA) , MISSION_SET_CURRENT (MISSION_SET_CURRENT_DATA) , CAMERA_SETTINGS (CAMERA_SETTINGS_DATA) , MISSION_WRITE_PARTIAL_LIST (MISSION_WRITE_PARTIAL_LIST_DATA) , VIDEO_STREAM_STATUS (VIDEO_STREAM_STATUS_DATA) , EVENT (EVENT_DATA) , CANFD_FRAME (CANFD_FRAME_DATA) , WINCH_STATUS (WINCH_STATUS_DATA) , DEBUG_FLOAT_ARRAY (DEBUG_FLOAT_ARRAY_DATA) , MISSION_ITEM_INT (MISSION_ITEM_INT_DATA) , CAMERA_FOV_STATUS (CAMERA_FOV_STATUS_DATA) , OPEN_DRONE_ID_SYSTEM_UPDATE (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA) , ATTITUDE_TARGET (ATTITUDE_TARGET_DATA) , MISSION_REQUEST_LIST (MISSION_REQUEST_LIST_DATA) , TUNNEL (TUNNEL_DATA) , PLAY_TUNE (PLAY_TUNE_DATA) , SET_POSITION_TARGET_LOCAL_NED (SET_POSITION_TARGET_LOCAL_NED_DATA) , MISSION_CLEAR_ALL (MISSION_CLEAR_ALL_DATA) , ONBOARD_COMPUTER_STATUS (ONBOARD_COMPUTER_STATUS_DATA) , RAW_PRESSURE (RAW_PRESSURE_DATA) , LOCAL_POSITION_NED_COV (LOCAL_POSITION_NED_COV_DATA) , SET_ACTUATOR_CONTROL_TARGET (SET_ACTUATOR_CONTROL_TARGET_DATA) , GPS_RAW_INT (GPS_RAW_INT_DATA) , SAFETY_SET_ALLOWED_AREA (SAFETY_SET_ALLOWED_AREA_DATA) , LOG_REQUEST_DATA (LOG_REQUEST_DATA_DATA) , BUTTON_CHANGE (BUTTON_CHANGE_DATA) , RC_CHANNELS_SCALED (RC_CHANNELS_SCALED_DATA) , SCALED_IMU (SCALED_IMU_DATA) , NAMED_VALUE_INT (NAMED_VALUE_INT_DATA) , ENCAPSULATED_DATA (ENCAPSULATED_DATA_DATA) , COMMAND_INT (COMMAND_INT_DATA) , OPTICAL_FLOW_RAD (OPTICAL_FLOW_RAD_DATA) , CAMERA_INFORMATION (CAMERA_INFORMATION_DATA) , WIFI_CONFIG_AP (WIFI_CONFIG_AP_DATA) , TERRAIN_REPORT (TERRAIN_REPORT_DATA) , GLOBAL_VISION_POSITION_ESTIMATE (GLOBAL_VISION_POSITION_ESTIMATE_DATA) , BATTERY_STATUS (BATTERY_STATUS_DATA) , OPEN_DRONE_ID_BASIC_ID (OPEN_DRONE_ID_BASIC_ID_DATA) , CHANGE_OPERATOR_CONTROL_ACK (CHANGE_OPERATOR_CONTROL_ACK_DATA) , HIL_ACTUATOR_CONTROLS (HIL_ACTUATOR_CONTROLS_DATA) , REQUEST_EVENT (REQUEST_EVENT_DATA) , SYS_STATUS (SYS_STATUS_DATA) , POSITION_TARGET_LOCAL_NED (POSITION_TARGET_LOCAL_NED_DATA) , COMMAND_LONG (COMMAND_LONG_DATA) , GIMBAL_DEVICE_ATTITUDE_STATUS (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA) , ATTITUDE_QUATERNION_COV (ATTITUDE_QUATERNION_COV_DATA) , MISSION_REQUEST (MISSION_REQUEST_DATA) , HIL_CONTROLS (HIL_CONTROLS_DATA) , DATA_TRANSMISSION_HANDSHAKE (DATA_TRANSMISSION_HANDSHAKE_DATA) , ESTIMATOR_STATUS (ESTIMATOR_STATUS_DATA) , SERIAL_CONTROL (SERIAL_CONTROL_DATA) , LOGGING_DATA (LOGGING_DATA_DATA) , EXTENDED_SYS_STATE (EXTENDED_SYS_STATE_DATA) , SET_HOME_POSITION (SET_HOME_POSITION_DATA) , MEMORY_VECT (MEMORY_VECT_DATA) , RAW_RPM (RAW_RPM_DATA) , GLOBAL_POSITION_INT_COV (GLOBAL_POSITION_INT_COV_DATA) , GPS2_RTK (GPS2_RTK_DATA) , GPS_GLOBAL_ORIGIN (GPS_GLOBAL_ORIGIN_DATA) , OPTICAL_FLOW (OPTICAL_FLOW_DATA) , TERRAIN_DATA (TERRAIN_DATA_DATA) , FLIGHT_INFORMATION (FLIGHT_INFORMATION_DATA) , SCALED_PRESSURE2 (SCALED_PRESSURE2_DATA) , CAMERA_CAPTURE_STATUS (CAMERA_CAPTURE_STATUS_DATA) , SAFETY_ALLOWED_AREA (SAFETY_ALLOWED_AREA_DATA) , DATA_STREAM (DATA_STREAM_DATA) , ATTITUDE (ATTITUDE_DATA) , HIL_STATE_QUATERNION (HIL_STATE_QUATERNION_DATA) , LOGGING_DATA_ACKED (LOGGING_DATA_ACKED_DATA) , VIDEO_STREAM_INFORMATION (VIDEO_STREAM_INFORMATION_DATA) , DISTANCE_SENSOR (DISTANCE_SENSOR_DATA) , AUTH_KEY (AUTH_KEY_DATA) , RC_CHANNELS_OVERRIDE (RC_CHANNELS_OVERRIDE_DATA) , PARAM_EXT_SET (PARAM_EXT_SET_DATA) , ADSB_VEHICLE (ADSB_VEHICLE_DATA) , SERVO_OUTPUT_RAW (SERVO_OUTPUT_RAW_DATA) , SIM_STATE (SIM_STATE_DATA) , FENCE_STATUS (FENCE_STATUS_DATA) , ATTITUDE_QUATERNION (ATTITUDE_QUATERNION_DATA) , ATT_POS_MOCAP (ATT_POS_MOCAP_DATA) , MISSION_REQUEST_INT (MISSION_REQUEST_INT_DATA) , COMMAND_ACK (COMMAND_ACK_DATA) , MISSION_COUNT (MISSION_COUNT_DATA) , VISION_POSITION_ESTIMATE (VISION_POSITION_ESTIMATE_DATA) , TIMESYNC (TIMESYNC_DATA) , GPS_INPUT (GPS_INPUT_DATA) , CAMERA_IMAGE_CAPTURED (CAMERA_IMAGE_CAPTURED_DATA) , CAMERA_TRACKING_IMAGE_STATUS (CAMERA_TRACKING_IMAGE_STATUS_DATA) , GIMBAL_MANAGER_INFORMATION (GIMBAL_MANAGER_INFORMATION_DATA) , UAVCAN_NODE_STATUS (UAVCAN_NODE_STATUS_DATA) , GPS_INJECT_DATA (GPS_INJECT_DATA_DATA) , PARAM_EXT_REQUEST_LIST (PARAM_EXT_REQUEST_LIST_DATA) , PARAM_SET (PARAM_SET_DATA) , GPS_RTK (GPS_RTK_DATA) , COMMAND_CANCEL (COMMAND_CANCEL_DATA) , LOG_ENTRY (LOG_ENTRY_DATA) , MISSION_ITEM (MISSION_ITEM_DATA) , ACTUATOR_CONTROL_TARGET (ACTUATOR_CONTROL_TARGET_DATA) , SCALED_IMU3 (SCALED_IMU3_DATA) , VFR_HUD (VFR_HUD_DATA) , RESOURCE_REQUEST (RESOURCE_REQUEST_DATA) , GPS_RTCM_DATA (GPS_RTCM_DATA_DATA) , OBSTACLE_DISTANCE (OBSTACLE_DISTANCE_DATA) , NAMED_VALUE_FLOAT (NAMED_VALUE_FLOAT_DATA) , LOG_REQUEST_LIST (LOG_REQUEST_LIST_DATA) , LINK_NODE_STATUS (LINK_NODE_STATUS_DATA) , GPS_STATUS (GPS_STATUS_DATA) , MANUAL_SETPOINT (MANUAL_SETPOINT_DATA) , RC_CHANNELS (RC_CHANNELS_DATA) , ALTITUDE (ALTITUDE_DATA) , ODOMETRY (ODOMETRY_DATA) , WHEEL_DISTANCE (WHEEL_DISTANCE_DATA) , HOME_POSITION (HOME_POSITION_DATA) , OPEN_DRONE_ID_SELF_ID (OPEN_DRONE_ID_SELF_ID_DATA) , OPEN_DRONE_ID_SYSTEM (OPEN_DRONE_ID_SYSTEM_DATA) , CAMERA_TRIGGER (CAMERA_TRIGGER_DATA) , SET_MODE (SET_MODE_DATA) , EFI_STATUS (EFI_STATUS_DATA) , PING (PING_DATA) , PARAM_VALUE (PARAM_VALUE_DATA) , HIL_GPS (HIL_GPS_DATA) , GIMBAL_DEVICE_INFORMATION (GIMBAL_DEVICE_INFORMATION_DATA) , CAN_FRAME (CAN_FRAME_DATA) , OPEN_DRONE_ID_OPERATOR_ID (OPEN_DRONE_ID_OPERATOR_ID_DATA) , CELLULAR_CONFIG (CELLULAR_CONFIG_DATA) , COMPONENT_METADATA (COMPONENT_METADATA_DATA) , GIMBAL_MANAGER_SET_ATTITUDE (GIMBAL_MANAGER_SET_ATTITUDE_DATA) , GIMBAL_DEVICE_SET_ATTITUDE (GIMBAL_DEVICE_SET_ATTITUDE_DATA) , REQUEST_DATA_STREAM (REQUEST_DATA_STREAM_DATA) , SYSTEM_TIME (SYSTEM_TIME_DATA) , GIMBAL_MANAGER_SET_MANUAL_CONTROL (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA) , UTM_GLOBAL_POSITION (UTM_GLOBAL_POSITION_DATA) , LOG_ERASE (LOG_ERASE_DATA) , SET_GPS_GLOBAL_ORIGIN (SET_GPS_GLOBAL_ORIGIN_DATA) , CELLULAR_STATUS (CELLULAR_STATUS_DATA) , MOUNT_ORIENTATION (MOUNT_ORIENTATION_DATA) , CURRENT_EVENT_SEQUENCE (CURRENT_EVENT_SEQUENCE_DATA) , MISSION_ACK (MISSION_ACK_DATA) , DEBUG_VECT (DEBUG_VECT_DATA) , } impl Message for MavMessage { fn parse (version : MavlinkVersion , id : u32 , payload : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { match id { RC_CHANNELS_RAW_DATA :: ID => RC_CHANNELS_RAW_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_RAW) , TIME_ESTIMATE_TO_TARGET_DATA :: ID => TIME_ESTIMATE_TO_TARGET_DATA :: deser (version , payload) . map (Self :: TIME_ESTIMATE_TO_TARGET) , MESSAGE_INTERVAL_DATA :: ID => MESSAGE_INTERVAL_DATA :: deser (version , payload) . map (Self :: MESSAGE_INTERVAL) , RESPONSE_EVENT_ERROR_DATA :: ID => RESPONSE_EVENT_ERROR_DATA :: deser (version , payload) . map (Self :: RESPONSE_EVENT_ERROR) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: deser (version , payload) . map (Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS) , MISSION_ITEM_REACHED_DATA :: ID => MISSION_ITEM_REACHED_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM_REACHED) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: deser (version , payload) . map (Self :: TRAJECTORY_REPRESENTATION_BEZIER) , RAW_IMU_DATA :: ID => RAW_IMU_DATA :: deser (version , payload) . map (Self :: RAW_IMU) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => SET_POSITION_TARGET_GLOBAL_INT_DATA :: deser (version , payload) . map (Self :: SET_POSITION_TARGET_GLOBAL_INT) , POSITION_TARGET_GLOBAL_INT_DATA :: ID => POSITION_TARGET_GLOBAL_INT_DATA :: deser (version , payload) . map (Self :: POSITION_TARGET_GLOBAL_INT) , HIL_OPTICAL_FLOW_DATA :: ID => HIL_OPTICAL_FLOW_DATA :: deser (version , payload) . map (Self :: HIL_OPTICAL_FLOW) , LANDING_TARGET_DATA :: ID => LANDING_TARGET_DATA :: deser (version , payload) . map (Self :: LANDING_TARGET) , MAG_CAL_REPORT_DATA :: ID => MAG_CAL_REPORT_DATA :: deser (version , payload) . map (Self :: MAG_CAL_REPORT) , UAVCAN_NODE_INFO_DATA :: ID => UAVCAN_NODE_INFO_DATA :: deser (version , payload) . map (Self :: UAVCAN_NODE_INFO) , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => CAMERA_TRACKING_GEO_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_TRACKING_GEO_STATUS) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET) , ISBD_LINK_STATUS_DATA :: ID => ISBD_LINK_STATUS_DATA :: deser (version , payload) . map (Self :: ISBD_LINK_STATUS) , SMART_BATTERY_INFO_DATA :: ID => SMART_BATTERY_INFO_DATA :: deser (version , payload) . map (Self :: SMART_BATTERY_INFO) , ACTUATOR_OUTPUT_STATUS_DATA :: ID => ACTUATOR_OUTPUT_STATUS_DATA :: deser (version , payload) . map (Self :: ACTUATOR_OUTPUT_STATUS) , COMPONENT_INFORMATION_DATA :: ID => COMPONENT_INFORMATION_DATA :: deser (version , payload) . map (Self :: COMPONENT_INFORMATION) , TERRAIN_REQUEST_DATA :: ID => TERRAIN_REQUEST_DATA :: deser (version , payload) . map (Self :: TERRAIN_REQUEST) , STORAGE_INFORMATION_DATA :: ID => STORAGE_INFORMATION_DATA :: deser (version , payload) . map (Self :: STORAGE_INFORMATION) , CAN_FILTER_MODIFY_DATA :: ID => CAN_FILTER_MODIFY_DATA :: deser (version , payload) . map (Self :: CAN_FILTER_MODIFY) , SCALED_PRESSURE_DATA :: ID => SCALED_PRESSURE_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE) , LOG_DATA_DATA :: ID => LOG_DATA_DATA :: deser (version , payload) . map (Self :: LOG_DATA) , HIGH_LATENCY2_DATA :: ID => HIGH_LATENCY2_DATA :: deser (version , payload) . map (Self :: HIGH_LATENCY2) , OPEN_DRONE_ID_LOCATION_DATA :: ID => OPEN_DRONE_ID_LOCATION_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_LOCATION) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => OPEN_DRONE_ID_AUTHENTICATION_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_AUTHENTICATION) , ESC_STATUS_DATA :: ID => ESC_STATUS_DATA :: deser (version , payload) . map (Self :: ESC_STATUS) , V2_EXTENSION_DATA :: ID => V2_EXTENSION_DATA :: deser (version , payload) . map (Self :: V2_EXTENSION) , ORBIT_EXECUTION_STATUS_DATA :: ID => ORBIT_EXECUTION_STATUS_DATA :: deser (version , payload) . map (Self :: ORBIT_EXECUTION_STATUS) , HIGH_LATENCY_DATA :: ID => HIGH_LATENCY_DATA :: deser (version , payload) . map (Self :: HIGH_LATENCY) , SUPPORTED_TUNES_DATA :: ID => SUPPORTED_TUNES_DATA :: deser (version , payload) . map (Self :: SUPPORTED_TUNES) , AIS_VESSEL_DATA :: ID => AIS_VESSEL_DATA :: deser (version , payload) . map (Self :: AIS_VESSEL) , FILE_TRANSFER_PROTOCOL_DATA :: ID => FILE_TRANSFER_PROTOCOL_DATA :: deser (version , payload) . map (Self :: FILE_TRANSFER_PROTOCOL) , HIGHRES_IMU_DATA :: ID => HIGHRES_IMU_DATA :: deser (version , payload) . map (Self :: HIGHRES_IMU) , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => MISSION_REQUEST_PARTIAL_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_PARTIAL_LIST) , COLLISION_DATA :: ID => COLLISION_DATA :: deser (version , payload) . map (Self :: COLLISION) , DEBUG_DATA :: ID => DEBUG_DATA :: deser (version , payload) . map (Self :: DEBUG) , SETUP_SIGNING_DATA :: ID => SETUP_SIGNING_DATA :: deser (version , payload) . map (Self :: SETUP_SIGNING) , SCALED_PRESSURE3_DATA :: ID => SCALED_PRESSURE3_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE3) , SCALED_IMU2_DATA :: ID => SCALED_IMU2_DATA :: deser (version , payload) . map (Self :: SCALED_IMU2) , LOGGING_ACK_DATA :: ID => LOGGING_ACK_DATA :: deser (version , payload) . map (Self :: LOGGING_ACK) , VICON_POSITION_ESTIMATE_DATA :: ID => VICON_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VICON_POSITION_ESTIMATE) , ESC_INFO_DATA :: ID => ESC_INFO_DATA :: deser (version , payload) . map (Self :: ESC_INFO) , PARAM_EXT_VALUE_DATA :: ID => PARAM_EXT_VALUE_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_VALUE) , PLAY_TUNE_V2_DATA :: ID => PLAY_TUNE_V2_DATA :: deser (version , payload) . map (Self :: PLAY_TUNE_V2) , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => OPEN_DRONE_ID_ARM_STATUS_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_ARM_STATUS) , GIMBAL_MANAGER_STATUS_DATA :: ID => GIMBAL_MANAGER_STATUS_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_STATUS) , MANUAL_CONTROL_DATA :: ID => MANUAL_CONTROL_DATA :: deser (version , payload) . map (Self :: MANUAL_CONTROL) , PROTOCOL_VERSION_DATA :: ID => PROTOCOL_VERSION_DATA :: deser (version , payload) . map (Self :: PROTOCOL_VERSION) , CHANGE_OPERATOR_CONTROL_DATA :: ID => CHANGE_OPERATOR_CONTROL_DATA :: deser (version , payload) . map (Self :: CHANGE_OPERATOR_CONTROL) , LOCAL_POSITION_NED_DATA :: ID => LOCAL_POSITION_NED_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED) , HIL_SENSOR_DATA :: ID => HIL_SENSOR_DATA :: deser (version , payload) . map (Self :: HIL_SENSOR) , FOLLOW_TARGET_DATA :: ID => FOLLOW_TARGET_DATA :: deser (version , payload) . map (Self :: FOLLOW_TARGET) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_MESSAGE_PACK) , PARAM_MAP_RC_DATA :: ID => PARAM_MAP_RC_DATA :: deser (version , payload) . map (Self :: PARAM_MAP_RC) , HYGROMETER_SENSOR_DATA :: ID => HYGROMETER_SENSOR_DATA :: deser (version , payload) . map (Self :: HYGROMETER_SENSOR) , STATUSTEXT_DATA :: ID => STATUSTEXT_DATA :: deser (version , payload) . map (Self :: STATUSTEXT) , HIL_STATE_DATA :: ID => HIL_STATE_DATA :: deser (version , payload) . map (Self :: HIL_STATE) , POWER_STATUS_DATA :: ID => POWER_STATUS_DATA :: deser (version , payload) . map (Self :: POWER_STATUS) , HEARTBEAT_DATA :: ID => HEARTBEAT_DATA :: deser (version , payload) . map (Self :: HEARTBEAT) , WIND_COV_DATA :: ID => WIND_COV_DATA :: deser (version , payload) . map (Self :: WIND_COV) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE) , GLOBAL_POSITION_INT_DATA :: ID => GLOBAL_POSITION_INT_DATA :: deser (version , payload) . map (Self :: GLOBAL_POSITION_INT) , HIL_RC_INPUTS_RAW_DATA :: ID => HIL_RC_INPUTS_RAW_DATA :: deser (version , payload) . map (Self :: HIL_RC_INPUTS_RAW) , GPS2_RAW_DATA :: ID => GPS2_RAW_DATA :: deser (version , payload) . map (Self :: GPS2_RAW) , GENERATOR_STATUS_DATA :: ID => GENERATOR_STATUS_DATA :: deser (version , payload) . map (Self :: GENERATOR_STATUS) , VISION_SPEED_ESTIMATE_DATA :: ID => VISION_SPEED_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VISION_SPEED_ESTIMATE) , PARAM_REQUEST_READ_DATA :: ID => PARAM_REQUEST_READ_DATA :: deser (version , payload) . map (Self :: PARAM_REQUEST_READ) , SET_ATTITUDE_TARGET_DATA :: ID => SET_ATTITUDE_TARGET_DATA :: deser (version , payload) . map (Self :: SET_ATTITUDE_TARGET) , PARAM_EXT_ACK_DATA :: ID => PARAM_EXT_ACK_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_ACK) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_PITCHYAW) , PARAM_EXT_REQUEST_READ_DATA :: ID => PARAM_EXT_REQUEST_READ_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_REQUEST_READ) , CONTROL_SYSTEM_STATE_DATA :: ID => CONTROL_SYSTEM_STATE_DATA :: deser (version , payload) . map (Self :: CONTROL_SYSTEM_STATE) , TERRAIN_CHECK_DATA :: ID => TERRAIN_CHECK_DATA :: deser (version , payload) . map (Self :: TERRAIN_CHECK) , NAV_CONTROLLER_OUTPUT_DATA :: ID => NAV_CONTROLLER_OUTPUT_DATA :: deser (version , payload) . map (Self :: NAV_CONTROLLER_OUTPUT) , MISSION_CURRENT_DATA :: ID => MISSION_CURRENT_DATA :: deser (version , payload) . map (Self :: MISSION_CURRENT) , PARAM_REQUEST_LIST_DATA :: ID => PARAM_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: PARAM_REQUEST_LIST) , RADIO_STATUS_DATA :: ID => RADIO_STATUS_DATA :: deser (version , payload) . map (Self :: RADIO_STATUS) , LOG_REQUEST_END_DATA :: ID => LOG_REQUEST_END_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_END) , VIBRATION_DATA :: ID => VIBRATION_DATA :: deser (version , payload) . map (Self :: VIBRATION) , AUTOPILOT_VERSION_DATA :: ID => AUTOPILOT_VERSION_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_VERSION) , MISSION_SET_CURRENT_DATA :: ID => MISSION_SET_CURRENT_DATA :: deser (version , payload) . map (Self :: MISSION_SET_CURRENT) , CAMERA_SETTINGS_DATA :: ID => CAMERA_SETTINGS_DATA :: deser (version , payload) . map (Self :: CAMERA_SETTINGS) , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => MISSION_WRITE_PARTIAL_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_WRITE_PARTIAL_LIST) , VIDEO_STREAM_STATUS_DATA :: ID => VIDEO_STREAM_STATUS_DATA :: deser (version , payload) . map (Self :: VIDEO_STREAM_STATUS) , EVENT_DATA :: ID => EVENT_DATA :: deser (version , payload) . map (Self :: EVENT) , CANFD_FRAME_DATA :: ID => CANFD_FRAME_DATA :: deser (version , payload) . map (Self :: CANFD_FRAME) , WINCH_STATUS_DATA :: ID => WINCH_STATUS_DATA :: deser (version , payload) . map (Self :: WINCH_STATUS) , DEBUG_FLOAT_ARRAY_DATA :: ID => DEBUG_FLOAT_ARRAY_DATA :: deser (version , payload) . map (Self :: DEBUG_FLOAT_ARRAY) , MISSION_ITEM_INT_DATA :: ID => MISSION_ITEM_INT_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM_INT) , CAMERA_FOV_STATUS_DATA :: ID => CAMERA_FOV_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_FOV_STATUS) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SYSTEM_UPDATE) , ATTITUDE_TARGET_DATA :: ID => ATTITUDE_TARGET_DATA :: deser (version , payload) . map (Self :: ATTITUDE_TARGET) , MISSION_REQUEST_LIST_DATA :: ID => MISSION_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_LIST) , TUNNEL_DATA :: ID => TUNNEL_DATA :: deser (version , payload) . map (Self :: TUNNEL) , PLAY_TUNE_DATA :: ID => PLAY_TUNE_DATA :: deser (version , payload) . map (Self :: PLAY_TUNE) , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => SET_POSITION_TARGET_LOCAL_NED_DATA :: deser (version , payload) . map (Self :: SET_POSITION_TARGET_LOCAL_NED) , MISSION_CLEAR_ALL_DATA :: ID => MISSION_CLEAR_ALL_DATA :: deser (version , payload) . map (Self :: MISSION_CLEAR_ALL) , ONBOARD_COMPUTER_STATUS_DATA :: ID => ONBOARD_COMPUTER_STATUS_DATA :: deser (version , payload) . map (Self :: ONBOARD_COMPUTER_STATUS) , RAW_PRESSURE_DATA :: ID => RAW_PRESSURE_DATA :: deser (version , payload) . map (Self :: RAW_PRESSURE) , LOCAL_POSITION_NED_COV_DATA :: ID => LOCAL_POSITION_NED_COV_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED_COV) , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => SET_ACTUATOR_CONTROL_TARGET_DATA :: deser (version , payload) . map (Self :: SET_ACTUATOR_CONTROL_TARGET) , GPS_RAW_INT_DATA :: ID => GPS_RAW_INT_DATA :: deser (version , payload) . map (Self :: GPS_RAW_INT) , SAFETY_SET_ALLOWED_AREA_DATA :: ID => SAFETY_SET_ALLOWED_AREA_DATA :: deser (version , payload) . map (Self :: SAFETY_SET_ALLOWED_AREA) , LOG_REQUEST_DATA_DATA :: ID => LOG_REQUEST_DATA_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_DATA) , BUTTON_CHANGE_DATA :: ID => BUTTON_CHANGE_DATA :: deser (version , payload) . map (Self :: BUTTON_CHANGE) , RC_CHANNELS_SCALED_DATA :: ID => RC_CHANNELS_SCALED_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_SCALED) , SCALED_IMU_DATA :: ID => SCALED_IMU_DATA :: deser (version , payload) . map (Self :: SCALED_IMU) , NAMED_VALUE_INT_DATA :: ID => NAMED_VALUE_INT_DATA :: deser (version , payload) . map (Self :: NAMED_VALUE_INT) , ENCAPSULATED_DATA_DATA :: ID => ENCAPSULATED_DATA_DATA :: deser (version , payload) . map (Self :: ENCAPSULATED_DATA) , COMMAND_INT_DATA :: ID => COMMAND_INT_DATA :: deser (version , payload) . map (Self :: COMMAND_INT) , OPTICAL_FLOW_RAD_DATA :: ID => OPTICAL_FLOW_RAD_DATA :: deser (version , payload) . map (Self :: OPTICAL_FLOW_RAD) , CAMERA_INFORMATION_DATA :: ID => CAMERA_INFORMATION_DATA :: deser (version , payload) . map (Self :: CAMERA_INFORMATION) , WIFI_CONFIG_AP_DATA :: ID => WIFI_CONFIG_AP_DATA :: deser (version , payload) . map (Self :: WIFI_CONFIG_AP) , TERRAIN_REPORT_DATA :: ID => TERRAIN_REPORT_DATA :: deser (version , payload) . map (Self :: TERRAIN_REPORT) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: GLOBAL_VISION_POSITION_ESTIMATE) , BATTERY_STATUS_DATA :: ID => BATTERY_STATUS_DATA :: deser (version , payload) . map (Self :: BATTERY_STATUS) , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => OPEN_DRONE_ID_BASIC_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_BASIC_ID) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => CHANGE_OPERATOR_CONTROL_ACK_DATA :: deser (version , payload) . map (Self :: CHANGE_OPERATOR_CONTROL_ACK) , HIL_ACTUATOR_CONTROLS_DATA :: ID => HIL_ACTUATOR_CONTROLS_DATA :: deser (version , payload) . map (Self :: HIL_ACTUATOR_CONTROLS) , REQUEST_EVENT_DATA :: ID => REQUEST_EVENT_DATA :: deser (version , payload) . map (Self :: REQUEST_EVENT) , SYS_STATUS_DATA :: ID => SYS_STATUS_DATA :: deser (version , payload) . map (Self :: SYS_STATUS) , POSITION_TARGET_LOCAL_NED_DATA :: ID => POSITION_TARGET_LOCAL_NED_DATA :: deser (version , payload) . map (Self :: POSITION_TARGET_LOCAL_NED) , COMMAND_LONG_DATA :: ID => COMMAND_LONG_DATA :: deser (version , payload) . map (Self :: COMMAND_LONG) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_ATTITUDE_STATUS) , ATTITUDE_QUATERNION_COV_DATA :: ID => ATTITUDE_QUATERNION_COV_DATA :: deser (version , payload) . map (Self :: ATTITUDE_QUATERNION_COV) , MISSION_REQUEST_DATA :: ID => MISSION_REQUEST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST) , HIL_CONTROLS_DATA :: ID => HIL_CONTROLS_DATA :: deser (version , payload) . map (Self :: HIL_CONTROLS) , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => DATA_TRANSMISSION_HANDSHAKE_DATA :: deser (version , payload) . map (Self :: DATA_TRANSMISSION_HANDSHAKE) , ESTIMATOR_STATUS_DATA :: ID => ESTIMATOR_STATUS_DATA :: deser (version , payload) . map (Self :: ESTIMATOR_STATUS) , SERIAL_CONTROL_DATA :: ID => SERIAL_CONTROL_DATA :: deser (version , payload) . map (Self :: SERIAL_CONTROL) , LOGGING_DATA_DATA :: ID => LOGGING_DATA_DATA :: deser (version , payload) . map (Self :: LOGGING_DATA) , EXTENDED_SYS_STATE_DATA :: ID => EXTENDED_SYS_STATE_DATA :: deser (version , payload) . map (Self :: EXTENDED_SYS_STATE) , SET_HOME_POSITION_DATA :: ID => SET_HOME_POSITION_DATA :: deser (version , payload) . map (Self :: SET_HOME_POSITION) , MEMORY_VECT_DATA :: ID => MEMORY_VECT_DATA :: deser (version , payload) . map (Self :: MEMORY_VECT) , RAW_RPM_DATA :: ID => RAW_RPM_DATA :: deser (version , payload) . map (Self :: RAW_RPM) , GLOBAL_POSITION_INT_COV_DATA :: ID => GLOBAL_POSITION_INT_COV_DATA :: deser (version , payload) . map (Self :: GLOBAL_POSITION_INT_COV) , GPS2_RTK_DATA :: ID => GPS2_RTK_DATA :: deser (version , payload) . map (Self :: GPS2_RTK) , GPS_GLOBAL_ORIGIN_DATA :: ID => GPS_GLOBAL_ORIGIN_DATA :: deser (version , payload) . map (Self :: GPS_GLOBAL_ORIGIN) , OPTICAL_FLOW_DATA :: ID => OPTICAL_FLOW_DATA :: deser (version , payload) . map (Self :: OPTICAL_FLOW) , TERRAIN_DATA_DATA :: ID => TERRAIN_DATA_DATA :: deser (version , payload) . map (Self :: TERRAIN_DATA) , FLIGHT_INFORMATION_DATA :: ID => FLIGHT_INFORMATION_DATA :: deser (version , payload) . map (Self :: FLIGHT_INFORMATION) , SCALED_PRESSURE2_DATA :: ID => SCALED_PRESSURE2_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE2) , CAMERA_CAPTURE_STATUS_DATA :: ID => CAMERA_CAPTURE_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_CAPTURE_STATUS) , SAFETY_ALLOWED_AREA_DATA :: ID => SAFETY_ALLOWED_AREA_DATA :: deser (version , payload) . map (Self :: SAFETY_ALLOWED_AREA) , DATA_STREAM_DATA :: ID => DATA_STREAM_DATA :: deser (version , payload) . map (Self :: DATA_STREAM) , ATTITUDE_DATA :: ID => ATTITUDE_DATA :: deser (version , payload) . map (Self :: ATTITUDE) , HIL_STATE_QUATERNION_DATA :: ID => HIL_STATE_QUATERNION_DATA :: deser (version , payload) . map (Self :: HIL_STATE_QUATERNION) , LOGGING_DATA_ACKED_DATA :: ID => LOGGING_DATA_ACKED_DATA :: deser (version , payload) . map (Self :: LOGGING_DATA_ACKED) , VIDEO_STREAM_INFORMATION_DATA :: ID => VIDEO_STREAM_INFORMATION_DATA :: deser (version , payload) . map (Self :: VIDEO_STREAM_INFORMATION) , DISTANCE_SENSOR_DATA :: ID => DISTANCE_SENSOR_DATA :: deser (version , payload) . map (Self :: DISTANCE_SENSOR) , AUTH_KEY_DATA :: ID => AUTH_KEY_DATA :: deser (version , payload) . map (Self :: AUTH_KEY) , RC_CHANNELS_OVERRIDE_DATA :: ID => RC_CHANNELS_OVERRIDE_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_OVERRIDE) , PARAM_EXT_SET_DATA :: ID => PARAM_EXT_SET_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_SET) , ADSB_VEHICLE_DATA :: ID => ADSB_VEHICLE_DATA :: deser (version , payload) . map (Self :: ADSB_VEHICLE) , SERVO_OUTPUT_RAW_DATA :: ID => SERVO_OUTPUT_RAW_DATA :: deser (version , payload) . map (Self :: SERVO_OUTPUT_RAW) , SIM_STATE_DATA :: ID => SIM_STATE_DATA :: deser (version , payload) . map (Self :: SIM_STATE) , FENCE_STATUS_DATA :: ID => FENCE_STATUS_DATA :: deser (version , payload) . map (Self :: FENCE_STATUS) , ATTITUDE_QUATERNION_DATA :: ID => ATTITUDE_QUATERNION_DATA :: deser (version , payload) . map (Self :: ATTITUDE_QUATERNION) , ATT_POS_MOCAP_DATA :: ID => ATT_POS_MOCAP_DATA :: deser (version , payload) . map (Self :: ATT_POS_MOCAP) , MISSION_REQUEST_INT_DATA :: ID => MISSION_REQUEST_INT_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_INT) , COMMAND_ACK_DATA :: ID => COMMAND_ACK_DATA :: deser (version , payload) . map (Self :: COMMAND_ACK) , MISSION_COUNT_DATA :: ID => MISSION_COUNT_DATA :: deser (version , payload) . map (Self :: MISSION_COUNT) , VISION_POSITION_ESTIMATE_DATA :: ID => VISION_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VISION_POSITION_ESTIMATE) , TIMESYNC_DATA :: ID => TIMESYNC_DATA :: deser (version , payload) . map (Self :: TIMESYNC) , GPS_INPUT_DATA :: ID => GPS_INPUT_DATA :: deser (version , payload) . map (Self :: GPS_INPUT) , CAMERA_IMAGE_CAPTURED_DATA :: ID => CAMERA_IMAGE_CAPTURED_DATA :: deser (version , payload) . map (Self :: CAMERA_IMAGE_CAPTURED) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => CAMERA_TRACKING_IMAGE_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_TRACKING_IMAGE_STATUS) , GIMBAL_MANAGER_INFORMATION_DATA :: ID => GIMBAL_MANAGER_INFORMATION_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_INFORMATION) , UAVCAN_NODE_STATUS_DATA :: ID => UAVCAN_NODE_STATUS_DATA :: deser (version , payload) . map (Self :: UAVCAN_NODE_STATUS) , GPS_INJECT_DATA_DATA :: ID => GPS_INJECT_DATA_DATA :: deser (version , payload) . map (Self :: GPS_INJECT_DATA) , PARAM_EXT_REQUEST_LIST_DATA :: ID => PARAM_EXT_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_REQUEST_LIST) , PARAM_SET_DATA :: ID => PARAM_SET_DATA :: deser (version , payload) . map (Self :: PARAM_SET) , GPS_RTK_DATA :: ID => GPS_RTK_DATA :: deser (version , payload) . map (Self :: GPS_RTK) , COMMAND_CANCEL_DATA :: ID => COMMAND_CANCEL_DATA :: deser (version , payload) . map (Self :: COMMAND_CANCEL) , LOG_ENTRY_DATA :: ID => LOG_ENTRY_DATA :: deser (version , payload) . map (Self :: LOG_ENTRY) , MISSION_ITEM_DATA :: ID => MISSION_ITEM_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM) , ACTUATOR_CONTROL_TARGET_DATA :: ID => ACTUATOR_CONTROL_TARGET_DATA :: deser (version , payload) . map (Self :: ACTUATOR_CONTROL_TARGET) , SCALED_IMU3_DATA :: ID => SCALED_IMU3_DATA :: deser (version , payload) . map (Self :: SCALED_IMU3) , VFR_HUD_DATA :: ID => VFR_HUD_DATA :: deser (version , payload) . map (Self :: VFR_HUD) , RESOURCE_REQUEST_DATA :: ID => RESOURCE_REQUEST_DATA :: deser (version , payload) . map (Self :: RESOURCE_REQUEST) , GPS_RTCM_DATA_DATA :: ID => GPS_RTCM_DATA_DATA :: deser (version , payload) . map (Self :: GPS_RTCM_DATA) , OBSTACLE_DISTANCE_DATA :: ID => OBSTACLE_DISTANCE_DATA :: deser (version , payload) . map (Self :: OBSTACLE_DISTANCE) , NAMED_VALUE_FLOAT_DATA :: ID => NAMED_VALUE_FLOAT_DATA :: deser (version , payload) . map (Self :: NAMED_VALUE_FLOAT) , LOG_REQUEST_LIST_DATA :: ID => LOG_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_LIST) , LINK_NODE_STATUS_DATA :: ID => LINK_NODE_STATUS_DATA :: deser (version , payload) . map (Self :: LINK_NODE_STATUS) , GPS_STATUS_DATA :: ID => GPS_STATUS_DATA :: deser (version , payload) . map (Self :: GPS_STATUS) , MANUAL_SETPOINT_DATA :: ID => MANUAL_SETPOINT_DATA :: deser (version , payload) . map (Self :: MANUAL_SETPOINT) , RC_CHANNELS_DATA :: ID => RC_CHANNELS_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS) , ALTITUDE_DATA :: ID => ALTITUDE_DATA :: deser (version , payload) . map (Self :: ALTITUDE) , ODOMETRY_DATA :: ID => ODOMETRY_DATA :: deser (version , payload) . map (Self :: ODOMETRY) , WHEEL_DISTANCE_DATA :: ID => WHEEL_DISTANCE_DATA :: deser (version , payload) . map (Self :: WHEEL_DISTANCE) , HOME_POSITION_DATA :: ID => HOME_POSITION_DATA :: deser (version , payload) . map (Self :: HOME_POSITION) , OPEN_DRONE_ID_SELF_ID_DATA :: ID => OPEN_DRONE_ID_SELF_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SELF_ID) , OPEN_DRONE_ID_SYSTEM_DATA :: ID => OPEN_DRONE_ID_SYSTEM_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SYSTEM) , CAMERA_TRIGGER_DATA :: ID => CAMERA_TRIGGER_DATA :: deser (version , payload) . map (Self :: CAMERA_TRIGGER) , SET_MODE_DATA :: ID => SET_MODE_DATA :: deser (version , payload) . map (Self :: SET_MODE) , EFI_STATUS_DATA :: ID => EFI_STATUS_DATA :: deser (version , payload) . map (Self :: EFI_STATUS) , PING_DATA :: ID => PING_DATA :: deser (version , payload) . map (Self :: PING) , PARAM_VALUE_DATA :: ID => PARAM_VALUE_DATA :: deser (version , payload) . map (Self :: PARAM_VALUE) , HIL_GPS_DATA :: ID => HIL_GPS_DATA :: deser (version , payload) . map (Self :: HIL_GPS) , GIMBAL_DEVICE_INFORMATION_DATA :: ID => GIMBAL_DEVICE_INFORMATION_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_INFORMATION) , CAN_FRAME_DATA :: ID => CAN_FRAME_DATA :: deser (version , payload) . map (Self :: CAN_FRAME) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => OPEN_DRONE_ID_OPERATOR_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_OPERATOR_ID) , CELLULAR_CONFIG_DATA :: ID => CELLULAR_CONFIG_DATA :: deser (version , payload) . map (Self :: CELLULAR_CONFIG) , COMPONENT_METADATA_DATA :: ID => COMPONENT_METADATA_DATA :: deser (version , payload) . map (Self :: COMPONENT_METADATA) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_ATTITUDE) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_SET_ATTITUDE) , REQUEST_DATA_STREAM_DATA :: ID => REQUEST_DATA_STREAM_DATA :: deser (version , payload) . map (Self :: REQUEST_DATA_STREAM) , SYSTEM_TIME_DATA :: ID => SYSTEM_TIME_DATA :: deser (version , payload) . map (Self :: SYSTEM_TIME) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL) , UTM_GLOBAL_POSITION_DATA :: ID => UTM_GLOBAL_POSITION_DATA :: deser (version , payload) . map (Self :: UTM_GLOBAL_POSITION) , LOG_ERASE_DATA :: ID => LOG_ERASE_DATA :: deser (version , payload) . map (Self :: LOG_ERASE) , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => SET_GPS_GLOBAL_ORIGIN_DATA :: deser (version , payload) . map (Self :: SET_GPS_GLOBAL_ORIGIN) , CELLULAR_STATUS_DATA :: ID => CELLULAR_STATUS_DATA :: deser (version , payload) . map (Self :: CELLULAR_STATUS) , MOUNT_ORIENTATION_DATA :: ID => MOUNT_ORIENTATION_DATA :: deser (version , payload) . map (Self :: MOUNT_ORIENTATION) , CURRENT_EVENT_SEQUENCE_DATA :: ID => CURRENT_EVENT_SEQUENCE_DATA :: deser (version , payload) . map (Self :: CURRENT_EVENT_SEQUENCE) , MISSION_ACK_DATA :: ID => MISSION_ACK_DATA :: deser (version , payload) . map (Self :: MISSION_ACK) , DEBUG_VECT_DATA :: ID => DEBUG_VECT_DATA :: deser (version , payload) . map (Self :: DEBUG_VECT) , _ => { Err (:: mavlink_core :: error :: ParserError :: UnknownMessage { id }) } , } } fn message_name (& self) -> & 'static str { match self { Self :: RC_CHANNELS_RAW (..) => RC_CHANNELS_RAW_DATA :: NAME , Self :: TIME_ESTIMATE_TO_TARGET (..) => TIME_ESTIMATE_TO_TARGET_DATA :: NAME , Self :: MESSAGE_INTERVAL (..) => MESSAGE_INTERVAL_DATA :: NAME , Self :: RESPONSE_EVENT_ERROR (..) => RESPONSE_EVENT_ERROR_DATA :: NAME , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (..) => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: NAME , Self :: MISSION_ITEM_REACHED (..) => MISSION_ITEM_REACHED_DATA :: NAME , Self :: TRAJECTORY_REPRESENTATION_BEZIER (..) => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: NAME , Self :: RAW_IMU (..) => RAW_IMU_DATA :: NAME , Self :: SET_POSITION_TARGET_GLOBAL_INT (..) => SET_POSITION_TARGET_GLOBAL_INT_DATA :: NAME , Self :: POSITION_TARGET_GLOBAL_INT (..) => POSITION_TARGET_GLOBAL_INT_DATA :: NAME , Self :: HIL_OPTICAL_FLOW (..) => HIL_OPTICAL_FLOW_DATA :: NAME , Self :: LANDING_TARGET (..) => LANDING_TARGET_DATA :: NAME , Self :: MAG_CAL_REPORT (..) => MAG_CAL_REPORT_DATA :: NAME , Self :: UAVCAN_NODE_INFO (..) => UAVCAN_NODE_INFO_DATA :: NAME , Self :: CAMERA_TRACKING_GEO_STATUS (..) => CAMERA_TRACKING_GEO_STATUS_DATA :: NAME , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (..) => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: NAME , Self :: ISBD_LINK_STATUS (..) => ISBD_LINK_STATUS_DATA :: NAME , Self :: SMART_BATTERY_INFO (..) => SMART_BATTERY_INFO_DATA :: NAME , Self :: ACTUATOR_OUTPUT_STATUS (..) => ACTUATOR_OUTPUT_STATUS_DATA :: NAME , Self :: COMPONENT_INFORMATION (..) => COMPONENT_INFORMATION_DATA :: NAME , Self :: TERRAIN_REQUEST (..) => TERRAIN_REQUEST_DATA :: NAME , Self :: STORAGE_INFORMATION (..) => STORAGE_INFORMATION_DATA :: NAME , Self :: CAN_FILTER_MODIFY (..) => CAN_FILTER_MODIFY_DATA :: NAME , Self :: SCALED_PRESSURE (..) => SCALED_PRESSURE_DATA :: NAME , Self :: LOG_DATA (..) => LOG_DATA_DATA :: NAME , Self :: HIGH_LATENCY2 (..) => HIGH_LATENCY2_DATA :: NAME , Self :: OPEN_DRONE_ID_LOCATION (..) => OPEN_DRONE_ID_LOCATION_DATA :: NAME , Self :: OPEN_DRONE_ID_AUTHENTICATION (..) => OPEN_DRONE_ID_AUTHENTICATION_DATA :: NAME , Self :: ESC_STATUS (..) => ESC_STATUS_DATA :: NAME , Self :: V2_EXTENSION (..) => V2_EXTENSION_DATA :: NAME , Self :: ORBIT_EXECUTION_STATUS (..) => ORBIT_EXECUTION_STATUS_DATA :: NAME , Self :: HIGH_LATENCY (..) => HIGH_LATENCY_DATA :: NAME , Self :: SUPPORTED_TUNES (..) => SUPPORTED_TUNES_DATA :: NAME , Self :: AIS_VESSEL (..) => AIS_VESSEL_DATA :: NAME , Self :: FILE_TRANSFER_PROTOCOL (..) => FILE_TRANSFER_PROTOCOL_DATA :: NAME , Self :: HIGHRES_IMU (..) => HIGHRES_IMU_DATA :: NAME , Self :: MISSION_REQUEST_PARTIAL_LIST (..) => MISSION_REQUEST_PARTIAL_LIST_DATA :: NAME , Self :: COLLISION (..) => COLLISION_DATA :: NAME , Self :: DEBUG (..) => DEBUG_DATA :: NAME , Self :: SETUP_SIGNING (..) => SETUP_SIGNING_DATA :: NAME , Self :: SCALED_PRESSURE3 (..) => SCALED_PRESSURE3_DATA :: NAME , Self :: SCALED_IMU2 (..) => SCALED_IMU2_DATA :: NAME , Self :: LOGGING_ACK (..) => LOGGING_ACK_DATA :: NAME , Self :: VICON_POSITION_ESTIMATE (..) => VICON_POSITION_ESTIMATE_DATA :: NAME , Self :: ESC_INFO (..) => ESC_INFO_DATA :: NAME , Self :: PARAM_EXT_VALUE (..) => PARAM_EXT_VALUE_DATA :: NAME , Self :: PLAY_TUNE_V2 (..) => PLAY_TUNE_V2_DATA :: NAME , Self :: OPEN_DRONE_ID_ARM_STATUS (..) => OPEN_DRONE_ID_ARM_STATUS_DATA :: NAME , Self :: GIMBAL_MANAGER_STATUS (..) => GIMBAL_MANAGER_STATUS_DATA :: NAME , Self :: MANUAL_CONTROL (..) => MANUAL_CONTROL_DATA :: NAME , Self :: PROTOCOL_VERSION (..) => PROTOCOL_VERSION_DATA :: NAME , Self :: CHANGE_OPERATOR_CONTROL (..) => CHANGE_OPERATOR_CONTROL_DATA :: NAME , Self :: LOCAL_POSITION_NED (..) => LOCAL_POSITION_NED_DATA :: NAME , Self :: HIL_SENSOR (..) => HIL_SENSOR_DATA :: NAME , Self :: FOLLOW_TARGET (..) => FOLLOW_TARGET_DATA :: NAME , Self :: OPEN_DRONE_ID_MESSAGE_PACK (..) => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: NAME , Self :: PARAM_MAP_RC (..) => PARAM_MAP_RC_DATA :: NAME , Self :: HYGROMETER_SENSOR (..) => HYGROMETER_SENSOR_DATA :: NAME , Self :: STATUSTEXT (..) => STATUSTEXT_DATA :: NAME , Self :: HIL_STATE (..) => HIL_STATE_DATA :: NAME , Self :: POWER_STATUS (..) => POWER_STATUS_DATA :: NAME , Self :: HEARTBEAT (..) => HEARTBEAT_DATA :: NAME , Self :: WIND_COV (..) => WIND_COV_DATA :: NAME , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (..) => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: NAME , Self :: GLOBAL_POSITION_INT (..) => GLOBAL_POSITION_INT_DATA :: NAME , Self :: HIL_RC_INPUTS_RAW (..) => HIL_RC_INPUTS_RAW_DATA :: NAME , Self :: GPS2_RAW (..) => GPS2_RAW_DATA :: NAME , Self :: GENERATOR_STATUS (..) => GENERATOR_STATUS_DATA :: NAME , Self :: VISION_SPEED_ESTIMATE (..) => VISION_SPEED_ESTIMATE_DATA :: NAME , Self :: PARAM_REQUEST_READ (..) => PARAM_REQUEST_READ_DATA :: NAME , Self :: SET_ATTITUDE_TARGET (..) => SET_ATTITUDE_TARGET_DATA :: NAME , Self :: PARAM_EXT_ACK (..) => PARAM_EXT_ACK_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_PITCHYAW (..) => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: NAME , Self :: PARAM_EXT_REQUEST_READ (..) => PARAM_EXT_REQUEST_READ_DATA :: NAME , Self :: CONTROL_SYSTEM_STATE (..) => CONTROL_SYSTEM_STATE_DATA :: NAME , Self :: TERRAIN_CHECK (..) => TERRAIN_CHECK_DATA :: NAME , Self :: NAV_CONTROLLER_OUTPUT (..) => NAV_CONTROLLER_OUTPUT_DATA :: NAME , Self :: MISSION_CURRENT (..) => MISSION_CURRENT_DATA :: NAME , Self :: PARAM_REQUEST_LIST (..) => PARAM_REQUEST_LIST_DATA :: NAME , Self :: RADIO_STATUS (..) => RADIO_STATUS_DATA :: NAME , Self :: LOG_REQUEST_END (..) => LOG_REQUEST_END_DATA :: NAME , Self :: VIBRATION (..) => VIBRATION_DATA :: NAME , Self :: AUTOPILOT_VERSION (..) => AUTOPILOT_VERSION_DATA :: NAME , Self :: MISSION_SET_CURRENT (..) => MISSION_SET_CURRENT_DATA :: NAME , Self :: CAMERA_SETTINGS (..) => CAMERA_SETTINGS_DATA :: NAME , Self :: MISSION_WRITE_PARTIAL_LIST (..) => MISSION_WRITE_PARTIAL_LIST_DATA :: NAME , Self :: VIDEO_STREAM_STATUS (..) => VIDEO_STREAM_STATUS_DATA :: NAME , Self :: EVENT (..) => EVENT_DATA :: NAME , Self :: CANFD_FRAME (..) => CANFD_FRAME_DATA :: NAME , Self :: WINCH_STATUS (..) => WINCH_STATUS_DATA :: NAME , Self :: DEBUG_FLOAT_ARRAY (..) => DEBUG_FLOAT_ARRAY_DATA :: NAME , Self :: MISSION_ITEM_INT (..) => MISSION_ITEM_INT_DATA :: NAME , Self :: CAMERA_FOV_STATUS (..) => CAMERA_FOV_STATUS_DATA :: NAME , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (..) => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: NAME , Self :: ATTITUDE_TARGET (..) => ATTITUDE_TARGET_DATA :: NAME , Self :: MISSION_REQUEST_LIST (..) => MISSION_REQUEST_LIST_DATA :: NAME , Self :: TUNNEL (..) => TUNNEL_DATA :: NAME , Self :: PLAY_TUNE (..) => PLAY_TUNE_DATA :: NAME , Self :: SET_POSITION_TARGET_LOCAL_NED (..) => SET_POSITION_TARGET_LOCAL_NED_DATA :: NAME , Self :: MISSION_CLEAR_ALL (..) => MISSION_CLEAR_ALL_DATA :: NAME , Self :: ONBOARD_COMPUTER_STATUS (..) => ONBOARD_COMPUTER_STATUS_DATA :: NAME , Self :: RAW_PRESSURE (..) => RAW_PRESSURE_DATA :: NAME , Self :: LOCAL_POSITION_NED_COV (..) => LOCAL_POSITION_NED_COV_DATA :: NAME , Self :: SET_ACTUATOR_CONTROL_TARGET (..) => SET_ACTUATOR_CONTROL_TARGET_DATA :: NAME , Self :: GPS_RAW_INT (..) => GPS_RAW_INT_DATA :: NAME , Self :: SAFETY_SET_ALLOWED_AREA (..) => SAFETY_SET_ALLOWED_AREA_DATA :: NAME , Self :: LOG_REQUEST_DATA (..) => LOG_REQUEST_DATA_DATA :: NAME , Self :: BUTTON_CHANGE (..) => BUTTON_CHANGE_DATA :: NAME , Self :: RC_CHANNELS_SCALED (..) => RC_CHANNELS_SCALED_DATA :: NAME , Self :: SCALED_IMU (..) => SCALED_IMU_DATA :: NAME , Self :: NAMED_VALUE_INT (..) => NAMED_VALUE_INT_DATA :: NAME , Self :: ENCAPSULATED_DATA (..) => ENCAPSULATED_DATA_DATA :: NAME , Self :: COMMAND_INT (..) => COMMAND_INT_DATA :: NAME , Self :: OPTICAL_FLOW_RAD (..) => OPTICAL_FLOW_RAD_DATA :: NAME , Self :: CAMERA_INFORMATION (..) => CAMERA_INFORMATION_DATA :: NAME , Self :: WIFI_CONFIG_AP (..) => WIFI_CONFIG_AP_DATA :: NAME , Self :: TERRAIN_REPORT (..) => TERRAIN_REPORT_DATA :: NAME , Self :: GLOBAL_VISION_POSITION_ESTIMATE (..) => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: NAME , Self :: BATTERY_STATUS (..) => BATTERY_STATUS_DATA :: NAME , Self :: OPEN_DRONE_ID_BASIC_ID (..) => OPEN_DRONE_ID_BASIC_ID_DATA :: NAME , Self :: CHANGE_OPERATOR_CONTROL_ACK (..) => CHANGE_OPERATOR_CONTROL_ACK_DATA :: NAME , Self :: HIL_ACTUATOR_CONTROLS (..) => HIL_ACTUATOR_CONTROLS_DATA :: NAME , Self :: REQUEST_EVENT (..) => REQUEST_EVENT_DATA :: NAME , Self :: SYS_STATUS (..) => SYS_STATUS_DATA :: NAME , Self :: POSITION_TARGET_LOCAL_NED (..) => POSITION_TARGET_LOCAL_NED_DATA :: NAME , Self :: COMMAND_LONG (..) => COMMAND_LONG_DATA :: NAME , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (..) => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: NAME , Self :: ATTITUDE_QUATERNION_COV (..) => ATTITUDE_QUATERNION_COV_DATA :: NAME , Self :: MISSION_REQUEST (..) => MISSION_REQUEST_DATA :: NAME , Self :: HIL_CONTROLS (..) => HIL_CONTROLS_DATA :: NAME , Self :: DATA_TRANSMISSION_HANDSHAKE (..) => DATA_TRANSMISSION_HANDSHAKE_DATA :: NAME , Self :: ESTIMATOR_STATUS (..) => ESTIMATOR_STATUS_DATA :: NAME , Self :: SERIAL_CONTROL (..) => SERIAL_CONTROL_DATA :: NAME , Self :: LOGGING_DATA (..) => LOGGING_DATA_DATA :: NAME , Self :: EXTENDED_SYS_STATE (..) => EXTENDED_SYS_STATE_DATA :: NAME , Self :: SET_HOME_POSITION (..) => SET_HOME_POSITION_DATA :: NAME , Self :: MEMORY_VECT (..) => MEMORY_VECT_DATA :: NAME , Self :: RAW_RPM (..) => RAW_RPM_DATA :: NAME , Self :: GLOBAL_POSITION_INT_COV (..) => GLOBAL_POSITION_INT_COV_DATA :: NAME , Self :: GPS2_RTK (..) => GPS2_RTK_DATA :: NAME , Self :: GPS_GLOBAL_ORIGIN (..) => GPS_GLOBAL_ORIGIN_DATA :: NAME , Self :: OPTICAL_FLOW (..) => OPTICAL_FLOW_DATA :: NAME , Self :: TERRAIN_DATA (..) => TERRAIN_DATA_DATA :: NAME , Self :: FLIGHT_INFORMATION (..) => FLIGHT_INFORMATION_DATA :: NAME , Self :: SCALED_PRESSURE2 (..) => SCALED_PRESSURE2_DATA :: NAME , Self :: CAMERA_CAPTURE_STATUS (..) => CAMERA_CAPTURE_STATUS_DATA :: NAME , Self :: SAFETY_ALLOWED_AREA (..) => SAFETY_ALLOWED_AREA_DATA :: NAME , Self :: DATA_STREAM (..) => DATA_STREAM_DATA :: NAME , Self :: ATTITUDE (..) => ATTITUDE_DATA :: NAME , Self :: HIL_STATE_QUATERNION (..) => HIL_STATE_QUATERNION_DATA :: NAME , Self :: LOGGING_DATA_ACKED (..) => LOGGING_DATA_ACKED_DATA :: NAME , Self :: VIDEO_STREAM_INFORMATION (..) => VIDEO_STREAM_INFORMATION_DATA :: NAME , Self :: DISTANCE_SENSOR (..) => DISTANCE_SENSOR_DATA :: NAME , Self :: AUTH_KEY (..) => AUTH_KEY_DATA :: NAME , Self :: RC_CHANNELS_OVERRIDE (..) => RC_CHANNELS_OVERRIDE_DATA :: NAME , Self :: PARAM_EXT_SET (..) => PARAM_EXT_SET_DATA :: NAME , Self :: ADSB_VEHICLE (..) => ADSB_VEHICLE_DATA :: NAME , Self :: SERVO_OUTPUT_RAW (..) => SERVO_OUTPUT_RAW_DATA :: NAME , Self :: SIM_STATE (..) => SIM_STATE_DATA :: NAME , Self :: FENCE_STATUS (..) => FENCE_STATUS_DATA :: NAME , Self :: ATTITUDE_QUATERNION (..) => ATTITUDE_QUATERNION_DATA :: NAME , Self :: ATT_POS_MOCAP (..) => ATT_POS_MOCAP_DATA :: NAME , Self :: MISSION_REQUEST_INT (..) => MISSION_REQUEST_INT_DATA :: NAME , Self :: COMMAND_ACK (..) => COMMAND_ACK_DATA :: NAME , Self :: MISSION_COUNT (..) => MISSION_COUNT_DATA :: NAME , Self :: VISION_POSITION_ESTIMATE (..) => VISION_POSITION_ESTIMATE_DATA :: NAME , Self :: TIMESYNC (..) => TIMESYNC_DATA :: NAME , Self :: GPS_INPUT (..) => GPS_INPUT_DATA :: NAME , Self :: CAMERA_IMAGE_CAPTURED (..) => CAMERA_IMAGE_CAPTURED_DATA :: NAME , Self :: CAMERA_TRACKING_IMAGE_STATUS (..) => CAMERA_TRACKING_IMAGE_STATUS_DATA :: NAME , Self :: GIMBAL_MANAGER_INFORMATION (..) => GIMBAL_MANAGER_INFORMATION_DATA :: NAME , Self :: UAVCAN_NODE_STATUS (..) => UAVCAN_NODE_STATUS_DATA :: NAME , Self :: GPS_INJECT_DATA (..) => GPS_INJECT_DATA_DATA :: NAME , Self :: PARAM_EXT_REQUEST_LIST (..) => PARAM_EXT_REQUEST_LIST_DATA :: NAME , Self :: PARAM_SET (..) => PARAM_SET_DATA :: NAME , Self :: GPS_RTK (..) => GPS_RTK_DATA :: NAME , Self :: COMMAND_CANCEL (..) => COMMAND_CANCEL_DATA :: NAME , Self :: LOG_ENTRY (..) => LOG_ENTRY_DATA :: NAME , Self :: MISSION_ITEM (..) => MISSION_ITEM_DATA :: NAME , Self :: ACTUATOR_CONTROL_TARGET (..) => ACTUATOR_CONTROL_TARGET_DATA :: NAME , Self :: SCALED_IMU3 (..) => SCALED_IMU3_DATA :: NAME , Self :: VFR_HUD (..) => VFR_HUD_DATA :: NAME , Self :: RESOURCE_REQUEST (..) => RESOURCE_REQUEST_DATA :: NAME , Self :: GPS_RTCM_DATA (..) => GPS_RTCM_DATA_DATA :: NAME , Self :: OBSTACLE_DISTANCE (..) => OBSTACLE_DISTANCE_DATA :: NAME , Self :: NAMED_VALUE_FLOAT (..) => NAMED_VALUE_FLOAT_DATA :: NAME , Self :: LOG_REQUEST_LIST (..) => LOG_REQUEST_LIST_DATA :: NAME , Self :: LINK_NODE_STATUS (..) => LINK_NODE_STATUS_DATA :: NAME , Self :: GPS_STATUS (..) => GPS_STATUS_DATA :: NAME , Self :: MANUAL_SETPOINT (..) => MANUAL_SETPOINT_DATA :: NAME , Self :: RC_CHANNELS (..) => RC_CHANNELS_DATA :: NAME , Self :: ALTITUDE (..) => ALTITUDE_DATA :: NAME , Self :: ODOMETRY (..) => ODOMETRY_DATA :: NAME , Self :: WHEEL_DISTANCE (..) => WHEEL_DISTANCE_DATA :: NAME , Self :: HOME_POSITION (..) => HOME_POSITION_DATA :: NAME , Self :: OPEN_DRONE_ID_SELF_ID (..) => OPEN_DRONE_ID_SELF_ID_DATA :: NAME , Self :: OPEN_DRONE_ID_SYSTEM (..) => OPEN_DRONE_ID_SYSTEM_DATA :: NAME , Self :: CAMERA_TRIGGER (..) => CAMERA_TRIGGER_DATA :: NAME , Self :: SET_MODE (..) => SET_MODE_DATA :: NAME , Self :: EFI_STATUS (..) => EFI_STATUS_DATA :: NAME , Self :: PING (..) => PING_DATA :: NAME , Self :: PARAM_VALUE (..) => PARAM_VALUE_DATA :: NAME , Self :: HIL_GPS (..) => HIL_GPS_DATA :: NAME , Self :: GIMBAL_DEVICE_INFORMATION (..) => GIMBAL_DEVICE_INFORMATION_DATA :: NAME , Self :: CAN_FRAME (..) => CAN_FRAME_DATA :: NAME , Self :: OPEN_DRONE_ID_OPERATOR_ID (..) => OPEN_DRONE_ID_OPERATOR_ID_DATA :: NAME , Self :: CELLULAR_CONFIG (..) => CELLULAR_CONFIG_DATA :: NAME , Self :: COMPONENT_METADATA (..) => COMPONENT_METADATA_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_ATTITUDE (..) => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: NAME , Self :: GIMBAL_DEVICE_SET_ATTITUDE (..) => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: NAME , Self :: REQUEST_DATA_STREAM (..) => REQUEST_DATA_STREAM_DATA :: NAME , Self :: SYSTEM_TIME (..) => SYSTEM_TIME_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (..) => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: NAME , Self :: UTM_GLOBAL_POSITION (..) => UTM_GLOBAL_POSITION_DATA :: NAME , Self :: LOG_ERASE (..) => LOG_ERASE_DATA :: NAME , Self :: SET_GPS_GLOBAL_ORIGIN (..) => SET_GPS_GLOBAL_ORIGIN_DATA :: NAME , Self :: CELLULAR_STATUS (..) => CELLULAR_STATUS_DATA :: NAME , Self :: MOUNT_ORIENTATION (..) => MOUNT_ORIENTATION_DATA :: NAME , Self :: CURRENT_EVENT_SEQUENCE (..) => CURRENT_EVENT_SEQUENCE_DATA :: NAME , Self :: MISSION_ACK (..) => MISSION_ACK_DATA :: NAME , Self :: DEBUG_VECT (..) => DEBUG_VECT_DATA :: NAME , } } fn message_id (& self) -> u32 { match self { Self :: RC_CHANNELS_RAW (..) => RC_CHANNELS_RAW_DATA :: ID , Self :: TIME_ESTIMATE_TO_TARGET (..) => TIME_ESTIMATE_TO_TARGET_DATA :: ID , Self :: MESSAGE_INTERVAL (..) => MESSAGE_INTERVAL_DATA :: ID , Self :: RESPONSE_EVENT_ERROR (..) => RESPONSE_EVENT_ERROR_DATA :: ID , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (..) => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID , Self :: MISSION_ITEM_REACHED (..) => MISSION_ITEM_REACHED_DATA :: ID , Self :: TRAJECTORY_REPRESENTATION_BEZIER (..) => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID , Self :: RAW_IMU (..) => RAW_IMU_DATA :: ID , Self :: SET_POSITION_TARGET_GLOBAL_INT (..) => SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID , Self :: POSITION_TARGET_GLOBAL_INT (..) => POSITION_TARGET_GLOBAL_INT_DATA :: ID , Self :: HIL_OPTICAL_FLOW (..) => HIL_OPTICAL_FLOW_DATA :: ID , Self :: LANDING_TARGET (..) => LANDING_TARGET_DATA :: ID , Self :: MAG_CAL_REPORT (..) => MAG_CAL_REPORT_DATA :: ID , Self :: UAVCAN_NODE_INFO (..) => UAVCAN_NODE_INFO_DATA :: ID , Self :: CAMERA_TRACKING_GEO_STATUS (..) => CAMERA_TRACKING_GEO_STATUS_DATA :: ID , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (..) => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID , Self :: ISBD_LINK_STATUS (..) => ISBD_LINK_STATUS_DATA :: ID , Self :: SMART_BATTERY_INFO (..) => SMART_BATTERY_INFO_DATA :: ID , Self :: ACTUATOR_OUTPUT_STATUS (..) => ACTUATOR_OUTPUT_STATUS_DATA :: ID , Self :: COMPONENT_INFORMATION (..) => COMPONENT_INFORMATION_DATA :: ID , Self :: TERRAIN_REQUEST (..) => TERRAIN_REQUEST_DATA :: ID , Self :: STORAGE_INFORMATION (..) => STORAGE_INFORMATION_DATA :: ID , Self :: CAN_FILTER_MODIFY (..) => CAN_FILTER_MODIFY_DATA :: ID , Self :: SCALED_PRESSURE (..) => SCALED_PRESSURE_DATA :: ID , Self :: LOG_DATA (..) => LOG_DATA_DATA :: ID , Self :: HIGH_LATENCY2 (..) => HIGH_LATENCY2_DATA :: ID , Self :: OPEN_DRONE_ID_LOCATION (..) => OPEN_DRONE_ID_LOCATION_DATA :: ID , Self :: OPEN_DRONE_ID_AUTHENTICATION (..) => OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID , Self :: ESC_STATUS (..) => ESC_STATUS_DATA :: ID , Self :: V2_EXTENSION (..) => V2_EXTENSION_DATA :: ID , Self :: ORBIT_EXECUTION_STATUS (..) => ORBIT_EXECUTION_STATUS_DATA :: ID , Self :: HIGH_LATENCY (..) => HIGH_LATENCY_DATA :: ID , Self :: SUPPORTED_TUNES (..) => SUPPORTED_TUNES_DATA :: ID , Self :: AIS_VESSEL (..) => AIS_VESSEL_DATA :: ID , Self :: FILE_TRANSFER_PROTOCOL (..) => FILE_TRANSFER_PROTOCOL_DATA :: ID , Self :: HIGHRES_IMU (..) => HIGHRES_IMU_DATA :: ID , Self :: MISSION_REQUEST_PARTIAL_LIST (..) => MISSION_REQUEST_PARTIAL_LIST_DATA :: ID , Self :: COLLISION (..) => COLLISION_DATA :: ID , Self :: DEBUG (..) => DEBUG_DATA :: ID , Self :: SETUP_SIGNING (..) => SETUP_SIGNING_DATA :: ID , Self :: SCALED_PRESSURE3 (..) => SCALED_PRESSURE3_DATA :: ID , Self :: SCALED_IMU2 (..) => SCALED_IMU2_DATA :: ID , Self :: LOGGING_ACK (..) => LOGGING_ACK_DATA :: ID , Self :: VICON_POSITION_ESTIMATE (..) => VICON_POSITION_ESTIMATE_DATA :: ID , Self :: ESC_INFO (..) => ESC_INFO_DATA :: ID , Self :: PARAM_EXT_VALUE (..) => PARAM_EXT_VALUE_DATA :: ID , Self :: PLAY_TUNE_V2 (..) => PLAY_TUNE_V2_DATA :: ID , Self :: OPEN_DRONE_ID_ARM_STATUS (..) => OPEN_DRONE_ID_ARM_STATUS_DATA :: ID , Self :: GIMBAL_MANAGER_STATUS (..) => GIMBAL_MANAGER_STATUS_DATA :: ID , Self :: MANUAL_CONTROL (..) => MANUAL_CONTROL_DATA :: ID , Self :: PROTOCOL_VERSION (..) => PROTOCOL_VERSION_DATA :: ID , Self :: CHANGE_OPERATOR_CONTROL (..) => CHANGE_OPERATOR_CONTROL_DATA :: ID , Self :: LOCAL_POSITION_NED (..) => LOCAL_POSITION_NED_DATA :: ID , Self :: HIL_SENSOR (..) => HIL_SENSOR_DATA :: ID , Self :: FOLLOW_TARGET (..) => FOLLOW_TARGET_DATA :: ID , Self :: OPEN_DRONE_ID_MESSAGE_PACK (..) => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID , Self :: PARAM_MAP_RC (..) => PARAM_MAP_RC_DATA :: ID , Self :: HYGROMETER_SENSOR (..) => HYGROMETER_SENSOR_DATA :: ID , Self :: STATUSTEXT (..) => STATUSTEXT_DATA :: ID , Self :: HIL_STATE (..) => HIL_STATE_DATA :: ID , Self :: POWER_STATUS (..) => POWER_STATUS_DATA :: ID , Self :: HEARTBEAT (..) => HEARTBEAT_DATA :: ID , Self :: WIND_COV (..) => WIND_COV_DATA :: ID , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (..) => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID , Self :: GLOBAL_POSITION_INT (..) => GLOBAL_POSITION_INT_DATA :: ID , Self :: HIL_RC_INPUTS_RAW (..) => HIL_RC_INPUTS_RAW_DATA :: ID , Self :: GPS2_RAW (..) => GPS2_RAW_DATA :: ID , Self :: GENERATOR_STATUS (..) => GENERATOR_STATUS_DATA :: ID , Self :: VISION_SPEED_ESTIMATE (..) => VISION_SPEED_ESTIMATE_DATA :: ID , Self :: PARAM_REQUEST_READ (..) => PARAM_REQUEST_READ_DATA :: ID , Self :: SET_ATTITUDE_TARGET (..) => SET_ATTITUDE_TARGET_DATA :: ID , Self :: PARAM_EXT_ACK (..) => PARAM_EXT_ACK_DATA :: ID , Self :: GIMBAL_MANAGER_SET_PITCHYAW (..) => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID , Self :: PARAM_EXT_REQUEST_READ (..) => PARAM_EXT_REQUEST_READ_DATA :: ID , Self :: CONTROL_SYSTEM_STATE (..) => CONTROL_SYSTEM_STATE_DATA :: ID , Self :: TERRAIN_CHECK (..) => TERRAIN_CHECK_DATA :: ID , Self :: NAV_CONTROLLER_OUTPUT (..) => NAV_CONTROLLER_OUTPUT_DATA :: ID , Self :: MISSION_CURRENT (..) => MISSION_CURRENT_DATA :: ID , Self :: PARAM_REQUEST_LIST (..) => PARAM_REQUEST_LIST_DATA :: ID , Self :: RADIO_STATUS (..) => RADIO_STATUS_DATA :: ID , Self :: LOG_REQUEST_END (..) => LOG_REQUEST_END_DATA :: ID , Self :: VIBRATION (..) => VIBRATION_DATA :: ID , Self :: AUTOPILOT_VERSION (..) => AUTOPILOT_VERSION_DATA :: ID , Self :: MISSION_SET_CURRENT (..) => MISSION_SET_CURRENT_DATA :: ID , Self :: CAMERA_SETTINGS (..) => CAMERA_SETTINGS_DATA :: ID , Self :: MISSION_WRITE_PARTIAL_LIST (..) => MISSION_WRITE_PARTIAL_LIST_DATA :: ID , Self :: VIDEO_STREAM_STATUS (..) => VIDEO_STREAM_STATUS_DATA :: ID , Self :: EVENT (..) => EVENT_DATA :: ID , Self :: CANFD_FRAME (..) => CANFD_FRAME_DATA :: ID , Self :: WINCH_STATUS (..) => WINCH_STATUS_DATA :: ID , Self :: DEBUG_FLOAT_ARRAY (..) => DEBUG_FLOAT_ARRAY_DATA :: ID , Self :: MISSION_ITEM_INT (..) => MISSION_ITEM_INT_DATA :: ID , Self :: CAMERA_FOV_STATUS (..) => CAMERA_FOV_STATUS_DATA :: ID , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (..) => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID , Self :: ATTITUDE_TARGET (..) => ATTITUDE_TARGET_DATA :: ID , Self :: MISSION_REQUEST_LIST (..) => MISSION_REQUEST_LIST_DATA :: ID , Self :: TUNNEL (..) => TUNNEL_DATA :: ID , Self :: PLAY_TUNE (..) => PLAY_TUNE_DATA :: ID , Self :: SET_POSITION_TARGET_LOCAL_NED (..) => SET_POSITION_TARGET_LOCAL_NED_DATA :: ID , Self :: MISSION_CLEAR_ALL (..) => MISSION_CLEAR_ALL_DATA :: ID , Self :: ONBOARD_COMPUTER_STATUS (..) => ONBOARD_COMPUTER_STATUS_DATA :: ID , Self :: RAW_PRESSURE (..) => RAW_PRESSURE_DATA :: ID , Self :: LOCAL_POSITION_NED_COV (..) => LOCAL_POSITION_NED_COV_DATA :: ID , Self :: SET_ACTUATOR_CONTROL_TARGET (..) => SET_ACTUATOR_CONTROL_TARGET_DATA :: ID , Self :: GPS_RAW_INT (..) => GPS_RAW_INT_DATA :: ID , Self :: SAFETY_SET_ALLOWED_AREA (..) => SAFETY_SET_ALLOWED_AREA_DATA :: ID , Self :: LOG_REQUEST_DATA (..) => LOG_REQUEST_DATA_DATA :: ID , Self :: BUTTON_CHANGE (..) => BUTTON_CHANGE_DATA :: ID , Self :: RC_CHANNELS_SCALED (..) => RC_CHANNELS_SCALED_DATA :: ID , Self :: SCALED_IMU (..) => SCALED_IMU_DATA :: ID , Self :: NAMED_VALUE_INT (..) => NAMED_VALUE_INT_DATA :: ID , Self :: ENCAPSULATED_DATA (..) => ENCAPSULATED_DATA_DATA :: ID , Self :: COMMAND_INT (..) => COMMAND_INT_DATA :: ID , Self :: OPTICAL_FLOW_RAD (..) => OPTICAL_FLOW_RAD_DATA :: ID , Self :: CAMERA_INFORMATION (..) => CAMERA_INFORMATION_DATA :: ID , Self :: WIFI_CONFIG_AP (..) => WIFI_CONFIG_AP_DATA :: ID , Self :: TERRAIN_REPORT (..) => TERRAIN_REPORT_DATA :: ID , Self :: GLOBAL_VISION_POSITION_ESTIMATE (..) => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID , Self :: BATTERY_STATUS (..) => BATTERY_STATUS_DATA :: ID , Self :: OPEN_DRONE_ID_BASIC_ID (..) => OPEN_DRONE_ID_BASIC_ID_DATA :: ID , Self :: CHANGE_OPERATOR_CONTROL_ACK (..) => CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID , Self :: HIL_ACTUATOR_CONTROLS (..) => HIL_ACTUATOR_CONTROLS_DATA :: ID , Self :: REQUEST_EVENT (..) => REQUEST_EVENT_DATA :: ID , Self :: SYS_STATUS (..) => SYS_STATUS_DATA :: ID , Self :: POSITION_TARGET_LOCAL_NED (..) => POSITION_TARGET_LOCAL_NED_DATA :: ID , Self :: COMMAND_LONG (..) => COMMAND_LONG_DATA :: ID , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (..) => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID , Self :: ATTITUDE_QUATERNION_COV (..) => ATTITUDE_QUATERNION_COV_DATA :: ID , Self :: MISSION_REQUEST (..) => MISSION_REQUEST_DATA :: ID , Self :: HIL_CONTROLS (..) => HIL_CONTROLS_DATA :: ID , Self :: DATA_TRANSMISSION_HANDSHAKE (..) => DATA_TRANSMISSION_HANDSHAKE_DATA :: ID , Self :: ESTIMATOR_STATUS (..) => ESTIMATOR_STATUS_DATA :: ID , Self :: SERIAL_CONTROL (..) => SERIAL_CONTROL_DATA :: ID , Self :: LOGGING_DATA (..) => LOGGING_DATA_DATA :: ID , Self :: EXTENDED_SYS_STATE (..) => EXTENDED_SYS_STATE_DATA :: ID , Self :: SET_HOME_POSITION (..) => SET_HOME_POSITION_DATA :: ID , Self :: MEMORY_VECT (..) => MEMORY_VECT_DATA :: ID , Self :: RAW_RPM (..) => RAW_RPM_DATA :: ID , Self :: GLOBAL_POSITION_INT_COV (..) => GLOBAL_POSITION_INT_COV_DATA :: ID , Self :: GPS2_RTK (..) => GPS2_RTK_DATA :: ID , Self :: GPS_GLOBAL_ORIGIN (..) => GPS_GLOBAL_ORIGIN_DATA :: ID , Self :: OPTICAL_FLOW (..) => OPTICAL_FLOW_DATA :: ID , Self :: TERRAIN_DATA (..) => TERRAIN_DATA_DATA :: ID , Self :: FLIGHT_INFORMATION (..) => FLIGHT_INFORMATION_DATA :: ID , Self :: SCALED_PRESSURE2 (..) => SCALED_PRESSURE2_DATA :: ID , Self :: CAMERA_CAPTURE_STATUS (..) => CAMERA_CAPTURE_STATUS_DATA :: ID , Self :: SAFETY_ALLOWED_AREA (..) => SAFETY_ALLOWED_AREA_DATA :: ID , Self :: DATA_STREAM (..) => DATA_STREAM_DATA :: ID , Self :: ATTITUDE (..) => ATTITUDE_DATA :: ID , Self :: HIL_STATE_QUATERNION (..) => HIL_STATE_QUATERNION_DATA :: ID , Self :: LOGGING_DATA_ACKED (..) => LOGGING_DATA_ACKED_DATA :: ID , Self :: VIDEO_STREAM_INFORMATION (..) => VIDEO_STREAM_INFORMATION_DATA :: ID , Self :: DISTANCE_SENSOR (..) => DISTANCE_SENSOR_DATA :: ID , Self :: AUTH_KEY (..) => AUTH_KEY_DATA :: ID , Self :: RC_CHANNELS_OVERRIDE (..) => RC_CHANNELS_OVERRIDE_DATA :: ID , Self :: PARAM_EXT_SET (..) => PARAM_EXT_SET_DATA :: ID , Self :: ADSB_VEHICLE (..) => ADSB_VEHICLE_DATA :: ID , Self :: SERVO_OUTPUT_RAW (..) => SERVO_OUTPUT_RAW_DATA :: ID , Self :: SIM_STATE (..) => SIM_STATE_DATA :: ID , Self :: FENCE_STATUS (..) => FENCE_STATUS_DATA :: ID , Self :: ATTITUDE_QUATERNION (..) => ATTITUDE_QUATERNION_DATA :: ID , Self :: ATT_POS_MOCAP (..) => ATT_POS_MOCAP_DATA :: ID , Self :: MISSION_REQUEST_INT (..) => MISSION_REQUEST_INT_DATA :: ID , Self :: COMMAND_ACK (..) => COMMAND_ACK_DATA :: ID , Self :: MISSION_COUNT (..) => MISSION_COUNT_DATA :: ID , Self :: VISION_POSITION_ESTIMATE (..) => VISION_POSITION_ESTIMATE_DATA :: ID , Self :: TIMESYNC (..) => TIMESYNC_DATA :: ID , Self :: GPS_INPUT (..) => GPS_INPUT_DATA :: ID , Self :: CAMERA_IMAGE_CAPTURED (..) => CAMERA_IMAGE_CAPTURED_DATA :: ID , Self :: CAMERA_TRACKING_IMAGE_STATUS (..) => CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID , Self :: GIMBAL_MANAGER_INFORMATION (..) => GIMBAL_MANAGER_INFORMATION_DATA :: ID , Self :: UAVCAN_NODE_STATUS (..) => UAVCAN_NODE_STATUS_DATA :: ID , Self :: GPS_INJECT_DATA (..) => GPS_INJECT_DATA_DATA :: ID , Self :: PARAM_EXT_REQUEST_LIST (..) => PARAM_EXT_REQUEST_LIST_DATA :: ID , Self :: PARAM_SET (..) => PARAM_SET_DATA :: ID , Self :: GPS_RTK (..) => GPS_RTK_DATA :: ID , Self :: COMMAND_CANCEL (..) => COMMAND_CANCEL_DATA :: ID , Self :: LOG_ENTRY (..) => LOG_ENTRY_DATA :: ID , Self :: MISSION_ITEM (..) => MISSION_ITEM_DATA :: ID , Self :: ACTUATOR_CONTROL_TARGET (..) => ACTUATOR_CONTROL_TARGET_DATA :: ID , Self :: SCALED_IMU3 (..) => SCALED_IMU3_DATA :: ID , Self :: VFR_HUD (..) => VFR_HUD_DATA :: ID , Self :: RESOURCE_REQUEST (..) => RESOURCE_REQUEST_DATA :: ID , Self :: GPS_RTCM_DATA (..) => GPS_RTCM_DATA_DATA :: ID , Self :: OBSTACLE_DISTANCE (..) => OBSTACLE_DISTANCE_DATA :: ID , Self :: NAMED_VALUE_FLOAT (..) => NAMED_VALUE_FLOAT_DATA :: ID , Self :: LOG_REQUEST_LIST (..) => LOG_REQUEST_LIST_DATA :: ID , Self :: LINK_NODE_STATUS (..) => LINK_NODE_STATUS_DATA :: ID , Self :: GPS_STATUS (..) => GPS_STATUS_DATA :: ID , Self :: MANUAL_SETPOINT (..) => MANUAL_SETPOINT_DATA :: ID , Self :: RC_CHANNELS (..) => RC_CHANNELS_DATA :: ID , Self :: ALTITUDE (..) => ALTITUDE_DATA :: ID , Self :: ODOMETRY (..) => ODOMETRY_DATA :: ID , Self :: WHEEL_DISTANCE (..) => WHEEL_DISTANCE_DATA :: ID , Self :: HOME_POSITION (..) => HOME_POSITION_DATA :: ID , Self :: OPEN_DRONE_ID_SELF_ID (..) => OPEN_DRONE_ID_SELF_ID_DATA :: ID , Self :: OPEN_DRONE_ID_SYSTEM (..) => OPEN_DRONE_ID_SYSTEM_DATA :: ID , Self :: CAMERA_TRIGGER (..) => CAMERA_TRIGGER_DATA :: ID , Self :: SET_MODE (..) => SET_MODE_DATA :: ID , Self :: EFI_STATUS (..) => EFI_STATUS_DATA :: ID , Self :: PING (..) => PING_DATA :: ID , Self :: PARAM_VALUE (..) => PARAM_VALUE_DATA :: ID , Self :: HIL_GPS (..) => HIL_GPS_DATA :: ID , Self :: GIMBAL_DEVICE_INFORMATION (..) => GIMBAL_DEVICE_INFORMATION_DATA :: ID , Self :: CAN_FRAME (..) => CAN_FRAME_DATA :: ID , Self :: OPEN_DRONE_ID_OPERATOR_ID (..) => OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID , Self :: CELLULAR_CONFIG (..) => CELLULAR_CONFIG_DATA :: ID , Self :: COMPONENT_METADATA (..) => COMPONENT_METADATA_DATA :: ID , Self :: GIMBAL_MANAGER_SET_ATTITUDE (..) => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID , Self :: GIMBAL_DEVICE_SET_ATTITUDE (..) => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID , Self :: REQUEST_DATA_STREAM (..) => REQUEST_DATA_STREAM_DATA :: ID , Self :: SYSTEM_TIME (..) => SYSTEM_TIME_DATA :: ID , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (..) => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID , Self :: UTM_GLOBAL_POSITION (..) => UTM_GLOBAL_POSITION_DATA :: ID , Self :: LOG_ERASE (..) => LOG_ERASE_DATA :: ID , Self :: SET_GPS_GLOBAL_ORIGIN (..) => SET_GPS_GLOBAL_ORIGIN_DATA :: ID , Self :: CELLULAR_STATUS (..) => CELLULAR_STATUS_DATA :: ID , Self :: MOUNT_ORIENTATION (..) => MOUNT_ORIENTATION_DATA :: ID , Self :: CURRENT_EVENT_SEQUENCE (..) => CURRENT_EVENT_SEQUENCE_DATA :: ID , Self :: MISSION_ACK (..) => MISSION_ACK_DATA :: ID , Self :: DEBUG_VECT (..) => DEBUG_VECT_DATA :: ID , } } fn message_id_from_name (name : & str) -> Result < u32 , & 'static str > { match name { RC_CHANNELS_RAW_DATA :: NAME => Ok (RC_CHANNELS_RAW_DATA :: ID) , TIME_ESTIMATE_TO_TARGET_DATA :: NAME => Ok (TIME_ESTIMATE_TO_TARGET_DATA :: ID) , MESSAGE_INTERVAL_DATA :: NAME => Ok (MESSAGE_INTERVAL_DATA :: ID) , RESPONSE_EVENT_ERROR_DATA :: NAME => Ok (RESPONSE_EVENT_ERROR_DATA :: ID) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: NAME => Ok (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID) , MISSION_ITEM_REACHED_DATA :: NAME => Ok (MISSION_ITEM_REACHED_DATA :: ID) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: NAME => Ok (TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID) , RAW_IMU_DATA :: NAME => Ok (RAW_IMU_DATA :: ID) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: NAME => Ok (SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID) , POSITION_TARGET_GLOBAL_INT_DATA :: NAME => Ok (POSITION_TARGET_GLOBAL_INT_DATA :: ID) , HIL_OPTICAL_FLOW_DATA :: NAME => Ok (HIL_OPTICAL_FLOW_DATA :: ID) , LANDING_TARGET_DATA :: NAME => Ok (LANDING_TARGET_DATA :: ID) , MAG_CAL_REPORT_DATA :: NAME => Ok (MAG_CAL_REPORT_DATA :: ID) , UAVCAN_NODE_INFO_DATA :: NAME => Ok (UAVCAN_NODE_INFO_DATA :: ID) , CAMERA_TRACKING_GEO_STATUS_DATA :: NAME => Ok (CAMERA_TRACKING_GEO_STATUS_DATA :: ID) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: NAME => Ok (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID) , ISBD_LINK_STATUS_DATA :: NAME => Ok (ISBD_LINK_STATUS_DATA :: ID) , SMART_BATTERY_INFO_DATA :: NAME => Ok (SMART_BATTERY_INFO_DATA :: ID) , ACTUATOR_OUTPUT_STATUS_DATA :: NAME => Ok (ACTUATOR_OUTPUT_STATUS_DATA :: ID) , COMPONENT_INFORMATION_DATA :: NAME => Ok (COMPONENT_INFORMATION_DATA :: ID) , TERRAIN_REQUEST_DATA :: NAME => Ok (TERRAIN_REQUEST_DATA :: ID) , STORAGE_INFORMATION_DATA :: NAME => Ok (STORAGE_INFORMATION_DATA :: ID) , CAN_FILTER_MODIFY_DATA :: NAME => Ok (CAN_FILTER_MODIFY_DATA :: ID) , SCALED_PRESSURE_DATA :: NAME => Ok (SCALED_PRESSURE_DATA :: ID) , LOG_DATA_DATA :: NAME => Ok (LOG_DATA_DATA :: ID) , HIGH_LATENCY2_DATA :: NAME => Ok (HIGH_LATENCY2_DATA :: ID) , OPEN_DRONE_ID_LOCATION_DATA :: NAME => Ok (OPEN_DRONE_ID_LOCATION_DATA :: ID) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: NAME => Ok (OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID) , ESC_STATUS_DATA :: NAME => Ok (ESC_STATUS_DATA :: ID) , V2_EXTENSION_DATA :: NAME => Ok (V2_EXTENSION_DATA :: ID) , ORBIT_EXECUTION_STATUS_DATA :: NAME => Ok (ORBIT_EXECUTION_STATUS_DATA :: ID) , HIGH_LATENCY_DATA :: NAME => Ok (HIGH_LATENCY_DATA :: ID) , SUPPORTED_TUNES_DATA :: NAME => Ok (SUPPORTED_TUNES_DATA :: ID) , AIS_VESSEL_DATA :: NAME => Ok (AIS_VESSEL_DATA :: ID) , FILE_TRANSFER_PROTOCOL_DATA :: NAME => Ok (FILE_TRANSFER_PROTOCOL_DATA :: ID) , HIGHRES_IMU_DATA :: NAME => Ok (HIGHRES_IMU_DATA :: ID) , MISSION_REQUEST_PARTIAL_LIST_DATA :: NAME => Ok (MISSION_REQUEST_PARTIAL_LIST_DATA :: ID) , COLLISION_DATA :: NAME => Ok (COLLISION_DATA :: ID) , DEBUG_DATA :: NAME => Ok (DEBUG_DATA :: ID) , SETUP_SIGNING_DATA :: NAME => Ok (SETUP_SIGNING_DATA :: ID) , SCALED_PRESSURE3_DATA :: NAME => Ok (SCALED_PRESSURE3_DATA :: ID) , SCALED_IMU2_DATA :: NAME => Ok (SCALED_IMU2_DATA :: ID) , LOGGING_ACK_DATA :: NAME => Ok (LOGGING_ACK_DATA :: ID) , VICON_POSITION_ESTIMATE_DATA :: NAME => Ok (VICON_POSITION_ESTIMATE_DATA :: ID) , ESC_INFO_DATA :: NAME => Ok (ESC_INFO_DATA :: ID) , PARAM_EXT_VALUE_DATA :: NAME => Ok (PARAM_EXT_VALUE_DATA :: ID) , PLAY_TUNE_V2_DATA :: NAME => Ok (PLAY_TUNE_V2_DATA :: ID) , OPEN_DRONE_ID_ARM_STATUS_DATA :: NAME => Ok (OPEN_DRONE_ID_ARM_STATUS_DATA :: ID) , GIMBAL_MANAGER_STATUS_DATA :: NAME => Ok (GIMBAL_MANAGER_STATUS_DATA :: ID) , MANUAL_CONTROL_DATA :: NAME => Ok (MANUAL_CONTROL_DATA :: ID) , PROTOCOL_VERSION_DATA :: NAME => Ok (PROTOCOL_VERSION_DATA :: ID) , CHANGE_OPERATOR_CONTROL_DATA :: NAME => Ok (CHANGE_OPERATOR_CONTROL_DATA :: ID) , LOCAL_POSITION_NED_DATA :: NAME => Ok (LOCAL_POSITION_NED_DATA :: ID) , HIL_SENSOR_DATA :: NAME => Ok (HIL_SENSOR_DATA :: ID) , FOLLOW_TARGET_DATA :: NAME => Ok (FOLLOW_TARGET_DATA :: ID) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: NAME => Ok (OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID) , PARAM_MAP_RC_DATA :: NAME => Ok (PARAM_MAP_RC_DATA :: ID) , HYGROMETER_SENSOR_DATA :: NAME => Ok (HYGROMETER_SENSOR_DATA :: ID) , STATUSTEXT_DATA :: NAME => Ok (STATUSTEXT_DATA :: ID) , HIL_STATE_DATA :: NAME => Ok (HIL_STATE_DATA :: ID) , POWER_STATUS_DATA :: NAME => Ok (POWER_STATUS_DATA :: ID) , HEARTBEAT_DATA :: NAME => Ok (HEARTBEAT_DATA :: ID) , WIND_COV_DATA :: NAME => Ok (WIND_COV_DATA :: ID) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: NAME => Ok (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID) , GLOBAL_POSITION_INT_DATA :: NAME => Ok (GLOBAL_POSITION_INT_DATA :: ID) , HIL_RC_INPUTS_RAW_DATA :: NAME => Ok (HIL_RC_INPUTS_RAW_DATA :: ID) , GPS2_RAW_DATA :: NAME => Ok (GPS2_RAW_DATA :: ID) , GENERATOR_STATUS_DATA :: NAME => Ok (GENERATOR_STATUS_DATA :: ID) , VISION_SPEED_ESTIMATE_DATA :: NAME => Ok (VISION_SPEED_ESTIMATE_DATA :: ID) , PARAM_REQUEST_READ_DATA :: NAME => Ok (PARAM_REQUEST_READ_DATA :: ID) , SET_ATTITUDE_TARGET_DATA :: NAME => Ok (SET_ATTITUDE_TARGET_DATA :: ID) , PARAM_EXT_ACK_DATA :: NAME => Ok (PARAM_EXT_ACK_DATA :: ID) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID) , PARAM_EXT_REQUEST_READ_DATA :: NAME => Ok (PARAM_EXT_REQUEST_READ_DATA :: ID) , CONTROL_SYSTEM_STATE_DATA :: NAME => Ok (CONTROL_SYSTEM_STATE_DATA :: ID) , TERRAIN_CHECK_DATA :: NAME => Ok (TERRAIN_CHECK_DATA :: ID) , NAV_CONTROLLER_OUTPUT_DATA :: NAME => Ok (NAV_CONTROLLER_OUTPUT_DATA :: ID) , MISSION_CURRENT_DATA :: NAME => Ok (MISSION_CURRENT_DATA :: ID) , PARAM_REQUEST_LIST_DATA :: NAME => Ok (PARAM_REQUEST_LIST_DATA :: ID) , RADIO_STATUS_DATA :: NAME => Ok (RADIO_STATUS_DATA :: ID) , LOG_REQUEST_END_DATA :: NAME => Ok (LOG_REQUEST_END_DATA :: ID) , VIBRATION_DATA :: NAME => Ok (VIBRATION_DATA :: ID) , AUTOPILOT_VERSION_DATA :: NAME => Ok (AUTOPILOT_VERSION_DATA :: ID) , MISSION_SET_CURRENT_DATA :: NAME => Ok (MISSION_SET_CURRENT_DATA :: ID) , CAMERA_SETTINGS_DATA :: NAME => Ok (CAMERA_SETTINGS_DATA :: ID) , MISSION_WRITE_PARTIAL_LIST_DATA :: NAME => Ok (MISSION_WRITE_PARTIAL_LIST_DATA :: ID) , VIDEO_STREAM_STATUS_DATA :: NAME => Ok (VIDEO_STREAM_STATUS_DATA :: ID) , EVENT_DATA :: NAME => Ok (EVENT_DATA :: ID) , CANFD_FRAME_DATA :: NAME => Ok (CANFD_FRAME_DATA :: ID) , WINCH_STATUS_DATA :: NAME => Ok (WINCH_STATUS_DATA :: ID) , DEBUG_FLOAT_ARRAY_DATA :: NAME => Ok (DEBUG_FLOAT_ARRAY_DATA :: ID) , MISSION_ITEM_INT_DATA :: NAME => Ok (MISSION_ITEM_INT_DATA :: ID) , CAMERA_FOV_STATUS_DATA :: NAME => Ok (CAMERA_FOV_STATUS_DATA :: ID) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: NAME => Ok (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID) , ATTITUDE_TARGET_DATA :: NAME => Ok (ATTITUDE_TARGET_DATA :: ID) , MISSION_REQUEST_LIST_DATA :: NAME => Ok (MISSION_REQUEST_LIST_DATA :: ID) , TUNNEL_DATA :: NAME => Ok (TUNNEL_DATA :: ID) , PLAY_TUNE_DATA :: NAME => Ok (PLAY_TUNE_DATA :: ID) , SET_POSITION_TARGET_LOCAL_NED_DATA :: NAME => Ok (SET_POSITION_TARGET_LOCAL_NED_DATA :: ID) , MISSION_CLEAR_ALL_DATA :: NAME => Ok (MISSION_CLEAR_ALL_DATA :: ID) , ONBOARD_COMPUTER_STATUS_DATA :: NAME => Ok (ONBOARD_COMPUTER_STATUS_DATA :: ID) , RAW_PRESSURE_DATA :: NAME => Ok (RAW_PRESSURE_DATA :: ID) , LOCAL_POSITION_NED_COV_DATA :: NAME => Ok (LOCAL_POSITION_NED_COV_DATA :: ID) , SET_ACTUATOR_CONTROL_TARGET_DATA :: NAME => Ok (SET_ACTUATOR_CONTROL_TARGET_DATA :: ID) , GPS_RAW_INT_DATA :: NAME => Ok (GPS_RAW_INT_DATA :: ID) , SAFETY_SET_ALLOWED_AREA_DATA :: NAME => Ok (SAFETY_SET_ALLOWED_AREA_DATA :: ID) , LOG_REQUEST_DATA_DATA :: NAME => Ok (LOG_REQUEST_DATA_DATA :: ID) , BUTTON_CHANGE_DATA :: NAME => Ok (BUTTON_CHANGE_DATA :: ID) , RC_CHANNELS_SCALED_DATA :: NAME => Ok (RC_CHANNELS_SCALED_DATA :: ID) , SCALED_IMU_DATA :: NAME => Ok (SCALED_IMU_DATA :: ID) , NAMED_VALUE_INT_DATA :: NAME => Ok (NAMED_VALUE_INT_DATA :: ID) , ENCAPSULATED_DATA_DATA :: NAME => Ok (ENCAPSULATED_DATA_DATA :: ID) , COMMAND_INT_DATA :: NAME => Ok (COMMAND_INT_DATA :: ID) , OPTICAL_FLOW_RAD_DATA :: NAME => Ok (OPTICAL_FLOW_RAD_DATA :: ID) , CAMERA_INFORMATION_DATA :: NAME => Ok (CAMERA_INFORMATION_DATA :: ID) , WIFI_CONFIG_AP_DATA :: NAME => Ok (WIFI_CONFIG_AP_DATA :: ID) , TERRAIN_REPORT_DATA :: NAME => Ok (TERRAIN_REPORT_DATA :: ID) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: NAME => Ok (GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID) , BATTERY_STATUS_DATA :: NAME => Ok (BATTERY_STATUS_DATA :: ID) , OPEN_DRONE_ID_BASIC_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_BASIC_ID_DATA :: ID) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: NAME => Ok (CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID) , HIL_ACTUATOR_CONTROLS_DATA :: NAME => Ok (HIL_ACTUATOR_CONTROLS_DATA :: ID) , REQUEST_EVENT_DATA :: NAME => Ok (REQUEST_EVENT_DATA :: ID) , SYS_STATUS_DATA :: NAME => Ok (SYS_STATUS_DATA :: ID) , POSITION_TARGET_LOCAL_NED_DATA :: NAME => Ok (POSITION_TARGET_LOCAL_NED_DATA :: ID) , COMMAND_LONG_DATA :: NAME => Ok (COMMAND_LONG_DATA :: ID) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: NAME => Ok (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID) , ATTITUDE_QUATERNION_COV_DATA :: NAME => Ok (ATTITUDE_QUATERNION_COV_DATA :: ID) , MISSION_REQUEST_DATA :: NAME => Ok (MISSION_REQUEST_DATA :: ID) , HIL_CONTROLS_DATA :: NAME => Ok (HIL_CONTROLS_DATA :: ID) , DATA_TRANSMISSION_HANDSHAKE_DATA :: NAME => Ok (DATA_TRANSMISSION_HANDSHAKE_DATA :: ID) , ESTIMATOR_STATUS_DATA :: NAME => Ok (ESTIMATOR_STATUS_DATA :: ID) , SERIAL_CONTROL_DATA :: NAME => Ok (SERIAL_CONTROL_DATA :: ID) , LOGGING_DATA_DATA :: NAME => Ok (LOGGING_DATA_DATA :: ID) , EXTENDED_SYS_STATE_DATA :: NAME => Ok (EXTENDED_SYS_STATE_DATA :: ID) , SET_HOME_POSITION_DATA :: NAME => Ok (SET_HOME_POSITION_DATA :: ID) , MEMORY_VECT_DATA :: NAME => Ok (MEMORY_VECT_DATA :: ID) , RAW_RPM_DATA :: NAME => Ok (RAW_RPM_DATA :: ID) , GLOBAL_POSITION_INT_COV_DATA :: NAME => Ok (GLOBAL_POSITION_INT_COV_DATA :: ID) , GPS2_RTK_DATA :: NAME => Ok (GPS2_RTK_DATA :: ID) , GPS_GLOBAL_ORIGIN_DATA :: NAME => Ok (GPS_GLOBAL_ORIGIN_DATA :: ID) , OPTICAL_FLOW_DATA :: NAME => Ok (OPTICAL_FLOW_DATA :: ID) , TERRAIN_DATA_DATA :: NAME => Ok (TERRAIN_DATA_DATA :: ID) , FLIGHT_INFORMATION_DATA :: NAME => Ok (FLIGHT_INFORMATION_DATA :: ID) , SCALED_PRESSURE2_DATA :: NAME => Ok (SCALED_PRESSURE2_DATA :: ID) , CAMERA_CAPTURE_STATUS_DATA :: NAME => Ok (CAMERA_CAPTURE_STATUS_DATA :: ID) , SAFETY_ALLOWED_AREA_DATA :: NAME => Ok (SAFETY_ALLOWED_AREA_DATA :: ID) , DATA_STREAM_DATA :: NAME => Ok (DATA_STREAM_DATA :: ID) , ATTITUDE_DATA :: NAME => Ok (ATTITUDE_DATA :: ID) , HIL_STATE_QUATERNION_DATA :: NAME => Ok (HIL_STATE_QUATERNION_DATA :: ID) , LOGGING_DATA_ACKED_DATA :: NAME => Ok (LOGGING_DATA_ACKED_DATA :: ID) , VIDEO_STREAM_INFORMATION_DATA :: NAME => Ok (VIDEO_STREAM_INFORMATION_DATA :: ID) , DISTANCE_SENSOR_DATA :: NAME => Ok (DISTANCE_SENSOR_DATA :: ID) , AUTH_KEY_DATA :: NAME => Ok (AUTH_KEY_DATA :: ID) , RC_CHANNELS_OVERRIDE_DATA :: NAME => Ok (RC_CHANNELS_OVERRIDE_DATA :: ID) , PARAM_EXT_SET_DATA :: NAME => Ok (PARAM_EXT_SET_DATA :: ID) , ADSB_VEHICLE_DATA :: NAME => Ok (ADSB_VEHICLE_DATA :: ID) , SERVO_OUTPUT_RAW_DATA :: NAME => Ok (SERVO_OUTPUT_RAW_DATA :: ID) , SIM_STATE_DATA :: NAME => Ok (SIM_STATE_DATA :: ID) , FENCE_STATUS_DATA :: NAME => Ok (FENCE_STATUS_DATA :: ID) , ATTITUDE_QUATERNION_DATA :: NAME => Ok (ATTITUDE_QUATERNION_DATA :: ID) , ATT_POS_MOCAP_DATA :: NAME => Ok (ATT_POS_MOCAP_DATA :: ID) , MISSION_REQUEST_INT_DATA :: NAME => Ok (MISSION_REQUEST_INT_DATA :: ID) , COMMAND_ACK_DATA :: NAME => Ok (COMMAND_ACK_DATA :: ID) , MISSION_COUNT_DATA :: NAME => Ok (MISSION_COUNT_DATA :: ID) , VISION_POSITION_ESTIMATE_DATA :: NAME => Ok (VISION_POSITION_ESTIMATE_DATA :: ID) , TIMESYNC_DATA :: NAME => Ok (TIMESYNC_DATA :: ID) , GPS_INPUT_DATA :: NAME => Ok (GPS_INPUT_DATA :: ID) , CAMERA_IMAGE_CAPTURED_DATA :: NAME => Ok (CAMERA_IMAGE_CAPTURED_DATA :: ID) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: NAME => Ok (CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID) , GIMBAL_MANAGER_INFORMATION_DATA :: NAME => Ok (GIMBAL_MANAGER_INFORMATION_DATA :: ID) , UAVCAN_NODE_STATUS_DATA :: NAME => Ok (UAVCAN_NODE_STATUS_DATA :: ID) , GPS_INJECT_DATA_DATA :: NAME => Ok (GPS_INJECT_DATA_DATA :: ID) , PARAM_EXT_REQUEST_LIST_DATA :: NAME => Ok (PARAM_EXT_REQUEST_LIST_DATA :: ID) , PARAM_SET_DATA :: NAME => Ok (PARAM_SET_DATA :: ID) , GPS_RTK_DATA :: NAME => Ok (GPS_RTK_DATA :: ID) , COMMAND_CANCEL_DATA :: NAME => Ok (COMMAND_CANCEL_DATA :: ID) , LOG_ENTRY_DATA :: NAME => Ok (LOG_ENTRY_DATA :: ID) , MISSION_ITEM_DATA :: NAME => Ok (MISSION_ITEM_DATA :: ID) , ACTUATOR_CONTROL_TARGET_DATA :: NAME => Ok (ACTUATOR_CONTROL_TARGET_DATA :: ID) , SCALED_IMU3_DATA :: NAME => Ok (SCALED_IMU3_DATA :: ID) , VFR_HUD_DATA :: NAME => Ok (VFR_HUD_DATA :: ID) , RESOURCE_REQUEST_DATA :: NAME => Ok (RESOURCE_REQUEST_DATA :: ID) , GPS_RTCM_DATA_DATA :: NAME => Ok (GPS_RTCM_DATA_DATA :: ID) , OBSTACLE_DISTANCE_DATA :: NAME => Ok (OBSTACLE_DISTANCE_DATA :: ID) , NAMED_VALUE_FLOAT_DATA :: NAME => Ok (NAMED_VALUE_FLOAT_DATA :: ID) , LOG_REQUEST_LIST_DATA :: NAME => Ok (LOG_REQUEST_LIST_DATA :: ID) , LINK_NODE_STATUS_DATA :: NAME => Ok (LINK_NODE_STATUS_DATA :: ID) , GPS_STATUS_DATA :: NAME => Ok (GPS_STATUS_DATA :: ID) , MANUAL_SETPOINT_DATA :: NAME => Ok (MANUAL_SETPOINT_DATA :: ID) , RC_CHANNELS_DATA :: NAME => Ok (RC_CHANNELS_DATA :: ID) , ALTITUDE_DATA :: NAME => Ok (ALTITUDE_DATA :: ID) , ODOMETRY_DATA :: NAME => Ok (ODOMETRY_DATA :: ID) , WHEEL_DISTANCE_DATA :: NAME => Ok (WHEEL_DISTANCE_DATA :: ID) , HOME_POSITION_DATA :: NAME => Ok (HOME_POSITION_DATA :: ID) , OPEN_DRONE_ID_SELF_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_SELF_ID_DATA :: ID) , OPEN_DRONE_ID_SYSTEM_DATA :: NAME => Ok (OPEN_DRONE_ID_SYSTEM_DATA :: ID) , CAMERA_TRIGGER_DATA :: NAME => Ok (CAMERA_TRIGGER_DATA :: ID) , SET_MODE_DATA :: NAME => Ok (SET_MODE_DATA :: ID) , EFI_STATUS_DATA :: NAME => Ok (EFI_STATUS_DATA :: ID) , PING_DATA :: NAME => Ok (PING_DATA :: ID) , PARAM_VALUE_DATA :: NAME => Ok (PARAM_VALUE_DATA :: ID) , HIL_GPS_DATA :: NAME => Ok (HIL_GPS_DATA :: ID) , GIMBAL_DEVICE_INFORMATION_DATA :: NAME => Ok (GIMBAL_DEVICE_INFORMATION_DATA :: ID) , CAN_FRAME_DATA :: NAME => Ok (CAN_FRAME_DATA :: ID) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID) , CELLULAR_CONFIG_DATA :: NAME => Ok (CELLULAR_CONFIG_DATA :: ID) , COMPONENT_METADATA_DATA :: NAME => Ok (COMPONENT_METADATA_DATA :: ID) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: NAME => Ok (GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID) , REQUEST_DATA_STREAM_DATA :: NAME => Ok (REQUEST_DATA_STREAM_DATA :: ID) , SYSTEM_TIME_DATA :: NAME => Ok (SYSTEM_TIME_DATA :: ID) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID) , UTM_GLOBAL_POSITION_DATA :: NAME => Ok (UTM_GLOBAL_POSITION_DATA :: ID) , LOG_ERASE_DATA :: NAME => Ok (LOG_ERASE_DATA :: ID) , SET_GPS_GLOBAL_ORIGIN_DATA :: NAME => Ok (SET_GPS_GLOBAL_ORIGIN_DATA :: ID) , CELLULAR_STATUS_DATA :: NAME => Ok (CELLULAR_STATUS_DATA :: ID) , MOUNT_ORIENTATION_DATA :: NAME => Ok (MOUNT_ORIENTATION_DATA :: ID) , CURRENT_EVENT_SEQUENCE_DATA :: NAME => Ok (CURRENT_EVENT_SEQUENCE_DATA :: ID) , MISSION_ACK_DATA :: NAME => Ok (MISSION_ACK_DATA :: ID) , DEBUG_VECT_DATA :: NAME => Ok (DEBUG_VECT_DATA :: ID) , _ => { Err ("Invalid message name.") } } } fn default_message_from_id (id : u32) -> Result < Self , & 'static str > { match id { RC_CHANNELS_RAW_DATA :: ID => Ok (Self :: RC_CHANNELS_RAW (RC_CHANNELS_RAW_DATA :: default ())) , TIME_ESTIMATE_TO_TARGET_DATA :: ID => Ok (Self :: TIME_ESTIMATE_TO_TARGET (TIME_ESTIMATE_TO_TARGET_DATA :: default ())) , MESSAGE_INTERVAL_DATA :: ID => Ok (Self :: MESSAGE_INTERVAL (MESSAGE_INTERVAL_DATA :: default ())) , RESPONSE_EVENT_ERROR_DATA :: ID => Ok (Self :: RESPONSE_EVENT_ERROR (RESPONSE_EVENT_ERROR_DATA :: default ())) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => Ok (Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: default ())) , MISSION_ITEM_REACHED_DATA :: ID => Ok (Self :: MISSION_ITEM_REACHED (MISSION_ITEM_REACHED_DATA :: default ())) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => Ok (Self :: TRAJECTORY_REPRESENTATION_BEZIER (TRAJECTORY_REPRESENTATION_BEZIER_DATA :: default ())) , RAW_IMU_DATA :: ID => Ok (Self :: RAW_IMU (RAW_IMU_DATA :: default ())) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => Ok (Self :: SET_POSITION_TARGET_GLOBAL_INT (SET_POSITION_TARGET_GLOBAL_INT_DATA :: default ())) , POSITION_TARGET_GLOBAL_INT_DATA :: ID => Ok (Self :: POSITION_TARGET_GLOBAL_INT (POSITION_TARGET_GLOBAL_INT_DATA :: default ())) , HIL_OPTICAL_FLOW_DATA :: ID => Ok (Self :: HIL_OPTICAL_FLOW (HIL_OPTICAL_FLOW_DATA :: default ())) , LANDING_TARGET_DATA :: ID => Ok (Self :: LANDING_TARGET (LANDING_TARGET_DATA :: default ())) , MAG_CAL_REPORT_DATA :: ID => Ok (Self :: MAG_CAL_REPORT (MAG_CAL_REPORT_DATA :: default ())) , UAVCAN_NODE_INFO_DATA :: ID => Ok (Self :: UAVCAN_NODE_INFO (UAVCAN_NODE_INFO_DATA :: default ())) , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => Ok (Self :: CAMERA_TRACKING_GEO_STATUS (CAMERA_TRACKING_GEO_STATUS_DATA :: default ())) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: default ())) , ISBD_LINK_STATUS_DATA :: ID => Ok (Self :: ISBD_LINK_STATUS (ISBD_LINK_STATUS_DATA :: default ())) , SMART_BATTERY_INFO_DATA :: ID => Ok (Self :: SMART_BATTERY_INFO (SMART_BATTERY_INFO_DATA :: default ())) , ACTUATOR_OUTPUT_STATUS_DATA :: ID => Ok (Self :: ACTUATOR_OUTPUT_STATUS (ACTUATOR_OUTPUT_STATUS_DATA :: default ())) , COMPONENT_INFORMATION_DATA :: ID => Ok (Self :: COMPONENT_INFORMATION (COMPONENT_INFORMATION_DATA :: default ())) , TERRAIN_REQUEST_DATA :: ID => Ok (Self :: TERRAIN_REQUEST (TERRAIN_REQUEST_DATA :: default ())) , STORAGE_INFORMATION_DATA :: ID => Ok (Self :: STORAGE_INFORMATION (STORAGE_INFORMATION_DATA :: default ())) , CAN_FILTER_MODIFY_DATA :: ID => Ok (Self :: CAN_FILTER_MODIFY (CAN_FILTER_MODIFY_DATA :: default ())) , SCALED_PRESSURE_DATA :: ID => Ok (Self :: SCALED_PRESSURE (SCALED_PRESSURE_DATA :: default ())) , LOG_DATA_DATA :: ID => Ok (Self :: LOG_DATA (LOG_DATA_DATA :: default ())) , HIGH_LATENCY2_DATA :: ID => Ok (Self :: HIGH_LATENCY2 (HIGH_LATENCY2_DATA :: default ())) , OPEN_DRONE_ID_LOCATION_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_LOCATION (OPEN_DRONE_ID_LOCATION_DATA :: default ())) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_AUTHENTICATION (OPEN_DRONE_ID_AUTHENTICATION_DATA :: default ())) , ESC_STATUS_DATA :: ID => Ok (Self :: ESC_STATUS (ESC_STATUS_DATA :: default ())) , V2_EXTENSION_DATA :: ID => Ok (Self :: V2_EXTENSION (V2_EXTENSION_DATA :: default ())) , ORBIT_EXECUTION_STATUS_DATA :: ID => Ok (Self :: ORBIT_EXECUTION_STATUS (ORBIT_EXECUTION_STATUS_DATA :: default ())) , HIGH_LATENCY_DATA :: ID => Ok (Self :: HIGH_LATENCY (HIGH_LATENCY_DATA :: default ())) , SUPPORTED_TUNES_DATA :: ID => Ok (Self :: SUPPORTED_TUNES (SUPPORTED_TUNES_DATA :: default ())) , AIS_VESSEL_DATA :: ID => Ok (Self :: AIS_VESSEL (AIS_VESSEL_DATA :: default ())) , FILE_TRANSFER_PROTOCOL_DATA :: ID => Ok (Self :: FILE_TRANSFER_PROTOCOL (FILE_TRANSFER_PROTOCOL_DATA :: default ())) , HIGHRES_IMU_DATA :: ID => Ok (Self :: HIGHRES_IMU (HIGHRES_IMU_DATA :: default ())) , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => Ok (Self :: MISSION_REQUEST_PARTIAL_LIST (MISSION_REQUEST_PARTIAL_LIST_DATA :: default ())) , COLLISION_DATA :: ID => Ok (Self :: COLLISION (COLLISION_DATA :: default ())) , DEBUG_DATA :: ID => Ok (Self :: DEBUG (DEBUG_DATA :: default ())) , SETUP_SIGNING_DATA :: ID => Ok (Self :: SETUP_SIGNING (SETUP_SIGNING_DATA :: default ())) , SCALED_PRESSURE3_DATA :: ID => Ok (Self :: SCALED_PRESSURE3 (SCALED_PRESSURE3_DATA :: default ())) , SCALED_IMU2_DATA :: ID => Ok (Self :: SCALED_IMU2 (SCALED_IMU2_DATA :: default ())) , LOGGING_ACK_DATA :: ID => Ok (Self :: LOGGING_ACK (LOGGING_ACK_DATA :: default ())) , VICON_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: VICON_POSITION_ESTIMATE (VICON_POSITION_ESTIMATE_DATA :: default ())) , ESC_INFO_DATA :: ID => Ok (Self :: ESC_INFO (ESC_INFO_DATA :: default ())) , PARAM_EXT_VALUE_DATA :: ID => Ok (Self :: PARAM_EXT_VALUE (PARAM_EXT_VALUE_DATA :: default ())) , PLAY_TUNE_V2_DATA :: ID => Ok (Self :: PLAY_TUNE_V2 (PLAY_TUNE_V2_DATA :: default ())) , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_ARM_STATUS (OPEN_DRONE_ID_ARM_STATUS_DATA :: default ())) , GIMBAL_MANAGER_STATUS_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_STATUS (GIMBAL_MANAGER_STATUS_DATA :: default ())) , MANUAL_CONTROL_DATA :: ID => Ok (Self :: MANUAL_CONTROL (MANUAL_CONTROL_DATA :: default ())) , PROTOCOL_VERSION_DATA :: ID => Ok (Self :: PROTOCOL_VERSION (PROTOCOL_VERSION_DATA :: default ())) , CHANGE_OPERATOR_CONTROL_DATA :: ID => Ok (Self :: CHANGE_OPERATOR_CONTROL (CHANGE_OPERATOR_CONTROL_DATA :: default ())) , LOCAL_POSITION_NED_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED (LOCAL_POSITION_NED_DATA :: default ())) , HIL_SENSOR_DATA :: ID => Ok (Self :: HIL_SENSOR (HIL_SENSOR_DATA :: default ())) , FOLLOW_TARGET_DATA :: ID => Ok (Self :: FOLLOW_TARGET (FOLLOW_TARGET_DATA :: default ())) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_MESSAGE_PACK (OPEN_DRONE_ID_MESSAGE_PACK_DATA :: default ())) , PARAM_MAP_RC_DATA :: ID => Ok (Self :: PARAM_MAP_RC (PARAM_MAP_RC_DATA :: default ())) , HYGROMETER_SENSOR_DATA :: ID => Ok (Self :: HYGROMETER_SENSOR (HYGROMETER_SENSOR_DATA :: default ())) , STATUSTEXT_DATA :: ID => Ok (Self :: STATUSTEXT (STATUSTEXT_DATA :: default ())) , HIL_STATE_DATA :: ID => Ok (Self :: HIL_STATE (HIL_STATE_DATA :: default ())) , POWER_STATUS_DATA :: ID => Ok (Self :: POWER_STATUS (POWER_STATUS_DATA :: default ())) , HEARTBEAT_DATA :: ID => Ok (Self :: HEARTBEAT (HEARTBEAT_DATA :: default ())) , WIND_COV_DATA :: ID => Ok (Self :: WIND_COV (WIND_COV_DATA :: default ())) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => Ok (Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: default ())) , GLOBAL_POSITION_INT_DATA :: ID => Ok (Self :: GLOBAL_POSITION_INT (GLOBAL_POSITION_INT_DATA :: default ())) , HIL_RC_INPUTS_RAW_DATA :: ID => Ok (Self :: HIL_RC_INPUTS_RAW (HIL_RC_INPUTS_RAW_DATA :: default ())) , GPS2_RAW_DATA :: ID => Ok (Self :: GPS2_RAW (GPS2_RAW_DATA :: default ())) , GENERATOR_STATUS_DATA :: ID => Ok (Self :: GENERATOR_STATUS (GENERATOR_STATUS_DATA :: default ())) , VISION_SPEED_ESTIMATE_DATA :: ID => Ok (Self :: VISION_SPEED_ESTIMATE (VISION_SPEED_ESTIMATE_DATA :: default ())) , PARAM_REQUEST_READ_DATA :: ID => Ok (Self :: PARAM_REQUEST_READ (PARAM_REQUEST_READ_DATA :: default ())) , SET_ATTITUDE_TARGET_DATA :: ID => Ok (Self :: SET_ATTITUDE_TARGET (SET_ATTITUDE_TARGET_DATA :: default ())) , PARAM_EXT_ACK_DATA :: ID => Ok (Self :: PARAM_EXT_ACK (PARAM_EXT_ACK_DATA :: default ())) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_PITCHYAW (GIMBAL_MANAGER_SET_PITCHYAW_DATA :: default ())) , PARAM_EXT_REQUEST_READ_DATA :: ID => Ok (Self :: PARAM_EXT_REQUEST_READ (PARAM_EXT_REQUEST_READ_DATA :: default ())) , CONTROL_SYSTEM_STATE_DATA :: ID => Ok (Self :: CONTROL_SYSTEM_STATE (CONTROL_SYSTEM_STATE_DATA :: default ())) , TERRAIN_CHECK_DATA :: ID => Ok (Self :: TERRAIN_CHECK (TERRAIN_CHECK_DATA :: default ())) , NAV_CONTROLLER_OUTPUT_DATA :: ID => Ok (Self :: NAV_CONTROLLER_OUTPUT (NAV_CONTROLLER_OUTPUT_DATA :: default ())) , MISSION_CURRENT_DATA :: ID => Ok (Self :: MISSION_CURRENT (MISSION_CURRENT_DATA :: default ())) , PARAM_REQUEST_LIST_DATA :: ID => Ok (Self :: PARAM_REQUEST_LIST (PARAM_REQUEST_LIST_DATA :: default ())) , RADIO_STATUS_DATA :: ID => Ok (Self :: RADIO_STATUS (RADIO_STATUS_DATA :: default ())) , LOG_REQUEST_END_DATA :: ID => Ok (Self :: LOG_REQUEST_END (LOG_REQUEST_END_DATA :: default ())) , VIBRATION_DATA :: ID => Ok (Self :: VIBRATION (VIBRATION_DATA :: default ())) , AUTOPILOT_VERSION_DATA :: ID => Ok (Self :: AUTOPILOT_VERSION (AUTOPILOT_VERSION_DATA :: default ())) , MISSION_SET_CURRENT_DATA :: ID => Ok (Self :: MISSION_SET_CURRENT (MISSION_SET_CURRENT_DATA :: default ())) , CAMERA_SETTINGS_DATA :: ID => Ok (Self :: CAMERA_SETTINGS (CAMERA_SETTINGS_DATA :: default ())) , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => Ok (Self :: MISSION_WRITE_PARTIAL_LIST (MISSION_WRITE_PARTIAL_LIST_DATA :: default ())) , VIDEO_STREAM_STATUS_DATA :: ID => Ok (Self :: VIDEO_STREAM_STATUS (VIDEO_STREAM_STATUS_DATA :: default ())) , EVENT_DATA :: ID => Ok (Self :: EVENT (EVENT_DATA :: default ())) , CANFD_FRAME_DATA :: ID => Ok (Self :: CANFD_FRAME (CANFD_FRAME_DATA :: default ())) , WINCH_STATUS_DATA :: ID => Ok (Self :: WINCH_STATUS (WINCH_STATUS_DATA :: default ())) , DEBUG_FLOAT_ARRAY_DATA :: ID => Ok (Self :: DEBUG_FLOAT_ARRAY (DEBUG_FLOAT_ARRAY_DATA :: default ())) , MISSION_ITEM_INT_DATA :: ID => Ok (Self :: MISSION_ITEM_INT (MISSION_ITEM_INT_DATA :: default ())) , CAMERA_FOV_STATUS_DATA :: ID => Ok (Self :: CAMERA_FOV_STATUS (CAMERA_FOV_STATUS_DATA :: default ())) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: default ())) , ATTITUDE_TARGET_DATA :: ID => Ok (Self :: ATTITUDE_TARGET (ATTITUDE_TARGET_DATA :: default ())) , MISSION_REQUEST_LIST_DATA :: ID => Ok (Self :: MISSION_REQUEST_LIST (MISSION_REQUEST_LIST_DATA :: default ())) , TUNNEL_DATA :: ID => Ok (Self :: TUNNEL (TUNNEL_DATA :: default ())) , PLAY_TUNE_DATA :: ID => Ok (Self :: PLAY_TUNE (PLAY_TUNE_DATA :: default ())) , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => Ok (Self :: SET_POSITION_TARGET_LOCAL_NED (SET_POSITION_TARGET_LOCAL_NED_DATA :: default ())) , MISSION_CLEAR_ALL_DATA :: ID => Ok (Self :: MISSION_CLEAR_ALL (MISSION_CLEAR_ALL_DATA :: default ())) , ONBOARD_COMPUTER_STATUS_DATA :: ID => Ok (Self :: ONBOARD_COMPUTER_STATUS (ONBOARD_COMPUTER_STATUS_DATA :: default ())) , RAW_PRESSURE_DATA :: ID => Ok (Self :: RAW_PRESSURE (RAW_PRESSURE_DATA :: default ())) , LOCAL_POSITION_NED_COV_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED_COV (LOCAL_POSITION_NED_COV_DATA :: default ())) , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => Ok (Self :: SET_ACTUATOR_CONTROL_TARGET (SET_ACTUATOR_CONTROL_TARGET_DATA :: default ())) , GPS_RAW_INT_DATA :: ID => Ok (Self :: GPS_RAW_INT (GPS_RAW_INT_DATA :: default ())) , SAFETY_SET_ALLOWED_AREA_DATA :: ID => Ok (Self :: SAFETY_SET_ALLOWED_AREA (SAFETY_SET_ALLOWED_AREA_DATA :: default ())) , LOG_REQUEST_DATA_DATA :: ID => Ok (Self :: LOG_REQUEST_DATA (LOG_REQUEST_DATA_DATA :: default ())) , BUTTON_CHANGE_DATA :: ID => Ok (Self :: BUTTON_CHANGE (BUTTON_CHANGE_DATA :: default ())) , RC_CHANNELS_SCALED_DATA :: ID => Ok (Self :: RC_CHANNELS_SCALED (RC_CHANNELS_SCALED_DATA :: default ())) , SCALED_IMU_DATA :: ID => Ok (Self :: SCALED_IMU (SCALED_IMU_DATA :: default ())) , NAMED_VALUE_INT_DATA :: ID => Ok (Self :: NAMED_VALUE_INT (NAMED_VALUE_INT_DATA :: default ())) , ENCAPSULATED_DATA_DATA :: ID => Ok (Self :: ENCAPSULATED_DATA (ENCAPSULATED_DATA_DATA :: default ())) , COMMAND_INT_DATA :: ID => Ok (Self :: COMMAND_INT (COMMAND_INT_DATA :: default ())) , OPTICAL_FLOW_RAD_DATA :: ID => Ok (Self :: OPTICAL_FLOW_RAD (OPTICAL_FLOW_RAD_DATA :: default ())) , CAMERA_INFORMATION_DATA :: ID => Ok (Self :: CAMERA_INFORMATION (CAMERA_INFORMATION_DATA :: default ())) , WIFI_CONFIG_AP_DATA :: ID => Ok (Self :: WIFI_CONFIG_AP (WIFI_CONFIG_AP_DATA :: default ())) , TERRAIN_REPORT_DATA :: ID => Ok (Self :: TERRAIN_REPORT (TERRAIN_REPORT_DATA :: default ())) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: GLOBAL_VISION_POSITION_ESTIMATE (GLOBAL_VISION_POSITION_ESTIMATE_DATA :: default ())) , BATTERY_STATUS_DATA :: ID => Ok (Self :: BATTERY_STATUS (BATTERY_STATUS_DATA :: default ())) , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_BASIC_ID (OPEN_DRONE_ID_BASIC_ID_DATA :: default ())) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => Ok (Self :: CHANGE_OPERATOR_CONTROL_ACK (CHANGE_OPERATOR_CONTROL_ACK_DATA :: default ())) , HIL_ACTUATOR_CONTROLS_DATA :: ID => Ok (Self :: HIL_ACTUATOR_CONTROLS (HIL_ACTUATOR_CONTROLS_DATA :: default ())) , REQUEST_EVENT_DATA :: ID => Ok (Self :: REQUEST_EVENT (REQUEST_EVENT_DATA :: default ())) , SYS_STATUS_DATA :: ID => Ok (Self :: SYS_STATUS (SYS_STATUS_DATA :: default ())) , POSITION_TARGET_LOCAL_NED_DATA :: ID => Ok (Self :: POSITION_TARGET_LOCAL_NED (POSITION_TARGET_LOCAL_NED_DATA :: default ())) , COMMAND_LONG_DATA :: ID => Ok (Self :: COMMAND_LONG (COMMAND_LONG_DATA :: default ())) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: default ())) , ATTITUDE_QUATERNION_COV_DATA :: ID => Ok (Self :: ATTITUDE_QUATERNION_COV (ATTITUDE_QUATERNION_COV_DATA :: default ())) , MISSION_REQUEST_DATA :: ID => Ok (Self :: MISSION_REQUEST (MISSION_REQUEST_DATA :: default ())) , HIL_CONTROLS_DATA :: ID => Ok (Self :: HIL_CONTROLS (HIL_CONTROLS_DATA :: default ())) , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => Ok (Self :: DATA_TRANSMISSION_HANDSHAKE (DATA_TRANSMISSION_HANDSHAKE_DATA :: default ())) , ESTIMATOR_STATUS_DATA :: ID => Ok (Self :: ESTIMATOR_STATUS (ESTIMATOR_STATUS_DATA :: default ())) , SERIAL_CONTROL_DATA :: ID => Ok (Self :: SERIAL_CONTROL (SERIAL_CONTROL_DATA :: default ())) , LOGGING_DATA_DATA :: ID => Ok (Self :: LOGGING_DATA (LOGGING_DATA_DATA :: default ())) , EXTENDED_SYS_STATE_DATA :: ID => Ok (Self :: EXTENDED_SYS_STATE (EXTENDED_SYS_STATE_DATA :: default ())) , SET_HOME_POSITION_DATA :: ID => Ok (Self :: SET_HOME_POSITION (SET_HOME_POSITION_DATA :: default ())) , MEMORY_VECT_DATA :: ID => Ok (Self :: MEMORY_VECT (MEMORY_VECT_DATA :: default ())) , RAW_RPM_DATA :: ID => Ok (Self :: RAW_RPM (RAW_RPM_DATA :: default ())) , GLOBAL_POSITION_INT_COV_DATA :: ID => Ok (Self :: GLOBAL_POSITION_INT_COV (GLOBAL_POSITION_INT_COV_DATA :: default ())) , GPS2_RTK_DATA :: ID => Ok (Self :: GPS2_RTK (GPS2_RTK_DATA :: default ())) , GPS_GLOBAL_ORIGIN_DATA :: ID => Ok (Self :: GPS_GLOBAL_ORIGIN (GPS_GLOBAL_ORIGIN_DATA :: default ())) , OPTICAL_FLOW_DATA :: ID => Ok (Self :: OPTICAL_FLOW (OPTICAL_FLOW_DATA :: default ())) , TERRAIN_DATA_DATA :: ID => Ok (Self :: TERRAIN_DATA (TERRAIN_DATA_DATA :: default ())) , FLIGHT_INFORMATION_DATA :: ID => Ok (Self :: FLIGHT_INFORMATION (FLIGHT_INFORMATION_DATA :: default ())) , SCALED_PRESSURE2_DATA :: ID => Ok (Self :: SCALED_PRESSURE2 (SCALED_PRESSURE2_DATA :: default ())) , CAMERA_CAPTURE_STATUS_DATA :: ID => Ok (Self :: CAMERA_CAPTURE_STATUS (CAMERA_CAPTURE_STATUS_DATA :: default ())) , SAFETY_ALLOWED_AREA_DATA :: ID => Ok (Self :: SAFETY_ALLOWED_AREA (SAFETY_ALLOWED_AREA_DATA :: default ())) , DATA_STREAM_DATA :: ID => Ok (Self :: DATA_STREAM (DATA_STREAM_DATA :: default ())) , ATTITUDE_DATA :: ID => Ok (Self :: ATTITUDE (ATTITUDE_DATA :: default ())) , HIL_STATE_QUATERNION_DATA :: ID => Ok (Self :: HIL_STATE_QUATERNION (HIL_STATE_QUATERNION_DATA :: default ())) , LOGGING_DATA_ACKED_DATA :: ID => Ok (Self :: LOGGING_DATA_ACKED (LOGGING_DATA_ACKED_DATA :: default ())) , VIDEO_STREAM_INFORMATION_DATA :: ID => Ok (Self :: VIDEO_STREAM_INFORMATION (VIDEO_STREAM_INFORMATION_DATA :: default ())) , DISTANCE_SENSOR_DATA :: ID => Ok (Self :: DISTANCE_SENSOR (DISTANCE_SENSOR_DATA :: default ())) , AUTH_KEY_DATA :: ID => Ok (Self :: AUTH_KEY (AUTH_KEY_DATA :: default ())) , RC_CHANNELS_OVERRIDE_DATA :: ID => Ok (Self :: RC_CHANNELS_OVERRIDE (RC_CHANNELS_OVERRIDE_DATA :: default ())) , PARAM_EXT_SET_DATA :: ID => Ok (Self :: PARAM_EXT_SET (PARAM_EXT_SET_DATA :: default ())) , ADSB_VEHICLE_DATA :: ID => Ok (Self :: ADSB_VEHICLE (ADSB_VEHICLE_DATA :: default ())) , SERVO_OUTPUT_RAW_DATA :: ID => Ok (Self :: SERVO_OUTPUT_RAW (SERVO_OUTPUT_RAW_DATA :: default ())) , SIM_STATE_DATA :: ID => Ok (Self :: SIM_STATE (SIM_STATE_DATA :: default ())) , FENCE_STATUS_DATA :: ID => Ok (Self :: FENCE_STATUS (FENCE_STATUS_DATA :: default ())) , ATTITUDE_QUATERNION_DATA :: ID => Ok (Self :: ATTITUDE_QUATERNION (ATTITUDE_QUATERNION_DATA :: default ())) , ATT_POS_MOCAP_DATA :: ID => Ok (Self :: ATT_POS_MOCAP (ATT_POS_MOCAP_DATA :: default ())) , MISSION_REQUEST_INT_DATA :: ID => Ok (Self :: MISSION_REQUEST_INT (MISSION_REQUEST_INT_DATA :: default ())) , COMMAND_ACK_DATA :: ID => Ok (Self :: COMMAND_ACK (COMMAND_ACK_DATA :: default ())) , MISSION_COUNT_DATA :: ID => Ok (Self :: MISSION_COUNT (MISSION_COUNT_DATA :: default ())) , VISION_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: VISION_POSITION_ESTIMATE (VISION_POSITION_ESTIMATE_DATA :: default ())) , TIMESYNC_DATA :: ID => Ok (Self :: TIMESYNC (TIMESYNC_DATA :: default ())) , GPS_INPUT_DATA :: ID => Ok (Self :: GPS_INPUT (GPS_INPUT_DATA :: default ())) , CAMERA_IMAGE_CAPTURED_DATA :: ID => Ok (Self :: CAMERA_IMAGE_CAPTURED (CAMERA_IMAGE_CAPTURED_DATA :: default ())) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => Ok (Self :: CAMERA_TRACKING_IMAGE_STATUS (CAMERA_TRACKING_IMAGE_STATUS_DATA :: default ())) , GIMBAL_MANAGER_INFORMATION_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_INFORMATION (GIMBAL_MANAGER_INFORMATION_DATA :: default ())) , UAVCAN_NODE_STATUS_DATA :: ID => Ok (Self :: UAVCAN_NODE_STATUS (UAVCAN_NODE_STATUS_DATA :: default ())) , GPS_INJECT_DATA_DATA :: ID => Ok (Self :: GPS_INJECT_DATA (GPS_INJECT_DATA_DATA :: default ())) , PARAM_EXT_REQUEST_LIST_DATA :: ID => Ok (Self :: PARAM_EXT_REQUEST_LIST (PARAM_EXT_REQUEST_LIST_DATA :: default ())) , PARAM_SET_DATA :: ID => Ok (Self :: PARAM_SET (PARAM_SET_DATA :: default ())) , GPS_RTK_DATA :: ID => Ok (Self :: GPS_RTK (GPS_RTK_DATA :: default ())) , COMMAND_CANCEL_DATA :: ID => Ok (Self :: COMMAND_CANCEL (COMMAND_CANCEL_DATA :: default ())) , LOG_ENTRY_DATA :: ID => Ok (Self :: LOG_ENTRY (LOG_ENTRY_DATA :: default ())) , MISSION_ITEM_DATA :: ID => Ok (Self :: MISSION_ITEM (MISSION_ITEM_DATA :: default ())) , ACTUATOR_CONTROL_TARGET_DATA :: ID => Ok (Self :: ACTUATOR_CONTROL_TARGET (ACTUATOR_CONTROL_TARGET_DATA :: default ())) , SCALED_IMU3_DATA :: ID => Ok (Self :: SCALED_IMU3 (SCALED_IMU3_DATA :: default ())) , VFR_HUD_DATA :: ID => Ok (Self :: VFR_HUD (VFR_HUD_DATA :: default ())) , RESOURCE_REQUEST_DATA :: ID => Ok (Self :: RESOURCE_REQUEST (RESOURCE_REQUEST_DATA :: default ())) , GPS_RTCM_DATA_DATA :: ID => Ok (Self :: GPS_RTCM_DATA (GPS_RTCM_DATA_DATA :: default ())) , OBSTACLE_DISTANCE_DATA :: ID => Ok (Self :: OBSTACLE_DISTANCE (OBSTACLE_DISTANCE_DATA :: default ())) , NAMED_VALUE_FLOAT_DATA :: ID => Ok (Self :: NAMED_VALUE_FLOAT (NAMED_VALUE_FLOAT_DATA :: default ())) , LOG_REQUEST_LIST_DATA :: ID => Ok (Self :: LOG_REQUEST_LIST (LOG_REQUEST_LIST_DATA :: default ())) , LINK_NODE_STATUS_DATA :: ID => Ok (Self :: LINK_NODE_STATUS (LINK_NODE_STATUS_DATA :: default ())) , GPS_STATUS_DATA :: ID => Ok (Self :: GPS_STATUS (GPS_STATUS_DATA :: default ())) , MANUAL_SETPOINT_DATA :: ID => Ok (Self :: MANUAL_SETPOINT (MANUAL_SETPOINT_DATA :: default ())) , RC_CHANNELS_DATA :: ID => Ok (Self :: RC_CHANNELS (RC_CHANNELS_DATA :: default ())) , ALTITUDE_DATA :: ID => Ok (Self :: ALTITUDE (ALTITUDE_DATA :: default ())) , ODOMETRY_DATA :: ID => Ok (Self :: ODOMETRY (ODOMETRY_DATA :: default ())) , WHEEL_DISTANCE_DATA :: ID => Ok (Self :: WHEEL_DISTANCE (WHEEL_DISTANCE_DATA :: default ())) , HOME_POSITION_DATA :: ID => Ok (Self :: HOME_POSITION (HOME_POSITION_DATA :: default ())) , OPEN_DRONE_ID_SELF_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SELF_ID (OPEN_DRONE_ID_SELF_ID_DATA :: default ())) , OPEN_DRONE_ID_SYSTEM_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SYSTEM (OPEN_DRONE_ID_SYSTEM_DATA :: default ())) , CAMERA_TRIGGER_DATA :: ID => Ok (Self :: CAMERA_TRIGGER (CAMERA_TRIGGER_DATA :: default ())) , SET_MODE_DATA :: ID => Ok (Self :: SET_MODE (SET_MODE_DATA :: default ())) , EFI_STATUS_DATA :: ID => Ok (Self :: EFI_STATUS (EFI_STATUS_DATA :: default ())) , PING_DATA :: ID => Ok (Self :: PING (PING_DATA :: default ())) , PARAM_VALUE_DATA :: ID => Ok (Self :: PARAM_VALUE (PARAM_VALUE_DATA :: default ())) , HIL_GPS_DATA :: ID => Ok (Self :: HIL_GPS (HIL_GPS_DATA :: default ())) , GIMBAL_DEVICE_INFORMATION_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_INFORMATION (GIMBAL_DEVICE_INFORMATION_DATA :: default ())) , CAN_FRAME_DATA :: ID => Ok (Self :: CAN_FRAME (CAN_FRAME_DATA :: default ())) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_OPERATOR_ID (OPEN_DRONE_ID_OPERATOR_ID_DATA :: default ())) , CELLULAR_CONFIG_DATA :: ID => Ok (Self :: CELLULAR_CONFIG (CELLULAR_CONFIG_DATA :: default ())) , COMPONENT_METADATA_DATA :: ID => Ok (Self :: COMPONENT_METADATA (COMPONENT_METADATA_DATA :: default ())) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_ATTITUDE (GIMBAL_MANAGER_SET_ATTITUDE_DATA :: default ())) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_SET_ATTITUDE (GIMBAL_DEVICE_SET_ATTITUDE_DATA :: default ())) , REQUEST_DATA_STREAM_DATA :: ID => Ok (Self :: REQUEST_DATA_STREAM (REQUEST_DATA_STREAM_DATA :: default ())) , SYSTEM_TIME_DATA :: ID => Ok (Self :: SYSTEM_TIME (SYSTEM_TIME_DATA :: default ())) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: default ())) , UTM_GLOBAL_POSITION_DATA :: ID => Ok (Self :: UTM_GLOBAL_POSITION (UTM_GLOBAL_POSITION_DATA :: default ())) , LOG_ERASE_DATA :: ID => Ok (Self :: LOG_ERASE (LOG_ERASE_DATA :: default ())) , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => Ok (Self :: SET_GPS_GLOBAL_ORIGIN (SET_GPS_GLOBAL_ORIGIN_DATA :: default ())) , CELLULAR_STATUS_DATA :: ID => Ok (Self :: CELLULAR_STATUS (CELLULAR_STATUS_DATA :: default ())) , MOUNT_ORIENTATION_DATA :: ID => Ok (Self :: MOUNT_ORIENTATION (MOUNT_ORIENTATION_DATA :: default ())) , CURRENT_EVENT_SEQUENCE_DATA :: ID => Ok (Self :: CURRENT_EVENT_SEQUENCE (CURRENT_EVENT_SEQUENCE_DATA :: default ())) , MISSION_ACK_DATA :: ID => Ok (Self :: MISSION_ACK (MISSION_ACK_DATA :: default ())) , DEBUG_VECT_DATA :: ID => Ok (Self :: DEBUG_VECT (DEBUG_VECT_DATA :: default ())) , _ => { Err ("Invalid message id.") } } } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { match self { Self :: RC_CHANNELS_RAW (body) => body . ser (version , bytes) , Self :: TIME_ESTIMATE_TO_TARGET (body) => body . ser (version , bytes) , Self :: MESSAGE_INTERVAL (body) => body . ser (version , bytes) , Self :: RESPONSE_EVENT_ERROR (body) => body . ser (version , bytes) , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (body) => body . ser (version , bytes) , Self :: MISSION_ITEM_REACHED (body) => body . ser (version , bytes) , Self :: TRAJECTORY_REPRESENTATION_BEZIER (body) => body . ser (version , bytes) , Self :: RAW_IMU (body) => body . ser (version , bytes) , Self :: SET_POSITION_TARGET_GLOBAL_INT (body) => body . ser (version , bytes) , Self :: POSITION_TARGET_GLOBAL_INT (body) => body . ser (version , bytes) , Self :: HIL_OPTICAL_FLOW (body) => body . ser (version , bytes) , Self :: LANDING_TARGET (body) => body . ser (version , bytes) , Self :: MAG_CAL_REPORT (body) => body . ser (version , bytes) , Self :: UAVCAN_NODE_INFO (body) => body . ser (version , bytes) , Self :: CAMERA_TRACKING_GEO_STATUS (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (body) => body . ser (version , bytes) , Self :: ISBD_LINK_STATUS (body) => body . ser (version , bytes) , Self :: SMART_BATTERY_INFO (body) => body . ser (version , bytes) , Self :: ACTUATOR_OUTPUT_STATUS (body) => body . ser (version , bytes) , Self :: COMPONENT_INFORMATION (body) => body . ser (version , bytes) , Self :: TERRAIN_REQUEST (body) => body . ser (version , bytes) , Self :: STORAGE_INFORMATION (body) => body . ser (version , bytes) , Self :: CAN_FILTER_MODIFY (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE (body) => body . ser (version , bytes) , Self :: LOG_DATA (body) => body . ser (version , bytes) , Self :: HIGH_LATENCY2 (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_LOCATION (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_AUTHENTICATION (body) => body . ser (version , bytes) , Self :: ESC_STATUS (body) => body . ser (version , bytes) , Self :: V2_EXTENSION (body) => body . ser (version , bytes) , Self :: ORBIT_EXECUTION_STATUS (body) => body . ser (version , bytes) , Self :: HIGH_LATENCY (body) => body . ser (version , bytes) , Self :: SUPPORTED_TUNES (body) => body . ser (version , bytes) , Self :: AIS_VESSEL (body) => body . ser (version , bytes) , Self :: FILE_TRANSFER_PROTOCOL (body) => body . ser (version , bytes) , Self :: HIGHRES_IMU (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_PARTIAL_LIST (body) => body . ser (version , bytes) , Self :: COLLISION (body) => body . ser (version , bytes) , Self :: DEBUG (body) => body . ser (version , bytes) , Self :: SETUP_SIGNING (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE3 (body) => body . ser (version , bytes) , Self :: SCALED_IMU2 (body) => body . ser (version , bytes) , Self :: LOGGING_ACK (body) => body . ser (version , bytes) , Self :: VICON_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: ESC_INFO (body) => body . ser (version , bytes) , Self :: PARAM_EXT_VALUE (body) => body . ser (version , bytes) , Self :: PLAY_TUNE_V2 (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_ARM_STATUS (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_STATUS (body) => body . ser (version , bytes) , Self :: MANUAL_CONTROL (body) => body . ser (version , bytes) , Self :: PROTOCOL_VERSION (body) => body . ser (version , bytes) , Self :: CHANGE_OPERATOR_CONTROL (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED (body) => body . ser (version , bytes) , Self :: HIL_SENSOR (body) => body . ser (version , bytes) , Self :: FOLLOW_TARGET (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_MESSAGE_PACK (body) => body . ser (version , bytes) , Self :: PARAM_MAP_RC (body) => body . ser (version , bytes) , Self :: HYGROMETER_SENSOR (body) => body . ser (version , bytes) , Self :: STATUSTEXT (body) => body . ser (version , bytes) , Self :: HIL_STATE (body) => body . ser (version , bytes) , Self :: POWER_STATUS (body) => body . ser (version , bytes) , Self :: HEARTBEAT (body) => body . ser (version , bytes) , Self :: WIND_COV (body) => body . ser (version , bytes) , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (body) => body . ser (version , bytes) , Self :: GLOBAL_POSITION_INT (body) => body . ser (version , bytes) , Self :: HIL_RC_INPUTS_RAW (body) => body . ser (version , bytes) , Self :: GPS2_RAW (body) => body . ser (version , bytes) , Self :: GENERATOR_STATUS (body) => body . ser (version , bytes) , Self :: VISION_SPEED_ESTIMATE (body) => body . ser (version , bytes) , Self :: PARAM_REQUEST_READ (body) => body . ser (version , bytes) , Self :: SET_ATTITUDE_TARGET (body) => body . ser (version , bytes) , Self :: PARAM_EXT_ACK (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_PITCHYAW (body) => body . ser (version , bytes) , Self :: PARAM_EXT_REQUEST_READ (body) => body . ser (version , bytes) , Self :: CONTROL_SYSTEM_STATE (body) => body . ser (version , bytes) , Self :: TERRAIN_CHECK (body) => body . ser (version , bytes) , Self :: NAV_CONTROLLER_OUTPUT (body) => body . ser (version , bytes) , Self :: MISSION_CURRENT (body) => body . ser (version , bytes) , Self :: PARAM_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: RADIO_STATUS (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_END (body) => body . ser (version , bytes) , Self :: VIBRATION (body) => body . ser (version , bytes) , Self :: AUTOPILOT_VERSION (body) => body . ser (version , bytes) , Self :: MISSION_SET_CURRENT (body) => body . ser (version , bytes) , Self :: CAMERA_SETTINGS (body) => body . ser (version , bytes) , Self :: MISSION_WRITE_PARTIAL_LIST (body) => body . ser (version , bytes) , Self :: VIDEO_STREAM_STATUS (body) => body . ser (version , bytes) , Self :: EVENT (body) => body . ser (version , bytes) , Self :: CANFD_FRAME (body) => body . ser (version , bytes) , Self :: WINCH_STATUS (body) => body . ser (version , bytes) , Self :: DEBUG_FLOAT_ARRAY (body) => body . ser (version , bytes) , Self :: MISSION_ITEM_INT (body) => body . ser (version , bytes) , Self :: CAMERA_FOV_STATUS (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (body) => body . ser (version , bytes) , Self :: ATTITUDE_TARGET (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: TUNNEL (body) => body . ser (version , bytes) , Self :: PLAY_TUNE (body) => body . ser (version , bytes) , Self :: SET_POSITION_TARGET_LOCAL_NED (body) => body . ser (version , bytes) , Self :: MISSION_CLEAR_ALL (body) => body . ser (version , bytes) , Self :: ONBOARD_COMPUTER_STATUS (body) => body . ser (version , bytes) , Self :: RAW_PRESSURE (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED_COV (body) => body . ser (version , bytes) , Self :: SET_ACTUATOR_CONTROL_TARGET (body) => body . ser (version , bytes) , Self :: GPS_RAW_INT (body) => body . ser (version , bytes) , Self :: SAFETY_SET_ALLOWED_AREA (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_DATA (body) => body . ser (version , bytes) , Self :: BUTTON_CHANGE (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_SCALED (body) => body . ser (version , bytes) , Self :: SCALED_IMU (body) => body . ser (version , bytes) , Self :: NAMED_VALUE_INT (body) => body . ser (version , bytes) , Self :: ENCAPSULATED_DATA (body) => body . ser (version , bytes) , Self :: COMMAND_INT (body) => body . ser (version , bytes) , Self :: OPTICAL_FLOW_RAD (body) => body . ser (version , bytes) , Self :: CAMERA_INFORMATION (body) => body . ser (version , bytes) , Self :: WIFI_CONFIG_AP (body) => body . ser (version , bytes) , Self :: TERRAIN_REPORT (body) => body . ser (version , bytes) , Self :: GLOBAL_VISION_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: BATTERY_STATUS (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_BASIC_ID (body) => body . ser (version , bytes) , Self :: CHANGE_OPERATOR_CONTROL_ACK (body) => body . ser (version , bytes) , Self :: HIL_ACTUATOR_CONTROLS (body) => body . ser (version , bytes) , Self :: REQUEST_EVENT (body) => body . ser (version , bytes) , Self :: SYS_STATUS (body) => body . ser (version , bytes) , Self :: POSITION_TARGET_LOCAL_NED (body) => body . ser (version , bytes) , Self :: COMMAND_LONG (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (body) => body . ser (version , bytes) , Self :: ATTITUDE_QUATERNION_COV (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST (body) => body . ser (version , bytes) , Self :: HIL_CONTROLS (body) => body . ser (version , bytes) , Self :: DATA_TRANSMISSION_HANDSHAKE (body) => body . ser (version , bytes) , Self :: ESTIMATOR_STATUS (body) => body . ser (version , bytes) , Self :: SERIAL_CONTROL (body) => body . ser (version , bytes) , Self :: LOGGING_DATA (body) => body . ser (version , bytes) , Self :: EXTENDED_SYS_STATE (body) => body . ser (version , bytes) , Self :: SET_HOME_POSITION (body) => body . ser (version , bytes) , Self :: MEMORY_VECT (body) => body . ser (version , bytes) , Self :: RAW_RPM (body) => body . ser (version , bytes) , Self :: GLOBAL_POSITION_INT_COV (body) => body . ser (version , bytes) , Self :: GPS2_RTK (body) => body . ser (version , bytes) , Self :: GPS_GLOBAL_ORIGIN (body) => body . ser (version , bytes) , Self :: OPTICAL_FLOW (body) => body . ser (version , bytes) , Self :: TERRAIN_DATA (body) => body . ser (version , bytes) , Self :: FLIGHT_INFORMATION (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE2 (body) => body . ser (version , bytes) , Self :: CAMERA_CAPTURE_STATUS (body) => body . ser (version , bytes) , Self :: SAFETY_ALLOWED_AREA (body) => body . ser (version , bytes) , Self :: DATA_STREAM (body) => body . ser (version , bytes) , Self :: ATTITUDE (body) => body . ser (version , bytes) , Self :: HIL_STATE_QUATERNION (body) => body . ser (version , bytes) , Self :: LOGGING_DATA_ACKED (body) => body . ser (version , bytes) , Self :: VIDEO_STREAM_INFORMATION (body) => body . ser (version , bytes) , Self :: DISTANCE_SENSOR (body) => body . ser (version , bytes) , Self :: AUTH_KEY (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_OVERRIDE (body) => body . ser (version , bytes) , Self :: PARAM_EXT_SET (body) => body . ser (version , bytes) , Self :: ADSB_VEHICLE (body) => body . ser (version , bytes) , Self :: SERVO_OUTPUT_RAW (body) => body . ser (version , bytes) , Self :: SIM_STATE (body) => body . ser (version , bytes) , Self :: FENCE_STATUS (body) => body . ser (version , bytes) , Self :: ATTITUDE_QUATERNION (body) => body . ser (version , bytes) , Self :: ATT_POS_MOCAP (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_INT (body) => body . ser (version , bytes) , Self :: COMMAND_ACK (body) => body . ser (version , bytes) , Self :: MISSION_COUNT (body) => body . ser (version , bytes) , Self :: VISION_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: TIMESYNC (body) => body . ser (version , bytes) , Self :: GPS_INPUT (body) => body . ser (version , bytes) , Self :: CAMERA_IMAGE_CAPTURED (body) => body . ser (version , bytes) , Self :: CAMERA_TRACKING_IMAGE_STATUS (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_INFORMATION (body) => body . ser (version , bytes) , Self :: UAVCAN_NODE_STATUS (body) => body . ser (version , bytes) , Self :: GPS_INJECT_DATA (body) => body . ser (version , bytes) , Self :: PARAM_EXT_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: PARAM_SET (body) => body . ser (version , bytes) , Self :: GPS_RTK (body) => body . ser (version , bytes) , Self :: COMMAND_CANCEL (body) => body . ser (version , bytes) , Self :: LOG_ENTRY (body) => body . ser (version , bytes) , Self :: MISSION_ITEM (body) => body . ser (version , bytes) , Self :: ACTUATOR_CONTROL_TARGET (body) => body . ser (version , bytes) , Self :: SCALED_IMU3 (body) => body . ser (version , bytes) , Self :: VFR_HUD (body) => body . ser (version , bytes) , Self :: RESOURCE_REQUEST (body) => body . ser (version , bytes) , Self :: GPS_RTCM_DATA (body) => body . ser (version , bytes) , Self :: OBSTACLE_DISTANCE (body) => body . ser (version , bytes) , Self :: NAMED_VALUE_FLOAT (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: LINK_NODE_STATUS (body) => body . ser (version , bytes) , Self :: GPS_STATUS (body) => body . ser (version , bytes) , Self :: MANUAL_SETPOINT (body) => body . ser (version , bytes) , Self :: RC_CHANNELS (body) => body . ser (version , bytes) , Self :: ALTITUDE (body) => body . ser (version , bytes) , Self :: ODOMETRY (body) => body . ser (version , bytes) , Self :: WHEEL_DISTANCE (body) => body . ser (version , bytes) , Self :: HOME_POSITION (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SELF_ID (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SYSTEM (body) => body . ser (version , bytes) , Self :: CAMERA_TRIGGER (body) => body . ser (version , bytes) , Self :: SET_MODE (body) => body . ser (version , bytes) , Self :: EFI_STATUS (body) => body . ser (version , bytes) , Self :: PING (body) => body . ser (version , bytes) , Self :: PARAM_VALUE (body) => body . ser (version , bytes) , Self :: HIL_GPS (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_INFORMATION (body) => body . ser (version , bytes) , Self :: CAN_FRAME (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_OPERATOR_ID (body) => body . ser (version , bytes) , Self :: CELLULAR_CONFIG (body) => body . ser (version , bytes) , Self :: COMPONENT_METADATA (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_ATTITUDE (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_SET_ATTITUDE (body) => body . ser (version , bytes) , Self :: REQUEST_DATA_STREAM (body) => body . ser (version , bytes) , Self :: SYSTEM_TIME (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (body) => body . ser (version , bytes) , Self :: UTM_GLOBAL_POSITION (body) => body . ser (version , bytes) , Self :: LOG_ERASE (body) => body . ser (version , bytes) , Self :: SET_GPS_GLOBAL_ORIGIN (body) => body . ser (version , bytes) , Self :: CELLULAR_STATUS (body) => body . ser (version , bytes) , Self :: MOUNT_ORIENTATION (body) => body . ser (version , bytes) , Self :: CURRENT_EVENT_SEQUENCE (body) => body . ser (version , bytes) , Self :: MISSION_ACK (body) => body . ser (version , bytes) , Self :: DEBUG_VECT (body) => body . ser (version , bytes) , } } fn extra_crc (id : u32) -> u8 { match id { RC_CHANNELS_RAW_DATA :: ID => RC_CHANNELS_RAW_DATA :: EXTRA_CRC , TIME_ESTIMATE_TO_TARGET_DATA :: ID => TIME_ESTIMATE_TO_TARGET_DATA :: EXTRA_CRC , MESSAGE_INTERVAL_DATA :: ID => MESSAGE_INTERVAL_DATA :: EXTRA_CRC , RESPONSE_EVENT_ERROR_DATA :: ID => RESPONSE_EVENT_ERROR_DATA :: EXTRA_CRC , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: EXTRA_CRC , MISSION_ITEM_REACHED_DATA :: ID => MISSION_ITEM_REACHED_DATA :: EXTRA_CRC , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: EXTRA_CRC , RAW_IMU_DATA :: ID => RAW_IMU_DATA :: EXTRA_CRC , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => SET_POSITION_TARGET_GLOBAL_INT_DATA :: EXTRA_CRC , POSITION_TARGET_GLOBAL_INT_DATA :: ID => POSITION_TARGET_GLOBAL_INT_DATA :: EXTRA_CRC , HIL_OPTICAL_FLOW_DATA :: ID => HIL_OPTICAL_FLOW_DATA :: EXTRA_CRC , LANDING_TARGET_DATA :: ID => LANDING_TARGET_DATA :: EXTRA_CRC , MAG_CAL_REPORT_DATA :: ID => MAG_CAL_REPORT_DATA :: EXTRA_CRC , UAVCAN_NODE_INFO_DATA :: ID => UAVCAN_NODE_INFO_DATA :: EXTRA_CRC , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => CAMERA_TRACKING_GEO_STATUS_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: EXTRA_CRC , ISBD_LINK_STATUS_DATA :: ID => ISBD_LINK_STATUS_DATA :: EXTRA_CRC , SMART_BATTERY_INFO_DATA :: ID => SMART_BATTERY_INFO_DATA :: EXTRA_CRC , ACTUATOR_OUTPUT_STATUS_DATA :: ID => ACTUATOR_OUTPUT_STATUS_DATA :: EXTRA_CRC , COMPONENT_INFORMATION_DATA :: ID => COMPONENT_INFORMATION_DATA :: EXTRA_CRC , TERRAIN_REQUEST_DATA :: ID => TERRAIN_REQUEST_DATA :: EXTRA_CRC , STORAGE_INFORMATION_DATA :: ID => STORAGE_INFORMATION_DATA :: EXTRA_CRC , CAN_FILTER_MODIFY_DATA :: ID => CAN_FILTER_MODIFY_DATA :: EXTRA_CRC , SCALED_PRESSURE_DATA :: ID => SCALED_PRESSURE_DATA :: EXTRA_CRC , LOG_DATA_DATA :: ID => LOG_DATA_DATA :: EXTRA_CRC , HIGH_LATENCY2_DATA :: ID => HIGH_LATENCY2_DATA :: EXTRA_CRC , OPEN_DRONE_ID_LOCATION_DATA :: ID => OPEN_DRONE_ID_LOCATION_DATA :: EXTRA_CRC , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => OPEN_DRONE_ID_AUTHENTICATION_DATA :: EXTRA_CRC , ESC_STATUS_DATA :: ID => ESC_STATUS_DATA :: EXTRA_CRC , V2_EXTENSION_DATA :: ID => V2_EXTENSION_DATA :: EXTRA_CRC , ORBIT_EXECUTION_STATUS_DATA :: ID => ORBIT_EXECUTION_STATUS_DATA :: EXTRA_CRC , HIGH_LATENCY_DATA :: ID => HIGH_LATENCY_DATA :: EXTRA_CRC , SUPPORTED_TUNES_DATA :: ID => SUPPORTED_TUNES_DATA :: EXTRA_CRC , AIS_VESSEL_DATA :: ID => AIS_VESSEL_DATA :: EXTRA_CRC , FILE_TRANSFER_PROTOCOL_DATA :: ID => FILE_TRANSFER_PROTOCOL_DATA :: EXTRA_CRC , HIGHRES_IMU_DATA :: ID => HIGHRES_IMU_DATA :: EXTRA_CRC , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => MISSION_REQUEST_PARTIAL_LIST_DATA :: EXTRA_CRC , COLLISION_DATA :: ID => COLLISION_DATA :: EXTRA_CRC , DEBUG_DATA :: ID => DEBUG_DATA :: EXTRA_CRC , SETUP_SIGNING_DATA :: ID => SETUP_SIGNING_DATA :: EXTRA_CRC , SCALED_PRESSURE3_DATA :: ID => SCALED_PRESSURE3_DATA :: EXTRA_CRC , SCALED_IMU2_DATA :: ID => SCALED_IMU2_DATA :: EXTRA_CRC , LOGGING_ACK_DATA :: ID => LOGGING_ACK_DATA :: EXTRA_CRC , VICON_POSITION_ESTIMATE_DATA :: ID => VICON_POSITION_ESTIMATE_DATA :: EXTRA_CRC , ESC_INFO_DATA :: ID => ESC_INFO_DATA :: EXTRA_CRC , PARAM_EXT_VALUE_DATA :: ID => PARAM_EXT_VALUE_DATA :: EXTRA_CRC , PLAY_TUNE_V2_DATA :: ID => PLAY_TUNE_V2_DATA :: EXTRA_CRC , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => OPEN_DRONE_ID_ARM_STATUS_DATA :: EXTRA_CRC , GIMBAL_MANAGER_STATUS_DATA :: ID => GIMBAL_MANAGER_STATUS_DATA :: EXTRA_CRC , MANUAL_CONTROL_DATA :: ID => MANUAL_CONTROL_DATA :: EXTRA_CRC , PROTOCOL_VERSION_DATA :: ID => PROTOCOL_VERSION_DATA :: EXTRA_CRC , CHANGE_OPERATOR_CONTROL_DATA :: ID => CHANGE_OPERATOR_CONTROL_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_DATA :: ID => LOCAL_POSITION_NED_DATA :: EXTRA_CRC , HIL_SENSOR_DATA :: ID => HIL_SENSOR_DATA :: EXTRA_CRC , FOLLOW_TARGET_DATA :: ID => FOLLOW_TARGET_DATA :: EXTRA_CRC , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: EXTRA_CRC , PARAM_MAP_RC_DATA :: ID => PARAM_MAP_RC_DATA :: EXTRA_CRC , HYGROMETER_SENSOR_DATA :: ID => HYGROMETER_SENSOR_DATA :: EXTRA_CRC , STATUSTEXT_DATA :: ID => STATUSTEXT_DATA :: EXTRA_CRC , HIL_STATE_DATA :: ID => HIL_STATE_DATA :: EXTRA_CRC , POWER_STATUS_DATA :: ID => POWER_STATUS_DATA :: EXTRA_CRC , HEARTBEAT_DATA :: ID => HEARTBEAT_DATA :: EXTRA_CRC , WIND_COV_DATA :: ID => WIND_COV_DATA :: EXTRA_CRC , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: EXTRA_CRC , GLOBAL_POSITION_INT_DATA :: ID => GLOBAL_POSITION_INT_DATA :: EXTRA_CRC , HIL_RC_INPUTS_RAW_DATA :: ID => HIL_RC_INPUTS_RAW_DATA :: EXTRA_CRC , GPS2_RAW_DATA :: ID => GPS2_RAW_DATA :: EXTRA_CRC , GENERATOR_STATUS_DATA :: ID => GENERATOR_STATUS_DATA :: EXTRA_CRC , VISION_SPEED_ESTIMATE_DATA :: ID => VISION_SPEED_ESTIMATE_DATA :: EXTRA_CRC , PARAM_REQUEST_READ_DATA :: ID => PARAM_REQUEST_READ_DATA :: EXTRA_CRC , SET_ATTITUDE_TARGET_DATA :: ID => SET_ATTITUDE_TARGET_DATA :: EXTRA_CRC , PARAM_EXT_ACK_DATA :: ID => PARAM_EXT_ACK_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: EXTRA_CRC , PARAM_EXT_REQUEST_READ_DATA :: ID => PARAM_EXT_REQUEST_READ_DATA :: EXTRA_CRC , CONTROL_SYSTEM_STATE_DATA :: ID => CONTROL_SYSTEM_STATE_DATA :: EXTRA_CRC , TERRAIN_CHECK_DATA :: ID => TERRAIN_CHECK_DATA :: EXTRA_CRC , NAV_CONTROLLER_OUTPUT_DATA :: ID => NAV_CONTROLLER_OUTPUT_DATA :: EXTRA_CRC , MISSION_CURRENT_DATA :: ID => MISSION_CURRENT_DATA :: EXTRA_CRC , PARAM_REQUEST_LIST_DATA :: ID => PARAM_REQUEST_LIST_DATA :: EXTRA_CRC , RADIO_STATUS_DATA :: ID => RADIO_STATUS_DATA :: EXTRA_CRC , LOG_REQUEST_END_DATA :: ID => LOG_REQUEST_END_DATA :: EXTRA_CRC , VIBRATION_DATA :: ID => VIBRATION_DATA :: EXTRA_CRC , AUTOPILOT_VERSION_DATA :: ID => AUTOPILOT_VERSION_DATA :: EXTRA_CRC , MISSION_SET_CURRENT_DATA :: ID => MISSION_SET_CURRENT_DATA :: EXTRA_CRC , CAMERA_SETTINGS_DATA :: ID => CAMERA_SETTINGS_DATA :: EXTRA_CRC , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => MISSION_WRITE_PARTIAL_LIST_DATA :: EXTRA_CRC , VIDEO_STREAM_STATUS_DATA :: ID => VIDEO_STREAM_STATUS_DATA :: EXTRA_CRC , EVENT_DATA :: ID => EVENT_DATA :: EXTRA_CRC , CANFD_FRAME_DATA :: ID => CANFD_FRAME_DATA :: EXTRA_CRC , WINCH_STATUS_DATA :: ID => WINCH_STATUS_DATA :: EXTRA_CRC , DEBUG_FLOAT_ARRAY_DATA :: ID => DEBUG_FLOAT_ARRAY_DATA :: EXTRA_CRC , MISSION_ITEM_INT_DATA :: ID => MISSION_ITEM_INT_DATA :: EXTRA_CRC , CAMERA_FOV_STATUS_DATA :: ID => CAMERA_FOV_STATUS_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: EXTRA_CRC , ATTITUDE_TARGET_DATA :: ID => ATTITUDE_TARGET_DATA :: EXTRA_CRC , MISSION_REQUEST_LIST_DATA :: ID => MISSION_REQUEST_LIST_DATA :: EXTRA_CRC , TUNNEL_DATA :: ID => TUNNEL_DATA :: EXTRA_CRC , PLAY_TUNE_DATA :: ID => PLAY_TUNE_DATA :: EXTRA_CRC , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => SET_POSITION_TARGET_LOCAL_NED_DATA :: EXTRA_CRC , MISSION_CLEAR_ALL_DATA :: ID => MISSION_CLEAR_ALL_DATA :: EXTRA_CRC , ONBOARD_COMPUTER_STATUS_DATA :: ID => ONBOARD_COMPUTER_STATUS_DATA :: EXTRA_CRC , RAW_PRESSURE_DATA :: ID => RAW_PRESSURE_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_COV_DATA :: ID => LOCAL_POSITION_NED_COV_DATA :: EXTRA_CRC , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => SET_ACTUATOR_CONTROL_TARGET_DATA :: EXTRA_CRC , GPS_RAW_INT_DATA :: ID => GPS_RAW_INT_DATA :: EXTRA_CRC , SAFETY_SET_ALLOWED_AREA_DATA :: ID => SAFETY_SET_ALLOWED_AREA_DATA :: EXTRA_CRC , LOG_REQUEST_DATA_DATA :: ID => LOG_REQUEST_DATA_DATA :: EXTRA_CRC , BUTTON_CHANGE_DATA :: ID => BUTTON_CHANGE_DATA :: EXTRA_CRC , RC_CHANNELS_SCALED_DATA :: ID => RC_CHANNELS_SCALED_DATA :: EXTRA_CRC , SCALED_IMU_DATA :: ID => SCALED_IMU_DATA :: EXTRA_CRC , NAMED_VALUE_INT_DATA :: ID => NAMED_VALUE_INT_DATA :: EXTRA_CRC , ENCAPSULATED_DATA_DATA :: ID => ENCAPSULATED_DATA_DATA :: EXTRA_CRC , COMMAND_INT_DATA :: ID => COMMAND_INT_DATA :: EXTRA_CRC , OPTICAL_FLOW_RAD_DATA :: ID => OPTICAL_FLOW_RAD_DATA :: EXTRA_CRC , CAMERA_INFORMATION_DATA :: ID => CAMERA_INFORMATION_DATA :: EXTRA_CRC , WIFI_CONFIG_AP_DATA :: ID => WIFI_CONFIG_AP_DATA :: EXTRA_CRC , TERRAIN_REPORT_DATA :: ID => TERRAIN_REPORT_DATA :: EXTRA_CRC , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: EXTRA_CRC , BATTERY_STATUS_DATA :: ID => BATTERY_STATUS_DATA :: EXTRA_CRC , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => OPEN_DRONE_ID_BASIC_ID_DATA :: EXTRA_CRC , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => CHANGE_OPERATOR_CONTROL_ACK_DATA :: EXTRA_CRC , HIL_ACTUATOR_CONTROLS_DATA :: ID => HIL_ACTUATOR_CONTROLS_DATA :: EXTRA_CRC , REQUEST_EVENT_DATA :: ID => REQUEST_EVENT_DATA :: EXTRA_CRC , SYS_STATUS_DATA :: ID => SYS_STATUS_DATA :: EXTRA_CRC , POSITION_TARGET_LOCAL_NED_DATA :: ID => POSITION_TARGET_LOCAL_NED_DATA :: EXTRA_CRC , COMMAND_LONG_DATA :: ID => COMMAND_LONG_DATA :: EXTRA_CRC , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: EXTRA_CRC , ATTITUDE_QUATERNION_COV_DATA :: ID => ATTITUDE_QUATERNION_COV_DATA :: EXTRA_CRC , MISSION_REQUEST_DATA :: ID => MISSION_REQUEST_DATA :: EXTRA_CRC , HIL_CONTROLS_DATA :: ID => HIL_CONTROLS_DATA :: EXTRA_CRC , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => DATA_TRANSMISSION_HANDSHAKE_DATA :: EXTRA_CRC , ESTIMATOR_STATUS_DATA :: ID => ESTIMATOR_STATUS_DATA :: EXTRA_CRC , SERIAL_CONTROL_DATA :: ID => SERIAL_CONTROL_DATA :: EXTRA_CRC , LOGGING_DATA_DATA :: ID => LOGGING_DATA_DATA :: EXTRA_CRC , EXTENDED_SYS_STATE_DATA :: ID => EXTENDED_SYS_STATE_DATA :: EXTRA_CRC , SET_HOME_POSITION_DATA :: ID => SET_HOME_POSITION_DATA :: EXTRA_CRC , MEMORY_VECT_DATA :: ID => MEMORY_VECT_DATA :: EXTRA_CRC , RAW_RPM_DATA :: ID => RAW_RPM_DATA :: EXTRA_CRC , GLOBAL_POSITION_INT_COV_DATA :: ID => GLOBAL_POSITION_INT_COV_DATA :: EXTRA_CRC , GPS2_RTK_DATA :: ID => GPS2_RTK_DATA :: EXTRA_CRC , GPS_GLOBAL_ORIGIN_DATA :: ID => GPS_GLOBAL_ORIGIN_DATA :: EXTRA_CRC , OPTICAL_FLOW_DATA :: ID => OPTICAL_FLOW_DATA :: EXTRA_CRC , TERRAIN_DATA_DATA :: ID => TERRAIN_DATA_DATA :: EXTRA_CRC , FLIGHT_INFORMATION_DATA :: ID => FLIGHT_INFORMATION_DATA :: EXTRA_CRC , SCALED_PRESSURE2_DATA :: ID => SCALED_PRESSURE2_DATA :: EXTRA_CRC , CAMERA_CAPTURE_STATUS_DATA :: ID => CAMERA_CAPTURE_STATUS_DATA :: EXTRA_CRC , SAFETY_ALLOWED_AREA_DATA :: ID => SAFETY_ALLOWED_AREA_DATA :: EXTRA_CRC , DATA_STREAM_DATA :: ID => DATA_STREAM_DATA :: EXTRA_CRC , ATTITUDE_DATA :: ID => ATTITUDE_DATA :: EXTRA_CRC , HIL_STATE_QUATERNION_DATA :: ID => HIL_STATE_QUATERNION_DATA :: EXTRA_CRC , LOGGING_DATA_ACKED_DATA :: ID => LOGGING_DATA_ACKED_DATA :: EXTRA_CRC , VIDEO_STREAM_INFORMATION_DATA :: ID => VIDEO_STREAM_INFORMATION_DATA :: EXTRA_CRC , DISTANCE_SENSOR_DATA :: ID => DISTANCE_SENSOR_DATA :: EXTRA_CRC , AUTH_KEY_DATA :: ID => AUTH_KEY_DATA :: EXTRA_CRC , RC_CHANNELS_OVERRIDE_DATA :: ID => RC_CHANNELS_OVERRIDE_DATA :: EXTRA_CRC , PARAM_EXT_SET_DATA :: ID => PARAM_EXT_SET_DATA :: EXTRA_CRC , ADSB_VEHICLE_DATA :: ID => ADSB_VEHICLE_DATA :: EXTRA_CRC , SERVO_OUTPUT_RAW_DATA :: ID => SERVO_OUTPUT_RAW_DATA :: EXTRA_CRC , SIM_STATE_DATA :: ID => SIM_STATE_DATA :: EXTRA_CRC , FENCE_STATUS_DATA :: ID => FENCE_STATUS_DATA :: EXTRA_CRC , ATTITUDE_QUATERNION_DATA :: ID => ATTITUDE_QUATERNION_DATA :: EXTRA_CRC , ATT_POS_MOCAP_DATA :: ID => ATT_POS_MOCAP_DATA :: EXTRA_CRC , MISSION_REQUEST_INT_DATA :: ID => MISSION_REQUEST_INT_DATA :: EXTRA_CRC , COMMAND_ACK_DATA :: ID => COMMAND_ACK_DATA :: EXTRA_CRC , MISSION_COUNT_DATA :: ID => MISSION_COUNT_DATA :: EXTRA_CRC , VISION_POSITION_ESTIMATE_DATA :: ID => VISION_POSITION_ESTIMATE_DATA :: EXTRA_CRC , TIMESYNC_DATA :: ID => TIMESYNC_DATA :: EXTRA_CRC , GPS_INPUT_DATA :: ID => GPS_INPUT_DATA :: EXTRA_CRC , CAMERA_IMAGE_CAPTURED_DATA :: ID => CAMERA_IMAGE_CAPTURED_DATA :: EXTRA_CRC , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => CAMERA_TRACKING_IMAGE_STATUS_DATA :: EXTRA_CRC , GIMBAL_MANAGER_INFORMATION_DATA :: ID => GIMBAL_MANAGER_INFORMATION_DATA :: EXTRA_CRC , UAVCAN_NODE_STATUS_DATA :: ID => UAVCAN_NODE_STATUS_DATA :: EXTRA_CRC , GPS_INJECT_DATA_DATA :: ID => GPS_INJECT_DATA_DATA :: EXTRA_CRC , PARAM_EXT_REQUEST_LIST_DATA :: ID => PARAM_EXT_REQUEST_LIST_DATA :: EXTRA_CRC , PARAM_SET_DATA :: ID => PARAM_SET_DATA :: EXTRA_CRC , GPS_RTK_DATA :: ID => GPS_RTK_DATA :: EXTRA_CRC , COMMAND_CANCEL_DATA :: ID => COMMAND_CANCEL_DATA :: EXTRA_CRC , LOG_ENTRY_DATA :: ID => LOG_ENTRY_DATA :: EXTRA_CRC , MISSION_ITEM_DATA :: ID => MISSION_ITEM_DATA :: EXTRA_CRC , ACTUATOR_CONTROL_TARGET_DATA :: ID => ACTUATOR_CONTROL_TARGET_DATA :: EXTRA_CRC , SCALED_IMU3_DATA :: ID => SCALED_IMU3_DATA :: EXTRA_CRC , VFR_HUD_DATA :: ID => VFR_HUD_DATA :: EXTRA_CRC , RESOURCE_REQUEST_DATA :: ID => RESOURCE_REQUEST_DATA :: EXTRA_CRC , GPS_RTCM_DATA_DATA :: ID => GPS_RTCM_DATA_DATA :: EXTRA_CRC , OBSTACLE_DISTANCE_DATA :: ID => OBSTACLE_DISTANCE_DATA :: EXTRA_CRC , NAMED_VALUE_FLOAT_DATA :: ID => NAMED_VALUE_FLOAT_DATA :: EXTRA_CRC , LOG_REQUEST_LIST_DATA :: ID => LOG_REQUEST_LIST_DATA :: EXTRA_CRC , LINK_NODE_STATUS_DATA :: ID => LINK_NODE_STATUS_DATA :: EXTRA_CRC , GPS_STATUS_DATA :: ID => GPS_STATUS_DATA :: EXTRA_CRC , MANUAL_SETPOINT_DATA :: ID => MANUAL_SETPOINT_DATA :: EXTRA_CRC , RC_CHANNELS_DATA :: ID => RC_CHANNELS_DATA :: EXTRA_CRC , ALTITUDE_DATA :: ID => ALTITUDE_DATA :: EXTRA_CRC , ODOMETRY_DATA :: ID => ODOMETRY_DATA :: EXTRA_CRC , WHEEL_DISTANCE_DATA :: ID => WHEEL_DISTANCE_DATA :: EXTRA_CRC , HOME_POSITION_DATA :: ID => HOME_POSITION_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SELF_ID_DATA :: ID => OPEN_DRONE_ID_SELF_ID_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SYSTEM_DATA :: ID => OPEN_DRONE_ID_SYSTEM_DATA :: EXTRA_CRC , CAMERA_TRIGGER_DATA :: ID => CAMERA_TRIGGER_DATA :: EXTRA_CRC , SET_MODE_DATA :: ID => SET_MODE_DATA :: EXTRA_CRC , EFI_STATUS_DATA :: ID => EFI_STATUS_DATA :: EXTRA_CRC , PING_DATA :: ID => PING_DATA :: EXTRA_CRC , PARAM_VALUE_DATA :: ID => PARAM_VALUE_DATA :: EXTRA_CRC , HIL_GPS_DATA :: ID => HIL_GPS_DATA :: EXTRA_CRC , GIMBAL_DEVICE_INFORMATION_DATA :: ID => GIMBAL_DEVICE_INFORMATION_DATA :: EXTRA_CRC , CAN_FRAME_DATA :: ID => CAN_FRAME_DATA :: EXTRA_CRC , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => OPEN_DRONE_ID_OPERATOR_ID_DATA :: EXTRA_CRC , CELLULAR_CONFIG_DATA :: ID => CELLULAR_CONFIG_DATA :: EXTRA_CRC , COMPONENT_METADATA_DATA :: ID => COMPONENT_METADATA_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: EXTRA_CRC , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: EXTRA_CRC , REQUEST_DATA_STREAM_DATA :: ID => REQUEST_DATA_STREAM_DATA :: EXTRA_CRC , SYSTEM_TIME_DATA :: ID => SYSTEM_TIME_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: EXTRA_CRC , UTM_GLOBAL_POSITION_DATA :: ID => UTM_GLOBAL_POSITION_DATA :: EXTRA_CRC , LOG_ERASE_DATA :: ID => LOG_ERASE_DATA :: EXTRA_CRC , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => SET_GPS_GLOBAL_ORIGIN_DATA :: EXTRA_CRC , CELLULAR_STATUS_DATA :: ID => CELLULAR_STATUS_DATA :: EXTRA_CRC , MOUNT_ORIENTATION_DATA :: ID => MOUNT_ORIENTATION_DATA :: EXTRA_CRC , CURRENT_EVENT_SEQUENCE_DATA :: ID => CURRENT_EVENT_SEQUENCE_DATA :: EXTRA_CRC , MISSION_ACK_DATA :: ID => MISSION_ACK_DATA :: EXTRA_CRC , DEBUG_VECT_DATA :: ID => DEBUG_VECT_DATA :: EXTRA_CRC , _ => { 0 } , } } }
+
# ! [doc = "This file was automatically generated, do not edit"] # [allow (unused_imports)] use num_derive :: FromPrimitive ; # [allow (unused_imports)] use num_traits :: FromPrimitive ; # [allow (unused_imports)] use num_derive :: ToPrimitive ; # [allow (unused_imports)] use num_traits :: ToPrimitive ; # [allow (unused_imports)] use bitflags :: bitflags ; use mavlink_core :: { MavlinkVersion , Message , MessageData , bytes :: Bytes , bytes_mut :: BytesMut } ; # [cfg (feature = "serde")] use serde :: { Serialize , Deserialize } ; # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ActuatorConfiguration { ACTUATOR_CONFIGURATION_NONE = 0 , ACTUATOR_CONFIGURATION_BEEP = 1 , ACTUATOR_CONFIGURATION_3D_MODE_ON = 2 , ACTUATOR_CONFIGURATION_3D_MODE_OFF = 3 , ACTUATOR_CONFIGURATION_SPIN_DIRECTION1 = 4 , ACTUATOR_CONFIGURATION_SPIN_DIRECTION2 = 5 , } impl ActuatorConfiguration { pub const DEFAULT : Self = Self :: ACTUATOR_CONFIGURATION_NONE ; } impl Default for ActuatorConfiguration { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMountMode { MAV_MOUNT_MODE_RETRACT = 0 , MAV_MOUNT_MODE_NEUTRAL = 1 , MAV_MOUNT_MODE_MAVLINK_TARGETING = 2 , MAV_MOUNT_MODE_RC_TARGETING = 3 , MAV_MOUNT_MODE_GPS_POINT = 4 , MAV_MOUNT_MODE_SYSID_TARGET = 5 , MAV_MOUNT_MODE_HOME_LOCATION = 6 , } impl MavMountMode { pub const DEFAULT : Self = Self :: MAV_MOUNT_MODE_RETRACT ; } impl Default for MavMountMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PreflightStorageParameterAction { PARAM_READ_PERSISTENT = 0 , PARAM_WRITE_PERSISTENT = 1 , PARAM_RESET_CONFIG_DEFAULT = 2 , PARAM_RESET_SENSOR_DEFAULT = 3 , PARAM_RESET_ALL_DEFAULT = 4 , } impl PreflightStorageParameterAction { pub const DEFAULT : Self = Self :: PARAM_READ_PERSISTENT ; } impl Default for PreflightStorageParameterAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavParamType { MAV_PARAM_TYPE_UINT8 = 1 , MAV_PARAM_TYPE_INT8 = 2 , MAV_PARAM_TYPE_UINT16 = 3 , MAV_PARAM_TYPE_INT16 = 4 , MAV_PARAM_TYPE_UINT32 = 5 , MAV_PARAM_TYPE_INT32 = 6 , MAV_PARAM_TYPE_UINT64 = 7 , MAV_PARAM_TYPE_INT64 = 8 , MAV_PARAM_TYPE_REAL32 = 9 , MAV_PARAM_TYPE_REAL64 = 10 , } impl MavParamType { pub const DEFAULT : Self = Self :: MAV_PARAM_TYPE_UINT8 ; } impl Default for MavParamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FirmwareVersionType { FIRMWARE_VERSION_TYPE_DEV = 0 , FIRMWARE_VERSION_TYPE_ALPHA = 64 , FIRMWARE_VERSION_TYPE_BETA = 128 , FIRMWARE_VERSION_TYPE_RC = 192 , FIRMWARE_VERSION_TYPE_OFFICIAL = 255 , } impl FirmwareVersionType { pub const DEFAULT : Self = Self :: FIRMWARE_VERSION_TYPE_DEV ; } impl Default for FirmwareVersionType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TuneFormat : u32 { const TUNE_FORMAT_QBASIC1_1 = 1 ; const TUNE_FORMAT_MML_MODERN = 2 ; } } impl TuneFormat { pub const DEFAULT : Self = Self :: TUNE_FORMAT_QBASIC1_1 ; } impl Default for TuneFormat { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavTunnelPayloadType { MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN = 0 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED0 = 200 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED1 = 201 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED2 = 202 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED3 = 203 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED4 = 204 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED5 = 205 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED6 = 206 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED7 = 207 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED8 = 208 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED9 = 209 , } impl MavTunnelPayloadType { pub const DEFAULT : Self = Self :: MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN ; } impl Default for MavTunnelPayloadType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageType { STORAGE_TYPE_UNKNOWN = 0 , STORAGE_TYPE_USB_STICK = 1 , STORAGE_TYPE_SD = 2 , STORAGE_TYPE_MICROSD = 3 , STORAGE_TYPE_CF = 4 , STORAGE_TYPE_CFE = 5 , STORAGE_TYPE_XQD = 6 , STORAGE_TYPE_HD = 7 , STORAGE_TYPE_OTHER = 254 , } impl StorageType { pub const DEFAULT : Self = Self :: STORAGE_TYPE_UNKNOWN ; } impl Default for StorageType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AutotuneAxis { AUTOTUNE_AXIS_DEFAULT = 0 , AUTOTUNE_AXIS_ROLL = 1 , AUTOTUNE_AXIS_PITCH = 2 , AUTOTUNE_AXIS_YAW = 4 , } impl AutotuneAxis { pub const DEFAULT : Self = Self :: AUTOTUNE_AXIS_DEFAULT ; } impl Default for AutotuneAxis { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionThreatLevel { MAV_COLLISION_THREAT_LEVEL_NONE = 0 , MAV_COLLISION_THREAT_LEVEL_LOW = 1 , MAV_COLLISION_THREAT_LEVEL_HIGH = 2 , } impl MavCollisionThreatLevel { pub const DEFAULT : Self = Self :: MAV_COLLISION_THREAT_LEVEL_NONE ; } impl Default for MavCollisionThreatLevel { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidAuthType { MAV_ODID_AUTH_TYPE_NONE = 0 , MAV_ODID_AUTH_TYPE_UAS_ID_SIGNATURE = 1 , MAV_ODID_AUTH_TYPE_OPERATOR_ID_SIGNATURE = 2 , MAV_ODID_AUTH_TYPE_MESSAGE_SET_SIGNATURE = 3 , MAV_ODID_AUTH_TYPE_NETWORK_REMOTE_ID = 4 , MAV_ODID_AUTH_TYPE_SPECIFIC_AUTHENTICATION = 5 , } impl MavOdidAuthType { pub const DEFAULT : Self = Self :: MAV_ODID_AUTH_TYPE_NONE ; } impl Default for MavOdidAuthType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidOperatorLocationType { MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF = 0 , MAV_ODID_OPERATOR_LOCATION_TYPE_LIVE_GNSS = 1 , MAV_ODID_OPERATOR_LOCATION_TYPE_FIXED = 2 , } impl MavOdidOperatorLocationType { pub const DEFAULT : Self = Self :: MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF ; } impl Default for MavOdidOperatorLocationType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceFlags : u16 { const GIMBAL_DEVICE_FLAGS_RETRACT = 1 ; const GIMBAL_DEVICE_FLAGS_NEUTRAL = 2 ; const GIMBAL_DEVICE_FLAGS_ROLL_LOCK = 4 ; const GIMBAL_DEVICE_FLAGS_PITCH_LOCK = 8 ; const GIMBAL_DEVICE_FLAGS_YAW_LOCK = 16 ; const GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME = 32 ; const GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME = 64 ; const GIMBAL_DEVICE_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME = 128 ; const GIMBAL_DEVICE_FLAGS_RC_EXCLUSIVE = 256 ; const GIMBAL_DEVICE_FLAGS_RC_MIXED = 512 ; } } impl GimbalDeviceFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_FLAGS_RETRACT ; } impl Default for GimbalDeviceFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavcanNodeHealth { UAVCAN_NODE_HEALTH_OK = 0 , UAVCAN_NODE_HEALTH_WARNING = 1 , UAVCAN_NODE_HEALTH_ERROR = 2 , UAVCAN_NODE_HEALTH_CRITICAL = 3 , } impl UavcanNodeHealth { pub const DEFAULT : Self = Self :: UAVCAN_NODE_HEALTH_OK ; } impl Default for UavcanNodeHealth { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFrame { MAV_FRAME_GLOBAL = 0 , MAV_FRAME_LOCAL_NED = 1 , MAV_FRAME_MISSION = 2 , MAV_FRAME_GLOBAL_RELATIVE_ALT = 3 , MAV_FRAME_LOCAL_ENU = 4 , MAV_FRAME_GLOBAL_INT = 5 , MAV_FRAME_GLOBAL_RELATIVE_ALT_INT = 6 , MAV_FRAME_LOCAL_OFFSET_NED = 7 , MAV_FRAME_BODY_NED = 8 , MAV_FRAME_BODY_OFFSET_NED = 9 , MAV_FRAME_GLOBAL_TERRAIN_ALT = 10 , MAV_FRAME_GLOBAL_TERRAIN_ALT_INT = 11 , MAV_FRAME_BODY_FRD = 12 , MAV_FRAME_RESERVED_13 = 13 , MAV_FRAME_RESERVED_14 = 14 , MAV_FRAME_RESERVED_15 = 15 , MAV_FRAME_RESERVED_16 = 16 , MAV_FRAME_RESERVED_17 = 17 , MAV_FRAME_RESERVED_18 = 18 , MAV_FRAME_RESERVED_19 = 19 , MAV_FRAME_LOCAL_FRD = 20 , MAV_FRAME_LOCAL_FLU = 21 , } impl MavFrame { pub const DEFAULT : Self = Self :: MAV_FRAME_GLOBAL ; } impl Default for MavFrame { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ParamAck { PARAM_ACK_ACCEPTED = 0 , PARAM_ACK_VALUE_UNSUPPORTED = 1 , PARAM_ACK_FAILED = 2 , PARAM_ACK_IN_PROGRESS = 3 , } impl ParamAck { pub const DEFAULT : Self = Self :: PARAM_ACK_ACCEPTED ; } impl Default for ParamAck { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionSrc { MAV_COLLISION_SRC_ADSB = 0 , MAV_COLLISION_SRC_MAVLINK_GPS_GLOBAL_INT = 1 , } impl MavCollisionSrc { pub const DEFAULT : Self = Self :: MAV_COLLISION_SRC_ADSB ; } impl Default for MavCollisionSrc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RcType { RC_TYPE_SPEKTRUM_DSM2 = 0 , RC_TYPE_SPEKTRUM_DSMX = 1 , } impl RcType { pub const DEFAULT : Self = Self :: RC_TYPE_SPEKTRUM_DSM2 ; } impl Default for RcType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSeverity { MAV_SEVERITY_EMERGENCY = 0 , MAV_SEVERITY_ALERT = 1 , MAV_SEVERITY_CRITICAL = 2 , MAV_SEVERITY_ERROR = 3 , MAV_SEVERITY_WARNING = 4 , MAV_SEVERITY_NOTICE = 5 , MAV_SEVERITY_INFO = 6 , MAV_SEVERITY_DEBUG = 7 , } impl MavSeverity { pub const DEFAULT : Self = Self :: MAV_SEVERITY_EMERGENCY ; } impl Default for MavSeverity { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RtkBaselineCoordinateSystem { RTK_BASELINE_COORDINATE_SYSTEM_ECEF = 0 , RTK_BASELINE_COORDINATE_SYSTEM_NED = 1 , } impl RtkBaselineCoordinateSystem { pub const DEFAULT : Self = Self :: RTK_BASELINE_COORDINATE_SYSTEM_ECEF ; } impl Default for RtkBaselineCoordinateSystem { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PreflightStorageMissionAction { MISSION_READ_PERSISTENT = 0 , MISSION_WRITE_PERSISTENT = 1 , MISSION_RESET_DEFAULT = 2 , } impl PreflightStorageMissionAction { pub const DEFAULT : Self = Self :: MISSION_READ_PERSISTENT ; } impl Default for PreflightStorageMissionAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingMode { CAMERA_TRACKING_MODE_NONE = 0 , CAMERA_TRACKING_MODE_POINT = 1 , CAMERA_TRACKING_MODE_RECTANGLE = 2 , } impl CameraTrackingMode { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_MODE_NONE ; } impl Default for CameraTrackingMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SerialControlDev { SERIAL_CONTROL_DEV_TELEM1 = 0 , SERIAL_CONTROL_DEV_TELEM2 = 1 , SERIAL_CONTROL_DEV_GPS1 = 2 , SERIAL_CONTROL_DEV_GPS2 = 3 , SERIAL_CONTROL_DEV_SHELL = 10 , SERIAL_CONTROL_SERIAL0 = 100 , SERIAL_CONTROL_SERIAL1 = 101 , SERIAL_CONTROL_SERIAL2 = 102 , SERIAL_CONTROL_SERIAL3 = 103 , SERIAL_CONTROL_SERIAL4 = 104 , SERIAL_CONTROL_SERIAL5 = 105 , SERIAL_CONTROL_SERIAL6 = 106 , SERIAL_CONTROL_SERIAL7 = 107 , SERIAL_CONTROL_SERIAL8 = 108 , SERIAL_CONTROL_SERIAL9 = 109 , } impl SerialControlDev { pub const DEFAULT : Self = Self :: SERIAL_CONTROL_DEV_TELEM1 ; } impl Default for SerialControlDev { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidArmStatus { MAV_ODID_ARM_STATUS_GOOD_TO_ARM = 0 , MAV_ODID_ARM_STATUS_PRE_ARM_FAIL_GENERIC = 1 , } impl MavOdidArmStatus { pub const DEFAULT : Self = Self :: MAV_ODID_ARM_STATUS_GOOD_TO_ARM ; } impl Default for MavOdidArmStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDistanceSensor { MAV_DISTANCE_SENSOR_LASER = 0 , MAV_DISTANCE_SENSOR_ULTRASOUND = 1 , MAV_DISTANCE_SENSOR_INFRARED = 2 , MAV_DISTANCE_SENSOR_RADAR = 3 , MAV_DISTANCE_SENSOR_UNKNOWN = 4 , } impl MavDistanceSensor { pub const DEFAULT : Self = Self :: MAV_DISTANCE_SENSOR_LASER ; } impl Default for MavDistanceSensor { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFtpOpcode { MAV_FTP_OPCODE_NONE = 0 , MAV_FTP_OPCODE_TERMINATESESSION = 1 , MAV_FTP_OPCODE_RESETSESSION = 2 , MAV_FTP_OPCODE_LISTDIRECTORY = 3 , MAV_FTP_OPCODE_OPENFILERO = 4 , MAV_FTP_OPCODE_READFILE = 5 , MAV_FTP_OPCODE_CREATEFILE = 6 , MAV_FTP_OPCODE_WRITEFILE = 7 , MAV_FTP_OPCODE_REMOVEFILE = 8 , MAV_FTP_OPCODE_CREATEDIRECTORY = 9 , MAV_FTP_OPCODE_REMOVEDIRECTORY = 10 , MAV_FTP_OPCODE_OPENFILEWO = 11 , MAV_FTP_OPCODE_TRUNCATEFILE = 12 , MAV_FTP_OPCODE_RENAME = 13 , MAV_FTP_OPCODE_CALCFILECRC = 14 , MAV_FTP_OPCODE_BURSTREADFILE = 15 , MAV_FTP_OPCODE_ACK = 128 , MAV_FTP_OPCODE_NAK = 129 , } impl MavFtpOpcode { pub const DEFAULT : Self = Self :: MAV_FTP_OPCODE_NONE ; } impl Default for MavFtpOpcode { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceErrorFlags : u32 { const GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT = 1 ; const GIMBAL_DEVICE_ERROR_FLAGS_AT_PITCH_LIMIT = 2 ; const GIMBAL_DEVICE_ERROR_FLAGS_AT_YAW_LIMIT = 4 ; const GIMBAL_DEVICE_ERROR_FLAGS_ENCODER_ERROR = 8 ; const GIMBAL_DEVICE_ERROR_FLAGS_POWER_ERROR = 16 ; const GIMBAL_DEVICE_ERROR_FLAGS_MOTOR_ERROR = 32 ; const GIMBAL_DEVICE_ERROR_FLAGS_SOFTWARE_ERROR = 64 ; const GIMBAL_DEVICE_ERROR_FLAGS_COMMS_ERROR = 128 ; const GIMBAL_DEVICE_ERROR_FLAGS_CALIBRATION_RUNNING = 256 ; const GIMBAL_DEVICE_ERROR_FLAGS_NO_MANAGER = 512 ; } } impl GimbalDeviceErrorFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT ; } impl Default for GimbalDeviceErrorFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavComponent { MAV_COMP_ID_ALL = 0 , MAV_COMP_ID_AUTOPILOT1 = 1 , MAV_COMP_ID_USER1 = 25 , MAV_COMP_ID_USER2 = 26 , MAV_COMP_ID_USER3 = 27 , MAV_COMP_ID_USER4 = 28 , MAV_COMP_ID_USER5 = 29 , MAV_COMP_ID_USER6 = 30 , MAV_COMP_ID_USER7 = 31 , MAV_COMP_ID_USER8 = 32 , MAV_COMP_ID_USER9 = 33 , MAV_COMP_ID_USER10 = 34 , MAV_COMP_ID_USER11 = 35 , MAV_COMP_ID_USER12 = 36 , MAV_COMP_ID_USER13 = 37 , MAV_COMP_ID_USER14 = 38 , MAV_COMP_ID_USER15 = 39 , MAV_COMP_ID_USER16 = 40 , MAV_COMP_ID_USER17 = 41 , MAV_COMP_ID_USER18 = 42 , MAV_COMP_ID_USER19 = 43 , MAV_COMP_ID_USER20 = 44 , MAV_COMP_ID_USER21 = 45 , MAV_COMP_ID_USER22 = 46 , MAV_COMP_ID_USER23 = 47 , MAV_COMP_ID_USER24 = 48 , MAV_COMP_ID_USER25 = 49 , MAV_COMP_ID_USER26 = 50 , MAV_COMP_ID_USER27 = 51 , MAV_COMP_ID_USER28 = 52 , MAV_COMP_ID_USER29 = 53 , MAV_COMP_ID_USER30 = 54 , MAV_COMP_ID_USER31 = 55 , MAV_COMP_ID_USER32 = 56 , MAV_COMP_ID_USER33 = 57 , MAV_COMP_ID_USER34 = 58 , MAV_COMP_ID_USER35 = 59 , MAV_COMP_ID_USER36 = 60 , MAV_COMP_ID_USER37 = 61 , MAV_COMP_ID_USER38 = 62 , MAV_COMP_ID_USER39 = 63 , MAV_COMP_ID_USER40 = 64 , MAV_COMP_ID_USER41 = 65 , MAV_COMP_ID_USER42 = 66 , MAV_COMP_ID_USER43 = 67 , MAV_COMP_ID_TELEMETRY_RADIO = 68 , MAV_COMP_ID_USER45 = 69 , MAV_COMP_ID_USER46 = 70 , MAV_COMP_ID_USER47 = 71 , MAV_COMP_ID_USER48 = 72 , MAV_COMP_ID_USER49 = 73 , MAV_COMP_ID_USER50 = 74 , MAV_COMP_ID_USER51 = 75 , MAV_COMP_ID_USER52 = 76 , MAV_COMP_ID_USER53 = 77 , MAV_COMP_ID_USER54 = 78 , MAV_COMP_ID_USER55 = 79 , MAV_COMP_ID_USER56 = 80 , MAV_COMP_ID_USER57 = 81 , MAV_COMP_ID_USER58 = 82 , MAV_COMP_ID_USER59 = 83 , MAV_COMP_ID_USER60 = 84 , MAV_COMP_ID_USER61 = 85 , MAV_COMP_ID_USER62 = 86 , MAV_COMP_ID_USER63 = 87 , MAV_COMP_ID_USER64 = 88 , MAV_COMP_ID_USER65 = 89 , MAV_COMP_ID_USER66 = 90 , MAV_COMP_ID_USER67 = 91 , MAV_COMP_ID_USER68 = 92 , MAV_COMP_ID_USER69 = 93 , MAV_COMP_ID_USER70 = 94 , MAV_COMP_ID_USER71 = 95 , MAV_COMP_ID_USER72 = 96 , MAV_COMP_ID_USER73 = 97 , MAV_COMP_ID_USER74 = 98 , MAV_COMP_ID_USER75 = 99 , MAV_COMP_ID_CAMERA = 100 , MAV_COMP_ID_CAMERA2 = 101 , MAV_COMP_ID_CAMERA3 = 102 , MAV_COMP_ID_CAMERA4 = 103 , MAV_COMP_ID_CAMERA5 = 104 , MAV_COMP_ID_CAMERA6 = 105 , MAV_COMP_ID_SERVO1 = 140 , MAV_COMP_ID_SERVO2 = 141 , MAV_COMP_ID_SERVO3 = 142 , MAV_COMP_ID_SERVO4 = 143 , MAV_COMP_ID_SERVO5 = 144 , MAV_COMP_ID_SERVO6 = 145 , MAV_COMP_ID_SERVO7 = 146 , MAV_COMP_ID_SERVO8 = 147 , MAV_COMP_ID_SERVO9 = 148 , MAV_COMP_ID_SERVO10 = 149 , MAV_COMP_ID_SERVO11 = 150 , MAV_COMP_ID_SERVO12 = 151 , MAV_COMP_ID_SERVO13 = 152 , MAV_COMP_ID_SERVO14 = 153 , MAV_COMP_ID_GIMBAL = 154 , MAV_COMP_ID_LOG = 155 , MAV_COMP_ID_ADSB = 156 , MAV_COMP_ID_OSD = 157 , MAV_COMP_ID_PERIPHERAL = 158 , MAV_COMP_ID_QX1_GIMBAL = 159 , MAV_COMP_ID_FLARM = 160 , MAV_COMP_ID_PARACHUTE = 161 , MAV_COMP_ID_WINCH = 169 , MAV_COMP_ID_GIMBAL2 = 171 , MAV_COMP_ID_GIMBAL3 = 172 , MAV_COMP_ID_GIMBAL4 = 173 , MAV_COMP_ID_GIMBAL5 = 174 , MAV_COMP_ID_GIMBAL6 = 175 , MAV_COMP_ID_BATTERY = 180 , MAV_COMP_ID_BATTERY2 = 181 , MAV_COMP_ID_MAVCAN = 189 , MAV_COMP_ID_MISSIONPLANNER = 190 , MAV_COMP_ID_ONBOARD_COMPUTER = 191 , MAV_COMP_ID_ONBOARD_COMPUTER2 = 192 , MAV_COMP_ID_ONBOARD_COMPUTER3 = 193 , MAV_COMP_ID_ONBOARD_COMPUTER4 = 194 , MAV_COMP_ID_PATHPLANNER = 195 , MAV_COMP_ID_OBSTACLE_AVOIDANCE = 196 , MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY = 197 , MAV_COMP_ID_PAIRING_MANAGER = 198 , MAV_COMP_ID_IMU = 200 , MAV_COMP_ID_IMU_2 = 201 , MAV_COMP_ID_IMU_3 = 202 , MAV_COMP_ID_GPS = 220 , MAV_COMP_ID_GPS2 = 221 , MAV_COMP_ID_ODID_TXRX_1 = 236 , MAV_COMP_ID_ODID_TXRX_2 = 237 , MAV_COMP_ID_ODID_TXRX_3 = 238 , MAV_COMP_ID_UDP_BRIDGE = 240 , MAV_COMP_ID_UART_BRIDGE = 241 , MAV_COMP_ID_TUNNEL_NODE = 242 , MAV_COMP_ID_SYSTEM_CONTROL = 250 , } impl MavComponent { pub const DEFAULT : Self = Self :: MAV_COMP_ID_ALL ; } impl Default for MavComponent { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceCapFlags : u16 { const GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT = 1 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_NEUTRAL = 2 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_AXIS = 4 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_FOLLOW = 8 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_LOCK = 16 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_AXIS = 32 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_FOLLOW = 64 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_LOCK = 128 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_AXIS = 256 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_FOLLOW = 512 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_LOCK = 1024 ; const GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_INFINITE_YAW = 2048 ; const GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME = 4096 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_RC_INPUTS = 8192 ; } } impl GimbalDeviceCapFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT ; } impl Default for GimbalDeviceCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavLandedState { MAV_LANDED_STATE_UNDEFINED = 0 , MAV_LANDED_STATE_ON_GROUND = 1 , MAV_LANDED_STATE_IN_AIR = 2 , MAV_LANDED_STATE_TAKEOFF = 3 , MAV_LANDED_STATE_LANDING = 4 , } impl MavLandedState { pub const DEFAULT : Self = Self :: MAV_LANDED_STATE_UNDEFINED ; } impl Default for MavLandedState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularStatusFlag { CELLULAR_STATUS_FLAG_UNKNOWN = 0 , CELLULAR_STATUS_FLAG_FAILED = 1 , CELLULAR_STATUS_FLAG_INITIALIZING = 2 , CELLULAR_STATUS_FLAG_LOCKED = 3 , CELLULAR_STATUS_FLAG_DISABLED = 4 , CELLULAR_STATUS_FLAG_DISABLING = 5 , CELLULAR_STATUS_FLAG_ENABLING = 6 , CELLULAR_STATUS_FLAG_ENABLED = 7 , CELLULAR_STATUS_FLAG_SEARCHING = 8 , CELLULAR_STATUS_FLAG_REGISTERED = 9 , CELLULAR_STATUS_FLAG_DISCONNECTING = 10 , CELLULAR_STATUS_FLAG_CONNECTING = 11 , CELLULAR_STATUS_FLAG_CONNECTED = 12 , } impl CellularStatusFlag { pub const DEFAULT : Self = Self :: CELLULAR_STATUS_FLAG_UNKNOWN ; } impl Default for CellularStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum OrbitYawBehaviour { ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER = 0 , ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING = 1 , ORBIT_YAW_BEHAVIOUR_UNCONTROLLED = 2 , ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE = 3 , ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED = 4 , } impl OrbitYawBehaviour { pub const DEFAULT : Self = Self :: ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER ; } impl Default for OrbitYawBehaviour { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavResult { MAV_RESULT_ACCEPTED = 0 , MAV_RESULT_TEMPORARILY_REJECTED = 1 , MAV_RESULT_DENIED = 2 , MAV_RESULT_UNSUPPORTED = 3 , MAV_RESULT_FAILED = 4 , MAV_RESULT_IN_PROGRESS = 5 , MAV_RESULT_CANCELLED = 6 , } impl MavResult { pub const DEFAULT : Self = Self :: MAV_RESULT_ACCEPTED ; } impl Default for MavResult { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UtmFlightState { UTM_FLIGHT_STATE_UNKNOWN = 1 , UTM_FLIGHT_STATE_GROUND = 2 , UTM_FLIGHT_STATE_AIRBORNE = 3 , UTM_FLIGHT_STATE_EMERGENCY = 16 , UTM_FLIGHT_STATE_NOCTRL = 32 , } impl UtmFlightState { pub const DEFAULT : Self = Self :: UTM_FLIGHT_STATE_UNKNOWN ; } impl Default for UtmFlightState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingTargetData { CAMERA_TRACKING_TARGET_DATA_NONE = 0 , CAMERA_TRACKING_TARGET_DATA_EMBEDDED = 1 , CAMERA_TRACKING_TARGET_DATA_RENDERED = 2 , CAMERA_TRACKING_TARGET_DATA_IN_STATUS = 4 , } impl CameraTrackingTargetData { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_TARGET_DATA_NONE ; } impl Default for CameraTrackingTargetData { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WifiConfigApMode { WIFI_CONFIG_AP_MODE_UNDEFINED = 0 , WIFI_CONFIG_AP_MODE_AP = 1 , WIFI_CONFIG_AP_MODE_STATION = 2 , WIFI_CONFIG_AP_MODE_DISABLED = 3 , } impl WifiConfigApMode { pub const DEFAULT : Self = Self :: WIFI_CONFIG_AP_MODE_UNDEFINED ; } impl Default for WifiConfigApMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryChargeState { MAV_BATTERY_CHARGE_STATE_UNDEFINED = 0 , MAV_BATTERY_CHARGE_STATE_OK = 1 , MAV_BATTERY_CHARGE_STATE_LOW = 2 , MAV_BATTERY_CHARGE_STATE_CRITICAL = 3 , MAV_BATTERY_CHARGE_STATE_EMERGENCY = 4 , MAV_BATTERY_CHARGE_STATE_FAILED = 5 , MAV_BATTERY_CHARGE_STATE_UNHEALTHY = 6 , MAV_BATTERY_CHARGE_STATE_CHARGING = 7 , } impl MavBatteryChargeState { pub const DEFAULT : Self = Self :: MAV_BATTERY_CHARGE_STATE_UNDEFINED ; } impl Default for MavBatteryChargeState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceAction { FENCE_ACTION_NONE = 0 , FENCE_ACTION_GUIDED = 1 , FENCE_ACTION_REPORT = 2 , FENCE_ACTION_GUIDED_THR_PASS = 3 , FENCE_ACTION_RTL = 4 , FENCE_ACTION_HOLD = 5 , FENCE_ACTION_TERMINATE = 6 , FENCE_ACTION_LAND = 7 , } impl FenceAction { pub const DEFAULT : Self = Self :: FENCE_ACTION_NONE ; } impl Default for FenceAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageStatus { STORAGE_STATUS_EMPTY = 0 , STORAGE_STATUS_UNFORMATTED = 1 , STORAGE_STATUS_READY = 2 , STORAGE_STATUS_NOT_SUPPORTED = 3 , } impl StorageStatus { pub const DEFAULT : Self = Self :: STORAGE_STATUS_EMPTY ; } impl Default for StorageStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavcanNodeMode { UAVCAN_NODE_MODE_OPERATIONAL = 0 , UAVCAN_NODE_MODE_INITIALIZATION = 1 , UAVCAN_NODE_MODE_MAINTENANCE = 2 , UAVCAN_NODE_MODE_SOFTWARE_UPDATE = 3 , UAVCAN_NODE_MODE_OFFLINE = 7 , } impl UavcanNodeMode { pub const DEFAULT : Self = Self :: UAVCAN_NODE_MODE_OPERATIONAL ; } impl Default for UavcanNodeMode { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavPowerStatus : u16 { const MAV_POWER_STATUS_BRICK_VALID = 1 ; const MAV_POWER_STATUS_SERVO_VALID = 2 ; const MAV_POWER_STATUS_USB_CONNECTED = 4 ; const MAV_POWER_STATUS_PERIPH_OVERCURRENT = 8 ; const MAV_POWER_STATUS_PERIPH_HIPOWER_OVERCURRENT = 16 ; const MAV_POWER_STATUS_CHANGED = 32 ; } } impl MavPowerStatus { pub const DEFAULT : Self = Self :: MAV_POWER_STATUS_BRICK_VALID ; } impl Default for MavPowerStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum NavVtolLandOptions { NAV_VTOL_LAND_OPTIONS_DEFAULT = 0 , NAV_VTOL_LAND_OPTIONS_FW_DESCENT = 1 , NAV_VTOL_LAND_OPTIONS_HOVER_DESCENT = 2 , } impl NavVtolLandOptions { pub const DEFAULT : Self = Self :: NAV_VTOL_LAND_OPTIONS_DEFAULT ; } impl Default for NavVtolLandOptions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavState { MAV_STATE_UNINIT = 0 , MAV_STATE_BOOT = 1 , MAV_STATE_CALIBRATING = 2 , MAV_STATE_STANDBY = 3 , MAV_STATE_ACTIVE = 4 , MAV_STATE_CRITICAL = 5 , MAV_STATE_EMERGENCY = 6 , MAV_STATE_POWEROFF = 7 , MAV_STATE_FLIGHT_TERMINATION = 8 , } impl MavState { pub const DEFAULT : Self = Self :: MAV_STATE_UNINIT ; } impl Default for MavState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidIdType { MAV_ODID_ID_TYPE_NONE = 0 , MAV_ODID_ID_TYPE_SERIAL_NUMBER = 1 , MAV_ODID_ID_TYPE_CAA_REGISTRATION_ID = 2 , MAV_ODID_ID_TYPE_UTM_ASSIGNED_UUID = 3 , MAV_ODID_ID_TYPE_SPECIFIC_SESSION_ID = 4 , } impl MavOdidIdType { pub const DEFAULT : Self = Self :: MAV_ODID_ID_TYPE_NONE ; } impl Default for MavOdidIdType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PositionTargetTypemask : u16 { const POSITION_TARGET_TYPEMASK_X_IGNORE = 1 ; const POSITION_TARGET_TYPEMASK_Y_IGNORE = 2 ; const POSITION_TARGET_TYPEMASK_Z_IGNORE = 4 ; const POSITION_TARGET_TYPEMASK_VX_IGNORE = 8 ; const POSITION_TARGET_TYPEMASK_VY_IGNORE = 16 ; const POSITION_TARGET_TYPEMASK_VZ_IGNORE = 32 ; const POSITION_TARGET_TYPEMASK_AX_IGNORE = 64 ; const POSITION_TARGET_TYPEMASK_AY_IGNORE = 128 ; const POSITION_TARGET_TYPEMASK_AZ_IGNORE = 256 ; const POSITION_TARGET_TYPEMASK_FORCE_SET = 512 ; const POSITION_TARGET_TYPEMASK_YAW_IGNORE = 1024 ; const POSITION_TARGET_TYPEMASK_YAW_RATE_IGNORE = 2048 ; } } impl PositionTargetTypemask { pub const DEFAULT : Self = Self :: POSITION_TARGET_TYPEMASK_X_IGNORE ; } impl Default for PositionTargetTypemask { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AisType { AIS_TYPE_UNKNOWN = 0 , AIS_TYPE_RESERVED_1 = 1 , AIS_TYPE_RESERVED_2 = 2 , AIS_TYPE_RESERVED_3 = 3 , AIS_TYPE_RESERVED_4 = 4 , AIS_TYPE_RESERVED_5 = 5 , AIS_TYPE_RESERVED_6 = 6 , AIS_TYPE_RESERVED_7 = 7 , AIS_TYPE_RESERVED_8 = 8 , AIS_TYPE_RESERVED_9 = 9 , AIS_TYPE_RESERVED_10 = 10 , AIS_TYPE_RESERVED_11 = 11 , AIS_TYPE_RESERVED_12 = 12 , AIS_TYPE_RESERVED_13 = 13 , AIS_TYPE_RESERVED_14 = 14 , AIS_TYPE_RESERVED_15 = 15 , AIS_TYPE_RESERVED_16 = 16 , AIS_TYPE_RESERVED_17 = 17 , AIS_TYPE_RESERVED_18 = 18 , AIS_TYPE_RESERVED_19 = 19 , AIS_TYPE_WIG = 20 , AIS_TYPE_WIG_HAZARDOUS_A = 21 , AIS_TYPE_WIG_HAZARDOUS_B = 22 , AIS_TYPE_WIG_HAZARDOUS_C = 23 , AIS_TYPE_WIG_HAZARDOUS_D = 24 , AIS_TYPE_WIG_RESERVED_1 = 25 , AIS_TYPE_WIG_RESERVED_2 = 26 , AIS_TYPE_WIG_RESERVED_3 = 27 , AIS_TYPE_WIG_RESERVED_4 = 28 , AIS_TYPE_WIG_RESERVED_5 = 29 , AIS_TYPE_FISHING = 30 , AIS_TYPE_TOWING = 31 , AIS_TYPE_TOWING_LARGE = 32 , AIS_TYPE_DREDGING = 33 , AIS_TYPE_DIVING = 34 , AIS_TYPE_MILITARY = 35 , AIS_TYPE_SAILING = 36 , AIS_TYPE_PLEASURE = 37 , AIS_TYPE_RESERVED_20 = 38 , AIS_TYPE_RESERVED_21 = 39 , AIS_TYPE_HSC = 40 , AIS_TYPE_HSC_HAZARDOUS_A = 41 , AIS_TYPE_HSC_HAZARDOUS_B = 42 , AIS_TYPE_HSC_HAZARDOUS_C = 43 , AIS_TYPE_HSC_HAZARDOUS_D = 44 , AIS_TYPE_HSC_RESERVED_1 = 45 , AIS_TYPE_HSC_RESERVED_2 = 46 , AIS_TYPE_HSC_RESERVED_3 = 47 , AIS_TYPE_HSC_RESERVED_4 = 48 , AIS_TYPE_HSC_UNKNOWN = 49 , AIS_TYPE_PILOT = 50 , AIS_TYPE_SAR = 51 , AIS_TYPE_TUG = 52 , AIS_TYPE_PORT_TENDER = 53 , AIS_TYPE_ANTI_POLLUTION = 54 , AIS_TYPE_LAW_ENFORCEMENT = 55 , AIS_TYPE_SPARE_LOCAL_1 = 56 , AIS_TYPE_SPARE_LOCAL_2 = 57 , AIS_TYPE_MEDICAL_TRANSPORT = 58 , AIS_TYPE_NONECOMBATANT = 59 , AIS_TYPE_PASSENGER = 60 , AIS_TYPE_PASSENGER_HAZARDOUS_A = 61 , AIS_TYPE_PASSENGER_HAZARDOUS_B = 62 , AIS_TYPE_PASSENGER_HAZARDOUS_C = 63 , AIS_TYPE_PASSENGER_HAZARDOUS_D = 64 , AIS_TYPE_PASSENGER_RESERVED_1 = 65 , AIS_TYPE_PASSENGER_RESERVED_2 = 66 , AIS_TYPE_PASSENGER_RESERVED_3 = 67 , AIS_TYPE_PASSENGER_RESERVED_4 = 68 , AIS_TYPE_PASSENGER_UNKNOWN = 69 , AIS_TYPE_CARGO = 70 , AIS_TYPE_CARGO_HAZARDOUS_A = 71 , AIS_TYPE_CARGO_HAZARDOUS_B = 72 , AIS_TYPE_CARGO_HAZARDOUS_C = 73 , AIS_TYPE_CARGO_HAZARDOUS_D = 74 , AIS_TYPE_CARGO_RESERVED_1 = 75 , AIS_TYPE_CARGO_RESERVED_2 = 76 , AIS_TYPE_CARGO_RESERVED_3 = 77 , AIS_TYPE_CARGO_RESERVED_4 = 78 , AIS_TYPE_CARGO_UNKNOWN = 79 , AIS_TYPE_TANKER = 80 , AIS_TYPE_TANKER_HAZARDOUS_A = 81 , AIS_TYPE_TANKER_HAZARDOUS_B = 82 , AIS_TYPE_TANKER_HAZARDOUS_C = 83 , AIS_TYPE_TANKER_HAZARDOUS_D = 84 , AIS_TYPE_TANKER_RESERVED_1 = 85 , AIS_TYPE_TANKER_RESERVED_2 = 86 , AIS_TYPE_TANKER_RESERVED_3 = 87 , AIS_TYPE_TANKER_RESERVED_4 = 88 , AIS_TYPE_TANKER_UNKNOWN = 89 , AIS_TYPE_OTHER = 90 , AIS_TYPE_OTHER_HAZARDOUS_A = 91 , AIS_TYPE_OTHER_HAZARDOUS_B = 92 , AIS_TYPE_OTHER_HAZARDOUS_C = 93 , AIS_TYPE_OTHER_HAZARDOUS_D = 94 , AIS_TYPE_OTHER_RESERVED_1 = 95 , AIS_TYPE_OTHER_RESERVED_2 = 96 , AIS_TYPE_OTHER_RESERVED_3 = 97 , AIS_TYPE_OTHER_RESERVED_4 = 98 , AIS_TYPE_OTHER_UNKNOWN = 99 , } impl AisType { pub const DEFAULT : Self = Self :: AIS_TYPE_UNKNOWN ; } impl Default for AisType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GimbalManagerFlags { GIMBAL_MANAGER_FLAGS_RETRACT = 1 , GIMBAL_MANAGER_FLAGS_NEUTRAL = 2 , GIMBAL_MANAGER_FLAGS_ROLL_LOCK = 4 , GIMBAL_MANAGER_FLAGS_PITCH_LOCK = 8 , GIMBAL_MANAGER_FLAGS_YAW_LOCK = 16 , GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME = 32 , GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME = 64 , GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME = 128 , GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE = 256 , GIMBAL_MANAGER_FLAGS_RC_MIXED = 512 , } impl GimbalManagerFlags { pub const DEFAULT : Self = Self :: GIMBAL_MANAGER_FLAGS_RETRACT ; } impl Default for GimbalManagerFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavGeneratorStatusFlag : u64 { const MAV_GENERATOR_STATUS_FLAG_OFF = 1 ; const MAV_GENERATOR_STATUS_FLAG_READY = 2 ; const MAV_GENERATOR_STATUS_FLAG_GENERATING = 4 ; const MAV_GENERATOR_STATUS_FLAG_CHARGING = 8 ; const MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER = 16 ; const MAV_GENERATOR_STATUS_FLAG_MAXPOWER = 32 ; const MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING = 64 ; const MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT = 128 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING = 256 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT = 512 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT = 1024 ; const MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT = 2048 ; const MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING = 4096 ; const MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING = 8192 ; const MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT = 16384 ; const MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT = 32768 ; const MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT = 65536 ; const MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT = 131072 ; const MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT = 262144 ; const MAV_GENERATOR_STATUS_FLAG_START_INHIBITED = 524288 ; const MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED = 1048576 ; const MAV_GENERATOR_STATUS_FLAG_WARMING_UP = 2097152 ; const MAV_GENERATOR_STATUS_FLAG_IDLE = 4194304 ; } } impl MavGeneratorStatusFlag { pub const DEFAULT : Self = Self :: MAV_GENERATOR_STATUS_FLAG_OFF ; } impl Default for MavGeneratorStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMissionResult { MAV_MISSION_ACCEPTED = 0 , MAV_MISSION_ERROR = 1 , MAV_MISSION_UNSUPPORTED_FRAME = 2 , MAV_MISSION_UNSUPPORTED = 3 , MAV_MISSION_NO_SPACE = 4 , MAV_MISSION_INVALID = 5 , MAV_MISSION_INVALID_PARAM1 = 6 , MAV_MISSION_INVALID_PARAM2 = 7 , MAV_MISSION_INVALID_PARAM3 = 8 , MAV_MISSION_INVALID_PARAM4 = 9 , MAV_MISSION_INVALID_PARAM5_X = 10 , MAV_MISSION_INVALID_PARAM6_Y = 11 , MAV_MISSION_INVALID_PARAM7 = 12 , MAV_MISSION_INVALID_SEQUENCE = 13 , MAV_MISSION_DENIED = 14 , MAV_MISSION_OPERATION_CANCELLED = 15 , } impl MavMissionResult { pub const DEFAULT : Self = Self :: MAV_MISSION_ACCEPTED ; } impl Default for MavMissionResult { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryFault { MAV_BATTERY_FAULT_DEEP_DISCHARGE = 1 , MAV_BATTERY_FAULT_SPIKES = 2 , MAV_BATTERY_FAULT_CELL_FAIL = 4 , MAV_BATTERY_FAULT_OVER_CURRENT = 8 , MAV_BATTERY_FAULT_OVER_TEMPERATURE = 16 , MAV_BATTERY_FAULT_UNDER_TEMPERATURE = 32 , MAV_BATTERY_FAULT_INCOMPATIBLE_VOLTAGE = 64 , MAV_BATTERY_FAULT_INCOMPATIBLE_FIRMWARE = 128 , BATTERY_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION = 256 , } impl MavBatteryFault { pub const DEFAULT : Self = Self :: MAV_BATTERY_FAULT_DEEP_DISCHARGE ; } impl Default for MavBatteryFault { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavProtocolCapability : u64 { const MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT = 1 ; const MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT = 2 ; const MAV_PROTOCOL_CAPABILITY_MISSION_INT = 4 ; const MAV_PROTOCOL_CAPABILITY_COMMAND_INT = 8 ; const MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE = 16 ; const MAV_PROTOCOL_CAPABILITY_FTP = 32 ; const MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET = 64 ; const MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED = 128 ; const MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT = 256 ; const MAV_PROTOCOL_CAPABILITY_TERRAIN = 512 ; const MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET = 1024 ; const MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION = 2048 ; const MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION = 4096 ; const MAV_PROTOCOL_CAPABILITY_MAVLINK2 = 8192 ; const MAV_PROTOCOL_CAPABILITY_MISSION_FENCE = 16384 ; const MAV_PROTOCOL_CAPABILITY_MISSION_RALLY = 32768 ; const MAV_PROTOCOL_CAPABILITY_RESERVED2 = 65536 ; const MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST = 131072 ; } } impl MavProtocolCapability { pub const DEFAULT : Self = Self :: MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT ; } impl Default for MavProtocolCapability { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EscFailureFlags : u16 { const ESC_FAILURE_NONE = 0 ; const ESC_FAILURE_OVER_CURRENT = 1 ; const ESC_FAILURE_OVER_VOLTAGE = 2 ; const ESC_FAILURE_OVER_TEMPERATURE = 4 ; const ESC_FAILURE_OVER_RPM = 8 ; const ESC_FAILURE_INCONSISTENT_CMD = 16 ; const ESC_FAILURE_MOTOR_STUCK = 32 ; const ESC_FAILURE_GENERIC = 64 ; } } impl EscFailureFlags { pub const DEFAULT : Self = Self :: ESC_FAILURE_NONE ; } impl Default for EscFailureFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EstimatorStatusFlags : u16 { const ESTIMATOR_ATTITUDE = 1 ; const ESTIMATOR_VELOCITY_HORIZ = 2 ; const ESTIMATOR_VELOCITY_VERT = 4 ; const ESTIMATOR_POS_HORIZ_REL = 8 ; const ESTIMATOR_POS_HORIZ_ABS = 16 ; const ESTIMATOR_POS_VERT_ABS = 32 ; const ESTIMATOR_POS_VERT_AGL = 64 ; const ESTIMATOR_CONST_POS_MODE = 128 ; const ESTIMATOR_PRED_POS_HORIZ_REL = 256 ; const ESTIMATOR_PRED_POS_HORIZ_ABS = 512 ; const ESTIMATOR_GPS_GLITCH = 1024 ; const ESTIMATOR_ACCEL_ERROR = 2048 ; } } impl EstimatorStatusFlags { pub const DEFAULT : Self = Self :: ESTIMATOR_ATTITUDE ; } impl Default for EstimatorStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidUaType { MAV_ODID_UA_TYPE_NONE = 0 , MAV_ODID_UA_TYPE_AEROPLANE = 1 , MAV_ODID_UA_TYPE_HELICOPTER_OR_MULTIROTOR = 2 , MAV_ODID_UA_TYPE_GYROPLANE = 3 , MAV_ODID_UA_TYPE_HYBRID_LIFT = 4 , MAV_ODID_UA_TYPE_ORNITHOPTER = 5 , MAV_ODID_UA_TYPE_GLIDER = 6 , MAV_ODID_UA_TYPE_KITE = 7 , MAV_ODID_UA_TYPE_FREE_BALLOON = 8 , MAV_ODID_UA_TYPE_CAPTIVE_BALLOON = 9 , MAV_ODID_UA_TYPE_AIRSHIP = 10 , MAV_ODID_UA_TYPE_FREE_FALL_PARACHUTE = 11 , MAV_ODID_UA_TYPE_ROCKET = 12 , MAV_ODID_UA_TYPE_TETHERED_POWERED_AIRCRAFT = 13 , MAV_ODID_UA_TYPE_GROUND_OBSTACLE = 14 , MAV_ODID_UA_TYPE_OTHER = 15 , } impl MavOdidUaType { pub const DEFAULT : Self = Self :: MAV_ODID_UA_TYPE_NONE ; } impl Default for MavOdidUaType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmdAck { MAV_CMD_ACK_OK = 0 , MAV_CMD_ACK_ERR_FAIL = 1 , MAV_CMD_ACK_ERR_ACCESS_DENIED = 2 , MAV_CMD_ACK_ERR_NOT_SUPPORTED = 3 , MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED = 4 , MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE = 5 , MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE = 6 , MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE = 7 , MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE = 8 , } impl MavCmdAck { pub const DEFAULT : Self = Self :: MAV_CMD_ACK_OK ; } impl Default for MavCmdAck { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MagCalStatus { MAG_CAL_NOT_STARTED = 0 , MAG_CAL_WAITING_TO_START = 1 , MAG_CAL_RUNNING_STEP_ONE = 2 , MAG_CAL_RUNNING_STEP_TWO = 3 , MAG_CAL_SUCCESS = 4 , MAG_CAL_FAILED = 5 , MAG_CAL_BAD_ORIENTATION = 6 , MAG_CAL_BAD_RADIUS = 7 , } impl MagCalStatus { pub const DEFAULT : Self = Self :: MAG_CAL_NOT_STARTED ; } impl Default for MagCalStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidStatus { MAV_ODID_STATUS_UNDECLARED = 0 , MAV_ODID_STATUS_GROUND = 1 , MAV_ODID_STATUS_AIRBORNE = 2 , MAV_ODID_STATUS_EMERGENCY = 3 , MAV_ODID_STATUS_REMOTE_ID_SYSTEM_FAILURE = 4 , } impl MavOdidStatus { pub const DEFAULT : Self = Self :: MAV_ODID_STATUS_UNDECLARED ; } impl Default for MavOdidStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GripperActions { GRIPPER_ACTION_RELEASE = 0 , GRIPPER_ACTION_GRAB = 1 , } impl GripperActions { pub const DEFAULT : Self = Self :: GRIPPER_ACTION_RELEASE ; } impl Default for GripperActions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavEventErrorReason { MAV_EVENT_ERROR_REASON_UNAVAILABLE = 0 , } impl MavEventErrorReason { pub const DEFAULT : Self = Self :: MAV_EVENT_ERROR_REASON_UNAVAILABLE ; } impl Default for MavEventErrorReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WifiConfigApResponse { WIFI_CONFIG_AP_RESPONSE_UNDEFINED = 0 , WIFI_CONFIG_AP_RESPONSE_ACCEPTED = 1 , WIFI_CONFIG_AP_RESPONSE_REJECTED = 2 , WIFI_CONFIG_AP_RESPONSE_MODE_ERROR = 3 , WIFI_CONFIG_AP_RESPONSE_SSID_ERROR = 4 , WIFI_CONFIG_AP_RESPONSE_PASSWORD_ERROR = 5 , } impl WifiConfigApResponse { pub const DEFAULT : Self = Self :: WIFI_CONFIG_AP_RESPONSE_UNDEFINED ; } impl Default for WifiConfigApResponse { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavlinkDataStreamType { MAVLINK_DATA_STREAM_IMG_JPEG = 0 , MAVLINK_DATA_STREAM_IMG_BMP = 1 , MAVLINK_DATA_STREAM_IMG_RAW8U = 2 , MAVLINK_DATA_STREAM_IMG_RAW32U = 3 , MAVLINK_DATA_STREAM_IMG_PGM = 4 , MAVLINK_DATA_STREAM_IMG_PNG = 5 , } impl MavlinkDataStreamType { pub const DEFAULT : Self = Self :: MAVLINK_DATA_STREAM_IMG_JPEG ; } impl Default for MavlinkDataStreamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageUsageFlag { STORAGE_USAGE_FLAG_SET = 1 , STORAGE_USAGE_FLAG_PHOTO = 2 , STORAGE_USAGE_FLAG_VIDEO = 4 , STORAGE_USAGE_FLAG_LOGS = 8 , } impl StorageUsageFlag { pub const DEFAULT : Self = Self :: STORAGE_USAGE_FLAG_SET ; } impl Default for StorageUsageFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavParamExtType { MAV_PARAM_EXT_TYPE_UINT8 = 1 , MAV_PARAM_EXT_TYPE_INT8 = 2 , MAV_PARAM_EXT_TYPE_UINT16 = 3 , MAV_PARAM_EXT_TYPE_INT16 = 4 , MAV_PARAM_EXT_TYPE_UINT32 = 5 , MAV_PARAM_EXT_TYPE_INT32 = 6 , MAV_PARAM_EXT_TYPE_UINT64 = 7 , MAV_PARAM_EXT_TYPE_INT64 = 8 , MAV_PARAM_EXT_TYPE_REAL32 = 9 , MAV_PARAM_EXT_TYPE_REAL64 = 10 , MAV_PARAM_EXT_TYPE_CUSTOM = 11 , } impl MavParamExtType { pub const DEFAULT : Self = Self :: MAV_PARAM_EXT_TYPE_UINT8 ; } impl Default for MavParamExtType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDoRepositionFlags { MAV_DO_REPOSITION_FLAGS_CHANGE_MODE = 1 , } impl MavDoRepositionFlags { pub const DEFAULT : Self = Self :: MAV_DO_REPOSITION_FLAGS_CHANGE_MODE ; } impl Default for MavDoRepositionFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CameraCapFlags : u32 { const CAMERA_CAP_FLAGS_CAPTURE_VIDEO = 1 ; const CAMERA_CAP_FLAGS_CAPTURE_IMAGE = 2 ; const CAMERA_CAP_FLAGS_HAS_MODES = 4 ; const CAMERA_CAP_FLAGS_CAN_CAPTURE_IMAGE_IN_VIDEO_MODE = 8 ; const CAMERA_CAP_FLAGS_CAN_CAPTURE_VIDEO_IN_IMAGE_MODE = 16 ; const CAMERA_CAP_FLAGS_HAS_IMAGE_SURVEY_MODE = 32 ; const CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM = 64 ; const CAMERA_CAP_FLAGS_HAS_BASIC_FOCUS = 128 ; const CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM = 256 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_POINT = 512 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE = 1024 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_GEO_STATUS = 2048 ; } } impl CameraCapFlags { pub const DEFAULT : Self = Self :: CAMERA_CAP_FLAGS_CAPTURE_VIDEO ; } impl Default for CameraCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ParachuteAction { PARACHUTE_DISABLE = 0 , PARACHUTE_ENABLE = 1 , PARACHUTE_RELEASE = 2 , } impl ParachuteAction { pub const DEFAULT : Self = Self :: PARACHUTE_DISABLE ; } impl Default for ParachuteAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VideoStreamStatusFlags { VIDEO_STREAM_STATUS_FLAGS_RUNNING = 1 , VIDEO_STREAM_STATUS_FLAGS_THERMAL = 2 , } impl VideoStreamStatusFlags { pub const DEFAULT : Self = Self :: VIDEO_STREAM_STATUS_FLAGS_RUNNING ; } impl Default for VideoStreamStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraZoomType { ZOOM_TYPE_STEP = 0 , ZOOM_TYPE_CONTINUOUS = 1 , ZOOM_TYPE_RANGE = 2 , ZOOM_TYPE_FOCAL_LENGTH = 3 , } impl CameraZoomType { pub const DEFAULT : Self = Self :: ZOOM_TYPE_STEP ; } impl Default for CameraZoomType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidVerAcc { MAV_ODID_VER_ACC_UNKNOWN = 0 , MAV_ODID_VER_ACC_150_METER = 1 , MAV_ODID_VER_ACC_45_METER = 2 , MAV_ODID_VER_ACC_25_METER = 3 , MAV_ODID_VER_ACC_10_METER = 4 , MAV_ODID_VER_ACC_3_METER = 5 , MAV_ODID_VER_ACC_1_METER = 6 , } impl MavOdidVerAcc { pub const DEFAULT : Self = Self :: MAV_ODID_VER_ACC_UNKNOWN ; } impl Default for MavOdidVerAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CanFilterOp { CAN_FILTER_REPLACE = 0 , CAN_FILTER_ADD = 1 , CAN_FILTER_REMOVE = 2 , } impl CanFilterOp { pub const DEFAULT : Self = Self :: CAN_FILTER_REPLACE ; } impl Default for CanFilterOp { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FailureType { FAILURE_TYPE_OK = 0 , FAILURE_TYPE_OFF = 1 , FAILURE_TYPE_STUCK = 2 , FAILURE_TYPE_GARBAGE = 3 , FAILURE_TYPE_WRONG = 4 , FAILURE_TYPE_SLOW = 5 , FAILURE_TYPE_DELAYED = 6 , FAILURE_TYPE_INTERMITTENT = 7 , } impl FailureType { pub const DEFAULT : Self = Self :: FAILURE_TYPE_OK ; } impl Default for FailureType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMode { MAV_MODE_PREFLIGHT = 0 , MAV_MODE_STABILIZE_DISARMED = 80 , MAV_MODE_STABILIZE_ARMED = 208 , MAV_MODE_MANUAL_DISARMED = 64 , MAV_MODE_MANUAL_ARMED = 192 , MAV_MODE_GUIDED_DISARMED = 88 , MAV_MODE_GUIDED_ARMED = 216 , MAV_MODE_AUTO_DISARMED = 92 , MAV_MODE_AUTO_ARMED = 220 , MAV_MODE_TEST_DISARMED = 66 , MAV_MODE_TEST_ARMED = 194 , } impl MavMode { pub const DEFAULT : Self = Self :: MAV_MODE_PREFLIGHT ; } impl Default for MavMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidTimeAcc { MAV_ODID_TIME_ACC_UNKNOWN = 0 , MAV_ODID_TIME_ACC_0_1_SECOND = 1 , MAV_ODID_TIME_ACC_0_2_SECOND = 2 , MAV_ODID_TIME_ACC_0_3_SECOND = 3 , MAV_ODID_TIME_ACC_0_4_SECOND = 4 , MAV_ODID_TIME_ACC_0_5_SECOND = 5 , MAV_ODID_TIME_ACC_0_6_SECOND = 6 , MAV_ODID_TIME_ACC_0_7_SECOND = 7 , MAV_ODID_TIME_ACC_0_8_SECOND = 8 , MAV_ODID_TIME_ACC_0_9_SECOND = 9 , MAV_ODID_TIME_ACC_1_0_SECOND = 10 , MAV_ODID_TIME_ACC_1_1_SECOND = 11 , MAV_ODID_TIME_ACC_1_2_SECOND = 12 , MAV_ODID_TIME_ACC_1_3_SECOND = 13 , MAV_ODID_TIME_ACC_1_4_SECOND = 14 , MAV_ODID_TIME_ACC_1_5_SECOND = 15 , } impl MavOdidTimeAcc { pub const DEFAULT : Self = Self :: MAV_ODID_TIME_ACC_UNKNOWN ; } impl Default for MavOdidTimeAcc { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavEventCurrentSequenceFlags : u8 { const MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET = 1 ; } } impl MavEventCurrentSequenceFlags { pub const DEFAULT : Self = Self :: MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET ; } impl Default for MavEventCurrentSequenceFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MotorTestOrder { MOTOR_TEST_ORDER_DEFAULT = 0 , MOTOR_TEST_ORDER_SEQUENCE = 1 , MOTOR_TEST_ORDER_BOARD = 2 , } impl MotorTestOrder { pub const DEFAULT : Self = Self :: MOTOR_TEST_ORDER_DEFAULT ; } impl Default for MotorTestOrder { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AdsbFlags : u16 { const ADSB_FLAGS_VALID_COORDS = 1 ; const ADSB_FLAGS_VALID_ALTITUDE = 2 ; const ADSB_FLAGS_VALID_HEADING = 4 ; const ADSB_FLAGS_VALID_VELOCITY = 8 ; const ADSB_FLAGS_VALID_CALLSIGN = 16 ; const ADSB_FLAGS_VALID_SQUAWK = 32 ; const ADSB_FLAGS_SIMULATED = 64 ; const ADSB_FLAGS_VERTICAL_VELOCITY_VALID = 128 ; const ADSB_FLAGS_BARO_VALID = 256 ; const ADSB_FLAGS_SOURCE_UAT = 32768 ; } } impl AdsbFlags { pub const DEFAULT : Self = Self :: ADSB_FLAGS_VALID_COORDS ; } impl Default for AdsbFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFtpErr { MAV_FTP_ERR_NONE = 0 , MAV_FTP_ERR_FAIL = 1 , MAV_FTP_ERR_FAILERRNO = 2 , MAV_FTP_ERR_INVALIDDATASIZE = 3 , MAV_FTP_ERR_INVALIDSESSION = 4 , MAV_FTP_ERR_NOSESSIONSAVAILABLE = 5 , MAV_FTP_ERR_EOF = 6 , MAV_FTP_ERR_UNKNOWNCOMMAND = 7 , MAV_FTP_ERR_FILEEXISTS = 8 , MAV_FTP_ERR_FILEPROTECTED = 9 , MAV_FTP_ERR_FILENOTFOUND = 10 , } impl MavFtpErr { pub const DEFAULT : Self = Self :: MAV_FTP_ERR_NONE ; } impl Default for MavFtpErr { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HlFailureFlag : u16 { const HL_FAILURE_FLAG_GPS = 1 ; const HL_FAILURE_FLAG_DIFFERENTIAL_PRESSURE = 2 ; const HL_FAILURE_FLAG_ABSOLUTE_PRESSURE = 4 ; const HL_FAILURE_FLAG_3D_ACCEL = 8 ; const HL_FAILURE_FLAG_3D_GYRO = 16 ; const HL_FAILURE_FLAG_3D_MAG = 32 ; const HL_FAILURE_FLAG_TERRAIN = 64 ; const HL_FAILURE_FLAG_BATTERY = 128 ; const HL_FAILURE_FLAG_RC_RECEIVER = 256 ; const HL_FAILURE_FLAG_OFFBOARD_LINK = 512 ; const HL_FAILURE_FLAG_ENGINE = 1024 ; const HL_FAILURE_FLAG_GEOFENCE = 2048 ; const HL_FAILURE_FLAG_ESTIMATOR = 4096 ; const HL_FAILURE_FLAG_MISSION = 8192 ; } } impl HlFailureFlag { pub const DEFAULT : Self = Self :: HL_FAILURE_FLAG_GPS ; } impl Default for HlFailureFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AisNavStatus { UNDER_WAY = 0 , AIS_NAV_ANCHORED = 1 , AIS_NAV_UN_COMMANDED = 2 , AIS_NAV_RESTRICTED_MANOEUVERABILITY = 3 , AIS_NAV_DRAUGHT_CONSTRAINED = 4 , AIS_NAV_MOORED = 5 , AIS_NAV_AGROUND = 6 , AIS_NAV_FISHING = 7 , AIS_NAV_SAILING = 8 , AIS_NAV_RESERVED_HSC = 9 , AIS_NAV_RESERVED_WIG = 10 , AIS_NAV_RESERVED_1 = 11 , AIS_NAV_RESERVED_2 = 12 , AIS_NAV_RESERVED_3 = 13 , AIS_NAV_AIS_SART = 14 , AIS_NAV_UNKNOWN = 15 , } impl AisNavStatus { pub const DEFAULT : Self = Self :: UNDER_WAY ; } impl Default for AisNavStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDataStream { MAV_DATA_STREAM_ALL = 0 , MAV_DATA_STREAM_RAW_SENSORS = 1 , MAV_DATA_STREAM_EXTENDED_STATUS = 2 , MAV_DATA_STREAM_RC_CHANNELS = 3 , MAV_DATA_STREAM_RAW_CONTROLLER = 4 , MAV_DATA_STREAM_POSITION = 6 , MAV_DATA_STREAM_EXTRA1 = 10 , MAV_DATA_STREAM_EXTRA2 = 11 , MAV_DATA_STREAM_EXTRA3 = 12 , } impl MavDataStream { pub const DEFAULT : Self = Self :: MAV_DATA_STREAM_ALL ; } impl Default for MavDataStream { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidHeightRef { MAV_ODID_HEIGHT_REF_OVER_TAKEOFF = 0 , MAV_ODID_HEIGHT_REF_OVER_GROUND = 1 , } impl MavOdidHeightRef { pub const DEFAULT : Self = Self :: MAV_ODID_HEIGHT_REF_OVER_TAKEOFF ; } impl Default for MavOdidHeightRef { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalManagerCapFlags : u32 { const GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT = 1 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL = 2 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS = 4 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_FOLLOW = 8 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_LOCK = 16 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS = 32 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_FOLLOW = 64 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_LOCK = 128 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS = 256 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW = 512 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK = 1024 ; const GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_INFINITE_YAW = 2048 ; const GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME = 4096 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_RC_INPUTS = 8192 ; const GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_LOCAL = 65536 ; const GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_GLOBAL = 131072 ; } } impl GimbalManagerCapFlags { pub const DEFAULT : Self = Self :: GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT ; } impl Default for GimbalManagerCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularConfigResponse { CELLULAR_CONFIG_RESPONSE_ACCEPTED = 0 , CELLULAR_CONFIG_RESPONSE_APN_ERROR = 1 , CELLULAR_CONFIG_RESPONSE_PIN_ERROR = 2 , CELLULAR_CONFIG_RESPONSE_REJECTED = 3 , CELLULAR_CONFIG_BLOCKED_PUK_REQUIRED = 4 , } impl CellularConfigResponse { pub const DEFAULT : Self = Self :: CELLULAR_CONFIG_RESPONSE_ACCEPTED ; } impl Default for CellularConfigResponse { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HighresImuUpdatedFlags : u16 { const HIGHRES_IMU_UPDATED_NONE = 0 ; const HIGHRES_IMU_UPDATED_XACC = 1 ; const HIGHRES_IMU_UPDATED_YACC = 2 ; const HIGHRES_IMU_UPDATED_ZACC = 4 ; const HIGHRES_IMU_UPDATED_XGYRO = 8 ; const HIGHRES_IMU_UPDATED_YGYRO = 16 ; const HIGHRES_IMU_UPDATED_ZGYRO = 32 ; const HIGHRES_IMU_UPDATED_XMAG = 64 ; const HIGHRES_IMU_UPDATED_YMAG = 128 ; const HIGHRES_IMU_UPDATED_ZMAG = 256 ; const HIGHRES_IMU_UPDATED_ABS_PRESSURE = 512 ; const HIGHRES_IMU_UPDATED_DIFF_PRESSURE = 1024 ; const HIGHRES_IMU_UPDATED_PRESSURE_ALT = 2048 ; const HIGHRES_IMU_UPDATED_TEMPERATURE = 4096 ; const HIGHRES_IMU_UPDATED_ALL = 65535 ; } } impl HighresImuUpdatedFlags { pub const DEFAULT : Self = Self :: HIGHRES_IMU_UPDATED_NONE ; } impl Default for HighresImuUpdatedFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavArmAuthDeniedReason { MAV_ARM_AUTH_DENIED_REASON_GENERIC = 0 , MAV_ARM_AUTH_DENIED_REASON_NONE = 1 , MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT = 2 , MAV_ARM_AUTH_DENIED_REASON_TIMEOUT = 3 , MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE = 4 , MAV_ARM_AUTH_DENIED_REASON_BAD_WEATHER = 5 , } impl MavArmAuthDeniedReason { pub const DEFAULT : Self = Self :: MAV_ARM_AUTH_DENIED_REASON_GENERIC ; } impl Default for MavArmAuthDeniedReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FailureUnit { FAILURE_UNIT_SENSOR_GYRO = 0 , FAILURE_UNIT_SENSOR_ACCEL = 1 , FAILURE_UNIT_SENSOR_MAG = 2 , FAILURE_UNIT_SENSOR_BARO = 3 , FAILURE_UNIT_SENSOR_GPS = 4 , FAILURE_UNIT_SENSOR_OPTICAL_FLOW = 5 , FAILURE_UNIT_SENSOR_VIO = 6 , FAILURE_UNIT_SENSOR_DISTANCE_SENSOR = 7 , FAILURE_UNIT_SENSOR_AIRSPEED = 8 , FAILURE_UNIT_SYSTEM_BATTERY = 100 , FAILURE_UNIT_SYSTEM_MOTOR = 101 , FAILURE_UNIT_SYSTEM_SERVO = 102 , FAILURE_UNIT_SYSTEM_AVOIDANCE = 103 , FAILURE_UNIT_SYSTEM_RC_SIGNAL = 104 , FAILURE_UNIT_SYSTEM_MAVLINK_SIGNAL = 105 , } impl FailureUnit { pub const DEFAULT : Self = Self :: FAILURE_UNIT_SENSOR_GYRO ; } impl Default for FailureUnit { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SerialControlFlag : u8 { const SERIAL_CONTROL_FLAG_REPLY = 1 ; const SERIAL_CONTROL_FLAG_RESPOND = 2 ; const SERIAL_CONTROL_FLAG_EXCLUSIVE = 4 ; const SERIAL_CONTROL_FLAG_BLOCKING = 8 ; const SERIAL_CONTROL_FLAG_MULTI = 16 ; } } impl SerialControlFlag { pub const DEFAULT : Self = Self :: SERIAL_CONTROL_FLAG_REPLY ; } impl Default for SerialControlFlag { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AisFlags : u16 { const AIS_FLAGS_POSITION_ACCURACY = 1 ; const AIS_FLAGS_VALID_COG = 2 ; const AIS_FLAGS_VALID_VELOCITY = 4 ; const AIS_FLAGS_HIGH_VELOCITY = 8 ; const AIS_FLAGS_VALID_TURN_RATE = 16 ; const AIS_FLAGS_TURN_RATE_SIGN_ONLY = 32 ; const AIS_FLAGS_VALID_DIMENSIONS = 64 ; const AIS_FLAGS_LARGE_BOW_DIMENSION = 128 ; const AIS_FLAGS_LARGE_STERN_DIMENSION = 256 ; const AIS_FLAGS_LARGE_PORT_DIMENSION = 512 ; const AIS_FLAGS_LARGE_STARBOARD_DIMENSION = 1024 ; const AIS_FLAGS_VALID_CALLSIGN = 2048 ; const AIS_FLAGS_VALID_NAME = 4096 ; } } impl AisFlags { pub const DEFAULT : Self = Self :: AIS_FLAGS_POSITION_ACCURACY ; } impl Default for AisFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryMode { MAV_BATTERY_MODE_UNKNOWN = 0 , MAV_BATTERY_MODE_AUTO_DISCHARGING = 1 , MAV_BATTERY_MODE_HOT_SWAP = 2 , } impl MavBatteryMode { pub const DEFAULT : Self = Self :: MAV_BATTERY_MODE_UNKNOWN ; } impl Default for MavBatteryMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavVtolState { MAV_VTOL_STATE_UNDEFINED = 0 , MAV_VTOL_STATE_TRANSITION_TO_FW = 1 , MAV_VTOL_STATE_TRANSITION_TO_MC = 2 , MAV_VTOL_STATE_MC = 3 , MAV_VTOL_STATE_FW = 4 , } impl MavVtolState { pub const DEFAULT : Self = Self :: MAV_VTOL_STATE_UNDEFINED ; } impl Default for MavVtolState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceBreach { FENCE_BREACH_NONE = 0 , FENCE_BREACH_MINALT = 1 , FENCE_BREACH_MAXALT = 2 , FENCE_BREACH_BOUNDARY = 3 , } impl FenceBreach { pub const DEFAULT : Self = Self :: FENCE_BREACH_NONE ; } impl Default for FenceBreach { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HilSensorUpdatedFlags : u32 { const HIL_SENSOR_UPDATED_NONE = 0 ; const HIL_SENSOR_UPDATED_XACC = 1 ; const HIL_SENSOR_UPDATED_YACC = 2 ; const HIL_SENSOR_UPDATED_ZACC = 4 ; const HIL_SENSOR_UPDATED_XGYRO = 8 ; const HIL_SENSOR_UPDATED_YGYRO = 16 ; const HIL_SENSOR_UPDATED_ZGYRO = 32 ; const HIL_SENSOR_UPDATED_XMAG = 64 ; const HIL_SENSOR_UPDATED_YMAG = 128 ; const HIL_SENSOR_UPDATED_ZMAG = 256 ; const HIL_SENSOR_UPDATED_ABS_PRESSURE = 512 ; const HIL_SENSOR_UPDATED_DIFF_PRESSURE = 1024 ; const HIL_SENSOR_UPDATED_PRESSURE_ALT = 2048 ; const HIL_SENSOR_UPDATED_TEMPERATURE = 4096 ; const HIL_SENSOR_UPDATED_RESET = 2147483648 ; } } impl HilSensorUpdatedFlags { pub const DEFAULT : Self = Self :: HIL_SENSOR_UPDATED_NONE ; } impl Default for HilSensorUpdatedFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSensorOrientation { MAV_SENSOR_ROTATION_NONE = 0 , MAV_SENSOR_ROTATION_YAW_45 = 1 , MAV_SENSOR_ROTATION_YAW_90 = 2 , MAV_SENSOR_ROTATION_YAW_135 = 3 , MAV_SENSOR_ROTATION_YAW_180 = 4 , MAV_SENSOR_ROTATION_YAW_225 = 5 , MAV_SENSOR_ROTATION_YAW_270 = 6 , MAV_SENSOR_ROTATION_YAW_315 = 7 , MAV_SENSOR_ROTATION_ROLL_180 = 8 , MAV_SENSOR_ROTATION_ROLL_180_YAW_45 = 9 , MAV_SENSOR_ROTATION_ROLL_180_YAW_90 = 10 , MAV_SENSOR_ROTATION_ROLL_180_YAW_135 = 11 , MAV_SENSOR_ROTATION_PITCH_180 = 12 , MAV_SENSOR_ROTATION_ROLL_180_YAW_225 = 13 , MAV_SENSOR_ROTATION_ROLL_180_YAW_270 = 14 , MAV_SENSOR_ROTATION_ROLL_180_YAW_315 = 15 , MAV_SENSOR_ROTATION_ROLL_90 = 16 , MAV_SENSOR_ROTATION_ROLL_90_YAW_45 = 17 , MAV_SENSOR_ROTATION_ROLL_90_YAW_90 = 18 , MAV_SENSOR_ROTATION_ROLL_90_YAW_135 = 19 , MAV_SENSOR_ROTATION_ROLL_270 = 20 , MAV_SENSOR_ROTATION_ROLL_270_YAW_45 = 21 , MAV_SENSOR_ROTATION_ROLL_270_YAW_90 = 22 , MAV_SENSOR_ROTATION_ROLL_270_YAW_135 = 23 , MAV_SENSOR_ROTATION_PITCH_90 = 24 , MAV_SENSOR_ROTATION_PITCH_270 = 25 , MAV_SENSOR_ROTATION_PITCH_180_YAW_90 = 26 , MAV_SENSOR_ROTATION_PITCH_180_YAW_270 = 27 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_90 = 28 , MAV_SENSOR_ROTATION_ROLL_180_PITCH_90 = 29 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_90 = 30 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_180 = 31 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_180 = 32 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_270 = 33 , MAV_SENSOR_ROTATION_ROLL_180_PITCH_270 = 34 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_270 = 35 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_180_YAW_90 = 36 , MAV_SENSOR_ROTATION_ROLL_90_YAW_270 = 37 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_68_YAW_293 = 38 , MAV_SENSOR_ROTATION_PITCH_315 = 39 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_315 = 40 , MAV_SENSOR_ROTATION_CUSTOM = 100 , } impl MavSensorOrientation { pub const DEFAULT : Self = Self :: MAV_SENSOR_ROTATION_NONE ; } impl Default for MavSensorOrientation { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmd { MAV_CMD_NAV_WAYPOINT = 16 , MAV_CMD_NAV_LOITER_UNLIM = 17 , MAV_CMD_NAV_LOITER_TURNS = 18 , MAV_CMD_NAV_LOITER_TIME = 19 , MAV_CMD_NAV_RETURN_TO_LAUNCH = 20 , MAV_CMD_NAV_LAND = 21 , MAV_CMD_NAV_TAKEOFF = 22 , MAV_CMD_NAV_LAND_LOCAL = 23 , MAV_CMD_NAV_TAKEOFF_LOCAL = 24 , MAV_CMD_NAV_FOLLOW = 25 , MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT = 30 , MAV_CMD_NAV_LOITER_TO_ALT = 31 , MAV_CMD_DO_FOLLOW = 32 , MAV_CMD_DO_FOLLOW_REPOSITION = 33 , MAV_CMD_DO_ORBIT = 34 , MAV_CMD_NAV_ROI = 80 , MAV_CMD_NAV_PATHPLANNING = 81 , MAV_CMD_NAV_SPLINE_WAYPOINT = 82 , MAV_CMD_NAV_VTOL_TAKEOFF = 84 , MAV_CMD_NAV_VTOL_LAND = 85 , MAV_CMD_NAV_GUIDED_ENABLE = 92 , MAV_CMD_NAV_DELAY = 93 , MAV_CMD_NAV_PAYLOAD_PLACE = 94 , MAV_CMD_NAV_LAST = 95 , MAV_CMD_CONDITION_DELAY = 112 , MAV_CMD_CONDITION_CHANGE_ALT = 113 , MAV_CMD_CONDITION_DISTANCE = 114 , MAV_CMD_CONDITION_YAW = 115 , MAV_CMD_CONDITION_LAST = 159 , MAV_CMD_DO_SET_MODE = 176 , MAV_CMD_DO_JUMP = 177 , MAV_CMD_DO_CHANGE_SPEED = 178 , MAV_CMD_DO_SET_HOME = 179 , MAV_CMD_DO_SET_PARAMETER = 180 , MAV_CMD_DO_SET_RELAY = 181 , MAV_CMD_DO_REPEAT_RELAY = 182 , MAV_CMD_DO_SET_SERVO = 183 , MAV_CMD_DO_REPEAT_SERVO = 184 , MAV_CMD_DO_FLIGHTTERMINATION = 185 , MAV_CMD_DO_CHANGE_ALTITUDE = 186 , MAV_CMD_DO_SET_ACTUATOR = 187 , MAV_CMD_DO_LAND_START = 189 , MAV_CMD_DO_RALLY_LAND = 190 , MAV_CMD_DO_GO_AROUND = 191 , MAV_CMD_DO_REPOSITION = 192 , MAV_CMD_DO_PAUSE_CONTINUE = 193 , MAV_CMD_DO_SET_REVERSE = 194 , MAV_CMD_DO_SET_ROI_LOCATION = 195 , MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET = 196 , MAV_CMD_DO_SET_ROI_NONE = 197 , MAV_CMD_DO_SET_ROI_SYSID = 198 , MAV_CMD_DO_CONTROL_VIDEO = 200 , MAV_CMD_DO_SET_ROI = 201 , MAV_CMD_DO_DIGICAM_CONFIGURE = 202 , MAV_CMD_DO_DIGICAM_CONTROL = 203 , MAV_CMD_DO_MOUNT_CONFIGURE = 204 , MAV_CMD_DO_MOUNT_CONTROL = 205 , MAV_CMD_DO_SET_CAM_TRIGG_DIST = 206 , MAV_CMD_DO_FENCE_ENABLE = 207 , MAV_CMD_DO_PARACHUTE = 208 , MAV_CMD_DO_MOTOR_TEST = 209 , MAV_CMD_DO_INVERTED_FLIGHT = 210 , MAV_CMD_DO_GRIPPER = 211 , MAV_CMD_DO_AUTOTUNE_ENABLE = 212 , MAV_CMD_NAV_SET_YAW_SPEED = 213 , MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL = 214 , MAV_CMD_DO_MOUNT_CONTROL_QUAT = 220 , MAV_CMD_DO_GUIDED_MASTER = 221 , MAV_CMD_DO_GUIDED_LIMITS = 222 , MAV_CMD_DO_ENGINE_CONTROL = 223 , MAV_CMD_DO_SET_MISSION_CURRENT = 224 , MAV_CMD_DO_LAST = 240 , MAV_CMD_PREFLIGHT_CALIBRATION = 241 , MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS = 242 , MAV_CMD_PREFLIGHT_UAVCAN = 243 , MAV_CMD_PREFLIGHT_STORAGE = 245 , MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN = 246 , MAV_CMD_OVERRIDE_GOTO = 252 , MAV_CMD_OBLIQUE_SURVEY = 260 , MAV_CMD_MISSION_START = 300 , MAV_CMD_ACTUATOR_TEST = 310 , MAV_CMD_CONFIGURE_ACTUATOR = 311 , MAV_CMD_COMPONENT_ARM_DISARM = 400 , MAV_CMD_RUN_PREARM_CHECKS = 401 , MAV_CMD_ILLUMINATOR_ON_OFF = 405 , MAV_CMD_GET_HOME_POSITION = 410 , MAV_CMD_INJECT_FAILURE = 420 , MAV_CMD_START_RX_PAIR = 500 , MAV_CMD_GET_MESSAGE_INTERVAL = 510 , MAV_CMD_SET_MESSAGE_INTERVAL = 511 , MAV_CMD_REQUEST_MESSAGE = 512 , MAV_CMD_REQUEST_PROTOCOL_VERSION = 519 , MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES = 520 , MAV_CMD_REQUEST_CAMERA_INFORMATION = 521 , MAV_CMD_REQUEST_CAMERA_SETTINGS = 522 , MAV_CMD_REQUEST_STORAGE_INFORMATION = 525 , MAV_CMD_STORAGE_FORMAT = 526 , MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS = 527 , MAV_CMD_REQUEST_FLIGHT_INFORMATION = 528 , MAV_CMD_RESET_CAMERA_SETTINGS = 529 , MAV_CMD_SET_CAMERA_MODE = 530 , MAV_CMD_SET_CAMERA_ZOOM = 531 , MAV_CMD_SET_CAMERA_FOCUS = 532 , MAV_CMD_SET_STORAGE_USAGE = 533 , MAV_CMD_JUMP_TAG = 600 , MAV_CMD_DO_JUMP_TAG = 601 , MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW = 1000 , MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE = 1001 , MAV_CMD_IMAGE_START_CAPTURE = 2000 , MAV_CMD_IMAGE_STOP_CAPTURE = 2001 , MAV_CMD_REQUEST_CAMERA_IMAGE_CAPTURE = 2002 , MAV_CMD_DO_TRIGGER_CONTROL = 2003 , MAV_CMD_CAMERA_TRACK_POINT = 2004 , MAV_CMD_CAMERA_TRACK_RECTANGLE = 2005 , MAV_CMD_CAMERA_STOP_TRACKING = 2010 , MAV_CMD_VIDEO_START_CAPTURE = 2500 , MAV_CMD_VIDEO_STOP_CAPTURE = 2501 , MAV_CMD_VIDEO_START_STREAMING = 2502 , MAV_CMD_VIDEO_STOP_STREAMING = 2503 , MAV_CMD_REQUEST_VIDEO_STREAM_INFORMATION = 2504 , MAV_CMD_REQUEST_VIDEO_STREAM_STATUS = 2505 , MAV_CMD_LOGGING_START = 2510 , MAV_CMD_LOGGING_STOP = 2511 , MAV_CMD_AIRFRAME_CONFIGURATION = 2520 , MAV_CMD_CONTROL_HIGH_LATENCY = 2600 , MAV_CMD_PANORAMA_CREATE = 2800 , MAV_CMD_DO_VTOL_TRANSITION = 3000 , MAV_CMD_ARM_AUTHORIZATION_REQUEST = 3001 , MAV_CMD_SET_GUIDED_SUBMODE_STANDARD = 4000 , MAV_CMD_SET_GUIDED_SUBMODE_CIRCLE = 4001 , MAV_CMD_CONDITION_GATE = 4501 , MAV_CMD_NAV_FENCE_RETURN_POINT = 5000 , MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION = 5001 , MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION = 5002 , MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION = 5003 , MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION = 5004 , MAV_CMD_NAV_RALLY_POINT = 5100 , MAV_CMD_UAVCAN_GET_NODE_INFO = 5200 , MAV_CMD_DO_ADSB_OUT_IDENT = 10001 , MAV_CMD_PAYLOAD_PREPARE_DEPLOY = 30001 , MAV_CMD_PAYLOAD_CONTROL_DEPLOY = 30002 , MAV_CMD_FIXED_MAG_CAL_YAW = 42006 , MAV_CMD_DO_WINCH = 42600 , MAV_CMD_WAYPOINT_USER_1 = 31000 , MAV_CMD_WAYPOINT_USER_2 = 31001 , MAV_CMD_WAYPOINT_USER_3 = 31002 , MAV_CMD_WAYPOINT_USER_4 = 31003 , MAV_CMD_WAYPOINT_USER_5 = 31004 , MAV_CMD_SPATIAL_USER_1 = 31005 , MAV_CMD_SPATIAL_USER_2 = 31006 , MAV_CMD_SPATIAL_USER_3 = 31007 , MAV_CMD_SPATIAL_USER_4 = 31008 , MAV_CMD_SPATIAL_USER_5 = 31009 , MAV_CMD_USER_1 = 31010 , MAV_CMD_USER_2 = 31011 , MAV_CMD_USER_3 = 31012 , MAV_CMD_USER_4 = 31013 , MAV_CMD_USER_5 = 31014 , MAV_CMD_CAN_FORWARD = 32000 , } impl MavCmd { pub const DEFAULT : Self = Self :: MAV_CMD_NAV_WAYPOINT ; } impl Default for MavCmd { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidHorAcc { MAV_ODID_HOR_ACC_UNKNOWN = 0 , MAV_ODID_HOR_ACC_10NM = 1 , MAV_ODID_HOR_ACC_4NM = 2 , MAV_ODID_HOR_ACC_2NM = 3 , MAV_ODID_HOR_ACC_1NM = 4 , MAV_ODID_HOR_ACC_0_5NM = 5 , MAV_ODID_HOR_ACC_0_3NM = 6 , MAV_ODID_HOR_ACC_0_1NM = 7 , MAV_ODID_HOR_ACC_0_05NM = 8 , MAV_ODID_HOR_ACC_30_METER = 9 , MAV_ODID_HOR_ACC_10_METER = 10 , MAV_ODID_HOR_ACC_3_METER = 11 , MAV_ODID_HOR_ACC_1_METER = 12 , } impl MavOdidHorAcc { pub const DEFAULT : Self = Self :: MAV_ODID_HOR_ACC_UNKNOWN ; } impl Default for MavOdidHorAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavGoto { MAV_GOTO_DO_HOLD = 0 , MAV_GOTO_DO_CONTINUE = 1 , MAV_GOTO_HOLD_AT_CURRENT_POSITION = 2 , MAV_GOTO_HOLD_AT_SPECIFIED_POSITION = 3 , } impl MavGoto { pub const DEFAULT : Self = Self :: MAV_GOTO_DO_HOLD ; } impl Default for MavGoto { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MotorTestThrottleType { MOTOR_TEST_THROTTLE_PERCENT = 0 , MOTOR_TEST_THROTTLE_PWM = 1 , MOTOR_TEST_THROTTLE_PILOT = 2 , MOTOR_TEST_COMPASS_CAL = 3 , } impl MotorTestThrottleType { pub const DEFAULT : Self = Self :: MOTOR_TEST_THROTTLE_PERCENT ; } impl Default for MotorTestThrottleType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavType { MAV_TYPE_GENERIC = 0 , MAV_TYPE_FIXED_WING = 1 , MAV_TYPE_QUADROTOR = 2 , MAV_TYPE_COAXIAL = 3 , MAV_TYPE_HELICOPTER = 4 , MAV_TYPE_ANTENNA_TRACKER = 5 , MAV_TYPE_GCS = 6 , MAV_TYPE_AIRSHIP = 7 , MAV_TYPE_FREE_BALLOON = 8 , MAV_TYPE_ROCKET = 9 , MAV_TYPE_GROUND_ROVER = 10 , MAV_TYPE_SURFACE_BOAT = 11 , MAV_TYPE_SUBMARINE = 12 , MAV_TYPE_HEXAROTOR = 13 , MAV_TYPE_OCTOROTOR = 14 , MAV_TYPE_TRICOPTER = 15 , MAV_TYPE_FLAPPING_WING = 16 , MAV_TYPE_KITE = 17 , MAV_TYPE_ONBOARD_CONTROLLER = 18 , MAV_TYPE_VTOL_TAILSITTER_DUOROTOR = 19 , MAV_TYPE_VTOL_TAILSITTER_QUADROTOR = 20 , MAV_TYPE_VTOL_TILTROTOR = 21 , MAV_TYPE_VTOL_FIXEDROTOR = 22 , MAV_TYPE_VTOL_TAILSITTER = 23 , MAV_TYPE_VTOL_TILTWING = 24 , MAV_TYPE_VTOL_RESERVED5 = 25 , MAV_TYPE_GIMBAL = 26 , MAV_TYPE_ADSB = 27 , MAV_TYPE_PARAFOIL = 28 , MAV_TYPE_DODECAROTOR = 29 , MAV_TYPE_CAMERA = 30 , MAV_TYPE_CHARGING_STATION = 31 , MAV_TYPE_FLARM = 32 , MAV_TYPE_SERVO = 33 , MAV_TYPE_ODID = 34 , MAV_TYPE_DECAROTOR = 35 , MAV_TYPE_BATTERY = 36 , MAV_TYPE_PARACHUTE = 37 , MAV_TYPE_LOG = 38 , MAV_TYPE_OSD = 39 , MAV_TYPE_IMU = 40 , MAV_TYPE_GPS = 41 , MAV_TYPE_WINCH = 42 , } impl MavType { pub const DEFAULT : Self = Self :: MAV_TYPE_GENERIC ; } impl Default for MavType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavRoi { MAV_ROI_NONE = 0 , MAV_ROI_WPNEXT = 1 , MAV_ROI_WPINDEX = 2 , MAV_ROI_LOCATION = 3 , MAV_ROI_TARGET = 4 , } impl MavRoi { pub const DEFAULT : Self = Self :: MAV_ROI_NONE ; } impl Default for MavRoi { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AdsbAltitudeType { ADSB_ALTITUDE_TYPE_PRESSURE_QNH = 0 , ADSB_ALTITUDE_TYPE_GEOMETRIC = 1 , } impl AdsbAltitudeType { pub const DEFAULT : Self = Self :: ADSB_ALTITUDE_TYPE_PRESSURE_QNH ; } impl Default for AdsbAltitudeType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidClassificationType { MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED = 0 , MAV_ODID_CLASSIFICATION_TYPE_EU = 1 , } impl MavOdidClassificationType { pub const DEFAULT : Self = Self :: MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED ; } impl Default for MavOdidClassificationType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMissionType { MAV_MISSION_TYPE_MISSION = 0 , MAV_MISSION_TYPE_FENCE = 1 , MAV_MISSION_TYPE_RALLY = 2 , MAV_MISSION_TYPE_ALL = 255 , } impl MavMissionType { pub const DEFAULT : Self = Self :: MAV_MISSION_TYPE_MISSION ; } impl Default for MavMissionType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AttitudeTargetTypemask : u8 { const ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE = 1 ; const ATTITUDE_TARGET_TYPEMASK_BODY_PITCH_RATE_IGNORE = 2 ; const ATTITUDE_TARGET_TYPEMASK_BODY_YAW_RATE_IGNORE = 4 ; const ATTITUDE_TARGET_TYPEMASK_THRUST_BODY_SET = 32 ; const ATTITUDE_TARGET_TYPEMASK_THROTTLE_IGNORE = 64 ; const ATTITUDE_TARGET_TYPEMASK_ATTITUDE_IGNORE = 128 ; } } impl AttitudeTargetTypemask { pub const DEFAULT : Self = Self :: ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE ; } impl Default for AttitudeTargetTypemask { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UtmDataAvailFlags : u8 { const UTM_DATA_AVAIL_FLAGS_TIME_VALID = 1 ; const UTM_DATA_AVAIL_FLAGS_UAS_ID_AVAILABLE = 2 ; const UTM_DATA_AVAIL_FLAGS_POSITION_AVAILABLE = 4 ; const UTM_DATA_AVAIL_FLAGS_ALTITUDE_AVAILABLE = 8 ; const UTM_DATA_AVAIL_FLAGS_RELATIVE_ALTITUDE_AVAILABLE = 16 ; const UTM_DATA_AVAIL_FLAGS_HORIZONTAL_VELO_AVAILABLE = 32 ; const UTM_DATA_AVAIL_FLAGS_VERTICAL_VELO_AVAILABLE = 64 ; const UTM_DATA_AVAIL_FLAGS_NEXT_WAYPOINT_AVAILABLE = 128 ; } } impl UtmDataAvailFlags { pub const DEFAULT : Self = Self :: UTM_DATA_AVAIL_FLAGS_TIME_VALID ; } impl Default for UtmDataAvailFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceMitigate { FENCE_MITIGATE_UNKNOWN = 0 , FENCE_MITIGATE_NONE = 1 , FENCE_MITIGATE_VEL_LIMIT = 2 , } impl FenceMitigate { pub const DEFAULT : Self = Self :: FENCE_MITIGATE_UNKNOWN ; } impl Default for FenceMitigate { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ActuatorOutputFunction { ACTUATOR_OUTPUT_FUNCTION_NONE = 0 , ACTUATOR_OUTPUT_FUNCTION_MOTOR1 = 1 , ACTUATOR_OUTPUT_FUNCTION_MOTOR2 = 2 , ACTUATOR_OUTPUT_FUNCTION_MOTOR3 = 3 , ACTUATOR_OUTPUT_FUNCTION_MOTOR4 = 4 , ACTUATOR_OUTPUT_FUNCTION_MOTOR5 = 5 , ACTUATOR_OUTPUT_FUNCTION_MOTOR6 = 6 , ACTUATOR_OUTPUT_FUNCTION_MOTOR7 = 7 , ACTUATOR_OUTPUT_FUNCTION_MOTOR8 = 8 , ACTUATOR_OUTPUT_FUNCTION_MOTOR9 = 9 , ACTUATOR_OUTPUT_FUNCTION_MOTOR10 = 10 , ACTUATOR_OUTPUT_FUNCTION_MOTOR11 = 11 , ACTUATOR_OUTPUT_FUNCTION_MOTOR12 = 12 , ACTUATOR_OUTPUT_FUNCTION_MOTOR13 = 13 , ACTUATOR_OUTPUT_FUNCTION_MOTOR14 = 14 , ACTUATOR_OUTPUT_FUNCTION_MOTOR15 = 15 , ACTUATOR_OUTPUT_FUNCTION_MOTOR16 = 16 , ACTUATOR_OUTPUT_FUNCTION_SERVO1 = 33 , ACTUATOR_OUTPUT_FUNCTION_SERVO2 = 34 , ACTUATOR_OUTPUT_FUNCTION_SERVO3 = 35 , ACTUATOR_OUTPUT_FUNCTION_SERVO4 = 36 , ACTUATOR_OUTPUT_FUNCTION_SERVO5 = 37 , ACTUATOR_OUTPUT_FUNCTION_SERVO6 = 38 , ACTUATOR_OUTPUT_FUNCTION_SERVO7 = 39 , ACTUATOR_OUTPUT_FUNCTION_SERVO8 = 40 , ACTUATOR_OUTPUT_FUNCTION_SERVO9 = 41 , ACTUATOR_OUTPUT_FUNCTION_SERVO10 = 42 , ACTUATOR_OUTPUT_FUNCTION_SERVO11 = 43 , ACTUATOR_OUTPUT_FUNCTION_SERVO12 = 44 , ACTUATOR_OUTPUT_FUNCTION_SERVO13 = 45 , ACTUATOR_OUTPUT_FUNCTION_SERVO14 = 46 , ACTUATOR_OUTPUT_FUNCTION_SERVO15 = 47 , ACTUATOR_OUTPUT_FUNCTION_SERVO16 = 48 , } impl ActuatorOutputFunction { pub const DEFAULT : Self = Self :: ACTUATOR_OUTPUT_FUNCTION_NONE ; } impl Default for ActuatorOutputFunction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavModeFlagDecodePosition { MAV_MODE_FLAG_DECODE_POSITION_SAFETY = 128 , MAV_MODE_FLAG_DECODE_POSITION_MANUAL = 64 , MAV_MODE_FLAG_DECODE_POSITION_HIL = 32 , MAV_MODE_FLAG_DECODE_POSITION_STABILIZE = 16 , MAV_MODE_FLAG_DECODE_POSITION_GUIDED = 8 , MAV_MODE_FLAG_DECODE_POSITION_AUTO = 4 , MAV_MODE_FLAG_DECODE_POSITION_TEST = 2 , MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE = 1 , } impl MavModeFlagDecodePosition { pub const DEFAULT : Self = Self :: MAV_MODE_FLAG_DECODE_POSITION_SAFETY ; } impl Default for MavModeFlagDecodePosition { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularNetworkFailedReason { CELLULAR_NETWORK_FAILED_REASON_NONE = 0 , CELLULAR_NETWORK_FAILED_REASON_UNKNOWN = 1 , CELLULAR_NETWORK_FAILED_REASON_SIM_MISSING = 2 , CELLULAR_NETWORK_FAILED_REASON_SIM_ERROR = 3 , } impl CellularNetworkFailedReason { pub const DEFAULT : Self = Self :: CELLULAR_NETWORK_FAILED_REASON_NONE ; } impl Default for CellularNetworkFailedReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WinchActions { WINCH_RELAXED = 0 , WINCH_RELATIVE_LENGTH_CONTROL = 1 , WINCH_RATE_CONTROL = 2 , WINCH_LOCK = 3 , WINCH_DELIVER = 4 , WINCH_HOLD = 5 , WINCH_RETRACT = 6 , WINCH_LOAD_LINE = 7 , WINCH_ABANDON_LINE = 8 , WINCH_LOAD_PAYLOAD = 9 , } impl WinchActions { pub const DEFAULT : Self = Self :: WINCH_RELAXED ; } impl Default for WinchActions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidClassEu { MAV_ODID_CLASS_EU_UNDECLARED = 0 , MAV_ODID_CLASS_EU_CLASS_0 = 1 , MAV_ODID_CLASS_EU_CLASS_1 = 2 , MAV_ODID_CLASS_EU_CLASS_2 = 3 , MAV_ODID_CLASS_EU_CLASS_3 = 4 , MAV_ODID_CLASS_EU_CLASS_4 = 5 , MAV_ODID_CLASS_EU_CLASS_5 = 6 , MAV_ODID_CLASS_EU_CLASS_6 = 7 , } impl MavOdidClassEu { pub const DEFAULT : Self = Self :: MAV_ODID_CLASS_EU_UNDECLARED ; } impl Default for MavOdidClassEu { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VideoStreamType { VIDEO_STREAM_TYPE_RTSP = 0 , VIDEO_STREAM_TYPE_RTPUDP = 1 , VIDEO_STREAM_TYPE_TCP_MPEG = 2 , VIDEO_STREAM_TYPE_MPEG_TS_H264 = 3 , } impl VideoStreamType { pub const DEFAULT : Self = Self :: VIDEO_STREAM_TYPE_RTSP ; } impl Default for VideoStreamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VtolTransitionHeading { VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT = 0 , VTOL_TRANSITION_HEADING_NEXT_WAYPOINT = 1 , VTOL_TRANSITION_HEADING_TAKEOFF = 2 , VTOL_TRANSITION_HEADING_SPECIFIED = 3 , VTOL_TRANSITION_HEADING_ANY = 4 , } impl VtolTransitionHeading { pub const DEFAULT : Self = Self :: VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT ; } impl Default for VtolTransitionHeading { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryFunction { MAV_BATTERY_FUNCTION_UNKNOWN = 0 , MAV_BATTERY_FUNCTION_ALL = 1 , MAV_BATTERY_FUNCTION_PROPULSION = 2 , MAV_BATTERY_FUNCTION_AVIONICS = 3 , MAV_BATTERY_FUNCTION_PAYLOAD = 4 , } impl MavBatteryFunction { pub const DEFAULT : Self = Self :: MAV_BATTERY_FUNCTION_UNKNOWN ; } impl Default for MavBatteryFunction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraMode { CAMERA_MODE_IMAGE = 0 , CAMERA_MODE_VIDEO = 1 , CAMERA_MODE_IMAGE_SURVEY = 2 , } impl CameraMode { pub const DEFAULT : Self = Self :: CAMERA_MODE_IMAGE ; } impl Default for CameraMode { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavModeFlag : u8 { const MAV_MODE_FLAG_SAFETY_ARMED = 128 ; const MAV_MODE_FLAG_MANUAL_INPUT_ENABLED = 64 ; const MAV_MODE_FLAG_HIL_ENABLED = 32 ; const MAV_MODE_FLAG_STABILIZE_ENABLED = 16 ; const MAV_MODE_FLAG_GUIDED_ENABLED = 8 ; const MAV_MODE_FLAG_AUTO_ENABLED = 4 ; const MAV_MODE_FLAG_TEST_ENABLED = 2 ; const MAV_MODE_FLAG_CUSTOM_MODE_ENABLED = 1 ; } } impl MavModeFlag { pub const DEFAULT : Self = Self :: MAV_MODE_FLAG_SAFETY_ARMED ; } impl Default for MavModeFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidSpeedAcc { MAV_ODID_SPEED_ACC_UNKNOWN = 0 , MAV_ODID_SPEED_ACC_10_METERS_PER_SECOND = 1 , MAV_ODID_SPEED_ACC_3_METERS_PER_SECOND = 2 , MAV_ODID_SPEED_ACC_1_METERS_PER_SECOND = 3 , MAV_ODID_SPEED_ACC_0_3_METERS_PER_SECOND = 4 , } impl MavOdidSpeedAcc { pub const DEFAULT : Self = Self :: MAV_ODID_SPEED_ACC_UNKNOWN ; } impl Default for MavOdidSpeedAcc { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavSysStatusSensor : u32 { const MAV_SYS_STATUS_SENSOR_3D_GYRO = 1 ; const MAV_SYS_STATUS_SENSOR_3D_ACCEL = 2 ; const MAV_SYS_STATUS_SENSOR_3D_MAG = 4 ; const MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE = 8 ; const MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE = 16 ; const MAV_SYS_STATUS_SENSOR_GPS = 32 ; const MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW = 64 ; const MAV_SYS_STATUS_SENSOR_VISION_POSITION = 128 ; const MAV_SYS_STATUS_SENSOR_LASER_POSITION = 256 ; const MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH = 512 ; const MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL = 1024 ; const MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION = 2048 ; const MAV_SYS_STATUS_SENSOR_YAW_POSITION = 4096 ; const MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL = 8192 ; const MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL = 16384 ; const MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS = 32768 ; const MAV_SYS_STATUS_SENSOR_RC_RECEIVER = 65536 ; const MAV_SYS_STATUS_SENSOR_3D_GYRO2 = 131072 ; const MAV_SYS_STATUS_SENSOR_3D_ACCEL2 = 262144 ; const MAV_SYS_STATUS_SENSOR_3D_MAG2 = 524288 ; const MAV_SYS_STATUS_GEOFENCE = 1048576 ; const MAV_SYS_STATUS_AHRS = 2097152 ; const MAV_SYS_STATUS_TERRAIN = 4194304 ; const MAV_SYS_STATUS_REVERSE_MOTOR = 8388608 ; const MAV_SYS_STATUS_LOGGING = 16777216 ; const MAV_SYS_STATUS_SENSOR_BATTERY = 33554432 ; const MAV_SYS_STATUS_SENSOR_PROXIMITY = 67108864 ; const MAV_SYS_STATUS_SENSOR_SATCOM = 134217728 ; const MAV_SYS_STATUS_PREARM_CHECK = 268435456 ; const MAV_SYS_STATUS_OBSTACLE_AVOIDANCE = 536870912 ; const MAV_SYS_STATUS_SENSOR_PROPULSION = 1073741824 ; const MAV_SYS_STATUS_EXTENSION_USED = 2147483648 ; } } impl MavSysStatusSensor { pub const DEFAULT : Self = Self :: MAV_SYS_STATUS_SENSOR_3D_GYRO ; } impl Default for MavSysStatusSensor { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum EscConnectionType { ESC_CONNECTION_TYPE_PPM = 0 , ESC_CONNECTION_TYPE_SERIAL = 1 , ESC_CONNECTION_TYPE_ONESHOT = 2 , ESC_CONNECTION_TYPE_I2C = 3 , ESC_CONNECTION_TYPE_CAN = 4 , ESC_CONNECTION_TYPE_DSHOT = 5 , } impl EscConnectionType { pub const DEFAULT : Self = Self :: ESC_CONNECTION_TYPE_PPM ; } impl Default for EscConnectionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CompMetadataType { COMP_METADATA_TYPE_GENERAL = 0 , COMP_METADATA_TYPE_PARAMETER = 1 , COMP_METADATA_TYPE_COMMANDS = 2 , COMP_METADATA_TYPE_PERIPHERALS = 3 , COMP_METADATA_TYPE_EVENTS = 4 , COMP_METADATA_TYPE_ACTUATORS = 5 , } impl CompMetadataType { pub const DEFAULT : Self = Self :: COMP_METADATA_TYPE_GENERAL ; } impl Default for CompMetadataType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularNetworkRadioType { CELLULAR_NETWORK_RADIO_TYPE_NONE = 0 , CELLULAR_NETWORK_RADIO_TYPE_GSM = 1 , CELLULAR_NETWORK_RADIO_TYPE_CDMA = 2 , CELLULAR_NETWORK_RADIO_TYPE_WCDMA = 3 , CELLULAR_NETWORK_RADIO_TYPE_LTE = 4 , } impl CellularNetworkRadioType { pub const DEFAULT : Self = Self :: CELLULAR_NETWORK_RADIO_TYPE_NONE ; } impl Default for CellularNetworkRadioType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavEstimatorType { MAV_ESTIMATOR_TYPE_UNKNOWN = 0 , MAV_ESTIMATOR_TYPE_NAIVE = 1 , MAV_ESTIMATOR_TYPE_VISION = 2 , MAV_ESTIMATOR_TYPE_VIO = 3 , MAV_ESTIMATOR_TYPE_GPS = 4 , MAV_ESTIMATOR_TYPE_GPS_INS = 5 , MAV_ESTIMATOR_TYPE_MOCAP = 6 , MAV_ESTIMATOR_TYPE_LIDAR = 7 , MAV_ESTIMATOR_TYPE_AUTOPILOT = 8 , } impl MavEstimatorType { pub const DEFAULT : Self = Self :: MAV_ESTIMATOR_TYPE_UNKNOWN ; } impl Default for MavEstimatorType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GpsFixType { GPS_FIX_TYPE_NO_GPS = 0 , GPS_FIX_TYPE_NO_FIX = 1 , GPS_FIX_TYPE_2D_FIX = 2 , GPS_FIX_TYPE_3D_FIX = 3 , GPS_FIX_TYPE_DGPS = 4 , GPS_FIX_TYPE_RTK_FLOAT = 5 , GPS_FIX_TYPE_RTK_FIXED = 6 , GPS_FIX_TYPE_STATIC = 7 , GPS_FIX_TYPE_PPP = 8 , } impl GpsFixType { pub const DEFAULT : Self = Self :: GPS_FIX_TYPE_NO_GPS ; } impl Default for GpsFixType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PrecisionLandMode { PRECISION_LAND_MODE_DISABLED = 0 , PRECISION_LAND_MODE_OPPORTUNISTIC = 1 , PRECISION_LAND_MODE_REQUIRED = 2 , } impl PrecisionLandMode { pub const DEFAULT : Self = Self :: PRECISION_LAND_MODE_DISABLED ; } impl Default for PrecisionLandMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum LandingTargetType { LANDING_TARGET_TYPE_LIGHT_BEACON = 0 , LANDING_TARGET_TYPE_RADIO_BEACON = 1 , LANDING_TARGET_TYPE_VISION_FIDUCIAL = 2 , LANDING_TARGET_TYPE_VISION_OTHER = 3 , } impl LandingTargetType { pub const DEFAULT : Self = Self :: LANDING_TARGET_TYPE_LIGHT_BEACON ; } impl Default for LandingTargetType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidOperatorIdType { MAV_ODID_OPERATOR_ID_TYPE_CAA = 0 , } impl MavOdidOperatorIdType { pub const DEFAULT : Self = Self :: MAV_ODID_OPERATOR_ID_TYPE_CAA ; } impl Default for MavOdidOperatorIdType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AdsbEmitterType { ADSB_EMITTER_TYPE_NO_INFO = 0 , ADSB_EMITTER_TYPE_LIGHT = 1 , ADSB_EMITTER_TYPE_SMALL = 2 , ADSB_EMITTER_TYPE_LARGE = 3 , ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE = 4 , ADSB_EMITTER_TYPE_HEAVY = 5 , ADSB_EMITTER_TYPE_HIGHLY_MANUV = 6 , ADSB_EMITTER_TYPE_ROTOCRAFT = 7 , ADSB_EMITTER_TYPE_UNASSIGNED = 8 , ADSB_EMITTER_TYPE_GLIDER = 9 , ADSB_EMITTER_TYPE_LIGHTER_AIR = 10 , ADSB_EMITTER_TYPE_PARACHUTE = 11 , ADSB_EMITTER_TYPE_ULTRA_LIGHT = 12 , ADSB_EMITTER_TYPE_UNASSIGNED2 = 13 , ADSB_EMITTER_TYPE_UAV = 14 , ADSB_EMITTER_TYPE_SPACE = 15 , ADSB_EMITTER_TYPE_UNASSGINED3 = 16 , ADSB_EMITTER_TYPE_EMERGENCY_SURFACE = 17 , ADSB_EMITTER_TYPE_SERVICE_SURFACE = 18 , ADSB_EMITTER_TYPE_POINT_OBSTACLE = 19 , } impl AdsbEmitterType { pub const DEFAULT : Self = Self :: ADSB_EMITTER_TYPE_NO_INFO ; } impl Default for AdsbEmitterType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MissionState { MISSION_STATE_UNKNOWN = 0 , MISSION_STATE_NO_MISSION = 1 , MISSION_STATE_NOT_STARTED = 2 , MISSION_STATE_ACTIVE = 3 , MISSION_STATE_PAUSED = 4 , MISSION_STATE_COMPLETE = 5 , } impl MissionState { pub const DEFAULT : Self = Self :: MISSION_STATE_UNKNOWN ; } impl Default for MissionState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryType { MAV_BATTERY_TYPE_UNKNOWN = 0 , MAV_BATTERY_TYPE_LIPO = 1 , MAV_BATTERY_TYPE_LIFE = 2 , MAV_BATTERY_TYPE_LION = 3 , MAV_BATTERY_TYPE_NIMH = 4 , } impl MavBatteryType { pub const DEFAULT : Self = Self :: MAV_BATTERY_TYPE_UNKNOWN ; } impl Default for MavBatteryType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavAutopilot { MAV_AUTOPILOT_GENERIC = 0 , MAV_AUTOPILOT_RESERVED = 1 , MAV_AUTOPILOT_SLUGS = 2 , MAV_AUTOPILOT_ARDUPILOTMEGA = 3 , MAV_AUTOPILOT_OPENPILOT = 4 , MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY = 5 , MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY = 6 , MAV_AUTOPILOT_GENERIC_MISSION_FULL = 7 , MAV_AUTOPILOT_INVALID = 8 , MAV_AUTOPILOT_PPZ = 9 , MAV_AUTOPILOT_UDB = 10 , MAV_AUTOPILOT_FP = 11 , MAV_AUTOPILOT_PX4 = 12 , MAV_AUTOPILOT_SMACCMPILOT = 13 , MAV_AUTOPILOT_AUTOQUAD = 14 , MAV_AUTOPILOT_ARMAZILA = 15 , MAV_AUTOPILOT_AEROB = 16 , MAV_AUTOPILOT_ASLUAV = 17 , MAV_AUTOPILOT_SMARTAP = 18 , MAV_AUTOPILOT_AIRRAILS = 19 , MAV_AUTOPILOT_REFLEX = 20 , } impl MavAutopilot { pub const DEFAULT : Self = Self :: MAV_AUTOPILOT_GENERIC ; } impl Default for MavAutopilot { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GpsInputIgnoreFlags : u16 { const GPS_INPUT_IGNORE_FLAG_ALT = 1 ; const GPS_INPUT_IGNORE_FLAG_HDOP = 2 ; const GPS_INPUT_IGNORE_FLAG_VDOP = 4 ; const GPS_INPUT_IGNORE_FLAG_VEL_HORIZ = 8 ; const GPS_INPUT_IGNORE_FLAG_VEL_VERT = 16 ; const GPS_INPUT_IGNORE_FLAG_SPEED_ACCURACY = 32 ; const GPS_INPUT_IGNORE_FLAG_HORIZONTAL_ACCURACY = 64 ; const GPS_INPUT_IGNORE_FLAG_VERTICAL_ACCURACY = 128 ; } } impl GpsInputIgnoreFlags { pub const DEFAULT : Self = Self :: GPS_INPUT_IGNORE_FLAG_ALT ; } impl Default for GpsInputIgnoreFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingStatusFlags { CAMERA_TRACKING_STATUS_FLAGS_IDLE = 0 , CAMERA_TRACKING_STATUS_FLAGS_ACTIVE = 1 , CAMERA_TRACKING_STATUS_FLAGS_ERROR = 2 , } impl CameraTrackingStatusFlags { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_STATUS_FLAGS_IDLE ; } impl Default for CameraTrackingStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidCategoryEu { MAV_ODID_CATEGORY_EU_UNDECLARED = 0 , MAV_ODID_CATEGORY_EU_OPEN = 1 , MAV_ODID_CATEGORY_EU_SPECIFIC = 2 , MAV_ODID_CATEGORY_EU_CERTIFIED = 3 , } impl MavOdidCategoryEu { pub const DEFAULT : Self = Self :: MAV_ODID_CATEGORY_EU_UNDECLARED ; } impl Default for MavOdidCategoryEu { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavWinchStatusFlag : u32 { const MAV_WINCH_STATUS_HEALTHY = 1 ; const MAV_WINCH_STATUS_FULLY_RETRACTED = 2 ; const MAV_WINCH_STATUS_MOVING = 4 ; const MAV_WINCH_STATUS_CLUTCH_ENGAGED = 8 ; const MAV_WINCH_STATUS_LOCKED = 16 ; const MAV_WINCH_STATUS_DROPPING = 32 ; const MAV_WINCH_STATUS_ARRESTING = 64 ; const MAV_WINCH_STATUS_GROUND_SENSE = 128 ; const MAV_WINCH_STATUS_RETRACTING = 256 ; const MAV_WINCH_STATUS_REDELIVER = 512 ; const MAV_WINCH_STATUS_ABANDON_LINE = 1024 ; const MAV_WINCH_STATUS_LOCKING = 2048 ; const MAV_WINCH_STATUS_LOAD_LINE = 4096 ; const MAV_WINCH_STATUS_LOAD_PAYLOAD = 8192 ; } } impl MavWinchStatusFlag { pub const DEFAULT : Self = Self :: MAV_WINCH_STATUS_HEALTHY ; } impl Default for MavWinchStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionAction { MAV_COLLISION_ACTION_NONE = 0 , MAV_COLLISION_ACTION_REPORT = 1 , MAV_COLLISION_ACTION_ASCEND_OR_DESCEND = 2 , MAV_COLLISION_ACTION_MOVE_HORIZONTALLY = 3 , MAV_COLLISION_ACTION_MOVE_PERPENDICULAR = 4 , MAV_COLLISION_ACTION_RTL = 5 , MAV_COLLISION_ACTION_HOVER = 6 , } impl MavCollisionAction { pub const DEFAULT : Self = Self :: MAV_COLLISION_ACTION_NONE ; } impl Default for MavCollisionAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SetFocusType { FOCUS_TYPE_STEP = 0 , FOCUS_TYPE_CONTINUOUS = 1 , FOCUS_TYPE_RANGE = 2 , FOCUS_TYPE_METERS = 3 , FOCUS_TYPE_AUTO = 4 , FOCUS_TYPE_AUTO_SINGLE = 5 , FOCUS_TYPE_AUTO_CONTINUOUS = 6 , } impl SetFocusType { pub const DEFAULT : Self = Self :: FOCUS_TYPE_STEP ; } impl Default for SetFocusType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSysStatusSensorExtended { MAV_SYS_STATUS_RECOVERY_SYSTEM = 1 , } impl MavSysStatusSensorExtended { pub const DEFAULT : Self = Self :: MAV_SYS_STATUS_RECOVERY_SYSTEM ; } impl Default for MavSysStatusSensorExtended { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidDescType { MAV_ODID_DESC_TYPE_TEXT = 0 , MAV_ODID_DESC_TYPE_EMERGENCY = 1 , MAV_ODID_DESC_TYPE_EXTENDED_STATUS = 2 , } impl MavOdidDescType { pub const DEFAULT : Self = Self :: MAV_ODID_DESC_TYPE_TEXT ; } impl Default for MavOdidDescType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { pub time_boot_us : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub q_estimated_delay_us : u32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub v_estimated_delay_us : u32 , pub feed_forward_angular_velocity_z : f32 , pub estimator_status : EstimatorStatusFlags , pub target_system : u8 , pub target_component : u8 , pub landed_state : MavLandedState , } impl AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_us : 0_u64 , q : [0.0_f32 ; 4usize] , q_estimated_delay_us : 0_u32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , v_estimated_delay_us : 0_u32 , feed_forward_angular_velocity_z : 0.0_f32 , estimator_status : EstimatorStatusFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , landed_state : MavLandedState :: DEFAULT , } ; } impl Default for AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { type Message = MavMessage ; const ID : u32 = 286u32 ; const NAME : & 'static str = "AUTOPILOT_STATE_FOR_GIMBAL_DEVICE" ; const EXTRA_CRC : u8 = 210u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_us = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . q_estimated_delay_us = buf . get_u32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . v_estimated_delay_us = buf . get_u32_le () ; __struct . feed_forward_angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . estimator_status = EstimatorStatusFlags :: from_bits (tmp & EstimatorStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EstimatorStatusFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_boot_us) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_u32_le (self . q_estimated_delay_us) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_u32_le (self . v_estimated_delay_us) ; __tmp . put_f32_le (self . feed_forward_angular_velocity_z) ; __tmp . put_u16_le (self . estimator_status . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . landed_state as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ORBIT_EXECUTION_STATUS_DATA { pub time_usec : u64 , pub radius : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub frame : MavFrame , } impl ORBIT_EXECUTION_STATUS_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , radius : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , frame : MavFrame :: DEFAULT , } ; } impl Default for ORBIT_EXECUTION_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ORBIT_EXECUTION_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 360u32 ; const NAME : & 'static str = "ORBIT_EXECUTION_STATUS" ; const EXTRA_CRC : u8 = 11u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . radius = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . radius) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REQUEST_EVENT_DATA { pub first_sequence : u16 , pub last_sequence : u16 , pub target_system : u8 , pub target_component : u8 , } impl REQUEST_EVENT_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { first_sequence : 0_u16 , last_sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for REQUEST_EVENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REQUEST_EVENT_DATA { type Message = MavMessage ; const ID : u32 = 412u32 ; const NAME : & 'static str = "REQUEST_EVENT" ; const EXTRA_CRC : u8 = 33u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . first_sequence = buf . get_u16_le () ; __struct . last_sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . first_sequence) ; __tmp . put_u16_le (self . last_sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_MODE_DATA { pub custom_mode : u32 , pub target_system : u8 , pub base_mode : MavMode , } impl SET_MODE_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , target_system : 0_u8 , base_mode : MavMode :: DEFAULT , } ; } impl Default for SET_MODE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_MODE_DATA { type Message = MavMessage ; const ID : u32 = 11u32 ; const NAME : & 'static str = "SET_MODE" ; const EXTRA_CRC : u8 = 89u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . base_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMode" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . base_mode as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CANFD_FRAME_DATA { pub id : u32 , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 64] , } impl CANFD_FRAME_DATA { pub const ENCODED_LEN : usize = 72usize ; pub const DEFAULT : Self = Self { id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , len : 0_u8 , data : [0_u8 ; 64usize] , } ; } impl Default for CANFD_FRAME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CANFD_FRAME_DATA { type Message = MavMessage ; const ID : u32 = 387u32 ; const NAME : & 'static str = "CANFD_FRAME" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 72usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIDEO_STREAM_INFORMATION_DATA { pub framerate : f32 , pub bitrate : u32 , pub flags : VideoStreamStatusFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub hfov : u16 , pub stream_id : u8 , pub count : u8 , pub mavtype : VideoStreamType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 160] , } impl VIDEO_STREAM_INFORMATION_DATA { pub const ENCODED_LEN : usize = 213usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , flags : VideoStreamStatusFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , hfov : 0_u16 , stream_id : 0_u8 , count : 0_u8 , mavtype : VideoStreamType :: DEFAULT , name : [0_u8 ; 32usize] , uri : [0_u8 ; 160usize] , } ; } impl Default for VIDEO_STREAM_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIDEO_STREAM_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 269u32 ; const NAME : & 'static str = "VIDEO_STREAM_INFORMATION" ; const EXTRA_CRC : u8 = 109u8 ; const ENCODED_LEN : usize = 213usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamStatusFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . hfov = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamType" , value : tmp as u32 }) ? ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . flags as u16) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u16_le (self . hfov) ; __tmp . put_u8 (self . stream_id) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . mavtype as u8) ; for val in & self . name { __tmp . put_u8 (* val) ; } for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SAFETY_SET_ALLOWED_AREA_DATA { pub p1x : f32 , pub p1y : f32 , pub p1z : f32 , pub p2x : f32 , pub p2y : f32 , pub p2z : f32 , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , } impl SAFETY_SET_ALLOWED_AREA_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { p1x : 0.0_f32 , p1y : 0.0_f32 , p1z : 0.0_f32 , p2x : 0.0_f32 , p2y : 0.0_f32 , p2z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , } ; } impl Default for SAFETY_SET_ALLOWED_AREA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SAFETY_SET_ALLOWED_AREA_DATA { type Message = MavMessage ; const ID : u32 = 54u32 ; const NAME : & 'static str = "SAFETY_SET_ALLOWED_AREA" ; const EXTRA_CRC : u8 = 15u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . p1x = buf . get_f32_le () ; __struct . p1y = buf . get_f32_le () ; __struct . p1z = buf . get_f32_le () ; __struct . p2x = buf . get_f32_le () ; __struct . p2y = buf . get_f32_le () ; __struct . p2z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . p1x) ; __tmp . put_f32_le (self . p1y) ; __tmp . put_f32_le (self . p1z) ; __tmp . put_f32_le (self . p2x) ; __tmp . put_f32_le (self . p2y) ; __tmp . put_f32_le (self . p2z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_INT_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl COMMAND_INT_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for COMMAND_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_INT_DATA { type Message = MavMessage ; const ID : u32 = 75u32 ; const NAME : & 'static str = "COMMAND_INT" ; const EXTRA_CRC : u8 = 158u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_OVERRIDE_DATA { pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub target_system : u8 , pub target_component : u8 , } impl RC_CHANNELS_OVERRIDE_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for RC_CHANNELS_OVERRIDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_OVERRIDE_DATA { type Message = MavMessage ; const ID : u32 = 70u32 ; const NAME : & 'static str = "RC_CHANNELS_OVERRIDE" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU2_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU2_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU2_DATA { type Message = MavMessage ; const ID : u32 = 116u32 ; const NAME : & 'static str = "SCALED_IMU2" ; const EXTRA_CRC : u8 = 76u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ACTUATOR_CONTROL_TARGET_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 8] , pub group_mlx : u8 , } impl ACTUATOR_CONTROL_TARGET_DATA { pub const ENCODED_LEN : usize = 41usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , controls : [0.0_f32 ; 8usize] , group_mlx : 0_u8 , } ; } impl Default for ACTUATOR_CONTROL_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ACTUATOR_CONTROL_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 140u32 ; const NAME : & 'static str = "ACTUATOR_CONTROL_TARGET" ; const EXTRA_CRC : u8 = 181u8 ; const ENCODED_LEN : usize = 41usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } __struct . group_mlx = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . group_mlx) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA_STREAM_DATA { pub message_rate : u16 , pub stream_id : u8 , pub on_off : u8 , } impl DATA_STREAM_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { message_rate : 0_u16 , stream_id : 0_u8 , on_off : 0_u8 , } ; } impl Default for DATA_STREAM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA_STREAM_DATA { type Message = MavMessage ; const ID : u32 = 67u32 ; const NAME : & 'static str = "DATA_STREAM" ; const EXTRA_CRC : u8 = 21u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . message_rate = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; __struct . on_off = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . message_rate) ; __tmp . put_u8 (self . stream_id) ; __tmp . put_u8 (self . on_off) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_REACHED_DATA { pub seq : u16 , } impl MISSION_ITEM_REACHED_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , } ; } impl Default for MISSION_ITEM_REACHED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_REACHED_DATA { type Message = MavMessage ; const ID : u32 = 46u32 ; const NAME : & 'static str = "MISSION_ITEM_REACHED" ; const EXTRA_CRC : u8 = 11u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_RC_INPUTS_RAW_DATA { pub time_usec : u64 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub chan9_raw : u16 , pub chan10_raw : u16 , pub chan11_raw : u16 , pub chan12_raw : u16 , pub rssi : u8 , } impl HIL_RC_INPUTS_RAW_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , chan9_raw : 0_u16 , chan10_raw : 0_u16 , chan11_raw : 0_u16 , chan12_raw : 0_u16 , rssi : 0_u8 , } ; } impl Default for HIL_RC_INPUTS_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_RC_INPUTS_RAW_DATA { type Message = MavMessage ; const ID : u32 = 92u32 ; const NAME : & 'static str = "HIL_RC_INPUTS_RAW" ; const EXTRA_CRC : u8 = 54u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . chan9_raw = buf . get_u16_le () ; __struct . chan10_raw = buf . get_u16_le () ; __struct . chan11_raw = buf . get_u16_le () ; __struct . chan12_raw = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u16_le (self . chan9_raw) ; __tmp . put_u16_le (self . chan10_raw) ; __tmp . put_u16_le (self . chan11_raw) ; __tmp . put_u16_le (self . chan12_raw) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGHRES_IMU_DATA { pub time_usec : u64 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub xmag : f32 , pub ymag : f32 , pub zmag : f32 , pub abs_pressure : f32 , pub diff_pressure : f32 , pub pressure_alt : f32 , pub temperature : f32 , pub fields_updated : HighresImuUpdatedFlags , } impl HIGHRES_IMU_DATA { pub const ENCODED_LEN : usize = 62usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , xmag : 0.0_f32 , ymag : 0.0_f32 , zmag : 0.0_f32 , abs_pressure : 0.0_f32 , diff_pressure : 0.0_f32 , pressure_alt : 0.0_f32 , temperature : 0.0_f32 , fields_updated : HighresImuUpdatedFlags :: DEFAULT , } ; } impl Default for HIGHRES_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGHRES_IMU_DATA { type Message = MavMessage ; const ID : u32 = 105u32 ; const NAME : & 'static str = "HIGHRES_IMU" ; const EXTRA_CRC : u8 = 93u8 ; const ENCODED_LEN : usize = 62usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . xmag = buf . get_f32_le () ; __struct . ymag = buf . get_f32_le () ; __struct . zmag = buf . get_f32_le () ; __struct . abs_pressure = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . pressure_alt = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . fields_updated = HighresImuUpdatedFlags :: from_bits (tmp & HighresImuUpdatedFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HighresImuUpdatedFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . xmag) ; __tmp . put_f32_le (self . ymag) ; __tmp . put_f32_le (self . zmag) ; __tmp . put_f32_le (self . abs_pressure) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . pressure_alt) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u16_le (self . fields_updated . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FOLLOW_TARGET_DATA { pub timestamp : u64 , pub custom_state : u64 , pub lat : i32 , pub lon : i32 , pub alt : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub attitude_q : [f32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rates : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub position_cov : [f32 ; 3] , pub est_capabilities : u8 , } impl FOLLOW_TARGET_DATA { pub const ENCODED_LEN : usize = 93usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , custom_state : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , vel : [0.0_f32 ; 3usize] , acc : [0.0_f32 ; 3usize] , attitude_q : [0.0_f32 ; 4usize] , rates : [0.0_f32 ; 3usize] , position_cov : [0.0_f32 ; 3usize] , est_capabilities : 0_u8 , } ; } impl Default for FOLLOW_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FOLLOW_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 144u32 ; const NAME : & 'static str = "FOLLOW_TARGET" ; const EXTRA_CRC : u8 = 127u8 ; const ENCODED_LEN : usize = 93usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . custom_state = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; for v in & mut __struct . vel { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . attitude_q { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . rates { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . position_cov { let val = buf . get_f32_le () ; * v = val ; } __struct . est_capabilities = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u64_le (self . custom_state) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; for val in & self . vel { __tmp . put_f32_le (* val) ; } for val in & self . acc { __tmp . put_f32_le (* val) ; } for val in & self . attitude_q { __tmp . put_f32_le (* val) ; } for val in & self . rates { __tmp . put_f32_le (* val) ; } for val in & self . position_cov { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . est_capabilities) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct STATUSTEXT_DATA { pub severity : MavSeverity , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub text : [u8 ; 50] , } impl STATUSTEXT_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { severity : MavSeverity :: DEFAULT , text : [0_u8 ; 50usize] , } ; } impl Default for STATUSTEXT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for STATUSTEXT_DATA { type Message = MavMessage ; const ID : u32 = 253u32 ; const NAME : & 'static str = "STATUSTEXT" ; const EXTRA_CRC : u8 = 83u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . severity = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavSeverity" , value : tmp as u32 }) ? ; for v in & mut __struct . text { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . severity as u8) ; for val in & self . text { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ACTUATOR_OUTPUT_STATUS_DATA { pub time_usec : u64 , pub active : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub actuator : [f32 ; 32] , } impl ACTUATOR_OUTPUT_STATUS_DATA { pub const ENCODED_LEN : usize = 140usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , active : 0_u32 , actuator : [0.0_f32 ; 32usize] , } ; } impl Default for ACTUATOR_OUTPUT_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ACTUATOR_OUTPUT_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 375u32 ; const NAME : & 'static str = "ACTUATOR_OUTPUT_STATUS" ; const EXTRA_CRC : u8 = 251u8 ; const ENCODED_LEN : usize = 140usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . active = buf . get_u32_le () ; for v in & mut __struct . actuator { let val = buf . get_f32_le () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . active) ; for val in & self . actuator { __tmp . put_f32_le (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TRAJECTORY_REPRESENTATION_BEZIER_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub delta : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_yaw : [f32 ; 5] , pub valid_points : u8 , } impl TRAJECTORY_REPRESENTATION_BEZIER_DATA { pub const ENCODED_LEN : usize = 109usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , pos_x : [0.0_f32 ; 5usize] , pos_y : [0.0_f32 ; 5usize] , pos_z : [0.0_f32 ; 5usize] , delta : [0.0_f32 ; 5usize] , pos_yaw : [0.0_f32 ; 5usize] , valid_points : 0_u8 , } ; } impl Default for TRAJECTORY_REPRESENTATION_BEZIER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TRAJECTORY_REPRESENTATION_BEZIER_DATA { type Message = MavMessage ; const ID : u32 = 333u32 ; const NAME : & 'static str = "TRAJECTORY_REPRESENTATION_BEZIER" ; const EXTRA_CRC : u8 = 231u8 ; const ENCODED_LEN : usize = 109usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . pos_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . delta { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_yaw { let val = buf . get_f32_le () ; * v = val ; } __struct . valid_points = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . pos_x { __tmp . put_f32_le (* val) ; } for val in & self . pos_y { __tmp . put_f32_le (* val) ; } for val in & self . pos_z { __tmp . put_f32_le (* val) ; } for val in & self . delta { __tmp . put_f32_le (* val) ; } for val in & self . pos_yaw { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . valid_points) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_SETTINGS_DATA { pub time_boot_ms : u32 , pub mode_id : CameraMode , } impl CAMERA_SETTINGS_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , mode_id : CameraMode :: DEFAULT , } ; } impl Default for CAMERA_SETTINGS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_SETTINGS_DATA { type Message = MavMessage ; const ID : u32 = 260u32 ; const NAME : & 'static str = "CAMERA_SETTINGS" ; const EXTRA_CRC : u8 = 146u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . mode_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraMode" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u8 (self . mode_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_VISION_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl GLOBAL_VISION_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for GLOBAL_VISION_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_VISION_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 101u32 ; const NAME : & 'static str = "GLOBAL_VISION_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 102u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPTICAL_FLOW_RAD_DATA { pub time_usec : u64 , pub integration_time_us : u32 , pub integrated_x : f32 , pub integrated_y : f32 , pub integrated_xgyro : f32 , pub integrated_ygyro : f32 , pub integrated_zgyro : f32 , pub time_delta_distance_us : u32 , pub distance : f32 , pub temperature : i16 , pub sensor_id : u8 , pub quality : u8 , } impl OPTICAL_FLOW_RAD_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , integration_time_us : 0_u32 , integrated_x : 0.0_f32 , integrated_y : 0.0_f32 , integrated_xgyro : 0.0_f32 , integrated_ygyro : 0.0_f32 , integrated_zgyro : 0.0_f32 , time_delta_distance_us : 0_u32 , distance : 0.0_f32 , temperature : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for OPTICAL_FLOW_RAD_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPTICAL_FLOW_RAD_DATA { type Message = MavMessage ; const ID : u32 = 106u32 ; const NAME : & 'static str = "OPTICAL_FLOW_RAD" ; const EXTRA_CRC : u8 = 138u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . integration_time_us = buf . get_u32_le () ; __struct . integrated_x = buf . get_f32_le () ; __struct . integrated_y = buf . get_f32_le () ; __struct . integrated_xgyro = buf . get_f32_le () ; __struct . integrated_ygyro = buf . get_f32_le () ; __struct . integrated_zgyro = buf . get_f32_le () ; __struct . time_delta_distance_us = buf . get_u32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . integration_time_us) ; __tmp . put_f32_le (self . integrated_x) ; __tmp . put_f32_le (self . integrated_y) ; __tmp . put_f32_le (self . integrated_xgyro) ; __tmp . put_f32_le (self . integrated_ygyro) ; __tmp . put_f32_le (self . integrated_zgyro) ; __tmp . put_u32_le (self . time_delta_distance_us) ; __tmp . put_f32_le (self . distance) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAMED_VALUE_FLOAT_DATA { pub time_boot_ms : u32 , pub value : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl NAMED_VALUE_FLOAT_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0.0_f32 , name : [0_u8 ; 10usize] , } ; } impl Default for NAMED_VALUE_FLOAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAMED_VALUE_FLOAT_DATA { type Message = MavMessage ; const ID : u32 = 251u32 ; const NAME : & 'static str = "NAMED_VALUE_FLOAT" ; const EXTRA_CRC : u8 = 170u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_f32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . value) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RESOURCE_REQUEST_DATA { pub request_id : u8 , pub uri_type : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 120] , pub transfer_type : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage : [u8 ; 120] , } impl RESOURCE_REQUEST_DATA { pub const ENCODED_LEN : usize = 243usize ; pub const DEFAULT : Self = Self { request_id : 0_u8 , uri_type : 0_u8 , uri : [0_u8 ; 120usize] , transfer_type : 0_u8 , storage : [0_u8 ; 120usize] , } ; } impl Default for RESOURCE_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RESOURCE_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 142u32 ; const NAME : & 'static str = "RESOURCE_REQUEST" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 243usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u8 () ; __struct . uri_type = buf . get_u8 () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } __struct . transfer_type = buf . get_u8 () ; for v in & mut __struct . storage { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . request_id) ; __tmp . put_u8 (self . uri_type) ; for val in & self . uri { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . transfer_type) ; for val in & self . storage { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_CONTROLS_DATA { pub time_usec : u64 , pub roll_ailerons : f32 , pub pitch_elevator : f32 , pub yaw_rudder : f32 , pub throttle : f32 , pub aux1 : f32 , pub aux2 : f32 , pub aux3 : f32 , pub aux4 : f32 , pub mode : MavMode , pub nav_mode : u8 , } impl HIL_CONTROLS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , roll_ailerons : 0.0_f32 , pitch_elevator : 0.0_f32 , yaw_rudder : 0.0_f32 , throttle : 0.0_f32 , aux1 : 0.0_f32 , aux2 : 0.0_f32 , aux3 : 0.0_f32 , aux4 : 0.0_f32 , mode : MavMode :: DEFAULT , nav_mode : 0_u8 , } ; } impl Default for HIL_CONTROLS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_CONTROLS_DATA { type Message = MavMessage ; const ID : u32 = 91u32 ; const NAME : & 'static str = "HIL_CONTROLS" ; const EXTRA_CRC : u8 = 63u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . roll_ailerons = buf . get_f32_le () ; __struct . pitch_elevator = buf . get_f32_le () ; __struct . yaw_rudder = buf . get_f32_le () ; __struct . throttle = buf . get_f32_le () ; __struct . aux1 = buf . get_f32_le () ; __struct . aux2 = buf . get_f32_le () ; __struct . aux3 = buf . get_f32_le () ; __struct . aux4 = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMode" , value : tmp as u32 }) ? ; __struct . nav_mode = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . roll_ailerons) ; __tmp . put_f32_le (self . pitch_elevator) ; __tmp . put_f32_le (self . yaw_rudder) ; __tmp . put_f32_le (self . throttle) ; __tmp . put_f32_le (self . aux1) ; __tmp . put_f32_le (self . aux2) ; __tmp . put_f32_le (self . aux3) ; __tmp . put_f32_le (self . aux4) ; __tmp . put_u8 (self . mode as u8) ; __tmp . put_u8 (self . nav_mode) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_INPUT_DATA { pub time_usec : u64 , pub time_week_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : f32 , pub hdop : f32 , pub vdop : f32 , pub vn : f32 , pub ve : f32 , pub vd : f32 , pub speed_accuracy : f32 , pub horiz_accuracy : f32 , pub vert_accuracy : f32 , pub ignore_flags : GpsInputIgnoreFlags , pub time_week : u16 , pub gps_id : u8 , pub fix_type : u8 , pub satellites_visible : u8 , } impl GPS_INPUT_DATA { pub const ENCODED_LEN : usize = 63usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , time_week_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , hdop : 0.0_f32 , vdop : 0.0_f32 , vn : 0.0_f32 , ve : 0.0_f32 , vd : 0.0_f32 , speed_accuracy : 0.0_f32 , horiz_accuracy : 0.0_f32 , vert_accuracy : 0.0_f32 , ignore_flags : GpsInputIgnoreFlags :: DEFAULT , time_week : 0_u16 , gps_id : 0_u8 , fix_type : 0_u8 , satellites_visible : 0_u8 , } ; } impl Default for GPS_INPUT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_INPUT_DATA { type Message = MavMessage ; const ID : u32 = 232u32 ; const NAME : & 'static str = "GPS_INPUT" ; const EXTRA_CRC : u8 = 151u8 ; const ENCODED_LEN : usize = 63usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . time_week_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . hdop = buf . get_f32_le () ; __struct . vdop = buf . get_f32_le () ; __struct . vn = buf . get_f32_le () ; __struct . ve = buf . get_f32_le () ; __struct . vd = buf . get_f32_le () ; __struct . speed_accuracy = buf . get_f32_le () ; __struct . horiz_accuracy = buf . get_f32_le () ; __struct . vert_accuracy = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . ignore_flags = GpsInputIgnoreFlags :: from_bits (tmp & GpsInputIgnoreFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GpsInputIgnoreFlags" , value : tmp as u32 }) ? ; __struct . time_week = buf . get_u16_le () ; __struct . gps_id = buf . get_u8 () ; __struct . fix_type = buf . get_u8 () ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . time_week_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . hdop) ; __tmp . put_f32_le (self . vdop) ; __tmp . put_f32_le (self . vn) ; __tmp . put_f32_le (self . ve) ; __tmp . put_f32_le (self . vd) ; __tmp . put_f32_le (self . speed_accuracy) ; __tmp . put_f32_le (self . horiz_accuracy) ; __tmp . put_f32_le (self . vert_accuracy) ; __tmp . put_u16_le (self . ignore_flags . bits ()) ; __tmp . put_u16_le (self . time_week) ; __tmp . put_u8 (self . gps_id) ; __tmp . put_u8 (self . fix_type) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRACKING_GEO_STATUS_DATA { pub lat : i32 , pub lon : i32 , pub alt : f32 , pub h_acc : f32 , pub v_acc : f32 , pub vel_n : f32 , pub vel_e : f32 , pub vel_d : f32 , pub vel_acc : f32 , pub dist : f32 , pub hdg : f32 , pub hdg_acc : f32 , pub tracking_status : CameraTrackingStatusFlags , } impl CAMERA_TRACKING_GEO_STATUS_DATA { pub const ENCODED_LEN : usize = 49usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , h_acc : 0.0_f32 , v_acc : 0.0_f32 , vel_n : 0.0_f32 , vel_e : 0.0_f32 , vel_d : 0.0_f32 , vel_acc : 0.0_f32 , dist : 0.0_f32 , hdg : 0.0_f32 , hdg_acc : 0.0_f32 , tracking_status : CameraTrackingStatusFlags :: DEFAULT , } ; } impl Default for CAMERA_TRACKING_GEO_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRACKING_GEO_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 276u32 ; const NAME : & 'static str = "CAMERA_TRACKING_GEO_STATUS" ; const EXTRA_CRC : u8 = 18u8 ; const ENCODED_LEN : usize = 49usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . h_acc = buf . get_f32_le () ; __struct . v_acc = buf . get_f32_le () ; __struct . vel_n = buf . get_f32_le () ; __struct . vel_e = buf . get_f32_le () ; __struct . vel_d = buf . get_f32_le () ; __struct . vel_acc = buf . get_f32_le () ; __struct . dist = buf . get_f32_le () ; __struct . hdg = buf . get_f32_le () ; __struct . hdg_acc = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . tracking_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . h_acc) ; __tmp . put_f32_le (self . v_acc) ; __tmp . put_f32_le (self . vel_n) ; __tmp . put_f32_le (self . vel_e) ; __tmp . put_f32_le (self . vel_d) ; __tmp . put_f32_le (self . vel_acc) ; __tmp . put_f32_le (self . dist) ; __tmp . put_f32_le (self . hdg) ; __tmp . put_f32_le (self . hdg_acc) ; __tmp . put_u8 (self . tracking_status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HOME_POSITION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub approach_x : f32 , pub approach_y : f32 , pub approach_z : f32 , } impl HOME_POSITION_DATA { pub const ENCODED_LEN : usize = 52usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , approach_x : 0.0_f32 , approach_y : 0.0_f32 , approach_z : 0.0_f32 , } ; } impl Default for HOME_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HOME_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 242u32 ; const NAME : & 'static str = "HOME_POSITION" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 52usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . approach_x = buf . get_f32_le () ; __struct . approach_y = buf . get_f32_le () ; __struct . approach_z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . approach_x) ; __tmp . put_f32_le (self . approach_y) ; __tmp . put_f32_le (self . approach_z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_SET_DATA { pub param_value : f32 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub param_type : MavParamType , } impl PARAM_SET_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { param_value : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , param_type : MavParamType :: DEFAULT , } ; } impl Default for PARAM_SET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_SET_DATA { type Message = MavMessage ; const ID : u32 = 23u32 ; const NAME : & 'static str = "PARAM_SET" ; const EXTRA_CRC : u8 = 168u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVCAN_NODE_STATUS_DATA { pub time_usec : u64 , pub uptime_sec : u32 , pub vendor_specific_status_code : u16 , pub health : UavcanNodeHealth , pub mode : UavcanNodeMode , pub sub_mode : u8 , } impl UAVCAN_NODE_STATUS_DATA { pub const ENCODED_LEN : usize = 17usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime_sec : 0_u32 , vendor_specific_status_code : 0_u16 , health : UavcanNodeHealth :: DEFAULT , mode : UavcanNodeMode :: DEFAULT , sub_mode : 0_u8 , } ; } impl Default for UAVCAN_NODE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVCAN_NODE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 310u32 ; const NAME : & 'static str = "UAVCAN_NODE_STATUS" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 17usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime_sec = buf . get_u32_le () ; __struct . vendor_specific_status_code = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . health = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavcanNodeHealth" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavcanNodeMode" , value : tmp as u32 }) ? ; __struct . sub_mode = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime_sec) ; __tmp . put_u16_le (self . vendor_specific_status_code) ; __tmp . put_u8 (self . health as u8) ; __tmp . put_u8 (self . mode as u8) ; __tmp . put_u8 (self . sub_mode) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ONBOARD_COMPUTER_STATUS_DATA { pub time_usec : u64 , pub uptime : u32 , pub ram_usage : u32 , pub ram_total : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_type : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_usage : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_total : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_type : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_tx_rate : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_rx_rate : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_tx_max : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_rx_max : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub fan_speed : [i16 ; 4] , pub mavtype : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cpu_cores : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cpu_combined : [u8 ; 10] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub gpu_cores : [u8 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub gpu_combined : [u8 ; 10] , pub temperature_board : i8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature_core : [i8 ; 8] , } impl ONBOARD_COMPUTER_STATUS_DATA { pub const ENCODED_LEN : usize = 238usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime : 0_u32 , ram_usage : 0_u32 , ram_total : 0_u32 , storage_type : [0_u32 ; 4usize] , storage_usage : [0_u32 ; 4usize] , storage_total : [0_u32 ; 4usize] , link_type : [0_u32 ; 6usize] , link_tx_rate : [0_u32 ; 6usize] , link_rx_rate : [0_u32 ; 6usize] , link_tx_max : [0_u32 ; 6usize] , link_rx_max : [0_u32 ; 6usize] , fan_speed : [0_i16 ; 4usize] , mavtype : 0_u8 , cpu_cores : [0_u8 ; 8usize] , cpu_combined : [0_u8 ; 10usize] , gpu_cores : [0_u8 ; 4usize] , gpu_combined : [0_u8 ; 10usize] , temperature_board : 0_i8 , temperature_core : [0_i8 ; 8usize] , } ; } impl Default for ONBOARD_COMPUTER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ONBOARD_COMPUTER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 390u32 ; const NAME : & 'static str = "ONBOARD_COMPUTER_STATUS" ; const EXTRA_CRC : u8 = 156u8 ; const ENCODED_LEN : usize = 238usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime = buf . get_u32_le () ; __struct . ram_usage = buf . get_u32_le () ; __struct . ram_total = buf . get_u32_le () ; for v in & mut __struct . storage_type { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . storage_usage { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . storage_total { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_type { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_tx_rate { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_rx_rate { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_tx_max { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_rx_max { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . fan_speed { let val = buf . get_i16_le () ; * v = val ; } __struct . mavtype = buf . get_u8 () ; for v in & mut __struct . cpu_cores { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . cpu_combined { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . gpu_cores { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . gpu_combined { let val = buf . get_u8 () ; * v = val ; } __struct . temperature_board = buf . get_i8 () ; for v in & mut __struct . temperature_core { let val = buf . get_i8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime) ; __tmp . put_u32_le (self . ram_usage) ; __tmp . put_u32_le (self . ram_total) ; for val in & self . storage_type { __tmp . put_u32_le (* val) ; } for val in & self . storage_usage { __tmp . put_u32_le (* val) ; } for val in & self . storage_total { __tmp . put_u32_le (* val) ; } for val in & self . link_type { __tmp . put_u32_le (* val) ; } for val in & self . link_tx_rate { __tmp . put_u32_le (* val) ; } for val in & self . link_rx_rate { __tmp . put_u32_le (* val) ; } for val in & self . link_tx_max { __tmp . put_u32_le (* val) ; } for val in & self . link_rx_max { __tmp . put_u32_le (* val) ; } for val in & self . fan_speed { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . mavtype) ; for val in & self . cpu_cores { __tmp . put_u8 (* val) ; } for val in & self . cpu_combined { __tmp . put_u8 (* val) ; } for val in & self . gpu_cores { __tmp . put_u8 (* val) ; } for val in & self . gpu_combined { __tmp . put_u8 (* val) ; } __tmp . put_i8 (self . temperature_board) ; for val in & self . temperature_core { __tmp . put_i8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_QUATERNION_DATA { pub time_boot_ms : u32 , pub q1 : f32 , pub q2 : f32 , pub q3 : f32 , pub q4 : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , } impl ATTITUDE_QUATERNION_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q1 : 0.0_f32 , q2 : 0.0_f32 , q3 : 0.0_f32 , q4 : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , } ; } impl Default for ATTITUDE_QUATERNION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_QUATERNION_DATA { type Message = MavMessage ; const ID : u32 = 31u32 ; const NAME : & 'static str = "ATTITUDE_QUATERNION" ; const EXTRA_CRC : u8 = 246u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . q1 = buf . get_f32_le () ; __struct . q2 = buf . get_f32_le () ; __struct . q3 = buf . get_f32_le () ; __struct . q4 = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . q1) ; __tmp . put_f32_le (self . q2) ; __tmp . put_f32_le (self . q3) ; __tmp . put_f32_le (self . q4) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_PARTIAL_LIST_DATA { pub start_index : i16 , pub end_index : i16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_PARTIAL_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start_index : 0_i16 , end_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_PARTIAL_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_PARTIAL_LIST_DATA { type Message = MavMessage ; const ID : u32 = 37u32 ; const NAME : & 'static str = "MISSION_REQUEST_PARTIAL_LIST" ; const EXTRA_CRC : u8 = 212u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start_index = buf . get_i16_le () ; __struct . end_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . start_index) ; __tmp . put_i16_le (self . end_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_CURRENT_DATA { pub seq : u16 , } impl MISSION_CURRENT_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , } ; } impl Default for MISSION_CURRENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_CURRENT_DATA { type Message = MavMessage ; const ID : u32 = 42u32 ; const NAME : & 'static str = "MISSION_CURRENT" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RADIO_STATUS_DATA { pub rxerrors : u16 , pub fixed : u16 , pub rssi : u8 , pub remrssi : u8 , pub txbuf : u8 , pub noise : u8 , pub remnoise : u8 , } impl RADIO_STATUS_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { rxerrors : 0_u16 , fixed : 0_u16 , rssi : 0_u8 , remrssi : 0_u8 , txbuf : 0_u8 , noise : 0_u8 , remnoise : 0_u8 , } ; } impl Default for RADIO_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RADIO_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 109u32 ; const NAME : & 'static str = "RADIO_STATUS" ; const EXTRA_CRC : u8 = 185u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . rxerrors = buf . get_u16_le () ; __struct . fixed = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; __struct . remrssi = buf . get_u8 () ; __struct . txbuf = buf . get_u8 () ; __struct . noise = buf . get_u8 () ; __struct . remnoise = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . rxerrors) ; __tmp . put_u16_le (self . fixed) ; __tmp . put_u8 (self . rssi) ; __tmp . put_u8 (self . remrssi) ; __tmp . put_u8 (self . txbuf) ; __tmp . put_u8 (self . noise) ; __tmp . put_u8 (self . remnoise) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_STATE_DATA { pub time_usec : u64 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , } impl HIL_STATE_DATA { pub const ENCODED_LEN : usize = 56usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , } ; } impl Default for HIL_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_STATE_DATA { type Message = MavMessage ; const ID : u32 = 90u32 ; const NAME : & 'static str = "HIL_STATE" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 56usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_DATA_DATA { pub lat : i32 , pub lon : i32 , pub grid_spacing : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [i16 ; 16] , pub gridbit : u8 , } impl TERRAIN_DATA_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , grid_spacing : 0_u16 , data : [0_i16 ; 16usize] , gridbit : 0_u8 , } ; } impl Default for TERRAIN_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_DATA_DATA { type Message = MavMessage ; const ID : u32 = 134u32 ; const NAME : & 'static str = "TERRAIN_DATA" ; const EXTRA_CRC : u8 = 229u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . grid_spacing = buf . get_u16_le () ; for v in & mut __struct . data { let val = buf . get_i16_le () ; * v = val ; } __struct . gridbit = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . grid_spacing) ; for val in & self . data { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . gridbit) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE2_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE2_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE2_DATA { type Message = MavMessage ; const ID : u32 = 137u32 ; const NAME : & 'static str = "SCALED_PRESSURE2" ; const EXTRA_CRC : u8 = 195u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATT_POS_MOCAP_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub x : f32 , pub y : f32 , pub z : f32 , } impl ATT_POS_MOCAP_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , q : [0.0_f32 ; 4usize] , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , } ; } impl Default for ATT_POS_MOCAP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATT_POS_MOCAP_DATA { type Message = MavMessage ; const ID : u32 = 138u32 ; const NAME : & 'static str = "ATT_POS_MOCAP" ; const EXTRA_CRC : u8 = 109u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_STATUS_DATA { pub satellites_visible : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_prn : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_used : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_elevation : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_azimuth : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_snr : [u8 ; 20] , } impl GPS_STATUS_DATA { pub const ENCODED_LEN : usize = 101usize ; pub const DEFAULT : Self = Self { satellites_visible : 0_u8 , satellite_prn : [0_u8 ; 20usize] , satellite_used : [0_u8 ; 20usize] , satellite_elevation : [0_u8 ; 20usize] , satellite_azimuth : [0_u8 ; 20usize] , satellite_snr : [0_u8 ; 20usize] , } ; } impl Default for GPS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 25u32 ; const NAME : & 'static str = "GPS_STATUS" ; const EXTRA_CRC : u8 = 23u8 ; const ENCODED_LEN : usize = 101usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . satellites_visible = buf . get_u8 () ; for v in & mut __struct . satellite_prn { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_used { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_elevation { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_azimuth { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_snr { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . satellites_visible) ; for val in & self . satellite_prn { __tmp . put_u8 (* val) ; } for val in & self . satellite_used { __tmp . put_u8 (* val) ; } for val in & self . satellite_elevation { __tmp . put_u8 (* val) ; } for val in & self . satellite_azimuth { __tmp . put_u8 (* val) ; } for val in & self . satellite_snr { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : f32 , pub y : f32 , pub z : f32 , pub seq : u16 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl MISSION_ITEM_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , seq : 0_u16 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for MISSION_ITEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_DATA { type Message = MavMessage ; const ID : u32 = 39u32 ; const NAME : & 'static str = "MISSION_ITEM" ; const EXTRA_CRC : u8 = 254u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . seq = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_SPEED_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , } impl VISION_SPEED_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , } ; } impl Default for VISION_SPEED_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_SPEED_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 103u32 ; const NAME : & 'static str = "VISION_SPEED_ESTIMATE" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU_DATA { type Message = MavMessage ; const ID : u32 = 26u32 ; const NAME : & 'static str = "SCALED_IMU" ; const EXTRA_CRC : u8 = 170u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_COUNT_DATA { pub count : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_COUNT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { count : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_COUNT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_COUNT_DATA { type Message = MavMessage ; const ID : u32 = 44u32 ; const NAME : & 'static str = "MISSION_COUNT" ; const EXTRA_CRC : u8 = 221u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . count = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . count) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_MAP_RC_DATA { pub param_value0 : f32 , pub scale : f32 , pub param_value_min : f32 , pub param_value_max : f32 , pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub parameter_rc_channel_index : u8 , } impl PARAM_MAP_RC_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param_value0 : 0.0_f32 , scale : 0.0_f32 , param_value_min : 0.0_f32 , param_value_max : 0.0_f32 , param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , parameter_rc_channel_index : 0_u8 , } ; } impl Default for PARAM_MAP_RC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_MAP_RC_DATA { type Message = MavMessage ; const ID : u32 = 50u32 ; const NAME : & 'static str = "PARAM_MAP_RC" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value0 = buf . get_f32_le () ; __struct . scale = buf . get_f32_le () ; __struct . param_value_min = buf . get_f32_le () ; __struct . param_value_max = buf . get_f32_le () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } __struct . parameter_rc_channel_index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value0) ; __tmp . put_f32_le (self . scale) ; __tmp . put_f32_le (self . param_value_min) ; __tmp . put_f32_le (self . param_value_max) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . parameter_rc_channel_index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_DATA_DATA { pub ofs : u32 , pub id : u16 , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 90] , } impl LOG_DATA_DATA { pub const ENCODED_LEN : usize = 97usize ; pub const DEFAULT : Self = Self { ofs : 0_u32 , id : 0_u16 , count : 0_u8 , data : [0_u8 ; 90usize] , } ; } impl Default for LOG_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_DATA_DATA { type Message = MavMessage ; const ID : u32 = 120u32 ; const NAME : & 'static str = "LOG_DATA" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 97usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ofs = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ofs) ; __tmp . put_u16_le (self . id) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EXTENDED_SYS_STATE_DATA { pub vtol_state : MavVtolState , pub landed_state : MavLandedState , } impl EXTENDED_SYS_STATE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { vtol_state : MavVtolState :: DEFAULT , landed_state : MavLandedState :: DEFAULT , } ; } impl Default for EXTENDED_SYS_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EXTENDED_SYS_STATE_DATA { type Message = MavMessage ; const ID : u32 = 245u32 ; const NAME : & 'static str = "EXTENDED_SYS_STATE" ; const EXTRA_CRC : u8 = 130u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . vtol_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavVtolState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . vtol_state as u8) ; __tmp . put_u8 (self . landed_state as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SETUP_SIGNING_DATA { pub initial_timestamp : u64 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub secret_key : [u8 ; 32] , } impl SETUP_SIGNING_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { initial_timestamp : 0_u64 , target_system : 0_u8 , target_component : 0_u8 , secret_key : [0_u8 ; 32usize] , } ; } impl Default for SETUP_SIGNING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SETUP_SIGNING_DATA { type Message = MavMessage ; const ID : u32 = 256u32 ; const NAME : & 'static str = "SETUP_SIGNING" ; const EXTRA_CRC : u8 = 71u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . initial_timestamp = buf . get_u64_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . secret_key { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . initial_timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . secret_key { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_RAW_DATA { pub time_boot_ms : u32 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub port : u8 , pub rssi : u8 , } impl RC_CHANNELS_RAW_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , port : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_RAW_DATA { type Message = MavMessage ; const ID : u32 = 35u32 ; const NAME : & 'static str = "RC_CHANNELS_RAW" ; const EXTRA_CRC : u8 = 244u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . port = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u8 (self . port) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_ATTITUDE_DATA { pub flags : GimbalManagerFlags , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_ATTITUDE_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 282u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_ATTITUDE" ; const EXTRA_CRC : u8 = 123u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVCAN_NODE_INFO_DATA { pub time_usec : u64 , pub uptime_sec : u32 , pub sw_vcs_commit : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 80] , pub hw_version_major : u8 , pub hw_version_minor : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub hw_unique_id : [u8 ; 16] , pub sw_version_major : u8 , pub sw_version_minor : u8 , } impl UAVCAN_NODE_INFO_DATA { pub const ENCODED_LEN : usize = 116usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime_sec : 0_u32 , sw_vcs_commit : 0_u32 , name : [0_u8 ; 80usize] , hw_version_major : 0_u8 , hw_version_minor : 0_u8 , hw_unique_id : [0_u8 ; 16usize] , sw_version_major : 0_u8 , sw_version_minor : 0_u8 , } ; } impl Default for UAVCAN_NODE_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVCAN_NODE_INFO_DATA { type Message = MavMessage ; const ID : u32 = 311u32 ; const NAME : & 'static str = "UAVCAN_NODE_INFO" ; const EXTRA_CRC : u8 = 95u8 ; const ENCODED_LEN : usize = 116usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime_sec = buf . get_u32_le () ; __struct . sw_vcs_commit = buf . get_u32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } __struct . hw_version_major = buf . get_u8 () ; __struct . hw_version_minor = buf . get_u8 () ; for v in & mut __struct . hw_unique_id { let val = buf . get_u8 () ; * v = val ; } __struct . sw_version_major = buf . get_u8 () ; __struct . sw_version_minor = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime_sec) ; __tmp . put_u32_le (self . sw_vcs_commit) ; for val in & self . name { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . hw_version_major) ; __tmp . put_u8 (self . hw_version_minor) ; for val in & self . hw_unique_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . sw_version_major) ; __tmp . put_u8 (self . sw_version_minor) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPONENT_METADATA_DATA { pub time_boot_ms : u32 , pub file_crc : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 100] , } impl COMPONENT_METADATA_DATA { pub const ENCODED_LEN : usize = 108usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , file_crc : 0_u32 , uri : [0_u8 ; 100usize] , } ; } impl Default for COMPONENT_METADATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPONENT_METADATA_DATA { type Message = MavMessage ; const ID : u32 = 397u32 ; const NAME : & 'static str = "COMPONENT_METADATA" ; const EXTRA_CRC : u8 = 182u8 ; const ENCODED_LEN : usize = 108usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . file_crc = buf . get_u32_le () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . file_crc) ; for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_AUTHENTICATION_DATA { pub timestamp : u32 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub authentication_type : MavOdidAuthType , pub data_page : u8 , pub last_page_index : u8 , pub length : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub authentication_data : [u8 ; 23] , } impl OPEN_DRONE_ID_AUTHENTICATION_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { timestamp : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , authentication_type : MavOdidAuthType :: DEFAULT , data_page : 0_u8 , last_page_index : 0_u8 , length : 0_u8 , authentication_data : [0_u8 ; 23usize] , } ; } impl Default for OPEN_DRONE_ID_AUTHENTICATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_AUTHENTICATION_DATA { type Message = MavMessage ; const ID : u32 = 12902u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_AUTHENTICATION" ; const EXTRA_CRC : u8 = 140u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . authentication_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidAuthType" , value : tmp as u32 }) ? ; __struct . data_page = buf . get_u8 () ; __struct . last_page_index = buf . get_u8 () ; __struct . length = buf . get_u8 () ; for v in & mut __struct . authentication_data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . authentication_type as u8) ; __tmp . put_u8 (self . data_page) ; __tmp . put_u8 (self . last_page_index) ; __tmp . put_u8 (self . length) ; for val in & self . authentication_data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SYSTEM_TIME_DATA { pub time_unix_usec : u64 , pub time_boot_ms : u32 , } impl SYSTEM_TIME_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { time_unix_usec : 0_u64 , time_boot_ms : 0_u32 , } ; } impl Default for SYSTEM_TIME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SYSTEM_TIME_DATA { type Message = MavMessage ; const ID : u32 = 2u32 ; const NAME : & 'static str = "SYSTEM_TIME" ; const EXTRA_CRC : u8 = 137u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_unix_usec = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_unix_usec) ; __tmp . put_u32_le (self . time_boot_ms) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_VALUE_DATA { pub param_value : f32 , pub param_count : u16 , pub param_index : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub param_type : MavParamType , } impl PARAM_VALUE_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { param_value : 0.0_f32 , param_count : 0_u16 , param_index : 0_u16 , param_id : [0_u8 ; 16usize] , param_type : MavParamType :: DEFAULT , } ; } impl Default for PARAM_VALUE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_VALUE_DATA { type Message = MavMessage ; const ID : u32 = 22u32 ; const NAME : & 'static str = "PARAM_VALUE" ; const EXTRA_CRC : u8 = 220u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value = buf . get_f32_le () ; __struct . param_count = buf . get_u16_le () ; __struct . param_index = buf . get_u16_le () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value) ; __tmp . put_u16_le (self . param_count) ; __tmp . put_u16_le (self . param_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MANUAL_SETPOINT_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub thrust : f32 , pub mode_switch : u8 , pub manual_override_switch : u8 , } impl MANUAL_SETPOINT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , thrust : 0.0_f32 , mode_switch : 0_u8 , manual_override_switch : 0_u8 , } ; } impl Default for MANUAL_SETPOINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MANUAL_SETPOINT_DATA { type Message = MavMessage ; const ID : u32 = 81u32 ; const NAME : & 'static str = "MANUAL_SETPOINT" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; __struct . mode_switch = buf . get_u8 () ; __struct . manual_override_switch = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . mode_switch) ; __tmp . put_u8 (self . manual_override_switch) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_SET_CURRENT_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_SET_CURRENT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_SET_CURRENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_SET_CURRENT_DATA { type Message = MavMessage ; const ID : u32 = 41u32 ; const NAME : & 'static str = "MISSION_SET_CURRENT" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPTICAL_FLOW_DATA { pub time_usec : u64 , pub flow_comp_m_x : f32 , pub flow_comp_m_y : f32 , pub ground_distance : f32 , pub flow_x : i16 , pub flow_y : i16 , pub sensor_id : u8 , pub quality : u8 , } impl OPTICAL_FLOW_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , flow_comp_m_x : 0.0_f32 , flow_comp_m_y : 0.0_f32 , ground_distance : 0.0_f32 , flow_x : 0_i16 , flow_y : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for OPTICAL_FLOW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPTICAL_FLOW_DATA { type Message = MavMessage ; const ID : u32 = 100u32 ; const NAME : & 'static str = "OPTICAL_FLOW" ; const EXTRA_CRC : u8 = 175u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . flow_comp_m_x = buf . get_f32_le () ; __struct . flow_comp_m_y = buf . get_f32_le () ; __struct . ground_distance = buf . get_f32_le () ; __struct . flow_x = buf . get_i16_le () ; __struct . flow_y = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . flow_comp_m_x) ; __tmp . put_f32_le (self . flow_comp_m_y) ; __tmp . put_f32_le (self . ground_distance) ; __tmp . put_i16_le (self . flow_x) ; __tmp . put_i16_le (self . flow_y) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POWER_STATUS_DATA { pub Vcc : u16 , pub Vservo : u16 , pub flags : MavPowerStatus , } impl POWER_STATUS_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { Vcc : 0_u16 , Vservo : 0_u16 , flags : MavPowerStatus :: DEFAULT , } ; } impl Default for POWER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POWER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 125u32 ; const NAME : & 'static str = "POWER_STATUS" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . Vcc = buf . get_u16_le () ; __struct . Vservo = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = MavPowerStatus :: from_bits (tmp & MavPowerStatus :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavPowerStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . Vcc) ; __tmp . put_u16_le (self . Vservo) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_REQUEST_DATA { pub mask : u64 , pub lat : i32 , pub lon : i32 , pub grid_spacing : u16 , } impl TERRAIN_REQUEST_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { mask : 0_u64 , lat : 0_i32 , lon : 0_i32 , grid_spacing : 0_u16 , } ; } impl Default for TERRAIN_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 133u32 ; const NAME : & 'static str = "TERRAIN_REQUEST" ; const EXTRA_CRC : u8 = 6u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mask = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . grid_spacing = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . mask) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . grid_spacing) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_REQUEST_READ_DATA { pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , } impl PARAM_REQUEST_READ_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , } ; } impl Default for PARAM_REQUEST_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_REQUEST_READ_DATA { type Message = MavMessage ; const ID : u32 = 20u32 ; const NAME : & 'static str = "PARAM_REQUEST_READ" ; const EXTRA_CRC : u8 = 214u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_REPORT_DATA { pub lat : i32 , pub lon : i32 , pub terrain_height : f32 , pub current_height : f32 , pub spacing : u16 , pub pending : u16 , pub loaded : u16 , } impl TERRAIN_REPORT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , terrain_height : 0.0_f32 , current_height : 0.0_f32 , spacing : 0_u16 , pending : 0_u16 , loaded : 0_u16 , } ; } impl Default for TERRAIN_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 136u32 ; const NAME : & 'static str = "TERRAIN_REPORT" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . terrain_height = buf . get_f32_le () ; __struct . current_height = buf . get_f32_le () ; __struct . spacing = buf . get_u16_le () ; __struct . pending = buf . get_u16_le () ; __struct . loaded = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . terrain_height) ; __tmp . put_f32_le (self . current_height) ; __tmp . put_u16_le (self . spacing) ; __tmp . put_u16_le (self . pending) ; __tmp . put_u16_le (self . loaded) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_GLOBAL_ORIGIN_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , } impl GPS_GLOBAL_ORIGIN_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , } ; } impl Default for GPS_GLOBAL_ORIGIN_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_GLOBAL_ORIGIN_DATA { type Message = MavMessage ; const ID : u32 = 49u32 ; const NAME : & 'static str = "GPS_GLOBAL_ORIGIN" ; const EXTRA_CRC : u8 = 39u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_STATE_QUATERNION_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub attitude_quaternion : [f32 ; 4] , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub ind_airspeed : u16 , pub true_airspeed : u16 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , } impl HIL_STATE_QUATERNION_DATA { pub const ENCODED_LEN : usize = 64usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , attitude_quaternion : [0.0_f32 ; 4usize] , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , ind_airspeed : 0_u16 , true_airspeed : 0_u16 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , } ; } impl Default for HIL_STATE_QUATERNION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_STATE_QUATERNION_DATA { type Message = MavMessage ; const ID : u32 = 115u32 ; const NAME : & 'static str = "HIL_STATE_QUATERNION" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 64usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . attitude_quaternion { let val = buf . get_f32_le () ; * v = val ; } __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . ind_airspeed = buf . get_u16_le () ; __struct . true_airspeed = buf . get_u16_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . attitude_quaternion { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . ind_airspeed) ; __tmp . put_u16_le (self . true_airspeed) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_CHECK_DATA { pub lat : i32 , pub lon : i32 , } impl TERRAIN_CHECK_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , } ; } impl Default for TERRAIN_CHECK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_CHECK_DATA { type Message = MavMessage ; const ID : u32 = 135u32 ; const NAME : & 'static str = "TERRAIN_CHECK" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 43u32 ; const NAME : & 'static str = "MISSION_REQUEST_LIST" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EFI_STATUS_DATA { pub ecu_index : f32 , pub rpm : f32 , pub fuel_consumed : f32 , pub fuel_flow : f32 , pub engine_load : f32 , pub throttle_position : f32 , pub spark_dwell_time : f32 , pub barometric_pressure : f32 , pub intake_manifold_pressure : f32 , pub intake_manifold_temperature : f32 , pub cylinder_head_temperature : f32 , pub ignition_timing : f32 , pub injection_time : f32 , pub exhaust_gas_temperature : f32 , pub throttle_out : f32 , pub pt_compensation : f32 , pub health : u8 , } impl EFI_STATUS_DATA { pub const ENCODED_LEN : usize = 65usize ; pub const DEFAULT : Self = Self { ecu_index : 0.0_f32 , rpm : 0.0_f32 , fuel_consumed : 0.0_f32 , fuel_flow : 0.0_f32 , engine_load : 0.0_f32 , throttle_position : 0.0_f32 , spark_dwell_time : 0.0_f32 , barometric_pressure : 0.0_f32 , intake_manifold_pressure : 0.0_f32 , intake_manifold_temperature : 0.0_f32 , cylinder_head_temperature : 0.0_f32 , ignition_timing : 0.0_f32 , injection_time : 0.0_f32 , exhaust_gas_temperature : 0.0_f32 , throttle_out : 0.0_f32 , pt_compensation : 0.0_f32 , health : 0_u8 , } ; } impl Default for EFI_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EFI_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 225u32 ; const NAME : & 'static str = "EFI_STATUS" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 65usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ecu_index = buf . get_f32_le () ; __struct . rpm = buf . get_f32_le () ; __struct . fuel_consumed = buf . get_f32_le () ; __struct . fuel_flow = buf . get_f32_le () ; __struct . engine_load = buf . get_f32_le () ; __struct . throttle_position = buf . get_f32_le () ; __struct . spark_dwell_time = buf . get_f32_le () ; __struct . barometric_pressure = buf . get_f32_le () ; __struct . intake_manifold_pressure = buf . get_f32_le () ; __struct . intake_manifold_temperature = buf . get_f32_le () ; __struct . cylinder_head_temperature = buf . get_f32_le () ; __struct . ignition_timing = buf . get_f32_le () ; __struct . injection_time = buf . get_f32_le () ; __struct . exhaust_gas_temperature = buf . get_f32_le () ; __struct . throttle_out = buf . get_f32_le () ; __struct . pt_compensation = buf . get_f32_le () ; __struct . health = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . ecu_index) ; __tmp . put_f32_le (self . rpm) ; __tmp . put_f32_le (self . fuel_consumed) ; __tmp . put_f32_le (self . fuel_flow) ; __tmp . put_f32_le (self . engine_load) ; __tmp . put_f32_le (self . throttle_position) ; __tmp . put_f32_le (self . spark_dwell_time) ; __tmp . put_f32_le (self . barometric_pressure) ; __tmp . put_f32_le (self . intake_manifold_pressure) ; __tmp . put_f32_le (self . intake_manifold_temperature) ; __tmp . put_f32_le (self . cylinder_head_temperature) ; __tmp . put_f32_le (self . ignition_timing) ; __tmp . put_f32_le (self . injection_time) ; __tmp . put_f32_le (self . exhaust_gas_temperature) ; __tmp . put_f32_le (self . throttle_out) ; __tmp . put_f32_le (self . pt_compensation) ; __tmp . put_u8 (self . health) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_HOME_POSITION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub approach_x : f32 , pub approach_y : f32 , pub approach_z : f32 , pub target_system : u8 , } impl SET_HOME_POSITION_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , approach_x : 0.0_f32 , approach_y : 0.0_f32 , approach_z : 0.0_f32 , target_system : 0_u8 , } ; } impl Default for SET_HOME_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_HOME_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 243u32 ; const NAME : & 'static str = "SET_HOME_POSITION" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . approach_x = buf . get_f32_le () ; __struct . approach_y = buf . get_f32_le () ; __struct . approach_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . approach_x) ; __tmp . put_f32_le (self . approach_y) ; __tmp . put_f32_le (self . approach_z) ; __tmp . put_u8 (self . target_system) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FLIGHT_INFORMATION_DATA { pub arming_time_utc : u64 , pub takeoff_time_utc : u64 , pub flight_uuid : u64 , pub time_boot_ms : u32 , } impl FLIGHT_INFORMATION_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { arming_time_utc : 0_u64 , takeoff_time_utc : 0_u64 , flight_uuid : 0_u64 , time_boot_ms : 0_u32 , } ; } impl Default for FLIGHT_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FLIGHT_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 264u32 ; const NAME : & 'static str = "FLIGHT_INFORMATION" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . arming_time_utc = buf . get_u64_le () ; __struct . takeoff_time_utc = buf . get_u64_le () ; __struct . flight_uuid = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . arming_time_utc) ; __tmp . put_u64_le (self . takeoff_time_utc) ; __tmp . put_u64_le (self . flight_uuid) ; __tmp . put_u32_le (self . time_boot_ms) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_DATA_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , pub length : u8 , pub first_message_offset : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 249] , } impl LOGGING_DATA_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , length : 0_u8 , first_message_offset : 0_u8 , data : [0_u8 ; 249usize] , } ; } impl Default for LOGGING_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_DATA_DATA { type Message = MavMessage ; const ID : u32 = 266u32 ; const NAME : & 'static str = "LOGGING_DATA" ; const EXTRA_CRC : u8 = 193u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . length = buf . get_u8 () ; __struct . first_message_offset = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . length) ; __tmp . put_u8 (self . first_message_offset) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_SET_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , } impl PARAM_EXT_SET_DATA { pub const ENCODED_LEN : usize = 147usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , } ; } impl Default for PARAM_EXT_SET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_SET_DATA { type Message = MavMessage ; const ID : u32 = 323u32 ; const NAME : & 'static str = "PARAM_EXT_SET" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 147usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MOUNT_ORIENTATION_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl MOUNT_ORIENTATION_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for MOUNT_ORIENTATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MOUNT_ORIENTATION_DATA { type Message = MavMessage ; const ID : u32 = 265u32 ; const NAME : & 'static str = "MOUNT_ORIENTATION" ; const EXTRA_CRC : u8 = 26u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_SCALED_DATA { pub time_boot_ms : u32 , pub chan1_scaled : i16 , pub chan2_scaled : i16 , pub chan3_scaled : i16 , pub chan4_scaled : i16 , pub chan5_scaled : i16 , pub chan6_scaled : i16 , pub chan7_scaled : i16 , pub chan8_scaled : i16 , pub port : u8 , pub rssi : u8 , } impl RC_CHANNELS_SCALED_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_scaled : 0_i16 , chan2_scaled : 0_i16 , chan3_scaled : 0_i16 , chan4_scaled : 0_i16 , chan5_scaled : 0_i16 , chan6_scaled : 0_i16 , chan7_scaled : 0_i16 , chan8_scaled : 0_i16 , port : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_SCALED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_SCALED_DATA { type Message = MavMessage ; const ID : u32 = 34u32 ; const NAME : & 'static str = "RC_CHANNELS_SCALED" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_scaled = buf . get_i16_le () ; __struct . chan2_scaled = buf . get_i16_le () ; __struct . chan3_scaled = buf . get_i16_le () ; __struct . chan4_scaled = buf . get_i16_le () ; __struct . chan5_scaled = buf . get_i16_le () ; __struct . chan6_scaled = buf . get_i16_le () ; __struct . chan7_scaled = buf . get_i16_le () ; __struct . chan8_scaled = buf . get_i16_le () ; __struct . port = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . chan1_scaled) ; __tmp . put_i16_le (self . chan2_scaled) ; __tmp . put_i16_le (self . chan3_scaled) ; __tmp . put_i16_le (self . chan4_scaled) ; __tmp . put_i16_le (self . chan5_scaled) ; __tmp . put_i16_le (self . chan6_scaled) ; __tmp . put_i16_le (self . chan7_scaled) ; __tmp . put_i16_le (self . chan8_scaled) ; __tmp . put_u8 (self . port) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS2_RTK_DATA { pub time_last_baseline_ms : u32 , pub tow : u32 , pub baseline_a_mm : i32 , pub baseline_b_mm : i32 , pub baseline_c_mm : i32 , pub accuracy : u32 , pub iar_num_hypotheses : i32 , pub wn : u16 , pub rtk_receiver_id : u8 , pub rtk_health : u8 , pub rtk_rate : u8 , pub nsats : u8 , pub baseline_coords_type : RtkBaselineCoordinateSystem , } impl GPS2_RTK_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_last_baseline_ms : 0_u32 , tow : 0_u32 , baseline_a_mm : 0_i32 , baseline_b_mm : 0_i32 , baseline_c_mm : 0_i32 , accuracy : 0_u32 , iar_num_hypotheses : 0_i32 , wn : 0_u16 , rtk_receiver_id : 0_u8 , rtk_health : 0_u8 , rtk_rate : 0_u8 , nsats : 0_u8 , baseline_coords_type : RtkBaselineCoordinateSystem :: DEFAULT , } ; } impl Default for GPS2_RTK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS2_RTK_DATA { type Message = MavMessage ; const ID : u32 = 128u32 ; const NAME : & 'static str = "GPS2_RTK" ; const EXTRA_CRC : u8 = 226u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_last_baseline_ms = buf . get_u32_le () ; __struct . tow = buf . get_u32_le () ; __struct . baseline_a_mm = buf . get_i32_le () ; __struct . baseline_b_mm = buf . get_i32_le () ; __struct . baseline_c_mm = buf . get_i32_le () ; __struct . accuracy = buf . get_u32_le () ; __struct . iar_num_hypotheses = buf . get_i32_le () ; __struct . wn = buf . get_u16_le () ; __struct . rtk_receiver_id = buf . get_u8 () ; __struct . rtk_health = buf . get_u8 () ; __struct . rtk_rate = buf . get_u8 () ; __struct . nsats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . baseline_coords_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "RtkBaselineCoordinateSystem" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_last_baseline_ms) ; __tmp . put_u32_le (self . tow) ; __tmp . put_i32_le (self . baseline_a_mm) ; __tmp . put_i32_le (self . baseline_b_mm) ; __tmp . put_i32_le (self . baseline_c_mm) ; __tmp . put_u32_le (self . accuracy) ; __tmp . put_i32_le (self . iar_num_hypotheses) ; __tmp . put_u16_le (self . wn) ; __tmp . put_u8 (self . rtk_receiver_id) ; __tmp . put_u8 (self . rtk_health) ; __tmp . put_u8 (self . rtk_rate) ; __tmp . put_u8 (self . nsats) ; __tmp . put_u8 (self . baseline_coords_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , } impl ATTITUDE_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , } ; } impl Default for ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 30u32 ; const NAME : & 'static str = "ATTITUDE" ; const EXTRA_CRC : u8 = 39u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_INFO_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub error_count : [u32 ; 4] , pub counter : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub failure_flags : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature : [i16 ; 4] , pub index : u8 , pub count : u8 , pub connection_type : EscConnectionType , pub info : u8 , } impl ESC_INFO_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , error_count : [0_u32 ; 4usize] , counter : 0_u16 , failure_flags : [0_u16 ; 4usize] , temperature : [0_i16 ; 4usize] , index : 0_u8 , count : 0_u8 , connection_type : EscConnectionType :: DEFAULT , info : 0_u8 , } ; } impl Default for ESC_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_INFO_DATA { type Message = MavMessage ; const ID : u32 = 290u32 ; const NAME : & 'static str = "ESC_INFO" ; const EXTRA_CRC : u8 = 251u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . error_count { let val = buf . get_u32_le () ; * v = val ; } __struct . counter = buf . get_u16_le () ; for v in & mut __struct . failure_flags { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . temperature { let val = buf . get_i16_le () ; * v = val ; } __struct . index = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . connection_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "EscConnectionType" , value : tmp as u32 }) ? ; __struct . info = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . error_count { __tmp . put_u32_le (* val) ; } __tmp . put_u16_le (self . counter) ; for val in & self . failure_flags { __tmp . put_u16_le (* val) ; } for val in & self . temperature { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . index) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . connection_type as u8) ; __tmp . put_u8 (self . info) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CELLULAR_STATUS_DATA { pub mcc : u16 , pub mnc : u16 , pub lac : u16 , pub status : CellularStatusFlag , pub failure_reason : CellularNetworkFailedReason , pub mavtype : CellularNetworkRadioType , pub quality : u8 , } impl CELLULAR_STATUS_DATA { pub const ENCODED_LEN : usize = 10usize ; pub const DEFAULT : Self = Self { mcc : 0_u16 , mnc : 0_u16 , lac : 0_u16 , status : CellularStatusFlag :: DEFAULT , failure_reason : CellularNetworkFailedReason :: DEFAULT , mavtype : CellularNetworkRadioType :: DEFAULT , quality : 0_u8 , } ; } impl Default for CELLULAR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CELLULAR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 334u32 ; const NAME : & 'static str = "CELLULAR_STATUS" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 10usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mcc = buf . get_u16_le () ; __struct . mnc = buf . get_u16_le () ; __struct . lac = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularStatusFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . failure_reason = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularNetworkFailedReason" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularNetworkRadioType" , value : tmp as u32 }) ? ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . mcc) ; __tmp . put_u16_le (self . mnc) ; __tmp . put_u16_le (self . lac) ; __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . failure_reason as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UTM_GLOBAL_POSITION_DATA { pub time : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub next_lat : i32 , pub next_lon : i32 , pub next_alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub h_acc : u16 , pub v_acc : u16 , pub vel_acc : u16 , pub update_rate : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uas_id : [u8 ; 18] , pub flight_state : UtmFlightState , pub flags : UtmDataAvailFlags , } impl UTM_GLOBAL_POSITION_DATA { pub const ENCODED_LEN : usize = 70usize ; pub const DEFAULT : Self = Self { time : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , next_lat : 0_i32 , next_lon : 0_i32 , next_alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , h_acc : 0_u16 , v_acc : 0_u16 , vel_acc : 0_u16 , update_rate : 0_u16 , uas_id : [0_u8 ; 18usize] , flight_state : UtmFlightState :: DEFAULT , flags : UtmDataAvailFlags :: DEFAULT , } ; } impl Default for UTM_GLOBAL_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UTM_GLOBAL_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 340u32 ; const NAME : & 'static str = "UTM_GLOBAL_POSITION" ; const EXTRA_CRC : u8 = 99u8 ; const ENCODED_LEN : usize = 70usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . next_lat = buf . get_i32_le () ; __struct . next_lon = buf . get_i32_le () ; __struct . next_alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . h_acc = buf . get_u16_le () ; __struct . v_acc = buf . get_u16_le () ; __struct . vel_acc = buf . get_u16_le () ; __struct . update_rate = buf . get_u16_le () ; for v in & mut __struct . uas_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . flight_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UtmFlightState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = UtmDataAvailFlags :: from_bits (tmp & UtmDataAvailFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UtmDataAvailFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_i32_le (self . next_lat) ; __tmp . put_i32_le (self . next_lon) ; __tmp . put_i32_le (self . next_alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . h_acc) ; __tmp . put_u16_le (self . v_acc) ; __tmp . put_u16_le (self . vel_acc) ; __tmp . put_u16_le (self . update_rate) ; for val in & self . uas_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . flight_state as u8) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TUNNEL_DATA { pub payload_type : MavTunnelPayloadType , pub target_system : u8 , pub target_component : u8 , pub payload_length : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 128] , } impl TUNNEL_DATA { pub const ENCODED_LEN : usize = 133usize ; pub const DEFAULT : Self = Self { payload_type : MavTunnelPayloadType :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , payload_length : 0_u8 , payload : [0_u8 ; 128usize] , } ; } impl Default for TUNNEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TUNNEL_DATA { type Message = MavMessage ; const ID : u32 = 385u32 ; const NAME : & 'static str = "TUNNEL" ; const EXTRA_CRC : u8 = 147u8 ; const ENCODED_LEN : usize = 133usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . payload_type = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavTunnelPayloadType" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . payload_length = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . payload_type as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . payload_length) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ENCAPSULATED_DATA_DATA { pub seqnr : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 253] , } impl ENCAPSULATED_DATA_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { seqnr : 0_u16 , data : [0_u8 ; 253usize] , } ; } impl Default for ENCAPSULATED_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ENCAPSULATED_DATA_DATA { type Message = MavMessage ; const ID : u32 = 131u32 ; const NAME : & 'static str = "ENCAPSULATED_DATA" ; const EXTRA_CRC : u8 = 223u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seqnr = buf . get_u16_le () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seqnr) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MEMORY_VECT_DATA { pub address : u16 , pub ver : u8 , pub mavtype : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub value : [i8 ; 32] , } impl MEMORY_VECT_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { address : 0_u16 , ver : 0_u8 , mavtype : 0_u8 , value : [0_i8 ; 32usize] , } ; } impl Default for MEMORY_VECT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MEMORY_VECT_DATA { type Message = MavMessage ; const ID : u32 = 249u32 ; const NAME : & 'static str = "MEMORY_VECT" ; const EXTRA_CRC : u8 = 204u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . address = buf . get_u16_le () ; __struct . ver = buf . get_u8 () ; __struct . mavtype = buf . get_u8 () ; for v in & mut __struct . value { let val = buf . get_i8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . address) ; __tmp . put_u8 (self . ver) ; __tmp . put_u8 (self . mavtype) ; for val in & self . value { __tmp . put_i8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PLAY_TUNE_V2_DATA { pub format : TuneFormat , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub tune : [u8 ; 248] , } impl PLAY_TUNE_V2_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { format : TuneFormat :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , tune : [0_u8 ; 248usize] , } ; } impl Default for PLAY_TUNE_V2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PLAY_TUNE_V2_DATA { type Message = MavMessage ; const ID : u32 = 400u32 ; const NAME : & 'static str = "PLAY_TUNE_V2" ; const EXTRA_CRC : u8 = 110u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . format = TuneFormat :: from_bits (tmp & TuneFormat :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "TuneFormat" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . tune { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . format . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . tune { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HYGROMETER_SENSOR_DATA { pub temperature : i16 , pub humidity : u16 , pub id : u8 , } impl HYGROMETER_SENSOR_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { temperature : 0_i16 , humidity : 0_u16 , id : 0_u8 , } ; } impl Default for HYGROMETER_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HYGROMETER_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 12920u32 ; const NAME : & 'static str = "HYGROMETER_SENSOR" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . temperature = buf . get_i16_le () ; __struct . humidity = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u16_le (self . humidity) ; __tmp . put_u8 (self . id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CELLULAR_CONFIG_DATA { pub enable_lte : u8 , pub enable_pin : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pin : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub new_pin : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub apn : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub puk : [u8 ; 16] , pub roaming : u8 , pub response : CellularConfigResponse , } impl CELLULAR_CONFIG_DATA { pub const ENCODED_LEN : usize = 84usize ; pub const DEFAULT : Self = Self { enable_lte : 0_u8 , enable_pin : 0_u8 , pin : [0_u8 ; 16usize] , new_pin : [0_u8 ; 16usize] , apn : [0_u8 ; 32usize] , puk : [0_u8 ; 16usize] , roaming : 0_u8 , response : CellularConfigResponse :: DEFAULT , } ; } impl Default for CELLULAR_CONFIG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CELLULAR_CONFIG_DATA { type Message = MavMessage ; const ID : u32 = 336u32 ; const NAME : & 'static str = "CELLULAR_CONFIG" ; const EXTRA_CRC : u8 = 245u8 ; const ENCODED_LEN : usize = 84usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . enable_lte = buf . get_u8 () ; __struct . enable_pin = buf . get_u8 () ; for v in & mut __struct . pin { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . new_pin { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . apn { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . puk { let val = buf . get_u8 () ; * v = val ; } __struct . roaming = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . response = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularConfigResponse" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . enable_lte) ; __tmp . put_u8 (self . enable_pin) ; for val in & self . pin { __tmp . put_u8 (* val) ; } for val in & self . new_pin { __tmp . put_u8 (* val) ; } for val in & self . apn { __tmp . put_u8 (* val) ; } for val in & self . puk { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . roaming) ; __tmp . put_u8 (self . response as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MAG_CAL_REPORT_DATA { pub fitness : f32 , pub ofs_x : f32 , pub ofs_y : f32 , pub ofs_z : f32 , pub diag_x : f32 , pub diag_y : f32 , pub diag_z : f32 , pub offdiag_x : f32 , pub offdiag_y : f32 , pub offdiag_z : f32 , pub compass_id : u8 , pub cal_mask : u8 , pub cal_status : MagCalStatus , pub autosaved : u8 , } impl MAG_CAL_REPORT_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { fitness : 0.0_f32 , ofs_x : 0.0_f32 , ofs_y : 0.0_f32 , ofs_z : 0.0_f32 , diag_x : 0.0_f32 , diag_y : 0.0_f32 , diag_z : 0.0_f32 , offdiag_x : 0.0_f32 , offdiag_y : 0.0_f32 , offdiag_z : 0.0_f32 , compass_id : 0_u8 , cal_mask : 0_u8 , cal_status : MagCalStatus :: DEFAULT , autosaved : 0_u8 , } ; } impl Default for MAG_CAL_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MAG_CAL_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 192u32 ; const NAME : & 'static str = "MAG_CAL_REPORT" ; const EXTRA_CRC : u8 = 36u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . fitness = buf . get_f32_le () ; __struct . ofs_x = buf . get_f32_le () ; __struct . ofs_y = buf . get_f32_le () ; __struct . ofs_z = buf . get_f32_le () ; __struct . diag_x = buf . get_f32_le () ; __struct . diag_y = buf . get_f32_le () ; __struct . diag_z = buf . get_f32_le () ; __struct . offdiag_x = buf . get_f32_le () ; __struct . offdiag_y = buf . get_f32_le () ; __struct . offdiag_z = buf . get_f32_le () ; __struct . compass_id = buf . get_u8 () ; __struct . cal_mask = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . cal_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MagCalStatus" , value : tmp as u32 }) ? ; __struct . autosaved = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . fitness) ; __tmp . put_f32_le (self . ofs_x) ; __tmp . put_f32_le (self . ofs_y) ; __tmp . put_f32_le (self . ofs_z) ; __tmp . put_f32_le (self . diag_x) ; __tmp . put_f32_le (self . diag_y) ; __tmp . put_f32_le (self . diag_z) ; __tmp . put_f32_le (self . offdiag_x) ; __tmp . put_f32_le (self . offdiag_y) ; __tmp . put_f32_le (self . offdiag_z) ; __tmp . put_u8 (self . compass_id) ; __tmp . put_u8 (self . cal_mask) ; __tmp . put_u8 (self . cal_status as u8) ; __tmp . put_u8 (self . autosaved) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TIMESYNC_DATA { pub tc1 : i64 , pub ts1 : i64 , } impl TIMESYNC_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { tc1 : 0_i64 , ts1 : 0_i64 , } ; } impl Default for TIMESYNC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TIMESYNC_DATA { type Message = MavMessage ; const ID : u32 = 111u32 ; const NAME : & 'static str = "TIMESYNC" ; const EXTRA_CRC : u8 = 34u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . tc1 = buf . get_i64_le () ; __struct . ts1 = buf . get_i64_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i64_le (self . tc1) ; __tmp . put_i64_le (self . ts1) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPONENT_INFORMATION_DATA { pub time_boot_ms : u32 , pub general_metadata_file_crc : u32 , pub peripherals_metadata_file_crc : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub general_metadata_uri : [u8 ; 100] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub peripherals_metadata_uri : [u8 ; 100] , } impl COMPONENT_INFORMATION_DATA { pub const ENCODED_LEN : usize = 212usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , general_metadata_file_crc : 0_u32 , peripherals_metadata_file_crc : 0_u32 , general_metadata_uri : [0_u8 ; 100usize] , peripherals_metadata_uri : [0_u8 ; 100usize] , } ; } impl Default for COMPONENT_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPONENT_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 395u32 ; const NAME : & 'static str = "COMPONENT_INFORMATION" ; const EXTRA_CRC : u8 = 0u8 ; const ENCODED_LEN : usize = 212usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . general_metadata_file_crc = buf . get_u32_le () ; __struct . peripherals_metadata_file_crc = buf . get_u32_le () ; for v in & mut __struct . general_metadata_uri { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . peripherals_metadata_uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . general_metadata_file_crc) ; __tmp . put_u32_le (self . peripherals_metadata_file_crc) ; for val in & self . general_metadata_uri { __tmp . put_u8 (* val) ; } for val in & self . peripherals_metadata_uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAMED_VALUE_INT_DATA { pub time_boot_ms : u32 , pub value : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl NAMED_VALUE_INT_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0_i32 , name : [0_u8 ; 10usize] , } ; } impl Default for NAMED_VALUE_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAMED_VALUE_INT_DATA { type Message = MavMessage ; const ID : u32 = 252u32 ; const NAME : & 'static str = "NAMED_VALUE_INT" ; const EXTRA_CRC : u8 = 44u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_i32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . value) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_INFORMATION_DATA { pub uid : u64 , pub time_boot_ms : u32 , pub firmware_version : u32 , pub hardware_version : u32 , pub roll_min : f32 , pub roll_max : f32 , pub pitch_min : f32 , pub pitch_max : f32 , pub yaw_min : f32 , pub yaw_max : f32 , pub cap_flags : GimbalDeviceCapFlags , pub custom_cap_flags : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vendor_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub model_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub custom_name : [u8 ; 32] , } impl GIMBAL_DEVICE_INFORMATION_DATA { pub const ENCODED_LEN : usize = 144usize ; pub const DEFAULT : Self = Self { uid : 0_u64 , time_boot_ms : 0_u32 , firmware_version : 0_u32 , hardware_version : 0_u32 , roll_min : 0.0_f32 , roll_max : 0.0_f32 , pitch_min : 0.0_f32 , pitch_max : 0.0_f32 , yaw_min : 0.0_f32 , yaw_max : 0.0_f32 , cap_flags : GimbalDeviceCapFlags :: DEFAULT , custom_cap_flags : 0_u16 , vendor_name : [0_u8 ; 32usize] , model_name : [0_u8 ; 32usize] , custom_name : [0_u8 ; 32usize] , } ; } impl Default for GIMBAL_DEVICE_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 283u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_INFORMATION" ; const EXTRA_CRC : u8 = 74u8 ; const ENCODED_LEN : usize = 144usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . uid = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . firmware_version = buf . get_u32_le () ; __struct . hardware_version = buf . get_u32_le () ; __struct . roll_min = buf . get_f32_le () ; __struct . roll_max = buf . get_f32_le () ; __struct . pitch_min = buf . get_f32_le () ; __struct . pitch_max = buf . get_f32_le () ; __struct . yaw_min = buf . get_f32_le () ; __struct . yaw_max = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . cap_flags = GimbalDeviceCapFlags :: from_bits (tmp & GimbalDeviceCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceCapFlags" , value : tmp as u32 }) ? ; __struct . custom_cap_flags = buf . get_u16_le () ; for v in & mut __struct . vendor_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . model_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . custom_name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . uid) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . firmware_version) ; __tmp . put_u32_le (self . hardware_version) ; __tmp . put_f32_le (self . roll_min) ; __tmp . put_f32_le (self . roll_max) ; __tmp . put_f32_le (self . pitch_min) ; __tmp . put_f32_le (self . pitch_max) ; __tmp . put_f32_le (self . yaw_min) ; __tmp . put_f32_le (self . yaw_max) ; __tmp . put_u16_le (self . cap_flags . bits ()) ; __tmp . put_u16_le (self . custom_cap_flags) ; for val in & self . vendor_name { __tmp . put_u8 (* val) ; } for val in & self . model_name { __tmp . put_u8 (* val) ; } for val in & self . custom_name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SAFETY_ALLOWED_AREA_DATA { pub p1x : f32 , pub p1y : f32 , pub p1z : f32 , pub p2x : f32 , pub p2y : f32 , pub p2z : f32 , pub frame : MavFrame , } impl SAFETY_ALLOWED_AREA_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { p1x : 0.0_f32 , p1y : 0.0_f32 , p1z : 0.0_f32 , p2x : 0.0_f32 , p2y : 0.0_f32 , p2z : 0.0_f32 , frame : MavFrame :: DEFAULT , } ; } impl Default for SAFETY_ALLOWED_AREA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SAFETY_ALLOWED_AREA_DATA { type Message = MavMessage ; const ID : u32 = 55u32 ; const NAME : & 'static str = "SAFETY_ALLOWED_AREA" ; const EXTRA_CRC : u8 = 3u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . p1x = buf . get_f32_le () ; __struct . p1y = buf . get_f32_le () ; __struct . p1z = buf . get_f32_le () ; __struct . p2x = buf . get_f32_le () ; __struct . p2y = buf . get_f32_le () ; __struct . p2z = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . p1x) ; __tmp . put_f32_le (self . p1y) ; __tmp . put_f32_le (self . p1z) ; __tmp . put_f32_le (self . p2x) ; __tmp . put_f32_le (self . p2y) ; __tmp . put_f32_le (self . p2z) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ODOMETRY_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pose_covariance : [f32 ; 21] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub velocity_covariance : [f32 ; 21] , pub frame_id : MavFrame , pub child_frame_id : MavFrame , } impl ODOMETRY_DATA { pub const ENCODED_LEN : usize = 230usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , pose_covariance : [0.0_f32 ; 21usize] , velocity_covariance : [0.0_f32 ; 21usize] , frame_id : MavFrame :: DEFAULT , child_frame_id : MavFrame :: DEFAULT , } ; } impl Default for ODOMETRY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ODOMETRY_DATA { type Message = MavMessage ; const ID : u32 = 331u32 ; const NAME : & 'static str = "ODOMETRY" ; const EXTRA_CRC : u8 = 91u8 ; const ENCODED_LEN : usize = 230usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; for v in & mut __struct . pose_covariance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . velocity_covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . frame_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . child_frame_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; for val in & self . pose_covariance { __tmp . put_f32_le (* val) ; } for val in & self . velocity_covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . frame_id as u8) ; __tmp . put_u8 (self . child_frame_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SYSTEM_DATA { pub operator_latitude : i32 , pub operator_longitude : i32 , pub area_ceiling : f32 , pub area_floor : f32 , pub operator_altitude_geo : f32 , pub timestamp : u32 , pub area_count : u16 , pub area_radius : u16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub operator_location_type : MavOdidOperatorLocationType , pub classification_type : MavOdidClassificationType , pub category_eu : MavOdidCategoryEu , pub class_eu : MavOdidClassEu , } impl OPEN_DRONE_ID_SYSTEM_DATA { pub const ENCODED_LEN : usize = 54usize ; pub const DEFAULT : Self = Self { operator_latitude : 0_i32 , operator_longitude : 0_i32 , area_ceiling : 0.0_f32 , area_floor : 0.0_f32 , operator_altitude_geo : 0.0_f32 , timestamp : 0_u32 , area_count : 0_u16 , area_radius : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , operator_location_type : MavOdidOperatorLocationType :: DEFAULT , classification_type : MavOdidClassificationType :: DEFAULT , category_eu : MavOdidCategoryEu :: DEFAULT , class_eu : MavOdidClassEu :: DEFAULT , } ; } impl Default for OPEN_DRONE_ID_SYSTEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SYSTEM_DATA { type Message = MavMessage ; const ID : u32 = 12904u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SYSTEM" ; const EXTRA_CRC : u8 = 77u8 ; const ENCODED_LEN : usize = 54usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . operator_latitude = buf . get_i32_le () ; __struct . operator_longitude = buf . get_i32_le () ; __struct . area_ceiling = buf . get_f32_le () ; __struct . area_floor = buf . get_f32_le () ; __struct . operator_altitude_geo = buf . get_f32_le () ; __struct . timestamp = buf . get_u32_le () ; __struct . area_count = buf . get_u16_le () ; __struct . area_radius = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . operator_location_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidOperatorLocationType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . classification_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidClassificationType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . category_eu = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidCategoryEu" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . class_eu = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidClassEu" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . operator_latitude) ; __tmp . put_i32_le (self . operator_longitude) ; __tmp . put_f32_le (self . area_ceiling) ; __tmp . put_f32_le (self . area_floor) ; __tmp . put_f32_le (self . operator_altitude_geo) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u16_le (self . area_count) ; __tmp . put_u16_le (self . area_radius) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . operator_location_type as u8) ; __tmp . put_u8 (self . classification_type as u8) ; __tmp . put_u8 (self . category_eu as u8) ; __tmp . put_u8 (self . class_eu as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ALTITUDE_DATA { pub time_usec : u64 , pub altitude_monotonic : f32 , pub altitude_amsl : f32 , pub altitude_local : f32 , pub altitude_relative : f32 , pub altitude_terrain : f32 , pub bottom_clearance : f32 , } impl ALTITUDE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , altitude_monotonic : 0.0_f32 , altitude_amsl : 0.0_f32 , altitude_local : 0.0_f32 , altitude_relative : 0.0_f32 , altitude_terrain : 0.0_f32 , bottom_clearance : 0.0_f32 , } ; } impl Default for ALTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ALTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 141u32 ; const NAME : & 'static str = "ALTITUDE" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . altitude_monotonic = buf . get_f32_le () ; __struct . altitude_amsl = buf . get_f32_le () ; __struct . altitude_local = buf . get_f32_le () ; __struct . altitude_relative = buf . get_f32_le () ; __struct . altitude_terrain = buf . get_f32_le () ; __struct . bottom_clearance = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . altitude_monotonic) ; __tmp . put_f32_le (self . altitude_amsl) ; __tmp . put_f32_le (self . altitude_local) ; __tmp . put_f32_le (self . altitude_relative) ; __tmp . put_f32_le (self . altitude_terrain) ; __tmp . put_f32_le (self . bottom_clearance) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_ACK_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , pub param_result : ParamAck , } impl PARAM_EXT_ACK_DATA { pub const ENCODED_LEN : usize = 146usize ; pub const DEFAULT : Self = Self { param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , param_result : ParamAck :: DEFAULT , } ; } impl Default for PARAM_EXT_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_ACK_DATA { type Message = MavMessage ; const ID : u32 = 324u32 ; const NAME : & 'static str = "PARAM_EXT_ACK" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 146usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . param_result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "ParamAck" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; __tmp . put_u8 (self . param_result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RESPONSE_EVENT_ERROR_DATA { pub sequence : u16 , pub sequence_oldest_available : u16 , pub target_system : u8 , pub target_component : u8 , pub reason : MavEventErrorReason , } impl RESPONSE_EVENT_ERROR_DATA { pub const ENCODED_LEN : usize = 7usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , sequence_oldest_available : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , reason : MavEventErrorReason :: DEFAULT , } ; } impl Default for RESPONSE_EVENT_ERROR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RESPONSE_EVENT_ERROR_DATA { type Message = MavMessage ; const ID : u32 = 413u32 ; const NAME : & 'static str = "RESPONSE_EVENT_ERROR" ; const EXTRA_CRC : u8 = 77u8 ; const ENCODED_LEN : usize = 7usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . sequence_oldest_available = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . reason = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEventErrorReason" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u16_le (self . sequence_oldest_available) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . reason as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_PRESSURE_DATA { pub time_usec : u64 , pub press_abs : i16 , pub press_diff1 : i16 , pub press_diff2 : i16 , pub temperature : i16 , } impl RAW_PRESSURE_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , press_abs : 0_i16 , press_diff1 : 0_i16 , press_diff2 : 0_i16 , temperature : 0_i16 , } ; } impl Default for RAW_PRESSURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_PRESSURE_DATA { type Message = MavMessage ; const ID : u32 = 28u32 ; const NAME : & 'static str = "RAW_PRESSURE" ; const EXTRA_CRC : u8 = 67u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . press_abs = buf . get_i16_le () ; __struct . press_diff1 = buf . get_i16_le () ; __struct . press_diff2 = buf . get_i16_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i16_le (self . press_abs) ; __tmp . put_i16_le (self . press_diff1) ; __tmp . put_i16_le (self . press_diff2) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_INT_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub seq : u16 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl MISSION_ITEM_INT_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , seq : 0_u16 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for MISSION_ITEM_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_INT_DATA { type Message = MavMessage ; const ID : u32 = 73u32 ; const NAME : & 'static str = "MISSION_ITEM_INT" ; const EXTRA_CRC : u8 = 38u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; __struct . seq = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU3_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU3_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU3_DATA { type Message = MavMessage ; const ID : u32 = 129u32 ; const NAME : & 'static str = "SCALED_IMU3" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MESSAGE_INTERVAL_DATA { pub interval_us : i32 , pub message_id : u16 , } impl MESSAGE_INTERVAL_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { interval_us : 0_i32 , message_id : 0_u16 , } ; } impl Default for MESSAGE_INTERVAL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MESSAGE_INTERVAL_DATA { type Message = MavMessage ; const ID : u32 = 244u32 ; const NAME : & 'static str = "MESSAGE_INTERVAL" ; const EXTRA_CRC : u8 = 95u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . interval_us = buf . get_i32_le () ; __struct . message_id = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . interval_us) ; __tmp . put_u16_le (self . message_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_VECT_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl DEBUG_VECT_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , name : [0_u8 ; 10usize] , } ; } impl Default for DEBUG_VECT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_VECT_DATA { type Message = MavMessage ; const ID : u32 = 250u32 ; const NAME : & 'static str = "DEBUG_VECT" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_CAPTURE_STATUS_DATA { pub time_boot_ms : u32 , pub image_interval : f32 , pub recording_time_ms : u32 , pub available_capacity : f32 , pub image_status : u8 , pub video_status : u8 , } impl CAMERA_CAPTURE_STATUS_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , image_interval : 0.0_f32 , recording_time_ms : 0_u32 , available_capacity : 0.0_f32 , image_status : 0_u8 , video_status : 0_u8 , } ; } impl Default for CAMERA_CAPTURE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_CAPTURE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 262u32 ; const NAME : & 'static str = "CAMERA_CAPTURE_STATUS" ; const EXTRA_CRC : u8 = 12u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . image_interval = buf . get_f32_le () ; __struct . recording_time_ms = buf . get_u32_le () ; __struct . available_capacity = buf . get_f32_le () ; __struct . image_status = buf . get_u8 () ; __struct . video_status = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . image_interval) ; __tmp . put_u32_le (self . recording_time_ms) ; __tmp . put_f32_le (self . available_capacity) ; __tmp . put_u8 (self . image_status) ; __tmp . put_u8 (self . video_status) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_END_DATA { pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_END_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_END_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_END_DATA { type Message = MavMessage ; const ID : u32 = 122u32 ; const NAME : & 'static str = "LOG_REQUEST_END" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FILE_TRANSFER_PROTOCOL_DATA { pub target_network : u8 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 251] , } impl FILE_TRANSFER_PROTOCOL_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { target_network : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , payload : [0_u8 ; 251usize] , } ; } impl Default for FILE_TRANSFER_PROTOCOL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FILE_TRANSFER_PROTOCOL_DATA { type Message = MavMessage ; const ID : u32 = 110u32 ; const NAME : & 'static str = "FILE_TRANSFER_PROTOCOL" ; const EXTRA_CRC : u8 = 84u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_network = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_network) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_REQUEST_READ_DATA { pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , } impl PARAM_EXT_REQUEST_READ_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , } ; } impl Default for PARAM_EXT_REQUEST_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_REQUEST_READ_DATA { type Message = MavMessage ; const ID : u32 = 320u32 ; const NAME : & 'static str = "PARAM_EXT_REQUEST_READ" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WINCH_STATUS_DATA { pub time_usec : u64 , pub line_length : f32 , pub speed : f32 , pub tension : f32 , pub voltage : f32 , pub current : f32 , pub status : MavWinchStatusFlag , pub temperature : i16 , } impl WINCH_STATUS_DATA { pub const ENCODED_LEN : usize = 34usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , line_length : 0.0_f32 , speed : 0.0_f32 , tension : 0.0_f32 , voltage : 0.0_f32 , current : 0.0_f32 , status : MavWinchStatusFlag :: DEFAULT , temperature : 0_i16 , } ; } impl Default for WINCH_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WINCH_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 9005u32 ; const NAME : & 'static str = "WINCH_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 34usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . line_length = buf . get_f32_le () ; __struct . speed = buf . get_f32_le () ; __struct . tension = buf . get_f32_le () ; __struct . voltage = buf . get_f32_le () ; __struct . current = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . status = MavWinchStatusFlag :: from_bits (tmp & MavWinchStatusFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavWinchStatusFlag" , value : tmp as u32 }) ? ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . line_length) ; __tmp . put_f32_le (self . speed) ; __tmp . put_f32_le (self . tension) ; __tmp . put_f32_le (self . voltage) ; __tmp . put_f32_le (self . current) ; __tmp . put_u32_le (self . status . bits ()) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SELF_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub description_type : MavOdidDescType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub description : [u8 ; 23] , } impl OPEN_DRONE_ID_SELF_ID_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , description_type : MavOdidDescType :: DEFAULT , description : [0_u8 ; 23usize] , } ; } impl Default for OPEN_DRONE_ID_SELF_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SELF_ID_DATA { type Message = MavMessage ; const ID : u32 = 12903u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SELF_ID" ; const EXTRA_CRC : u8 = 249u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . description_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidDescType" , value : tmp as u32 }) ? ; for v in & mut __struct . description { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . description_type as u8) ; for val in & self . description { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ISBD_LINK_STATUS_DATA { pub timestamp : u64 , pub last_heartbeat : u64 , pub failed_sessions : u16 , pub successful_sessions : u16 , pub signal_quality : u8 , pub ring_pending : u8 , pub tx_session_pending : u8 , pub rx_session_pending : u8 , } impl ISBD_LINK_STATUS_DATA { pub const ENCODED_LEN : usize = 24usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , last_heartbeat : 0_u64 , failed_sessions : 0_u16 , successful_sessions : 0_u16 , signal_quality : 0_u8 , ring_pending : 0_u8 , tx_session_pending : 0_u8 , rx_session_pending : 0_u8 , } ; } impl Default for ISBD_LINK_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ISBD_LINK_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 335u32 ; const NAME : & 'static str = "ISBD_LINK_STATUS" ; const EXTRA_CRC : u8 = 225u8 ; const ENCODED_LEN : usize = 24usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . last_heartbeat = buf . get_u64_le () ; __struct . failed_sessions = buf . get_u16_le () ; __struct . successful_sessions = buf . get_u16_le () ; __struct . signal_quality = buf . get_u8 () ; __struct . ring_pending = buf . get_u8 () ; __struct . tx_session_pending = buf . get_u8 () ; __struct . rx_session_pending = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u64_le (self . last_heartbeat) ; __tmp . put_u16_le (self . failed_sessions) ; __tmp . put_u16_le (self . successful_sessions) ; __tmp . put_u8 (self . signal_quality) ; __tmp . put_u8 (self . ring_pending) ; __tmp . put_u8 (self . tx_session_pending) ; __tmp . put_u8 (self . rx_session_pending) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TIME_ESTIMATE_TO_TARGET_DATA { pub safe_return : i32 , pub land : i32 , pub mission_next_item : i32 , pub mission_end : i32 , pub commanded_action : i32 , } impl TIME_ESTIMATE_TO_TARGET_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { safe_return : 0_i32 , land : 0_i32 , mission_next_item : 0_i32 , mission_end : 0_i32 , commanded_action : 0_i32 , } ; } impl Default for TIME_ESTIMATE_TO_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TIME_ESTIMATE_TO_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 380u32 ; const NAME : & 'static str = "TIME_ESTIMATE_TO_TARGET" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . safe_return = buf . get_i32_le () ; __struct . land = buf . get_i32_le () ; __struct . mission_next_item = buf . get_i32_le () ; __struct . mission_end = buf . get_i32_le () ; __struct . commanded_action = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . safe_return) ; __tmp . put_i32_le (self . land) ; __tmp . put_i32_le (self . mission_next_item) ; __tmp . put_i32_le (self . mission_end) ; __tmp . put_i32_le (self . commanded_action) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAN_FILTER_MODIFY_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub ids : [u16 ; 16] , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub operation : CanFilterOp , pub num_ids : u8 , } impl CAN_FILTER_MODIFY_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { ids : [0_u16 ; 16usize] , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , operation : CanFilterOp :: DEFAULT , num_ids : 0_u8 , } ; } impl Default for CAN_FILTER_MODIFY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAN_FILTER_MODIFY_DATA { type Message = MavMessage ; const ID : u32 = 388u32 ; const NAME : & 'static str = "CAN_FILTER_MODIFY" ; const EXTRA_CRC : u8 = 8u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . ids { let val = buf . get_u16_le () ; * v = val ; } __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . operation = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CanFilterOp" , value : tmp as u32 }) ? ; __struct . num_ids = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . ids { __tmp . put_u16_le (* val) ; } __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . operation as u8) ; __tmp . put_u8 (self . num_ids) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { pub flags : GimbalManagerFlags , pub pitch : f32 , pub yaw : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , pitch : 0.0_f32 , yaw : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 288u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_MANUAL_CONTROL" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_MESSAGE_PACK_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub single_message_size : u8 , pub msg_pack_size : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub messages : [u8 ; 225] , } impl OPEN_DRONE_ID_MESSAGE_PACK_DATA { pub const ENCODED_LEN : usize = 249usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , single_message_size : 0_u8 , msg_pack_size : 0_u8 , messages : [0_u8 ; 225usize] , } ; } impl Default for OPEN_DRONE_ID_MESSAGE_PACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_MESSAGE_PACK_DATA { type Message = MavMessage ; const ID : u32 = 12915u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_MESSAGE_PACK" ; const EXTRA_CRC : u8 = 94u8 ; const ENCODED_LEN : usize = 249usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } __struct . single_message_size = buf . get_u8 () ; __struct . msg_pack_size = buf . get_u8 () ; for v in & mut __struct . messages { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . single_message_size) ; __tmp . put_u8 (self . msg_pack_size) ; for val in & self . messages { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_yaw : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_yaw : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub command : [u16 ; 5] , pub valid_points : u8 , } impl TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { pub const ENCODED_LEN : usize = 239usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , pos_x : [0.0_f32 ; 5usize] , pos_y : [0.0_f32 ; 5usize] , pos_z : [0.0_f32 ; 5usize] , vel_x : [0.0_f32 ; 5usize] , vel_y : [0.0_f32 ; 5usize] , vel_z : [0.0_f32 ; 5usize] , acc_x : [0.0_f32 ; 5usize] , acc_y : [0.0_f32 ; 5usize] , acc_z : [0.0_f32 ; 5usize] , pos_yaw : [0.0_f32 ; 5usize] , vel_yaw : [0.0_f32 ; 5usize] , command : [0_u16 ; 5usize] , valid_points : 0_u8 , } ; } impl Default for TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { type Message = MavMessage ; const ID : u32 = 332u32 ; const NAME : & 'static str = "TRAJECTORY_REPRESENTATION_WAYPOINTS" ; const EXTRA_CRC : u8 = 236u8 ; const ENCODED_LEN : usize = 239usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . pos_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_yaw { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_yaw { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . command { let val = buf . get_u16_le () ; * v = val ; } __struct . valid_points = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . pos_x { __tmp . put_f32_le (* val) ; } for val in & self . pos_y { __tmp . put_f32_le (* val) ; } for val in & self . pos_z { __tmp . put_f32_le (* val) ; } for val in & self . vel_x { __tmp . put_f32_le (* val) ; } for val in & self . vel_y { __tmp . put_f32_le (* val) ; } for val in & self . vel_z { __tmp . put_f32_le (* val) ; } for val in & self . acc_x { __tmp . put_f32_le (* val) ; } for val in & self . acc_y { __tmp . put_f32_le (* val) ; } for val in & self . acc_z { __tmp . put_f32_le (* val) ; } for val in & self . pos_yaw { __tmp . put_f32_le (* val) ; } for val in & self . vel_yaw { __tmp . put_f32_le (* val) ; } for val in & self . command { __tmp . put_u16_le (* val) ; } __tmp . put_u8 (self . valid_points) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GENERATOR_STATUS_DATA { pub status : MavGeneratorStatusFlag , pub battery_current : f32 , pub load_current : f32 , pub power_generated : f32 , pub bus_voltage : f32 , pub bat_current_setpoint : f32 , pub runtime : u32 , pub time_until_maintenance : i32 , pub generator_speed : u16 , pub rectifier_temperature : i16 , pub generator_temperature : i16 , } impl GENERATOR_STATUS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { status : MavGeneratorStatusFlag :: DEFAULT , battery_current : 0.0_f32 , load_current : 0.0_f32 , power_generated : 0.0_f32 , bus_voltage : 0.0_f32 , bat_current_setpoint : 0.0_f32 , runtime : 0_u32 , time_until_maintenance : 0_i32 , generator_speed : 0_u16 , rectifier_temperature : 0_i16 , generator_temperature : 0_i16 , } ; } impl Default for GENERATOR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GENERATOR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 373u32 ; const NAME : & 'static str = "GENERATOR_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u64_le () ; __struct . status = MavGeneratorStatusFlag :: from_bits (tmp & MavGeneratorStatusFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavGeneratorStatusFlag" , value : tmp as u32 }) ? ; __struct . battery_current = buf . get_f32_le () ; __struct . load_current = buf . get_f32_le () ; __struct . power_generated = buf . get_f32_le () ; __struct . bus_voltage = buf . get_f32_le () ; __struct . bat_current_setpoint = buf . get_f32_le () ; __struct . runtime = buf . get_u32_le () ; __struct . time_until_maintenance = buf . get_i32_le () ; __struct . generator_speed = buf . get_u16_le () ; __struct . rectifier_temperature = buf . get_i16_le () ; __struct . generator_temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . status . bits ()) ; __tmp . put_f32_le (self . battery_current) ; __tmp . put_f32_le (self . load_current) ; __tmp . put_f32_le (self . power_generated) ; __tmp . put_f32_le (self . bus_voltage) ; __tmp . put_f32_le (self . bat_current_setpoint) ; __tmp . put_u32_le (self . runtime) ; __tmp . put_i32_le (self . time_until_maintenance) ; __tmp . put_u16_le (self . generator_speed) ; __tmp . put_i16_le (self . rectifier_temperature) ; __tmp . put_i16_le (self . generator_temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESTIMATOR_STATUS_DATA { pub time_usec : u64 , pub vel_ratio : f32 , pub pos_horiz_ratio : f32 , pub pos_vert_ratio : f32 , pub mag_ratio : f32 , pub hagl_ratio : f32 , pub tas_ratio : f32 , pub pos_horiz_accuracy : f32 , pub pos_vert_accuracy : f32 , pub flags : EstimatorStatusFlags , } impl ESTIMATOR_STATUS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , vel_ratio : 0.0_f32 , pos_horiz_ratio : 0.0_f32 , pos_vert_ratio : 0.0_f32 , mag_ratio : 0.0_f32 , hagl_ratio : 0.0_f32 , tas_ratio : 0.0_f32 , pos_horiz_accuracy : 0.0_f32 , pos_vert_accuracy : 0.0_f32 , flags : EstimatorStatusFlags :: DEFAULT , } ; } impl Default for ESTIMATOR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESTIMATOR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 230u32 ; const NAME : & 'static str = "ESTIMATOR_STATUS" ; const EXTRA_CRC : u8 = 163u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . vel_ratio = buf . get_f32_le () ; __struct . pos_horiz_ratio = buf . get_f32_le () ; __struct . pos_vert_ratio = buf . get_f32_le () ; __struct . mag_ratio = buf . get_f32_le () ; __struct . hagl_ratio = buf . get_f32_le () ; __struct . tas_ratio = buf . get_f32_le () ; __struct . pos_horiz_accuracy = buf . get_f32_le () ; __struct . pos_vert_accuracy = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = EstimatorStatusFlags :: from_bits (tmp & EstimatorStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EstimatorStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . vel_ratio) ; __tmp . put_f32_le (self . pos_horiz_ratio) ; __tmp . put_f32_le (self . pos_vert_ratio) ; __tmp . put_f32_le (self . mag_ratio) ; __tmp . put_f32_le (self . hagl_ratio) ; __tmp . put_f32_le (self . tas_ratio) ; __tmp . put_f32_le (self . pos_horiz_accuracy) ; __tmp . put_f32_le (self . pos_vert_accuracy) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RTCM_DATA_DATA { pub flags : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 180] , } impl GPS_RTCM_DATA_DATA { pub const ENCODED_LEN : usize = 182usize ; pub const DEFAULT : Self = Self { flags : 0_u8 , len : 0_u8 , data : [0_u8 ; 180usize] , } ; } impl Default for GPS_RTCM_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RTCM_DATA_DATA { type Message = MavMessage ; const ID : u32 = 233u32 ; const NAME : & 'static str = "GPS_RTCM_DATA" ; const EXTRA_CRC : u8 = 35u8 ; const ENCODED_LEN : usize = 182usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . flags = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . flags) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CHANGE_OPERATOR_CONTROL_ACK_DATA { pub gcs_system_id : u8 , pub control_request : u8 , pub ack : u8 , } impl CHANGE_OPERATOR_CONTROL_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { gcs_system_id : 0_u8 , control_request : 0_u8 , ack : 0_u8 , } ; } impl Default for CHANGE_OPERATOR_CONTROL_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CHANGE_OPERATOR_CONTROL_ACK_DATA { type Message = MavMessage ; const ID : u32 = 6u32 ; const NAME : & 'static str = "CHANGE_OPERATOR_CONTROL_ACK" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . gcs_system_id = buf . get_u8 () ; __struct . control_request = buf . get_u8 () ; __struct . ack = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . gcs_system_id) ; __tmp . put_u8 (self . control_request) ; __tmp . put_u8 (self . ack) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POSITION_TARGET_LOCAL_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub coordinate_frame : MavFrame , } impl POSITION_TARGET_LOCAL_NED_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for POSITION_TARGET_LOCAL_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POSITION_TARGET_LOCAL_NED_DATA { type Message = MavMessage ; const ID : u32 = 85u32 ; const NAME : & 'static str = "POSITION_TARGET_LOCAL_NED" ; const EXTRA_CRC : u8 = 140u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_SENSOR_DATA { pub time_usec : u64 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub xmag : f32 , pub ymag : f32 , pub zmag : f32 , pub abs_pressure : f32 , pub diff_pressure : f32 , pub pressure_alt : f32 , pub temperature : f32 , pub fields_updated : HilSensorUpdatedFlags , } impl HIL_SENSOR_DATA { pub const ENCODED_LEN : usize = 64usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , xmag : 0.0_f32 , ymag : 0.0_f32 , zmag : 0.0_f32 , abs_pressure : 0.0_f32 , diff_pressure : 0.0_f32 , pressure_alt : 0.0_f32 , temperature : 0.0_f32 , fields_updated : HilSensorUpdatedFlags :: DEFAULT , } ; } impl Default for HIL_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 107u32 ; const NAME : & 'static str = "HIL_SENSOR" ; const EXTRA_CRC : u8 = 108u8 ; const ENCODED_LEN : usize = 64usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . xmag = buf . get_f32_le () ; __struct . ymag = buf . get_f32_le () ; __struct . zmag = buf . get_f32_le () ; __struct . abs_pressure = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . pressure_alt = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . fields_updated = HilSensorUpdatedFlags :: from_bits (tmp & HilSensorUpdatedFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HilSensorUpdatedFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . xmag) ; __tmp . put_f32_le (self . ymag) ; __tmp . put_f32_le (self . zmag) ; __tmp . put_f32_le (self . abs_pressure) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . pressure_alt) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u32_le (self . fields_updated . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DISTANCE_SENSOR_DATA { pub time_boot_ms : u32 , pub min_distance : u16 , pub max_distance : u16 , pub current_distance : u16 , pub mavtype : MavDistanceSensor , pub id : u8 , pub orientation : MavSensorOrientation , pub covariance : u8 , } impl DISTANCE_SENSOR_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , min_distance : 0_u16 , max_distance : 0_u16 , current_distance : 0_u16 , mavtype : MavDistanceSensor :: DEFAULT , id : 0_u8 , orientation : MavSensorOrientation :: DEFAULT , covariance : 0_u8 , } ; } impl Default for DISTANCE_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DISTANCE_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 132u32 ; const NAME : & 'static str = "DISTANCE_SENSOR" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . min_distance = buf . get_u16_le () ; __struct . max_distance = buf . get_u16_le () ; __struct . current_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . orientation = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavSensorOrientation" , value : tmp as u32 }) ? ; __struct . covariance = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . min_distance) ; __tmp . put_u16_le (self . max_distance) ; __tmp . put_u16_le (self . current_distance) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . orientation as u8) ; __tmp . put_u8 (self . covariance) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIBRATION_DATA { pub time_usec : u64 , pub vibration_x : f32 , pub vibration_y : f32 , pub vibration_z : f32 , pub clipping_0 : u32 , pub clipping_1 : u32 , pub clipping_2 : u32 , } impl VIBRATION_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , vibration_x : 0.0_f32 , vibration_y : 0.0_f32 , vibration_z : 0.0_f32 , clipping_0 : 0_u32 , clipping_1 : 0_u32 , clipping_2 : 0_u32 , } ; } impl Default for VIBRATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIBRATION_DATA { type Message = MavMessage ; const ID : u32 = 241u32 ; const NAME : & 'static str = "VIBRATION" ; const EXTRA_CRC : u8 = 90u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . vibration_x = buf . get_f32_le () ; __struct . vibration_y = buf . get_f32_le () ; __struct . vibration_z = buf . get_f32_le () ; __struct . clipping_0 = buf . get_u32_le () ; __struct . clipping_1 = buf . get_u32_le () ; __struct . clipping_2 = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . vibration_x) ; __tmp . put_f32_le (self . vibration_y) ; __tmp . put_f32_le (self . vibration_z) ; __tmp . put_u32_le (self . clipping_0) ; __tmp . put_u32_le (self . clipping_1) ; __tmp . put_u32_le (self . clipping_2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRIGGER_DATA { pub time_usec : u64 , pub seq : u32 , } impl CAMERA_TRIGGER_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , seq : 0_u32 , } ; } impl Default for CAMERA_TRIGGER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRIGGER_DATA { type Message = MavMessage ; const ID : u32 = 112u32 ; const NAME : & 'static str = "CAMERA_TRIGGER" ; const EXTRA_CRC : u8 = 174u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . seq = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_LIST_DATA { pub start : u16 , pub end : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start : 0_u16 , end : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 117u32 ; const NAME : & 'static str = "LOG_REQUEST_LIST" ; const EXTRA_CRC : u8 = 128u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start = buf . get_u16_le () ; __struct . end = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . start) ; __tmp . put_u16_le (self . end) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PROTOCOL_VERSION_DATA { pub version : u16 , pub min_version : u16 , pub max_version : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub spec_version_hash : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub library_version_hash : [u8 ; 8] , } impl PROTOCOL_VERSION_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { version : 0_u16 , min_version : 0_u16 , max_version : 0_u16 , spec_version_hash : [0_u8 ; 8usize] , library_version_hash : [0_u8 ; 8usize] , } ; } impl Default for PROTOCOL_VERSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PROTOCOL_VERSION_DATA { type Message = MavMessage ; const ID : u32 = 300u32 ; const NAME : & 'static str = "PROTOCOL_VERSION" ; const EXTRA_CRC : u8 = 217u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . version = buf . get_u16_le () ; __struct . min_version = buf . get_u16_le () ; __struct . max_version = buf . get_u16_le () ; for v in & mut __struct . spec_version_hash { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . library_version_hash { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . version) ; __tmp . put_u16_le (self . min_version) ; __tmp . put_u16_le (self . max_version) ; for val in & self . spec_version_hash { __tmp . put_u8 (* val) ; } for val in & self . library_version_hash { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CONTROL_SYSTEM_STATE_DATA { pub time_usec : u64 , pub x_acc : f32 , pub y_acc : f32 , pub z_acc : f32 , pub x_vel : f32 , pub y_vel : f32 , pub z_vel : f32 , pub x_pos : f32 , pub y_pos : f32 , pub z_pos : f32 , pub airspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_variance : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_variance : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub roll_rate : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , } impl CONTROL_SYSTEM_STATE_DATA { pub const ENCODED_LEN : usize = 100usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x_acc : 0.0_f32 , y_acc : 0.0_f32 , z_acc : 0.0_f32 , x_vel : 0.0_f32 , y_vel : 0.0_f32 , z_vel : 0.0_f32 , x_pos : 0.0_f32 , y_pos : 0.0_f32 , z_pos : 0.0_f32 , airspeed : 0.0_f32 , vel_variance : [0.0_f32 ; 3usize] , pos_variance : [0.0_f32 ; 3usize] , q : [0.0_f32 ; 4usize] , roll_rate : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , } ; } impl Default for CONTROL_SYSTEM_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CONTROL_SYSTEM_STATE_DATA { type Message = MavMessage ; const ID : u32 = 146u32 ; const NAME : & 'static str = "CONTROL_SYSTEM_STATE" ; const EXTRA_CRC : u8 = 103u8 ; const ENCODED_LEN : usize = 100usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x_acc = buf . get_f32_le () ; __struct . y_acc = buf . get_f32_le () ; __struct . z_acc = buf . get_f32_le () ; __struct . x_vel = buf . get_f32_le () ; __struct . y_vel = buf . get_f32_le () ; __struct . z_vel = buf . get_f32_le () ; __struct . x_pos = buf . get_f32_le () ; __struct . y_pos = buf . get_f32_le () ; __struct . z_pos = buf . get_f32_le () ; __struct . airspeed = buf . get_f32_le () ; for v in & mut __struct . vel_variance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_variance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . roll_rate = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x_acc) ; __tmp . put_f32_le (self . y_acc) ; __tmp . put_f32_le (self . z_acc) ; __tmp . put_f32_le (self . x_vel) ; __tmp . put_f32_le (self . y_vel) ; __tmp . put_f32_le (self . z_vel) ; __tmp . put_f32_le (self . x_pos) ; __tmp . put_f32_le (self . y_pos) ; __tmp . put_f32_le (self . z_pos) ; __tmp . put_f32_le (self . airspeed) ; for val in & self . vel_variance { __tmp . put_f32_le (* val) ; } for val in & self . pos_variance { __tmp . put_f32_le (* val) ; } for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . roll_rate) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_FOV_STATUS_DATA { pub time_boot_ms : u32 , pub lat_camera : i32 , pub lon_camera : i32 , pub alt_camera : i32 , pub lat_image : i32 , pub lon_image : i32 , pub alt_image : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub hfov : f32 , pub vfov : f32 , } impl CAMERA_FOV_STATUS_DATA { pub const ENCODED_LEN : usize = 52usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_camera : 0_i32 , lon_camera : 0_i32 , alt_camera : 0_i32 , lat_image : 0_i32 , lon_image : 0_i32 , alt_image : 0_i32 , q : [0.0_f32 ; 4usize] , hfov : 0.0_f32 , vfov : 0.0_f32 , } ; } impl Default for CAMERA_FOV_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_FOV_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 271u32 ; const NAME : & 'static str = "CAMERA_FOV_STATUS" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 52usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_camera = buf . get_i32_le () ; __struct . lon_camera = buf . get_i32_le () ; __struct . alt_camera = buf . get_i32_le () ; __struct . lat_image = buf . get_i32_le () ; __struct . lon_image = buf . get_i32_le () ; __struct . alt_image = buf . get_i32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . hfov = buf . get_f32_le () ; __struct . vfov = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_camera) ; __tmp . put_i32_le (self . lon_camera) ; __tmp . put_i32_le (self . alt_camera) ; __tmp . put_i32_le (self . lat_image) ; __tmp . put_i32_le (self . lon_image) ; __tmp . put_i32_le (self . alt_image) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . hfov) ; __tmp . put_f32_le (self . vfov) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SUPPORTED_TUNES_DATA { pub format : TuneFormat , pub target_system : u8 , pub target_component : u8 , } impl SUPPORTED_TUNES_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { format : TuneFormat :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SUPPORTED_TUNES_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SUPPORTED_TUNES_DATA { type Message = MavMessage ; const ID : u32 = 401u32 ; const NAME : & 'static str = "SUPPORTED_TUNES" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . format = TuneFormat :: from_bits (tmp & TuneFormat :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "TuneFormat" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . format . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { pub operator_latitude : i32 , pub operator_longitude : i32 , pub operator_altitude_geo : f32 , pub timestamp : u32 , pub target_system : u8 , pub target_component : u8 , } impl OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { operator_latitude : 0_i32 , operator_longitude : 0_i32 , operator_altitude_geo : 0.0_f32 , timestamp : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { type Message = MavMessage ; const ID : u32 = 12919u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SYSTEM_UPDATE" ; const EXTRA_CRC : u8 = 7u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . operator_latitude = buf . get_i32_le () ; __struct . operator_longitude = buf . get_i32_le () ; __struct . operator_altitude_geo = buf . get_f32_le () ; __struct . timestamp = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . operator_latitude) ; __tmp . put_i32_le (self . operator_longitude) ; __tmp . put_f32_le (self . operator_altitude_geo) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIND_COV_DATA { pub time_usec : u64 , pub wind_x : f32 , pub wind_y : f32 , pub wind_z : f32 , pub var_horiz : f32 , pub var_vert : f32 , pub wind_alt : f32 , pub horiz_accuracy : f32 , pub vert_accuracy : f32 , } impl WIND_COV_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , wind_x : 0.0_f32 , wind_y : 0.0_f32 , wind_z : 0.0_f32 , var_horiz : 0.0_f32 , var_vert : 0.0_f32 , wind_alt : 0.0_f32 , horiz_accuracy : 0.0_f32 , vert_accuracy : 0.0_f32 , } ; } impl Default for WIND_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIND_COV_DATA { type Message = MavMessage ; const ID : u32 = 231u32 ; const NAME : & 'static str = "WIND_COV" ; const EXTRA_CRC : u8 = 105u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . wind_x = buf . get_f32_le () ; __struct . wind_y = buf . get_f32_le () ; __struct . wind_z = buf . get_f32_le () ; __struct . var_horiz = buf . get_f32_le () ; __struct . var_vert = buf . get_f32_le () ; __struct . wind_alt = buf . get_f32_le () ; __struct . horiz_accuracy = buf . get_f32_le () ; __struct . vert_accuracy = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . wind_x) ; __tmp . put_f32_le (self . wind_y) ; __tmp . put_f32_le (self . wind_z) ; __tmp . put_f32_le (self . var_horiz) ; __tmp . put_f32_le (self . var_vert) ; __tmp . put_f32_le (self . wind_alt) ; __tmp . put_f32_le (self . horiz_accuracy) ; __tmp . put_f32_le (self . vert_accuracy) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct V2_EXTENSION_DATA { pub message_type : u16 , pub target_network : u8 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 249] , } impl V2_EXTENSION_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { message_type : 0_u16 , target_network : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , payload : [0_u8 ; 249usize] , } ; } impl Default for V2_EXTENSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for V2_EXTENSION_DATA { type Message = MavMessage ; const ID : u32 = 248u32 ; const NAME : & 'static str = "V2_EXTENSION" ; const EXTRA_CRC : u8 = 8u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . message_type = buf . get_u16_le () ; __struct . target_network = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . message_type) ; __tmp . put_u8 (self . target_network) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_INFORMATION_DATA { pub time_boot_ms : u32 , pub firmware_version : u32 , pub focal_length : f32 , pub sensor_size_h : f32 , pub sensor_size_v : f32 , pub flags : CameraCapFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub cam_definition_version : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vendor_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub model_name : [u8 ; 32] , pub lens_id : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cam_definition_uri : [u8 ; 140] , } impl CAMERA_INFORMATION_DATA { pub const ENCODED_LEN : usize = 235usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , firmware_version : 0_u32 , focal_length : 0.0_f32 , sensor_size_h : 0.0_f32 , sensor_size_v : 0.0_f32 , flags : CameraCapFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , cam_definition_version : 0_u16 , vendor_name : [0_u8 ; 32usize] , model_name : [0_u8 ; 32usize] , lens_id : 0_u8 , cam_definition_uri : [0_u8 ; 140usize] , } ; } impl Default for CAMERA_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 259u32 ; const NAME : & 'static str = "CAMERA_INFORMATION" ; const EXTRA_CRC : u8 = 92u8 ; const ENCODED_LEN : usize = 235usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . firmware_version = buf . get_u32_le () ; __struct . focal_length = buf . get_f32_le () ; __struct . sensor_size_h = buf . get_f32_le () ; __struct . sensor_size_v = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . flags = CameraCapFlags :: from_bits (tmp & CameraCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "CameraCapFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . cam_definition_version = buf . get_u16_le () ; for v in & mut __struct . vendor_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . model_name { let val = buf . get_u8 () ; * v = val ; } __struct . lens_id = buf . get_u8 () ; for v in & mut __struct . cam_definition_uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . firmware_version) ; __tmp . put_f32_le (self . focal_length) ; __tmp . put_f32_le (self . sensor_size_h) ; __tmp . put_f32_le (self . sensor_size_v) ; __tmp . put_u32_le (self . flags . bits ()) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . cam_definition_version) ; for val in & self . vendor_name { __tmp . put_u8 (* val) ; } for val in & self . model_name { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . lens_id) ; for val in & self . cam_definition_uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COLLISION_DATA { pub id : u32 , pub time_to_minimum_delta : f32 , pub altitude_minimum_delta : f32 , pub horizontal_minimum_delta : f32 , pub src : MavCollisionSrc , pub action : MavCollisionAction , pub threat_level : MavCollisionThreatLevel , } impl COLLISION_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { id : 0_u32 , time_to_minimum_delta : 0.0_f32 , altitude_minimum_delta : 0.0_f32 , horizontal_minimum_delta : 0.0_f32 , src : MavCollisionSrc :: DEFAULT , action : MavCollisionAction :: DEFAULT , threat_level : MavCollisionThreatLevel :: DEFAULT , } ; } impl Default for COLLISION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COLLISION_DATA { type Message = MavMessage ; const ID : u32 = 247u32 ; const NAME : & 'static str = "COLLISION" ; const EXTRA_CRC : u8 = 81u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . time_to_minimum_delta = buf . get_f32_le () ; __struct . altitude_minimum_delta = buf . get_f32_le () ; __struct . horizontal_minimum_delta = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . src = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionSrc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . action = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionAction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . threat_level = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionThreatLevel" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_f32_le (self . time_to_minimum_delta) ; __tmp . put_f32_le (self . altitude_minimum_delta) ; __tmp . put_f32_le (self . horizontal_minimum_delta) ; __tmp . put_u8 (self . src as u8) ; __tmp . put_u8 (self . action as u8) ; __tmp . put_u8 (self . threat_level as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl PARAM_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PARAM_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 21u32 ; const NAME : & 'static str = "PARAM_REQUEST_LIST" ; const EXTRA_CRC : u8 = 159u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_OPTICAL_FLOW_DATA { pub time_usec : u64 , pub integration_time_us : u32 , pub integrated_x : f32 , pub integrated_y : f32 , pub integrated_xgyro : f32 , pub integrated_ygyro : f32 , pub integrated_zgyro : f32 , pub time_delta_distance_us : u32 , pub distance : f32 , pub temperature : i16 , pub sensor_id : u8 , pub quality : u8 , } impl HIL_OPTICAL_FLOW_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , integration_time_us : 0_u32 , integrated_x : 0.0_f32 , integrated_y : 0.0_f32 , integrated_xgyro : 0.0_f32 , integrated_ygyro : 0.0_f32 , integrated_zgyro : 0.0_f32 , time_delta_distance_us : 0_u32 , distance : 0.0_f32 , temperature : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for HIL_OPTICAL_FLOW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_OPTICAL_FLOW_DATA { type Message = MavMessage ; const ID : u32 = 114u32 ; const NAME : & 'static str = "HIL_OPTICAL_FLOW" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . integration_time_us = buf . get_u32_le () ; __struct . integrated_x = buf . get_f32_le () ; __struct . integrated_y = buf . get_f32_le () ; __struct . integrated_xgyro = buf . get_f32_le () ; __struct . integrated_ygyro = buf . get_f32_le () ; __struct . integrated_zgyro = buf . get_f32_le () ; __struct . time_delta_distance_us = buf . get_u32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . integration_time_us) ; __tmp . put_f32_le (self . integrated_x) ; __tmp . put_f32_le (self . integrated_y) ; __tmp . put_f32_le (self . integrated_xgyro) ; __tmp . put_f32_le (self . integrated_ygyro) ; __tmp . put_f32_le (self . integrated_zgyro) ; __tmp . put_u32_le (self . time_delta_distance_us) ; __tmp . put_f32_le (self . distance) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_INJECT_DATA_DATA { pub target_system : u8 , pub target_component : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 110] , } impl GPS_INJECT_DATA_DATA { pub const ENCODED_LEN : usize = 113usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , len : 0_u8 , data : [0_u8 ; 110usize] , } ; } impl Default for GPS_INJECT_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_INJECT_DATA_DATA { type Message = MavMessage ; const ID : u32 = 123u32 ; const NAME : & 'static str = "GPS_INJECT_DATA" ; const EXTRA_CRC : u8 = 250u8 ; const ENCODED_LEN : usize = 113usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OBSTACLE_DISTANCE_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub distances : [u16 ; 72] , pub min_distance : u16 , pub max_distance : u16 , pub sensor_type : MavDistanceSensor , pub increment : u8 , } impl OBSTACLE_DISTANCE_DATA { pub const ENCODED_LEN : usize = 158usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , distances : [0_u16 ; 72usize] , min_distance : 0_u16 , max_distance : 0_u16 , sensor_type : MavDistanceSensor :: DEFAULT , increment : 0_u8 , } ; } impl Default for OBSTACLE_DISTANCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OBSTACLE_DISTANCE_DATA { type Message = MavMessage ; const ID : u32 = 330u32 ; const NAME : & 'static str = "OBSTACLE_DISTANCE" ; const EXTRA_CRC : u8 = 23u8 ; const ENCODED_LEN : usize = 158usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . distances { let val = buf . get_u16_le () ; * v = val ; } __struct . min_distance = buf . get_u16_le () ; __struct . max_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . sensor_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; __struct . increment = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . distances { __tmp . put_u16_le (* val) ; } __tmp . put_u16_le (self . min_distance) ; __tmp . put_u16_le (self . max_distance) ; __tmp . put_u8 (self . sensor_type as u8) ; __tmp . put_u8 (self . increment) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REQUEST_DATA_STREAM_DATA { pub req_message_rate : u16 , pub target_system : u8 , pub target_component : u8 , pub req_stream_id : u8 , pub start_stop : u8 , } impl REQUEST_DATA_STREAM_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { req_message_rate : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , req_stream_id : 0_u8 , start_stop : 0_u8 , } ; } impl Default for REQUEST_DATA_STREAM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REQUEST_DATA_STREAM_DATA { type Message = MavMessage ; const ID : u32 = 66u32 ; const NAME : & 'static str = "REQUEST_DATA_STREAM" ; const EXTRA_CRC : u8 = 148u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . req_message_rate = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . req_stream_id = buf . get_u8 () ; __struct . start_stop = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . req_message_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . req_stream_id) ; __tmp . put_u8 (self . start_stop) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PING_DATA { pub time_usec : u64 , pub seq : u32 , pub target_system : u8 , pub target_component : u8 , } impl PING_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , seq : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PING_DATA { type Message = MavMessage ; const ID : u32 = 4u32 ; const NAME : & 'static str = "PING" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . seq = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RTK_DATA { pub time_last_baseline_ms : u32 , pub tow : u32 , pub baseline_a_mm : i32 , pub baseline_b_mm : i32 , pub baseline_c_mm : i32 , pub accuracy : u32 , pub iar_num_hypotheses : i32 , pub wn : u16 , pub rtk_receiver_id : u8 , pub rtk_health : u8 , pub rtk_rate : u8 , pub nsats : u8 , pub baseline_coords_type : RtkBaselineCoordinateSystem , } impl GPS_RTK_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_last_baseline_ms : 0_u32 , tow : 0_u32 , baseline_a_mm : 0_i32 , baseline_b_mm : 0_i32 , baseline_c_mm : 0_i32 , accuracy : 0_u32 , iar_num_hypotheses : 0_i32 , wn : 0_u16 , rtk_receiver_id : 0_u8 , rtk_health : 0_u8 , rtk_rate : 0_u8 , nsats : 0_u8 , baseline_coords_type : RtkBaselineCoordinateSystem :: DEFAULT , } ; } impl Default for GPS_RTK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RTK_DATA { type Message = MavMessage ; const ID : u32 = 127u32 ; const NAME : & 'static str = "GPS_RTK" ; const EXTRA_CRC : u8 = 25u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_last_baseline_ms = buf . get_u32_le () ; __struct . tow = buf . get_u32_le () ; __struct . baseline_a_mm = buf . get_i32_le () ; __struct . baseline_b_mm = buf . get_i32_le () ; __struct . baseline_c_mm = buf . get_i32_le () ; __struct . accuracy = buf . get_u32_le () ; __struct . iar_num_hypotheses = buf . get_i32_le () ; __struct . wn = buf . get_u16_le () ; __struct . rtk_receiver_id = buf . get_u8 () ; __struct . rtk_health = buf . get_u8 () ; __struct . rtk_rate = buf . get_u8 () ; __struct . nsats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . baseline_coords_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "RtkBaselineCoordinateSystem" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_last_baseline_ms) ; __tmp . put_u32_le (self . tow) ; __tmp . put_i32_le (self . baseline_a_mm) ; __tmp . put_i32_le (self . baseline_b_mm) ; __tmp . put_i32_le (self . baseline_c_mm) ; __tmp . put_u32_le (self . accuracy) ; __tmp . put_i32_le (self . iar_num_hypotheses) ; __tmp . put_u16_le (self . wn) ; __tmp . put_u8 (self . rtk_receiver_id) ; __tmp . put_u8 (self . rtk_health) ; __tmp . put_u8 (self . rtk_rate) ; __tmp . put_u8 (self . nsats) ; __tmp . put_u8 (self . baseline_coords_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_POSITION_INT_DATA { pub time_boot_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub hdg : u16 , } impl GLOBAL_POSITION_INT_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , hdg : 0_u16 , } ; } impl Default for GLOBAL_POSITION_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_POSITION_INT_DATA { type Message = MavMessage ; const ID : u32 = 33u32 ; const NAME : & 'static str = "GLOBAL_POSITION_INT" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . hdg = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . hdg) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POSITION_TARGET_GLOBAL_INT_DATA { pub time_boot_ms : u32 , pub lat_int : i32 , pub lon_int : i32 , pub alt : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub coordinate_frame : MavFrame , } impl POSITION_TARGET_GLOBAL_INT_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_int : 0_i32 , lon_int : 0_i32 , alt : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for POSITION_TARGET_GLOBAL_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POSITION_TARGET_GLOBAL_INT_DATA { type Message = MavMessage ; const ID : u32 = 87u32 ; const NAME : & 'static str = "POSITION_TARGET_GLOBAL_INT" ; const EXTRA_CRC : u8 = 150u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_int = buf . get_i32_le () ; __struct . lon_int = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_int) ; __tmp . put_i32_le (self . lon_int) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HEARTBEAT_DATA { pub custom_mode : u32 , pub mavtype : MavType , pub autopilot : MavAutopilot , pub base_mode : MavModeFlag , pub system_status : MavState , pub mavlink_version : u8 , } impl HEARTBEAT_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , mavtype : MavType :: DEFAULT , autopilot : MavAutopilot :: DEFAULT , base_mode : MavModeFlag :: DEFAULT , system_status : MavState :: DEFAULT , mavlink_version : 0_u8 , } ; } impl Default for HEARTBEAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HEARTBEAT_DATA { type Message = MavMessage ; const ID : u32 = 0u32 ; const NAME : & 'static str = "HEARTBEAT" ; const EXTRA_CRC : u8 = 50u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . autopilot = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavAutopilot" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . base_mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . system_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavState" , value : tmp as u32 }) ? ; __struct . mavlink_version = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . autopilot as u8) ; __tmp . put_u8 (self . base_mode . bits ()) ; __tmp . put_u8 (self . system_status as u8) ; __tmp . put_u8 (self . mavlink_version) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAN_FRAME_DATA { pub id : u32 , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 8] , } impl CAN_FRAME_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , len : 0_u8 , data : [0_u8 ; 8usize] , } ; } impl Default for CAN_FRAME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAN_FRAME_DATA { type Message = MavMessage ; const ID : u32 = 386u32 ; const NAME : & 'static str = "CAN_FRAME" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_VALUE_DATA { pub param_count : u16 , pub param_index : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , } impl PARAM_EXT_VALUE_DATA { pub const ENCODED_LEN : usize = 149usize ; pub const DEFAULT : Self = Self { param_count : 0_u16 , param_index : 0_u16 , param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , } ; } impl Default for PARAM_EXT_VALUE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_VALUE_DATA { type Message = MavMessage ; const ID : u32 = 322u32 ; const NAME : & 'static str = "PARAM_EXT_VALUE" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 149usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_count = buf . get_u16_le () ; __struct . param_index = buf . get_u16_le () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . param_count) ; __tmp . put_u16_le (self . param_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RAW_INT_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub cog : u16 , pub fix_type : GpsFixType , pub satellites_visible : u8 , } impl GPS_RAW_INT_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , cog : 0_u16 , fix_type : GpsFixType :: DEFAULT , satellites_visible : 0_u8 , } ; } impl Default for GPS_RAW_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RAW_INT_DATA { type Message = MavMessage ; const ID : u32 = 24u32 ; const NAME : & 'static str = "GPS_RAW_INT" ; const EXTRA_CRC : u8 = 24u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . cog = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type as u8) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SERVO_OUTPUT_RAW_DATA { pub time_usec : u32 , pub servo1_raw : u16 , pub servo2_raw : u16 , pub servo3_raw : u16 , pub servo4_raw : u16 , pub servo5_raw : u16 , pub servo6_raw : u16 , pub servo7_raw : u16 , pub servo8_raw : u16 , pub port : u8 , } impl SERVO_OUTPUT_RAW_DATA { pub const ENCODED_LEN : usize = 21usize ; pub const DEFAULT : Self = Self { time_usec : 0_u32 , servo1_raw : 0_u16 , servo2_raw : 0_u16 , servo3_raw : 0_u16 , servo4_raw : 0_u16 , servo5_raw : 0_u16 , servo6_raw : 0_u16 , servo7_raw : 0_u16 , servo8_raw : 0_u16 , port : 0_u8 , } ; } impl Default for SERVO_OUTPUT_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SERVO_OUTPUT_RAW_DATA { type Message = MavMessage ; const ID : u32 = 36u32 ; const NAME : & 'static str = "SERVO_OUTPUT_RAW" ; const EXTRA_CRC : u8 = 222u8 ; const ENCODED_LEN : usize = 21usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u32_le () ; __struct . servo1_raw = buf . get_u16_le () ; __struct . servo2_raw = buf . get_u16_le () ; __struct . servo3_raw = buf . get_u16_le () ; __struct . servo4_raw = buf . get_u16_le () ; __struct . servo5_raw = buf . get_u16_le () ; __struct . servo6_raw = buf . get_u16_le () ; __struct . servo7_raw = buf . get_u16_le () ; __struct . servo8_raw = buf . get_u16_le () ; __struct . port = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_usec) ; __tmp . put_u16_le (self . servo1_raw) ; __tmp . put_u16_le (self . servo2_raw) ; __tmp . put_u16_le (self . servo3_raw) ; __tmp . put_u16_le (self . servo4_raw) ; __tmp . put_u16_le (self . servo5_raw) ; __tmp . put_u16_le (self . servo6_raw) ; __tmp . put_u16_le (self . servo7_raw) ; __tmp . put_u16_le (self . servo8_raw) ; __tmp . put_u8 (self . port) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAV_CONTROLLER_OUTPUT_DATA { pub nav_roll : f32 , pub nav_pitch : f32 , pub alt_error : f32 , pub aspd_error : f32 , pub xtrack_error : f32 , pub nav_bearing : i16 , pub target_bearing : i16 , pub wp_dist : u16 , } impl NAV_CONTROLLER_OUTPUT_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { nav_roll : 0.0_f32 , nav_pitch : 0.0_f32 , alt_error : 0.0_f32 , aspd_error : 0.0_f32 , xtrack_error : 0.0_f32 , nav_bearing : 0_i16 , target_bearing : 0_i16 , wp_dist : 0_u16 , } ; } impl Default for NAV_CONTROLLER_OUTPUT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAV_CONTROLLER_OUTPUT_DATA { type Message = MavMessage ; const ID : u32 = 62u32 ; const NAME : & 'static str = "NAV_CONTROLLER_OUTPUT" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . nav_roll = buf . get_f32_le () ; __struct . nav_pitch = buf . get_f32_le () ; __struct . alt_error = buf . get_f32_le () ; __struct . aspd_error = buf . get_f32_le () ; __struct . xtrack_error = buf . get_f32_le () ; __struct . nav_bearing = buf . get_i16_le () ; __struct . target_bearing = buf . get_i16_le () ; __struct . wp_dist = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . nav_roll) ; __tmp . put_f32_le (self . nav_pitch) ; __tmp . put_f32_le (self . alt_error) ; __tmp . put_f32_le (self . aspd_error) ; __tmp . put_f32_le (self . xtrack_error) ; __tmp . put_i16_le (self . nav_bearing) ; __tmp . put_i16_le (self . target_bearing) ; __tmp . put_u16_le (self . wp_dist) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_CLEAR_ALL_DATA { pub target_system : u8 , pub target_component : u8 , } impl MISSION_CLEAR_ALL_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_CLEAR_ALL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_CLEAR_ALL_DATA { type Message = MavMessage ; const ID : u32 = 45u32 ; const NAME : & 'static str = "MISSION_CLEAR_ALL" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_ACTUATOR_CONTROL_TARGET_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 8] , pub group_mlx : u8 , pub target_system : u8 , pub target_component : u8 , } impl SET_ACTUATOR_CONTROL_TARGET_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , controls : [0.0_f32 ; 8usize] , group_mlx : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SET_ACTUATOR_CONTROL_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_ACTUATOR_CONTROL_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 139u32 ; const NAME : & 'static str = "SET_ACTUATOR_CONTROL_TARGET" ; const EXTRA_CRC : u8 = 168u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } __struct . group_mlx = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . group_mlx) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRACKING_IMAGE_STATUS_DATA { pub point_x : f32 , pub point_y : f32 , pub radius : f32 , pub rec_top_x : f32 , pub rec_top_y : f32 , pub rec_bottom_x : f32 , pub rec_bottom_y : f32 , pub tracking_status : CameraTrackingStatusFlags , pub tracking_mode : CameraTrackingMode , pub target_data : CameraTrackingTargetData , } impl CAMERA_TRACKING_IMAGE_STATUS_DATA { pub const ENCODED_LEN : usize = 31usize ; pub const DEFAULT : Self = Self { point_x : 0.0_f32 , point_y : 0.0_f32 , radius : 0.0_f32 , rec_top_x : 0.0_f32 , rec_top_y : 0.0_f32 , rec_bottom_x : 0.0_f32 , rec_bottom_y : 0.0_f32 , tracking_status : CameraTrackingStatusFlags :: DEFAULT , tracking_mode : CameraTrackingMode :: DEFAULT , target_data : CameraTrackingTargetData :: DEFAULT , } ; } impl Default for CAMERA_TRACKING_IMAGE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRACKING_IMAGE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 275u32 ; const NAME : & 'static str = "CAMERA_TRACKING_IMAGE_STATUS" ; const EXTRA_CRC : u8 = 126u8 ; const ENCODED_LEN : usize = 31usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . point_x = buf . get_f32_le () ; __struct . point_y = buf . get_f32_le () ; __struct . radius = buf . get_f32_le () ; __struct . rec_top_x = buf . get_f32_le () ; __struct . rec_top_y = buf . get_f32_le () ; __struct . rec_bottom_x = buf . get_f32_le () ; __struct . rec_bottom_y = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . tracking_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingStatusFlags" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . tracking_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingMode" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . target_data = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingTargetData" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . point_x) ; __tmp . put_f32_le (self . point_y) ; __tmp . put_f32_le (self . radius) ; __tmp . put_f32_le (self . rec_top_x) ; __tmp . put_f32_le (self . rec_top_y) ; __tmp . put_f32_le (self . rec_bottom_x) ; __tmp . put_f32_le (self . rec_bottom_y) ; __tmp . put_u8 (self . tracking_status as u8) ; __tmp . put_u8 (self . tracking_mode as u8) ; __tmp . put_u8 (self . target_data as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_PITCHYAW_DATA { pub flags : GimbalManagerFlags , pub pitch : f32 , pub yaw : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_PITCHYAW_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , pitch : 0.0_f32 , yaw : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_PITCHYAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_PITCHYAW_DATA { type Message = MavMessage ; const ID : u32 = 287u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_PITCHYAW" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EVENT_DATA { pub id : u32 , pub event_time_boot_ms : u32 , pub sequence : u16 , pub destination_component : u8 , pub destination_system : u8 , pub log_levels : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub arguments : [u8 ; 40] , } impl EVENT_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { id : 0_u32 , event_time_boot_ms : 0_u32 , sequence : 0_u16 , destination_component : 0_u8 , destination_system : 0_u8 , log_levels : 0_u8 , arguments : [0_u8 ; 40usize] , } ; } impl Default for EVENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EVENT_DATA { type Message = MavMessage ; const ID : u32 = 410u32 ; const NAME : & 'static str = "EVENT" ; const EXTRA_CRC : u8 = 160u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . event_time_boot_ms = buf . get_u32_le () ; __struct . sequence = buf . get_u16_le () ; __struct . destination_component = buf . get_u8 () ; __struct . destination_system = buf . get_u8 () ; __struct . log_levels = buf . get_u8 () ; for v in & mut __struct . arguments { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u32_le (self . event_time_boot_ms) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . destination_component) ; __tmp . put_u8 (self . destination_system) ; __tmp . put_u8 (self . log_levels) ; for val in & self . arguments { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VICON_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl VICON_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for VICON_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VICON_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 104u32 ; const NAME : & 'static str = "VICON_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 56u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_ARM_STATUS_DATA { pub status : MavOdidArmStatus , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub error : [u8 ; 50] , } impl OPEN_DRONE_ID_ARM_STATUS_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { status : MavOdidArmStatus :: DEFAULT , error : [0_u8 ; 50usize] , } ; } impl Default for OPEN_DRONE_ID_ARM_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_ARM_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 12918u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_ARM_STATUS" ; const EXTRA_CRC : u8 = 139u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidArmStatus" , value : tmp as u32 }) ? ; for v in & mut __struct . error { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . status as u8) ; for val in & self . error { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_POSITION_TARGET_LOCAL_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub target_system : u8 , pub target_component : u8 , pub coordinate_frame : MavFrame , } impl SET_POSITION_TARGET_LOCAL_NED_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for SET_POSITION_TARGET_LOCAL_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_POSITION_TARGET_LOCAL_NED_DATA { type Message = MavMessage ; const ID : u32 = 84u32 ; const NAME : & 'static str = "SET_POSITION_TARGET_LOCAL_NED" ; const EXTRA_CRC : u8 = 143u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ACK_DATA { pub target_system : u8 , pub target_component : u8 , pub mavtype : MavMissionResult , } impl MISSION_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , mavtype : MavMissionResult :: DEFAULT , } ; } impl Default for MISSION_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ACK_DATA { type Message = MavMessage ; const ID : u32 = 47u32 ; const NAME : & 'static str = "MISSION_ACK" ; const EXTRA_CRC : u8 = 153u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMissionResult" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . mavtype as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CHANGE_OPERATOR_CONTROL_DATA { pub target_system : u8 , pub control_request : u8 , pub version : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub passkey : [u8 ; 25] , } impl CHANGE_OPERATOR_CONTROL_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , control_request : 0_u8 , version : 0_u8 , passkey : [0_u8 ; 25usize] , } ; } impl Default for CHANGE_OPERATOR_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CHANGE_OPERATOR_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 5u32 ; const NAME : & 'static str = "CHANGE_OPERATOR_CONTROL" ; const EXTRA_CRC : u8 = 217u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . control_request = buf . get_u8 () ; __struct . version = buf . get_u8 () ; for v in & mut __struct . passkey { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . control_request) ; __tmp . put_u8 (self . version) ; for val in & self . passkey { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MANUAL_CONTROL_DATA { pub x : i16 , pub y : i16 , pub z : i16 , pub r : i16 , pub buttons : u16 , pub target : u8 , } impl MANUAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 11usize ; pub const DEFAULT : Self = Self { x : 0_i16 , y : 0_i16 , z : 0_i16 , r : 0_i16 , buttons : 0_u16 , target : 0_u8 , } ; } impl Default for MANUAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MANUAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 69u32 ; const NAME : & 'static str = "MANUAL_CONTROL" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 11usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . x = buf . get_i16_le () ; __struct . y = buf . get_i16_le () ; __struct . z = buf . get_i16_le () ; __struct . r = buf . get_i16_le () ; __struct . buttons = buf . get_u16_le () ; __struct . target = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . x) ; __tmp . put_i16_le (self . y) ; __tmp . put_i16_le (self . z) ; __tmp . put_i16_le (self . r) ; __tmp . put_u16_le (self . buttons) ; __tmp . put_u8 (self . target) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_DATA { pub time_boot_ms : u32 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub chan9_raw : u16 , pub chan10_raw : u16 , pub chan11_raw : u16 , pub chan12_raw : u16 , pub chan13_raw : u16 , pub chan14_raw : u16 , pub chan15_raw : u16 , pub chan16_raw : u16 , pub chan17_raw : u16 , pub chan18_raw : u16 , pub chancount : u8 , pub rssi : u8 , } impl RC_CHANNELS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , chan9_raw : 0_u16 , chan10_raw : 0_u16 , chan11_raw : 0_u16 , chan12_raw : 0_u16 , chan13_raw : 0_u16 , chan14_raw : 0_u16 , chan15_raw : 0_u16 , chan16_raw : 0_u16 , chan17_raw : 0_u16 , chan18_raw : 0_u16 , chancount : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_DATA { type Message = MavMessage ; const ID : u32 = 65u32 ; const NAME : & 'static str = "RC_CHANNELS" ; const EXTRA_CRC : u8 = 118u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . chan9_raw = buf . get_u16_le () ; __struct . chan10_raw = buf . get_u16_le () ; __struct . chan11_raw = buf . get_u16_le () ; __struct . chan12_raw = buf . get_u16_le () ; __struct . chan13_raw = buf . get_u16_le () ; __struct . chan14_raw = buf . get_u16_le () ; __struct . chan15_raw = buf . get_u16_le () ; __struct . chan16_raw = buf . get_u16_le () ; __struct . chan17_raw = buf . get_u16_le () ; __struct . chan18_raw = buf . get_u16_le () ; __struct . chancount = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u16_le (self . chan9_raw) ; __tmp . put_u16_le (self . chan10_raw) ; __tmp . put_u16_le (self . chan11_raw) ; __tmp . put_u16_le (self . chan12_raw) ; __tmp . put_u16_le (self . chan13_raw) ; __tmp . put_u16_le (self . chan14_raw) ; __tmp . put_u16_le (self . chan15_raw) ; __tmp . put_u16_le (self . chan16_raw) ; __tmp . put_u16_le (self . chan17_raw) ; __tmp . put_u16_le (self . chan18_raw) ; __tmp . put_u8 (self . chancount) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { type Message = MavMessage ; const ID : u32 = 89u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET" ; const EXTRA_CRC : u8 = 231u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGH_LATENCY2_DATA { pub timestamp : u32 , pub latitude : i32 , pub longitude : i32 , pub custom_mode : u16 , pub altitude : i16 , pub target_altitude : i16 , pub target_distance : u16 , pub wp_num : u16 , pub failure_flags : HlFailureFlag , pub mavtype : MavType , pub autopilot : MavAutopilot , pub heading : u8 , pub target_heading : u8 , pub throttle : u8 , pub airspeed : u8 , pub airspeed_sp : u8 , pub groundspeed : u8 , pub windspeed : u8 , pub wind_heading : u8 , pub eph : u8 , pub epv : u8 , pub temperature_air : i8 , pub climb_rate : i8 , pub battery : i8 , pub custom0 : i8 , pub custom1 : i8 , pub custom2 : i8 , } impl HIGH_LATENCY2_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { timestamp : 0_u32 , latitude : 0_i32 , longitude : 0_i32 , custom_mode : 0_u16 , altitude : 0_i16 , target_altitude : 0_i16 , target_distance : 0_u16 , wp_num : 0_u16 , failure_flags : HlFailureFlag :: DEFAULT , mavtype : MavType :: DEFAULT , autopilot : MavAutopilot :: DEFAULT , heading : 0_u8 , target_heading : 0_u8 , throttle : 0_u8 , airspeed : 0_u8 , airspeed_sp : 0_u8 , groundspeed : 0_u8 , windspeed : 0_u8 , wind_heading : 0_u8 , eph : 0_u8 , epv : 0_u8 , temperature_air : 0_i8 , climb_rate : 0_i8 , battery : 0_i8 , custom0 : 0_i8 , custom1 : 0_i8 , custom2 : 0_i8 , } ; } impl Default for HIGH_LATENCY2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGH_LATENCY2_DATA { type Message = MavMessage ; const ID : u32 = 235u32 ; const NAME : & 'static str = "HIGH_LATENCY2" ; const EXTRA_CRC : u8 = 179u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u32_le () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . custom_mode = buf . get_u16_le () ; __struct . altitude = buf . get_i16_le () ; __struct . target_altitude = buf . get_i16_le () ; __struct . target_distance = buf . get_u16_le () ; __struct . wp_num = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . failure_flags = HlFailureFlag :: from_bits (tmp & HlFailureFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HlFailureFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . autopilot = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavAutopilot" , value : tmp as u32 }) ? ; __struct . heading = buf . get_u8 () ; __struct . target_heading = buf . get_u8 () ; __struct . throttle = buf . get_u8 () ; __struct . airspeed = buf . get_u8 () ; __struct . airspeed_sp = buf . get_u8 () ; __struct . groundspeed = buf . get_u8 () ; __struct . windspeed = buf . get_u8 () ; __struct . wind_heading = buf . get_u8 () ; __struct . eph = buf . get_u8 () ; __struct . epv = buf . get_u8 () ; __struct . temperature_air = buf . get_i8 () ; __struct . climb_rate = buf . get_i8 () ; __struct . battery = buf . get_i8 () ; __struct . custom0 = buf . get_i8 () ; __struct . custom1 = buf . get_i8 () ; __struct . custom2 = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_u16_le (self . custom_mode) ; __tmp . put_i16_le (self . altitude) ; __tmp . put_i16_le (self . target_altitude) ; __tmp . put_u16_le (self . target_distance) ; __tmp . put_u16_le (self . wp_num) ; __tmp . put_u16_le (self . failure_flags . bits ()) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . autopilot as u8) ; __tmp . put_u8 (self . heading) ; __tmp . put_u8 (self . target_heading) ; __tmp . put_u8 (self . throttle) ; __tmp . put_u8 (self . airspeed) ; __tmp . put_u8 (self . airspeed_sp) ; __tmp . put_u8 (self . groundspeed) ; __tmp . put_u8 (self . windspeed) ; __tmp . put_u8 (self . wind_heading) ; __tmp . put_u8 (self . eph) ; __tmp . put_u8 (self . epv) ; __tmp . put_i8 (self . temperature_air) ; __tmp . put_i8 (self . climb_rate) ; __tmp . put_i8 (self . battery) ; __tmp . put_i8 (self . custom0) ; __tmp . put_i8 (self . custom1) ; __tmp . put_i8 (self . custom2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_ERASE_DATA { pub target_system : u8 , pub target_component : u8 , } impl LOG_ERASE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_ERASE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_ERASE_DATA { type Message = MavMessage ; const ID : u32 = 121u32 ; const NAME : & 'static str = "LOG_ERASE" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_DATA { pub time_boot_ms : u32 , pub value : f32 , pub ind : u8 , } impl DEBUG_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0.0_f32 , ind : 0_u8 , } ; } impl Default for DEBUG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_DATA { type Message = MavMessage ; const ID : u32 = 254u32 ; const NAME : & 'static str = "DEBUG" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_f32_le () ; __struct . ind = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . value) ; __tmp . put_u8 (self . ind) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct STORAGE_INFORMATION_DATA { pub time_boot_ms : u32 , pub total_capacity : f32 , pub used_capacity : f32 , pub available_capacity : f32 , pub read_speed : f32 , pub write_speed : f32 , pub storage_id : u8 , pub storage_count : u8 , pub status : StorageStatus , } impl STORAGE_INFORMATION_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , total_capacity : 0.0_f32 , used_capacity : 0.0_f32 , available_capacity : 0.0_f32 , read_speed : 0.0_f32 , write_speed : 0.0_f32 , storage_id : 0_u8 , storage_count : 0_u8 , status : StorageStatus :: DEFAULT , } ; } impl Default for STORAGE_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for STORAGE_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 261u32 ; const NAME : & 'static str = "STORAGE_INFORMATION" ; const EXTRA_CRC : u8 = 179u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . total_capacity = buf . get_f32_le () ; __struct . used_capacity = buf . get_f32_le () ; __struct . available_capacity = buf . get_f32_le () ; __struct . read_speed = buf . get_f32_le () ; __struct . write_speed = buf . get_f32_le () ; __struct . storage_id = buf . get_u8 () ; __struct . storage_count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "StorageStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . total_capacity) ; __tmp . put_f32_le (self . used_capacity) ; __tmp . put_f32_le (self . available_capacity) ; __tmp . put_f32_le (self . read_speed) ; __tmp . put_f32_le (self . write_speed) ; __tmp . put_u8 (self . storage_id) ; __tmp . put_u8 (self . storage_count) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LINK_NODE_STATUS_DATA { pub timestamp : u64 , pub tx_rate : u32 , pub rx_rate : u32 , pub messages_sent : u32 , pub messages_received : u32 , pub messages_lost : u32 , pub rx_parse_err : u16 , pub tx_overflows : u16 , pub rx_overflows : u16 , pub tx_buf : u8 , pub rx_buf : u8 , } impl LINK_NODE_STATUS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , tx_rate : 0_u32 , rx_rate : 0_u32 , messages_sent : 0_u32 , messages_received : 0_u32 , messages_lost : 0_u32 , rx_parse_err : 0_u16 , tx_overflows : 0_u16 , rx_overflows : 0_u16 , tx_buf : 0_u8 , rx_buf : 0_u8 , } ; } impl Default for LINK_NODE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LINK_NODE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 8u32 ; const NAME : & 'static str = "LINK_NODE_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . tx_rate = buf . get_u32_le () ; __struct . rx_rate = buf . get_u32_le () ; __struct . messages_sent = buf . get_u32_le () ; __struct . messages_received = buf . get_u32_le () ; __struct . messages_lost = buf . get_u32_le () ; __struct . rx_parse_err = buf . get_u16_le () ; __struct . tx_overflows = buf . get_u16_le () ; __struct . rx_overflows = buf . get_u16_le () ; __struct . tx_buf = buf . get_u8 () ; __struct . rx_buf = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u32_le (self . tx_rate) ; __tmp . put_u32_le (self . rx_rate) ; __tmp . put_u32_le (self . messages_sent) ; __tmp . put_u32_le (self . messages_received) ; __tmp . put_u32_le (self . messages_lost) ; __tmp . put_u16_le (self . rx_parse_err) ; __tmp . put_u16_le (self . tx_overflows) ; __tmp . put_u16_le (self . rx_overflows) ; __tmp . put_u8 (self . tx_buf) ; __tmp . put_u8 (self . rx_buf) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_QUATERNION_COV_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 9] , } impl ATTITUDE_QUATERNION_COV_DATA { pub const ENCODED_LEN : usize = 72usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , q : [0.0_f32 ; 4usize] , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , covariance : [0.0_f32 ; 9usize] , } ; } impl Default for ATTITUDE_QUATERNION_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_QUATERNION_COV_DATA { type Message = MavMessage ; const ID : u32 = 61u32 ; const NAME : & 'static str = "ATTITUDE_QUATERNION_COV" ; const EXTRA_CRC : u8 = 167u8 ; const ENCODED_LEN : usize = 72usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_ACK_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOGGING_ACK_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOGGING_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_ACK_DATA { type Message = MavMessage ; const ID : u32 = 268u32 ; const NAME : & 'static str = "LOGGING_ACK" ; const EXTRA_CRC : u8 = 14u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTH_KEY_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub key : [u8 ; 32] , } impl AUTH_KEY_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { key : [0_u8 ; 32usize] , } ; } impl Default for AUTH_KEY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTH_KEY_DATA { type Message = MavMessage ; const ID : u32 = 7u32 ; const NAME : & 'static str = "AUTH_KEY" ; const EXTRA_CRC : u8 = 119u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . key { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . key { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_IMAGE_CAPTURED_DATA { pub time_utc : u64 , pub time_boot_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub image_index : i32 , pub camera_id : u8 , pub capture_result : i8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub file_url : [u8 ; 205] , } impl CAMERA_IMAGE_CAPTURED_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { time_utc : 0_u64 , time_boot_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , q : [0.0_f32 ; 4usize] , image_index : 0_i32 , camera_id : 0_u8 , capture_result : 0_i8 , file_url : [0_u8 ; 205usize] , } ; } impl Default for CAMERA_IMAGE_CAPTURED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_IMAGE_CAPTURED_DATA { type Message = MavMessage ; const ID : u32 = 263u32 ; const NAME : & 'static str = "CAMERA_IMAGE_CAPTURED" ; const EXTRA_CRC : u8 = 133u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_utc = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . image_index = buf . get_i32_le () ; __struct . camera_id = buf . get_u8 () ; __struct . capture_result = buf . get_i8 () ; for v in & mut __struct . file_url { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_utc) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_i32_le (self . image_index) ; __tmp . put_u8 (self . camera_id) ; __tmp . put_i8 (self . capture_result) ; for val in & self . file_url { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_SET_ATTITUDE_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub flags : GimbalDeviceFlags , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_DEVICE_SET_ATTITUDE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , flags : GimbalDeviceFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_DEVICE_SET_ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_SET_ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 284u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_SET_ATTITUDE" ; const EXTRA_CRC : u8 = 99u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = GimbalDeviceFlags :: from_bits (tmp & GimbalDeviceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_OPERATOR_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub operator_id_type : MavOdidOperatorIdType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub operator_id : [u8 ; 20] , } impl OPEN_DRONE_ID_OPERATOR_ID_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , operator_id_type : MavOdidOperatorIdType :: DEFAULT , operator_id : [0_u8 ; 20usize] , } ; } impl Default for OPEN_DRONE_ID_OPERATOR_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_OPERATOR_ID_DATA { type Message = MavMessage ; const ID : u32 = 12905u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_OPERATOR_ID" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . operator_id_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidOperatorIdType" , value : tmp as u32 }) ? ; for v in & mut __struct . operator_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . operator_id_type as u8) ; for val in & self . operator_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SYS_STATUS_DATA { pub onboard_control_sensors_present : MavSysStatusSensor , pub onboard_control_sensors_enabled : MavSysStatusSensor , pub onboard_control_sensors_health : MavSysStatusSensor , pub load : u16 , pub voltage_battery : u16 , pub current_battery : i16 , pub drop_rate_comm : u16 , pub errors_comm : u16 , pub errors_count1 : u16 , pub errors_count2 : u16 , pub errors_count3 : u16 , pub errors_count4 : u16 , pub battery_remaining : i8 , } impl SYS_STATUS_DATA { pub const ENCODED_LEN : usize = 31usize ; pub const DEFAULT : Self = Self { onboard_control_sensors_present : MavSysStatusSensor :: DEFAULT , onboard_control_sensors_enabled : MavSysStatusSensor :: DEFAULT , onboard_control_sensors_health : MavSysStatusSensor :: DEFAULT , load : 0_u16 , voltage_battery : 0_u16 , current_battery : 0_i16 , drop_rate_comm : 0_u16 , errors_comm : 0_u16 , errors_count1 : 0_u16 , errors_count2 : 0_u16 , errors_count3 : 0_u16 , errors_count4 : 0_u16 , battery_remaining : 0_i8 , } ; } impl Default for SYS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SYS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 1u32 ; const NAME : & 'static str = "SYS_STATUS" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 31usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_present = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_enabled = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_health = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; __struct . load = buf . get_u16_le () ; __struct . voltage_battery = buf . get_u16_le () ; __struct . current_battery = buf . get_i16_le () ; __struct . drop_rate_comm = buf . get_u16_le () ; __struct . errors_comm = buf . get_u16_le () ; __struct . errors_count1 = buf . get_u16_le () ; __struct . errors_count2 = buf . get_u16_le () ; __struct . errors_count3 = buf . get_u16_le () ; __struct . errors_count4 = buf . get_u16_le () ; __struct . battery_remaining = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . onboard_control_sensors_present . bits ()) ; __tmp . put_u32_le (self . onboard_control_sensors_enabled . bits ()) ; __tmp . put_u32_le (self . onboard_control_sensors_health . bits ()) ; __tmp . put_u16_le (self . load) ; __tmp . put_u16_le (self . voltage_battery) ; __tmp . put_i16_le (self . current_battery) ; __tmp . put_u16_le (self . drop_rate_comm) ; __tmp . put_u16_le (self . errors_comm) ; __tmp . put_u16_le (self . errors_count1) ; __tmp . put_u16_le (self . errors_count2) ; __tmp . put_u16_le (self . errors_count3) ; __tmp . put_u16_le (self . errors_count4) ; __tmp . put_i8 (self . battery_remaining) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_POSITION_TARGET_GLOBAL_INT_DATA { pub time_boot_ms : u32 , pub lat_int : i32 , pub lon_int : i32 , pub alt : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub target_system : u8 , pub target_component : u8 , pub coordinate_frame : MavFrame , } impl SET_POSITION_TARGET_GLOBAL_INT_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_int : 0_i32 , lon_int : 0_i32 , alt : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for SET_POSITION_TARGET_GLOBAL_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_POSITION_TARGET_GLOBAL_INT_DATA { type Message = MavMessage ; const ID : u32 = 86u32 ; const NAME : & 'static str = "SET_POSITION_TARGET_GLOBAL_INT" ; const EXTRA_CRC : u8 = 5u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_int = buf . get_i32_le () ; __struct . lon_int = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_int) ; __tmp . put_i32_le (self . lon_int) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SIM_STATE_DATA { pub q1 : f32 , pub q2 : f32 , pub q3 : f32 , pub q4 : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub lat : f32 , pub lon : f32 , pub alt : f32 , pub std_dev_horz : f32 , pub std_dev_vert : f32 , pub vn : f32 , pub ve : f32 , pub vd : f32 , } impl SIM_STATE_DATA { pub const ENCODED_LEN : usize = 84usize ; pub const DEFAULT : Self = Self { q1 : 0.0_f32 , q2 : 0.0_f32 , q3 : 0.0_f32 , q4 : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , lat : 0.0_f32 , lon : 0.0_f32 , alt : 0.0_f32 , std_dev_horz : 0.0_f32 , std_dev_vert : 0.0_f32 , vn : 0.0_f32 , ve : 0.0_f32 , vd : 0.0_f32 , } ; } impl Default for SIM_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SIM_STATE_DATA { type Message = MavMessage ; const ID : u32 = 108u32 ; const NAME : & 'static str = "SIM_STATE" ; const EXTRA_CRC : u8 = 32u8 ; const ENCODED_LEN : usize = 84usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . q1 = buf . get_f32_le () ; __struct . q2 = buf . get_f32_le () ; __struct . q3 = buf . get_f32_le () ; __struct . q4 = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . lat = buf . get_f32_le () ; __struct . lon = buf . get_f32_le () ; __struct . alt = buf . get_f32_le () ; __struct . std_dev_horz = buf . get_f32_le () ; __struct . std_dev_vert = buf . get_f32_le () ; __struct . vn = buf . get_f32_le () ; __struct . ve = buf . get_f32_le () ; __struct . vd = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . q1) ; __tmp . put_f32_le (self . q2) ; __tmp . put_f32_le (self . q3) ; __tmp . put_f32_le (self . q4) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . lat) ; __tmp . put_f32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . std_dev_horz) ; __tmp . put_f32_le (self . std_dev_vert) ; __tmp . put_f32_le (self . vn) ; __tmp . put_f32_le (self . ve) ; __tmp . put_f32_le (self . vd) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ADSB_VEHICLE_DATA { pub ICAO_address : u32 , pub lat : i32 , pub lon : i32 , pub altitude : i32 , pub heading : u16 , pub hor_velocity : u16 , pub ver_velocity : i16 , pub flags : AdsbFlags , pub squawk : u16 , pub altitude_type : AdsbAltitudeType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 9] , pub emitter_type : AdsbEmitterType , pub tslc : u8 , } impl ADSB_VEHICLE_DATA { pub const ENCODED_LEN : usize = 38usize ; pub const DEFAULT : Self = Self { ICAO_address : 0_u32 , lat : 0_i32 , lon : 0_i32 , altitude : 0_i32 , heading : 0_u16 , hor_velocity : 0_u16 , ver_velocity : 0_i16 , flags : AdsbFlags :: DEFAULT , squawk : 0_u16 , altitude_type : AdsbAltitudeType :: DEFAULT , callsign : [0_u8 ; 9usize] , emitter_type : AdsbEmitterType :: DEFAULT , tslc : 0_u8 , } ; } impl Default for ADSB_VEHICLE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ADSB_VEHICLE_DATA { type Message = MavMessage ; const ID : u32 = 246u32 ; const NAME : & 'static str = "ADSB_VEHICLE" ; const EXTRA_CRC : u8 = 184u8 ; const ENCODED_LEN : usize = 38usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ICAO_address = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . heading = buf . get_u16_le () ; __struct . hor_velocity = buf . get_u16_le () ; __struct . ver_velocity = buf . get_i16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = AdsbFlags :: from_bits (tmp & AdsbFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AdsbFlags" , value : tmp as u32 }) ? ; __struct . squawk = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . altitude_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbAltitudeType" , value : tmp as u32 }) ? ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . emitter_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbEmitterType" , value : tmp as u32 }) ? ; __struct . tslc = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ICAO_address) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_u16_le (self . heading) ; __tmp . put_u16_le (self . hor_velocity) ; __tmp . put_i16_le (self . ver_velocity) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u16_le (self . squawk) ; __tmp . put_u8 (self . altitude_type as u8) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . emitter_type as u8) ; __tmp . put_u8 (self . tslc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BUTTON_CHANGE_DATA { pub time_boot_ms : u32 , pub last_change_ms : u32 , pub state : u8 , } impl BUTTON_CHANGE_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , last_change_ms : 0_u32 , state : 0_u8 , } ; } impl Default for BUTTON_CHANGE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BUTTON_CHANGE_DATA { type Message = MavMessage ; const ID : u32 = 257u32 ; const NAME : & 'static str = "BUTTON_CHANGE" ; const EXTRA_CRC : u8 = 131u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . last_change_ms = buf . get_u32_le () ; __struct . state = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . last_change_ms) ; __tmp . put_u8 (self . state) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_STATUS_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rpm : [i32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltage : [f32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub current : [f32 ; 4] , pub index : u8 , } impl ESC_STATUS_DATA { pub const ENCODED_LEN : usize = 57usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , rpm : [0_i32 ; 4usize] , voltage : [0.0_f32 ; 4usize] , current : [0.0_f32 ; 4usize] , index : 0_u8 , } ; } impl Default for ESC_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 291u32 ; const NAME : & 'static str = "ESC_STATUS" ; const EXTRA_CRC : u8 = 10u8 ; const ENCODED_LEN : usize = 57usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . rpm { let val = buf . get_i32_le () ; * v = val ; } for v in & mut __struct . voltage { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . current { let val = buf . get_f32_le () ; * v = val ; } __struct . index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . rpm { __tmp . put_i32_le (* val) ; } for val in & self . voltage { __tmp . put_f32_le (* val) ; } for val in & self . current { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl VISION_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for VISION_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 102u32 ; const NAME : & 'static str = "VISION_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 158u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_VERSION_DATA { pub capabilities : MavProtocolCapability , pub uid : u64 , pub flight_sw_version : u32 , pub middleware_sw_version : u32 , pub os_sw_version : u32 , pub board_version : u32 , pub vendor_id : u16 , pub product_id : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub flight_custom_version : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub middleware_custom_version : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub os_custom_version : [u8 ; 8] , } impl AUTOPILOT_VERSION_DATA { pub const ENCODED_LEN : usize = 60usize ; pub const DEFAULT : Self = Self { capabilities : MavProtocolCapability :: DEFAULT , uid : 0_u64 , flight_sw_version : 0_u32 , middleware_sw_version : 0_u32 , os_sw_version : 0_u32 , board_version : 0_u32 , vendor_id : 0_u16 , product_id : 0_u16 , flight_custom_version : [0_u8 ; 8usize] , middleware_custom_version : [0_u8 ; 8usize] , os_custom_version : [0_u8 ; 8usize] , } ; } impl Default for AUTOPILOT_VERSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_VERSION_DATA { type Message = MavMessage ; const ID : u32 = 148u32 ; const NAME : & 'static str = "AUTOPILOT_VERSION" ; const EXTRA_CRC : u8 = 178u8 ; const ENCODED_LEN : usize = 60usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u64_le () ; __struct . capabilities = MavProtocolCapability :: from_bits (tmp & MavProtocolCapability :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavProtocolCapability" , value : tmp as u32 }) ? ; __struct . uid = buf . get_u64_le () ; __struct . flight_sw_version = buf . get_u32_le () ; __struct . middleware_sw_version = buf . get_u32_le () ; __struct . os_sw_version = buf . get_u32_le () ; __struct . board_version = buf . get_u32_le () ; __struct . vendor_id = buf . get_u16_le () ; __struct . product_id = buf . get_u16_le () ; for v in & mut __struct . flight_custom_version { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . middleware_custom_version { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . os_custom_version { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . capabilities . bits ()) ; __tmp . put_u64_le (self . uid) ; __tmp . put_u32_le (self . flight_sw_version) ; __tmp . put_u32_le (self . middleware_sw_version) ; __tmp . put_u32_le (self . os_sw_version) ; __tmp . put_u32_le (self . board_version) ; __tmp . put_u16_le (self . vendor_id) ; __tmp . put_u16_le (self . product_id) ; for val in & self . flight_custom_version { __tmp . put_u8 (* val) ; } for val in & self . middleware_custom_version { __tmp . put_u8 (* val) ; } for val in & self . os_custom_version { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PLAY_TUNE_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub tune : [u8 ; 30] , } impl PLAY_TUNE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , tune : [0_u8 ; 30usize] , } ; } impl Default for PLAY_TUNE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PLAY_TUNE_DATA { type Message = MavMessage ; const ID : u32 = 258u32 ; const NAME : & 'static str = "PLAY_TUNE" ; const EXTRA_CRC : u8 = 187u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . tune { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . tune { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl PARAM_EXT_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PARAM_EXT_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 321u32 ; const NAME : & 'static str = "PARAM_EXT_REQUEST_LIST" ; const EXTRA_CRC : u8 = 88u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_ATTITUDE_TARGET_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub body_roll_rate : f32 , pub body_pitch_rate : f32 , pub body_yaw_rate : f32 , pub thrust : f32 , pub target_system : u8 , pub target_component : u8 , pub type_mask : AttitudeTargetTypemask , } impl SET_ATTITUDE_TARGET_DATA { pub const ENCODED_LEN : usize = 39usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , body_roll_rate : 0.0_f32 , body_pitch_rate : 0.0_f32 , body_yaw_rate : 0.0_f32 , thrust : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , type_mask : AttitudeTargetTypemask :: DEFAULT , } ; } impl Default for SET_ATTITUDE_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_ATTITUDE_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 82u32 ; const NAME : & 'static str = "SET_ATTITUDE_TARGET" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 39usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . body_roll_rate = buf . get_f32_le () ; __struct . body_pitch_rate = buf . get_f32_le () ; __struct . body_yaw_rate = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . type_mask = AttitudeTargetTypemask :: from_bits (tmp & AttitudeTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AttitudeTargetTypemask" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . body_roll_rate) ; __tmp . put_f32_le (self . body_pitch_rate) ; __tmp . put_f32_le (self . body_yaw_rate) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . type_mask . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_DATA_DATA { pub ofs : u32 , pub count : u32 , pub id : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_DATA_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { ofs : 0_u32 , count : 0_u32 , id : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_DATA_DATA { type Message = MavMessage ; const ID : u32 = 119u32 ; const NAME : & 'static str = "LOG_REQUEST_DATA" ; const EXTRA_CRC : u8 = 116u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ofs = buf . get_u32_le () ; __struct . count = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ofs) ; __tmp . put_u32_le (self . count) ; __tmp . put_u16_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_ACK_DATA { pub command : MavCmd , pub result : MavResult , } impl COMMAND_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { command : MavCmd :: DEFAULT , result : MavResult :: DEFAULT , } ; } impl Default for COMMAND_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_ACK_DATA { type Message = MavMessage ; const ID : u32 = 77u32 ; const NAME : & 'static str = "COMMAND_ACK" ; const EXTRA_CRC : u8 = 143u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavResult" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_POSITION_INT_COV_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 36] , pub estimator_type : MavEstimatorType , } impl GLOBAL_POSITION_INT_COV_DATA { pub const ENCODED_LEN : usize = 181usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , covariance : [0.0_f32 ; 36usize] , estimator_type : MavEstimatorType :: DEFAULT , } ; } impl Default for GLOBAL_POSITION_INT_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_POSITION_INT_COV_DATA { type Message = MavMessage ; const ID : u32 = 63u32 ; const NAME : & 'static str = "GLOBAL_POSITION_INT_COV" ; const EXTRA_CRC : u8 = 119u8 ; const ENCODED_LEN : usize = 181usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . estimator_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEstimatorType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . estimator_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE3_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE3_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE3_DATA { type Message = MavMessage ; const ID : u32 = 143u32 ; const NAME : & 'static str = "SCALED_PRESSURE3" ; const EXTRA_CRC : u8 = 131u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_DATA_ACKED_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , pub length : u8 , pub first_message_offset : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 249] , } impl LOGGING_DATA_ACKED_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , length : 0_u8 , first_message_offset : 0_u8 , data : [0_u8 ; 249usize] , } ; } impl Default for LOGGING_DATA_ACKED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_DATA_ACKED_DATA { type Message = MavMessage ; const ID : u32 = 267u32 ; const NAME : & 'static str = "LOGGING_DATA_ACKED" ; const EXTRA_CRC : u8 = 35u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . length = buf . get_u8 () ; __struct . first_message_offset = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . length) ; __tmp . put_u8 (self . first_message_offset) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGH_LATENCY_DATA { pub custom_mode : u32 , pub latitude : i32 , pub longitude : i32 , pub roll : i16 , pub pitch : i16 , pub heading : u16 , pub heading_sp : i16 , pub altitude_amsl : i16 , pub altitude_sp : i16 , pub wp_distance : u16 , pub base_mode : MavModeFlag , pub landed_state : MavLandedState , pub throttle : i8 , pub airspeed : u8 , pub airspeed_sp : u8 , pub groundspeed : u8 , pub climb_rate : i8 , pub gps_nsat : u8 , pub gps_fix_type : GpsFixType , pub battery_remaining : u8 , pub temperature : i8 , pub temperature_air : i8 , pub failsafe : u8 , pub wp_num : u8 , } impl HIGH_LATENCY_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , latitude : 0_i32 , longitude : 0_i32 , roll : 0_i16 , pitch : 0_i16 , heading : 0_u16 , heading_sp : 0_i16 , altitude_amsl : 0_i16 , altitude_sp : 0_i16 , wp_distance : 0_u16 , base_mode : MavModeFlag :: DEFAULT , landed_state : MavLandedState :: DEFAULT , throttle : 0_i8 , airspeed : 0_u8 , airspeed_sp : 0_u8 , groundspeed : 0_u8 , climb_rate : 0_i8 , gps_nsat : 0_u8 , gps_fix_type : GpsFixType :: DEFAULT , battery_remaining : 0_u8 , temperature : 0_i8 , temperature_air : 0_i8 , failsafe : 0_u8 , wp_num : 0_u8 , } ; } impl Default for HIGH_LATENCY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGH_LATENCY_DATA { type Message = MavMessage ; const ID : u32 = 234u32 ; const NAME : & 'static str = "HIGH_LATENCY" ; const EXTRA_CRC : u8 = 150u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . roll = buf . get_i16_le () ; __struct . pitch = buf . get_i16_le () ; __struct . heading = buf . get_u16_le () ; __struct . heading_sp = buf . get_i16_le () ; __struct . altitude_amsl = buf . get_i16_le () ; __struct . altitude_sp = buf . get_i16_le () ; __struct . wp_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . base_mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; __struct . throttle = buf . get_i8 () ; __struct . airspeed = buf . get_u8 () ; __struct . airspeed_sp = buf . get_u8 () ; __struct . groundspeed = buf . get_u8 () ; __struct . climb_rate = buf . get_i8 () ; __struct . gps_nsat = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . gps_fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . battery_remaining = buf . get_u8 () ; __struct . temperature = buf . get_i8 () ; __struct . temperature_air = buf . get_i8 () ; __struct . failsafe = buf . get_u8 () ; __struct . wp_num = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i16_le (self . roll) ; __tmp . put_i16_le (self . pitch) ; __tmp . put_u16_le (self . heading) ; __tmp . put_i16_le (self . heading_sp) ; __tmp . put_i16_le (self . altitude_amsl) ; __tmp . put_i16_le (self . altitude_sp) ; __tmp . put_u16_le (self . wp_distance) ; __tmp . put_u8 (self . base_mode . bits ()) ; __tmp . put_u8 (self . landed_state as u8) ; __tmp . put_i8 (self . throttle) ; __tmp . put_u8 (self . airspeed) ; __tmp . put_u8 (self . airspeed_sp) ; __tmp . put_u8 (self . groundspeed) ; __tmp . put_i8 (self . climb_rate) ; __tmp . put_u8 (self . gps_nsat) ; __tmp . put_u8 (self . gps_fix_type as u8) ; __tmp . put_u8 (self . battery_remaining) ; __tmp . put_i8 (self . temperature) ; __tmp . put_i8 (self . temperature_air) ; __tmp . put_u8 (self . failsafe) ; __tmp . put_u8 (self . wp_num) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIDEO_STREAM_STATUS_DATA { pub framerate : f32 , pub bitrate : u32 , pub flags : VideoStreamStatusFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub hfov : u16 , pub stream_id : u8 , } impl VIDEO_STREAM_STATUS_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , flags : VideoStreamStatusFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , hfov : 0_u16 , stream_id : 0_u8 , } ; } impl Default for VIDEO_STREAM_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIDEO_STREAM_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 270u32 ; const NAME : & 'static str = "VIDEO_STREAM_STATUS" ; const EXTRA_CRC : u8 = 59u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamStatusFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . hfov = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . flags as u16) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u16_le (self . hfov) ; __tmp . put_u8 (self . stream_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VFR_HUD_DATA { pub airspeed : f32 , pub groundspeed : f32 , pub alt : f32 , pub climb : f32 , pub heading : i16 , pub throttle : u16 , } impl VFR_HUD_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { airspeed : 0.0_f32 , groundspeed : 0.0_f32 , alt : 0.0_f32 , climb : 0.0_f32 , heading : 0_i16 , throttle : 0_u16 , } ; } impl Default for VFR_HUD_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VFR_HUD_DATA { type Message = MavMessage ; const ID : u32 = 74u32 ; const NAME : & 'static str = "VFR_HUD" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . airspeed = buf . get_f32_le () ; __struct . groundspeed = buf . get_f32_le () ; __struct . alt = buf . get_f32_le () ; __struct . climb = buf . get_f32_le () ; __struct . heading = buf . get_i16_le () ; __struct . throttle = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . airspeed) ; __tmp . put_f32_le (self . groundspeed) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . climb) ; __tmp . put_i16_le (self . heading) ; __tmp . put_u16_le (self . throttle) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_LONG_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub param5 : f32 , pub param6 : f32 , pub param7 : f32 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub confirmation : u8 , } impl COMMAND_LONG_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , param5 : 0.0_f32 , param6 : 0.0_f32 , param7 : 0.0_f32 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , confirmation : 0_u8 , } ; } impl Default for COMMAND_LONG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_LONG_DATA { type Message = MavMessage ; const ID : u32 = 76u32 ; const NAME : & 'static str = "COMMAND_LONG" ; const EXTRA_CRC : u8 = 152u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . param5 = buf . get_f32_le () ; __struct . param6 = buf . get_f32_le () ; __struct . param7 = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . confirmation = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_f32_le (self . param5) ; __tmp . put_f32_le (self . param6) ; __tmp . put_f32_le (self . param7) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . confirmation) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_STATUS_DATA { pub time_boot_ms : u32 , pub flags : GimbalManagerFlags , pub gimbal_device_id : u8 , pub primary_control_sysid : u8 , pub primary_control_compid : u8 , pub secondary_control_sysid : u8 , pub secondary_control_compid : u8 , } impl GIMBAL_MANAGER_STATUS_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , flags : GimbalManagerFlags :: DEFAULT , gimbal_device_id : 0_u8 , primary_control_sysid : 0_u8 , primary_control_compid : 0_u8 , secondary_control_sysid : 0_u8 , secondary_control_compid : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 281u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_STATUS" ; const EXTRA_CRC : u8 = 48u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . gimbal_device_id = buf . get_u8 () ; __struct . primary_control_sysid = buf . get_u8 () ; __struct . primary_control_compid = buf . get_u8 () ; __struct . secondary_control_sysid = buf . get_u8 () ; __struct . secondary_control_compid = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_u8 (self . gimbal_device_id) ; __tmp . put_u8 (self . primary_control_sysid) ; __tmp . put_u8 (self . primary_control_compid) ; __tmp . put_u8 (self . secondary_control_sysid) ; __tmp . put_u8 (self . secondary_control_compid) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_RPM_DATA { pub frequency : f32 , pub index : u8 , } impl RAW_RPM_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { frequency : 0.0_f32 , index : 0_u8 , } ; } impl Default for RAW_RPM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_RPM_DATA { type Message = MavMessage ; const ID : u32 = 339u32 ; const NAME : & 'static str = "RAW_RPM" ; const EXTRA_CRC : u8 = 199u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . frequency = buf . get_f32_le () ; __struct . index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . frequency) ; __tmp . put_u8 (self . index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIFI_CONFIG_AP_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub ssid : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub password : [u8 ; 64] , } impl WIFI_CONFIG_AP_DATA { pub const ENCODED_LEN : usize = 96usize ; pub const DEFAULT : Self = Self { ssid : [0_u8 ; 32usize] , password : [0_u8 ; 64usize] , } ; } impl Default for WIFI_CONFIG_AP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIFI_CONFIG_AP_DATA { type Message = MavMessage ; const ID : u32 = 299u32 ; const NAME : & 'static str = "WIFI_CONFIG_AP" ; const EXTRA_CRC : u8 = 19u8 ; const ENCODED_LEN : usize = 96usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . ssid { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . password { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . ssid { __tmp . put_u8 (* val) ; } for val in & self . password { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_FLOAT_ARRAY_DATA { pub time_usec : u64 , pub array_id : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl DEBUG_FLOAT_ARRAY_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , array_id : 0_u16 , name : [0_u8 ; 10usize] , } ; } impl Default for DEBUG_FLOAT_ARRAY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_FLOAT_ARRAY_DATA { type Message = MavMessage ; const ID : u32 = 350u32 ; const NAME : & 'static str = "DEBUG_FLOAT_ARRAY" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . array_id = buf . get_u16_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u16_le (self . array_id) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_COV_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub ax : f32 , pub ay : f32 , pub az : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 45] , pub estimator_type : MavEstimatorType , } impl LOCAL_POSITION_NED_COV_DATA { pub const ENCODED_LEN : usize = 225usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , ax : 0.0_f32 , ay : 0.0_f32 , az : 0.0_f32 , covariance : [0.0_f32 ; 45usize] , estimator_type : MavEstimatorType :: DEFAULT , } ; } impl Default for LOCAL_POSITION_NED_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_COV_DATA { type Message = MavMessage ; const ID : u32 = 64u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED_COV" ; const EXTRA_CRC : u8 = 191u8 ; const ENCODED_LEN : usize = 225usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . ax = buf . get_f32_le () ; __struct . ay = buf . get_f32_le () ; __struct . az = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . estimator_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEstimatorType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . ax) ; __tmp . put_f32_le (self . ay) ; __tmp . put_f32_le (self . az) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . estimator_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SMART_BATTERY_INFO_DATA { pub capacity_full_specification : i32 , pub capacity_full : i32 , pub cycle_count : u16 , pub weight : u16 , pub discharge_minimum_voltage : u16 , pub charging_minimum_voltage : u16 , pub resting_minimum_voltage : u16 , pub id : u8 , pub battery_function : MavBatteryFunction , pub mavtype : MavBatteryType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub serial_number : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub device_name : [u8 ; 50] , } impl SMART_BATTERY_INFO_DATA { pub const ENCODED_LEN : usize = 87usize ; pub const DEFAULT : Self = Self { capacity_full_specification : 0_i32 , capacity_full : 0_i32 , cycle_count : 0_u16 , weight : 0_u16 , discharge_minimum_voltage : 0_u16 , charging_minimum_voltage : 0_u16 , resting_minimum_voltage : 0_u16 , id : 0_u8 , battery_function : MavBatteryFunction :: DEFAULT , mavtype : MavBatteryType :: DEFAULT , serial_number : [0_u8 ; 16usize] , device_name : [0_u8 ; 50usize] , } ; } impl Default for SMART_BATTERY_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SMART_BATTERY_INFO_DATA { type Message = MavMessage ; const ID : u32 = 370u32 ; const NAME : & 'static str = "SMART_BATTERY_INFO" ; const EXTRA_CRC : u8 = 75u8 ; const ENCODED_LEN : usize = 87usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . capacity_full_specification = buf . get_i32_le () ; __struct . capacity_full = buf . get_i32_le () ; __struct . cycle_count = buf . get_u16_le () ; __struct . weight = buf . get_u16_le () ; __struct . discharge_minimum_voltage = buf . get_u16_le () ; __struct . charging_minimum_voltage = buf . get_u16_le () ; __struct . resting_minimum_voltage = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . battery_function = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryFunction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryType" , value : tmp as u32 }) ? ; for v in & mut __struct . serial_number { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . device_name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . capacity_full_specification) ; __tmp . put_i32_le (self . capacity_full) ; __tmp . put_u16_le (self . cycle_count) ; __tmp . put_u16_le (self . weight) ; __tmp . put_u16_le (self . discharge_minimum_voltage) ; __tmp . put_u16_le (self . charging_minimum_voltage) ; __tmp . put_u16_le (self . resting_minimum_voltage) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . battery_function as u8) ; __tmp . put_u8 (self . mavtype as u8) ; for val in & self . serial_number { __tmp . put_u8 (* val) ; } for val in & self . device_name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CURRENT_EVENT_SEQUENCE_DATA { pub sequence : u16 , pub flags : MavEventCurrentSequenceFlags , } impl CURRENT_EVENT_SEQUENCE_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , flags : MavEventCurrentSequenceFlags :: DEFAULT , } ; } impl Default for CURRENT_EVENT_SEQUENCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CURRENT_EVENT_SEQUENCE_DATA { type Message = MavMessage ; const ID : u32 = 411u32 ; const NAME : & 'static str = "CURRENT_EVENT_SEQUENCE" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . flags = MavEventCurrentSequenceFlags :: from_bits (tmp & MavEventCurrentSequenceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavEventCurrentSequenceFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_TARGET_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub body_roll_rate : f32 , pub body_pitch_rate : f32 , pub body_yaw_rate : f32 , pub thrust : f32 , pub type_mask : AttitudeTargetTypemask , } impl ATTITUDE_TARGET_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , body_roll_rate : 0.0_f32 , body_pitch_rate : 0.0_f32 , body_yaw_rate : 0.0_f32 , thrust : 0.0_f32 , type_mask : AttitudeTargetTypemask :: DEFAULT , } ; } impl Default for ATTITUDE_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 83u32 ; const NAME : & 'static str = "ATTITUDE_TARGET" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . body_roll_rate = buf . get_f32_le () ; __struct . body_pitch_rate = buf . get_f32_le () ; __struct . body_yaw_rate = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . type_mask = AttitudeTargetTypemask :: from_bits (tmp & AttitudeTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AttitudeTargetTypemask" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . body_roll_rate) ; __tmp . put_f32_le (self . body_pitch_rate) ; __tmp . put_f32_le (self . body_yaw_rate) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . type_mask . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , } impl LOCAL_POSITION_NED_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , } ; } impl Default for LOCAL_POSITION_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_DATA { type Message = MavMessage ; const ID : u32 = 32u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED" ; const EXTRA_CRC : u8 = 185u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_IMU_DATA { pub time_usec : u64 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl RAW_IMU_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for RAW_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_IMU_DATA { type Message = MavMessage ; const ID : u32 = 27u32 ; const NAME : & 'static str = "RAW_IMU" ; const EXTRA_CRC : u8 = 144u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_ACTUATOR_CONTROLS_DATA { pub time_usec : u64 , pub flags : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 16] , pub mode : MavModeFlag , } impl HIL_ACTUATOR_CONTROLS_DATA { pub const ENCODED_LEN : usize = 81usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , flags : 0_u64 , controls : [0.0_f32 ; 16usize] , mode : MavModeFlag :: DEFAULT , } ; } impl Default for HIL_ACTUATOR_CONTROLS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_ACTUATOR_CONTROLS_DATA { type Message = MavMessage ; const ID : u32 = 93u32 ; const NAME : & 'static str = "HIL_ACTUATOR_CONTROLS" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 81usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . flags = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u64_le (self . flags) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . mode . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SERIAL_CONTROL_DATA { pub baudrate : u32 , pub timeout : u16 , pub device : SerialControlDev , pub flags : SerialControlFlag , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 70] , } impl SERIAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 79usize ; pub const DEFAULT : Self = Self { baudrate : 0_u32 , timeout : 0_u16 , device : SerialControlDev :: DEFAULT , flags : SerialControlFlag :: DEFAULT , count : 0_u8 , data : [0_u8 ; 70usize] , } ; } impl Default for SERIAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SERIAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 126u32 ; const NAME : & 'static str = "SERIAL_CONTROL" ; const EXTRA_CRC : u8 = 220u8 ; const ENCODED_LEN : usize = 79usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . baudrate = buf . get_u32_le () ; __struct . timeout = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . device = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "SerialControlDev" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = SerialControlFlag :: from_bits (tmp & SerialControlFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "SerialControlFlag" , value : tmp as u32 }) ? ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . baudrate) ; __tmp . put_u16_le (self . timeout) ; __tmp . put_u8 (self . device as u8) ; __tmp . put_u8 (self . flags . bits ()) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_INT_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_INT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_INT_DATA { type Message = MavMessage ; const ID : u32 = 51u32 ; const NAME : & 'static str = "MISSION_REQUEST_INT" ; const EXTRA_CRC : u8 = 196u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BATTERY_STATUS_DATA { pub current_consumed : i32 , pub energy_consumed : i32 , pub temperature : i16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltages : [u16 ; 10] , pub current_battery : i16 , pub id : u8 , pub battery_function : MavBatteryFunction , pub mavtype : MavBatteryType , pub battery_remaining : i8 , } impl BATTERY_STATUS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { current_consumed : 0_i32 , energy_consumed : 0_i32 , temperature : 0_i16 , voltages : [0_u16 ; 10usize] , current_battery : 0_i16 , id : 0_u8 , battery_function : MavBatteryFunction :: DEFAULT , mavtype : MavBatteryType :: DEFAULT , battery_remaining : 0_i8 , } ; } impl Default for BATTERY_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BATTERY_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 147u32 ; const NAME : & 'static str = "BATTERY_STATUS" ; const EXTRA_CRC : u8 = 154u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . current_consumed = buf . get_i32_le () ; __struct . energy_consumed = buf . get_i32_le () ; __struct . temperature = buf . get_i16_le () ; for v in & mut __struct . voltages { let val = buf . get_u16_le () ; * v = val ; } __struct . current_battery = buf . get_i16_le () ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . battery_function = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryFunction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryType" , value : tmp as u32 }) ? ; __struct . battery_remaining = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . current_consumed) ; __tmp . put_i32_le (self . energy_consumed) ; __tmp . put_i16_le (self . temperature) ; for val in & self . voltages { __tmp . put_u16_le (* val) ; } __tmp . put_i16_le (self . current_battery) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . battery_function as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_i8 (self . battery_remaining) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_BASIC_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub id_type : MavOdidIdType , pub ua_type : MavOdidUaType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uas_id : [u8 ; 20] , } impl OPEN_DRONE_ID_BASIC_ID_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , id_type : MavOdidIdType :: DEFAULT , ua_type : MavOdidUaType :: DEFAULT , uas_id : [0_u8 ; 20usize] , } ; } impl Default for OPEN_DRONE_ID_BASIC_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_BASIC_ID_DATA { type Message = MavMessage ; const ID : u32 = 12900u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_BASIC_ID" ; const EXTRA_CRC : u8 = 114u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . id_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidIdType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . ua_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidUaType" , value : tmp as u32 }) ? ; for v in & mut __struct . uas_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . id_type as u8) ; __tmp . put_u8 (self . ua_type as u8) ; for val in & self . uas_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_LOCATION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude_barometric : f32 , pub altitude_geodetic : f32 , pub height : f32 , pub timestamp : f32 , pub direction : u16 , pub speed_horizontal : u16 , pub speed_vertical : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub status : MavOdidStatus , pub height_reference : MavOdidHeightRef , pub horizontal_accuracy : MavOdidHorAcc , pub vertical_accuracy : MavOdidVerAcc , pub barometer_accuracy : MavOdidVerAcc , pub speed_accuracy : MavOdidSpeedAcc , pub timestamp_accuracy : MavOdidTimeAcc , } impl OPEN_DRONE_ID_LOCATION_DATA { pub const ENCODED_LEN : usize = 59usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude_barometric : 0.0_f32 , altitude_geodetic : 0.0_f32 , height : 0.0_f32 , timestamp : 0.0_f32 , direction : 0_u16 , speed_horizontal : 0_u16 , speed_vertical : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , status : MavOdidStatus :: DEFAULT , height_reference : MavOdidHeightRef :: DEFAULT , horizontal_accuracy : MavOdidHorAcc :: DEFAULT , vertical_accuracy : MavOdidVerAcc :: DEFAULT , barometer_accuracy : MavOdidVerAcc :: DEFAULT , speed_accuracy : MavOdidSpeedAcc :: DEFAULT , timestamp_accuracy : MavOdidTimeAcc :: DEFAULT , } ; } impl Default for OPEN_DRONE_ID_LOCATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_LOCATION_DATA { type Message = MavMessage ; const ID : u32 = 12901u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_LOCATION" ; const EXTRA_CRC : u8 = 254u8 ; const ENCODED_LEN : usize = 59usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude_barometric = buf . get_f32_le () ; __struct . altitude_geodetic = buf . get_f32_le () ; __struct . height = buf . get_f32_le () ; __struct . timestamp = buf . get_f32_le () ; __struct . direction = buf . get_u16_le () ; __struct . speed_horizontal = buf . get_u16_le () ; __struct . speed_vertical = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . height_reference = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidHeightRef" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . horizontal_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidHorAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . vertical_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidVerAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . barometer_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidVerAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . speed_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidSpeedAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . timestamp_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidTimeAcc" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_f32_le (self . altitude_barometric) ; __tmp . put_f32_le (self . altitude_geodetic) ; __tmp . put_f32_le (self . height) ; __tmp . put_f32_le (self . timestamp) ; __tmp . put_u16_le (self . direction) ; __tmp . put_u16_le (self . speed_horizontal) ; __tmp . put_i16_le (self . speed_vertical) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . height_reference as u8) ; __tmp . put_u8 (self . horizontal_accuracy as u8) ; __tmp . put_u8 (self . vertical_accuracy as u8) ; __tmp . put_u8 (self . barometer_accuracy as u8) ; __tmp . put_u8 (self . speed_accuracy as u8) ; __tmp . put_u8 (self . timestamp_accuracy as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_GPS_GLOBAL_ORIGIN_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub target_system : u8 , } impl SET_GPS_GLOBAL_ORIGIN_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , target_system : 0_u8 , } ; } impl Default for SET_GPS_GLOBAL_ORIGIN_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_GPS_GLOBAL_ORIGIN_DATA { type Message = MavMessage ; const ID : u32 = 48u32 ; const NAME : & 'static str = "SET_GPS_GLOBAL_ORIGIN" ; const EXTRA_CRC : u8 = 41u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . target_system = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_u8 (self . target_system) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_CANCEL_DATA { pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , } impl COMMAND_CANCEL_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for COMMAND_CANCEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_CANCEL_DATA { type Message = MavMessage ; const ID : u32 = 80u32 ; const NAME : & 'static str = "COMMAND_CANCEL" ; const EXTRA_CRC : u8 = 14u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS2_RAW_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub dgps_age : u32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub cog : u16 , pub fix_type : GpsFixType , pub satellites_visible : u8 , pub dgps_numch : u8 , } impl GPS2_RAW_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , dgps_age : 0_u32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , cog : 0_u16 , fix_type : GpsFixType :: DEFAULT , satellites_visible : 0_u8 , dgps_numch : 0_u8 , } ; } impl Default for GPS2_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS2_RAW_DATA { type Message = MavMessage ; const ID : u32 = 124u32 ; const NAME : & 'static str = "GPS2_RAW" ; const EXTRA_CRC : u8 = 87u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . dgps_age = buf . get_u32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . cog = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . satellites_visible = buf . get_u8 () ; __struct . dgps_numch = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u32_le (self . dgps_age) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type as u8) ; __tmp . put_u8 (self . satellites_visible) ; __tmp . put_u8 (self . dgps_numch) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WHEEL_DISTANCE_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub distance : [f64 ; 16] , pub count : u8 , } impl WHEEL_DISTANCE_DATA { pub const ENCODED_LEN : usize = 137usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , distance : [0.0_f64 ; 16usize] , count : 0_u8 , } ; } impl Default for WHEEL_DISTANCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WHEEL_DISTANCE_DATA { type Message = MavMessage ; const ID : u32 = 9000u32 ; const NAME : & 'static str = "WHEEL_DISTANCE" ; const EXTRA_CRC : u8 = 113u8 ; const ENCODED_LEN : usize = 137usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . distance { let val = buf . get_f64_le () ; * v = val ; } __struct . count = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . distance { __tmp . put_f64_le (* val) ; } __tmp . put_u8 (self . count) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA_TRANSMISSION_HANDSHAKE_DATA { pub size : u32 , pub width : u16 , pub height : u16 , pub packets : u16 , pub mavtype : MavlinkDataStreamType , pub payload : u8 , pub jpg_quality : u8 , } impl DATA_TRANSMISSION_HANDSHAKE_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { size : 0_u32 , width : 0_u16 , height : 0_u16 , packets : 0_u16 , mavtype : MavlinkDataStreamType :: DEFAULT , payload : 0_u8 , jpg_quality : 0_u8 , } ; } impl Default for DATA_TRANSMISSION_HANDSHAKE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA_TRANSMISSION_HANDSHAKE_DATA { type Message = MavMessage ; const ID : u32 = 130u32 ; const NAME : & 'static str = "DATA_TRANSMISSION_HANDSHAKE" ; const EXTRA_CRC : u8 = 29u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . size = buf . get_u32_le () ; __struct . width = buf . get_u16_le () ; __struct . height = buf . get_u16_le () ; __struct . packets = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavlinkDataStreamType" , value : tmp as u32 }) ? ; __struct . payload = buf . get_u8 () ; __struct . jpg_quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . size) ; __tmp . put_u16_le (self . width) ; __tmp . put_u16_le (self . height) ; __tmp . put_u16_le (self . packets) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . payload) ; __tmp . put_u8 (self . jpg_quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FENCE_STATUS_DATA { pub breach_time : u32 , pub breach_count : u16 , pub breach_status : u8 , pub breach_type : FenceBreach , } impl FENCE_STATUS_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { breach_time : 0_u32 , breach_count : 0_u16 , breach_status : 0_u8 , breach_type : FenceBreach :: DEFAULT , } ; } impl Default for FENCE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FENCE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 162u32 ; const NAME : & 'static str = "FENCE_STATUS" ; const EXTRA_CRC : u8 = 189u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . breach_time = buf . get_u32_le () ; __struct . breach_count = buf . get_u16_le () ; __struct . breach_status = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . breach_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "FenceBreach" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . breach_time) ; __tmp . put_u16_le (self . breach_count) ; __tmp . put_u8 (self . breach_status) ; __tmp . put_u8 (self . breach_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_WRITE_PARTIAL_LIST_DATA { pub start_index : i16 , pub end_index : i16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_WRITE_PARTIAL_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start_index : 0_i16 , end_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_WRITE_PARTIAL_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_WRITE_PARTIAL_LIST_DATA { type Message = MavMessage ; const ID : u32 = 38u32 ; const NAME : & 'static str = "MISSION_WRITE_PARTIAL_LIST" ; const EXTRA_CRC : u8 = 9u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start_index = buf . get_i16_le () ; __struct . end_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . start_index) ; __tmp . put_i16_le (self . end_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 40u32 ; const NAME : & 'static str = "MISSION_REQUEST" ; const EXTRA_CRC : u8 = 230u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_INFORMATION_DATA { pub time_boot_ms : u32 , pub cap_flags : GimbalManagerCapFlags , pub roll_min : f32 , pub roll_max : f32 , pub pitch_min : f32 , pub pitch_max : f32 , pub yaw_min : f32 , pub yaw_max : f32 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_INFORMATION_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , cap_flags : GimbalManagerCapFlags :: DEFAULT , roll_min : 0.0_f32 , roll_max : 0.0_f32 , pitch_min : 0.0_f32 , pitch_max : 0.0_f32 , yaw_min : 0.0_f32 , yaw_max : 0.0_f32 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 280u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_INFORMATION" ; const EXTRA_CRC : u8 = 70u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u32_le () ; __struct . cap_flags = GimbalManagerCapFlags :: from_bits (tmp & GimbalManagerCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalManagerCapFlags" , value : tmp as u32 }) ? ; __struct . roll_min = buf . get_f32_le () ; __struct . roll_max = buf . get_f32_le () ; __struct . pitch_min = buf . get_f32_le () ; __struct . pitch_max = buf . get_f32_le () ; __struct . yaw_min = buf . get_f32_le () ; __struct . yaw_max = buf . get_f32_le () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . cap_flags . bits ()) ; __tmp . put_f32_le (self . roll_min) ; __tmp . put_f32_le (self . roll_max) ; __tmp . put_f32_le (self . pitch_min) ; __tmp . put_f32_le (self . pitch_max) ; __tmp . put_f32_le (self . yaw_min) ; __tmp . put_f32_le (self . yaw_max) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub failure_flags : GimbalDeviceErrorFlags , pub flags : GimbalDeviceFlags , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , failure_flags : GimbalDeviceErrorFlags :: DEFAULT , flags : GimbalDeviceFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 285u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_ATTITUDE_STATUS" ; const EXTRA_CRC : u8 = 137u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . failure_flags = GimbalDeviceErrorFlags :: from_bits (tmp & GimbalDeviceErrorFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceErrorFlags" , value : tmp as u32 }) ? ; let tmp = buf . get_u16_le () ; __struct . flags = GimbalDeviceFlags :: from_bits (tmp & GimbalDeviceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u32_le (self . failure_flags . bits ()) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LANDING_TARGET_DATA { pub time_usec : u64 , pub angle_x : f32 , pub angle_y : f32 , pub distance : f32 , pub size_x : f32 , pub size_y : f32 , pub target_num : u8 , pub frame : MavFrame , } impl LANDING_TARGET_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , angle_x : 0.0_f32 , angle_y : 0.0_f32 , distance : 0.0_f32 , size_x : 0.0_f32 , size_y : 0.0_f32 , target_num : 0_u8 , frame : MavFrame :: DEFAULT , } ; } impl Default for LANDING_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LANDING_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 149u32 ; const NAME : & 'static str = "LANDING_TARGET" ; const EXTRA_CRC : u8 = 200u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . angle_x = buf . get_f32_le () ; __struct . angle_y = buf . get_f32_le () ; __struct . distance = buf . get_f32_le () ; __struct . size_x = buf . get_f32_le () ; __struct . size_y = buf . get_f32_le () ; __struct . target_num = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . angle_x) ; __tmp . put_f32_le (self . angle_y) ; __tmp . put_f32_le (self . distance) ; __tmp . put_f32_le (self . size_x) ; __tmp . put_f32_le (self . size_y) ; __tmp . put_u8 (self . target_num) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AIS_VESSEL_DATA { pub MMSI : u32 , pub lat : i32 , pub lon : i32 , pub COG : u16 , pub heading : u16 , pub velocity : u16 , pub dimension_bow : u16 , pub dimension_stern : u16 , pub tslc : u16 , pub flags : AisFlags , pub turn_rate : i8 , pub navigational_status : AisNavStatus , pub mavtype : AisType , pub dimension_port : u8 , pub dimension_starboard : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 7] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 20] , } impl AIS_VESSEL_DATA { pub const ENCODED_LEN : usize = 58usize ; pub const DEFAULT : Self = Self { MMSI : 0_u32 , lat : 0_i32 , lon : 0_i32 , COG : 0_u16 , heading : 0_u16 , velocity : 0_u16 , dimension_bow : 0_u16 , dimension_stern : 0_u16 , tslc : 0_u16 , flags : AisFlags :: DEFAULT , turn_rate : 0_i8 , navigational_status : AisNavStatus :: DEFAULT , mavtype : AisType :: DEFAULT , dimension_port : 0_u8 , dimension_starboard : 0_u8 , callsign : [0_u8 ; 7usize] , name : [0_u8 ; 20usize] , } ; } impl Default for AIS_VESSEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AIS_VESSEL_DATA { type Message = MavMessage ; const ID : u32 = 301u32 ; const NAME : & 'static str = "AIS_VESSEL" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 58usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . MMSI = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . COG = buf . get_u16_le () ; __struct . heading = buf . get_u16_le () ; __struct . velocity = buf . get_u16_le () ; __struct . dimension_bow = buf . get_u16_le () ; __struct . dimension_stern = buf . get_u16_le () ; __struct . tslc = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = AisFlags :: from_bits (tmp & AisFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AisFlags" , value : tmp as u32 }) ? ; __struct . turn_rate = buf . get_i8 () ; let tmp = buf . get_u8 () ; __struct . navigational_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AisNavStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AisType" , value : tmp as u32 }) ? ; __struct . dimension_port = buf . get_u8 () ; __struct . dimension_starboard = buf . get_u8 () ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . MMSI) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . COG) ; __tmp . put_u16_le (self . heading) ; __tmp . put_u16_le (self . velocity) ; __tmp . put_u16_le (self . dimension_bow) ; __tmp . put_u16_le (self . dimension_stern) ; __tmp . put_u16_le (self . tslc) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_i8 (self . turn_rate) ; __tmp . put_u8 (self . navigational_status as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . dimension_port) ; __tmp . put_u8 (self . dimension_starboard) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_GPS_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub vn : i16 , pub ve : i16 , pub vd : i16 , pub cog : u16 , pub fix_type : u8 , pub satellites_visible : u8 , } impl HIL_GPS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , vn : 0_i16 , ve : 0_i16 , vd : 0_i16 , cog : 0_u16 , fix_type : 0_u8 , satellites_visible : 0_u8 , } ; } impl Default for HIL_GPS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_GPS_DATA { type Message = MavMessage ; const ID : u32 = 113u32 ; const NAME : & 'static str = "HIL_GPS" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . vn = buf . get_i16_le () ; __struct . ve = buf . get_i16_le () ; __struct . vd = buf . get_i16_le () ; __struct . cog = buf . get_u16_le () ; __struct . fix_type = buf . get_u8 () ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_i16_le (self . vn) ; __tmp . put_i16_le (self . ve) ; __tmp . put_i16_le (self . vd) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_ENTRY_DATA { pub time_utc : u32 , pub size : u32 , pub id : u16 , pub num_logs : u16 , pub last_log_num : u16 , } impl LOG_ENTRY_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_utc : 0_u32 , size : 0_u32 , id : 0_u16 , num_logs : 0_u16 , last_log_num : 0_u16 , } ; } impl Default for LOG_ENTRY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_ENTRY_DATA { type Message = MavMessage ; const ID : u32 = 118u32 ; const NAME : & 'static str = "LOG_ENTRY" ; const EXTRA_CRC : u8 = 56u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_utc = buf . get_u32_le () ; __struct . size = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . num_logs = buf . get_u16_le () ; __struct . last_log_num = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_utc) ; __tmp . put_u32_le (self . size) ; __tmp . put_u16_le (self . id) ; __tmp . put_u16_le (self . num_logs) ; __tmp . put_u16_le (self . last_log_num) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE_DATA { type Message = MavMessage ; const ID : u32 = 29u32 ; const NAME : & 'static str = "SCALED_PRESSURE" ; const EXTRA_CRC : u8 = 115u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Clone , PartialEq , Debug)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMessage { AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA) , ORBIT_EXECUTION_STATUS (ORBIT_EXECUTION_STATUS_DATA) , REQUEST_EVENT (REQUEST_EVENT_DATA) , SET_MODE (SET_MODE_DATA) , CANFD_FRAME (CANFD_FRAME_DATA) , VIDEO_STREAM_INFORMATION (VIDEO_STREAM_INFORMATION_DATA) , SAFETY_SET_ALLOWED_AREA (SAFETY_SET_ALLOWED_AREA_DATA) , COMMAND_INT (COMMAND_INT_DATA) , RC_CHANNELS_OVERRIDE (RC_CHANNELS_OVERRIDE_DATA) , SCALED_IMU2 (SCALED_IMU2_DATA) , ACTUATOR_CONTROL_TARGET (ACTUATOR_CONTROL_TARGET_DATA) , DATA_STREAM (DATA_STREAM_DATA) , MISSION_ITEM_REACHED (MISSION_ITEM_REACHED_DATA) , HIL_RC_INPUTS_RAW (HIL_RC_INPUTS_RAW_DATA) , HIGHRES_IMU (HIGHRES_IMU_DATA) , FOLLOW_TARGET (FOLLOW_TARGET_DATA) , STATUSTEXT (STATUSTEXT_DATA) , ACTUATOR_OUTPUT_STATUS (ACTUATOR_OUTPUT_STATUS_DATA) , TRAJECTORY_REPRESENTATION_BEZIER (TRAJECTORY_REPRESENTATION_BEZIER_DATA) , CAMERA_SETTINGS (CAMERA_SETTINGS_DATA) , GLOBAL_VISION_POSITION_ESTIMATE (GLOBAL_VISION_POSITION_ESTIMATE_DATA) , OPTICAL_FLOW_RAD (OPTICAL_FLOW_RAD_DATA) , NAMED_VALUE_FLOAT (NAMED_VALUE_FLOAT_DATA) , RESOURCE_REQUEST (RESOURCE_REQUEST_DATA) , HIL_CONTROLS (HIL_CONTROLS_DATA) , GPS_INPUT (GPS_INPUT_DATA) , CAMERA_TRACKING_GEO_STATUS (CAMERA_TRACKING_GEO_STATUS_DATA) , HOME_POSITION (HOME_POSITION_DATA) , PARAM_SET (PARAM_SET_DATA) , UAVCAN_NODE_STATUS (UAVCAN_NODE_STATUS_DATA) , ONBOARD_COMPUTER_STATUS (ONBOARD_COMPUTER_STATUS_DATA) , ATTITUDE_QUATERNION (ATTITUDE_QUATERNION_DATA) , MISSION_REQUEST_PARTIAL_LIST (MISSION_REQUEST_PARTIAL_LIST_DATA) , MISSION_CURRENT (MISSION_CURRENT_DATA) , RADIO_STATUS (RADIO_STATUS_DATA) , HIL_STATE (HIL_STATE_DATA) , TERRAIN_DATA (TERRAIN_DATA_DATA) , SCALED_PRESSURE2 (SCALED_PRESSURE2_DATA) , ATT_POS_MOCAP (ATT_POS_MOCAP_DATA) , GPS_STATUS (GPS_STATUS_DATA) , MISSION_ITEM (MISSION_ITEM_DATA) , VISION_SPEED_ESTIMATE (VISION_SPEED_ESTIMATE_DATA) , SCALED_IMU (SCALED_IMU_DATA) , MISSION_COUNT (MISSION_COUNT_DATA) , PARAM_MAP_RC (PARAM_MAP_RC_DATA) , LOG_DATA (LOG_DATA_DATA) , EXTENDED_SYS_STATE (EXTENDED_SYS_STATE_DATA) , SETUP_SIGNING (SETUP_SIGNING_DATA) , RC_CHANNELS_RAW (RC_CHANNELS_RAW_DATA) , GIMBAL_MANAGER_SET_ATTITUDE (GIMBAL_MANAGER_SET_ATTITUDE_DATA) , UAVCAN_NODE_INFO (UAVCAN_NODE_INFO_DATA) , COMPONENT_METADATA (COMPONENT_METADATA_DATA) , OPEN_DRONE_ID_AUTHENTICATION (OPEN_DRONE_ID_AUTHENTICATION_DATA) , SYSTEM_TIME (SYSTEM_TIME_DATA) , PARAM_VALUE (PARAM_VALUE_DATA) , MANUAL_SETPOINT (MANUAL_SETPOINT_DATA) , MISSION_SET_CURRENT (MISSION_SET_CURRENT_DATA) , OPTICAL_FLOW (OPTICAL_FLOW_DATA) , POWER_STATUS (POWER_STATUS_DATA) , TERRAIN_REQUEST (TERRAIN_REQUEST_DATA) , PARAM_REQUEST_READ (PARAM_REQUEST_READ_DATA) , TERRAIN_REPORT (TERRAIN_REPORT_DATA) , GPS_GLOBAL_ORIGIN (GPS_GLOBAL_ORIGIN_DATA) , HIL_STATE_QUATERNION (HIL_STATE_QUATERNION_DATA) , TERRAIN_CHECK (TERRAIN_CHECK_DATA) , MISSION_REQUEST_LIST (MISSION_REQUEST_LIST_DATA) , EFI_STATUS (EFI_STATUS_DATA) , SET_HOME_POSITION (SET_HOME_POSITION_DATA) , FLIGHT_INFORMATION (FLIGHT_INFORMATION_DATA) , LOGGING_DATA (LOGGING_DATA_DATA) , PARAM_EXT_SET (PARAM_EXT_SET_DATA) , MOUNT_ORIENTATION (MOUNT_ORIENTATION_DATA) , RC_CHANNELS_SCALED (RC_CHANNELS_SCALED_DATA) , GPS2_RTK (GPS2_RTK_DATA) , ATTITUDE (ATTITUDE_DATA) , ESC_INFO (ESC_INFO_DATA) , CELLULAR_STATUS (CELLULAR_STATUS_DATA) , UTM_GLOBAL_POSITION (UTM_GLOBAL_POSITION_DATA) , TUNNEL (TUNNEL_DATA) , ENCAPSULATED_DATA (ENCAPSULATED_DATA_DATA) , MEMORY_VECT (MEMORY_VECT_DATA) , PLAY_TUNE_V2 (PLAY_TUNE_V2_DATA) , HYGROMETER_SENSOR (HYGROMETER_SENSOR_DATA) , CELLULAR_CONFIG (CELLULAR_CONFIG_DATA) , MAG_CAL_REPORT (MAG_CAL_REPORT_DATA) , TIMESYNC (TIMESYNC_DATA) , COMPONENT_INFORMATION (COMPONENT_INFORMATION_DATA) , NAMED_VALUE_INT (NAMED_VALUE_INT_DATA) , GIMBAL_DEVICE_INFORMATION (GIMBAL_DEVICE_INFORMATION_DATA) , SAFETY_ALLOWED_AREA (SAFETY_ALLOWED_AREA_DATA) , ODOMETRY (ODOMETRY_DATA) , OPEN_DRONE_ID_SYSTEM (OPEN_DRONE_ID_SYSTEM_DATA) , ALTITUDE (ALTITUDE_DATA) , PARAM_EXT_ACK (PARAM_EXT_ACK_DATA) , RESPONSE_EVENT_ERROR (RESPONSE_EVENT_ERROR_DATA) , RAW_PRESSURE (RAW_PRESSURE_DATA) , MISSION_ITEM_INT (MISSION_ITEM_INT_DATA) , SCALED_IMU3 (SCALED_IMU3_DATA) , MESSAGE_INTERVAL (MESSAGE_INTERVAL_DATA) , DEBUG_VECT (DEBUG_VECT_DATA) , CAMERA_CAPTURE_STATUS (CAMERA_CAPTURE_STATUS_DATA) , LOG_REQUEST_END (LOG_REQUEST_END_DATA) , FILE_TRANSFER_PROTOCOL (FILE_TRANSFER_PROTOCOL_DATA) , PARAM_EXT_REQUEST_READ (PARAM_EXT_REQUEST_READ_DATA) , WINCH_STATUS (WINCH_STATUS_DATA) , OPEN_DRONE_ID_SELF_ID (OPEN_DRONE_ID_SELF_ID_DATA) , ISBD_LINK_STATUS (ISBD_LINK_STATUS_DATA) , TIME_ESTIMATE_TO_TARGET (TIME_ESTIMATE_TO_TARGET_DATA) , CAN_FILTER_MODIFY (CAN_FILTER_MODIFY_DATA) , GIMBAL_MANAGER_SET_MANUAL_CONTROL (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA) , OPEN_DRONE_ID_MESSAGE_PACK (OPEN_DRONE_ID_MESSAGE_PACK_DATA) , TRAJECTORY_REPRESENTATION_WAYPOINTS (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA) , GENERATOR_STATUS (GENERATOR_STATUS_DATA) , ESTIMATOR_STATUS (ESTIMATOR_STATUS_DATA) , GPS_RTCM_DATA (GPS_RTCM_DATA_DATA) , CHANGE_OPERATOR_CONTROL_ACK (CHANGE_OPERATOR_CONTROL_ACK_DATA) , POSITION_TARGET_LOCAL_NED (POSITION_TARGET_LOCAL_NED_DATA) , HIL_SENSOR (HIL_SENSOR_DATA) , DISTANCE_SENSOR (DISTANCE_SENSOR_DATA) , VIBRATION (VIBRATION_DATA) , CAMERA_TRIGGER (CAMERA_TRIGGER_DATA) , LOG_REQUEST_LIST (LOG_REQUEST_LIST_DATA) , PROTOCOL_VERSION (PROTOCOL_VERSION_DATA) , CONTROL_SYSTEM_STATE (CONTROL_SYSTEM_STATE_DATA) , CAMERA_FOV_STATUS (CAMERA_FOV_STATUS_DATA) , SUPPORTED_TUNES (SUPPORTED_TUNES_DATA) , OPEN_DRONE_ID_SYSTEM_UPDATE (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA) , WIND_COV (WIND_COV_DATA) , V2_EXTENSION (V2_EXTENSION_DATA) , CAMERA_INFORMATION (CAMERA_INFORMATION_DATA) , COLLISION (COLLISION_DATA) , PARAM_REQUEST_LIST (PARAM_REQUEST_LIST_DATA) , HIL_OPTICAL_FLOW (HIL_OPTICAL_FLOW_DATA) , GPS_INJECT_DATA (GPS_INJECT_DATA_DATA) , OBSTACLE_DISTANCE (OBSTACLE_DISTANCE_DATA) , REQUEST_DATA_STREAM (REQUEST_DATA_STREAM_DATA) , PING (PING_DATA) , GPS_RTK (GPS_RTK_DATA) , GLOBAL_POSITION_INT (GLOBAL_POSITION_INT_DATA) , POSITION_TARGET_GLOBAL_INT (POSITION_TARGET_GLOBAL_INT_DATA) , HEARTBEAT (HEARTBEAT_DATA) , CAN_FRAME (CAN_FRAME_DATA) , PARAM_EXT_VALUE (PARAM_EXT_VALUE_DATA) , GPS_RAW_INT (GPS_RAW_INT_DATA) , SERVO_OUTPUT_RAW (SERVO_OUTPUT_RAW_DATA) , NAV_CONTROLLER_OUTPUT (NAV_CONTROLLER_OUTPUT_DATA) , MISSION_CLEAR_ALL (MISSION_CLEAR_ALL_DATA) , SET_ACTUATOR_CONTROL_TARGET (SET_ACTUATOR_CONTROL_TARGET_DATA) , CAMERA_TRACKING_IMAGE_STATUS (CAMERA_TRACKING_IMAGE_STATUS_DATA) , GIMBAL_MANAGER_SET_PITCHYAW (GIMBAL_MANAGER_SET_PITCHYAW_DATA) , EVENT (EVENT_DATA) , VICON_POSITION_ESTIMATE (VICON_POSITION_ESTIMATE_DATA) , OPEN_DRONE_ID_ARM_STATUS (OPEN_DRONE_ID_ARM_STATUS_DATA) , SET_POSITION_TARGET_LOCAL_NED (SET_POSITION_TARGET_LOCAL_NED_DATA) , MISSION_ACK (MISSION_ACK_DATA) , CHANGE_OPERATOR_CONTROL (CHANGE_OPERATOR_CONTROL_DATA) , MANUAL_CONTROL (MANUAL_CONTROL_DATA) , RC_CHANNELS (RC_CHANNELS_DATA) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA) , HIGH_LATENCY2 (HIGH_LATENCY2_DATA) , LOG_ERASE (LOG_ERASE_DATA) , DEBUG (DEBUG_DATA) , STORAGE_INFORMATION (STORAGE_INFORMATION_DATA) , LINK_NODE_STATUS (LINK_NODE_STATUS_DATA) , ATTITUDE_QUATERNION_COV (ATTITUDE_QUATERNION_COV_DATA) , LOGGING_ACK (LOGGING_ACK_DATA) , AUTH_KEY (AUTH_KEY_DATA) , CAMERA_IMAGE_CAPTURED (CAMERA_IMAGE_CAPTURED_DATA) , GIMBAL_DEVICE_SET_ATTITUDE (GIMBAL_DEVICE_SET_ATTITUDE_DATA) , OPEN_DRONE_ID_OPERATOR_ID (OPEN_DRONE_ID_OPERATOR_ID_DATA) , SYS_STATUS (SYS_STATUS_DATA) , SET_POSITION_TARGET_GLOBAL_INT (SET_POSITION_TARGET_GLOBAL_INT_DATA) , SIM_STATE (SIM_STATE_DATA) , ADSB_VEHICLE (ADSB_VEHICLE_DATA) , BUTTON_CHANGE (BUTTON_CHANGE_DATA) , ESC_STATUS (ESC_STATUS_DATA) , VISION_POSITION_ESTIMATE (VISION_POSITION_ESTIMATE_DATA) , AUTOPILOT_VERSION (AUTOPILOT_VERSION_DATA) , PLAY_TUNE (PLAY_TUNE_DATA) , PARAM_EXT_REQUEST_LIST (PARAM_EXT_REQUEST_LIST_DATA) , SET_ATTITUDE_TARGET (SET_ATTITUDE_TARGET_DATA) , LOG_REQUEST_DATA (LOG_REQUEST_DATA_DATA) , COMMAND_ACK (COMMAND_ACK_DATA) , GLOBAL_POSITION_INT_COV (GLOBAL_POSITION_INT_COV_DATA) , SCALED_PRESSURE3 (SCALED_PRESSURE3_DATA) , LOGGING_DATA_ACKED (LOGGING_DATA_ACKED_DATA) , HIGH_LATENCY (HIGH_LATENCY_DATA) , VIDEO_STREAM_STATUS (VIDEO_STREAM_STATUS_DATA) , VFR_HUD (VFR_HUD_DATA) , COMMAND_LONG (COMMAND_LONG_DATA) , GIMBAL_MANAGER_STATUS (GIMBAL_MANAGER_STATUS_DATA) , RAW_RPM (RAW_RPM_DATA) , WIFI_CONFIG_AP (WIFI_CONFIG_AP_DATA) , DEBUG_FLOAT_ARRAY (DEBUG_FLOAT_ARRAY_DATA) , LOCAL_POSITION_NED_COV (LOCAL_POSITION_NED_COV_DATA) , SMART_BATTERY_INFO (SMART_BATTERY_INFO_DATA) , CURRENT_EVENT_SEQUENCE (CURRENT_EVENT_SEQUENCE_DATA) , ATTITUDE_TARGET (ATTITUDE_TARGET_DATA) , LOCAL_POSITION_NED (LOCAL_POSITION_NED_DATA) , RAW_IMU (RAW_IMU_DATA) , HIL_ACTUATOR_CONTROLS (HIL_ACTUATOR_CONTROLS_DATA) , SERIAL_CONTROL (SERIAL_CONTROL_DATA) , MISSION_REQUEST_INT (MISSION_REQUEST_INT_DATA) , BATTERY_STATUS (BATTERY_STATUS_DATA) , OPEN_DRONE_ID_BASIC_ID (OPEN_DRONE_ID_BASIC_ID_DATA) , OPEN_DRONE_ID_LOCATION (OPEN_DRONE_ID_LOCATION_DATA) , SET_GPS_GLOBAL_ORIGIN (SET_GPS_GLOBAL_ORIGIN_DATA) , COMMAND_CANCEL (COMMAND_CANCEL_DATA) , GPS2_RAW (GPS2_RAW_DATA) , WHEEL_DISTANCE (WHEEL_DISTANCE_DATA) , DATA_TRANSMISSION_HANDSHAKE (DATA_TRANSMISSION_HANDSHAKE_DATA) , FENCE_STATUS (FENCE_STATUS_DATA) , MISSION_WRITE_PARTIAL_LIST (MISSION_WRITE_PARTIAL_LIST_DATA) , MISSION_REQUEST (MISSION_REQUEST_DATA) , GIMBAL_MANAGER_INFORMATION (GIMBAL_MANAGER_INFORMATION_DATA) , GIMBAL_DEVICE_ATTITUDE_STATUS (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA) , LANDING_TARGET (LANDING_TARGET_DATA) , AIS_VESSEL (AIS_VESSEL_DATA) , HIL_GPS (HIL_GPS_DATA) , LOG_ENTRY (LOG_ENTRY_DATA) , SCALED_PRESSURE (SCALED_PRESSURE_DATA) , } impl Message for MavMessage { fn parse (version : MavlinkVersion , id : u32 , payload : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { match id { AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE) , ORBIT_EXECUTION_STATUS_DATA :: ID => ORBIT_EXECUTION_STATUS_DATA :: deser (version , payload) . map (Self :: ORBIT_EXECUTION_STATUS) , REQUEST_EVENT_DATA :: ID => REQUEST_EVENT_DATA :: deser (version , payload) . map (Self :: REQUEST_EVENT) , SET_MODE_DATA :: ID => SET_MODE_DATA :: deser (version , payload) . map (Self :: SET_MODE) , CANFD_FRAME_DATA :: ID => CANFD_FRAME_DATA :: deser (version , payload) . map (Self :: CANFD_FRAME) , VIDEO_STREAM_INFORMATION_DATA :: ID => VIDEO_STREAM_INFORMATION_DATA :: deser (version , payload) . map (Self :: VIDEO_STREAM_INFORMATION) , SAFETY_SET_ALLOWED_AREA_DATA :: ID => SAFETY_SET_ALLOWED_AREA_DATA :: deser (version , payload) . map (Self :: SAFETY_SET_ALLOWED_AREA) , COMMAND_INT_DATA :: ID => COMMAND_INT_DATA :: deser (version , payload) . map (Self :: COMMAND_INT) , RC_CHANNELS_OVERRIDE_DATA :: ID => RC_CHANNELS_OVERRIDE_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_OVERRIDE) , SCALED_IMU2_DATA :: ID => SCALED_IMU2_DATA :: deser (version , payload) . map (Self :: SCALED_IMU2) , ACTUATOR_CONTROL_TARGET_DATA :: ID => ACTUATOR_CONTROL_TARGET_DATA :: deser (version , payload) . map (Self :: ACTUATOR_CONTROL_TARGET) , DATA_STREAM_DATA :: ID => DATA_STREAM_DATA :: deser (version , payload) . map (Self :: DATA_STREAM) , MISSION_ITEM_REACHED_DATA :: ID => MISSION_ITEM_REACHED_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM_REACHED) , HIL_RC_INPUTS_RAW_DATA :: ID => HIL_RC_INPUTS_RAW_DATA :: deser (version , payload) . map (Self :: HIL_RC_INPUTS_RAW) , HIGHRES_IMU_DATA :: ID => HIGHRES_IMU_DATA :: deser (version , payload) . map (Self :: HIGHRES_IMU) , FOLLOW_TARGET_DATA :: ID => FOLLOW_TARGET_DATA :: deser (version , payload) . map (Self :: FOLLOW_TARGET) , STATUSTEXT_DATA :: ID => STATUSTEXT_DATA :: deser (version , payload) . map (Self :: STATUSTEXT) , ACTUATOR_OUTPUT_STATUS_DATA :: ID => ACTUATOR_OUTPUT_STATUS_DATA :: deser (version , payload) . map (Self :: ACTUATOR_OUTPUT_STATUS) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: deser (version , payload) . map (Self :: TRAJECTORY_REPRESENTATION_BEZIER) , CAMERA_SETTINGS_DATA :: ID => CAMERA_SETTINGS_DATA :: deser (version , payload) . map (Self :: CAMERA_SETTINGS) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: GLOBAL_VISION_POSITION_ESTIMATE) , OPTICAL_FLOW_RAD_DATA :: ID => OPTICAL_FLOW_RAD_DATA :: deser (version , payload) . map (Self :: OPTICAL_FLOW_RAD) , NAMED_VALUE_FLOAT_DATA :: ID => NAMED_VALUE_FLOAT_DATA :: deser (version , payload) . map (Self :: NAMED_VALUE_FLOAT) , RESOURCE_REQUEST_DATA :: ID => RESOURCE_REQUEST_DATA :: deser (version , payload) . map (Self :: RESOURCE_REQUEST) , HIL_CONTROLS_DATA :: ID => HIL_CONTROLS_DATA :: deser (version , payload) . map (Self :: HIL_CONTROLS) , GPS_INPUT_DATA :: ID => GPS_INPUT_DATA :: deser (version , payload) . map (Self :: GPS_INPUT) , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => CAMERA_TRACKING_GEO_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_TRACKING_GEO_STATUS) , HOME_POSITION_DATA :: ID => HOME_POSITION_DATA :: deser (version , payload) . map (Self :: HOME_POSITION) , PARAM_SET_DATA :: ID => PARAM_SET_DATA :: deser (version , payload) . map (Self :: PARAM_SET) , UAVCAN_NODE_STATUS_DATA :: ID => UAVCAN_NODE_STATUS_DATA :: deser (version , payload) . map (Self :: UAVCAN_NODE_STATUS) , ONBOARD_COMPUTER_STATUS_DATA :: ID => ONBOARD_COMPUTER_STATUS_DATA :: deser (version , payload) . map (Self :: ONBOARD_COMPUTER_STATUS) , ATTITUDE_QUATERNION_DATA :: ID => ATTITUDE_QUATERNION_DATA :: deser (version , payload) . map (Self :: ATTITUDE_QUATERNION) , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => MISSION_REQUEST_PARTIAL_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_PARTIAL_LIST) , MISSION_CURRENT_DATA :: ID => MISSION_CURRENT_DATA :: deser (version , payload) . map (Self :: MISSION_CURRENT) , RADIO_STATUS_DATA :: ID => RADIO_STATUS_DATA :: deser (version , payload) . map (Self :: RADIO_STATUS) , HIL_STATE_DATA :: ID => HIL_STATE_DATA :: deser (version , payload) . map (Self :: HIL_STATE) , TERRAIN_DATA_DATA :: ID => TERRAIN_DATA_DATA :: deser (version , payload) . map (Self :: TERRAIN_DATA) , SCALED_PRESSURE2_DATA :: ID => SCALED_PRESSURE2_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE2) , ATT_POS_MOCAP_DATA :: ID => ATT_POS_MOCAP_DATA :: deser (version , payload) . map (Self :: ATT_POS_MOCAP) , GPS_STATUS_DATA :: ID => GPS_STATUS_DATA :: deser (version , payload) . map (Self :: GPS_STATUS) , MISSION_ITEM_DATA :: ID => MISSION_ITEM_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM) , VISION_SPEED_ESTIMATE_DATA :: ID => VISION_SPEED_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VISION_SPEED_ESTIMATE) , SCALED_IMU_DATA :: ID => SCALED_IMU_DATA :: deser (version , payload) . map (Self :: SCALED_IMU) , MISSION_COUNT_DATA :: ID => MISSION_COUNT_DATA :: deser (version , payload) . map (Self :: MISSION_COUNT) , PARAM_MAP_RC_DATA :: ID => PARAM_MAP_RC_DATA :: deser (version , payload) . map (Self :: PARAM_MAP_RC) , LOG_DATA_DATA :: ID => LOG_DATA_DATA :: deser (version , payload) . map (Self :: LOG_DATA) , EXTENDED_SYS_STATE_DATA :: ID => EXTENDED_SYS_STATE_DATA :: deser (version , payload) . map (Self :: EXTENDED_SYS_STATE) , SETUP_SIGNING_DATA :: ID => SETUP_SIGNING_DATA :: deser (version , payload) . map (Self :: SETUP_SIGNING) , RC_CHANNELS_RAW_DATA :: ID => RC_CHANNELS_RAW_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_RAW) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_ATTITUDE) , UAVCAN_NODE_INFO_DATA :: ID => UAVCAN_NODE_INFO_DATA :: deser (version , payload) . map (Self :: UAVCAN_NODE_INFO) , COMPONENT_METADATA_DATA :: ID => COMPONENT_METADATA_DATA :: deser (version , payload) . map (Self :: COMPONENT_METADATA) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => OPEN_DRONE_ID_AUTHENTICATION_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_AUTHENTICATION) , SYSTEM_TIME_DATA :: ID => SYSTEM_TIME_DATA :: deser (version , payload) . map (Self :: SYSTEM_TIME) , PARAM_VALUE_DATA :: ID => PARAM_VALUE_DATA :: deser (version , payload) . map (Self :: PARAM_VALUE) , MANUAL_SETPOINT_DATA :: ID => MANUAL_SETPOINT_DATA :: deser (version , payload) . map (Self :: MANUAL_SETPOINT) , MISSION_SET_CURRENT_DATA :: ID => MISSION_SET_CURRENT_DATA :: deser (version , payload) . map (Self :: MISSION_SET_CURRENT) , OPTICAL_FLOW_DATA :: ID => OPTICAL_FLOW_DATA :: deser (version , payload) . map (Self :: OPTICAL_FLOW) , POWER_STATUS_DATA :: ID => POWER_STATUS_DATA :: deser (version , payload) . map (Self :: POWER_STATUS) , TERRAIN_REQUEST_DATA :: ID => TERRAIN_REQUEST_DATA :: deser (version , payload) . map (Self :: TERRAIN_REQUEST) , PARAM_REQUEST_READ_DATA :: ID => PARAM_REQUEST_READ_DATA :: deser (version , payload) . map (Self :: PARAM_REQUEST_READ) , TERRAIN_REPORT_DATA :: ID => TERRAIN_REPORT_DATA :: deser (version , payload) . map (Self :: TERRAIN_REPORT) , GPS_GLOBAL_ORIGIN_DATA :: ID => GPS_GLOBAL_ORIGIN_DATA :: deser (version , payload) . map (Self :: GPS_GLOBAL_ORIGIN) , HIL_STATE_QUATERNION_DATA :: ID => HIL_STATE_QUATERNION_DATA :: deser (version , payload) . map (Self :: HIL_STATE_QUATERNION) , TERRAIN_CHECK_DATA :: ID => TERRAIN_CHECK_DATA :: deser (version , payload) . map (Self :: TERRAIN_CHECK) , MISSION_REQUEST_LIST_DATA :: ID => MISSION_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_LIST) , EFI_STATUS_DATA :: ID => EFI_STATUS_DATA :: deser (version , payload) . map (Self :: EFI_STATUS) , SET_HOME_POSITION_DATA :: ID => SET_HOME_POSITION_DATA :: deser (version , payload) . map (Self :: SET_HOME_POSITION) , FLIGHT_INFORMATION_DATA :: ID => FLIGHT_INFORMATION_DATA :: deser (version , payload) . map (Self :: FLIGHT_INFORMATION) , LOGGING_DATA_DATA :: ID => LOGGING_DATA_DATA :: deser (version , payload) . map (Self :: LOGGING_DATA) , PARAM_EXT_SET_DATA :: ID => PARAM_EXT_SET_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_SET) , MOUNT_ORIENTATION_DATA :: ID => MOUNT_ORIENTATION_DATA :: deser (version , payload) . map (Self :: MOUNT_ORIENTATION) , RC_CHANNELS_SCALED_DATA :: ID => RC_CHANNELS_SCALED_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_SCALED) , GPS2_RTK_DATA :: ID => GPS2_RTK_DATA :: deser (version , payload) . map (Self :: GPS2_RTK) , ATTITUDE_DATA :: ID => ATTITUDE_DATA :: deser (version , payload) . map (Self :: ATTITUDE) , ESC_INFO_DATA :: ID => ESC_INFO_DATA :: deser (version , payload) . map (Self :: ESC_INFO) , CELLULAR_STATUS_DATA :: ID => CELLULAR_STATUS_DATA :: deser (version , payload) . map (Self :: CELLULAR_STATUS) , UTM_GLOBAL_POSITION_DATA :: ID => UTM_GLOBAL_POSITION_DATA :: deser (version , payload) . map (Self :: UTM_GLOBAL_POSITION) , TUNNEL_DATA :: ID => TUNNEL_DATA :: deser (version , payload) . map (Self :: TUNNEL) , ENCAPSULATED_DATA_DATA :: ID => ENCAPSULATED_DATA_DATA :: deser (version , payload) . map (Self :: ENCAPSULATED_DATA) , MEMORY_VECT_DATA :: ID => MEMORY_VECT_DATA :: deser (version , payload) . map (Self :: MEMORY_VECT) , PLAY_TUNE_V2_DATA :: ID => PLAY_TUNE_V2_DATA :: deser (version , payload) . map (Self :: PLAY_TUNE_V2) , HYGROMETER_SENSOR_DATA :: ID => HYGROMETER_SENSOR_DATA :: deser (version , payload) . map (Self :: HYGROMETER_SENSOR) , CELLULAR_CONFIG_DATA :: ID => CELLULAR_CONFIG_DATA :: deser (version , payload) . map (Self :: CELLULAR_CONFIG) , MAG_CAL_REPORT_DATA :: ID => MAG_CAL_REPORT_DATA :: deser (version , payload) . map (Self :: MAG_CAL_REPORT) , TIMESYNC_DATA :: ID => TIMESYNC_DATA :: deser (version , payload) . map (Self :: TIMESYNC) , COMPONENT_INFORMATION_DATA :: ID => COMPONENT_INFORMATION_DATA :: deser (version , payload) . map (Self :: COMPONENT_INFORMATION) , NAMED_VALUE_INT_DATA :: ID => NAMED_VALUE_INT_DATA :: deser (version , payload) . map (Self :: NAMED_VALUE_INT) , GIMBAL_DEVICE_INFORMATION_DATA :: ID => GIMBAL_DEVICE_INFORMATION_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_INFORMATION) , SAFETY_ALLOWED_AREA_DATA :: ID => SAFETY_ALLOWED_AREA_DATA :: deser (version , payload) . map (Self :: SAFETY_ALLOWED_AREA) , ODOMETRY_DATA :: ID => ODOMETRY_DATA :: deser (version , payload) . map (Self :: ODOMETRY) , OPEN_DRONE_ID_SYSTEM_DATA :: ID => OPEN_DRONE_ID_SYSTEM_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SYSTEM) , ALTITUDE_DATA :: ID => ALTITUDE_DATA :: deser (version , payload) . map (Self :: ALTITUDE) , PARAM_EXT_ACK_DATA :: ID => PARAM_EXT_ACK_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_ACK) , RESPONSE_EVENT_ERROR_DATA :: ID => RESPONSE_EVENT_ERROR_DATA :: deser (version , payload) . map (Self :: RESPONSE_EVENT_ERROR) , RAW_PRESSURE_DATA :: ID => RAW_PRESSURE_DATA :: deser (version , payload) . map (Self :: RAW_PRESSURE) , MISSION_ITEM_INT_DATA :: ID => MISSION_ITEM_INT_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM_INT) , SCALED_IMU3_DATA :: ID => SCALED_IMU3_DATA :: deser (version , payload) . map (Self :: SCALED_IMU3) , MESSAGE_INTERVAL_DATA :: ID => MESSAGE_INTERVAL_DATA :: deser (version , payload) . map (Self :: MESSAGE_INTERVAL) , DEBUG_VECT_DATA :: ID => DEBUG_VECT_DATA :: deser (version , payload) . map (Self :: DEBUG_VECT) , CAMERA_CAPTURE_STATUS_DATA :: ID => CAMERA_CAPTURE_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_CAPTURE_STATUS) , LOG_REQUEST_END_DATA :: ID => LOG_REQUEST_END_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_END) , FILE_TRANSFER_PROTOCOL_DATA :: ID => FILE_TRANSFER_PROTOCOL_DATA :: deser (version , payload) . map (Self :: FILE_TRANSFER_PROTOCOL) , PARAM_EXT_REQUEST_READ_DATA :: ID => PARAM_EXT_REQUEST_READ_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_REQUEST_READ) , WINCH_STATUS_DATA :: ID => WINCH_STATUS_DATA :: deser (version , payload) . map (Self :: WINCH_STATUS) , OPEN_DRONE_ID_SELF_ID_DATA :: ID => OPEN_DRONE_ID_SELF_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SELF_ID) , ISBD_LINK_STATUS_DATA :: ID => ISBD_LINK_STATUS_DATA :: deser (version , payload) . map (Self :: ISBD_LINK_STATUS) , TIME_ESTIMATE_TO_TARGET_DATA :: ID => TIME_ESTIMATE_TO_TARGET_DATA :: deser (version , payload) . map (Self :: TIME_ESTIMATE_TO_TARGET) , CAN_FILTER_MODIFY_DATA :: ID => CAN_FILTER_MODIFY_DATA :: deser (version , payload) . map (Self :: CAN_FILTER_MODIFY) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_MESSAGE_PACK) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: deser (version , payload) . map (Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS) , GENERATOR_STATUS_DATA :: ID => GENERATOR_STATUS_DATA :: deser (version , payload) . map (Self :: GENERATOR_STATUS) , ESTIMATOR_STATUS_DATA :: ID => ESTIMATOR_STATUS_DATA :: deser (version , payload) . map (Self :: ESTIMATOR_STATUS) , GPS_RTCM_DATA_DATA :: ID => GPS_RTCM_DATA_DATA :: deser (version , payload) . map (Self :: GPS_RTCM_DATA) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => CHANGE_OPERATOR_CONTROL_ACK_DATA :: deser (version , payload) . map (Self :: CHANGE_OPERATOR_CONTROL_ACK) , POSITION_TARGET_LOCAL_NED_DATA :: ID => POSITION_TARGET_LOCAL_NED_DATA :: deser (version , payload) . map (Self :: POSITION_TARGET_LOCAL_NED) , HIL_SENSOR_DATA :: ID => HIL_SENSOR_DATA :: deser (version , payload) . map (Self :: HIL_SENSOR) , DISTANCE_SENSOR_DATA :: ID => DISTANCE_SENSOR_DATA :: deser (version , payload) . map (Self :: DISTANCE_SENSOR) , VIBRATION_DATA :: ID => VIBRATION_DATA :: deser (version , payload) . map (Self :: VIBRATION) , CAMERA_TRIGGER_DATA :: ID => CAMERA_TRIGGER_DATA :: deser (version , payload) . map (Self :: CAMERA_TRIGGER) , LOG_REQUEST_LIST_DATA :: ID => LOG_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_LIST) , PROTOCOL_VERSION_DATA :: ID => PROTOCOL_VERSION_DATA :: deser (version , payload) . map (Self :: PROTOCOL_VERSION) , CONTROL_SYSTEM_STATE_DATA :: ID => CONTROL_SYSTEM_STATE_DATA :: deser (version , payload) . map (Self :: CONTROL_SYSTEM_STATE) , CAMERA_FOV_STATUS_DATA :: ID => CAMERA_FOV_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_FOV_STATUS) , SUPPORTED_TUNES_DATA :: ID => SUPPORTED_TUNES_DATA :: deser (version , payload) . map (Self :: SUPPORTED_TUNES) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SYSTEM_UPDATE) , WIND_COV_DATA :: ID => WIND_COV_DATA :: deser (version , payload) . map (Self :: WIND_COV) , V2_EXTENSION_DATA :: ID => V2_EXTENSION_DATA :: deser (version , payload) . map (Self :: V2_EXTENSION) , CAMERA_INFORMATION_DATA :: ID => CAMERA_INFORMATION_DATA :: deser (version , payload) . map (Self :: CAMERA_INFORMATION) , COLLISION_DATA :: ID => COLLISION_DATA :: deser (version , payload) . map (Self :: COLLISION) , PARAM_REQUEST_LIST_DATA :: ID => PARAM_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: PARAM_REQUEST_LIST) , HIL_OPTICAL_FLOW_DATA :: ID => HIL_OPTICAL_FLOW_DATA :: deser (version , payload) . map (Self :: HIL_OPTICAL_FLOW) , GPS_INJECT_DATA_DATA :: ID => GPS_INJECT_DATA_DATA :: deser (version , payload) . map (Self :: GPS_INJECT_DATA) , OBSTACLE_DISTANCE_DATA :: ID => OBSTACLE_DISTANCE_DATA :: deser (version , payload) . map (Self :: OBSTACLE_DISTANCE) , REQUEST_DATA_STREAM_DATA :: ID => REQUEST_DATA_STREAM_DATA :: deser (version , payload) . map (Self :: REQUEST_DATA_STREAM) , PING_DATA :: ID => PING_DATA :: deser (version , payload) . map (Self :: PING) , GPS_RTK_DATA :: ID => GPS_RTK_DATA :: deser (version , payload) . map (Self :: GPS_RTK) , GLOBAL_POSITION_INT_DATA :: ID => GLOBAL_POSITION_INT_DATA :: deser (version , payload) . map (Self :: GLOBAL_POSITION_INT) , POSITION_TARGET_GLOBAL_INT_DATA :: ID => POSITION_TARGET_GLOBAL_INT_DATA :: deser (version , payload) . map (Self :: POSITION_TARGET_GLOBAL_INT) , HEARTBEAT_DATA :: ID => HEARTBEAT_DATA :: deser (version , payload) . map (Self :: HEARTBEAT) , CAN_FRAME_DATA :: ID => CAN_FRAME_DATA :: deser (version , payload) . map (Self :: CAN_FRAME) , PARAM_EXT_VALUE_DATA :: ID => PARAM_EXT_VALUE_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_VALUE) , GPS_RAW_INT_DATA :: ID => GPS_RAW_INT_DATA :: deser (version , payload) . map (Self :: GPS_RAW_INT) , SERVO_OUTPUT_RAW_DATA :: ID => SERVO_OUTPUT_RAW_DATA :: deser (version , payload) . map (Self :: SERVO_OUTPUT_RAW) , NAV_CONTROLLER_OUTPUT_DATA :: ID => NAV_CONTROLLER_OUTPUT_DATA :: deser (version , payload) . map (Self :: NAV_CONTROLLER_OUTPUT) , MISSION_CLEAR_ALL_DATA :: ID => MISSION_CLEAR_ALL_DATA :: deser (version , payload) . map (Self :: MISSION_CLEAR_ALL) , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => SET_ACTUATOR_CONTROL_TARGET_DATA :: deser (version , payload) . map (Self :: SET_ACTUATOR_CONTROL_TARGET) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => CAMERA_TRACKING_IMAGE_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_TRACKING_IMAGE_STATUS) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_PITCHYAW) , EVENT_DATA :: ID => EVENT_DATA :: deser (version , payload) . map (Self :: EVENT) , VICON_POSITION_ESTIMATE_DATA :: ID => VICON_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VICON_POSITION_ESTIMATE) , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => OPEN_DRONE_ID_ARM_STATUS_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_ARM_STATUS) , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => SET_POSITION_TARGET_LOCAL_NED_DATA :: deser (version , payload) . map (Self :: SET_POSITION_TARGET_LOCAL_NED) , MISSION_ACK_DATA :: ID => MISSION_ACK_DATA :: deser (version , payload) . map (Self :: MISSION_ACK) , CHANGE_OPERATOR_CONTROL_DATA :: ID => CHANGE_OPERATOR_CONTROL_DATA :: deser (version , payload) . map (Self :: CHANGE_OPERATOR_CONTROL) , MANUAL_CONTROL_DATA :: ID => MANUAL_CONTROL_DATA :: deser (version , payload) . map (Self :: MANUAL_CONTROL) , RC_CHANNELS_DATA :: ID => RC_CHANNELS_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET) , HIGH_LATENCY2_DATA :: ID => HIGH_LATENCY2_DATA :: deser (version , payload) . map (Self :: HIGH_LATENCY2) , LOG_ERASE_DATA :: ID => LOG_ERASE_DATA :: deser (version , payload) . map (Self :: LOG_ERASE) , DEBUG_DATA :: ID => DEBUG_DATA :: deser (version , payload) . map (Self :: DEBUG) , STORAGE_INFORMATION_DATA :: ID => STORAGE_INFORMATION_DATA :: deser (version , payload) . map (Self :: STORAGE_INFORMATION) , LINK_NODE_STATUS_DATA :: ID => LINK_NODE_STATUS_DATA :: deser (version , payload) . map (Self :: LINK_NODE_STATUS) , ATTITUDE_QUATERNION_COV_DATA :: ID => ATTITUDE_QUATERNION_COV_DATA :: deser (version , payload) . map (Self :: ATTITUDE_QUATERNION_COV) , LOGGING_ACK_DATA :: ID => LOGGING_ACK_DATA :: deser (version , payload) . map (Self :: LOGGING_ACK) , AUTH_KEY_DATA :: ID => AUTH_KEY_DATA :: deser (version , payload) . map (Self :: AUTH_KEY) , CAMERA_IMAGE_CAPTURED_DATA :: ID => CAMERA_IMAGE_CAPTURED_DATA :: deser (version , payload) . map (Self :: CAMERA_IMAGE_CAPTURED) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_SET_ATTITUDE) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => OPEN_DRONE_ID_OPERATOR_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_OPERATOR_ID) , SYS_STATUS_DATA :: ID => SYS_STATUS_DATA :: deser (version , payload) . map (Self :: SYS_STATUS) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => SET_POSITION_TARGET_GLOBAL_INT_DATA :: deser (version , payload) . map (Self :: SET_POSITION_TARGET_GLOBAL_INT) , SIM_STATE_DATA :: ID => SIM_STATE_DATA :: deser (version , payload) . map (Self :: SIM_STATE) , ADSB_VEHICLE_DATA :: ID => ADSB_VEHICLE_DATA :: deser (version , payload) . map (Self :: ADSB_VEHICLE) , BUTTON_CHANGE_DATA :: ID => BUTTON_CHANGE_DATA :: deser (version , payload) . map (Self :: BUTTON_CHANGE) , ESC_STATUS_DATA :: ID => ESC_STATUS_DATA :: deser (version , payload) . map (Self :: ESC_STATUS) , VISION_POSITION_ESTIMATE_DATA :: ID => VISION_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VISION_POSITION_ESTIMATE) , AUTOPILOT_VERSION_DATA :: ID => AUTOPILOT_VERSION_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_VERSION) , PLAY_TUNE_DATA :: ID => PLAY_TUNE_DATA :: deser (version , payload) . map (Self :: PLAY_TUNE) , PARAM_EXT_REQUEST_LIST_DATA :: ID => PARAM_EXT_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_REQUEST_LIST) , SET_ATTITUDE_TARGET_DATA :: ID => SET_ATTITUDE_TARGET_DATA :: deser (version , payload) . map (Self :: SET_ATTITUDE_TARGET) , LOG_REQUEST_DATA_DATA :: ID => LOG_REQUEST_DATA_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_DATA) , COMMAND_ACK_DATA :: ID => COMMAND_ACK_DATA :: deser (version , payload) . map (Self :: COMMAND_ACK) , GLOBAL_POSITION_INT_COV_DATA :: ID => GLOBAL_POSITION_INT_COV_DATA :: deser (version , payload) . map (Self :: GLOBAL_POSITION_INT_COV) , SCALED_PRESSURE3_DATA :: ID => SCALED_PRESSURE3_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE3) , LOGGING_DATA_ACKED_DATA :: ID => LOGGING_DATA_ACKED_DATA :: deser (version , payload) . map (Self :: LOGGING_DATA_ACKED) , HIGH_LATENCY_DATA :: ID => HIGH_LATENCY_DATA :: deser (version , payload) . map (Self :: HIGH_LATENCY) , VIDEO_STREAM_STATUS_DATA :: ID => VIDEO_STREAM_STATUS_DATA :: deser (version , payload) . map (Self :: VIDEO_STREAM_STATUS) , VFR_HUD_DATA :: ID => VFR_HUD_DATA :: deser (version , payload) . map (Self :: VFR_HUD) , COMMAND_LONG_DATA :: ID => COMMAND_LONG_DATA :: deser (version , payload) . map (Self :: COMMAND_LONG) , GIMBAL_MANAGER_STATUS_DATA :: ID => GIMBAL_MANAGER_STATUS_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_STATUS) , RAW_RPM_DATA :: ID => RAW_RPM_DATA :: deser (version , payload) . map (Self :: RAW_RPM) , WIFI_CONFIG_AP_DATA :: ID => WIFI_CONFIG_AP_DATA :: deser (version , payload) . map (Self :: WIFI_CONFIG_AP) , DEBUG_FLOAT_ARRAY_DATA :: ID => DEBUG_FLOAT_ARRAY_DATA :: deser (version , payload) . map (Self :: DEBUG_FLOAT_ARRAY) , LOCAL_POSITION_NED_COV_DATA :: ID => LOCAL_POSITION_NED_COV_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED_COV) , SMART_BATTERY_INFO_DATA :: ID => SMART_BATTERY_INFO_DATA :: deser (version , payload) . map (Self :: SMART_BATTERY_INFO) , CURRENT_EVENT_SEQUENCE_DATA :: ID => CURRENT_EVENT_SEQUENCE_DATA :: deser (version , payload) . map (Self :: CURRENT_EVENT_SEQUENCE) , ATTITUDE_TARGET_DATA :: ID => ATTITUDE_TARGET_DATA :: deser (version , payload) . map (Self :: ATTITUDE_TARGET) , LOCAL_POSITION_NED_DATA :: ID => LOCAL_POSITION_NED_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED) , RAW_IMU_DATA :: ID => RAW_IMU_DATA :: deser (version , payload) . map (Self :: RAW_IMU) , HIL_ACTUATOR_CONTROLS_DATA :: ID => HIL_ACTUATOR_CONTROLS_DATA :: deser (version , payload) . map (Self :: HIL_ACTUATOR_CONTROLS) , SERIAL_CONTROL_DATA :: ID => SERIAL_CONTROL_DATA :: deser (version , payload) . map (Self :: SERIAL_CONTROL) , MISSION_REQUEST_INT_DATA :: ID => MISSION_REQUEST_INT_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_INT) , BATTERY_STATUS_DATA :: ID => BATTERY_STATUS_DATA :: deser (version , payload) . map (Self :: BATTERY_STATUS) , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => OPEN_DRONE_ID_BASIC_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_BASIC_ID) , OPEN_DRONE_ID_LOCATION_DATA :: ID => OPEN_DRONE_ID_LOCATION_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_LOCATION) , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => SET_GPS_GLOBAL_ORIGIN_DATA :: deser (version , payload) . map (Self :: SET_GPS_GLOBAL_ORIGIN) , COMMAND_CANCEL_DATA :: ID => COMMAND_CANCEL_DATA :: deser (version , payload) . map (Self :: COMMAND_CANCEL) , GPS2_RAW_DATA :: ID => GPS2_RAW_DATA :: deser (version , payload) . map (Self :: GPS2_RAW) , WHEEL_DISTANCE_DATA :: ID => WHEEL_DISTANCE_DATA :: deser (version , payload) . map (Self :: WHEEL_DISTANCE) , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => DATA_TRANSMISSION_HANDSHAKE_DATA :: deser (version , payload) . map (Self :: DATA_TRANSMISSION_HANDSHAKE) , FENCE_STATUS_DATA :: ID => FENCE_STATUS_DATA :: deser (version , payload) . map (Self :: FENCE_STATUS) , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => MISSION_WRITE_PARTIAL_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_WRITE_PARTIAL_LIST) , MISSION_REQUEST_DATA :: ID => MISSION_REQUEST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST) , GIMBAL_MANAGER_INFORMATION_DATA :: ID => GIMBAL_MANAGER_INFORMATION_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_INFORMATION) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_ATTITUDE_STATUS) , LANDING_TARGET_DATA :: ID => LANDING_TARGET_DATA :: deser (version , payload) . map (Self :: LANDING_TARGET) , AIS_VESSEL_DATA :: ID => AIS_VESSEL_DATA :: deser (version , payload) . map (Self :: AIS_VESSEL) , HIL_GPS_DATA :: ID => HIL_GPS_DATA :: deser (version , payload) . map (Self :: HIL_GPS) , LOG_ENTRY_DATA :: ID => LOG_ENTRY_DATA :: deser (version , payload) . map (Self :: LOG_ENTRY) , SCALED_PRESSURE_DATA :: ID => SCALED_PRESSURE_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE) , _ => { Err (:: mavlink_core :: error :: ParserError :: UnknownMessage { id }) } , } } fn message_name (& self) -> & 'static str { match self { Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (..) => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: NAME , Self :: ORBIT_EXECUTION_STATUS (..) => ORBIT_EXECUTION_STATUS_DATA :: NAME , Self :: REQUEST_EVENT (..) => REQUEST_EVENT_DATA :: NAME , Self :: SET_MODE (..) => SET_MODE_DATA :: NAME , Self :: CANFD_FRAME (..) => CANFD_FRAME_DATA :: NAME , Self :: VIDEO_STREAM_INFORMATION (..) => VIDEO_STREAM_INFORMATION_DATA :: NAME , Self :: SAFETY_SET_ALLOWED_AREA (..) => SAFETY_SET_ALLOWED_AREA_DATA :: NAME , Self :: COMMAND_INT (..) => COMMAND_INT_DATA :: NAME , Self :: RC_CHANNELS_OVERRIDE (..) => RC_CHANNELS_OVERRIDE_DATA :: NAME , Self :: SCALED_IMU2 (..) => SCALED_IMU2_DATA :: NAME , Self :: ACTUATOR_CONTROL_TARGET (..) => ACTUATOR_CONTROL_TARGET_DATA :: NAME , Self :: DATA_STREAM (..) => DATA_STREAM_DATA :: NAME , Self :: MISSION_ITEM_REACHED (..) => MISSION_ITEM_REACHED_DATA :: NAME , Self :: HIL_RC_INPUTS_RAW (..) => HIL_RC_INPUTS_RAW_DATA :: NAME , Self :: HIGHRES_IMU (..) => HIGHRES_IMU_DATA :: NAME , Self :: FOLLOW_TARGET (..) => FOLLOW_TARGET_DATA :: NAME , Self :: STATUSTEXT (..) => STATUSTEXT_DATA :: NAME , Self :: ACTUATOR_OUTPUT_STATUS (..) => ACTUATOR_OUTPUT_STATUS_DATA :: NAME , Self :: TRAJECTORY_REPRESENTATION_BEZIER (..) => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: NAME , Self :: CAMERA_SETTINGS (..) => CAMERA_SETTINGS_DATA :: NAME , Self :: GLOBAL_VISION_POSITION_ESTIMATE (..) => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: NAME , Self :: OPTICAL_FLOW_RAD (..) => OPTICAL_FLOW_RAD_DATA :: NAME , Self :: NAMED_VALUE_FLOAT (..) => NAMED_VALUE_FLOAT_DATA :: NAME , Self :: RESOURCE_REQUEST (..) => RESOURCE_REQUEST_DATA :: NAME , Self :: HIL_CONTROLS (..) => HIL_CONTROLS_DATA :: NAME , Self :: GPS_INPUT (..) => GPS_INPUT_DATA :: NAME , Self :: CAMERA_TRACKING_GEO_STATUS (..) => CAMERA_TRACKING_GEO_STATUS_DATA :: NAME , Self :: HOME_POSITION (..) => HOME_POSITION_DATA :: NAME , Self :: PARAM_SET (..) => PARAM_SET_DATA :: NAME , Self :: UAVCAN_NODE_STATUS (..) => UAVCAN_NODE_STATUS_DATA :: NAME , Self :: ONBOARD_COMPUTER_STATUS (..) => ONBOARD_COMPUTER_STATUS_DATA :: NAME , Self :: ATTITUDE_QUATERNION (..) => ATTITUDE_QUATERNION_DATA :: NAME , Self :: MISSION_REQUEST_PARTIAL_LIST (..) => MISSION_REQUEST_PARTIAL_LIST_DATA :: NAME , Self :: MISSION_CURRENT (..) => MISSION_CURRENT_DATA :: NAME , Self :: RADIO_STATUS (..) => RADIO_STATUS_DATA :: NAME , Self :: HIL_STATE (..) => HIL_STATE_DATA :: NAME , Self :: TERRAIN_DATA (..) => TERRAIN_DATA_DATA :: NAME , Self :: SCALED_PRESSURE2 (..) => SCALED_PRESSURE2_DATA :: NAME , Self :: ATT_POS_MOCAP (..) => ATT_POS_MOCAP_DATA :: NAME , Self :: GPS_STATUS (..) => GPS_STATUS_DATA :: NAME , Self :: MISSION_ITEM (..) => MISSION_ITEM_DATA :: NAME , Self :: VISION_SPEED_ESTIMATE (..) => VISION_SPEED_ESTIMATE_DATA :: NAME , Self :: SCALED_IMU (..) => SCALED_IMU_DATA :: NAME , Self :: MISSION_COUNT (..) => MISSION_COUNT_DATA :: NAME , Self :: PARAM_MAP_RC (..) => PARAM_MAP_RC_DATA :: NAME , Self :: LOG_DATA (..) => LOG_DATA_DATA :: NAME , Self :: EXTENDED_SYS_STATE (..) => EXTENDED_SYS_STATE_DATA :: NAME , Self :: SETUP_SIGNING (..) => SETUP_SIGNING_DATA :: NAME , Self :: RC_CHANNELS_RAW (..) => RC_CHANNELS_RAW_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_ATTITUDE (..) => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: NAME , Self :: UAVCAN_NODE_INFO (..) => UAVCAN_NODE_INFO_DATA :: NAME , Self :: COMPONENT_METADATA (..) => COMPONENT_METADATA_DATA :: NAME , Self :: OPEN_DRONE_ID_AUTHENTICATION (..) => OPEN_DRONE_ID_AUTHENTICATION_DATA :: NAME , Self :: SYSTEM_TIME (..) => SYSTEM_TIME_DATA :: NAME , Self :: PARAM_VALUE (..) => PARAM_VALUE_DATA :: NAME , Self :: MANUAL_SETPOINT (..) => MANUAL_SETPOINT_DATA :: NAME , Self :: MISSION_SET_CURRENT (..) => MISSION_SET_CURRENT_DATA :: NAME , Self :: OPTICAL_FLOW (..) => OPTICAL_FLOW_DATA :: NAME , Self :: POWER_STATUS (..) => POWER_STATUS_DATA :: NAME , Self :: TERRAIN_REQUEST (..) => TERRAIN_REQUEST_DATA :: NAME , Self :: PARAM_REQUEST_READ (..) => PARAM_REQUEST_READ_DATA :: NAME , Self :: TERRAIN_REPORT (..) => TERRAIN_REPORT_DATA :: NAME , Self :: GPS_GLOBAL_ORIGIN (..) => GPS_GLOBAL_ORIGIN_DATA :: NAME , Self :: HIL_STATE_QUATERNION (..) => HIL_STATE_QUATERNION_DATA :: NAME , Self :: TERRAIN_CHECK (..) => TERRAIN_CHECK_DATA :: NAME , Self :: MISSION_REQUEST_LIST (..) => MISSION_REQUEST_LIST_DATA :: NAME , Self :: EFI_STATUS (..) => EFI_STATUS_DATA :: NAME , Self :: SET_HOME_POSITION (..) => SET_HOME_POSITION_DATA :: NAME , Self :: FLIGHT_INFORMATION (..) => FLIGHT_INFORMATION_DATA :: NAME , Self :: LOGGING_DATA (..) => LOGGING_DATA_DATA :: NAME , Self :: PARAM_EXT_SET (..) => PARAM_EXT_SET_DATA :: NAME , Self :: MOUNT_ORIENTATION (..) => MOUNT_ORIENTATION_DATA :: NAME , Self :: RC_CHANNELS_SCALED (..) => RC_CHANNELS_SCALED_DATA :: NAME , Self :: GPS2_RTK (..) => GPS2_RTK_DATA :: NAME , Self :: ATTITUDE (..) => ATTITUDE_DATA :: NAME , Self :: ESC_INFO (..) => ESC_INFO_DATA :: NAME , Self :: CELLULAR_STATUS (..) => CELLULAR_STATUS_DATA :: NAME , Self :: UTM_GLOBAL_POSITION (..) => UTM_GLOBAL_POSITION_DATA :: NAME , Self :: TUNNEL (..) => TUNNEL_DATA :: NAME , Self :: ENCAPSULATED_DATA (..) => ENCAPSULATED_DATA_DATA :: NAME , Self :: MEMORY_VECT (..) => MEMORY_VECT_DATA :: NAME , Self :: PLAY_TUNE_V2 (..) => PLAY_TUNE_V2_DATA :: NAME , Self :: HYGROMETER_SENSOR (..) => HYGROMETER_SENSOR_DATA :: NAME , Self :: CELLULAR_CONFIG (..) => CELLULAR_CONFIG_DATA :: NAME , Self :: MAG_CAL_REPORT (..) => MAG_CAL_REPORT_DATA :: NAME , Self :: TIMESYNC (..) => TIMESYNC_DATA :: NAME , Self :: COMPONENT_INFORMATION (..) => COMPONENT_INFORMATION_DATA :: NAME , Self :: NAMED_VALUE_INT (..) => NAMED_VALUE_INT_DATA :: NAME , Self :: GIMBAL_DEVICE_INFORMATION (..) => GIMBAL_DEVICE_INFORMATION_DATA :: NAME , Self :: SAFETY_ALLOWED_AREA (..) => SAFETY_ALLOWED_AREA_DATA :: NAME , Self :: ODOMETRY (..) => ODOMETRY_DATA :: NAME , Self :: OPEN_DRONE_ID_SYSTEM (..) => OPEN_DRONE_ID_SYSTEM_DATA :: NAME , Self :: ALTITUDE (..) => ALTITUDE_DATA :: NAME , Self :: PARAM_EXT_ACK (..) => PARAM_EXT_ACK_DATA :: NAME , Self :: RESPONSE_EVENT_ERROR (..) => RESPONSE_EVENT_ERROR_DATA :: NAME , Self :: RAW_PRESSURE (..) => RAW_PRESSURE_DATA :: NAME , Self :: MISSION_ITEM_INT (..) => MISSION_ITEM_INT_DATA :: NAME , Self :: SCALED_IMU3 (..) => SCALED_IMU3_DATA :: NAME , Self :: MESSAGE_INTERVAL (..) => MESSAGE_INTERVAL_DATA :: NAME , Self :: DEBUG_VECT (..) => DEBUG_VECT_DATA :: NAME , Self :: CAMERA_CAPTURE_STATUS (..) => CAMERA_CAPTURE_STATUS_DATA :: NAME , Self :: LOG_REQUEST_END (..) => LOG_REQUEST_END_DATA :: NAME , Self :: FILE_TRANSFER_PROTOCOL (..) => FILE_TRANSFER_PROTOCOL_DATA :: NAME , Self :: PARAM_EXT_REQUEST_READ (..) => PARAM_EXT_REQUEST_READ_DATA :: NAME , Self :: WINCH_STATUS (..) => WINCH_STATUS_DATA :: NAME , Self :: OPEN_DRONE_ID_SELF_ID (..) => OPEN_DRONE_ID_SELF_ID_DATA :: NAME , Self :: ISBD_LINK_STATUS (..) => ISBD_LINK_STATUS_DATA :: NAME , Self :: TIME_ESTIMATE_TO_TARGET (..) => TIME_ESTIMATE_TO_TARGET_DATA :: NAME , Self :: CAN_FILTER_MODIFY (..) => CAN_FILTER_MODIFY_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (..) => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: NAME , Self :: OPEN_DRONE_ID_MESSAGE_PACK (..) => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: NAME , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (..) => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: NAME , Self :: GENERATOR_STATUS (..) => GENERATOR_STATUS_DATA :: NAME , Self :: ESTIMATOR_STATUS (..) => ESTIMATOR_STATUS_DATA :: NAME , Self :: GPS_RTCM_DATA (..) => GPS_RTCM_DATA_DATA :: NAME , Self :: CHANGE_OPERATOR_CONTROL_ACK (..) => CHANGE_OPERATOR_CONTROL_ACK_DATA :: NAME , Self :: POSITION_TARGET_LOCAL_NED (..) => POSITION_TARGET_LOCAL_NED_DATA :: NAME , Self :: HIL_SENSOR (..) => HIL_SENSOR_DATA :: NAME , Self :: DISTANCE_SENSOR (..) => DISTANCE_SENSOR_DATA :: NAME , Self :: VIBRATION (..) => VIBRATION_DATA :: NAME , Self :: CAMERA_TRIGGER (..) => CAMERA_TRIGGER_DATA :: NAME , Self :: LOG_REQUEST_LIST (..) => LOG_REQUEST_LIST_DATA :: NAME , Self :: PROTOCOL_VERSION (..) => PROTOCOL_VERSION_DATA :: NAME , Self :: CONTROL_SYSTEM_STATE (..) => CONTROL_SYSTEM_STATE_DATA :: NAME , Self :: CAMERA_FOV_STATUS (..) => CAMERA_FOV_STATUS_DATA :: NAME , Self :: SUPPORTED_TUNES (..) => SUPPORTED_TUNES_DATA :: NAME , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (..) => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: NAME , Self :: WIND_COV (..) => WIND_COV_DATA :: NAME , Self :: V2_EXTENSION (..) => V2_EXTENSION_DATA :: NAME , Self :: CAMERA_INFORMATION (..) => CAMERA_INFORMATION_DATA :: NAME , Self :: COLLISION (..) => COLLISION_DATA :: NAME , Self :: PARAM_REQUEST_LIST (..) => PARAM_REQUEST_LIST_DATA :: NAME , Self :: HIL_OPTICAL_FLOW (..) => HIL_OPTICAL_FLOW_DATA :: NAME , Self :: GPS_INJECT_DATA (..) => GPS_INJECT_DATA_DATA :: NAME , Self :: OBSTACLE_DISTANCE (..) => OBSTACLE_DISTANCE_DATA :: NAME , Self :: REQUEST_DATA_STREAM (..) => REQUEST_DATA_STREAM_DATA :: NAME , Self :: PING (..) => PING_DATA :: NAME , Self :: GPS_RTK (..) => GPS_RTK_DATA :: NAME , Self :: GLOBAL_POSITION_INT (..) => GLOBAL_POSITION_INT_DATA :: NAME , Self :: POSITION_TARGET_GLOBAL_INT (..) => POSITION_TARGET_GLOBAL_INT_DATA :: NAME , Self :: HEARTBEAT (..) => HEARTBEAT_DATA :: NAME , Self :: CAN_FRAME (..) => CAN_FRAME_DATA :: NAME , Self :: PARAM_EXT_VALUE (..) => PARAM_EXT_VALUE_DATA :: NAME , Self :: GPS_RAW_INT (..) => GPS_RAW_INT_DATA :: NAME , Self :: SERVO_OUTPUT_RAW (..) => SERVO_OUTPUT_RAW_DATA :: NAME , Self :: NAV_CONTROLLER_OUTPUT (..) => NAV_CONTROLLER_OUTPUT_DATA :: NAME , Self :: MISSION_CLEAR_ALL (..) => MISSION_CLEAR_ALL_DATA :: NAME , Self :: SET_ACTUATOR_CONTROL_TARGET (..) => SET_ACTUATOR_CONTROL_TARGET_DATA :: NAME , Self :: CAMERA_TRACKING_IMAGE_STATUS (..) => CAMERA_TRACKING_IMAGE_STATUS_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_PITCHYAW (..) => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: NAME , Self :: EVENT (..) => EVENT_DATA :: NAME , Self :: VICON_POSITION_ESTIMATE (..) => VICON_POSITION_ESTIMATE_DATA :: NAME , Self :: OPEN_DRONE_ID_ARM_STATUS (..) => OPEN_DRONE_ID_ARM_STATUS_DATA :: NAME , Self :: SET_POSITION_TARGET_LOCAL_NED (..) => SET_POSITION_TARGET_LOCAL_NED_DATA :: NAME , Self :: MISSION_ACK (..) => MISSION_ACK_DATA :: NAME , Self :: CHANGE_OPERATOR_CONTROL (..) => CHANGE_OPERATOR_CONTROL_DATA :: NAME , Self :: MANUAL_CONTROL (..) => MANUAL_CONTROL_DATA :: NAME , Self :: RC_CHANNELS (..) => RC_CHANNELS_DATA :: NAME , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (..) => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: NAME , Self :: HIGH_LATENCY2 (..) => HIGH_LATENCY2_DATA :: NAME , Self :: LOG_ERASE (..) => LOG_ERASE_DATA :: NAME , Self :: DEBUG (..) => DEBUG_DATA :: NAME , Self :: STORAGE_INFORMATION (..) => STORAGE_INFORMATION_DATA :: NAME , Self :: LINK_NODE_STATUS (..) => LINK_NODE_STATUS_DATA :: NAME , Self :: ATTITUDE_QUATERNION_COV (..) => ATTITUDE_QUATERNION_COV_DATA :: NAME , Self :: LOGGING_ACK (..) => LOGGING_ACK_DATA :: NAME , Self :: AUTH_KEY (..) => AUTH_KEY_DATA :: NAME , Self :: CAMERA_IMAGE_CAPTURED (..) => CAMERA_IMAGE_CAPTURED_DATA :: NAME , Self :: GIMBAL_DEVICE_SET_ATTITUDE (..) => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: NAME , Self :: OPEN_DRONE_ID_OPERATOR_ID (..) => OPEN_DRONE_ID_OPERATOR_ID_DATA :: NAME , Self :: SYS_STATUS (..) => SYS_STATUS_DATA :: NAME , Self :: SET_POSITION_TARGET_GLOBAL_INT (..) => SET_POSITION_TARGET_GLOBAL_INT_DATA :: NAME , Self :: SIM_STATE (..) => SIM_STATE_DATA :: NAME , Self :: ADSB_VEHICLE (..) => ADSB_VEHICLE_DATA :: NAME , Self :: BUTTON_CHANGE (..) => BUTTON_CHANGE_DATA :: NAME , Self :: ESC_STATUS (..) => ESC_STATUS_DATA :: NAME , Self :: VISION_POSITION_ESTIMATE (..) => VISION_POSITION_ESTIMATE_DATA :: NAME , Self :: AUTOPILOT_VERSION (..) => AUTOPILOT_VERSION_DATA :: NAME , Self :: PLAY_TUNE (..) => PLAY_TUNE_DATA :: NAME , Self :: PARAM_EXT_REQUEST_LIST (..) => PARAM_EXT_REQUEST_LIST_DATA :: NAME , Self :: SET_ATTITUDE_TARGET (..) => SET_ATTITUDE_TARGET_DATA :: NAME , Self :: LOG_REQUEST_DATA (..) => LOG_REQUEST_DATA_DATA :: NAME , Self :: COMMAND_ACK (..) => COMMAND_ACK_DATA :: NAME , Self :: GLOBAL_POSITION_INT_COV (..) => GLOBAL_POSITION_INT_COV_DATA :: NAME , Self :: SCALED_PRESSURE3 (..) => SCALED_PRESSURE3_DATA :: NAME , Self :: LOGGING_DATA_ACKED (..) => LOGGING_DATA_ACKED_DATA :: NAME , Self :: HIGH_LATENCY (..) => HIGH_LATENCY_DATA :: NAME , Self :: VIDEO_STREAM_STATUS (..) => VIDEO_STREAM_STATUS_DATA :: NAME , Self :: VFR_HUD (..) => VFR_HUD_DATA :: NAME , Self :: COMMAND_LONG (..) => COMMAND_LONG_DATA :: NAME , Self :: GIMBAL_MANAGER_STATUS (..) => GIMBAL_MANAGER_STATUS_DATA :: NAME , Self :: RAW_RPM (..) => RAW_RPM_DATA :: NAME , Self :: WIFI_CONFIG_AP (..) => WIFI_CONFIG_AP_DATA :: NAME , Self :: DEBUG_FLOAT_ARRAY (..) => DEBUG_FLOAT_ARRAY_DATA :: NAME , Self :: LOCAL_POSITION_NED_COV (..) => LOCAL_POSITION_NED_COV_DATA :: NAME , Self :: SMART_BATTERY_INFO (..) => SMART_BATTERY_INFO_DATA :: NAME , Self :: CURRENT_EVENT_SEQUENCE (..) => CURRENT_EVENT_SEQUENCE_DATA :: NAME , Self :: ATTITUDE_TARGET (..) => ATTITUDE_TARGET_DATA :: NAME , Self :: LOCAL_POSITION_NED (..) => LOCAL_POSITION_NED_DATA :: NAME , Self :: RAW_IMU (..) => RAW_IMU_DATA :: NAME , Self :: HIL_ACTUATOR_CONTROLS (..) => HIL_ACTUATOR_CONTROLS_DATA :: NAME , Self :: SERIAL_CONTROL (..) => SERIAL_CONTROL_DATA :: NAME , Self :: MISSION_REQUEST_INT (..) => MISSION_REQUEST_INT_DATA :: NAME , Self :: BATTERY_STATUS (..) => BATTERY_STATUS_DATA :: NAME , Self :: OPEN_DRONE_ID_BASIC_ID (..) => OPEN_DRONE_ID_BASIC_ID_DATA :: NAME , Self :: OPEN_DRONE_ID_LOCATION (..) => OPEN_DRONE_ID_LOCATION_DATA :: NAME , Self :: SET_GPS_GLOBAL_ORIGIN (..) => SET_GPS_GLOBAL_ORIGIN_DATA :: NAME , Self :: COMMAND_CANCEL (..) => COMMAND_CANCEL_DATA :: NAME , Self :: GPS2_RAW (..) => GPS2_RAW_DATA :: NAME , Self :: WHEEL_DISTANCE (..) => WHEEL_DISTANCE_DATA :: NAME , Self :: DATA_TRANSMISSION_HANDSHAKE (..) => DATA_TRANSMISSION_HANDSHAKE_DATA :: NAME , Self :: FENCE_STATUS (..) => FENCE_STATUS_DATA :: NAME , Self :: MISSION_WRITE_PARTIAL_LIST (..) => MISSION_WRITE_PARTIAL_LIST_DATA :: NAME , Self :: MISSION_REQUEST (..) => MISSION_REQUEST_DATA :: NAME , Self :: GIMBAL_MANAGER_INFORMATION (..) => GIMBAL_MANAGER_INFORMATION_DATA :: NAME , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (..) => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: NAME , Self :: LANDING_TARGET (..) => LANDING_TARGET_DATA :: NAME , Self :: AIS_VESSEL (..) => AIS_VESSEL_DATA :: NAME , Self :: HIL_GPS (..) => HIL_GPS_DATA :: NAME , Self :: LOG_ENTRY (..) => LOG_ENTRY_DATA :: NAME , Self :: SCALED_PRESSURE (..) => SCALED_PRESSURE_DATA :: NAME , } } fn message_id (& self) -> u32 { match self { Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (..) => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID , Self :: ORBIT_EXECUTION_STATUS (..) => ORBIT_EXECUTION_STATUS_DATA :: ID , Self :: REQUEST_EVENT (..) => REQUEST_EVENT_DATA :: ID , Self :: SET_MODE (..) => SET_MODE_DATA :: ID , Self :: CANFD_FRAME (..) => CANFD_FRAME_DATA :: ID , Self :: VIDEO_STREAM_INFORMATION (..) => VIDEO_STREAM_INFORMATION_DATA :: ID , Self :: SAFETY_SET_ALLOWED_AREA (..) => SAFETY_SET_ALLOWED_AREA_DATA :: ID , Self :: COMMAND_INT (..) => COMMAND_INT_DATA :: ID , Self :: RC_CHANNELS_OVERRIDE (..) => RC_CHANNELS_OVERRIDE_DATA :: ID , Self :: SCALED_IMU2 (..) => SCALED_IMU2_DATA :: ID , Self :: ACTUATOR_CONTROL_TARGET (..) => ACTUATOR_CONTROL_TARGET_DATA :: ID , Self :: DATA_STREAM (..) => DATA_STREAM_DATA :: ID , Self :: MISSION_ITEM_REACHED (..) => MISSION_ITEM_REACHED_DATA :: ID , Self :: HIL_RC_INPUTS_RAW (..) => HIL_RC_INPUTS_RAW_DATA :: ID , Self :: HIGHRES_IMU (..) => HIGHRES_IMU_DATA :: ID , Self :: FOLLOW_TARGET (..) => FOLLOW_TARGET_DATA :: ID , Self :: STATUSTEXT (..) => STATUSTEXT_DATA :: ID , Self :: ACTUATOR_OUTPUT_STATUS (..) => ACTUATOR_OUTPUT_STATUS_DATA :: ID , Self :: TRAJECTORY_REPRESENTATION_BEZIER (..) => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID , Self :: CAMERA_SETTINGS (..) => CAMERA_SETTINGS_DATA :: ID , Self :: GLOBAL_VISION_POSITION_ESTIMATE (..) => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID , Self :: OPTICAL_FLOW_RAD (..) => OPTICAL_FLOW_RAD_DATA :: ID , Self :: NAMED_VALUE_FLOAT (..) => NAMED_VALUE_FLOAT_DATA :: ID , Self :: RESOURCE_REQUEST (..) => RESOURCE_REQUEST_DATA :: ID , Self :: HIL_CONTROLS (..) => HIL_CONTROLS_DATA :: ID , Self :: GPS_INPUT (..) => GPS_INPUT_DATA :: ID , Self :: CAMERA_TRACKING_GEO_STATUS (..) => CAMERA_TRACKING_GEO_STATUS_DATA :: ID , Self :: HOME_POSITION (..) => HOME_POSITION_DATA :: ID , Self :: PARAM_SET (..) => PARAM_SET_DATA :: ID , Self :: UAVCAN_NODE_STATUS (..) => UAVCAN_NODE_STATUS_DATA :: ID , Self :: ONBOARD_COMPUTER_STATUS (..) => ONBOARD_COMPUTER_STATUS_DATA :: ID , Self :: ATTITUDE_QUATERNION (..) => ATTITUDE_QUATERNION_DATA :: ID , Self :: MISSION_REQUEST_PARTIAL_LIST (..) => MISSION_REQUEST_PARTIAL_LIST_DATA :: ID , Self :: MISSION_CURRENT (..) => MISSION_CURRENT_DATA :: ID , Self :: RADIO_STATUS (..) => RADIO_STATUS_DATA :: ID , Self :: HIL_STATE (..) => HIL_STATE_DATA :: ID , Self :: TERRAIN_DATA (..) => TERRAIN_DATA_DATA :: ID , Self :: SCALED_PRESSURE2 (..) => SCALED_PRESSURE2_DATA :: ID , Self :: ATT_POS_MOCAP (..) => ATT_POS_MOCAP_DATA :: ID , Self :: GPS_STATUS (..) => GPS_STATUS_DATA :: ID , Self :: MISSION_ITEM (..) => MISSION_ITEM_DATA :: ID , Self :: VISION_SPEED_ESTIMATE (..) => VISION_SPEED_ESTIMATE_DATA :: ID , Self :: SCALED_IMU (..) => SCALED_IMU_DATA :: ID , Self :: MISSION_COUNT (..) => MISSION_COUNT_DATA :: ID , Self :: PARAM_MAP_RC (..) => PARAM_MAP_RC_DATA :: ID , Self :: LOG_DATA (..) => LOG_DATA_DATA :: ID , Self :: EXTENDED_SYS_STATE (..) => EXTENDED_SYS_STATE_DATA :: ID , Self :: SETUP_SIGNING (..) => SETUP_SIGNING_DATA :: ID , Self :: RC_CHANNELS_RAW (..) => RC_CHANNELS_RAW_DATA :: ID , Self :: GIMBAL_MANAGER_SET_ATTITUDE (..) => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID , Self :: UAVCAN_NODE_INFO (..) => UAVCAN_NODE_INFO_DATA :: ID , Self :: COMPONENT_METADATA (..) => COMPONENT_METADATA_DATA :: ID , Self :: OPEN_DRONE_ID_AUTHENTICATION (..) => OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID , Self :: SYSTEM_TIME (..) => SYSTEM_TIME_DATA :: ID , Self :: PARAM_VALUE (..) => PARAM_VALUE_DATA :: ID , Self :: MANUAL_SETPOINT (..) => MANUAL_SETPOINT_DATA :: ID , Self :: MISSION_SET_CURRENT (..) => MISSION_SET_CURRENT_DATA :: ID , Self :: OPTICAL_FLOW (..) => OPTICAL_FLOW_DATA :: ID , Self :: POWER_STATUS (..) => POWER_STATUS_DATA :: ID , Self :: TERRAIN_REQUEST (..) => TERRAIN_REQUEST_DATA :: ID , Self :: PARAM_REQUEST_READ (..) => PARAM_REQUEST_READ_DATA :: ID , Self :: TERRAIN_REPORT (..) => TERRAIN_REPORT_DATA :: ID , Self :: GPS_GLOBAL_ORIGIN (..) => GPS_GLOBAL_ORIGIN_DATA :: ID , Self :: HIL_STATE_QUATERNION (..) => HIL_STATE_QUATERNION_DATA :: ID , Self :: TERRAIN_CHECK (..) => TERRAIN_CHECK_DATA :: ID , Self :: MISSION_REQUEST_LIST (..) => MISSION_REQUEST_LIST_DATA :: ID , Self :: EFI_STATUS (..) => EFI_STATUS_DATA :: ID , Self :: SET_HOME_POSITION (..) => SET_HOME_POSITION_DATA :: ID , Self :: FLIGHT_INFORMATION (..) => FLIGHT_INFORMATION_DATA :: ID , Self :: LOGGING_DATA (..) => LOGGING_DATA_DATA :: ID , Self :: PARAM_EXT_SET (..) => PARAM_EXT_SET_DATA :: ID , Self :: MOUNT_ORIENTATION (..) => MOUNT_ORIENTATION_DATA :: ID , Self :: RC_CHANNELS_SCALED (..) => RC_CHANNELS_SCALED_DATA :: ID , Self :: GPS2_RTK (..) => GPS2_RTK_DATA :: ID , Self :: ATTITUDE (..) => ATTITUDE_DATA :: ID , Self :: ESC_INFO (..) => ESC_INFO_DATA :: ID , Self :: CELLULAR_STATUS (..) => CELLULAR_STATUS_DATA :: ID , Self :: UTM_GLOBAL_POSITION (..) => UTM_GLOBAL_POSITION_DATA :: ID , Self :: TUNNEL (..) => TUNNEL_DATA :: ID , Self :: ENCAPSULATED_DATA (..) => ENCAPSULATED_DATA_DATA :: ID , Self :: MEMORY_VECT (..) => MEMORY_VECT_DATA :: ID , Self :: PLAY_TUNE_V2 (..) => PLAY_TUNE_V2_DATA :: ID , Self :: HYGROMETER_SENSOR (..) => HYGROMETER_SENSOR_DATA :: ID , Self :: CELLULAR_CONFIG (..) => CELLULAR_CONFIG_DATA :: ID , Self :: MAG_CAL_REPORT (..) => MAG_CAL_REPORT_DATA :: ID , Self :: TIMESYNC (..) => TIMESYNC_DATA :: ID , Self :: COMPONENT_INFORMATION (..) => COMPONENT_INFORMATION_DATA :: ID , Self :: NAMED_VALUE_INT (..) => NAMED_VALUE_INT_DATA :: ID , Self :: GIMBAL_DEVICE_INFORMATION (..) => GIMBAL_DEVICE_INFORMATION_DATA :: ID , Self :: SAFETY_ALLOWED_AREA (..) => SAFETY_ALLOWED_AREA_DATA :: ID , Self :: ODOMETRY (..) => ODOMETRY_DATA :: ID , Self :: OPEN_DRONE_ID_SYSTEM (..) => OPEN_DRONE_ID_SYSTEM_DATA :: ID , Self :: ALTITUDE (..) => ALTITUDE_DATA :: ID , Self :: PARAM_EXT_ACK (..) => PARAM_EXT_ACK_DATA :: ID , Self :: RESPONSE_EVENT_ERROR (..) => RESPONSE_EVENT_ERROR_DATA :: ID , Self :: RAW_PRESSURE (..) => RAW_PRESSURE_DATA :: ID , Self :: MISSION_ITEM_INT (..) => MISSION_ITEM_INT_DATA :: ID , Self :: SCALED_IMU3 (..) => SCALED_IMU3_DATA :: ID , Self :: MESSAGE_INTERVAL (..) => MESSAGE_INTERVAL_DATA :: ID , Self :: DEBUG_VECT (..) => DEBUG_VECT_DATA :: ID , Self :: CAMERA_CAPTURE_STATUS (..) => CAMERA_CAPTURE_STATUS_DATA :: ID , Self :: LOG_REQUEST_END (..) => LOG_REQUEST_END_DATA :: ID , Self :: FILE_TRANSFER_PROTOCOL (..) => FILE_TRANSFER_PROTOCOL_DATA :: ID , Self :: PARAM_EXT_REQUEST_READ (..) => PARAM_EXT_REQUEST_READ_DATA :: ID , Self :: WINCH_STATUS (..) => WINCH_STATUS_DATA :: ID , Self :: OPEN_DRONE_ID_SELF_ID (..) => OPEN_DRONE_ID_SELF_ID_DATA :: ID , Self :: ISBD_LINK_STATUS (..) => ISBD_LINK_STATUS_DATA :: ID , Self :: TIME_ESTIMATE_TO_TARGET (..) => TIME_ESTIMATE_TO_TARGET_DATA :: ID , Self :: CAN_FILTER_MODIFY (..) => CAN_FILTER_MODIFY_DATA :: ID , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (..) => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID , Self :: OPEN_DRONE_ID_MESSAGE_PACK (..) => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (..) => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID , Self :: GENERATOR_STATUS (..) => GENERATOR_STATUS_DATA :: ID , Self :: ESTIMATOR_STATUS (..) => ESTIMATOR_STATUS_DATA :: ID , Self :: GPS_RTCM_DATA (..) => GPS_RTCM_DATA_DATA :: ID , Self :: CHANGE_OPERATOR_CONTROL_ACK (..) => CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID , Self :: POSITION_TARGET_LOCAL_NED (..) => POSITION_TARGET_LOCAL_NED_DATA :: ID , Self :: HIL_SENSOR (..) => HIL_SENSOR_DATA :: ID , Self :: DISTANCE_SENSOR (..) => DISTANCE_SENSOR_DATA :: ID , Self :: VIBRATION (..) => VIBRATION_DATA :: ID , Self :: CAMERA_TRIGGER (..) => CAMERA_TRIGGER_DATA :: ID , Self :: LOG_REQUEST_LIST (..) => LOG_REQUEST_LIST_DATA :: ID , Self :: PROTOCOL_VERSION (..) => PROTOCOL_VERSION_DATA :: ID , Self :: CONTROL_SYSTEM_STATE (..) => CONTROL_SYSTEM_STATE_DATA :: ID , Self :: CAMERA_FOV_STATUS (..) => CAMERA_FOV_STATUS_DATA :: ID , Self :: SUPPORTED_TUNES (..) => SUPPORTED_TUNES_DATA :: ID , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (..) => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID , Self :: WIND_COV (..) => WIND_COV_DATA :: ID , Self :: V2_EXTENSION (..) => V2_EXTENSION_DATA :: ID , Self :: CAMERA_INFORMATION (..) => CAMERA_INFORMATION_DATA :: ID , Self :: COLLISION (..) => COLLISION_DATA :: ID , Self :: PARAM_REQUEST_LIST (..) => PARAM_REQUEST_LIST_DATA :: ID , Self :: HIL_OPTICAL_FLOW (..) => HIL_OPTICAL_FLOW_DATA :: ID , Self :: GPS_INJECT_DATA (..) => GPS_INJECT_DATA_DATA :: ID , Self :: OBSTACLE_DISTANCE (..) => OBSTACLE_DISTANCE_DATA :: ID , Self :: REQUEST_DATA_STREAM (..) => REQUEST_DATA_STREAM_DATA :: ID , Self :: PING (..) => PING_DATA :: ID , Self :: GPS_RTK (..) => GPS_RTK_DATA :: ID , Self :: GLOBAL_POSITION_INT (..) => GLOBAL_POSITION_INT_DATA :: ID , Self :: POSITION_TARGET_GLOBAL_INT (..) => POSITION_TARGET_GLOBAL_INT_DATA :: ID , Self :: HEARTBEAT (..) => HEARTBEAT_DATA :: ID , Self :: CAN_FRAME (..) => CAN_FRAME_DATA :: ID , Self :: PARAM_EXT_VALUE (..) => PARAM_EXT_VALUE_DATA :: ID , Self :: GPS_RAW_INT (..) => GPS_RAW_INT_DATA :: ID , Self :: SERVO_OUTPUT_RAW (..) => SERVO_OUTPUT_RAW_DATA :: ID , Self :: NAV_CONTROLLER_OUTPUT (..) => NAV_CONTROLLER_OUTPUT_DATA :: ID , Self :: MISSION_CLEAR_ALL (..) => MISSION_CLEAR_ALL_DATA :: ID , Self :: SET_ACTUATOR_CONTROL_TARGET (..) => SET_ACTUATOR_CONTROL_TARGET_DATA :: ID , Self :: CAMERA_TRACKING_IMAGE_STATUS (..) => CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID , Self :: GIMBAL_MANAGER_SET_PITCHYAW (..) => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID , Self :: EVENT (..) => EVENT_DATA :: ID , Self :: VICON_POSITION_ESTIMATE (..) => VICON_POSITION_ESTIMATE_DATA :: ID , Self :: OPEN_DRONE_ID_ARM_STATUS (..) => OPEN_DRONE_ID_ARM_STATUS_DATA :: ID , Self :: SET_POSITION_TARGET_LOCAL_NED (..) => SET_POSITION_TARGET_LOCAL_NED_DATA :: ID , Self :: MISSION_ACK (..) => MISSION_ACK_DATA :: ID , Self :: CHANGE_OPERATOR_CONTROL (..) => CHANGE_OPERATOR_CONTROL_DATA :: ID , Self :: MANUAL_CONTROL (..) => MANUAL_CONTROL_DATA :: ID , Self :: RC_CHANNELS (..) => RC_CHANNELS_DATA :: ID , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (..) => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID , Self :: HIGH_LATENCY2 (..) => HIGH_LATENCY2_DATA :: ID , Self :: LOG_ERASE (..) => LOG_ERASE_DATA :: ID , Self :: DEBUG (..) => DEBUG_DATA :: ID , Self :: STORAGE_INFORMATION (..) => STORAGE_INFORMATION_DATA :: ID , Self :: LINK_NODE_STATUS (..) => LINK_NODE_STATUS_DATA :: ID , Self :: ATTITUDE_QUATERNION_COV (..) => ATTITUDE_QUATERNION_COV_DATA :: ID , Self :: LOGGING_ACK (..) => LOGGING_ACK_DATA :: ID , Self :: AUTH_KEY (..) => AUTH_KEY_DATA :: ID , Self :: CAMERA_IMAGE_CAPTURED (..) => CAMERA_IMAGE_CAPTURED_DATA :: ID , Self :: GIMBAL_DEVICE_SET_ATTITUDE (..) => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID , Self :: OPEN_DRONE_ID_OPERATOR_ID (..) => OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID , Self :: SYS_STATUS (..) => SYS_STATUS_DATA :: ID , Self :: SET_POSITION_TARGET_GLOBAL_INT (..) => SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID , Self :: SIM_STATE (..) => SIM_STATE_DATA :: ID , Self :: ADSB_VEHICLE (..) => ADSB_VEHICLE_DATA :: ID , Self :: BUTTON_CHANGE (..) => BUTTON_CHANGE_DATA :: ID , Self :: ESC_STATUS (..) => ESC_STATUS_DATA :: ID , Self :: VISION_POSITION_ESTIMATE (..) => VISION_POSITION_ESTIMATE_DATA :: ID , Self :: AUTOPILOT_VERSION (..) => AUTOPILOT_VERSION_DATA :: ID , Self :: PLAY_TUNE (..) => PLAY_TUNE_DATA :: ID , Self :: PARAM_EXT_REQUEST_LIST (..) => PARAM_EXT_REQUEST_LIST_DATA :: ID , Self :: SET_ATTITUDE_TARGET (..) => SET_ATTITUDE_TARGET_DATA :: ID , Self :: LOG_REQUEST_DATA (..) => LOG_REQUEST_DATA_DATA :: ID , Self :: COMMAND_ACK (..) => COMMAND_ACK_DATA :: ID , Self :: GLOBAL_POSITION_INT_COV (..) => GLOBAL_POSITION_INT_COV_DATA :: ID , Self :: SCALED_PRESSURE3 (..) => SCALED_PRESSURE3_DATA :: ID , Self :: LOGGING_DATA_ACKED (..) => LOGGING_DATA_ACKED_DATA :: ID , Self :: HIGH_LATENCY (..) => HIGH_LATENCY_DATA :: ID , Self :: VIDEO_STREAM_STATUS (..) => VIDEO_STREAM_STATUS_DATA :: ID , Self :: VFR_HUD (..) => VFR_HUD_DATA :: ID , Self :: COMMAND_LONG (..) => COMMAND_LONG_DATA :: ID , Self :: GIMBAL_MANAGER_STATUS (..) => GIMBAL_MANAGER_STATUS_DATA :: ID , Self :: RAW_RPM (..) => RAW_RPM_DATA :: ID , Self :: WIFI_CONFIG_AP (..) => WIFI_CONFIG_AP_DATA :: ID , Self :: DEBUG_FLOAT_ARRAY (..) => DEBUG_FLOAT_ARRAY_DATA :: ID , Self :: LOCAL_POSITION_NED_COV (..) => LOCAL_POSITION_NED_COV_DATA :: ID , Self :: SMART_BATTERY_INFO (..) => SMART_BATTERY_INFO_DATA :: ID , Self :: CURRENT_EVENT_SEQUENCE (..) => CURRENT_EVENT_SEQUENCE_DATA :: ID , Self :: ATTITUDE_TARGET (..) => ATTITUDE_TARGET_DATA :: ID , Self :: LOCAL_POSITION_NED (..) => LOCAL_POSITION_NED_DATA :: ID , Self :: RAW_IMU (..) => RAW_IMU_DATA :: ID , Self :: HIL_ACTUATOR_CONTROLS (..) => HIL_ACTUATOR_CONTROLS_DATA :: ID , Self :: SERIAL_CONTROL (..) => SERIAL_CONTROL_DATA :: ID , Self :: MISSION_REQUEST_INT (..) => MISSION_REQUEST_INT_DATA :: ID , Self :: BATTERY_STATUS (..) => BATTERY_STATUS_DATA :: ID , Self :: OPEN_DRONE_ID_BASIC_ID (..) => OPEN_DRONE_ID_BASIC_ID_DATA :: ID , Self :: OPEN_DRONE_ID_LOCATION (..) => OPEN_DRONE_ID_LOCATION_DATA :: ID , Self :: SET_GPS_GLOBAL_ORIGIN (..) => SET_GPS_GLOBAL_ORIGIN_DATA :: ID , Self :: COMMAND_CANCEL (..) => COMMAND_CANCEL_DATA :: ID , Self :: GPS2_RAW (..) => GPS2_RAW_DATA :: ID , Self :: WHEEL_DISTANCE (..) => WHEEL_DISTANCE_DATA :: ID , Self :: DATA_TRANSMISSION_HANDSHAKE (..) => DATA_TRANSMISSION_HANDSHAKE_DATA :: ID , Self :: FENCE_STATUS (..) => FENCE_STATUS_DATA :: ID , Self :: MISSION_WRITE_PARTIAL_LIST (..) => MISSION_WRITE_PARTIAL_LIST_DATA :: ID , Self :: MISSION_REQUEST (..) => MISSION_REQUEST_DATA :: ID , Self :: GIMBAL_MANAGER_INFORMATION (..) => GIMBAL_MANAGER_INFORMATION_DATA :: ID , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (..) => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID , Self :: LANDING_TARGET (..) => LANDING_TARGET_DATA :: ID , Self :: AIS_VESSEL (..) => AIS_VESSEL_DATA :: ID , Self :: HIL_GPS (..) => HIL_GPS_DATA :: ID , Self :: LOG_ENTRY (..) => LOG_ENTRY_DATA :: ID , Self :: SCALED_PRESSURE (..) => SCALED_PRESSURE_DATA :: ID , } } fn message_id_from_name (name : & str) -> Result < u32 , & 'static str > { match name { AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: NAME => Ok (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID) , ORBIT_EXECUTION_STATUS_DATA :: NAME => Ok (ORBIT_EXECUTION_STATUS_DATA :: ID) , REQUEST_EVENT_DATA :: NAME => Ok (REQUEST_EVENT_DATA :: ID) , SET_MODE_DATA :: NAME => Ok (SET_MODE_DATA :: ID) , CANFD_FRAME_DATA :: NAME => Ok (CANFD_FRAME_DATA :: ID) , VIDEO_STREAM_INFORMATION_DATA :: NAME => Ok (VIDEO_STREAM_INFORMATION_DATA :: ID) , SAFETY_SET_ALLOWED_AREA_DATA :: NAME => Ok (SAFETY_SET_ALLOWED_AREA_DATA :: ID) , COMMAND_INT_DATA :: NAME => Ok (COMMAND_INT_DATA :: ID) , RC_CHANNELS_OVERRIDE_DATA :: NAME => Ok (RC_CHANNELS_OVERRIDE_DATA :: ID) , SCALED_IMU2_DATA :: NAME => Ok (SCALED_IMU2_DATA :: ID) , ACTUATOR_CONTROL_TARGET_DATA :: NAME => Ok (ACTUATOR_CONTROL_TARGET_DATA :: ID) , DATA_STREAM_DATA :: NAME => Ok (DATA_STREAM_DATA :: ID) , MISSION_ITEM_REACHED_DATA :: NAME => Ok (MISSION_ITEM_REACHED_DATA :: ID) , HIL_RC_INPUTS_RAW_DATA :: NAME => Ok (HIL_RC_INPUTS_RAW_DATA :: ID) , HIGHRES_IMU_DATA :: NAME => Ok (HIGHRES_IMU_DATA :: ID) , FOLLOW_TARGET_DATA :: NAME => Ok (FOLLOW_TARGET_DATA :: ID) , STATUSTEXT_DATA :: NAME => Ok (STATUSTEXT_DATA :: ID) , ACTUATOR_OUTPUT_STATUS_DATA :: NAME => Ok (ACTUATOR_OUTPUT_STATUS_DATA :: ID) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: NAME => Ok (TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID) , CAMERA_SETTINGS_DATA :: NAME => Ok (CAMERA_SETTINGS_DATA :: ID) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: NAME => Ok (GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID) , OPTICAL_FLOW_RAD_DATA :: NAME => Ok (OPTICAL_FLOW_RAD_DATA :: ID) , NAMED_VALUE_FLOAT_DATA :: NAME => Ok (NAMED_VALUE_FLOAT_DATA :: ID) , RESOURCE_REQUEST_DATA :: NAME => Ok (RESOURCE_REQUEST_DATA :: ID) , HIL_CONTROLS_DATA :: NAME => Ok (HIL_CONTROLS_DATA :: ID) , GPS_INPUT_DATA :: NAME => Ok (GPS_INPUT_DATA :: ID) , CAMERA_TRACKING_GEO_STATUS_DATA :: NAME => Ok (CAMERA_TRACKING_GEO_STATUS_DATA :: ID) , HOME_POSITION_DATA :: NAME => Ok (HOME_POSITION_DATA :: ID) , PARAM_SET_DATA :: NAME => Ok (PARAM_SET_DATA :: ID) , UAVCAN_NODE_STATUS_DATA :: NAME => Ok (UAVCAN_NODE_STATUS_DATA :: ID) , ONBOARD_COMPUTER_STATUS_DATA :: NAME => Ok (ONBOARD_COMPUTER_STATUS_DATA :: ID) , ATTITUDE_QUATERNION_DATA :: NAME => Ok (ATTITUDE_QUATERNION_DATA :: ID) , MISSION_REQUEST_PARTIAL_LIST_DATA :: NAME => Ok (MISSION_REQUEST_PARTIAL_LIST_DATA :: ID) , MISSION_CURRENT_DATA :: NAME => Ok (MISSION_CURRENT_DATA :: ID) , RADIO_STATUS_DATA :: NAME => Ok (RADIO_STATUS_DATA :: ID) , HIL_STATE_DATA :: NAME => Ok (HIL_STATE_DATA :: ID) , TERRAIN_DATA_DATA :: NAME => Ok (TERRAIN_DATA_DATA :: ID) , SCALED_PRESSURE2_DATA :: NAME => Ok (SCALED_PRESSURE2_DATA :: ID) , ATT_POS_MOCAP_DATA :: NAME => Ok (ATT_POS_MOCAP_DATA :: ID) , GPS_STATUS_DATA :: NAME => Ok (GPS_STATUS_DATA :: ID) , MISSION_ITEM_DATA :: NAME => Ok (MISSION_ITEM_DATA :: ID) , VISION_SPEED_ESTIMATE_DATA :: NAME => Ok (VISION_SPEED_ESTIMATE_DATA :: ID) , SCALED_IMU_DATA :: NAME => Ok (SCALED_IMU_DATA :: ID) , MISSION_COUNT_DATA :: NAME => Ok (MISSION_COUNT_DATA :: ID) , PARAM_MAP_RC_DATA :: NAME => Ok (PARAM_MAP_RC_DATA :: ID) , LOG_DATA_DATA :: NAME => Ok (LOG_DATA_DATA :: ID) , EXTENDED_SYS_STATE_DATA :: NAME => Ok (EXTENDED_SYS_STATE_DATA :: ID) , SETUP_SIGNING_DATA :: NAME => Ok (SETUP_SIGNING_DATA :: ID) , RC_CHANNELS_RAW_DATA :: NAME => Ok (RC_CHANNELS_RAW_DATA :: ID) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID) , UAVCAN_NODE_INFO_DATA :: NAME => Ok (UAVCAN_NODE_INFO_DATA :: ID) , COMPONENT_METADATA_DATA :: NAME => Ok (COMPONENT_METADATA_DATA :: ID) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: NAME => Ok (OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID) , SYSTEM_TIME_DATA :: NAME => Ok (SYSTEM_TIME_DATA :: ID) , PARAM_VALUE_DATA :: NAME => Ok (PARAM_VALUE_DATA :: ID) , MANUAL_SETPOINT_DATA :: NAME => Ok (MANUAL_SETPOINT_DATA :: ID) , MISSION_SET_CURRENT_DATA :: NAME => Ok (MISSION_SET_CURRENT_DATA :: ID) , OPTICAL_FLOW_DATA :: NAME => Ok (OPTICAL_FLOW_DATA :: ID) , POWER_STATUS_DATA :: NAME => Ok (POWER_STATUS_DATA :: ID) , TERRAIN_REQUEST_DATA :: NAME => Ok (TERRAIN_REQUEST_DATA :: ID) , PARAM_REQUEST_READ_DATA :: NAME => Ok (PARAM_REQUEST_READ_DATA :: ID) , TERRAIN_REPORT_DATA :: NAME => Ok (TERRAIN_REPORT_DATA :: ID) , GPS_GLOBAL_ORIGIN_DATA :: NAME => Ok (GPS_GLOBAL_ORIGIN_DATA :: ID) , HIL_STATE_QUATERNION_DATA :: NAME => Ok (HIL_STATE_QUATERNION_DATA :: ID) , TERRAIN_CHECK_DATA :: NAME => Ok (TERRAIN_CHECK_DATA :: ID) , MISSION_REQUEST_LIST_DATA :: NAME => Ok (MISSION_REQUEST_LIST_DATA :: ID) , EFI_STATUS_DATA :: NAME => Ok (EFI_STATUS_DATA :: ID) , SET_HOME_POSITION_DATA :: NAME => Ok (SET_HOME_POSITION_DATA :: ID) , FLIGHT_INFORMATION_DATA :: NAME => Ok (FLIGHT_INFORMATION_DATA :: ID) , LOGGING_DATA_DATA :: NAME => Ok (LOGGING_DATA_DATA :: ID) , PARAM_EXT_SET_DATA :: NAME => Ok (PARAM_EXT_SET_DATA :: ID) , MOUNT_ORIENTATION_DATA :: NAME => Ok (MOUNT_ORIENTATION_DATA :: ID) , RC_CHANNELS_SCALED_DATA :: NAME => Ok (RC_CHANNELS_SCALED_DATA :: ID) , GPS2_RTK_DATA :: NAME => Ok (GPS2_RTK_DATA :: ID) , ATTITUDE_DATA :: NAME => Ok (ATTITUDE_DATA :: ID) , ESC_INFO_DATA :: NAME => Ok (ESC_INFO_DATA :: ID) , CELLULAR_STATUS_DATA :: NAME => Ok (CELLULAR_STATUS_DATA :: ID) , UTM_GLOBAL_POSITION_DATA :: NAME => Ok (UTM_GLOBAL_POSITION_DATA :: ID) , TUNNEL_DATA :: NAME => Ok (TUNNEL_DATA :: ID) , ENCAPSULATED_DATA_DATA :: NAME => Ok (ENCAPSULATED_DATA_DATA :: ID) , MEMORY_VECT_DATA :: NAME => Ok (MEMORY_VECT_DATA :: ID) , PLAY_TUNE_V2_DATA :: NAME => Ok (PLAY_TUNE_V2_DATA :: ID) , HYGROMETER_SENSOR_DATA :: NAME => Ok (HYGROMETER_SENSOR_DATA :: ID) , CELLULAR_CONFIG_DATA :: NAME => Ok (CELLULAR_CONFIG_DATA :: ID) , MAG_CAL_REPORT_DATA :: NAME => Ok (MAG_CAL_REPORT_DATA :: ID) , TIMESYNC_DATA :: NAME => Ok (TIMESYNC_DATA :: ID) , COMPONENT_INFORMATION_DATA :: NAME => Ok (COMPONENT_INFORMATION_DATA :: ID) , NAMED_VALUE_INT_DATA :: NAME => Ok (NAMED_VALUE_INT_DATA :: ID) , GIMBAL_DEVICE_INFORMATION_DATA :: NAME => Ok (GIMBAL_DEVICE_INFORMATION_DATA :: ID) , SAFETY_ALLOWED_AREA_DATA :: NAME => Ok (SAFETY_ALLOWED_AREA_DATA :: ID) , ODOMETRY_DATA :: NAME => Ok (ODOMETRY_DATA :: ID) , OPEN_DRONE_ID_SYSTEM_DATA :: NAME => Ok (OPEN_DRONE_ID_SYSTEM_DATA :: ID) , ALTITUDE_DATA :: NAME => Ok (ALTITUDE_DATA :: ID) , PARAM_EXT_ACK_DATA :: NAME => Ok (PARAM_EXT_ACK_DATA :: ID) , RESPONSE_EVENT_ERROR_DATA :: NAME => Ok (RESPONSE_EVENT_ERROR_DATA :: ID) , RAW_PRESSURE_DATA :: NAME => Ok (RAW_PRESSURE_DATA :: ID) , MISSION_ITEM_INT_DATA :: NAME => Ok (MISSION_ITEM_INT_DATA :: ID) , SCALED_IMU3_DATA :: NAME => Ok (SCALED_IMU3_DATA :: ID) , MESSAGE_INTERVAL_DATA :: NAME => Ok (MESSAGE_INTERVAL_DATA :: ID) , DEBUG_VECT_DATA :: NAME => Ok (DEBUG_VECT_DATA :: ID) , CAMERA_CAPTURE_STATUS_DATA :: NAME => Ok (CAMERA_CAPTURE_STATUS_DATA :: ID) , LOG_REQUEST_END_DATA :: NAME => Ok (LOG_REQUEST_END_DATA :: ID) , FILE_TRANSFER_PROTOCOL_DATA :: NAME => Ok (FILE_TRANSFER_PROTOCOL_DATA :: ID) , PARAM_EXT_REQUEST_READ_DATA :: NAME => Ok (PARAM_EXT_REQUEST_READ_DATA :: ID) , WINCH_STATUS_DATA :: NAME => Ok (WINCH_STATUS_DATA :: ID) , OPEN_DRONE_ID_SELF_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_SELF_ID_DATA :: ID) , ISBD_LINK_STATUS_DATA :: NAME => Ok (ISBD_LINK_STATUS_DATA :: ID) , TIME_ESTIMATE_TO_TARGET_DATA :: NAME => Ok (TIME_ESTIMATE_TO_TARGET_DATA :: ID) , CAN_FILTER_MODIFY_DATA :: NAME => Ok (CAN_FILTER_MODIFY_DATA :: ID) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: NAME => Ok (OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: NAME => Ok (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID) , GENERATOR_STATUS_DATA :: NAME => Ok (GENERATOR_STATUS_DATA :: ID) , ESTIMATOR_STATUS_DATA :: NAME => Ok (ESTIMATOR_STATUS_DATA :: ID) , GPS_RTCM_DATA_DATA :: NAME => Ok (GPS_RTCM_DATA_DATA :: ID) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: NAME => Ok (CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID) , POSITION_TARGET_LOCAL_NED_DATA :: NAME => Ok (POSITION_TARGET_LOCAL_NED_DATA :: ID) , HIL_SENSOR_DATA :: NAME => Ok (HIL_SENSOR_DATA :: ID) , DISTANCE_SENSOR_DATA :: NAME => Ok (DISTANCE_SENSOR_DATA :: ID) , VIBRATION_DATA :: NAME => Ok (VIBRATION_DATA :: ID) , CAMERA_TRIGGER_DATA :: NAME => Ok (CAMERA_TRIGGER_DATA :: ID) , LOG_REQUEST_LIST_DATA :: NAME => Ok (LOG_REQUEST_LIST_DATA :: ID) , PROTOCOL_VERSION_DATA :: NAME => Ok (PROTOCOL_VERSION_DATA :: ID) , CONTROL_SYSTEM_STATE_DATA :: NAME => Ok (CONTROL_SYSTEM_STATE_DATA :: ID) , CAMERA_FOV_STATUS_DATA :: NAME => Ok (CAMERA_FOV_STATUS_DATA :: ID) , SUPPORTED_TUNES_DATA :: NAME => Ok (SUPPORTED_TUNES_DATA :: ID) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: NAME => Ok (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID) , WIND_COV_DATA :: NAME => Ok (WIND_COV_DATA :: ID) , V2_EXTENSION_DATA :: NAME => Ok (V2_EXTENSION_DATA :: ID) , CAMERA_INFORMATION_DATA :: NAME => Ok (CAMERA_INFORMATION_DATA :: ID) , COLLISION_DATA :: NAME => Ok (COLLISION_DATA :: ID) , PARAM_REQUEST_LIST_DATA :: NAME => Ok (PARAM_REQUEST_LIST_DATA :: ID) , HIL_OPTICAL_FLOW_DATA :: NAME => Ok (HIL_OPTICAL_FLOW_DATA :: ID) , GPS_INJECT_DATA_DATA :: NAME => Ok (GPS_INJECT_DATA_DATA :: ID) , OBSTACLE_DISTANCE_DATA :: NAME => Ok (OBSTACLE_DISTANCE_DATA :: ID) , REQUEST_DATA_STREAM_DATA :: NAME => Ok (REQUEST_DATA_STREAM_DATA :: ID) , PING_DATA :: NAME => Ok (PING_DATA :: ID) , GPS_RTK_DATA :: NAME => Ok (GPS_RTK_DATA :: ID) , GLOBAL_POSITION_INT_DATA :: NAME => Ok (GLOBAL_POSITION_INT_DATA :: ID) , POSITION_TARGET_GLOBAL_INT_DATA :: NAME => Ok (POSITION_TARGET_GLOBAL_INT_DATA :: ID) , HEARTBEAT_DATA :: NAME => Ok (HEARTBEAT_DATA :: ID) , CAN_FRAME_DATA :: NAME => Ok (CAN_FRAME_DATA :: ID) , PARAM_EXT_VALUE_DATA :: NAME => Ok (PARAM_EXT_VALUE_DATA :: ID) , GPS_RAW_INT_DATA :: NAME => Ok (GPS_RAW_INT_DATA :: ID) , SERVO_OUTPUT_RAW_DATA :: NAME => Ok (SERVO_OUTPUT_RAW_DATA :: ID) , NAV_CONTROLLER_OUTPUT_DATA :: NAME => Ok (NAV_CONTROLLER_OUTPUT_DATA :: ID) , MISSION_CLEAR_ALL_DATA :: NAME => Ok (MISSION_CLEAR_ALL_DATA :: ID) , SET_ACTUATOR_CONTROL_TARGET_DATA :: NAME => Ok (SET_ACTUATOR_CONTROL_TARGET_DATA :: ID) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: NAME => Ok (CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID) , EVENT_DATA :: NAME => Ok (EVENT_DATA :: ID) , VICON_POSITION_ESTIMATE_DATA :: NAME => Ok (VICON_POSITION_ESTIMATE_DATA :: ID) , OPEN_DRONE_ID_ARM_STATUS_DATA :: NAME => Ok (OPEN_DRONE_ID_ARM_STATUS_DATA :: ID) , SET_POSITION_TARGET_LOCAL_NED_DATA :: NAME => Ok (SET_POSITION_TARGET_LOCAL_NED_DATA :: ID) , MISSION_ACK_DATA :: NAME => Ok (MISSION_ACK_DATA :: ID) , CHANGE_OPERATOR_CONTROL_DATA :: NAME => Ok (CHANGE_OPERATOR_CONTROL_DATA :: ID) , MANUAL_CONTROL_DATA :: NAME => Ok (MANUAL_CONTROL_DATA :: ID) , RC_CHANNELS_DATA :: NAME => Ok (RC_CHANNELS_DATA :: ID) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: NAME => Ok (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID) , HIGH_LATENCY2_DATA :: NAME => Ok (HIGH_LATENCY2_DATA :: ID) , LOG_ERASE_DATA :: NAME => Ok (LOG_ERASE_DATA :: ID) , DEBUG_DATA :: NAME => Ok (DEBUG_DATA :: ID) , STORAGE_INFORMATION_DATA :: NAME => Ok (STORAGE_INFORMATION_DATA :: ID) , LINK_NODE_STATUS_DATA :: NAME => Ok (LINK_NODE_STATUS_DATA :: ID) , ATTITUDE_QUATERNION_COV_DATA :: NAME => Ok (ATTITUDE_QUATERNION_COV_DATA :: ID) , LOGGING_ACK_DATA :: NAME => Ok (LOGGING_ACK_DATA :: ID) , AUTH_KEY_DATA :: NAME => Ok (AUTH_KEY_DATA :: ID) , CAMERA_IMAGE_CAPTURED_DATA :: NAME => Ok (CAMERA_IMAGE_CAPTURED_DATA :: ID) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: NAME => Ok (GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID) , SYS_STATUS_DATA :: NAME => Ok (SYS_STATUS_DATA :: ID) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: NAME => Ok (SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID) , SIM_STATE_DATA :: NAME => Ok (SIM_STATE_DATA :: ID) , ADSB_VEHICLE_DATA :: NAME => Ok (ADSB_VEHICLE_DATA :: ID) , BUTTON_CHANGE_DATA :: NAME => Ok (BUTTON_CHANGE_DATA :: ID) , ESC_STATUS_DATA :: NAME => Ok (ESC_STATUS_DATA :: ID) , VISION_POSITION_ESTIMATE_DATA :: NAME => Ok (VISION_POSITION_ESTIMATE_DATA :: ID) , AUTOPILOT_VERSION_DATA :: NAME => Ok (AUTOPILOT_VERSION_DATA :: ID) , PLAY_TUNE_DATA :: NAME => Ok (PLAY_TUNE_DATA :: ID) , PARAM_EXT_REQUEST_LIST_DATA :: NAME => Ok (PARAM_EXT_REQUEST_LIST_DATA :: ID) , SET_ATTITUDE_TARGET_DATA :: NAME => Ok (SET_ATTITUDE_TARGET_DATA :: ID) , LOG_REQUEST_DATA_DATA :: NAME => Ok (LOG_REQUEST_DATA_DATA :: ID) , COMMAND_ACK_DATA :: NAME => Ok (COMMAND_ACK_DATA :: ID) , GLOBAL_POSITION_INT_COV_DATA :: NAME => Ok (GLOBAL_POSITION_INT_COV_DATA :: ID) , SCALED_PRESSURE3_DATA :: NAME => Ok (SCALED_PRESSURE3_DATA :: ID) , LOGGING_DATA_ACKED_DATA :: NAME => Ok (LOGGING_DATA_ACKED_DATA :: ID) , HIGH_LATENCY_DATA :: NAME => Ok (HIGH_LATENCY_DATA :: ID) , VIDEO_STREAM_STATUS_DATA :: NAME => Ok (VIDEO_STREAM_STATUS_DATA :: ID) , VFR_HUD_DATA :: NAME => Ok (VFR_HUD_DATA :: ID) , COMMAND_LONG_DATA :: NAME => Ok (COMMAND_LONG_DATA :: ID) , GIMBAL_MANAGER_STATUS_DATA :: NAME => Ok (GIMBAL_MANAGER_STATUS_DATA :: ID) , RAW_RPM_DATA :: NAME => Ok (RAW_RPM_DATA :: ID) , WIFI_CONFIG_AP_DATA :: NAME => Ok (WIFI_CONFIG_AP_DATA :: ID) , DEBUG_FLOAT_ARRAY_DATA :: NAME => Ok (DEBUG_FLOAT_ARRAY_DATA :: ID) , LOCAL_POSITION_NED_COV_DATA :: NAME => Ok (LOCAL_POSITION_NED_COV_DATA :: ID) , SMART_BATTERY_INFO_DATA :: NAME => Ok (SMART_BATTERY_INFO_DATA :: ID) , CURRENT_EVENT_SEQUENCE_DATA :: NAME => Ok (CURRENT_EVENT_SEQUENCE_DATA :: ID) , ATTITUDE_TARGET_DATA :: NAME => Ok (ATTITUDE_TARGET_DATA :: ID) , LOCAL_POSITION_NED_DATA :: NAME => Ok (LOCAL_POSITION_NED_DATA :: ID) , RAW_IMU_DATA :: NAME => Ok (RAW_IMU_DATA :: ID) , HIL_ACTUATOR_CONTROLS_DATA :: NAME => Ok (HIL_ACTUATOR_CONTROLS_DATA :: ID) , SERIAL_CONTROL_DATA :: NAME => Ok (SERIAL_CONTROL_DATA :: ID) , MISSION_REQUEST_INT_DATA :: NAME => Ok (MISSION_REQUEST_INT_DATA :: ID) , BATTERY_STATUS_DATA :: NAME => Ok (BATTERY_STATUS_DATA :: ID) , OPEN_DRONE_ID_BASIC_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_BASIC_ID_DATA :: ID) , OPEN_DRONE_ID_LOCATION_DATA :: NAME => Ok (OPEN_DRONE_ID_LOCATION_DATA :: ID) , SET_GPS_GLOBAL_ORIGIN_DATA :: NAME => Ok (SET_GPS_GLOBAL_ORIGIN_DATA :: ID) , COMMAND_CANCEL_DATA :: NAME => Ok (COMMAND_CANCEL_DATA :: ID) , GPS2_RAW_DATA :: NAME => Ok (GPS2_RAW_DATA :: ID) , WHEEL_DISTANCE_DATA :: NAME => Ok (WHEEL_DISTANCE_DATA :: ID) , DATA_TRANSMISSION_HANDSHAKE_DATA :: NAME => Ok (DATA_TRANSMISSION_HANDSHAKE_DATA :: ID) , FENCE_STATUS_DATA :: NAME => Ok (FENCE_STATUS_DATA :: ID) , MISSION_WRITE_PARTIAL_LIST_DATA :: NAME => Ok (MISSION_WRITE_PARTIAL_LIST_DATA :: ID) , MISSION_REQUEST_DATA :: NAME => Ok (MISSION_REQUEST_DATA :: ID) , GIMBAL_MANAGER_INFORMATION_DATA :: NAME => Ok (GIMBAL_MANAGER_INFORMATION_DATA :: ID) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: NAME => Ok (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID) , LANDING_TARGET_DATA :: NAME => Ok (LANDING_TARGET_DATA :: ID) , AIS_VESSEL_DATA :: NAME => Ok (AIS_VESSEL_DATA :: ID) , HIL_GPS_DATA :: NAME => Ok (HIL_GPS_DATA :: ID) , LOG_ENTRY_DATA :: NAME => Ok (LOG_ENTRY_DATA :: ID) , SCALED_PRESSURE_DATA :: NAME => Ok (SCALED_PRESSURE_DATA :: ID) , _ => { Err ("Invalid message name.") } } } fn default_message_from_id (id : u32) -> Result < Self , & 'static str > { match id { AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => Ok (Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: default ())) , ORBIT_EXECUTION_STATUS_DATA :: ID => Ok (Self :: ORBIT_EXECUTION_STATUS (ORBIT_EXECUTION_STATUS_DATA :: default ())) , REQUEST_EVENT_DATA :: ID => Ok (Self :: REQUEST_EVENT (REQUEST_EVENT_DATA :: default ())) , SET_MODE_DATA :: ID => Ok (Self :: SET_MODE (SET_MODE_DATA :: default ())) , CANFD_FRAME_DATA :: ID => Ok (Self :: CANFD_FRAME (CANFD_FRAME_DATA :: default ())) , VIDEO_STREAM_INFORMATION_DATA :: ID => Ok (Self :: VIDEO_STREAM_INFORMATION (VIDEO_STREAM_INFORMATION_DATA :: default ())) , SAFETY_SET_ALLOWED_AREA_DATA :: ID => Ok (Self :: SAFETY_SET_ALLOWED_AREA (SAFETY_SET_ALLOWED_AREA_DATA :: default ())) , COMMAND_INT_DATA :: ID => Ok (Self :: COMMAND_INT (COMMAND_INT_DATA :: default ())) , RC_CHANNELS_OVERRIDE_DATA :: ID => Ok (Self :: RC_CHANNELS_OVERRIDE (RC_CHANNELS_OVERRIDE_DATA :: default ())) , SCALED_IMU2_DATA :: ID => Ok (Self :: SCALED_IMU2 (SCALED_IMU2_DATA :: default ())) , ACTUATOR_CONTROL_TARGET_DATA :: ID => Ok (Self :: ACTUATOR_CONTROL_TARGET (ACTUATOR_CONTROL_TARGET_DATA :: default ())) , DATA_STREAM_DATA :: ID => Ok (Self :: DATA_STREAM (DATA_STREAM_DATA :: default ())) , MISSION_ITEM_REACHED_DATA :: ID => Ok (Self :: MISSION_ITEM_REACHED (MISSION_ITEM_REACHED_DATA :: default ())) , HIL_RC_INPUTS_RAW_DATA :: ID => Ok (Self :: HIL_RC_INPUTS_RAW (HIL_RC_INPUTS_RAW_DATA :: default ())) , HIGHRES_IMU_DATA :: ID => Ok (Self :: HIGHRES_IMU (HIGHRES_IMU_DATA :: default ())) , FOLLOW_TARGET_DATA :: ID => Ok (Self :: FOLLOW_TARGET (FOLLOW_TARGET_DATA :: default ())) , STATUSTEXT_DATA :: ID => Ok (Self :: STATUSTEXT (STATUSTEXT_DATA :: default ())) , ACTUATOR_OUTPUT_STATUS_DATA :: ID => Ok (Self :: ACTUATOR_OUTPUT_STATUS (ACTUATOR_OUTPUT_STATUS_DATA :: default ())) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => Ok (Self :: TRAJECTORY_REPRESENTATION_BEZIER (TRAJECTORY_REPRESENTATION_BEZIER_DATA :: default ())) , CAMERA_SETTINGS_DATA :: ID => Ok (Self :: CAMERA_SETTINGS (CAMERA_SETTINGS_DATA :: default ())) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: GLOBAL_VISION_POSITION_ESTIMATE (GLOBAL_VISION_POSITION_ESTIMATE_DATA :: default ())) , OPTICAL_FLOW_RAD_DATA :: ID => Ok (Self :: OPTICAL_FLOW_RAD (OPTICAL_FLOW_RAD_DATA :: default ())) , NAMED_VALUE_FLOAT_DATA :: ID => Ok (Self :: NAMED_VALUE_FLOAT (NAMED_VALUE_FLOAT_DATA :: default ())) , RESOURCE_REQUEST_DATA :: ID => Ok (Self :: RESOURCE_REQUEST (RESOURCE_REQUEST_DATA :: default ())) , HIL_CONTROLS_DATA :: ID => Ok (Self :: HIL_CONTROLS (HIL_CONTROLS_DATA :: default ())) , GPS_INPUT_DATA :: ID => Ok (Self :: GPS_INPUT (GPS_INPUT_DATA :: default ())) , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => Ok (Self :: CAMERA_TRACKING_GEO_STATUS (CAMERA_TRACKING_GEO_STATUS_DATA :: default ())) , HOME_POSITION_DATA :: ID => Ok (Self :: HOME_POSITION (HOME_POSITION_DATA :: default ())) , PARAM_SET_DATA :: ID => Ok (Self :: PARAM_SET (PARAM_SET_DATA :: default ())) , UAVCAN_NODE_STATUS_DATA :: ID => Ok (Self :: UAVCAN_NODE_STATUS (UAVCAN_NODE_STATUS_DATA :: default ())) , ONBOARD_COMPUTER_STATUS_DATA :: ID => Ok (Self :: ONBOARD_COMPUTER_STATUS (ONBOARD_COMPUTER_STATUS_DATA :: default ())) , ATTITUDE_QUATERNION_DATA :: ID => Ok (Self :: ATTITUDE_QUATERNION (ATTITUDE_QUATERNION_DATA :: default ())) , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => Ok (Self :: MISSION_REQUEST_PARTIAL_LIST (MISSION_REQUEST_PARTIAL_LIST_DATA :: default ())) , MISSION_CURRENT_DATA :: ID => Ok (Self :: MISSION_CURRENT (MISSION_CURRENT_DATA :: default ())) , RADIO_STATUS_DATA :: ID => Ok (Self :: RADIO_STATUS (RADIO_STATUS_DATA :: default ())) , HIL_STATE_DATA :: ID => Ok (Self :: HIL_STATE (HIL_STATE_DATA :: default ())) , TERRAIN_DATA_DATA :: ID => Ok (Self :: TERRAIN_DATA (TERRAIN_DATA_DATA :: default ())) , SCALED_PRESSURE2_DATA :: ID => Ok (Self :: SCALED_PRESSURE2 (SCALED_PRESSURE2_DATA :: default ())) , ATT_POS_MOCAP_DATA :: ID => Ok (Self :: ATT_POS_MOCAP (ATT_POS_MOCAP_DATA :: default ())) , GPS_STATUS_DATA :: ID => Ok (Self :: GPS_STATUS (GPS_STATUS_DATA :: default ())) , MISSION_ITEM_DATA :: ID => Ok (Self :: MISSION_ITEM (MISSION_ITEM_DATA :: default ())) , VISION_SPEED_ESTIMATE_DATA :: ID => Ok (Self :: VISION_SPEED_ESTIMATE (VISION_SPEED_ESTIMATE_DATA :: default ())) , SCALED_IMU_DATA :: ID => Ok (Self :: SCALED_IMU (SCALED_IMU_DATA :: default ())) , MISSION_COUNT_DATA :: ID => Ok (Self :: MISSION_COUNT (MISSION_COUNT_DATA :: default ())) , PARAM_MAP_RC_DATA :: ID => Ok (Self :: PARAM_MAP_RC (PARAM_MAP_RC_DATA :: default ())) , LOG_DATA_DATA :: ID => Ok (Self :: LOG_DATA (LOG_DATA_DATA :: default ())) , EXTENDED_SYS_STATE_DATA :: ID => Ok (Self :: EXTENDED_SYS_STATE (EXTENDED_SYS_STATE_DATA :: default ())) , SETUP_SIGNING_DATA :: ID => Ok (Self :: SETUP_SIGNING (SETUP_SIGNING_DATA :: default ())) , RC_CHANNELS_RAW_DATA :: ID => Ok (Self :: RC_CHANNELS_RAW (RC_CHANNELS_RAW_DATA :: default ())) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_ATTITUDE (GIMBAL_MANAGER_SET_ATTITUDE_DATA :: default ())) , UAVCAN_NODE_INFO_DATA :: ID => Ok (Self :: UAVCAN_NODE_INFO (UAVCAN_NODE_INFO_DATA :: default ())) , COMPONENT_METADATA_DATA :: ID => Ok (Self :: COMPONENT_METADATA (COMPONENT_METADATA_DATA :: default ())) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_AUTHENTICATION (OPEN_DRONE_ID_AUTHENTICATION_DATA :: default ())) , SYSTEM_TIME_DATA :: ID => Ok (Self :: SYSTEM_TIME (SYSTEM_TIME_DATA :: default ())) , PARAM_VALUE_DATA :: ID => Ok (Self :: PARAM_VALUE (PARAM_VALUE_DATA :: default ())) , MANUAL_SETPOINT_DATA :: ID => Ok (Self :: MANUAL_SETPOINT (MANUAL_SETPOINT_DATA :: default ())) , MISSION_SET_CURRENT_DATA :: ID => Ok (Self :: MISSION_SET_CURRENT (MISSION_SET_CURRENT_DATA :: default ())) , OPTICAL_FLOW_DATA :: ID => Ok (Self :: OPTICAL_FLOW (OPTICAL_FLOW_DATA :: default ())) , POWER_STATUS_DATA :: ID => Ok (Self :: POWER_STATUS (POWER_STATUS_DATA :: default ())) , TERRAIN_REQUEST_DATA :: ID => Ok (Self :: TERRAIN_REQUEST (TERRAIN_REQUEST_DATA :: default ())) , PARAM_REQUEST_READ_DATA :: ID => Ok (Self :: PARAM_REQUEST_READ (PARAM_REQUEST_READ_DATA :: default ())) , TERRAIN_REPORT_DATA :: ID => Ok (Self :: TERRAIN_REPORT (TERRAIN_REPORT_DATA :: default ())) , GPS_GLOBAL_ORIGIN_DATA :: ID => Ok (Self :: GPS_GLOBAL_ORIGIN (GPS_GLOBAL_ORIGIN_DATA :: default ())) , HIL_STATE_QUATERNION_DATA :: ID => Ok (Self :: HIL_STATE_QUATERNION (HIL_STATE_QUATERNION_DATA :: default ())) , TERRAIN_CHECK_DATA :: ID => Ok (Self :: TERRAIN_CHECK (TERRAIN_CHECK_DATA :: default ())) , MISSION_REQUEST_LIST_DATA :: ID => Ok (Self :: MISSION_REQUEST_LIST (MISSION_REQUEST_LIST_DATA :: default ())) , EFI_STATUS_DATA :: ID => Ok (Self :: EFI_STATUS (EFI_STATUS_DATA :: default ())) , SET_HOME_POSITION_DATA :: ID => Ok (Self :: SET_HOME_POSITION (SET_HOME_POSITION_DATA :: default ())) , FLIGHT_INFORMATION_DATA :: ID => Ok (Self :: FLIGHT_INFORMATION (FLIGHT_INFORMATION_DATA :: default ())) , LOGGING_DATA_DATA :: ID => Ok (Self :: LOGGING_DATA (LOGGING_DATA_DATA :: default ())) , PARAM_EXT_SET_DATA :: ID => Ok (Self :: PARAM_EXT_SET (PARAM_EXT_SET_DATA :: default ())) , MOUNT_ORIENTATION_DATA :: ID => Ok (Self :: MOUNT_ORIENTATION (MOUNT_ORIENTATION_DATA :: default ())) , RC_CHANNELS_SCALED_DATA :: ID => Ok (Self :: RC_CHANNELS_SCALED (RC_CHANNELS_SCALED_DATA :: default ())) , GPS2_RTK_DATA :: ID => Ok (Self :: GPS2_RTK (GPS2_RTK_DATA :: default ())) , ATTITUDE_DATA :: ID => Ok (Self :: ATTITUDE (ATTITUDE_DATA :: default ())) , ESC_INFO_DATA :: ID => Ok (Self :: ESC_INFO (ESC_INFO_DATA :: default ())) , CELLULAR_STATUS_DATA :: ID => Ok (Self :: CELLULAR_STATUS (CELLULAR_STATUS_DATA :: default ())) , UTM_GLOBAL_POSITION_DATA :: ID => Ok (Self :: UTM_GLOBAL_POSITION (UTM_GLOBAL_POSITION_DATA :: default ())) , TUNNEL_DATA :: ID => Ok (Self :: TUNNEL (TUNNEL_DATA :: default ())) , ENCAPSULATED_DATA_DATA :: ID => Ok (Self :: ENCAPSULATED_DATA (ENCAPSULATED_DATA_DATA :: default ())) , MEMORY_VECT_DATA :: ID => Ok (Self :: MEMORY_VECT (MEMORY_VECT_DATA :: default ())) , PLAY_TUNE_V2_DATA :: ID => Ok (Self :: PLAY_TUNE_V2 (PLAY_TUNE_V2_DATA :: default ())) , HYGROMETER_SENSOR_DATA :: ID => Ok (Self :: HYGROMETER_SENSOR (HYGROMETER_SENSOR_DATA :: default ())) , CELLULAR_CONFIG_DATA :: ID => Ok (Self :: CELLULAR_CONFIG (CELLULAR_CONFIG_DATA :: default ())) , MAG_CAL_REPORT_DATA :: ID => Ok (Self :: MAG_CAL_REPORT (MAG_CAL_REPORT_DATA :: default ())) , TIMESYNC_DATA :: ID => Ok (Self :: TIMESYNC (TIMESYNC_DATA :: default ())) , COMPONENT_INFORMATION_DATA :: ID => Ok (Self :: COMPONENT_INFORMATION (COMPONENT_INFORMATION_DATA :: default ())) , NAMED_VALUE_INT_DATA :: ID => Ok (Self :: NAMED_VALUE_INT (NAMED_VALUE_INT_DATA :: default ())) , GIMBAL_DEVICE_INFORMATION_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_INFORMATION (GIMBAL_DEVICE_INFORMATION_DATA :: default ())) , SAFETY_ALLOWED_AREA_DATA :: ID => Ok (Self :: SAFETY_ALLOWED_AREA (SAFETY_ALLOWED_AREA_DATA :: default ())) , ODOMETRY_DATA :: ID => Ok (Self :: ODOMETRY (ODOMETRY_DATA :: default ())) , OPEN_DRONE_ID_SYSTEM_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SYSTEM (OPEN_DRONE_ID_SYSTEM_DATA :: default ())) , ALTITUDE_DATA :: ID => Ok (Self :: ALTITUDE (ALTITUDE_DATA :: default ())) , PARAM_EXT_ACK_DATA :: ID => Ok (Self :: PARAM_EXT_ACK (PARAM_EXT_ACK_DATA :: default ())) , RESPONSE_EVENT_ERROR_DATA :: ID => Ok (Self :: RESPONSE_EVENT_ERROR (RESPONSE_EVENT_ERROR_DATA :: default ())) , RAW_PRESSURE_DATA :: ID => Ok (Self :: RAW_PRESSURE (RAW_PRESSURE_DATA :: default ())) , MISSION_ITEM_INT_DATA :: ID => Ok (Self :: MISSION_ITEM_INT (MISSION_ITEM_INT_DATA :: default ())) , SCALED_IMU3_DATA :: ID => Ok (Self :: SCALED_IMU3 (SCALED_IMU3_DATA :: default ())) , MESSAGE_INTERVAL_DATA :: ID => Ok (Self :: MESSAGE_INTERVAL (MESSAGE_INTERVAL_DATA :: default ())) , DEBUG_VECT_DATA :: ID => Ok (Self :: DEBUG_VECT (DEBUG_VECT_DATA :: default ())) , CAMERA_CAPTURE_STATUS_DATA :: ID => Ok (Self :: CAMERA_CAPTURE_STATUS (CAMERA_CAPTURE_STATUS_DATA :: default ())) , LOG_REQUEST_END_DATA :: ID => Ok (Self :: LOG_REQUEST_END (LOG_REQUEST_END_DATA :: default ())) , FILE_TRANSFER_PROTOCOL_DATA :: ID => Ok (Self :: FILE_TRANSFER_PROTOCOL (FILE_TRANSFER_PROTOCOL_DATA :: default ())) , PARAM_EXT_REQUEST_READ_DATA :: ID => Ok (Self :: PARAM_EXT_REQUEST_READ (PARAM_EXT_REQUEST_READ_DATA :: default ())) , WINCH_STATUS_DATA :: ID => Ok (Self :: WINCH_STATUS (WINCH_STATUS_DATA :: default ())) , OPEN_DRONE_ID_SELF_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SELF_ID (OPEN_DRONE_ID_SELF_ID_DATA :: default ())) , ISBD_LINK_STATUS_DATA :: ID => Ok (Self :: ISBD_LINK_STATUS (ISBD_LINK_STATUS_DATA :: default ())) , TIME_ESTIMATE_TO_TARGET_DATA :: ID => Ok (Self :: TIME_ESTIMATE_TO_TARGET (TIME_ESTIMATE_TO_TARGET_DATA :: default ())) , CAN_FILTER_MODIFY_DATA :: ID => Ok (Self :: CAN_FILTER_MODIFY (CAN_FILTER_MODIFY_DATA :: default ())) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: default ())) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_MESSAGE_PACK (OPEN_DRONE_ID_MESSAGE_PACK_DATA :: default ())) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => Ok (Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: default ())) , GENERATOR_STATUS_DATA :: ID => Ok (Self :: GENERATOR_STATUS (GENERATOR_STATUS_DATA :: default ())) , ESTIMATOR_STATUS_DATA :: ID => Ok (Self :: ESTIMATOR_STATUS (ESTIMATOR_STATUS_DATA :: default ())) , GPS_RTCM_DATA_DATA :: ID => Ok (Self :: GPS_RTCM_DATA (GPS_RTCM_DATA_DATA :: default ())) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => Ok (Self :: CHANGE_OPERATOR_CONTROL_ACK (CHANGE_OPERATOR_CONTROL_ACK_DATA :: default ())) , POSITION_TARGET_LOCAL_NED_DATA :: ID => Ok (Self :: POSITION_TARGET_LOCAL_NED (POSITION_TARGET_LOCAL_NED_DATA :: default ())) , HIL_SENSOR_DATA :: ID => Ok (Self :: HIL_SENSOR (HIL_SENSOR_DATA :: default ())) , DISTANCE_SENSOR_DATA :: ID => Ok (Self :: DISTANCE_SENSOR (DISTANCE_SENSOR_DATA :: default ())) , VIBRATION_DATA :: ID => Ok (Self :: VIBRATION (VIBRATION_DATA :: default ())) , CAMERA_TRIGGER_DATA :: ID => Ok (Self :: CAMERA_TRIGGER (CAMERA_TRIGGER_DATA :: default ())) , LOG_REQUEST_LIST_DATA :: ID => Ok (Self :: LOG_REQUEST_LIST (LOG_REQUEST_LIST_DATA :: default ())) , PROTOCOL_VERSION_DATA :: ID => Ok (Self :: PROTOCOL_VERSION (PROTOCOL_VERSION_DATA :: default ())) , CONTROL_SYSTEM_STATE_DATA :: ID => Ok (Self :: CONTROL_SYSTEM_STATE (CONTROL_SYSTEM_STATE_DATA :: default ())) , CAMERA_FOV_STATUS_DATA :: ID => Ok (Self :: CAMERA_FOV_STATUS (CAMERA_FOV_STATUS_DATA :: default ())) , SUPPORTED_TUNES_DATA :: ID => Ok (Self :: SUPPORTED_TUNES (SUPPORTED_TUNES_DATA :: default ())) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: default ())) , WIND_COV_DATA :: ID => Ok (Self :: WIND_COV (WIND_COV_DATA :: default ())) , V2_EXTENSION_DATA :: ID => Ok (Self :: V2_EXTENSION (V2_EXTENSION_DATA :: default ())) , CAMERA_INFORMATION_DATA :: ID => Ok (Self :: CAMERA_INFORMATION (CAMERA_INFORMATION_DATA :: default ())) , COLLISION_DATA :: ID => Ok (Self :: COLLISION (COLLISION_DATA :: default ())) , PARAM_REQUEST_LIST_DATA :: ID => Ok (Self :: PARAM_REQUEST_LIST (PARAM_REQUEST_LIST_DATA :: default ())) , HIL_OPTICAL_FLOW_DATA :: ID => Ok (Self :: HIL_OPTICAL_FLOW (HIL_OPTICAL_FLOW_DATA :: default ())) , GPS_INJECT_DATA_DATA :: ID => Ok (Self :: GPS_INJECT_DATA (GPS_INJECT_DATA_DATA :: default ())) , OBSTACLE_DISTANCE_DATA :: ID => Ok (Self :: OBSTACLE_DISTANCE (OBSTACLE_DISTANCE_DATA :: default ())) , REQUEST_DATA_STREAM_DATA :: ID => Ok (Self :: REQUEST_DATA_STREAM (REQUEST_DATA_STREAM_DATA :: default ())) , PING_DATA :: ID => Ok (Self :: PING (PING_DATA :: default ())) , GPS_RTK_DATA :: ID => Ok (Self :: GPS_RTK (GPS_RTK_DATA :: default ())) , GLOBAL_POSITION_INT_DATA :: ID => Ok (Self :: GLOBAL_POSITION_INT (GLOBAL_POSITION_INT_DATA :: default ())) , POSITION_TARGET_GLOBAL_INT_DATA :: ID => Ok (Self :: POSITION_TARGET_GLOBAL_INT (POSITION_TARGET_GLOBAL_INT_DATA :: default ())) , HEARTBEAT_DATA :: ID => Ok (Self :: HEARTBEAT (HEARTBEAT_DATA :: default ())) , CAN_FRAME_DATA :: ID => Ok (Self :: CAN_FRAME (CAN_FRAME_DATA :: default ())) , PARAM_EXT_VALUE_DATA :: ID => Ok (Self :: PARAM_EXT_VALUE (PARAM_EXT_VALUE_DATA :: default ())) , GPS_RAW_INT_DATA :: ID => Ok (Self :: GPS_RAW_INT (GPS_RAW_INT_DATA :: default ())) , SERVO_OUTPUT_RAW_DATA :: ID => Ok (Self :: SERVO_OUTPUT_RAW (SERVO_OUTPUT_RAW_DATA :: default ())) , NAV_CONTROLLER_OUTPUT_DATA :: ID => Ok (Self :: NAV_CONTROLLER_OUTPUT (NAV_CONTROLLER_OUTPUT_DATA :: default ())) , MISSION_CLEAR_ALL_DATA :: ID => Ok (Self :: MISSION_CLEAR_ALL (MISSION_CLEAR_ALL_DATA :: default ())) , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => Ok (Self :: SET_ACTUATOR_CONTROL_TARGET (SET_ACTUATOR_CONTROL_TARGET_DATA :: default ())) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => Ok (Self :: CAMERA_TRACKING_IMAGE_STATUS (CAMERA_TRACKING_IMAGE_STATUS_DATA :: default ())) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_PITCHYAW (GIMBAL_MANAGER_SET_PITCHYAW_DATA :: default ())) , EVENT_DATA :: ID => Ok (Self :: EVENT (EVENT_DATA :: default ())) , VICON_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: VICON_POSITION_ESTIMATE (VICON_POSITION_ESTIMATE_DATA :: default ())) , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_ARM_STATUS (OPEN_DRONE_ID_ARM_STATUS_DATA :: default ())) , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => Ok (Self :: SET_POSITION_TARGET_LOCAL_NED (SET_POSITION_TARGET_LOCAL_NED_DATA :: default ())) , MISSION_ACK_DATA :: ID => Ok (Self :: MISSION_ACK (MISSION_ACK_DATA :: default ())) , CHANGE_OPERATOR_CONTROL_DATA :: ID => Ok (Self :: CHANGE_OPERATOR_CONTROL (CHANGE_OPERATOR_CONTROL_DATA :: default ())) , MANUAL_CONTROL_DATA :: ID => Ok (Self :: MANUAL_CONTROL (MANUAL_CONTROL_DATA :: default ())) , RC_CHANNELS_DATA :: ID => Ok (Self :: RC_CHANNELS (RC_CHANNELS_DATA :: default ())) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: default ())) , HIGH_LATENCY2_DATA :: ID => Ok (Self :: HIGH_LATENCY2 (HIGH_LATENCY2_DATA :: default ())) , LOG_ERASE_DATA :: ID => Ok (Self :: LOG_ERASE (LOG_ERASE_DATA :: default ())) , DEBUG_DATA :: ID => Ok (Self :: DEBUG (DEBUG_DATA :: default ())) , STORAGE_INFORMATION_DATA :: ID => Ok (Self :: STORAGE_INFORMATION (STORAGE_INFORMATION_DATA :: default ())) , LINK_NODE_STATUS_DATA :: ID => Ok (Self :: LINK_NODE_STATUS (LINK_NODE_STATUS_DATA :: default ())) , ATTITUDE_QUATERNION_COV_DATA :: ID => Ok (Self :: ATTITUDE_QUATERNION_COV (ATTITUDE_QUATERNION_COV_DATA :: default ())) , LOGGING_ACK_DATA :: ID => Ok (Self :: LOGGING_ACK (LOGGING_ACK_DATA :: default ())) , AUTH_KEY_DATA :: ID => Ok (Self :: AUTH_KEY (AUTH_KEY_DATA :: default ())) , CAMERA_IMAGE_CAPTURED_DATA :: ID => Ok (Self :: CAMERA_IMAGE_CAPTURED (CAMERA_IMAGE_CAPTURED_DATA :: default ())) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_SET_ATTITUDE (GIMBAL_DEVICE_SET_ATTITUDE_DATA :: default ())) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_OPERATOR_ID (OPEN_DRONE_ID_OPERATOR_ID_DATA :: default ())) , SYS_STATUS_DATA :: ID => Ok (Self :: SYS_STATUS (SYS_STATUS_DATA :: default ())) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => Ok (Self :: SET_POSITION_TARGET_GLOBAL_INT (SET_POSITION_TARGET_GLOBAL_INT_DATA :: default ())) , SIM_STATE_DATA :: ID => Ok (Self :: SIM_STATE (SIM_STATE_DATA :: default ())) , ADSB_VEHICLE_DATA :: ID => Ok (Self :: ADSB_VEHICLE (ADSB_VEHICLE_DATA :: default ())) , BUTTON_CHANGE_DATA :: ID => Ok (Self :: BUTTON_CHANGE (BUTTON_CHANGE_DATA :: default ())) , ESC_STATUS_DATA :: ID => Ok (Self :: ESC_STATUS (ESC_STATUS_DATA :: default ())) , VISION_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: VISION_POSITION_ESTIMATE (VISION_POSITION_ESTIMATE_DATA :: default ())) , AUTOPILOT_VERSION_DATA :: ID => Ok (Self :: AUTOPILOT_VERSION (AUTOPILOT_VERSION_DATA :: default ())) , PLAY_TUNE_DATA :: ID => Ok (Self :: PLAY_TUNE (PLAY_TUNE_DATA :: default ())) , PARAM_EXT_REQUEST_LIST_DATA :: ID => Ok (Self :: PARAM_EXT_REQUEST_LIST (PARAM_EXT_REQUEST_LIST_DATA :: default ())) , SET_ATTITUDE_TARGET_DATA :: ID => Ok (Self :: SET_ATTITUDE_TARGET (SET_ATTITUDE_TARGET_DATA :: default ())) , LOG_REQUEST_DATA_DATA :: ID => Ok (Self :: LOG_REQUEST_DATA (LOG_REQUEST_DATA_DATA :: default ())) , COMMAND_ACK_DATA :: ID => Ok (Self :: COMMAND_ACK (COMMAND_ACK_DATA :: default ())) , GLOBAL_POSITION_INT_COV_DATA :: ID => Ok (Self :: GLOBAL_POSITION_INT_COV (GLOBAL_POSITION_INT_COV_DATA :: default ())) , SCALED_PRESSURE3_DATA :: ID => Ok (Self :: SCALED_PRESSURE3 (SCALED_PRESSURE3_DATA :: default ())) , LOGGING_DATA_ACKED_DATA :: ID => Ok (Self :: LOGGING_DATA_ACKED (LOGGING_DATA_ACKED_DATA :: default ())) , HIGH_LATENCY_DATA :: ID => Ok (Self :: HIGH_LATENCY (HIGH_LATENCY_DATA :: default ())) , VIDEO_STREAM_STATUS_DATA :: ID => Ok (Self :: VIDEO_STREAM_STATUS (VIDEO_STREAM_STATUS_DATA :: default ())) , VFR_HUD_DATA :: ID => Ok (Self :: VFR_HUD (VFR_HUD_DATA :: default ())) , COMMAND_LONG_DATA :: ID => Ok (Self :: COMMAND_LONG (COMMAND_LONG_DATA :: default ())) , GIMBAL_MANAGER_STATUS_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_STATUS (GIMBAL_MANAGER_STATUS_DATA :: default ())) , RAW_RPM_DATA :: ID => Ok (Self :: RAW_RPM (RAW_RPM_DATA :: default ())) , WIFI_CONFIG_AP_DATA :: ID => Ok (Self :: WIFI_CONFIG_AP (WIFI_CONFIG_AP_DATA :: default ())) , DEBUG_FLOAT_ARRAY_DATA :: ID => Ok (Self :: DEBUG_FLOAT_ARRAY (DEBUG_FLOAT_ARRAY_DATA :: default ())) , LOCAL_POSITION_NED_COV_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED_COV (LOCAL_POSITION_NED_COV_DATA :: default ())) , SMART_BATTERY_INFO_DATA :: ID => Ok (Self :: SMART_BATTERY_INFO (SMART_BATTERY_INFO_DATA :: default ())) , CURRENT_EVENT_SEQUENCE_DATA :: ID => Ok (Self :: CURRENT_EVENT_SEQUENCE (CURRENT_EVENT_SEQUENCE_DATA :: default ())) , ATTITUDE_TARGET_DATA :: ID => Ok (Self :: ATTITUDE_TARGET (ATTITUDE_TARGET_DATA :: default ())) , LOCAL_POSITION_NED_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED (LOCAL_POSITION_NED_DATA :: default ())) , RAW_IMU_DATA :: ID => Ok (Self :: RAW_IMU (RAW_IMU_DATA :: default ())) , HIL_ACTUATOR_CONTROLS_DATA :: ID => Ok (Self :: HIL_ACTUATOR_CONTROLS (HIL_ACTUATOR_CONTROLS_DATA :: default ())) , SERIAL_CONTROL_DATA :: ID => Ok (Self :: SERIAL_CONTROL (SERIAL_CONTROL_DATA :: default ())) , MISSION_REQUEST_INT_DATA :: ID => Ok (Self :: MISSION_REQUEST_INT (MISSION_REQUEST_INT_DATA :: default ())) , BATTERY_STATUS_DATA :: ID => Ok (Self :: BATTERY_STATUS (BATTERY_STATUS_DATA :: default ())) , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_BASIC_ID (OPEN_DRONE_ID_BASIC_ID_DATA :: default ())) , OPEN_DRONE_ID_LOCATION_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_LOCATION (OPEN_DRONE_ID_LOCATION_DATA :: default ())) , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => Ok (Self :: SET_GPS_GLOBAL_ORIGIN (SET_GPS_GLOBAL_ORIGIN_DATA :: default ())) , COMMAND_CANCEL_DATA :: ID => Ok (Self :: COMMAND_CANCEL (COMMAND_CANCEL_DATA :: default ())) , GPS2_RAW_DATA :: ID => Ok (Self :: GPS2_RAW (GPS2_RAW_DATA :: default ())) , WHEEL_DISTANCE_DATA :: ID => Ok (Self :: WHEEL_DISTANCE (WHEEL_DISTANCE_DATA :: default ())) , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => Ok (Self :: DATA_TRANSMISSION_HANDSHAKE (DATA_TRANSMISSION_HANDSHAKE_DATA :: default ())) , FENCE_STATUS_DATA :: ID => Ok (Self :: FENCE_STATUS (FENCE_STATUS_DATA :: default ())) , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => Ok (Self :: MISSION_WRITE_PARTIAL_LIST (MISSION_WRITE_PARTIAL_LIST_DATA :: default ())) , MISSION_REQUEST_DATA :: ID => Ok (Self :: MISSION_REQUEST (MISSION_REQUEST_DATA :: default ())) , GIMBAL_MANAGER_INFORMATION_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_INFORMATION (GIMBAL_MANAGER_INFORMATION_DATA :: default ())) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: default ())) , LANDING_TARGET_DATA :: ID => Ok (Self :: LANDING_TARGET (LANDING_TARGET_DATA :: default ())) , AIS_VESSEL_DATA :: ID => Ok (Self :: AIS_VESSEL (AIS_VESSEL_DATA :: default ())) , HIL_GPS_DATA :: ID => Ok (Self :: HIL_GPS (HIL_GPS_DATA :: default ())) , LOG_ENTRY_DATA :: ID => Ok (Self :: LOG_ENTRY (LOG_ENTRY_DATA :: default ())) , SCALED_PRESSURE_DATA :: ID => Ok (Self :: SCALED_PRESSURE (SCALED_PRESSURE_DATA :: default ())) , _ => { Err ("Invalid message id.") } } } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { match self { Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (body) => body . ser (version , bytes) , Self :: ORBIT_EXECUTION_STATUS (body) => body . ser (version , bytes) , Self :: REQUEST_EVENT (body) => body . ser (version , bytes) , Self :: SET_MODE (body) => body . ser (version , bytes) , Self :: CANFD_FRAME (body) => body . ser (version , bytes) , Self :: VIDEO_STREAM_INFORMATION (body) => body . ser (version , bytes) , Self :: SAFETY_SET_ALLOWED_AREA (body) => body . ser (version , bytes) , Self :: COMMAND_INT (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_OVERRIDE (body) => body . ser (version , bytes) , Self :: SCALED_IMU2 (body) => body . ser (version , bytes) , Self :: ACTUATOR_CONTROL_TARGET (body) => body . ser (version , bytes) , Self :: DATA_STREAM (body) => body . ser (version , bytes) , Self :: MISSION_ITEM_REACHED (body) => body . ser (version , bytes) , Self :: HIL_RC_INPUTS_RAW (body) => body . ser (version , bytes) , Self :: HIGHRES_IMU (body) => body . ser (version , bytes) , Self :: FOLLOW_TARGET (body) => body . ser (version , bytes) , Self :: STATUSTEXT (body) => body . ser (version , bytes) , Self :: ACTUATOR_OUTPUT_STATUS (body) => body . ser (version , bytes) , Self :: TRAJECTORY_REPRESENTATION_BEZIER (body) => body . ser (version , bytes) , Self :: CAMERA_SETTINGS (body) => body . ser (version , bytes) , Self :: GLOBAL_VISION_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: OPTICAL_FLOW_RAD (body) => body . ser (version , bytes) , Self :: NAMED_VALUE_FLOAT (body) => body . ser (version , bytes) , Self :: RESOURCE_REQUEST (body) => body . ser (version , bytes) , Self :: HIL_CONTROLS (body) => body . ser (version , bytes) , Self :: GPS_INPUT (body) => body . ser (version , bytes) , Self :: CAMERA_TRACKING_GEO_STATUS (body) => body . ser (version , bytes) , Self :: HOME_POSITION (body) => body . ser (version , bytes) , Self :: PARAM_SET (body) => body . ser (version , bytes) , Self :: UAVCAN_NODE_STATUS (body) => body . ser (version , bytes) , Self :: ONBOARD_COMPUTER_STATUS (body) => body . ser (version , bytes) , Self :: ATTITUDE_QUATERNION (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_PARTIAL_LIST (body) => body . ser (version , bytes) , Self :: MISSION_CURRENT (body) => body . ser (version , bytes) , Self :: RADIO_STATUS (body) => body . ser (version , bytes) , Self :: HIL_STATE (body) => body . ser (version , bytes) , Self :: TERRAIN_DATA (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE2 (body) => body . ser (version , bytes) , Self :: ATT_POS_MOCAP (body) => body . ser (version , bytes) , Self :: GPS_STATUS (body) => body . ser (version , bytes) , Self :: MISSION_ITEM (body) => body . ser (version , bytes) , Self :: VISION_SPEED_ESTIMATE (body) => body . ser (version , bytes) , Self :: SCALED_IMU (body) => body . ser (version , bytes) , Self :: MISSION_COUNT (body) => body . ser (version , bytes) , Self :: PARAM_MAP_RC (body) => body . ser (version , bytes) , Self :: LOG_DATA (body) => body . ser (version , bytes) , Self :: EXTENDED_SYS_STATE (body) => body . ser (version , bytes) , Self :: SETUP_SIGNING (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_RAW (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_ATTITUDE (body) => body . ser (version , bytes) , Self :: UAVCAN_NODE_INFO (body) => body . ser (version , bytes) , Self :: COMPONENT_METADATA (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_AUTHENTICATION (body) => body . ser (version , bytes) , Self :: SYSTEM_TIME (body) => body . ser (version , bytes) , Self :: PARAM_VALUE (body) => body . ser (version , bytes) , Self :: MANUAL_SETPOINT (body) => body . ser (version , bytes) , Self :: MISSION_SET_CURRENT (body) => body . ser (version , bytes) , Self :: OPTICAL_FLOW (body) => body . ser (version , bytes) , Self :: POWER_STATUS (body) => body . ser (version , bytes) , Self :: TERRAIN_REQUEST (body) => body . ser (version , bytes) , Self :: PARAM_REQUEST_READ (body) => body . ser (version , bytes) , Self :: TERRAIN_REPORT (body) => body . ser (version , bytes) , Self :: GPS_GLOBAL_ORIGIN (body) => body . ser (version , bytes) , Self :: HIL_STATE_QUATERNION (body) => body . ser (version , bytes) , Self :: TERRAIN_CHECK (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: EFI_STATUS (body) => body . ser (version , bytes) , Self :: SET_HOME_POSITION (body) => body . ser (version , bytes) , Self :: FLIGHT_INFORMATION (body) => body . ser (version , bytes) , Self :: LOGGING_DATA (body) => body . ser (version , bytes) , Self :: PARAM_EXT_SET (body) => body . ser (version , bytes) , Self :: MOUNT_ORIENTATION (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_SCALED (body) => body . ser (version , bytes) , Self :: GPS2_RTK (body) => body . ser (version , bytes) , Self :: ATTITUDE (body) => body . ser (version , bytes) , Self :: ESC_INFO (body) => body . ser (version , bytes) , Self :: CELLULAR_STATUS (body) => body . ser (version , bytes) , Self :: UTM_GLOBAL_POSITION (body) => body . ser (version , bytes) , Self :: TUNNEL (body) => body . ser (version , bytes) , Self :: ENCAPSULATED_DATA (body) => body . ser (version , bytes) , Self :: MEMORY_VECT (body) => body . ser (version , bytes) , Self :: PLAY_TUNE_V2 (body) => body . ser (version , bytes) , Self :: HYGROMETER_SENSOR (body) => body . ser (version , bytes) , Self :: CELLULAR_CONFIG (body) => body . ser (version , bytes) , Self :: MAG_CAL_REPORT (body) => body . ser (version , bytes) , Self :: TIMESYNC (body) => body . ser (version , bytes) , Self :: COMPONENT_INFORMATION (body) => body . ser (version , bytes) , Self :: NAMED_VALUE_INT (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_INFORMATION (body) => body . ser (version , bytes) , Self :: SAFETY_ALLOWED_AREA (body) => body . ser (version , bytes) , Self :: ODOMETRY (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SYSTEM (body) => body . ser (version , bytes) , Self :: ALTITUDE (body) => body . ser (version , bytes) , Self :: PARAM_EXT_ACK (body) => body . ser (version , bytes) , Self :: RESPONSE_EVENT_ERROR (body) => body . ser (version , bytes) , Self :: RAW_PRESSURE (body) => body . ser (version , bytes) , Self :: MISSION_ITEM_INT (body) => body . ser (version , bytes) , Self :: SCALED_IMU3 (body) => body . ser (version , bytes) , Self :: MESSAGE_INTERVAL (body) => body . ser (version , bytes) , Self :: DEBUG_VECT (body) => body . ser (version , bytes) , Self :: CAMERA_CAPTURE_STATUS (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_END (body) => body . ser (version , bytes) , Self :: FILE_TRANSFER_PROTOCOL (body) => body . ser (version , bytes) , Self :: PARAM_EXT_REQUEST_READ (body) => body . ser (version , bytes) , Self :: WINCH_STATUS (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SELF_ID (body) => body . ser (version , bytes) , Self :: ISBD_LINK_STATUS (body) => body . ser (version , bytes) , Self :: TIME_ESTIMATE_TO_TARGET (body) => body . ser (version , bytes) , Self :: CAN_FILTER_MODIFY (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_MESSAGE_PACK (body) => body . ser (version , bytes) , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (body) => body . ser (version , bytes) , Self :: GENERATOR_STATUS (body) => body . ser (version , bytes) , Self :: ESTIMATOR_STATUS (body) => body . ser (version , bytes) , Self :: GPS_RTCM_DATA (body) => body . ser (version , bytes) , Self :: CHANGE_OPERATOR_CONTROL_ACK (body) => body . ser (version , bytes) , Self :: POSITION_TARGET_LOCAL_NED (body) => body . ser (version , bytes) , Self :: HIL_SENSOR (body) => body . ser (version , bytes) , Self :: DISTANCE_SENSOR (body) => body . ser (version , bytes) , Self :: VIBRATION (body) => body . ser (version , bytes) , Self :: CAMERA_TRIGGER (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: PROTOCOL_VERSION (body) => body . ser (version , bytes) , Self :: CONTROL_SYSTEM_STATE (body) => body . ser (version , bytes) , Self :: CAMERA_FOV_STATUS (body) => body . ser (version , bytes) , Self :: SUPPORTED_TUNES (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (body) => body . ser (version , bytes) , Self :: WIND_COV (body) => body . ser (version , bytes) , Self :: V2_EXTENSION (body) => body . ser (version , bytes) , Self :: CAMERA_INFORMATION (body) => body . ser (version , bytes) , Self :: COLLISION (body) => body . ser (version , bytes) , Self :: PARAM_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: HIL_OPTICAL_FLOW (body) => body . ser (version , bytes) , Self :: GPS_INJECT_DATA (body) => body . ser (version , bytes) , Self :: OBSTACLE_DISTANCE (body) => body . ser (version , bytes) , Self :: REQUEST_DATA_STREAM (body) => body . ser (version , bytes) , Self :: PING (body) => body . ser (version , bytes) , Self :: GPS_RTK (body) => body . ser (version , bytes) , Self :: GLOBAL_POSITION_INT (body) => body . ser (version , bytes) , Self :: POSITION_TARGET_GLOBAL_INT (body) => body . ser (version , bytes) , Self :: HEARTBEAT (body) => body . ser (version , bytes) , Self :: CAN_FRAME (body) => body . ser (version , bytes) , Self :: PARAM_EXT_VALUE (body) => body . ser (version , bytes) , Self :: GPS_RAW_INT (body) => body . ser (version , bytes) , Self :: SERVO_OUTPUT_RAW (body) => body . ser (version , bytes) , Self :: NAV_CONTROLLER_OUTPUT (body) => body . ser (version , bytes) , Self :: MISSION_CLEAR_ALL (body) => body . ser (version , bytes) , Self :: SET_ACTUATOR_CONTROL_TARGET (body) => body . ser (version , bytes) , Self :: CAMERA_TRACKING_IMAGE_STATUS (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_PITCHYAW (body) => body . ser (version , bytes) , Self :: EVENT (body) => body . ser (version , bytes) , Self :: VICON_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_ARM_STATUS (body) => body . ser (version , bytes) , Self :: SET_POSITION_TARGET_LOCAL_NED (body) => body . ser (version , bytes) , Self :: MISSION_ACK (body) => body . ser (version , bytes) , Self :: CHANGE_OPERATOR_CONTROL (body) => body . ser (version , bytes) , Self :: MANUAL_CONTROL (body) => body . ser (version , bytes) , Self :: RC_CHANNELS (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (body) => body . ser (version , bytes) , Self :: HIGH_LATENCY2 (body) => body . ser (version , bytes) , Self :: LOG_ERASE (body) => body . ser (version , bytes) , Self :: DEBUG (body) => body . ser (version , bytes) , Self :: STORAGE_INFORMATION (body) => body . ser (version , bytes) , Self :: LINK_NODE_STATUS (body) => body . ser (version , bytes) , Self :: ATTITUDE_QUATERNION_COV (body) => body . ser (version , bytes) , Self :: LOGGING_ACK (body) => body . ser (version , bytes) , Self :: AUTH_KEY (body) => body . ser (version , bytes) , Self :: CAMERA_IMAGE_CAPTURED (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_SET_ATTITUDE (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_OPERATOR_ID (body) => body . ser (version , bytes) , Self :: SYS_STATUS (body) => body . ser (version , bytes) , Self :: SET_POSITION_TARGET_GLOBAL_INT (body) => body . ser (version , bytes) , Self :: SIM_STATE (body) => body . ser (version , bytes) , Self :: ADSB_VEHICLE (body) => body . ser (version , bytes) , Self :: BUTTON_CHANGE (body) => body . ser (version , bytes) , Self :: ESC_STATUS (body) => body . ser (version , bytes) , Self :: VISION_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: AUTOPILOT_VERSION (body) => body . ser (version , bytes) , Self :: PLAY_TUNE (body) => body . ser (version , bytes) , Self :: PARAM_EXT_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: SET_ATTITUDE_TARGET (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_DATA (body) => body . ser (version , bytes) , Self :: COMMAND_ACK (body) => body . ser (version , bytes) , Self :: GLOBAL_POSITION_INT_COV (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE3 (body) => body . ser (version , bytes) , Self :: LOGGING_DATA_ACKED (body) => body . ser (version , bytes) , Self :: HIGH_LATENCY (body) => body . ser (version , bytes) , Self :: VIDEO_STREAM_STATUS (body) => body . ser (version , bytes) , Self :: VFR_HUD (body) => body . ser (version , bytes) , Self :: COMMAND_LONG (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_STATUS (body) => body . ser (version , bytes) , Self :: RAW_RPM (body) => body . ser (version , bytes) , Self :: WIFI_CONFIG_AP (body) => body . ser (version , bytes) , Self :: DEBUG_FLOAT_ARRAY (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED_COV (body) => body . ser (version , bytes) , Self :: SMART_BATTERY_INFO (body) => body . ser (version , bytes) , Self :: CURRENT_EVENT_SEQUENCE (body) => body . ser (version , bytes) , Self :: ATTITUDE_TARGET (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED (body) => body . ser (version , bytes) , Self :: RAW_IMU (body) => body . ser (version , bytes) , Self :: HIL_ACTUATOR_CONTROLS (body) => body . ser (version , bytes) , Self :: SERIAL_CONTROL (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_INT (body) => body . ser (version , bytes) , Self :: BATTERY_STATUS (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_BASIC_ID (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_LOCATION (body) => body . ser (version , bytes) , Self :: SET_GPS_GLOBAL_ORIGIN (body) => body . ser (version , bytes) , Self :: COMMAND_CANCEL (body) => body . ser (version , bytes) , Self :: GPS2_RAW (body) => body . ser (version , bytes) , Self :: WHEEL_DISTANCE (body) => body . ser (version , bytes) , Self :: DATA_TRANSMISSION_HANDSHAKE (body) => body . ser (version , bytes) , Self :: FENCE_STATUS (body) => body . ser (version , bytes) , Self :: MISSION_WRITE_PARTIAL_LIST (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_INFORMATION (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (body) => body . ser (version , bytes) , Self :: LANDING_TARGET (body) => body . ser (version , bytes) , Self :: AIS_VESSEL (body) => body . ser (version , bytes) , Self :: HIL_GPS (body) => body . ser (version , bytes) , Self :: LOG_ENTRY (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE (body) => body . ser (version , bytes) , } } fn extra_crc (id : u32) -> u8 { match id { AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: EXTRA_CRC , ORBIT_EXECUTION_STATUS_DATA :: ID => ORBIT_EXECUTION_STATUS_DATA :: EXTRA_CRC , REQUEST_EVENT_DATA :: ID => REQUEST_EVENT_DATA :: EXTRA_CRC , SET_MODE_DATA :: ID => SET_MODE_DATA :: EXTRA_CRC , CANFD_FRAME_DATA :: ID => CANFD_FRAME_DATA :: EXTRA_CRC , VIDEO_STREAM_INFORMATION_DATA :: ID => VIDEO_STREAM_INFORMATION_DATA :: EXTRA_CRC , SAFETY_SET_ALLOWED_AREA_DATA :: ID => SAFETY_SET_ALLOWED_AREA_DATA :: EXTRA_CRC , COMMAND_INT_DATA :: ID => COMMAND_INT_DATA :: EXTRA_CRC , RC_CHANNELS_OVERRIDE_DATA :: ID => RC_CHANNELS_OVERRIDE_DATA :: EXTRA_CRC , SCALED_IMU2_DATA :: ID => SCALED_IMU2_DATA :: EXTRA_CRC , ACTUATOR_CONTROL_TARGET_DATA :: ID => ACTUATOR_CONTROL_TARGET_DATA :: EXTRA_CRC , DATA_STREAM_DATA :: ID => DATA_STREAM_DATA :: EXTRA_CRC , MISSION_ITEM_REACHED_DATA :: ID => MISSION_ITEM_REACHED_DATA :: EXTRA_CRC , HIL_RC_INPUTS_RAW_DATA :: ID => HIL_RC_INPUTS_RAW_DATA :: EXTRA_CRC , HIGHRES_IMU_DATA :: ID => HIGHRES_IMU_DATA :: EXTRA_CRC , FOLLOW_TARGET_DATA :: ID => FOLLOW_TARGET_DATA :: EXTRA_CRC , STATUSTEXT_DATA :: ID => STATUSTEXT_DATA :: EXTRA_CRC , ACTUATOR_OUTPUT_STATUS_DATA :: ID => ACTUATOR_OUTPUT_STATUS_DATA :: EXTRA_CRC , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: EXTRA_CRC , CAMERA_SETTINGS_DATA :: ID => CAMERA_SETTINGS_DATA :: EXTRA_CRC , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: EXTRA_CRC , OPTICAL_FLOW_RAD_DATA :: ID => OPTICAL_FLOW_RAD_DATA :: EXTRA_CRC , NAMED_VALUE_FLOAT_DATA :: ID => NAMED_VALUE_FLOAT_DATA :: EXTRA_CRC , RESOURCE_REQUEST_DATA :: ID => RESOURCE_REQUEST_DATA :: EXTRA_CRC , HIL_CONTROLS_DATA :: ID => HIL_CONTROLS_DATA :: EXTRA_CRC , GPS_INPUT_DATA :: ID => GPS_INPUT_DATA :: EXTRA_CRC , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => CAMERA_TRACKING_GEO_STATUS_DATA :: EXTRA_CRC , HOME_POSITION_DATA :: ID => HOME_POSITION_DATA :: EXTRA_CRC , PARAM_SET_DATA :: ID => PARAM_SET_DATA :: EXTRA_CRC , UAVCAN_NODE_STATUS_DATA :: ID => UAVCAN_NODE_STATUS_DATA :: EXTRA_CRC , ONBOARD_COMPUTER_STATUS_DATA :: ID => ONBOARD_COMPUTER_STATUS_DATA :: EXTRA_CRC , ATTITUDE_QUATERNION_DATA :: ID => ATTITUDE_QUATERNION_DATA :: EXTRA_CRC , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => MISSION_REQUEST_PARTIAL_LIST_DATA :: EXTRA_CRC , MISSION_CURRENT_DATA :: ID => MISSION_CURRENT_DATA :: EXTRA_CRC , RADIO_STATUS_DATA :: ID => RADIO_STATUS_DATA :: EXTRA_CRC , HIL_STATE_DATA :: ID => HIL_STATE_DATA :: EXTRA_CRC , TERRAIN_DATA_DATA :: ID => TERRAIN_DATA_DATA :: EXTRA_CRC , SCALED_PRESSURE2_DATA :: ID => SCALED_PRESSURE2_DATA :: EXTRA_CRC , ATT_POS_MOCAP_DATA :: ID => ATT_POS_MOCAP_DATA :: EXTRA_CRC , GPS_STATUS_DATA :: ID => GPS_STATUS_DATA :: EXTRA_CRC , MISSION_ITEM_DATA :: ID => MISSION_ITEM_DATA :: EXTRA_CRC , VISION_SPEED_ESTIMATE_DATA :: ID => VISION_SPEED_ESTIMATE_DATA :: EXTRA_CRC , SCALED_IMU_DATA :: ID => SCALED_IMU_DATA :: EXTRA_CRC , MISSION_COUNT_DATA :: ID => MISSION_COUNT_DATA :: EXTRA_CRC , PARAM_MAP_RC_DATA :: ID => PARAM_MAP_RC_DATA :: EXTRA_CRC , LOG_DATA_DATA :: ID => LOG_DATA_DATA :: EXTRA_CRC , EXTENDED_SYS_STATE_DATA :: ID => EXTENDED_SYS_STATE_DATA :: EXTRA_CRC , SETUP_SIGNING_DATA :: ID => SETUP_SIGNING_DATA :: EXTRA_CRC , RC_CHANNELS_RAW_DATA :: ID => RC_CHANNELS_RAW_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: EXTRA_CRC , UAVCAN_NODE_INFO_DATA :: ID => UAVCAN_NODE_INFO_DATA :: EXTRA_CRC , COMPONENT_METADATA_DATA :: ID => COMPONENT_METADATA_DATA :: EXTRA_CRC , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => OPEN_DRONE_ID_AUTHENTICATION_DATA :: EXTRA_CRC , SYSTEM_TIME_DATA :: ID => SYSTEM_TIME_DATA :: EXTRA_CRC , PARAM_VALUE_DATA :: ID => PARAM_VALUE_DATA :: EXTRA_CRC , MANUAL_SETPOINT_DATA :: ID => MANUAL_SETPOINT_DATA :: EXTRA_CRC , MISSION_SET_CURRENT_DATA :: ID => MISSION_SET_CURRENT_DATA :: EXTRA_CRC , OPTICAL_FLOW_DATA :: ID => OPTICAL_FLOW_DATA :: EXTRA_CRC , POWER_STATUS_DATA :: ID => POWER_STATUS_DATA :: EXTRA_CRC , TERRAIN_REQUEST_DATA :: ID => TERRAIN_REQUEST_DATA :: EXTRA_CRC , PARAM_REQUEST_READ_DATA :: ID => PARAM_REQUEST_READ_DATA :: EXTRA_CRC , TERRAIN_REPORT_DATA :: ID => TERRAIN_REPORT_DATA :: EXTRA_CRC , GPS_GLOBAL_ORIGIN_DATA :: ID => GPS_GLOBAL_ORIGIN_DATA :: EXTRA_CRC , HIL_STATE_QUATERNION_DATA :: ID => HIL_STATE_QUATERNION_DATA :: EXTRA_CRC , TERRAIN_CHECK_DATA :: ID => TERRAIN_CHECK_DATA :: EXTRA_CRC , MISSION_REQUEST_LIST_DATA :: ID => MISSION_REQUEST_LIST_DATA :: EXTRA_CRC , EFI_STATUS_DATA :: ID => EFI_STATUS_DATA :: EXTRA_CRC , SET_HOME_POSITION_DATA :: ID => SET_HOME_POSITION_DATA :: EXTRA_CRC , FLIGHT_INFORMATION_DATA :: ID => FLIGHT_INFORMATION_DATA :: EXTRA_CRC , LOGGING_DATA_DATA :: ID => LOGGING_DATA_DATA :: EXTRA_CRC , PARAM_EXT_SET_DATA :: ID => PARAM_EXT_SET_DATA :: EXTRA_CRC , MOUNT_ORIENTATION_DATA :: ID => MOUNT_ORIENTATION_DATA :: EXTRA_CRC , RC_CHANNELS_SCALED_DATA :: ID => RC_CHANNELS_SCALED_DATA :: EXTRA_CRC , GPS2_RTK_DATA :: ID => GPS2_RTK_DATA :: EXTRA_CRC , ATTITUDE_DATA :: ID => ATTITUDE_DATA :: EXTRA_CRC , ESC_INFO_DATA :: ID => ESC_INFO_DATA :: EXTRA_CRC , CELLULAR_STATUS_DATA :: ID => CELLULAR_STATUS_DATA :: EXTRA_CRC , UTM_GLOBAL_POSITION_DATA :: ID => UTM_GLOBAL_POSITION_DATA :: EXTRA_CRC , TUNNEL_DATA :: ID => TUNNEL_DATA :: EXTRA_CRC , ENCAPSULATED_DATA_DATA :: ID => ENCAPSULATED_DATA_DATA :: EXTRA_CRC , MEMORY_VECT_DATA :: ID => MEMORY_VECT_DATA :: EXTRA_CRC , PLAY_TUNE_V2_DATA :: ID => PLAY_TUNE_V2_DATA :: EXTRA_CRC , HYGROMETER_SENSOR_DATA :: ID => HYGROMETER_SENSOR_DATA :: EXTRA_CRC , CELLULAR_CONFIG_DATA :: ID => CELLULAR_CONFIG_DATA :: EXTRA_CRC , MAG_CAL_REPORT_DATA :: ID => MAG_CAL_REPORT_DATA :: EXTRA_CRC , TIMESYNC_DATA :: ID => TIMESYNC_DATA :: EXTRA_CRC , COMPONENT_INFORMATION_DATA :: ID => COMPONENT_INFORMATION_DATA :: EXTRA_CRC , NAMED_VALUE_INT_DATA :: ID => NAMED_VALUE_INT_DATA :: EXTRA_CRC , GIMBAL_DEVICE_INFORMATION_DATA :: ID => GIMBAL_DEVICE_INFORMATION_DATA :: EXTRA_CRC , SAFETY_ALLOWED_AREA_DATA :: ID => SAFETY_ALLOWED_AREA_DATA :: EXTRA_CRC , ODOMETRY_DATA :: ID => ODOMETRY_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SYSTEM_DATA :: ID => OPEN_DRONE_ID_SYSTEM_DATA :: EXTRA_CRC , ALTITUDE_DATA :: ID => ALTITUDE_DATA :: EXTRA_CRC , PARAM_EXT_ACK_DATA :: ID => PARAM_EXT_ACK_DATA :: EXTRA_CRC , RESPONSE_EVENT_ERROR_DATA :: ID => RESPONSE_EVENT_ERROR_DATA :: EXTRA_CRC , RAW_PRESSURE_DATA :: ID => RAW_PRESSURE_DATA :: EXTRA_CRC , MISSION_ITEM_INT_DATA :: ID => MISSION_ITEM_INT_DATA :: EXTRA_CRC , SCALED_IMU3_DATA :: ID => SCALED_IMU3_DATA :: EXTRA_CRC , MESSAGE_INTERVAL_DATA :: ID => MESSAGE_INTERVAL_DATA :: EXTRA_CRC , DEBUG_VECT_DATA :: ID => DEBUG_VECT_DATA :: EXTRA_CRC , CAMERA_CAPTURE_STATUS_DATA :: ID => CAMERA_CAPTURE_STATUS_DATA :: EXTRA_CRC , LOG_REQUEST_END_DATA :: ID => LOG_REQUEST_END_DATA :: EXTRA_CRC , FILE_TRANSFER_PROTOCOL_DATA :: ID => FILE_TRANSFER_PROTOCOL_DATA :: EXTRA_CRC , PARAM_EXT_REQUEST_READ_DATA :: ID => PARAM_EXT_REQUEST_READ_DATA :: EXTRA_CRC , WINCH_STATUS_DATA :: ID => WINCH_STATUS_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SELF_ID_DATA :: ID => OPEN_DRONE_ID_SELF_ID_DATA :: EXTRA_CRC , ISBD_LINK_STATUS_DATA :: ID => ISBD_LINK_STATUS_DATA :: EXTRA_CRC , TIME_ESTIMATE_TO_TARGET_DATA :: ID => TIME_ESTIMATE_TO_TARGET_DATA :: EXTRA_CRC , CAN_FILTER_MODIFY_DATA :: ID => CAN_FILTER_MODIFY_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: EXTRA_CRC , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: EXTRA_CRC , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: EXTRA_CRC , GENERATOR_STATUS_DATA :: ID => GENERATOR_STATUS_DATA :: EXTRA_CRC , ESTIMATOR_STATUS_DATA :: ID => ESTIMATOR_STATUS_DATA :: EXTRA_CRC , GPS_RTCM_DATA_DATA :: ID => GPS_RTCM_DATA_DATA :: EXTRA_CRC , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => CHANGE_OPERATOR_CONTROL_ACK_DATA :: EXTRA_CRC , POSITION_TARGET_LOCAL_NED_DATA :: ID => POSITION_TARGET_LOCAL_NED_DATA :: EXTRA_CRC , HIL_SENSOR_DATA :: ID => HIL_SENSOR_DATA :: EXTRA_CRC , DISTANCE_SENSOR_DATA :: ID => DISTANCE_SENSOR_DATA :: EXTRA_CRC , VIBRATION_DATA :: ID => VIBRATION_DATA :: EXTRA_CRC , CAMERA_TRIGGER_DATA :: ID => CAMERA_TRIGGER_DATA :: EXTRA_CRC , LOG_REQUEST_LIST_DATA :: ID => LOG_REQUEST_LIST_DATA :: EXTRA_CRC , PROTOCOL_VERSION_DATA :: ID => PROTOCOL_VERSION_DATA :: EXTRA_CRC , CONTROL_SYSTEM_STATE_DATA :: ID => CONTROL_SYSTEM_STATE_DATA :: EXTRA_CRC , CAMERA_FOV_STATUS_DATA :: ID => CAMERA_FOV_STATUS_DATA :: EXTRA_CRC , SUPPORTED_TUNES_DATA :: ID => SUPPORTED_TUNES_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: EXTRA_CRC , WIND_COV_DATA :: ID => WIND_COV_DATA :: EXTRA_CRC , V2_EXTENSION_DATA :: ID => V2_EXTENSION_DATA :: EXTRA_CRC , CAMERA_INFORMATION_DATA :: ID => CAMERA_INFORMATION_DATA :: EXTRA_CRC , COLLISION_DATA :: ID => COLLISION_DATA :: EXTRA_CRC , PARAM_REQUEST_LIST_DATA :: ID => PARAM_REQUEST_LIST_DATA :: EXTRA_CRC , HIL_OPTICAL_FLOW_DATA :: ID => HIL_OPTICAL_FLOW_DATA :: EXTRA_CRC , GPS_INJECT_DATA_DATA :: ID => GPS_INJECT_DATA_DATA :: EXTRA_CRC , OBSTACLE_DISTANCE_DATA :: ID => OBSTACLE_DISTANCE_DATA :: EXTRA_CRC , REQUEST_DATA_STREAM_DATA :: ID => REQUEST_DATA_STREAM_DATA :: EXTRA_CRC , PING_DATA :: ID => PING_DATA :: EXTRA_CRC , GPS_RTK_DATA :: ID => GPS_RTK_DATA :: EXTRA_CRC , GLOBAL_POSITION_INT_DATA :: ID => GLOBAL_POSITION_INT_DATA :: EXTRA_CRC , POSITION_TARGET_GLOBAL_INT_DATA :: ID => POSITION_TARGET_GLOBAL_INT_DATA :: EXTRA_CRC , HEARTBEAT_DATA :: ID => HEARTBEAT_DATA :: EXTRA_CRC , CAN_FRAME_DATA :: ID => CAN_FRAME_DATA :: EXTRA_CRC , PARAM_EXT_VALUE_DATA :: ID => PARAM_EXT_VALUE_DATA :: EXTRA_CRC , GPS_RAW_INT_DATA :: ID => GPS_RAW_INT_DATA :: EXTRA_CRC , SERVO_OUTPUT_RAW_DATA :: ID => SERVO_OUTPUT_RAW_DATA :: EXTRA_CRC , NAV_CONTROLLER_OUTPUT_DATA :: ID => NAV_CONTROLLER_OUTPUT_DATA :: EXTRA_CRC , MISSION_CLEAR_ALL_DATA :: ID => MISSION_CLEAR_ALL_DATA :: EXTRA_CRC , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => SET_ACTUATOR_CONTROL_TARGET_DATA :: EXTRA_CRC , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => CAMERA_TRACKING_IMAGE_STATUS_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: EXTRA_CRC , EVENT_DATA :: ID => EVENT_DATA :: EXTRA_CRC , VICON_POSITION_ESTIMATE_DATA :: ID => VICON_POSITION_ESTIMATE_DATA :: EXTRA_CRC , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => OPEN_DRONE_ID_ARM_STATUS_DATA :: EXTRA_CRC , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => SET_POSITION_TARGET_LOCAL_NED_DATA :: EXTRA_CRC , MISSION_ACK_DATA :: ID => MISSION_ACK_DATA :: EXTRA_CRC , CHANGE_OPERATOR_CONTROL_DATA :: ID => CHANGE_OPERATOR_CONTROL_DATA :: EXTRA_CRC , MANUAL_CONTROL_DATA :: ID => MANUAL_CONTROL_DATA :: EXTRA_CRC , RC_CHANNELS_DATA :: ID => RC_CHANNELS_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: EXTRA_CRC , HIGH_LATENCY2_DATA :: ID => HIGH_LATENCY2_DATA :: EXTRA_CRC , LOG_ERASE_DATA :: ID => LOG_ERASE_DATA :: EXTRA_CRC , DEBUG_DATA :: ID => DEBUG_DATA :: EXTRA_CRC , STORAGE_INFORMATION_DATA :: ID => STORAGE_INFORMATION_DATA :: EXTRA_CRC , LINK_NODE_STATUS_DATA :: ID => LINK_NODE_STATUS_DATA :: EXTRA_CRC , ATTITUDE_QUATERNION_COV_DATA :: ID => ATTITUDE_QUATERNION_COV_DATA :: EXTRA_CRC , LOGGING_ACK_DATA :: ID => LOGGING_ACK_DATA :: EXTRA_CRC , AUTH_KEY_DATA :: ID => AUTH_KEY_DATA :: EXTRA_CRC , CAMERA_IMAGE_CAPTURED_DATA :: ID => CAMERA_IMAGE_CAPTURED_DATA :: EXTRA_CRC , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: EXTRA_CRC , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => OPEN_DRONE_ID_OPERATOR_ID_DATA :: EXTRA_CRC , SYS_STATUS_DATA :: ID => SYS_STATUS_DATA :: EXTRA_CRC , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => SET_POSITION_TARGET_GLOBAL_INT_DATA :: EXTRA_CRC , SIM_STATE_DATA :: ID => SIM_STATE_DATA :: EXTRA_CRC , ADSB_VEHICLE_DATA :: ID => ADSB_VEHICLE_DATA :: EXTRA_CRC , BUTTON_CHANGE_DATA :: ID => BUTTON_CHANGE_DATA :: EXTRA_CRC , ESC_STATUS_DATA :: ID => ESC_STATUS_DATA :: EXTRA_CRC , VISION_POSITION_ESTIMATE_DATA :: ID => VISION_POSITION_ESTIMATE_DATA :: EXTRA_CRC , AUTOPILOT_VERSION_DATA :: ID => AUTOPILOT_VERSION_DATA :: EXTRA_CRC , PLAY_TUNE_DATA :: ID => PLAY_TUNE_DATA :: EXTRA_CRC , PARAM_EXT_REQUEST_LIST_DATA :: ID => PARAM_EXT_REQUEST_LIST_DATA :: EXTRA_CRC , SET_ATTITUDE_TARGET_DATA :: ID => SET_ATTITUDE_TARGET_DATA :: EXTRA_CRC , LOG_REQUEST_DATA_DATA :: ID => LOG_REQUEST_DATA_DATA :: EXTRA_CRC , COMMAND_ACK_DATA :: ID => COMMAND_ACK_DATA :: EXTRA_CRC , GLOBAL_POSITION_INT_COV_DATA :: ID => GLOBAL_POSITION_INT_COV_DATA :: EXTRA_CRC , SCALED_PRESSURE3_DATA :: ID => SCALED_PRESSURE3_DATA :: EXTRA_CRC , LOGGING_DATA_ACKED_DATA :: ID => LOGGING_DATA_ACKED_DATA :: EXTRA_CRC , HIGH_LATENCY_DATA :: ID => HIGH_LATENCY_DATA :: EXTRA_CRC , VIDEO_STREAM_STATUS_DATA :: ID => VIDEO_STREAM_STATUS_DATA :: EXTRA_CRC , VFR_HUD_DATA :: ID => VFR_HUD_DATA :: EXTRA_CRC , COMMAND_LONG_DATA :: ID => COMMAND_LONG_DATA :: EXTRA_CRC , GIMBAL_MANAGER_STATUS_DATA :: ID => GIMBAL_MANAGER_STATUS_DATA :: EXTRA_CRC , RAW_RPM_DATA :: ID => RAW_RPM_DATA :: EXTRA_CRC , WIFI_CONFIG_AP_DATA :: ID => WIFI_CONFIG_AP_DATA :: EXTRA_CRC , DEBUG_FLOAT_ARRAY_DATA :: ID => DEBUG_FLOAT_ARRAY_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_COV_DATA :: ID => LOCAL_POSITION_NED_COV_DATA :: EXTRA_CRC , SMART_BATTERY_INFO_DATA :: ID => SMART_BATTERY_INFO_DATA :: EXTRA_CRC , CURRENT_EVENT_SEQUENCE_DATA :: ID => CURRENT_EVENT_SEQUENCE_DATA :: EXTRA_CRC , ATTITUDE_TARGET_DATA :: ID => ATTITUDE_TARGET_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_DATA :: ID => LOCAL_POSITION_NED_DATA :: EXTRA_CRC , RAW_IMU_DATA :: ID => RAW_IMU_DATA :: EXTRA_CRC , HIL_ACTUATOR_CONTROLS_DATA :: ID => HIL_ACTUATOR_CONTROLS_DATA :: EXTRA_CRC , SERIAL_CONTROL_DATA :: ID => SERIAL_CONTROL_DATA :: EXTRA_CRC , MISSION_REQUEST_INT_DATA :: ID => MISSION_REQUEST_INT_DATA :: EXTRA_CRC , BATTERY_STATUS_DATA :: ID => BATTERY_STATUS_DATA :: EXTRA_CRC , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => OPEN_DRONE_ID_BASIC_ID_DATA :: EXTRA_CRC , OPEN_DRONE_ID_LOCATION_DATA :: ID => OPEN_DRONE_ID_LOCATION_DATA :: EXTRA_CRC , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => SET_GPS_GLOBAL_ORIGIN_DATA :: EXTRA_CRC , COMMAND_CANCEL_DATA :: ID => COMMAND_CANCEL_DATA :: EXTRA_CRC , GPS2_RAW_DATA :: ID => GPS2_RAW_DATA :: EXTRA_CRC , WHEEL_DISTANCE_DATA :: ID => WHEEL_DISTANCE_DATA :: EXTRA_CRC , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => DATA_TRANSMISSION_HANDSHAKE_DATA :: EXTRA_CRC , FENCE_STATUS_DATA :: ID => FENCE_STATUS_DATA :: EXTRA_CRC , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => MISSION_WRITE_PARTIAL_LIST_DATA :: EXTRA_CRC , MISSION_REQUEST_DATA :: ID => MISSION_REQUEST_DATA :: EXTRA_CRC , GIMBAL_MANAGER_INFORMATION_DATA :: ID => GIMBAL_MANAGER_INFORMATION_DATA :: EXTRA_CRC , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: EXTRA_CRC , LANDING_TARGET_DATA :: ID => LANDING_TARGET_DATA :: EXTRA_CRC , AIS_VESSEL_DATA :: ID => AIS_VESSEL_DATA :: EXTRA_CRC , HIL_GPS_DATA :: ID => HIL_GPS_DATA :: EXTRA_CRC , LOG_ENTRY_DATA :: ID => LOG_ENTRY_DATA :: EXTRA_CRC , SCALED_PRESSURE_DATA :: ID => SCALED_PRESSURE_DATA :: EXTRA_CRC , _ => { 0 } , } } }
 
\ No newline at end of file diff --git a/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/icarous.rs.html b/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/icarous.rs.html index 99e006d30d..d86e7da8b6 100644 --- a/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/icarous.rs.html +++ b/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/icarous.rs.html @@ -1,3 +1,3 @@ icarous.rs - source
1
-
# ! [doc = "This file was automatically generated, do not edit"] # [allow (unused_imports)] use num_derive :: FromPrimitive ; # [allow (unused_imports)] use num_traits :: FromPrimitive ; # [allow (unused_imports)] use num_derive :: ToPrimitive ; # [allow (unused_imports)] use num_traits :: ToPrimitive ; # [allow (unused_imports)] use bitflags :: bitflags ; use mavlink_core :: { MavlinkVersion , Message , MessageData , bytes :: Bytes , bytes_mut :: BytesMut } ; # [cfg (feature = "serde")] use serde :: { Serialize , Deserialize } ; # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum IcarousTrackBandTypes { ICAROUS_TRACK_BAND_TYPE_NONE = 0 , ICAROUS_TRACK_BAND_TYPE_NEAR = 1 , ICAROUS_TRACK_BAND_TYPE_RECOVERY = 2 , } impl IcarousTrackBandTypes { pub const DEFAULT : Self = Self :: ICAROUS_TRACK_BAND_TYPE_NONE ; } impl Default for IcarousTrackBandTypes { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum IcarousFmsState { ICAROUS_FMS_STATE_IDLE = 0 , ICAROUS_FMS_STATE_TAKEOFF = 1 , ICAROUS_FMS_STATE_CLIMB = 2 , ICAROUS_FMS_STATE_CRUISE = 3 , ICAROUS_FMS_STATE_APPROACH = 4 , ICAROUS_FMS_STATE_LAND = 5 , } impl IcarousFmsState { pub const DEFAULT : Self = Self :: ICAROUS_FMS_STATE_IDLE ; } impl Default for IcarousFmsState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ICAROUS_KINEMATIC_BANDS_DATA { pub min1 : f32 , pub max1 : f32 , pub min2 : f32 , pub max2 : f32 , pub min3 : f32 , pub max3 : f32 , pub min4 : f32 , pub max4 : f32 , pub min5 : f32 , pub max5 : f32 , pub numBands : i8 , pub type1 : IcarousTrackBandTypes , pub type2 : IcarousTrackBandTypes , pub type3 : IcarousTrackBandTypes , pub type4 : IcarousTrackBandTypes , pub type5 : IcarousTrackBandTypes , } impl ICAROUS_KINEMATIC_BANDS_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { min1 : 0.0_f32 , max1 : 0.0_f32 , min2 : 0.0_f32 , max2 : 0.0_f32 , min3 : 0.0_f32 , max3 : 0.0_f32 , min4 : 0.0_f32 , max4 : 0.0_f32 , min5 : 0.0_f32 , max5 : 0.0_f32 , numBands : 0_i8 , type1 : IcarousTrackBandTypes :: DEFAULT , type2 : IcarousTrackBandTypes :: DEFAULT , type3 : IcarousTrackBandTypes :: DEFAULT , type4 : IcarousTrackBandTypes :: DEFAULT , type5 : IcarousTrackBandTypes :: DEFAULT , } ; } impl Default for ICAROUS_KINEMATIC_BANDS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ICAROUS_KINEMATIC_BANDS_DATA { type Message = MavMessage ; const ID : u32 = 42001u32 ; const NAME : & 'static str = "ICAROUS_KINEMATIC_BANDS" ; const EXTRA_CRC : u8 = 239u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . min1 = buf . get_f32_le () ; __struct . max1 = buf . get_f32_le () ; __struct . min2 = buf . get_f32_le () ; __struct . max2 = buf . get_f32_le () ; __struct . min3 = buf . get_f32_le () ; __struct . max3 = buf . get_f32_le () ; __struct . min4 = buf . get_f32_le () ; __struct . max4 = buf . get_f32_le () ; __struct . min5 = buf . get_f32_le () ; __struct . max5 = buf . get_f32_le () ; __struct . numBands = buf . get_i8 () ; let tmp = buf . get_u8 () ; __struct . type1 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type2 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type3 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type4 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type5 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . min1) ; __tmp . put_f32_le (self . max1) ; __tmp . put_f32_le (self . min2) ; __tmp . put_f32_le (self . max2) ; __tmp . put_f32_le (self . min3) ; __tmp . put_f32_le (self . max3) ; __tmp . put_f32_le (self . min4) ; __tmp . put_f32_le (self . max4) ; __tmp . put_f32_le (self . min5) ; __tmp . put_f32_le (self . max5) ; __tmp . put_i8 (self . numBands) ; __tmp . put_u8 (self . type1 as u8) ; __tmp . put_u8 (self . type2 as u8) ; __tmp . put_u8 (self . type3 as u8) ; __tmp . put_u8 (self . type4 as u8) ; __tmp . put_u8 (self . type5 as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ICAROUS_HEARTBEAT_DATA { pub status : IcarousFmsState , } impl ICAROUS_HEARTBEAT_DATA { pub const ENCODED_LEN : usize = 1usize ; pub const DEFAULT : Self = Self { status : IcarousFmsState :: DEFAULT , } ; } impl Default for ICAROUS_HEARTBEAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ICAROUS_HEARTBEAT_DATA { type Message = MavMessage ; const ID : u32 = 42000u32 ; const NAME : & 'static str = "ICAROUS_HEARTBEAT" ; const EXTRA_CRC : u8 = 227u8 ; const ENCODED_LEN : usize = 1usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousFmsState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Clone , PartialEq , Debug)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMessage { ICAROUS_KINEMATIC_BANDS (ICAROUS_KINEMATIC_BANDS_DATA) , ICAROUS_HEARTBEAT (ICAROUS_HEARTBEAT_DATA) , } impl Message for MavMessage { fn parse (version : MavlinkVersion , id : u32 , payload : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { match id { ICAROUS_KINEMATIC_BANDS_DATA :: ID => ICAROUS_KINEMATIC_BANDS_DATA :: deser (version , payload) . map (Self :: ICAROUS_KINEMATIC_BANDS) , ICAROUS_HEARTBEAT_DATA :: ID => ICAROUS_HEARTBEAT_DATA :: deser (version , payload) . map (Self :: ICAROUS_HEARTBEAT) , _ => { Err (:: mavlink_core :: error :: ParserError :: UnknownMessage { id }) } , } } fn message_name (& self) -> & 'static str { match self { Self :: ICAROUS_KINEMATIC_BANDS (..) => ICAROUS_KINEMATIC_BANDS_DATA :: NAME , Self :: ICAROUS_HEARTBEAT (..) => ICAROUS_HEARTBEAT_DATA :: NAME , } } fn message_id (& self) -> u32 { match self { Self :: ICAROUS_KINEMATIC_BANDS (..) => ICAROUS_KINEMATIC_BANDS_DATA :: ID , Self :: ICAROUS_HEARTBEAT (..) => ICAROUS_HEARTBEAT_DATA :: ID , } } fn message_id_from_name (name : & str) -> Result < u32 , & 'static str > { match name { ICAROUS_KINEMATIC_BANDS_DATA :: NAME => Ok (ICAROUS_KINEMATIC_BANDS_DATA :: ID) , ICAROUS_HEARTBEAT_DATA :: NAME => Ok (ICAROUS_HEARTBEAT_DATA :: ID) , _ => { Err ("Invalid message name.") } } } fn default_message_from_id (id : u32) -> Result < Self , & 'static str > { match id { ICAROUS_KINEMATIC_BANDS_DATA :: ID => Ok (Self :: ICAROUS_KINEMATIC_BANDS (ICAROUS_KINEMATIC_BANDS_DATA :: default ())) , ICAROUS_HEARTBEAT_DATA :: ID => Ok (Self :: ICAROUS_HEARTBEAT (ICAROUS_HEARTBEAT_DATA :: default ())) , _ => { Err ("Invalid message id.") } } } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { match self { Self :: ICAROUS_KINEMATIC_BANDS (body) => body . ser (version , bytes) , Self :: ICAROUS_HEARTBEAT (body) => body . ser (version , bytes) , } } fn extra_crc (id : u32) -> u8 { match id { ICAROUS_KINEMATIC_BANDS_DATA :: ID => ICAROUS_KINEMATIC_BANDS_DATA :: EXTRA_CRC , ICAROUS_HEARTBEAT_DATA :: ID => ICAROUS_HEARTBEAT_DATA :: EXTRA_CRC , _ => { 0 } , } } }
+
# ! [doc = "This file was automatically generated, do not edit"] # [allow (unused_imports)] use num_derive :: FromPrimitive ; # [allow (unused_imports)] use num_traits :: FromPrimitive ; # [allow (unused_imports)] use num_derive :: ToPrimitive ; # [allow (unused_imports)] use num_traits :: ToPrimitive ; # [allow (unused_imports)] use bitflags :: bitflags ; use mavlink_core :: { MavlinkVersion , Message , MessageData , bytes :: Bytes , bytes_mut :: BytesMut } ; # [cfg (feature = "serde")] use serde :: { Serialize , Deserialize } ; # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum IcarousFmsState { ICAROUS_FMS_STATE_IDLE = 0 , ICAROUS_FMS_STATE_TAKEOFF = 1 , ICAROUS_FMS_STATE_CLIMB = 2 , ICAROUS_FMS_STATE_CRUISE = 3 , ICAROUS_FMS_STATE_APPROACH = 4 , ICAROUS_FMS_STATE_LAND = 5 , } impl IcarousFmsState { pub const DEFAULT : Self = Self :: ICAROUS_FMS_STATE_IDLE ; } impl Default for IcarousFmsState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum IcarousTrackBandTypes { ICAROUS_TRACK_BAND_TYPE_NONE = 0 , ICAROUS_TRACK_BAND_TYPE_NEAR = 1 , ICAROUS_TRACK_BAND_TYPE_RECOVERY = 2 , } impl IcarousTrackBandTypes { pub const DEFAULT : Self = Self :: ICAROUS_TRACK_BAND_TYPE_NONE ; } impl Default for IcarousTrackBandTypes { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ICAROUS_KINEMATIC_BANDS_DATA { pub min1 : f32 , pub max1 : f32 , pub min2 : f32 , pub max2 : f32 , pub min3 : f32 , pub max3 : f32 , pub min4 : f32 , pub max4 : f32 , pub min5 : f32 , pub max5 : f32 , pub numBands : i8 , pub type1 : IcarousTrackBandTypes , pub type2 : IcarousTrackBandTypes , pub type3 : IcarousTrackBandTypes , pub type4 : IcarousTrackBandTypes , pub type5 : IcarousTrackBandTypes , } impl ICAROUS_KINEMATIC_BANDS_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { min1 : 0.0_f32 , max1 : 0.0_f32 , min2 : 0.0_f32 , max2 : 0.0_f32 , min3 : 0.0_f32 , max3 : 0.0_f32 , min4 : 0.0_f32 , max4 : 0.0_f32 , min5 : 0.0_f32 , max5 : 0.0_f32 , numBands : 0_i8 , type1 : IcarousTrackBandTypes :: DEFAULT , type2 : IcarousTrackBandTypes :: DEFAULT , type3 : IcarousTrackBandTypes :: DEFAULT , type4 : IcarousTrackBandTypes :: DEFAULT , type5 : IcarousTrackBandTypes :: DEFAULT , } ; } impl Default for ICAROUS_KINEMATIC_BANDS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ICAROUS_KINEMATIC_BANDS_DATA { type Message = MavMessage ; const ID : u32 = 42001u32 ; const NAME : & 'static str = "ICAROUS_KINEMATIC_BANDS" ; const EXTRA_CRC : u8 = 239u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . min1 = buf . get_f32_le () ; __struct . max1 = buf . get_f32_le () ; __struct . min2 = buf . get_f32_le () ; __struct . max2 = buf . get_f32_le () ; __struct . min3 = buf . get_f32_le () ; __struct . max3 = buf . get_f32_le () ; __struct . min4 = buf . get_f32_le () ; __struct . max4 = buf . get_f32_le () ; __struct . min5 = buf . get_f32_le () ; __struct . max5 = buf . get_f32_le () ; __struct . numBands = buf . get_i8 () ; let tmp = buf . get_u8 () ; __struct . type1 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type2 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type3 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type4 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . type5 = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousTrackBandTypes" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . min1) ; __tmp . put_f32_le (self . max1) ; __tmp . put_f32_le (self . min2) ; __tmp . put_f32_le (self . max2) ; __tmp . put_f32_le (self . min3) ; __tmp . put_f32_le (self . max3) ; __tmp . put_f32_le (self . min4) ; __tmp . put_f32_le (self . max4) ; __tmp . put_f32_le (self . min5) ; __tmp . put_f32_le (self . max5) ; __tmp . put_i8 (self . numBands) ; __tmp . put_u8 (self . type1 as u8) ; __tmp . put_u8 (self . type2 as u8) ; __tmp . put_u8 (self . type3 as u8) ; __tmp . put_u8 (self . type4 as u8) ; __tmp . put_u8 (self . type5 as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ICAROUS_HEARTBEAT_DATA { pub status : IcarousFmsState , } impl ICAROUS_HEARTBEAT_DATA { pub const ENCODED_LEN : usize = 1usize ; pub const DEFAULT : Self = Self { status : IcarousFmsState :: DEFAULT , } ; } impl Default for ICAROUS_HEARTBEAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ICAROUS_HEARTBEAT_DATA { type Message = MavMessage ; const ID : u32 = 42000u32 ; const NAME : & 'static str = "ICAROUS_HEARTBEAT" ; const EXTRA_CRC : u8 = 227u8 ; const ENCODED_LEN : usize = 1usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "IcarousFmsState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Clone , PartialEq , Debug)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMessage { ICAROUS_KINEMATIC_BANDS (ICAROUS_KINEMATIC_BANDS_DATA) , ICAROUS_HEARTBEAT (ICAROUS_HEARTBEAT_DATA) , } impl Message for MavMessage { fn parse (version : MavlinkVersion , id : u32 , payload : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { match id { ICAROUS_KINEMATIC_BANDS_DATA :: ID => ICAROUS_KINEMATIC_BANDS_DATA :: deser (version , payload) . map (Self :: ICAROUS_KINEMATIC_BANDS) , ICAROUS_HEARTBEAT_DATA :: ID => ICAROUS_HEARTBEAT_DATA :: deser (version , payload) . map (Self :: ICAROUS_HEARTBEAT) , _ => { Err (:: mavlink_core :: error :: ParserError :: UnknownMessage { id }) } , } } fn message_name (& self) -> & 'static str { match self { Self :: ICAROUS_KINEMATIC_BANDS (..) => ICAROUS_KINEMATIC_BANDS_DATA :: NAME , Self :: ICAROUS_HEARTBEAT (..) => ICAROUS_HEARTBEAT_DATA :: NAME , } } fn message_id (& self) -> u32 { match self { Self :: ICAROUS_KINEMATIC_BANDS (..) => ICAROUS_KINEMATIC_BANDS_DATA :: ID , Self :: ICAROUS_HEARTBEAT (..) => ICAROUS_HEARTBEAT_DATA :: ID , } } fn message_id_from_name (name : & str) -> Result < u32 , & 'static str > { match name { ICAROUS_KINEMATIC_BANDS_DATA :: NAME => Ok (ICAROUS_KINEMATIC_BANDS_DATA :: ID) , ICAROUS_HEARTBEAT_DATA :: NAME => Ok (ICAROUS_HEARTBEAT_DATA :: ID) , _ => { Err ("Invalid message name.") } } } fn default_message_from_id (id : u32) -> Result < Self , & 'static str > { match id { ICAROUS_KINEMATIC_BANDS_DATA :: ID => Ok (Self :: ICAROUS_KINEMATIC_BANDS (ICAROUS_KINEMATIC_BANDS_DATA :: default ())) , ICAROUS_HEARTBEAT_DATA :: ID => Ok (Self :: ICAROUS_HEARTBEAT (ICAROUS_HEARTBEAT_DATA :: default ())) , _ => { Err ("Invalid message id.") } } } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { match self { Self :: ICAROUS_KINEMATIC_BANDS (body) => body . ser (version , bytes) , Self :: ICAROUS_HEARTBEAT (body) => body . ser (version , bytes) , } } fn extra_crc (id : u32) -> u8 { match id { ICAROUS_KINEMATIC_BANDS_DATA :: ID => ICAROUS_KINEMATIC_BANDS_DATA :: EXTRA_CRC , ICAROUS_HEARTBEAT_DATA :: ID => ICAROUS_HEARTBEAT_DATA :: EXTRA_CRC , _ => { 0 } , } } }
 
\ No newline at end of file diff --git a/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/uavionix.rs.html b/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/uavionix.rs.html index b7037db5e9..be741b0e80 100644 --- a/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/uavionix.rs.html +++ b/src/mavlink/home/runner/work/rust-mavlink/rust-mavlink/target/debug/build/mavlink-79d72f9fe3595873/out/uavionix.rs.html @@ -1,3 +1,3 @@ uavionix.rs - source
1
-
# ! [doc = "This file was automatically generated, do not edit"] # [allow (unused_imports)] use num_derive :: FromPrimitive ; # [allow (unused_imports)] use num_traits :: FromPrimitive ; # [allow (unused_imports)] use num_derive :: ToPrimitive ; # [allow (unused_imports)] use num_traits :: ToPrimitive ; # [allow (unused_imports)] use bitflags :: bitflags ; use mavlink_core :: { MavlinkVersion , Message , MessageData , bytes :: Bytes , bytes_mut :: BytesMut } ; # [cfg (feature = "serde")] use serde :: { Serialize , Deserialize } ; # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidClassificationType { MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED = 0 , MAV_ODID_CLASSIFICATION_TYPE_EU = 1 , } impl MavOdidClassificationType { pub const DEFAULT : Self = Self :: MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED ; } impl Default for MavOdidClassificationType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavArmAuthDeniedReason { MAV_ARM_AUTH_DENIED_REASON_GENERIC = 0 , MAV_ARM_AUTH_DENIED_REASON_NONE = 1 , MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT = 2 , MAV_ARM_AUTH_DENIED_REASON_TIMEOUT = 3 , MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE = 4 , MAV_ARM_AUTH_DENIED_REASON_BAD_WEATHER = 5 , } impl MavArmAuthDeniedReason { pub const DEFAULT : Self = Self :: MAV_ARM_AUTH_DENIED_REASON_GENERIC ; } impl Default for MavArmAuthDeniedReason { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavProtocolCapability : u64 { const MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT = 1 ; const MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT = 2 ; const MAV_PROTOCOL_CAPABILITY_MISSION_INT = 4 ; const MAV_PROTOCOL_CAPABILITY_COMMAND_INT = 8 ; const MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE = 16 ; const MAV_PROTOCOL_CAPABILITY_FTP = 32 ; const MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET = 64 ; const MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED = 128 ; const MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT = 256 ; const MAV_PROTOCOL_CAPABILITY_TERRAIN = 512 ; const MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET = 1024 ; const MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION = 2048 ; const MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION = 4096 ; const MAV_PROTOCOL_CAPABILITY_MAVLINK2 = 8192 ; const MAV_PROTOCOL_CAPABILITY_MISSION_FENCE = 16384 ; const MAV_PROTOCOL_CAPABILITY_MISSION_RALLY = 32768 ; const MAV_PROTOCOL_CAPABILITY_RESERVED2 = 65536 ; const MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST = 131072 ; } } impl MavProtocolCapability { pub const DEFAULT : Self = Self :: MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT ; } impl Default for MavProtocolCapability { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavAutopilot { MAV_AUTOPILOT_GENERIC = 0 , MAV_AUTOPILOT_RESERVED = 1 , MAV_AUTOPILOT_SLUGS = 2 , MAV_AUTOPILOT_ARDUPILOTMEGA = 3 , MAV_AUTOPILOT_OPENPILOT = 4 , MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY = 5 , MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY = 6 , MAV_AUTOPILOT_GENERIC_MISSION_FULL = 7 , MAV_AUTOPILOT_INVALID = 8 , MAV_AUTOPILOT_PPZ = 9 , MAV_AUTOPILOT_UDB = 10 , MAV_AUTOPILOT_FP = 11 , MAV_AUTOPILOT_PX4 = 12 , MAV_AUTOPILOT_SMACCMPILOT = 13 , MAV_AUTOPILOT_AUTOQUAD = 14 , MAV_AUTOPILOT_ARMAZILA = 15 , MAV_AUTOPILOT_AEROB = 16 , MAV_AUTOPILOT_ASLUAV = 17 , MAV_AUTOPILOT_SMARTAP = 18 , MAV_AUTOPILOT_AIRRAILS = 19 , MAV_AUTOPILOT_REFLEX = 20 , } impl MavAutopilot { pub const DEFAULT : Self = Self :: MAV_AUTOPILOT_GENERIC ; } impl Default for MavAutopilot { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UavionixAdsbRfHealth : u8 { const UAVIONIX_ADSB_RF_HEALTH_INITIALIZING = 0 ; const UAVIONIX_ADSB_RF_HEALTH_OK = 1 ; const UAVIONIX_ADSB_RF_HEALTH_FAIL_TX = 2 ; const UAVIONIX_ADSB_RF_HEALTH_FAIL_RX = 16 ; } } impl UavionixAdsbRfHealth { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_RF_HEALTH_INITIALIZING ; } impl Default for UavionixAdsbRfHealth { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SerialControlFlag : u8 { const SERIAL_CONTROL_FLAG_REPLY = 1 ; const SERIAL_CONTROL_FLAG_RESPOND = 2 ; const SERIAL_CONTROL_FLAG_EXCLUSIVE = 4 ; const SERIAL_CONTROL_FLAG_BLOCKING = 8 ; const SERIAL_CONTROL_FLAG_MULTI = 16 ; } } impl SerialControlFlag { pub const DEFAULT : Self = Self :: SERIAL_CONTROL_FLAG_REPLY ; } impl Default for SerialControlFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FirmwareVersionType { FIRMWARE_VERSION_TYPE_DEV = 0 , FIRMWARE_VERSION_TYPE_ALPHA = 64 , FIRMWARE_VERSION_TYPE_BETA = 128 , FIRMWARE_VERSION_TYPE_RC = 192 , FIRMWARE_VERSION_TYPE_OFFICIAL = 255 , } impl FirmwareVersionType { pub const DEFAULT : Self = Self :: FIRMWARE_VERSION_TYPE_DEV ; } impl Default for FirmwareVersionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmd { MAV_CMD_NAV_WAYPOINT = 16 , MAV_CMD_NAV_LOITER_UNLIM = 17 , MAV_CMD_NAV_LOITER_TURNS = 18 , MAV_CMD_NAV_LOITER_TIME = 19 , MAV_CMD_NAV_RETURN_TO_LAUNCH = 20 , MAV_CMD_NAV_LAND = 21 , MAV_CMD_NAV_TAKEOFF = 22 , MAV_CMD_NAV_LAND_LOCAL = 23 , MAV_CMD_NAV_TAKEOFF_LOCAL = 24 , MAV_CMD_NAV_FOLLOW = 25 , MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT = 30 , MAV_CMD_NAV_LOITER_TO_ALT = 31 , MAV_CMD_DO_FOLLOW = 32 , MAV_CMD_DO_FOLLOW_REPOSITION = 33 , MAV_CMD_DO_ORBIT = 34 , MAV_CMD_NAV_ROI = 80 , MAV_CMD_NAV_PATHPLANNING = 81 , MAV_CMD_NAV_SPLINE_WAYPOINT = 82 , MAV_CMD_NAV_VTOL_TAKEOFF = 84 , MAV_CMD_NAV_VTOL_LAND = 85 , MAV_CMD_NAV_GUIDED_ENABLE = 92 , MAV_CMD_NAV_DELAY = 93 , MAV_CMD_NAV_PAYLOAD_PLACE = 94 , MAV_CMD_NAV_LAST = 95 , MAV_CMD_CONDITION_DELAY = 112 , MAV_CMD_CONDITION_CHANGE_ALT = 113 , MAV_CMD_CONDITION_DISTANCE = 114 , MAV_CMD_CONDITION_YAW = 115 , MAV_CMD_CONDITION_LAST = 159 , MAV_CMD_DO_SET_MODE = 176 , MAV_CMD_DO_JUMP = 177 , MAV_CMD_DO_CHANGE_SPEED = 178 , MAV_CMD_DO_SET_HOME = 179 , MAV_CMD_DO_SET_PARAMETER = 180 , MAV_CMD_DO_SET_RELAY = 181 , MAV_CMD_DO_REPEAT_RELAY = 182 , MAV_CMD_DO_SET_SERVO = 183 , MAV_CMD_DO_REPEAT_SERVO = 184 , MAV_CMD_DO_FLIGHTTERMINATION = 185 , MAV_CMD_DO_CHANGE_ALTITUDE = 186 , MAV_CMD_DO_SET_ACTUATOR = 187 , MAV_CMD_DO_LAND_START = 189 , MAV_CMD_DO_RALLY_LAND = 190 , MAV_CMD_DO_GO_AROUND = 191 , MAV_CMD_DO_REPOSITION = 192 , MAV_CMD_DO_PAUSE_CONTINUE = 193 , MAV_CMD_DO_SET_REVERSE = 194 , MAV_CMD_DO_SET_ROI_LOCATION = 195 , MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET = 196 , MAV_CMD_DO_SET_ROI_NONE = 197 , MAV_CMD_DO_SET_ROI_SYSID = 198 , MAV_CMD_DO_CONTROL_VIDEO = 200 , MAV_CMD_DO_SET_ROI = 201 , MAV_CMD_DO_DIGICAM_CONFIGURE = 202 , MAV_CMD_DO_DIGICAM_CONTROL = 203 , MAV_CMD_DO_MOUNT_CONFIGURE = 204 , MAV_CMD_DO_MOUNT_CONTROL = 205 , MAV_CMD_DO_SET_CAM_TRIGG_DIST = 206 , MAV_CMD_DO_FENCE_ENABLE = 207 , MAV_CMD_DO_PARACHUTE = 208 , MAV_CMD_DO_MOTOR_TEST = 209 , MAV_CMD_DO_INVERTED_FLIGHT = 210 , MAV_CMD_DO_GRIPPER = 211 , MAV_CMD_DO_AUTOTUNE_ENABLE = 212 , MAV_CMD_NAV_SET_YAW_SPEED = 213 , MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL = 214 , MAV_CMD_DO_MOUNT_CONTROL_QUAT = 220 , MAV_CMD_DO_GUIDED_MASTER = 221 , MAV_CMD_DO_GUIDED_LIMITS = 222 , MAV_CMD_DO_ENGINE_CONTROL = 223 , MAV_CMD_DO_SET_MISSION_CURRENT = 224 , MAV_CMD_DO_LAST = 240 , MAV_CMD_PREFLIGHT_CALIBRATION = 241 , MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS = 242 , MAV_CMD_PREFLIGHT_UAVCAN = 243 , MAV_CMD_PREFLIGHT_STORAGE = 245 , MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN = 246 , MAV_CMD_OVERRIDE_GOTO = 252 , MAV_CMD_OBLIQUE_SURVEY = 260 , MAV_CMD_MISSION_START = 300 , MAV_CMD_ACTUATOR_TEST = 310 , MAV_CMD_CONFIGURE_ACTUATOR = 311 , MAV_CMD_COMPONENT_ARM_DISARM = 400 , MAV_CMD_RUN_PREARM_CHECKS = 401 , MAV_CMD_ILLUMINATOR_ON_OFF = 405 , MAV_CMD_GET_HOME_POSITION = 410 , MAV_CMD_INJECT_FAILURE = 420 , MAV_CMD_START_RX_PAIR = 500 , MAV_CMD_GET_MESSAGE_INTERVAL = 510 , MAV_CMD_SET_MESSAGE_INTERVAL = 511 , MAV_CMD_REQUEST_MESSAGE = 512 , MAV_CMD_REQUEST_PROTOCOL_VERSION = 519 , MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES = 520 , MAV_CMD_REQUEST_CAMERA_INFORMATION = 521 , MAV_CMD_REQUEST_CAMERA_SETTINGS = 522 , MAV_CMD_REQUEST_STORAGE_INFORMATION = 525 , MAV_CMD_STORAGE_FORMAT = 526 , MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS = 527 , MAV_CMD_REQUEST_FLIGHT_INFORMATION = 528 , MAV_CMD_RESET_CAMERA_SETTINGS = 529 , MAV_CMD_SET_CAMERA_MODE = 530 , MAV_CMD_SET_CAMERA_ZOOM = 531 , MAV_CMD_SET_CAMERA_FOCUS = 532 , MAV_CMD_SET_STORAGE_USAGE = 533 , MAV_CMD_JUMP_TAG = 600 , MAV_CMD_DO_JUMP_TAG = 601 , MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW = 1000 , MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE = 1001 , MAV_CMD_IMAGE_START_CAPTURE = 2000 , MAV_CMD_IMAGE_STOP_CAPTURE = 2001 , MAV_CMD_REQUEST_CAMERA_IMAGE_CAPTURE = 2002 , MAV_CMD_DO_TRIGGER_CONTROL = 2003 , MAV_CMD_CAMERA_TRACK_POINT = 2004 , MAV_CMD_CAMERA_TRACK_RECTANGLE = 2005 , MAV_CMD_CAMERA_STOP_TRACKING = 2010 , MAV_CMD_VIDEO_START_CAPTURE = 2500 , MAV_CMD_VIDEO_STOP_CAPTURE = 2501 , MAV_CMD_VIDEO_START_STREAMING = 2502 , MAV_CMD_VIDEO_STOP_STREAMING = 2503 , MAV_CMD_REQUEST_VIDEO_STREAM_INFORMATION = 2504 , MAV_CMD_REQUEST_VIDEO_STREAM_STATUS = 2505 , MAV_CMD_LOGGING_START = 2510 , MAV_CMD_LOGGING_STOP = 2511 , MAV_CMD_AIRFRAME_CONFIGURATION = 2520 , MAV_CMD_CONTROL_HIGH_LATENCY = 2600 , MAV_CMD_PANORAMA_CREATE = 2800 , MAV_CMD_DO_VTOL_TRANSITION = 3000 , MAV_CMD_ARM_AUTHORIZATION_REQUEST = 3001 , MAV_CMD_SET_GUIDED_SUBMODE_STANDARD = 4000 , MAV_CMD_SET_GUIDED_SUBMODE_CIRCLE = 4001 , MAV_CMD_CONDITION_GATE = 4501 , MAV_CMD_NAV_FENCE_RETURN_POINT = 5000 , MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION = 5001 , MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION = 5002 , MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION = 5003 , MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION = 5004 , MAV_CMD_NAV_RALLY_POINT = 5100 , MAV_CMD_UAVCAN_GET_NODE_INFO = 5200 , MAV_CMD_DO_ADSB_OUT_IDENT = 10001 , MAV_CMD_PAYLOAD_PREPARE_DEPLOY = 30001 , MAV_CMD_PAYLOAD_CONTROL_DEPLOY = 30002 , MAV_CMD_FIXED_MAG_CAL_YAW = 42006 , MAV_CMD_DO_WINCH = 42600 , MAV_CMD_WAYPOINT_USER_1 = 31000 , MAV_CMD_WAYPOINT_USER_2 = 31001 , MAV_CMD_WAYPOINT_USER_3 = 31002 , MAV_CMD_WAYPOINT_USER_4 = 31003 , MAV_CMD_WAYPOINT_USER_5 = 31004 , MAV_CMD_SPATIAL_USER_1 = 31005 , MAV_CMD_SPATIAL_USER_2 = 31006 , MAV_CMD_SPATIAL_USER_3 = 31007 , MAV_CMD_SPATIAL_USER_4 = 31008 , MAV_CMD_SPATIAL_USER_5 = 31009 , MAV_CMD_USER_1 = 31010 , MAV_CMD_USER_2 = 31011 , MAV_CMD_USER_3 = 31012 , MAV_CMD_USER_4 = 31013 , MAV_CMD_USER_5 = 31014 , MAV_CMD_CAN_FORWARD = 32000 , } impl MavCmd { pub const DEFAULT : Self = Self :: MAV_CMD_NAV_WAYPOINT ; } impl Default for MavCmd { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WifiConfigApMode { WIFI_CONFIG_AP_MODE_UNDEFINED = 0 , WIFI_CONFIG_AP_MODE_AP = 1 , WIFI_CONFIG_AP_MODE_STATION = 2 , WIFI_CONFIG_AP_MODE_DISABLED = 3 , } impl WifiConfigApMode { pub const DEFAULT : Self = Self :: WIFI_CONFIG_AP_MODE_UNDEFINED ; } impl Default for WifiConfigApMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidOperatorIdType { MAV_ODID_OPERATOR_ID_TYPE_CAA = 0 , } impl MavOdidOperatorIdType { pub const DEFAULT : Self = Self :: MAV_ODID_OPERATOR_ID_TYPE_CAA ; } impl Default for MavOdidOperatorIdType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VtolTransitionHeading { VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT = 0 , VTOL_TRANSITION_HEADING_NEXT_WAYPOINT = 1 , VTOL_TRANSITION_HEADING_TAKEOFF = 2 , VTOL_TRANSITION_HEADING_SPECIFIED = 3 , VTOL_TRANSITION_HEADING_ANY = 4 , } impl VtolTransitionHeading { pub const DEFAULT : Self = Self :: VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT ; } impl Default for VtolTransitionHeading { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UavionixAdsbOutDynamicState : u16 { const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE = 1 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_AUTOPILOT_ENABLED = 2 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_NICBARO_CROSSCHECKED = 4 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_ON_GROUND = 8 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_IDENT = 16 ; } } impl UavionixAdsbOutDynamicState { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE ; } impl Default for UavionixAdsbOutDynamicState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceMitigate { FENCE_MITIGATE_UNKNOWN = 0 , FENCE_MITIGATE_NONE = 1 , FENCE_MITIGATE_VEL_LIMIT = 2 , } impl FenceMitigate { pub const DEFAULT : Self = Self :: FENCE_MITIGATE_UNKNOWN ; } impl Default for FenceMitigate { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMountMode { MAV_MOUNT_MODE_RETRACT = 0 , MAV_MOUNT_MODE_NEUTRAL = 1 , MAV_MOUNT_MODE_MAVLINK_TARGETING = 2 , MAV_MOUNT_MODE_RC_TARGETING = 3 , MAV_MOUNT_MODE_GPS_POINT = 4 , MAV_MOUNT_MODE_SYSID_TARGET = 5 , MAV_MOUNT_MODE_HOME_LOCATION = 6 , } impl MavMountMode { pub const DEFAULT : Self = Self :: MAV_MOUNT_MODE_RETRACT ; } impl Default for MavMountMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMode { MAV_MODE_PREFLIGHT = 0 , MAV_MODE_STABILIZE_DISARMED = 80 , MAV_MODE_STABILIZE_ARMED = 208 , MAV_MODE_MANUAL_DISARMED = 64 , MAV_MODE_MANUAL_ARMED = 192 , MAV_MODE_GUIDED_DISARMED = 88 , MAV_MODE_GUIDED_ARMED = 216 , MAV_MODE_AUTO_DISARMED = 92 , MAV_MODE_AUTO_ARMED = 220 , MAV_MODE_TEST_DISARMED = 66 , MAV_MODE_TEST_ARMED = 194 , } impl MavMode { pub const DEFAULT : Self = Self :: MAV_MODE_PREFLIGHT ; } impl Default for MavMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidClassEu { MAV_ODID_CLASS_EU_UNDECLARED = 0 , MAV_ODID_CLASS_EU_CLASS_0 = 1 , MAV_ODID_CLASS_EU_CLASS_1 = 2 , MAV_ODID_CLASS_EU_CLASS_2 = 3 , MAV_ODID_CLASS_EU_CLASS_3 = 4 , MAV_ODID_CLASS_EU_CLASS_4 = 5 , MAV_ODID_CLASS_EU_CLASS_5 = 6 , MAV_ODID_CLASS_EU_CLASS_6 = 7 , } impl MavOdidClassEu { pub const DEFAULT : Self = Self :: MAV_ODID_CLASS_EU_UNDECLARED ; } impl Default for MavOdidClassEu { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PreflightStorageParameterAction { PARAM_READ_PERSISTENT = 0 , PARAM_WRITE_PERSISTENT = 1 , PARAM_RESET_CONFIG_DEFAULT = 2 , PARAM_RESET_SENSOR_DEFAULT = 3 , PARAM_RESET_ALL_DEFAULT = 4 , } impl PreflightStorageParameterAction { pub const DEFAULT : Self = Self :: PARAM_READ_PERSISTENT ; } impl Default for PreflightStorageParameterAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SetFocusType { FOCUS_TYPE_STEP = 0 , FOCUS_TYPE_CONTINUOUS = 1 , FOCUS_TYPE_RANGE = 2 , FOCUS_TYPE_METERS = 3 , FOCUS_TYPE_AUTO = 4 , FOCUS_TYPE_AUTO_SINGLE = 5 , FOCUS_TYPE_AUTO_CONTINUOUS = 6 , } impl SetFocusType { pub const DEFAULT : Self = Self :: FOCUS_TYPE_STEP ; } impl Default for SetFocusType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidIdType { MAV_ODID_ID_TYPE_NONE = 0 , MAV_ODID_ID_TYPE_SERIAL_NUMBER = 1 , MAV_ODID_ID_TYPE_CAA_REGISTRATION_ID = 2 , MAV_ODID_ID_TYPE_UTM_ASSIGNED_UUID = 3 , MAV_ODID_ID_TYPE_SPECIFIC_SESSION_ID = 4 , } impl MavOdidIdType { pub const DEFAULT : Self = Self :: MAV_ODID_ID_TYPE_NONE ; } impl Default for MavOdidIdType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MotorTestThrottleType { MOTOR_TEST_THROTTLE_PERCENT = 0 , MOTOR_TEST_THROTTLE_PWM = 1 , MOTOR_TEST_THROTTLE_PILOT = 2 , MOTOR_TEST_COMPASS_CAL = 3 , } impl MotorTestThrottleType { pub const DEFAULT : Self = Self :: MOTOR_TEST_THROTTLE_PERCENT ; } impl Default for MotorTestThrottleType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavEventCurrentSequenceFlags : u8 { const MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET = 1 ; } } impl MavEventCurrentSequenceFlags { pub const DEFAULT : Self = Self :: MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET ; } impl Default for MavEventCurrentSequenceFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavRoi { MAV_ROI_NONE = 0 , MAV_ROI_WPNEXT = 1 , MAV_ROI_WPINDEX = 2 , MAV_ROI_LOCATION = 3 , MAV_ROI_TARGET = 4 , } impl MavRoi { pub const DEFAULT : Self = Self :: MAV_ROI_NONE ; } impl Default for MavRoi { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CanFilterOp { CAN_FILTER_REPLACE = 0 , CAN_FILTER_ADD = 1 , CAN_FILTER_REMOVE = 2 , } impl CanFilterOp { pub const DEFAULT : Self = Self :: CAN_FILTER_REPLACE ; } impl Default for CanFilterOp { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidStatus { MAV_ODID_STATUS_UNDECLARED = 0 , MAV_ODID_STATUS_GROUND = 1 , MAV_ODID_STATUS_AIRBORNE = 2 , MAV_ODID_STATUS_EMERGENCY = 3 , MAV_ODID_STATUS_REMOTE_ID_SYSTEM_FAILURE = 4 , } impl MavOdidStatus { pub const DEFAULT : Self = Self :: MAV_ODID_STATUS_UNDECLARED ; } impl Default for MavOdidStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GpsFixType { GPS_FIX_TYPE_NO_GPS = 0 , GPS_FIX_TYPE_NO_FIX = 1 , GPS_FIX_TYPE_2D_FIX = 2 , GPS_FIX_TYPE_3D_FIX = 3 , GPS_FIX_TYPE_DGPS = 4 , GPS_FIX_TYPE_RTK_FLOAT = 5 , GPS_FIX_TYPE_RTK_FIXED = 6 , GPS_FIX_TYPE_STATIC = 7 , GPS_FIX_TYPE_PPP = 8 , } impl GpsFixType { pub const DEFAULT : Self = Self :: GPS_FIX_TYPE_NO_GPS ; } impl Default for GpsFixType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MagCalStatus { MAG_CAL_NOT_STARTED = 0 , MAG_CAL_WAITING_TO_START = 1 , MAG_CAL_RUNNING_STEP_ONE = 2 , MAG_CAL_RUNNING_STEP_TWO = 3 , MAG_CAL_SUCCESS = 4 , MAG_CAL_FAILED = 5 , MAG_CAL_BAD_ORIENTATION = 6 , MAG_CAL_BAD_RADIUS = 7 , } impl MagCalStatus { pub const DEFAULT : Self = Self :: MAG_CAL_NOT_STARTED ; } impl Default for MagCalStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AisNavStatus { UNDER_WAY = 0 , AIS_NAV_ANCHORED = 1 , AIS_NAV_UN_COMMANDED = 2 , AIS_NAV_RESTRICTED_MANOEUVERABILITY = 3 , AIS_NAV_DRAUGHT_CONSTRAINED = 4 , AIS_NAV_MOORED = 5 , AIS_NAV_AGROUND = 6 , AIS_NAV_FISHING = 7 , AIS_NAV_SAILING = 8 , AIS_NAV_RESERVED_HSC = 9 , AIS_NAV_RESERVED_WIG = 10 , AIS_NAV_RESERVED_1 = 11 , AIS_NAV_RESERVED_2 = 12 , AIS_NAV_RESERVED_3 = 13 , AIS_NAV_AIS_SART = 14 , AIS_NAV_UNKNOWN = 15 , } impl AisNavStatus { pub const DEFAULT : Self = Self :: UNDER_WAY ; } impl Default for AisNavStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavType { MAV_TYPE_GENERIC = 0 , MAV_TYPE_FIXED_WING = 1 , MAV_TYPE_QUADROTOR = 2 , MAV_TYPE_COAXIAL = 3 , MAV_TYPE_HELICOPTER = 4 , MAV_TYPE_ANTENNA_TRACKER = 5 , MAV_TYPE_GCS = 6 , MAV_TYPE_AIRSHIP = 7 , MAV_TYPE_FREE_BALLOON = 8 , MAV_TYPE_ROCKET = 9 , MAV_TYPE_GROUND_ROVER = 10 , MAV_TYPE_SURFACE_BOAT = 11 , MAV_TYPE_SUBMARINE = 12 , MAV_TYPE_HEXAROTOR = 13 , MAV_TYPE_OCTOROTOR = 14 , MAV_TYPE_TRICOPTER = 15 , MAV_TYPE_FLAPPING_WING = 16 , MAV_TYPE_KITE = 17 , MAV_TYPE_ONBOARD_CONTROLLER = 18 , MAV_TYPE_VTOL_TAILSITTER_DUOROTOR = 19 , MAV_TYPE_VTOL_TAILSITTER_QUADROTOR = 20 , MAV_TYPE_VTOL_TILTROTOR = 21 , MAV_TYPE_VTOL_FIXEDROTOR = 22 , MAV_TYPE_VTOL_TAILSITTER = 23 , MAV_TYPE_VTOL_TILTWING = 24 , MAV_TYPE_VTOL_RESERVED5 = 25 , MAV_TYPE_GIMBAL = 26 , MAV_TYPE_ADSB = 27 , MAV_TYPE_PARAFOIL = 28 , MAV_TYPE_DODECAROTOR = 29 , MAV_TYPE_CAMERA = 30 , MAV_TYPE_CHARGING_STATION = 31 , MAV_TYPE_FLARM = 32 , MAV_TYPE_SERVO = 33 , MAV_TYPE_ODID = 34 , MAV_TYPE_DECAROTOR = 35 , MAV_TYPE_BATTERY = 36 , MAV_TYPE_PARACHUTE = 37 , MAV_TYPE_LOG = 38 , MAV_TYPE_OSD = 39 , MAV_TYPE_IMU = 40 , MAV_TYPE_GPS = 41 , MAV_TYPE_WINCH = 42 , } impl MavType { pub const DEFAULT : Self = Self :: MAV_TYPE_GENERIC ; } impl Default for MavType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GripperActions { GRIPPER_ACTION_RELEASE = 0 , GRIPPER_ACTION_GRAB = 1 , } impl GripperActions { pub const DEFAULT : Self = Self :: GRIPPER_ACTION_RELEASE ; } impl Default for GripperActions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraMode { CAMERA_MODE_IMAGE = 0 , CAMERA_MODE_VIDEO = 1 , CAMERA_MODE_IMAGE_SURVEY = 2 , } impl CameraMode { pub const DEFAULT : Self = Self :: CAMERA_MODE_IMAGE ; } impl Default for CameraMode { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceCapFlags : u16 { const GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT = 1 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_NEUTRAL = 2 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_AXIS = 4 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_FOLLOW = 8 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_LOCK = 16 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_AXIS = 32 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_FOLLOW = 64 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_LOCK = 128 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_AXIS = 256 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_FOLLOW = 512 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_LOCK = 1024 ; const GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_INFINITE_YAW = 2048 ; const GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME = 4096 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_RC_INPUTS = 8192 ; } } impl GimbalDeviceCapFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT ; } impl Default for GimbalDeviceCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageStatus { STORAGE_STATUS_EMPTY = 0 , STORAGE_STATUS_UNFORMATTED = 1 , STORAGE_STATUS_READY = 2 , STORAGE_STATUS_NOT_SUPPORTED = 3 , } impl StorageStatus { pub const DEFAULT : Self = Self :: STORAGE_STATUS_EMPTY ; } impl Default for StorageStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidDescType { MAV_ODID_DESC_TYPE_TEXT = 0 , MAV_ODID_DESC_TYPE_EMERGENCY = 1 , MAV_ODID_DESC_TYPE_EXTENDED_STATUS = 2 , } impl MavOdidDescType { pub const DEFAULT : Self = Self :: MAV_ODID_DESC_TYPE_TEXT ; } impl Default for MavOdidDescType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidAuthType { MAV_ODID_AUTH_TYPE_NONE = 0 , MAV_ODID_AUTH_TYPE_UAS_ID_SIGNATURE = 1 , MAV_ODID_AUTH_TYPE_OPERATOR_ID_SIGNATURE = 2 , MAV_ODID_AUTH_TYPE_MESSAGE_SET_SIGNATURE = 3 , MAV_ODID_AUTH_TYPE_NETWORK_REMOTE_ID = 4 , MAV_ODID_AUTH_TYPE_SPECIFIC_AUTHENTICATION = 5 , } impl MavOdidAuthType { pub const DEFAULT : Self = Self :: MAV_ODID_AUTH_TYPE_NONE ; } impl Default for MavOdidAuthType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavPowerStatus : u16 { const MAV_POWER_STATUS_BRICK_VALID = 1 ; const MAV_POWER_STATUS_SERVO_VALID = 2 ; const MAV_POWER_STATUS_USB_CONNECTED = 4 ; const MAV_POWER_STATUS_PERIPH_OVERCURRENT = 8 ; const MAV_POWER_STATUS_PERIPH_HIPOWER_OVERCURRENT = 16 ; const MAV_POWER_STATUS_CHANGED = 32 ; } } impl MavPowerStatus { pub const DEFAULT : Self = Self :: MAV_POWER_STATUS_BRICK_VALID ; } impl Default for MavPowerStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingTargetData { CAMERA_TRACKING_TARGET_DATA_NONE = 0 , CAMERA_TRACKING_TARGET_DATA_EMBEDDED = 1 , CAMERA_TRACKING_TARGET_DATA_RENDERED = 2 , CAMERA_TRACKING_TARGET_DATA_IN_STATUS = 4 , } impl CameraTrackingTargetData { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_TARGET_DATA_NONE ; } impl Default for CameraTrackingTargetData { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MotorTestOrder { MOTOR_TEST_ORDER_DEFAULT = 0 , MOTOR_TEST_ORDER_SEQUENCE = 1 , MOTOR_TEST_ORDER_BOARD = 2 , } impl MotorTestOrder { pub const DEFAULT : Self = Self :: MOTOR_TEST_ORDER_DEFAULT ; } impl Default for MotorTestOrder { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GpsInputIgnoreFlags : u16 { const GPS_INPUT_IGNORE_FLAG_ALT = 1 ; const GPS_INPUT_IGNORE_FLAG_HDOP = 2 ; const GPS_INPUT_IGNORE_FLAG_VDOP = 4 ; const GPS_INPUT_IGNORE_FLAG_VEL_HORIZ = 8 ; const GPS_INPUT_IGNORE_FLAG_VEL_VERT = 16 ; const GPS_INPUT_IGNORE_FLAG_SPEED_ACCURACY = 32 ; const GPS_INPUT_IGNORE_FLAG_HORIZONTAL_ACCURACY = 64 ; const GPS_INPUT_IGNORE_FLAG_VERTICAL_ACCURACY = 128 ; } } impl GpsInputIgnoreFlags { pub const DEFAULT : Self = Self :: GPS_INPUT_IGNORE_FLAG_ALT ; } impl Default for GpsInputIgnoreFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PreflightStorageMissionAction { MISSION_READ_PERSISTENT = 0 , MISSION_WRITE_PERSISTENT = 1 , MISSION_RESET_DEFAULT = 2 , } impl PreflightStorageMissionAction { pub const DEFAULT : Self = Self :: MISSION_READ_PERSISTENT ; } impl Default for PreflightStorageMissionAction { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AttitudeTargetTypemask : u8 { const ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE = 1 ; const ATTITUDE_TARGET_TYPEMASK_BODY_PITCH_RATE_IGNORE = 2 ; const ATTITUDE_TARGET_TYPEMASK_BODY_YAW_RATE_IGNORE = 4 ; const ATTITUDE_TARGET_TYPEMASK_THRUST_BODY_SET = 32 ; const ATTITUDE_TARGET_TYPEMASK_THROTTLE_IGNORE = 64 ; const ATTITUDE_TARGET_TYPEMASK_ATTITUDE_IGNORE = 128 ; } } impl AttitudeTargetTypemask { pub const DEFAULT : Self = Self :: ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE ; } impl Default for AttitudeTargetTypemask { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CameraCapFlags : u32 { const CAMERA_CAP_FLAGS_CAPTURE_VIDEO = 1 ; const CAMERA_CAP_FLAGS_CAPTURE_IMAGE = 2 ; const CAMERA_CAP_FLAGS_HAS_MODES = 4 ; const CAMERA_CAP_FLAGS_CAN_CAPTURE_IMAGE_IN_VIDEO_MODE = 8 ; const CAMERA_CAP_FLAGS_CAN_CAPTURE_VIDEO_IN_IMAGE_MODE = 16 ; const CAMERA_CAP_FLAGS_HAS_IMAGE_SURVEY_MODE = 32 ; const CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM = 64 ; const CAMERA_CAP_FLAGS_HAS_BASIC_FOCUS = 128 ; const CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM = 256 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_POINT = 512 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE = 1024 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_GEO_STATUS = 2048 ; } } impl CameraCapFlags { pub const DEFAULT : Self = Self :: CAMERA_CAP_FLAGS_CAPTURE_VIDEO ; } impl Default for CameraCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavEstimatorType { MAV_ESTIMATOR_TYPE_UNKNOWN = 0 , MAV_ESTIMATOR_TYPE_NAIVE = 1 , MAV_ESTIMATOR_TYPE_VISION = 2 , MAV_ESTIMATOR_TYPE_VIO = 3 , MAV_ESTIMATOR_TYPE_GPS = 4 , MAV_ESTIMATOR_TYPE_GPS_INS = 5 , MAV_ESTIMATOR_TYPE_MOCAP = 6 , MAV_ESTIMATOR_TYPE_LIDAR = 7 , MAV_ESTIMATOR_TYPE_AUTOPILOT = 8 , } impl MavEstimatorType { pub const DEFAULT : Self = Self :: MAV_ESTIMATOR_TYPE_UNKNOWN ; } impl Default for MavEstimatorType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionSrc { MAV_COLLISION_SRC_ADSB = 0 , MAV_COLLISION_SRC_MAVLINK_GPS_GLOBAL_INT = 1 , } impl MavCollisionSrc { pub const DEFAULT : Self = Self :: MAV_COLLISION_SRC_ADSB ; } impl Default for MavCollisionSrc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDoRepositionFlags { MAV_DO_REPOSITION_FLAGS_CHANGE_MODE = 1 , } impl MavDoRepositionFlags { pub const DEFAULT : Self = Self :: MAV_DO_REPOSITION_FLAGS_CHANGE_MODE ; } impl Default for MavDoRepositionFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SerialControlDev { SERIAL_CONTROL_DEV_TELEM1 = 0 , SERIAL_CONTROL_DEV_TELEM2 = 1 , SERIAL_CONTROL_DEV_GPS1 = 2 , SERIAL_CONTROL_DEV_GPS2 = 3 , SERIAL_CONTROL_DEV_SHELL = 10 , SERIAL_CONTROL_SERIAL0 = 100 , SERIAL_CONTROL_SERIAL1 = 101 , SERIAL_CONTROL_SERIAL2 = 102 , SERIAL_CONTROL_SERIAL3 = 103 , SERIAL_CONTROL_SERIAL4 = 104 , SERIAL_CONTROL_SERIAL5 = 105 , SERIAL_CONTROL_SERIAL6 = 106 , SERIAL_CONTROL_SERIAL7 = 107 , SERIAL_CONTROL_SERIAL8 = 108 , SERIAL_CONTROL_SERIAL9 = 109 , } impl SerialControlDev { pub const DEFAULT : Self = Self :: SERIAL_CONTROL_DEV_TELEM1 ; } impl Default for SerialControlDev { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HighresImuUpdatedFlags : u16 { const HIGHRES_IMU_UPDATED_NONE = 0 ; const HIGHRES_IMU_UPDATED_XACC = 1 ; const HIGHRES_IMU_UPDATED_YACC = 2 ; const HIGHRES_IMU_UPDATED_ZACC = 4 ; const HIGHRES_IMU_UPDATED_XGYRO = 8 ; const HIGHRES_IMU_UPDATED_YGYRO = 16 ; const HIGHRES_IMU_UPDATED_ZGYRO = 32 ; const HIGHRES_IMU_UPDATED_XMAG = 64 ; const HIGHRES_IMU_UPDATED_YMAG = 128 ; const HIGHRES_IMU_UPDATED_ZMAG = 256 ; const HIGHRES_IMU_UPDATED_ABS_PRESSURE = 512 ; const HIGHRES_IMU_UPDATED_DIFF_PRESSURE = 1024 ; const HIGHRES_IMU_UPDATED_PRESSURE_ALT = 2048 ; const HIGHRES_IMU_UPDATED_TEMPERATURE = 4096 ; const HIGHRES_IMU_UPDATED_ALL = 65535 ; } } impl HighresImuUpdatedFlags { pub const DEFAULT : Self = Self :: HIGHRES_IMU_UPDATED_NONE ; } impl Default for HighresImuUpdatedFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraZoomType { ZOOM_TYPE_STEP = 0 , ZOOM_TYPE_CONTINUOUS = 1 , ZOOM_TYPE_RANGE = 2 , ZOOM_TYPE_FOCAL_LENGTH = 3 , } impl CameraZoomType { pub const DEFAULT : Self = Self :: ZOOM_TYPE_STEP ; } impl Default for CameraZoomType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ParamAck { PARAM_ACK_ACCEPTED = 0 , PARAM_ACK_VALUE_UNSUPPORTED = 1 , PARAM_ACK_FAILED = 2 , PARAM_ACK_IN_PROGRESS = 3 , } impl ParamAck { pub const DEFAULT : Self = Self :: PARAM_ACK_ACCEPTED ; } impl Default for ParamAck { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum EscConnectionType { ESC_CONNECTION_TYPE_PPM = 0 , ESC_CONNECTION_TYPE_SERIAL = 1 , ESC_CONNECTION_TYPE_ONESHOT = 2 , ESC_CONNECTION_TYPE_I2C = 3 , ESC_CONNECTION_TYPE_CAN = 4 , ESC_CONNECTION_TYPE_DSHOT = 5 , } impl EscConnectionType { pub const DEFAULT : Self = Self :: ESC_CONNECTION_TYPE_PPM ; } impl Default for EscConnectionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum LandingTargetType { LANDING_TARGET_TYPE_LIGHT_BEACON = 0 , LANDING_TARGET_TYPE_RADIO_BEACON = 1 , LANDING_TARGET_TYPE_VISION_FIDUCIAL = 2 , LANDING_TARGET_TYPE_VISION_OTHER = 3 , } impl LandingTargetType { pub const DEFAULT : Self = Self :: LANDING_TARGET_TYPE_LIGHT_BEACON ; } impl Default for LandingTargetType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UtmDataAvailFlags : u8 { const UTM_DATA_AVAIL_FLAGS_TIME_VALID = 1 ; const UTM_DATA_AVAIL_FLAGS_UAS_ID_AVAILABLE = 2 ; const UTM_DATA_AVAIL_FLAGS_POSITION_AVAILABLE = 4 ; const UTM_DATA_AVAIL_FLAGS_ALTITUDE_AVAILABLE = 8 ; const UTM_DATA_AVAIL_FLAGS_RELATIVE_ALTITUDE_AVAILABLE = 16 ; const UTM_DATA_AVAIL_FLAGS_HORIZONTAL_VELO_AVAILABLE = 32 ; const UTM_DATA_AVAIL_FLAGS_VERTICAL_VELO_AVAILABLE = 64 ; const UTM_DATA_AVAIL_FLAGS_NEXT_WAYPOINT_AVAILABLE = 128 ; } } impl UtmDataAvailFlags { pub const DEFAULT : Self = Self :: UTM_DATA_AVAIL_FLAGS_TIME_VALID ; } impl Default for UtmDataAvailFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ActuatorConfiguration { ACTUATOR_CONFIGURATION_NONE = 0 , ACTUATOR_CONFIGURATION_BEEP = 1 , ACTUATOR_CONFIGURATION_3D_MODE_ON = 2 , ACTUATOR_CONFIGURATION_3D_MODE_OFF = 3 , ACTUATOR_CONFIGURATION_SPIN_DIRECTION1 = 4 , ACTUATOR_CONFIGURATION_SPIN_DIRECTION2 = 5 , } impl ActuatorConfiguration { pub const DEFAULT : Self = Self :: ACTUATOR_CONFIGURATION_NONE ; } impl Default for ActuatorConfiguration { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GimbalManagerFlags { GIMBAL_MANAGER_FLAGS_RETRACT = 1 , GIMBAL_MANAGER_FLAGS_NEUTRAL = 2 , GIMBAL_MANAGER_FLAGS_ROLL_LOCK = 4 , GIMBAL_MANAGER_FLAGS_PITCH_LOCK = 8 , GIMBAL_MANAGER_FLAGS_YAW_LOCK = 16 , GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME = 32 , GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME = 64 , GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME = 128 , GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE = 256 , GIMBAL_MANAGER_FLAGS_RC_MIXED = 512 , } impl GimbalManagerFlags { pub const DEFAULT : Self = Self :: GIMBAL_MANAGER_FLAGS_RETRACT ; } impl Default for GimbalManagerFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PrecisionLandMode { PRECISION_LAND_MODE_DISABLED = 0 , PRECISION_LAND_MODE_OPPORTUNISTIC = 1 , PRECISION_LAND_MODE_REQUIRED = 2 , } impl PrecisionLandMode { pub const DEFAULT : Self = Self :: PRECISION_LAND_MODE_DISABLED ; } impl Default for PrecisionLandMode { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EscFailureFlags : u16 { const ESC_FAILURE_NONE = 0 ; const ESC_FAILURE_OVER_CURRENT = 1 ; const ESC_FAILURE_OVER_VOLTAGE = 2 ; const ESC_FAILURE_OVER_TEMPERATURE = 4 ; const ESC_FAILURE_OVER_RPM = 8 ; const ESC_FAILURE_INCONSISTENT_CMD = 16 ; const ESC_FAILURE_MOTOR_STUCK = 32 ; const ESC_FAILURE_GENERIC = 64 ; } } impl EscFailureFlags { pub const DEFAULT : Self = Self :: ESC_FAILURE_NONE ; } impl Default for EscFailureFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavEventErrorReason { MAV_EVENT_ERROR_REASON_UNAVAILABLE = 0 , } impl MavEventErrorReason { pub const DEFAULT : Self = Self :: MAV_EVENT_ERROR_REASON_UNAVAILABLE ; } impl Default for MavEventErrorReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryMode { MAV_BATTERY_MODE_UNKNOWN = 0 , MAV_BATTERY_MODE_AUTO_DISCHARGING = 1 , MAV_BATTERY_MODE_HOT_SWAP = 2 , } impl MavBatteryMode { pub const DEFAULT : Self = Self :: MAV_BATTERY_MODE_UNKNOWN ; } impl Default for MavBatteryMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularConfigResponse { CELLULAR_CONFIG_RESPONSE_ACCEPTED = 0 , CELLULAR_CONFIG_RESPONSE_APN_ERROR = 1 , CELLULAR_CONFIG_RESPONSE_PIN_ERROR = 2 , CELLULAR_CONFIG_RESPONSE_REJECTED = 3 , CELLULAR_CONFIG_BLOCKED_PUK_REQUIRED = 4 , } impl CellularConfigResponse { pub const DEFAULT : Self = Self :: CELLULAR_CONFIG_RESPONSE_ACCEPTED ; } impl Default for CellularConfigResponse { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VideoStreamStatusFlags { VIDEO_STREAM_STATUS_FLAGS_RUNNING = 1 , VIDEO_STREAM_STATUS_FLAGS_THERMAL = 2 , } impl VideoStreamStatusFlags { pub const DEFAULT : Self = Self :: VIDEO_STREAM_STATUS_FLAGS_RUNNING ; } impl Default for VideoStreamStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidArmStatus { MAV_ODID_ARM_STATUS_GOOD_TO_ARM = 0 , MAV_ODID_ARM_STATUS_PRE_ARM_FAIL_GENERIC = 1 , } impl MavOdidArmStatus { pub const DEFAULT : Self = Self :: MAV_ODID_ARM_STATUS_GOOD_TO_ARM ; } impl Default for MavOdidArmStatus { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalManagerCapFlags : u32 { const GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT = 1 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL = 2 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS = 4 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_FOLLOW = 8 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_LOCK = 16 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS = 32 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_FOLLOW = 64 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_LOCK = 128 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS = 256 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW = 512 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK = 1024 ; const GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_INFINITE_YAW = 2048 ; const GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME = 4096 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_RC_INPUTS = 8192 ; const GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_LOCAL = 65536 ; const GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_GLOBAL = 131072 ; } } impl GimbalManagerCapFlags { pub const DEFAULT : Self = Self :: GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT ; } impl Default for GimbalManagerCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ActuatorOutputFunction { ACTUATOR_OUTPUT_FUNCTION_NONE = 0 , ACTUATOR_OUTPUT_FUNCTION_MOTOR1 = 1 , ACTUATOR_OUTPUT_FUNCTION_MOTOR2 = 2 , ACTUATOR_OUTPUT_FUNCTION_MOTOR3 = 3 , ACTUATOR_OUTPUT_FUNCTION_MOTOR4 = 4 , ACTUATOR_OUTPUT_FUNCTION_MOTOR5 = 5 , ACTUATOR_OUTPUT_FUNCTION_MOTOR6 = 6 , ACTUATOR_OUTPUT_FUNCTION_MOTOR7 = 7 , ACTUATOR_OUTPUT_FUNCTION_MOTOR8 = 8 , ACTUATOR_OUTPUT_FUNCTION_MOTOR9 = 9 , ACTUATOR_OUTPUT_FUNCTION_MOTOR10 = 10 , ACTUATOR_OUTPUT_FUNCTION_MOTOR11 = 11 , ACTUATOR_OUTPUT_FUNCTION_MOTOR12 = 12 , ACTUATOR_OUTPUT_FUNCTION_MOTOR13 = 13 , ACTUATOR_OUTPUT_FUNCTION_MOTOR14 = 14 , ACTUATOR_OUTPUT_FUNCTION_MOTOR15 = 15 , ACTUATOR_OUTPUT_FUNCTION_MOTOR16 = 16 , ACTUATOR_OUTPUT_FUNCTION_SERVO1 = 33 , ACTUATOR_OUTPUT_FUNCTION_SERVO2 = 34 , ACTUATOR_OUTPUT_FUNCTION_SERVO3 = 35 , ACTUATOR_OUTPUT_FUNCTION_SERVO4 = 36 , ACTUATOR_OUTPUT_FUNCTION_SERVO5 = 37 , ACTUATOR_OUTPUT_FUNCTION_SERVO6 = 38 , ACTUATOR_OUTPUT_FUNCTION_SERVO7 = 39 , ACTUATOR_OUTPUT_FUNCTION_SERVO8 = 40 , ACTUATOR_OUTPUT_FUNCTION_SERVO9 = 41 , ACTUATOR_OUTPUT_FUNCTION_SERVO10 = 42 , ACTUATOR_OUTPUT_FUNCTION_SERVO11 = 43 , ACTUATOR_OUTPUT_FUNCTION_SERVO12 = 44 , ACTUATOR_OUTPUT_FUNCTION_SERVO13 = 45 , ACTUATOR_OUTPUT_FUNCTION_SERVO14 = 46 , ACTUATOR_OUTPUT_FUNCTION_SERVO15 = 47 , ACTUATOR_OUTPUT_FUNCTION_SERVO16 = 48 , } impl ActuatorOutputFunction { pub const DEFAULT : Self = Self :: ACTUATOR_OUTPUT_FUNCTION_NONE ; } impl Default for ActuatorOutputFunction { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TuneFormat : u32 { const TUNE_FORMAT_QBASIC1_1 = 1 ; const TUNE_FORMAT_MML_MODERN = 2 ; } } impl TuneFormat { pub const DEFAULT : Self = Self :: TUNE_FORMAT_QBASIC1_1 ; } impl Default for TuneFormat { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFtpOpcode { MAV_FTP_OPCODE_NONE = 0 , MAV_FTP_OPCODE_TERMINATESESSION = 1 , MAV_FTP_OPCODE_RESETSESSION = 2 , MAV_FTP_OPCODE_LISTDIRECTORY = 3 , MAV_FTP_OPCODE_OPENFILERO = 4 , MAV_FTP_OPCODE_READFILE = 5 , MAV_FTP_OPCODE_CREATEFILE = 6 , MAV_FTP_OPCODE_WRITEFILE = 7 , MAV_FTP_OPCODE_REMOVEFILE = 8 , MAV_FTP_OPCODE_CREATEDIRECTORY = 9 , MAV_FTP_OPCODE_REMOVEDIRECTORY = 10 , MAV_FTP_OPCODE_OPENFILEWO = 11 , MAV_FTP_OPCODE_TRUNCATEFILE = 12 , MAV_FTP_OPCODE_RENAME = 13 , MAV_FTP_OPCODE_CALCFILECRC = 14 , MAV_FTP_OPCODE_BURSTREADFILE = 15 , MAV_FTP_OPCODE_ACK = 128 , MAV_FTP_OPCODE_NAK = 129 , } impl MavFtpOpcode { pub const DEFAULT : Self = Self :: MAV_FTP_OPCODE_NONE ; } impl Default for MavFtpOpcode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WinchActions { WINCH_RELAXED = 0 , WINCH_RELATIVE_LENGTH_CONTROL = 1 , WINCH_RATE_CONTROL = 2 , WINCH_LOCK = 3 , WINCH_DELIVER = 4 , WINCH_HOLD = 5 , WINCH_RETRACT = 6 , WINCH_LOAD_LINE = 7 , WINCH_ABANDON_LINE = 8 , WINCH_LOAD_PAYLOAD = 9 , } impl WinchActions { pub const DEFAULT : Self = Self :: WINCH_RELAXED ; } impl Default for WinchActions { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HlFailureFlag : u16 { const HL_FAILURE_FLAG_GPS = 1 ; const HL_FAILURE_FLAG_DIFFERENTIAL_PRESSURE = 2 ; const HL_FAILURE_FLAG_ABSOLUTE_PRESSURE = 4 ; const HL_FAILURE_FLAG_3D_ACCEL = 8 ; const HL_FAILURE_FLAG_3D_GYRO = 16 ; const HL_FAILURE_FLAG_3D_MAG = 32 ; const HL_FAILURE_FLAG_TERRAIN = 64 ; const HL_FAILURE_FLAG_BATTERY = 128 ; const HL_FAILURE_FLAG_RC_RECEIVER = 256 ; const HL_FAILURE_FLAG_OFFBOARD_LINK = 512 ; const HL_FAILURE_FLAG_ENGINE = 1024 ; const HL_FAILURE_FLAG_GEOFENCE = 2048 ; const HL_FAILURE_FLAG_ESTIMATOR = 4096 ; const HL_FAILURE_FLAG_MISSION = 8192 ; } } impl HlFailureFlag { pub const DEFAULT : Self = Self :: HL_FAILURE_FLAG_GPS ; } impl Default for HlFailureFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidUaType { MAV_ODID_UA_TYPE_NONE = 0 , MAV_ODID_UA_TYPE_AEROPLANE = 1 , MAV_ODID_UA_TYPE_HELICOPTER_OR_MULTIROTOR = 2 , MAV_ODID_UA_TYPE_GYROPLANE = 3 , MAV_ODID_UA_TYPE_HYBRID_LIFT = 4 , MAV_ODID_UA_TYPE_ORNITHOPTER = 5 , MAV_ODID_UA_TYPE_GLIDER = 6 , MAV_ODID_UA_TYPE_KITE = 7 , MAV_ODID_UA_TYPE_FREE_BALLOON = 8 , MAV_ODID_UA_TYPE_CAPTIVE_BALLOON = 9 , MAV_ODID_UA_TYPE_AIRSHIP = 10 , MAV_ODID_UA_TYPE_FREE_FALL_PARACHUTE = 11 , MAV_ODID_UA_TYPE_ROCKET = 12 , MAV_ODID_UA_TYPE_TETHERED_POWERED_AIRCRAFT = 13 , MAV_ODID_UA_TYPE_GROUND_OBSTACLE = 14 , MAV_ODID_UA_TYPE_OTHER = 15 , } impl MavOdidUaType { pub const DEFAULT : Self = Self :: MAV_ODID_UA_TYPE_NONE ; } impl Default for MavOdidUaType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavLandedState { MAV_LANDED_STATE_UNDEFINED = 0 , MAV_LANDED_STATE_ON_GROUND = 1 , MAV_LANDED_STATE_IN_AIR = 2 , MAV_LANDED_STATE_TAKEOFF = 3 , MAV_LANDED_STATE_LANDING = 4 , } impl MavLandedState { pub const DEFAULT : Self = Self :: MAV_LANDED_STATE_UNDEFINED ; } impl Default for MavLandedState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavVtolState { MAV_VTOL_STATE_UNDEFINED = 0 , MAV_VTOL_STATE_TRANSITION_TO_FW = 1 , MAV_VTOL_STATE_TRANSITION_TO_MC = 2 , MAV_VTOL_STATE_MC = 3 , MAV_VTOL_STATE_FW = 4 , } impl MavVtolState { pub const DEFAULT : Self = Self :: MAV_VTOL_STATE_UNDEFINED ; } impl Default for MavVtolState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSysStatusSensorExtended { MAV_SYS_STATUS_RECOVERY_SYSTEM = 1 , } impl MavSysStatusSensorExtended { pub const DEFAULT : Self = Self :: MAV_SYS_STATUS_RECOVERY_SYSTEM ; } impl Default for MavSysStatusSensorExtended { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavlinkDataStreamType { MAVLINK_DATA_STREAM_IMG_JPEG = 0 , MAVLINK_DATA_STREAM_IMG_BMP = 1 , MAVLINK_DATA_STREAM_IMG_RAW8U = 2 , MAVLINK_DATA_STREAM_IMG_RAW32U = 3 , MAVLINK_DATA_STREAM_IMG_PGM = 4 , MAVLINK_DATA_STREAM_IMG_PNG = 5 , } impl MavlinkDataStreamType { pub const DEFAULT : Self = Self :: MAVLINK_DATA_STREAM_IMG_JPEG ; } impl Default for MavlinkDataStreamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutCfgAircraftSize { UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_NO_DATA = 0 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L15M_W23M = 1 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25M_W28P5M = 2 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25_34M = 3 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_33M = 4 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_38M = 5 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_39P5M = 6 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_45M = 7 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_45M = 8 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_52M = 9 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_59P5M = 10 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_67M = 11 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W72P5M = 12 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W80M = 13 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W80M = 14 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W90M = 15 , } impl UavionixAdsbOutCfgAircraftSize { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_NO_DATA ; } impl Default for UavionixAdsbOutCfgAircraftSize { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbEmergencyStatus { UAVIONIX_ADSB_OUT_NO_EMERGENCY = 0 , UAVIONIX_ADSB_OUT_GENERAL_EMERGENCY = 1 , UAVIONIX_ADSB_OUT_LIFEGUARD_EMERGENCY = 2 , UAVIONIX_ADSB_OUT_MINIMUM_FUEL_EMERGENCY = 3 , UAVIONIX_ADSB_OUT_NO_COMM_EMERGENCY = 4 , UAVIONIX_ADSB_OUT_UNLAWFUL_INTERFERANCE_EMERGENCY = 5 , UAVIONIX_ADSB_OUT_DOWNED_AIRCRAFT_EMERGENCY = 6 , UAVIONIX_ADSB_OUT_RESERVED = 7 , } impl UavionixAdsbEmergencyStatus { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_NO_EMERGENCY ; } impl Default for UavionixAdsbEmergencyStatus { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceFlags : u16 { const GIMBAL_DEVICE_FLAGS_RETRACT = 1 ; const GIMBAL_DEVICE_FLAGS_NEUTRAL = 2 ; const GIMBAL_DEVICE_FLAGS_ROLL_LOCK = 4 ; const GIMBAL_DEVICE_FLAGS_PITCH_LOCK = 8 ; const GIMBAL_DEVICE_FLAGS_YAW_LOCK = 16 ; const GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME = 32 ; const GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME = 64 ; const GIMBAL_DEVICE_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME = 128 ; const GIMBAL_DEVICE_FLAGS_RC_EXCLUSIVE = 256 ; const GIMBAL_DEVICE_FLAGS_RC_MIXED = 512 ; } } impl GimbalDeviceFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_FLAGS_RETRACT ; } impl Default for GimbalDeviceFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ParachuteAction { PARACHUTE_DISABLE = 0 , PARACHUTE_ENABLE = 1 , PARACHUTE_RELEASE = 2 , } impl ParachuteAction { pub const DEFAULT : Self = Self :: PARACHUTE_DISABLE ; } impl Default for ParachuteAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CompMetadataType { COMP_METADATA_TYPE_GENERAL = 0 , COMP_METADATA_TYPE_PARAMETER = 1 , COMP_METADATA_TYPE_COMMANDS = 2 , COMP_METADATA_TYPE_PERIPHERALS = 3 , COMP_METADATA_TYPE_EVENTS = 4 , COMP_METADATA_TYPE_ACTUATORS = 5 , } impl CompMetadataType { pub const DEFAULT : Self = Self :: COMP_METADATA_TYPE_GENERAL ; } impl Default for CompMetadataType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularNetworkRadioType { CELLULAR_NETWORK_RADIO_TYPE_NONE = 0 , CELLULAR_NETWORK_RADIO_TYPE_GSM = 1 , CELLULAR_NETWORK_RADIO_TYPE_CDMA = 2 , CELLULAR_NETWORK_RADIO_TYPE_WCDMA = 3 , CELLULAR_NETWORK_RADIO_TYPE_LTE = 4 , } impl CellularNetworkRadioType { pub const DEFAULT : Self = Self :: CELLULAR_NETWORK_RADIO_TYPE_NONE ; } impl Default for CellularNetworkRadioType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingStatusFlags { CAMERA_TRACKING_STATUS_FLAGS_IDLE = 0 , CAMERA_TRACKING_STATUS_FLAGS_ACTIVE = 1 , CAMERA_TRACKING_STATUS_FLAGS_ERROR = 2 , } impl CameraTrackingStatusFlags { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_STATUS_FLAGS_IDLE ; } impl Default for CameraTrackingStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageUsageFlag { STORAGE_USAGE_FLAG_SET = 1 , STORAGE_USAGE_FLAG_PHOTO = 2 , STORAGE_USAGE_FLAG_VIDEO = 4 , STORAGE_USAGE_FLAG_LOGS = 8 , } impl StorageUsageFlag { pub const DEFAULT : Self = Self :: STORAGE_USAGE_FLAG_SET ; } impl Default for StorageUsageFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RcType { RC_TYPE_SPEKTRUM_DSM2 = 0 , RC_TYPE_SPEKTRUM_DSMX = 1 , } impl RcType { pub const DEFAULT : Self = Self :: RC_TYPE_SPEKTRUM_DSM2 ; } impl Default for RcType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceErrorFlags : u32 { const GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT = 1 ; const GIMBAL_DEVICE_ERROR_FLAGS_AT_PITCH_LIMIT = 2 ; const GIMBAL_DEVICE_ERROR_FLAGS_AT_YAW_LIMIT = 4 ; const GIMBAL_DEVICE_ERROR_FLAGS_ENCODER_ERROR = 8 ; const GIMBAL_DEVICE_ERROR_FLAGS_POWER_ERROR = 16 ; const GIMBAL_DEVICE_ERROR_FLAGS_MOTOR_ERROR = 32 ; const GIMBAL_DEVICE_ERROR_FLAGS_SOFTWARE_ERROR = 64 ; const GIMBAL_DEVICE_ERROR_FLAGS_COMMS_ERROR = 128 ; const GIMBAL_DEVICE_ERROR_FLAGS_CALIBRATION_RUNNING = 256 ; const GIMBAL_DEVICE_ERROR_FLAGS_NO_MANAGER = 512 ; } } impl GimbalDeviceErrorFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT ; } impl Default for GimbalDeviceErrorFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidTimeAcc { MAV_ODID_TIME_ACC_UNKNOWN = 0 , MAV_ODID_TIME_ACC_0_1_SECOND = 1 , MAV_ODID_TIME_ACC_0_2_SECOND = 2 , MAV_ODID_TIME_ACC_0_3_SECOND = 3 , MAV_ODID_TIME_ACC_0_4_SECOND = 4 , MAV_ODID_TIME_ACC_0_5_SECOND = 5 , MAV_ODID_TIME_ACC_0_6_SECOND = 6 , MAV_ODID_TIME_ACC_0_7_SECOND = 7 , MAV_ODID_TIME_ACC_0_8_SECOND = 8 , MAV_ODID_TIME_ACC_0_9_SECOND = 9 , MAV_ODID_TIME_ACC_1_0_SECOND = 10 , MAV_ODID_TIME_ACC_1_1_SECOND = 11 , MAV_ODID_TIME_ACC_1_2_SECOND = 12 , MAV_ODID_TIME_ACC_1_3_SECOND = 13 , MAV_ODID_TIME_ACC_1_4_SECOND = 14 , MAV_ODID_TIME_ACC_1_5_SECOND = 15 , } impl MavOdidTimeAcc { pub const DEFAULT : Self = Self :: MAV_ODID_TIME_ACC_UNKNOWN ; } impl Default for MavOdidTimeAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavTunnelPayloadType { MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN = 0 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED0 = 200 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED1 = 201 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED2 = 202 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED3 = 203 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED4 = 204 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED5 = 205 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED6 = 206 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED7 = 207 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED8 = 208 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED9 = 209 , } impl MavTunnelPayloadType { pub const DEFAULT : Self = Self :: MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN ; } impl Default for MavTunnelPayloadType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavParamExtType { MAV_PARAM_EXT_TYPE_UINT8 = 1 , MAV_PARAM_EXT_TYPE_INT8 = 2 , MAV_PARAM_EXT_TYPE_UINT16 = 3 , MAV_PARAM_EXT_TYPE_INT16 = 4 , MAV_PARAM_EXT_TYPE_UINT32 = 5 , MAV_PARAM_EXT_TYPE_INT32 = 6 , MAV_PARAM_EXT_TYPE_UINT64 = 7 , MAV_PARAM_EXT_TYPE_INT64 = 8 , MAV_PARAM_EXT_TYPE_REAL32 = 9 , MAV_PARAM_EXT_TYPE_REAL64 = 10 , MAV_PARAM_EXT_TYPE_CUSTOM = 11 , } impl MavParamExtType { pub const DEFAULT : Self = Self :: MAV_PARAM_EXT_TYPE_UINT8 ; } impl Default for MavParamExtType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutDynamicGpsFix { UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_0 = 0 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_1 = 1 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_2D = 2 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_3D = 3 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_DGPS = 4 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_RTK = 5 , } impl UavionixAdsbOutDynamicGpsFix { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_0 ; } impl Default for UavionixAdsbOutDynamicGpsFix { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutCfgGpsOffsetLat { UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_NO_DATA = 0 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_2M = 1 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_4M = 2 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_6M = 3 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_0M = 4 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_2M = 5 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_4M = 6 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_6M = 7 , } impl UavionixAdsbOutCfgGpsOffsetLat { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_NO_DATA ; } impl Default for UavionixAdsbOutCfgGpsOffsetLat { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavcanNodeHealth { UAVCAN_NODE_HEALTH_OK = 0 , UAVCAN_NODE_HEALTH_WARNING = 1 , UAVCAN_NODE_HEALTH_ERROR = 2 , UAVCAN_NODE_HEALTH_CRITICAL = 3 , } impl UavcanNodeHealth { pub const DEFAULT : Self = Self :: UAVCAN_NODE_HEALTH_OK ; } impl Default for UavcanNodeHealth { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavParamType { MAV_PARAM_TYPE_UINT8 = 1 , MAV_PARAM_TYPE_INT8 = 2 , MAV_PARAM_TYPE_UINT16 = 3 , MAV_PARAM_TYPE_INT16 = 4 , MAV_PARAM_TYPE_UINT32 = 5 , MAV_PARAM_TYPE_INT32 = 6 , MAV_PARAM_TYPE_UINT64 = 7 , MAV_PARAM_TYPE_INT64 = 8 , MAV_PARAM_TYPE_REAL32 = 9 , MAV_PARAM_TYPE_REAL64 = 10 , } impl MavParamType { pub const DEFAULT : Self = Self :: MAV_PARAM_TYPE_UINT8 ; } impl Default for MavParamType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AisFlags : u16 { const AIS_FLAGS_POSITION_ACCURACY = 1 ; const AIS_FLAGS_VALID_COG = 2 ; const AIS_FLAGS_VALID_VELOCITY = 4 ; const AIS_FLAGS_HIGH_VELOCITY = 8 ; const AIS_FLAGS_VALID_TURN_RATE = 16 ; const AIS_FLAGS_TURN_RATE_SIGN_ONLY = 32 ; const AIS_FLAGS_VALID_DIMENSIONS = 64 ; const AIS_FLAGS_LARGE_BOW_DIMENSION = 128 ; const AIS_FLAGS_LARGE_STERN_DIMENSION = 256 ; const AIS_FLAGS_LARGE_PORT_DIMENSION = 512 ; const AIS_FLAGS_LARGE_STARBOARD_DIMENSION = 1024 ; const AIS_FLAGS_VALID_CALLSIGN = 2048 ; const AIS_FLAGS_VALID_NAME = 4096 ; } } impl AisFlags { pub const DEFAULT : Self = Self :: AIS_FLAGS_POSITION_ACCURACY ; } impl Default for AisFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AutotuneAxis { AUTOTUNE_AXIS_DEFAULT = 0 , AUTOTUNE_AXIS_ROLL = 1 , AUTOTUNE_AXIS_PITCH = 2 , AUTOTUNE_AXIS_YAW = 4 , } impl AutotuneAxis { pub const DEFAULT : Self = Self :: AUTOTUNE_AXIS_DEFAULT ; } impl Default for AutotuneAxis { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidCategoryEu { MAV_ODID_CATEGORY_EU_UNDECLARED = 0 , MAV_ODID_CATEGORY_EU_OPEN = 1 , MAV_ODID_CATEGORY_EU_SPECIFIC = 2 , MAV_ODID_CATEGORY_EU_CERTIFIED = 3 , } impl MavOdidCategoryEu { pub const DEFAULT : Self = Self :: MAV_ODID_CATEGORY_EU_UNDECLARED ; } impl Default for MavOdidCategoryEu { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavWinchStatusFlag : u32 { const MAV_WINCH_STATUS_HEALTHY = 1 ; const MAV_WINCH_STATUS_FULLY_RETRACTED = 2 ; const MAV_WINCH_STATUS_MOVING = 4 ; const MAV_WINCH_STATUS_CLUTCH_ENGAGED = 8 ; const MAV_WINCH_STATUS_LOCKED = 16 ; const MAV_WINCH_STATUS_DROPPING = 32 ; const MAV_WINCH_STATUS_ARRESTING = 64 ; const MAV_WINCH_STATUS_GROUND_SENSE = 128 ; const MAV_WINCH_STATUS_RETRACTING = 256 ; const MAV_WINCH_STATUS_REDELIVER = 512 ; const MAV_WINCH_STATUS_ABANDON_LINE = 1024 ; const MAV_WINCH_STATUS_LOCKING = 2048 ; const MAV_WINCH_STATUS_LOAD_LINE = 4096 ; const MAV_WINCH_STATUS_LOAD_PAYLOAD = 8192 ; } } impl MavWinchStatusFlag { pub const DEFAULT : Self = Self :: MAV_WINCH_STATUS_HEALTHY ; } impl Default for MavWinchStatusFlag { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavSysStatusSensor : u32 { const MAV_SYS_STATUS_SENSOR_3D_GYRO = 1 ; const MAV_SYS_STATUS_SENSOR_3D_ACCEL = 2 ; const MAV_SYS_STATUS_SENSOR_3D_MAG = 4 ; const MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE = 8 ; const MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE = 16 ; const MAV_SYS_STATUS_SENSOR_GPS = 32 ; const MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW = 64 ; const MAV_SYS_STATUS_SENSOR_VISION_POSITION = 128 ; const MAV_SYS_STATUS_SENSOR_LASER_POSITION = 256 ; const MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH = 512 ; const MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL = 1024 ; const MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION = 2048 ; const MAV_SYS_STATUS_SENSOR_YAW_POSITION = 4096 ; const MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL = 8192 ; const MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL = 16384 ; const MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS = 32768 ; const MAV_SYS_STATUS_SENSOR_RC_RECEIVER = 65536 ; const MAV_SYS_STATUS_SENSOR_3D_GYRO2 = 131072 ; const MAV_SYS_STATUS_SENSOR_3D_ACCEL2 = 262144 ; const MAV_SYS_STATUS_SENSOR_3D_MAG2 = 524288 ; const MAV_SYS_STATUS_GEOFENCE = 1048576 ; const MAV_SYS_STATUS_AHRS = 2097152 ; const MAV_SYS_STATUS_TERRAIN = 4194304 ; const MAV_SYS_STATUS_REVERSE_MOTOR = 8388608 ; const MAV_SYS_STATUS_LOGGING = 16777216 ; const MAV_SYS_STATUS_SENSOR_BATTERY = 33554432 ; const MAV_SYS_STATUS_SENSOR_PROXIMITY = 67108864 ; const MAV_SYS_STATUS_SENSOR_SATCOM = 134217728 ; const MAV_SYS_STATUS_PREARM_CHECK = 268435456 ; const MAV_SYS_STATUS_OBSTACLE_AVOIDANCE = 536870912 ; const MAV_SYS_STATUS_SENSOR_PROPULSION = 1073741824 ; const MAV_SYS_STATUS_EXTENSION_USED = 2147483648 ; } } impl MavSysStatusSensor { pub const DEFAULT : Self = Self :: MAV_SYS_STATUS_SENSOR_3D_GYRO ; } impl Default for MavSysStatusSensor { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularNetworkFailedReason { CELLULAR_NETWORK_FAILED_REASON_NONE = 0 , CELLULAR_NETWORK_FAILED_REASON_UNKNOWN = 1 , CELLULAR_NETWORK_FAILED_REASON_SIM_MISSING = 2 , CELLULAR_NETWORK_FAILED_REASON_SIM_ERROR = 3 , } impl CellularNetworkFailedReason { pub const DEFAULT : Self = Self :: CELLULAR_NETWORK_FAILED_REASON_NONE ; } impl Default for CellularNetworkFailedReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MissionState { MISSION_STATE_UNKNOWN = 0 , MISSION_STATE_NO_MISSION = 1 , MISSION_STATE_NOT_STARTED = 2 , MISSION_STATE_ACTIVE = 3 , MISSION_STATE_PAUSED = 4 , MISSION_STATE_COMPLETE = 5 , } impl MissionState { pub const DEFAULT : Self = Self :: MISSION_STATE_UNKNOWN ; } impl Default for MissionState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RtkBaselineCoordinateSystem { RTK_BASELINE_COORDINATE_SYSTEM_ECEF = 0 , RTK_BASELINE_COORDINATE_SYSTEM_NED = 1 , } impl RtkBaselineCoordinateSystem { pub const DEFAULT : Self = Self :: RTK_BASELINE_COORDINATE_SYSTEM_ECEF ; } impl Default for RtkBaselineCoordinateSystem { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingMode { CAMERA_TRACKING_MODE_NONE = 0 , CAMERA_TRACKING_MODE_POINT = 1 , CAMERA_TRACKING_MODE_RECTANGLE = 2 , } impl CameraTrackingMode { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_MODE_NONE ; } impl Default for CameraTrackingMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageType { STORAGE_TYPE_UNKNOWN = 0 , STORAGE_TYPE_USB_STICK = 1 , STORAGE_TYPE_SD = 2 , STORAGE_TYPE_MICROSD = 3 , STORAGE_TYPE_CF = 4 , STORAGE_TYPE_CFE = 5 , STORAGE_TYPE_XQD = 6 , STORAGE_TYPE_HD = 7 , STORAGE_TYPE_OTHER = 254 , } impl StorageType { pub const DEFAULT : Self = Self :: STORAGE_TYPE_UNKNOWN ; } impl Default for StorageType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VideoStreamType { VIDEO_STREAM_TYPE_RTSP = 0 , VIDEO_STREAM_TYPE_RTPUDP = 1 , VIDEO_STREAM_TYPE_TCP_MPEG = 2 , VIDEO_STREAM_TYPE_MPEG_TS_H264 = 3 , } impl VideoStreamType { pub const DEFAULT : Self = Self :: VIDEO_STREAM_TYPE_RTSP ; } impl Default for VideoStreamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FailureType { FAILURE_TYPE_OK = 0 , FAILURE_TYPE_OFF = 1 , FAILURE_TYPE_STUCK = 2 , FAILURE_TYPE_GARBAGE = 3 , FAILURE_TYPE_WRONG = 4 , FAILURE_TYPE_SLOW = 5 , FAILURE_TYPE_DELAYED = 6 , FAILURE_TYPE_INTERMITTENT = 7 , } impl FailureType { pub const DEFAULT : Self = Self :: FAILURE_TYPE_OK ; } impl Default for FailureType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidVerAcc { MAV_ODID_VER_ACC_UNKNOWN = 0 , MAV_ODID_VER_ACC_150_METER = 1 , MAV_ODID_VER_ACC_45_METER = 2 , MAV_ODID_VER_ACC_25_METER = 3 , MAV_ODID_VER_ACC_10_METER = 4 , MAV_ODID_VER_ACC_3_METER = 5 , MAV_ODID_VER_ACC_1_METER = 6 , } impl MavOdidVerAcc { pub const DEFAULT : Self = Self :: MAV_ODID_VER_ACC_UNKNOWN ; } impl Default for MavOdidVerAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavGoto { MAV_GOTO_DO_HOLD = 0 , MAV_GOTO_DO_CONTINUE = 1 , MAV_GOTO_HOLD_AT_CURRENT_POSITION = 2 , MAV_GOTO_HOLD_AT_SPECIFIED_POSITION = 3 , } impl MavGoto { pub const DEFAULT : Self = Self :: MAV_GOTO_DO_HOLD ; } impl Default for MavGoto { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryChargeState { MAV_BATTERY_CHARGE_STATE_UNDEFINED = 0 , MAV_BATTERY_CHARGE_STATE_OK = 1 , MAV_BATTERY_CHARGE_STATE_LOW = 2 , MAV_BATTERY_CHARGE_STATE_CRITICAL = 3 , MAV_BATTERY_CHARGE_STATE_EMERGENCY = 4 , MAV_BATTERY_CHARGE_STATE_FAILED = 5 , MAV_BATTERY_CHARGE_STATE_UNHEALTHY = 6 , MAV_BATTERY_CHARGE_STATE_CHARGING = 7 , } impl MavBatteryChargeState { pub const DEFAULT : Self = Self :: MAV_BATTERY_CHARGE_STATE_UNDEFINED ; } impl Default for MavBatteryChargeState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryFunction { MAV_BATTERY_FUNCTION_UNKNOWN = 0 , MAV_BATTERY_FUNCTION_ALL = 1 , MAV_BATTERY_FUNCTION_PROPULSION = 2 , MAV_BATTERY_FUNCTION_AVIONICS = 3 , MAV_BATTERY_FUNCTION_PAYLOAD = 4 , } impl MavBatteryFunction { pub const DEFAULT : Self = Self :: MAV_BATTERY_FUNCTION_UNKNOWN ; } impl Default for MavBatteryFunction { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AdsbFlags : u16 { const ADSB_FLAGS_VALID_COORDS = 1 ; const ADSB_FLAGS_VALID_ALTITUDE = 2 ; const ADSB_FLAGS_VALID_HEADING = 4 ; const ADSB_FLAGS_VALID_VELOCITY = 8 ; const ADSB_FLAGS_VALID_CALLSIGN = 16 ; const ADSB_FLAGS_VALID_SQUAWK = 32 ; const ADSB_FLAGS_SIMULATED = 64 ; const ADSB_FLAGS_VERTICAL_VELOCITY_VALID = 128 ; const ADSB_FLAGS_BARO_VALID = 256 ; const ADSB_FLAGS_SOURCE_UAT = 32768 ; } } impl AdsbFlags { pub const DEFAULT : Self = Self :: ADSB_FLAGS_VALID_COORDS ; } impl Default for AdsbFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryFault { MAV_BATTERY_FAULT_DEEP_DISCHARGE = 1 , MAV_BATTERY_FAULT_SPIKES = 2 , MAV_BATTERY_FAULT_CELL_FAIL = 4 , MAV_BATTERY_FAULT_OVER_CURRENT = 8 , MAV_BATTERY_FAULT_OVER_TEMPERATURE = 16 , MAV_BATTERY_FAULT_UNDER_TEMPERATURE = 32 , MAV_BATTERY_FAULT_INCOMPATIBLE_VOLTAGE = 64 , MAV_BATTERY_FAULT_INCOMPATIBLE_FIRMWARE = 128 , BATTERY_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION = 256 , } impl MavBatteryFault { pub const DEFAULT : Self = Self :: MAV_BATTERY_FAULT_DEEP_DISCHARGE ; } impl Default for MavBatteryFault { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidHorAcc { MAV_ODID_HOR_ACC_UNKNOWN = 0 , MAV_ODID_HOR_ACC_10NM = 1 , MAV_ODID_HOR_ACC_4NM = 2 , MAV_ODID_HOR_ACC_2NM = 3 , MAV_ODID_HOR_ACC_1NM = 4 , MAV_ODID_HOR_ACC_0_5NM = 5 , MAV_ODID_HOR_ACC_0_3NM = 6 , MAV_ODID_HOR_ACC_0_1NM = 7 , MAV_ODID_HOR_ACC_0_05NM = 8 , MAV_ODID_HOR_ACC_30_METER = 9 , MAV_ODID_HOR_ACC_10_METER = 10 , MAV_ODID_HOR_ACC_3_METER = 11 , MAV_ODID_HOR_ACC_1_METER = 12 , } impl MavOdidHorAcc { pub const DEFAULT : Self = Self :: MAV_ODID_HOR_ACC_UNKNOWN ; } impl Default for MavOdidHorAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceAction { FENCE_ACTION_NONE = 0 , FENCE_ACTION_GUIDED = 1 , FENCE_ACTION_REPORT = 2 , FENCE_ACTION_GUIDED_THR_PASS = 3 , FENCE_ACTION_RTL = 4 , FENCE_ACTION_HOLD = 5 , FENCE_ACTION_TERMINATE = 6 , FENCE_ACTION_LAND = 7 , } impl FenceAction { pub const DEFAULT : Self = Self :: FENCE_ACTION_NONE ; } impl Default for FenceAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AisType { AIS_TYPE_UNKNOWN = 0 , AIS_TYPE_RESERVED_1 = 1 , AIS_TYPE_RESERVED_2 = 2 , AIS_TYPE_RESERVED_3 = 3 , AIS_TYPE_RESERVED_4 = 4 , AIS_TYPE_RESERVED_5 = 5 , AIS_TYPE_RESERVED_6 = 6 , AIS_TYPE_RESERVED_7 = 7 , AIS_TYPE_RESERVED_8 = 8 , AIS_TYPE_RESERVED_9 = 9 , AIS_TYPE_RESERVED_10 = 10 , AIS_TYPE_RESERVED_11 = 11 , AIS_TYPE_RESERVED_12 = 12 , AIS_TYPE_RESERVED_13 = 13 , AIS_TYPE_RESERVED_14 = 14 , AIS_TYPE_RESERVED_15 = 15 , AIS_TYPE_RESERVED_16 = 16 , AIS_TYPE_RESERVED_17 = 17 , AIS_TYPE_RESERVED_18 = 18 , AIS_TYPE_RESERVED_19 = 19 , AIS_TYPE_WIG = 20 , AIS_TYPE_WIG_HAZARDOUS_A = 21 , AIS_TYPE_WIG_HAZARDOUS_B = 22 , AIS_TYPE_WIG_HAZARDOUS_C = 23 , AIS_TYPE_WIG_HAZARDOUS_D = 24 , AIS_TYPE_WIG_RESERVED_1 = 25 , AIS_TYPE_WIG_RESERVED_2 = 26 , AIS_TYPE_WIG_RESERVED_3 = 27 , AIS_TYPE_WIG_RESERVED_4 = 28 , AIS_TYPE_WIG_RESERVED_5 = 29 , AIS_TYPE_FISHING = 30 , AIS_TYPE_TOWING = 31 , AIS_TYPE_TOWING_LARGE = 32 , AIS_TYPE_DREDGING = 33 , AIS_TYPE_DIVING = 34 , AIS_TYPE_MILITARY = 35 , AIS_TYPE_SAILING = 36 , AIS_TYPE_PLEASURE = 37 , AIS_TYPE_RESERVED_20 = 38 , AIS_TYPE_RESERVED_21 = 39 , AIS_TYPE_HSC = 40 , AIS_TYPE_HSC_HAZARDOUS_A = 41 , AIS_TYPE_HSC_HAZARDOUS_B = 42 , AIS_TYPE_HSC_HAZARDOUS_C = 43 , AIS_TYPE_HSC_HAZARDOUS_D = 44 , AIS_TYPE_HSC_RESERVED_1 = 45 , AIS_TYPE_HSC_RESERVED_2 = 46 , AIS_TYPE_HSC_RESERVED_3 = 47 , AIS_TYPE_HSC_RESERVED_4 = 48 , AIS_TYPE_HSC_UNKNOWN = 49 , AIS_TYPE_PILOT = 50 , AIS_TYPE_SAR = 51 , AIS_TYPE_TUG = 52 , AIS_TYPE_PORT_TENDER = 53 , AIS_TYPE_ANTI_POLLUTION = 54 , AIS_TYPE_LAW_ENFORCEMENT = 55 , AIS_TYPE_SPARE_LOCAL_1 = 56 , AIS_TYPE_SPARE_LOCAL_2 = 57 , AIS_TYPE_MEDICAL_TRANSPORT = 58 , AIS_TYPE_NONECOMBATANT = 59 , AIS_TYPE_PASSENGER = 60 , AIS_TYPE_PASSENGER_HAZARDOUS_A = 61 , AIS_TYPE_PASSENGER_HAZARDOUS_B = 62 , AIS_TYPE_PASSENGER_HAZARDOUS_C = 63 , AIS_TYPE_PASSENGER_HAZARDOUS_D = 64 , AIS_TYPE_PASSENGER_RESERVED_1 = 65 , AIS_TYPE_PASSENGER_RESERVED_2 = 66 , AIS_TYPE_PASSENGER_RESERVED_3 = 67 , AIS_TYPE_PASSENGER_RESERVED_4 = 68 , AIS_TYPE_PASSENGER_UNKNOWN = 69 , AIS_TYPE_CARGO = 70 , AIS_TYPE_CARGO_HAZARDOUS_A = 71 , AIS_TYPE_CARGO_HAZARDOUS_B = 72 , AIS_TYPE_CARGO_HAZARDOUS_C = 73 , AIS_TYPE_CARGO_HAZARDOUS_D = 74 , AIS_TYPE_CARGO_RESERVED_1 = 75 , AIS_TYPE_CARGO_RESERVED_2 = 76 , AIS_TYPE_CARGO_RESERVED_3 = 77 , AIS_TYPE_CARGO_RESERVED_4 = 78 , AIS_TYPE_CARGO_UNKNOWN = 79 , AIS_TYPE_TANKER = 80 , AIS_TYPE_TANKER_HAZARDOUS_A = 81 , AIS_TYPE_TANKER_HAZARDOUS_B = 82 , AIS_TYPE_TANKER_HAZARDOUS_C = 83 , AIS_TYPE_TANKER_HAZARDOUS_D = 84 , AIS_TYPE_TANKER_RESERVED_1 = 85 , AIS_TYPE_TANKER_RESERVED_2 = 86 , AIS_TYPE_TANKER_RESERVED_3 = 87 , AIS_TYPE_TANKER_RESERVED_4 = 88 , AIS_TYPE_TANKER_UNKNOWN = 89 , AIS_TYPE_OTHER = 90 , AIS_TYPE_OTHER_HAZARDOUS_A = 91 , AIS_TYPE_OTHER_HAZARDOUS_B = 92 , AIS_TYPE_OTHER_HAZARDOUS_C = 93 , AIS_TYPE_OTHER_HAZARDOUS_D = 94 , AIS_TYPE_OTHER_RESERVED_1 = 95 , AIS_TYPE_OTHER_RESERVED_2 = 96 , AIS_TYPE_OTHER_RESERVED_3 = 97 , AIS_TYPE_OTHER_RESERVED_4 = 98 , AIS_TYPE_OTHER_UNKNOWN = 99 , } impl AisType { pub const DEFAULT : Self = Self :: AIS_TYPE_UNKNOWN ; } impl Default for AisType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMissionResult { MAV_MISSION_ACCEPTED = 0 , MAV_MISSION_ERROR = 1 , MAV_MISSION_UNSUPPORTED_FRAME = 2 , MAV_MISSION_UNSUPPORTED = 3 , MAV_MISSION_NO_SPACE = 4 , MAV_MISSION_INVALID = 5 , MAV_MISSION_INVALID_PARAM1 = 6 , MAV_MISSION_INVALID_PARAM2 = 7 , MAV_MISSION_INVALID_PARAM3 = 8 , MAV_MISSION_INVALID_PARAM4 = 9 , MAV_MISSION_INVALID_PARAM5_X = 10 , MAV_MISSION_INVALID_PARAM6_Y = 11 , MAV_MISSION_INVALID_PARAM7 = 12 , MAV_MISSION_INVALID_SEQUENCE = 13 , MAV_MISSION_DENIED = 14 , MAV_MISSION_OPERATION_CANCELLED = 15 , } impl MavMissionResult { pub const DEFAULT : Self = Self :: MAV_MISSION_ACCEPTED ; } impl Default for MavMissionResult { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavComponent { MAV_COMP_ID_ALL = 0 , MAV_COMP_ID_AUTOPILOT1 = 1 , MAV_COMP_ID_USER1 = 25 , MAV_COMP_ID_USER2 = 26 , MAV_COMP_ID_USER3 = 27 , MAV_COMP_ID_USER4 = 28 , MAV_COMP_ID_USER5 = 29 , MAV_COMP_ID_USER6 = 30 , MAV_COMP_ID_USER7 = 31 , MAV_COMP_ID_USER8 = 32 , MAV_COMP_ID_USER9 = 33 , MAV_COMP_ID_USER10 = 34 , MAV_COMP_ID_USER11 = 35 , MAV_COMP_ID_USER12 = 36 , MAV_COMP_ID_USER13 = 37 , MAV_COMP_ID_USER14 = 38 , MAV_COMP_ID_USER15 = 39 , MAV_COMP_ID_USER16 = 40 , MAV_COMP_ID_USER17 = 41 , MAV_COMP_ID_USER18 = 42 , MAV_COMP_ID_USER19 = 43 , MAV_COMP_ID_USER20 = 44 , MAV_COMP_ID_USER21 = 45 , MAV_COMP_ID_USER22 = 46 , MAV_COMP_ID_USER23 = 47 , MAV_COMP_ID_USER24 = 48 , MAV_COMP_ID_USER25 = 49 , MAV_COMP_ID_USER26 = 50 , MAV_COMP_ID_USER27 = 51 , MAV_COMP_ID_USER28 = 52 , MAV_COMP_ID_USER29 = 53 , MAV_COMP_ID_USER30 = 54 , MAV_COMP_ID_USER31 = 55 , MAV_COMP_ID_USER32 = 56 , MAV_COMP_ID_USER33 = 57 , MAV_COMP_ID_USER34 = 58 , MAV_COMP_ID_USER35 = 59 , MAV_COMP_ID_USER36 = 60 , MAV_COMP_ID_USER37 = 61 , MAV_COMP_ID_USER38 = 62 , MAV_COMP_ID_USER39 = 63 , MAV_COMP_ID_USER40 = 64 , MAV_COMP_ID_USER41 = 65 , MAV_COMP_ID_USER42 = 66 , MAV_COMP_ID_USER43 = 67 , MAV_COMP_ID_TELEMETRY_RADIO = 68 , MAV_COMP_ID_USER45 = 69 , MAV_COMP_ID_USER46 = 70 , MAV_COMP_ID_USER47 = 71 , MAV_COMP_ID_USER48 = 72 , MAV_COMP_ID_USER49 = 73 , MAV_COMP_ID_USER50 = 74 , MAV_COMP_ID_USER51 = 75 , MAV_COMP_ID_USER52 = 76 , MAV_COMP_ID_USER53 = 77 , MAV_COMP_ID_USER54 = 78 , MAV_COMP_ID_USER55 = 79 , MAV_COMP_ID_USER56 = 80 , MAV_COMP_ID_USER57 = 81 , MAV_COMP_ID_USER58 = 82 , MAV_COMP_ID_USER59 = 83 , MAV_COMP_ID_USER60 = 84 , MAV_COMP_ID_USER61 = 85 , MAV_COMP_ID_USER62 = 86 , MAV_COMP_ID_USER63 = 87 , MAV_COMP_ID_USER64 = 88 , MAV_COMP_ID_USER65 = 89 , MAV_COMP_ID_USER66 = 90 , MAV_COMP_ID_USER67 = 91 , MAV_COMP_ID_USER68 = 92 , MAV_COMP_ID_USER69 = 93 , MAV_COMP_ID_USER70 = 94 , MAV_COMP_ID_USER71 = 95 , MAV_COMP_ID_USER72 = 96 , MAV_COMP_ID_USER73 = 97 , MAV_COMP_ID_USER74 = 98 , MAV_COMP_ID_USER75 = 99 , MAV_COMP_ID_CAMERA = 100 , MAV_COMP_ID_CAMERA2 = 101 , MAV_COMP_ID_CAMERA3 = 102 , MAV_COMP_ID_CAMERA4 = 103 , MAV_COMP_ID_CAMERA5 = 104 , MAV_COMP_ID_CAMERA6 = 105 , MAV_COMP_ID_SERVO1 = 140 , MAV_COMP_ID_SERVO2 = 141 , MAV_COMP_ID_SERVO3 = 142 , MAV_COMP_ID_SERVO4 = 143 , MAV_COMP_ID_SERVO5 = 144 , MAV_COMP_ID_SERVO6 = 145 , MAV_COMP_ID_SERVO7 = 146 , MAV_COMP_ID_SERVO8 = 147 , MAV_COMP_ID_SERVO9 = 148 , MAV_COMP_ID_SERVO10 = 149 , MAV_COMP_ID_SERVO11 = 150 , MAV_COMP_ID_SERVO12 = 151 , MAV_COMP_ID_SERVO13 = 152 , MAV_COMP_ID_SERVO14 = 153 , MAV_COMP_ID_GIMBAL = 154 , MAV_COMP_ID_LOG = 155 , MAV_COMP_ID_ADSB = 156 , MAV_COMP_ID_OSD = 157 , MAV_COMP_ID_PERIPHERAL = 158 , MAV_COMP_ID_QX1_GIMBAL = 159 , MAV_COMP_ID_FLARM = 160 , MAV_COMP_ID_PARACHUTE = 161 , MAV_COMP_ID_WINCH = 169 , MAV_COMP_ID_GIMBAL2 = 171 , MAV_COMP_ID_GIMBAL3 = 172 , MAV_COMP_ID_GIMBAL4 = 173 , MAV_COMP_ID_GIMBAL5 = 174 , MAV_COMP_ID_GIMBAL6 = 175 , MAV_COMP_ID_BATTERY = 180 , MAV_COMP_ID_BATTERY2 = 181 , MAV_COMP_ID_MAVCAN = 189 , MAV_COMP_ID_MISSIONPLANNER = 190 , MAV_COMP_ID_ONBOARD_COMPUTER = 191 , MAV_COMP_ID_ONBOARD_COMPUTER2 = 192 , MAV_COMP_ID_ONBOARD_COMPUTER3 = 193 , MAV_COMP_ID_ONBOARD_COMPUTER4 = 194 , MAV_COMP_ID_PATHPLANNER = 195 , MAV_COMP_ID_OBSTACLE_AVOIDANCE = 196 , MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY = 197 , MAV_COMP_ID_PAIRING_MANAGER = 198 , MAV_COMP_ID_IMU = 200 , MAV_COMP_ID_IMU_2 = 201 , MAV_COMP_ID_IMU_3 = 202 , MAV_COMP_ID_GPS = 220 , MAV_COMP_ID_GPS2 = 221 , MAV_COMP_ID_ODID_TXRX_1 = 236 , MAV_COMP_ID_ODID_TXRX_2 = 237 , MAV_COMP_ID_ODID_TXRX_3 = 238 , MAV_COMP_ID_UDP_BRIDGE = 240 , MAV_COMP_ID_UART_BRIDGE = 241 , MAV_COMP_ID_TUNNEL_NODE = 242 , MAV_COMP_ID_SYSTEM_CONTROL = 250 , } impl MavComponent { pub const DEFAULT : Self = Self :: MAV_COMP_ID_ALL ; } impl Default for MavComponent { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDataStream { MAV_DATA_STREAM_ALL = 0 , MAV_DATA_STREAM_RAW_SENSORS = 1 , MAV_DATA_STREAM_EXTENDED_STATUS = 2 , MAV_DATA_STREAM_RC_CHANNELS = 3 , MAV_DATA_STREAM_RAW_CONTROLLER = 4 , MAV_DATA_STREAM_POSITION = 6 , MAV_DATA_STREAM_EXTRA1 = 10 , MAV_DATA_STREAM_EXTRA2 = 11 , MAV_DATA_STREAM_EXTRA3 = 12 , } impl MavDataStream { pub const DEFAULT : Self = Self :: MAV_DATA_STREAM_ALL ; } impl Default for MavDataStream { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UtmFlightState { UTM_FLIGHT_STATE_UNKNOWN = 1 , UTM_FLIGHT_STATE_GROUND = 2 , UTM_FLIGHT_STATE_AIRBORNE = 3 , UTM_FLIGHT_STATE_EMERGENCY = 16 , UTM_FLIGHT_STATE_NOCTRL = 32 , } impl UtmFlightState { pub const DEFAULT : Self = Self :: UTM_FLIGHT_STATE_UNKNOWN ; } impl Default for UtmFlightState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavResult { MAV_RESULT_ACCEPTED = 0 , MAV_RESULT_TEMPORARILY_REJECTED = 1 , MAV_RESULT_DENIED = 2 , MAV_RESULT_UNSUPPORTED = 3 , MAV_RESULT_FAILED = 4 , MAV_RESULT_IN_PROGRESS = 5 , MAV_RESULT_CANCELLED = 6 , } impl MavResult { pub const DEFAULT : Self = Self :: MAV_RESULT_ACCEPTED ; } impl Default for MavResult { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum NavVtolLandOptions { NAV_VTOL_LAND_OPTIONS_DEFAULT = 0 , NAV_VTOL_LAND_OPTIONS_FW_DESCENT = 1 , NAV_VTOL_LAND_OPTIONS_HOVER_DESCENT = 2 , } impl NavVtolLandOptions { pub const DEFAULT : Self = Self :: NAV_VTOL_LAND_OPTIONS_DEFAULT ; } impl Default for NavVtolLandOptions { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavGeneratorStatusFlag : u64 { const MAV_GENERATOR_STATUS_FLAG_OFF = 1 ; const MAV_GENERATOR_STATUS_FLAG_READY = 2 ; const MAV_GENERATOR_STATUS_FLAG_GENERATING = 4 ; const MAV_GENERATOR_STATUS_FLAG_CHARGING = 8 ; const MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER = 16 ; const MAV_GENERATOR_STATUS_FLAG_MAXPOWER = 32 ; const MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING = 64 ; const MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT = 128 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING = 256 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT = 512 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT = 1024 ; const MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT = 2048 ; const MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING = 4096 ; const MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING = 8192 ; const MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT = 16384 ; const MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT = 32768 ; const MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT = 65536 ; const MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT = 131072 ; const MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT = 262144 ; const MAV_GENERATOR_STATUS_FLAG_START_INHIBITED = 524288 ; const MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED = 1048576 ; const MAV_GENERATOR_STATUS_FLAG_WARMING_UP = 2097152 ; const MAV_GENERATOR_STATUS_FLAG_IDLE = 4194304 ; } } impl MavGeneratorStatusFlag { pub const DEFAULT : Self = Self :: MAV_GENERATOR_STATUS_FLAG_OFF ; } impl Default for MavGeneratorStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSensorOrientation { MAV_SENSOR_ROTATION_NONE = 0 , MAV_SENSOR_ROTATION_YAW_45 = 1 , MAV_SENSOR_ROTATION_YAW_90 = 2 , MAV_SENSOR_ROTATION_YAW_135 = 3 , MAV_SENSOR_ROTATION_YAW_180 = 4 , MAV_SENSOR_ROTATION_YAW_225 = 5 , MAV_SENSOR_ROTATION_YAW_270 = 6 , MAV_SENSOR_ROTATION_YAW_315 = 7 , MAV_SENSOR_ROTATION_ROLL_180 = 8 , MAV_SENSOR_ROTATION_ROLL_180_YAW_45 = 9 , MAV_SENSOR_ROTATION_ROLL_180_YAW_90 = 10 , MAV_SENSOR_ROTATION_ROLL_180_YAW_135 = 11 , MAV_SENSOR_ROTATION_PITCH_180 = 12 , MAV_SENSOR_ROTATION_ROLL_180_YAW_225 = 13 , MAV_SENSOR_ROTATION_ROLL_180_YAW_270 = 14 , MAV_SENSOR_ROTATION_ROLL_180_YAW_315 = 15 , MAV_SENSOR_ROTATION_ROLL_90 = 16 , MAV_SENSOR_ROTATION_ROLL_90_YAW_45 = 17 , MAV_SENSOR_ROTATION_ROLL_90_YAW_90 = 18 , MAV_SENSOR_ROTATION_ROLL_90_YAW_135 = 19 , MAV_SENSOR_ROTATION_ROLL_270 = 20 , MAV_SENSOR_ROTATION_ROLL_270_YAW_45 = 21 , MAV_SENSOR_ROTATION_ROLL_270_YAW_90 = 22 , MAV_SENSOR_ROTATION_ROLL_270_YAW_135 = 23 , MAV_SENSOR_ROTATION_PITCH_90 = 24 , MAV_SENSOR_ROTATION_PITCH_270 = 25 , MAV_SENSOR_ROTATION_PITCH_180_YAW_90 = 26 , MAV_SENSOR_ROTATION_PITCH_180_YAW_270 = 27 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_90 = 28 , MAV_SENSOR_ROTATION_ROLL_180_PITCH_90 = 29 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_90 = 30 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_180 = 31 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_180 = 32 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_270 = 33 , MAV_SENSOR_ROTATION_ROLL_180_PITCH_270 = 34 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_270 = 35 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_180_YAW_90 = 36 , MAV_SENSOR_ROTATION_ROLL_90_YAW_270 = 37 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_68_YAW_293 = 38 , MAV_SENSOR_ROTATION_PITCH_315 = 39 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_315 = 40 , MAV_SENSOR_ROTATION_CUSTOM = 100 , } impl MavSensorOrientation { pub const DEFAULT : Self = Self :: MAV_SENSOR_ROTATION_NONE ; } impl Default for MavSensorOrientation { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavcanNodeMode { UAVCAN_NODE_MODE_OPERATIONAL = 0 , UAVCAN_NODE_MODE_INITIALIZATION = 1 , UAVCAN_NODE_MODE_MAINTENANCE = 2 , UAVCAN_NODE_MODE_SOFTWARE_UPDATE = 3 , UAVCAN_NODE_MODE_OFFLINE = 7 , } impl UavcanNodeMode { pub const DEFAULT : Self = Self :: UAVCAN_NODE_MODE_OPERATIONAL ; } impl Default for UavcanNodeMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFrame { MAV_FRAME_GLOBAL = 0 , MAV_FRAME_LOCAL_NED = 1 , MAV_FRAME_MISSION = 2 , MAV_FRAME_GLOBAL_RELATIVE_ALT = 3 , MAV_FRAME_LOCAL_ENU = 4 , MAV_FRAME_GLOBAL_INT = 5 , MAV_FRAME_GLOBAL_RELATIVE_ALT_INT = 6 , MAV_FRAME_LOCAL_OFFSET_NED = 7 , MAV_FRAME_BODY_NED = 8 , MAV_FRAME_BODY_OFFSET_NED = 9 , MAV_FRAME_GLOBAL_TERRAIN_ALT = 10 , MAV_FRAME_GLOBAL_TERRAIN_ALT_INT = 11 , MAV_FRAME_BODY_FRD = 12 , MAV_FRAME_RESERVED_13 = 13 , MAV_FRAME_RESERVED_14 = 14 , MAV_FRAME_RESERVED_15 = 15 , MAV_FRAME_RESERVED_16 = 16 , MAV_FRAME_RESERVED_17 = 17 , MAV_FRAME_RESERVED_18 = 18 , MAV_FRAME_RESERVED_19 = 19 , MAV_FRAME_LOCAL_FRD = 20 , MAV_FRAME_LOCAL_FLU = 21 , } impl MavFrame { pub const DEFAULT : Self = Self :: MAV_FRAME_GLOBAL ; } impl Default for MavFrame { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionThreatLevel { MAV_COLLISION_THREAT_LEVEL_NONE = 0 , MAV_COLLISION_THREAT_LEVEL_LOW = 1 , MAV_COLLISION_THREAT_LEVEL_HIGH = 2 , } impl MavCollisionThreatLevel { pub const DEFAULT : Self = Self :: MAV_COLLISION_THREAT_LEVEL_NONE ; } impl Default for MavCollisionThreatLevel { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WifiConfigApResponse { WIFI_CONFIG_AP_RESPONSE_UNDEFINED = 0 , WIFI_CONFIG_AP_RESPONSE_ACCEPTED = 1 , WIFI_CONFIG_AP_RESPONSE_REJECTED = 2 , WIFI_CONFIG_AP_RESPONSE_MODE_ERROR = 3 , WIFI_CONFIG_AP_RESPONSE_SSID_ERROR = 4 , WIFI_CONFIG_AP_RESPONSE_PASSWORD_ERROR = 5 , } impl WifiConfigApResponse { pub const DEFAULT : Self = Self :: WIFI_CONFIG_AP_RESPONSE_UNDEFINED ; } impl Default for WifiConfigApResponse { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavModeFlagDecodePosition { MAV_MODE_FLAG_DECODE_POSITION_SAFETY = 128 , MAV_MODE_FLAG_DECODE_POSITION_MANUAL = 64 , MAV_MODE_FLAG_DECODE_POSITION_HIL = 32 , MAV_MODE_FLAG_DECODE_POSITION_STABILIZE = 16 , MAV_MODE_FLAG_DECODE_POSITION_GUIDED = 8 , MAV_MODE_FLAG_DECODE_POSITION_AUTO = 4 , MAV_MODE_FLAG_DECODE_POSITION_TEST = 2 , MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE = 1 , } impl MavModeFlagDecodePosition { pub const DEFAULT : Self = Self :: MAV_MODE_FLAG_DECODE_POSITION_SAFETY ; } impl Default for MavModeFlagDecodePosition { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum OrbitYawBehaviour { ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER = 0 , ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING = 1 , ORBIT_YAW_BEHAVIOUR_UNCONTROLLED = 2 , ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE = 3 , ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED = 4 , } impl OrbitYawBehaviour { pub const DEFAULT : Self = Self :: ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER ; } impl Default for OrbitYawBehaviour { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFtpErr { MAV_FTP_ERR_NONE = 0 , MAV_FTP_ERR_FAIL = 1 , MAV_FTP_ERR_FAILERRNO = 2 , MAV_FTP_ERR_INVALIDDATASIZE = 3 , MAV_FTP_ERR_INVALIDSESSION = 4 , MAV_FTP_ERR_NOSESSIONSAVAILABLE = 5 , MAV_FTP_ERR_EOF = 6 , MAV_FTP_ERR_UNKNOWNCOMMAND = 7 , MAV_FTP_ERR_FILEEXISTS = 8 , MAV_FTP_ERR_FILEPROTECTED = 9 , MAV_FTP_ERR_FILENOTFOUND = 10 , } impl MavFtpErr { pub const DEFAULT : Self = Self :: MAV_FTP_ERR_NONE ; } impl Default for MavFtpErr { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FailureUnit { FAILURE_UNIT_SENSOR_GYRO = 0 , FAILURE_UNIT_SENSOR_ACCEL = 1 , FAILURE_UNIT_SENSOR_MAG = 2 , FAILURE_UNIT_SENSOR_BARO = 3 , FAILURE_UNIT_SENSOR_GPS = 4 , FAILURE_UNIT_SENSOR_OPTICAL_FLOW = 5 , FAILURE_UNIT_SENSOR_VIO = 6 , FAILURE_UNIT_SENSOR_DISTANCE_SENSOR = 7 , FAILURE_UNIT_SENSOR_AIRSPEED = 8 , FAILURE_UNIT_SYSTEM_BATTERY = 100 , FAILURE_UNIT_SYSTEM_MOTOR = 101 , FAILURE_UNIT_SYSTEM_SERVO = 102 , FAILURE_UNIT_SYSTEM_AVOIDANCE = 103 , FAILURE_UNIT_SYSTEM_RC_SIGNAL = 104 , FAILURE_UNIT_SYSTEM_MAVLINK_SIGNAL = 105 , } impl FailureUnit { pub const DEFAULT : Self = Self :: FAILURE_UNIT_SENSOR_GYRO ; } impl Default for FailureUnit { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavModeFlag : u8 { const MAV_MODE_FLAG_SAFETY_ARMED = 128 ; const MAV_MODE_FLAG_MANUAL_INPUT_ENABLED = 64 ; const MAV_MODE_FLAG_HIL_ENABLED = 32 ; const MAV_MODE_FLAG_STABILIZE_ENABLED = 16 ; const MAV_MODE_FLAG_GUIDED_ENABLED = 8 ; const MAV_MODE_FLAG_AUTO_ENABLED = 4 ; const MAV_MODE_FLAG_TEST_ENABLED = 2 ; const MAV_MODE_FLAG_CUSTOM_MODE_ENABLED = 1 ; } } impl MavModeFlag { pub const DEFAULT : Self = Self :: MAV_MODE_FLAG_SAFETY_ARMED ; } impl Default for MavModeFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidSpeedAcc { MAV_ODID_SPEED_ACC_UNKNOWN = 0 , MAV_ODID_SPEED_ACC_10_METERS_PER_SECOND = 1 , MAV_ODID_SPEED_ACC_3_METERS_PER_SECOND = 2 , MAV_ODID_SPEED_ACC_1_METERS_PER_SECOND = 3 , MAV_ODID_SPEED_ACC_0_3_METERS_PER_SECOND = 4 , } impl MavOdidSpeedAcc { pub const DEFAULT : Self = Self :: MAV_ODID_SPEED_ACC_UNKNOWN ; } impl Default for MavOdidSpeedAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSeverity { MAV_SEVERITY_EMERGENCY = 0 , MAV_SEVERITY_ALERT = 1 , MAV_SEVERITY_CRITICAL = 2 , MAV_SEVERITY_ERROR = 3 , MAV_SEVERITY_WARNING = 4 , MAV_SEVERITY_NOTICE = 5 , MAV_SEVERITY_INFO = 6 , MAV_SEVERITY_DEBUG = 7 , } impl MavSeverity { pub const DEFAULT : Self = Self :: MAV_SEVERITY_EMERGENCY ; } impl Default for MavSeverity { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmdAck { MAV_CMD_ACK_OK = 0 , MAV_CMD_ACK_ERR_FAIL = 1 , MAV_CMD_ACK_ERR_ACCESS_DENIED = 2 , MAV_CMD_ACK_ERR_NOT_SUPPORTED = 3 , MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED = 4 , MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE = 5 , MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE = 6 , MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE = 7 , MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE = 8 , } impl MavCmdAck { pub const DEFAULT : Self = Self :: MAV_CMD_ACK_OK ; } impl Default for MavCmdAck { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMissionType { MAV_MISSION_TYPE_MISSION = 0 , MAV_MISSION_TYPE_FENCE = 1 , MAV_MISSION_TYPE_RALLY = 2 , MAV_MISSION_TYPE_ALL = 255 , } impl MavMissionType { pub const DEFAULT : Self = Self :: MAV_MISSION_TYPE_MISSION ; } impl Default for MavMissionType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PositionTargetTypemask : u16 { const POSITION_TARGET_TYPEMASK_X_IGNORE = 1 ; const POSITION_TARGET_TYPEMASK_Y_IGNORE = 2 ; const POSITION_TARGET_TYPEMASK_Z_IGNORE = 4 ; const POSITION_TARGET_TYPEMASK_VX_IGNORE = 8 ; const POSITION_TARGET_TYPEMASK_VY_IGNORE = 16 ; const POSITION_TARGET_TYPEMASK_VZ_IGNORE = 32 ; const POSITION_TARGET_TYPEMASK_AX_IGNORE = 64 ; const POSITION_TARGET_TYPEMASK_AY_IGNORE = 128 ; const POSITION_TARGET_TYPEMASK_AZ_IGNORE = 256 ; const POSITION_TARGET_TYPEMASK_FORCE_SET = 512 ; const POSITION_TARGET_TYPEMASK_YAW_IGNORE = 1024 ; const POSITION_TARGET_TYPEMASK_YAW_RATE_IGNORE = 2048 ; } } impl PositionTargetTypemask { pub const DEFAULT : Self = Self :: POSITION_TARGET_TYPEMASK_X_IGNORE ; } impl Default for PositionTargetTypemask { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutCfgGpsOffsetLon { UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_NO_DATA = 0 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_APPLIED_BY_SENSOR = 1 , } impl UavionixAdsbOutCfgGpsOffsetLon { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_NO_DATA ; } impl Default for UavionixAdsbOutCfgGpsOffsetLon { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EstimatorStatusFlags : u16 { const ESTIMATOR_ATTITUDE = 1 ; const ESTIMATOR_VELOCITY_HORIZ = 2 ; const ESTIMATOR_VELOCITY_VERT = 4 ; const ESTIMATOR_POS_HORIZ_REL = 8 ; const ESTIMATOR_POS_HORIZ_ABS = 16 ; const ESTIMATOR_POS_VERT_ABS = 32 ; const ESTIMATOR_POS_VERT_AGL = 64 ; const ESTIMATOR_CONST_POS_MODE = 128 ; const ESTIMATOR_PRED_POS_HORIZ_REL = 256 ; const ESTIMATOR_PRED_POS_HORIZ_ABS = 512 ; const ESTIMATOR_GPS_GLITCH = 1024 ; const ESTIMATOR_ACCEL_ERROR = 2048 ; } } impl EstimatorStatusFlags { pub const DEFAULT : Self = Self :: ESTIMATOR_ATTITUDE ; } impl Default for EstimatorStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidHeightRef { MAV_ODID_HEIGHT_REF_OVER_TAKEOFF = 0 , MAV_ODID_HEIGHT_REF_OVER_GROUND = 1 , } impl MavOdidHeightRef { pub const DEFAULT : Self = Self :: MAV_ODID_HEIGHT_REF_OVER_TAKEOFF ; } impl Default for MavOdidHeightRef { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AdsbAltitudeType { ADSB_ALTITUDE_TYPE_PRESSURE_QNH = 0 , ADSB_ALTITUDE_TYPE_GEOMETRIC = 1 , } impl AdsbAltitudeType { pub const DEFAULT : Self = Self :: ADSB_ALTITUDE_TYPE_PRESSURE_QNH ; } impl Default for AdsbAltitudeType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryType { MAV_BATTERY_TYPE_UNKNOWN = 0 , MAV_BATTERY_TYPE_LIPO = 1 , MAV_BATTERY_TYPE_LIFE = 2 , MAV_BATTERY_TYPE_LION = 3 , MAV_BATTERY_TYPE_NIMH = 4 , } impl MavBatteryType { pub const DEFAULT : Self = Self :: MAV_BATTERY_TYPE_UNKNOWN ; } impl Default for MavBatteryType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AdsbEmitterType { ADSB_EMITTER_TYPE_NO_INFO = 0 , ADSB_EMITTER_TYPE_LIGHT = 1 , ADSB_EMITTER_TYPE_SMALL = 2 , ADSB_EMITTER_TYPE_LARGE = 3 , ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE = 4 , ADSB_EMITTER_TYPE_HEAVY = 5 , ADSB_EMITTER_TYPE_HIGHLY_MANUV = 6 , ADSB_EMITTER_TYPE_ROTOCRAFT = 7 , ADSB_EMITTER_TYPE_UNASSIGNED = 8 , ADSB_EMITTER_TYPE_GLIDER = 9 , ADSB_EMITTER_TYPE_LIGHTER_AIR = 10 , ADSB_EMITTER_TYPE_PARACHUTE = 11 , ADSB_EMITTER_TYPE_ULTRA_LIGHT = 12 , ADSB_EMITTER_TYPE_UNASSIGNED2 = 13 , ADSB_EMITTER_TYPE_UAV = 14 , ADSB_EMITTER_TYPE_SPACE = 15 , ADSB_EMITTER_TYPE_UNASSGINED3 = 16 , ADSB_EMITTER_TYPE_EMERGENCY_SURFACE = 17 , ADSB_EMITTER_TYPE_SERVICE_SURFACE = 18 , ADSB_EMITTER_TYPE_POINT_OBSTACLE = 19 , } impl AdsbEmitterType { pub const DEFAULT : Self = Self :: ADSB_EMITTER_TYPE_NO_INFO ; } impl Default for AdsbEmitterType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceBreach { FENCE_BREACH_NONE = 0 , FENCE_BREACH_MINALT = 1 , FENCE_BREACH_MAXALT = 2 , FENCE_BREACH_BOUNDARY = 3 , } impl FenceBreach { pub const DEFAULT : Self = Self :: FENCE_BREACH_NONE ; } impl Default for FenceBreach { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HilSensorUpdatedFlags : u32 { const HIL_SENSOR_UPDATED_NONE = 0 ; const HIL_SENSOR_UPDATED_XACC = 1 ; const HIL_SENSOR_UPDATED_YACC = 2 ; const HIL_SENSOR_UPDATED_ZACC = 4 ; const HIL_SENSOR_UPDATED_XGYRO = 8 ; const HIL_SENSOR_UPDATED_YGYRO = 16 ; const HIL_SENSOR_UPDATED_ZGYRO = 32 ; const HIL_SENSOR_UPDATED_XMAG = 64 ; const HIL_SENSOR_UPDATED_YMAG = 128 ; const HIL_SENSOR_UPDATED_ZMAG = 256 ; const HIL_SENSOR_UPDATED_ABS_PRESSURE = 512 ; const HIL_SENSOR_UPDATED_DIFF_PRESSURE = 1024 ; const HIL_SENSOR_UPDATED_PRESSURE_ALT = 2048 ; const HIL_SENSOR_UPDATED_TEMPERATURE = 4096 ; const HIL_SENSOR_UPDATED_RESET = 2147483648 ; } } impl HilSensorUpdatedFlags { pub const DEFAULT : Self = Self :: HIL_SENSOR_UPDATED_NONE ; } impl Default for HilSensorUpdatedFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidOperatorLocationType { MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF = 0 , MAV_ODID_OPERATOR_LOCATION_TYPE_LIVE_GNSS = 1 , MAV_ODID_OPERATOR_LOCATION_TYPE_FIXED = 2 , } impl MavOdidOperatorLocationType { pub const DEFAULT : Self = Self :: MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF ; } impl Default for MavOdidOperatorLocationType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularStatusFlag { CELLULAR_STATUS_FLAG_UNKNOWN = 0 , CELLULAR_STATUS_FLAG_FAILED = 1 , CELLULAR_STATUS_FLAG_INITIALIZING = 2 , CELLULAR_STATUS_FLAG_LOCKED = 3 , CELLULAR_STATUS_FLAG_DISABLED = 4 , CELLULAR_STATUS_FLAG_DISABLING = 5 , CELLULAR_STATUS_FLAG_ENABLING = 6 , CELLULAR_STATUS_FLAG_ENABLED = 7 , CELLULAR_STATUS_FLAG_SEARCHING = 8 , CELLULAR_STATUS_FLAG_REGISTERED = 9 , CELLULAR_STATUS_FLAG_DISCONNECTING = 10 , CELLULAR_STATUS_FLAG_CONNECTING = 11 , CELLULAR_STATUS_FLAG_CONNECTED = 12 , } impl CellularStatusFlag { pub const DEFAULT : Self = Self :: CELLULAR_STATUS_FLAG_UNKNOWN ; } impl Default for CellularStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavState { MAV_STATE_UNINIT = 0 , MAV_STATE_BOOT = 1 , MAV_STATE_CALIBRATING = 2 , MAV_STATE_STANDBY = 3 , MAV_STATE_ACTIVE = 4 , MAV_STATE_CRITICAL = 5 , MAV_STATE_EMERGENCY = 6 , MAV_STATE_POWEROFF = 7 , MAV_STATE_FLIGHT_TERMINATION = 8 , } impl MavState { pub const DEFAULT : Self = Self :: MAV_STATE_UNINIT ; } impl Default for MavState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDistanceSensor { MAV_DISTANCE_SENSOR_LASER = 0 , MAV_DISTANCE_SENSOR_ULTRASOUND = 1 , MAV_DISTANCE_SENSOR_INFRARED = 2 , MAV_DISTANCE_SENSOR_RADAR = 3 , MAV_DISTANCE_SENSOR_UNKNOWN = 4 , } impl MavDistanceSensor { pub const DEFAULT : Self = Self :: MAV_DISTANCE_SENSOR_LASER ; } impl Default for MavDistanceSensor { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UavionixAdsbOutRfSelect : u8 { const UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY = 0 ; const UAVIONIX_ADSB_OUT_RF_SELECT_RX_ENABLED = 1 ; const UAVIONIX_ADSB_OUT_RF_SELECT_TX_ENABLED = 2 ; } } impl UavionixAdsbOutRfSelect { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY ; } impl Default for UavionixAdsbOutRfSelect { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionAction { MAV_COLLISION_ACTION_NONE = 0 , MAV_COLLISION_ACTION_REPORT = 1 , MAV_COLLISION_ACTION_ASCEND_OR_DESCEND = 2 , MAV_COLLISION_ACTION_MOVE_HORIZONTALLY = 3 , MAV_COLLISION_ACTION_MOVE_PERPENDICULAR = 4 , MAV_COLLISION_ACTION_RTL = 5 , MAV_COLLISION_ACTION_HOVER = 6 , } impl MavCollisionAction { pub const DEFAULT : Self = Self :: MAV_COLLISION_ACTION_NONE ; } impl Default for MavCollisionAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_RAW_DATA { pub time_boot_ms : u32 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub port : u8 , pub rssi : u8 , } impl RC_CHANNELS_RAW_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , port : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_RAW_DATA { type Message = MavMessage ; const ID : u32 = 35u32 ; const NAME : & 'static str = "RC_CHANNELS_RAW" ; const EXTRA_CRC : u8 = 244u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . port = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u8 (self . port) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVCAN_NODE_STATUS_DATA { pub time_usec : u64 , pub uptime_sec : u32 , pub vendor_specific_status_code : u16 , pub health : UavcanNodeHealth , pub mode : UavcanNodeMode , pub sub_mode : u8 , } impl UAVCAN_NODE_STATUS_DATA { pub const ENCODED_LEN : usize = 17usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime_sec : 0_u32 , vendor_specific_status_code : 0_u16 , health : UavcanNodeHealth :: DEFAULT , mode : UavcanNodeMode :: DEFAULT , sub_mode : 0_u8 , } ; } impl Default for UAVCAN_NODE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVCAN_NODE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 310u32 ; const NAME : & 'static str = "UAVCAN_NODE_STATUS" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 17usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime_sec = buf . get_u32_le () ; __struct . vendor_specific_status_code = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . health = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavcanNodeHealth" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavcanNodeMode" , value : tmp as u32 }) ? ; __struct . sub_mode = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime_sec) ; __tmp . put_u16_le (self . vendor_specific_status_code) ; __tmp . put_u8 (self . health as u8) ; __tmp . put_u8 (self . mode as u8) ; __tmp . put_u8 (self . sub_mode) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , } impl LOCAL_POSITION_NED_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , } ; } impl Default for LOCAL_POSITION_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_DATA { type Message = MavMessage ; const ID : u32 = 32u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED" ; const EXTRA_CRC : u8 = 185u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BATTERY_STATUS_DATA { pub current_consumed : i32 , pub energy_consumed : i32 , pub temperature : i16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltages : [u16 ; 10] , pub current_battery : i16 , pub id : u8 , pub battery_function : MavBatteryFunction , pub mavtype : MavBatteryType , pub battery_remaining : i8 , } impl BATTERY_STATUS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { current_consumed : 0_i32 , energy_consumed : 0_i32 , temperature : 0_i16 , voltages : [0_u16 ; 10usize] , current_battery : 0_i16 , id : 0_u8 , battery_function : MavBatteryFunction :: DEFAULT , mavtype : MavBatteryType :: DEFAULT , battery_remaining : 0_i8 , } ; } impl Default for BATTERY_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BATTERY_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 147u32 ; const NAME : & 'static str = "BATTERY_STATUS" ; const EXTRA_CRC : u8 = 154u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . current_consumed = buf . get_i32_le () ; __struct . energy_consumed = buf . get_i32_le () ; __struct . temperature = buf . get_i16_le () ; for v in & mut __struct . voltages { let val = buf . get_u16_le () ; * v = val ; } __struct . current_battery = buf . get_i16_le () ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . battery_function = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryFunction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryType" , value : tmp as u32 }) ? ; __struct . battery_remaining = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . current_consumed) ; __tmp . put_i32_le (self . energy_consumed) ; __tmp . put_i16_le (self . temperature) ; for val in & self . voltages { __tmp . put_u16_le (* val) ; } __tmp . put_i16_le (self . current_battery) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . battery_function as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_i8 (self . battery_remaining) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_REPORT_DATA { pub lat : i32 , pub lon : i32 , pub terrain_height : f32 , pub current_height : f32 , pub spacing : u16 , pub pending : u16 , pub loaded : u16 , } impl TERRAIN_REPORT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , terrain_height : 0.0_f32 , current_height : 0.0_f32 , spacing : 0_u16 , pending : 0_u16 , loaded : 0_u16 , } ; } impl Default for TERRAIN_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 136u32 ; const NAME : & 'static str = "TERRAIN_REPORT" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . terrain_height = buf . get_f32_le () ; __struct . current_height = buf . get_f32_le () ; __struct . spacing = buf . get_u16_le () ; __struct . pending = buf . get_u16_le () ; __struct . loaded = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . terrain_height) ; __tmp . put_f32_le (self . current_height) ; __tmp . put_u16_le (self . spacing) ; __tmp . put_u16_le (self . pending) ; __tmp . put_u16_le (self . loaded) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SELF_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub description_type : MavOdidDescType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub description : [u8 ; 23] , } impl OPEN_DRONE_ID_SELF_ID_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , description_type : MavOdidDescType :: DEFAULT , description : [0_u8 ; 23usize] , } ; } impl Default for OPEN_DRONE_ID_SELF_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SELF_ID_DATA { type Message = MavMessage ; const ID : u32 = 12903u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SELF_ID" ; const EXTRA_CRC : u8 = 249u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . description_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidDescType" , value : tmp as u32 }) ? ; for v in & mut __struct . description { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . description_type as u8) ; for val in & self . description { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UTM_GLOBAL_POSITION_DATA { pub time : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub next_lat : i32 , pub next_lon : i32 , pub next_alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub h_acc : u16 , pub v_acc : u16 , pub vel_acc : u16 , pub update_rate : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uas_id : [u8 ; 18] , pub flight_state : UtmFlightState , pub flags : UtmDataAvailFlags , } impl UTM_GLOBAL_POSITION_DATA { pub const ENCODED_LEN : usize = 70usize ; pub const DEFAULT : Self = Self { time : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , next_lat : 0_i32 , next_lon : 0_i32 , next_alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , h_acc : 0_u16 , v_acc : 0_u16 , vel_acc : 0_u16 , update_rate : 0_u16 , uas_id : [0_u8 ; 18usize] , flight_state : UtmFlightState :: DEFAULT , flags : UtmDataAvailFlags :: DEFAULT , } ; } impl Default for UTM_GLOBAL_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UTM_GLOBAL_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 340u32 ; const NAME : & 'static str = "UTM_GLOBAL_POSITION" ; const EXTRA_CRC : u8 = 99u8 ; const ENCODED_LEN : usize = 70usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . next_lat = buf . get_i32_le () ; __struct . next_lon = buf . get_i32_le () ; __struct . next_alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . h_acc = buf . get_u16_le () ; __struct . v_acc = buf . get_u16_le () ; __struct . vel_acc = buf . get_u16_le () ; __struct . update_rate = buf . get_u16_le () ; for v in & mut __struct . uas_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . flight_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UtmFlightState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = UtmDataAvailFlags :: from_bits (tmp & UtmDataAvailFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UtmDataAvailFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_i32_le (self . next_lat) ; __tmp . put_i32_le (self . next_lon) ; __tmp . put_i32_le (self . next_alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . h_acc) ; __tmp . put_u16_le (self . v_acc) ; __tmp . put_u16_le (self . vel_acc) ; __tmp . put_u16_le (self . update_rate) ; for val in & self . uas_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . flight_state as u8) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE3_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE3_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE3_DATA { type Message = MavMessage ; const ID : u32 = 143u32 ; const NAME : & 'static str = "SCALED_PRESSURE3" ; const EXTRA_CRC : u8 = 131u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_DATA_DATA { pub ofs : u32 , pub id : u16 , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 90] , } impl LOG_DATA_DATA { pub const ENCODED_LEN : usize = 97usize ; pub const DEFAULT : Self = Self { ofs : 0_u32 , id : 0_u16 , count : 0_u8 , data : [0_u8 ; 90usize] , } ; } impl Default for LOG_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_DATA_DATA { type Message = MavMessage ; const ID : u32 = 120u32 ; const NAME : & 'static str = "LOG_DATA" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 97usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ofs = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ofs) ; __tmp . put_u16_le (self . id) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CHANGE_OPERATOR_CONTROL_DATA { pub target_system : u8 , pub control_request : u8 , pub version : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub passkey : [u8 ; 25] , } impl CHANGE_OPERATOR_CONTROL_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , control_request : 0_u8 , version : 0_u8 , passkey : [0_u8 ; 25usize] , } ; } impl Default for CHANGE_OPERATOR_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CHANGE_OPERATOR_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 5u32 ; const NAME : & 'static str = "CHANGE_OPERATOR_CONTROL" ; const EXTRA_CRC : u8 = 217u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . control_request = buf . get_u8 () ; __struct . version = buf . get_u8 () ; for v in & mut __struct . passkey { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . control_request) ; __tmp . put_u8 (self . version) ; for val in & self . passkey { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIND_COV_DATA { pub time_usec : u64 , pub wind_x : f32 , pub wind_y : f32 , pub wind_z : f32 , pub var_horiz : f32 , pub var_vert : f32 , pub wind_alt : f32 , pub horiz_accuracy : f32 , pub vert_accuracy : f32 , } impl WIND_COV_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , wind_x : 0.0_f32 , wind_y : 0.0_f32 , wind_z : 0.0_f32 , var_horiz : 0.0_f32 , var_vert : 0.0_f32 , wind_alt : 0.0_f32 , horiz_accuracy : 0.0_f32 , vert_accuracy : 0.0_f32 , } ; } impl Default for WIND_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIND_COV_DATA { type Message = MavMessage ; const ID : u32 = 231u32 ; const NAME : & 'static str = "WIND_COV" ; const EXTRA_CRC : u8 = 105u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . wind_x = buf . get_f32_le () ; __struct . wind_y = buf . get_f32_le () ; __struct . wind_z = buf . get_f32_le () ; __struct . var_horiz = buf . get_f32_le () ; __struct . var_vert = buf . get_f32_le () ; __struct . wind_alt = buf . get_f32_le () ; __struct . horiz_accuracy = buf . get_f32_le () ; __struct . vert_accuracy = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . wind_x) ; __tmp . put_f32_le (self . wind_y) ; __tmp . put_f32_le (self . wind_z) ; __tmp . put_f32_le (self . var_horiz) ; __tmp . put_f32_le (self . var_vert) ; __tmp . put_f32_le (self . wind_alt) ; __tmp . put_f32_le (self . horiz_accuracy) ; __tmp . put_f32_le (self . vert_accuracy) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LINK_NODE_STATUS_DATA { pub timestamp : u64 , pub tx_rate : u32 , pub rx_rate : u32 , pub messages_sent : u32 , pub messages_received : u32 , pub messages_lost : u32 , pub rx_parse_err : u16 , pub tx_overflows : u16 , pub rx_overflows : u16 , pub tx_buf : u8 , pub rx_buf : u8 , } impl LINK_NODE_STATUS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , tx_rate : 0_u32 , rx_rate : 0_u32 , messages_sent : 0_u32 , messages_received : 0_u32 , messages_lost : 0_u32 , rx_parse_err : 0_u16 , tx_overflows : 0_u16 , rx_overflows : 0_u16 , tx_buf : 0_u8 , rx_buf : 0_u8 , } ; } impl Default for LINK_NODE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LINK_NODE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 8u32 ; const NAME : & 'static str = "LINK_NODE_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . tx_rate = buf . get_u32_le () ; __struct . rx_rate = buf . get_u32_le () ; __struct . messages_sent = buf . get_u32_le () ; __struct . messages_received = buf . get_u32_le () ; __struct . messages_lost = buf . get_u32_le () ; __struct . rx_parse_err = buf . get_u16_le () ; __struct . tx_overflows = buf . get_u16_le () ; __struct . rx_overflows = buf . get_u16_le () ; __struct . tx_buf = buf . get_u8 () ; __struct . rx_buf = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u32_le (self . tx_rate) ; __tmp . put_u32_le (self . rx_rate) ; __tmp . put_u32_le (self . messages_sent) ; __tmp . put_u32_le (self . messages_received) ; __tmp . put_u32_le (self . messages_lost) ; __tmp . put_u16_le (self . rx_parse_err) ; __tmp . put_u16_le (self . tx_overflows) ; __tmp . put_u16_le (self . rx_overflows) ; __tmp . put_u8 (self . tx_buf) ; __tmp . put_u8 (self . rx_buf) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_INJECT_DATA_DATA { pub target_system : u8 , pub target_component : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 110] , } impl GPS_INJECT_DATA_DATA { pub const ENCODED_LEN : usize = 113usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , len : 0_u8 , data : [0_u8 ; 110usize] , } ; } impl Default for GPS_INJECT_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_INJECT_DATA_DATA { type Message = MavMessage ; const ID : u32 = 123u32 ; const NAME : & 'static str = "GPS_INJECT_DATA" ; const EXTRA_CRC : u8 = 250u8 ; const ENCODED_LEN : usize = 113usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESTIMATOR_STATUS_DATA { pub time_usec : u64 , pub vel_ratio : f32 , pub pos_horiz_ratio : f32 , pub pos_vert_ratio : f32 , pub mag_ratio : f32 , pub hagl_ratio : f32 , pub tas_ratio : f32 , pub pos_horiz_accuracy : f32 , pub pos_vert_accuracy : f32 , pub flags : EstimatorStatusFlags , } impl ESTIMATOR_STATUS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , vel_ratio : 0.0_f32 , pos_horiz_ratio : 0.0_f32 , pos_vert_ratio : 0.0_f32 , mag_ratio : 0.0_f32 , hagl_ratio : 0.0_f32 , tas_ratio : 0.0_f32 , pos_horiz_accuracy : 0.0_f32 , pos_vert_accuracy : 0.0_f32 , flags : EstimatorStatusFlags :: DEFAULT , } ; } impl Default for ESTIMATOR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESTIMATOR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 230u32 ; const NAME : & 'static str = "ESTIMATOR_STATUS" ; const EXTRA_CRC : u8 = 163u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . vel_ratio = buf . get_f32_le () ; __struct . pos_horiz_ratio = buf . get_f32_le () ; __struct . pos_vert_ratio = buf . get_f32_le () ; __struct . mag_ratio = buf . get_f32_le () ; __struct . hagl_ratio = buf . get_f32_le () ; __struct . tas_ratio = buf . get_f32_le () ; __struct . pos_horiz_accuracy = buf . get_f32_le () ; __struct . pos_vert_accuracy = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = EstimatorStatusFlags :: from_bits (tmp & EstimatorStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EstimatorStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . vel_ratio) ; __tmp . put_f32_le (self . pos_horiz_ratio) ; __tmp . put_f32_le (self . pos_vert_ratio) ; __tmp . put_f32_le (self . mag_ratio) ; __tmp . put_f32_le (self . hagl_ratio) ; __tmp . put_f32_le (self . tas_ratio) ; __tmp . put_f32_le (self . pos_horiz_accuracy) ; __tmp . put_f32_le (self . pos_vert_accuracy) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIDEO_STREAM_INFORMATION_DATA { pub framerate : f32 , pub bitrate : u32 , pub flags : VideoStreamStatusFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub hfov : u16 , pub stream_id : u8 , pub count : u8 , pub mavtype : VideoStreamType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 160] , } impl VIDEO_STREAM_INFORMATION_DATA { pub const ENCODED_LEN : usize = 213usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , flags : VideoStreamStatusFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , hfov : 0_u16 , stream_id : 0_u8 , count : 0_u8 , mavtype : VideoStreamType :: DEFAULT , name : [0_u8 ; 32usize] , uri : [0_u8 ; 160usize] , } ; } impl Default for VIDEO_STREAM_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIDEO_STREAM_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 269u32 ; const NAME : & 'static str = "VIDEO_STREAM_INFORMATION" ; const EXTRA_CRC : u8 = 109u8 ; const ENCODED_LEN : usize = 213usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamStatusFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . hfov = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamType" , value : tmp as u32 }) ? ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . flags as u16) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u16_le (self . hfov) ; __tmp . put_u8 (self . stream_id) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . mavtype as u8) ; for val in & self . name { __tmp . put_u8 (* val) ; } for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_SET_ATTITUDE_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub flags : GimbalDeviceFlags , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_DEVICE_SET_ATTITUDE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , flags : GimbalDeviceFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_DEVICE_SET_ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_SET_ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 284u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_SET_ATTITUDE" ; const EXTRA_CRC : u8 = 99u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = GimbalDeviceFlags :: from_bits (tmp & GimbalDeviceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CANFD_FRAME_DATA { pub id : u32 , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 64] , } impl CANFD_FRAME_DATA { pub const ENCODED_LEN : usize = 72usize ; pub const DEFAULT : Self = Self { id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , len : 0_u8 , data : [0_u8 ; 64usize] , } ; } impl Default for CANFD_FRAME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CANFD_FRAME_DATA { type Message = MavMessage ; const ID : u32 = 387u32 ; const NAME : & 'static str = "CANFD_FRAME" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 72usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_VERSION_DATA { pub capabilities : MavProtocolCapability , pub uid : u64 , pub flight_sw_version : u32 , pub middleware_sw_version : u32 , pub os_sw_version : u32 , pub board_version : u32 , pub vendor_id : u16 , pub product_id : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub flight_custom_version : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub middleware_custom_version : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub os_custom_version : [u8 ; 8] , } impl AUTOPILOT_VERSION_DATA { pub const ENCODED_LEN : usize = 60usize ; pub const DEFAULT : Self = Self { capabilities : MavProtocolCapability :: DEFAULT , uid : 0_u64 , flight_sw_version : 0_u32 , middleware_sw_version : 0_u32 , os_sw_version : 0_u32 , board_version : 0_u32 , vendor_id : 0_u16 , product_id : 0_u16 , flight_custom_version : [0_u8 ; 8usize] , middleware_custom_version : [0_u8 ; 8usize] , os_custom_version : [0_u8 ; 8usize] , } ; } impl Default for AUTOPILOT_VERSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_VERSION_DATA { type Message = MavMessage ; const ID : u32 = 148u32 ; const NAME : & 'static str = "AUTOPILOT_VERSION" ; const EXTRA_CRC : u8 = 178u8 ; const ENCODED_LEN : usize = 60usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u64_le () ; __struct . capabilities = MavProtocolCapability :: from_bits (tmp & MavProtocolCapability :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavProtocolCapability" , value : tmp as u32 }) ? ; __struct . uid = buf . get_u64_le () ; __struct . flight_sw_version = buf . get_u32_le () ; __struct . middleware_sw_version = buf . get_u32_le () ; __struct . os_sw_version = buf . get_u32_le () ; __struct . board_version = buf . get_u32_le () ; __struct . vendor_id = buf . get_u16_le () ; __struct . product_id = buf . get_u16_le () ; for v in & mut __struct . flight_custom_version { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . middleware_custom_version { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . os_custom_version { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . capabilities . bits ()) ; __tmp . put_u64_le (self . uid) ; __tmp . put_u32_le (self . flight_sw_version) ; __tmp . put_u32_le (self . middleware_sw_version) ; __tmp . put_u32_le (self . os_sw_version) ; __tmp . put_u32_le (self . board_version) ; __tmp . put_u16_le (self . vendor_id) ; __tmp . put_u16_le (self . product_id) ; for val in & self . flight_custom_version { __tmp . put_u8 (* val) ; } for val in & self . middleware_custom_version { __tmp . put_u8 (* val) ; } for val in & self . os_custom_version { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_WRITE_PARTIAL_LIST_DATA { pub start_index : i16 , pub end_index : i16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_WRITE_PARTIAL_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start_index : 0_i16 , end_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_WRITE_PARTIAL_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_WRITE_PARTIAL_LIST_DATA { type Message = MavMessage ; const ID : u32 = 38u32 ; const NAME : & 'static str = "MISSION_WRITE_PARTIAL_LIST" ; const EXTRA_CRC : u8 = 9u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start_index = buf . get_i16_le () ; __struct . end_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . start_index) ; __tmp . put_i16_le (self . end_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_ACK_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , pub param_result : ParamAck , } impl PARAM_EXT_ACK_DATA { pub const ENCODED_LEN : usize = 146usize ; pub const DEFAULT : Self = Self { param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , param_result : ParamAck :: DEFAULT , } ; } impl Default for PARAM_EXT_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_ACK_DATA { type Message = MavMessage ; const ID : u32 = 324u32 ; const NAME : & 'static str = "PARAM_EXT_ACK" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 146usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . param_result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "ParamAck" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; __tmp . put_u8 (self . param_result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RADIO_STATUS_DATA { pub rxerrors : u16 , pub fixed : u16 , pub rssi : u8 , pub remrssi : u8 , pub txbuf : u8 , pub noise : u8 , pub remnoise : u8 , } impl RADIO_STATUS_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { rxerrors : 0_u16 , fixed : 0_u16 , rssi : 0_u8 , remrssi : 0_u8 , txbuf : 0_u8 , noise : 0_u8 , remnoise : 0_u8 , } ; } impl Default for RADIO_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RADIO_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 109u32 ; const NAME : & 'static str = "RADIO_STATUS" ; const EXTRA_CRC : u8 = 185u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . rxerrors = buf . get_u16_le () ; __struct . fixed = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; __struct . remrssi = buf . get_u8 () ; __struct . txbuf = buf . get_u8 () ; __struct . noise = buf . get_u8 () ; __struct . remnoise = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . rxerrors) ; __tmp . put_u16_le (self . fixed) ; __tmp . put_u8 (self . rssi) ; __tmp . put_u8 (self . remrssi) ; __tmp . put_u8 (self . txbuf) ; __tmp . put_u8 (self . noise) ; __tmp . put_u8 (self . remnoise) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_DATA { pub time_boot_ms : u32 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub chan9_raw : u16 , pub chan10_raw : u16 , pub chan11_raw : u16 , pub chan12_raw : u16 , pub chan13_raw : u16 , pub chan14_raw : u16 , pub chan15_raw : u16 , pub chan16_raw : u16 , pub chan17_raw : u16 , pub chan18_raw : u16 , pub chancount : u8 , pub rssi : u8 , } impl RC_CHANNELS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , chan9_raw : 0_u16 , chan10_raw : 0_u16 , chan11_raw : 0_u16 , chan12_raw : 0_u16 , chan13_raw : 0_u16 , chan14_raw : 0_u16 , chan15_raw : 0_u16 , chan16_raw : 0_u16 , chan17_raw : 0_u16 , chan18_raw : 0_u16 , chancount : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_DATA { type Message = MavMessage ; const ID : u32 = 65u32 ; const NAME : & 'static str = "RC_CHANNELS" ; const EXTRA_CRC : u8 = 118u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . chan9_raw = buf . get_u16_le () ; __struct . chan10_raw = buf . get_u16_le () ; __struct . chan11_raw = buf . get_u16_le () ; __struct . chan12_raw = buf . get_u16_le () ; __struct . chan13_raw = buf . get_u16_le () ; __struct . chan14_raw = buf . get_u16_le () ; __struct . chan15_raw = buf . get_u16_le () ; __struct . chan16_raw = buf . get_u16_le () ; __struct . chan17_raw = buf . get_u16_le () ; __struct . chan18_raw = buf . get_u16_le () ; __struct . chancount = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u16_le (self . chan9_raw) ; __tmp . put_u16_le (self . chan10_raw) ; __tmp . put_u16_le (self . chan11_raw) ; __tmp . put_u16_le (self . chan12_raw) ; __tmp . put_u16_le (self . chan13_raw) ; __tmp . put_u16_le (self . chan14_raw) ; __tmp . put_u16_le (self . chan15_raw) ; __tmp . put_u16_le (self . chan16_raw) ; __tmp . put_u16_le (self . chan17_raw) ; __tmp . put_u16_le (self . chan18_raw) ; __tmp . put_u8 (self . chancount) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_INPUT_DATA { pub time_usec : u64 , pub time_week_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : f32 , pub hdop : f32 , pub vdop : f32 , pub vn : f32 , pub ve : f32 , pub vd : f32 , pub speed_accuracy : f32 , pub horiz_accuracy : f32 , pub vert_accuracy : f32 , pub ignore_flags : GpsInputIgnoreFlags , pub time_week : u16 , pub gps_id : u8 , pub fix_type : u8 , pub satellites_visible : u8 , } impl GPS_INPUT_DATA { pub const ENCODED_LEN : usize = 63usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , time_week_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , hdop : 0.0_f32 , vdop : 0.0_f32 , vn : 0.0_f32 , ve : 0.0_f32 , vd : 0.0_f32 , speed_accuracy : 0.0_f32 , horiz_accuracy : 0.0_f32 , vert_accuracy : 0.0_f32 , ignore_flags : GpsInputIgnoreFlags :: DEFAULT , time_week : 0_u16 , gps_id : 0_u8 , fix_type : 0_u8 , satellites_visible : 0_u8 , } ; } impl Default for GPS_INPUT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_INPUT_DATA { type Message = MavMessage ; const ID : u32 = 232u32 ; const NAME : & 'static str = "GPS_INPUT" ; const EXTRA_CRC : u8 = 151u8 ; const ENCODED_LEN : usize = 63usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . time_week_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . hdop = buf . get_f32_le () ; __struct . vdop = buf . get_f32_le () ; __struct . vn = buf . get_f32_le () ; __struct . ve = buf . get_f32_le () ; __struct . vd = buf . get_f32_le () ; __struct . speed_accuracy = buf . get_f32_le () ; __struct . horiz_accuracy = buf . get_f32_le () ; __struct . vert_accuracy = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . ignore_flags = GpsInputIgnoreFlags :: from_bits (tmp & GpsInputIgnoreFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GpsInputIgnoreFlags" , value : tmp as u32 }) ? ; __struct . time_week = buf . get_u16_le () ; __struct . gps_id = buf . get_u8 () ; __struct . fix_type = buf . get_u8 () ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . time_week_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . hdop) ; __tmp . put_f32_le (self . vdop) ; __tmp . put_f32_le (self . vn) ; __tmp . put_f32_le (self . ve) ; __tmp . put_f32_le (self . vd) ; __tmp . put_f32_le (self . speed_accuracy) ; __tmp . put_f32_le (self . horiz_accuracy) ; __tmp . put_f32_le (self . vert_accuracy) ; __tmp . put_u16_le (self . ignore_flags . bits ()) ; __tmp . put_u16_le (self . time_week) ; __tmp . put_u8 (self . gps_id) ; __tmp . put_u8 (self . fix_type) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct STORAGE_INFORMATION_DATA { pub time_boot_ms : u32 , pub total_capacity : f32 , pub used_capacity : f32 , pub available_capacity : f32 , pub read_speed : f32 , pub write_speed : f32 , pub storage_id : u8 , pub storage_count : u8 , pub status : StorageStatus , } impl STORAGE_INFORMATION_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , total_capacity : 0.0_f32 , used_capacity : 0.0_f32 , available_capacity : 0.0_f32 , read_speed : 0.0_f32 , write_speed : 0.0_f32 , storage_id : 0_u8 , storage_count : 0_u8 , status : StorageStatus :: DEFAULT , } ; } impl Default for STORAGE_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for STORAGE_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 261u32 ; const NAME : & 'static str = "STORAGE_INFORMATION" ; const EXTRA_CRC : u8 = 179u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . total_capacity = buf . get_f32_le () ; __struct . used_capacity = buf . get_f32_le () ; __struct . available_capacity = buf . get_f32_le () ; __struct . read_speed = buf . get_f32_le () ; __struct . write_speed = buf . get_f32_le () ; __struct . storage_id = buf . get_u8 () ; __struct . storage_count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "StorageStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . total_capacity) ; __tmp . put_f32_le (self . used_capacity) ; __tmp . put_f32_le (self . available_capacity) ; __tmp . put_f32_le (self . read_speed) ; __tmp . put_f32_le (self . write_speed) ; __tmp . put_u8 (self . storage_id) ; __tmp . put_u8 (self . storage_count) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl PARAM_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PARAM_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 21u32 ; const NAME : & 'static str = "PARAM_REQUEST_LIST" ; const EXTRA_CRC : u8 = 159u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { pub time_boot_us : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub q_estimated_delay_us : u32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub v_estimated_delay_us : u32 , pub feed_forward_angular_velocity_z : f32 , pub estimator_status : EstimatorStatusFlags , pub target_system : u8 , pub target_component : u8 , pub landed_state : MavLandedState , } impl AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_us : 0_u64 , q : [0.0_f32 ; 4usize] , q_estimated_delay_us : 0_u32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , v_estimated_delay_us : 0_u32 , feed_forward_angular_velocity_z : 0.0_f32 , estimator_status : EstimatorStatusFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , landed_state : MavLandedState :: DEFAULT , } ; } impl Default for AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { type Message = MavMessage ; const ID : u32 = 286u32 ; const NAME : & 'static str = "AUTOPILOT_STATE_FOR_GIMBAL_DEVICE" ; const EXTRA_CRC : u8 = 210u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_us = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . q_estimated_delay_us = buf . get_u32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . v_estimated_delay_us = buf . get_u32_le () ; __struct . feed_forward_angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . estimator_status = EstimatorStatusFlags :: from_bits (tmp & EstimatorStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EstimatorStatusFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_boot_us) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_u32_le (self . q_estimated_delay_us) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_u32_le (self . v_estimated_delay_us) ; __tmp . put_f32_le (self . feed_forward_angular_velocity_z) ; __tmp . put_u16_le (self . estimator_status . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . landed_state as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_ATTITUDE_DATA { pub flags : GimbalManagerFlags , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_ATTITUDE_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 282u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_ATTITUDE" ; const EXTRA_CRC : u8 = 123u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PROTOCOL_VERSION_DATA { pub version : u16 , pub min_version : u16 , pub max_version : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub spec_version_hash : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub library_version_hash : [u8 ; 8] , } impl PROTOCOL_VERSION_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { version : 0_u16 , min_version : 0_u16 , max_version : 0_u16 , spec_version_hash : [0_u8 ; 8usize] , library_version_hash : [0_u8 ; 8usize] , } ; } impl Default for PROTOCOL_VERSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PROTOCOL_VERSION_DATA { type Message = MavMessage ; const ID : u32 = 300u32 ; const NAME : & 'static str = "PROTOCOL_VERSION" ; const EXTRA_CRC : u8 = 217u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . version = buf . get_u16_le () ; __struct . min_version = buf . get_u16_le () ; __struct . max_version = buf . get_u16_le () ; for v in & mut __struct . spec_version_hash { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . library_version_hash { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . version) ; __tmp . put_u16_le (self . min_version) ; __tmp . put_u16_le (self . max_version) ; for val in & self . spec_version_hash { __tmp . put_u8 (* val) ; } for val in & self . library_version_hash { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAMED_VALUE_FLOAT_DATA { pub time_boot_ms : u32 , pub value : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl NAMED_VALUE_FLOAT_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0.0_f32 , name : [0_u8 ; 10usize] , } ; } impl Default for NAMED_VALUE_FLOAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAMED_VALUE_FLOAT_DATA { type Message = MavMessage ; const ID : u32 = 251u32 ; const NAME : & 'static str = "NAMED_VALUE_FLOAT" ; const EXTRA_CRC : u8 = 170u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_f32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . value) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PLAY_TUNE_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub tune : [u8 ; 30] , } impl PLAY_TUNE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , tune : [0_u8 ; 30usize] , } ; } impl Default for PLAY_TUNE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PLAY_TUNE_DATA { type Message = MavMessage ; const ID : u32 = 258u32 ; const NAME : & 'static str = "PLAY_TUNE" ; const EXTRA_CRC : u8 = 187u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . tune { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . tune { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VICON_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl VICON_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for VICON_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VICON_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 104u32 ; const NAME : & 'static str = "VICON_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 56u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_REQUEST_READ_DATA { pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , } impl PARAM_REQUEST_READ_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , } ; } impl Default for PARAM_REQUEST_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_REQUEST_READ_DATA { type Message = MavMessage ; const ID : u32 = 20u32 ; const NAME : & 'static str = "PARAM_REQUEST_READ" ; const EXTRA_CRC : u8 = 214u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_VALUE_DATA { pub param_value : f32 , pub param_count : u16 , pub param_index : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub param_type : MavParamType , } impl PARAM_VALUE_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { param_value : 0.0_f32 , param_count : 0_u16 , param_index : 0_u16 , param_id : [0_u8 ; 16usize] , param_type : MavParamType :: DEFAULT , } ; } impl Default for PARAM_VALUE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_VALUE_DATA { type Message = MavMessage ; const ID : u32 = 22u32 ; const NAME : & 'static str = "PARAM_VALUE" ; const EXTRA_CRC : u8 = 220u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value = buf . get_f32_le () ; __struct . param_count = buf . get_u16_le () ; __struct . param_index = buf . get_u16_le () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value) ; __tmp . put_u16_le (self . param_count) ; __tmp . put_u16_le (self . param_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SAFETY_ALLOWED_AREA_DATA { pub p1x : f32 , pub p1y : f32 , pub p1z : f32 , pub p2x : f32 , pub p2y : f32 , pub p2z : f32 , pub frame : MavFrame , } impl SAFETY_ALLOWED_AREA_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { p1x : 0.0_f32 , p1y : 0.0_f32 , p1z : 0.0_f32 , p2x : 0.0_f32 , p2y : 0.0_f32 , p2z : 0.0_f32 , frame : MavFrame :: DEFAULT , } ; } impl Default for SAFETY_ALLOWED_AREA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SAFETY_ALLOWED_AREA_DATA { type Message = MavMessage ; const ID : u32 = 55u32 ; const NAME : & 'static str = "SAFETY_ALLOWED_AREA" ; const EXTRA_CRC : u8 = 3u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . p1x = buf . get_f32_le () ; __struct . p1y = buf . get_f32_le () ; __struct . p1z = buf . get_f32_le () ; __struct . p2x = buf . get_f32_le () ; __struct . p2y = buf . get_f32_le () ; __struct . p2z = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . p1x) ; __tmp . put_f32_le (self . p1y) ; __tmp . put_f32_le (self . p1z) ; __tmp . put_f32_le (self . p2x) ; __tmp . put_f32_le (self . p2y) ; __tmp . put_f32_le (self . p2z) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RAW_INT_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub cog : u16 , pub fix_type : GpsFixType , pub satellites_visible : u8 , } impl GPS_RAW_INT_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , cog : 0_u16 , fix_type : GpsFixType :: DEFAULT , satellites_visible : 0_u8 , } ; } impl Default for GPS_RAW_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RAW_INT_DATA { type Message = MavMessage ; const ID : u32 = 24u32 ; const NAME : & 'static str = "GPS_RAW_INT" ; const EXTRA_CRC : u8 = 24u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . cog = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type as u8) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MOUNT_ORIENTATION_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl MOUNT_ORIENTATION_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for MOUNT_ORIENTATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MOUNT_ORIENTATION_DATA { type Message = MavMessage ; const ID : u32 = 265u32 ; const NAME : & 'static str = "MOUNT_ORIENTATION" ; const EXTRA_CRC : u8 = 26u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPONENT_INFORMATION_DATA { pub time_boot_ms : u32 , pub general_metadata_file_crc : u32 , pub peripherals_metadata_file_crc : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub general_metadata_uri : [u8 ; 100] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub peripherals_metadata_uri : [u8 ; 100] , } impl COMPONENT_INFORMATION_DATA { pub const ENCODED_LEN : usize = 212usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , general_metadata_file_crc : 0_u32 , peripherals_metadata_file_crc : 0_u32 , general_metadata_uri : [0_u8 ; 100usize] , peripherals_metadata_uri : [0_u8 ; 100usize] , } ; } impl Default for COMPONENT_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPONENT_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 395u32 ; const NAME : & 'static str = "COMPONENT_INFORMATION" ; const EXTRA_CRC : u8 = 0u8 ; const ENCODED_LEN : usize = 212usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . general_metadata_file_crc = buf . get_u32_le () ; __struct . peripherals_metadata_file_crc = buf . get_u32_le () ; for v in & mut __struct . general_metadata_uri { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . peripherals_metadata_uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . general_metadata_file_crc) ; __tmp . put_u32_le (self . peripherals_metadata_file_crc) ; for val in & self . general_metadata_uri { __tmp . put_u8 (* val) ; } for val in & self . peripherals_metadata_uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRACKING_GEO_STATUS_DATA { pub lat : i32 , pub lon : i32 , pub alt : f32 , pub h_acc : f32 , pub v_acc : f32 , pub vel_n : f32 , pub vel_e : f32 , pub vel_d : f32 , pub vel_acc : f32 , pub dist : f32 , pub hdg : f32 , pub hdg_acc : f32 , pub tracking_status : CameraTrackingStatusFlags , } impl CAMERA_TRACKING_GEO_STATUS_DATA { pub const ENCODED_LEN : usize = 49usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , h_acc : 0.0_f32 , v_acc : 0.0_f32 , vel_n : 0.0_f32 , vel_e : 0.0_f32 , vel_d : 0.0_f32 , vel_acc : 0.0_f32 , dist : 0.0_f32 , hdg : 0.0_f32 , hdg_acc : 0.0_f32 , tracking_status : CameraTrackingStatusFlags :: DEFAULT , } ; } impl Default for CAMERA_TRACKING_GEO_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRACKING_GEO_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 276u32 ; const NAME : & 'static str = "CAMERA_TRACKING_GEO_STATUS" ; const EXTRA_CRC : u8 = 18u8 ; const ENCODED_LEN : usize = 49usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . h_acc = buf . get_f32_le () ; __struct . v_acc = buf . get_f32_le () ; __struct . vel_n = buf . get_f32_le () ; __struct . vel_e = buf . get_f32_le () ; __struct . vel_d = buf . get_f32_le () ; __struct . vel_acc = buf . get_f32_le () ; __struct . dist = buf . get_f32_le () ; __struct . hdg = buf . get_f32_le () ; __struct . hdg_acc = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . tracking_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . h_acc) ; __tmp . put_f32_le (self . v_acc) ; __tmp . put_f32_le (self . vel_n) ; __tmp . put_f32_le (self . vel_e) ; __tmp . put_f32_le (self . vel_d) ; __tmp . put_f32_le (self . vel_acc) ; __tmp . put_f32_le (self . dist) ; __tmp . put_f32_le (self . hdg) ; __tmp . put_f32_le (self . hdg_acc) ; __tmp . put_u8 (self . tracking_status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAN_FILTER_MODIFY_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub ids : [u16 ; 16] , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub operation : CanFilterOp , pub num_ids : u8 , } impl CAN_FILTER_MODIFY_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { ids : [0_u16 ; 16usize] , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , operation : CanFilterOp :: DEFAULT , num_ids : 0_u8 , } ; } impl Default for CAN_FILTER_MODIFY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAN_FILTER_MODIFY_DATA { type Message = MavMessage ; const ID : u32 = 388u32 ; const NAME : & 'static str = "CAN_FILTER_MODIFY" ; const EXTRA_CRC : u8 = 8u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . ids { let val = buf . get_u16_le () ; * v = val ; } __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . operation = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CanFilterOp" , value : tmp as u32 }) ? ; __struct . num_ids = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . ids { __tmp . put_u16_le (* val) ; } __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . operation as u8) ; __tmp . put_u8 (self . num_ids) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub failure_flags : GimbalDeviceErrorFlags , pub flags : GimbalDeviceFlags , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , failure_flags : GimbalDeviceErrorFlags :: DEFAULT , flags : GimbalDeviceFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 285u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_ATTITUDE_STATUS" ; const EXTRA_CRC : u8 = 137u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . failure_flags = GimbalDeviceErrorFlags :: from_bits (tmp & GimbalDeviceErrorFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceErrorFlags" , value : tmp as u32 }) ? ; let tmp = buf . get_u16_le () ; __struct . flags = GimbalDeviceFlags :: from_bits (tmp & GimbalDeviceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u32_le (self . failure_flags . bits ()) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_RC_INPUTS_RAW_DATA { pub time_usec : u64 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub chan9_raw : u16 , pub chan10_raw : u16 , pub chan11_raw : u16 , pub chan12_raw : u16 , pub rssi : u8 , } impl HIL_RC_INPUTS_RAW_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , chan9_raw : 0_u16 , chan10_raw : 0_u16 , chan11_raw : 0_u16 , chan12_raw : 0_u16 , rssi : 0_u8 , } ; } impl Default for HIL_RC_INPUTS_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_RC_INPUTS_RAW_DATA { type Message = MavMessage ; const ID : u32 = 92u32 ; const NAME : & 'static str = "HIL_RC_INPUTS_RAW" ; const EXTRA_CRC : u8 = 54u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . chan9_raw = buf . get_u16_le () ; __struct . chan10_raw = buf . get_u16_le () ; __struct . chan11_raw = buf . get_u16_le () ; __struct . chan12_raw = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u16_le (self . chan9_raw) ; __tmp . put_u16_le (self . chan10_raw) ; __tmp . put_u16_le (self . chan11_raw) ; __tmp . put_u16_le (self . chan12_raw) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_CURRENT_DATA { pub seq : u16 , } impl MISSION_CURRENT_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , } ; } impl Default for MISSION_CURRENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_CURRENT_DATA { type Message = MavMessage ; const ID : u32 = 42u32 ; const NAME : & 'static str = "MISSION_CURRENT" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_STATUS_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rpm : [i32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltage : [f32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub current : [f32 ; 4] , pub index : u8 , } impl ESC_STATUS_DATA { pub const ENCODED_LEN : usize = 57usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , rpm : [0_i32 ; 4usize] , voltage : [0.0_f32 ; 4usize] , current : [0.0_f32 ; 4usize] , index : 0_u8 , } ; } impl Default for ESC_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 291u32 ; const NAME : & 'static str = "ESC_STATUS" ; const EXTRA_CRC : u8 = 10u8 ; const ENCODED_LEN : usize = 57usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . rpm { let val = buf . get_i32_le () ; * v = val ; } for v in & mut __struct . voltage { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . current { let val = buf . get_f32_le () ; * v = val ; } __struct . index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . rpm { __tmp . put_i32_le (* val) ; } for val in & self . voltage { __tmp . put_f32_le (* val) ; } for val in & self . current { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVCAN_NODE_INFO_DATA { pub time_usec : u64 , pub uptime_sec : u32 , pub sw_vcs_commit : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 80] , pub hw_version_major : u8 , pub hw_version_minor : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub hw_unique_id : [u8 ; 16] , pub sw_version_major : u8 , pub sw_version_minor : u8 , } impl UAVCAN_NODE_INFO_DATA { pub const ENCODED_LEN : usize = 116usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime_sec : 0_u32 , sw_vcs_commit : 0_u32 , name : [0_u8 ; 80usize] , hw_version_major : 0_u8 , hw_version_minor : 0_u8 , hw_unique_id : [0_u8 ; 16usize] , sw_version_major : 0_u8 , sw_version_minor : 0_u8 , } ; } impl Default for UAVCAN_NODE_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVCAN_NODE_INFO_DATA { type Message = MavMessage ; const ID : u32 = 311u32 ; const NAME : & 'static str = "UAVCAN_NODE_INFO" ; const EXTRA_CRC : u8 = 95u8 ; const ENCODED_LEN : usize = 116usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime_sec = buf . get_u32_le () ; __struct . sw_vcs_commit = buf . get_u32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } __struct . hw_version_major = buf . get_u8 () ; __struct . hw_version_minor = buf . get_u8 () ; for v in & mut __struct . hw_unique_id { let val = buf . get_u8 () ; * v = val ; } __struct . sw_version_major = buf . get_u8 () ; __struct . sw_version_minor = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime_sec) ; __tmp . put_u32_le (self . sw_vcs_commit) ; for val in & self . name { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . hw_version_major) ; __tmp . put_u8 (self . hw_version_minor) ; for val in & self . hw_unique_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . sw_version_major) ; __tmp . put_u8 (self . sw_version_minor) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MAG_CAL_REPORT_DATA { pub fitness : f32 , pub ofs_x : f32 , pub ofs_y : f32 , pub ofs_z : f32 , pub diag_x : f32 , pub diag_y : f32 , pub diag_z : f32 , pub offdiag_x : f32 , pub offdiag_y : f32 , pub offdiag_z : f32 , pub compass_id : u8 , pub cal_mask : u8 , pub cal_status : MagCalStatus , pub autosaved : u8 , } impl MAG_CAL_REPORT_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { fitness : 0.0_f32 , ofs_x : 0.0_f32 , ofs_y : 0.0_f32 , ofs_z : 0.0_f32 , diag_x : 0.0_f32 , diag_y : 0.0_f32 , diag_z : 0.0_f32 , offdiag_x : 0.0_f32 , offdiag_y : 0.0_f32 , offdiag_z : 0.0_f32 , compass_id : 0_u8 , cal_mask : 0_u8 , cal_status : MagCalStatus :: DEFAULT , autosaved : 0_u8 , } ; } impl Default for MAG_CAL_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MAG_CAL_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 192u32 ; const NAME : & 'static str = "MAG_CAL_REPORT" ; const EXTRA_CRC : u8 = 36u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . fitness = buf . get_f32_le () ; __struct . ofs_x = buf . get_f32_le () ; __struct . ofs_y = buf . get_f32_le () ; __struct . ofs_z = buf . get_f32_le () ; __struct . diag_x = buf . get_f32_le () ; __struct . diag_y = buf . get_f32_le () ; __struct . diag_z = buf . get_f32_le () ; __struct . offdiag_x = buf . get_f32_le () ; __struct . offdiag_y = buf . get_f32_le () ; __struct . offdiag_z = buf . get_f32_le () ; __struct . compass_id = buf . get_u8 () ; __struct . cal_mask = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . cal_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MagCalStatus" , value : tmp as u32 }) ? ; __struct . autosaved = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . fitness) ; __tmp . put_f32_le (self . ofs_x) ; __tmp . put_f32_le (self . ofs_y) ; __tmp . put_f32_le (self . ofs_z) ; __tmp . put_f32_le (self . diag_x) ; __tmp . put_f32_le (self . diag_y) ; __tmp . put_f32_le (self . diag_z) ; __tmp . put_f32_le (self . offdiag_x) ; __tmp . put_f32_le (self . offdiag_y) ; __tmp . put_f32_le (self . offdiag_z) ; __tmp . put_u8 (self . compass_id) ; __tmp . put_u8 (self . cal_mask) ; __tmp . put_u8 (self . cal_status as u8) ; __tmp . put_u8 (self . autosaved) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_ACTUATOR_CONTROLS_DATA { pub time_usec : u64 , pub flags : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 16] , pub mode : MavModeFlag , } impl HIL_ACTUATOR_CONTROLS_DATA { pub const ENCODED_LEN : usize = 81usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , flags : 0_u64 , controls : [0.0_f32 ; 16usize] , mode : MavModeFlag :: DEFAULT , } ; } impl Default for HIL_ACTUATOR_CONTROLS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_ACTUATOR_CONTROLS_DATA { type Message = MavMessage ; const ID : u32 = 93u32 ; const NAME : & 'static str = "HIL_ACTUATOR_CONTROLS" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 81usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . flags = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u64_le (self . flags) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . mode . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_BASIC_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub id_type : MavOdidIdType , pub ua_type : MavOdidUaType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uas_id : [u8 ; 20] , } impl OPEN_DRONE_ID_BASIC_ID_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , id_type : MavOdidIdType :: DEFAULT , ua_type : MavOdidUaType :: DEFAULT , uas_id : [0_u8 ; 20usize] , } ; } impl Default for OPEN_DRONE_ID_BASIC_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_BASIC_ID_DATA { type Message = MavMessage ; const ID : u32 = 12900u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_BASIC_ID" ; const EXTRA_CRC : u8 = 114u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . id_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidIdType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . ua_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidUaType" , value : tmp as u32 }) ? ; for v in & mut __struct . uas_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . id_type as u8) ; __tmp . put_u8 (self . ua_type as u8) ; for val in & self . uas_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_QUATERNION_DATA { pub time_boot_ms : u32 , pub q1 : f32 , pub q2 : f32 , pub q3 : f32 , pub q4 : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , } impl ATTITUDE_QUATERNION_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q1 : 0.0_f32 , q2 : 0.0_f32 , q3 : 0.0_f32 , q4 : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , } ; } impl Default for ATTITUDE_QUATERNION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_QUATERNION_DATA { type Message = MavMessage ; const ID : u32 = 31u32 ; const NAME : & 'static str = "ATTITUDE_QUATERNION" ; const EXTRA_CRC : u8 = 246u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . q1 = buf . get_f32_le () ; __struct . q2 = buf . get_f32_le () ; __struct . q3 = buf . get_f32_le () ; __struct . q4 = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . q1) ; __tmp . put_f32_le (self . q2) ; __tmp . put_f32_le (self . q3) ; __tmp . put_f32_le (self . q4) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct V2_EXTENSION_DATA { pub message_type : u16 , pub target_network : u8 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 249] , } impl V2_EXTENSION_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { message_type : 0_u16 , target_network : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , payload : [0_u8 ; 249usize] , } ; } impl Default for V2_EXTENSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for V2_EXTENSION_DATA { type Message = MavMessage ; const ID : u32 = 248u32 ; const NAME : & 'static str = "V2_EXTENSION" ; const EXTRA_CRC : u8 = 8u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . message_type = buf . get_u16_le () ; __struct . target_network = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . message_type) ; __tmp . put_u8 (self . target_network) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_VALUE_DATA { pub param_count : u16 , pub param_index : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , } impl PARAM_EXT_VALUE_DATA { pub const ENCODED_LEN : usize = 149usize ; pub const DEFAULT : Self = Self { param_count : 0_u16 , param_index : 0_u16 , param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , } ; } impl Default for PARAM_EXT_VALUE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_VALUE_DATA { type Message = MavMessage ; const ID : u32 = 322u32 ; const NAME : & 'static str = "PARAM_EXT_VALUE" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 149usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_count = buf . get_u16_le () ; __struct . param_index = buf . get_u16_le () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . param_count) ; __tmp . put_u16_le (self . param_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HEARTBEAT_DATA { pub custom_mode : u32 , pub mavtype : MavType , pub autopilot : MavAutopilot , pub base_mode : MavModeFlag , pub system_status : MavState , pub mavlink_version : u8 , } impl HEARTBEAT_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , mavtype : MavType :: DEFAULT , autopilot : MavAutopilot :: DEFAULT , base_mode : MavModeFlag :: DEFAULT , system_status : MavState :: DEFAULT , mavlink_version : 0_u8 , } ; } impl Default for HEARTBEAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HEARTBEAT_DATA { type Message = MavMessage ; const ID : u32 = 0u32 ; const NAME : & 'static str = "HEARTBEAT" ; const EXTRA_CRC : u8 = 50u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . autopilot = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavAutopilot" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . base_mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . system_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavState" , value : tmp as u32 }) ? ; __struct . mavlink_version = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . autopilot as u8) ; __tmp . put_u8 (self . base_mode . bits ()) ; __tmp . put_u8 (self . system_status as u8) ; __tmp . put_u8 (self . mavlink_version) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ENCAPSULATED_DATA_DATA { pub seqnr : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 253] , } impl ENCAPSULATED_DATA_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { seqnr : 0_u16 , data : [0_u8 ; 253usize] , } ; } impl Default for ENCAPSULATED_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ENCAPSULATED_DATA_DATA { type Message = MavMessage ; const ID : u32 = 131u32 ; const NAME : & 'static str = "ENCAPSULATED_DATA" ; const EXTRA_CRC : u8 = 223u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seqnr = buf . get_u16_le () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seqnr) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_TARGET_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub body_roll_rate : f32 , pub body_pitch_rate : f32 , pub body_yaw_rate : f32 , pub thrust : f32 , pub type_mask : AttitudeTargetTypemask , } impl ATTITUDE_TARGET_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , body_roll_rate : 0.0_f32 , body_pitch_rate : 0.0_f32 , body_yaw_rate : 0.0_f32 , thrust : 0.0_f32 , type_mask : AttitudeTargetTypemask :: DEFAULT , } ; } impl Default for ATTITUDE_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 83u32 ; const NAME : & 'static str = "ATTITUDE_TARGET" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . body_roll_rate = buf . get_f32_le () ; __struct . body_pitch_rate = buf . get_f32_le () ; __struct . body_yaw_rate = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . type_mask = AttitudeTargetTypemask :: from_bits (tmp & AttitudeTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AttitudeTargetTypemask" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . body_roll_rate) ; __tmp . put_f32_le (self . body_pitch_rate) ; __tmp . put_f32_le (self . body_yaw_rate) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . type_mask . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPTICAL_FLOW_DATA { pub time_usec : u64 , pub flow_comp_m_x : f32 , pub flow_comp_m_y : f32 , pub ground_distance : f32 , pub flow_x : i16 , pub flow_y : i16 , pub sensor_id : u8 , pub quality : u8 , } impl OPTICAL_FLOW_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , flow_comp_m_x : 0.0_f32 , flow_comp_m_y : 0.0_f32 , ground_distance : 0.0_f32 , flow_x : 0_i16 , flow_y : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for OPTICAL_FLOW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPTICAL_FLOW_DATA { type Message = MavMessage ; const ID : u32 = 100u32 ; const NAME : & 'static str = "OPTICAL_FLOW" ; const EXTRA_CRC : u8 = 175u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . flow_comp_m_x = buf . get_f32_le () ; __struct . flow_comp_m_y = buf . get_f32_le () ; __struct . ground_distance = buf . get_f32_le () ; __struct . flow_x = buf . get_i16_le () ; __struct . flow_y = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . flow_comp_m_x) ; __tmp . put_f32_le (self . flow_comp_m_y) ; __tmp . put_f32_le (self . ground_distance) ; __tmp . put_i16_le (self . flow_x) ; __tmp . put_i16_le (self . flow_y) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_REACHED_DATA { pub seq : u16 , } impl MISSION_ITEM_REACHED_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , } ; } impl Default for MISSION_ITEM_REACHED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_REACHED_DATA { type Message = MavMessage ; const ID : u32 = 46u32 ; const NAME : & 'static str = "MISSION_ITEM_REACHED" ; const EXTRA_CRC : u8 = 11u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVIONIX_ADSB_OUT_DYNAMIC_DATA { pub utcTime : u32 , pub gpsLat : i32 , pub gpsLon : i32 , pub gpsAlt : i32 , pub baroAltMSL : i32 , pub accuracyHor : u32 , pub accuracyVert : u16 , pub accuracyVel : u16 , pub velVert : i16 , pub velNS : i16 , pub VelEW : i16 , pub state : UavionixAdsbOutDynamicState , pub squawk : u16 , pub gpsFix : UavionixAdsbOutDynamicGpsFix , pub numSats : u8 , pub emergencyStatus : UavionixAdsbEmergencyStatus , } impl UAVIONIX_ADSB_OUT_DYNAMIC_DATA { pub const ENCODED_LEN : usize = 41usize ; pub const DEFAULT : Self = Self { utcTime : 0_u32 , gpsLat : 0_i32 , gpsLon : 0_i32 , gpsAlt : 0_i32 , baroAltMSL : 0_i32 , accuracyHor : 0_u32 , accuracyVert : 0_u16 , accuracyVel : 0_u16 , velVert : 0_i16 , velNS : 0_i16 , VelEW : 0_i16 , state : UavionixAdsbOutDynamicState :: DEFAULT , squawk : 0_u16 , gpsFix : UavionixAdsbOutDynamicGpsFix :: DEFAULT , numSats : 0_u8 , emergencyStatus : UavionixAdsbEmergencyStatus :: DEFAULT , } ; } impl Default for UAVIONIX_ADSB_OUT_DYNAMIC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVIONIX_ADSB_OUT_DYNAMIC_DATA { type Message = MavMessage ; const ID : u32 = 10002u32 ; const NAME : & 'static str = "UAVIONIX_ADSB_OUT_DYNAMIC" ; const EXTRA_CRC : u8 = 186u8 ; const ENCODED_LEN : usize = 41usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . utcTime = buf . get_u32_le () ; __struct . gpsLat = buf . get_i32_le () ; __struct . gpsLon = buf . get_i32_le () ; __struct . gpsAlt = buf . get_i32_le () ; __struct . baroAltMSL = buf . get_i32_le () ; __struct . accuracyHor = buf . get_u32_le () ; __struct . accuracyVert = buf . get_u16_le () ; __struct . accuracyVel = buf . get_u16_le () ; __struct . velVert = buf . get_i16_le () ; __struct . velNS = buf . get_i16_le () ; __struct . VelEW = buf . get_i16_le () ; let tmp = buf . get_u16_le () ; __struct . state = UavionixAdsbOutDynamicState :: from_bits (tmp & UavionixAdsbOutDynamicState :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UavionixAdsbOutDynamicState" , value : tmp as u32 }) ? ; __struct . squawk = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . gpsFix = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutDynamicGpsFix" , value : tmp as u32 }) ? ; __struct . numSats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . emergencyStatus = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbEmergencyStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . utcTime) ; __tmp . put_i32_le (self . gpsLat) ; __tmp . put_i32_le (self . gpsLon) ; __tmp . put_i32_le (self . gpsAlt) ; __tmp . put_i32_le (self . baroAltMSL) ; __tmp . put_u32_le (self . accuracyHor) ; __tmp . put_u16_le (self . accuracyVert) ; __tmp . put_u16_le (self . accuracyVel) ; __tmp . put_i16_le (self . velVert) ; __tmp . put_i16_le (self . velNS) ; __tmp . put_i16_le (self . VelEW) ; __tmp . put_u16_le (self . state . bits ()) ; __tmp . put_u16_le (self . squawk) ; __tmp . put_u8 (self . gpsFix as u8) ; __tmp . put_u8 (self . numSats) ; __tmp . put_u8 (self . emergencyStatus as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ISBD_LINK_STATUS_DATA { pub timestamp : u64 , pub last_heartbeat : u64 , pub failed_sessions : u16 , pub successful_sessions : u16 , pub signal_quality : u8 , pub ring_pending : u8 , pub tx_session_pending : u8 , pub rx_session_pending : u8 , } impl ISBD_LINK_STATUS_DATA { pub const ENCODED_LEN : usize = 24usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , last_heartbeat : 0_u64 , failed_sessions : 0_u16 , successful_sessions : 0_u16 , signal_quality : 0_u8 , ring_pending : 0_u8 , tx_session_pending : 0_u8 , rx_session_pending : 0_u8 , } ; } impl Default for ISBD_LINK_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ISBD_LINK_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 335u32 ; const NAME : & 'static str = "ISBD_LINK_STATUS" ; const EXTRA_CRC : u8 = 225u8 ; const ENCODED_LEN : usize = 24usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . last_heartbeat = buf . get_u64_le () ; __struct . failed_sessions = buf . get_u16_le () ; __struct . successful_sessions = buf . get_u16_le () ; __struct . signal_quality = buf . get_u8 () ; __struct . ring_pending = buf . get_u8 () ; __struct . tx_session_pending = buf . get_u8 () ; __struct . rx_session_pending = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u64_le (self . last_heartbeat) ; __tmp . put_u16_le (self . failed_sessions) ; __tmp . put_u16_le (self . successful_sessions) ; __tmp . put_u8 (self . signal_quality) ; __tmp . put_u8 (self . ring_pending) ; __tmp . put_u8 (self . tx_session_pending) ; __tmp . put_u8 (self . rx_session_pending) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_PRESSURE_DATA { pub time_usec : u64 , pub press_abs : i16 , pub press_diff1 : i16 , pub press_diff2 : i16 , pub temperature : i16 , } impl RAW_PRESSURE_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , press_abs : 0_i16 , press_diff1 : 0_i16 , press_diff2 : 0_i16 , temperature : 0_i16 , } ; } impl Default for RAW_PRESSURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_PRESSURE_DATA { type Message = MavMessage ; const ID : u32 = 28u32 ; const NAME : & 'static str = "RAW_PRESSURE" ; const EXTRA_CRC : u8 = 67u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . press_abs = buf . get_i16_le () ; __struct . press_diff1 = buf . get_i16_le () ; __struct . press_diff2 = buf . get_i16_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i16_le (self . press_abs) ; __tmp . put_i16_le (self . press_diff1) ; __tmp . put_i16_le (self . press_diff2) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CELLULAR_STATUS_DATA { pub mcc : u16 , pub mnc : u16 , pub lac : u16 , pub status : CellularStatusFlag , pub failure_reason : CellularNetworkFailedReason , pub mavtype : CellularNetworkRadioType , pub quality : u8 , } impl CELLULAR_STATUS_DATA { pub const ENCODED_LEN : usize = 10usize ; pub const DEFAULT : Self = Self { mcc : 0_u16 , mnc : 0_u16 , lac : 0_u16 , status : CellularStatusFlag :: DEFAULT , failure_reason : CellularNetworkFailedReason :: DEFAULT , mavtype : CellularNetworkRadioType :: DEFAULT , quality : 0_u8 , } ; } impl Default for CELLULAR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CELLULAR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 334u32 ; const NAME : & 'static str = "CELLULAR_STATUS" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 10usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mcc = buf . get_u16_le () ; __struct . mnc = buf . get_u16_le () ; __struct . lac = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularStatusFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . failure_reason = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularNetworkFailedReason" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularNetworkRadioType" , value : tmp as u32 }) ? ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . mcc) ; __tmp . put_u16_le (self . mnc) ; __tmp . put_u16_le (self . lac) ; __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . failure_reason as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EVENT_DATA { pub id : u32 , pub event_time_boot_ms : u32 , pub sequence : u16 , pub destination_component : u8 , pub destination_system : u8 , pub log_levels : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub arguments : [u8 ; 40] , } impl EVENT_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { id : 0_u32 , event_time_boot_ms : 0_u32 , sequence : 0_u16 , destination_component : 0_u8 , destination_system : 0_u8 , log_levels : 0_u8 , arguments : [0_u8 ; 40usize] , } ; } impl Default for EVENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EVENT_DATA { type Message = MavMessage ; const ID : u32 = 410u32 ; const NAME : & 'static str = "EVENT" ; const EXTRA_CRC : u8 = 160u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . event_time_boot_ms = buf . get_u32_le () ; __struct . sequence = buf . get_u16_le () ; __struct . destination_component = buf . get_u8 () ; __struct . destination_system = buf . get_u8 () ; __struct . log_levels = buf . get_u8 () ; for v in & mut __struct . arguments { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u32_le (self . event_time_boot_ms) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . destination_component) ; __tmp . put_u8 (self . destination_system) ; __tmp . put_u8 (self . log_levels) ; for val in & self . arguments { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_REQUEST_READ_DATA { pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , } impl PARAM_EXT_REQUEST_READ_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , } ; } impl Default for PARAM_EXT_REQUEST_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_REQUEST_READ_DATA { type Message = MavMessage ; const ID : u32 = 320u32 ; const NAME : & 'static str = "PARAM_EXT_REQUEST_READ" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRACKING_IMAGE_STATUS_DATA { pub point_x : f32 , pub point_y : f32 , pub radius : f32 , pub rec_top_x : f32 , pub rec_top_y : f32 , pub rec_bottom_x : f32 , pub rec_bottom_y : f32 , pub tracking_status : CameraTrackingStatusFlags , pub tracking_mode : CameraTrackingMode , pub target_data : CameraTrackingTargetData , } impl CAMERA_TRACKING_IMAGE_STATUS_DATA { pub const ENCODED_LEN : usize = 31usize ; pub const DEFAULT : Self = Self { point_x : 0.0_f32 , point_y : 0.0_f32 , radius : 0.0_f32 , rec_top_x : 0.0_f32 , rec_top_y : 0.0_f32 , rec_bottom_x : 0.0_f32 , rec_bottom_y : 0.0_f32 , tracking_status : CameraTrackingStatusFlags :: DEFAULT , tracking_mode : CameraTrackingMode :: DEFAULT , target_data : CameraTrackingTargetData :: DEFAULT , } ; } impl Default for CAMERA_TRACKING_IMAGE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRACKING_IMAGE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 275u32 ; const NAME : & 'static str = "CAMERA_TRACKING_IMAGE_STATUS" ; const EXTRA_CRC : u8 = 126u8 ; const ENCODED_LEN : usize = 31usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . point_x = buf . get_f32_le () ; __struct . point_y = buf . get_f32_le () ; __struct . radius = buf . get_f32_le () ; __struct . rec_top_x = buf . get_f32_le () ; __struct . rec_top_y = buf . get_f32_le () ; __struct . rec_bottom_x = buf . get_f32_le () ; __struct . rec_bottom_y = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . tracking_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingStatusFlags" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . tracking_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingMode" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . target_data = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingTargetData" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . point_x) ; __tmp . put_f32_le (self . point_y) ; __tmp . put_f32_le (self . radius) ; __tmp . put_f32_le (self . rec_top_x) ; __tmp . put_f32_le (self . rec_top_y) ; __tmp . put_f32_le (self . rec_bottom_x) ; __tmp . put_f32_le (self . rec_bottom_y) ; __tmp . put_u8 (self . tracking_status as u8) ; __tmp . put_u8 (self . tracking_mode as u8) ; __tmp . put_u8 (self . target_data as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SUPPORTED_TUNES_DATA { pub format : TuneFormat , pub target_system : u8 , pub target_component : u8 , } impl SUPPORTED_TUNES_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { format : TuneFormat :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SUPPORTED_TUNES_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SUPPORTED_TUNES_DATA { type Message = MavMessage ; const ID : u32 = 401u32 ; const NAME : & 'static str = "SUPPORTED_TUNES" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . format = TuneFormat :: from_bits (tmp & TuneFormat :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "TuneFormat" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . format . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_INFORMATION_DATA { pub time_boot_ms : u32 , pub cap_flags : GimbalManagerCapFlags , pub roll_min : f32 , pub roll_max : f32 , pub pitch_min : f32 , pub pitch_max : f32 , pub yaw_min : f32 , pub yaw_max : f32 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_INFORMATION_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , cap_flags : GimbalManagerCapFlags :: DEFAULT , roll_min : 0.0_f32 , roll_max : 0.0_f32 , pitch_min : 0.0_f32 , pitch_max : 0.0_f32 , yaw_min : 0.0_f32 , yaw_max : 0.0_f32 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 280u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_INFORMATION" ; const EXTRA_CRC : u8 = 70u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u32_le () ; __struct . cap_flags = GimbalManagerCapFlags :: from_bits (tmp & GimbalManagerCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalManagerCapFlags" , value : tmp as u32 }) ? ; __struct . roll_min = buf . get_f32_le () ; __struct . roll_max = buf . get_f32_le () ; __struct . pitch_min = buf . get_f32_le () ; __struct . pitch_max = buf . get_f32_le () ; __struct . yaw_min = buf . get_f32_le () ; __struct . yaw_max = buf . get_f32_le () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . cap_flags . bits ()) ; __tmp . put_f32_le (self . roll_min) ; __tmp . put_f32_le (self . roll_max) ; __tmp . put_f32_le (self . pitch_min) ; __tmp . put_f32_le (self . pitch_max) ; __tmp . put_f32_le (self . yaw_min) ; __tmp . put_f32_le (self . yaw_max) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SETUP_SIGNING_DATA { pub initial_timestamp : u64 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub secret_key : [u8 ; 32] , } impl SETUP_SIGNING_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { initial_timestamp : 0_u64 , target_system : 0_u8 , target_component : 0_u8 , secret_key : [0_u8 ; 32usize] , } ; } impl Default for SETUP_SIGNING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SETUP_SIGNING_DATA { type Message = MavMessage ; const ID : u32 = 256u32 ; const NAME : & 'static str = "SETUP_SIGNING" ; const EXTRA_CRC : u8 = 71u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . initial_timestamp = buf . get_u64_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . secret_key { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . initial_timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . secret_key { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FOLLOW_TARGET_DATA { pub timestamp : u64 , pub custom_state : u64 , pub lat : i32 , pub lon : i32 , pub alt : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub attitude_q : [f32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rates : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub position_cov : [f32 ; 3] , pub est_capabilities : u8 , } impl FOLLOW_TARGET_DATA { pub const ENCODED_LEN : usize = 93usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , custom_state : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , vel : [0.0_f32 ; 3usize] , acc : [0.0_f32 ; 3usize] , attitude_q : [0.0_f32 ; 4usize] , rates : [0.0_f32 ; 3usize] , position_cov : [0.0_f32 ; 3usize] , est_capabilities : 0_u8 , } ; } impl Default for FOLLOW_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FOLLOW_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 144u32 ; const NAME : & 'static str = "FOLLOW_TARGET" ; const EXTRA_CRC : u8 = 127u8 ; const ENCODED_LEN : usize = 93usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . custom_state = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; for v in & mut __struct . vel { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . attitude_q { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . rates { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . position_cov { let val = buf . get_f32_le () ; * v = val ; } __struct . est_capabilities = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u64_le (self . custom_state) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; for val in & self . vel { __tmp . put_f32_le (* val) ; } for val in & self . acc { __tmp . put_f32_le (* val) ; } for val in & self . attitude_q { __tmp . put_f32_le (* val) ; } for val in & self . rates { __tmp . put_f32_le (* val) ; } for val in & self . position_cov { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . est_capabilities) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_ENTRY_DATA { pub time_utc : u32 , pub size : u32 , pub id : u16 , pub num_logs : u16 , pub last_log_num : u16 , } impl LOG_ENTRY_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_utc : 0_u32 , size : 0_u32 , id : 0_u16 , num_logs : 0_u16 , last_log_num : 0_u16 , } ; } impl Default for LOG_ENTRY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_ENTRY_DATA { type Message = MavMessage ; const ID : u32 = 118u32 ; const NAME : & 'static str = "LOG_ENTRY" ; const EXTRA_CRC : u8 = 56u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_utc = buf . get_u32_le () ; __struct . size = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . num_logs = buf . get_u16_le () ; __struct . last_log_num = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_utc) ; __tmp . put_u32_le (self . size) ; __tmp . put_u16_le (self . id) ; __tmp . put_u16_le (self . num_logs) ; __tmp . put_u16_le (self . last_log_num) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_FLOAT_ARRAY_DATA { pub time_usec : u64 , pub array_id : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl DEBUG_FLOAT_ARRAY_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , array_id : 0_u16 , name : [0_u8 ; 10usize] , } ; } impl Default for DEBUG_FLOAT_ARRAY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_FLOAT_ARRAY_DATA { type Message = MavMessage ; const ID : u32 = 350u32 ; const NAME : & 'static str = "DEBUG_FLOAT_ARRAY" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . array_id = buf . get_u16_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u16_le (self . array_id) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPONENT_METADATA_DATA { pub time_boot_ms : u32 , pub file_crc : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 100] , } impl COMPONENT_METADATA_DATA { pub const ENCODED_LEN : usize = 108usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , file_crc : 0_u32 , uri : [0_u8 ; 100usize] , } ; } impl Default for COMPONENT_METADATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPONENT_METADATA_DATA { type Message = MavMessage ; const ID : u32 = 397u32 ; const NAME : & 'static str = "COMPONENT_METADATA" ; const EXTRA_CRC : u8 = 182u8 ; const ENCODED_LEN : usize = 108usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . file_crc = buf . get_u32_le () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . file_crc) ; for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SYSTEM_TIME_DATA { pub time_unix_usec : u64 , pub time_boot_ms : u32 , } impl SYSTEM_TIME_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { time_unix_usec : 0_u64 , time_boot_ms : 0_u32 , } ; } impl Default for SYSTEM_TIME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SYSTEM_TIME_DATA { type Message = MavMessage ; const ID : u32 = 2u32 ; const NAME : & 'static str = "SYSTEM_TIME" ; const EXTRA_CRC : u8 = 137u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_unix_usec = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_unix_usec) ; __tmp . put_u32_le (self . time_boot_ms) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE_DATA { type Message = MavMessage ; const ID : u32 = 29u32 ; const NAME : & 'static str = "SCALED_PRESSURE" ; const EXTRA_CRC : u8 = 115u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TIMESYNC_DATA { pub tc1 : i64 , pub ts1 : i64 , } impl TIMESYNC_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { tc1 : 0_i64 , ts1 : 0_i64 , } ; } impl Default for TIMESYNC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TIMESYNC_DATA { type Message = MavMessage ; const ID : u32 = 111u32 ; const NAME : & 'static str = "TIMESYNC" ; const EXTRA_CRC : u8 = 34u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . tc1 = buf . get_i64_le () ; __struct . ts1 = buf . get_i64_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i64_le (self . tc1) ; __tmp . put_i64_le (self . ts1) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EFI_STATUS_DATA { pub ecu_index : f32 , pub rpm : f32 , pub fuel_consumed : f32 , pub fuel_flow : f32 , pub engine_load : f32 , pub throttle_position : f32 , pub spark_dwell_time : f32 , pub barometric_pressure : f32 , pub intake_manifold_pressure : f32 , pub intake_manifold_temperature : f32 , pub cylinder_head_temperature : f32 , pub ignition_timing : f32 , pub injection_time : f32 , pub exhaust_gas_temperature : f32 , pub throttle_out : f32 , pub pt_compensation : f32 , pub health : u8 , } impl EFI_STATUS_DATA { pub const ENCODED_LEN : usize = 65usize ; pub const DEFAULT : Self = Self { ecu_index : 0.0_f32 , rpm : 0.0_f32 , fuel_consumed : 0.0_f32 , fuel_flow : 0.0_f32 , engine_load : 0.0_f32 , throttle_position : 0.0_f32 , spark_dwell_time : 0.0_f32 , barometric_pressure : 0.0_f32 , intake_manifold_pressure : 0.0_f32 , intake_manifold_temperature : 0.0_f32 , cylinder_head_temperature : 0.0_f32 , ignition_timing : 0.0_f32 , injection_time : 0.0_f32 , exhaust_gas_temperature : 0.0_f32 , throttle_out : 0.0_f32 , pt_compensation : 0.0_f32 , health : 0_u8 , } ; } impl Default for EFI_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EFI_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 225u32 ; const NAME : & 'static str = "EFI_STATUS" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 65usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ecu_index = buf . get_f32_le () ; __struct . rpm = buf . get_f32_le () ; __struct . fuel_consumed = buf . get_f32_le () ; __struct . fuel_flow = buf . get_f32_le () ; __struct . engine_load = buf . get_f32_le () ; __struct . throttle_position = buf . get_f32_le () ; __struct . spark_dwell_time = buf . get_f32_le () ; __struct . barometric_pressure = buf . get_f32_le () ; __struct . intake_manifold_pressure = buf . get_f32_le () ; __struct . intake_manifold_temperature = buf . get_f32_le () ; __struct . cylinder_head_temperature = buf . get_f32_le () ; __struct . ignition_timing = buf . get_f32_le () ; __struct . injection_time = buf . get_f32_le () ; __struct . exhaust_gas_temperature = buf . get_f32_le () ; __struct . throttle_out = buf . get_f32_le () ; __struct . pt_compensation = buf . get_f32_le () ; __struct . health = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . ecu_index) ; __tmp . put_f32_le (self . rpm) ; __tmp . put_f32_le (self . fuel_consumed) ; __tmp . put_f32_le (self . fuel_flow) ; __tmp . put_f32_le (self . engine_load) ; __tmp . put_f32_le (self . throttle_position) ; __tmp . put_f32_le (self . spark_dwell_time) ; __tmp . put_f32_le (self . barometric_pressure) ; __tmp . put_f32_le (self . intake_manifold_pressure) ; __tmp . put_f32_le (self . intake_manifold_temperature) ; __tmp . put_f32_le (self . cylinder_head_temperature) ; __tmp . put_f32_le (self . ignition_timing) ; __tmp . put_f32_le (self . injection_time) ; __tmp . put_f32_le (self . exhaust_gas_temperature) ; __tmp . put_f32_le (self . throttle_out) ; __tmp . put_f32_le (self . pt_compensation) ; __tmp . put_u8 (self . health) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CONTROL_SYSTEM_STATE_DATA { pub time_usec : u64 , pub x_acc : f32 , pub y_acc : f32 , pub z_acc : f32 , pub x_vel : f32 , pub y_vel : f32 , pub z_vel : f32 , pub x_pos : f32 , pub y_pos : f32 , pub z_pos : f32 , pub airspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_variance : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_variance : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub roll_rate : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , } impl CONTROL_SYSTEM_STATE_DATA { pub const ENCODED_LEN : usize = 100usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x_acc : 0.0_f32 , y_acc : 0.0_f32 , z_acc : 0.0_f32 , x_vel : 0.0_f32 , y_vel : 0.0_f32 , z_vel : 0.0_f32 , x_pos : 0.0_f32 , y_pos : 0.0_f32 , z_pos : 0.0_f32 , airspeed : 0.0_f32 , vel_variance : [0.0_f32 ; 3usize] , pos_variance : [0.0_f32 ; 3usize] , q : [0.0_f32 ; 4usize] , roll_rate : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , } ; } impl Default for CONTROL_SYSTEM_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CONTROL_SYSTEM_STATE_DATA { type Message = MavMessage ; const ID : u32 = 146u32 ; const NAME : & 'static str = "CONTROL_SYSTEM_STATE" ; const EXTRA_CRC : u8 = 103u8 ; const ENCODED_LEN : usize = 100usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x_acc = buf . get_f32_le () ; __struct . y_acc = buf . get_f32_le () ; __struct . z_acc = buf . get_f32_le () ; __struct . x_vel = buf . get_f32_le () ; __struct . y_vel = buf . get_f32_le () ; __struct . z_vel = buf . get_f32_le () ; __struct . x_pos = buf . get_f32_le () ; __struct . y_pos = buf . get_f32_le () ; __struct . z_pos = buf . get_f32_le () ; __struct . airspeed = buf . get_f32_le () ; for v in & mut __struct . vel_variance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_variance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . roll_rate = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x_acc) ; __tmp . put_f32_le (self . y_acc) ; __tmp . put_f32_le (self . z_acc) ; __tmp . put_f32_le (self . x_vel) ; __tmp . put_f32_le (self . y_vel) ; __tmp . put_f32_le (self . z_vel) ; __tmp . put_f32_le (self . x_pos) ; __tmp . put_f32_le (self . y_pos) ; __tmp . put_f32_le (self . z_pos) ; __tmp . put_f32_le (self . airspeed) ; for val in & self . vel_variance { __tmp . put_f32_le (* val) ; } for val in & self . pos_variance { __tmp . put_f32_le (* val) ; } for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . roll_rate) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_VISION_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl GLOBAL_VISION_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for GLOBAL_VISION_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_VISION_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 101u32 ; const NAME : & 'static str = "GLOBAL_VISION_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 102u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BUTTON_CHANGE_DATA { pub time_boot_ms : u32 , pub last_change_ms : u32 , pub state : u8 , } impl BUTTON_CHANGE_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , last_change_ms : 0_u32 , state : 0_u8 , } ; } impl Default for BUTTON_CHANGE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BUTTON_CHANGE_DATA { type Message = MavMessage ; const ID : u32 = 257u32 ; const NAME : & 'static str = "BUTTON_CHANGE" ; const EXTRA_CRC : u8 = 131u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . last_change_ms = buf . get_u32_le () ; __struct . state = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . last_change_ms) ; __tmp . put_u8 (self . state) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATT_POS_MOCAP_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub x : f32 , pub y : f32 , pub z : f32 , } impl ATT_POS_MOCAP_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , q : [0.0_f32 ; 4usize] , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , } ; } impl Default for ATT_POS_MOCAP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATT_POS_MOCAP_DATA { type Message = MavMessage ; const ID : u32 = 138u32 ; const NAME : & 'static str = "ATT_POS_MOCAP" ; const EXTRA_CRC : u8 = 109u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_QUATERNION_COV_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 9] , } impl ATTITUDE_QUATERNION_COV_DATA { pub const ENCODED_LEN : usize = 72usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , q : [0.0_f32 ; 4usize] , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , covariance : [0.0_f32 ; 9usize] , } ; } impl Default for ATTITUDE_QUATERNION_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_QUATERNION_COV_DATA { type Message = MavMessage ; const ID : u32 = 61u32 ; const NAME : & 'static str = "ATTITUDE_QUATERNION_COV" ; const EXTRA_CRC : u8 = 167u8 ; const ENCODED_LEN : usize = 72usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CURRENT_EVENT_SEQUENCE_DATA { pub sequence : u16 , pub flags : MavEventCurrentSequenceFlags , } impl CURRENT_EVENT_SEQUENCE_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , flags : MavEventCurrentSequenceFlags :: DEFAULT , } ; } impl Default for CURRENT_EVENT_SEQUENCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CURRENT_EVENT_SEQUENCE_DATA { type Message = MavMessage ; const ID : u32 = 411u32 ; const NAME : & 'static str = "CURRENT_EVENT_SEQUENCE" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . flags = MavEventCurrentSequenceFlags :: from_bits (tmp & MavEventCurrentSequenceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavEventCurrentSequenceFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_ACTUATOR_CONTROL_TARGET_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 8] , pub group_mlx : u8 , pub target_system : u8 , pub target_component : u8 , } impl SET_ACTUATOR_CONTROL_TARGET_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , controls : [0.0_f32 ; 8usize] , group_mlx : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SET_ACTUATOR_CONTROL_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_ACTUATOR_CONTROL_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 139u32 ; const NAME : & 'static str = "SET_ACTUATOR_CONTROL_TARGET" ; const EXTRA_CRC : u8 = 168u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } __struct . group_mlx = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . group_mlx) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU3_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU3_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU3_DATA { type Message = MavMessage ; const ID : u32 = 129u32 ; const NAME : & 'static str = "SCALED_IMU3" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct STATUSTEXT_DATA { pub severity : MavSeverity , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub text : [u8 ; 50] , } impl STATUSTEXT_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { severity : MavSeverity :: DEFAULT , text : [0_u8 ; 50usize] , } ; } impl Default for STATUSTEXT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for STATUSTEXT_DATA { type Message = MavMessage ; const ID : u32 = 253u32 ; const NAME : & 'static str = "STATUSTEXT" ; const EXTRA_CRC : u8 = 83u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . severity = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavSeverity" , value : tmp as u32 }) ? ; for v in & mut __struct . text { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . severity as u8) ; for val in & self . text { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS2_RAW_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub dgps_age : u32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub cog : u16 , pub fix_type : GpsFixType , pub satellites_visible : u8 , pub dgps_numch : u8 , } impl GPS2_RAW_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , dgps_age : 0_u32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , cog : 0_u16 , fix_type : GpsFixType :: DEFAULT , satellites_visible : 0_u8 , dgps_numch : 0_u8 , } ; } impl Default for GPS2_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS2_RAW_DATA { type Message = MavMessage ; const ID : u32 = 124u32 ; const NAME : & 'static str = "GPS2_RAW" ; const EXTRA_CRC : u8 = 87u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . dgps_age = buf . get_u32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . cog = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . satellites_visible = buf . get_u8 () ; __struct . dgps_numch = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u32_le (self . dgps_age) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type as u8) ; __tmp . put_u8 (self . satellites_visible) ; __tmp . put_u8 (self . dgps_numch) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_SET_CURRENT_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_SET_CURRENT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_SET_CURRENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_SET_CURRENT_DATA { type Message = MavMessage ; const ID : u32 = 41u32 ; const NAME : & 'static str = "MISSION_SET_CURRENT" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SMART_BATTERY_INFO_DATA { pub capacity_full_specification : i32 , pub capacity_full : i32 , pub cycle_count : u16 , pub weight : u16 , pub discharge_minimum_voltage : u16 , pub charging_minimum_voltage : u16 , pub resting_minimum_voltage : u16 , pub id : u8 , pub battery_function : MavBatteryFunction , pub mavtype : MavBatteryType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub serial_number : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub device_name : [u8 ; 50] , } impl SMART_BATTERY_INFO_DATA { pub const ENCODED_LEN : usize = 87usize ; pub const DEFAULT : Self = Self { capacity_full_specification : 0_i32 , capacity_full : 0_i32 , cycle_count : 0_u16 , weight : 0_u16 , discharge_minimum_voltage : 0_u16 , charging_minimum_voltage : 0_u16 , resting_minimum_voltage : 0_u16 , id : 0_u8 , battery_function : MavBatteryFunction :: DEFAULT , mavtype : MavBatteryType :: DEFAULT , serial_number : [0_u8 ; 16usize] , device_name : [0_u8 ; 50usize] , } ; } impl Default for SMART_BATTERY_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SMART_BATTERY_INFO_DATA { type Message = MavMessage ; const ID : u32 = 370u32 ; const NAME : & 'static str = "SMART_BATTERY_INFO" ; const EXTRA_CRC : u8 = 75u8 ; const ENCODED_LEN : usize = 87usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . capacity_full_specification = buf . get_i32_le () ; __struct . capacity_full = buf . get_i32_le () ; __struct . cycle_count = buf . get_u16_le () ; __struct . weight = buf . get_u16_le () ; __struct . discharge_minimum_voltage = buf . get_u16_le () ; __struct . charging_minimum_voltage = buf . get_u16_le () ; __struct . resting_minimum_voltage = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . battery_function = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryFunction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryType" , value : tmp as u32 }) ? ; for v in & mut __struct . serial_number { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . device_name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . capacity_full_specification) ; __tmp . put_i32_le (self . capacity_full) ; __tmp . put_u16_le (self . cycle_count) ; __tmp . put_u16_le (self . weight) ; __tmp . put_u16_le (self . discharge_minimum_voltage) ; __tmp . put_u16_le (self . charging_minimum_voltage) ; __tmp . put_u16_le (self . resting_minimum_voltage) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . battery_function as u8) ; __tmp . put_u8 (self . mavtype as u8) ; for val in & self . serial_number { __tmp . put_u8 (* val) ; } for val in & self . device_name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_REQUEST_DATA { pub mask : u64 , pub lat : i32 , pub lon : i32 , pub grid_spacing : u16 , } impl TERRAIN_REQUEST_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { mask : 0_u64 , lat : 0_i32 , lon : 0_i32 , grid_spacing : 0_u16 , } ; } impl Default for TERRAIN_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 133u32 ; const NAME : & 'static str = "TERRAIN_REQUEST" ; const EXTRA_CRC : u8 = 6u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mask = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . grid_spacing = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . mask) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . grid_spacing) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DISTANCE_SENSOR_DATA { pub time_boot_ms : u32 , pub min_distance : u16 , pub max_distance : u16 , pub current_distance : u16 , pub mavtype : MavDistanceSensor , pub id : u8 , pub orientation : MavSensorOrientation , pub covariance : u8 , } impl DISTANCE_SENSOR_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , min_distance : 0_u16 , max_distance : 0_u16 , current_distance : 0_u16 , mavtype : MavDistanceSensor :: DEFAULT , id : 0_u8 , orientation : MavSensorOrientation :: DEFAULT , covariance : 0_u8 , } ; } impl Default for DISTANCE_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DISTANCE_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 132u32 ; const NAME : & 'static str = "DISTANCE_SENSOR" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . min_distance = buf . get_u16_le () ; __struct . max_distance = buf . get_u16_le () ; __struct . current_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . orientation = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavSensorOrientation" , value : tmp as u32 }) ? ; __struct . covariance = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . min_distance) ; __tmp . put_u16_le (self . max_distance) ; __tmp . put_u16_le (self . current_distance) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . orientation as u8) ; __tmp . put_u8 (self . covariance) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_INT_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub seq : u16 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl MISSION_ITEM_INT_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , seq : 0_u16 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for MISSION_ITEM_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_INT_DATA { type Message = MavMessage ; const ID : u32 = 73u32 ; const NAME : & 'static str = "MISSION_ITEM_INT" ; const EXTRA_CRC : u8 = 38u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; __struct . seq = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GENERATOR_STATUS_DATA { pub status : MavGeneratorStatusFlag , pub battery_current : f32 , pub load_current : f32 , pub power_generated : f32 , pub bus_voltage : f32 , pub bat_current_setpoint : f32 , pub runtime : u32 , pub time_until_maintenance : i32 , pub generator_speed : u16 , pub rectifier_temperature : i16 , pub generator_temperature : i16 , } impl GENERATOR_STATUS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { status : MavGeneratorStatusFlag :: DEFAULT , battery_current : 0.0_f32 , load_current : 0.0_f32 , power_generated : 0.0_f32 , bus_voltage : 0.0_f32 , bat_current_setpoint : 0.0_f32 , runtime : 0_u32 , time_until_maintenance : 0_i32 , generator_speed : 0_u16 , rectifier_temperature : 0_i16 , generator_temperature : 0_i16 , } ; } impl Default for GENERATOR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GENERATOR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 373u32 ; const NAME : & 'static str = "GENERATOR_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u64_le () ; __struct . status = MavGeneratorStatusFlag :: from_bits (tmp & MavGeneratorStatusFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavGeneratorStatusFlag" , value : tmp as u32 }) ? ; __struct . battery_current = buf . get_f32_le () ; __struct . load_current = buf . get_f32_le () ; __struct . power_generated = buf . get_f32_le () ; __struct . bus_voltage = buf . get_f32_le () ; __struct . bat_current_setpoint = buf . get_f32_le () ; __struct . runtime = buf . get_u32_le () ; __struct . time_until_maintenance = buf . get_i32_le () ; __struct . generator_speed = buf . get_u16_le () ; __struct . rectifier_temperature = buf . get_i16_le () ; __struct . generator_temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . status . bits ()) ; __tmp . put_f32_le (self . battery_current) ; __tmp . put_f32_le (self . load_current) ; __tmp . put_f32_le (self . power_generated) ; __tmp . put_f32_le (self . bus_voltage) ; __tmp . put_f32_le (self . bat_current_setpoint) ; __tmp . put_u32_le (self . runtime) ; __tmp . put_i32_le (self . time_until_maintenance) ; __tmp . put_u16_le (self . generator_speed) ; __tmp . put_i16_le (self . rectifier_temperature) ; __tmp . put_i16_le (self . generator_temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_DATA { pub time_boot_ms : u32 , pub value : f32 , pub ind : u8 , } impl DEBUG_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0.0_f32 , ind : 0_u8 , } ; } impl Default for DEBUG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_DATA { type Message = MavMessage ; const ID : u32 = 254u32 ; const NAME : & 'static str = "DEBUG" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_f32_le () ; __struct . ind = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . value) ; __tmp . put_u8 (self . ind) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WHEEL_DISTANCE_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub distance : [f64 ; 16] , pub count : u8 , } impl WHEEL_DISTANCE_DATA { pub const ENCODED_LEN : usize = 137usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , distance : [0.0_f64 ; 16usize] , count : 0_u8 , } ; } impl Default for WHEEL_DISTANCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WHEEL_DISTANCE_DATA { type Message = MavMessage ; const ID : u32 = 9000u32 ; const NAME : & 'static str = "WHEEL_DISTANCE" ; const EXTRA_CRC : u8 = 113u8 ; const ENCODED_LEN : usize = 137usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . distance { let val = buf . get_f64_le () ; * v = val ; } __struct . count = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . distance { __tmp . put_f64_le (* val) ; } __tmp . put_u8 (self . count) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_IMU_DATA { pub time_usec : u64 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl RAW_IMU_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for RAW_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_IMU_DATA { type Message = MavMessage ; const ID : u32 = 27u32 ; const NAME : & 'static str = "RAW_IMU" ; const EXTRA_CRC : u8 = 144u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MEMORY_VECT_DATA { pub address : u16 , pub ver : u8 , pub mavtype : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub value : [i8 ; 32] , } impl MEMORY_VECT_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { address : 0_u16 , ver : 0_u8 , mavtype : 0_u8 , value : [0_i8 ; 32usize] , } ; } impl Default for MEMORY_VECT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MEMORY_VECT_DATA { type Message = MavMessage ; const ID : u32 = 249u32 ; const NAME : & 'static str = "MEMORY_VECT" ; const EXTRA_CRC : u8 = 204u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . address = buf . get_u16_le () ; __struct . ver = buf . get_u8 () ; __struct . mavtype = buf . get_u8 () ; for v in & mut __struct . value { let val = buf . get_i8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . address) ; __tmp . put_u8 (self . ver) ; __tmp . put_u8 (self . mavtype) ; for val in & self . value { __tmp . put_i8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POSITION_TARGET_GLOBAL_INT_DATA { pub time_boot_ms : u32 , pub lat_int : i32 , pub lon_int : i32 , pub alt : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub coordinate_frame : MavFrame , } impl POSITION_TARGET_GLOBAL_INT_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_int : 0_i32 , lon_int : 0_i32 , alt : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for POSITION_TARGET_GLOBAL_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POSITION_TARGET_GLOBAL_INT_DATA { type Message = MavMessage ; const ID : u32 = 87u32 ; const NAME : & 'static str = "POSITION_TARGET_GLOBAL_INT" ; const EXTRA_CRC : u8 = 150u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_int = buf . get_i32_le () ; __struct . lon_int = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_int) ; __tmp . put_i32_le (self . lon_int) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTH_KEY_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub key : [u8 ; 32] , } impl AUTH_KEY_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { key : [0_u8 ; 32usize] , } ; } impl Default for AUTH_KEY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTH_KEY_DATA { type Message = MavMessage ; const ID : u32 = 7u32 ; const NAME : & 'static str = "AUTH_KEY" ; const EXTRA_CRC : u8 = 119u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . key { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . key { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU2_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU2_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU2_DATA { type Message = MavMessage ; const ID : u32 = 116u32 ; const NAME : & 'static str = "SCALED_IMU2" ; const EXTRA_CRC : u8 = 76u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SYS_STATUS_DATA { pub onboard_control_sensors_present : MavSysStatusSensor , pub onboard_control_sensors_enabled : MavSysStatusSensor , pub onboard_control_sensors_health : MavSysStatusSensor , pub load : u16 , pub voltage_battery : u16 , pub current_battery : i16 , pub drop_rate_comm : u16 , pub errors_comm : u16 , pub errors_count1 : u16 , pub errors_count2 : u16 , pub errors_count3 : u16 , pub errors_count4 : u16 , pub battery_remaining : i8 , } impl SYS_STATUS_DATA { pub const ENCODED_LEN : usize = 31usize ; pub const DEFAULT : Self = Self { onboard_control_sensors_present : MavSysStatusSensor :: DEFAULT , onboard_control_sensors_enabled : MavSysStatusSensor :: DEFAULT , onboard_control_sensors_health : MavSysStatusSensor :: DEFAULT , load : 0_u16 , voltage_battery : 0_u16 , current_battery : 0_i16 , drop_rate_comm : 0_u16 , errors_comm : 0_u16 , errors_count1 : 0_u16 , errors_count2 : 0_u16 , errors_count3 : 0_u16 , errors_count4 : 0_u16 , battery_remaining : 0_i8 , } ; } impl Default for SYS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SYS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 1u32 ; const NAME : & 'static str = "SYS_STATUS" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 31usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_present = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_enabled = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_health = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; __struct . load = buf . get_u16_le () ; __struct . voltage_battery = buf . get_u16_le () ; __struct . current_battery = buf . get_i16_le () ; __struct . drop_rate_comm = buf . get_u16_le () ; __struct . errors_comm = buf . get_u16_le () ; __struct . errors_count1 = buf . get_u16_le () ; __struct . errors_count2 = buf . get_u16_le () ; __struct . errors_count3 = buf . get_u16_le () ; __struct . errors_count4 = buf . get_u16_le () ; __struct . battery_remaining = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . onboard_control_sensors_present . bits ()) ; __tmp . put_u32_le (self . onboard_control_sensors_enabled . bits ()) ; __tmp . put_u32_le (self . onboard_control_sensors_health . bits ()) ; __tmp . put_u16_le (self . load) ; __tmp . put_u16_le (self . voltage_battery) ; __tmp . put_i16_le (self . current_battery) ; __tmp . put_u16_le (self . drop_rate_comm) ; __tmp . put_u16_le (self . errors_comm) ; __tmp . put_u16_le (self . errors_count1) ; __tmp . put_u16_le (self . errors_count2) ; __tmp . put_u16_le (self . errors_count3) ; __tmp . put_u16_le (self . errors_count4) ; __tmp . put_i8 (self . battery_remaining) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { type Message = MavMessage ; const ID : u32 = 89u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET" ; const EXTRA_CRC : u8 = 231u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_POSITION_TARGET_LOCAL_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub target_system : u8 , pub target_component : u8 , pub coordinate_frame : MavFrame , } impl SET_POSITION_TARGET_LOCAL_NED_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for SET_POSITION_TARGET_LOCAL_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_POSITION_TARGET_LOCAL_NED_DATA { type Message = MavMessage ; const ID : u32 = 84u32 ; const NAME : & 'static str = "SET_POSITION_TARGET_LOCAL_NED" ; const EXTRA_CRC : u8 = 143u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_OPTICAL_FLOW_DATA { pub time_usec : u64 , pub integration_time_us : u32 , pub integrated_x : f32 , pub integrated_y : f32 , pub integrated_xgyro : f32 , pub integrated_ygyro : f32 , pub integrated_zgyro : f32 , pub time_delta_distance_us : u32 , pub distance : f32 , pub temperature : i16 , pub sensor_id : u8 , pub quality : u8 , } impl HIL_OPTICAL_FLOW_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , integration_time_us : 0_u32 , integrated_x : 0.0_f32 , integrated_y : 0.0_f32 , integrated_xgyro : 0.0_f32 , integrated_ygyro : 0.0_f32 , integrated_zgyro : 0.0_f32 , time_delta_distance_us : 0_u32 , distance : 0.0_f32 , temperature : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for HIL_OPTICAL_FLOW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_OPTICAL_FLOW_DATA { type Message = MavMessage ; const ID : u32 = 114u32 ; const NAME : & 'static str = "HIL_OPTICAL_FLOW" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . integration_time_us = buf . get_u32_le () ; __struct . integrated_x = buf . get_f32_le () ; __struct . integrated_y = buf . get_f32_le () ; __struct . integrated_xgyro = buf . get_f32_le () ; __struct . integrated_ygyro = buf . get_f32_le () ; __struct . integrated_zgyro = buf . get_f32_le () ; __struct . time_delta_distance_us = buf . get_u32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . integration_time_us) ; __tmp . put_f32_le (self . integrated_x) ; __tmp . put_f32_le (self . integrated_y) ; __tmp . put_f32_le (self . integrated_xgyro) ; __tmp . put_f32_le (self . integrated_ygyro) ; __tmp . put_f32_le (self . integrated_zgyro) ; __tmp . put_u32_le (self . time_delta_distance_us) ; __tmp . put_f32_le (self . distance) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TRAJECTORY_REPRESENTATION_BEZIER_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub delta : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_yaw : [f32 ; 5] , pub valid_points : u8 , } impl TRAJECTORY_REPRESENTATION_BEZIER_DATA { pub const ENCODED_LEN : usize = 109usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , pos_x : [0.0_f32 ; 5usize] , pos_y : [0.0_f32 ; 5usize] , pos_z : [0.0_f32 ; 5usize] , delta : [0.0_f32 ; 5usize] , pos_yaw : [0.0_f32 ; 5usize] , valid_points : 0_u8 , } ; } impl Default for TRAJECTORY_REPRESENTATION_BEZIER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TRAJECTORY_REPRESENTATION_BEZIER_DATA { type Message = MavMessage ; const ID : u32 = 333u32 ; const NAME : & 'static str = "TRAJECTORY_REPRESENTATION_BEZIER" ; const EXTRA_CRC : u8 = 231u8 ; const ENCODED_LEN : usize = 109usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . pos_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . delta { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_yaw { let val = buf . get_f32_le () ; * v = val ; } __struct . valid_points = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . pos_x { __tmp . put_f32_le (* val) ; } for val in & self . pos_y { __tmp . put_f32_le (* val) ; } for val in & self . pos_z { __tmp . put_f32_le (* val) ; } for val in & self . delta { __tmp . put_f32_le (* val) ; } for val in & self . pos_yaw { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . valid_points) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl VISION_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for VISION_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 102u32 ; const NAME : & 'static str = "VISION_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 158u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PING_DATA { pub time_usec : u64 , pub seq : u32 , pub target_system : u8 , pub target_component : u8 , } impl PING_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , seq : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PING_DATA { type Message = MavMessage ; const ID : u32 = 4u32 ; const NAME : & 'static str = "PING" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . seq = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_DATA_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , pub length : u8 , pub first_message_offset : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 249] , } impl LOGGING_DATA_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , length : 0_u8 , first_message_offset : 0_u8 , data : [0_u8 ; 249usize] , } ; } impl Default for LOGGING_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_DATA_DATA { type Message = MavMessage ; const ID : u32 = 266u32 ; const NAME : & 'static str = "LOGGING_DATA" ; const EXTRA_CRC : u8 = 193u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . length = buf . get_u8 () ; __struct . first_message_offset = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . length) ; __tmp . put_u8 (self . first_message_offset) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIBRATION_DATA { pub time_usec : u64 , pub vibration_x : f32 , pub vibration_y : f32 , pub vibration_z : f32 , pub clipping_0 : u32 , pub clipping_1 : u32 , pub clipping_2 : u32 , } impl VIBRATION_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , vibration_x : 0.0_f32 , vibration_y : 0.0_f32 , vibration_z : 0.0_f32 , clipping_0 : 0_u32 , clipping_1 : 0_u32 , clipping_2 : 0_u32 , } ; } impl Default for VIBRATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIBRATION_DATA { type Message = MavMessage ; const ID : u32 = 241u32 ; const NAME : & 'static str = "VIBRATION" ; const EXTRA_CRC : u8 = 90u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . vibration_x = buf . get_f32_le () ; __struct . vibration_y = buf . get_f32_le () ; __struct . vibration_z = buf . get_f32_le () ; __struct . clipping_0 = buf . get_u32_le () ; __struct . clipping_1 = buf . get_u32_le () ; __struct . clipping_2 = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . vibration_x) ; __tmp . put_f32_le (self . vibration_y) ; __tmp . put_f32_le (self . vibration_z) ; __tmp . put_u32_le (self . clipping_0) ; __tmp . put_u32_le (self . clipping_1) ; __tmp . put_u32_le (self . clipping_2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REQUEST_DATA_STREAM_DATA { pub req_message_rate : u16 , pub target_system : u8 , pub target_component : u8 , pub req_stream_id : u8 , pub start_stop : u8 , } impl REQUEST_DATA_STREAM_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { req_message_rate : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , req_stream_id : 0_u8 , start_stop : 0_u8 , } ; } impl Default for REQUEST_DATA_STREAM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REQUEST_DATA_STREAM_DATA { type Message = MavMessage ; const ID : u32 = 66u32 ; const NAME : & 'static str = "REQUEST_DATA_STREAM" ; const EXTRA_CRC : u8 = 148u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . req_message_rate = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . req_stream_id = buf . get_u8 () ; __struct . start_stop = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . req_message_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . req_stream_id) ; __tmp . put_u8 (self . start_stop) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EXTENDED_SYS_STATE_DATA { pub vtol_state : MavVtolState , pub landed_state : MavLandedState , } impl EXTENDED_SYS_STATE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { vtol_state : MavVtolState :: DEFAULT , landed_state : MavLandedState :: DEFAULT , } ; } impl Default for EXTENDED_SYS_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EXTENDED_SYS_STATE_DATA { type Message = MavMessage ; const ID : u32 = 245u32 ; const NAME : & 'static str = "EXTENDED_SYS_STATE" ; const EXTRA_CRC : u8 = 130u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . vtol_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavVtolState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . vtol_state as u8) ; __tmp . put_u8 (self . landed_state as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POSITION_TARGET_LOCAL_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub coordinate_frame : MavFrame , } impl POSITION_TARGET_LOCAL_NED_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for POSITION_TARGET_LOCAL_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POSITION_TARGET_LOCAL_NED_DATA { type Message = MavMessage ; const ID : u32 = 85u32 ; const NAME : & 'static str = "POSITION_TARGET_LOCAL_NED" ; const EXTRA_CRC : u8 = 140u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_MODE_DATA { pub custom_mode : u32 , pub target_system : u8 , pub base_mode : MavMode , } impl SET_MODE_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , target_system : 0_u8 , base_mode : MavMode :: DEFAULT , } ; } impl Default for SET_MODE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_MODE_DATA { type Message = MavMessage ; const ID : u32 = 11u32 ; const NAME : & 'static str = "SET_MODE" ; const EXTRA_CRC : u8 = 89u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . base_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMode" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . base_mode as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_DATA_ACKED_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , pub length : u8 , pub first_message_offset : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 249] , } impl LOGGING_DATA_ACKED_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , length : 0_u8 , first_message_offset : 0_u8 , data : [0_u8 ; 249usize] , } ; } impl Default for LOGGING_DATA_ACKED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_DATA_ACKED_DATA { type Message = MavMessage ; const ID : u32 = 267u32 ; const NAME : & 'static str = "LOGGING_DATA_ACKED" ; const EXTRA_CRC : u8 = 35u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . length = buf . get_u8 () ; __struct . first_message_offset = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . length) ; __tmp . put_u8 (self . first_message_offset) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_GLOBAL_ORIGIN_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , } impl GPS_GLOBAL_ORIGIN_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , } ; } impl Default for GPS_GLOBAL_ORIGIN_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_GLOBAL_ORIGIN_DATA { type Message = MavMessage ; const ID : u32 = 49u32 ; const NAME : & 'static str = "GPS_GLOBAL_ORIGIN" ; const EXTRA_CRC : u8 = 39u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_POSITION_INT_COV_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 36] , pub estimator_type : MavEstimatorType , } impl GLOBAL_POSITION_INT_COV_DATA { pub const ENCODED_LEN : usize = 181usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , covariance : [0.0_f32 ; 36usize] , estimator_type : MavEstimatorType :: DEFAULT , } ; } impl Default for GLOBAL_POSITION_INT_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_POSITION_INT_COV_DATA { type Message = MavMessage ; const ID : u32 = 63u32 ; const NAME : & 'static str = "GLOBAL_POSITION_INT_COV" ; const EXTRA_CRC : u8 = 119u8 ; const ENCODED_LEN : usize = 181usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . estimator_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEstimatorType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . estimator_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_CAPTURE_STATUS_DATA { pub time_boot_ms : u32 , pub image_interval : f32 , pub recording_time_ms : u32 , pub available_capacity : f32 , pub image_status : u8 , pub video_status : u8 , } impl CAMERA_CAPTURE_STATUS_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , image_interval : 0.0_f32 , recording_time_ms : 0_u32 , available_capacity : 0.0_f32 , image_status : 0_u8 , video_status : 0_u8 , } ; } impl Default for CAMERA_CAPTURE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_CAPTURE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 262u32 ; const NAME : & 'static str = "CAMERA_CAPTURE_STATUS" ; const EXTRA_CRC : u8 = 12u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . image_interval = buf . get_f32_le () ; __struct . recording_time_ms = buf . get_u32_le () ; __struct . available_capacity = buf . get_f32_le () ; __struct . image_status = buf . get_u8 () ; __struct . video_status = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . image_interval) ; __tmp . put_u32_le (self . recording_time_ms) ; __tmp . put_f32_le (self . available_capacity) ; __tmp . put_u8 (self . image_status) ; __tmp . put_u8 (self . video_status) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA_STREAM_DATA { pub message_rate : u16 , pub stream_id : u8 , pub on_off : u8 , } impl DATA_STREAM_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { message_rate : 0_u16 , stream_id : 0_u8 , on_off : 0_u8 , } ; } impl Default for DATA_STREAM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA_STREAM_DATA { type Message = MavMessage ; const ID : u32 = 67u32 ; const NAME : & 'static str = "DATA_STREAM" ; const EXTRA_CRC : u8 = 21u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . message_rate = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; __struct . on_off = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . message_rate) ; __tmp . put_u8 (self . stream_id) ; __tmp . put_u8 (self . on_off) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ACTUATOR_CONTROL_TARGET_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 8] , pub group_mlx : u8 , } impl ACTUATOR_CONTROL_TARGET_DATA { pub const ENCODED_LEN : usize = 41usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , controls : [0.0_f32 ; 8usize] , group_mlx : 0_u8 , } ; } impl Default for ACTUATOR_CONTROL_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ACTUATOR_CONTROL_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 140u32 ; const NAME : & 'static str = "ACTUATOR_CONTROL_TARGET" ; const EXTRA_CRC : u8 = 181u8 ; const ENCODED_LEN : usize = 41usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } __struct . group_mlx = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . group_mlx) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_CHECK_DATA { pub lat : i32 , pub lon : i32 , } impl TERRAIN_CHECK_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , } ; } impl Default for TERRAIN_CHECK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_CHECK_DATA { type Message = MavMessage ; const ID : u32 = 135u32 ; const NAME : & 'static str = "TERRAIN_CHECK" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_RPM_DATA { pub frequency : f32 , pub index : u8 , } impl RAW_RPM_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { frequency : 0.0_f32 , index : 0_u8 , } ; } impl Default for RAW_RPM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_RPM_DATA { type Message = MavMessage ; const ID : u32 = 339u32 ; const NAME : & 'static str = "RAW_RPM" ; const EXTRA_CRC : u8 = 199u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . frequency = buf . get_f32_le () ; __struct . index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . frequency) ; __tmp . put_u8 (self . index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_OVERRIDE_DATA { pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub target_system : u8 , pub target_component : u8 , } impl RC_CHANNELS_OVERRIDE_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for RC_CHANNELS_OVERRIDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_OVERRIDE_DATA { type Message = MavMessage ; const ID : u32 = 70u32 ; const NAME : & 'static str = "RC_CHANNELS_OVERRIDE" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_AUTHENTICATION_DATA { pub timestamp : u32 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub authentication_type : MavOdidAuthType , pub data_page : u8 , pub last_page_index : u8 , pub length : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub authentication_data : [u8 ; 23] , } impl OPEN_DRONE_ID_AUTHENTICATION_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { timestamp : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , authentication_type : MavOdidAuthType :: DEFAULT , data_page : 0_u8 , last_page_index : 0_u8 , length : 0_u8 , authentication_data : [0_u8 ; 23usize] , } ; } impl Default for OPEN_DRONE_ID_AUTHENTICATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_AUTHENTICATION_DATA { type Message = MavMessage ; const ID : u32 = 12902u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_AUTHENTICATION" ; const EXTRA_CRC : u8 = 140u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . authentication_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidAuthType" , value : tmp as u32 }) ? ; __struct . data_page = buf . get_u8 () ; __struct . last_page_index = buf . get_u8 () ; __struct . length = buf . get_u8 () ; for v in & mut __struct . authentication_data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . authentication_type as u8) ; __tmp . put_u8 (self . data_page) ; __tmp . put_u8 (self . last_page_index) ; __tmp . put_u8 (self . length) ; for val in & self . authentication_data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { pub rfHealth : UavionixAdsbRfHealth , } impl UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { pub const ENCODED_LEN : usize = 1usize ; pub const DEFAULT : Self = Self { rfHealth : UavionixAdsbRfHealth :: DEFAULT , } ; } impl Default for UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 10003u32 ; const NAME : & 'static str = "UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 1usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . rfHealth = UavionixAdsbRfHealth :: from_bits (tmp & UavionixAdsbRfHealth :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UavionixAdsbRfHealth" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . rfHealth . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_SET_DATA { pub param_value : f32 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub param_type : MavParamType , } impl PARAM_SET_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { param_value : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , param_type : MavParamType :: DEFAULT , } ; } impl Default for PARAM_SET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_SET_DATA { type Message = MavMessage ; const ID : u32 = 23u32 ; const NAME : & 'static str = "PARAM_SET" ; const EXTRA_CRC : u8 = 168u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_STATE_DATA { pub time_usec : u64 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , } impl HIL_STATE_DATA { pub const ENCODED_LEN : usize = 56usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , } ; } impl Default for HIL_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_STATE_DATA { type Message = MavMessage ; const ID : u32 = 90u32 ; const NAME : & 'static str = "HIL_STATE" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 56usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_DATA_DATA { pub ofs : u32 , pub count : u32 , pub id : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_DATA_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { ofs : 0_u32 , count : 0_u32 , id : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_DATA_DATA { type Message = MavMessage ; const ID : u32 = 119u32 ; const NAME : & 'static str = "LOG_REQUEST_DATA" ; const EXTRA_CRC : u8 = 116u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ofs = buf . get_u32_le () ; __struct . count = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ofs) ; __tmp . put_u32_le (self . count) ; __tmp . put_u16_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MANUAL_SETPOINT_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub thrust : f32 , pub mode_switch : u8 , pub manual_override_switch : u8 , } impl MANUAL_SETPOINT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , thrust : 0.0_f32 , mode_switch : 0_u8 , manual_override_switch : 0_u8 , } ; } impl Default for MANUAL_SETPOINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MANUAL_SETPOINT_DATA { type Message = MavMessage ; const ID : u32 = 81u32 ; const NAME : & 'static str = "MANUAL_SETPOINT" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; __struct . mode_switch = buf . get_u8 () ; __struct . manual_override_switch = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . mode_switch) ; __tmp . put_u8 (self . manual_override_switch) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_ATTITUDE_TARGET_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub body_roll_rate : f32 , pub body_pitch_rate : f32 , pub body_yaw_rate : f32 , pub thrust : f32 , pub target_system : u8 , pub target_component : u8 , pub type_mask : AttitudeTargetTypemask , } impl SET_ATTITUDE_TARGET_DATA { pub const ENCODED_LEN : usize = 39usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , body_roll_rate : 0.0_f32 , body_pitch_rate : 0.0_f32 , body_yaw_rate : 0.0_f32 , thrust : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , type_mask : AttitudeTargetTypemask :: DEFAULT , } ; } impl Default for SET_ATTITUDE_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_ATTITUDE_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 82u32 ; const NAME : & 'static str = "SET_ATTITUDE_TARGET" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 39usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . body_roll_rate = buf . get_f32_le () ; __struct . body_pitch_rate = buf . get_f32_le () ; __struct . body_yaw_rate = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . type_mask = AttitudeTargetTypemask :: from_bits (tmp & AttitudeTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AttitudeTargetTypemask" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . body_roll_rate) ; __tmp . put_f32_le (self . body_pitch_rate) ; __tmp . put_f32_le (self . body_yaw_rate) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . type_mask . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_ARM_STATUS_DATA { pub status : MavOdidArmStatus , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub error : [u8 ; 50] , } impl OPEN_DRONE_ID_ARM_STATUS_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { status : MavOdidArmStatus :: DEFAULT , error : [0_u8 ; 50usize] , } ; } impl Default for OPEN_DRONE_ID_ARM_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_ARM_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 12918u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_ARM_STATUS" ; const EXTRA_CRC : u8 = 139u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidArmStatus" , value : tmp as u32 }) ? ; for v in & mut __struct . error { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . status as u8) ; for val in & self . error { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_PITCHYAW_DATA { pub flags : GimbalManagerFlags , pub pitch : f32 , pub yaw : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_PITCHYAW_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , pitch : 0.0_f32 , yaw : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_PITCHYAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_PITCHYAW_DATA { type Message = MavMessage ; const ID : u32 = 287u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_PITCHYAW" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COLLISION_DATA { pub id : u32 , pub time_to_minimum_delta : f32 , pub altitude_minimum_delta : f32 , pub horizontal_minimum_delta : f32 , pub src : MavCollisionSrc , pub action : MavCollisionAction , pub threat_level : MavCollisionThreatLevel , } impl COLLISION_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { id : 0_u32 , time_to_minimum_delta : 0.0_f32 , altitude_minimum_delta : 0.0_f32 , horizontal_minimum_delta : 0.0_f32 , src : MavCollisionSrc :: DEFAULT , action : MavCollisionAction :: DEFAULT , threat_level : MavCollisionThreatLevel :: DEFAULT , } ; } impl Default for COLLISION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COLLISION_DATA { type Message = MavMessage ; const ID : u32 = 247u32 ; const NAME : & 'static str = "COLLISION" ; const EXTRA_CRC : u8 = 81u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . time_to_minimum_delta = buf . get_f32_le () ; __struct . altitude_minimum_delta = buf . get_f32_le () ; __struct . horizontal_minimum_delta = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . src = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionSrc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . action = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionAction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . threat_level = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionThreatLevel" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_f32_le (self . time_to_minimum_delta) ; __tmp . put_f32_le (self . altitude_minimum_delta) ; __tmp . put_f32_le (self . horizontal_minimum_delta) ; __tmp . put_u8 (self . src as u8) ; __tmp . put_u8 (self . action as u8) ; __tmp . put_u8 (self . threat_level as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_POSITION_TARGET_GLOBAL_INT_DATA { pub time_boot_ms : u32 , pub lat_int : i32 , pub lon_int : i32 , pub alt : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub target_system : u8 , pub target_component : u8 , pub coordinate_frame : MavFrame , } impl SET_POSITION_TARGET_GLOBAL_INT_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_int : 0_i32 , lon_int : 0_i32 , alt : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for SET_POSITION_TARGET_GLOBAL_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_POSITION_TARGET_GLOBAL_INT_DATA { type Message = MavMessage ; const ID : u32 = 86u32 ; const NAME : & 'static str = "SET_POSITION_TARGET_GLOBAL_INT" ; const EXTRA_CRC : u8 = 5u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_int = buf . get_i32_le () ; __struct . lon_int = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_int) ; __tmp . put_i32_le (self . lon_int) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SAFETY_SET_ALLOWED_AREA_DATA { pub p1x : f32 , pub p1y : f32 , pub p1z : f32 , pub p2x : f32 , pub p2y : f32 , pub p2z : f32 , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , } impl SAFETY_SET_ALLOWED_AREA_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { p1x : 0.0_f32 , p1y : 0.0_f32 , p1z : 0.0_f32 , p2x : 0.0_f32 , p2y : 0.0_f32 , p2z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , } ; } impl Default for SAFETY_SET_ALLOWED_AREA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SAFETY_SET_ALLOWED_AREA_DATA { type Message = MavMessage ; const ID : u32 = 54u32 ; const NAME : & 'static str = "SAFETY_SET_ALLOWED_AREA" ; const EXTRA_CRC : u8 = 15u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . p1x = buf . get_f32_le () ; __struct . p1y = buf . get_f32_le () ; __struct . p1z = buf . get_f32_le () ; __struct . p2x = buf . get_f32_le () ; __struct . p2y = buf . get_f32_le () ; __struct . p2z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . p1x) ; __tmp . put_f32_le (self . p1y) ; __tmp . put_f32_le (self . p1z) ; __tmp . put_f32_le (self . p2x) ; __tmp . put_f32_le (self . p2y) ; __tmp . put_f32_le (self . p2z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PLAY_TUNE_V2_DATA { pub format : TuneFormat , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub tune : [u8 ; 248] , } impl PLAY_TUNE_V2_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { format : TuneFormat :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , tune : [0_u8 ; 248usize] , } ; } impl Default for PLAY_TUNE_V2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PLAY_TUNE_V2_DATA { type Message = MavMessage ; const ID : u32 = 400u32 ; const NAME : & 'static str = "PLAY_TUNE_V2" ; const EXTRA_CRC : u8 = 110u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . format = TuneFormat :: from_bits (tmp & TuneFormat :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "TuneFormat" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . tune { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . format . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . tune { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_LOCATION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude_barometric : f32 , pub altitude_geodetic : f32 , pub height : f32 , pub timestamp : f32 , pub direction : u16 , pub speed_horizontal : u16 , pub speed_vertical : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub status : MavOdidStatus , pub height_reference : MavOdidHeightRef , pub horizontal_accuracy : MavOdidHorAcc , pub vertical_accuracy : MavOdidVerAcc , pub barometer_accuracy : MavOdidVerAcc , pub speed_accuracy : MavOdidSpeedAcc , pub timestamp_accuracy : MavOdidTimeAcc , } impl OPEN_DRONE_ID_LOCATION_DATA { pub const ENCODED_LEN : usize = 59usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude_barometric : 0.0_f32 , altitude_geodetic : 0.0_f32 , height : 0.0_f32 , timestamp : 0.0_f32 , direction : 0_u16 , speed_horizontal : 0_u16 , speed_vertical : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , status : MavOdidStatus :: DEFAULT , height_reference : MavOdidHeightRef :: DEFAULT , horizontal_accuracy : MavOdidHorAcc :: DEFAULT , vertical_accuracy : MavOdidVerAcc :: DEFAULT , barometer_accuracy : MavOdidVerAcc :: DEFAULT , speed_accuracy : MavOdidSpeedAcc :: DEFAULT , timestamp_accuracy : MavOdidTimeAcc :: DEFAULT , } ; } impl Default for OPEN_DRONE_ID_LOCATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_LOCATION_DATA { type Message = MavMessage ; const ID : u32 = 12901u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_LOCATION" ; const EXTRA_CRC : u8 = 254u8 ; const ENCODED_LEN : usize = 59usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude_barometric = buf . get_f32_le () ; __struct . altitude_geodetic = buf . get_f32_le () ; __struct . height = buf . get_f32_le () ; __struct . timestamp = buf . get_f32_le () ; __struct . direction = buf . get_u16_le () ; __struct . speed_horizontal = buf . get_u16_le () ; __struct . speed_vertical = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . height_reference = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidHeightRef" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . horizontal_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidHorAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . vertical_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidVerAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . barometer_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidVerAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . speed_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidSpeedAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . timestamp_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidTimeAcc" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_f32_le (self . altitude_barometric) ; __tmp . put_f32_le (self . altitude_geodetic) ; __tmp . put_f32_le (self . height) ; __tmp . put_f32_le (self . timestamp) ; __tmp . put_u16_le (self . direction) ; __tmp . put_u16_le (self . speed_horizontal) ; __tmp . put_i16_le (self . speed_vertical) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . height_reference as u8) ; __tmp . put_u8 (self . horizontal_accuracy as u8) ; __tmp . put_u8 (self . vertical_accuracy as u8) ; __tmp . put_u8 (self . barometer_accuracy as u8) ; __tmp . put_u8 (self . speed_accuracy as u8) ; __tmp . put_u8 (self . timestamp_accuracy as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VFR_HUD_DATA { pub airspeed : f32 , pub groundspeed : f32 , pub alt : f32 , pub climb : f32 , pub heading : i16 , pub throttle : u16 , } impl VFR_HUD_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { airspeed : 0.0_f32 , groundspeed : 0.0_f32 , alt : 0.0_f32 , climb : 0.0_f32 , heading : 0_i16 , throttle : 0_u16 , } ; } impl Default for VFR_HUD_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VFR_HUD_DATA { type Message = MavMessage ; const ID : u32 = 74u32 ; const NAME : & 'static str = "VFR_HUD" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . airspeed = buf . get_f32_le () ; __struct . groundspeed = buf . get_f32_le () ; __struct . alt = buf . get_f32_le () ; __struct . climb = buf . get_f32_le () ; __struct . heading = buf . get_i16_le () ; __struct . throttle = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . airspeed) ; __tmp . put_f32_le (self . groundspeed) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . climb) ; __tmp . put_i16_le (self . heading) ; __tmp . put_u16_le (self . throttle) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_INFORMATION_DATA { pub time_boot_ms : u32 , pub firmware_version : u32 , pub focal_length : f32 , pub sensor_size_h : f32 , pub sensor_size_v : f32 , pub flags : CameraCapFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub cam_definition_version : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vendor_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub model_name : [u8 ; 32] , pub lens_id : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cam_definition_uri : [u8 ; 140] , } impl CAMERA_INFORMATION_DATA { pub const ENCODED_LEN : usize = 235usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , firmware_version : 0_u32 , focal_length : 0.0_f32 , sensor_size_h : 0.0_f32 , sensor_size_v : 0.0_f32 , flags : CameraCapFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , cam_definition_version : 0_u16 , vendor_name : [0_u8 ; 32usize] , model_name : [0_u8 ; 32usize] , lens_id : 0_u8 , cam_definition_uri : [0_u8 ; 140usize] , } ; } impl Default for CAMERA_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 259u32 ; const NAME : & 'static str = "CAMERA_INFORMATION" ; const EXTRA_CRC : u8 = 92u8 ; const ENCODED_LEN : usize = 235usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . firmware_version = buf . get_u32_le () ; __struct . focal_length = buf . get_f32_le () ; __struct . sensor_size_h = buf . get_f32_le () ; __struct . sensor_size_v = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . flags = CameraCapFlags :: from_bits (tmp & CameraCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "CameraCapFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . cam_definition_version = buf . get_u16_le () ; for v in & mut __struct . vendor_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . model_name { let val = buf . get_u8 () ; * v = val ; } __struct . lens_id = buf . get_u8 () ; for v in & mut __struct . cam_definition_uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . firmware_version) ; __tmp . put_f32_le (self . focal_length) ; __tmp . put_f32_le (self . sensor_size_h) ; __tmp . put_f32_le (self . sensor_size_v) ; __tmp . put_u32_le (self . flags . bits ()) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . cam_definition_version) ; for val in & self . vendor_name { __tmp . put_u8 (* val) ; } for val in & self . model_name { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . lens_id) ; for val in & self . cam_definition_uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FENCE_STATUS_DATA { pub breach_time : u32 , pub breach_count : u16 , pub breach_status : u8 , pub breach_type : FenceBreach , } impl FENCE_STATUS_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { breach_time : 0_u32 , breach_count : 0_u16 , breach_status : 0_u8 , breach_type : FenceBreach :: DEFAULT , } ; } impl Default for FENCE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FENCE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 162u32 ; const NAME : & 'static str = "FENCE_STATUS" ; const EXTRA_CRC : u8 = 189u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . breach_time = buf . get_u32_le () ; __struct . breach_count = buf . get_u16_le () ; __struct . breach_status = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . breach_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "FenceBreach" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . breach_time) ; __tmp . put_u16_le (self . breach_count) ; __tmp . put_u8 (self . breach_status) ; __tmp . put_u8 (self . breach_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGH_LATENCY_DATA { pub custom_mode : u32 , pub latitude : i32 , pub longitude : i32 , pub roll : i16 , pub pitch : i16 , pub heading : u16 , pub heading_sp : i16 , pub altitude_amsl : i16 , pub altitude_sp : i16 , pub wp_distance : u16 , pub base_mode : MavModeFlag , pub landed_state : MavLandedState , pub throttle : i8 , pub airspeed : u8 , pub airspeed_sp : u8 , pub groundspeed : u8 , pub climb_rate : i8 , pub gps_nsat : u8 , pub gps_fix_type : GpsFixType , pub battery_remaining : u8 , pub temperature : i8 , pub temperature_air : i8 , pub failsafe : u8 , pub wp_num : u8 , } impl HIGH_LATENCY_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , latitude : 0_i32 , longitude : 0_i32 , roll : 0_i16 , pitch : 0_i16 , heading : 0_u16 , heading_sp : 0_i16 , altitude_amsl : 0_i16 , altitude_sp : 0_i16 , wp_distance : 0_u16 , base_mode : MavModeFlag :: DEFAULT , landed_state : MavLandedState :: DEFAULT , throttle : 0_i8 , airspeed : 0_u8 , airspeed_sp : 0_u8 , groundspeed : 0_u8 , climb_rate : 0_i8 , gps_nsat : 0_u8 , gps_fix_type : GpsFixType :: DEFAULT , battery_remaining : 0_u8 , temperature : 0_i8 , temperature_air : 0_i8 , failsafe : 0_u8 , wp_num : 0_u8 , } ; } impl Default for HIGH_LATENCY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGH_LATENCY_DATA { type Message = MavMessage ; const ID : u32 = 234u32 ; const NAME : & 'static str = "HIGH_LATENCY" ; const EXTRA_CRC : u8 = 150u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . roll = buf . get_i16_le () ; __struct . pitch = buf . get_i16_le () ; __struct . heading = buf . get_u16_le () ; __struct . heading_sp = buf . get_i16_le () ; __struct . altitude_amsl = buf . get_i16_le () ; __struct . altitude_sp = buf . get_i16_le () ; __struct . wp_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . base_mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; __struct . throttle = buf . get_i8 () ; __struct . airspeed = buf . get_u8 () ; __struct . airspeed_sp = buf . get_u8 () ; __struct . groundspeed = buf . get_u8 () ; __struct . climb_rate = buf . get_i8 () ; __struct . gps_nsat = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . gps_fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . battery_remaining = buf . get_u8 () ; __struct . temperature = buf . get_i8 () ; __struct . temperature_air = buf . get_i8 () ; __struct . failsafe = buf . get_u8 () ; __struct . wp_num = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i16_le (self . roll) ; __tmp . put_i16_le (self . pitch) ; __tmp . put_u16_le (self . heading) ; __tmp . put_i16_le (self . heading_sp) ; __tmp . put_i16_le (self . altitude_amsl) ; __tmp . put_i16_le (self . altitude_sp) ; __tmp . put_u16_le (self . wp_distance) ; __tmp . put_u8 (self . base_mode . bits ()) ; __tmp . put_u8 (self . landed_state as u8) ; __tmp . put_i8 (self . throttle) ; __tmp . put_u8 (self . airspeed) ; __tmp . put_u8 (self . airspeed_sp) ; __tmp . put_u8 (self . groundspeed) ; __tmp . put_i8 (self . climb_rate) ; __tmp . put_u8 (self . gps_nsat) ; __tmp . put_u8 (self . gps_fix_type as u8) ; __tmp . put_u8 (self . battery_remaining) ; __tmp . put_i8 (self . temperature) ; __tmp . put_i8 (self . temperature_air) ; __tmp . put_u8 (self . failsafe) ; __tmp . put_u8 (self . wp_num) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGH_LATENCY2_DATA { pub timestamp : u32 , pub latitude : i32 , pub longitude : i32 , pub custom_mode : u16 , pub altitude : i16 , pub target_altitude : i16 , pub target_distance : u16 , pub wp_num : u16 , pub failure_flags : HlFailureFlag , pub mavtype : MavType , pub autopilot : MavAutopilot , pub heading : u8 , pub target_heading : u8 , pub throttle : u8 , pub airspeed : u8 , pub airspeed_sp : u8 , pub groundspeed : u8 , pub windspeed : u8 , pub wind_heading : u8 , pub eph : u8 , pub epv : u8 , pub temperature_air : i8 , pub climb_rate : i8 , pub battery : i8 , pub custom0 : i8 , pub custom1 : i8 , pub custom2 : i8 , } impl HIGH_LATENCY2_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { timestamp : 0_u32 , latitude : 0_i32 , longitude : 0_i32 , custom_mode : 0_u16 , altitude : 0_i16 , target_altitude : 0_i16 , target_distance : 0_u16 , wp_num : 0_u16 , failure_flags : HlFailureFlag :: DEFAULT , mavtype : MavType :: DEFAULT , autopilot : MavAutopilot :: DEFAULT , heading : 0_u8 , target_heading : 0_u8 , throttle : 0_u8 , airspeed : 0_u8 , airspeed_sp : 0_u8 , groundspeed : 0_u8 , windspeed : 0_u8 , wind_heading : 0_u8 , eph : 0_u8 , epv : 0_u8 , temperature_air : 0_i8 , climb_rate : 0_i8 , battery : 0_i8 , custom0 : 0_i8 , custom1 : 0_i8 , custom2 : 0_i8 , } ; } impl Default for HIGH_LATENCY2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGH_LATENCY2_DATA { type Message = MavMessage ; const ID : u32 = 235u32 ; const NAME : & 'static str = "HIGH_LATENCY2" ; const EXTRA_CRC : u8 = 179u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u32_le () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . custom_mode = buf . get_u16_le () ; __struct . altitude = buf . get_i16_le () ; __struct . target_altitude = buf . get_i16_le () ; __struct . target_distance = buf . get_u16_le () ; __struct . wp_num = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . failure_flags = HlFailureFlag :: from_bits (tmp & HlFailureFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HlFailureFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . autopilot = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavAutopilot" , value : tmp as u32 }) ? ; __struct . heading = buf . get_u8 () ; __struct . target_heading = buf . get_u8 () ; __struct . throttle = buf . get_u8 () ; __struct . airspeed = buf . get_u8 () ; __struct . airspeed_sp = buf . get_u8 () ; __struct . groundspeed = buf . get_u8 () ; __struct . windspeed = buf . get_u8 () ; __struct . wind_heading = buf . get_u8 () ; __struct . eph = buf . get_u8 () ; __struct . epv = buf . get_u8 () ; __struct . temperature_air = buf . get_i8 () ; __struct . climb_rate = buf . get_i8 () ; __struct . battery = buf . get_i8 () ; __struct . custom0 = buf . get_i8 () ; __struct . custom1 = buf . get_i8 () ; __struct . custom2 = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_u16_le (self . custom_mode) ; __tmp . put_i16_le (self . altitude) ; __tmp . put_i16_le (self . target_altitude) ; __tmp . put_u16_le (self . target_distance) ; __tmp . put_u16_le (self . wp_num) ; __tmp . put_u16_le (self . failure_flags . bits ()) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . autopilot as u8) ; __tmp . put_u8 (self . heading) ; __tmp . put_u8 (self . target_heading) ; __tmp . put_u8 (self . throttle) ; __tmp . put_u8 (self . airspeed) ; __tmp . put_u8 (self . airspeed_sp) ; __tmp . put_u8 (self . groundspeed) ; __tmp . put_u8 (self . windspeed) ; __tmp . put_u8 (self . wind_heading) ; __tmp . put_u8 (self . eph) ; __tmp . put_u8 (self . epv) ; __tmp . put_i8 (self . temperature_air) ; __tmp . put_i8 (self . climb_rate) ; __tmp . put_i8 (self . battery) ; __tmp . put_i8 (self . custom0) ; __tmp . put_i8 (self . custom1) ; __tmp . put_i8 (self . custom2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_ERASE_DATA { pub target_system : u8 , pub target_component : u8 , } impl LOG_ERASE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_ERASE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_ERASE_DATA { type Message = MavMessage ; const ID : u32 = 121u32 ; const NAME : & 'static str = "LOG_ERASE" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OBSTACLE_DISTANCE_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub distances : [u16 ; 72] , pub min_distance : u16 , pub max_distance : u16 , pub sensor_type : MavDistanceSensor , pub increment : u8 , } impl OBSTACLE_DISTANCE_DATA { pub const ENCODED_LEN : usize = 158usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , distances : [0_u16 ; 72usize] , min_distance : 0_u16 , max_distance : 0_u16 , sensor_type : MavDistanceSensor :: DEFAULT , increment : 0_u8 , } ; } impl Default for OBSTACLE_DISTANCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OBSTACLE_DISTANCE_DATA { type Message = MavMessage ; const ID : u32 = 330u32 ; const NAME : & 'static str = "OBSTACLE_DISTANCE" ; const EXTRA_CRC : u8 = 23u8 ; const ENCODED_LEN : usize = 158usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . distances { let val = buf . get_u16_le () ; * v = val ; } __struct . min_distance = buf . get_u16_le () ; __struct . max_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . sensor_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; __struct . increment = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . distances { __tmp . put_u16_le (* val) ; } __tmp . put_u16_le (self . min_distance) ; __tmp . put_u16_le (self . max_distance) ; __tmp . put_u8 (self . sensor_type as u8) ; __tmp . put_u8 (self . increment) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_INFO_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub error_count : [u32 ; 4] , pub counter : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub failure_flags : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature : [i16 ; 4] , pub index : u8 , pub count : u8 , pub connection_type : EscConnectionType , pub info : u8 , } impl ESC_INFO_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , error_count : [0_u32 ; 4usize] , counter : 0_u16 , failure_flags : [0_u16 ; 4usize] , temperature : [0_i16 ; 4usize] , index : 0_u8 , count : 0_u8 , connection_type : EscConnectionType :: DEFAULT , info : 0_u8 , } ; } impl Default for ESC_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_INFO_DATA { type Message = MavMessage ; const ID : u32 = 290u32 ; const NAME : & 'static str = "ESC_INFO" ; const EXTRA_CRC : u8 = 251u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . error_count { let val = buf . get_u32_le () ; * v = val ; } __struct . counter = buf . get_u16_le () ; for v in & mut __struct . failure_flags { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . temperature { let val = buf . get_i16_le () ; * v = val ; } __struct . index = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . connection_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "EscConnectionType" , value : tmp as u32 }) ? ; __struct . info = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . error_count { __tmp . put_u32_le (* val) ; } __tmp . put_u16_le (self . counter) ; for val in & self . failure_flags { __tmp . put_u16_le (* val) ; } for val in & self . temperature { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . index) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . connection_type as u8) ; __tmp . put_u8 (self . info) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TUNNEL_DATA { pub payload_type : MavTunnelPayloadType , pub target_system : u8 , pub target_component : u8 , pub payload_length : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 128] , } impl TUNNEL_DATA { pub const ENCODED_LEN : usize = 133usize ; pub const DEFAULT : Self = Self { payload_type : MavTunnelPayloadType :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , payload_length : 0_u8 , payload : [0_u8 ; 128usize] , } ; } impl Default for TUNNEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TUNNEL_DATA { type Message = MavMessage ; const ID : u32 = 385u32 ; const NAME : & 'static str = "TUNNEL" ; const EXTRA_CRC : u8 = 147u8 ; const ENCODED_LEN : usize = 133usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . payload_type = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavTunnelPayloadType" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . payload_length = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . payload_type as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . payload_length) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGHRES_IMU_DATA { pub time_usec : u64 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub xmag : f32 , pub ymag : f32 , pub zmag : f32 , pub abs_pressure : f32 , pub diff_pressure : f32 , pub pressure_alt : f32 , pub temperature : f32 , pub fields_updated : HighresImuUpdatedFlags , } impl HIGHRES_IMU_DATA { pub const ENCODED_LEN : usize = 62usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , xmag : 0.0_f32 , ymag : 0.0_f32 , zmag : 0.0_f32 , abs_pressure : 0.0_f32 , diff_pressure : 0.0_f32 , pressure_alt : 0.0_f32 , temperature : 0.0_f32 , fields_updated : HighresImuUpdatedFlags :: DEFAULT , } ; } impl Default for HIGHRES_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGHRES_IMU_DATA { type Message = MavMessage ; const ID : u32 = 105u32 ; const NAME : & 'static str = "HIGHRES_IMU" ; const EXTRA_CRC : u8 = 93u8 ; const ENCODED_LEN : usize = 62usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . xmag = buf . get_f32_le () ; __struct . ymag = buf . get_f32_le () ; __struct . zmag = buf . get_f32_le () ; __struct . abs_pressure = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . pressure_alt = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . fields_updated = HighresImuUpdatedFlags :: from_bits (tmp & HighresImuUpdatedFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HighresImuUpdatedFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . xmag) ; __tmp . put_f32_le (self . ymag) ; __tmp . put_f32_le (self . zmag) ; __tmp . put_f32_le (self . abs_pressure) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . pressure_alt) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u16_le (self . fields_updated . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_GPS_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub vn : i16 , pub ve : i16 , pub vd : i16 , pub cog : u16 , pub fix_type : u8 , pub satellites_visible : u8 , } impl HIL_GPS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , vn : 0_i16 , ve : 0_i16 , vd : 0_i16 , cog : 0_u16 , fix_type : 0_u8 , satellites_visible : 0_u8 , } ; } impl Default for HIL_GPS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_GPS_DATA { type Message = MavMessage ; const ID : u32 = 113u32 ; const NAME : & 'static str = "HIL_GPS" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . vn = buf . get_i16_le () ; __struct . ve = buf . get_i16_le () ; __struct . vd = buf . get_i16_le () ; __struct . cog = buf . get_u16_le () ; __struct . fix_type = buf . get_u8 () ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_i16_le (self . vn) ; __tmp . put_i16_le (self . ve) ; __tmp . put_i16_le (self . vd) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { pub operator_latitude : i32 , pub operator_longitude : i32 , pub operator_altitude_geo : f32 , pub timestamp : u32 , pub target_system : u8 , pub target_component : u8 , } impl OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { operator_latitude : 0_i32 , operator_longitude : 0_i32 , operator_altitude_geo : 0.0_f32 , timestamp : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { type Message = MavMessage ; const ID : u32 = 12919u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SYSTEM_UPDATE" ; const EXTRA_CRC : u8 = 7u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . operator_latitude = buf . get_i32_le () ; __struct . operator_longitude = buf . get_i32_le () ; __struct . operator_altitude_geo = buf . get_f32_le () ; __struct . timestamp = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . operator_latitude) ; __tmp . put_i32_le (self . operator_longitude) ; __tmp . put_f32_le (self . operator_altitude_geo) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIDEO_STREAM_STATUS_DATA { pub framerate : f32 , pub bitrate : u32 , pub flags : VideoStreamStatusFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub hfov : u16 , pub stream_id : u8 , } impl VIDEO_STREAM_STATUS_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , flags : VideoStreamStatusFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , hfov : 0_u16 , stream_id : 0_u8 , } ; } impl Default for VIDEO_STREAM_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIDEO_STREAM_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 270u32 ; const NAME : & 'static str = "VIDEO_STREAM_STATUS" ; const EXTRA_CRC : u8 = 59u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamStatusFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . hfov = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . flags as u16) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u16_le (self . hfov) ; __tmp . put_u8 (self . stream_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAMED_VALUE_INT_DATA { pub time_boot_ms : u32 , pub value : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl NAMED_VALUE_INT_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0_i32 , name : [0_u8 ; 10usize] , } ; } impl Default for NAMED_VALUE_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAMED_VALUE_INT_DATA { type Message = MavMessage ; const ID : u32 = 252u32 ; const NAME : & 'static str = "NAMED_VALUE_INT" ; const EXTRA_CRC : u8 = 44u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_i32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . value) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ACK_DATA { pub target_system : u8 , pub target_component : u8 , pub mavtype : MavMissionResult , } impl MISSION_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , mavtype : MavMissionResult :: DEFAULT , } ; } impl Default for MISSION_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ACK_DATA { type Message = MavMessage ; const ID : u32 = 47u32 ; const NAME : & 'static str = "MISSION_ACK" ; const EXTRA_CRC : u8 = 153u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMissionResult" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . mavtype as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA_TRANSMISSION_HANDSHAKE_DATA { pub size : u32 , pub width : u16 , pub height : u16 , pub packets : u16 , pub mavtype : MavlinkDataStreamType , pub payload : u8 , pub jpg_quality : u8 , } impl DATA_TRANSMISSION_HANDSHAKE_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { size : 0_u32 , width : 0_u16 , height : 0_u16 , packets : 0_u16 , mavtype : MavlinkDataStreamType :: DEFAULT , payload : 0_u8 , jpg_quality : 0_u8 , } ; } impl Default for DATA_TRANSMISSION_HANDSHAKE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA_TRANSMISSION_HANDSHAKE_DATA { type Message = MavMessage ; const ID : u32 = 130u32 ; const NAME : & 'static str = "DATA_TRANSMISSION_HANDSHAKE" ; const EXTRA_CRC : u8 = 29u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . size = buf . get_u32_le () ; __struct . width = buf . get_u16_le () ; __struct . height = buf . get_u16_le () ; __struct . packets = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavlinkDataStreamType" , value : tmp as u32 }) ? ; __struct . payload = buf . get_u8 () ; __struct . jpg_quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . size) ; __tmp . put_u16_le (self . width) ; __tmp . put_u16_le (self . height) ; __tmp . put_u16_le (self . packets) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . payload) ; __tmp . put_u8 (self . jpg_quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_FOV_STATUS_DATA { pub time_boot_ms : u32 , pub lat_camera : i32 , pub lon_camera : i32 , pub alt_camera : i32 , pub lat_image : i32 , pub lon_image : i32 , pub alt_image : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub hfov : f32 , pub vfov : f32 , } impl CAMERA_FOV_STATUS_DATA { pub const ENCODED_LEN : usize = 52usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_camera : 0_i32 , lon_camera : 0_i32 , alt_camera : 0_i32 , lat_image : 0_i32 , lon_image : 0_i32 , alt_image : 0_i32 , q : [0.0_f32 ; 4usize] , hfov : 0.0_f32 , vfov : 0.0_f32 , } ; } impl Default for CAMERA_FOV_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_FOV_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 271u32 ; const NAME : & 'static str = "CAMERA_FOV_STATUS" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 52usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_camera = buf . get_i32_le () ; __struct . lon_camera = buf . get_i32_le () ; __struct . alt_camera = buf . get_i32_le () ; __struct . lat_image = buf . get_i32_le () ; __struct . lon_image = buf . get_i32_le () ; __struct . alt_image = buf . get_i32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . hfov = buf . get_f32_le () ; __struct . vfov = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_camera) ; __tmp . put_i32_le (self . lon_camera) ; __tmp . put_i32_le (self . alt_camera) ; __tmp . put_i32_le (self . lat_image) ; __tmp . put_i32_le (self . lon_image) ; __tmp . put_i32_le (self . alt_image) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . hfov) ; __tmp . put_f32_le (self . vfov) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MESSAGE_INTERVAL_DATA { pub interval_us : i32 , pub message_id : u16 , } impl MESSAGE_INTERVAL_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { interval_us : 0_i32 , message_id : 0_u16 , } ; } impl Default for MESSAGE_INTERVAL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MESSAGE_INTERVAL_DATA { type Message = MavMessage ; const ID : u32 = 244u32 ; const NAME : & 'static str = "MESSAGE_INTERVAL" ; const EXTRA_CRC : u8 = 95u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . interval_us = buf . get_i32_le () ; __struct . message_id = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . interval_us) ; __tmp . put_u16_le (self . message_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_LIST_DATA { pub start : u16 , pub end : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start : 0_u16 , end : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 117u32 ; const NAME : & 'static str = "LOG_REQUEST_LIST" ; const EXTRA_CRC : u8 = 128u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start = buf . get_u16_le () ; __struct . end = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . start) ; __tmp . put_u16_le (self . end) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_SETTINGS_DATA { pub time_boot_ms : u32 , pub mode_id : CameraMode , } impl CAMERA_SETTINGS_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , mode_id : CameraMode :: DEFAULT , } ; } impl Default for CAMERA_SETTINGS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_SETTINGS_DATA { type Message = MavMessage ; const ID : u32 = 260u32 ; const NAME : & 'static str = "CAMERA_SETTINGS" ; const EXTRA_CRC : u8 = 146u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . mode_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraMode" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u8 (self . mode_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SIM_STATE_DATA { pub q1 : f32 , pub q2 : f32 , pub q3 : f32 , pub q4 : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub lat : f32 , pub lon : f32 , pub alt : f32 , pub std_dev_horz : f32 , pub std_dev_vert : f32 , pub vn : f32 , pub ve : f32 , pub vd : f32 , } impl SIM_STATE_DATA { pub const ENCODED_LEN : usize = 84usize ; pub const DEFAULT : Self = Self { q1 : 0.0_f32 , q2 : 0.0_f32 , q3 : 0.0_f32 , q4 : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , lat : 0.0_f32 , lon : 0.0_f32 , alt : 0.0_f32 , std_dev_horz : 0.0_f32 , std_dev_vert : 0.0_f32 , vn : 0.0_f32 , ve : 0.0_f32 , vd : 0.0_f32 , } ; } impl Default for SIM_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SIM_STATE_DATA { type Message = MavMessage ; const ID : u32 = 108u32 ; const NAME : & 'static str = "SIM_STATE" ; const EXTRA_CRC : u8 = 32u8 ; const ENCODED_LEN : usize = 84usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . q1 = buf . get_f32_le () ; __struct . q2 = buf . get_f32_le () ; __struct . q3 = buf . get_f32_le () ; __struct . q4 = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . lat = buf . get_f32_le () ; __struct . lon = buf . get_f32_le () ; __struct . alt = buf . get_f32_le () ; __struct . std_dev_horz = buf . get_f32_le () ; __struct . std_dev_vert = buf . get_f32_le () ; __struct . vn = buf . get_f32_le () ; __struct . ve = buf . get_f32_le () ; __struct . vd = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . q1) ; __tmp . put_f32_le (self . q2) ; __tmp . put_f32_le (self . q3) ; __tmp . put_f32_le (self . q4) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . lat) ; __tmp . put_f32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . std_dev_horz) ; __tmp . put_f32_le (self . std_dev_vert) ; __tmp . put_f32_le (self . vn) ; __tmp . put_f32_le (self . ve) ; __tmp . put_f32_le (self . vd) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_DATA_DATA { pub lat : i32 , pub lon : i32 , pub grid_spacing : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [i16 ; 16] , pub gridbit : u8 , } impl TERRAIN_DATA_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , grid_spacing : 0_u16 , data : [0_i16 ; 16usize] , gridbit : 0_u8 , } ; } impl Default for TERRAIN_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_DATA_DATA { type Message = MavMessage ; const ID : u32 = 134u32 ; const NAME : & 'static str = "TERRAIN_DATA" ; const EXTRA_CRC : u8 = 229u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . grid_spacing = buf . get_u16_le () ; for v in & mut __struct . data { let val = buf . get_i16_le () ; * v = val ; } __struct . gridbit = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . grid_spacing) ; for val in & self . data { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . gridbit) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SYSTEM_DATA { pub operator_latitude : i32 , pub operator_longitude : i32 , pub area_ceiling : f32 , pub area_floor : f32 , pub operator_altitude_geo : f32 , pub timestamp : u32 , pub area_count : u16 , pub area_radius : u16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub operator_location_type : MavOdidOperatorLocationType , pub classification_type : MavOdidClassificationType , pub category_eu : MavOdidCategoryEu , pub class_eu : MavOdidClassEu , } impl OPEN_DRONE_ID_SYSTEM_DATA { pub const ENCODED_LEN : usize = 54usize ; pub const DEFAULT : Self = Self { operator_latitude : 0_i32 , operator_longitude : 0_i32 , area_ceiling : 0.0_f32 , area_floor : 0.0_f32 , operator_altitude_geo : 0.0_f32 , timestamp : 0_u32 , area_count : 0_u16 , area_radius : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , operator_location_type : MavOdidOperatorLocationType :: DEFAULT , classification_type : MavOdidClassificationType :: DEFAULT , category_eu : MavOdidCategoryEu :: DEFAULT , class_eu : MavOdidClassEu :: DEFAULT , } ; } impl Default for OPEN_DRONE_ID_SYSTEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SYSTEM_DATA { type Message = MavMessage ; const ID : u32 = 12904u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SYSTEM" ; const EXTRA_CRC : u8 = 77u8 ; const ENCODED_LEN : usize = 54usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . operator_latitude = buf . get_i32_le () ; __struct . operator_longitude = buf . get_i32_le () ; __struct . area_ceiling = buf . get_f32_le () ; __struct . area_floor = buf . get_f32_le () ; __struct . operator_altitude_geo = buf . get_f32_le () ; __struct . timestamp = buf . get_u32_le () ; __struct . area_count = buf . get_u16_le () ; __struct . area_radius = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . operator_location_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidOperatorLocationType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . classification_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidClassificationType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . category_eu = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidCategoryEu" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . class_eu = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidClassEu" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . operator_latitude) ; __tmp . put_i32_le (self . operator_longitude) ; __tmp . put_f32_le (self . area_ceiling) ; __tmp . put_f32_le (self . area_floor) ; __tmp . put_f32_le (self . operator_altitude_geo) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u16_le (self . area_count) ; __tmp . put_u16_le (self . area_radius) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . operator_location_type as u8) ; __tmp . put_u8 (self . classification_type as u8) ; __tmp . put_u8 (self . category_eu as u8) ; __tmp . put_u8 (self . class_eu as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPTICAL_FLOW_RAD_DATA { pub time_usec : u64 , pub integration_time_us : u32 , pub integrated_x : f32 , pub integrated_y : f32 , pub integrated_xgyro : f32 , pub integrated_ygyro : f32 , pub integrated_zgyro : f32 , pub time_delta_distance_us : u32 , pub distance : f32 , pub temperature : i16 , pub sensor_id : u8 , pub quality : u8 , } impl OPTICAL_FLOW_RAD_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , integration_time_us : 0_u32 , integrated_x : 0.0_f32 , integrated_y : 0.0_f32 , integrated_xgyro : 0.0_f32 , integrated_ygyro : 0.0_f32 , integrated_zgyro : 0.0_f32 , time_delta_distance_us : 0_u32 , distance : 0.0_f32 , temperature : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for OPTICAL_FLOW_RAD_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPTICAL_FLOW_RAD_DATA { type Message = MavMessage ; const ID : u32 = 106u32 ; const NAME : & 'static str = "OPTICAL_FLOW_RAD" ; const EXTRA_CRC : u8 = 138u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . integration_time_us = buf . get_u32_le () ; __struct . integrated_x = buf . get_f32_le () ; __struct . integrated_y = buf . get_f32_le () ; __struct . integrated_xgyro = buf . get_f32_le () ; __struct . integrated_ygyro = buf . get_f32_le () ; __struct . integrated_zgyro = buf . get_f32_le () ; __struct . time_delta_distance_us = buf . get_u32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . integration_time_us) ; __tmp . put_f32_le (self . integrated_x) ; __tmp . put_f32_le (self . integrated_y) ; __tmp . put_f32_le (self . integrated_xgyro) ; __tmp . put_f32_le (self . integrated_ygyro) ; __tmp . put_f32_le (self . integrated_zgyro) ; __tmp . put_u32_le (self . time_delta_distance_us) ; __tmp . put_f32_le (self . distance) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WINCH_STATUS_DATA { pub time_usec : u64 , pub line_length : f32 , pub speed : f32 , pub tension : f32 , pub voltage : f32 , pub current : f32 , pub status : MavWinchStatusFlag , pub temperature : i16 , } impl WINCH_STATUS_DATA { pub const ENCODED_LEN : usize = 34usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , line_length : 0.0_f32 , speed : 0.0_f32 , tension : 0.0_f32 , voltage : 0.0_f32 , current : 0.0_f32 , status : MavWinchStatusFlag :: DEFAULT , temperature : 0_i16 , } ; } impl Default for WINCH_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WINCH_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 9005u32 ; const NAME : & 'static str = "WINCH_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 34usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . line_length = buf . get_f32_le () ; __struct . speed = buf . get_f32_le () ; __struct . tension = buf . get_f32_le () ; __struct . voltage = buf . get_f32_le () ; __struct . current = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . status = MavWinchStatusFlag :: from_bits (tmp & MavWinchStatusFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavWinchStatusFlag" , value : tmp as u32 }) ? ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . line_length) ; __tmp . put_f32_le (self . speed) ; __tmp . put_f32_le (self . tension) ; __tmp . put_f32_le (self . voltage) ; __tmp . put_f32_le (self . current) ; __tmp . put_u32_le (self . status . bits ()) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU_DATA { type Message = MavMessage ; const ID : u32 = 26u32 ; const NAME : & 'static str = "SCALED_IMU" ; const EXTRA_CRC : u8 = 170u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVIONIX_ADSB_OUT_CFG_DATA { pub ICAO : u32 , pub stallSpeed : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 9] , pub emitterType : AdsbEmitterType , pub aircraftSize : UavionixAdsbOutCfgAircraftSize , pub gpsOffsetLat : UavionixAdsbOutCfgGpsOffsetLat , pub gpsOffsetLon : UavionixAdsbOutCfgGpsOffsetLon , pub rfSelect : UavionixAdsbOutRfSelect , } impl UAVIONIX_ADSB_OUT_CFG_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { ICAO : 0_u32 , stallSpeed : 0_u16 , callsign : [0_u8 ; 9usize] , emitterType : AdsbEmitterType :: DEFAULT , aircraftSize : UavionixAdsbOutCfgAircraftSize :: DEFAULT , gpsOffsetLat : UavionixAdsbOutCfgGpsOffsetLat :: DEFAULT , gpsOffsetLon : UavionixAdsbOutCfgGpsOffsetLon :: DEFAULT , rfSelect : UavionixAdsbOutRfSelect :: DEFAULT , } ; } impl Default for UAVIONIX_ADSB_OUT_CFG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVIONIX_ADSB_OUT_CFG_DATA { type Message = MavMessage ; const ID : u32 = 10001u32 ; const NAME : & 'static str = "UAVIONIX_ADSB_OUT_CFG" ; const EXTRA_CRC : u8 = 209u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ICAO = buf . get_u32_le () ; __struct . stallSpeed = buf . get_u16_le () ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . emitterType = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbEmitterType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . aircraftSize = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutCfgAircraftSize" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . gpsOffsetLat = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutCfgGpsOffsetLat" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . gpsOffsetLon = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutCfgGpsOffsetLon" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . rfSelect = UavionixAdsbOutRfSelect :: from_bits (tmp & UavionixAdsbOutRfSelect :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UavionixAdsbOutRfSelect" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ICAO) ; __tmp . put_u16_le (self . stallSpeed) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . emitterType as u8) ; __tmp . put_u8 (self . aircraftSize as u8) ; __tmp . put_u8 (self . gpsOffsetLat as u8) ; __tmp . put_u8 (self . gpsOffsetLon as u8) ; __tmp . put_u8 (self . rfSelect . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { pub flags : GimbalManagerFlags , pub pitch : f32 , pub yaw : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , pitch : 0.0_f32 , yaw : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 288u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_MANUAL_CONTROL" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_HOME_POSITION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub approach_x : f32 , pub approach_y : f32 , pub approach_z : f32 , pub target_system : u8 , } impl SET_HOME_POSITION_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , approach_x : 0.0_f32 , approach_y : 0.0_f32 , approach_z : 0.0_f32 , target_system : 0_u8 , } ; } impl Default for SET_HOME_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_HOME_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 243u32 ; const NAME : & 'static str = "SET_HOME_POSITION" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . approach_x = buf . get_f32_le () ; __struct . approach_y = buf . get_f32_le () ; __struct . approach_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . approach_x) ; __tmp . put_f32_le (self . approach_y) ; __tmp . put_f32_le (self . approach_z) ; __tmp . put_u8 (self . target_system) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_CLEAR_ALL_DATA { pub target_system : u8 , pub target_component : u8 , } impl MISSION_CLEAR_ALL_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_CLEAR_ALL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_CLEAR_ALL_DATA { type Message = MavMessage ; const ID : u32 = 45u32 ; const NAME : & 'static str = "MISSION_CLEAR_ALL" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_OPERATOR_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub operator_id_type : MavOdidOperatorIdType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub operator_id : [u8 ; 20] , } impl OPEN_DRONE_ID_OPERATOR_ID_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , operator_id_type : MavOdidOperatorIdType :: DEFAULT , operator_id : [0_u8 ; 20usize] , } ; } impl Default for OPEN_DRONE_ID_OPERATOR_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_OPERATOR_ID_DATA { type Message = MavMessage ; const ID : u32 = 12905u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_OPERATOR_ID" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . operator_id_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidOperatorIdType" , value : tmp as u32 }) ? ; for v in & mut __struct . operator_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . operator_id_type as u8) ; for val in & self . operator_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_CANCEL_DATA { pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , } impl COMMAND_CANCEL_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for COMMAND_CANCEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_CANCEL_DATA { type Message = MavMessage ; const ID : u32 = 80u32 ; const NAME : & 'static str = "COMMAND_CANCEL" ; const EXTRA_CRC : u8 = 14u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_COUNT_DATA { pub count : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_COUNT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { count : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_COUNT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_COUNT_DATA { type Message = MavMessage ; const ID : u32 = 44u32 ; const NAME : & 'static str = "MISSION_COUNT" ; const EXTRA_CRC : u8 = 221u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . count = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . count) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIFI_CONFIG_AP_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub ssid : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub password : [u8 ; 64] , } impl WIFI_CONFIG_AP_DATA { pub const ENCODED_LEN : usize = 96usize ; pub const DEFAULT : Self = Self { ssid : [0_u8 ; 32usize] , password : [0_u8 ; 64usize] , } ; } impl Default for WIFI_CONFIG_AP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIFI_CONFIG_AP_DATA { type Message = MavMessage ; const ID : u32 = 299u32 ; const NAME : & 'static str = "WIFI_CONFIG_AP" ; const EXTRA_CRC : u8 = 19u8 ; const ENCODED_LEN : usize = 96usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . ssid { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . password { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . ssid { __tmp . put_u8 (* val) ; } for val in & self . password { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MANUAL_CONTROL_DATA { pub x : i16 , pub y : i16 , pub z : i16 , pub r : i16 , pub buttons : u16 , pub target : u8 , } impl MANUAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 11usize ; pub const DEFAULT : Self = Self { x : 0_i16 , y : 0_i16 , z : 0_i16 , r : 0_i16 , buttons : 0_u16 , target : 0_u8 , } ; } impl Default for MANUAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MANUAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 69u32 ; const NAME : & 'static str = "MANUAL_CONTROL" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 11usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . x = buf . get_i16_le () ; __struct . y = buf . get_i16_le () ; __struct . z = buf . get_i16_le () ; __struct . r = buf . get_i16_le () ; __struct . buttons = buf . get_u16_le () ; __struct . target = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . x) ; __tmp . put_i16_le (self . y) ; __tmp . put_i16_le (self . z) ; __tmp . put_i16_le (self . r) ; __tmp . put_u16_le (self . buttons) ; __tmp . put_u8 (self . target) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FILE_TRANSFER_PROTOCOL_DATA { pub target_network : u8 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 251] , } impl FILE_TRANSFER_PROTOCOL_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { target_network : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , payload : [0_u8 ; 251usize] , } ; } impl Default for FILE_TRANSFER_PROTOCOL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FILE_TRANSFER_PROTOCOL_DATA { type Message = MavMessage ; const ID : u32 = 110u32 ; const NAME : & 'static str = "FILE_TRANSFER_PROTOCOL" ; const EXTRA_CRC : u8 = 84u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_network = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_network) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_STATUS_DATA { pub time_boot_ms : u32 , pub flags : GimbalManagerFlags , pub gimbal_device_id : u8 , pub primary_control_sysid : u8 , pub primary_control_compid : u8 , pub secondary_control_sysid : u8 , pub secondary_control_compid : u8 , } impl GIMBAL_MANAGER_STATUS_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , flags : GimbalManagerFlags :: DEFAULT , gimbal_device_id : 0_u8 , primary_control_sysid : 0_u8 , primary_control_compid : 0_u8 , secondary_control_sysid : 0_u8 , secondary_control_compid : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 281u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_STATUS" ; const EXTRA_CRC : u8 = 48u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . gimbal_device_id = buf . get_u8 () ; __struct . primary_control_sysid = buf . get_u8 () ; __struct . primary_control_compid = buf . get_u8 () ; __struct . secondary_control_sysid = buf . get_u8 () ; __struct . secondary_control_compid = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_u8 (self . gimbal_device_id) ; __tmp . put_u8 (self . primary_control_sysid) ; __tmp . put_u8 (self . primary_control_compid) ; __tmp . put_u8 (self . secondary_control_sysid) ; __tmp . put_u8 (self . secondary_control_compid) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_INFORMATION_DATA { pub uid : u64 , pub time_boot_ms : u32 , pub firmware_version : u32 , pub hardware_version : u32 , pub roll_min : f32 , pub roll_max : f32 , pub pitch_min : f32 , pub pitch_max : f32 , pub yaw_min : f32 , pub yaw_max : f32 , pub cap_flags : GimbalDeviceCapFlags , pub custom_cap_flags : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vendor_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub model_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub custom_name : [u8 ; 32] , } impl GIMBAL_DEVICE_INFORMATION_DATA { pub const ENCODED_LEN : usize = 144usize ; pub const DEFAULT : Self = Self { uid : 0_u64 , time_boot_ms : 0_u32 , firmware_version : 0_u32 , hardware_version : 0_u32 , roll_min : 0.0_f32 , roll_max : 0.0_f32 , pitch_min : 0.0_f32 , pitch_max : 0.0_f32 , yaw_min : 0.0_f32 , yaw_max : 0.0_f32 , cap_flags : GimbalDeviceCapFlags :: DEFAULT , custom_cap_flags : 0_u16 , vendor_name : [0_u8 ; 32usize] , model_name : [0_u8 ; 32usize] , custom_name : [0_u8 ; 32usize] , } ; } impl Default for GIMBAL_DEVICE_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 283u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_INFORMATION" ; const EXTRA_CRC : u8 = 74u8 ; const ENCODED_LEN : usize = 144usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . uid = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . firmware_version = buf . get_u32_le () ; __struct . hardware_version = buf . get_u32_le () ; __struct . roll_min = buf . get_f32_le () ; __struct . roll_max = buf . get_f32_le () ; __struct . pitch_min = buf . get_f32_le () ; __struct . pitch_max = buf . get_f32_le () ; __struct . yaw_min = buf . get_f32_le () ; __struct . yaw_max = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . cap_flags = GimbalDeviceCapFlags :: from_bits (tmp & GimbalDeviceCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceCapFlags" , value : tmp as u32 }) ? ; __struct . custom_cap_flags = buf . get_u16_le () ; for v in & mut __struct . vendor_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . model_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . custom_name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . uid) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . firmware_version) ; __tmp . put_u32_le (self . hardware_version) ; __tmp . put_f32_le (self . roll_min) ; __tmp . put_f32_le (self . roll_max) ; __tmp . put_f32_le (self . pitch_min) ; __tmp . put_f32_le (self . pitch_max) ; __tmp . put_f32_le (self . yaw_min) ; __tmp . put_f32_le (self . yaw_max) ; __tmp . put_u16_le (self . cap_flags . bits ()) ; __tmp . put_u16_le (self . custom_cap_flags) ; for val in & self . vendor_name { __tmp . put_u8 (* val) ; } for val in & self . model_name { __tmp . put_u8 (* val) ; } for val in & self . custom_name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HOME_POSITION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub approach_x : f32 , pub approach_y : f32 , pub approach_z : f32 , } impl HOME_POSITION_DATA { pub const ENCODED_LEN : usize = 52usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , approach_x : 0.0_f32 , approach_y : 0.0_f32 , approach_z : 0.0_f32 , } ; } impl Default for HOME_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HOME_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 242u32 ; const NAME : & 'static str = "HOME_POSITION" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 52usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . approach_x = buf . get_f32_le () ; __struct . approach_y = buf . get_f32_le () ; __struct . approach_z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . approach_x) ; __tmp . put_f32_le (self . approach_y) ; __tmp . put_f32_le (self . approach_z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_SPEED_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , } impl VISION_SPEED_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , } ; } impl Default for VISION_SPEED_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_SPEED_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 103u32 ; const NAME : & 'static str = "VISION_SPEED_ESTIMATE" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FLIGHT_INFORMATION_DATA { pub arming_time_utc : u64 , pub takeoff_time_utc : u64 , pub flight_uuid : u64 , pub time_boot_ms : u32 , } impl FLIGHT_INFORMATION_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { arming_time_utc : 0_u64 , takeoff_time_utc : 0_u64 , flight_uuid : 0_u64 , time_boot_ms : 0_u32 , } ; } impl Default for FLIGHT_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FLIGHT_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 264u32 ; const NAME : & 'static str = "FLIGHT_INFORMATION" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . arming_time_utc = buf . get_u64_le () ; __struct . takeoff_time_utc = buf . get_u64_le () ; __struct . flight_uuid = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . arming_time_utc) ; __tmp . put_u64_le (self . takeoff_time_utc) ; __tmp . put_u64_le (self . flight_uuid) ; __tmp . put_u32_le (self . time_boot_ms) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POWER_STATUS_DATA { pub Vcc : u16 , pub Vservo : u16 , pub flags : MavPowerStatus , } impl POWER_STATUS_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { Vcc : 0_u16 , Vservo : 0_u16 , flags : MavPowerStatus :: DEFAULT , } ; } impl Default for POWER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POWER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 125u32 ; const NAME : & 'static str = "POWER_STATUS" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . Vcc = buf . get_u16_le () ; __struct . Vservo = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = MavPowerStatus :: from_bits (tmp & MavPowerStatus :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavPowerStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . Vcc) ; __tmp . put_u16_le (self . Vservo) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_END_DATA { pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_END_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_END_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_END_DATA { type Message = MavMessage ; const ID : u32 = 122u32 ; const NAME : & 'static str = "LOG_REQUEST_END" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE2_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE2_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE2_DATA { type Message = MavMessage ; const ID : u32 = 137u32 ; const NAME : & 'static str = "SCALED_PRESSURE2" ; const EXTRA_CRC : u8 = 195u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CELLULAR_CONFIG_DATA { pub enable_lte : u8 , pub enable_pin : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pin : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub new_pin : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub apn : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub puk : [u8 ; 16] , pub roaming : u8 , pub response : CellularConfigResponse , } impl CELLULAR_CONFIG_DATA { pub const ENCODED_LEN : usize = 84usize ; pub const DEFAULT : Self = Self { enable_lte : 0_u8 , enable_pin : 0_u8 , pin : [0_u8 ; 16usize] , new_pin : [0_u8 ; 16usize] , apn : [0_u8 ; 32usize] , puk : [0_u8 ; 16usize] , roaming : 0_u8 , response : CellularConfigResponse :: DEFAULT , } ; } impl Default for CELLULAR_CONFIG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CELLULAR_CONFIG_DATA { type Message = MavMessage ; const ID : u32 = 336u32 ; const NAME : & 'static str = "CELLULAR_CONFIG" ; const EXTRA_CRC : u8 = 245u8 ; const ENCODED_LEN : usize = 84usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . enable_lte = buf . get_u8 () ; __struct . enable_pin = buf . get_u8 () ; for v in & mut __struct . pin { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . new_pin { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . apn { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . puk { let val = buf . get_u8 () ; * v = val ; } __struct . roaming = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . response = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularConfigResponse" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . enable_lte) ; __tmp . put_u8 (self . enable_pin) ; for val in & self . pin { __tmp . put_u8 (* val) ; } for val in & self . new_pin { __tmp . put_u8 (* val) ; } for val in & self . apn { __tmp . put_u8 (* val) ; } for val in & self . puk { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . roaming) ; __tmp . put_u8 (self . response as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AIS_VESSEL_DATA { pub MMSI : u32 , pub lat : i32 , pub lon : i32 , pub COG : u16 , pub heading : u16 , pub velocity : u16 , pub dimension_bow : u16 , pub dimension_stern : u16 , pub tslc : u16 , pub flags : AisFlags , pub turn_rate : i8 , pub navigational_status : AisNavStatus , pub mavtype : AisType , pub dimension_port : u8 , pub dimension_starboard : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 7] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 20] , } impl AIS_VESSEL_DATA { pub const ENCODED_LEN : usize = 58usize ; pub const DEFAULT : Self = Self { MMSI : 0_u32 , lat : 0_i32 , lon : 0_i32 , COG : 0_u16 , heading : 0_u16 , velocity : 0_u16 , dimension_bow : 0_u16 , dimension_stern : 0_u16 , tslc : 0_u16 , flags : AisFlags :: DEFAULT , turn_rate : 0_i8 , navigational_status : AisNavStatus :: DEFAULT , mavtype : AisType :: DEFAULT , dimension_port : 0_u8 , dimension_starboard : 0_u8 , callsign : [0_u8 ; 7usize] , name : [0_u8 ; 20usize] , } ; } impl Default for AIS_VESSEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AIS_VESSEL_DATA { type Message = MavMessage ; const ID : u32 = 301u32 ; const NAME : & 'static str = "AIS_VESSEL" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 58usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . MMSI = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . COG = buf . get_u16_le () ; __struct . heading = buf . get_u16_le () ; __struct . velocity = buf . get_u16_le () ; __struct . dimension_bow = buf . get_u16_le () ; __struct . dimension_stern = buf . get_u16_le () ; __struct . tslc = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = AisFlags :: from_bits (tmp & AisFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AisFlags" , value : tmp as u32 }) ? ; __struct . turn_rate = buf . get_i8 () ; let tmp = buf . get_u8 () ; __struct . navigational_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AisNavStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AisType" , value : tmp as u32 }) ? ; __struct . dimension_port = buf . get_u8 () ; __struct . dimension_starboard = buf . get_u8 () ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . MMSI) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . COG) ; __tmp . put_u16_le (self . heading) ; __tmp . put_u16_le (self . velocity) ; __tmp . put_u16_le (self . dimension_bow) ; __tmp . put_u16_le (self . dimension_stern) ; __tmp . put_u16_le (self . tslc) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_i8 (self . turn_rate) ; __tmp . put_u8 (self . navigational_status as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . dimension_port) ; __tmp . put_u8 (self . dimension_starboard) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAV_CONTROLLER_OUTPUT_DATA { pub nav_roll : f32 , pub nav_pitch : f32 , pub alt_error : f32 , pub aspd_error : f32 , pub xtrack_error : f32 , pub nav_bearing : i16 , pub target_bearing : i16 , pub wp_dist : u16 , } impl NAV_CONTROLLER_OUTPUT_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { nav_roll : 0.0_f32 , nav_pitch : 0.0_f32 , alt_error : 0.0_f32 , aspd_error : 0.0_f32 , xtrack_error : 0.0_f32 , nav_bearing : 0_i16 , target_bearing : 0_i16 , wp_dist : 0_u16 , } ; } impl Default for NAV_CONTROLLER_OUTPUT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAV_CONTROLLER_OUTPUT_DATA { type Message = MavMessage ; const ID : u32 = 62u32 ; const NAME : & 'static str = "NAV_CONTROLLER_OUTPUT" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . nav_roll = buf . get_f32_le () ; __struct . nav_pitch = buf . get_f32_le () ; __struct . alt_error = buf . get_f32_le () ; __struct . aspd_error = buf . get_f32_le () ; __struct . xtrack_error = buf . get_f32_le () ; __struct . nav_bearing = buf . get_i16_le () ; __struct . target_bearing = buf . get_i16_le () ; __struct . wp_dist = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . nav_roll) ; __tmp . put_f32_le (self . nav_pitch) ; __tmp . put_f32_le (self . alt_error) ; __tmp . put_f32_le (self . aspd_error) ; __tmp . put_f32_le (self . xtrack_error) ; __tmp . put_i16_le (self . nav_bearing) ; __tmp . put_i16_le (self . target_bearing) ; __tmp . put_u16_le (self . wp_dist) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RESOURCE_REQUEST_DATA { pub request_id : u8 , pub uri_type : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 120] , pub transfer_type : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage : [u8 ; 120] , } impl RESOURCE_REQUEST_DATA { pub const ENCODED_LEN : usize = 243usize ; pub const DEFAULT : Self = Self { request_id : 0_u8 , uri_type : 0_u8 , uri : [0_u8 ; 120usize] , transfer_type : 0_u8 , storage : [0_u8 ; 120usize] , } ; } impl Default for RESOURCE_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RESOURCE_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 142u32 ; const NAME : & 'static str = "RESOURCE_REQUEST" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 243usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u8 () ; __struct . uri_type = buf . get_u8 () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } __struct . transfer_type = buf . get_u8 () ; for v in & mut __struct . storage { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . request_id) ; __tmp . put_u8 (self . uri_type) ; for val in & self . uri { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . transfer_type) ; for val in & self . storage { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_SET_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , } impl PARAM_EXT_SET_DATA { pub const ENCODED_LEN : usize = 147usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , } ; } impl Default for PARAM_EXT_SET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_SET_DATA { type Message = MavMessage ; const ID : u32 = 323u32 ; const NAME : & 'static str = "PARAM_EXT_SET" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 147usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_IMAGE_CAPTURED_DATA { pub time_utc : u64 , pub time_boot_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub image_index : i32 , pub camera_id : u8 , pub capture_result : i8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub file_url : [u8 ; 205] , } impl CAMERA_IMAGE_CAPTURED_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { time_utc : 0_u64 , time_boot_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , q : [0.0_f32 ; 4usize] , image_index : 0_i32 , camera_id : 0_u8 , capture_result : 0_i8 , file_url : [0_u8 ; 205usize] , } ; } impl Default for CAMERA_IMAGE_CAPTURED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_IMAGE_CAPTURED_DATA { type Message = MavMessage ; const ID : u32 = 263u32 ; const NAME : & 'static str = "CAMERA_IMAGE_CAPTURED" ; const EXTRA_CRC : u8 = 133u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_utc = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . image_index = buf . get_i32_le () ; __struct . camera_id = buf . get_u8 () ; __struct . capture_result = buf . get_i8 () ; for v in & mut __struct . file_url { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_utc) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_i32_le (self . image_index) ; __tmp . put_u8 (self . camera_id) ; __tmp . put_i8 (self . capture_result) ; for val in & self . file_url { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_ACK_DATA { pub command : MavCmd , pub result : MavResult , } impl COMMAND_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { command : MavCmd :: DEFAULT , result : MavResult :: DEFAULT , } ; } impl Default for COMMAND_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_ACK_DATA { type Message = MavMessage ; const ID : u32 = 77u32 ; const NAME : & 'static str = "COMMAND_ACK" ; const EXTRA_CRC : u8 = 143u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavResult" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_SCALED_DATA { pub time_boot_ms : u32 , pub chan1_scaled : i16 , pub chan2_scaled : i16 , pub chan3_scaled : i16 , pub chan4_scaled : i16 , pub chan5_scaled : i16 , pub chan6_scaled : i16 , pub chan7_scaled : i16 , pub chan8_scaled : i16 , pub port : u8 , pub rssi : u8 , } impl RC_CHANNELS_SCALED_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_scaled : 0_i16 , chan2_scaled : 0_i16 , chan3_scaled : 0_i16 , chan4_scaled : 0_i16 , chan5_scaled : 0_i16 , chan6_scaled : 0_i16 , chan7_scaled : 0_i16 , chan8_scaled : 0_i16 , port : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_SCALED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_SCALED_DATA { type Message = MavMessage ; const ID : u32 = 34u32 ; const NAME : & 'static str = "RC_CHANNELS_SCALED" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_scaled = buf . get_i16_le () ; __struct . chan2_scaled = buf . get_i16_le () ; __struct . chan3_scaled = buf . get_i16_le () ; __struct . chan4_scaled = buf . get_i16_le () ; __struct . chan5_scaled = buf . get_i16_le () ; __struct . chan6_scaled = buf . get_i16_le () ; __struct . chan7_scaled = buf . get_i16_le () ; __struct . chan8_scaled = buf . get_i16_le () ; __struct . port = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . chan1_scaled) ; __tmp . put_i16_le (self . chan2_scaled) ; __tmp . put_i16_le (self . chan3_scaled) ; __tmp . put_i16_le (self . chan4_scaled) ; __tmp . put_i16_le (self . chan5_scaled) ; __tmp . put_i16_le (self . chan6_scaled) ; __tmp . put_i16_le (self . chan7_scaled) ; __tmp . put_i16_le (self . chan8_scaled) ; __tmp . put_u8 (self . port) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_yaw : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_yaw : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub command : [u16 ; 5] , pub valid_points : u8 , } impl TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { pub const ENCODED_LEN : usize = 239usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , pos_x : [0.0_f32 ; 5usize] , pos_y : [0.0_f32 ; 5usize] , pos_z : [0.0_f32 ; 5usize] , vel_x : [0.0_f32 ; 5usize] , vel_y : [0.0_f32 ; 5usize] , vel_z : [0.0_f32 ; 5usize] , acc_x : [0.0_f32 ; 5usize] , acc_y : [0.0_f32 ; 5usize] , acc_z : [0.0_f32 ; 5usize] , pos_yaw : [0.0_f32 ; 5usize] , vel_yaw : [0.0_f32 ; 5usize] , command : [0_u16 ; 5usize] , valid_points : 0_u8 , } ; } impl Default for TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { type Message = MavMessage ; const ID : u32 = 332u32 ; const NAME : & 'static str = "TRAJECTORY_REPRESENTATION_WAYPOINTS" ; const EXTRA_CRC : u8 = 236u8 ; const ENCODED_LEN : usize = 239usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . pos_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_yaw { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_yaw { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . command { let val = buf . get_u16_le () ; * v = val ; } __struct . valid_points = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . pos_x { __tmp . put_f32_le (* val) ; } for val in & self . pos_y { __tmp . put_f32_le (* val) ; } for val in & self . pos_z { __tmp . put_f32_le (* val) ; } for val in & self . vel_x { __tmp . put_f32_le (* val) ; } for val in & self . vel_y { __tmp . put_f32_le (* val) ; } for val in & self . vel_z { __tmp . put_f32_le (* val) ; } for val in & self . acc_x { __tmp . put_f32_le (* val) ; } for val in & self . acc_y { __tmp . put_f32_le (* val) ; } for val in & self . acc_z { __tmp . put_f32_le (* val) ; } for val in & self . pos_yaw { __tmp . put_f32_le (* val) ; } for val in & self . vel_yaw { __tmp . put_f32_le (* val) ; } for val in & self . command { __tmp . put_u16_le (* val) ; } __tmp . put_u8 (self . valid_points) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : f32 , pub y : f32 , pub z : f32 , pub seq : u16 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl MISSION_ITEM_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , seq : 0_u16 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for MISSION_ITEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_DATA { type Message = MavMessage ; const ID : u32 = 39u32 ; const NAME : & 'static str = "MISSION_ITEM" ; const EXTRA_CRC : u8 = 254u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . seq = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_LONG_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub param5 : f32 , pub param6 : f32 , pub param7 : f32 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub confirmation : u8 , } impl COMMAND_LONG_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , param5 : 0.0_f32 , param6 : 0.0_f32 , param7 : 0.0_f32 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , confirmation : 0_u8 , } ; } impl Default for COMMAND_LONG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_LONG_DATA { type Message = MavMessage ; const ID : u32 = 76u32 ; const NAME : & 'static str = "COMMAND_LONG" ; const EXTRA_CRC : u8 = 152u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . param5 = buf . get_f32_le () ; __struct . param6 = buf . get_f32_le () ; __struct . param7 = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . confirmation = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_f32_le (self . param5) ; __tmp . put_f32_le (self . param6) ; __tmp . put_f32_le (self . param7) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . confirmation) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_INT_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_INT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_INT_DATA { type Message = MavMessage ; const ID : u32 = 51u32 ; const NAME : & 'static str = "MISSION_REQUEST_INT" ; const EXTRA_CRC : u8 = 196u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_POSITION_INT_DATA { pub time_boot_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub hdg : u16 , } impl GLOBAL_POSITION_INT_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , hdg : 0_u16 , } ; } impl Default for GLOBAL_POSITION_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_POSITION_INT_DATA { type Message = MavMessage ; const ID : u32 = 33u32 ; const NAME : & 'static str = "GLOBAL_POSITION_INT" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . hdg = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . hdg) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ADSB_VEHICLE_DATA { pub ICAO_address : u32 , pub lat : i32 , pub lon : i32 , pub altitude : i32 , pub heading : u16 , pub hor_velocity : u16 , pub ver_velocity : i16 , pub flags : AdsbFlags , pub squawk : u16 , pub altitude_type : AdsbAltitudeType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 9] , pub emitter_type : AdsbEmitterType , pub tslc : u8 , } impl ADSB_VEHICLE_DATA { pub const ENCODED_LEN : usize = 38usize ; pub const DEFAULT : Self = Self { ICAO_address : 0_u32 , lat : 0_i32 , lon : 0_i32 , altitude : 0_i32 , heading : 0_u16 , hor_velocity : 0_u16 , ver_velocity : 0_i16 , flags : AdsbFlags :: DEFAULT , squawk : 0_u16 , altitude_type : AdsbAltitudeType :: DEFAULT , callsign : [0_u8 ; 9usize] , emitter_type : AdsbEmitterType :: DEFAULT , tslc : 0_u8 , } ; } impl Default for ADSB_VEHICLE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ADSB_VEHICLE_DATA { type Message = MavMessage ; const ID : u32 = 246u32 ; const NAME : & 'static str = "ADSB_VEHICLE" ; const EXTRA_CRC : u8 = 184u8 ; const ENCODED_LEN : usize = 38usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ICAO_address = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . heading = buf . get_u16_le () ; __struct . hor_velocity = buf . get_u16_le () ; __struct . ver_velocity = buf . get_i16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = AdsbFlags :: from_bits (tmp & AdsbFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AdsbFlags" , value : tmp as u32 }) ? ; __struct . squawk = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . altitude_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbAltitudeType" , value : tmp as u32 }) ? ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . emitter_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbEmitterType" , value : tmp as u32 }) ? ; __struct . tslc = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ICAO_address) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_u16_le (self . heading) ; __tmp . put_u16_le (self . hor_velocity) ; __tmp . put_i16_le (self . ver_velocity) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u16_le (self . squawk) ; __tmp . put_u8 (self . altitude_type as u8) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . emitter_type as u8) ; __tmp . put_u8 (self . tslc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_GPS_GLOBAL_ORIGIN_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub target_system : u8 , } impl SET_GPS_GLOBAL_ORIGIN_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , target_system : 0_u8 , } ; } impl Default for SET_GPS_GLOBAL_ORIGIN_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_GPS_GLOBAL_ORIGIN_DATA { type Message = MavMessage ; const ID : u32 = 48u32 ; const NAME : & 'static str = "SET_GPS_GLOBAL_ORIGIN" ; const EXTRA_CRC : u8 = 41u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . target_system = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_u8 (self . target_system) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_STATUS_DATA { pub satellites_visible : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_prn : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_used : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_elevation : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_azimuth : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_snr : [u8 ; 20] , } impl GPS_STATUS_DATA { pub const ENCODED_LEN : usize = 101usize ; pub const DEFAULT : Self = Self { satellites_visible : 0_u8 , satellite_prn : [0_u8 ; 20usize] , satellite_used : [0_u8 ; 20usize] , satellite_elevation : [0_u8 ; 20usize] , satellite_azimuth : [0_u8 ; 20usize] , satellite_snr : [0_u8 ; 20usize] , } ; } impl Default for GPS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 25u32 ; const NAME : & 'static str = "GPS_STATUS" ; const EXTRA_CRC : u8 = 23u8 ; const ENCODED_LEN : usize = 101usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . satellites_visible = buf . get_u8 () ; for v in & mut __struct . satellite_prn { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_used { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_elevation { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_azimuth { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_snr { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . satellites_visible) ; for val in & self . satellite_prn { __tmp . put_u8 (* val) ; } for val in & self . satellite_used { __tmp . put_u8 (* val) ; } for val in & self . satellite_elevation { __tmp . put_u8 (* val) ; } for val in & self . satellite_azimuth { __tmp . put_u8 (* val) ; } for val in & self . satellite_snr { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS2_RTK_DATA { pub time_last_baseline_ms : u32 , pub tow : u32 , pub baseline_a_mm : i32 , pub baseline_b_mm : i32 , pub baseline_c_mm : i32 , pub accuracy : u32 , pub iar_num_hypotheses : i32 , pub wn : u16 , pub rtk_receiver_id : u8 , pub rtk_health : u8 , pub rtk_rate : u8 , pub nsats : u8 , pub baseline_coords_type : RtkBaselineCoordinateSystem , } impl GPS2_RTK_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_last_baseline_ms : 0_u32 , tow : 0_u32 , baseline_a_mm : 0_i32 , baseline_b_mm : 0_i32 , baseline_c_mm : 0_i32 , accuracy : 0_u32 , iar_num_hypotheses : 0_i32 , wn : 0_u16 , rtk_receiver_id : 0_u8 , rtk_health : 0_u8 , rtk_rate : 0_u8 , nsats : 0_u8 , baseline_coords_type : RtkBaselineCoordinateSystem :: DEFAULT , } ; } impl Default for GPS2_RTK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS2_RTK_DATA { type Message = MavMessage ; const ID : u32 = 128u32 ; const NAME : & 'static str = "GPS2_RTK" ; const EXTRA_CRC : u8 = 226u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_last_baseline_ms = buf . get_u32_le () ; __struct . tow = buf . get_u32_le () ; __struct . baseline_a_mm = buf . get_i32_le () ; __struct . baseline_b_mm = buf . get_i32_le () ; __struct . baseline_c_mm = buf . get_i32_le () ; __struct . accuracy = buf . get_u32_le () ; __struct . iar_num_hypotheses = buf . get_i32_le () ; __struct . wn = buf . get_u16_le () ; __struct . rtk_receiver_id = buf . get_u8 () ; __struct . rtk_health = buf . get_u8 () ; __struct . rtk_rate = buf . get_u8 () ; __struct . nsats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . baseline_coords_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "RtkBaselineCoordinateSystem" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_last_baseline_ms) ; __tmp . put_u32_le (self . tow) ; __tmp . put_i32_le (self . baseline_a_mm) ; __tmp . put_i32_le (self . baseline_b_mm) ; __tmp . put_i32_le (self . baseline_c_mm) ; __tmp . put_u32_le (self . accuracy) ; __tmp . put_i32_le (self . iar_num_hypotheses) ; __tmp . put_u16_le (self . wn) ; __tmp . put_u8 (self . rtk_receiver_id) ; __tmp . put_u8 (self . rtk_health) ; __tmp . put_u8 (self . rtk_rate) ; __tmp . put_u8 (self . nsats) ; __tmp . put_u8 (self . baseline_coords_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LANDING_TARGET_DATA { pub time_usec : u64 , pub angle_x : f32 , pub angle_y : f32 , pub distance : f32 , pub size_x : f32 , pub size_y : f32 , pub target_num : u8 , pub frame : MavFrame , } impl LANDING_TARGET_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , angle_x : 0.0_f32 , angle_y : 0.0_f32 , distance : 0.0_f32 , size_x : 0.0_f32 , size_y : 0.0_f32 , target_num : 0_u8 , frame : MavFrame :: DEFAULT , } ; } impl Default for LANDING_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LANDING_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 149u32 ; const NAME : & 'static str = "LANDING_TARGET" ; const EXTRA_CRC : u8 = 200u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . angle_x = buf . get_f32_le () ; __struct . angle_y = buf . get_f32_le () ; __struct . distance = buf . get_f32_le () ; __struct . size_x = buf . get_f32_le () ; __struct . size_y = buf . get_f32_le () ; __struct . target_num = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . angle_x) ; __tmp . put_f32_le (self . angle_y) ; __tmp . put_f32_le (self . distance) ; __tmp . put_f32_le (self . size_x) ; __tmp . put_f32_le (self . size_y) ; __tmp . put_u8 (self . target_num) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SERVO_OUTPUT_RAW_DATA { pub time_usec : u32 , pub servo1_raw : u16 , pub servo2_raw : u16 , pub servo3_raw : u16 , pub servo4_raw : u16 , pub servo5_raw : u16 , pub servo6_raw : u16 , pub servo7_raw : u16 , pub servo8_raw : u16 , pub port : u8 , } impl SERVO_OUTPUT_RAW_DATA { pub const ENCODED_LEN : usize = 21usize ; pub const DEFAULT : Self = Self { time_usec : 0_u32 , servo1_raw : 0_u16 , servo2_raw : 0_u16 , servo3_raw : 0_u16 , servo4_raw : 0_u16 , servo5_raw : 0_u16 , servo6_raw : 0_u16 , servo7_raw : 0_u16 , servo8_raw : 0_u16 , port : 0_u8 , } ; } impl Default for SERVO_OUTPUT_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SERVO_OUTPUT_RAW_DATA { type Message = MavMessage ; const ID : u32 = 36u32 ; const NAME : & 'static str = "SERVO_OUTPUT_RAW" ; const EXTRA_CRC : u8 = 222u8 ; const ENCODED_LEN : usize = 21usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u32_le () ; __struct . servo1_raw = buf . get_u16_le () ; __struct . servo2_raw = buf . get_u16_le () ; __struct . servo3_raw = buf . get_u16_le () ; __struct . servo4_raw = buf . get_u16_le () ; __struct . servo5_raw = buf . get_u16_le () ; __struct . servo6_raw = buf . get_u16_le () ; __struct . servo7_raw = buf . get_u16_le () ; __struct . servo8_raw = buf . get_u16_le () ; __struct . port = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_usec) ; __tmp . put_u16_le (self . servo1_raw) ; __tmp . put_u16_le (self . servo2_raw) ; __tmp . put_u16_le (self . servo3_raw) ; __tmp . put_u16_le (self . servo4_raw) ; __tmp . put_u16_le (self . servo5_raw) ; __tmp . put_u16_le (self . servo6_raw) ; __tmp . put_u16_le (self . servo7_raw) ; __tmp . put_u16_le (self . servo8_raw) ; __tmp . put_u8 (self . port) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ALTITUDE_DATA { pub time_usec : u64 , pub altitude_monotonic : f32 , pub altitude_amsl : f32 , pub altitude_local : f32 , pub altitude_relative : f32 , pub altitude_terrain : f32 , pub bottom_clearance : f32 , } impl ALTITUDE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , altitude_monotonic : 0.0_f32 , altitude_amsl : 0.0_f32 , altitude_local : 0.0_f32 , altitude_relative : 0.0_f32 , altitude_terrain : 0.0_f32 , bottom_clearance : 0.0_f32 , } ; } impl Default for ALTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ALTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 141u32 ; const NAME : & 'static str = "ALTITUDE" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . altitude_monotonic = buf . get_f32_le () ; __struct . altitude_amsl = buf . get_f32_le () ; __struct . altitude_local = buf . get_f32_le () ; __struct . altitude_relative = buf . get_f32_le () ; __struct . altitude_terrain = buf . get_f32_le () ; __struct . bottom_clearance = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . altitude_monotonic) ; __tmp . put_f32_le (self . altitude_amsl) ; __tmp . put_f32_le (self . altitude_local) ; __tmp . put_f32_le (self . altitude_relative) ; __tmp . put_f32_le (self . altitude_terrain) ; __tmp . put_f32_le (self . bottom_clearance) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HYGROMETER_SENSOR_DATA { pub temperature : i16 , pub humidity : u16 , pub id : u8 , } impl HYGROMETER_SENSOR_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { temperature : 0_i16 , humidity : 0_u16 , id : 0_u8 , } ; } impl Default for HYGROMETER_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HYGROMETER_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 12920u32 ; const NAME : & 'static str = "HYGROMETER_SENSOR" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . temperature = buf . get_i16_le () ; __struct . humidity = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u16_le (self . humidity) ; __tmp . put_u8 (self . id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_INT_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl COMMAND_INT_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for COMMAND_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_INT_DATA { type Message = MavMessage ; const ID : u32 = 75u32 ; const NAME : & 'static str = "COMMAND_INT" ; const EXTRA_CRC : u8 = 158u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_SENSOR_DATA { pub time_usec : u64 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub xmag : f32 , pub ymag : f32 , pub zmag : f32 , pub abs_pressure : f32 , pub diff_pressure : f32 , pub pressure_alt : f32 , pub temperature : f32 , pub fields_updated : HilSensorUpdatedFlags , } impl HIL_SENSOR_DATA { pub const ENCODED_LEN : usize = 64usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , xmag : 0.0_f32 , ymag : 0.0_f32 , zmag : 0.0_f32 , abs_pressure : 0.0_f32 , diff_pressure : 0.0_f32 , pressure_alt : 0.0_f32 , temperature : 0.0_f32 , fields_updated : HilSensorUpdatedFlags :: DEFAULT , } ; } impl Default for HIL_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 107u32 ; const NAME : & 'static str = "HIL_SENSOR" ; const EXTRA_CRC : u8 = 108u8 ; const ENCODED_LEN : usize = 64usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . xmag = buf . get_f32_le () ; __struct . ymag = buf . get_f32_le () ; __struct . zmag = buf . get_f32_le () ; __struct . abs_pressure = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . pressure_alt = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . fields_updated = HilSensorUpdatedFlags :: from_bits (tmp & HilSensorUpdatedFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HilSensorUpdatedFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . xmag) ; __tmp . put_f32_le (self . ymag) ; __tmp . put_f32_le (self . zmag) ; __tmp . put_f32_le (self . abs_pressure) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . pressure_alt) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u32_le (self . fields_updated . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ODOMETRY_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pose_covariance : [f32 ; 21] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub velocity_covariance : [f32 ; 21] , pub frame_id : MavFrame , pub child_frame_id : MavFrame , } impl ODOMETRY_DATA { pub const ENCODED_LEN : usize = 230usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , pose_covariance : [0.0_f32 ; 21usize] , velocity_covariance : [0.0_f32 ; 21usize] , frame_id : MavFrame :: DEFAULT , child_frame_id : MavFrame :: DEFAULT , } ; } impl Default for ODOMETRY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ODOMETRY_DATA { type Message = MavMessage ; const ID : u32 = 331u32 ; const NAME : & 'static str = "ODOMETRY" ; const EXTRA_CRC : u8 = 91u8 ; const ENCODED_LEN : usize = 230usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; for v in & mut __struct . pose_covariance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . velocity_covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . frame_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . child_frame_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; for val in & self . pose_covariance { __tmp . put_f32_le (* val) ; } for val in & self . velocity_covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . frame_id as u8) ; __tmp . put_u8 (self . child_frame_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAN_FRAME_DATA { pub id : u32 , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 8] , } impl CAN_FRAME_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , len : 0_u8 , data : [0_u8 ; 8usize] , } ; } impl Default for CAN_FRAME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAN_FRAME_DATA { type Message = MavMessage ; const ID : u32 = 386u32 ; const NAME : & 'static str = "CAN_FRAME" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl PARAM_EXT_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PARAM_EXT_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 321u32 ; const NAME : & 'static str = "PARAM_EXT_REQUEST_LIST" ; const EXTRA_CRC : u8 = 88u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RTCM_DATA_DATA { pub flags : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 180] , } impl GPS_RTCM_DATA_DATA { pub const ENCODED_LEN : usize = 182usize ; pub const DEFAULT : Self = Self { flags : 0_u8 , len : 0_u8 , data : [0_u8 ; 180usize] , } ; } impl Default for GPS_RTCM_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RTCM_DATA_DATA { type Message = MavMessage ; const ID : u32 = 233u32 ; const NAME : & 'static str = "GPS_RTCM_DATA" ; const EXTRA_CRC : u8 = 35u8 ; const ENCODED_LEN : usize = 182usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . flags = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . flags) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RTK_DATA { pub time_last_baseline_ms : u32 , pub tow : u32 , pub baseline_a_mm : i32 , pub baseline_b_mm : i32 , pub baseline_c_mm : i32 , pub accuracy : u32 , pub iar_num_hypotheses : i32 , pub wn : u16 , pub rtk_receiver_id : u8 , pub rtk_health : u8 , pub rtk_rate : u8 , pub nsats : u8 , pub baseline_coords_type : RtkBaselineCoordinateSystem , } impl GPS_RTK_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_last_baseline_ms : 0_u32 , tow : 0_u32 , baseline_a_mm : 0_i32 , baseline_b_mm : 0_i32 , baseline_c_mm : 0_i32 , accuracy : 0_u32 , iar_num_hypotheses : 0_i32 , wn : 0_u16 , rtk_receiver_id : 0_u8 , rtk_health : 0_u8 , rtk_rate : 0_u8 , nsats : 0_u8 , baseline_coords_type : RtkBaselineCoordinateSystem :: DEFAULT , } ; } impl Default for GPS_RTK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RTK_DATA { type Message = MavMessage ; const ID : u32 = 127u32 ; const NAME : & 'static str = "GPS_RTK" ; const EXTRA_CRC : u8 = 25u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_last_baseline_ms = buf . get_u32_le () ; __struct . tow = buf . get_u32_le () ; __struct . baseline_a_mm = buf . get_i32_le () ; __struct . baseline_b_mm = buf . get_i32_le () ; __struct . baseline_c_mm = buf . get_i32_le () ; __struct . accuracy = buf . get_u32_le () ; __struct . iar_num_hypotheses = buf . get_i32_le () ; __struct . wn = buf . get_u16_le () ; __struct . rtk_receiver_id = buf . get_u8 () ; __struct . rtk_health = buf . get_u8 () ; __struct . rtk_rate = buf . get_u8 () ; __struct . nsats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . baseline_coords_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "RtkBaselineCoordinateSystem" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_last_baseline_ms) ; __tmp . put_u32_le (self . tow) ; __tmp . put_i32_le (self . baseline_a_mm) ; __tmp . put_i32_le (self . baseline_b_mm) ; __tmp . put_i32_le (self . baseline_c_mm) ; __tmp . put_u32_le (self . accuracy) ; __tmp . put_i32_le (self . iar_num_hypotheses) ; __tmp . put_u16_le (self . wn) ; __tmp . put_u8 (self . rtk_receiver_id) ; __tmp . put_u8 (self . rtk_health) ; __tmp . put_u8 (self . rtk_rate) ; __tmp . put_u8 (self . nsats) ; __tmp . put_u8 (self . baseline_coords_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , } impl ATTITUDE_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , } ; } impl Default for ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 30u32 ; const NAME : & 'static str = "ATTITUDE" ; const EXTRA_CRC : u8 = 39u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SERIAL_CONTROL_DATA { pub baudrate : u32 , pub timeout : u16 , pub device : SerialControlDev , pub flags : SerialControlFlag , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 70] , } impl SERIAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 79usize ; pub const DEFAULT : Self = Self { baudrate : 0_u32 , timeout : 0_u16 , device : SerialControlDev :: DEFAULT , flags : SerialControlFlag :: DEFAULT , count : 0_u8 , data : [0_u8 ; 70usize] , } ; } impl Default for SERIAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SERIAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 126u32 ; const NAME : & 'static str = "SERIAL_CONTROL" ; const EXTRA_CRC : u8 = 220u8 ; const ENCODED_LEN : usize = 79usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . baudrate = buf . get_u32_le () ; __struct . timeout = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . device = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "SerialControlDev" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = SerialControlFlag :: from_bits (tmp & SerialControlFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "SerialControlFlag" , value : tmp as u32 }) ? ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . baudrate) ; __tmp . put_u16_le (self . timeout) ; __tmp . put_u8 (self . device as u8) ; __tmp . put_u8 (self . flags . bits ()) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 43u32 ; const NAME : & 'static str = "MISSION_REQUEST_LIST" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRIGGER_DATA { pub time_usec : u64 , pub seq : u32 , } impl CAMERA_TRIGGER_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , seq : 0_u32 , } ; } impl Default for CAMERA_TRIGGER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRIGGER_DATA { type Message = MavMessage ; const ID : u32 = 112u32 ; const NAME : & 'static str = "CAMERA_TRIGGER" ; const EXTRA_CRC : u8 = 174u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . seq = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ACTUATOR_OUTPUT_STATUS_DATA { pub time_usec : u64 , pub active : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub actuator : [f32 ; 32] , } impl ACTUATOR_OUTPUT_STATUS_DATA { pub const ENCODED_LEN : usize = 140usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , active : 0_u32 , actuator : [0.0_f32 ; 32usize] , } ; } impl Default for ACTUATOR_OUTPUT_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ACTUATOR_OUTPUT_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 375u32 ; const NAME : & 'static str = "ACTUATOR_OUTPUT_STATUS" ; const EXTRA_CRC : u8 = 251u8 ; const ENCODED_LEN : usize = 140usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . active = buf . get_u32_le () ; for v in & mut __struct . actuator { let val = buf . get_f32_le () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . active) ; for val in & self . actuator { __tmp . put_f32_le (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TIME_ESTIMATE_TO_TARGET_DATA { pub safe_return : i32 , pub land : i32 , pub mission_next_item : i32 , pub mission_end : i32 , pub commanded_action : i32 , } impl TIME_ESTIMATE_TO_TARGET_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { safe_return : 0_i32 , land : 0_i32 , mission_next_item : 0_i32 , mission_end : 0_i32 , commanded_action : 0_i32 , } ; } impl Default for TIME_ESTIMATE_TO_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TIME_ESTIMATE_TO_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 380u32 ; const NAME : & 'static str = "TIME_ESTIMATE_TO_TARGET" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . safe_return = buf . get_i32_le () ; __struct . land = buf . get_i32_le () ; __struct . mission_next_item = buf . get_i32_le () ; __struct . mission_end = buf . get_i32_le () ; __struct . commanded_action = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . safe_return) ; __tmp . put_i32_le (self . land) ; __tmp . put_i32_le (self . mission_next_item) ; __tmp . put_i32_le (self . mission_end) ; __tmp . put_i32_le (self . commanded_action) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_PARTIAL_LIST_DATA { pub start_index : i16 , pub end_index : i16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_PARTIAL_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start_index : 0_i16 , end_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_PARTIAL_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_PARTIAL_LIST_DATA { type Message = MavMessage ; const ID : u32 = 37u32 ; const NAME : & 'static str = "MISSION_REQUEST_PARTIAL_LIST" ; const EXTRA_CRC : u8 = 212u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start_index = buf . get_i16_le () ; __struct . end_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . start_index) ; __tmp . put_i16_le (self . end_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_VECT_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl DEBUG_VECT_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , name : [0_u8 ; 10usize] , } ; } impl Default for DEBUG_VECT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_VECT_DATA { type Message = MavMessage ; const ID : u32 = 250u32 ; const NAME : & 'static str = "DEBUG_VECT" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ORBIT_EXECUTION_STATUS_DATA { pub time_usec : u64 , pub radius : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub frame : MavFrame , } impl ORBIT_EXECUTION_STATUS_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , radius : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , frame : MavFrame :: DEFAULT , } ; } impl Default for ORBIT_EXECUTION_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ORBIT_EXECUTION_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 360u32 ; const NAME : & 'static str = "ORBIT_EXECUTION_STATUS" ; const EXTRA_CRC : u8 = 11u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . radius = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . radius) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_ACK_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOGGING_ACK_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOGGING_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_ACK_DATA { type Message = MavMessage ; const ID : u32 = 268u32 ; const NAME : & 'static str = "LOGGING_ACK" ; const EXTRA_CRC : u8 = 14u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ONBOARD_COMPUTER_STATUS_DATA { pub time_usec : u64 , pub uptime : u32 , pub ram_usage : u32 , pub ram_total : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_type : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_usage : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_total : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_type : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_tx_rate : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_rx_rate : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_tx_max : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_rx_max : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub fan_speed : [i16 ; 4] , pub mavtype : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cpu_cores : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cpu_combined : [u8 ; 10] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub gpu_cores : [u8 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub gpu_combined : [u8 ; 10] , pub temperature_board : i8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature_core : [i8 ; 8] , } impl ONBOARD_COMPUTER_STATUS_DATA { pub const ENCODED_LEN : usize = 238usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime : 0_u32 , ram_usage : 0_u32 , ram_total : 0_u32 , storage_type : [0_u32 ; 4usize] , storage_usage : [0_u32 ; 4usize] , storage_total : [0_u32 ; 4usize] , link_type : [0_u32 ; 6usize] , link_tx_rate : [0_u32 ; 6usize] , link_rx_rate : [0_u32 ; 6usize] , link_tx_max : [0_u32 ; 6usize] , link_rx_max : [0_u32 ; 6usize] , fan_speed : [0_i16 ; 4usize] , mavtype : 0_u8 , cpu_cores : [0_u8 ; 8usize] , cpu_combined : [0_u8 ; 10usize] , gpu_cores : [0_u8 ; 4usize] , gpu_combined : [0_u8 ; 10usize] , temperature_board : 0_i8 , temperature_core : [0_i8 ; 8usize] , } ; } impl Default for ONBOARD_COMPUTER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ONBOARD_COMPUTER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 390u32 ; const NAME : & 'static str = "ONBOARD_COMPUTER_STATUS" ; const EXTRA_CRC : u8 = 156u8 ; const ENCODED_LEN : usize = 238usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime = buf . get_u32_le () ; __struct . ram_usage = buf . get_u32_le () ; __struct . ram_total = buf . get_u32_le () ; for v in & mut __struct . storage_type { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . storage_usage { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . storage_total { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_type { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_tx_rate { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_rx_rate { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_tx_max { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_rx_max { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . fan_speed { let val = buf . get_i16_le () ; * v = val ; } __struct . mavtype = buf . get_u8 () ; for v in & mut __struct . cpu_cores { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . cpu_combined { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . gpu_cores { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . gpu_combined { let val = buf . get_u8 () ; * v = val ; } __struct . temperature_board = buf . get_i8 () ; for v in & mut __struct . temperature_core { let val = buf . get_i8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime) ; __tmp . put_u32_le (self . ram_usage) ; __tmp . put_u32_le (self . ram_total) ; for val in & self . storage_type { __tmp . put_u32_le (* val) ; } for val in & self . storage_usage { __tmp . put_u32_le (* val) ; } for val in & self . storage_total { __tmp . put_u32_le (* val) ; } for val in & self . link_type { __tmp . put_u32_le (* val) ; } for val in & self . link_tx_rate { __tmp . put_u32_le (* val) ; } for val in & self . link_rx_rate { __tmp . put_u32_le (* val) ; } for val in & self . link_tx_max { __tmp . put_u32_le (* val) ; } for val in & self . link_rx_max { __tmp . put_u32_le (* val) ; } for val in & self . fan_speed { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . mavtype) ; for val in & self . cpu_cores { __tmp . put_u8 (* val) ; } for val in & self . cpu_combined { __tmp . put_u8 (* val) ; } for val in & self . gpu_cores { __tmp . put_u8 (* val) ; } for val in & self . gpu_combined { __tmp . put_u8 (* val) ; } __tmp . put_i8 (self . temperature_board) ; for val in & self . temperature_core { __tmp . put_i8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_CONTROLS_DATA { pub time_usec : u64 , pub roll_ailerons : f32 , pub pitch_elevator : f32 , pub yaw_rudder : f32 , pub throttle : f32 , pub aux1 : f32 , pub aux2 : f32 , pub aux3 : f32 , pub aux4 : f32 , pub mode : MavMode , pub nav_mode : u8 , } impl HIL_CONTROLS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , roll_ailerons : 0.0_f32 , pitch_elevator : 0.0_f32 , yaw_rudder : 0.0_f32 , throttle : 0.0_f32 , aux1 : 0.0_f32 , aux2 : 0.0_f32 , aux3 : 0.0_f32 , aux4 : 0.0_f32 , mode : MavMode :: DEFAULT , nav_mode : 0_u8 , } ; } impl Default for HIL_CONTROLS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_CONTROLS_DATA { type Message = MavMessage ; const ID : u32 = 91u32 ; const NAME : & 'static str = "HIL_CONTROLS" ; const EXTRA_CRC : u8 = 63u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . roll_ailerons = buf . get_f32_le () ; __struct . pitch_elevator = buf . get_f32_le () ; __struct . yaw_rudder = buf . get_f32_le () ; __struct . throttle = buf . get_f32_le () ; __struct . aux1 = buf . get_f32_le () ; __struct . aux2 = buf . get_f32_le () ; __struct . aux3 = buf . get_f32_le () ; __struct . aux4 = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMode" , value : tmp as u32 }) ? ; __struct . nav_mode = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . roll_ailerons) ; __tmp . put_f32_le (self . pitch_elevator) ; __tmp . put_f32_le (self . yaw_rudder) ; __tmp . put_f32_le (self . throttle) ; __tmp . put_f32_le (self . aux1) ; __tmp . put_f32_le (self . aux2) ; __tmp . put_f32_le (self . aux3) ; __tmp . put_f32_le (self . aux4) ; __tmp . put_u8 (self . mode as u8) ; __tmp . put_u8 (self . nav_mode) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RESPONSE_EVENT_ERROR_DATA { pub sequence : u16 , pub sequence_oldest_available : u16 , pub target_system : u8 , pub target_component : u8 , pub reason : MavEventErrorReason , } impl RESPONSE_EVENT_ERROR_DATA { pub const ENCODED_LEN : usize = 7usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , sequence_oldest_available : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , reason : MavEventErrorReason :: DEFAULT , } ; } impl Default for RESPONSE_EVENT_ERROR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RESPONSE_EVENT_ERROR_DATA { type Message = MavMessage ; const ID : u32 = 413u32 ; const NAME : & 'static str = "RESPONSE_EVENT_ERROR" ; const EXTRA_CRC : u8 = 77u8 ; const ENCODED_LEN : usize = 7usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . sequence_oldest_available = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . reason = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEventErrorReason" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u16_le (self . sequence_oldest_available) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . reason as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_MESSAGE_PACK_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub single_message_size : u8 , pub msg_pack_size : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub messages : [u8 ; 225] , } impl OPEN_DRONE_ID_MESSAGE_PACK_DATA { pub const ENCODED_LEN : usize = 249usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , single_message_size : 0_u8 , msg_pack_size : 0_u8 , messages : [0_u8 ; 225usize] , } ; } impl Default for OPEN_DRONE_ID_MESSAGE_PACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_MESSAGE_PACK_DATA { type Message = MavMessage ; const ID : u32 = 12915u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_MESSAGE_PACK" ; const EXTRA_CRC : u8 = 94u8 ; const ENCODED_LEN : usize = 249usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } __struct . single_message_size = buf . get_u8 () ; __struct . msg_pack_size = buf . get_u8 () ; for v in & mut __struct . messages { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . single_message_size) ; __tmp . put_u8 (self . msg_pack_size) ; for val in & self . messages { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_STATE_QUATERNION_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub attitude_quaternion : [f32 ; 4] , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub ind_airspeed : u16 , pub true_airspeed : u16 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , } impl HIL_STATE_QUATERNION_DATA { pub const ENCODED_LEN : usize = 64usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , attitude_quaternion : [0.0_f32 ; 4usize] , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , ind_airspeed : 0_u16 , true_airspeed : 0_u16 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , } ; } impl Default for HIL_STATE_QUATERNION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_STATE_QUATERNION_DATA { type Message = MavMessage ; const ID : u32 = 115u32 ; const NAME : & 'static str = "HIL_STATE_QUATERNION" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 64usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . attitude_quaternion { let val = buf . get_f32_le () ; * v = val ; } __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . ind_airspeed = buf . get_u16_le () ; __struct . true_airspeed = buf . get_u16_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . attitude_quaternion { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . ind_airspeed) ; __tmp . put_u16_le (self . true_airspeed) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CHANGE_OPERATOR_CONTROL_ACK_DATA { pub gcs_system_id : u8 , pub control_request : u8 , pub ack : u8 , } impl CHANGE_OPERATOR_CONTROL_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { gcs_system_id : 0_u8 , control_request : 0_u8 , ack : 0_u8 , } ; } impl Default for CHANGE_OPERATOR_CONTROL_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CHANGE_OPERATOR_CONTROL_ACK_DATA { type Message = MavMessage ; const ID : u32 = 6u32 ; const NAME : & 'static str = "CHANGE_OPERATOR_CONTROL_ACK" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . gcs_system_id = buf . get_u8 () ; __struct . control_request = buf . get_u8 () ; __struct . ack = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . gcs_system_id) ; __tmp . put_u8 (self . control_request) ; __tmp . put_u8 (self . ack) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_COV_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub ax : f32 , pub ay : f32 , pub az : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 45] , pub estimator_type : MavEstimatorType , } impl LOCAL_POSITION_NED_COV_DATA { pub const ENCODED_LEN : usize = 225usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , ax : 0.0_f32 , ay : 0.0_f32 , az : 0.0_f32 , covariance : [0.0_f32 ; 45usize] , estimator_type : MavEstimatorType :: DEFAULT , } ; } impl Default for LOCAL_POSITION_NED_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_COV_DATA { type Message = MavMessage ; const ID : u32 = 64u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED_COV" ; const EXTRA_CRC : u8 = 191u8 ; const ENCODED_LEN : usize = 225usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . ax = buf . get_f32_le () ; __struct . ay = buf . get_f32_le () ; __struct . az = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . estimator_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEstimatorType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . ax) ; __tmp . put_f32_le (self . ay) ; __tmp . put_f32_le (self . az) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . estimator_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_MAP_RC_DATA { pub param_value0 : f32 , pub scale : f32 , pub param_value_min : f32 , pub param_value_max : f32 , pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub parameter_rc_channel_index : u8 , } impl PARAM_MAP_RC_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param_value0 : 0.0_f32 , scale : 0.0_f32 , param_value_min : 0.0_f32 , param_value_max : 0.0_f32 , param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , parameter_rc_channel_index : 0_u8 , } ; } impl Default for PARAM_MAP_RC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_MAP_RC_DATA { type Message = MavMessage ; const ID : u32 = 50u32 ; const NAME : & 'static str = "PARAM_MAP_RC" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value0 = buf . get_f32_le () ; __struct . scale = buf . get_f32_le () ; __struct . param_value_min = buf . get_f32_le () ; __struct . param_value_max = buf . get_f32_le () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } __struct . parameter_rc_channel_index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value0) ; __tmp . put_f32_le (self . scale) ; __tmp . put_f32_le (self . param_value_min) ; __tmp . put_f32_le (self . param_value_max) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . parameter_rc_channel_index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REQUEST_EVENT_DATA { pub first_sequence : u16 , pub last_sequence : u16 , pub target_system : u8 , pub target_component : u8 , } impl REQUEST_EVENT_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { first_sequence : 0_u16 , last_sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for REQUEST_EVENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REQUEST_EVENT_DATA { type Message = MavMessage ; const ID : u32 = 412u32 ; const NAME : & 'static str = "REQUEST_EVENT" ; const EXTRA_CRC : u8 = 33u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . first_sequence = buf . get_u16_le () ; __struct . last_sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . first_sequence) ; __tmp . put_u16_le (self . last_sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 40u32 ; const NAME : & 'static str = "MISSION_REQUEST" ; const EXTRA_CRC : u8 = 230u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Clone , PartialEq , Debug)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMessage { RC_CHANNELS_RAW (RC_CHANNELS_RAW_DATA) , UAVCAN_NODE_STATUS (UAVCAN_NODE_STATUS_DATA) , LOCAL_POSITION_NED (LOCAL_POSITION_NED_DATA) , BATTERY_STATUS (BATTERY_STATUS_DATA) , TERRAIN_REPORT (TERRAIN_REPORT_DATA) , OPEN_DRONE_ID_SELF_ID (OPEN_DRONE_ID_SELF_ID_DATA) , UTM_GLOBAL_POSITION (UTM_GLOBAL_POSITION_DATA) , SCALED_PRESSURE3 (SCALED_PRESSURE3_DATA) , LOG_DATA (LOG_DATA_DATA) , CHANGE_OPERATOR_CONTROL (CHANGE_OPERATOR_CONTROL_DATA) , WIND_COV (WIND_COV_DATA) , LINK_NODE_STATUS (LINK_NODE_STATUS_DATA) , GPS_INJECT_DATA (GPS_INJECT_DATA_DATA) , ESTIMATOR_STATUS (ESTIMATOR_STATUS_DATA) , VIDEO_STREAM_INFORMATION (VIDEO_STREAM_INFORMATION_DATA) , GIMBAL_DEVICE_SET_ATTITUDE (GIMBAL_DEVICE_SET_ATTITUDE_DATA) , CANFD_FRAME (CANFD_FRAME_DATA) , AUTOPILOT_VERSION (AUTOPILOT_VERSION_DATA) , MISSION_WRITE_PARTIAL_LIST (MISSION_WRITE_PARTIAL_LIST_DATA) , PARAM_EXT_ACK (PARAM_EXT_ACK_DATA) , RADIO_STATUS (RADIO_STATUS_DATA) , RC_CHANNELS (RC_CHANNELS_DATA) , GPS_INPUT (GPS_INPUT_DATA) , STORAGE_INFORMATION (STORAGE_INFORMATION_DATA) , PARAM_REQUEST_LIST (PARAM_REQUEST_LIST_DATA) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA) , GIMBAL_MANAGER_SET_ATTITUDE (GIMBAL_MANAGER_SET_ATTITUDE_DATA) , PROTOCOL_VERSION (PROTOCOL_VERSION_DATA) , NAMED_VALUE_FLOAT (NAMED_VALUE_FLOAT_DATA) , PLAY_TUNE (PLAY_TUNE_DATA) , VICON_POSITION_ESTIMATE (VICON_POSITION_ESTIMATE_DATA) , PARAM_REQUEST_READ (PARAM_REQUEST_READ_DATA) , PARAM_VALUE (PARAM_VALUE_DATA) , SAFETY_ALLOWED_AREA (SAFETY_ALLOWED_AREA_DATA) , GPS_RAW_INT (GPS_RAW_INT_DATA) , MOUNT_ORIENTATION (MOUNT_ORIENTATION_DATA) , COMPONENT_INFORMATION (COMPONENT_INFORMATION_DATA) , CAMERA_TRACKING_GEO_STATUS (CAMERA_TRACKING_GEO_STATUS_DATA) , CAN_FILTER_MODIFY (CAN_FILTER_MODIFY_DATA) , GIMBAL_DEVICE_ATTITUDE_STATUS (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA) , HIL_RC_INPUTS_RAW (HIL_RC_INPUTS_RAW_DATA) , MISSION_CURRENT (MISSION_CURRENT_DATA) , ESC_STATUS (ESC_STATUS_DATA) , UAVCAN_NODE_INFO (UAVCAN_NODE_INFO_DATA) , MAG_CAL_REPORT (MAG_CAL_REPORT_DATA) , HIL_ACTUATOR_CONTROLS (HIL_ACTUATOR_CONTROLS_DATA) , OPEN_DRONE_ID_BASIC_ID (OPEN_DRONE_ID_BASIC_ID_DATA) , ATTITUDE_QUATERNION (ATTITUDE_QUATERNION_DATA) , V2_EXTENSION (V2_EXTENSION_DATA) , PARAM_EXT_VALUE (PARAM_EXT_VALUE_DATA) , HEARTBEAT (HEARTBEAT_DATA) , ENCAPSULATED_DATA (ENCAPSULATED_DATA_DATA) , ATTITUDE_TARGET (ATTITUDE_TARGET_DATA) , OPTICAL_FLOW (OPTICAL_FLOW_DATA) , MISSION_ITEM_REACHED (MISSION_ITEM_REACHED_DATA) , UAVIONIX_ADSB_OUT_DYNAMIC (UAVIONIX_ADSB_OUT_DYNAMIC_DATA) , ISBD_LINK_STATUS (ISBD_LINK_STATUS_DATA) , RAW_PRESSURE (RAW_PRESSURE_DATA) , CELLULAR_STATUS (CELLULAR_STATUS_DATA) , EVENT (EVENT_DATA) , PARAM_EXT_REQUEST_READ (PARAM_EXT_REQUEST_READ_DATA) , CAMERA_TRACKING_IMAGE_STATUS (CAMERA_TRACKING_IMAGE_STATUS_DATA) , SUPPORTED_TUNES (SUPPORTED_TUNES_DATA) , GIMBAL_MANAGER_INFORMATION (GIMBAL_MANAGER_INFORMATION_DATA) , SETUP_SIGNING (SETUP_SIGNING_DATA) , FOLLOW_TARGET (FOLLOW_TARGET_DATA) , LOG_ENTRY (LOG_ENTRY_DATA) , DEBUG_FLOAT_ARRAY (DEBUG_FLOAT_ARRAY_DATA) , COMPONENT_METADATA (COMPONENT_METADATA_DATA) , SYSTEM_TIME (SYSTEM_TIME_DATA) , SCALED_PRESSURE (SCALED_PRESSURE_DATA) , TIMESYNC (TIMESYNC_DATA) , EFI_STATUS (EFI_STATUS_DATA) , CONTROL_SYSTEM_STATE (CONTROL_SYSTEM_STATE_DATA) , GLOBAL_VISION_POSITION_ESTIMATE (GLOBAL_VISION_POSITION_ESTIMATE_DATA) , BUTTON_CHANGE (BUTTON_CHANGE_DATA) , ATT_POS_MOCAP (ATT_POS_MOCAP_DATA) , ATTITUDE_QUATERNION_COV (ATTITUDE_QUATERNION_COV_DATA) , CURRENT_EVENT_SEQUENCE (CURRENT_EVENT_SEQUENCE_DATA) , SET_ACTUATOR_CONTROL_TARGET (SET_ACTUATOR_CONTROL_TARGET_DATA) , SCALED_IMU3 (SCALED_IMU3_DATA) , STATUSTEXT (STATUSTEXT_DATA) , GPS2_RAW (GPS2_RAW_DATA) , MISSION_SET_CURRENT (MISSION_SET_CURRENT_DATA) , SMART_BATTERY_INFO (SMART_BATTERY_INFO_DATA) , TERRAIN_REQUEST (TERRAIN_REQUEST_DATA) , DISTANCE_SENSOR (DISTANCE_SENSOR_DATA) , MISSION_ITEM_INT (MISSION_ITEM_INT_DATA) , GENERATOR_STATUS (GENERATOR_STATUS_DATA) , DEBUG (DEBUG_DATA) , WHEEL_DISTANCE (WHEEL_DISTANCE_DATA) , RAW_IMU (RAW_IMU_DATA) , MEMORY_VECT (MEMORY_VECT_DATA) , POSITION_TARGET_GLOBAL_INT (POSITION_TARGET_GLOBAL_INT_DATA) , AUTH_KEY (AUTH_KEY_DATA) , SCALED_IMU2 (SCALED_IMU2_DATA) , SYS_STATUS (SYS_STATUS_DATA) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA) , SET_POSITION_TARGET_LOCAL_NED (SET_POSITION_TARGET_LOCAL_NED_DATA) , HIL_OPTICAL_FLOW (HIL_OPTICAL_FLOW_DATA) , TRAJECTORY_REPRESENTATION_BEZIER (TRAJECTORY_REPRESENTATION_BEZIER_DATA) , VISION_POSITION_ESTIMATE (VISION_POSITION_ESTIMATE_DATA) , PING (PING_DATA) , LOGGING_DATA (LOGGING_DATA_DATA) , VIBRATION (VIBRATION_DATA) , REQUEST_DATA_STREAM (REQUEST_DATA_STREAM_DATA) , EXTENDED_SYS_STATE (EXTENDED_SYS_STATE_DATA) , POSITION_TARGET_LOCAL_NED (POSITION_TARGET_LOCAL_NED_DATA) , SET_MODE (SET_MODE_DATA) , LOGGING_DATA_ACKED (LOGGING_DATA_ACKED_DATA) , GPS_GLOBAL_ORIGIN (GPS_GLOBAL_ORIGIN_DATA) , GLOBAL_POSITION_INT_COV (GLOBAL_POSITION_INT_COV_DATA) , CAMERA_CAPTURE_STATUS (CAMERA_CAPTURE_STATUS_DATA) , DATA_STREAM (DATA_STREAM_DATA) , ACTUATOR_CONTROL_TARGET (ACTUATOR_CONTROL_TARGET_DATA) , TERRAIN_CHECK (TERRAIN_CHECK_DATA) , RAW_RPM (RAW_RPM_DATA) , RC_CHANNELS_OVERRIDE (RC_CHANNELS_OVERRIDE_DATA) , OPEN_DRONE_ID_AUTHENTICATION (OPEN_DRONE_ID_AUTHENTICATION_DATA) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA) , PARAM_SET (PARAM_SET_DATA) , HIL_STATE (HIL_STATE_DATA) , LOG_REQUEST_DATA (LOG_REQUEST_DATA_DATA) , MANUAL_SETPOINT (MANUAL_SETPOINT_DATA) , SET_ATTITUDE_TARGET (SET_ATTITUDE_TARGET_DATA) , OPEN_DRONE_ID_ARM_STATUS (OPEN_DRONE_ID_ARM_STATUS_DATA) , GIMBAL_MANAGER_SET_PITCHYAW (GIMBAL_MANAGER_SET_PITCHYAW_DATA) , COLLISION (COLLISION_DATA) , SET_POSITION_TARGET_GLOBAL_INT (SET_POSITION_TARGET_GLOBAL_INT_DATA) , SAFETY_SET_ALLOWED_AREA (SAFETY_SET_ALLOWED_AREA_DATA) , PLAY_TUNE_V2 (PLAY_TUNE_V2_DATA) , OPEN_DRONE_ID_LOCATION (OPEN_DRONE_ID_LOCATION_DATA) , VFR_HUD (VFR_HUD_DATA) , CAMERA_INFORMATION (CAMERA_INFORMATION_DATA) , FENCE_STATUS (FENCE_STATUS_DATA) , HIGH_LATENCY (HIGH_LATENCY_DATA) , HIGH_LATENCY2 (HIGH_LATENCY2_DATA) , LOG_ERASE (LOG_ERASE_DATA) , OBSTACLE_DISTANCE (OBSTACLE_DISTANCE_DATA) , ESC_INFO (ESC_INFO_DATA) , TUNNEL (TUNNEL_DATA) , HIGHRES_IMU (HIGHRES_IMU_DATA) , HIL_GPS (HIL_GPS_DATA) , OPEN_DRONE_ID_SYSTEM_UPDATE (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA) , VIDEO_STREAM_STATUS (VIDEO_STREAM_STATUS_DATA) , NAMED_VALUE_INT (NAMED_VALUE_INT_DATA) , MISSION_ACK (MISSION_ACK_DATA) , DATA_TRANSMISSION_HANDSHAKE (DATA_TRANSMISSION_HANDSHAKE_DATA) , CAMERA_FOV_STATUS (CAMERA_FOV_STATUS_DATA) , MESSAGE_INTERVAL (MESSAGE_INTERVAL_DATA) , LOG_REQUEST_LIST (LOG_REQUEST_LIST_DATA) , CAMERA_SETTINGS (CAMERA_SETTINGS_DATA) , SIM_STATE (SIM_STATE_DATA) , TERRAIN_DATA (TERRAIN_DATA_DATA) , OPEN_DRONE_ID_SYSTEM (OPEN_DRONE_ID_SYSTEM_DATA) , OPTICAL_FLOW_RAD (OPTICAL_FLOW_RAD_DATA) , WINCH_STATUS (WINCH_STATUS_DATA) , SCALED_IMU (SCALED_IMU_DATA) , UAVIONIX_ADSB_OUT_CFG (UAVIONIX_ADSB_OUT_CFG_DATA) , GIMBAL_MANAGER_SET_MANUAL_CONTROL (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA) , SET_HOME_POSITION (SET_HOME_POSITION_DATA) , MISSION_CLEAR_ALL (MISSION_CLEAR_ALL_DATA) , OPEN_DRONE_ID_OPERATOR_ID (OPEN_DRONE_ID_OPERATOR_ID_DATA) , COMMAND_CANCEL (COMMAND_CANCEL_DATA) , MISSION_COUNT (MISSION_COUNT_DATA) , WIFI_CONFIG_AP (WIFI_CONFIG_AP_DATA) , MANUAL_CONTROL (MANUAL_CONTROL_DATA) , FILE_TRANSFER_PROTOCOL (FILE_TRANSFER_PROTOCOL_DATA) , GIMBAL_MANAGER_STATUS (GIMBAL_MANAGER_STATUS_DATA) , GIMBAL_DEVICE_INFORMATION (GIMBAL_DEVICE_INFORMATION_DATA) , HOME_POSITION (HOME_POSITION_DATA) , VISION_SPEED_ESTIMATE (VISION_SPEED_ESTIMATE_DATA) , FLIGHT_INFORMATION (FLIGHT_INFORMATION_DATA) , POWER_STATUS (POWER_STATUS_DATA) , LOG_REQUEST_END (LOG_REQUEST_END_DATA) , SCALED_PRESSURE2 (SCALED_PRESSURE2_DATA) , CELLULAR_CONFIG (CELLULAR_CONFIG_DATA) , AIS_VESSEL (AIS_VESSEL_DATA) , NAV_CONTROLLER_OUTPUT (NAV_CONTROLLER_OUTPUT_DATA) , RESOURCE_REQUEST (RESOURCE_REQUEST_DATA) , PARAM_EXT_SET (PARAM_EXT_SET_DATA) , CAMERA_IMAGE_CAPTURED (CAMERA_IMAGE_CAPTURED_DATA) , COMMAND_ACK (COMMAND_ACK_DATA) , RC_CHANNELS_SCALED (RC_CHANNELS_SCALED_DATA) , TRAJECTORY_REPRESENTATION_WAYPOINTS (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA) , MISSION_ITEM (MISSION_ITEM_DATA) , COMMAND_LONG (COMMAND_LONG_DATA) , MISSION_REQUEST_INT (MISSION_REQUEST_INT_DATA) , GLOBAL_POSITION_INT (GLOBAL_POSITION_INT_DATA) , ADSB_VEHICLE (ADSB_VEHICLE_DATA) , SET_GPS_GLOBAL_ORIGIN (SET_GPS_GLOBAL_ORIGIN_DATA) , GPS_STATUS (GPS_STATUS_DATA) , GPS2_RTK (GPS2_RTK_DATA) , LANDING_TARGET (LANDING_TARGET_DATA) , SERVO_OUTPUT_RAW (SERVO_OUTPUT_RAW_DATA) , ALTITUDE (ALTITUDE_DATA) , HYGROMETER_SENSOR (HYGROMETER_SENSOR_DATA) , COMMAND_INT (COMMAND_INT_DATA) , HIL_SENSOR (HIL_SENSOR_DATA) , ODOMETRY (ODOMETRY_DATA) , CAN_FRAME (CAN_FRAME_DATA) , PARAM_EXT_REQUEST_LIST (PARAM_EXT_REQUEST_LIST_DATA) , GPS_RTCM_DATA (GPS_RTCM_DATA_DATA) , GPS_RTK (GPS_RTK_DATA) , ATTITUDE (ATTITUDE_DATA) , SERIAL_CONTROL (SERIAL_CONTROL_DATA) , MISSION_REQUEST_LIST (MISSION_REQUEST_LIST_DATA) , CAMERA_TRIGGER (CAMERA_TRIGGER_DATA) , ACTUATOR_OUTPUT_STATUS (ACTUATOR_OUTPUT_STATUS_DATA) , TIME_ESTIMATE_TO_TARGET (TIME_ESTIMATE_TO_TARGET_DATA) , MISSION_REQUEST_PARTIAL_LIST (MISSION_REQUEST_PARTIAL_LIST_DATA) , DEBUG_VECT (DEBUG_VECT_DATA) , ORBIT_EXECUTION_STATUS (ORBIT_EXECUTION_STATUS_DATA) , LOGGING_ACK (LOGGING_ACK_DATA) , ONBOARD_COMPUTER_STATUS (ONBOARD_COMPUTER_STATUS_DATA) , HIL_CONTROLS (HIL_CONTROLS_DATA) , RESPONSE_EVENT_ERROR (RESPONSE_EVENT_ERROR_DATA) , OPEN_DRONE_ID_MESSAGE_PACK (OPEN_DRONE_ID_MESSAGE_PACK_DATA) , HIL_STATE_QUATERNION (HIL_STATE_QUATERNION_DATA) , CHANGE_OPERATOR_CONTROL_ACK (CHANGE_OPERATOR_CONTROL_ACK_DATA) , LOCAL_POSITION_NED_COV (LOCAL_POSITION_NED_COV_DATA) , PARAM_MAP_RC (PARAM_MAP_RC_DATA) , REQUEST_EVENT (REQUEST_EVENT_DATA) , MISSION_REQUEST (MISSION_REQUEST_DATA) , } impl Message for MavMessage { fn parse (version : MavlinkVersion , id : u32 , payload : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { match id { RC_CHANNELS_RAW_DATA :: ID => RC_CHANNELS_RAW_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_RAW) , UAVCAN_NODE_STATUS_DATA :: ID => UAVCAN_NODE_STATUS_DATA :: deser (version , payload) . map (Self :: UAVCAN_NODE_STATUS) , LOCAL_POSITION_NED_DATA :: ID => LOCAL_POSITION_NED_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED) , BATTERY_STATUS_DATA :: ID => BATTERY_STATUS_DATA :: deser (version , payload) . map (Self :: BATTERY_STATUS) , TERRAIN_REPORT_DATA :: ID => TERRAIN_REPORT_DATA :: deser (version , payload) . map (Self :: TERRAIN_REPORT) , OPEN_DRONE_ID_SELF_ID_DATA :: ID => OPEN_DRONE_ID_SELF_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SELF_ID) , UTM_GLOBAL_POSITION_DATA :: ID => UTM_GLOBAL_POSITION_DATA :: deser (version , payload) . map (Self :: UTM_GLOBAL_POSITION) , SCALED_PRESSURE3_DATA :: ID => SCALED_PRESSURE3_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE3) , LOG_DATA_DATA :: ID => LOG_DATA_DATA :: deser (version , payload) . map (Self :: LOG_DATA) , CHANGE_OPERATOR_CONTROL_DATA :: ID => CHANGE_OPERATOR_CONTROL_DATA :: deser (version , payload) . map (Self :: CHANGE_OPERATOR_CONTROL) , WIND_COV_DATA :: ID => WIND_COV_DATA :: deser (version , payload) . map (Self :: WIND_COV) , LINK_NODE_STATUS_DATA :: ID => LINK_NODE_STATUS_DATA :: deser (version , payload) . map (Self :: LINK_NODE_STATUS) , GPS_INJECT_DATA_DATA :: ID => GPS_INJECT_DATA_DATA :: deser (version , payload) . map (Self :: GPS_INJECT_DATA) , ESTIMATOR_STATUS_DATA :: ID => ESTIMATOR_STATUS_DATA :: deser (version , payload) . map (Self :: ESTIMATOR_STATUS) , VIDEO_STREAM_INFORMATION_DATA :: ID => VIDEO_STREAM_INFORMATION_DATA :: deser (version , payload) . map (Self :: VIDEO_STREAM_INFORMATION) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_SET_ATTITUDE) , CANFD_FRAME_DATA :: ID => CANFD_FRAME_DATA :: deser (version , payload) . map (Self :: CANFD_FRAME) , AUTOPILOT_VERSION_DATA :: ID => AUTOPILOT_VERSION_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_VERSION) , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => MISSION_WRITE_PARTIAL_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_WRITE_PARTIAL_LIST) , PARAM_EXT_ACK_DATA :: ID => PARAM_EXT_ACK_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_ACK) , RADIO_STATUS_DATA :: ID => RADIO_STATUS_DATA :: deser (version , payload) . map (Self :: RADIO_STATUS) , RC_CHANNELS_DATA :: ID => RC_CHANNELS_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS) , GPS_INPUT_DATA :: ID => GPS_INPUT_DATA :: deser (version , payload) . map (Self :: GPS_INPUT) , STORAGE_INFORMATION_DATA :: ID => STORAGE_INFORMATION_DATA :: deser (version , payload) . map (Self :: STORAGE_INFORMATION) , PARAM_REQUEST_LIST_DATA :: ID => PARAM_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: PARAM_REQUEST_LIST) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_ATTITUDE) , PROTOCOL_VERSION_DATA :: ID => PROTOCOL_VERSION_DATA :: deser (version , payload) . map (Self :: PROTOCOL_VERSION) , NAMED_VALUE_FLOAT_DATA :: ID => NAMED_VALUE_FLOAT_DATA :: deser (version , payload) . map (Self :: NAMED_VALUE_FLOAT) , PLAY_TUNE_DATA :: ID => PLAY_TUNE_DATA :: deser (version , payload) . map (Self :: PLAY_TUNE) , VICON_POSITION_ESTIMATE_DATA :: ID => VICON_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VICON_POSITION_ESTIMATE) , PARAM_REQUEST_READ_DATA :: ID => PARAM_REQUEST_READ_DATA :: deser (version , payload) . map (Self :: PARAM_REQUEST_READ) , PARAM_VALUE_DATA :: ID => PARAM_VALUE_DATA :: deser (version , payload) . map (Self :: PARAM_VALUE) , SAFETY_ALLOWED_AREA_DATA :: ID => SAFETY_ALLOWED_AREA_DATA :: deser (version , payload) . map (Self :: SAFETY_ALLOWED_AREA) , GPS_RAW_INT_DATA :: ID => GPS_RAW_INT_DATA :: deser (version , payload) . map (Self :: GPS_RAW_INT) , MOUNT_ORIENTATION_DATA :: ID => MOUNT_ORIENTATION_DATA :: deser (version , payload) . map (Self :: MOUNT_ORIENTATION) , COMPONENT_INFORMATION_DATA :: ID => COMPONENT_INFORMATION_DATA :: deser (version , payload) . map (Self :: COMPONENT_INFORMATION) , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => CAMERA_TRACKING_GEO_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_TRACKING_GEO_STATUS) , CAN_FILTER_MODIFY_DATA :: ID => CAN_FILTER_MODIFY_DATA :: deser (version , payload) . map (Self :: CAN_FILTER_MODIFY) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_ATTITUDE_STATUS) , HIL_RC_INPUTS_RAW_DATA :: ID => HIL_RC_INPUTS_RAW_DATA :: deser (version , payload) . map (Self :: HIL_RC_INPUTS_RAW) , MISSION_CURRENT_DATA :: ID => MISSION_CURRENT_DATA :: deser (version , payload) . map (Self :: MISSION_CURRENT) , ESC_STATUS_DATA :: ID => ESC_STATUS_DATA :: deser (version , payload) . map (Self :: ESC_STATUS) , UAVCAN_NODE_INFO_DATA :: ID => UAVCAN_NODE_INFO_DATA :: deser (version , payload) . map (Self :: UAVCAN_NODE_INFO) , MAG_CAL_REPORT_DATA :: ID => MAG_CAL_REPORT_DATA :: deser (version , payload) . map (Self :: MAG_CAL_REPORT) , HIL_ACTUATOR_CONTROLS_DATA :: ID => HIL_ACTUATOR_CONTROLS_DATA :: deser (version , payload) . map (Self :: HIL_ACTUATOR_CONTROLS) , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => OPEN_DRONE_ID_BASIC_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_BASIC_ID) , ATTITUDE_QUATERNION_DATA :: ID => ATTITUDE_QUATERNION_DATA :: deser (version , payload) . map (Self :: ATTITUDE_QUATERNION) , V2_EXTENSION_DATA :: ID => V2_EXTENSION_DATA :: deser (version , payload) . map (Self :: V2_EXTENSION) , PARAM_EXT_VALUE_DATA :: ID => PARAM_EXT_VALUE_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_VALUE) , HEARTBEAT_DATA :: ID => HEARTBEAT_DATA :: deser (version , payload) . map (Self :: HEARTBEAT) , ENCAPSULATED_DATA_DATA :: ID => ENCAPSULATED_DATA_DATA :: deser (version , payload) . map (Self :: ENCAPSULATED_DATA) , ATTITUDE_TARGET_DATA :: ID => ATTITUDE_TARGET_DATA :: deser (version , payload) . map (Self :: ATTITUDE_TARGET) , OPTICAL_FLOW_DATA :: ID => OPTICAL_FLOW_DATA :: deser (version , payload) . map (Self :: OPTICAL_FLOW) , MISSION_ITEM_REACHED_DATA :: ID => MISSION_ITEM_REACHED_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM_REACHED) , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: deser (version , payload) . map (Self :: UAVIONIX_ADSB_OUT_DYNAMIC) , ISBD_LINK_STATUS_DATA :: ID => ISBD_LINK_STATUS_DATA :: deser (version , payload) . map (Self :: ISBD_LINK_STATUS) , RAW_PRESSURE_DATA :: ID => RAW_PRESSURE_DATA :: deser (version , payload) . map (Self :: RAW_PRESSURE) , CELLULAR_STATUS_DATA :: ID => CELLULAR_STATUS_DATA :: deser (version , payload) . map (Self :: CELLULAR_STATUS) , EVENT_DATA :: ID => EVENT_DATA :: deser (version , payload) . map (Self :: EVENT) , PARAM_EXT_REQUEST_READ_DATA :: ID => PARAM_EXT_REQUEST_READ_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_REQUEST_READ) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => CAMERA_TRACKING_IMAGE_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_TRACKING_IMAGE_STATUS) , SUPPORTED_TUNES_DATA :: ID => SUPPORTED_TUNES_DATA :: deser (version , payload) . map (Self :: SUPPORTED_TUNES) , GIMBAL_MANAGER_INFORMATION_DATA :: ID => GIMBAL_MANAGER_INFORMATION_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_INFORMATION) , SETUP_SIGNING_DATA :: ID => SETUP_SIGNING_DATA :: deser (version , payload) . map (Self :: SETUP_SIGNING) , FOLLOW_TARGET_DATA :: ID => FOLLOW_TARGET_DATA :: deser (version , payload) . map (Self :: FOLLOW_TARGET) , LOG_ENTRY_DATA :: ID => LOG_ENTRY_DATA :: deser (version , payload) . map (Self :: LOG_ENTRY) , DEBUG_FLOAT_ARRAY_DATA :: ID => DEBUG_FLOAT_ARRAY_DATA :: deser (version , payload) . map (Self :: DEBUG_FLOAT_ARRAY) , COMPONENT_METADATA_DATA :: ID => COMPONENT_METADATA_DATA :: deser (version , payload) . map (Self :: COMPONENT_METADATA) , SYSTEM_TIME_DATA :: ID => SYSTEM_TIME_DATA :: deser (version , payload) . map (Self :: SYSTEM_TIME) , SCALED_PRESSURE_DATA :: ID => SCALED_PRESSURE_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE) , TIMESYNC_DATA :: ID => TIMESYNC_DATA :: deser (version , payload) . map (Self :: TIMESYNC) , EFI_STATUS_DATA :: ID => EFI_STATUS_DATA :: deser (version , payload) . map (Self :: EFI_STATUS) , CONTROL_SYSTEM_STATE_DATA :: ID => CONTROL_SYSTEM_STATE_DATA :: deser (version , payload) . map (Self :: CONTROL_SYSTEM_STATE) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: GLOBAL_VISION_POSITION_ESTIMATE) , BUTTON_CHANGE_DATA :: ID => BUTTON_CHANGE_DATA :: deser (version , payload) . map (Self :: BUTTON_CHANGE) , ATT_POS_MOCAP_DATA :: ID => ATT_POS_MOCAP_DATA :: deser (version , payload) . map (Self :: ATT_POS_MOCAP) , ATTITUDE_QUATERNION_COV_DATA :: ID => ATTITUDE_QUATERNION_COV_DATA :: deser (version , payload) . map (Self :: ATTITUDE_QUATERNION_COV) , CURRENT_EVENT_SEQUENCE_DATA :: ID => CURRENT_EVENT_SEQUENCE_DATA :: deser (version , payload) . map (Self :: CURRENT_EVENT_SEQUENCE) , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => SET_ACTUATOR_CONTROL_TARGET_DATA :: deser (version , payload) . map (Self :: SET_ACTUATOR_CONTROL_TARGET) , SCALED_IMU3_DATA :: ID => SCALED_IMU3_DATA :: deser (version , payload) . map (Self :: SCALED_IMU3) , STATUSTEXT_DATA :: ID => STATUSTEXT_DATA :: deser (version , payload) . map (Self :: STATUSTEXT) , GPS2_RAW_DATA :: ID => GPS2_RAW_DATA :: deser (version , payload) . map (Self :: GPS2_RAW) , MISSION_SET_CURRENT_DATA :: ID => MISSION_SET_CURRENT_DATA :: deser (version , payload) . map (Self :: MISSION_SET_CURRENT) , SMART_BATTERY_INFO_DATA :: ID => SMART_BATTERY_INFO_DATA :: deser (version , payload) . map (Self :: SMART_BATTERY_INFO) , TERRAIN_REQUEST_DATA :: ID => TERRAIN_REQUEST_DATA :: deser (version , payload) . map (Self :: TERRAIN_REQUEST) , DISTANCE_SENSOR_DATA :: ID => DISTANCE_SENSOR_DATA :: deser (version , payload) . map (Self :: DISTANCE_SENSOR) , MISSION_ITEM_INT_DATA :: ID => MISSION_ITEM_INT_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM_INT) , GENERATOR_STATUS_DATA :: ID => GENERATOR_STATUS_DATA :: deser (version , payload) . map (Self :: GENERATOR_STATUS) , DEBUG_DATA :: ID => DEBUG_DATA :: deser (version , payload) . map (Self :: DEBUG) , WHEEL_DISTANCE_DATA :: ID => WHEEL_DISTANCE_DATA :: deser (version , payload) . map (Self :: WHEEL_DISTANCE) , RAW_IMU_DATA :: ID => RAW_IMU_DATA :: deser (version , payload) . map (Self :: RAW_IMU) , MEMORY_VECT_DATA :: ID => MEMORY_VECT_DATA :: deser (version , payload) . map (Self :: MEMORY_VECT) , POSITION_TARGET_GLOBAL_INT_DATA :: ID => POSITION_TARGET_GLOBAL_INT_DATA :: deser (version , payload) . map (Self :: POSITION_TARGET_GLOBAL_INT) , AUTH_KEY_DATA :: ID => AUTH_KEY_DATA :: deser (version , payload) . map (Self :: AUTH_KEY) , SCALED_IMU2_DATA :: ID => SCALED_IMU2_DATA :: deser (version , payload) . map (Self :: SCALED_IMU2) , SYS_STATUS_DATA :: ID => SYS_STATUS_DATA :: deser (version , payload) . map (Self :: SYS_STATUS) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET) , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => SET_POSITION_TARGET_LOCAL_NED_DATA :: deser (version , payload) . map (Self :: SET_POSITION_TARGET_LOCAL_NED) , HIL_OPTICAL_FLOW_DATA :: ID => HIL_OPTICAL_FLOW_DATA :: deser (version , payload) . map (Self :: HIL_OPTICAL_FLOW) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: deser (version , payload) . map (Self :: TRAJECTORY_REPRESENTATION_BEZIER) , VISION_POSITION_ESTIMATE_DATA :: ID => VISION_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VISION_POSITION_ESTIMATE) , PING_DATA :: ID => PING_DATA :: deser (version , payload) . map (Self :: PING) , LOGGING_DATA_DATA :: ID => LOGGING_DATA_DATA :: deser (version , payload) . map (Self :: LOGGING_DATA) , VIBRATION_DATA :: ID => VIBRATION_DATA :: deser (version , payload) . map (Self :: VIBRATION) , REQUEST_DATA_STREAM_DATA :: ID => REQUEST_DATA_STREAM_DATA :: deser (version , payload) . map (Self :: REQUEST_DATA_STREAM) , EXTENDED_SYS_STATE_DATA :: ID => EXTENDED_SYS_STATE_DATA :: deser (version , payload) . map (Self :: EXTENDED_SYS_STATE) , POSITION_TARGET_LOCAL_NED_DATA :: ID => POSITION_TARGET_LOCAL_NED_DATA :: deser (version , payload) . map (Self :: POSITION_TARGET_LOCAL_NED) , SET_MODE_DATA :: ID => SET_MODE_DATA :: deser (version , payload) . map (Self :: SET_MODE) , LOGGING_DATA_ACKED_DATA :: ID => LOGGING_DATA_ACKED_DATA :: deser (version , payload) . map (Self :: LOGGING_DATA_ACKED) , GPS_GLOBAL_ORIGIN_DATA :: ID => GPS_GLOBAL_ORIGIN_DATA :: deser (version , payload) . map (Self :: GPS_GLOBAL_ORIGIN) , GLOBAL_POSITION_INT_COV_DATA :: ID => GLOBAL_POSITION_INT_COV_DATA :: deser (version , payload) . map (Self :: GLOBAL_POSITION_INT_COV) , CAMERA_CAPTURE_STATUS_DATA :: ID => CAMERA_CAPTURE_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_CAPTURE_STATUS) , DATA_STREAM_DATA :: ID => DATA_STREAM_DATA :: deser (version , payload) . map (Self :: DATA_STREAM) , ACTUATOR_CONTROL_TARGET_DATA :: ID => ACTUATOR_CONTROL_TARGET_DATA :: deser (version , payload) . map (Self :: ACTUATOR_CONTROL_TARGET) , TERRAIN_CHECK_DATA :: ID => TERRAIN_CHECK_DATA :: deser (version , payload) . map (Self :: TERRAIN_CHECK) , RAW_RPM_DATA :: ID => RAW_RPM_DATA :: deser (version , payload) . map (Self :: RAW_RPM) , RC_CHANNELS_OVERRIDE_DATA :: ID => RC_CHANNELS_OVERRIDE_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_OVERRIDE) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => OPEN_DRONE_ID_AUTHENTICATION_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_AUTHENTICATION) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: deser (version , payload) . map (Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT) , PARAM_SET_DATA :: ID => PARAM_SET_DATA :: deser (version , payload) . map (Self :: PARAM_SET) , HIL_STATE_DATA :: ID => HIL_STATE_DATA :: deser (version , payload) . map (Self :: HIL_STATE) , LOG_REQUEST_DATA_DATA :: ID => LOG_REQUEST_DATA_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_DATA) , MANUAL_SETPOINT_DATA :: ID => MANUAL_SETPOINT_DATA :: deser (version , payload) . map (Self :: MANUAL_SETPOINT) , SET_ATTITUDE_TARGET_DATA :: ID => SET_ATTITUDE_TARGET_DATA :: deser (version , payload) . map (Self :: SET_ATTITUDE_TARGET) , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => OPEN_DRONE_ID_ARM_STATUS_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_ARM_STATUS) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_PITCHYAW) , COLLISION_DATA :: ID => COLLISION_DATA :: deser (version , payload) . map (Self :: COLLISION) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => SET_POSITION_TARGET_GLOBAL_INT_DATA :: deser (version , payload) . map (Self :: SET_POSITION_TARGET_GLOBAL_INT) , SAFETY_SET_ALLOWED_AREA_DATA :: ID => SAFETY_SET_ALLOWED_AREA_DATA :: deser (version , payload) . map (Self :: SAFETY_SET_ALLOWED_AREA) , PLAY_TUNE_V2_DATA :: ID => PLAY_TUNE_V2_DATA :: deser (version , payload) . map (Self :: PLAY_TUNE_V2) , OPEN_DRONE_ID_LOCATION_DATA :: ID => OPEN_DRONE_ID_LOCATION_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_LOCATION) , VFR_HUD_DATA :: ID => VFR_HUD_DATA :: deser (version , payload) . map (Self :: VFR_HUD) , CAMERA_INFORMATION_DATA :: ID => CAMERA_INFORMATION_DATA :: deser (version , payload) . map (Self :: CAMERA_INFORMATION) , FENCE_STATUS_DATA :: ID => FENCE_STATUS_DATA :: deser (version , payload) . map (Self :: FENCE_STATUS) , HIGH_LATENCY_DATA :: ID => HIGH_LATENCY_DATA :: deser (version , payload) . map (Self :: HIGH_LATENCY) , HIGH_LATENCY2_DATA :: ID => HIGH_LATENCY2_DATA :: deser (version , payload) . map (Self :: HIGH_LATENCY2) , LOG_ERASE_DATA :: ID => LOG_ERASE_DATA :: deser (version , payload) . map (Self :: LOG_ERASE) , OBSTACLE_DISTANCE_DATA :: ID => OBSTACLE_DISTANCE_DATA :: deser (version , payload) . map (Self :: OBSTACLE_DISTANCE) , ESC_INFO_DATA :: ID => ESC_INFO_DATA :: deser (version , payload) . map (Self :: ESC_INFO) , TUNNEL_DATA :: ID => TUNNEL_DATA :: deser (version , payload) . map (Self :: TUNNEL) , HIGHRES_IMU_DATA :: ID => HIGHRES_IMU_DATA :: deser (version , payload) . map (Self :: HIGHRES_IMU) , HIL_GPS_DATA :: ID => HIL_GPS_DATA :: deser (version , payload) . map (Self :: HIL_GPS) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SYSTEM_UPDATE) , VIDEO_STREAM_STATUS_DATA :: ID => VIDEO_STREAM_STATUS_DATA :: deser (version , payload) . map (Self :: VIDEO_STREAM_STATUS) , NAMED_VALUE_INT_DATA :: ID => NAMED_VALUE_INT_DATA :: deser (version , payload) . map (Self :: NAMED_VALUE_INT) , MISSION_ACK_DATA :: ID => MISSION_ACK_DATA :: deser (version , payload) . map (Self :: MISSION_ACK) , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => DATA_TRANSMISSION_HANDSHAKE_DATA :: deser (version , payload) . map (Self :: DATA_TRANSMISSION_HANDSHAKE) , CAMERA_FOV_STATUS_DATA :: ID => CAMERA_FOV_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_FOV_STATUS) , MESSAGE_INTERVAL_DATA :: ID => MESSAGE_INTERVAL_DATA :: deser (version , payload) . map (Self :: MESSAGE_INTERVAL) , LOG_REQUEST_LIST_DATA :: ID => LOG_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_LIST) , CAMERA_SETTINGS_DATA :: ID => CAMERA_SETTINGS_DATA :: deser (version , payload) . map (Self :: CAMERA_SETTINGS) , SIM_STATE_DATA :: ID => SIM_STATE_DATA :: deser (version , payload) . map (Self :: SIM_STATE) , TERRAIN_DATA_DATA :: ID => TERRAIN_DATA_DATA :: deser (version , payload) . map (Self :: TERRAIN_DATA) , OPEN_DRONE_ID_SYSTEM_DATA :: ID => OPEN_DRONE_ID_SYSTEM_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SYSTEM) , OPTICAL_FLOW_RAD_DATA :: ID => OPTICAL_FLOW_RAD_DATA :: deser (version , payload) . map (Self :: OPTICAL_FLOW_RAD) , WINCH_STATUS_DATA :: ID => WINCH_STATUS_DATA :: deser (version , payload) . map (Self :: WINCH_STATUS) , SCALED_IMU_DATA :: ID => SCALED_IMU_DATA :: deser (version , payload) . map (Self :: SCALED_IMU) , UAVIONIX_ADSB_OUT_CFG_DATA :: ID => UAVIONIX_ADSB_OUT_CFG_DATA :: deser (version , payload) . map (Self :: UAVIONIX_ADSB_OUT_CFG) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL) , SET_HOME_POSITION_DATA :: ID => SET_HOME_POSITION_DATA :: deser (version , payload) . map (Self :: SET_HOME_POSITION) , MISSION_CLEAR_ALL_DATA :: ID => MISSION_CLEAR_ALL_DATA :: deser (version , payload) . map (Self :: MISSION_CLEAR_ALL) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => OPEN_DRONE_ID_OPERATOR_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_OPERATOR_ID) , COMMAND_CANCEL_DATA :: ID => COMMAND_CANCEL_DATA :: deser (version , payload) . map (Self :: COMMAND_CANCEL) , MISSION_COUNT_DATA :: ID => MISSION_COUNT_DATA :: deser (version , payload) . map (Self :: MISSION_COUNT) , WIFI_CONFIG_AP_DATA :: ID => WIFI_CONFIG_AP_DATA :: deser (version , payload) . map (Self :: WIFI_CONFIG_AP) , MANUAL_CONTROL_DATA :: ID => MANUAL_CONTROL_DATA :: deser (version , payload) . map (Self :: MANUAL_CONTROL) , FILE_TRANSFER_PROTOCOL_DATA :: ID => FILE_TRANSFER_PROTOCOL_DATA :: deser (version , payload) . map (Self :: FILE_TRANSFER_PROTOCOL) , GIMBAL_MANAGER_STATUS_DATA :: ID => GIMBAL_MANAGER_STATUS_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_STATUS) , GIMBAL_DEVICE_INFORMATION_DATA :: ID => GIMBAL_DEVICE_INFORMATION_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_INFORMATION) , HOME_POSITION_DATA :: ID => HOME_POSITION_DATA :: deser (version , payload) . map (Self :: HOME_POSITION) , VISION_SPEED_ESTIMATE_DATA :: ID => VISION_SPEED_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VISION_SPEED_ESTIMATE) , FLIGHT_INFORMATION_DATA :: ID => FLIGHT_INFORMATION_DATA :: deser (version , payload) . map (Self :: FLIGHT_INFORMATION) , POWER_STATUS_DATA :: ID => POWER_STATUS_DATA :: deser (version , payload) . map (Self :: POWER_STATUS) , LOG_REQUEST_END_DATA :: ID => LOG_REQUEST_END_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_END) , SCALED_PRESSURE2_DATA :: ID => SCALED_PRESSURE2_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE2) , CELLULAR_CONFIG_DATA :: ID => CELLULAR_CONFIG_DATA :: deser (version , payload) . map (Self :: CELLULAR_CONFIG) , AIS_VESSEL_DATA :: ID => AIS_VESSEL_DATA :: deser (version , payload) . map (Self :: AIS_VESSEL) , NAV_CONTROLLER_OUTPUT_DATA :: ID => NAV_CONTROLLER_OUTPUT_DATA :: deser (version , payload) . map (Self :: NAV_CONTROLLER_OUTPUT) , RESOURCE_REQUEST_DATA :: ID => RESOURCE_REQUEST_DATA :: deser (version , payload) . map (Self :: RESOURCE_REQUEST) , PARAM_EXT_SET_DATA :: ID => PARAM_EXT_SET_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_SET) , CAMERA_IMAGE_CAPTURED_DATA :: ID => CAMERA_IMAGE_CAPTURED_DATA :: deser (version , payload) . map (Self :: CAMERA_IMAGE_CAPTURED) , COMMAND_ACK_DATA :: ID => COMMAND_ACK_DATA :: deser (version , payload) . map (Self :: COMMAND_ACK) , RC_CHANNELS_SCALED_DATA :: ID => RC_CHANNELS_SCALED_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_SCALED) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: deser (version , payload) . map (Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS) , MISSION_ITEM_DATA :: ID => MISSION_ITEM_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM) , COMMAND_LONG_DATA :: ID => COMMAND_LONG_DATA :: deser (version , payload) . map (Self :: COMMAND_LONG) , MISSION_REQUEST_INT_DATA :: ID => MISSION_REQUEST_INT_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_INT) , GLOBAL_POSITION_INT_DATA :: ID => GLOBAL_POSITION_INT_DATA :: deser (version , payload) . map (Self :: GLOBAL_POSITION_INT) , ADSB_VEHICLE_DATA :: ID => ADSB_VEHICLE_DATA :: deser (version , payload) . map (Self :: ADSB_VEHICLE) , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => SET_GPS_GLOBAL_ORIGIN_DATA :: deser (version , payload) . map (Self :: SET_GPS_GLOBAL_ORIGIN) , GPS_STATUS_DATA :: ID => GPS_STATUS_DATA :: deser (version , payload) . map (Self :: GPS_STATUS) , GPS2_RTK_DATA :: ID => GPS2_RTK_DATA :: deser (version , payload) . map (Self :: GPS2_RTK) , LANDING_TARGET_DATA :: ID => LANDING_TARGET_DATA :: deser (version , payload) . map (Self :: LANDING_TARGET) , SERVO_OUTPUT_RAW_DATA :: ID => SERVO_OUTPUT_RAW_DATA :: deser (version , payload) . map (Self :: SERVO_OUTPUT_RAW) , ALTITUDE_DATA :: ID => ALTITUDE_DATA :: deser (version , payload) . map (Self :: ALTITUDE) , HYGROMETER_SENSOR_DATA :: ID => HYGROMETER_SENSOR_DATA :: deser (version , payload) . map (Self :: HYGROMETER_SENSOR) , COMMAND_INT_DATA :: ID => COMMAND_INT_DATA :: deser (version , payload) . map (Self :: COMMAND_INT) , HIL_SENSOR_DATA :: ID => HIL_SENSOR_DATA :: deser (version , payload) . map (Self :: HIL_SENSOR) , ODOMETRY_DATA :: ID => ODOMETRY_DATA :: deser (version , payload) . map (Self :: ODOMETRY) , CAN_FRAME_DATA :: ID => CAN_FRAME_DATA :: deser (version , payload) . map (Self :: CAN_FRAME) , PARAM_EXT_REQUEST_LIST_DATA :: ID => PARAM_EXT_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_REQUEST_LIST) , GPS_RTCM_DATA_DATA :: ID => GPS_RTCM_DATA_DATA :: deser (version , payload) . map (Self :: GPS_RTCM_DATA) , GPS_RTK_DATA :: ID => GPS_RTK_DATA :: deser (version , payload) . map (Self :: GPS_RTK) , ATTITUDE_DATA :: ID => ATTITUDE_DATA :: deser (version , payload) . map (Self :: ATTITUDE) , SERIAL_CONTROL_DATA :: ID => SERIAL_CONTROL_DATA :: deser (version , payload) . map (Self :: SERIAL_CONTROL) , MISSION_REQUEST_LIST_DATA :: ID => MISSION_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_LIST) , CAMERA_TRIGGER_DATA :: ID => CAMERA_TRIGGER_DATA :: deser (version , payload) . map (Self :: CAMERA_TRIGGER) , ACTUATOR_OUTPUT_STATUS_DATA :: ID => ACTUATOR_OUTPUT_STATUS_DATA :: deser (version , payload) . map (Self :: ACTUATOR_OUTPUT_STATUS) , TIME_ESTIMATE_TO_TARGET_DATA :: ID => TIME_ESTIMATE_TO_TARGET_DATA :: deser (version , payload) . map (Self :: TIME_ESTIMATE_TO_TARGET) , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => MISSION_REQUEST_PARTIAL_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_PARTIAL_LIST) , DEBUG_VECT_DATA :: ID => DEBUG_VECT_DATA :: deser (version , payload) . map (Self :: DEBUG_VECT) , ORBIT_EXECUTION_STATUS_DATA :: ID => ORBIT_EXECUTION_STATUS_DATA :: deser (version , payload) . map (Self :: ORBIT_EXECUTION_STATUS) , LOGGING_ACK_DATA :: ID => LOGGING_ACK_DATA :: deser (version , payload) . map (Self :: LOGGING_ACK) , ONBOARD_COMPUTER_STATUS_DATA :: ID => ONBOARD_COMPUTER_STATUS_DATA :: deser (version , payload) . map (Self :: ONBOARD_COMPUTER_STATUS) , HIL_CONTROLS_DATA :: ID => HIL_CONTROLS_DATA :: deser (version , payload) . map (Self :: HIL_CONTROLS) , RESPONSE_EVENT_ERROR_DATA :: ID => RESPONSE_EVENT_ERROR_DATA :: deser (version , payload) . map (Self :: RESPONSE_EVENT_ERROR) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_MESSAGE_PACK) , HIL_STATE_QUATERNION_DATA :: ID => HIL_STATE_QUATERNION_DATA :: deser (version , payload) . map (Self :: HIL_STATE_QUATERNION) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => CHANGE_OPERATOR_CONTROL_ACK_DATA :: deser (version , payload) . map (Self :: CHANGE_OPERATOR_CONTROL_ACK) , LOCAL_POSITION_NED_COV_DATA :: ID => LOCAL_POSITION_NED_COV_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED_COV) , PARAM_MAP_RC_DATA :: ID => PARAM_MAP_RC_DATA :: deser (version , payload) . map (Self :: PARAM_MAP_RC) , REQUEST_EVENT_DATA :: ID => REQUEST_EVENT_DATA :: deser (version , payload) . map (Self :: REQUEST_EVENT) , MISSION_REQUEST_DATA :: ID => MISSION_REQUEST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST) , _ => { Err (:: mavlink_core :: error :: ParserError :: UnknownMessage { id }) } , } } fn message_name (& self) -> & 'static str { match self { Self :: RC_CHANNELS_RAW (..) => RC_CHANNELS_RAW_DATA :: NAME , Self :: UAVCAN_NODE_STATUS (..) => UAVCAN_NODE_STATUS_DATA :: NAME , Self :: LOCAL_POSITION_NED (..) => LOCAL_POSITION_NED_DATA :: NAME , Self :: BATTERY_STATUS (..) => BATTERY_STATUS_DATA :: NAME , Self :: TERRAIN_REPORT (..) => TERRAIN_REPORT_DATA :: NAME , Self :: OPEN_DRONE_ID_SELF_ID (..) => OPEN_DRONE_ID_SELF_ID_DATA :: NAME , Self :: UTM_GLOBAL_POSITION (..) => UTM_GLOBAL_POSITION_DATA :: NAME , Self :: SCALED_PRESSURE3 (..) => SCALED_PRESSURE3_DATA :: NAME , Self :: LOG_DATA (..) => LOG_DATA_DATA :: NAME , Self :: CHANGE_OPERATOR_CONTROL (..) => CHANGE_OPERATOR_CONTROL_DATA :: NAME , Self :: WIND_COV (..) => WIND_COV_DATA :: NAME , Self :: LINK_NODE_STATUS (..) => LINK_NODE_STATUS_DATA :: NAME , Self :: GPS_INJECT_DATA (..) => GPS_INJECT_DATA_DATA :: NAME , Self :: ESTIMATOR_STATUS (..) => ESTIMATOR_STATUS_DATA :: NAME , Self :: VIDEO_STREAM_INFORMATION (..) => VIDEO_STREAM_INFORMATION_DATA :: NAME , Self :: GIMBAL_DEVICE_SET_ATTITUDE (..) => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: NAME , Self :: CANFD_FRAME (..) => CANFD_FRAME_DATA :: NAME , Self :: AUTOPILOT_VERSION (..) => AUTOPILOT_VERSION_DATA :: NAME , Self :: MISSION_WRITE_PARTIAL_LIST (..) => MISSION_WRITE_PARTIAL_LIST_DATA :: NAME , Self :: PARAM_EXT_ACK (..) => PARAM_EXT_ACK_DATA :: NAME , Self :: RADIO_STATUS (..) => RADIO_STATUS_DATA :: NAME , Self :: RC_CHANNELS (..) => RC_CHANNELS_DATA :: NAME , Self :: GPS_INPUT (..) => GPS_INPUT_DATA :: NAME , Self :: STORAGE_INFORMATION (..) => STORAGE_INFORMATION_DATA :: NAME , Self :: PARAM_REQUEST_LIST (..) => PARAM_REQUEST_LIST_DATA :: NAME , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (..) => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_ATTITUDE (..) => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: NAME , Self :: PROTOCOL_VERSION (..) => PROTOCOL_VERSION_DATA :: NAME , Self :: NAMED_VALUE_FLOAT (..) => NAMED_VALUE_FLOAT_DATA :: NAME , Self :: PLAY_TUNE (..) => PLAY_TUNE_DATA :: NAME , Self :: VICON_POSITION_ESTIMATE (..) => VICON_POSITION_ESTIMATE_DATA :: NAME , Self :: PARAM_REQUEST_READ (..) => PARAM_REQUEST_READ_DATA :: NAME , Self :: PARAM_VALUE (..) => PARAM_VALUE_DATA :: NAME , Self :: SAFETY_ALLOWED_AREA (..) => SAFETY_ALLOWED_AREA_DATA :: NAME , Self :: GPS_RAW_INT (..) => GPS_RAW_INT_DATA :: NAME , Self :: MOUNT_ORIENTATION (..) => MOUNT_ORIENTATION_DATA :: NAME , Self :: COMPONENT_INFORMATION (..) => COMPONENT_INFORMATION_DATA :: NAME , Self :: CAMERA_TRACKING_GEO_STATUS (..) => CAMERA_TRACKING_GEO_STATUS_DATA :: NAME , Self :: CAN_FILTER_MODIFY (..) => CAN_FILTER_MODIFY_DATA :: NAME , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (..) => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: NAME , Self :: HIL_RC_INPUTS_RAW (..) => HIL_RC_INPUTS_RAW_DATA :: NAME , Self :: MISSION_CURRENT (..) => MISSION_CURRENT_DATA :: NAME , Self :: ESC_STATUS (..) => ESC_STATUS_DATA :: NAME , Self :: UAVCAN_NODE_INFO (..) => UAVCAN_NODE_INFO_DATA :: NAME , Self :: MAG_CAL_REPORT (..) => MAG_CAL_REPORT_DATA :: NAME , Self :: HIL_ACTUATOR_CONTROLS (..) => HIL_ACTUATOR_CONTROLS_DATA :: NAME , Self :: OPEN_DRONE_ID_BASIC_ID (..) => OPEN_DRONE_ID_BASIC_ID_DATA :: NAME , Self :: ATTITUDE_QUATERNION (..) => ATTITUDE_QUATERNION_DATA :: NAME , Self :: V2_EXTENSION (..) => V2_EXTENSION_DATA :: NAME , Self :: PARAM_EXT_VALUE (..) => PARAM_EXT_VALUE_DATA :: NAME , Self :: HEARTBEAT (..) => HEARTBEAT_DATA :: NAME , Self :: ENCAPSULATED_DATA (..) => ENCAPSULATED_DATA_DATA :: NAME , Self :: ATTITUDE_TARGET (..) => ATTITUDE_TARGET_DATA :: NAME , Self :: OPTICAL_FLOW (..) => OPTICAL_FLOW_DATA :: NAME , Self :: MISSION_ITEM_REACHED (..) => MISSION_ITEM_REACHED_DATA :: NAME , Self :: UAVIONIX_ADSB_OUT_DYNAMIC (..) => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: NAME , Self :: ISBD_LINK_STATUS (..) => ISBD_LINK_STATUS_DATA :: NAME , Self :: RAW_PRESSURE (..) => RAW_PRESSURE_DATA :: NAME , Self :: CELLULAR_STATUS (..) => CELLULAR_STATUS_DATA :: NAME , Self :: EVENT (..) => EVENT_DATA :: NAME , Self :: PARAM_EXT_REQUEST_READ (..) => PARAM_EXT_REQUEST_READ_DATA :: NAME , Self :: CAMERA_TRACKING_IMAGE_STATUS (..) => CAMERA_TRACKING_IMAGE_STATUS_DATA :: NAME , Self :: SUPPORTED_TUNES (..) => SUPPORTED_TUNES_DATA :: NAME , Self :: GIMBAL_MANAGER_INFORMATION (..) => GIMBAL_MANAGER_INFORMATION_DATA :: NAME , Self :: SETUP_SIGNING (..) => SETUP_SIGNING_DATA :: NAME , Self :: FOLLOW_TARGET (..) => FOLLOW_TARGET_DATA :: NAME , Self :: LOG_ENTRY (..) => LOG_ENTRY_DATA :: NAME , Self :: DEBUG_FLOAT_ARRAY (..) => DEBUG_FLOAT_ARRAY_DATA :: NAME , Self :: COMPONENT_METADATA (..) => COMPONENT_METADATA_DATA :: NAME , Self :: SYSTEM_TIME (..) => SYSTEM_TIME_DATA :: NAME , Self :: SCALED_PRESSURE (..) => SCALED_PRESSURE_DATA :: NAME , Self :: TIMESYNC (..) => TIMESYNC_DATA :: NAME , Self :: EFI_STATUS (..) => EFI_STATUS_DATA :: NAME , Self :: CONTROL_SYSTEM_STATE (..) => CONTROL_SYSTEM_STATE_DATA :: NAME , Self :: GLOBAL_VISION_POSITION_ESTIMATE (..) => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: NAME , Self :: BUTTON_CHANGE (..) => BUTTON_CHANGE_DATA :: NAME , Self :: ATT_POS_MOCAP (..) => ATT_POS_MOCAP_DATA :: NAME , Self :: ATTITUDE_QUATERNION_COV (..) => ATTITUDE_QUATERNION_COV_DATA :: NAME , Self :: CURRENT_EVENT_SEQUENCE (..) => CURRENT_EVENT_SEQUENCE_DATA :: NAME , Self :: SET_ACTUATOR_CONTROL_TARGET (..) => SET_ACTUATOR_CONTROL_TARGET_DATA :: NAME , Self :: SCALED_IMU3 (..) => SCALED_IMU3_DATA :: NAME , Self :: STATUSTEXT (..) => STATUSTEXT_DATA :: NAME , Self :: GPS2_RAW (..) => GPS2_RAW_DATA :: NAME , Self :: MISSION_SET_CURRENT (..) => MISSION_SET_CURRENT_DATA :: NAME , Self :: SMART_BATTERY_INFO (..) => SMART_BATTERY_INFO_DATA :: NAME , Self :: TERRAIN_REQUEST (..) => TERRAIN_REQUEST_DATA :: NAME , Self :: DISTANCE_SENSOR (..) => DISTANCE_SENSOR_DATA :: NAME , Self :: MISSION_ITEM_INT (..) => MISSION_ITEM_INT_DATA :: NAME , Self :: GENERATOR_STATUS (..) => GENERATOR_STATUS_DATA :: NAME , Self :: DEBUG (..) => DEBUG_DATA :: NAME , Self :: WHEEL_DISTANCE (..) => WHEEL_DISTANCE_DATA :: NAME , Self :: RAW_IMU (..) => RAW_IMU_DATA :: NAME , Self :: MEMORY_VECT (..) => MEMORY_VECT_DATA :: NAME , Self :: POSITION_TARGET_GLOBAL_INT (..) => POSITION_TARGET_GLOBAL_INT_DATA :: NAME , Self :: AUTH_KEY (..) => AUTH_KEY_DATA :: NAME , Self :: SCALED_IMU2 (..) => SCALED_IMU2_DATA :: NAME , Self :: SYS_STATUS (..) => SYS_STATUS_DATA :: NAME , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (..) => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: NAME , Self :: SET_POSITION_TARGET_LOCAL_NED (..) => SET_POSITION_TARGET_LOCAL_NED_DATA :: NAME , Self :: HIL_OPTICAL_FLOW (..) => HIL_OPTICAL_FLOW_DATA :: NAME , Self :: TRAJECTORY_REPRESENTATION_BEZIER (..) => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: NAME , Self :: VISION_POSITION_ESTIMATE (..) => VISION_POSITION_ESTIMATE_DATA :: NAME , Self :: PING (..) => PING_DATA :: NAME , Self :: LOGGING_DATA (..) => LOGGING_DATA_DATA :: NAME , Self :: VIBRATION (..) => VIBRATION_DATA :: NAME , Self :: REQUEST_DATA_STREAM (..) => REQUEST_DATA_STREAM_DATA :: NAME , Self :: EXTENDED_SYS_STATE (..) => EXTENDED_SYS_STATE_DATA :: NAME , Self :: POSITION_TARGET_LOCAL_NED (..) => POSITION_TARGET_LOCAL_NED_DATA :: NAME , Self :: SET_MODE (..) => SET_MODE_DATA :: NAME , Self :: LOGGING_DATA_ACKED (..) => LOGGING_DATA_ACKED_DATA :: NAME , Self :: GPS_GLOBAL_ORIGIN (..) => GPS_GLOBAL_ORIGIN_DATA :: NAME , Self :: GLOBAL_POSITION_INT_COV (..) => GLOBAL_POSITION_INT_COV_DATA :: NAME , Self :: CAMERA_CAPTURE_STATUS (..) => CAMERA_CAPTURE_STATUS_DATA :: NAME , Self :: DATA_STREAM (..) => DATA_STREAM_DATA :: NAME , Self :: ACTUATOR_CONTROL_TARGET (..) => ACTUATOR_CONTROL_TARGET_DATA :: NAME , Self :: TERRAIN_CHECK (..) => TERRAIN_CHECK_DATA :: NAME , Self :: RAW_RPM (..) => RAW_RPM_DATA :: NAME , Self :: RC_CHANNELS_OVERRIDE (..) => RC_CHANNELS_OVERRIDE_DATA :: NAME , Self :: OPEN_DRONE_ID_AUTHENTICATION (..) => OPEN_DRONE_ID_AUTHENTICATION_DATA :: NAME , Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (..) => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: NAME , Self :: PARAM_SET (..) => PARAM_SET_DATA :: NAME , Self :: HIL_STATE (..) => HIL_STATE_DATA :: NAME , Self :: LOG_REQUEST_DATA (..) => LOG_REQUEST_DATA_DATA :: NAME , Self :: MANUAL_SETPOINT (..) => MANUAL_SETPOINT_DATA :: NAME , Self :: SET_ATTITUDE_TARGET (..) => SET_ATTITUDE_TARGET_DATA :: NAME , Self :: OPEN_DRONE_ID_ARM_STATUS (..) => OPEN_DRONE_ID_ARM_STATUS_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_PITCHYAW (..) => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: NAME , Self :: COLLISION (..) => COLLISION_DATA :: NAME , Self :: SET_POSITION_TARGET_GLOBAL_INT (..) => SET_POSITION_TARGET_GLOBAL_INT_DATA :: NAME , Self :: SAFETY_SET_ALLOWED_AREA (..) => SAFETY_SET_ALLOWED_AREA_DATA :: NAME , Self :: PLAY_TUNE_V2 (..) => PLAY_TUNE_V2_DATA :: NAME , Self :: OPEN_DRONE_ID_LOCATION (..) => OPEN_DRONE_ID_LOCATION_DATA :: NAME , Self :: VFR_HUD (..) => VFR_HUD_DATA :: NAME , Self :: CAMERA_INFORMATION (..) => CAMERA_INFORMATION_DATA :: NAME , Self :: FENCE_STATUS (..) => FENCE_STATUS_DATA :: NAME , Self :: HIGH_LATENCY (..) => HIGH_LATENCY_DATA :: NAME , Self :: HIGH_LATENCY2 (..) => HIGH_LATENCY2_DATA :: NAME , Self :: LOG_ERASE (..) => LOG_ERASE_DATA :: NAME , Self :: OBSTACLE_DISTANCE (..) => OBSTACLE_DISTANCE_DATA :: NAME , Self :: ESC_INFO (..) => ESC_INFO_DATA :: NAME , Self :: TUNNEL (..) => TUNNEL_DATA :: NAME , Self :: HIGHRES_IMU (..) => HIGHRES_IMU_DATA :: NAME , Self :: HIL_GPS (..) => HIL_GPS_DATA :: NAME , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (..) => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: NAME , Self :: VIDEO_STREAM_STATUS (..) => VIDEO_STREAM_STATUS_DATA :: NAME , Self :: NAMED_VALUE_INT (..) => NAMED_VALUE_INT_DATA :: NAME , Self :: MISSION_ACK (..) => MISSION_ACK_DATA :: NAME , Self :: DATA_TRANSMISSION_HANDSHAKE (..) => DATA_TRANSMISSION_HANDSHAKE_DATA :: NAME , Self :: CAMERA_FOV_STATUS (..) => CAMERA_FOV_STATUS_DATA :: NAME , Self :: MESSAGE_INTERVAL (..) => MESSAGE_INTERVAL_DATA :: NAME , Self :: LOG_REQUEST_LIST (..) => LOG_REQUEST_LIST_DATA :: NAME , Self :: CAMERA_SETTINGS (..) => CAMERA_SETTINGS_DATA :: NAME , Self :: SIM_STATE (..) => SIM_STATE_DATA :: NAME , Self :: TERRAIN_DATA (..) => TERRAIN_DATA_DATA :: NAME , Self :: OPEN_DRONE_ID_SYSTEM (..) => OPEN_DRONE_ID_SYSTEM_DATA :: NAME , Self :: OPTICAL_FLOW_RAD (..) => OPTICAL_FLOW_RAD_DATA :: NAME , Self :: WINCH_STATUS (..) => WINCH_STATUS_DATA :: NAME , Self :: SCALED_IMU (..) => SCALED_IMU_DATA :: NAME , Self :: UAVIONIX_ADSB_OUT_CFG (..) => UAVIONIX_ADSB_OUT_CFG_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (..) => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: NAME , Self :: SET_HOME_POSITION (..) => SET_HOME_POSITION_DATA :: NAME , Self :: MISSION_CLEAR_ALL (..) => MISSION_CLEAR_ALL_DATA :: NAME , Self :: OPEN_DRONE_ID_OPERATOR_ID (..) => OPEN_DRONE_ID_OPERATOR_ID_DATA :: NAME , Self :: COMMAND_CANCEL (..) => COMMAND_CANCEL_DATA :: NAME , Self :: MISSION_COUNT (..) => MISSION_COUNT_DATA :: NAME , Self :: WIFI_CONFIG_AP (..) => WIFI_CONFIG_AP_DATA :: NAME , Self :: MANUAL_CONTROL (..) => MANUAL_CONTROL_DATA :: NAME , Self :: FILE_TRANSFER_PROTOCOL (..) => FILE_TRANSFER_PROTOCOL_DATA :: NAME , Self :: GIMBAL_MANAGER_STATUS (..) => GIMBAL_MANAGER_STATUS_DATA :: NAME , Self :: GIMBAL_DEVICE_INFORMATION (..) => GIMBAL_DEVICE_INFORMATION_DATA :: NAME , Self :: HOME_POSITION (..) => HOME_POSITION_DATA :: NAME , Self :: VISION_SPEED_ESTIMATE (..) => VISION_SPEED_ESTIMATE_DATA :: NAME , Self :: FLIGHT_INFORMATION (..) => FLIGHT_INFORMATION_DATA :: NAME , Self :: POWER_STATUS (..) => POWER_STATUS_DATA :: NAME , Self :: LOG_REQUEST_END (..) => LOG_REQUEST_END_DATA :: NAME , Self :: SCALED_PRESSURE2 (..) => SCALED_PRESSURE2_DATA :: NAME , Self :: CELLULAR_CONFIG (..) => CELLULAR_CONFIG_DATA :: NAME , Self :: AIS_VESSEL (..) => AIS_VESSEL_DATA :: NAME , Self :: NAV_CONTROLLER_OUTPUT (..) => NAV_CONTROLLER_OUTPUT_DATA :: NAME , Self :: RESOURCE_REQUEST (..) => RESOURCE_REQUEST_DATA :: NAME , Self :: PARAM_EXT_SET (..) => PARAM_EXT_SET_DATA :: NAME , Self :: CAMERA_IMAGE_CAPTURED (..) => CAMERA_IMAGE_CAPTURED_DATA :: NAME , Self :: COMMAND_ACK (..) => COMMAND_ACK_DATA :: NAME , Self :: RC_CHANNELS_SCALED (..) => RC_CHANNELS_SCALED_DATA :: NAME , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (..) => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: NAME , Self :: MISSION_ITEM (..) => MISSION_ITEM_DATA :: NAME , Self :: COMMAND_LONG (..) => COMMAND_LONG_DATA :: NAME , Self :: MISSION_REQUEST_INT (..) => MISSION_REQUEST_INT_DATA :: NAME , Self :: GLOBAL_POSITION_INT (..) => GLOBAL_POSITION_INT_DATA :: NAME , Self :: ADSB_VEHICLE (..) => ADSB_VEHICLE_DATA :: NAME , Self :: SET_GPS_GLOBAL_ORIGIN (..) => SET_GPS_GLOBAL_ORIGIN_DATA :: NAME , Self :: GPS_STATUS (..) => GPS_STATUS_DATA :: NAME , Self :: GPS2_RTK (..) => GPS2_RTK_DATA :: NAME , Self :: LANDING_TARGET (..) => LANDING_TARGET_DATA :: NAME , Self :: SERVO_OUTPUT_RAW (..) => SERVO_OUTPUT_RAW_DATA :: NAME , Self :: ALTITUDE (..) => ALTITUDE_DATA :: NAME , Self :: HYGROMETER_SENSOR (..) => HYGROMETER_SENSOR_DATA :: NAME , Self :: COMMAND_INT (..) => COMMAND_INT_DATA :: NAME , Self :: HIL_SENSOR (..) => HIL_SENSOR_DATA :: NAME , Self :: ODOMETRY (..) => ODOMETRY_DATA :: NAME , Self :: CAN_FRAME (..) => CAN_FRAME_DATA :: NAME , Self :: PARAM_EXT_REQUEST_LIST (..) => PARAM_EXT_REQUEST_LIST_DATA :: NAME , Self :: GPS_RTCM_DATA (..) => GPS_RTCM_DATA_DATA :: NAME , Self :: GPS_RTK (..) => GPS_RTK_DATA :: NAME , Self :: ATTITUDE (..) => ATTITUDE_DATA :: NAME , Self :: SERIAL_CONTROL (..) => SERIAL_CONTROL_DATA :: NAME , Self :: MISSION_REQUEST_LIST (..) => MISSION_REQUEST_LIST_DATA :: NAME , Self :: CAMERA_TRIGGER (..) => CAMERA_TRIGGER_DATA :: NAME , Self :: ACTUATOR_OUTPUT_STATUS (..) => ACTUATOR_OUTPUT_STATUS_DATA :: NAME , Self :: TIME_ESTIMATE_TO_TARGET (..) => TIME_ESTIMATE_TO_TARGET_DATA :: NAME , Self :: MISSION_REQUEST_PARTIAL_LIST (..) => MISSION_REQUEST_PARTIAL_LIST_DATA :: NAME , Self :: DEBUG_VECT (..) => DEBUG_VECT_DATA :: NAME , Self :: ORBIT_EXECUTION_STATUS (..) => ORBIT_EXECUTION_STATUS_DATA :: NAME , Self :: LOGGING_ACK (..) => LOGGING_ACK_DATA :: NAME , Self :: ONBOARD_COMPUTER_STATUS (..) => ONBOARD_COMPUTER_STATUS_DATA :: NAME , Self :: HIL_CONTROLS (..) => HIL_CONTROLS_DATA :: NAME , Self :: RESPONSE_EVENT_ERROR (..) => RESPONSE_EVENT_ERROR_DATA :: NAME , Self :: OPEN_DRONE_ID_MESSAGE_PACK (..) => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: NAME , Self :: HIL_STATE_QUATERNION (..) => HIL_STATE_QUATERNION_DATA :: NAME , Self :: CHANGE_OPERATOR_CONTROL_ACK (..) => CHANGE_OPERATOR_CONTROL_ACK_DATA :: NAME , Self :: LOCAL_POSITION_NED_COV (..) => LOCAL_POSITION_NED_COV_DATA :: NAME , Self :: PARAM_MAP_RC (..) => PARAM_MAP_RC_DATA :: NAME , Self :: REQUEST_EVENT (..) => REQUEST_EVENT_DATA :: NAME , Self :: MISSION_REQUEST (..) => MISSION_REQUEST_DATA :: NAME , } } fn message_id (& self) -> u32 { match self { Self :: RC_CHANNELS_RAW (..) => RC_CHANNELS_RAW_DATA :: ID , Self :: UAVCAN_NODE_STATUS (..) => UAVCAN_NODE_STATUS_DATA :: ID , Self :: LOCAL_POSITION_NED (..) => LOCAL_POSITION_NED_DATA :: ID , Self :: BATTERY_STATUS (..) => BATTERY_STATUS_DATA :: ID , Self :: TERRAIN_REPORT (..) => TERRAIN_REPORT_DATA :: ID , Self :: OPEN_DRONE_ID_SELF_ID (..) => OPEN_DRONE_ID_SELF_ID_DATA :: ID , Self :: UTM_GLOBAL_POSITION (..) => UTM_GLOBAL_POSITION_DATA :: ID , Self :: SCALED_PRESSURE3 (..) => SCALED_PRESSURE3_DATA :: ID , Self :: LOG_DATA (..) => LOG_DATA_DATA :: ID , Self :: CHANGE_OPERATOR_CONTROL (..) => CHANGE_OPERATOR_CONTROL_DATA :: ID , Self :: WIND_COV (..) => WIND_COV_DATA :: ID , Self :: LINK_NODE_STATUS (..) => LINK_NODE_STATUS_DATA :: ID , Self :: GPS_INJECT_DATA (..) => GPS_INJECT_DATA_DATA :: ID , Self :: ESTIMATOR_STATUS (..) => ESTIMATOR_STATUS_DATA :: ID , Self :: VIDEO_STREAM_INFORMATION (..) => VIDEO_STREAM_INFORMATION_DATA :: ID , Self :: GIMBAL_DEVICE_SET_ATTITUDE (..) => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID , Self :: CANFD_FRAME (..) => CANFD_FRAME_DATA :: ID , Self :: AUTOPILOT_VERSION (..) => AUTOPILOT_VERSION_DATA :: ID , Self :: MISSION_WRITE_PARTIAL_LIST (..) => MISSION_WRITE_PARTIAL_LIST_DATA :: ID , Self :: PARAM_EXT_ACK (..) => PARAM_EXT_ACK_DATA :: ID , Self :: RADIO_STATUS (..) => RADIO_STATUS_DATA :: ID , Self :: RC_CHANNELS (..) => RC_CHANNELS_DATA :: ID , Self :: GPS_INPUT (..) => GPS_INPUT_DATA :: ID , Self :: STORAGE_INFORMATION (..) => STORAGE_INFORMATION_DATA :: ID , Self :: PARAM_REQUEST_LIST (..) => PARAM_REQUEST_LIST_DATA :: ID , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (..) => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID , Self :: GIMBAL_MANAGER_SET_ATTITUDE (..) => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID , Self :: PROTOCOL_VERSION (..) => PROTOCOL_VERSION_DATA :: ID , Self :: NAMED_VALUE_FLOAT (..) => NAMED_VALUE_FLOAT_DATA :: ID , Self :: PLAY_TUNE (..) => PLAY_TUNE_DATA :: ID , Self :: VICON_POSITION_ESTIMATE (..) => VICON_POSITION_ESTIMATE_DATA :: ID , Self :: PARAM_REQUEST_READ (..) => PARAM_REQUEST_READ_DATA :: ID , Self :: PARAM_VALUE (..) => PARAM_VALUE_DATA :: ID , Self :: SAFETY_ALLOWED_AREA (..) => SAFETY_ALLOWED_AREA_DATA :: ID , Self :: GPS_RAW_INT (..) => GPS_RAW_INT_DATA :: ID , Self :: MOUNT_ORIENTATION (..) => MOUNT_ORIENTATION_DATA :: ID , Self :: COMPONENT_INFORMATION (..) => COMPONENT_INFORMATION_DATA :: ID , Self :: CAMERA_TRACKING_GEO_STATUS (..) => CAMERA_TRACKING_GEO_STATUS_DATA :: ID , Self :: CAN_FILTER_MODIFY (..) => CAN_FILTER_MODIFY_DATA :: ID , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (..) => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID , Self :: HIL_RC_INPUTS_RAW (..) => HIL_RC_INPUTS_RAW_DATA :: ID , Self :: MISSION_CURRENT (..) => MISSION_CURRENT_DATA :: ID , Self :: ESC_STATUS (..) => ESC_STATUS_DATA :: ID , Self :: UAVCAN_NODE_INFO (..) => UAVCAN_NODE_INFO_DATA :: ID , Self :: MAG_CAL_REPORT (..) => MAG_CAL_REPORT_DATA :: ID , Self :: HIL_ACTUATOR_CONTROLS (..) => HIL_ACTUATOR_CONTROLS_DATA :: ID , Self :: OPEN_DRONE_ID_BASIC_ID (..) => OPEN_DRONE_ID_BASIC_ID_DATA :: ID , Self :: ATTITUDE_QUATERNION (..) => ATTITUDE_QUATERNION_DATA :: ID , Self :: V2_EXTENSION (..) => V2_EXTENSION_DATA :: ID , Self :: PARAM_EXT_VALUE (..) => PARAM_EXT_VALUE_DATA :: ID , Self :: HEARTBEAT (..) => HEARTBEAT_DATA :: ID , Self :: ENCAPSULATED_DATA (..) => ENCAPSULATED_DATA_DATA :: ID , Self :: ATTITUDE_TARGET (..) => ATTITUDE_TARGET_DATA :: ID , Self :: OPTICAL_FLOW (..) => OPTICAL_FLOW_DATA :: ID , Self :: MISSION_ITEM_REACHED (..) => MISSION_ITEM_REACHED_DATA :: ID , Self :: UAVIONIX_ADSB_OUT_DYNAMIC (..) => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID , Self :: ISBD_LINK_STATUS (..) => ISBD_LINK_STATUS_DATA :: ID , Self :: RAW_PRESSURE (..) => RAW_PRESSURE_DATA :: ID , Self :: CELLULAR_STATUS (..) => CELLULAR_STATUS_DATA :: ID , Self :: EVENT (..) => EVENT_DATA :: ID , Self :: PARAM_EXT_REQUEST_READ (..) => PARAM_EXT_REQUEST_READ_DATA :: ID , Self :: CAMERA_TRACKING_IMAGE_STATUS (..) => CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID , Self :: SUPPORTED_TUNES (..) => SUPPORTED_TUNES_DATA :: ID , Self :: GIMBAL_MANAGER_INFORMATION (..) => GIMBAL_MANAGER_INFORMATION_DATA :: ID , Self :: SETUP_SIGNING (..) => SETUP_SIGNING_DATA :: ID , Self :: FOLLOW_TARGET (..) => FOLLOW_TARGET_DATA :: ID , Self :: LOG_ENTRY (..) => LOG_ENTRY_DATA :: ID , Self :: DEBUG_FLOAT_ARRAY (..) => DEBUG_FLOAT_ARRAY_DATA :: ID , Self :: COMPONENT_METADATA (..) => COMPONENT_METADATA_DATA :: ID , Self :: SYSTEM_TIME (..) => SYSTEM_TIME_DATA :: ID , Self :: SCALED_PRESSURE (..) => SCALED_PRESSURE_DATA :: ID , Self :: TIMESYNC (..) => TIMESYNC_DATA :: ID , Self :: EFI_STATUS (..) => EFI_STATUS_DATA :: ID , Self :: CONTROL_SYSTEM_STATE (..) => CONTROL_SYSTEM_STATE_DATA :: ID , Self :: GLOBAL_VISION_POSITION_ESTIMATE (..) => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID , Self :: BUTTON_CHANGE (..) => BUTTON_CHANGE_DATA :: ID , Self :: ATT_POS_MOCAP (..) => ATT_POS_MOCAP_DATA :: ID , Self :: ATTITUDE_QUATERNION_COV (..) => ATTITUDE_QUATERNION_COV_DATA :: ID , Self :: CURRENT_EVENT_SEQUENCE (..) => CURRENT_EVENT_SEQUENCE_DATA :: ID , Self :: SET_ACTUATOR_CONTROL_TARGET (..) => SET_ACTUATOR_CONTROL_TARGET_DATA :: ID , Self :: SCALED_IMU3 (..) => SCALED_IMU3_DATA :: ID , Self :: STATUSTEXT (..) => STATUSTEXT_DATA :: ID , Self :: GPS2_RAW (..) => GPS2_RAW_DATA :: ID , Self :: MISSION_SET_CURRENT (..) => MISSION_SET_CURRENT_DATA :: ID , Self :: SMART_BATTERY_INFO (..) => SMART_BATTERY_INFO_DATA :: ID , Self :: TERRAIN_REQUEST (..) => TERRAIN_REQUEST_DATA :: ID , Self :: DISTANCE_SENSOR (..) => DISTANCE_SENSOR_DATA :: ID , Self :: MISSION_ITEM_INT (..) => MISSION_ITEM_INT_DATA :: ID , Self :: GENERATOR_STATUS (..) => GENERATOR_STATUS_DATA :: ID , Self :: DEBUG (..) => DEBUG_DATA :: ID , Self :: WHEEL_DISTANCE (..) => WHEEL_DISTANCE_DATA :: ID , Self :: RAW_IMU (..) => RAW_IMU_DATA :: ID , Self :: MEMORY_VECT (..) => MEMORY_VECT_DATA :: ID , Self :: POSITION_TARGET_GLOBAL_INT (..) => POSITION_TARGET_GLOBAL_INT_DATA :: ID , Self :: AUTH_KEY (..) => AUTH_KEY_DATA :: ID , Self :: SCALED_IMU2 (..) => SCALED_IMU2_DATA :: ID , Self :: SYS_STATUS (..) => SYS_STATUS_DATA :: ID , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (..) => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID , Self :: SET_POSITION_TARGET_LOCAL_NED (..) => SET_POSITION_TARGET_LOCAL_NED_DATA :: ID , Self :: HIL_OPTICAL_FLOW (..) => HIL_OPTICAL_FLOW_DATA :: ID , Self :: TRAJECTORY_REPRESENTATION_BEZIER (..) => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID , Self :: VISION_POSITION_ESTIMATE (..) => VISION_POSITION_ESTIMATE_DATA :: ID , Self :: PING (..) => PING_DATA :: ID , Self :: LOGGING_DATA (..) => LOGGING_DATA_DATA :: ID , Self :: VIBRATION (..) => VIBRATION_DATA :: ID , Self :: REQUEST_DATA_STREAM (..) => REQUEST_DATA_STREAM_DATA :: ID , Self :: EXTENDED_SYS_STATE (..) => EXTENDED_SYS_STATE_DATA :: ID , Self :: POSITION_TARGET_LOCAL_NED (..) => POSITION_TARGET_LOCAL_NED_DATA :: ID , Self :: SET_MODE (..) => SET_MODE_DATA :: ID , Self :: LOGGING_DATA_ACKED (..) => LOGGING_DATA_ACKED_DATA :: ID , Self :: GPS_GLOBAL_ORIGIN (..) => GPS_GLOBAL_ORIGIN_DATA :: ID , Self :: GLOBAL_POSITION_INT_COV (..) => GLOBAL_POSITION_INT_COV_DATA :: ID , Self :: CAMERA_CAPTURE_STATUS (..) => CAMERA_CAPTURE_STATUS_DATA :: ID , Self :: DATA_STREAM (..) => DATA_STREAM_DATA :: ID , Self :: ACTUATOR_CONTROL_TARGET (..) => ACTUATOR_CONTROL_TARGET_DATA :: ID , Self :: TERRAIN_CHECK (..) => TERRAIN_CHECK_DATA :: ID , Self :: RAW_RPM (..) => RAW_RPM_DATA :: ID , Self :: RC_CHANNELS_OVERRIDE (..) => RC_CHANNELS_OVERRIDE_DATA :: ID , Self :: OPEN_DRONE_ID_AUTHENTICATION (..) => OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID , Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (..) => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID , Self :: PARAM_SET (..) => PARAM_SET_DATA :: ID , Self :: HIL_STATE (..) => HIL_STATE_DATA :: ID , Self :: LOG_REQUEST_DATA (..) => LOG_REQUEST_DATA_DATA :: ID , Self :: MANUAL_SETPOINT (..) => MANUAL_SETPOINT_DATA :: ID , Self :: SET_ATTITUDE_TARGET (..) => SET_ATTITUDE_TARGET_DATA :: ID , Self :: OPEN_DRONE_ID_ARM_STATUS (..) => OPEN_DRONE_ID_ARM_STATUS_DATA :: ID , Self :: GIMBAL_MANAGER_SET_PITCHYAW (..) => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID , Self :: COLLISION (..) => COLLISION_DATA :: ID , Self :: SET_POSITION_TARGET_GLOBAL_INT (..) => SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID , Self :: SAFETY_SET_ALLOWED_AREA (..) => SAFETY_SET_ALLOWED_AREA_DATA :: ID , Self :: PLAY_TUNE_V2 (..) => PLAY_TUNE_V2_DATA :: ID , Self :: OPEN_DRONE_ID_LOCATION (..) => OPEN_DRONE_ID_LOCATION_DATA :: ID , Self :: VFR_HUD (..) => VFR_HUD_DATA :: ID , Self :: CAMERA_INFORMATION (..) => CAMERA_INFORMATION_DATA :: ID , Self :: FENCE_STATUS (..) => FENCE_STATUS_DATA :: ID , Self :: HIGH_LATENCY (..) => HIGH_LATENCY_DATA :: ID , Self :: HIGH_LATENCY2 (..) => HIGH_LATENCY2_DATA :: ID , Self :: LOG_ERASE (..) => LOG_ERASE_DATA :: ID , Self :: OBSTACLE_DISTANCE (..) => OBSTACLE_DISTANCE_DATA :: ID , Self :: ESC_INFO (..) => ESC_INFO_DATA :: ID , Self :: TUNNEL (..) => TUNNEL_DATA :: ID , Self :: HIGHRES_IMU (..) => HIGHRES_IMU_DATA :: ID , Self :: HIL_GPS (..) => HIL_GPS_DATA :: ID , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (..) => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID , Self :: VIDEO_STREAM_STATUS (..) => VIDEO_STREAM_STATUS_DATA :: ID , Self :: NAMED_VALUE_INT (..) => NAMED_VALUE_INT_DATA :: ID , Self :: MISSION_ACK (..) => MISSION_ACK_DATA :: ID , Self :: DATA_TRANSMISSION_HANDSHAKE (..) => DATA_TRANSMISSION_HANDSHAKE_DATA :: ID , Self :: CAMERA_FOV_STATUS (..) => CAMERA_FOV_STATUS_DATA :: ID , Self :: MESSAGE_INTERVAL (..) => MESSAGE_INTERVAL_DATA :: ID , Self :: LOG_REQUEST_LIST (..) => LOG_REQUEST_LIST_DATA :: ID , Self :: CAMERA_SETTINGS (..) => CAMERA_SETTINGS_DATA :: ID , Self :: SIM_STATE (..) => SIM_STATE_DATA :: ID , Self :: TERRAIN_DATA (..) => TERRAIN_DATA_DATA :: ID , Self :: OPEN_DRONE_ID_SYSTEM (..) => OPEN_DRONE_ID_SYSTEM_DATA :: ID , Self :: OPTICAL_FLOW_RAD (..) => OPTICAL_FLOW_RAD_DATA :: ID , Self :: WINCH_STATUS (..) => WINCH_STATUS_DATA :: ID , Self :: SCALED_IMU (..) => SCALED_IMU_DATA :: ID , Self :: UAVIONIX_ADSB_OUT_CFG (..) => UAVIONIX_ADSB_OUT_CFG_DATA :: ID , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (..) => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID , Self :: SET_HOME_POSITION (..) => SET_HOME_POSITION_DATA :: ID , Self :: MISSION_CLEAR_ALL (..) => MISSION_CLEAR_ALL_DATA :: ID , Self :: OPEN_DRONE_ID_OPERATOR_ID (..) => OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID , Self :: COMMAND_CANCEL (..) => COMMAND_CANCEL_DATA :: ID , Self :: MISSION_COUNT (..) => MISSION_COUNT_DATA :: ID , Self :: WIFI_CONFIG_AP (..) => WIFI_CONFIG_AP_DATA :: ID , Self :: MANUAL_CONTROL (..) => MANUAL_CONTROL_DATA :: ID , Self :: FILE_TRANSFER_PROTOCOL (..) => FILE_TRANSFER_PROTOCOL_DATA :: ID , Self :: GIMBAL_MANAGER_STATUS (..) => GIMBAL_MANAGER_STATUS_DATA :: ID , Self :: GIMBAL_DEVICE_INFORMATION (..) => GIMBAL_DEVICE_INFORMATION_DATA :: ID , Self :: HOME_POSITION (..) => HOME_POSITION_DATA :: ID , Self :: VISION_SPEED_ESTIMATE (..) => VISION_SPEED_ESTIMATE_DATA :: ID , Self :: FLIGHT_INFORMATION (..) => FLIGHT_INFORMATION_DATA :: ID , Self :: POWER_STATUS (..) => POWER_STATUS_DATA :: ID , Self :: LOG_REQUEST_END (..) => LOG_REQUEST_END_DATA :: ID , Self :: SCALED_PRESSURE2 (..) => SCALED_PRESSURE2_DATA :: ID , Self :: CELLULAR_CONFIG (..) => CELLULAR_CONFIG_DATA :: ID , Self :: AIS_VESSEL (..) => AIS_VESSEL_DATA :: ID , Self :: NAV_CONTROLLER_OUTPUT (..) => NAV_CONTROLLER_OUTPUT_DATA :: ID , Self :: RESOURCE_REQUEST (..) => RESOURCE_REQUEST_DATA :: ID , Self :: PARAM_EXT_SET (..) => PARAM_EXT_SET_DATA :: ID , Self :: CAMERA_IMAGE_CAPTURED (..) => CAMERA_IMAGE_CAPTURED_DATA :: ID , Self :: COMMAND_ACK (..) => COMMAND_ACK_DATA :: ID , Self :: RC_CHANNELS_SCALED (..) => RC_CHANNELS_SCALED_DATA :: ID , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (..) => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID , Self :: MISSION_ITEM (..) => MISSION_ITEM_DATA :: ID , Self :: COMMAND_LONG (..) => COMMAND_LONG_DATA :: ID , Self :: MISSION_REQUEST_INT (..) => MISSION_REQUEST_INT_DATA :: ID , Self :: GLOBAL_POSITION_INT (..) => GLOBAL_POSITION_INT_DATA :: ID , Self :: ADSB_VEHICLE (..) => ADSB_VEHICLE_DATA :: ID , Self :: SET_GPS_GLOBAL_ORIGIN (..) => SET_GPS_GLOBAL_ORIGIN_DATA :: ID , Self :: GPS_STATUS (..) => GPS_STATUS_DATA :: ID , Self :: GPS2_RTK (..) => GPS2_RTK_DATA :: ID , Self :: LANDING_TARGET (..) => LANDING_TARGET_DATA :: ID , Self :: SERVO_OUTPUT_RAW (..) => SERVO_OUTPUT_RAW_DATA :: ID , Self :: ALTITUDE (..) => ALTITUDE_DATA :: ID , Self :: HYGROMETER_SENSOR (..) => HYGROMETER_SENSOR_DATA :: ID , Self :: COMMAND_INT (..) => COMMAND_INT_DATA :: ID , Self :: HIL_SENSOR (..) => HIL_SENSOR_DATA :: ID , Self :: ODOMETRY (..) => ODOMETRY_DATA :: ID , Self :: CAN_FRAME (..) => CAN_FRAME_DATA :: ID , Self :: PARAM_EXT_REQUEST_LIST (..) => PARAM_EXT_REQUEST_LIST_DATA :: ID , Self :: GPS_RTCM_DATA (..) => GPS_RTCM_DATA_DATA :: ID , Self :: GPS_RTK (..) => GPS_RTK_DATA :: ID , Self :: ATTITUDE (..) => ATTITUDE_DATA :: ID , Self :: SERIAL_CONTROL (..) => SERIAL_CONTROL_DATA :: ID , Self :: MISSION_REQUEST_LIST (..) => MISSION_REQUEST_LIST_DATA :: ID , Self :: CAMERA_TRIGGER (..) => CAMERA_TRIGGER_DATA :: ID , Self :: ACTUATOR_OUTPUT_STATUS (..) => ACTUATOR_OUTPUT_STATUS_DATA :: ID , Self :: TIME_ESTIMATE_TO_TARGET (..) => TIME_ESTIMATE_TO_TARGET_DATA :: ID , Self :: MISSION_REQUEST_PARTIAL_LIST (..) => MISSION_REQUEST_PARTIAL_LIST_DATA :: ID , Self :: DEBUG_VECT (..) => DEBUG_VECT_DATA :: ID , Self :: ORBIT_EXECUTION_STATUS (..) => ORBIT_EXECUTION_STATUS_DATA :: ID , Self :: LOGGING_ACK (..) => LOGGING_ACK_DATA :: ID , Self :: ONBOARD_COMPUTER_STATUS (..) => ONBOARD_COMPUTER_STATUS_DATA :: ID , Self :: HIL_CONTROLS (..) => HIL_CONTROLS_DATA :: ID , Self :: RESPONSE_EVENT_ERROR (..) => RESPONSE_EVENT_ERROR_DATA :: ID , Self :: OPEN_DRONE_ID_MESSAGE_PACK (..) => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID , Self :: HIL_STATE_QUATERNION (..) => HIL_STATE_QUATERNION_DATA :: ID , Self :: CHANGE_OPERATOR_CONTROL_ACK (..) => CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID , Self :: LOCAL_POSITION_NED_COV (..) => LOCAL_POSITION_NED_COV_DATA :: ID , Self :: PARAM_MAP_RC (..) => PARAM_MAP_RC_DATA :: ID , Self :: REQUEST_EVENT (..) => REQUEST_EVENT_DATA :: ID , Self :: MISSION_REQUEST (..) => MISSION_REQUEST_DATA :: ID , } } fn message_id_from_name (name : & str) -> Result < u32 , & 'static str > { match name { RC_CHANNELS_RAW_DATA :: NAME => Ok (RC_CHANNELS_RAW_DATA :: ID) , UAVCAN_NODE_STATUS_DATA :: NAME => Ok (UAVCAN_NODE_STATUS_DATA :: ID) , LOCAL_POSITION_NED_DATA :: NAME => Ok (LOCAL_POSITION_NED_DATA :: ID) , BATTERY_STATUS_DATA :: NAME => Ok (BATTERY_STATUS_DATA :: ID) , TERRAIN_REPORT_DATA :: NAME => Ok (TERRAIN_REPORT_DATA :: ID) , OPEN_DRONE_ID_SELF_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_SELF_ID_DATA :: ID) , UTM_GLOBAL_POSITION_DATA :: NAME => Ok (UTM_GLOBAL_POSITION_DATA :: ID) , SCALED_PRESSURE3_DATA :: NAME => Ok (SCALED_PRESSURE3_DATA :: ID) , LOG_DATA_DATA :: NAME => Ok (LOG_DATA_DATA :: ID) , CHANGE_OPERATOR_CONTROL_DATA :: NAME => Ok (CHANGE_OPERATOR_CONTROL_DATA :: ID) , WIND_COV_DATA :: NAME => Ok (WIND_COV_DATA :: ID) , LINK_NODE_STATUS_DATA :: NAME => Ok (LINK_NODE_STATUS_DATA :: ID) , GPS_INJECT_DATA_DATA :: NAME => Ok (GPS_INJECT_DATA_DATA :: ID) , ESTIMATOR_STATUS_DATA :: NAME => Ok (ESTIMATOR_STATUS_DATA :: ID) , VIDEO_STREAM_INFORMATION_DATA :: NAME => Ok (VIDEO_STREAM_INFORMATION_DATA :: ID) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: NAME => Ok (GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID) , CANFD_FRAME_DATA :: NAME => Ok (CANFD_FRAME_DATA :: ID) , AUTOPILOT_VERSION_DATA :: NAME => Ok (AUTOPILOT_VERSION_DATA :: ID) , MISSION_WRITE_PARTIAL_LIST_DATA :: NAME => Ok (MISSION_WRITE_PARTIAL_LIST_DATA :: ID) , PARAM_EXT_ACK_DATA :: NAME => Ok (PARAM_EXT_ACK_DATA :: ID) , RADIO_STATUS_DATA :: NAME => Ok (RADIO_STATUS_DATA :: ID) , RC_CHANNELS_DATA :: NAME => Ok (RC_CHANNELS_DATA :: ID) , GPS_INPUT_DATA :: NAME => Ok (GPS_INPUT_DATA :: ID) , STORAGE_INFORMATION_DATA :: NAME => Ok (STORAGE_INFORMATION_DATA :: ID) , PARAM_REQUEST_LIST_DATA :: NAME => Ok (PARAM_REQUEST_LIST_DATA :: ID) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: NAME => Ok (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID) , PROTOCOL_VERSION_DATA :: NAME => Ok (PROTOCOL_VERSION_DATA :: ID) , NAMED_VALUE_FLOAT_DATA :: NAME => Ok (NAMED_VALUE_FLOAT_DATA :: ID) , PLAY_TUNE_DATA :: NAME => Ok (PLAY_TUNE_DATA :: ID) , VICON_POSITION_ESTIMATE_DATA :: NAME => Ok (VICON_POSITION_ESTIMATE_DATA :: ID) , PARAM_REQUEST_READ_DATA :: NAME => Ok (PARAM_REQUEST_READ_DATA :: ID) , PARAM_VALUE_DATA :: NAME => Ok (PARAM_VALUE_DATA :: ID) , SAFETY_ALLOWED_AREA_DATA :: NAME => Ok (SAFETY_ALLOWED_AREA_DATA :: ID) , GPS_RAW_INT_DATA :: NAME => Ok (GPS_RAW_INT_DATA :: ID) , MOUNT_ORIENTATION_DATA :: NAME => Ok (MOUNT_ORIENTATION_DATA :: ID) , COMPONENT_INFORMATION_DATA :: NAME => Ok (COMPONENT_INFORMATION_DATA :: ID) , CAMERA_TRACKING_GEO_STATUS_DATA :: NAME => Ok (CAMERA_TRACKING_GEO_STATUS_DATA :: ID) , CAN_FILTER_MODIFY_DATA :: NAME => Ok (CAN_FILTER_MODIFY_DATA :: ID) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: NAME => Ok (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID) , HIL_RC_INPUTS_RAW_DATA :: NAME => Ok (HIL_RC_INPUTS_RAW_DATA :: ID) , MISSION_CURRENT_DATA :: NAME => Ok (MISSION_CURRENT_DATA :: ID) , ESC_STATUS_DATA :: NAME => Ok (ESC_STATUS_DATA :: ID) , UAVCAN_NODE_INFO_DATA :: NAME => Ok (UAVCAN_NODE_INFO_DATA :: ID) , MAG_CAL_REPORT_DATA :: NAME => Ok (MAG_CAL_REPORT_DATA :: ID) , HIL_ACTUATOR_CONTROLS_DATA :: NAME => Ok (HIL_ACTUATOR_CONTROLS_DATA :: ID) , OPEN_DRONE_ID_BASIC_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_BASIC_ID_DATA :: ID) , ATTITUDE_QUATERNION_DATA :: NAME => Ok (ATTITUDE_QUATERNION_DATA :: ID) , V2_EXTENSION_DATA :: NAME => Ok (V2_EXTENSION_DATA :: ID) , PARAM_EXT_VALUE_DATA :: NAME => Ok (PARAM_EXT_VALUE_DATA :: ID) , HEARTBEAT_DATA :: NAME => Ok (HEARTBEAT_DATA :: ID) , ENCAPSULATED_DATA_DATA :: NAME => Ok (ENCAPSULATED_DATA_DATA :: ID) , ATTITUDE_TARGET_DATA :: NAME => Ok (ATTITUDE_TARGET_DATA :: ID) , OPTICAL_FLOW_DATA :: NAME => Ok (OPTICAL_FLOW_DATA :: ID) , MISSION_ITEM_REACHED_DATA :: NAME => Ok (MISSION_ITEM_REACHED_DATA :: ID) , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: NAME => Ok (UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID) , ISBD_LINK_STATUS_DATA :: NAME => Ok (ISBD_LINK_STATUS_DATA :: ID) , RAW_PRESSURE_DATA :: NAME => Ok (RAW_PRESSURE_DATA :: ID) , CELLULAR_STATUS_DATA :: NAME => Ok (CELLULAR_STATUS_DATA :: ID) , EVENT_DATA :: NAME => Ok (EVENT_DATA :: ID) , PARAM_EXT_REQUEST_READ_DATA :: NAME => Ok (PARAM_EXT_REQUEST_READ_DATA :: ID) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: NAME => Ok (CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID) , SUPPORTED_TUNES_DATA :: NAME => Ok (SUPPORTED_TUNES_DATA :: ID) , GIMBAL_MANAGER_INFORMATION_DATA :: NAME => Ok (GIMBAL_MANAGER_INFORMATION_DATA :: ID) , SETUP_SIGNING_DATA :: NAME => Ok (SETUP_SIGNING_DATA :: ID) , FOLLOW_TARGET_DATA :: NAME => Ok (FOLLOW_TARGET_DATA :: ID) , LOG_ENTRY_DATA :: NAME => Ok (LOG_ENTRY_DATA :: ID) , DEBUG_FLOAT_ARRAY_DATA :: NAME => Ok (DEBUG_FLOAT_ARRAY_DATA :: ID) , COMPONENT_METADATA_DATA :: NAME => Ok (COMPONENT_METADATA_DATA :: ID) , SYSTEM_TIME_DATA :: NAME => Ok (SYSTEM_TIME_DATA :: ID) , SCALED_PRESSURE_DATA :: NAME => Ok (SCALED_PRESSURE_DATA :: ID) , TIMESYNC_DATA :: NAME => Ok (TIMESYNC_DATA :: ID) , EFI_STATUS_DATA :: NAME => Ok (EFI_STATUS_DATA :: ID) , CONTROL_SYSTEM_STATE_DATA :: NAME => Ok (CONTROL_SYSTEM_STATE_DATA :: ID) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: NAME => Ok (GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID) , BUTTON_CHANGE_DATA :: NAME => Ok (BUTTON_CHANGE_DATA :: ID) , ATT_POS_MOCAP_DATA :: NAME => Ok (ATT_POS_MOCAP_DATA :: ID) , ATTITUDE_QUATERNION_COV_DATA :: NAME => Ok (ATTITUDE_QUATERNION_COV_DATA :: ID) , CURRENT_EVENT_SEQUENCE_DATA :: NAME => Ok (CURRENT_EVENT_SEQUENCE_DATA :: ID) , SET_ACTUATOR_CONTROL_TARGET_DATA :: NAME => Ok (SET_ACTUATOR_CONTROL_TARGET_DATA :: ID) , SCALED_IMU3_DATA :: NAME => Ok (SCALED_IMU3_DATA :: ID) , STATUSTEXT_DATA :: NAME => Ok (STATUSTEXT_DATA :: ID) , GPS2_RAW_DATA :: NAME => Ok (GPS2_RAW_DATA :: ID) , MISSION_SET_CURRENT_DATA :: NAME => Ok (MISSION_SET_CURRENT_DATA :: ID) , SMART_BATTERY_INFO_DATA :: NAME => Ok (SMART_BATTERY_INFO_DATA :: ID) , TERRAIN_REQUEST_DATA :: NAME => Ok (TERRAIN_REQUEST_DATA :: ID) , DISTANCE_SENSOR_DATA :: NAME => Ok (DISTANCE_SENSOR_DATA :: ID) , MISSION_ITEM_INT_DATA :: NAME => Ok (MISSION_ITEM_INT_DATA :: ID) , GENERATOR_STATUS_DATA :: NAME => Ok (GENERATOR_STATUS_DATA :: ID) , DEBUG_DATA :: NAME => Ok (DEBUG_DATA :: ID) , WHEEL_DISTANCE_DATA :: NAME => Ok (WHEEL_DISTANCE_DATA :: ID) , RAW_IMU_DATA :: NAME => Ok (RAW_IMU_DATA :: ID) , MEMORY_VECT_DATA :: NAME => Ok (MEMORY_VECT_DATA :: ID) , POSITION_TARGET_GLOBAL_INT_DATA :: NAME => Ok (POSITION_TARGET_GLOBAL_INT_DATA :: ID) , AUTH_KEY_DATA :: NAME => Ok (AUTH_KEY_DATA :: ID) , SCALED_IMU2_DATA :: NAME => Ok (SCALED_IMU2_DATA :: ID) , SYS_STATUS_DATA :: NAME => Ok (SYS_STATUS_DATA :: ID) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: NAME => Ok (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID) , SET_POSITION_TARGET_LOCAL_NED_DATA :: NAME => Ok (SET_POSITION_TARGET_LOCAL_NED_DATA :: ID) , HIL_OPTICAL_FLOW_DATA :: NAME => Ok (HIL_OPTICAL_FLOW_DATA :: ID) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: NAME => Ok (TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID) , VISION_POSITION_ESTIMATE_DATA :: NAME => Ok (VISION_POSITION_ESTIMATE_DATA :: ID) , PING_DATA :: NAME => Ok (PING_DATA :: ID) , LOGGING_DATA_DATA :: NAME => Ok (LOGGING_DATA_DATA :: ID) , VIBRATION_DATA :: NAME => Ok (VIBRATION_DATA :: ID) , REQUEST_DATA_STREAM_DATA :: NAME => Ok (REQUEST_DATA_STREAM_DATA :: ID) , EXTENDED_SYS_STATE_DATA :: NAME => Ok (EXTENDED_SYS_STATE_DATA :: ID) , POSITION_TARGET_LOCAL_NED_DATA :: NAME => Ok (POSITION_TARGET_LOCAL_NED_DATA :: ID) , SET_MODE_DATA :: NAME => Ok (SET_MODE_DATA :: ID) , LOGGING_DATA_ACKED_DATA :: NAME => Ok (LOGGING_DATA_ACKED_DATA :: ID) , GPS_GLOBAL_ORIGIN_DATA :: NAME => Ok (GPS_GLOBAL_ORIGIN_DATA :: ID) , GLOBAL_POSITION_INT_COV_DATA :: NAME => Ok (GLOBAL_POSITION_INT_COV_DATA :: ID) , CAMERA_CAPTURE_STATUS_DATA :: NAME => Ok (CAMERA_CAPTURE_STATUS_DATA :: ID) , DATA_STREAM_DATA :: NAME => Ok (DATA_STREAM_DATA :: ID) , ACTUATOR_CONTROL_TARGET_DATA :: NAME => Ok (ACTUATOR_CONTROL_TARGET_DATA :: ID) , TERRAIN_CHECK_DATA :: NAME => Ok (TERRAIN_CHECK_DATA :: ID) , RAW_RPM_DATA :: NAME => Ok (RAW_RPM_DATA :: ID) , RC_CHANNELS_OVERRIDE_DATA :: NAME => Ok (RC_CHANNELS_OVERRIDE_DATA :: ID) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: NAME => Ok (OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: NAME => Ok (UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID) , PARAM_SET_DATA :: NAME => Ok (PARAM_SET_DATA :: ID) , HIL_STATE_DATA :: NAME => Ok (HIL_STATE_DATA :: ID) , LOG_REQUEST_DATA_DATA :: NAME => Ok (LOG_REQUEST_DATA_DATA :: ID) , MANUAL_SETPOINT_DATA :: NAME => Ok (MANUAL_SETPOINT_DATA :: ID) , SET_ATTITUDE_TARGET_DATA :: NAME => Ok (SET_ATTITUDE_TARGET_DATA :: ID) , OPEN_DRONE_ID_ARM_STATUS_DATA :: NAME => Ok (OPEN_DRONE_ID_ARM_STATUS_DATA :: ID) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID) , COLLISION_DATA :: NAME => Ok (COLLISION_DATA :: ID) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: NAME => Ok (SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID) , SAFETY_SET_ALLOWED_AREA_DATA :: NAME => Ok (SAFETY_SET_ALLOWED_AREA_DATA :: ID) , PLAY_TUNE_V2_DATA :: NAME => Ok (PLAY_TUNE_V2_DATA :: ID) , OPEN_DRONE_ID_LOCATION_DATA :: NAME => Ok (OPEN_DRONE_ID_LOCATION_DATA :: ID) , VFR_HUD_DATA :: NAME => Ok (VFR_HUD_DATA :: ID) , CAMERA_INFORMATION_DATA :: NAME => Ok (CAMERA_INFORMATION_DATA :: ID) , FENCE_STATUS_DATA :: NAME => Ok (FENCE_STATUS_DATA :: ID) , HIGH_LATENCY_DATA :: NAME => Ok (HIGH_LATENCY_DATA :: ID) , HIGH_LATENCY2_DATA :: NAME => Ok (HIGH_LATENCY2_DATA :: ID) , LOG_ERASE_DATA :: NAME => Ok (LOG_ERASE_DATA :: ID) , OBSTACLE_DISTANCE_DATA :: NAME => Ok (OBSTACLE_DISTANCE_DATA :: ID) , ESC_INFO_DATA :: NAME => Ok (ESC_INFO_DATA :: ID) , TUNNEL_DATA :: NAME => Ok (TUNNEL_DATA :: ID) , HIGHRES_IMU_DATA :: NAME => Ok (HIGHRES_IMU_DATA :: ID) , HIL_GPS_DATA :: NAME => Ok (HIL_GPS_DATA :: ID) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: NAME => Ok (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID) , VIDEO_STREAM_STATUS_DATA :: NAME => Ok (VIDEO_STREAM_STATUS_DATA :: ID) , NAMED_VALUE_INT_DATA :: NAME => Ok (NAMED_VALUE_INT_DATA :: ID) , MISSION_ACK_DATA :: NAME => Ok (MISSION_ACK_DATA :: ID) , DATA_TRANSMISSION_HANDSHAKE_DATA :: NAME => Ok (DATA_TRANSMISSION_HANDSHAKE_DATA :: ID) , CAMERA_FOV_STATUS_DATA :: NAME => Ok (CAMERA_FOV_STATUS_DATA :: ID) , MESSAGE_INTERVAL_DATA :: NAME => Ok (MESSAGE_INTERVAL_DATA :: ID) , LOG_REQUEST_LIST_DATA :: NAME => Ok (LOG_REQUEST_LIST_DATA :: ID) , CAMERA_SETTINGS_DATA :: NAME => Ok (CAMERA_SETTINGS_DATA :: ID) , SIM_STATE_DATA :: NAME => Ok (SIM_STATE_DATA :: ID) , TERRAIN_DATA_DATA :: NAME => Ok (TERRAIN_DATA_DATA :: ID) , OPEN_DRONE_ID_SYSTEM_DATA :: NAME => Ok (OPEN_DRONE_ID_SYSTEM_DATA :: ID) , OPTICAL_FLOW_RAD_DATA :: NAME => Ok (OPTICAL_FLOW_RAD_DATA :: ID) , WINCH_STATUS_DATA :: NAME => Ok (WINCH_STATUS_DATA :: ID) , SCALED_IMU_DATA :: NAME => Ok (SCALED_IMU_DATA :: ID) , UAVIONIX_ADSB_OUT_CFG_DATA :: NAME => Ok (UAVIONIX_ADSB_OUT_CFG_DATA :: ID) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID) , SET_HOME_POSITION_DATA :: NAME => Ok (SET_HOME_POSITION_DATA :: ID) , MISSION_CLEAR_ALL_DATA :: NAME => Ok (MISSION_CLEAR_ALL_DATA :: ID) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID) , COMMAND_CANCEL_DATA :: NAME => Ok (COMMAND_CANCEL_DATA :: ID) , MISSION_COUNT_DATA :: NAME => Ok (MISSION_COUNT_DATA :: ID) , WIFI_CONFIG_AP_DATA :: NAME => Ok (WIFI_CONFIG_AP_DATA :: ID) , MANUAL_CONTROL_DATA :: NAME => Ok (MANUAL_CONTROL_DATA :: ID) , FILE_TRANSFER_PROTOCOL_DATA :: NAME => Ok (FILE_TRANSFER_PROTOCOL_DATA :: ID) , GIMBAL_MANAGER_STATUS_DATA :: NAME => Ok (GIMBAL_MANAGER_STATUS_DATA :: ID) , GIMBAL_DEVICE_INFORMATION_DATA :: NAME => Ok (GIMBAL_DEVICE_INFORMATION_DATA :: ID) , HOME_POSITION_DATA :: NAME => Ok (HOME_POSITION_DATA :: ID) , VISION_SPEED_ESTIMATE_DATA :: NAME => Ok (VISION_SPEED_ESTIMATE_DATA :: ID) , FLIGHT_INFORMATION_DATA :: NAME => Ok (FLIGHT_INFORMATION_DATA :: ID) , POWER_STATUS_DATA :: NAME => Ok (POWER_STATUS_DATA :: ID) , LOG_REQUEST_END_DATA :: NAME => Ok (LOG_REQUEST_END_DATA :: ID) , SCALED_PRESSURE2_DATA :: NAME => Ok (SCALED_PRESSURE2_DATA :: ID) , CELLULAR_CONFIG_DATA :: NAME => Ok (CELLULAR_CONFIG_DATA :: ID) , AIS_VESSEL_DATA :: NAME => Ok (AIS_VESSEL_DATA :: ID) , NAV_CONTROLLER_OUTPUT_DATA :: NAME => Ok (NAV_CONTROLLER_OUTPUT_DATA :: ID) , RESOURCE_REQUEST_DATA :: NAME => Ok (RESOURCE_REQUEST_DATA :: ID) , PARAM_EXT_SET_DATA :: NAME => Ok (PARAM_EXT_SET_DATA :: ID) , CAMERA_IMAGE_CAPTURED_DATA :: NAME => Ok (CAMERA_IMAGE_CAPTURED_DATA :: ID) , COMMAND_ACK_DATA :: NAME => Ok (COMMAND_ACK_DATA :: ID) , RC_CHANNELS_SCALED_DATA :: NAME => Ok (RC_CHANNELS_SCALED_DATA :: ID) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: NAME => Ok (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID) , MISSION_ITEM_DATA :: NAME => Ok (MISSION_ITEM_DATA :: ID) , COMMAND_LONG_DATA :: NAME => Ok (COMMAND_LONG_DATA :: ID) , MISSION_REQUEST_INT_DATA :: NAME => Ok (MISSION_REQUEST_INT_DATA :: ID) , GLOBAL_POSITION_INT_DATA :: NAME => Ok (GLOBAL_POSITION_INT_DATA :: ID) , ADSB_VEHICLE_DATA :: NAME => Ok (ADSB_VEHICLE_DATA :: ID) , SET_GPS_GLOBAL_ORIGIN_DATA :: NAME => Ok (SET_GPS_GLOBAL_ORIGIN_DATA :: ID) , GPS_STATUS_DATA :: NAME => Ok (GPS_STATUS_DATA :: ID) , GPS2_RTK_DATA :: NAME => Ok (GPS2_RTK_DATA :: ID) , LANDING_TARGET_DATA :: NAME => Ok (LANDING_TARGET_DATA :: ID) , SERVO_OUTPUT_RAW_DATA :: NAME => Ok (SERVO_OUTPUT_RAW_DATA :: ID) , ALTITUDE_DATA :: NAME => Ok (ALTITUDE_DATA :: ID) , HYGROMETER_SENSOR_DATA :: NAME => Ok (HYGROMETER_SENSOR_DATA :: ID) , COMMAND_INT_DATA :: NAME => Ok (COMMAND_INT_DATA :: ID) , HIL_SENSOR_DATA :: NAME => Ok (HIL_SENSOR_DATA :: ID) , ODOMETRY_DATA :: NAME => Ok (ODOMETRY_DATA :: ID) , CAN_FRAME_DATA :: NAME => Ok (CAN_FRAME_DATA :: ID) , PARAM_EXT_REQUEST_LIST_DATA :: NAME => Ok (PARAM_EXT_REQUEST_LIST_DATA :: ID) , GPS_RTCM_DATA_DATA :: NAME => Ok (GPS_RTCM_DATA_DATA :: ID) , GPS_RTK_DATA :: NAME => Ok (GPS_RTK_DATA :: ID) , ATTITUDE_DATA :: NAME => Ok (ATTITUDE_DATA :: ID) , SERIAL_CONTROL_DATA :: NAME => Ok (SERIAL_CONTROL_DATA :: ID) , MISSION_REQUEST_LIST_DATA :: NAME => Ok (MISSION_REQUEST_LIST_DATA :: ID) , CAMERA_TRIGGER_DATA :: NAME => Ok (CAMERA_TRIGGER_DATA :: ID) , ACTUATOR_OUTPUT_STATUS_DATA :: NAME => Ok (ACTUATOR_OUTPUT_STATUS_DATA :: ID) , TIME_ESTIMATE_TO_TARGET_DATA :: NAME => Ok (TIME_ESTIMATE_TO_TARGET_DATA :: ID) , MISSION_REQUEST_PARTIAL_LIST_DATA :: NAME => Ok (MISSION_REQUEST_PARTIAL_LIST_DATA :: ID) , DEBUG_VECT_DATA :: NAME => Ok (DEBUG_VECT_DATA :: ID) , ORBIT_EXECUTION_STATUS_DATA :: NAME => Ok (ORBIT_EXECUTION_STATUS_DATA :: ID) , LOGGING_ACK_DATA :: NAME => Ok (LOGGING_ACK_DATA :: ID) , ONBOARD_COMPUTER_STATUS_DATA :: NAME => Ok (ONBOARD_COMPUTER_STATUS_DATA :: ID) , HIL_CONTROLS_DATA :: NAME => Ok (HIL_CONTROLS_DATA :: ID) , RESPONSE_EVENT_ERROR_DATA :: NAME => Ok (RESPONSE_EVENT_ERROR_DATA :: ID) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: NAME => Ok (OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID) , HIL_STATE_QUATERNION_DATA :: NAME => Ok (HIL_STATE_QUATERNION_DATA :: ID) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: NAME => Ok (CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID) , LOCAL_POSITION_NED_COV_DATA :: NAME => Ok (LOCAL_POSITION_NED_COV_DATA :: ID) , PARAM_MAP_RC_DATA :: NAME => Ok (PARAM_MAP_RC_DATA :: ID) , REQUEST_EVENT_DATA :: NAME => Ok (REQUEST_EVENT_DATA :: ID) , MISSION_REQUEST_DATA :: NAME => Ok (MISSION_REQUEST_DATA :: ID) , _ => { Err ("Invalid message name.") } } } fn default_message_from_id (id : u32) -> Result < Self , & 'static str > { match id { RC_CHANNELS_RAW_DATA :: ID => Ok (Self :: RC_CHANNELS_RAW (RC_CHANNELS_RAW_DATA :: default ())) , UAVCAN_NODE_STATUS_DATA :: ID => Ok (Self :: UAVCAN_NODE_STATUS (UAVCAN_NODE_STATUS_DATA :: default ())) , LOCAL_POSITION_NED_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED (LOCAL_POSITION_NED_DATA :: default ())) , BATTERY_STATUS_DATA :: ID => Ok (Self :: BATTERY_STATUS (BATTERY_STATUS_DATA :: default ())) , TERRAIN_REPORT_DATA :: ID => Ok (Self :: TERRAIN_REPORT (TERRAIN_REPORT_DATA :: default ())) , OPEN_DRONE_ID_SELF_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SELF_ID (OPEN_DRONE_ID_SELF_ID_DATA :: default ())) , UTM_GLOBAL_POSITION_DATA :: ID => Ok (Self :: UTM_GLOBAL_POSITION (UTM_GLOBAL_POSITION_DATA :: default ())) , SCALED_PRESSURE3_DATA :: ID => Ok (Self :: SCALED_PRESSURE3 (SCALED_PRESSURE3_DATA :: default ())) , LOG_DATA_DATA :: ID => Ok (Self :: LOG_DATA (LOG_DATA_DATA :: default ())) , CHANGE_OPERATOR_CONTROL_DATA :: ID => Ok (Self :: CHANGE_OPERATOR_CONTROL (CHANGE_OPERATOR_CONTROL_DATA :: default ())) , WIND_COV_DATA :: ID => Ok (Self :: WIND_COV (WIND_COV_DATA :: default ())) , LINK_NODE_STATUS_DATA :: ID => Ok (Self :: LINK_NODE_STATUS (LINK_NODE_STATUS_DATA :: default ())) , GPS_INJECT_DATA_DATA :: ID => Ok (Self :: GPS_INJECT_DATA (GPS_INJECT_DATA_DATA :: default ())) , ESTIMATOR_STATUS_DATA :: ID => Ok (Self :: ESTIMATOR_STATUS (ESTIMATOR_STATUS_DATA :: default ())) , VIDEO_STREAM_INFORMATION_DATA :: ID => Ok (Self :: VIDEO_STREAM_INFORMATION (VIDEO_STREAM_INFORMATION_DATA :: default ())) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_SET_ATTITUDE (GIMBAL_DEVICE_SET_ATTITUDE_DATA :: default ())) , CANFD_FRAME_DATA :: ID => Ok (Self :: CANFD_FRAME (CANFD_FRAME_DATA :: default ())) , AUTOPILOT_VERSION_DATA :: ID => Ok (Self :: AUTOPILOT_VERSION (AUTOPILOT_VERSION_DATA :: default ())) , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => Ok (Self :: MISSION_WRITE_PARTIAL_LIST (MISSION_WRITE_PARTIAL_LIST_DATA :: default ())) , PARAM_EXT_ACK_DATA :: ID => Ok (Self :: PARAM_EXT_ACK (PARAM_EXT_ACK_DATA :: default ())) , RADIO_STATUS_DATA :: ID => Ok (Self :: RADIO_STATUS (RADIO_STATUS_DATA :: default ())) , RC_CHANNELS_DATA :: ID => Ok (Self :: RC_CHANNELS (RC_CHANNELS_DATA :: default ())) , GPS_INPUT_DATA :: ID => Ok (Self :: GPS_INPUT (GPS_INPUT_DATA :: default ())) , STORAGE_INFORMATION_DATA :: ID => Ok (Self :: STORAGE_INFORMATION (STORAGE_INFORMATION_DATA :: default ())) , PARAM_REQUEST_LIST_DATA :: ID => Ok (Self :: PARAM_REQUEST_LIST (PARAM_REQUEST_LIST_DATA :: default ())) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => Ok (Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: default ())) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_ATTITUDE (GIMBAL_MANAGER_SET_ATTITUDE_DATA :: default ())) , PROTOCOL_VERSION_DATA :: ID => Ok (Self :: PROTOCOL_VERSION (PROTOCOL_VERSION_DATA :: default ())) , NAMED_VALUE_FLOAT_DATA :: ID => Ok (Self :: NAMED_VALUE_FLOAT (NAMED_VALUE_FLOAT_DATA :: default ())) , PLAY_TUNE_DATA :: ID => Ok (Self :: PLAY_TUNE (PLAY_TUNE_DATA :: default ())) , VICON_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: VICON_POSITION_ESTIMATE (VICON_POSITION_ESTIMATE_DATA :: default ())) , PARAM_REQUEST_READ_DATA :: ID => Ok (Self :: PARAM_REQUEST_READ (PARAM_REQUEST_READ_DATA :: default ())) , PARAM_VALUE_DATA :: ID => Ok (Self :: PARAM_VALUE (PARAM_VALUE_DATA :: default ())) , SAFETY_ALLOWED_AREA_DATA :: ID => Ok (Self :: SAFETY_ALLOWED_AREA (SAFETY_ALLOWED_AREA_DATA :: default ())) , GPS_RAW_INT_DATA :: ID => Ok (Self :: GPS_RAW_INT (GPS_RAW_INT_DATA :: default ())) , MOUNT_ORIENTATION_DATA :: ID => Ok (Self :: MOUNT_ORIENTATION (MOUNT_ORIENTATION_DATA :: default ())) , COMPONENT_INFORMATION_DATA :: ID => Ok (Self :: COMPONENT_INFORMATION (COMPONENT_INFORMATION_DATA :: default ())) , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => Ok (Self :: CAMERA_TRACKING_GEO_STATUS (CAMERA_TRACKING_GEO_STATUS_DATA :: default ())) , CAN_FILTER_MODIFY_DATA :: ID => Ok (Self :: CAN_FILTER_MODIFY (CAN_FILTER_MODIFY_DATA :: default ())) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: default ())) , HIL_RC_INPUTS_RAW_DATA :: ID => Ok (Self :: HIL_RC_INPUTS_RAW (HIL_RC_INPUTS_RAW_DATA :: default ())) , MISSION_CURRENT_DATA :: ID => Ok (Self :: MISSION_CURRENT (MISSION_CURRENT_DATA :: default ())) , ESC_STATUS_DATA :: ID => Ok (Self :: ESC_STATUS (ESC_STATUS_DATA :: default ())) , UAVCAN_NODE_INFO_DATA :: ID => Ok (Self :: UAVCAN_NODE_INFO (UAVCAN_NODE_INFO_DATA :: default ())) , MAG_CAL_REPORT_DATA :: ID => Ok (Self :: MAG_CAL_REPORT (MAG_CAL_REPORT_DATA :: default ())) , HIL_ACTUATOR_CONTROLS_DATA :: ID => Ok (Self :: HIL_ACTUATOR_CONTROLS (HIL_ACTUATOR_CONTROLS_DATA :: default ())) , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_BASIC_ID (OPEN_DRONE_ID_BASIC_ID_DATA :: default ())) , ATTITUDE_QUATERNION_DATA :: ID => Ok (Self :: ATTITUDE_QUATERNION (ATTITUDE_QUATERNION_DATA :: default ())) , V2_EXTENSION_DATA :: ID => Ok (Self :: V2_EXTENSION (V2_EXTENSION_DATA :: default ())) , PARAM_EXT_VALUE_DATA :: ID => Ok (Self :: PARAM_EXT_VALUE (PARAM_EXT_VALUE_DATA :: default ())) , HEARTBEAT_DATA :: ID => Ok (Self :: HEARTBEAT (HEARTBEAT_DATA :: default ())) , ENCAPSULATED_DATA_DATA :: ID => Ok (Self :: ENCAPSULATED_DATA (ENCAPSULATED_DATA_DATA :: default ())) , ATTITUDE_TARGET_DATA :: ID => Ok (Self :: ATTITUDE_TARGET (ATTITUDE_TARGET_DATA :: default ())) , OPTICAL_FLOW_DATA :: ID => Ok (Self :: OPTICAL_FLOW (OPTICAL_FLOW_DATA :: default ())) , MISSION_ITEM_REACHED_DATA :: ID => Ok (Self :: MISSION_ITEM_REACHED (MISSION_ITEM_REACHED_DATA :: default ())) , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID => Ok (Self :: UAVIONIX_ADSB_OUT_DYNAMIC (UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: default ())) , ISBD_LINK_STATUS_DATA :: ID => Ok (Self :: ISBD_LINK_STATUS (ISBD_LINK_STATUS_DATA :: default ())) , RAW_PRESSURE_DATA :: ID => Ok (Self :: RAW_PRESSURE (RAW_PRESSURE_DATA :: default ())) , CELLULAR_STATUS_DATA :: ID => Ok (Self :: CELLULAR_STATUS (CELLULAR_STATUS_DATA :: default ())) , EVENT_DATA :: ID => Ok (Self :: EVENT (EVENT_DATA :: default ())) , PARAM_EXT_REQUEST_READ_DATA :: ID => Ok (Self :: PARAM_EXT_REQUEST_READ (PARAM_EXT_REQUEST_READ_DATA :: default ())) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => Ok (Self :: CAMERA_TRACKING_IMAGE_STATUS (CAMERA_TRACKING_IMAGE_STATUS_DATA :: default ())) , SUPPORTED_TUNES_DATA :: ID => Ok (Self :: SUPPORTED_TUNES (SUPPORTED_TUNES_DATA :: default ())) , GIMBAL_MANAGER_INFORMATION_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_INFORMATION (GIMBAL_MANAGER_INFORMATION_DATA :: default ())) , SETUP_SIGNING_DATA :: ID => Ok (Self :: SETUP_SIGNING (SETUP_SIGNING_DATA :: default ())) , FOLLOW_TARGET_DATA :: ID => Ok (Self :: FOLLOW_TARGET (FOLLOW_TARGET_DATA :: default ())) , LOG_ENTRY_DATA :: ID => Ok (Self :: LOG_ENTRY (LOG_ENTRY_DATA :: default ())) , DEBUG_FLOAT_ARRAY_DATA :: ID => Ok (Self :: DEBUG_FLOAT_ARRAY (DEBUG_FLOAT_ARRAY_DATA :: default ())) , COMPONENT_METADATA_DATA :: ID => Ok (Self :: COMPONENT_METADATA (COMPONENT_METADATA_DATA :: default ())) , SYSTEM_TIME_DATA :: ID => Ok (Self :: SYSTEM_TIME (SYSTEM_TIME_DATA :: default ())) , SCALED_PRESSURE_DATA :: ID => Ok (Self :: SCALED_PRESSURE (SCALED_PRESSURE_DATA :: default ())) , TIMESYNC_DATA :: ID => Ok (Self :: TIMESYNC (TIMESYNC_DATA :: default ())) , EFI_STATUS_DATA :: ID => Ok (Self :: EFI_STATUS (EFI_STATUS_DATA :: default ())) , CONTROL_SYSTEM_STATE_DATA :: ID => Ok (Self :: CONTROL_SYSTEM_STATE (CONTROL_SYSTEM_STATE_DATA :: default ())) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: GLOBAL_VISION_POSITION_ESTIMATE (GLOBAL_VISION_POSITION_ESTIMATE_DATA :: default ())) , BUTTON_CHANGE_DATA :: ID => Ok (Self :: BUTTON_CHANGE (BUTTON_CHANGE_DATA :: default ())) , ATT_POS_MOCAP_DATA :: ID => Ok (Self :: ATT_POS_MOCAP (ATT_POS_MOCAP_DATA :: default ())) , ATTITUDE_QUATERNION_COV_DATA :: ID => Ok (Self :: ATTITUDE_QUATERNION_COV (ATTITUDE_QUATERNION_COV_DATA :: default ())) , CURRENT_EVENT_SEQUENCE_DATA :: ID => Ok (Self :: CURRENT_EVENT_SEQUENCE (CURRENT_EVENT_SEQUENCE_DATA :: default ())) , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => Ok (Self :: SET_ACTUATOR_CONTROL_TARGET (SET_ACTUATOR_CONTROL_TARGET_DATA :: default ())) , SCALED_IMU3_DATA :: ID => Ok (Self :: SCALED_IMU3 (SCALED_IMU3_DATA :: default ())) , STATUSTEXT_DATA :: ID => Ok (Self :: STATUSTEXT (STATUSTEXT_DATA :: default ())) , GPS2_RAW_DATA :: ID => Ok (Self :: GPS2_RAW (GPS2_RAW_DATA :: default ())) , MISSION_SET_CURRENT_DATA :: ID => Ok (Self :: MISSION_SET_CURRENT (MISSION_SET_CURRENT_DATA :: default ())) , SMART_BATTERY_INFO_DATA :: ID => Ok (Self :: SMART_BATTERY_INFO (SMART_BATTERY_INFO_DATA :: default ())) , TERRAIN_REQUEST_DATA :: ID => Ok (Self :: TERRAIN_REQUEST (TERRAIN_REQUEST_DATA :: default ())) , DISTANCE_SENSOR_DATA :: ID => Ok (Self :: DISTANCE_SENSOR (DISTANCE_SENSOR_DATA :: default ())) , MISSION_ITEM_INT_DATA :: ID => Ok (Self :: MISSION_ITEM_INT (MISSION_ITEM_INT_DATA :: default ())) , GENERATOR_STATUS_DATA :: ID => Ok (Self :: GENERATOR_STATUS (GENERATOR_STATUS_DATA :: default ())) , DEBUG_DATA :: ID => Ok (Self :: DEBUG (DEBUG_DATA :: default ())) , WHEEL_DISTANCE_DATA :: ID => Ok (Self :: WHEEL_DISTANCE (WHEEL_DISTANCE_DATA :: default ())) , RAW_IMU_DATA :: ID => Ok (Self :: RAW_IMU (RAW_IMU_DATA :: default ())) , MEMORY_VECT_DATA :: ID => Ok (Self :: MEMORY_VECT (MEMORY_VECT_DATA :: default ())) , POSITION_TARGET_GLOBAL_INT_DATA :: ID => Ok (Self :: POSITION_TARGET_GLOBAL_INT (POSITION_TARGET_GLOBAL_INT_DATA :: default ())) , AUTH_KEY_DATA :: ID => Ok (Self :: AUTH_KEY (AUTH_KEY_DATA :: default ())) , SCALED_IMU2_DATA :: ID => Ok (Self :: SCALED_IMU2 (SCALED_IMU2_DATA :: default ())) , SYS_STATUS_DATA :: ID => Ok (Self :: SYS_STATUS (SYS_STATUS_DATA :: default ())) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: default ())) , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => Ok (Self :: SET_POSITION_TARGET_LOCAL_NED (SET_POSITION_TARGET_LOCAL_NED_DATA :: default ())) , HIL_OPTICAL_FLOW_DATA :: ID => Ok (Self :: HIL_OPTICAL_FLOW (HIL_OPTICAL_FLOW_DATA :: default ())) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => Ok (Self :: TRAJECTORY_REPRESENTATION_BEZIER (TRAJECTORY_REPRESENTATION_BEZIER_DATA :: default ())) , VISION_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: VISION_POSITION_ESTIMATE (VISION_POSITION_ESTIMATE_DATA :: default ())) , PING_DATA :: ID => Ok (Self :: PING (PING_DATA :: default ())) , LOGGING_DATA_DATA :: ID => Ok (Self :: LOGGING_DATA (LOGGING_DATA_DATA :: default ())) , VIBRATION_DATA :: ID => Ok (Self :: VIBRATION (VIBRATION_DATA :: default ())) , REQUEST_DATA_STREAM_DATA :: ID => Ok (Self :: REQUEST_DATA_STREAM (REQUEST_DATA_STREAM_DATA :: default ())) , EXTENDED_SYS_STATE_DATA :: ID => Ok (Self :: EXTENDED_SYS_STATE (EXTENDED_SYS_STATE_DATA :: default ())) , POSITION_TARGET_LOCAL_NED_DATA :: ID => Ok (Self :: POSITION_TARGET_LOCAL_NED (POSITION_TARGET_LOCAL_NED_DATA :: default ())) , SET_MODE_DATA :: ID => Ok (Self :: SET_MODE (SET_MODE_DATA :: default ())) , LOGGING_DATA_ACKED_DATA :: ID => Ok (Self :: LOGGING_DATA_ACKED (LOGGING_DATA_ACKED_DATA :: default ())) , GPS_GLOBAL_ORIGIN_DATA :: ID => Ok (Self :: GPS_GLOBAL_ORIGIN (GPS_GLOBAL_ORIGIN_DATA :: default ())) , GLOBAL_POSITION_INT_COV_DATA :: ID => Ok (Self :: GLOBAL_POSITION_INT_COV (GLOBAL_POSITION_INT_COV_DATA :: default ())) , CAMERA_CAPTURE_STATUS_DATA :: ID => Ok (Self :: CAMERA_CAPTURE_STATUS (CAMERA_CAPTURE_STATUS_DATA :: default ())) , DATA_STREAM_DATA :: ID => Ok (Self :: DATA_STREAM (DATA_STREAM_DATA :: default ())) , ACTUATOR_CONTROL_TARGET_DATA :: ID => Ok (Self :: ACTUATOR_CONTROL_TARGET (ACTUATOR_CONTROL_TARGET_DATA :: default ())) , TERRAIN_CHECK_DATA :: ID => Ok (Self :: TERRAIN_CHECK (TERRAIN_CHECK_DATA :: default ())) , RAW_RPM_DATA :: ID => Ok (Self :: RAW_RPM (RAW_RPM_DATA :: default ())) , RC_CHANNELS_OVERRIDE_DATA :: ID => Ok (Self :: RC_CHANNELS_OVERRIDE (RC_CHANNELS_OVERRIDE_DATA :: default ())) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_AUTHENTICATION (OPEN_DRONE_ID_AUTHENTICATION_DATA :: default ())) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID => Ok (Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: default ())) , PARAM_SET_DATA :: ID => Ok (Self :: PARAM_SET (PARAM_SET_DATA :: default ())) , HIL_STATE_DATA :: ID => Ok (Self :: HIL_STATE (HIL_STATE_DATA :: default ())) , LOG_REQUEST_DATA_DATA :: ID => Ok (Self :: LOG_REQUEST_DATA (LOG_REQUEST_DATA_DATA :: default ())) , MANUAL_SETPOINT_DATA :: ID => Ok (Self :: MANUAL_SETPOINT (MANUAL_SETPOINT_DATA :: default ())) , SET_ATTITUDE_TARGET_DATA :: ID => Ok (Self :: SET_ATTITUDE_TARGET (SET_ATTITUDE_TARGET_DATA :: default ())) , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_ARM_STATUS (OPEN_DRONE_ID_ARM_STATUS_DATA :: default ())) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_PITCHYAW (GIMBAL_MANAGER_SET_PITCHYAW_DATA :: default ())) , COLLISION_DATA :: ID => Ok (Self :: COLLISION (COLLISION_DATA :: default ())) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => Ok (Self :: SET_POSITION_TARGET_GLOBAL_INT (SET_POSITION_TARGET_GLOBAL_INT_DATA :: default ())) , SAFETY_SET_ALLOWED_AREA_DATA :: ID => Ok (Self :: SAFETY_SET_ALLOWED_AREA (SAFETY_SET_ALLOWED_AREA_DATA :: default ())) , PLAY_TUNE_V2_DATA :: ID => Ok (Self :: PLAY_TUNE_V2 (PLAY_TUNE_V2_DATA :: default ())) , OPEN_DRONE_ID_LOCATION_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_LOCATION (OPEN_DRONE_ID_LOCATION_DATA :: default ())) , VFR_HUD_DATA :: ID => Ok (Self :: VFR_HUD (VFR_HUD_DATA :: default ())) , CAMERA_INFORMATION_DATA :: ID => Ok (Self :: CAMERA_INFORMATION (CAMERA_INFORMATION_DATA :: default ())) , FENCE_STATUS_DATA :: ID => Ok (Self :: FENCE_STATUS (FENCE_STATUS_DATA :: default ())) , HIGH_LATENCY_DATA :: ID => Ok (Self :: HIGH_LATENCY (HIGH_LATENCY_DATA :: default ())) , HIGH_LATENCY2_DATA :: ID => Ok (Self :: HIGH_LATENCY2 (HIGH_LATENCY2_DATA :: default ())) , LOG_ERASE_DATA :: ID => Ok (Self :: LOG_ERASE (LOG_ERASE_DATA :: default ())) , OBSTACLE_DISTANCE_DATA :: ID => Ok (Self :: OBSTACLE_DISTANCE (OBSTACLE_DISTANCE_DATA :: default ())) , ESC_INFO_DATA :: ID => Ok (Self :: ESC_INFO (ESC_INFO_DATA :: default ())) , TUNNEL_DATA :: ID => Ok (Self :: TUNNEL (TUNNEL_DATA :: default ())) , HIGHRES_IMU_DATA :: ID => Ok (Self :: HIGHRES_IMU (HIGHRES_IMU_DATA :: default ())) , HIL_GPS_DATA :: ID => Ok (Self :: HIL_GPS (HIL_GPS_DATA :: default ())) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: default ())) , VIDEO_STREAM_STATUS_DATA :: ID => Ok (Self :: VIDEO_STREAM_STATUS (VIDEO_STREAM_STATUS_DATA :: default ())) , NAMED_VALUE_INT_DATA :: ID => Ok (Self :: NAMED_VALUE_INT (NAMED_VALUE_INT_DATA :: default ())) , MISSION_ACK_DATA :: ID => Ok (Self :: MISSION_ACK (MISSION_ACK_DATA :: default ())) , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => Ok (Self :: DATA_TRANSMISSION_HANDSHAKE (DATA_TRANSMISSION_HANDSHAKE_DATA :: default ())) , CAMERA_FOV_STATUS_DATA :: ID => Ok (Self :: CAMERA_FOV_STATUS (CAMERA_FOV_STATUS_DATA :: default ())) , MESSAGE_INTERVAL_DATA :: ID => Ok (Self :: MESSAGE_INTERVAL (MESSAGE_INTERVAL_DATA :: default ())) , LOG_REQUEST_LIST_DATA :: ID => Ok (Self :: LOG_REQUEST_LIST (LOG_REQUEST_LIST_DATA :: default ())) , CAMERA_SETTINGS_DATA :: ID => Ok (Self :: CAMERA_SETTINGS (CAMERA_SETTINGS_DATA :: default ())) , SIM_STATE_DATA :: ID => Ok (Self :: SIM_STATE (SIM_STATE_DATA :: default ())) , TERRAIN_DATA_DATA :: ID => Ok (Self :: TERRAIN_DATA (TERRAIN_DATA_DATA :: default ())) , OPEN_DRONE_ID_SYSTEM_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SYSTEM (OPEN_DRONE_ID_SYSTEM_DATA :: default ())) , OPTICAL_FLOW_RAD_DATA :: ID => Ok (Self :: OPTICAL_FLOW_RAD (OPTICAL_FLOW_RAD_DATA :: default ())) , WINCH_STATUS_DATA :: ID => Ok (Self :: WINCH_STATUS (WINCH_STATUS_DATA :: default ())) , SCALED_IMU_DATA :: ID => Ok (Self :: SCALED_IMU (SCALED_IMU_DATA :: default ())) , UAVIONIX_ADSB_OUT_CFG_DATA :: ID => Ok (Self :: UAVIONIX_ADSB_OUT_CFG (UAVIONIX_ADSB_OUT_CFG_DATA :: default ())) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: default ())) , SET_HOME_POSITION_DATA :: ID => Ok (Self :: SET_HOME_POSITION (SET_HOME_POSITION_DATA :: default ())) , MISSION_CLEAR_ALL_DATA :: ID => Ok (Self :: MISSION_CLEAR_ALL (MISSION_CLEAR_ALL_DATA :: default ())) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_OPERATOR_ID (OPEN_DRONE_ID_OPERATOR_ID_DATA :: default ())) , COMMAND_CANCEL_DATA :: ID => Ok (Self :: COMMAND_CANCEL (COMMAND_CANCEL_DATA :: default ())) , MISSION_COUNT_DATA :: ID => Ok (Self :: MISSION_COUNT (MISSION_COUNT_DATA :: default ())) , WIFI_CONFIG_AP_DATA :: ID => Ok (Self :: WIFI_CONFIG_AP (WIFI_CONFIG_AP_DATA :: default ())) , MANUAL_CONTROL_DATA :: ID => Ok (Self :: MANUAL_CONTROL (MANUAL_CONTROL_DATA :: default ())) , FILE_TRANSFER_PROTOCOL_DATA :: ID => Ok (Self :: FILE_TRANSFER_PROTOCOL (FILE_TRANSFER_PROTOCOL_DATA :: default ())) , GIMBAL_MANAGER_STATUS_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_STATUS (GIMBAL_MANAGER_STATUS_DATA :: default ())) , GIMBAL_DEVICE_INFORMATION_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_INFORMATION (GIMBAL_DEVICE_INFORMATION_DATA :: default ())) , HOME_POSITION_DATA :: ID => Ok (Self :: HOME_POSITION (HOME_POSITION_DATA :: default ())) , VISION_SPEED_ESTIMATE_DATA :: ID => Ok (Self :: VISION_SPEED_ESTIMATE (VISION_SPEED_ESTIMATE_DATA :: default ())) , FLIGHT_INFORMATION_DATA :: ID => Ok (Self :: FLIGHT_INFORMATION (FLIGHT_INFORMATION_DATA :: default ())) , POWER_STATUS_DATA :: ID => Ok (Self :: POWER_STATUS (POWER_STATUS_DATA :: default ())) , LOG_REQUEST_END_DATA :: ID => Ok (Self :: LOG_REQUEST_END (LOG_REQUEST_END_DATA :: default ())) , SCALED_PRESSURE2_DATA :: ID => Ok (Self :: SCALED_PRESSURE2 (SCALED_PRESSURE2_DATA :: default ())) , CELLULAR_CONFIG_DATA :: ID => Ok (Self :: CELLULAR_CONFIG (CELLULAR_CONFIG_DATA :: default ())) , AIS_VESSEL_DATA :: ID => Ok (Self :: AIS_VESSEL (AIS_VESSEL_DATA :: default ())) , NAV_CONTROLLER_OUTPUT_DATA :: ID => Ok (Self :: NAV_CONTROLLER_OUTPUT (NAV_CONTROLLER_OUTPUT_DATA :: default ())) , RESOURCE_REQUEST_DATA :: ID => Ok (Self :: RESOURCE_REQUEST (RESOURCE_REQUEST_DATA :: default ())) , PARAM_EXT_SET_DATA :: ID => Ok (Self :: PARAM_EXT_SET (PARAM_EXT_SET_DATA :: default ())) , CAMERA_IMAGE_CAPTURED_DATA :: ID => Ok (Self :: CAMERA_IMAGE_CAPTURED (CAMERA_IMAGE_CAPTURED_DATA :: default ())) , COMMAND_ACK_DATA :: ID => Ok (Self :: COMMAND_ACK (COMMAND_ACK_DATA :: default ())) , RC_CHANNELS_SCALED_DATA :: ID => Ok (Self :: RC_CHANNELS_SCALED (RC_CHANNELS_SCALED_DATA :: default ())) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => Ok (Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: default ())) , MISSION_ITEM_DATA :: ID => Ok (Self :: MISSION_ITEM (MISSION_ITEM_DATA :: default ())) , COMMAND_LONG_DATA :: ID => Ok (Self :: COMMAND_LONG (COMMAND_LONG_DATA :: default ())) , MISSION_REQUEST_INT_DATA :: ID => Ok (Self :: MISSION_REQUEST_INT (MISSION_REQUEST_INT_DATA :: default ())) , GLOBAL_POSITION_INT_DATA :: ID => Ok (Self :: GLOBAL_POSITION_INT (GLOBAL_POSITION_INT_DATA :: default ())) , ADSB_VEHICLE_DATA :: ID => Ok (Self :: ADSB_VEHICLE (ADSB_VEHICLE_DATA :: default ())) , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => Ok (Self :: SET_GPS_GLOBAL_ORIGIN (SET_GPS_GLOBAL_ORIGIN_DATA :: default ())) , GPS_STATUS_DATA :: ID => Ok (Self :: GPS_STATUS (GPS_STATUS_DATA :: default ())) , GPS2_RTK_DATA :: ID => Ok (Self :: GPS2_RTK (GPS2_RTK_DATA :: default ())) , LANDING_TARGET_DATA :: ID => Ok (Self :: LANDING_TARGET (LANDING_TARGET_DATA :: default ())) , SERVO_OUTPUT_RAW_DATA :: ID => Ok (Self :: SERVO_OUTPUT_RAW (SERVO_OUTPUT_RAW_DATA :: default ())) , ALTITUDE_DATA :: ID => Ok (Self :: ALTITUDE (ALTITUDE_DATA :: default ())) , HYGROMETER_SENSOR_DATA :: ID => Ok (Self :: HYGROMETER_SENSOR (HYGROMETER_SENSOR_DATA :: default ())) , COMMAND_INT_DATA :: ID => Ok (Self :: COMMAND_INT (COMMAND_INT_DATA :: default ())) , HIL_SENSOR_DATA :: ID => Ok (Self :: HIL_SENSOR (HIL_SENSOR_DATA :: default ())) , ODOMETRY_DATA :: ID => Ok (Self :: ODOMETRY (ODOMETRY_DATA :: default ())) , CAN_FRAME_DATA :: ID => Ok (Self :: CAN_FRAME (CAN_FRAME_DATA :: default ())) , PARAM_EXT_REQUEST_LIST_DATA :: ID => Ok (Self :: PARAM_EXT_REQUEST_LIST (PARAM_EXT_REQUEST_LIST_DATA :: default ())) , GPS_RTCM_DATA_DATA :: ID => Ok (Self :: GPS_RTCM_DATA (GPS_RTCM_DATA_DATA :: default ())) , GPS_RTK_DATA :: ID => Ok (Self :: GPS_RTK (GPS_RTK_DATA :: default ())) , ATTITUDE_DATA :: ID => Ok (Self :: ATTITUDE (ATTITUDE_DATA :: default ())) , SERIAL_CONTROL_DATA :: ID => Ok (Self :: SERIAL_CONTROL (SERIAL_CONTROL_DATA :: default ())) , MISSION_REQUEST_LIST_DATA :: ID => Ok (Self :: MISSION_REQUEST_LIST (MISSION_REQUEST_LIST_DATA :: default ())) , CAMERA_TRIGGER_DATA :: ID => Ok (Self :: CAMERA_TRIGGER (CAMERA_TRIGGER_DATA :: default ())) , ACTUATOR_OUTPUT_STATUS_DATA :: ID => Ok (Self :: ACTUATOR_OUTPUT_STATUS (ACTUATOR_OUTPUT_STATUS_DATA :: default ())) , TIME_ESTIMATE_TO_TARGET_DATA :: ID => Ok (Self :: TIME_ESTIMATE_TO_TARGET (TIME_ESTIMATE_TO_TARGET_DATA :: default ())) , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => Ok (Self :: MISSION_REQUEST_PARTIAL_LIST (MISSION_REQUEST_PARTIAL_LIST_DATA :: default ())) , DEBUG_VECT_DATA :: ID => Ok (Self :: DEBUG_VECT (DEBUG_VECT_DATA :: default ())) , ORBIT_EXECUTION_STATUS_DATA :: ID => Ok (Self :: ORBIT_EXECUTION_STATUS (ORBIT_EXECUTION_STATUS_DATA :: default ())) , LOGGING_ACK_DATA :: ID => Ok (Self :: LOGGING_ACK (LOGGING_ACK_DATA :: default ())) , ONBOARD_COMPUTER_STATUS_DATA :: ID => Ok (Self :: ONBOARD_COMPUTER_STATUS (ONBOARD_COMPUTER_STATUS_DATA :: default ())) , HIL_CONTROLS_DATA :: ID => Ok (Self :: HIL_CONTROLS (HIL_CONTROLS_DATA :: default ())) , RESPONSE_EVENT_ERROR_DATA :: ID => Ok (Self :: RESPONSE_EVENT_ERROR (RESPONSE_EVENT_ERROR_DATA :: default ())) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_MESSAGE_PACK (OPEN_DRONE_ID_MESSAGE_PACK_DATA :: default ())) , HIL_STATE_QUATERNION_DATA :: ID => Ok (Self :: HIL_STATE_QUATERNION (HIL_STATE_QUATERNION_DATA :: default ())) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => Ok (Self :: CHANGE_OPERATOR_CONTROL_ACK (CHANGE_OPERATOR_CONTROL_ACK_DATA :: default ())) , LOCAL_POSITION_NED_COV_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED_COV (LOCAL_POSITION_NED_COV_DATA :: default ())) , PARAM_MAP_RC_DATA :: ID => Ok (Self :: PARAM_MAP_RC (PARAM_MAP_RC_DATA :: default ())) , REQUEST_EVENT_DATA :: ID => Ok (Self :: REQUEST_EVENT (REQUEST_EVENT_DATA :: default ())) , MISSION_REQUEST_DATA :: ID => Ok (Self :: MISSION_REQUEST (MISSION_REQUEST_DATA :: default ())) , _ => { Err ("Invalid message id.") } } } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { match self { Self :: RC_CHANNELS_RAW (body) => body . ser (version , bytes) , Self :: UAVCAN_NODE_STATUS (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED (body) => body . ser (version , bytes) , Self :: BATTERY_STATUS (body) => body . ser (version , bytes) , Self :: TERRAIN_REPORT (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SELF_ID (body) => body . ser (version , bytes) , Self :: UTM_GLOBAL_POSITION (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE3 (body) => body . ser (version , bytes) , Self :: LOG_DATA (body) => body . ser (version , bytes) , Self :: CHANGE_OPERATOR_CONTROL (body) => body . ser (version , bytes) , Self :: WIND_COV (body) => body . ser (version , bytes) , Self :: LINK_NODE_STATUS (body) => body . ser (version , bytes) , Self :: GPS_INJECT_DATA (body) => body . ser (version , bytes) , Self :: ESTIMATOR_STATUS (body) => body . ser (version , bytes) , Self :: VIDEO_STREAM_INFORMATION (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_SET_ATTITUDE (body) => body . ser (version , bytes) , Self :: CANFD_FRAME (body) => body . ser (version , bytes) , Self :: AUTOPILOT_VERSION (body) => body . ser (version , bytes) , Self :: MISSION_WRITE_PARTIAL_LIST (body) => body . ser (version , bytes) , Self :: PARAM_EXT_ACK (body) => body . ser (version , bytes) , Self :: RADIO_STATUS (body) => body . ser (version , bytes) , Self :: RC_CHANNELS (body) => body . ser (version , bytes) , Self :: GPS_INPUT (body) => body . ser (version , bytes) , Self :: STORAGE_INFORMATION (body) => body . ser (version , bytes) , Self :: PARAM_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_ATTITUDE (body) => body . ser (version , bytes) , Self :: PROTOCOL_VERSION (body) => body . ser (version , bytes) , Self :: NAMED_VALUE_FLOAT (body) => body . ser (version , bytes) , Self :: PLAY_TUNE (body) => body . ser (version , bytes) , Self :: VICON_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: PARAM_REQUEST_READ (body) => body . ser (version , bytes) , Self :: PARAM_VALUE (body) => body . ser (version , bytes) , Self :: SAFETY_ALLOWED_AREA (body) => body . ser (version , bytes) , Self :: GPS_RAW_INT (body) => body . ser (version , bytes) , Self :: MOUNT_ORIENTATION (body) => body . ser (version , bytes) , Self :: COMPONENT_INFORMATION (body) => body . ser (version , bytes) , Self :: CAMERA_TRACKING_GEO_STATUS (body) => body . ser (version , bytes) , Self :: CAN_FILTER_MODIFY (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (body) => body . ser (version , bytes) , Self :: HIL_RC_INPUTS_RAW (body) => body . ser (version , bytes) , Self :: MISSION_CURRENT (body) => body . ser (version , bytes) , Self :: ESC_STATUS (body) => body . ser (version , bytes) , Self :: UAVCAN_NODE_INFO (body) => body . ser (version , bytes) , Self :: MAG_CAL_REPORT (body) => body . ser (version , bytes) , Self :: HIL_ACTUATOR_CONTROLS (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_BASIC_ID (body) => body . ser (version , bytes) , Self :: ATTITUDE_QUATERNION (body) => body . ser (version , bytes) , Self :: V2_EXTENSION (body) => body . ser (version , bytes) , Self :: PARAM_EXT_VALUE (body) => body . ser (version , bytes) , Self :: HEARTBEAT (body) => body . ser (version , bytes) , Self :: ENCAPSULATED_DATA (body) => body . ser (version , bytes) , Self :: ATTITUDE_TARGET (body) => body . ser (version , bytes) , Self :: OPTICAL_FLOW (body) => body . ser (version , bytes) , Self :: MISSION_ITEM_REACHED (body) => body . ser (version , bytes) , Self :: UAVIONIX_ADSB_OUT_DYNAMIC (body) => body . ser (version , bytes) , Self :: ISBD_LINK_STATUS (body) => body . ser (version , bytes) , Self :: RAW_PRESSURE (body) => body . ser (version , bytes) , Self :: CELLULAR_STATUS (body) => body . ser (version , bytes) , Self :: EVENT (body) => body . ser (version , bytes) , Self :: PARAM_EXT_REQUEST_READ (body) => body . ser (version , bytes) , Self :: CAMERA_TRACKING_IMAGE_STATUS (body) => body . ser (version , bytes) , Self :: SUPPORTED_TUNES (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_INFORMATION (body) => body . ser (version , bytes) , Self :: SETUP_SIGNING (body) => body . ser (version , bytes) , Self :: FOLLOW_TARGET (body) => body . ser (version , bytes) , Self :: LOG_ENTRY (body) => body . ser (version , bytes) , Self :: DEBUG_FLOAT_ARRAY (body) => body . ser (version , bytes) , Self :: COMPONENT_METADATA (body) => body . ser (version , bytes) , Self :: SYSTEM_TIME (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE (body) => body . ser (version , bytes) , Self :: TIMESYNC (body) => body . ser (version , bytes) , Self :: EFI_STATUS (body) => body . ser (version , bytes) , Self :: CONTROL_SYSTEM_STATE (body) => body . ser (version , bytes) , Self :: GLOBAL_VISION_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: BUTTON_CHANGE (body) => body . ser (version , bytes) , Self :: ATT_POS_MOCAP (body) => body . ser (version , bytes) , Self :: ATTITUDE_QUATERNION_COV (body) => body . ser (version , bytes) , Self :: CURRENT_EVENT_SEQUENCE (body) => body . ser (version , bytes) , Self :: SET_ACTUATOR_CONTROL_TARGET (body) => body . ser (version , bytes) , Self :: SCALED_IMU3 (body) => body . ser (version , bytes) , Self :: STATUSTEXT (body) => body . ser (version , bytes) , Self :: GPS2_RAW (body) => body . ser (version , bytes) , Self :: MISSION_SET_CURRENT (body) => body . ser (version , bytes) , Self :: SMART_BATTERY_INFO (body) => body . ser (version , bytes) , Self :: TERRAIN_REQUEST (body) => body . ser (version , bytes) , Self :: DISTANCE_SENSOR (body) => body . ser (version , bytes) , Self :: MISSION_ITEM_INT (body) => body . ser (version , bytes) , Self :: GENERATOR_STATUS (body) => body . ser (version , bytes) , Self :: DEBUG (body) => body . ser (version , bytes) , Self :: WHEEL_DISTANCE (body) => body . ser (version , bytes) , Self :: RAW_IMU (body) => body . ser (version , bytes) , Self :: MEMORY_VECT (body) => body . ser (version , bytes) , Self :: POSITION_TARGET_GLOBAL_INT (body) => body . ser (version , bytes) , Self :: AUTH_KEY (body) => body . ser (version , bytes) , Self :: SCALED_IMU2 (body) => body . ser (version , bytes) , Self :: SYS_STATUS (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (body) => body . ser (version , bytes) , Self :: SET_POSITION_TARGET_LOCAL_NED (body) => body . ser (version , bytes) , Self :: HIL_OPTICAL_FLOW (body) => body . ser (version , bytes) , Self :: TRAJECTORY_REPRESENTATION_BEZIER (body) => body . ser (version , bytes) , Self :: VISION_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: PING (body) => body . ser (version , bytes) , Self :: LOGGING_DATA (body) => body . ser (version , bytes) , Self :: VIBRATION (body) => body . ser (version , bytes) , Self :: REQUEST_DATA_STREAM (body) => body . ser (version , bytes) , Self :: EXTENDED_SYS_STATE (body) => body . ser (version , bytes) , Self :: POSITION_TARGET_LOCAL_NED (body) => body . ser (version , bytes) , Self :: SET_MODE (body) => body . ser (version , bytes) , Self :: LOGGING_DATA_ACKED (body) => body . ser (version , bytes) , Self :: GPS_GLOBAL_ORIGIN (body) => body . ser (version , bytes) , Self :: GLOBAL_POSITION_INT_COV (body) => body . ser (version , bytes) , Self :: CAMERA_CAPTURE_STATUS (body) => body . ser (version , bytes) , Self :: DATA_STREAM (body) => body . ser (version , bytes) , Self :: ACTUATOR_CONTROL_TARGET (body) => body . ser (version , bytes) , Self :: TERRAIN_CHECK (body) => body . ser (version , bytes) , Self :: RAW_RPM (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_OVERRIDE (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_AUTHENTICATION (body) => body . ser (version , bytes) , Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (body) => body . ser (version , bytes) , Self :: PARAM_SET (body) => body . ser (version , bytes) , Self :: HIL_STATE (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_DATA (body) => body . ser (version , bytes) , Self :: MANUAL_SETPOINT (body) => body . ser (version , bytes) , Self :: SET_ATTITUDE_TARGET (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_ARM_STATUS (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_PITCHYAW (body) => body . ser (version , bytes) , Self :: COLLISION (body) => body . ser (version , bytes) , Self :: SET_POSITION_TARGET_GLOBAL_INT (body) => body . ser (version , bytes) , Self :: SAFETY_SET_ALLOWED_AREA (body) => body . ser (version , bytes) , Self :: PLAY_TUNE_V2 (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_LOCATION (body) => body . ser (version , bytes) , Self :: VFR_HUD (body) => body . ser (version , bytes) , Self :: CAMERA_INFORMATION (body) => body . ser (version , bytes) , Self :: FENCE_STATUS (body) => body . ser (version , bytes) , Self :: HIGH_LATENCY (body) => body . ser (version , bytes) , Self :: HIGH_LATENCY2 (body) => body . ser (version , bytes) , Self :: LOG_ERASE (body) => body . ser (version , bytes) , Self :: OBSTACLE_DISTANCE (body) => body . ser (version , bytes) , Self :: ESC_INFO (body) => body . ser (version , bytes) , Self :: TUNNEL (body) => body . ser (version , bytes) , Self :: HIGHRES_IMU (body) => body . ser (version , bytes) , Self :: HIL_GPS (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (body) => body . ser (version , bytes) , Self :: VIDEO_STREAM_STATUS (body) => body . ser (version , bytes) , Self :: NAMED_VALUE_INT (body) => body . ser (version , bytes) , Self :: MISSION_ACK (body) => body . ser (version , bytes) , Self :: DATA_TRANSMISSION_HANDSHAKE (body) => body . ser (version , bytes) , Self :: CAMERA_FOV_STATUS (body) => body . ser (version , bytes) , Self :: MESSAGE_INTERVAL (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: CAMERA_SETTINGS (body) => body . ser (version , bytes) , Self :: SIM_STATE (body) => body . ser (version , bytes) , Self :: TERRAIN_DATA (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SYSTEM (body) => body . ser (version , bytes) , Self :: OPTICAL_FLOW_RAD (body) => body . ser (version , bytes) , Self :: WINCH_STATUS (body) => body . ser (version , bytes) , Self :: SCALED_IMU (body) => body . ser (version , bytes) , Self :: UAVIONIX_ADSB_OUT_CFG (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (body) => body . ser (version , bytes) , Self :: SET_HOME_POSITION (body) => body . ser (version , bytes) , Self :: MISSION_CLEAR_ALL (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_OPERATOR_ID (body) => body . ser (version , bytes) , Self :: COMMAND_CANCEL (body) => body . ser (version , bytes) , Self :: MISSION_COUNT (body) => body . ser (version , bytes) , Self :: WIFI_CONFIG_AP (body) => body . ser (version , bytes) , Self :: MANUAL_CONTROL (body) => body . ser (version , bytes) , Self :: FILE_TRANSFER_PROTOCOL (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_STATUS (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_INFORMATION (body) => body . ser (version , bytes) , Self :: HOME_POSITION (body) => body . ser (version , bytes) , Self :: VISION_SPEED_ESTIMATE (body) => body . ser (version , bytes) , Self :: FLIGHT_INFORMATION (body) => body . ser (version , bytes) , Self :: POWER_STATUS (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_END (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE2 (body) => body . ser (version , bytes) , Self :: CELLULAR_CONFIG (body) => body . ser (version , bytes) , Self :: AIS_VESSEL (body) => body . ser (version , bytes) , Self :: NAV_CONTROLLER_OUTPUT (body) => body . ser (version , bytes) , Self :: RESOURCE_REQUEST (body) => body . ser (version , bytes) , Self :: PARAM_EXT_SET (body) => body . ser (version , bytes) , Self :: CAMERA_IMAGE_CAPTURED (body) => body . ser (version , bytes) , Self :: COMMAND_ACK (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_SCALED (body) => body . ser (version , bytes) , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (body) => body . ser (version , bytes) , Self :: MISSION_ITEM (body) => body . ser (version , bytes) , Self :: COMMAND_LONG (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_INT (body) => body . ser (version , bytes) , Self :: GLOBAL_POSITION_INT (body) => body . ser (version , bytes) , Self :: ADSB_VEHICLE (body) => body . ser (version , bytes) , Self :: SET_GPS_GLOBAL_ORIGIN (body) => body . ser (version , bytes) , Self :: GPS_STATUS (body) => body . ser (version , bytes) , Self :: GPS2_RTK (body) => body . ser (version , bytes) , Self :: LANDING_TARGET (body) => body . ser (version , bytes) , Self :: SERVO_OUTPUT_RAW (body) => body . ser (version , bytes) , Self :: ALTITUDE (body) => body . ser (version , bytes) , Self :: HYGROMETER_SENSOR (body) => body . ser (version , bytes) , Self :: COMMAND_INT (body) => body . ser (version , bytes) , Self :: HIL_SENSOR (body) => body . ser (version , bytes) , Self :: ODOMETRY (body) => body . ser (version , bytes) , Self :: CAN_FRAME (body) => body . ser (version , bytes) , Self :: PARAM_EXT_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: GPS_RTCM_DATA (body) => body . ser (version , bytes) , Self :: GPS_RTK (body) => body . ser (version , bytes) , Self :: ATTITUDE (body) => body . ser (version , bytes) , Self :: SERIAL_CONTROL (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: CAMERA_TRIGGER (body) => body . ser (version , bytes) , Self :: ACTUATOR_OUTPUT_STATUS (body) => body . ser (version , bytes) , Self :: TIME_ESTIMATE_TO_TARGET (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_PARTIAL_LIST (body) => body . ser (version , bytes) , Self :: DEBUG_VECT (body) => body . ser (version , bytes) , Self :: ORBIT_EXECUTION_STATUS (body) => body . ser (version , bytes) , Self :: LOGGING_ACK (body) => body . ser (version , bytes) , Self :: ONBOARD_COMPUTER_STATUS (body) => body . ser (version , bytes) , Self :: HIL_CONTROLS (body) => body . ser (version , bytes) , Self :: RESPONSE_EVENT_ERROR (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_MESSAGE_PACK (body) => body . ser (version , bytes) , Self :: HIL_STATE_QUATERNION (body) => body . ser (version , bytes) , Self :: CHANGE_OPERATOR_CONTROL_ACK (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED_COV (body) => body . ser (version , bytes) , Self :: PARAM_MAP_RC (body) => body . ser (version , bytes) , Self :: REQUEST_EVENT (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST (body) => body . ser (version , bytes) , } } fn extra_crc (id : u32) -> u8 { match id { RC_CHANNELS_RAW_DATA :: ID => RC_CHANNELS_RAW_DATA :: EXTRA_CRC , UAVCAN_NODE_STATUS_DATA :: ID => UAVCAN_NODE_STATUS_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_DATA :: ID => LOCAL_POSITION_NED_DATA :: EXTRA_CRC , BATTERY_STATUS_DATA :: ID => BATTERY_STATUS_DATA :: EXTRA_CRC , TERRAIN_REPORT_DATA :: ID => TERRAIN_REPORT_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SELF_ID_DATA :: ID => OPEN_DRONE_ID_SELF_ID_DATA :: EXTRA_CRC , UTM_GLOBAL_POSITION_DATA :: ID => UTM_GLOBAL_POSITION_DATA :: EXTRA_CRC , SCALED_PRESSURE3_DATA :: ID => SCALED_PRESSURE3_DATA :: EXTRA_CRC , LOG_DATA_DATA :: ID => LOG_DATA_DATA :: EXTRA_CRC , CHANGE_OPERATOR_CONTROL_DATA :: ID => CHANGE_OPERATOR_CONTROL_DATA :: EXTRA_CRC , WIND_COV_DATA :: ID => WIND_COV_DATA :: EXTRA_CRC , LINK_NODE_STATUS_DATA :: ID => LINK_NODE_STATUS_DATA :: EXTRA_CRC , GPS_INJECT_DATA_DATA :: ID => GPS_INJECT_DATA_DATA :: EXTRA_CRC , ESTIMATOR_STATUS_DATA :: ID => ESTIMATOR_STATUS_DATA :: EXTRA_CRC , VIDEO_STREAM_INFORMATION_DATA :: ID => VIDEO_STREAM_INFORMATION_DATA :: EXTRA_CRC , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: EXTRA_CRC , CANFD_FRAME_DATA :: ID => CANFD_FRAME_DATA :: EXTRA_CRC , AUTOPILOT_VERSION_DATA :: ID => AUTOPILOT_VERSION_DATA :: EXTRA_CRC , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => MISSION_WRITE_PARTIAL_LIST_DATA :: EXTRA_CRC , PARAM_EXT_ACK_DATA :: ID => PARAM_EXT_ACK_DATA :: EXTRA_CRC , RADIO_STATUS_DATA :: ID => RADIO_STATUS_DATA :: EXTRA_CRC , RC_CHANNELS_DATA :: ID => RC_CHANNELS_DATA :: EXTRA_CRC , GPS_INPUT_DATA :: ID => GPS_INPUT_DATA :: EXTRA_CRC , STORAGE_INFORMATION_DATA :: ID => STORAGE_INFORMATION_DATA :: EXTRA_CRC , PARAM_REQUEST_LIST_DATA :: ID => PARAM_REQUEST_LIST_DATA :: EXTRA_CRC , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: EXTRA_CRC , PROTOCOL_VERSION_DATA :: ID => PROTOCOL_VERSION_DATA :: EXTRA_CRC , NAMED_VALUE_FLOAT_DATA :: ID => NAMED_VALUE_FLOAT_DATA :: EXTRA_CRC , PLAY_TUNE_DATA :: ID => PLAY_TUNE_DATA :: EXTRA_CRC , VICON_POSITION_ESTIMATE_DATA :: ID => VICON_POSITION_ESTIMATE_DATA :: EXTRA_CRC , PARAM_REQUEST_READ_DATA :: ID => PARAM_REQUEST_READ_DATA :: EXTRA_CRC , PARAM_VALUE_DATA :: ID => PARAM_VALUE_DATA :: EXTRA_CRC , SAFETY_ALLOWED_AREA_DATA :: ID => SAFETY_ALLOWED_AREA_DATA :: EXTRA_CRC , GPS_RAW_INT_DATA :: ID => GPS_RAW_INT_DATA :: EXTRA_CRC , MOUNT_ORIENTATION_DATA :: ID => MOUNT_ORIENTATION_DATA :: EXTRA_CRC , COMPONENT_INFORMATION_DATA :: ID => COMPONENT_INFORMATION_DATA :: EXTRA_CRC , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => CAMERA_TRACKING_GEO_STATUS_DATA :: EXTRA_CRC , CAN_FILTER_MODIFY_DATA :: ID => CAN_FILTER_MODIFY_DATA :: EXTRA_CRC , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: EXTRA_CRC , HIL_RC_INPUTS_RAW_DATA :: ID => HIL_RC_INPUTS_RAW_DATA :: EXTRA_CRC , MISSION_CURRENT_DATA :: ID => MISSION_CURRENT_DATA :: EXTRA_CRC , ESC_STATUS_DATA :: ID => ESC_STATUS_DATA :: EXTRA_CRC , UAVCAN_NODE_INFO_DATA :: ID => UAVCAN_NODE_INFO_DATA :: EXTRA_CRC , MAG_CAL_REPORT_DATA :: ID => MAG_CAL_REPORT_DATA :: EXTRA_CRC , HIL_ACTUATOR_CONTROLS_DATA :: ID => HIL_ACTUATOR_CONTROLS_DATA :: EXTRA_CRC , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => OPEN_DRONE_ID_BASIC_ID_DATA :: EXTRA_CRC , ATTITUDE_QUATERNION_DATA :: ID => ATTITUDE_QUATERNION_DATA :: EXTRA_CRC , V2_EXTENSION_DATA :: ID => V2_EXTENSION_DATA :: EXTRA_CRC , PARAM_EXT_VALUE_DATA :: ID => PARAM_EXT_VALUE_DATA :: EXTRA_CRC , HEARTBEAT_DATA :: ID => HEARTBEAT_DATA :: EXTRA_CRC , ENCAPSULATED_DATA_DATA :: ID => ENCAPSULATED_DATA_DATA :: EXTRA_CRC , ATTITUDE_TARGET_DATA :: ID => ATTITUDE_TARGET_DATA :: EXTRA_CRC , OPTICAL_FLOW_DATA :: ID => OPTICAL_FLOW_DATA :: EXTRA_CRC , MISSION_ITEM_REACHED_DATA :: ID => MISSION_ITEM_REACHED_DATA :: EXTRA_CRC , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: EXTRA_CRC , ISBD_LINK_STATUS_DATA :: ID => ISBD_LINK_STATUS_DATA :: EXTRA_CRC , RAW_PRESSURE_DATA :: ID => RAW_PRESSURE_DATA :: EXTRA_CRC , CELLULAR_STATUS_DATA :: ID => CELLULAR_STATUS_DATA :: EXTRA_CRC , EVENT_DATA :: ID => EVENT_DATA :: EXTRA_CRC , PARAM_EXT_REQUEST_READ_DATA :: ID => PARAM_EXT_REQUEST_READ_DATA :: EXTRA_CRC , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => CAMERA_TRACKING_IMAGE_STATUS_DATA :: EXTRA_CRC , SUPPORTED_TUNES_DATA :: ID => SUPPORTED_TUNES_DATA :: EXTRA_CRC , GIMBAL_MANAGER_INFORMATION_DATA :: ID => GIMBAL_MANAGER_INFORMATION_DATA :: EXTRA_CRC , SETUP_SIGNING_DATA :: ID => SETUP_SIGNING_DATA :: EXTRA_CRC , FOLLOW_TARGET_DATA :: ID => FOLLOW_TARGET_DATA :: EXTRA_CRC , LOG_ENTRY_DATA :: ID => LOG_ENTRY_DATA :: EXTRA_CRC , DEBUG_FLOAT_ARRAY_DATA :: ID => DEBUG_FLOAT_ARRAY_DATA :: EXTRA_CRC , COMPONENT_METADATA_DATA :: ID => COMPONENT_METADATA_DATA :: EXTRA_CRC , SYSTEM_TIME_DATA :: ID => SYSTEM_TIME_DATA :: EXTRA_CRC , SCALED_PRESSURE_DATA :: ID => SCALED_PRESSURE_DATA :: EXTRA_CRC , TIMESYNC_DATA :: ID => TIMESYNC_DATA :: EXTRA_CRC , EFI_STATUS_DATA :: ID => EFI_STATUS_DATA :: EXTRA_CRC , CONTROL_SYSTEM_STATE_DATA :: ID => CONTROL_SYSTEM_STATE_DATA :: EXTRA_CRC , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: EXTRA_CRC , BUTTON_CHANGE_DATA :: ID => BUTTON_CHANGE_DATA :: EXTRA_CRC , ATT_POS_MOCAP_DATA :: ID => ATT_POS_MOCAP_DATA :: EXTRA_CRC , ATTITUDE_QUATERNION_COV_DATA :: ID => ATTITUDE_QUATERNION_COV_DATA :: EXTRA_CRC , CURRENT_EVENT_SEQUENCE_DATA :: ID => CURRENT_EVENT_SEQUENCE_DATA :: EXTRA_CRC , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => SET_ACTUATOR_CONTROL_TARGET_DATA :: EXTRA_CRC , SCALED_IMU3_DATA :: ID => SCALED_IMU3_DATA :: EXTRA_CRC , STATUSTEXT_DATA :: ID => STATUSTEXT_DATA :: EXTRA_CRC , GPS2_RAW_DATA :: ID => GPS2_RAW_DATA :: EXTRA_CRC , MISSION_SET_CURRENT_DATA :: ID => MISSION_SET_CURRENT_DATA :: EXTRA_CRC , SMART_BATTERY_INFO_DATA :: ID => SMART_BATTERY_INFO_DATA :: EXTRA_CRC , TERRAIN_REQUEST_DATA :: ID => TERRAIN_REQUEST_DATA :: EXTRA_CRC , DISTANCE_SENSOR_DATA :: ID => DISTANCE_SENSOR_DATA :: EXTRA_CRC , MISSION_ITEM_INT_DATA :: ID => MISSION_ITEM_INT_DATA :: EXTRA_CRC , GENERATOR_STATUS_DATA :: ID => GENERATOR_STATUS_DATA :: EXTRA_CRC , DEBUG_DATA :: ID => DEBUG_DATA :: EXTRA_CRC , WHEEL_DISTANCE_DATA :: ID => WHEEL_DISTANCE_DATA :: EXTRA_CRC , RAW_IMU_DATA :: ID => RAW_IMU_DATA :: EXTRA_CRC , MEMORY_VECT_DATA :: ID => MEMORY_VECT_DATA :: EXTRA_CRC , POSITION_TARGET_GLOBAL_INT_DATA :: ID => POSITION_TARGET_GLOBAL_INT_DATA :: EXTRA_CRC , AUTH_KEY_DATA :: ID => AUTH_KEY_DATA :: EXTRA_CRC , SCALED_IMU2_DATA :: ID => SCALED_IMU2_DATA :: EXTRA_CRC , SYS_STATUS_DATA :: ID => SYS_STATUS_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: EXTRA_CRC , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => SET_POSITION_TARGET_LOCAL_NED_DATA :: EXTRA_CRC , HIL_OPTICAL_FLOW_DATA :: ID => HIL_OPTICAL_FLOW_DATA :: EXTRA_CRC , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: EXTRA_CRC , VISION_POSITION_ESTIMATE_DATA :: ID => VISION_POSITION_ESTIMATE_DATA :: EXTRA_CRC , PING_DATA :: ID => PING_DATA :: EXTRA_CRC , LOGGING_DATA_DATA :: ID => LOGGING_DATA_DATA :: EXTRA_CRC , VIBRATION_DATA :: ID => VIBRATION_DATA :: EXTRA_CRC , REQUEST_DATA_STREAM_DATA :: ID => REQUEST_DATA_STREAM_DATA :: EXTRA_CRC , EXTENDED_SYS_STATE_DATA :: ID => EXTENDED_SYS_STATE_DATA :: EXTRA_CRC , POSITION_TARGET_LOCAL_NED_DATA :: ID => POSITION_TARGET_LOCAL_NED_DATA :: EXTRA_CRC , SET_MODE_DATA :: ID => SET_MODE_DATA :: EXTRA_CRC , LOGGING_DATA_ACKED_DATA :: ID => LOGGING_DATA_ACKED_DATA :: EXTRA_CRC , GPS_GLOBAL_ORIGIN_DATA :: ID => GPS_GLOBAL_ORIGIN_DATA :: EXTRA_CRC , GLOBAL_POSITION_INT_COV_DATA :: ID => GLOBAL_POSITION_INT_COV_DATA :: EXTRA_CRC , CAMERA_CAPTURE_STATUS_DATA :: ID => CAMERA_CAPTURE_STATUS_DATA :: EXTRA_CRC , DATA_STREAM_DATA :: ID => DATA_STREAM_DATA :: EXTRA_CRC , ACTUATOR_CONTROL_TARGET_DATA :: ID => ACTUATOR_CONTROL_TARGET_DATA :: EXTRA_CRC , TERRAIN_CHECK_DATA :: ID => TERRAIN_CHECK_DATA :: EXTRA_CRC , RAW_RPM_DATA :: ID => RAW_RPM_DATA :: EXTRA_CRC , RC_CHANNELS_OVERRIDE_DATA :: ID => RC_CHANNELS_OVERRIDE_DATA :: EXTRA_CRC , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => OPEN_DRONE_ID_AUTHENTICATION_DATA :: EXTRA_CRC , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: EXTRA_CRC , PARAM_SET_DATA :: ID => PARAM_SET_DATA :: EXTRA_CRC , HIL_STATE_DATA :: ID => HIL_STATE_DATA :: EXTRA_CRC , LOG_REQUEST_DATA_DATA :: ID => LOG_REQUEST_DATA_DATA :: EXTRA_CRC , MANUAL_SETPOINT_DATA :: ID => MANUAL_SETPOINT_DATA :: EXTRA_CRC , SET_ATTITUDE_TARGET_DATA :: ID => SET_ATTITUDE_TARGET_DATA :: EXTRA_CRC , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => OPEN_DRONE_ID_ARM_STATUS_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: EXTRA_CRC , COLLISION_DATA :: ID => COLLISION_DATA :: EXTRA_CRC , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => SET_POSITION_TARGET_GLOBAL_INT_DATA :: EXTRA_CRC , SAFETY_SET_ALLOWED_AREA_DATA :: ID => SAFETY_SET_ALLOWED_AREA_DATA :: EXTRA_CRC , PLAY_TUNE_V2_DATA :: ID => PLAY_TUNE_V2_DATA :: EXTRA_CRC , OPEN_DRONE_ID_LOCATION_DATA :: ID => OPEN_DRONE_ID_LOCATION_DATA :: EXTRA_CRC , VFR_HUD_DATA :: ID => VFR_HUD_DATA :: EXTRA_CRC , CAMERA_INFORMATION_DATA :: ID => CAMERA_INFORMATION_DATA :: EXTRA_CRC , FENCE_STATUS_DATA :: ID => FENCE_STATUS_DATA :: EXTRA_CRC , HIGH_LATENCY_DATA :: ID => HIGH_LATENCY_DATA :: EXTRA_CRC , HIGH_LATENCY2_DATA :: ID => HIGH_LATENCY2_DATA :: EXTRA_CRC , LOG_ERASE_DATA :: ID => LOG_ERASE_DATA :: EXTRA_CRC , OBSTACLE_DISTANCE_DATA :: ID => OBSTACLE_DISTANCE_DATA :: EXTRA_CRC , ESC_INFO_DATA :: ID => ESC_INFO_DATA :: EXTRA_CRC , TUNNEL_DATA :: ID => TUNNEL_DATA :: EXTRA_CRC , HIGHRES_IMU_DATA :: ID => HIGHRES_IMU_DATA :: EXTRA_CRC , HIL_GPS_DATA :: ID => HIL_GPS_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: EXTRA_CRC , VIDEO_STREAM_STATUS_DATA :: ID => VIDEO_STREAM_STATUS_DATA :: EXTRA_CRC , NAMED_VALUE_INT_DATA :: ID => NAMED_VALUE_INT_DATA :: EXTRA_CRC , MISSION_ACK_DATA :: ID => MISSION_ACK_DATA :: EXTRA_CRC , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => DATA_TRANSMISSION_HANDSHAKE_DATA :: EXTRA_CRC , CAMERA_FOV_STATUS_DATA :: ID => CAMERA_FOV_STATUS_DATA :: EXTRA_CRC , MESSAGE_INTERVAL_DATA :: ID => MESSAGE_INTERVAL_DATA :: EXTRA_CRC , LOG_REQUEST_LIST_DATA :: ID => LOG_REQUEST_LIST_DATA :: EXTRA_CRC , CAMERA_SETTINGS_DATA :: ID => CAMERA_SETTINGS_DATA :: EXTRA_CRC , SIM_STATE_DATA :: ID => SIM_STATE_DATA :: EXTRA_CRC , TERRAIN_DATA_DATA :: ID => TERRAIN_DATA_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SYSTEM_DATA :: ID => OPEN_DRONE_ID_SYSTEM_DATA :: EXTRA_CRC , OPTICAL_FLOW_RAD_DATA :: ID => OPTICAL_FLOW_RAD_DATA :: EXTRA_CRC , WINCH_STATUS_DATA :: ID => WINCH_STATUS_DATA :: EXTRA_CRC , SCALED_IMU_DATA :: ID => SCALED_IMU_DATA :: EXTRA_CRC , UAVIONIX_ADSB_OUT_CFG_DATA :: ID => UAVIONIX_ADSB_OUT_CFG_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: EXTRA_CRC , SET_HOME_POSITION_DATA :: ID => SET_HOME_POSITION_DATA :: EXTRA_CRC , MISSION_CLEAR_ALL_DATA :: ID => MISSION_CLEAR_ALL_DATA :: EXTRA_CRC , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => OPEN_DRONE_ID_OPERATOR_ID_DATA :: EXTRA_CRC , COMMAND_CANCEL_DATA :: ID => COMMAND_CANCEL_DATA :: EXTRA_CRC , MISSION_COUNT_DATA :: ID => MISSION_COUNT_DATA :: EXTRA_CRC , WIFI_CONFIG_AP_DATA :: ID => WIFI_CONFIG_AP_DATA :: EXTRA_CRC , MANUAL_CONTROL_DATA :: ID => MANUAL_CONTROL_DATA :: EXTRA_CRC , FILE_TRANSFER_PROTOCOL_DATA :: ID => FILE_TRANSFER_PROTOCOL_DATA :: EXTRA_CRC , GIMBAL_MANAGER_STATUS_DATA :: ID => GIMBAL_MANAGER_STATUS_DATA :: EXTRA_CRC , GIMBAL_DEVICE_INFORMATION_DATA :: ID => GIMBAL_DEVICE_INFORMATION_DATA :: EXTRA_CRC , HOME_POSITION_DATA :: ID => HOME_POSITION_DATA :: EXTRA_CRC , VISION_SPEED_ESTIMATE_DATA :: ID => VISION_SPEED_ESTIMATE_DATA :: EXTRA_CRC , FLIGHT_INFORMATION_DATA :: ID => FLIGHT_INFORMATION_DATA :: EXTRA_CRC , POWER_STATUS_DATA :: ID => POWER_STATUS_DATA :: EXTRA_CRC , LOG_REQUEST_END_DATA :: ID => LOG_REQUEST_END_DATA :: EXTRA_CRC , SCALED_PRESSURE2_DATA :: ID => SCALED_PRESSURE2_DATA :: EXTRA_CRC , CELLULAR_CONFIG_DATA :: ID => CELLULAR_CONFIG_DATA :: EXTRA_CRC , AIS_VESSEL_DATA :: ID => AIS_VESSEL_DATA :: EXTRA_CRC , NAV_CONTROLLER_OUTPUT_DATA :: ID => NAV_CONTROLLER_OUTPUT_DATA :: EXTRA_CRC , RESOURCE_REQUEST_DATA :: ID => RESOURCE_REQUEST_DATA :: EXTRA_CRC , PARAM_EXT_SET_DATA :: ID => PARAM_EXT_SET_DATA :: EXTRA_CRC , CAMERA_IMAGE_CAPTURED_DATA :: ID => CAMERA_IMAGE_CAPTURED_DATA :: EXTRA_CRC , COMMAND_ACK_DATA :: ID => COMMAND_ACK_DATA :: EXTRA_CRC , RC_CHANNELS_SCALED_DATA :: ID => RC_CHANNELS_SCALED_DATA :: EXTRA_CRC , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: EXTRA_CRC , MISSION_ITEM_DATA :: ID => MISSION_ITEM_DATA :: EXTRA_CRC , COMMAND_LONG_DATA :: ID => COMMAND_LONG_DATA :: EXTRA_CRC , MISSION_REQUEST_INT_DATA :: ID => MISSION_REQUEST_INT_DATA :: EXTRA_CRC , GLOBAL_POSITION_INT_DATA :: ID => GLOBAL_POSITION_INT_DATA :: EXTRA_CRC , ADSB_VEHICLE_DATA :: ID => ADSB_VEHICLE_DATA :: EXTRA_CRC , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => SET_GPS_GLOBAL_ORIGIN_DATA :: EXTRA_CRC , GPS_STATUS_DATA :: ID => GPS_STATUS_DATA :: EXTRA_CRC , GPS2_RTK_DATA :: ID => GPS2_RTK_DATA :: EXTRA_CRC , LANDING_TARGET_DATA :: ID => LANDING_TARGET_DATA :: EXTRA_CRC , SERVO_OUTPUT_RAW_DATA :: ID => SERVO_OUTPUT_RAW_DATA :: EXTRA_CRC , ALTITUDE_DATA :: ID => ALTITUDE_DATA :: EXTRA_CRC , HYGROMETER_SENSOR_DATA :: ID => HYGROMETER_SENSOR_DATA :: EXTRA_CRC , COMMAND_INT_DATA :: ID => COMMAND_INT_DATA :: EXTRA_CRC , HIL_SENSOR_DATA :: ID => HIL_SENSOR_DATA :: EXTRA_CRC , ODOMETRY_DATA :: ID => ODOMETRY_DATA :: EXTRA_CRC , CAN_FRAME_DATA :: ID => CAN_FRAME_DATA :: EXTRA_CRC , PARAM_EXT_REQUEST_LIST_DATA :: ID => PARAM_EXT_REQUEST_LIST_DATA :: EXTRA_CRC , GPS_RTCM_DATA_DATA :: ID => GPS_RTCM_DATA_DATA :: EXTRA_CRC , GPS_RTK_DATA :: ID => GPS_RTK_DATA :: EXTRA_CRC , ATTITUDE_DATA :: ID => ATTITUDE_DATA :: EXTRA_CRC , SERIAL_CONTROL_DATA :: ID => SERIAL_CONTROL_DATA :: EXTRA_CRC , MISSION_REQUEST_LIST_DATA :: ID => MISSION_REQUEST_LIST_DATA :: EXTRA_CRC , CAMERA_TRIGGER_DATA :: ID => CAMERA_TRIGGER_DATA :: EXTRA_CRC , ACTUATOR_OUTPUT_STATUS_DATA :: ID => ACTUATOR_OUTPUT_STATUS_DATA :: EXTRA_CRC , TIME_ESTIMATE_TO_TARGET_DATA :: ID => TIME_ESTIMATE_TO_TARGET_DATA :: EXTRA_CRC , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => MISSION_REQUEST_PARTIAL_LIST_DATA :: EXTRA_CRC , DEBUG_VECT_DATA :: ID => DEBUG_VECT_DATA :: EXTRA_CRC , ORBIT_EXECUTION_STATUS_DATA :: ID => ORBIT_EXECUTION_STATUS_DATA :: EXTRA_CRC , LOGGING_ACK_DATA :: ID => LOGGING_ACK_DATA :: EXTRA_CRC , ONBOARD_COMPUTER_STATUS_DATA :: ID => ONBOARD_COMPUTER_STATUS_DATA :: EXTRA_CRC , HIL_CONTROLS_DATA :: ID => HIL_CONTROLS_DATA :: EXTRA_CRC , RESPONSE_EVENT_ERROR_DATA :: ID => RESPONSE_EVENT_ERROR_DATA :: EXTRA_CRC , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: EXTRA_CRC , HIL_STATE_QUATERNION_DATA :: ID => HIL_STATE_QUATERNION_DATA :: EXTRA_CRC , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => CHANGE_OPERATOR_CONTROL_ACK_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_COV_DATA :: ID => LOCAL_POSITION_NED_COV_DATA :: EXTRA_CRC , PARAM_MAP_RC_DATA :: ID => PARAM_MAP_RC_DATA :: EXTRA_CRC , REQUEST_EVENT_DATA :: ID => REQUEST_EVENT_DATA :: EXTRA_CRC , MISSION_REQUEST_DATA :: ID => MISSION_REQUEST_DATA :: EXTRA_CRC , _ => { 0 } , } } }
+
# ! [doc = "This file was automatically generated, do not edit"] # [allow (unused_imports)] use num_derive :: FromPrimitive ; # [allow (unused_imports)] use num_traits :: FromPrimitive ; # [allow (unused_imports)] use num_derive :: ToPrimitive ; # [allow (unused_imports)] use num_traits :: ToPrimitive ; # [allow (unused_imports)] use bitflags :: bitflags ; use mavlink_core :: { MavlinkVersion , Message , MessageData , bytes :: Bytes , bytes_mut :: BytesMut } ; # [cfg (feature = "serde")] use serde :: { Serialize , Deserialize } ; bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CameraCapFlags : u32 { const CAMERA_CAP_FLAGS_CAPTURE_VIDEO = 1 ; const CAMERA_CAP_FLAGS_CAPTURE_IMAGE = 2 ; const CAMERA_CAP_FLAGS_HAS_MODES = 4 ; const CAMERA_CAP_FLAGS_CAN_CAPTURE_IMAGE_IN_VIDEO_MODE = 8 ; const CAMERA_CAP_FLAGS_CAN_CAPTURE_VIDEO_IN_IMAGE_MODE = 16 ; const CAMERA_CAP_FLAGS_HAS_IMAGE_SURVEY_MODE = 32 ; const CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM = 64 ; const CAMERA_CAP_FLAGS_HAS_BASIC_FOCUS = 128 ; const CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM = 256 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_POINT = 512 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE = 1024 ; const CAMERA_CAP_FLAGS_HAS_TRACKING_GEO_STATUS = 2048 ; } } impl CameraCapFlags { pub const DEFAULT : Self = Self :: CAMERA_CAP_FLAGS_CAPTURE_VIDEO ; } impl Default for CameraCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutCfgGpsOffsetLon { UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_NO_DATA = 0 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_APPLIED_BY_SENSOR = 1 , } impl UavionixAdsbOutCfgGpsOffsetLon { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LON_NO_DATA ; } impl Default for UavionixAdsbOutCfgGpsOffsetLon { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceAction { FENCE_ACTION_NONE = 0 , FENCE_ACTION_GUIDED = 1 , FENCE_ACTION_REPORT = 2 , FENCE_ACTION_GUIDED_THR_PASS = 3 , FENCE_ACTION_RTL = 4 , FENCE_ACTION_HOLD = 5 , FENCE_ACTION_TERMINATE = 6 , FENCE_ACTION_LAND = 7 , } impl FenceAction { pub const DEFAULT : Self = Self :: FENCE_ACTION_NONE ; } impl Default for FenceAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AdsbEmitterType { ADSB_EMITTER_TYPE_NO_INFO = 0 , ADSB_EMITTER_TYPE_LIGHT = 1 , ADSB_EMITTER_TYPE_SMALL = 2 , ADSB_EMITTER_TYPE_LARGE = 3 , ADSB_EMITTER_TYPE_HIGH_VORTEX_LARGE = 4 , ADSB_EMITTER_TYPE_HEAVY = 5 , ADSB_EMITTER_TYPE_HIGHLY_MANUV = 6 , ADSB_EMITTER_TYPE_ROTOCRAFT = 7 , ADSB_EMITTER_TYPE_UNASSIGNED = 8 , ADSB_EMITTER_TYPE_GLIDER = 9 , ADSB_EMITTER_TYPE_LIGHTER_AIR = 10 , ADSB_EMITTER_TYPE_PARACHUTE = 11 , ADSB_EMITTER_TYPE_ULTRA_LIGHT = 12 , ADSB_EMITTER_TYPE_UNASSIGNED2 = 13 , ADSB_EMITTER_TYPE_UAV = 14 , ADSB_EMITTER_TYPE_SPACE = 15 , ADSB_EMITTER_TYPE_UNASSGINED3 = 16 , ADSB_EMITTER_TYPE_EMERGENCY_SURFACE = 17 , ADSB_EMITTER_TYPE_SERVICE_SURFACE = 18 , ADSB_EMITTER_TYPE_POINT_OBSTACLE = 19 , } impl AdsbEmitterType { pub const DEFAULT : Self = Self :: ADSB_EMITTER_TYPE_NO_INFO ; } impl Default for AdsbEmitterType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSensorOrientation { MAV_SENSOR_ROTATION_NONE = 0 , MAV_SENSOR_ROTATION_YAW_45 = 1 , MAV_SENSOR_ROTATION_YAW_90 = 2 , MAV_SENSOR_ROTATION_YAW_135 = 3 , MAV_SENSOR_ROTATION_YAW_180 = 4 , MAV_SENSOR_ROTATION_YAW_225 = 5 , MAV_SENSOR_ROTATION_YAW_270 = 6 , MAV_SENSOR_ROTATION_YAW_315 = 7 , MAV_SENSOR_ROTATION_ROLL_180 = 8 , MAV_SENSOR_ROTATION_ROLL_180_YAW_45 = 9 , MAV_SENSOR_ROTATION_ROLL_180_YAW_90 = 10 , MAV_SENSOR_ROTATION_ROLL_180_YAW_135 = 11 , MAV_SENSOR_ROTATION_PITCH_180 = 12 , MAV_SENSOR_ROTATION_ROLL_180_YAW_225 = 13 , MAV_SENSOR_ROTATION_ROLL_180_YAW_270 = 14 , MAV_SENSOR_ROTATION_ROLL_180_YAW_315 = 15 , MAV_SENSOR_ROTATION_ROLL_90 = 16 , MAV_SENSOR_ROTATION_ROLL_90_YAW_45 = 17 , MAV_SENSOR_ROTATION_ROLL_90_YAW_90 = 18 , MAV_SENSOR_ROTATION_ROLL_90_YAW_135 = 19 , MAV_SENSOR_ROTATION_ROLL_270 = 20 , MAV_SENSOR_ROTATION_ROLL_270_YAW_45 = 21 , MAV_SENSOR_ROTATION_ROLL_270_YAW_90 = 22 , MAV_SENSOR_ROTATION_ROLL_270_YAW_135 = 23 , MAV_SENSOR_ROTATION_PITCH_90 = 24 , MAV_SENSOR_ROTATION_PITCH_270 = 25 , MAV_SENSOR_ROTATION_PITCH_180_YAW_90 = 26 , MAV_SENSOR_ROTATION_PITCH_180_YAW_270 = 27 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_90 = 28 , MAV_SENSOR_ROTATION_ROLL_180_PITCH_90 = 29 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_90 = 30 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_180 = 31 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_180 = 32 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_270 = 33 , MAV_SENSOR_ROTATION_ROLL_180_PITCH_270 = 34 , MAV_SENSOR_ROTATION_ROLL_270_PITCH_270 = 35 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_180_YAW_90 = 36 , MAV_SENSOR_ROTATION_ROLL_90_YAW_270 = 37 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_68_YAW_293 = 38 , MAV_SENSOR_ROTATION_PITCH_315 = 39 , MAV_SENSOR_ROTATION_ROLL_90_PITCH_315 = 40 , MAV_SENSOR_ROTATION_CUSTOM = 100 , } impl MavSensorOrientation { pub const DEFAULT : Self = Self :: MAV_SENSOR_ROTATION_NONE ; } impl Default for MavSensorOrientation { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavParamType { MAV_PARAM_TYPE_UINT8 = 1 , MAV_PARAM_TYPE_INT8 = 2 , MAV_PARAM_TYPE_UINT16 = 3 , MAV_PARAM_TYPE_INT16 = 4 , MAV_PARAM_TYPE_UINT32 = 5 , MAV_PARAM_TYPE_INT32 = 6 , MAV_PARAM_TYPE_UINT64 = 7 , MAV_PARAM_TYPE_INT64 = 8 , MAV_PARAM_TYPE_REAL32 = 9 , MAV_PARAM_TYPE_REAL64 = 10 , } impl MavParamType { pub const DEFAULT : Self = Self :: MAV_PARAM_TYPE_UINT8 ; } impl Default for MavParamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavcanNodeHealth { UAVCAN_NODE_HEALTH_OK = 0 , UAVCAN_NODE_HEALTH_WARNING = 1 , UAVCAN_NODE_HEALTH_ERROR = 2 , UAVCAN_NODE_HEALTH_CRITICAL = 3 , } impl UavcanNodeHealth { pub const DEFAULT : Self = Self :: UAVCAN_NODE_HEALTH_OK ; } impl Default for UavcanNodeHealth { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidOperatorIdType { MAV_ODID_OPERATOR_ID_TYPE_CAA = 0 , } impl MavOdidOperatorIdType { pub const DEFAULT : Self = Self :: MAV_ODID_OPERATOR_ID_TYPE_CAA ; } impl Default for MavOdidOperatorIdType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageStatus { STORAGE_STATUS_EMPTY = 0 , STORAGE_STATUS_UNFORMATTED = 1 , STORAGE_STATUS_READY = 2 , STORAGE_STATUS_NOT_SUPPORTED = 3 , } impl StorageStatus { pub const DEFAULT : Self = Self :: STORAGE_STATUS_EMPTY ; } impl Default for StorageStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMissionResult { MAV_MISSION_ACCEPTED = 0 , MAV_MISSION_ERROR = 1 , MAV_MISSION_UNSUPPORTED_FRAME = 2 , MAV_MISSION_UNSUPPORTED = 3 , MAV_MISSION_NO_SPACE = 4 , MAV_MISSION_INVALID = 5 , MAV_MISSION_INVALID_PARAM1 = 6 , MAV_MISSION_INVALID_PARAM2 = 7 , MAV_MISSION_INVALID_PARAM3 = 8 , MAV_MISSION_INVALID_PARAM4 = 9 , MAV_MISSION_INVALID_PARAM5_X = 10 , MAV_MISSION_INVALID_PARAM6_Y = 11 , MAV_MISSION_INVALID_PARAM7 = 12 , MAV_MISSION_INVALID_SEQUENCE = 13 , MAV_MISSION_DENIED = 14 , MAV_MISSION_OPERATION_CANCELLED = 15 , } impl MavMissionResult { pub const DEFAULT : Self = Self :: MAV_MISSION_ACCEPTED ; } impl Default for MavMissionResult { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceFlags : u16 { const GIMBAL_DEVICE_FLAGS_RETRACT = 1 ; const GIMBAL_DEVICE_FLAGS_NEUTRAL = 2 ; const GIMBAL_DEVICE_FLAGS_ROLL_LOCK = 4 ; const GIMBAL_DEVICE_FLAGS_PITCH_LOCK = 8 ; const GIMBAL_DEVICE_FLAGS_YAW_LOCK = 16 ; const GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME = 32 ; const GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME = 64 ; const GIMBAL_DEVICE_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME = 128 ; const GIMBAL_DEVICE_FLAGS_RC_EXCLUSIVE = 256 ; const GIMBAL_DEVICE_FLAGS_RC_MIXED = 512 ; } } impl GimbalDeviceFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_FLAGS_RETRACT ; } impl Default for GimbalDeviceFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SerialControlFlag : u8 { const SERIAL_CONTROL_FLAG_REPLY = 1 ; const SERIAL_CONTROL_FLAG_RESPOND = 2 ; const SERIAL_CONTROL_FLAG_EXCLUSIVE = 4 ; const SERIAL_CONTROL_FLAG_BLOCKING = 8 ; const SERIAL_CONTROL_FLAG_MULTI = 16 ; } } impl SerialControlFlag { pub const DEFAULT : Self = Self :: SERIAL_CONTROL_FLAG_REPLY ; } impl Default for SerialControlFlag { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavWinchStatusFlag : u32 { const MAV_WINCH_STATUS_HEALTHY = 1 ; const MAV_WINCH_STATUS_FULLY_RETRACTED = 2 ; const MAV_WINCH_STATUS_MOVING = 4 ; const MAV_WINCH_STATUS_CLUTCH_ENGAGED = 8 ; const MAV_WINCH_STATUS_LOCKED = 16 ; const MAV_WINCH_STATUS_DROPPING = 32 ; const MAV_WINCH_STATUS_ARRESTING = 64 ; const MAV_WINCH_STATUS_GROUND_SENSE = 128 ; const MAV_WINCH_STATUS_RETRACTING = 256 ; const MAV_WINCH_STATUS_REDELIVER = 512 ; const MAV_WINCH_STATUS_ABANDON_LINE = 1024 ; const MAV_WINCH_STATUS_LOCKING = 2048 ; const MAV_WINCH_STATUS_LOAD_LINE = 4096 ; const MAV_WINCH_STATUS_LOAD_PAYLOAD = 8192 ; } } impl MavWinchStatusFlag { pub const DEFAULT : Self = Self :: MAV_WINCH_STATUS_HEALTHY ; } impl Default for MavWinchStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMode { MAV_MODE_PREFLIGHT = 0 , MAV_MODE_STABILIZE_DISARMED = 80 , MAV_MODE_STABILIZE_ARMED = 208 , MAV_MODE_MANUAL_DISARMED = 64 , MAV_MODE_MANUAL_ARMED = 192 , MAV_MODE_GUIDED_DISARMED = 88 , MAV_MODE_GUIDED_ARMED = 216 , MAV_MODE_AUTO_DISARMED = 92 , MAV_MODE_AUTO_ARMED = 220 , MAV_MODE_TEST_DISARMED = 66 , MAV_MODE_TEST_ARMED = 194 , } impl MavMode { pub const DEFAULT : Self = Self :: MAV_MODE_PREFLIGHT ; } impl Default for MavMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraZoomType { ZOOM_TYPE_STEP = 0 , ZOOM_TYPE_CONTINUOUS = 1 , ZOOM_TYPE_RANGE = 2 , ZOOM_TYPE_FOCAL_LENGTH = 3 , } impl CameraZoomType { pub const DEFAULT : Self = Self :: ZOOM_TYPE_STEP ; } impl Default for CameraZoomType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutCfgAircraftSize { UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_NO_DATA = 0 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L15M_W23M = 1 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25M_W28P5M = 2 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L25_34M = 3 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_33M = 4 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L35_38M = 5 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_39P5M = 6 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L45_45M = 7 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_45M = 8 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L55_52M = 9 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_59P5M = 10 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L65_67M = 11 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W72P5M = 12 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L75_W80M = 13 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W80M = 14 , UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_L85_W90M = 15 , } impl UavionixAdsbOutCfgAircraftSize { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_CFG_AIRCRAFT_SIZE_NO_DATA ; } impl Default for UavionixAdsbOutCfgAircraftSize { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MissionState { MISSION_STATE_UNKNOWN = 0 , MISSION_STATE_NO_MISSION = 1 , MISSION_STATE_NOT_STARTED = 2 , MISSION_STATE_ACTIVE = 3 , MISSION_STATE_PAUSED = 4 , MISSION_STATE_COMPLETE = 5 , } impl MissionState { pub const DEFAULT : Self = Self :: MISSION_STATE_UNKNOWN ; } impl Default for MissionState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidClassEu { MAV_ODID_CLASS_EU_UNDECLARED = 0 , MAV_ODID_CLASS_EU_CLASS_0 = 1 , MAV_ODID_CLASS_EU_CLASS_1 = 2 , MAV_ODID_CLASS_EU_CLASS_2 = 3 , MAV_ODID_CLASS_EU_CLASS_3 = 4 , MAV_ODID_CLASS_EU_CLASS_4 = 5 , MAV_ODID_CLASS_EU_CLASS_5 = 6 , MAV_ODID_CLASS_EU_CLASS_6 = 7 , } impl MavOdidClassEu { pub const DEFAULT : Self = Self :: MAV_ODID_CLASS_EU_UNDECLARED ; } impl Default for MavOdidClassEu { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UavionixAdsbRfHealth : u8 { const UAVIONIX_ADSB_RF_HEALTH_INITIALIZING = 0 ; const UAVIONIX_ADSB_RF_HEALTH_OK = 1 ; const UAVIONIX_ADSB_RF_HEALTH_FAIL_TX = 2 ; const UAVIONIX_ADSB_RF_HEALTH_FAIL_RX = 16 ; } } impl UavionixAdsbRfHealth { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_RF_HEALTH_INITIALIZING ; } impl Default for UavionixAdsbRfHealth { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionAction { MAV_COLLISION_ACTION_NONE = 0 , MAV_COLLISION_ACTION_REPORT = 1 , MAV_COLLISION_ACTION_ASCEND_OR_DESCEND = 2 , MAV_COLLISION_ACTION_MOVE_HORIZONTALLY = 3 , MAV_COLLISION_ACTION_MOVE_PERPENDICULAR = 4 , MAV_COLLISION_ACTION_RTL = 5 , MAV_COLLISION_ACTION_HOVER = 6 , } impl MavCollisionAction { pub const DEFAULT : Self = Self :: MAV_COLLISION_ACTION_NONE ; } impl Default for MavCollisionAction { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AdsbFlags : u16 { const ADSB_FLAGS_VALID_COORDS = 1 ; const ADSB_FLAGS_VALID_ALTITUDE = 2 ; const ADSB_FLAGS_VALID_HEADING = 4 ; const ADSB_FLAGS_VALID_VELOCITY = 8 ; const ADSB_FLAGS_VALID_CALLSIGN = 16 ; const ADSB_FLAGS_VALID_SQUAWK = 32 ; const ADSB_FLAGS_SIMULATED = 64 ; const ADSB_FLAGS_VERTICAL_VELOCITY_VALID = 128 ; const ADSB_FLAGS_BARO_VALID = 256 ; const ADSB_FLAGS_SOURCE_UAT = 32768 ; } } impl AdsbFlags { pub const DEFAULT : Self = Self :: ADSB_FLAGS_VALID_COORDS ; } impl Default for AdsbFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AutotuneAxis { AUTOTUNE_AXIS_DEFAULT = 0 , AUTOTUNE_AXIS_ROLL = 1 , AUTOTUNE_AXIS_PITCH = 2 , AUTOTUNE_AXIS_YAW = 4 , } impl AutotuneAxis { pub const DEFAULT : Self = Self :: AUTOTUNE_AXIS_DEFAULT ; } impl Default for AutotuneAxis { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutDynamicGpsFix { UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_0 = 0 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_1 = 1 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_2D = 2 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_3D = 3 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_DGPS = 4 , UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_RTK = 5 , } impl UavionixAdsbOutDynamicGpsFix { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_DYNAMIC_GPS_FIX_NONE_0 ; } impl Default for UavionixAdsbOutDynamicGpsFix { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum EscConnectionType { ESC_CONNECTION_TYPE_PPM = 0 , ESC_CONNECTION_TYPE_SERIAL = 1 , ESC_CONNECTION_TYPE_ONESHOT = 2 , ESC_CONNECTION_TYPE_I2C = 3 , ESC_CONNECTION_TYPE_CAN = 4 , ESC_CONNECTION_TYPE_DSHOT = 5 , } impl EscConnectionType { pub const DEFAULT : Self = Self :: ESC_CONNECTION_TYPE_PPM ; } impl Default for EscConnectionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidDescType { MAV_ODID_DESC_TYPE_TEXT = 0 , MAV_ODID_DESC_TYPE_EMERGENCY = 1 , MAV_ODID_DESC_TYPE_EXTENDED_STATUS = 2 , } impl MavOdidDescType { pub const DEFAULT : Self = Self :: MAV_ODID_DESC_TYPE_TEXT ; } impl Default for MavOdidDescType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WinchActions { WINCH_RELAXED = 0 , WINCH_RELATIVE_LENGTH_CONTROL = 1 , WINCH_RATE_CONTROL = 2 , WINCH_LOCK = 3 , WINCH_DELIVER = 4 , WINCH_HOLD = 5 , WINCH_RETRACT = 6 , WINCH_LOAD_LINE = 7 , WINCH_ABANDON_LINE = 8 , WINCH_LOAD_PAYLOAD = 9 , } impl WinchActions { pub const DEFAULT : Self = Self :: WINCH_RELAXED ; } impl Default for WinchActions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidTimeAcc { MAV_ODID_TIME_ACC_UNKNOWN = 0 , MAV_ODID_TIME_ACC_0_1_SECOND = 1 , MAV_ODID_TIME_ACC_0_2_SECOND = 2 , MAV_ODID_TIME_ACC_0_3_SECOND = 3 , MAV_ODID_TIME_ACC_0_4_SECOND = 4 , MAV_ODID_TIME_ACC_0_5_SECOND = 5 , MAV_ODID_TIME_ACC_0_6_SECOND = 6 , MAV_ODID_TIME_ACC_0_7_SECOND = 7 , MAV_ODID_TIME_ACC_0_8_SECOND = 8 , MAV_ODID_TIME_ACC_0_9_SECOND = 9 , MAV_ODID_TIME_ACC_1_0_SECOND = 10 , MAV_ODID_TIME_ACC_1_1_SECOND = 11 , MAV_ODID_TIME_ACC_1_2_SECOND = 12 , MAV_ODID_TIME_ACC_1_3_SECOND = 13 , MAV_ODID_TIME_ACC_1_4_SECOND = 14 , MAV_ODID_TIME_ACC_1_5_SECOND = 15 , } impl MavOdidTimeAcc { pub const DEFAULT : Self = Self :: MAV_ODID_TIME_ACC_UNKNOWN ; } impl Default for MavOdidTimeAcc { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AttitudeTargetTypemask : u8 { const ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE = 1 ; const ATTITUDE_TARGET_TYPEMASK_BODY_PITCH_RATE_IGNORE = 2 ; const ATTITUDE_TARGET_TYPEMASK_BODY_YAW_RATE_IGNORE = 4 ; const ATTITUDE_TARGET_TYPEMASK_THRUST_BODY_SET = 32 ; const ATTITUDE_TARGET_TYPEMASK_THROTTLE_IGNORE = 64 ; const ATTITUDE_TARGET_TYPEMASK_ATTITUDE_IGNORE = 128 ; } } impl AttitudeTargetTypemask { pub const DEFAULT : Self = Self :: ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE ; } impl Default for AttitudeTargetTypemask { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EscFailureFlags : u16 { const ESC_FAILURE_NONE = 0 ; const ESC_FAILURE_OVER_CURRENT = 1 ; const ESC_FAILURE_OVER_VOLTAGE = 2 ; const ESC_FAILURE_OVER_TEMPERATURE = 4 ; const ESC_FAILURE_OVER_RPM = 8 ; const ESC_FAILURE_INCONSISTENT_CMD = 16 ; const ESC_FAILURE_MOTOR_STUCK = 32 ; const ESC_FAILURE_GENERIC = 64 ; } } impl EscFailureFlags { pub const DEFAULT : Self = Self :: ESC_FAILURE_NONE ; } impl Default for EscFailureFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UavionixAdsbOutDynamicState : u16 { const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE = 1 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_AUTOPILOT_ENABLED = 2 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_NICBARO_CROSSCHECKED = 4 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_ON_GROUND = 8 ; const UAVIONIX_ADSB_OUT_DYNAMIC_STATE_IDENT = 16 ; } } impl UavionixAdsbOutDynamicState { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_DYNAMIC_STATE_INTENT_CHANGE ; } impl Default for UavionixAdsbOutDynamicState { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavGeneratorStatusFlag : u64 { const MAV_GENERATOR_STATUS_FLAG_OFF = 1 ; const MAV_GENERATOR_STATUS_FLAG_READY = 2 ; const MAV_GENERATOR_STATUS_FLAG_GENERATING = 4 ; const MAV_GENERATOR_STATUS_FLAG_CHARGING = 8 ; const MAV_GENERATOR_STATUS_FLAG_REDUCED_POWER = 16 ; const MAV_GENERATOR_STATUS_FLAG_MAXPOWER = 32 ; const MAV_GENERATOR_STATUS_FLAG_OVERTEMP_WARNING = 64 ; const MAV_GENERATOR_STATUS_FLAG_OVERTEMP_FAULT = 128 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_WARNING = 256 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_OVERTEMP_FAULT = 512 ; const MAV_GENERATOR_STATUS_FLAG_ELECTRONICS_FAULT = 1024 ; const MAV_GENERATOR_STATUS_FLAG_POWERSOURCE_FAULT = 2048 ; const MAV_GENERATOR_STATUS_FLAG_COMMUNICATION_WARNING = 4096 ; const MAV_GENERATOR_STATUS_FLAG_COOLING_WARNING = 8192 ; const MAV_GENERATOR_STATUS_FLAG_POWER_RAIL_FAULT = 16384 ; const MAV_GENERATOR_STATUS_FLAG_OVERCURRENT_FAULT = 32768 ; const MAV_GENERATOR_STATUS_FLAG_BATTERY_OVERCHARGE_CURRENT_FAULT = 65536 ; const MAV_GENERATOR_STATUS_FLAG_OVERVOLTAGE_FAULT = 131072 ; const MAV_GENERATOR_STATUS_FLAG_BATTERY_UNDERVOLT_FAULT = 262144 ; const MAV_GENERATOR_STATUS_FLAG_START_INHIBITED = 524288 ; const MAV_GENERATOR_STATUS_FLAG_MAINTENANCE_REQUIRED = 1048576 ; const MAV_GENERATOR_STATUS_FLAG_WARMING_UP = 2097152 ; const MAV_GENERATOR_STATUS_FLAG_IDLE = 4194304 ; } } impl MavGeneratorStatusFlag { pub const DEFAULT : Self = Self :: MAV_GENERATOR_STATUS_FLAG_OFF ; } impl Default for MavGeneratorStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PreflightStorageParameterAction { PARAM_READ_PERSISTENT = 0 , PARAM_WRITE_PERSISTENT = 1 , PARAM_RESET_CONFIG_DEFAULT = 2 , PARAM_RESET_SENSOR_DEFAULT = 3 , PARAM_RESET_ALL_DEFAULT = 4 , } impl PreflightStorageParameterAction { pub const DEFAULT : Self = Self :: PARAM_READ_PERSISTENT ; } impl Default for PreflightStorageParameterAction { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HilSensorUpdatedFlags : u32 { const HIL_SENSOR_UPDATED_NONE = 0 ; const HIL_SENSOR_UPDATED_XACC = 1 ; const HIL_SENSOR_UPDATED_YACC = 2 ; const HIL_SENSOR_UPDATED_ZACC = 4 ; const HIL_SENSOR_UPDATED_XGYRO = 8 ; const HIL_SENSOR_UPDATED_YGYRO = 16 ; const HIL_SENSOR_UPDATED_ZGYRO = 32 ; const HIL_SENSOR_UPDATED_XMAG = 64 ; const HIL_SENSOR_UPDATED_YMAG = 128 ; const HIL_SENSOR_UPDATED_ZMAG = 256 ; const HIL_SENSOR_UPDATED_ABS_PRESSURE = 512 ; const HIL_SENSOR_UPDATED_DIFF_PRESSURE = 1024 ; const HIL_SENSOR_UPDATED_PRESSURE_ALT = 2048 ; const HIL_SENSOR_UPDATED_TEMPERATURE = 4096 ; const HIL_SENSOR_UPDATED_RESET = 2147483648 ; } } impl HilSensorUpdatedFlags { pub const DEFAULT : Self = Self :: HIL_SENSOR_UPDATED_NONE ; } impl Default for HilSensorUpdatedFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavPowerStatus : u16 { const MAV_POWER_STATUS_BRICK_VALID = 1 ; const MAV_POWER_STATUS_SERVO_VALID = 2 ; const MAV_POWER_STATUS_USB_CONNECTED = 4 ; const MAV_POWER_STATUS_PERIPH_OVERCURRENT = 8 ; const MAV_POWER_STATUS_PERIPH_HIPOWER_OVERCURRENT = 16 ; const MAV_POWER_STATUS_CHANGED = 32 ; } } impl MavPowerStatus { pub const DEFAULT : Self = Self :: MAV_POWER_STATUS_BRICK_VALID ; } impl Default for MavPowerStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryFault { MAV_BATTERY_FAULT_DEEP_DISCHARGE = 1 , MAV_BATTERY_FAULT_SPIKES = 2 , MAV_BATTERY_FAULT_CELL_FAIL = 4 , MAV_BATTERY_FAULT_OVER_CURRENT = 8 , MAV_BATTERY_FAULT_OVER_TEMPERATURE = 16 , MAV_BATTERY_FAULT_UNDER_TEMPERATURE = 32 , MAV_BATTERY_FAULT_INCOMPATIBLE_VOLTAGE = 64 , MAV_BATTERY_FAULT_INCOMPATIBLE_FIRMWARE = 128 , BATTERY_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION = 256 , } impl MavBatteryFault { pub const DEFAULT : Self = Self :: MAV_BATTERY_FAULT_DEEP_DISCHARGE ; } impl Default for MavBatteryFault { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFtpOpcode { MAV_FTP_OPCODE_NONE = 0 , MAV_FTP_OPCODE_TERMINATESESSION = 1 , MAV_FTP_OPCODE_RESETSESSION = 2 , MAV_FTP_OPCODE_LISTDIRECTORY = 3 , MAV_FTP_OPCODE_OPENFILERO = 4 , MAV_FTP_OPCODE_READFILE = 5 , MAV_FTP_OPCODE_CREATEFILE = 6 , MAV_FTP_OPCODE_WRITEFILE = 7 , MAV_FTP_OPCODE_REMOVEFILE = 8 , MAV_FTP_OPCODE_CREATEDIRECTORY = 9 , MAV_FTP_OPCODE_REMOVEDIRECTORY = 10 , MAV_FTP_OPCODE_OPENFILEWO = 11 , MAV_FTP_OPCODE_TRUNCATEFILE = 12 , MAV_FTP_OPCODE_RENAME = 13 , MAV_FTP_OPCODE_CALCFILECRC = 14 , MAV_FTP_OPCODE_BURSTREADFILE = 15 , MAV_FTP_OPCODE_ACK = 128 , MAV_FTP_OPCODE_NAK = 129 , } impl MavFtpOpcode { pub const DEFAULT : Self = Self :: MAV_FTP_OPCODE_NONE ; } impl Default for MavFtpOpcode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSysStatusSensorExtended { MAV_SYS_STATUS_RECOVERY_SYSTEM = 1 , } impl MavSysStatusSensorExtended { pub const DEFAULT : Self = Self :: MAV_SYS_STATUS_RECOVERY_SYSTEM ; } impl Default for MavSysStatusSensorExtended { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EstimatorStatusFlags : u16 { const ESTIMATOR_ATTITUDE = 1 ; const ESTIMATOR_VELOCITY_HORIZ = 2 ; const ESTIMATOR_VELOCITY_VERT = 4 ; const ESTIMATOR_POS_HORIZ_REL = 8 ; const ESTIMATOR_POS_HORIZ_ABS = 16 ; const ESTIMATOR_POS_VERT_ABS = 32 ; const ESTIMATOR_POS_VERT_AGL = 64 ; const ESTIMATOR_CONST_POS_MODE = 128 ; const ESTIMATOR_PRED_POS_HORIZ_REL = 256 ; const ESTIMATOR_PRED_POS_HORIZ_ABS = 512 ; const ESTIMATOR_GPS_GLITCH = 1024 ; const ESTIMATOR_ACCEL_ERROR = 2048 ; } } impl EstimatorStatusFlags { pub const DEFAULT : Self = Self :: ESTIMATOR_ATTITUDE ; } impl Default for EstimatorStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryFunction { MAV_BATTERY_FUNCTION_UNKNOWN = 0 , MAV_BATTERY_FUNCTION_ALL = 1 , MAV_BATTERY_FUNCTION_PROPULSION = 2 , MAV_BATTERY_FUNCTION_AVIONICS = 3 , MAV_BATTERY_FUNCTION_PAYLOAD = 4 , } impl MavBatteryFunction { pub const DEFAULT : Self = Self :: MAV_BATTERY_FUNCTION_UNKNOWN ; } impl Default for MavBatteryFunction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavAutopilot { MAV_AUTOPILOT_GENERIC = 0 , MAV_AUTOPILOT_RESERVED = 1 , MAV_AUTOPILOT_SLUGS = 2 , MAV_AUTOPILOT_ARDUPILOTMEGA = 3 , MAV_AUTOPILOT_OPENPILOT = 4 , MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY = 5 , MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY = 6 , MAV_AUTOPILOT_GENERIC_MISSION_FULL = 7 , MAV_AUTOPILOT_INVALID = 8 , MAV_AUTOPILOT_PPZ = 9 , MAV_AUTOPILOT_UDB = 10 , MAV_AUTOPILOT_FP = 11 , MAV_AUTOPILOT_PX4 = 12 , MAV_AUTOPILOT_SMACCMPILOT = 13 , MAV_AUTOPILOT_AUTOQUAD = 14 , MAV_AUTOPILOT_ARMAZILA = 15 , MAV_AUTOPILOT_AEROB = 16 , MAV_AUTOPILOT_ASLUAV = 17 , MAV_AUTOPILOT_SMARTAP = 18 , MAV_AUTOPILOT_AIRRAILS = 19 , MAV_AUTOPILOT_REFLEX = 20 , } impl MavAutopilot { pub const DEFAULT : Self = Self :: MAV_AUTOPILOT_GENERIC ; } impl Default for MavAutopilot { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavTunnelPayloadType { MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN = 0 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED0 = 200 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED1 = 201 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED2 = 202 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED3 = 203 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED4 = 204 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED5 = 205 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED6 = 206 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED7 = 207 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED8 = 208 , MAV_TUNNEL_PAYLOAD_TYPE_STORM32_RESERVED9 = 209 , } impl MavTunnelPayloadType { pub const DEFAULT : Self = Self :: MAV_TUNNEL_PAYLOAD_TYPE_UNKNOWN ; } impl Default for MavTunnelPayloadType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalManagerCapFlags : u32 { const GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT = 1 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL = 2 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS = 4 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_FOLLOW = 8 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_LOCK = 16 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS = 32 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_FOLLOW = 64 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_LOCK = 128 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS = 256 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW = 512 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK = 1024 ; const GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_INFINITE_YAW = 2048 ; const GIMBAL_MANAGER_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME = 4096 ; const GIMBAL_MANAGER_CAP_FLAGS_HAS_RC_INPUTS = 8192 ; const GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_LOCAL = 65536 ; const GIMBAL_MANAGER_CAP_FLAGS_CAN_POINT_LOCATION_GLOBAL = 131072 ; } } impl GimbalManagerCapFlags { pub const DEFAULT : Self = Self :: GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT ; } impl Default for GimbalManagerCapFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UavionixAdsbOutRfSelect : u8 { const UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY = 0 ; const UAVIONIX_ADSB_OUT_RF_SELECT_RX_ENABLED = 1 ; const UAVIONIX_ADSB_OUT_RF_SELECT_TX_ENABLED = 2 ; } } impl UavionixAdsbOutRfSelect { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_RF_SELECT_STANDBY ; } impl Default for UavionixAdsbOutRfSelect { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MotorTestOrder { MOTOR_TEST_ORDER_DEFAULT = 0 , MOTOR_TEST_ORDER_SEQUENCE = 1 , MOTOR_TEST_ORDER_BOARD = 2 , } impl MotorTestOrder { pub const DEFAULT : Self = Self :: MOTOR_TEST_ORDER_DEFAULT ; } impl Default for MotorTestOrder { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HlFailureFlag : u16 { const HL_FAILURE_FLAG_GPS = 1 ; const HL_FAILURE_FLAG_DIFFERENTIAL_PRESSURE = 2 ; const HL_FAILURE_FLAG_ABSOLUTE_PRESSURE = 4 ; const HL_FAILURE_FLAG_3D_ACCEL = 8 ; const HL_FAILURE_FLAG_3D_GYRO = 16 ; const HL_FAILURE_FLAG_3D_MAG = 32 ; const HL_FAILURE_FLAG_TERRAIN = 64 ; const HL_FAILURE_FLAG_BATTERY = 128 ; const HL_FAILURE_FLAG_RC_RECEIVER = 256 ; const HL_FAILURE_FLAG_OFFBOARD_LINK = 512 ; const HL_FAILURE_FLAG_ENGINE = 1024 ; const HL_FAILURE_FLAG_GEOFENCE = 2048 ; const HL_FAILURE_FLAG_ESTIMATOR = 4096 ; const HL_FAILURE_FLAG_MISSION = 8192 ; } } impl HlFailureFlag { pub const DEFAULT : Self = Self :: HL_FAILURE_FLAG_GPS ; } impl Default for HlFailureFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidCategoryEu { MAV_ODID_CATEGORY_EU_UNDECLARED = 0 , MAV_ODID_CATEGORY_EU_OPEN = 1 , MAV_ODID_CATEGORY_EU_SPECIFIC = 2 , MAV_ODID_CATEGORY_EU_CERTIFIED = 3 , } impl MavOdidCategoryEu { pub const DEFAULT : Self = Self :: MAV_ODID_CATEGORY_EU_UNDECLARED ; } impl Default for MavOdidCategoryEu { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavSeverity { MAV_SEVERITY_EMERGENCY = 0 , MAV_SEVERITY_ALERT = 1 , MAV_SEVERITY_CRITICAL = 2 , MAV_SEVERITY_ERROR = 3 , MAV_SEVERITY_WARNING = 4 , MAV_SEVERITY_NOTICE = 5 , MAV_SEVERITY_INFO = 6 , MAV_SEVERITY_DEBUG = 7 , } impl MavSeverity { pub const DEFAULT : Self = Self :: MAV_SEVERITY_EMERGENCY ; } impl Default for MavSeverity { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFtpErr { MAV_FTP_ERR_NONE = 0 , MAV_FTP_ERR_FAIL = 1 , MAV_FTP_ERR_FAILERRNO = 2 , MAV_FTP_ERR_INVALIDDATASIZE = 3 , MAV_FTP_ERR_INVALIDSESSION = 4 , MAV_FTP_ERR_NOSESSIONSAVAILABLE = 5 , MAV_FTP_ERR_EOF = 6 , MAV_FTP_ERR_UNKNOWNCOMMAND = 7 , MAV_FTP_ERR_FILEEXISTS = 8 , MAV_FTP_ERR_FILEPROTECTED = 9 , MAV_FTP_ERR_FILENOTFOUND = 10 , } impl MavFtpErr { pub const DEFAULT : Self = Self :: MAV_FTP_ERR_NONE ; } impl Default for MavFtpErr { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MotorTestThrottleType { MOTOR_TEST_THROTTLE_PERCENT = 0 , MOTOR_TEST_THROTTLE_PWM = 1 , MOTOR_TEST_THROTTLE_PILOT = 2 , MOTOR_TEST_COMPASS_CAL = 3 , } impl MotorTestThrottleType { pub const DEFAULT : Self = Self :: MOTOR_TEST_THROTTLE_PERCENT ; } impl Default for MotorTestThrottleType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavGoto { MAV_GOTO_DO_HOLD = 0 , MAV_GOTO_DO_CONTINUE = 1 , MAV_GOTO_HOLD_AT_CURRENT_POSITION = 2 , MAV_GOTO_HOLD_AT_SPECIFIED_POSITION = 3 , } impl MavGoto { pub const DEFAULT : Self = Self :: MAV_GOTO_DO_HOLD ; } impl Default for MavGoto { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularNetworkRadioType { CELLULAR_NETWORK_RADIO_TYPE_NONE = 0 , CELLULAR_NETWORK_RADIO_TYPE_GSM = 1 , CELLULAR_NETWORK_RADIO_TYPE_CDMA = 2 , CELLULAR_NETWORK_RADIO_TYPE_WCDMA = 3 , CELLULAR_NETWORK_RADIO_TYPE_LTE = 4 , } impl CellularNetworkRadioType { pub const DEFAULT : Self = Self :: CELLULAR_NETWORK_RADIO_TYPE_NONE ; } impl Default for CellularNetworkRadioType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavcanNodeMode { UAVCAN_NODE_MODE_OPERATIONAL = 0 , UAVCAN_NODE_MODE_INITIALIZATION = 1 , UAVCAN_NODE_MODE_MAINTENANCE = 2 , UAVCAN_NODE_MODE_SOFTWARE_UPDATE = 3 , UAVCAN_NODE_MODE_OFFLINE = 7 , } impl UavcanNodeMode { pub const DEFAULT : Self = Self :: UAVCAN_NODE_MODE_OPERATIONAL ; } impl Default for UavcanNodeMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageUsageFlag { STORAGE_USAGE_FLAG_SET = 1 , STORAGE_USAGE_FLAG_PHOTO = 2 , STORAGE_USAGE_FLAG_VIDEO = 4 , STORAGE_USAGE_FLAG_LOGS = 8 , } impl StorageUsageFlag { pub const DEFAULT : Self = Self :: STORAGE_USAGE_FLAG_SET ; } impl Default for StorageUsageFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AisNavStatus { UNDER_WAY = 0 , AIS_NAV_ANCHORED = 1 , AIS_NAV_UN_COMMANDED = 2 , AIS_NAV_RESTRICTED_MANOEUVERABILITY = 3 , AIS_NAV_DRAUGHT_CONSTRAINED = 4 , AIS_NAV_MOORED = 5 , AIS_NAV_AGROUND = 6 , AIS_NAV_FISHING = 7 , AIS_NAV_SAILING = 8 , AIS_NAV_RESERVED_HSC = 9 , AIS_NAV_RESERVED_WIG = 10 , AIS_NAV_RESERVED_1 = 11 , AIS_NAV_RESERVED_2 = 12 , AIS_NAV_RESERVED_3 = 13 , AIS_NAV_AIS_SART = 14 , AIS_NAV_UNKNOWN = 15 , } impl AisNavStatus { pub const DEFAULT : Self = Self :: UNDER_WAY ; } impl Default for AisNavStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbOutCfgGpsOffsetLat { UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_NO_DATA = 0 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_2M = 1 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_4M = 2 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_LEFT_6M = 3 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_0M = 4 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_2M = 5 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_4M = 6 , UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_RIGHT_6M = 7 , } impl UavionixAdsbOutCfgGpsOffsetLat { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_CFG_GPS_OFFSET_LAT_NO_DATA ; } impl Default for UavionixAdsbOutCfgGpsOffsetLat { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavFrame { MAV_FRAME_GLOBAL = 0 , MAV_FRAME_LOCAL_NED = 1 , MAV_FRAME_MISSION = 2 , MAV_FRAME_GLOBAL_RELATIVE_ALT = 3 , MAV_FRAME_LOCAL_ENU = 4 , MAV_FRAME_GLOBAL_INT = 5 , MAV_FRAME_GLOBAL_RELATIVE_ALT_INT = 6 , MAV_FRAME_LOCAL_OFFSET_NED = 7 , MAV_FRAME_BODY_NED = 8 , MAV_FRAME_BODY_OFFSET_NED = 9 , MAV_FRAME_GLOBAL_TERRAIN_ALT = 10 , MAV_FRAME_GLOBAL_TERRAIN_ALT_INT = 11 , MAV_FRAME_BODY_FRD = 12 , MAV_FRAME_RESERVED_13 = 13 , MAV_FRAME_RESERVED_14 = 14 , MAV_FRAME_RESERVED_15 = 15 , MAV_FRAME_RESERVED_16 = 16 , MAV_FRAME_RESERVED_17 = 17 , MAV_FRAME_RESERVED_18 = 18 , MAV_FRAME_RESERVED_19 = 19 , MAV_FRAME_LOCAL_FRD = 20 , MAV_FRAME_LOCAL_FLU = 21 , } impl MavFrame { pub const DEFAULT : Self = Self :: MAV_FRAME_GLOBAL ; } impl Default for MavFrame { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WifiConfigApMode { WIFI_CONFIG_AP_MODE_UNDEFINED = 0 , WIFI_CONFIG_AP_MODE_AP = 1 , WIFI_CONFIG_AP_MODE_STATION = 2 , WIFI_CONFIG_AP_MODE_DISABLED = 3 , } impl WifiConfigApMode { pub const DEFAULT : Self = Self :: WIFI_CONFIG_AP_MODE_UNDEFINED ; } impl Default for WifiConfigApMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FailureType { FAILURE_TYPE_OK = 0 , FAILURE_TYPE_OFF = 1 , FAILURE_TYPE_STUCK = 2 , FAILURE_TYPE_GARBAGE = 3 , FAILURE_TYPE_WRONG = 4 , FAILURE_TYPE_SLOW = 5 , FAILURE_TYPE_DELAYED = 6 , FAILURE_TYPE_INTERMITTENT = 7 , } impl FailureType { pub const DEFAULT : Self = Self :: FAILURE_TYPE_OK ; } impl Default for FailureType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraMode { CAMERA_MODE_IMAGE = 0 , CAMERA_MODE_VIDEO = 1 , CAMERA_MODE_IMAGE_SURVEY = 2 , } impl CameraMode { pub const DEFAULT : Self = Self :: CAMERA_MODE_IMAGE ; } impl Default for CameraMode { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UtmDataAvailFlags : u8 { const UTM_DATA_AVAIL_FLAGS_TIME_VALID = 1 ; const UTM_DATA_AVAIL_FLAGS_UAS_ID_AVAILABLE = 2 ; const UTM_DATA_AVAIL_FLAGS_POSITION_AVAILABLE = 4 ; const UTM_DATA_AVAIL_FLAGS_ALTITUDE_AVAILABLE = 8 ; const UTM_DATA_AVAIL_FLAGS_RELATIVE_ALTITUDE_AVAILABLE = 16 ; const UTM_DATA_AVAIL_FLAGS_HORIZONTAL_VELO_AVAILABLE = 32 ; const UTM_DATA_AVAIL_FLAGS_VERTICAL_VELO_AVAILABLE = 64 ; const UTM_DATA_AVAIL_FLAGS_NEXT_WAYPOINT_AVAILABLE = 128 ; } } impl UtmDataAvailFlags { pub const DEFAULT : Self = Self :: UTM_DATA_AVAIL_FLAGS_TIME_VALID ; } impl Default for UtmDataAvailFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ActuatorOutputFunction { ACTUATOR_OUTPUT_FUNCTION_NONE = 0 , ACTUATOR_OUTPUT_FUNCTION_MOTOR1 = 1 , ACTUATOR_OUTPUT_FUNCTION_MOTOR2 = 2 , ACTUATOR_OUTPUT_FUNCTION_MOTOR3 = 3 , ACTUATOR_OUTPUT_FUNCTION_MOTOR4 = 4 , ACTUATOR_OUTPUT_FUNCTION_MOTOR5 = 5 , ACTUATOR_OUTPUT_FUNCTION_MOTOR6 = 6 , ACTUATOR_OUTPUT_FUNCTION_MOTOR7 = 7 , ACTUATOR_OUTPUT_FUNCTION_MOTOR8 = 8 , ACTUATOR_OUTPUT_FUNCTION_MOTOR9 = 9 , ACTUATOR_OUTPUT_FUNCTION_MOTOR10 = 10 , ACTUATOR_OUTPUT_FUNCTION_MOTOR11 = 11 , ACTUATOR_OUTPUT_FUNCTION_MOTOR12 = 12 , ACTUATOR_OUTPUT_FUNCTION_MOTOR13 = 13 , ACTUATOR_OUTPUT_FUNCTION_MOTOR14 = 14 , ACTUATOR_OUTPUT_FUNCTION_MOTOR15 = 15 , ACTUATOR_OUTPUT_FUNCTION_MOTOR16 = 16 , ACTUATOR_OUTPUT_FUNCTION_SERVO1 = 33 , ACTUATOR_OUTPUT_FUNCTION_SERVO2 = 34 , ACTUATOR_OUTPUT_FUNCTION_SERVO3 = 35 , ACTUATOR_OUTPUT_FUNCTION_SERVO4 = 36 , ACTUATOR_OUTPUT_FUNCTION_SERVO5 = 37 , ACTUATOR_OUTPUT_FUNCTION_SERVO6 = 38 , ACTUATOR_OUTPUT_FUNCTION_SERVO7 = 39 , ACTUATOR_OUTPUT_FUNCTION_SERVO8 = 40 , ACTUATOR_OUTPUT_FUNCTION_SERVO9 = 41 , ACTUATOR_OUTPUT_FUNCTION_SERVO10 = 42 , ACTUATOR_OUTPUT_FUNCTION_SERVO11 = 43 , ACTUATOR_OUTPUT_FUNCTION_SERVO12 = 44 , ACTUATOR_OUTPUT_FUNCTION_SERVO13 = 45 , ACTUATOR_OUTPUT_FUNCTION_SERVO14 = 46 , ACTUATOR_OUTPUT_FUNCTION_SERVO15 = 47 , ACTUATOR_OUTPUT_FUNCTION_SERVO16 = 48 , } impl ActuatorOutputFunction { pub const DEFAULT : Self = Self :: ACTUATOR_OUTPUT_FUNCTION_NONE ; } impl Default for ActuatorOutputFunction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidUaType { MAV_ODID_UA_TYPE_NONE = 0 , MAV_ODID_UA_TYPE_AEROPLANE = 1 , MAV_ODID_UA_TYPE_HELICOPTER_OR_MULTIROTOR = 2 , MAV_ODID_UA_TYPE_GYROPLANE = 3 , MAV_ODID_UA_TYPE_HYBRID_LIFT = 4 , MAV_ODID_UA_TYPE_ORNITHOPTER = 5 , MAV_ODID_UA_TYPE_GLIDER = 6 , MAV_ODID_UA_TYPE_KITE = 7 , MAV_ODID_UA_TYPE_FREE_BALLOON = 8 , MAV_ODID_UA_TYPE_CAPTIVE_BALLOON = 9 , MAV_ODID_UA_TYPE_AIRSHIP = 10 , MAV_ODID_UA_TYPE_FREE_FALL_PARACHUTE = 11 , MAV_ODID_UA_TYPE_ROCKET = 12 , MAV_ODID_UA_TYPE_TETHERED_POWERED_AIRCRAFT = 13 , MAV_ODID_UA_TYPE_GROUND_OBSTACLE = 14 , MAV_ODID_UA_TYPE_OTHER = 15 , } impl MavOdidUaType { pub const DEFAULT : Self = Self :: MAV_ODID_UA_TYPE_NONE ; } impl Default for MavOdidUaType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ParamAck { PARAM_ACK_ACCEPTED = 0 , PARAM_ACK_VALUE_UNSUPPORTED = 1 , PARAM_ACK_FAILED = 2 , PARAM_ACK_IN_PROGRESS = 3 , } impl ParamAck { pub const DEFAULT : Self = Self :: PARAM_ACK_ACCEPTED ; } impl Default for ParamAck { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HighresImuUpdatedFlags : u16 { const HIGHRES_IMU_UPDATED_NONE = 0 ; const HIGHRES_IMU_UPDATED_XACC = 1 ; const HIGHRES_IMU_UPDATED_YACC = 2 ; const HIGHRES_IMU_UPDATED_ZACC = 4 ; const HIGHRES_IMU_UPDATED_XGYRO = 8 ; const HIGHRES_IMU_UPDATED_YGYRO = 16 ; const HIGHRES_IMU_UPDATED_ZGYRO = 32 ; const HIGHRES_IMU_UPDATED_XMAG = 64 ; const HIGHRES_IMU_UPDATED_YMAG = 128 ; const HIGHRES_IMU_UPDATED_ZMAG = 256 ; const HIGHRES_IMU_UPDATED_ABS_PRESSURE = 512 ; const HIGHRES_IMU_UPDATED_DIFF_PRESSURE = 1024 ; const HIGHRES_IMU_UPDATED_PRESSURE_ALT = 2048 ; const HIGHRES_IMU_UPDATED_TEMPERATURE = 4096 ; const HIGHRES_IMU_UPDATED_ALL = 65535 ; } } impl HighresImuUpdatedFlags { pub const DEFAULT : Self = Self :: HIGHRES_IMU_UPDATED_NONE ; } impl Default for HighresImuUpdatedFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavComponent { MAV_COMP_ID_ALL = 0 , MAV_COMP_ID_AUTOPILOT1 = 1 , MAV_COMP_ID_USER1 = 25 , MAV_COMP_ID_USER2 = 26 , MAV_COMP_ID_USER3 = 27 , MAV_COMP_ID_USER4 = 28 , MAV_COMP_ID_USER5 = 29 , MAV_COMP_ID_USER6 = 30 , MAV_COMP_ID_USER7 = 31 , MAV_COMP_ID_USER8 = 32 , MAV_COMP_ID_USER9 = 33 , MAV_COMP_ID_USER10 = 34 , MAV_COMP_ID_USER11 = 35 , MAV_COMP_ID_USER12 = 36 , MAV_COMP_ID_USER13 = 37 , MAV_COMP_ID_USER14 = 38 , MAV_COMP_ID_USER15 = 39 , MAV_COMP_ID_USER16 = 40 , MAV_COMP_ID_USER17 = 41 , MAV_COMP_ID_USER18 = 42 , MAV_COMP_ID_USER19 = 43 , MAV_COMP_ID_USER20 = 44 , MAV_COMP_ID_USER21 = 45 , MAV_COMP_ID_USER22 = 46 , MAV_COMP_ID_USER23 = 47 , MAV_COMP_ID_USER24 = 48 , MAV_COMP_ID_USER25 = 49 , MAV_COMP_ID_USER26 = 50 , MAV_COMP_ID_USER27 = 51 , MAV_COMP_ID_USER28 = 52 , MAV_COMP_ID_USER29 = 53 , MAV_COMP_ID_USER30 = 54 , MAV_COMP_ID_USER31 = 55 , MAV_COMP_ID_USER32 = 56 , MAV_COMP_ID_USER33 = 57 , MAV_COMP_ID_USER34 = 58 , MAV_COMP_ID_USER35 = 59 , MAV_COMP_ID_USER36 = 60 , MAV_COMP_ID_USER37 = 61 , MAV_COMP_ID_USER38 = 62 , MAV_COMP_ID_USER39 = 63 , MAV_COMP_ID_USER40 = 64 , MAV_COMP_ID_USER41 = 65 , MAV_COMP_ID_USER42 = 66 , MAV_COMP_ID_USER43 = 67 , MAV_COMP_ID_TELEMETRY_RADIO = 68 , MAV_COMP_ID_USER45 = 69 , MAV_COMP_ID_USER46 = 70 , MAV_COMP_ID_USER47 = 71 , MAV_COMP_ID_USER48 = 72 , MAV_COMP_ID_USER49 = 73 , MAV_COMP_ID_USER50 = 74 , MAV_COMP_ID_USER51 = 75 , MAV_COMP_ID_USER52 = 76 , MAV_COMP_ID_USER53 = 77 , MAV_COMP_ID_USER54 = 78 , MAV_COMP_ID_USER55 = 79 , MAV_COMP_ID_USER56 = 80 , MAV_COMP_ID_USER57 = 81 , MAV_COMP_ID_USER58 = 82 , MAV_COMP_ID_USER59 = 83 , MAV_COMP_ID_USER60 = 84 , MAV_COMP_ID_USER61 = 85 , MAV_COMP_ID_USER62 = 86 , MAV_COMP_ID_USER63 = 87 , MAV_COMP_ID_USER64 = 88 , MAV_COMP_ID_USER65 = 89 , MAV_COMP_ID_USER66 = 90 , MAV_COMP_ID_USER67 = 91 , MAV_COMP_ID_USER68 = 92 , MAV_COMP_ID_USER69 = 93 , MAV_COMP_ID_USER70 = 94 , MAV_COMP_ID_USER71 = 95 , MAV_COMP_ID_USER72 = 96 , MAV_COMP_ID_USER73 = 97 , MAV_COMP_ID_USER74 = 98 , MAV_COMP_ID_USER75 = 99 , MAV_COMP_ID_CAMERA = 100 , MAV_COMP_ID_CAMERA2 = 101 , MAV_COMP_ID_CAMERA3 = 102 , MAV_COMP_ID_CAMERA4 = 103 , MAV_COMP_ID_CAMERA5 = 104 , MAV_COMP_ID_CAMERA6 = 105 , MAV_COMP_ID_SERVO1 = 140 , MAV_COMP_ID_SERVO2 = 141 , MAV_COMP_ID_SERVO3 = 142 , MAV_COMP_ID_SERVO4 = 143 , MAV_COMP_ID_SERVO5 = 144 , MAV_COMP_ID_SERVO6 = 145 , MAV_COMP_ID_SERVO7 = 146 , MAV_COMP_ID_SERVO8 = 147 , MAV_COMP_ID_SERVO9 = 148 , MAV_COMP_ID_SERVO10 = 149 , MAV_COMP_ID_SERVO11 = 150 , MAV_COMP_ID_SERVO12 = 151 , MAV_COMP_ID_SERVO13 = 152 , MAV_COMP_ID_SERVO14 = 153 , MAV_COMP_ID_GIMBAL = 154 , MAV_COMP_ID_LOG = 155 , MAV_COMP_ID_ADSB = 156 , MAV_COMP_ID_OSD = 157 , MAV_COMP_ID_PERIPHERAL = 158 , MAV_COMP_ID_QX1_GIMBAL = 159 , MAV_COMP_ID_FLARM = 160 , MAV_COMP_ID_PARACHUTE = 161 , MAV_COMP_ID_WINCH = 169 , MAV_COMP_ID_GIMBAL2 = 171 , MAV_COMP_ID_GIMBAL3 = 172 , MAV_COMP_ID_GIMBAL4 = 173 , MAV_COMP_ID_GIMBAL5 = 174 , MAV_COMP_ID_GIMBAL6 = 175 , MAV_COMP_ID_BATTERY = 180 , MAV_COMP_ID_BATTERY2 = 181 , MAV_COMP_ID_MAVCAN = 189 , MAV_COMP_ID_MISSIONPLANNER = 190 , MAV_COMP_ID_ONBOARD_COMPUTER = 191 , MAV_COMP_ID_ONBOARD_COMPUTER2 = 192 , MAV_COMP_ID_ONBOARD_COMPUTER3 = 193 , MAV_COMP_ID_ONBOARD_COMPUTER4 = 194 , MAV_COMP_ID_PATHPLANNER = 195 , MAV_COMP_ID_OBSTACLE_AVOIDANCE = 196 , MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY = 197 , MAV_COMP_ID_PAIRING_MANAGER = 198 , MAV_COMP_ID_IMU = 200 , MAV_COMP_ID_IMU_2 = 201 , MAV_COMP_ID_IMU_3 = 202 , MAV_COMP_ID_GPS = 220 , MAV_COMP_ID_GPS2 = 221 , MAV_COMP_ID_ODID_TXRX_1 = 236 , MAV_COMP_ID_ODID_TXRX_2 = 237 , MAV_COMP_ID_ODID_TXRX_3 = 238 , MAV_COMP_ID_UDP_BRIDGE = 240 , MAV_COMP_ID_UART_BRIDGE = 241 , MAV_COMP_ID_TUNNEL_NODE = 242 , MAV_COMP_ID_SYSTEM_CONTROL = 250 , } impl MavComponent { pub const DEFAULT : Self = Self :: MAV_COMP_ID_ALL ; } impl Default for MavComponent { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavEventCurrentSequenceFlags : u8 { const MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET = 1 ; } } impl MavEventCurrentSequenceFlags { pub const DEFAULT : Self = Self :: MAV_EVENT_CURRENT_SEQUENCE_FLAGS_RESET ; } impl Default for MavEventCurrentSequenceFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavResult { MAV_RESULT_ACCEPTED = 0 , MAV_RESULT_TEMPORARILY_REJECTED = 1 , MAV_RESULT_DENIED = 2 , MAV_RESULT_UNSUPPORTED = 3 , MAV_RESULT_FAILED = 4 , MAV_RESULT_IN_PROGRESS = 5 , MAV_RESULT_CANCELLED = 6 , } impl MavResult { pub const DEFAULT : Self = Self :: MAV_RESULT_ACCEPTED ; } impl Default for MavResult { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VtolTransitionHeading { VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT = 0 , VTOL_TRANSITION_HEADING_NEXT_WAYPOINT = 1 , VTOL_TRANSITION_HEADING_TAKEOFF = 2 , VTOL_TRANSITION_HEADING_SPECIFIED = 3 , VTOL_TRANSITION_HEADING_ANY = 4 , } impl VtolTransitionHeading { pub const DEFAULT : Self = Self :: VTOL_TRANSITION_HEADING_VEHICLE_DEFAULT ; } impl Default for VtolTransitionHeading { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceMitigate { FENCE_MITIGATE_UNKNOWN = 0 , FENCE_MITIGATE_NONE = 1 , FENCE_MITIGATE_VEL_LIMIT = 2 , } impl FenceMitigate { pub const DEFAULT : Self = Self :: FENCE_MITIGATE_UNKNOWN ; } impl Default for FenceMitigate { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SetFocusType { FOCUS_TYPE_STEP = 0 , FOCUS_TYPE_CONTINUOUS = 1 , FOCUS_TYPE_RANGE = 2 , FOCUS_TYPE_METERS = 3 , FOCUS_TYPE_AUTO = 4 , FOCUS_TYPE_AUTO_SINGLE = 5 , FOCUS_TYPE_AUTO_CONTINUOUS = 6 , } impl SetFocusType { pub const DEFAULT : Self = Self :: FOCUS_TYPE_STEP ; } impl Default for SetFocusType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CanFilterOp { CAN_FILTER_REPLACE = 0 , CAN_FILTER_ADD = 1 , CAN_FILTER_REMOVE = 2 , } impl CanFilterOp { pub const DEFAULT : Self = Self :: CAN_FILTER_REPLACE ; } impl Default for CanFilterOp { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryMode { MAV_BATTERY_MODE_UNKNOWN = 0 , MAV_BATTERY_MODE_AUTO_DISCHARGING = 1 , MAV_BATTERY_MODE_HOT_SWAP = 2 , } impl MavBatteryMode { pub const DEFAULT : Self = Self :: MAV_BATTERY_MODE_UNKNOWN ; } impl Default for MavBatteryMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum WifiConfigApResponse { WIFI_CONFIG_AP_RESPONSE_UNDEFINED = 0 , WIFI_CONFIG_AP_RESPONSE_ACCEPTED = 1 , WIFI_CONFIG_AP_RESPONSE_REJECTED = 2 , WIFI_CONFIG_AP_RESPONSE_MODE_ERROR = 3 , WIFI_CONFIG_AP_RESPONSE_SSID_ERROR = 4 , WIFI_CONFIG_AP_RESPONSE_PASSWORD_ERROR = 5 , } impl WifiConfigApResponse { pub const DEFAULT : Self = Self :: WIFI_CONFIG_AP_RESPONSE_UNDEFINED ; } impl Default for WifiConfigApResponse { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularStatusFlag { CELLULAR_STATUS_FLAG_UNKNOWN = 0 , CELLULAR_STATUS_FLAG_FAILED = 1 , CELLULAR_STATUS_FLAG_INITIALIZING = 2 , CELLULAR_STATUS_FLAG_LOCKED = 3 , CELLULAR_STATUS_FLAG_DISABLED = 4 , CELLULAR_STATUS_FLAG_DISABLING = 5 , CELLULAR_STATUS_FLAG_ENABLING = 6 , CELLULAR_STATUS_FLAG_ENABLED = 7 , CELLULAR_STATUS_FLAG_SEARCHING = 8 , CELLULAR_STATUS_FLAG_REGISTERED = 9 , CELLULAR_STATUS_FLAG_DISCONNECTING = 10 , CELLULAR_STATUS_FLAG_CONNECTING = 11 , CELLULAR_STATUS_FLAG_CONNECTED = 12 , } impl CellularStatusFlag { pub const DEFAULT : Self = Self :: CELLULAR_STATUS_FLAG_UNKNOWN ; } impl Default for CellularStatusFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UtmFlightState { UTM_FLIGHT_STATE_UNKNOWN = 1 , UTM_FLIGHT_STATE_GROUND = 2 , UTM_FLIGHT_STATE_AIRBORNE = 3 , UTM_FLIGHT_STATE_EMERGENCY = 16 , UTM_FLIGHT_STATE_NOCTRL = 32 , } impl UtmFlightState { pub const DEFAULT : Self = Self :: UTM_FLIGHT_STATE_UNKNOWN ; } impl Default for UtmFlightState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum LandingTargetType { LANDING_TARGET_TYPE_LIGHT_BEACON = 0 , LANDING_TARGET_TYPE_RADIO_BEACON = 1 , LANDING_TARGET_TYPE_VISION_FIDUCIAL = 2 , LANDING_TARGET_TYPE_VISION_OTHER = 3 , } impl LandingTargetType { pub const DEFAULT : Self = Self :: LANDING_TARGET_TYPE_LIGHT_BEACON ; } impl Default for LandingTargetType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavRoi { MAV_ROI_NONE = 0 , MAV_ROI_WPNEXT = 1 , MAV_ROI_WPINDEX = 2 , MAV_ROI_LOCATION = 3 , MAV_ROI_TARGET = 4 , } impl MavRoi { pub const DEFAULT : Self = Self :: MAV_ROI_NONE ; } impl Default for MavRoi { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidHorAcc { MAV_ODID_HOR_ACC_UNKNOWN = 0 , MAV_ODID_HOR_ACC_10NM = 1 , MAV_ODID_HOR_ACC_4NM = 2 , MAV_ODID_HOR_ACC_2NM = 3 , MAV_ODID_HOR_ACC_1NM = 4 , MAV_ODID_HOR_ACC_0_5NM = 5 , MAV_ODID_HOR_ACC_0_3NM = 6 , MAV_ODID_HOR_ACC_0_1NM = 7 , MAV_ODID_HOR_ACC_0_05NM = 8 , MAV_ODID_HOR_ACC_30_METER = 9 , MAV_ODID_HOR_ACC_10_METER = 10 , MAV_ODID_HOR_ACC_3_METER = 11 , MAV_ODID_HOR_ACC_1_METER = 12 , } impl MavOdidHorAcc { pub const DEFAULT : Self = Self :: MAV_ODID_HOR_ACC_UNKNOWN ; } impl Default for MavOdidHorAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularNetworkFailedReason { CELLULAR_NETWORK_FAILED_REASON_NONE = 0 , CELLULAR_NETWORK_FAILED_REASON_UNKNOWN = 1 , CELLULAR_NETWORK_FAILED_REASON_SIM_MISSING = 2 , CELLULAR_NETWORK_FAILED_REASON_SIM_ERROR = 3 , } impl CellularNetworkFailedReason { pub const DEFAULT : Self = Self :: CELLULAR_NETWORK_FAILED_REASON_NONE ; } impl Default for CellularNetworkFailedReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PrecisionLandMode { PRECISION_LAND_MODE_DISABLED = 0 , PRECISION_LAND_MODE_OPPORTUNISTIC = 1 , PRECISION_LAND_MODE_REQUIRED = 2 , } impl PrecisionLandMode { pub const DEFAULT : Self = Self :: PRECISION_LAND_MODE_DISABLED ; } impl Default for PrecisionLandMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingTargetData { CAMERA_TRACKING_TARGET_DATA_NONE = 0 , CAMERA_TRACKING_TARGET_DATA_EMBEDDED = 1 , CAMERA_TRACKING_TARGET_DATA_RENDERED = 2 , CAMERA_TRACKING_TARGET_DATA_IN_STATUS = 4 , } impl CameraTrackingTargetData { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_TARGET_DATA_NONE ; } impl Default for CameraTrackingTargetData { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AisFlags : u16 { const AIS_FLAGS_POSITION_ACCURACY = 1 ; const AIS_FLAGS_VALID_COG = 2 ; const AIS_FLAGS_VALID_VELOCITY = 4 ; const AIS_FLAGS_HIGH_VELOCITY = 8 ; const AIS_FLAGS_VALID_TURN_RATE = 16 ; const AIS_FLAGS_TURN_RATE_SIGN_ONLY = 32 ; const AIS_FLAGS_VALID_DIMENSIONS = 64 ; const AIS_FLAGS_LARGE_BOW_DIMENSION = 128 ; const AIS_FLAGS_LARGE_STERN_DIMENSION = 256 ; const AIS_FLAGS_LARGE_PORT_DIMENSION = 512 ; const AIS_FLAGS_LARGE_STARBOARD_DIMENSION = 1024 ; const AIS_FLAGS_VALID_CALLSIGN = 2048 ; const AIS_FLAGS_VALID_NAME = 4096 ; } } impl AisFlags { pub const DEFAULT : Self = Self :: AIS_FLAGS_POSITION_ACCURACY ; } impl Default for AisFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum NavVtolLandOptions { NAV_VTOL_LAND_OPTIONS_DEFAULT = 0 , NAV_VTOL_LAND_OPTIONS_FW_DESCENT = 1 , NAV_VTOL_LAND_OPTIONS_HOVER_DESCENT = 2 , } impl NavVtolLandOptions { pub const DEFAULT : Self = Self :: NAV_VTOL_LAND_OPTIONS_DEFAULT ; } impl Default for NavVtolLandOptions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AdsbAltitudeType { ADSB_ALTITUDE_TYPE_PRESSURE_QNH = 0 , ADSB_ALTITUDE_TYPE_GEOMETRIC = 1 , } impl AdsbAltitudeType { pub const DEFAULT : Self = Self :: ADSB_ALTITUDE_TYPE_PRESSURE_QNH ; } impl Default for AdsbAltitudeType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavProtocolCapability : u64 { const MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT = 1 ; const MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT = 2 ; const MAV_PROTOCOL_CAPABILITY_MISSION_INT = 4 ; const MAV_PROTOCOL_CAPABILITY_COMMAND_INT = 8 ; const MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE = 16 ; const MAV_PROTOCOL_CAPABILITY_FTP = 32 ; const MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET = 64 ; const MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED = 128 ; const MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT = 256 ; const MAV_PROTOCOL_CAPABILITY_TERRAIN = 512 ; const MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET = 1024 ; const MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION = 2048 ; const MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION = 4096 ; const MAV_PROTOCOL_CAPABILITY_MAVLINK2 = 8192 ; const MAV_PROTOCOL_CAPABILITY_MISSION_FENCE = 16384 ; const MAV_PROTOCOL_CAPABILITY_MISSION_RALLY = 32768 ; const MAV_PROTOCOL_CAPABILITY_RESERVED2 = 65536 ; const MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST = 131072 ; } } impl MavProtocolCapability { pub const DEFAULT : Self = Self :: MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT ; } impl Default for MavProtocolCapability { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FailureUnit { FAILURE_UNIT_SENSOR_GYRO = 0 , FAILURE_UNIT_SENSOR_ACCEL = 1 , FAILURE_UNIT_SENSOR_MAG = 2 , FAILURE_UNIT_SENSOR_BARO = 3 , FAILURE_UNIT_SENSOR_GPS = 4 , FAILURE_UNIT_SENSOR_OPTICAL_FLOW = 5 , FAILURE_UNIT_SENSOR_VIO = 6 , FAILURE_UNIT_SENSOR_DISTANCE_SENSOR = 7 , FAILURE_UNIT_SENSOR_AIRSPEED = 8 , FAILURE_UNIT_SYSTEM_BATTERY = 100 , FAILURE_UNIT_SYSTEM_MOTOR = 101 , FAILURE_UNIT_SYSTEM_SERVO = 102 , FAILURE_UNIT_SYSTEM_AVOIDANCE = 103 , FAILURE_UNIT_SYSTEM_RC_SIGNAL = 104 , FAILURE_UNIT_SYSTEM_MAVLINK_SIGNAL = 105 , } impl FailureUnit { pub const DEFAULT : Self = Self :: FAILURE_UNIT_SENSOR_GYRO ; } impl Default for FailureUnit { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FenceBreach { FENCE_BREACH_NONE = 0 , FENCE_BREACH_MINALT = 1 , FENCE_BREACH_MAXALT = 2 , FENCE_BREACH_BOUNDARY = 3 , } impl FenceBreach { pub const DEFAULT : Self = Self :: FENCE_BREACH_NONE ; } impl Default for FenceBreach { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GripperActions { GRIPPER_ACTION_RELEASE = 0 , GRIPPER_ACTION_GRAB = 1 , } impl GripperActions { pub const DEFAULT : Self = Self :: GRIPPER_ACTION_RELEASE ; } impl Default for GripperActions { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavModeFlagDecodePosition { MAV_MODE_FLAG_DECODE_POSITION_SAFETY = 128 , MAV_MODE_FLAG_DECODE_POSITION_MANUAL = 64 , MAV_MODE_FLAG_DECODE_POSITION_HIL = 32 , MAV_MODE_FLAG_DECODE_POSITION_STABILIZE = 16 , MAV_MODE_FLAG_DECODE_POSITION_GUIDED = 8 , MAV_MODE_FLAG_DECODE_POSITION_AUTO = 4 , MAV_MODE_FLAG_DECODE_POSITION_TEST = 2 , MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE = 1 , } impl MavModeFlagDecodePosition { pub const DEFAULT : Self = Self :: MAV_MODE_FLAG_DECODE_POSITION_SAFETY ; } impl Default for MavModeFlagDecodePosition { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CompMetadataType { COMP_METADATA_TYPE_GENERAL = 0 , COMP_METADATA_TYPE_PARAMETER = 1 , COMP_METADATA_TYPE_COMMANDS = 2 , COMP_METADATA_TYPE_PERIPHERALS = 3 , COMP_METADATA_TYPE_EVENTS = 4 , COMP_METADATA_TYPE_ACTUATORS = 5 , } impl CompMetadataType { pub const DEFAULT : Self = Self :: COMP_METADATA_TYPE_GENERAL ; } impl Default for CompMetadataType { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavSysStatusSensor : u32 { const MAV_SYS_STATUS_SENSOR_3D_GYRO = 1 ; const MAV_SYS_STATUS_SENSOR_3D_ACCEL = 2 ; const MAV_SYS_STATUS_SENSOR_3D_MAG = 4 ; const MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE = 8 ; const MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE = 16 ; const MAV_SYS_STATUS_SENSOR_GPS = 32 ; const MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW = 64 ; const MAV_SYS_STATUS_SENSOR_VISION_POSITION = 128 ; const MAV_SYS_STATUS_SENSOR_LASER_POSITION = 256 ; const MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH = 512 ; const MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL = 1024 ; const MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION = 2048 ; const MAV_SYS_STATUS_SENSOR_YAW_POSITION = 4096 ; const MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL = 8192 ; const MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL = 16384 ; const MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS = 32768 ; const MAV_SYS_STATUS_SENSOR_RC_RECEIVER = 65536 ; const MAV_SYS_STATUS_SENSOR_3D_GYRO2 = 131072 ; const MAV_SYS_STATUS_SENSOR_3D_ACCEL2 = 262144 ; const MAV_SYS_STATUS_SENSOR_3D_MAG2 = 524288 ; const MAV_SYS_STATUS_GEOFENCE = 1048576 ; const MAV_SYS_STATUS_AHRS = 2097152 ; const MAV_SYS_STATUS_TERRAIN = 4194304 ; const MAV_SYS_STATUS_REVERSE_MOTOR = 8388608 ; const MAV_SYS_STATUS_LOGGING = 16777216 ; const MAV_SYS_STATUS_SENSOR_BATTERY = 33554432 ; const MAV_SYS_STATUS_SENSOR_PROXIMITY = 67108864 ; const MAV_SYS_STATUS_SENSOR_SATCOM = 134217728 ; const MAV_SYS_STATUS_PREARM_CHECK = 268435456 ; const MAV_SYS_STATUS_OBSTACLE_AVOIDANCE = 536870912 ; const MAV_SYS_STATUS_SENSOR_PROPULSION = 1073741824 ; const MAV_SYS_STATUS_EXTENSION_USED = 2147483648 ; } } impl MavSysStatusSensor { pub const DEFAULT : Self = Self :: MAV_SYS_STATUS_SENSOR_3D_GYRO ; } impl Default for MavSysStatusSensor { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum FirmwareVersionType { FIRMWARE_VERSION_TYPE_DEV = 0 , FIRMWARE_VERSION_TYPE_ALPHA = 64 , FIRMWARE_VERSION_TYPE_BETA = 128 , FIRMWARE_VERSION_TYPE_RC = 192 , FIRMWARE_VERSION_TYPE_OFFICIAL = 255 , } impl FirmwareVersionType { pub const DEFAULT : Self = Self :: FIRMWARE_VERSION_TYPE_DEV ; } impl Default for FirmwareVersionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidIdType { MAV_ODID_ID_TYPE_NONE = 0 , MAV_ODID_ID_TYPE_SERIAL_NUMBER = 1 , MAV_ODID_ID_TYPE_CAA_REGISTRATION_ID = 2 , MAV_ODID_ID_TYPE_UTM_ASSIGNED_UUID = 3 , MAV_ODID_ID_TYPE_SPECIFIC_SESSION_ID = 4 , } impl MavOdidIdType { pub const DEFAULT : Self = Self :: MAV_ODID_ID_TYPE_NONE ; } impl Default for MavOdidIdType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CellularConfigResponse { CELLULAR_CONFIG_RESPONSE_ACCEPTED = 0 , CELLULAR_CONFIG_RESPONSE_APN_ERROR = 1 , CELLULAR_CONFIG_RESPONSE_PIN_ERROR = 2 , CELLULAR_CONFIG_RESPONSE_REJECTED = 3 , CELLULAR_CONFIG_BLOCKED_PUK_REQUIRED = 4 , } impl CellularConfigResponse { pub const DEFAULT : Self = Self :: CELLULAR_CONFIG_RESPONSE_ACCEPTED ; } impl Default for CellularConfigResponse { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidClassificationType { MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED = 0 , MAV_ODID_CLASSIFICATION_TYPE_EU = 1 , } impl MavOdidClassificationType { pub const DEFAULT : Self = Self :: MAV_ODID_CLASSIFICATION_TYPE_UNDECLARED ; } impl Default for MavOdidClassificationType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ActuatorConfiguration { ACTUATOR_CONFIGURATION_NONE = 0 , ACTUATOR_CONFIGURATION_BEEP = 1 , ACTUATOR_CONFIGURATION_3D_MODE_ON = 2 , ACTUATOR_CONFIGURATION_3D_MODE_OFF = 3 , ACTUATOR_CONFIGURATION_SPIN_DIRECTION1 = 4 , ACTUATOR_CONFIGURATION_SPIN_DIRECTION2 = 5 , } impl ActuatorConfiguration { pub const DEFAULT : Self = Self :: ACTUATOR_CONFIGURATION_NONE ; } impl Default for ActuatorConfiguration { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceCapFlags : u16 { const GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT = 1 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_NEUTRAL = 2 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_AXIS = 4 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_FOLLOW = 8 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_LOCK = 16 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_AXIS = 32 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_FOLLOW = 64 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_LOCK = 128 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_AXIS = 256 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_FOLLOW = 512 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_LOCK = 1024 ; const GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_INFINITE_YAW = 2048 ; const GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_YAW_IN_EARTH_FRAME = 4096 ; const GIMBAL_DEVICE_CAP_FLAGS_HAS_RC_INPUTS = 8192 ; } } impl GimbalDeviceCapFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT ; } impl Default for GimbalDeviceCapFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMissionType { MAV_MISSION_TYPE_MISSION = 0 , MAV_MISSION_TYPE_FENCE = 1 , MAV_MISSION_TYPE_RALLY = 2 , MAV_MISSION_TYPE_ALL = 255 , } impl MavMissionType { pub const DEFAULT : Self = Self :: MAV_MISSION_TYPE_MISSION ; } impl Default for MavMissionType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RcType { RC_TYPE_SPEKTRUM_DSM2 = 0 , RC_TYPE_SPEKTRUM_DSMX = 1 , } impl RcType { pub const DEFAULT : Self = Self :: RC_TYPE_SPEKTRUM_DSM2 ; } impl Default for RcType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VideoStreamStatusFlags { VIDEO_STREAM_STATUS_FLAGS_RUNNING = 1 , VIDEO_STREAM_STATUS_FLAGS_THERMAL = 2 , } impl VideoStreamStatusFlags { pub const DEFAULT : Self = Self :: VIDEO_STREAM_STATUS_FLAGS_RUNNING ; } impl Default for VideoStreamStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMountMode { MAV_MOUNT_MODE_RETRACT = 0 , MAV_MOUNT_MODE_NEUTRAL = 1 , MAV_MOUNT_MODE_MAVLINK_TARGETING = 2 , MAV_MOUNT_MODE_RC_TARGETING = 3 , MAV_MOUNT_MODE_GPS_POINT = 4 , MAV_MOUNT_MODE_SYSID_TARGET = 5 , MAV_MOUNT_MODE_HOME_LOCATION = 6 , } impl MavMountMode { pub const DEFAULT : Self = Self :: MAV_MOUNT_MODE_RETRACT ; } impl Default for MavMountMode { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidVerAcc { MAV_ODID_VER_ACC_UNKNOWN = 0 , MAV_ODID_VER_ACC_150_METER = 1 , MAV_ODID_VER_ACC_45_METER = 2 , MAV_ODID_VER_ACC_25_METER = 3 , MAV_ODID_VER_ACC_10_METER = 4 , MAV_ODID_VER_ACC_3_METER = 5 , MAV_ODID_VER_ACC_1_METER = 6 , } impl MavOdidVerAcc { pub const DEFAULT : Self = Self :: MAV_ODID_VER_ACC_UNKNOWN ; } impl Default for MavOdidVerAcc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavEventErrorReason { MAV_EVENT_ERROR_REASON_UNAVAILABLE = 0 , } impl MavEventErrorReason { pub const DEFAULT : Self = Self :: MAV_EVENT_ERROR_REASON_UNAVAILABLE ; } impl Default for MavEventErrorReason { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum RtkBaselineCoordinateSystem { RTK_BASELINE_COORDINATE_SYSTEM_ECEF = 0 , RTK_BASELINE_COORDINATE_SYSTEM_NED = 1 , } impl RtkBaselineCoordinateSystem { pub const DEFAULT : Self = Self :: RTK_BASELINE_COORDINATE_SYSTEM_ECEF ; } impl Default for RtkBaselineCoordinateSystem { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDoRepositionFlags { MAV_DO_REPOSITION_FLAGS_CHANGE_MODE = 1 , } impl MavDoRepositionFlags { pub const DEFAULT : Self = Self :: MAV_DO_REPOSITION_FLAGS_CHANGE_MODE ; } impl Default for MavDoRepositionFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GimbalManagerFlags { GIMBAL_MANAGER_FLAGS_RETRACT = 1 , GIMBAL_MANAGER_FLAGS_NEUTRAL = 2 , GIMBAL_MANAGER_FLAGS_ROLL_LOCK = 4 , GIMBAL_MANAGER_FLAGS_PITCH_LOCK = 8 , GIMBAL_MANAGER_FLAGS_YAW_LOCK = 16 , GIMBAL_MANAGER_FLAGS_YAW_IN_VEHICLE_FRAME = 32 , GIMBAL_MANAGER_FLAGS_YAW_IN_EARTH_FRAME = 64 , GIMBAL_MANAGER_FLAGS_ACCEPTS_YAW_IN_EARTH_FRAME = 128 , GIMBAL_MANAGER_FLAGS_RC_EXCLUSIVE = 256 , GIMBAL_MANAGER_FLAGS_RC_MIXED = 512 , } impl GimbalManagerFlags { pub const DEFAULT : Self = Self :: GIMBAL_MANAGER_FLAGS_RETRACT ; } impl Default for GimbalManagerFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidSpeedAcc { MAV_ODID_SPEED_ACC_UNKNOWN = 0 , MAV_ODID_SPEED_ACC_10_METERS_PER_SECOND = 1 , MAV_ODID_SPEED_ACC_3_METERS_PER_SECOND = 2 , MAV_ODID_SPEED_ACC_1_METERS_PER_SECOND = 3 , MAV_ODID_SPEED_ACC_0_3_METERS_PER_SECOND = 4 , } impl MavOdidSpeedAcc { pub const DEFAULT : Self = Self :: MAV_ODID_SPEED_ACC_UNKNOWN ; } impl Default for MavOdidSpeedAcc { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MavModeFlag : u8 { const MAV_MODE_FLAG_SAFETY_ARMED = 128 ; const MAV_MODE_FLAG_MANUAL_INPUT_ENABLED = 64 ; const MAV_MODE_FLAG_HIL_ENABLED = 32 ; const MAV_MODE_FLAG_STABILIZE_ENABLED = 16 ; const MAV_MODE_FLAG_GUIDED_ENABLED = 8 ; const MAV_MODE_FLAG_AUTO_ENABLED = 4 ; const MAV_MODE_FLAG_TEST_ENABLED = 2 ; const MAV_MODE_FLAG_CUSTOM_MODE_ENABLED = 1 ; } } impl MavModeFlag { pub const DEFAULT : Self = Self :: MAV_MODE_FLAG_SAFETY_ARMED ; } impl Default for MavModeFlag { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavArmAuthDeniedReason { MAV_ARM_AUTH_DENIED_REASON_GENERIC = 0 , MAV_ARM_AUTH_DENIED_REASON_NONE = 1 , MAV_ARM_AUTH_DENIED_REASON_INVALID_WAYPOINT = 2 , MAV_ARM_AUTH_DENIED_REASON_TIMEOUT = 3 , MAV_ARM_AUTH_DENIED_REASON_AIRSPACE_IN_USE = 4 , MAV_ARM_AUTH_DENIED_REASON_BAD_WEATHER = 5 , } impl MavArmAuthDeniedReason { pub const DEFAULT : Self = Self :: MAV_ARM_AUTH_DENIED_REASON_GENERIC ; } impl Default for MavArmAuthDeniedReason { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GimbalDeviceErrorFlags : u32 { const GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT = 1 ; const GIMBAL_DEVICE_ERROR_FLAGS_AT_PITCH_LIMIT = 2 ; const GIMBAL_DEVICE_ERROR_FLAGS_AT_YAW_LIMIT = 4 ; const GIMBAL_DEVICE_ERROR_FLAGS_ENCODER_ERROR = 8 ; const GIMBAL_DEVICE_ERROR_FLAGS_POWER_ERROR = 16 ; const GIMBAL_DEVICE_ERROR_FLAGS_MOTOR_ERROR = 32 ; const GIMBAL_DEVICE_ERROR_FLAGS_SOFTWARE_ERROR = 64 ; const GIMBAL_DEVICE_ERROR_FLAGS_COMMS_ERROR = 128 ; const GIMBAL_DEVICE_ERROR_FLAGS_CALIBRATION_RUNNING = 256 ; const GIMBAL_DEVICE_ERROR_FLAGS_NO_MANAGER = 512 ; } } impl GimbalDeviceErrorFlags { pub const DEFAULT : Self = Self :: GIMBAL_DEVICE_ERROR_FLAGS_AT_ROLL_LIMIT ; } impl Default for GimbalDeviceErrorFlags { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TuneFormat : u32 { const TUNE_FORMAT_QBASIC1_1 = 1 ; const TUNE_FORMAT_MML_MODERN = 2 ; } } impl TuneFormat { pub const DEFAULT : Self = Self :: TUNE_FORMAT_QBASIC1_1 ; } impl Default for TuneFormat { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum VideoStreamType { VIDEO_STREAM_TYPE_RTSP = 0 , VIDEO_STREAM_TYPE_RTPUDP = 1 , VIDEO_STREAM_TYPE_TCP_MPEG = 2 , VIDEO_STREAM_TYPE_MPEG_TS_H264 = 3 , } impl VideoStreamType { pub const DEFAULT : Self = Self :: VIDEO_STREAM_TYPE_RTSP ; } impl Default for VideoStreamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavLandedState { MAV_LANDED_STATE_UNDEFINED = 0 , MAV_LANDED_STATE_ON_GROUND = 1 , MAV_LANDED_STATE_IN_AIR = 2 , MAV_LANDED_STATE_TAKEOFF = 3 , MAV_LANDED_STATE_LANDING = 4 , } impl MavLandedState { pub const DEFAULT : Self = Self :: MAV_LANDED_STATE_UNDEFINED ; } impl Default for MavLandedState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavlinkDataStreamType { MAVLINK_DATA_STREAM_IMG_JPEG = 0 , MAVLINK_DATA_STREAM_IMG_BMP = 1 , MAVLINK_DATA_STREAM_IMG_RAW8U = 2 , MAVLINK_DATA_STREAM_IMG_RAW32U = 3 , MAVLINK_DATA_STREAM_IMG_PGM = 4 , MAVLINK_DATA_STREAM_IMG_PNG = 5 , } impl MavlinkDataStreamType { pub const DEFAULT : Self = Self :: MAVLINK_DATA_STREAM_IMG_JPEG ; } impl Default for MavlinkDataStreamType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum ParachuteAction { PARACHUTE_DISABLE = 0 , PARACHUTE_ENABLE = 1 , PARACHUTE_RELEASE = 2 , } impl ParachuteAction { pub const DEFAULT : Self = Self :: PARACHUTE_DISABLE ; } impl Default for ParachuteAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryChargeState { MAV_BATTERY_CHARGE_STATE_UNDEFINED = 0 , MAV_BATTERY_CHARGE_STATE_OK = 1 , MAV_BATTERY_CHARGE_STATE_LOW = 2 , MAV_BATTERY_CHARGE_STATE_CRITICAL = 3 , MAV_BATTERY_CHARGE_STATE_EMERGENCY = 4 , MAV_BATTERY_CHARGE_STATE_FAILED = 5 , MAV_BATTERY_CHARGE_STATE_UNHEALTHY = 6 , MAV_BATTERY_CHARGE_STATE_CHARGING = 7 , } impl MavBatteryChargeState { pub const DEFAULT : Self = Self :: MAV_BATTERY_CHARGE_STATE_UNDEFINED ; } impl Default for MavBatteryChargeState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavType { MAV_TYPE_GENERIC = 0 , MAV_TYPE_FIXED_WING = 1 , MAV_TYPE_QUADROTOR = 2 , MAV_TYPE_COAXIAL = 3 , MAV_TYPE_HELICOPTER = 4 , MAV_TYPE_ANTENNA_TRACKER = 5 , MAV_TYPE_GCS = 6 , MAV_TYPE_AIRSHIP = 7 , MAV_TYPE_FREE_BALLOON = 8 , MAV_TYPE_ROCKET = 9 , MAV_TYPE_GROUND_ROVER = 10 , MAV_TYPE_SURFACE_BOAT = 11 , MAV_TYPE_SUBMARINE = 12 , MAV_TYPE_HEXAROTOR = 13 , MAV_TYPE_OCTOROTOR = 14 , MAV_TYPE_TRICOPTER = 15 , MAV_TYPE_FLAPPING_WING = 16 , MAV_TYPE_KITE = 17 , MAV_TYPE_ONBOARD_CONTROLLER = 18 , MAV_TYPE_VTOL_TAILSITTER_DUOROTOR = 19 , MAV_TYPE_VTOL_TAILSITTER_QUADROTOR = 20 , MAV_TYPE_VTOL_TILTROTOR = 21 , MAV_TYPE_VTOL_FIXEDROTOR = 22 , MAV_TYPE_VTOL_TAILSITTER = 23 , MAV_TYPE_VTOL_TILTWING = 24 , MAV_TYPE_VTOL_RESERVED5 = 25 , MAV_TYPE_GIMBAL = 26 , MAV_TYPE_ADSB = 27 , MAV_TYPE_PARAFOIL = 28 , MAV_TYPE_DODECAROTOR = 29 , MAV_TYPE_CAMERA = 30 , MAV_TYPE_CHARGING_STATION = 31 , MAV_TYPE_FLARM = 32 , MAV_TYPE_SERVO = 33 , MAV_TYPE_ODID = 34 , MAV_TYPE_DECAROTOR = 35 , MAV_TYPE_BATTERY = 36 , MAV_TYPE_PARACHUTE = 37 , MAV_TYPE_LOG = 38 , MAV_TYPE_OSD = 39 , MAV_TYPE_IMU = 40 , MAV_TYPE_GPS = 41 , MAV_TYPE_WINCH = 42 , } impl MavType { pub const DEFAULT : Self = Self :: MAV_TYPE_GENERIC ; } impl Default for MavType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavBatteryType { MAV_BATTERY_TYPE_UNKNOWN = 0 , MAV_BATTERY_TYPE_LIPO = 1 , MAV_BATTERY_TYPE_LIFE = 2 , MAV_BATTERY_TYPE_LION = 3 , MAV_BATTERY_TYPE_NIMH = 4 , } impl MavBatteryType { pub const DEFAULT : Self = Self :: MAV_BATTERY_TYPE_UNKNOWN ; } impl Default for MavBatteryType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum UavionixAdsbEmergencyStatus { UAVIONIX_ADSB_OUT_NO_EMERGENCY = 0 , UAVIONIX_ADSB_OUT_GENERAL_EMERGENCY = 1 , UAVIONIX_ADSB_OUT_LIFEGUARD_EMERGENCY = 2 , UAVIONIX_ADSB_OUT_MINIMUM_FUEL_EMERGENCY = 3 , UAVIONIX_ADSB_OUT_NO_COMM_EMERGENCY = 4 , UAVIONIX_ADSB_OUT_UNLAWFUL_INTERFERANCE_EMERGENCY = 5 , UAVIONIX_ADSB_OUT_DOWNED_AIRCRAFT_EMERGENCY = 6 , UAVIONIX_ADSB_OUT_RESERVED = 7 , } impl UavionixAdsbEmergencyStatus { pub const DEFAULT : Self = Self :: UAVIONIX_ADSB_OUT_NO_EMERGENCY ; } impl Default for UavionixAdsbEmergencyStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum AisType { AIS_TYPE_UNKNOWN = 0 , AIS_TYPE_RESERVED_1 = 1 , AIS_TYPE_RESERVED_2 = 2 , AIS_TYPE_RESERVED_3 = 3 , AIS_TYPE_RESERVED_4 = 4 , AIS_TYPE_RESERVED_5 = 5 , AIS_TYPE_RESERVED_6 = 6 , AIS_TYPE_RESERVED_7 = 7 , AIS_TYPE_RESERVED_8 = 8 , AIS_TYPE_RESERVED_9 = 9 , AIS_TYPE_RESERVED_10 = 10 , AIS_TYPE_RESERVED_11 = 11 , AIS_TYPE_RESERVED_12 = 12 , AIS_TYPE_RESERVED_13 = 13 , AIS_TYPE_RESERVED_14 = 14 , AIS_TYPE_RESERVED_15 = 15 , AIS_TYPE_RESERVED_16 = 16 , AIS_TYPE_RESERVED_17 = 17 , AIS_TYPE_RESERVED_18 = 18 , AIS_TYPE_RESERVED_19 = 19 , AIS_TYPE_WIG = 20 , AIS_TYPE_WIG_HAZARDOUS_A = 21 , AIS_TYPE_WIG_HAZARDOUS_B = 22 , AIS_TYPE_WIG_HAZARDOUS_C = 23 , AIS_TYPE_WIG_HAZARDOUS_D = 24 , AIS_TYPE_WIG_RESERVED_1 = 25 , AIS_TYPE_WIG_RESERVED_2 = 26 , AIS_TYPE_WIG_RESERVED_3 = 27 , AIS_TYPE_WIG_RESERVED_4 = 28 , AIS_TYPE_WIG_RESERVED_5 = 29 , AIS_TYPE_FISHING = 30 , AIS_TYPE_TOWING = 31 , AIS_TYPE_TOWING_LARGE = 32 , AIS_TYPE_DREDGING = 33 , AIS_TYPE_DIVING = 34 , AIS_TYPE_MILITARY = 35 , AIS_TYPE_SAILING = 36 , AIS_TYPE_PLEASURE = 37 , AIS_TYPE_RESERVED_20 = 38 , AIS_TYPE_RESERVED_21 = 39 , AIS_TYPE_HSC = 40 , AIS_TYPE_HSC_HAZARDOUS_A = 41 , AIS_TYPE_HSC_HAZARDOUS_B = 42 , AIS_TYPE_HSC_HAZARDOUS_C = 43 , AIS_TYPE_HSC_HAZARDOUS_D = 44 , AIS_TYPE_HSC_RESERVED_1 = 45 , AIS_TYPE_HSC_RESERVED_2 = 46 , AIS_TYPE_HSC_RESERVED_3 = 47 , AIS_TYPE_HSC_RESERVED_4 = 48 , AIS_TYPE_HSC_UNKNOWN = 49 , AIS_TYPE_PILOT = 50 , AIS_TYPE_SAR = 51 , AIS_TYPE_TUG = 52 , AIS_TYPE_PORT_TENDER = 53 , AIS_TYPE_ANTI_POLLUTION = 54 , AIS_TYPE_LAW_ENFORCEMENT = 55 , AIS_TYPE_SPARE_LOCAL_1 = 56 , AIS_TYPE_SPARE_LOCAL_2 = 57 , AIS_TYPE_MEDICAL_TRANSPORT = 58 , AIS_TYPE_NONECOMBATANT = 59 , AIS_TYPE_PASSENGER = 60 , AIS_TYPE_PASSENGER_HAZARDOUS_A = 61 , AIS_TYPE_PASSENGER_HAZARDOUS_B = 62 , AIS_TYPE_PASSENGER_HAZARDOUS_C = 63 , AIS_TYPE_PASSENGER_HAZARDOUS_D = 64 , AIS_TYPE_PASSENGER_RESERVED_1 = 65 , AIS_TYPE_PASSENGER_RESERVED_2 = 66 , AIS_TYPE_PASSENGER_RESERVED_3 = 67 , AIS_TYPE_PASSENGER_RESERVED_4 = 68 , AIS_TYPE_PASSENGER_UNKNOWN = 69 , AIS_TYPE_CARGO = 70 , AIS_TYPE_CARGO_HAZARDOUS_A = 71 , AIS_TYPE_CARGO_HAZARDOUS_B = 72 , AIS_TYPE_CARGO_HAZARDOUS_C = 73 , AIS_TYPE_CARGO_HAZARDOUS_D = 74 , AIS_TYPE_CARGO_RESERVED_1 = 75 , AIS_TYPE_CARGO_RESERVED_2 = 76 , AIS_TYPE_CARGO_RESERVED_3 = 77 , AIS_TYPE_CARGO_RESERVED_4 = 78 , AIS_TYPE_CARGO_UNKNOWN = 79 , AIS_TYPE_TANKER = 80 , AIS_TYPE_TANKER_HAZARDOUS_A = 81 , AIS_TYPE_TANKER_HAZARDOUS_B = 82 , AIS_TYPE_TANKER_HAZARDOUS_C = 83 , AIS_TYPE_TANKER_HAZARDOUS_D = 84 , AIS_TYPE_TANKER_RESERVED_1 = 85 , AIS_TYPE_TANKER_RESERVED_2 = 86 , AIS_TYPE_TANKER_RESERVED_3 = 87 , AIS_TYPE_TANKER_RESERVED_4 = 88 , AIS_TYPE_TANKER_UNKNOWN = 89 , AIS_TYPE_OTHER = 90 , AIS_TYPE_OTHER_HAZARDOUS_A = 91 , AIS_TYPE_OTHER_HAZARDOUS_B = 92 , AIS_TYPE_OTHER_HAZARDOUS_C = 93 , AIS_TYPE_OTHER_HAZARDOUS_D = 94 , AIS_TYPE_OTHER_RESERVED_1 = 95 , AIS_TYPE_OTHER_RESERVED_2 = 96 , AIS_TYPE_OTHER_RESERVED_3 = 97 , AIS_TYPE_OTHER_RESERVED_4 = 98 , AIS_TYPE_OTHER_UNKNOWN = 99 , } impl AisType { pub const DEFAULT : Self = Self :: AIS_TYPE_UNKNOWN ; } impl Default for AisType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmdAck { MAV_CMD_ACK_OK = 0 , MAV_CMD_ACK_ERR_FAIL = 1 , MAV_CMD_ACK_ERR_ACCESS_DENIED = 2 , MAV_CMD_ACK_ERR_NOT_SUPPORTED = 3 , MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED = 4 , MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE = 5 , MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE = 6 , MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE = 7 , MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE = 8 , } impl MavCmdAck { pub const DEFAULT : Self = Self :: MAV_CMD_ACK_OK ; } impl Default for MavCmdAck { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCmd { MAV_CMD_NAV_WAYPOINT = 16 , MAV_CMD_NAV_LOITER_UNLIM = 17 , MAV_CMD_NAV_LOITER_TURNS = 18 , MAV_CMD_NAV_LOITER_TIME = 19 , MAV_CMD_NAV_RETURN_TO_LAUNCH = 20 , MAV_CMD_NAV_LAND = 21 , MAV_CMD_NAV_TAKEOFF = 22 , MAV_CMD_NAV_LAND_LOCAL = 23 , MAV_CMD_NAV_TAKEOFF_LOCAL = 24 , MAV_CMD_NAV_FOLLOW = 25 , MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT = 30 , MAV_CMD_NAV_LOITER_TO_ALT = 31 , MAV_CMD_DO_FOLLOW = 32 , MAV_CMD_DO_FOLLOW_REPOSITION = 33 , MAV_CMD_DO_ORBIT = 34 , MAV_CMD_NAV_ROI = 80 , MAV_CMD_NAV_PATHPLANNING = 81 , MAV_CMD_NAV_SPLINE_WAYPOINT = 82 , MAV_CMD_NAV_VTOL_TAKEOFF = 84 , MAV_CMD_NAV_VTOL_LAND = 85 , MAV_CMD_NAV_GUIDED_ENABLE = 92 , MAV_CMD_NAV_DELAY = 93 , MAV_CMD_NAV_PAYLOAD_PLACE = 94 , MAV_CMD_NAV_LAST = 95 , MAV_CMD_CONDITION_DELAY = 112 , MAV_CMD_CONDITION_CHANGE_ALT = 113 , MAV_CMD_CONDITION_DISTANCE = 114 , MAV_CMD_CONDITION_YAW = 115 , MAV_CMD_CONDITION_LAST = 159 , MAV_CMD_DO_SET_MODE = 176 , MAV_CMD_DO_JUMP = 177 , MAV_CMD_DO_CHANGE_SPEED = 178 , MAV_CMD_DO_SET_HOME = 179 , MAV_CMD_DO_SET_PARAMETER = 180 , MAV_CMD_DO_SET_RELAY = 181 , MAV_CMD_DO_REPEAT_RELAY = 182 , MAV_CMD_DO_SET_SERVO = 183 , MAV_CMD_DO_REPEAT_SERVO = 184 , MAV_CMD_DO_FLIGHTTERMINATION = 185 , MAV_CMD_DO_CHANGE_ALTITUDE = 186 , MAV_CMD_DO_SET_ACTUATOR = 187 , MAV_CMD_DO_LAND_START = 189 , MAV_CMD_DO_RALLY_LAND = 190 , MAV_CMD_DO_GO_AROUND = 191 , MAV_CMD_DO_REPOSITION = 192 , MAV_CMD_DO_PAUSE_CONTINUE = 193 , MAV_CMD_DO_SET_REVERSE = 194 , MAV_CMD_DO_SET_ROI_LOCATION = 195 , MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET = 196 , MAV_CMD_DO_SET_ROI_NONE = 197 , MAV_CMD_DO_SET_ROI_SYSID = 198 , MAV_CMD_DO_CONTROL_VIDEO = 200 , MAV_CMD_DO_SET_ROI = 201 , MAV_CMD_DO_DIGICAM_CONFIGURE = 202 , MAV_CMD_DO_DIGICAM_CONTROL = 203 , MAV_CMD_DO_MOUNT_CONFIGURE = 204 , MAV_CMD_DO_MOUNT_CONTROL = 205 , MAV_CMD_DO_SET_CAM_TRIGG_DIST = 206 , MAV_CMD_DO_FENCE_ENABLE = 207 , MAV_CMD_DO_PARACHUTE = 208 , MAV_CMD_DO_MOTOR_TEST = 209 , MAV_CMD_DO_INVERTED_FLIGHT = 210 , MAV_CMD_DO_GRIPPER = 211 , MAV_CMD_DO_AUTOTUNE_ENABLE = 212 , MAV_CMD_NAV_SET_YAW_SPEED = 213 , MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL = 214 , MAV_CMD_DO_MOUNT_CONTROL_QUAT = 220 , MAV_CMD_DO_GUIDED_MASTER = 221 , MAV_CMD_DO_GUIDED_LIMITS = 222 , MAV_CMD_DO_ENGINE_CONTROL = 223 , MAV_CMD_DO_SET_MISSION_CURRENT = 224 , MAV_CMD_DO_LAST = 240 , MAV_CMD_PREFLIGHT_CALIBRATION = 241 , MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS = 242 , MAV_CMD_PREFLIGHT_UAVCAN = 243 , MAV_CMD_PREFLIGHT_STORAGE = 245 , MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN = 246 , MAV_CMD_OVERRIDE_GOTO = 252 , MAV_CMD_OBLIQUE_SURVEY = 260 , MAV_CMD_MISSION_START = 300 , MAV_CMD_ACTUATOR_TEST = 310 , MAV_CMD_CONFIGURE_ACTUATOR = 311 , MAV_CMD_COMPONENT_ARM_DISARM = 400 , MAV_CMD_RUN_PREARM_CHECKS = 401 , MAV_CMD_ILLUMINATOR_ON_OFF = 405 , MAV_CMD_GET_HOME_POSITION = 410 , MAV_CMD_INJECT_FAILURE = 420 , MAV_CMD_START_RX_PAIR = 500 , MAV_CMD_GET_MESSAGE_INTERVAL = 510 , MAV_CMD_SET_MESSAGE_INTERVAL = 511 , MAV_CMD_REQUEST_MESSAGE = 512 , MAV_CMD_REQUEST_PROTOCOL_VERSION = 519 , MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES = 520 , MAV_CMD_REQUEST_CAMERA_INFORMATION = 521 , MAV_CMD_REQUEST_CAMERA_SETTINGS = 522 , MAV_CMD_REQUEST_STORAGE_INFORMATION = 525 , MAV_CMD_STORAGE_FORMAT = 526 , MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS = 527 , MAV_CMD_REQUEST_FLIGHT_INFORMATION = 528 , MAV_CMD_RESET_CAMERA_SETTINGS = 529 , MAV_CMD_SET_CAMERA_MODE = 530 , MAV_CMD_SET_CAMERA_ZOOM = 531 , MAV_CMD_SET_CAMERA_FOCUS = 532 , MAV_CMD_SET_STORAGE_USAGE = 533 , MAV_CMD_JUMP_TAG = 600 , MAV_CMD_DO_JUMP_TAG = 601 , MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW = 1000 , MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE = 1001 , MAV_CMD_IMAGE_START_CAPTURE = 2000 , MAV_CMD_IMAGE_STOP_CAPTURE = 2001 , MAV_CMD_REQUEST_CAMERA_IMAGE_CAPTURE = 2002 , MAV_CMD_DO_TRIGGER_CONTROL = 2003 , MAV_CMD_CAMERA_TRACK_POINT = 2004 , MAV_CMD_CAMERA_TRACK_RECTANGLE = 2005 , MAV_CMD_CAMERA_STOP_TRACKING = 2010 , MAV_CMD_VIDEO_START_CAPTURE = 2500 , MAV_CMD_VIDEO_STOP_CAPTURE = 2501 , MAV_CMD_VIDEO_START_STREAMING = 2502 , MAV_CMD_VIDEO_STOP_STREAMING = 2503 , MAV_CMD_REQUEST_VIDEO_STREAM_INFORMATION = 2504 , MAV_CMD_REQUEST_VIDEO_STREAM_STATUS = 2505 , MAV_CMD_LOGGING_START = 2510 , MAV_CMD_LOGGING_STOP = 2511 , MAV_CMD_AIRFRAME_CONFIGURATION = 2520 , MAV_CMD_CONTROL_HIGH_LATENCY = 2600 , MAV_CMD_PANORAMA_CREATE = 2800 , MAV_CMD_DO_VTOL_TRANSITION = 3000 , MAV_CMD_ARM_AUTHORIZATION_REQUEST = 3001 , MAV_CMD_SET_GUIDED_SUBMODE_STANDARD = 4000 , MAV_CMD_SET_GUIDED_SUBMODE_CIRCLE = 4001 , MAV_CMD_CONDITION_GATE = 4501 , MAV_CMD_NAV_FENCE_RETURN_POINT = 5000 , MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION = 5001 , MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION = 5002 , MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION = 5003 , MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION = 5004 , MAV_CMD_NAV_RALLY_POINT = 5100 , MAV_CMD_UAVCAN_GET_NODE_INFO = 5200 , MAV_CMD_DO_ADSB_OUT_IDENT = 10001 , MAV_CMD_PAYLOAD_PREPARE_DEPLOY = 30001 , MAV_CMD_PAYLOAD_CONTROL_DEPLOY = 30002 , MAV_CMD_FIXED_MAG_CAL_YAW = 42006 , MAV_CMD_DO_WINCH = 42600 , MAV_CMD_WAYPOINT_USER_1 = 31000 , MAV_CMD_WAYPOINT_USER_2 = 31001 , MAV_CMD_WAYPOINT_USER_3 = 31002 , MAV_CMD_WAYPOINT_USER_4 = 31003 , MAV_CMD_WAYPOINT_USER_5 = 31004 , MAV_CMD_SPATIAL_USER_1 = 31005 , MAV_CMD_SPATIAL_USER_2 = 31006 , MAV_CMD_SPATIAL_USER_3 = 31007 , MAV_CMD_SPATIAL_USER_4 = 31008 , MAV_CMD_SPATIAL_USER_5 = 31009 , MAV_CMD_USER_1 = 31010 , MAV_CMD_USER_2 = 31011 , MAV_CMD_USER_3 = 31012 , MAV_CMD_USER_4 = 31013 , MAV_CMD_USER_5 = 31014 , MAV_CMD_CAN_FORWARD = 32000 , } impl MavCmd { pub const DEFAULT : Self = Self :: MAV_CMD_NAV_WAYPOINT ; } impl Default for MavCmd { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum OrbitYawBehaviour { ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER = 0 , ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING = 1 , ORBIT_YAW_BEHAVIOUR_UNCONTROLLED = 2 , ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE = 3 , ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED = 4 , } impl OrbitYawBehaviour { pub const DEFAULT : Self = Self :: ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER ; } impl Default for OrbitYawBehaviour { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavState { MAV_STATE_UNINIT = 0 , MAV_STATE_BOOT = 1 , MAV_STATE_CALIBRATING = 2 , MAV_STATE_STANDBY = 3 , MAV_STATE_ACTIVE = 4 , MAV_STATE_CRITICAL = 5 , MAV_STATE_EMERGENCY = 6 , MAV_STATE_POWEROFF = 7 , MAV_STATE_FLIGHT_TERMINATION = 8 , } impl MavState { pub const DEFAULT : Self = Self :: MAV_STATE_UNINIT ; } impl Default for MavState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavVtolState { MAV_VTOL_STATE_UNDEFINED = 0 , MAV_VTOL_STATE_TRANSITION_TO_FW = 1 , MAV_VTOL_STATE_TRANSITION_TO_MC = 2 , MAV_VTOL_STATE_MC = 3 , MAV_VTOL_STATE_FW = 4 , } impl MavVtolState { pub const DEFAULT : Self = Self :: MAV_VTOL_STATE_UNDEFINED ; } impl Default for MavVtolState { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidAuthType { MAV_ODID_AUTH_TYPE_NONE = 0 , MAV_ODID_AUTH_TYPE_UAS_ID_SIGNATURE = 1 , MAV_ODID_AUTH_TYPE_OPERATOR_ID_SIGNATURE = 2 , MAV_ODID_AUTH_TYPE_MESSAGE_SET_SIGNATURE = 3 , MAV_ODID_AUTH_TYPE_NETWORK_REMOTE_ID = 4 , MAV_ODID_AUTH_TYPE_SPECIFIC_AUTHENTICATION = 5 , } impl MavOdidAuthType { pub const DEFAULT : Self = Self :: MAV_ODID_AUTH_TYPE_NONE ; } impl Default for MavOdidAuthType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavEstimatorType { MAV_ESTIMATOR_TYPE_UNKNOWN = 0 , MAV_ESTIMATOR_TYPE_NAIVE = 1 , MAV_ESTIMATOR_TYPE_VISION = 2 , MAV_ESTIMATOR_TYPE_VIO = 3 , MAV_ESTIMATOR_TYPE_GPS = 4 , MAV_ESTIMATOR_TYPE_GPS_INS = 5 , MAV_ESTIMATOR_TYPE_MOCAP = 6 , MAV_ESTIMATOR_TYPE_LIDAR = 7 , MAV_ESTIMATOR_TYPE_AUTOPILOT = 8 , } impl MavEstimatorType { pub const DEFAULT : Self = Self :: MAV_ESTIMATOR_TYPE_UNKNOWN ; } impl Default for MavEstimatorType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidOperatorLocationType { MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF = 0 , MAV_ODID_OPERATOR_LOCATION_TYPE_LIVE_GNSS = 1 , MAV_ODID_OPERATOR_LOCATION_TYPE_FIXED = 2 , } impl MavOdidOperatorLocationType { pub const DEFAULT : Self = Self :: MAV_ODID_OPERATOR_LOCATION_TYPE_TAKEOFF ; } impl Default for MavOdidOperatorLocationType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum StorageType { STORAGE_TYPE_UNKNOWN = 0 , STORAGE_TYPE_USB_STICK = 1 , STORAGE_TYPE_SD = 2 , STORAGE_TYPE_MICROSD = 3 , STORAGE_TYPE_CF = 4 , STORAGE_TYPE_CFE = 5 , STORAGE_TYPE_XQD = 6 , STORAGE_TYPE_HD = 7 , STORAGE_TYPE_OTHER = 254 , } impl StorageType { pub const DEFAULT : Self = Self :: STORAGE_TYPE_UNKNOWN ; } impl Default for StorageType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingStatusFlags { CAMERA_TRACKING_STATUS_FLAGS_IDLE = 0 , CAMERA_TRACKING_STATUS_FLAGS_ACTIVE = 1 , CAMERA_TRACKING_STATUS_FLAGS_ERROR = 2 , } impl CameraTrackingStatusFlags { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_STATUS_FLAGS_IDLE ; } impl Default for CameraTrackingStatusFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDataStream { MAV_DATA_STREAM_ALL = 0 , MAV_DATA_STREAM_RAW_SENSORS = 1 , MAV_DATA_STREAM_EXTENDED_STATUS = 2 , MAV_DATA_STREAM_RC_CHANNELS = 3 , MAV_DATA_STREAM_RAW_CONTROLLER = 4 , MAV_DATA_STREAM_POSITION = 6 , MAV_DATA_STREAM_EXTRA1 = 10 , MAV_DATA_STREAM_EXTRA2 = 11 , MAV_DATA_STREAM_EXTRA3 = 12 , } impl MavDataStream { pub const DEFAULT : Self = Self :: MAV_DATA_STREAM_ALL ; } impl Default for MavDataStream { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidArmStatus { MAV_ODID_ARM_STATUS_GOOD_TO_ARM = 0 , MAV_ODID_ARM_STATUS_PRE_ARM_FAIL_GENERIC = 1 , } impl MavOdidArmStatus { pub const DEFAULT : Self = Self :: MAV_ODID_ARM_STATUS_GOOD_TO_ARM ; } impl Default for MavOdidArmStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum SerialControlDev { SERIAL_CONTROL_DEV_TELEM1 = 0 , SERIAL_CONTROL_DEV_TELEM2 = 1 , SERIAL_CONTROL_DEV_GPS1 = 2 , SERIAL_CONTROL_DEV_GPS2 = 3 , SERIAL_CONTROL_DEV_SHELL = 10 , SERIAL_CONTROL_SERIAL0 = 100 , SERIAL_CONTROL_SERIAL1 = 101 , SERIAL_CONTROL_SERIAL2 = 102 , SERIAL_CONTROL_SERIAL3 = 103 , SERIAL_CONTROL_SERIAL4 = 104 , SERIAL_CONTROL_SERIAL5 = 105 , SERIAL_CONTROL_SERIAL6 = 106 , SERIAL_CONTROL_SERIAL7 = 107 , SERIAL_CONTROL_SERIAL8 = 108 , SERIAL_CONTROL_SERIAL9 = 109 , } impl SerialControlDev { pub const DEFAULT : Self = Self :: SERIAL_CONTROL_DEV_TELEM1 ; } impl Default for SerialControlDev { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum PreflightStorageMissionAction { MISSION_READ_PERSISTENT = 0 , MISSION_WRITE_PERSISTENT = 1 , MISSION_RESET_DEFAULT = 2 , } impl PreflightStorageMissionAction { pub const DEFAULT : Self = Self :: MISSION_READ_PERSISTENT ; } impl Default for PreflightStorageMissionAction { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MagCalStatus { MAG_CAL_NOT_STARTED = 0 , MAG_CAL_WAITING_TO_START = 1 , MAG_CAL_RUNNING_STEP_ONE = 2 , MAG_CAL_RUNNING_STEP_TWO = 3 , MAG_CAL_SUCCESS = 4 , MAG_CAL_FAILED = 5 , MAG_CAL_BAD_ORIENTATION = 6 , MAG_CAL_BAD_RADIUS = 7 , } impl MagCalStatus { pub const DEFAULT : Self = Self :: MAG_CAL_NOT_STARTED ; } impl Default for MagCalStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum CameraTrackingMode { CAMERA_TRACKING_MODE_NONE = 0 , CAMERA_TRACKING_MODE_POINT = 1 , CAMERA_TRACKING_MODE_RECTANGLE = 2 , } impl CameraTrackingMode { pub const DEFAULT : Self = Self :: CAMERA_TRACKING_MODE_NONE ; } impl Default for CameraTrackingMode { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GpsInputIgnoreFlags : u16 { const GPS_INPUT_IGNORE_FLAG_ALT = 1 ; const GPS_INPUT_IGNORE_FLAG_HDOP = 2 ; const GPS_INPUT_IGNORE_FLAG_VDOP = 4 ; const GPS_INPUT_IGNORE_FLAG_VEL_HORIZ = 8 ; const GPS_INPUT_IGNORE_FLAG_VEL_VERT = 16 ; const GPS_INPUT_IGNORE_FLAG_SPEED_ACCURACY = 32 ; const GPS_INPUT_IGNORE_FLAG_HORIZONTAL_ACCURACY = 64 ; const GPS_INPUT_IGNORE_FLAG_VERTICAL_ACCURACY = 128 ; } } impl GpsInputIgnoreFlags { pub const DEFAULT : Self = Self :: GPS_INPUT_IGNORE_FLAG_ALT ; } impl Default for GpsInputIgnoreFlags { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionThreatLevel { MAV_COLLISION_THREAT_LEVEL_NONE = 0 , MAV_COLLISION_THREAT_LEVEL_LOW = 1 , MAV_COLLISION_THREAT_LEVEL_HIGH = 2 , } impl MavCollisionThreatLevel { pub const DEFAULT : Self = Self :: MAV_COLLISION_THREAT_LEVEL_NONE ; } impl Default for MavCollisionThreatLevel { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidHeightRef { MAV_ODID_HEIGHT_REF_OVER_TAKEOFF = 0 , MAV_ODID_HEIGHT_REF_OVER_GROUND = 1 , } impl MavOdidHeightRef { pub const DEFAULT : Self = Self :: MAV_ODID_HEIGHT_REF_OVER_TAKEOFF ; } impl Default for MavOdidHeightRef { fn default () -> Self { Self :: DEFAULT } } bitflags ! { # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PositionTargetTypemask : u16 { const POSITION_TARGET_TYPEMASK_X_IGNORE = 1 ; const POSITION_TARGET_TYPEMASK_Y_IGNORE = 2 ; const POSITION_TARGET_TYPEMASK_Z_IGNORE = 4 ; const POSITION_TARGET_TYPEMASK_VX_IGNORE = 8 ; const POSITION_TARGET_TYPEMASK_VY_IGNORE = 16 ; const POSITION_TARGET_TYPEMASK_VZ_IGNORE = 32 ; const POSITION_TARGET_TYPEMASK_AX_IGNORE = 64 ; const POSITION_TARGET_TYPEMASK_AY_IGNORE = 128 ; const POSITION_TARGET_TYPEMASK_AZ_IGNORE = 256 ; const POSITION_TARGET_TYPEMASK_FORCE_SET = 512 ; const POSITION_TARGET_TYPEMASK_YAW_IGNORE = 1024 ; const POSITION_TARGET_TYPEMASK_YAW_RATE_IGNORE = 2048 ; } } impl PositionTargetTypemask { pub const DEFAULT : Self = Self :: POSITION_TARGET_TYPEMASK_X_IGNORE ; } impl Default for PositionTargetTypemask { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavOdidStatus { MAV_ODID_STATUS_UNDECLARED = 0 , MAV_ODID_STATUS_GROUND = 1 , MAV_ODID_STATUS_AIRBORNE = 2 , MAV_ODID_STATUS_EMERGENCY = 3 , MAV_ODID_STATUS_REMOTE_ID_SYSTEM_FAILURE = 4 , } impl MavOdidStatus { pub const DEFAULT : Self = Self :: MAV_ODID_STATUS_UNDECLARED ; } impl Default for MavOdidStatus { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum GpsFixType { GPS_FIX_TYPE_NO_GPS = 0 , GPS_FIX_TYPE_NO_FIX = 1 , GPS_FIX_TYPE_2D_FIX = 2 , GPS_FIX_TYPE_3D_FIX = 3 , GPS_FIX_TYPE_DGPS = 4 , GPS_FIX_TYPE_RTK_FLOAT = 5 , GPS_FIX_TYPE_RTK_FIXED = 6 , GPS_FIX_TYPE_STATIC = 7 , GPS_FIX_TYPE_PPP = 8 , } impl GpsFixType { pub const DEFAULT : Self = Self :: GPS_FIX_TYPE_NO_GPS ; } impl Default for GpsFixType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavParamExtType { MAV_PARAM_EXT_TYPE_UINT8 = 1 , MAV_PARAM_EXT_TYPE_INT8 = 2 , MAV_PARAM_EXT_TYPE_UINT16 = 3 , MAV_PARAM_EXT_TYPE_INT16 = 4 , MAV_PARAM_EXT_TYPE_UINT32 = 5 , MAV_PARAM_EXT_TYPE_INT32 = 6 , MAV_PARAM_EXT_TYPE_UINT64 = 7 , MAV_PARAM_EXT_TYPE_INT64 = 8 , MAV_PARAM_EXT_TYPE_REAL32 = 9 , MAV_PARAM_EXT_TYPE_REAL64 = 10 , MAV_PARAM_EXT_TYPE_CUSTOM = 11 , } impl MavParamExtType { pub const DEFAULT : Self = Self :: MAV_PARAM_EXT_TYPE_UINT8 ; } impl Default for MavParamExtType { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavDistanceSensor { MAV_DISTANCE_SENSOR_LASER = 0 , MAV_DISTANCE_SENSOR_ULTRASOUND = 1 , MAV_DISTANCE_SENSOR_INFRARED = 2 , MAV_DISTANCE_SENSOR_RADAR = 3 , MAV_DISTANCE_SENSOR_UNKNOWN = 4 , } impl MavDistanceSensor { pub const DEFAULT : Self = Self :: MAV_DISTANCE_SENSOR_LASER ; } impl Default for MavDistanceSensor { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Copy , Clone , PartialEq , FromPrimitive , ToPrimitive)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavCollisionSrc { MAV_COLLISION_SRC_ADSB = 0 , MAV_COLLISION_SRC_MAVLINK_GPS_GLOBAL_INT = 1 , } impl MavCollisionSrc { pub const DEFAULT : Self = Self :: MAV_COLLISION_SRC_ADSB ; } impl Default for MavCollisionSrc { fn default () -> Self { Self :: DEFAULT } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ACK_DATA { pub target_system : u8 , pub target_component : u8 , pub mavtype : MavMissionResult , } impl MISSION_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , mavtype : MavMissionResult :: DEFAULT , } ; } impl Default for MISSION_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ACK_DATA { type Message = MavMessage ; const ID : u32 = 47u32 ; const NAME : & 'static str = "MISSION_ACK" ; const EXTRA_CRC : u8 = 153u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMissionResult" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . mavtype as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_CANCEL_DATA { pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , } impl COMMAND_CANCEL_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for COMMAND_CANCEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_CANCEL_DATA { type Message = MavMessage ; const ID : u32 = 80u32 ; const NAME : & 'static str = "COMMAND_CANCEL" ; const EXTRA_CRC : u8 = 14u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRACKING_IMAGE_STATUS_DATA { pub point_x : f32 , pub point_y : f32 , pub radius : f32 , pub rec_top_x : f32 , pub rec_top_y : f32 , pub rec_bottom_x : f32 , pub rec_bottom_y : f32 , pub tracking_status : CameraTrackingStatusFlags , pub tracking_mode : CameraTrackingMode , pub target_data : CameraTrackingTargetData , } impl CAMERA_TRACKING_IMAGE_STATUS_DATA { pub const ENCODED_LEN : usize = 31usize ; pub const DEFAULT : Self = Self { point_x : 0.0_f32 , point_y : 0.0_f32 , radius : 0.0_f32 , rec_top_x : 0.0_f32 , rec_top_y : 0.0_f32 , rec_bottom_x : 0.0_f32 , rec_bottom_y : 0.0_f32 , tracking_status : CameraTrackingStatusFlags :: DEFAULT , tracking_mode : CameraTrackingMode :: DEFAULT , target_data : CameraTrackingTargetData :: DEFAULT , } ; } impl Default for CAMERA_TRACKING_IMAGE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRACKING_IMAGE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 275u32 ; const NAME : & 'static str = "CAMERA_TRACKING_IMAGE_STATUS" ; const EXTRA_CRC : u8 = 126u8 ; const ENCODED_LEN : usize = 31usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . point_x = buf . get_f32_le () ; __struct . point_y = buf . get_f32_le () ; __struct . radius = buf . get_f32_le () ; __struct . rec_top_x = buf . get_f32_le () ; __struct . rec_top_y = buf . get_f32_le () ; __struct . rec_bottom_x = buf . get_f32_le () ; __struct . rec_bottom_y = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . tracking_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingStatusFlags" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . tracking_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingMode" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . target_data = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingTargetData" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . point_x) ; __tmp . put_f32_le (self . point_y) ; __tmp . put_f32_le (self . radius) ; __tmp . put_f32_le (self . rec_top_x) ; __tmp . put_f32_le (self . rec_top_y) ; __tmp . put_f32_le (self . rec_bottom_x) ; __tmp . put_f32_le (self . rec_bottom_y) ; __tmp . put_u8 (self . tracking_status as u8) ; __tmp . put_u8 (self . tracking_mode as u8) ; __tmp . put_u8 (self . target_data as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_VALUE_DATA { pub param_value : f32 , pub param_count : u16 , pub param_index : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub param_type : MavParamType , } impl PARAM_VALUE_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { param_value : 0.0_f32 , param_count : 0_u16 , param_index : 0_u16 , param_id : [0_u8 ; 16usize] , param_type : MavParamType :: DEFAULT , } ; } impl Default for PARAM_VALUE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_VALUE_DATA { type Message = MavMessage ; const ID : u32 = 22u32 ; const NAME : & 'static str = "PARAM_VALUE" ; const EXTRA_CRC : u8 = 220u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value = buf . get_f32_le () ; __struct . param_count = buf . get_u16_le () ; __struct . param_index = buf . get_u16_le () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value) ; __tmp . put_u16_le (self . param_count) ; __tmp . put_u16_le (self . param_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SUPPORTED_TUNES_DATA { pub format : TuneFormat , pub target_system : u8 , pub target_component : u8 , } impl SUPPORTED_TUNES_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { format : TuneFormat :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SUPPORTED_TUNES_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SUPPORTED_TUNES_DATA { type Message = MavMessage ; const ID : u32 = 401u32 ; const NAME : & 'static str = "SUPPORTED_TUNES" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . format = TuneFormat :: from_bits (tmp & TuneFormat :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "TuneFormat" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . format . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_OPERATOR_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub operator_id_type : MavOdidOperatorIdType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub operator_id : [u8 ; 20] , } impl OPEN_DRONE_ID_OPERATOR_ID_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , operator_id_type : MavOdidOperatorIdType :: DEFAULT , operator_id : [0_u8 ; 20usize] , } ; } impl Default for OPEN_DRONE_ID_OPERATOR_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_OPERATOR_ID_DATA { type Message = MavMessage ; const ID : u32 = 12905u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_OPERATOR_ID" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . operator_id_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidOperatorIdType" , value : tmp as u32 }) ? ; for v in & mut __struct . operator_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . operator_id_type as u8) ; for val in & self . operator_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_HOME_POSITION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub approach_x : f32 , pub approach_y : f32 , pub approach_z : f32 , pub target_system : u8 , } impl SET_HOME_POSITION_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , approach_x : 0.0_f32 , approach_y : 0.0_f32 , approach_z : 0.0_f32 , target_system : 0_u8 , } ; } impl Default for SET_HOME_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_HOME_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 243u32 ; const NAME : & 'static str = "SET_HOME_POSITION" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . approach_x = buf . get_f32_le () ; __struct . approach_y = buf . get_f32_le () ; __struct . approach_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . approach_x) ; __tmp . put_f32_le (self . approach_y) ; __tmp . put_f32_le (self . approach_z) ; __tmp . put_u8 (self . target_system) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRACKING_GEO_STATUS_DATA { pub lat : i32 , pub lon : i32 , pub alt : f32 , pub h_acc : f32 , pub v_acc : f32 , pub vel_n : f32 , pub vel_e : f32 , pub vel_d : f32 , pub vel_acc : f32 , pub dist : f32 , pub hdg : f32 , pub hdg_acc : f32 , pub tracking_status : CameraTrackingStatusFlags , } impl CAMERA_TRACKING_GEO_STATUS_DATA { pub const ENCODED_LEN : usize = 49usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , h_acc : 0.0_f32 , v_acc : 0.0_f32 , vel_n : 0.0_f32 , vel_e : 0.0_f32 , vel_d : 0.0_f32 , vel_acc : 0.0_f32 , dist : 0.0_f32 , hdg : 0.0_f32 , hdg_acc : 0.0_f32 , tracking_status : CameraTrackingStatusFlags :: DEFAULT , } ; } impl Default for CAMERA_TRACKING_GEO_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRACKING_GEO_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 276u32 ; const NAME : & 'static str = "CAMERA_TRACKING_GEO_STATUS" ; const EXTRA_CRC : u8 = 18u8 ; const ENCODED_LEN : usize = 49usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . h_acc = buf . get_f32_le () ; __struct . v_acc = buf . get_f32_le () ; __struct . vel_n = buf . get_f32_le () ; __struct . vel_e = buf . get_f32_le () ; __struct . vel_d = buf . get_f32_le () ; __struct . vel_acc = buf . get_f32_le () ; __struct . dist = buf . get_f32_le () ; __struct . hdg = buf . get_f32_le () ; __struct . hdg_acc = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . tracking_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraTrackingStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . h_acc) ; __tmp . put_f32_le (self . v_acc) ; __tmp . put_f32_le (self . vel_n) ; __tmp . put_f32_le (self . vel_e) ; __tmp . put_f32_le (self . vel_d) ; __tmp . put_f32_le (self . vel_acc) ; __tmp . put_f32_le (self . dist) ; __tmp . put_f32_le (self . hdg) ; __tmp . put_f32_le (self . hdg_acc) ; __tmp . put_u8 (self . tracking_status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : f32 , pub y : f32 , pub z : f32 , pub seq : u16 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl MISSION_ITEM_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , seq : 0_u16 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for MISSION_ITEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_DATA { type Message = MavMessage ; const ID : u32 = 39u32 ; const NAME : & 'static str = "MISSION_ITEM" ; const EXTRA_CRC : u8 = 254u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . seq = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_CURRENT_DATA { pub seq : u16 , } impl MISSION_CURRENT_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , } ; } impl Default for MISSION_CURRENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_CURRENT_DATA { type Message = MavMessage ; const ID : u32 = 42u32 ; const NAME : & 'static str = "MISSION_CURRENT" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_RPM_DATA { pub frequency : f32 , pub index : u8 , } impl RAW_RPM_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { frequency : 0.0_f32 , index : 0_u8 , } ; } impl Default for RAW_RPM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_RPM_DATA { type Message = MavMessage ; const ID : u32 = 339u32 ; const NAME : & 'static str = "RAW_RPM" ; const EXTRA_CRC : u8 = 199u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . frequency = buf . get_f32_le () ; __struct . index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . frequency) ; __tmp . put_u8 (self . index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIDEO_STREAM_INFORMATION_DATA { pub framerate : f32 , pub bitrate : u32 , pub flags : VideoStreamStatusFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub hfov : u16 , pub stream_id : u8 , pub count : u8 , pub mavtype : VideoStreamType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 160] , } impl VIDEO_STREAM_INFORMATION_DATA { pub const ENCODED_LEN : usize = 213usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , flags : VideoStreamStatusFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , hfov : 0_u16 , stream_id : 0_u8 , count : 0_u8 , mavtype : VideoStreamType :: DEFAULT , name : [0_u8 ; 32usize] , uri : [0_u8 ; 160usize] , } ; } impl Default for VIDEO_STREAM_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIDEO_STREAM_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 269u32 ; const NAME : & 'static str = "VIDEO_STREAM_INFORMATION" ; const EXTRA_CRC : u8 = 109u8 ; const ENCODED_LEN : usize = 213usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamStatusFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . hfov = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamType" , value : tmp as u32 }) ? ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . flags as u16) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u16_le (self . hfov) ; __tmp . put_u8 (self . stream_id) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . mavtype as u8) ; for val in & self . name { __tmp . put_u8 (* val) ; } for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CELLULAR_CONFIG_DATA { pub enable_lte : u8 , pub enable_pin : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pin : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub new_pin : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub apn : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub puk : [u8 ; 16] , pub roaming : u8 , pub response : CellularConfigResponse , } impl CELLULAR_CONFIG_DATA { pub const ENCODED_LEN : usize = 84usize ; pub const DEFAULT : Self = Self { enable_lte : 0_u8 , enable_pin : 0_u8 , pin : [0_u8 ; 16usize] , new_pin : [0_u8 ; 16usize] , apn : [0_u8 ; 32usize] , puk : [0_u8 ; 16usize] , roaming : 0_u8 , response : CellularConfigResponse :: DEFAULT , } ; } impl Default for CELLULAR_CONFIG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CELLULAR_CONFIG_DATA { type Message = MavMessage ; const ID : u32 = 336u32 ; const NAME : & 'static str = "CELLULAR_CONFIG" ; const EXTRA_CRC : u8 = 245u8 ; const ENCODED_LEN : usize = 84usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . enable_lte = buf . get_u8 () ; __struct . enable_pin = buf . get_u8 () ; for v in & mut __struct . pin { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . new_pin { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . apn { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . puk { let val = buf . get_u8 () ; * v = val ; } __struct . roaming = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . response = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularConfigResponse" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . enable_lte) ; __tmp . put_u8 (self . enable_pin) ; for val in & self . pin { __tmp . put_u8 (* val) ; } for val in & self . new_pin { __tmp . put_u8 (* val) ; } for val in & self . apn { __tmp . put_u8 (* val) ; } for val in & self . puk { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . roaming) ; __tmp . put_u8 (self . response as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PLAY_TUNE_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub tune : [u8 ; 30] , } impl PLAY_TUNE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , tune : [0_u8 ; 30usize] , } ; } impl Default for PLAY_TUNE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PLAY_TUNE_DATA { type Message = MavMessage ; const ID : u32 = 258u32 ; const NAME : & 'static str = "PLAY_TUNE" ; const EXTRA_CRC : u8 = 187u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . tune { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . tune { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CURRENT_EVENT_SEQUENCE_DATA { pub sequence : u16 , pub flags : MavEventCurrentSequenceFlags , } impl CURRENT_EVENT_SEQUENCE_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , flags : MavEventCurrentSequenceFlags :: DEFAULT , } ; } impl Default for CURRENT_EVENT_SEQUENCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CURRENT_EVENT_SEQUENCE_DATA { type Message = MavMessage ; const ID : u32 = 411u32 ; const NAME : & 'static str = "CURRENT_EVENT_SEQUENCE" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . flags = MavEventCurrentSequenceFlags :: from_bits (tmp & MavEventCurrentSequenceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavEventCurrentSequenceFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_STATUS_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rpm : [i32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltage : [f32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub current : [f32 ; 4] , pub index : u8 , } impl ESC_STATUS_DATA { pub const ENCODED_LEN : usize = 57usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , rpm : [0_i32 ; 4usize] , voltage : [0.0_f32 ; 4usize] , current : [0.0_f32 ; 4usize] , index : 0_u8 , } ; } impl Default for ESC_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 291u32 ; const NAME : & 'static str = "ESC_STATUS" ; const EXTRA_CRC : u8 = 10u8 ; const ENCODED_LEN : usize = 57usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . rpm { let val = buf . get_i32_le () ; * v = val ; } for v in & mut __struct . voltage { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . current { let val = buf . get_f32_le () ; * v = val ; } __struct . index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . rpm { __tmp . put_i32_le (* val) ; } for val in & self . voltage { __tmp . put_f32_le (* val) ; } for val in & self . current { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS2_RTK_DATA { pub time_last_baseline_ms : u32 , pub tow : u32 , pub baseline_a_mm : i32 , pub baseline_b_mm : i32 , pub baseline_c_mm : i32 , pub accuracy : u32 , pub iar_num_hypotheses : i32 , pub wn : u16 , pub rtk_receiver_id : u8 , pub rtk_health : u8 , pub rtk_rate : u8 , pub nsats : u8 , pub baseline_coords_type : RtkBaselineCoordinateSystem , } impl GPS2_RTK_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_last_baseline_ms : 0_u32 , tow : 0_u32 , baseline_a_mm : 0_i32 , baseline_b_mm : 0_i32 , baseline_c_mm : 0_i32 , accuracy : 0_u32 , iar_num_hypotheses : 0_i32 , wn : 0_u16 , rtk_receiver_id : 0_u8 , rtk_health : 0_u8 , rtk_rate : 0_u8 , nsats : 0_u8 , baseline_coords_type : RtkBaselineCoordinateSystem :: DEFAULT , } ; } impl Default for GPS2_RTK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS2_RTK_DATA { type Message = MavMessage ; const ID : u32 = 128u32 ; const NAME : & 'static str = "GPS2_RTK" ; const EXTRA_CRC : u8 = 226u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_last_baseline_ms = buf . get_u32_le () ; __struct . tow = buf . get_u32_le () ; __struct . baseline_a_mm = buf . get_i32_le () ; __struct . baseline_b_mm = buf . get_i32_le () ; __struct . baseline_c_mm = buf . get_i32_le () ; __struct . accuracy = buf . get_u32_le () ; __struct . iar_num_hypotheses = buf . get_i32_le () ; __struct . wn = buf . get_u16_le () ; __struct . rtk_receiver_id = buf . get_u8 () ; __struct . rtk_health = buf . get_u8 () ; __struct . rtk_rate = buf . get_u8 () ; __struct . nsats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . baseline_coords_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "RtkBaselineCoordinateSystem" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_last_baseline_ms) ; __tmp . put_u32_le (self . tow) ; __tmp . put_i32_le (self . baseline_a_mm) ; __tmp . put_i32_le (self . baseline_b_mm) ; __tmp . put_i32_le (self . baseline_c_mm) ; __tmp . put_u32_le (self . accuracy) ; __tmp . put_i32_le (self . iar_num_hypotheses) ; __tmp . put_u16_le (self . wn) ; __tmp . put_u8 (self . rtk_receiver_id) ; __tmp . put_u8 (self . rtk_health) ; __tmp . put_u8 (self . rtk_rate) ; __tmp . put_u8 (self . nsats) ; __tmp . put_u8 (self . baseline_coords_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_DATA { pub time_boot_ms : u32 , pub value : f32 , pub ind : u8 , } impl DEBUG_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0.0_f32 , ind : 0_u8 , } ; } impl Default for DEBUG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_DATA { type Message = MavMessage ; const ID : u32 = 254u32 ; const NAME : & 'static str = "DEBUG" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_f32_le () ; __struct . ind = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . value) ; __tmp . put_u8 (self . ind) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_INFORMATION_DATA { pub time_boot_ms : u32 , pub cap_flags : GimbalManagerCapFlags , pub roll_min : f32 , pub roll_max : f32 , pub pitch_min : f32 , pub pitch_max : f32 , pub yaw_min : f32 , pub yaw_max : f32 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_INFORMATION_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , cap_flags : GimbalManagerCapFlags :: DEFAULT , roll_min : 0.0_f32 , roll_max : 0.0_f32 , pitch_min : 0.0_f32 , pitch_max : 0.0_f32 , yaw_min : 0.0_f32 , yaw_max : 0.0_f32 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 280u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_INFORMATION" ; const EXTRA_CRC : u8 = 70u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u32_le () ; __struct . cap_flags = GimbalManagerCapFlags :: from_bits (tmp & GimbalManagerCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalManagerCapFlags" , value : tmp as u32 }) ? ; __struct . roll_min = buf . get_f32_le () ; __struct . roll_max = buf . get_f32_le () ; __struct . pitch_min = buf . get_f32_le () ; __struct . pitch_max = buf . get_f32_le () ; __struct . yaw_min = buf . get_f32_le () ; __struct . yaw_max = buf . get_f32_le () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . cap_flags . bits ()) ; __tmp . put_f32_le (self . roll_min) ; __tmp . put_f32_le (self . roll_max) ; __tmp . put_f32_le (self . pitch_min) ; __tmp . put_f32_le (self . pitch_max) ; __tmp . put_f32_le (self . yaw_min) ; __tmp . put_f32_le (self . yaw_max) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAV_CONTROLLER_OUTPUT_DATA { pub nav_roll : f32 , pub nav_pitch : f32 , pub alt_error : f32 , pub aspd_error : f32 , pub xtrack_error : f32 , pub nav_bearing : i16 , pub target_bearing : i16 , pub wp_dist : u16 , } impl NAV_CONTROLLER_OUTPUT_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { nav_roll : 0.0_f32 , nav_pitch : 0.0_f32 , alt_error : 0.0_f32 , aspd_error : 0.0_f32 , xtrack_error : 0.0_f32 , nav_bearing : 0_i16 , target_bearing : 0_i16 , wp_dist : 0_u16 , } ; } impl Default for NAV_CONTROLLER_OUTPUT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAV_CONTROLLER_OUTPUT_DATA { type Message = MavMessage ; const ID : u32 = 62u32 ; const NAME : & 'static str = "NAV_CONTROLLER_OUTPUT" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . nav_roll = buf . get_f32_le () ; __struct . nav_pitch = buf . get_f32_le () ; __struct . alt_error = buf . get_f32_le () ; __struct . aspd_error = buf . get_f32_le () ; __struct . xtrack_error = buf . get_f32_le () ; __struct . nav_bearing = buf . get_i16_le () ; __struct . target_bearing = buf . get_i16_le () ; __struct . wp_dist = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . nav_roll) ; __tmp . put_f32_le (self . nav_pitch) ; __tmp . put_f32_le (self . alt_error) ; __tmp . put_f32_le (self . aspd_error) ; __tmp . put_f32_le (self . xtrack_error) ; __tmp . put_i16_le (self . nav_bearing) ; __tmp . put_i16_le (self . target_bearing) ; __tmp . put_u16_le (self . wp_dist) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_ACK_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , pub param_result : ParamAck , } impl PARAM_EXT_ACK_DATA { pub const ENCODED_LEN : usize = 146usize ; pub const DEFAULT : Self = Self { param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , param_result : ParamAck :: DEFAULT , } ; } impl Default for PARAM_EXT_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_ACK_DATA { type Message = MavMessage ; const ID : u32 = 324u32 ; const NAME : & 'static str = "PARAM_EXT_ACK" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 146usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . param_result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "ParamAck" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; __tmp . put_u8 (self . param_result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_REPORT_DATA { pub lat : i32 , pub lon : i32 , pub terrain_height : f32 , pub current_height : f32 , pub spacing : u16 , pub pending : u16 , pub loaded : u16 , } impl TERRAIN_REPORT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , terrain_height : 0.0_f32 , current_height : 0.0_f32 , spacing : 0_u16 , pending : 0_u16 , loaded : 0_u16 , } ; } impl Default for TERRAIN_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 136u32 ; const NAME : & 'static str = "TERRAIN_REPORT" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . terrain_height = buf . get_f32_le () ; __struct . current_height = buf . get_f32_le () ; __struct . spacing = buf . get_u16_le () ; __struct . pending = buf . get_u16_le () ; __struct . loaded = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . terrain_height) ; __tmp . put_f32_le (self . current_height) ; __tmp . put_u16_le (self . spacing) ; __tmp . put_u16_le (self . pending) ; __tmp . put_u16_le (self . loaded) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_RC_INPUTS_RAW_DATA { pub time_usec : u64 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub chan9_raw : u16 , pub chan10_raw : u16 , pub chan11_raw : u16 , pub chan12_raw : u16 , pub rssi : u8 , } impl HIL_RC_INPUTS_RAW_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , chan9_raw : 0_u16 , chan10_raw : 0_u16 , chan11_raw : 0_u16 , chan12_raw : 0_u16 , rssi : 0_u8 , } ; } impl Default for HIL_RC_INPUTS_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_RC_INPUTS_RAW_DATA { type Message = MavMessage ; const ID : u32 = 92u32 ; const NAME : & 'static str = "HIL_RC_INPUTS_RAW" ; const EXTRA_CRC : u8 = 54u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . chan9_raw = buf . get_u16_le () ; __struct . chan10_raw = buf . get_u16_le () ; __struct . chan11_raw = buf . get_u16_le () ; __struct . chan12_raw = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u16_le (self . chan9_raw) ; __tmp . put_u16_le (self . chan10_raw) ; __tmp . put_u16_le (self . chan11_raw) ; __tmp . put_u16_le (self . chan12_raw) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ODOMETRY_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pose_covariance : [f32 ; 21] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub velocity_covariance : [f32 ; 21] , pub frame_id : MavFrame , pub child_frame_id : MavFrame , } impl ODOMETRY_DATA { pub const ENCODED_LEN : usize = 230usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , pose_covariance : [0.0_f32 ; 21usize] , velocity_covariance : [0.0_f32 ; 21usize] , frame_id : MavFrame :: DEFAULT , child_frame_id : MavFrame :: DEFAULT , } ; } impl Default for ODOMETRY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ODOMETRY_DATA { type Message = MavMessage ; const ID : u32 = 331u32 ; const NAME : & 'static str = "ODOMETRY" ; const EXTRA_CRC : u8 = 91u8 ; const ENCODED_LEN : usize = 230usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; for v in & mut __struct . pose_covariance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . velocity_covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . frame_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . child_frame_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; for val in & self . pose_covariance { __tmp . put_f32_le (* val) ; } for val in & self . velocity_covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . frame_id as u8) ; __tmp . put_u8 (self . child_frame_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGH_LATENCY_DATA { pub custom_mode : u32 , pub latitude : i32 , pub longitude : i32 , pub roll : i16 , pub pitch : i16 , pub heading : u16 , pub heading_sp : i16 , pub altitude_amsl : i16 , pub altitude_sp : i16 , pub wp_distance : u16 , pub base_mode : MavModeFlag , pub landed_state : MavLandedState , pub throttle : i8 , pub airspeed : u8 , pub airspeed_sp : u8 , pub groundspeed : u8 , pub climb_rate : i8 , pub gps_nsat : u8 , pub gps_fix_type : GpsFixType , pub battery_remaining : u8 , pub temperature : i8 , pub temperature_air : i8 , pub failsafe : u8 , pub wp_num : u8 , } impl HIGH_LATENCY_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , latitude : 0_i32 , longitude : 0_i32 , roll : 0_i16 , pitch : 0_i16 , heading : 0_u16 , heading_sp : 0_i16 , altitude_amsl : 0_i16 , altitude_sp : 0_i16 , wp_distance : 0_u16 , base_mode : MavModeFlag :: DEFAULT , landed_state : MavLandedState :: DEFAULT , throttle : 0_i8 , airspeed : 0_u8 , airspeed_sp : 0_u8 , groundspeed : 0_u8 , climb_rate : 0_i8 , gps_nsat : 0_u8 , gps_fix_type : GpsFixType :: DEFAULT , battery_remaining : 0_u8 , temperature : 0_i8 , temperature_air : 0_i8 , failsafe : 0_u8 , wp_num : 0_u8 , } ; } impl Default for HIGH_LATENCY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGH_LATENCY_DATA { type Message = MavMessage ; const ID : u32 = 234u32 ; const NAME : & 'static str = "HIGH_LATENCY" ; const EXTRA_CRC : u8 = 150u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . roll = buf . get_i16_le () ; __struct . pitch = buf . get_i16_le () ; __struct . heading = buf . get_u16_le () ; __struct . heading_sp = buf . get_i16_le () ; __struct . altitude_amsl = buf . get_i16_le () ; __struct . altitude_sp = buf . get_i16_le () ; __struct . wp_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . base_mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; __struct . throttle = buf . get_i8 () ; __struct . airspeed = buf . get_u8 () ; __struct . airspeed_sp = buf . get_u8 () ; __struct . groundspeed = buf . get_u8 () ; __struct . climb_rate = buf . get_i8 () ; __struct . gps_nsat = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . gps_fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . battery_remaining = buf . get_u8 () ; __struct . temperature = buf . get_i8 () ; __struct . temperature_air = buf . get_i8 () ; __struct . failsafe = buf . get_u8 () ; __struct . wp_num = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i16_le (self . roll) ; __tmp . put_i16_le (self . pitch) ; __tmp . put_u16_le (self . heading) ; __tmp . put_i16_le (self . heading_sp) ; __tmp . put_i16_le (self . altitude_amsl) ; __tmp . put_i16_le (self . altitude_sp) ; __tmp . put_u16_le (self . wp_distance) ; __tmp . put_u8 (self . base_mode . bits ()) ; __tmp . put_u8 (self . landed_state as u8) ; __tmp . put_i8 (self . throttle) ; __tmp . put_u8 (self . airspeed) ; __tmp . put_u8 (self . airspeed_sp) ; __tmp . put_u8 (self . groundspeed) ; __tmp . put_i8 (self . climb_rate) ; __tmp . put_u8 (self . gps_nsat) ; __tmp . put_u8 (self . gps_fix_type as u8) ; __tmp . put_u8 (self . battery_remaining) ; __tmp . put_i8 (self . temperature) ; __tmp . put_i8 (self . temperature_air) ; __tmp . put_u8 (self . failsafe) ; __tmp . put_u8 (self . wp_num) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_REQUEST_READ_DATA { pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , } impl PARAM_REQUEST_READ_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , } ; } impl Default for PARAM_REQUEST_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_REQUEST_READ_DATA { type Message = MavMessage ; const ID : u32 = 20u32 ; const NAME : & 'static str = "PARAM_REQUEST_READ" ; const EXTRA_CRC : u8 = 214u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , } impl ATTITUDE_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , } ; } impl Default for ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 30u32 ; const NAME : & 'static str = "ATTITUDE" ; const EXTRA_CRC : u8 = 39u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_SET_DATA { pub param_value : f32 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub param_type : MavParamType , } impl PARAM_SET_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { param_value : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , param_type : MavParamType :: DEFAULT , } ; } impl Default for PARAM_SET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_SET_DATA { type Message = MavMessage ; const ID : u32 = 23u32 ; const NAME : & 'static str = "PARAM_SET" ; const EXTRA_CRC : u8 = 168u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGHRES_IMU_DATA { pub time_usec : u64 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub xmag : f32 , pub ymag : f32 , pub zmag : f32 , pub abs_pressure : f32 , pub diff_pressure : f32 , pub pressure_alt : f32 , pub temperature : f32 , pub fields_updated : HighresImuUpdatedFlags , } impl HIGHRES_IMU_DATA { pub const ENCODED_LEN : usize = 62usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , xmag : 0.0_f32 , ymag : 0.0_f32 , zmag : 0.0_f32 , abs_pressure : 0.0_f32 , diff_pressure : 0.0_f32 , pressure_alt : 0.0_f32 , temperature : 0.0_f32 , fields_updated : HighresImuUpdatedFlags :: DEFAULT , } ; } impl Default for HIGHRES_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGHRES_IMU_DATA { type Message = MavMessage ; const ID : u32 = 105u32 ; const NAME : & 'static str = "HIGHRES_IMU" ; const EXTRA_CRC : u8 = 93u8 ; const ENCODED_LEN : usize = 62usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . xmag = buf . get_f32_le () ; __struct . ymag = buf . get_f32_le () ; __struct . zmag = buf . get_f32_le () ; __struct . abs_pressure = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . pressure_alt = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . fields_updated = HighresImuUpdatedFlags :: from_bits (tmp & HighresImuUpdatedFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HighresImuUpdatedFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . xmag) ; __tmp . put_f32_le (self . ymag) ; __tmp . put_f32_le (self . zmag) ; __tmp . put_f32_le (self . abs_pressure) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . pressure_alt) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u16_le (self . fields_updated . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SIM_STATE_DATA { pub q1 : f32 , pub q2 : f32 , pub q3 : f32 , pub q4 : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub lat : f32 , pub lon : f32 , pub alt : f32 , pub std_dev_horz : f32 , pub std_dev_vert : f32 , pub vn : f32 , pub ve : f32 , pub vd : f32 , } impl SIM_STATE_DATA { pub const ENCODED_LEN : usize = 84usize ; pub const DEFAULT : Self = Self { q1 : 0.0_f32 , q2 : 0.0_f32 , q3 : 0.0_f32 , q4 : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , lat : 0.0_f32 , lon : 0.0_f32 , alt : 0.0_f32 , std_dev_horz : 0.0_f32 , std_dev_vert : 0.0_f32 , vn : 0.0_f32 , ve : 0.0_f32 , vd : 0.0_f32 , } ; } impl Default for SIM_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SIM_STATE_DATA { type Message = MavMessage ; const ID : u32 = 108u32 ; const NAME : & 'static str = "SIM_STATE" ; const EXTRA_CRC : u8 = 32u8 ; const ENCODED_LEN : usize = 84usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . q1 = buf . get_f32_le () ; __struct . q2 = buf . get_f32_le () ; __struct . q3 = buf . get_f32_le () ; __struct . q4 = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . lat = buf . get_f32_le () ; __struct . lon = buf . get_f32_le () ; __struct . alt = buf . get_f32_le () ; __struct . std_dev_horz = buf . get_f32_le () ; __struct . std_dev_vert = buf . get_f32_le () ; __struct . vn = buf . get_f32_le () ; __struct . ve = buf . get_f32_le () ; __struct . vd = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . q1) ; __tmp . put_f32_le (self . q2) ; __tmp . put_f32_le (self . q3) ; __tmp . put_f32_le (self . q4) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . lat) ; __tmp . put_f32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . std_dev_horz) ; __tmp . put_f32_le (self . std_dev_vert) ; __tmp . put_f32_le (self . vn) ; __tmp . put_f32_le (self . ve) ; __tmp . put_f32_le (self . vd) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE3_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE3_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE3_DATA { type Message = MavMessage ; const ID : u32 = 143u32 ; const NAME : & 'static str = "SCALED_PRESSURE3" ; const EXTRA_CRC : u8 = 131u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PROTOCOL_VERSION_DATA { pub version : u16 , pub min_version : u16 , pub max_version : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub spec_version_hash : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub library_version_hash : [u8 ; 8] , } impl PROTOCOL_VERSION_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { version : 0_u16 , min_version : 0_u16 , max_version : 0_u16 , spec_version_hash : [0_u8 ; 8usize] , library_version_hash : [0_u8 ; 8usize] , } ; } impl Default for PROTOCOL_VERSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PROTOCOL_VERSION_DATA { type Message = MavMessage ; const ID : u32 = 300u32 ; const NAME : & 'static str = "PROTOCOL_VERSION" ; const EXTRA_CRC : u8 = 217u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . version = buf . get_u16_le () ; __struct . min_version = buf . get_u16_le () ; __struct . max_version = buf . get_u16_le () ; for v in & mut __struct . spec_version_hash { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . library_version_hash { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . version) ; __tmp . put_u16_le (self . min_version) ; __tmp . put_u16_le (self . max_version) ; for val in & self . spec_version_hash { __tmp . put_u8 (* val) ; } for val in & self . library_version_hash { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RTK_DATA { pub time_last_baseline_ms : u32 , pub tow : u32 , pub baseline_a_mm : i32 , pub baseline_b_mm : i32 , pub baseline_c_mm : i32 , pub accuracy : u32 , pub iar_num_hypotheses : i32 , pub wn : u16 , pub rtk_receiver_id : u8 , pub rtk_health : u8 , pub rtk_rate : u8 , pub nsats : u8 , pub baseline_coords_type : RtkBaselineCoordinateSystem , } impl GPS_RTK_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_last_baseline_ms : 0_u32 , tow : 0_u32 , baseline_a_mm : 0_i32 , baseline_b_mm : 0_i32 , baseline_c_mm : 0_i32 , accuracy : 0_u32 , iar_num_hypotheses : 0_i32 , wn : 0_u16 , rtk_receiver_id : 0_u8 , rtk_health : 0_u8 , rtk_rate : 0_u8 , nsats : 0_u8 , baseline_coords_type : RtkBaselineCoordinateSystem :: DEFAULT , } ; } impl Default for GPS_RTK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RTK_DATA { type Message = MavMessage ; const ID : u32 = 127u32 ; const NAME : & 'static str = "GPS_RTK" ; const EXTRA_CRC : u8 = 25u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_last_baseline_ms = buf . get_u32_le () ; __struct . tow = buf . get_u32_le () ; __struct . baseline_a_mm = buf . get_i32_le () ; __struct . baseline_b_mm = buf . get_i32_le () ; __struct . baseline_c_mm = buf . get_i32_le () ; __struct . accuracy = buf . get_u32_le () ; __struct . iar_num_hypotheses = buf . get_i32_le () ; __struct . wn = buf . get_u16_le () ; __struct . rtk_receiver_id = buf . get_u8 () ; __struct . rtk_health = buf . get_u8 () ; __struct . rtk_rate = buf . get_u8 () ; __struct . nsats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . baseline_coords_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "RtkBaselineCoordinateSystem" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_last_baseline_ms) ; __tmp . put_u32_le (self . tow) ; __tmp . put_i32_le (self . baseline_a_mm) ; __tmp . put_i32_le (self . baseline_b_mm) ; __tmp . put_i32_le (self . baseline_c_mm) ; __tmp . put_u32_le (self . accuracy) ; __tmp . put_i32_le (self . iar_num_hypotheses) ; __tmp . put_u16_le (self . wn) ; __tmp . put_u8 (self . rtk_receiver_id) ; __tmp . put_u8 (self . rtk_health) ; __tmp . put_u8 (self . rtk_rate) ; __tmp . put_u8 (self . nsats) ; __tmp . put_u8 (self . baseline_coords_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CHANGE_OPERATOR_CONTROL_ACK_DATA { pub gcs_system_id : u8 , pub control_request : u8 , pub ack : u8 , } impl CHANGE_OPERATOR_CONTROL_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { gcs_system_id : 0_u8 , control_request : 0_u8 , ack : 0_u8 , } ; } impl Default for CHANGE_OPERATOR_CONTROL_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CHANGE_OPERATOR_CONTROL_ACK_DATA { type Message = MavMessage ; const ID : u32 = 6u32 ; const NAME : & 'static str = "CHANGE_OPERATOR_CONTROL_ACK" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . gcs_system_id = buf . get_u8 () ; __struct . control_request = buf . get_u8 () ; __struct . ack = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . gcs_system_id) ; __tmp . put_u8 (self . control_request) ; __tmp . put_u8 (self . ack) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CANFD_FRAME_DATA { pub id : u32 , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 64] , } impl CANFD_FRAME_DATA { pub const ENCODED_LEN : usize = 72usize ; pub const DEFAULT : Self = Self { id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , len : 0_u8 , data : [0_u8 ; 64usize] , } ; } impl Default for CANFD_FRAME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CANFD_FRAME_DATA { type Message = MavMessage ; const ID : u32 = 387u32 ; const NAME : & 'static str = "CANFD_FRAME" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 72usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_SETTINGS_DATA { pub time_boot_ms : u32 , pub mode_id : CameraMode , } impl CAMERA_SETTINGS_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , mode_id : CameraMode :: DEFAULT , } ; } impl Default for CAMERA_SETTINGS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_SETTINGS_DATA { type Message = MavMessage ; const ID : u32 = 260u32 ; const NAME : & 'static str = "CAMERA_SETTINGS" ; const EXTRA_CRC : u8 = 146u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . mode_id = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CameraMode" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u8 (self . mode_id as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_yaw : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_yaw : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub command : [u16 ; 5] , pub valid_points : u8 , } impl TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { pub const ENCODED_LEN : usize = 239usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , pos_x : [0.0_f32 ; 5usize] , pos_y : [0.0_f32 ; 5usize] , pos_z : [0.0_f32 ; 5usize] , vel_x : [0.0_f32 ; 5usize] , vel_y : [0.0_f32 ; 5usize] , vel_z : [0.0_f32 ; 5usize] , acc_x : [0.0_f32 ; 5usize] , acc_y : [0.0_f32 ; 5usize] , acc_z : [0.0_f32 ; 5usize] , pos_yaw : [0.0_f32 ; 5usize] , vel_yaw : [0.0_f32 ; 5usize] , command : [0_u16 ; 5usize] , valid_points : 0_u8 , } ; } impl Default for TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA { type Message = MavMessage ; const ID : u32 = 332u32 ; const NAME : & 'static str = "TRAJECTORY_REPRESENTATION_WAYPOINTS" ; const EXTRA_CRC : u8 = 236u8 ; const ENCODED_LEN : usize = 239usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . pos_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_yaw { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . vel_yaw { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . command { let val = buf . get_u16_le () ; * v = val ; } __struct . valid_points = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . pos_x { __tmp . put_f32_le (* val) ; } for val in & self . pos_y { __tmp . put_f32_le (* val) ; } for val in & self . pos_z { __tmp . put_f32_le (* val) ; } for val in & self . vel_x { __tmp . put_f32_le (* val) ; } for val in & self . vel_y { __tmp . put_f32_le (* val) ; } for val in & self . vel_z { __tmp . put_f32_le (* val) ; } for val in & self . acc_x { __tmp . put_f32_le (* val) ; } for val in & self . acc_y { __tmp . put_f32_le (* val) ; } for val in & self . acc_z { __tmp . put_f32_le (* val) ; } for val in & self . pos_yaw { __tmp . put_f32_le (* val) ; } for val in & self . vel_yaw { __tmp . put_f32_le (* val) ; } for val in & self . command { __tmp . put_u16_le (* val) ; } __tmp . put_u8 (self . valid_points) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPTICAL_FLOW_DATA { pub time_usec : u64 , pub flow_comp_m_x : f32 , pub flow_comp_m_y : f32 , pub ground_distance : f32 , pub flow_x : i16 , pub flow_y : i16 , pub sensor_id : u8 , pub quality : u8 , } impl OPTICAL_FLOW_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , flow_comp_m_x : 0.0_f32 , flow_comp_m_y : 0.0_f32 , ground_distance : 0.0_f32 , flow_x : 0_i16 , flow_y : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for OPTICAL_FLOW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPTICAL_FLOW_DATA { type Message = MavMessage ; const ID : u32 = 100u32 ; const NAME : & 'static str = "OPTICAL_FLOW" ; const EXTRA_CRC : u8 = 175u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . flow_comp_m_x = buf . get_f32_le () ; __struct . flow_comp_m_y = buf . get_f32_le () ; __struct . ground_distance = buf . get_f32_le () ; __struct . flow_x = buf . get_i16_le () ; __struct . flow_y = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . flow_comp_m_x) ; __tmp . put_f32_le (self . flow_comp_m_y) ; __tmp . put_f32_le (self . ground_distance) ; __tmp . put_i16_le (self . flow_x) ; __tmp . put_i16_le (self . flow_y) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_INPUT_DATA { pub time_usec : u64 , pub time_week_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : f32 , pub hdop : f32 , pub vdop : f32 , pub vn : f32 , pub ve : f32 , pub vd : f32 , pub speed_accuracy : f32 , pub horiz_accuracy : f32 , pub vert_accuracy : f32 , pub ignore_flags : GpsInputIgnoreFlags , pub time_week : u16 , pub gps_id : u8 , pub fix_type : u8 , pub satellites_visible : u8 , } impl GPS_INPUT_DATA { pub const ENCODED_LEN : usize = 63usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , time_week_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , hdop : 0.0_f32 , vdop : 0.0_f32 , vn : 0.0_f32 , ve : 0.0_f32 , vd : 0.0_f32 , speed_accuracy : 0.0_f32 , horiz_accuracy : 0.0_f32 , vert_accuracy : 0.0_f32 , ignore_flags : GpsInputIgnoreFlags :: DEFAULT , time_week : 0_u16 , gps_id : 0_u8 , fix_type : 0_u8 , satellites_visible : 0_u8 , } ; } impl Default for GPS_INPUT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_INPUT_DATA { type Message = MavMessage ; const ID : u32 = 232u32 ; const NAME : & 'static str = "GPS_INPUT" ; const EXTRA_CRC : u8 = 151u8 ; const ENCODED_LEN : usize = 63usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . time_week_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . hdop = buf . get_f32_le () ; __struct . vdop = buf . get_f32_le () ; __struct . vn = buf . get_f32_le () ; __struct . ve = buf . get_f32_le () ; __struct . vd = buf . get_f32_le () ; __struct . speed_accuracy = buf . get_f32_le () ; __struct . horiz_accuracy = buf . get_f32_le () ; __struct . vert_accuracy = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . ignore_flags = GpsInputIgnoreFlags :: from_bits (tmp & GpsInputIgnoreFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GpsInputIgnoreFlags" , value : tmp as u32 }) ? ; __struct . time_week = buf . get_u16_le () ; __struct . gps_id = buf . get_u8 () ; __struct . fix_type = buf . get_u8 () ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . time_week_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . hdop) ; __tmp . put_f32_le (self . vdop) ; __tmp . put_f32_le (self . vn) ; __tmp . put_f32_le (self . ve) ; __tmp . put_f32_le (self . vd) ; __tmp . put_f32_le (self . speed_accuracy) ; __tmp . put_f32_le (self . horiz_accuracy) ; __tmp . put_f32_le (self . vert_accuracy) ; __tmp . put_u16_le (self . ignore_flags . bits ()) ; __tmp . put_u16_le (self . time_week) ; __tmp . put_u8 (self . gps_id) ; __tmp . put_u8 (self . fix_type) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIND_COV_DATA { pub time_usec : u64 , pub wind_x : f32 , pub wind_y : f32 , pub wind_z : f32 , pub var_horiz : f32 , pub var_vert : f32 , pub wind_alt : f32 , pub horiz_accuracy : f32 , pub vert_accuracy : f32 , } impl WIND_COV_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , wind_x : 0.0_f32 , wind_y : 0.0_f32 , wind_z : 0.0_f32 , var_horiz : 0.0_f32 , var_vert : 0.0_f32 , wind_alt : 0.0_f32 , horiz_accuracy : 0.0_f32 , vert_accuracy : 0.0_f32 , } ; } impl Default for WIND_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIND_COV_DATA { type Message = MavMessage ; const ID : u32 = 231u32 ; const NAME : & 'static str = "WIND_COV" ; const EXTRA_CRC : u8 = 105u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . wind_x = buf . get_f32_le () ; __struct . wind_y = buf . get_f32_le () ; __struct . wind_z = buf . get_f32_le () ; __struct . var_horiz = buf . get_f32_le () ; __struct . var_vert = buf . get_f32_le () ; __struct . wind_alt = buf . get_f32_le () ; __struct . horiz_accuracy = buf . get_f32_le () ; __struct . vert_accuracy = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . wind_x) ; __tmp . put_f32_le (self . wind_y) ; __tmp . put_f32_le (self . wind_z) ; __tmp . put_f32_le (self . var_horiz) ; __tmp . put_f32_le (self . var_vert) ; __tmp . put_f32_le (self . wind_alt) ; __tmp . put_f32_le (self . horiz_accuracy) ; __tmp . put_f32_le (self . vert_accuracy) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HYGROMETER_SENSOR_DATA { pub temperature : i16 , pub humidity : u16 , pub id : u8 , } impl HYGROMETER_SENSOR_DATA { pub const ENCODED_LEN : usize = 5usize ; pub const DEFAULT : Self = Self { temperature : 0_i16 , humidity : 0_u16 , id : 0_u8 , } ; } impl Default for HYGROMETER_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HYGROMETER_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 12920u32 ; const NAME : & 'static str = "HYGROMETER_SENSOR" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 5usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . temperature = buf . get_i16_le () ; __struct . humidity = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u16_le (self . humidity) ; __tmp . put_u8 (self . id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAN_FRAME_DATA { pub id : u32 , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 8] , } impl CAN_FRAME_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { id : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , len : 0_u8 , data : [0_u8 ; 8usize] , } ; } impl Default for CAN_FRAME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAN_FRAME_DATA { type Message = MavMessage ; const ID : u32 = 386u32 ; const NAME : & 'static str = "CAN_FRAME" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_IMAGE_CAPTURED_DATA { pub time_utc : u64 , pub time_boot_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub image_index : i32 , pub camera_id : u8 , pub capture_result : i8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub file_url : [u8 ; 205] , } impl CAMERA_IMAGE_CAPTURED_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { time_utc : 0_u64 , time_boot_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , q : [0.0_f32 ; 4usize] , image_index : 0_i32 , camera_id : 0_u8 , capture_result : 0_i8 , file_url : [0_u8 ; 205usize] , } ; } impl Default for CAMERA_IMAGE_CAPTURED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_IMAGE_CAPTURED_DATA { type Message = MavMessage ; const ID : u32 = 263u32 ; const NAME : & 'static str = "CAMERA_IMAGE_CAPTURED" ; const EXTRA_CRC : u8 = 133u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_utc = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . image_index = buf . get_i32_le () ; __struct . camera_id = buf . get_u8 () ; __struct . capture_result = buf . get_i8 () ; for v in & mut __struct . file_url { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_utc) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_i32_le (self . image_index) ; __tmp . put_u8 (self . camera_id) ; __tmp . put_i8 (self . capture_result) ; for val in & self . file_url { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_STATE_QUATERNION_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub attitude_quaternion : [f32 ; 4] , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub ind_airspeed : u16 , pub true_airspeed : u16 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , } impl HIL_STATE_QUATERNION_DATA { pub const ENCODED_LEN : usize = 64usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , attitude_quaternion : [0.0_f32 ; 4usize] , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , ind_airspeed : 0_u16 , true_airspeed : 0_u16 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , } ; } impl Default for HIL_STATE_QUATERNION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_STATE_QUATERNION_DATA { type Message = MavMessage ; const ID : u32 = 115u32 ; const NAME : & 'static str = "HIL_STATE_QUATERNION" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 64usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . attitude_quaternion { let val = buf . get_f32_le () ; * v = val ; } __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . ind_airspeed = buf . get_u16_le () ; __struct . true_airspeed = buf . get_u16_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . attitude_quaternion { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . ind_airspeed) ; __tmp . put_u16_le (self . true_airspeed) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_ARM_STATUS_DATA { pub status : MavOdidArmStatus , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub error : [u8 ; 50] , } impl OPEN_DRONE_ID_ARM_STATUS_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { status : MavOdidArmStatus :: DEFAULT , error : [0_u8 ; 50usize] , } ; } impl Default for OPEN_DRONE_ID_ARM_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_ARM_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 12918u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_ARM_STATUS" ; const EXTRA_CRC : u8 = 139u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidArmStatus" , value : tmp as u32 }) ? ; for v in & mut __struct . error { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . status as u8) ; for val in & self . error { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MESSAGE_INTERVAL_DATA { pub interval_us : i32 , pub message_id : u16 , } impl MESSAGE_INTERVAL_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { interval_us : 0_i32 , message_id : 0_u16 , } ; } impl Default for MESSAGE_INTERVAL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MESSAGE_INTERVAL_DATA { type Message = MavMessage ; const ID : u32 = 244u32 ; const NAME : & 'static str = "MESSAGE_INTERVAL" ; const EXTRA_CRC : u8 = 95u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . interval_us = buf . get_i32_le () ; __struct . message_id = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . interval_us) ; __tmp . put_u16_le (self . message_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU_DATA { type Message = MavMessage ; const ID : u32 = 26u32 ; const NAME : & 'static str = "SCALED_IMU" ; const EXTRA_CRC : u8 = 170u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct STORAGE_INFORMATION_DATA { pub time_boot_ms : u32 , pub total_capacity : f32 , pub used_capacity : f32 , pub available_capacity : f32 , pub read_speed : f32 , pub write_speed : f32 , pub storage_id : u8 , pub storage_count : u8 , pub status : StorageStatus , } impl STORAGE_INFORMATION_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , total_capacity : 0.0_f32 , used_capacity : 0.0_f32 , available_capacity : 0.0_f32 , read_speed : 0.0_f32 , write_speed : 0.0_f32 , storage_id : 0_u8 , storage_count : 0_u8 , status : StorageStatus :: DEFAULT , } ; } impl Default for STORAGE_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for STORAGE_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 261u32 ; const NAME : & 'static str = "STORAGE_INFORMATION" ; const EXTRA_CRC : u8 = 179u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . total_capacity = buf . get_f32_le () ; __struct . used_capacity = buf . get_f32_le () ; __struct . available_capacity = buf . get_f32_le () ; __struct . read_speed = buf . get_f32_le () ; __struct . write_speed = buf . get_f32_le () ; __struct . storage_id = buf . get_u8 () ; __struct . storage_count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "StorageStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . total_capacity) ; __tmp . put_f32_le (self . used_capacity) ; __tmp . put_f32_le (self . available_capacity) ; __tmp . put_f32_le (self . read_speed) ; __tmp . put_f32_le (self . write_speed) ; __tmp . put_u8 (self . storage_id) ; __tmp . put_u8 (self . storage_count) ; __tmp . put_u8 (self . status as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FENCE_STATUS_DATA { pub breach_time : u32 , pub breach_count : u16 , pub breach_status : u8 , pub breach_type : FenceBreach , } impl FENCE_STATUS_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { breach_time : 0_u32 , breach_count : 0_u16 , breach_status : 0_u8 , breach_type : FenceBreach :: DEFAULT , } ; } impl Default for FENCE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FENCE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 162u32 ; const NAME : & 'static str = "FENCE_STATUS" ; const EXTRA_CRC : u8 = 189u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . breach_time = buf . get_u32_le () ; __struct . breach_count = buf . get_u16_le () ; __struct . breach_status = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . breach_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "FenceBreach" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . breach_time) ; __tmp . put_u16_le (self . breach_count) ; __tmp . put_u8 (self . breach_status) ; __tmp . put_u8 (self . breach_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAMED_VALUE_INT_DATA { pub time_boot_ms : u32 , pub value : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl NAMED_VALUE_INT_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0_i32 , name : [0_u8 ; 10usize] , } ; } impl Default for NAMED_VALUE_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAMED_VALUE_INT_DATA { type Message = MavMessage ; const ID : u32 = 252u32 ; const NAME : & 'static str = "NAMED_VALUE_INT" ; const EXTRA_CRC : u8 = 44u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_i32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . value) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VFR_HUD_DATA { pub airspeed : f32 , pub groundspeed : f32 , pub alt : f32 , pub climb : f32 , pub heading : i16 , pub throttle : u16 , } impl VFR_HUD_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { airspeed : 0.0_f32 , groundspeed : 0.0_f32 , alt : 0.0_f32 , climb : 0.0_f32 , heading : 0_i16 , throttle : 0_u16 , } ; } impl Default for VFR_HUD_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VFR_HUD_DATA { type Message = MavMessage ; const ID : u32 = 74u32 ; const NAME : & 'static str = "VFR_HUD" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . airspeed = buf . get_f32_le () ; __struct . groundspeed = buf . get_f32_le () ; __struct . alt = buf . get_f32_le () ; __struct . climb = buf . get_f32_le () ; __struct . heading = buf . get_i16_le () ; __struct . throttle = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . airspeed) ; __tmp . put_f32_le (self . groundspeed) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . climb) ; __tmp . put_i16_le (self . heading) ; __tmp . put_u16_le (self . throttle) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESC_INFO_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub error_count : [u32 ; 4] , pub counter : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub failure_flags : [u16 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature : [i16 ; 4] , pub index : u8 , pub count : u8 , pub connection_type : EscConnectionType , pub info : u8 , } impl ESC_INFO_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , error_count : [0_u32 ; 4usize] , counter : 0_u16 , failure_flags : [0_u16 ; 4usize] , temperature : [0_i16 ; 4usize] , index : 0_u8 , count : 0_u8 , connection_type : EscConnectionType :: DEFAULT , info : 0_u8 , } ; } impl Default for ESC_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESC_INFO_DATA { type Message = MavMessage ; const ID : u32 = 290u32 ; const NAME : & 'static str = "ESC_INFO" ; const EXTRA_CRC : u8 = 251u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . error_count { let val = buf . get_u32_le () ; * v = val ; } __struct . counter = buf . get_u16_le () ; for v in & mut __struct . failure_flags { let val = buf . get_u16_le () ; * v = val ; } for v in & mut __struct . temperature { let val = buf . get_i16_le () ; * v = val ; } __struct . index = buf . get_u8 () ; __struct . count = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . connection_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "EscConnectionType" , value : tmp as u32 }) ? ; __struct . info = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . error_count { __tmp . put_u32_le (* val) ; } __tmp . put_u16_le (self . counter) ; for val in & self . failure_flags { __tmp . put_u16_le (* val) ; } for val in & self . temperature { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . index) ; __tmp . put_u8 (self . count) ; __tmp . put_u8 (self . connection_type as u8) ; __tmp . put_u8 (self . info) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RADIO_STATUS_DATA { pub rxerrors : u16 , pub fixed : u16 , pub rssi : u8 , pub remrssi : u8 , pub txbuf : u8 , pub noise : u8 , pub remnoise : u8 , } impl RADIO_STATUS_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { rxerrors : 0_u16 , fixed : 0_u16 , rssi : 0_u8 , remrssi : 0_u8 , txbuf : 0_u8 , noise : 0_u8 , remnoise : 0_u8 , } ; } impl Default for RADIO_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RADIO_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 109u32 ; const NAME : & 'static str = "RADIO_STATUS" ; const EXTRA_CRC : u8 = 185u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . rxerrors = buf . get_u16_le () ; __struct . fixed = buf . get_u16_le () ; __struct . rssi = buf . get_u8 () ; __struct . remrssi = buf . get_u8 () ; __struct . txbuf = buf . get_u8 () ; __struct . noise = buf . get_u8 () ; __struct . remnoise = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . rxerrors) ; __tmp . put_u16_le (self . fixed) ; __tmp . put_u8 (self . rssi) ; __tmp . put_u8 (self . remrssi) ; __tmp . put_u8 (self . txbuf) ; __tmp . put_u8 (self . noise) ; __tmp . put_u8 (self . remnoise) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TIME_ESTIMATE_TO_TARGET_DATA { pub safe_return : i32 , pub land : i32 , pub mission_next_item : i32 , pub mission_end : i32 , pub commanded_action : i32 , } impl TIME_ESTIMATE_TO_TARGET_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { safe_return : 0_i32 , land : 0_i32 , mission_next_item : 0_i32 , mission_end : 0_i32 , commanded_action : 0_i32 , } ; } impl Default for TIME_ESTIMATE_TO_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TIME_ESTIMATE_TO_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 380u32 ; const NAME : & 'static str = "TIME_ESTIMATE_TO_TARGET" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . safe_return = buf . get_i32_le () ; __struct . land = buf . get_i32_le () ; __struct . mission_next_item = buf . get_i32_le () ; __struct . mission_end = buf . get_i32_le () ; __struct . commanded_action = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . safe_return) ; __tmp . put_i32_le (self . land) ; __tmp . put_i32_le (self . mission_next_item) ; __tmp . put_i32_le (self . mission_end) ; __tmp . put_i32_le (self . commanded_action) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_GPS_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub vn : i16 , pub ve : i16 , pub vd : i16 , pub cog : u16 , pub fix_type : u8 , pub satellites_visible : u8 , } impl HIL_GPS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , vn : 0_i16 , ve : 0_i16 , vd : 0_i16 , cog : 0_u16 , fix_type : 0_u8 , satellites_visible : 0_u8 , } ; } impl Default for HIL_GPS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_GPS_DATA { type Message = MavMessage ; const ID : u32 = 113u32 ; const NAME : & 'static str = "HIL_GPS" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . vn = buf . get_i16_le () ; __struct . ve = buf . get_i16_le () ; __struct . vd = buf . get_i16_le () ; __struct . cog = buf . get_u16_le () ; __struct . fix_type = buf . get_u8 () ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_i16_le (self . vn) ; __tmp . put_i16_le (self . ve) ; __tmp . put_i16_le (self . vd) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RTCM_DATA_DATA { pub flags : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 180] , } impl GPS_RTCM_DATA_DATA { pub const ENCODED_LEN : usize = 182usize ; pub const DEFAULT : Self = Self { flags : 0_u8 , len : 0_u8 , data : [0_u8 ; 180usize] , } ; } impl Default for GPS_RTCM_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RTCM_DATA_DATA { type Message = MavMessage ; const ID : u32 = 233u32 ; const NAME : & 'static str = "GPS_RTCM_DATA" ; const EXTRA_CRC : u8 = 35u8 ; const ENCODED_LEN : usize = 182usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . flags = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . flags) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_END_DATA { pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_END_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_END_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_END_DATA { type Message = MavMessage ; const ID : u32 = 122u32 ; const NAME : & 'static str = "LOG_REQUEST_END" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FILE_TRANSFER_PROTOCOL_DATA { pub target_network : u8 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 251] , } impl FILE_TRANSFER_PROTOCOL_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { target_network : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , payload : [0_u8 ; 251usize] , } ; } impl Default for FILE_TRANSFER_PROTOCOL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FILE_TRANSFER_PROTOCOL_DATA { type Message = MavMessage ; const ID : u32 = 110u32 ; const NAME : & 'static str = "FILE_TRANSFER_PROTOCOL" ; const EXTRA_CRC : u8 = 84u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_network = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_network) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TRAJECTORY_REPRESENTATION_BEZIER_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_x : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_y : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_z : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub delta : [f32 ; 5] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_yaw : [f32 ; 5] , pub valid_points : u8 , } impl TRAJECTORY_REPRESENTATION_BEZIER_DATA { pub const ENCODED_LEN : usize = 109usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , pos_x : [0.0_f32 ; 5usize] , pos_y : [0.0_f32 ; 5usize] , pos_z : [0.0_f32 ; 5usize] , delta : [0.0_f32 ; 5usize] , pos_yaw : [0.0_f32 ; 5usize] , valid_points : 0_u8 , } ; } impl Default for TRAJECTORY_REPRESENTATION_BEZIER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TRAJECTORY_REPRESENTATION_BEZIER_DATA { type Message = MavMessage ; const ID : u32 = 333u32 ; const NAME : & 'static str = "TRAJECTORY_REPRESENTATION_BEZIER" ; const EXTRA_CRC : u8 = 231u8 ; const ENCODED_LEN : usize = 109usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . pos_x { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_y { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_z { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . delta { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_yaw { let val = buf . get_f32_le () ; * v = val ; } __struct . valid_points = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . pos_x { __tmp . put_f32_le (* val) ; } for val in & self . pos_y { __tmp . put_f32_le (* val) ; } for val in & self . pos_z { __tmp . put_f32_le (* val) ; } for val in & self . delta { __tmp . put_f32_le (* val) ; } for val in & self . pos_yaw { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . valid_points) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POWER_STATUS_DATA { pub Vcc : u16 , pub Vservo : u16 , pub flags : MavPowerStatus , } impl POWER_STATUS_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { Vcc : 0_u16 , Vservo : 0_u16 , flags : MavPowerStatus :: DEFAULT , } ; } impl Default for POWER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POWER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 125u32 ; const NAME : & 'static str = "POWER_STATUS" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . Vcc = buf . get_u16_le () ; __struct . Vservo = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = MavPowerStatus :: from_bits (tmp & MavPowerStatus :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavPowerStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . Vcc) ; __tmp . put_u16_le (self . Vservo) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_QUATERNION_COV_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 9] , } impl ATTITUDE_QUATERNION_COV_DATA { pub const ENCODED_LEN : usize = 72usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , q : [0.0_f32 ; 4usize] , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , covariance : [0.0_f32 ; 9usize] , } ; } impl Default for ATTITUDE_QUATERNION_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_QUATERNION_COV_DATA { type Message = MavMessage ; const ID : u32 = 61u32 ; const NAME : & 'static str = "ATTITUDE_QUATERNION_COV" ; const EXTRA_CRC : u8 = 167u8 ; const ENCODED_LEN : usize = 72usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPONENT_METADATA_DATA { pub time_boot_ms : u32 , pub file_crc : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 100] , } impl COMPONENT_METADATA_DATA { pub const ENCODED_LEN : usize = 108usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , file_crc : 0_u32 , uri : [0_u8 ; 100usize] , } ; } impl Default for COMPONENT_METADATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPONENT_METADATA_DATA { type Message = MavMessage ; const ID : u32 = 397u32 ; const NAME : & 'static str = "COMPONENT_METADATA" ; const EXTRA_CRC : u8 = 182u8 ; const ENCODED_LEN : usize = 108usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . file_crc = buf . get_u32_le () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . file_crc) ; for val in & self . uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_INJECT_DATA_DATA { pub target_system : u8 , pub target_component : u8 , pub len : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 110] , } impl GPS_INJECT_DATA_DATA { pub const ENCODED_LEN : usize = 113usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , len : 0_u8 , data : [0_u8 ; 110usize] , } ; } impl Default for GPS_INJECT_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_INJECT_DATA_DATA { type Message = MavMessage ; const ID : u32 = 123u32 ; const NAME : & 'static str = "GPS_INJECT_DATA" ; const EXTRA_CRC : u8 = 250u8 ; const ENCODED_LEN : usize = 113usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . len = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . len) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_ATTITUDE_DATA { pub flags : GimbalManagerFlags , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_ATTITUDE_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 282u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_ATTITUDE" ; const EXTRA_CRC : u8 = 123u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POSITION_TARGET_GLOBAL_INT_DATA { pub time_boot_ms : u32 , pub lat_int : i32 , pub lon_int : i32 , pub alt : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub coordinate_frame : MavFrame , } impl POSITION_TARGET_GLOBAL_INT_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_int : 0_i32 , lon_int : 0_i32 , alt : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for POSITION_TARGET_GLOBAL_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POSITION_TARGET_GLOBAL_INT_DATA { type Message = MavMessage ; const ID : u32 = 87u32 ; const NAME : & 'static str = "POSITION_TARGET_GLOBAL_INT" ; const EXTRA_CRC : u8 = 150u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_int = buf . get_i32_le () ; __struct . lon_int = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_int) ; __tmp . put_i32_le (self . lon_int) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ENCAPSULATED_DATA_DATA { pub seqnr : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 253] , } impl ENCAPSULATED_DATA_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { seqnr : 0_u16 , data : [0_u8 ; 253usize] , } ; } impl Default for ENCAPSULATED_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ENCAPSULATED_DATA_DATA { type Message = MavMessage ; const ID : u32 = 131u32 ; const NAME : & 'static str = "ENCAPSULATED_DATA" ; const EXTRA_CRC : u8 = 223u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seqnr = buf . get_u16_le () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seqnr) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VICON_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl VICON_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for VICON_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VICON_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 104u32 ; const NAME : & 'static str = "VICON_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 56u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SELF_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub description_type : MavOdidDescType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub description : [u8 ; 23] , } impl OPEN_DRONE_ID_SELF_ID_DATA { pub const ENCODED_LEN : usize = 46usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , description_type : MavOdidDescType :: DEFAULT , description : [0_u8 ; 23usize] , } ; } impl Default for OPEN_DRONE_ID_SELF_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SELF_ID_DATA { type Message = MavMessage ; const ID : u32 = 12903u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SELF_ID" ; const EXTRA_CRC : u8 = 249u8 ; const ENCODED_LEN : usize = 46usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . description_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidDescType" , value : tmp as u32 }) ? ; for v in & mut __struct . description { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . description_type as u8) ; for val in & self . description { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { pub rfHealth : UavionixAdsbRfHealth , } impl UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { pub const ENCODED_LEN : usize = 1usize ; pub const DEFAULT : Self = Self { rfHealth : UavionixAdsbRfHealth :: DEFAULT , } ; } impl Default for UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 10003u32 ; const NAME : & 'static str = "UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT" ; const EXTRA_CRC : u8 = 4u8 ; const ENCODED_LEN : usize = 1usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . rfHealth = UavionixAdsbRfHealth :: from_bits (tmp & UavionixAdsbRfHealth :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UavionixAdsbRfHealth" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . rfHealth . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl PARAM_EXT_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PARAM_EXT_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 321u32 ; const NAME : & 'static str = "PARAM_EXT_REQUEST_LIST" ; const EXTRA_CRC : u8 = 88u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_MODE_DATA { pub custom_mode : u32 , pub target_system : u8 , pub base_mode : MavMode , } impl SET_MODE_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , target_system : 0_u8 , base_mode : MavMode :: DEFAULT , } ; } impl Default for SET_MODE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_MODE_DATA { type Message = MavMessage ; const ID : u32 = 11u32 ; const NAME : & 'static str = "SET_MODE" ; const EXTRA_CRC : u8 = 89u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . base_mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMode" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . base_mode as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SYSTEM_TIME_DATA { pub time_unix_usec : u64 , pub time_boot_ms : u32 , } impl SYSTEM_TIME_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { time_unix_usec : 0_u64 , time_boot_ms : 0_u32 , } ; } impl Default for SYSTEM_TIME_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SYSTEM_TIME_DATA { type Message = MavMessage ; const ID : u32 = 2u32 ; const NAME : & 'static str = "SYSTEM_TIME" ; const EXTRA_CRC : u8 = 137u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_unix_usec = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_unix_usec) ; __tmp . put_u32_le (self . time_boot_ms) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ADSB_VEHICLE_DATA { pub ICAO_address : u32 , pub lat : i32 , pub lon : i32 , pub altitude : i32 , pub heading : u16 , pub hor_velocity : u16 , pub ver_velocity : i16 , pub flags : AdsbFlags , pub squawk : u16 , pub altitude_type : AdsbAltitudeType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 9] , pub emitter_type : AdsbEmitterType , pub tslc : u8 , } impl ADSB_VEHICLE_DATA { pub const ENCODED_LEN : usize = 38usize ; pub const DEFAULT : Self = Self { ICAO_address : 0_u32 , lat : 0_i32 , lon : 0_i32 , altitude : 0_i32 , heading : 0_u16 , hor_velocity : 0_u16 , ver_velocity : 0_i16 , flags : AdsbFlags :: DEFAULT , squawk : 0_u16 , altitude_type : AdsbAltitudeType :: DEFAULT , callsign : [0_u8 ; 9usize] , emitter_type : AdsbEmitterType :: DEFAULT , tslc : 0_u8 , } ; } impl Default for ADSB_VEHICLE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ADSB_VEHICLE_DATA { type Message = MavMessage ; const ID : u32 = 246u32 ; const NAME : & 'static str = "ADSB_VEHICLE" ; const EXTRA_CRC : u8 = 184u8 ; const ENCODED_LEN : usize = 38usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ICAO_address = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . heading = buf . get_u16_le () ; __struct . hor_velocity = buf . get_u16_le () ; __struct . ver_velocity = buf . get_i16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = AdsbFlags :: from_bits (tmp & AdsbFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AdsbFlags" , value : tmp as u32 }) ? ; __struct . squawk = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . altitude_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbAltitudeType" , value : tmp as u32 }) ? ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . emitter_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbEmitterType" , value : tmp as u32 }) ? ; __struct . tslc = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ICAO_address) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_u16_le (self . heading) ; __tmp . put_u16_le (self . hor_velocity) ; __tmp . put_i16_le (self . ver_velocity) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u16_le (self . squawk) ; __tmp . put_u8 (self . altitude_type as u8) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . emitter_type as u8) ; __tmp . put_u8 (self . tslc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct POSITION_TARGET_LOCAL_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub coordinate_frame : MavFrame , } impl POSITION_TARGET_LOCAL_NED_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for POSITION_TARGET_LOCAL_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for POSITION_TARGET_LOCAL_NED_DATA { type Message = MavMessage ; const ID : u32 = 85u32 ; const NAME : & 'static str = "POSITION_TARGET_LOCAL_NED" ; const EXTRA_CRC : u8 = 140u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_OPTICAL_FLOW_DATA { pub time_usec : u64 , pub integration_time_us : u32 , pub integrated_x : f32 , pub integrated_y : f32 , pub integrated_xgyro : f32 , pub integrated_ygyro : f32 , pub integrated_zgyro : f32 , pub time_delta_distance_us : u32 , pub distance : f32 , pub temperature : i16 , pub sensor_id : u8 , pub quality : u8 , } impl HIL_OPTICAL_FLOW_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , integration_time_us : 0_u32 , integrated_x : 0.0_f32 , integrated_y : 0.0_f32 , integrated_xgyro : 0.0_f32 , integrated_ygyro : 0.0_f32 , integrated_zgyro : 0.0_f32 , time_delta_distance_us : 0_u32 , distance : 0.0_f32 , temperature : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for HIL_OPTICAL_FLOW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_OPTICAL_FLOW_DATA { type Message = MavMessage ; const ID : u32 = 114u32 ; const NAME : & 'static str = "HIL_OPTICAL_FLOW" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . integration_time_us = buf . get_u32_le () ; __struct . integrated_x = buf . get_f32_le () ; __struct . integrated_y = buf . get_f32_le () ; __struct . integrated_xgyro = buf . get_f32_le () ; __struct . integrated_ygyro = buf . get_f32_le () ; __struct . integrated_zgyro = buf . get_f32_le () ; __struct . time_delta_distance_us = buf . get_u32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . integration_time_us) ; __tmp . put_f32_le (self . integrated_x) ; __tmp . put_f32_le (self . integrated_y) ; __tmp . put_f32_le (self . integrated_xgyro) ; __tmp . put_f32_le (self . integrated_ygyro) ; __tmp . put_f32_le (self . integrated_zgyro) ; __tmp . put_u32_le (self . time_delta_distance_us) ; __tmp . put_f32_le (self . distance) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 43u32 ; const NAME : & 'static str = "MISSION_REQUEST_LIST" ; const EXTRA_CRC : u8 = 132u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PING_DATA { pub time_usec : u64 , pub seq : u32 , pub target_system : u8 , pub target_component : u8 , } impl PING_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , seq : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PING_DATA { type Message = MavMessage ; const ID : u32 = 4u32 ; const NAME : & 'static str = "PING" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . seq = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct NAMED_VALUE_FLOAT_DATA { pub time_boot_ms : u32 , pub value : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl NAMED_VALUE_FLOAT_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , value : 0.0_f32 , name : [0_u8 ; 10usize] , } ; } impl Default for NAMED_VALUE_FLOAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for NAMED_VALUE_FLOAT_DATA { type Message = MavMessage ; const ID : u32 = 251u32 ; const NAME : & 'static str = "NAMED_VALUE_FLOAT" ; const EXTRA_CRC : u8 = 170u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . value = buf . get_f32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . value) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_ACTUATOR_CONTROLS_DATA { pub time_usec : u64 , pub flags : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 16] , pub mode : MavModeFlag , } impl HIL_ACTUATOR_CONTROLS_DATA { pub const ENCODED_LEN : usize = 81usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , flags : 0_u64 , controls : [0.0_f32 ; 16usize] , mode : MavModeFlag :: DEFAULT , } ; } impl Default for HIL_ACTUATOR_CONTROLS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_ACTUATOR_CONTROLS_DATA { type Message = MavMessage ; const ID : u32 = 93u32 ; const NAME : & 'static str = "HIL_ACTUATOR_CONTROLS" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 81usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . flags = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u64_le (self . flags) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . mode . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_FOV_STATUS_DATA { pub time_boot_ms : u32 , pub lat_camera : i32 , pub lon_camera : i32 , pub alt_camera : i32 , pub lat_image : i32 , pub lon_image : i32 , pub alt_image : i32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub hfov : f32 , pub vfov : f32 , } impl CAMERA_FOV_STATUS_DATA { pub const ENCODED_LEN : usize = 52usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_camera : 0_i32 , lon_camera : 0_i32 , alt_camera : 0_i32 , lat_image : 0_i32 , lon_image : 0_i32 , alt_image : 0_i32 , q : [0.0_f32 ; 4usize] , hfov : 0.0_f32 , vfov : 0.0_f32 , } ; } impl Default for CAMERA_FOV_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_FOV_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 271u32 ; const NAME : & 'static str = "CAMERA_FOV_STATUS" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 52usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_camera = buf . get_i32_le () ; __struct . lon_camera = buf . get_i32_le () ; __struct . alt_camera = buf . get_i32_le () ; __struct . lat_image = buf . get_i32_le () ; __struct . lon_image = buf . get_i32_le () ; __struct . alt_image = buf . get_i32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . hfov = buf . get_f32_le () ; __struct . vfov = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_camera) ; __tmp . put_i32_le (self . lon_camera) ; __tmp . put_i32_le (self . alt_camera) ; __tmp . put_i32_le (self . lat_image) ; __tmp . put_i32_le (self . lon_image) ; __tmp . put_i32_le (self . alt_image) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . hfov) ; __tmp . put_f32_le (self . vfov) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE2_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE2_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE2_DATA { type Message = MavMessage ; const ID : u32 = 137u32 ; const NAME : & 'static str = "SCALED_PRESSURE2" ; const EXTRA_CRC : u8 = 195u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TUNNEL_DATA { pub payload_type : MavTunnelPayloadType , pub target_system : u8 , pub target_component : u8 , pub payload_length : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 128] , } impl TUNNEL_DATA { pub const ENCODED_LEN : usize = 133usize ; pub const DEFAULT : Self = Self { payload_type : MavTunnelPayloadType :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , payload_length : 0_u8 , payload : [0_u8 ; 128usize] , } ; } impl Default for TUNNEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TUNNEL_DATA { type Message = MavMessage ; const ID : u32 = 385u32 ; const NAME : & 'static str = "TUNNEL" ; const EXTRA_CRC : u8 = 147u8 ; const ENCODED_LEN : usize = 133usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . payload_type = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavTunnelPayloadType" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . payload_length = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . payload_type as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . payload_length) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA_STREAM_DATA { pub message_rate : u16 , pub stream_id : u8 , pub on_off : u8 , } impl DATA_STREAM_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { message_rate : 0_u16 , stream_id : 0_u8 , on_off : 0_u8 , } ; } impl Default for DATA_STREAM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA_STREAM_DATA { type Message = MavMessage ; const ID : u32 = 67u32 ; const NAME : & 'static str = "DATA_STREAM" ; const EXTRA_CRC : u8 = 21u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . message_rate = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; __struct . on_off = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . message_rate) ; __tmp . put_u8 (self . stream_id) ; __tmp . put_u8 (self . on_off) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_STATUS_DATA { pub satellites_visible : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_prn : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_used : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_elevation : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_azimuth : [u8 ; 20] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub satellite_snr : [u8 ; 20] , } impl GPS_STATUS_DATA { pub const ENCODED_LEN : usize = 101usize ; pub const DEFAULT : Self = Self { satellites_visible : 0_u8 , satellite_prn : [0_u8 ; 20usize] , satellite_used : [0_u8 ; 20usize] , satellite_elevation : [0_u8 ; 20usize] , satellite_azimuth : [0_u8 ; 20usize] , satellite_snr : [0_u8 ; 20usize] , } ; } impl Default for GPS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 25u32 ; const NAME : & 'static str = "GPS_STATUS" ; const EXTRA_CRC : u8 = 23u8 ; const ENCODED_LEN : usize = 101usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . satellites_visible = buf . get_u8 () ; for v in & mut __struct . satellite_prn { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_used { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_elevation { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_azimuth { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . satellite_snr { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . satellites_visible) ; for val in & self . satellite_prn { __tmp . put_u8 (* val) ; } for val in & self . satellite_used { __tmp . put_u8 (* val) ; } for val in & self . satellite_elevation { __tmp . put_u8 (* val) ; } for val in & self . satellite_azimuth { __tmp . put_u8 (* val) ; } for val in & self . satellite_snr { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_ACK_DATA { pub command : MavCmd , pub result : MavResult , } impl COMMAND_ACK_DATA { pub const ENCODED_LEN : usize = 3usize ; pub const DEFAULT : Self = Self { command : MavCmd :: DEFAULT , result : MavResult :: DEFAULT , } ; } impl Default for COMMAND_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_ACK_DATA { type Message = MavMessage ; const ID : u32 = 77u32 ; const NAME : & 'static str = "COMMAND_ACK" ; const EXTRA_CRC : u8 = 143u8 ; const ENCODED_LEN : usize = 3usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . result = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavResult" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . result as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DISTANCE_SENSOR_DATA { pub time_boot_ms : u32 , pub min_distance : u16 , pub max_distance : u16 , pub current_distance : u16 , pub mavtype : MavDistanceSensor , pub id : u8 , pub orientation : MavSensorOrientation , pub covariance : u8 , } impl DISTANCE_SENSOR_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , min_distance : 0_u16 , max_distance : 0_u16 , current_distance : 0_u16 , mavtype : MavDistanceSensor :: DEFAULT , id : 0_u8 , orientation : MavSensorOrientation :: DEFAULT , covariance : 0_u8 , } ; } impl Default for DISTANCE_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DISTANCE_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 132u32 ; const NAME : & 'static str = "DISTANCE_SENSOR" ; const EXTRA_CRC : u8 = 85u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . min_distance = buf . get_u16_le () ; __struct . max_distance = buf . get_u16_le () ; __struct . current_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . orientation = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavSensorOrientation" , value : tmp as u32 }) ? ; __struct . covariance = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . min_distance) ; __tmp . put_u16_le (self . max_distance) ; __tmp . put_u16_le (self . current_distance) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . orientation as u8) ; __tmp . put_u8 (self . covariance) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WIFI_CONFIG_AP_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub ssid : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub password : [u8 ; 64] , } impl WIFI_CONFIG_AP_DATA { pub const ENCODED_LEN : usize = 96usize ; pub const DEFAULT : Self = Self { ssid : [0_u8 ; 32usize] , password : [0_u8 ; 64usize] , } ; } impl Default for WIFI_CONFIG_AP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WIFI_CONFIG_AP_DATA { type Message = MavMessage ; const ID : u32 = 299u32 ; const NAME : & 'static str = "WIFI_CONFIG_AP" ; const EXTRA_CRC : u8 = 19u8 ; const ENCODED_LEN : usize = 96usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . ssid { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . password { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . ssid { __tmp . put_u8 (* val) ; } for val in & self . password { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SYSTEM_DATA { pub operator_latitude : i32 , pub operator_longitude : i32 , pub area_ceiling : f32 , pub area_floor : f32 , pub operator_altitude_geo : f32 , pub timestamp : u32 , pub area_count : u16 , pub area_radius : u16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub operator_location_type : MavOdidOperatorLocationType , pub classification_type : MavOdidClassificationType , pub category_eu : MavOdidCategoryEu , pub class_eu : MavOdidClassEu , } impl OPEN_DRONE_ID_SYSTEM_DATA { pub const ENCODED_LEN : usize = 54usize ; pub const DEFAULT : Self = Self { operator_latitude : 0_i32 , operator_longitude : 0_i32 , area_ceiling : 0.0_f32 , area_floor : 0.0_f32 , operator_altitude_geo : 0.0_f32 , timestamp : 0_u32 , area_count : 0_u16 , area_radius : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , operator_location_type : MavOdidOperatorLocationType :: DEFAULT , classification_type : MavOdidClassificationType :: DEFAULT , category_eu : MavOdidCategoryEu :: DEFAULT , class_eu : MavOdidClassEu :: DEFAULT , } ; } impl Default for OPEN_DRONE_ID_SYSTEM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SYSTEM_DATA { type Message = MavMessage ; const ID : u32 = 12904u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SYSTEM" ; const EXTRA_CRC : u8 = 77u8 ; const ENCODED_LEN : usize = 54usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . operator_latitude = buf . get_i32_le () ; __struct . operator_longitude = buf . get_i32_le () ; __struct . area_ceiling = buf . get_f32_le () ; __struct . area_floor = buf . get_f32_le () ; __struct . operator_altitude_geo = buf . get_f32_le () ; __struct . timestamp = buf . get_u32_le () ; __struct . area_count = buf . get_u16_le () ; __struct . area_radius = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . operator_location_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidOperatorLocationType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . classification_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidClassificationType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . category_eu = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidCategoryEu" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . class_eu = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidClassEu" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . operator_latitude) ; __tmp . put_i32_le (self . operator_longitude) ; __tmp . put_f32_le (self . area_ceiling) ; __tmp . put_f32_le (self . area_floor) ; __tmp . put_f32_le (self . operator_altitude_geo) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u16_le (self . area_count) ; __tmp . put_u16_le (self . area_radius) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . operator_location_type as u8) ; __tmp . put_u8 (self . classification_type as u8) ; __tmp . put_u8 (self . category_eu as u8) ; __tmp . put_u8 (self . class_eu as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_CLEAR_ALL_DATA { pub target_system : u8 , pub target_component : u8 , } impl MISSION_CLEAR_ALL_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_CLEAR_ALL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_CLEAR_ALL_DATA { type Message = MavMessage ; const ID : u32 = 45u32 ; const NAME : & 'static str = "MISSION_CLEAR_ALL" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPTICAL_FLOW_RAD_DATA { pub time_usec : u64 , pub integration_time_us : u32 , pub integrated_x : f32 , pub integrated_y : f32 , pub integrated_xgyro : f32 , pub integrated_ygyro : f32 , pub integrated_zgyro : f32 , pub time_delta_distance_us : u32 , pub distance : f32 , pub temperature : i16 , pub sensor_id : u8 , pub quality : u8 , } impl OPTICAL_FLOW_RAD_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , integration_time_us : 0_u32 , integrated_x : 0.0_f32 , integrated_y : 0.0_f32 , integrated_xgyro : 0.0_f32 , integrated_ygyro : 0.0_f32 , integrated_zgyro : 0.0_f32 , time_delta_distance_us : 0_u32 , distance : 0.0_f32 , temperature : 0_i16 , sensor_id : 0_u8 , quality : 0_u8 , } ; } impl Default for OPTICAL_FLOW_RAD_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPTICAL_FLOW_RAD_DATA { type Message = MavMessage ; const ID : u32 = 106u32 ; const NAME : & 'static str = "OPTICAL_FLOW_RAD" ; const EXTRA_CRC : u8 = 138u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . integration_time_us = buf . get_u32_le () ; __struct . integrated_x = buf . get_f32_le () ; __struct . integrated_y = buf . get_f32_le () ; __struct . integrated_xgyro = buf . get_f32_le () ; __struct . integrated_ygyro = buf . get_f32_le () ; __struct . integrated_zgyro = buf . get_f32_le () ; __struct . time_delta_distance_us = buf . get_u32_le () ; __struct . distance = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; __struct . sensor_id = buf . get_u8 () ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . integration_time_us) ; __tmp . put_f32_le (self . integrated_x) ; __tmp . put_f32_le (self . integrated_y) ; __tmp . put_f32_le (self . integrated_xgyro) ; __tmp . put_f32_le (self . integrated_ygyro) ; __tmp . put_f32_le (self . integrated_zgyro) ; __tmp . put_u32_le (self . time_delta_distance_us) ; __tmp . put_f32_le (self . distance) ; __tmp . put_i16_le (self . temperature) ; __tmp . put_u8 (self . sensor_id) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ACTUATOR_OUTPUT_STATUS_DATA { pub time_usec : u64 , pub active : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub actuator : [f32 ; 32] , } impl ACTUATOR_OUTPUT_STATUS_DATA { pub const ENCODED_LEN : usize = 140usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , active : 0_u32 , actuator : [0.0_f32 ; 32usize] , } ; } impl Default for ACTUATOR_OUTPUT_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ACTUATOR_OUTPUT_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 375u32 ; const NAME : & 'static str = "ACTUATOR_OUTPUT_STATUS" ; const EXTRA_CRC : u8 = 251u8 ; const ENCODED_LEN : usize = 140usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . active = buf . get_u32_le () ; for v in & mut __struct . actuator { let val = buf . get_f32_le () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . active) ; for val in & self . actuator { __tmp . put_f32_le (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WHEEL_DISTANCE_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub distance : [f64 ; 16] , pub count : u8 , } impl WHEEL_DISTANCE_DATA { pub const ENCODED_LEN : usize = 137usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , distance : [0.0_f64 ; 16usize] , count : 0_u8 , } ; } impl Default for WHEEL_DISTANCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WHEEL_DISTANCE_DATA { type Message = MavMessage ; const ID : u32 = 9000u32 ; const NAME : & 'static str = "WHEEL_DISTANCE" ; const EXTRA_CRC : u8 = 113u8 ; const ENCODED_LEN : usize = 137usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . distance { let val = buf . get_f64_le () ; * v = val ; } __struct . count = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . distance { __tmp . put_f64_le (* val) ; } __tmp . put_u8 (self . count) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_TARGET_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub body_roll_rate : f32 , pub body_pitch_rate : f32 , pub body_yaw_rate : f32 , pub thrust : f32 , pub type_mask : AttitudeTargetTypemask , } impl ATTITUDE_TARGET_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , body_roll_rate : 0.0_f32 , body_pitch_rate : 0.0_f32 , body_yaw_rate : 0.0_f32 , thrust : 0.0_f32 , type_mask : AttitudeTargetTypemask :: DEFAULT , } ; } impl Default for ATTITUDE_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 83u32 ; const NAME : & 'static str = "ATTITUDE_TARGET" ; const EXTRA_CRC : u8 = 22u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . body_roll_rate = buf . get_f32_le () ; __struct . body_pitch_rate = buf . get_f32_le () ; __struct . body_yaw_rate = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . type_mask = AttitudeTargetTypemask :: from_bits (tmp & AttitudeTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AttitudeTargetTypemask" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . body_roll_rate) ; __tmp . put_f32_le (self . body_pitch_rate) ; __tmp . put_f32_le (self . body_yaw_rate) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . type_mask . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HEARTBEAT_DATA { pub custom_mode : u32 , pub mavtype : MavType , pub autopilot : MavAutopilot , pub base_mode : MavModeFlag , pub system_status : MavState , pub mavlink_version : u8 , } impl HEARTBEAT_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { custom_mode : 0_u32 , mavtype : MavType :: DEFAULT , autopilot : MavAutopilot :: DEFAULT , base_mode : MavModeFlag :: DEFAULT , system_status : MavState :: DEFAULT , mavlink_version : 0_u8 , } ; } impl Default for HEARTBEAT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HEARTBEAT_DATA { type Message = MavMessage ; const ID : u32 = 0u32 ; const NAME : & 'static str = "HEARTBEAT" ; const EXTRA_CRC : u8 = 50u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . custom_mode = buf . get_u32_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . autopilot = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavAutopilot" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . base_mode = MavModeFlag :: from_bits (tmp & MavModeFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavModeFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . system_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavState" , value : tmp as u32 }) ? ; __struct . mavlink_version = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . custom_mode) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . autopilot as u8) ; __tmp . put_u8 (self . base_mode . bits ()) ; __tmp . put_u8 (self . system_status as u8) ; __tmp . put_u8 (self . mavlink_version) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_COUNT_DATA { pub count : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_COUNT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { count : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_COUNT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_COUNT_DATA { type Message = MavMessage ; const ID : u32 = 44u32 ; const NAME : & 'static str = "MISSION_COUNT" ; const EXTRA_CRC : u8 = 221u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . count = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . count) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTH_KEY_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub key : [u8 ; 32] , } impl AUTH_KEY_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { key : [0_u8 ; 32usize] , } ; } impl Default for AUTH_KEY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTH_KEY_DATA { type Message = MavMessage ; const ID : u32 = 7u32 ; const NAME : & 'static str = "AUTH_KEY" ; const EXTRA_CRC : u8 = 119u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . key { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . key { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_ACTUATOR_CONTROL_TARGET_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 8] , pub group_mlx : u8 , pub target_system : u8 , pub target_component : u8 , } impl SET_ACTUATOR_CONTROL_TARGET_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , controls : [0.0_f32 ; 8usize] , group_mlx : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for SET_ACTUATOR_CONTROL_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_ACTUATOR_CONTROL_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 139u32 ; const NAME : & 'static str = "SET_ACTUATOR_CONTROL_TARGET" ; const EXTRA_CRC : u8 = 168u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } __struct . group_mlx = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . group_mlx) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REQUEST_DATA_STREAM_DATA { pub req_message_rate : u16 , pub target_system : u8 , pub target_component : u8 , pub req_stream_id : u8 , pub start_stop : u8 , } impl REQUEST_DATA_STREAM_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { req_message_rate : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , req_stream_id : 0_u8 , start_stop : 0_u8 , } ; } impl Default for REQUEST_DATA_STREAM_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REQUEST_DATA_STREAM_DATA { type Message = MavMessage ; const ID : u32 = 66u32 ; const NAME : & 'static str = "REQUEST_DATA_STREAM" ; const EXTRA_CRC : u8 = 148u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . req_message_rate = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . req_stream_id = buf . get_u8 () ; __struct . start_stop = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . req_message_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . req_stream_id) ; __tmp . put_u8 (self . start_stop) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EXTENDED_SYS_STATE_DATA { pub vtol_state : MavVtolState , pub landed_state : MavLandedState , } impl EXTENDED_SYS_STATE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { vtol_state : MavVtolState :: DEFAULT , landed_state : MavLandedState :: DEFAULT , } ; } impl Default for EXTENDED_SYS_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EXTENDED_SYS_STATE_DATA { type Message = MavMessage ; const ID : u32 = 245u32 ; const NAME : & 'static str = "EXTENDED_SYS_STATE" ; const EXTRA_CRC : u8 = 130u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . vtol_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavVtolState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . vtol_state as u8) ; __tmp . put_u8 (self . landed_state as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_PITCHYAW_DATA { pub flags : GimbalManagerFlags , pub pitch : f32 , pub yaw : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_PITCHYAW_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , pitch : 0.0_f32 , yaw : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_PITCHYAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_PITCHYAW_DATA { type Message = MavMessage ; const ID : u32 = 287u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_PITCHYAW" ; const EXTRA_CRC : u8 = 1u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SYS_STATUS_DATA { pub onboard_control_sensors_present : MavSysStatusSensor , pub onboard_control_sensors_enabled : MavSysStatusSensor , pub onboard_control_sensors_health : MavSysStatusSensor , pub load : u16 , pub voltage_battery : u16 , pub current_battery : i16 , pub drop_rate_comm : u16 , pub errors_comm : u16 , pub errors_count1 : u16 , pub errors_count2 : u16 , pub errors_count3 : u16 , pub errors_count4 : u16 , pub battery_remaining : i8 , } impl SYS_STATUS_DATA { pub const ENCODED_LEN : usize = 31usize ; pub const DEFAULT : Self = Self { onboard_control_sensors_present : MavSysStatusSensor :: DEFAULT , onboard_control_sensors_enabled : MavSysStatusSensor :: DEFAULT , onboard_control_sensors_health : MavSysStatusSensor :: DEFAULT , load : 0_u16 , voltage_battery : 0_u16 , current_battery : 0_i16 , drop_rate_comm : 0_u16 , errors_comm : 0_u16 , errors_count1 : 0_u16 , errors_count2 : 0_u16 , errors_count3 : 0_u16 , errors_count4 : 0_u16 , battery_remaining : 0_i8 , } ; } impl Default for SYS_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SYS_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 1u32 ; const NAME : & 'static str = "SYS_STATUS" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 31usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_present = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_enabled = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; let tmp = buf . get_u32_le () ; __struct . onboard_control_sensors_health = MavSysStatusSensor :: from_bits (tmp & MavSysStatusSensor :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavSysStatusSensor" , value : tmp as u32 }) ? ; __struct . load = buf . get_u16_le () ; __struct . voltage_battery = buf . get_u16_le () ; __struct . current_battery = buf . get_i16_le () ; __struct . drop_rate_comm = buf . get_u16_le () ; __struct . errors_comm = buf . get_u16_le () ; __struct . errors_count1 = buf . get_u16_le () ; __struct . errors_count2 = buf . get_u16_le () ; __struct . errors_count3 = buf . get_u16_le () ; __struct . errors_count4 = buf . get_u16_le () ; __struct . battery_remaining = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . onboard_control_sensors_present . bits ()) ; __tmp . put_u32_le (self . onboard_control_sensors_enabled . bits ()) ; __tmp . put_u32_le (self . onboard_control_sensors_health . bits ()) ; __tmp . put_u16_le (self . load) ; __tmp . put_u16_le (self . voltage_battery) ; __tmp . put_i16_le (self . current_battery) ; __tmp . put_u16_le (self . drop_rate_comm) ; __tmp . put_u16_le (self . errors_comm) ; __tmp . put_u16_le (self . errors_count1) ; __tmp . put_u16_le (self . errors_count2) ; __tmp . put_u16_le (self . errors_count3) ; __tmp . put_u16_le (self . errors_count4) ; __tmp . put_i8 (self . battery_remaining) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GENERATOR_STATUS_DATA { pub status : MavGeneratorStatusFlag , pub battery_current : f32 , pub load_current : f32 , pub power_generated : f32 , pub bus_voltage : f32 , pub bat_current_setpoint : f32 , pub runtime : u32 , pub time_until_maintenance : i32 , pub generator_speed : u16 , pub rectifier_temperature : i16 , pub generator_temperature : i16 , } impl GENERATOR_STATUS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { status : MavGeneratorStatusFlag :: DEFAULT , battery_current : 0.0_f32 , load_current : 0.0_f32 , power_generated : 0.0_f32 , bus_voltage : 0.0_f32 , bat_current_setpoint : 0.0_f32 , runtime : 0_u32 , time_until_maintenance : 0_i32 , generator_speed : 0_u16 , rectifier_temperature : 0_i16 , generator_temperature : 0_i16 , } ; } impl Default for GENERATOR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GENERATOR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 373u32 ; const NAME : & 'static str = "GENERATOR_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u64_le () ; __struct . status = MavGeneratorStatusFlag :: from_bits (tmp & MavGeneratorStatusFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavGeneratorStatusFlag" , value : tmp as u32 }) ? ; __struct . battery_current = buf . get_f32_le () ; __struct . load_current = buf . get_f32_le () ; __struct . power_generated = buf . get_f32_le () ; __struct . bus_voltage = buf . get_f32_le () ; __struct . bat_current_setpoint = buf . get_f32_le () ; __struct . runtime = buf . get_u32_le () ; __struct . time_until_maintenance = buf . get_i32_le () ; __struct . generator_speed = buf . get_u16_le () ; __struct . rectifier_temperature = buf . get_i16_le () ; __struct . generator_temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . status . bits ()) ; __tmp . put_f32_le (self . battery_current) ; __tmp . put_f32_le (self . load_current) ; __tmp . put_f32_le (self . power_generated) ; __tmp . put_f32_le (self . bus_voltage) ; __tmp . put_f32_le (self . bat_current_setpoint) ; __tmp . put_u32_le (self . runtime) ; __tmp . put_i32_le (self . time_until_maintenance) ; __tmp . put_u16_le (self . generator_speed) ; __tmp . put_i16_le (self . rectifier_temperature) ; __tmp . put_i16_le (self . generator_temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_INFORMATION_DATA { pub uid : u64 , pub time_boot_ms : u32 , pub firmware_version : u32 , pub hardware_version : u32 , pub roll_min : f32 , pub roll_max : f32 , pub pitch_min : f32 , pub pitch_max : f32 , pub yaw_min : f32 , pub yaw_max : f32 , pub cap_flags : GimbalDeviceCapFlags , pub custom_cap_flags : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vendor_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub model_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub custom_name : [u8 ; 32] , } impl GIMBAL_DEVICE_INFORMATION_DATA { pub const ENCODED_LEN : usize = 144usize ; pub const DEFAULT : Self = Self { uid : 0_u64 , time_boot_ms : 0_u32 , firmware_version : 0_u32 , hardware_version : 0_u32 , roll_min : 0.0_f32 , roll_max : 0.0_f32 , pitch_min : 0.0_f32 , pitch_max : 0.0_f32 , yaw_min : 0.0_f32 , yaw_max : 0.0_f32 , cap_flags : GimbalDeviceCapFlags :: DEFAULT , custom_cap_flags : 0_u16 , vendor_name : [0_u8 ; 32usize] , model_name : [0_u8 ; 32usize] , custom_name : [0_u8 ; 32usize] , } ; } impl Default for GIMBAL_DEVICE_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 283u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_INFORMATION" ; const EXTRA_CRC : u8 = 74u8 ; const ENCODED_LEN : usize = 144usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . uid = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . firmware_version = buf . get_u32_le () ; __struct . hardware_version = buf . get_u32_le () ; __struct . roll_min = buf . get_f32_le () ; __struct . roll_max = buf . get_f32_le () ; __struct . pitch_min = buf . get_f32_le () ; __struct . pitch_max = buf . get_f32_le () ; __struct . yaw_min = buf . get_f32_le () ; __struct . yaw_max = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . cap_flags = GimbalDeviceCapFlags :: from_bits (tmp & GimbalDeviceCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceCapFlags" , value : tmp as u32 }) ? ; __struct . custom_cap_flags = buf . get_u16_le () ; for v in & mut __struct . vendor_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . model_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . custom_name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . uid) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . firmware_version) ; __tmp . put_u32_le (self . hardware_version) ; __tmp . put_f32_le (self . roll_min) ; __tmp . put_f32_le (self . roll_max) ; __tmp . put_f32_le (self . pitch_min) ; __tmp . put_f32_le (self . pitch_max) ; __tmp . put_f32_le (self . yaw_min) ; __tmp . put_f32_le (self . yaw_max) ; __tmp . put_u16_le (self . cap_flags . bits ()) ; __tmp . put_u16_le (self . custom_cap_flags) ; for val in & self . vendor_name { __tmp . put_u8 (* val) ; } for val in & self . model_name { __tmp . put_u8 (* val) ; } for val in & self . custom_name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct REQUEST_EVENT_DATA { pub first_sequence : u16 , pub last_sequence : u16 , pub target_system : u8 , pub target_component : u8 , } impl REQUEST_EVENT_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { first_sequence : 0_u16 , last_sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for REQUEST_EVENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for REQUEST_EVENT_DATA { type Message = MavMessage ; const ID : u32 = 412u32 ; const NAME : & 'static str = "REQUEST_EVENT" ; const EXTRA_CRC : u8 = 33u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . first_sequence = buf . get_u16_le () ; __struct . last_sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . first_sequence) ; __tmp . put_u16_le (self . last_sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_COV_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub ax : f32 , pub ay : f32 , pub az : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 45] , pub estimator_type : MavEstimatorType , } impl LOCAL_POSITION_NED_COV_DATA { pub const ENCODED_LEN : usize = 225usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , ax : 0.0_f32 , ay : 0.0_f32 , az : 0.0_f32 , covariance : [0.0_f32 ; 45usize] , estimator_type : MavEstimatorType :: DEFAULT , } ; } impl Default for LOCAL_POSITION_NED_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_COV_DATA { type Message = MavMessage ; const ID : u32 = 64u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED_COV" ; const EXTRA_CRC : u8 = 191u8 ; const ENCODED_LEN : usize = 225usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . ax = buf . get_f32_le () ; __struct . ay = buf . get_f32_le () ; __struct . az = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . estimator_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEstimatorType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . ax) ; __tmp . put_f32_le (self . ay) ; __tmp . put_f32_le (self . az) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . estimator_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_PRESSURE_DATA { pub time_boot_ms : u32 , pub press_abs : f32 , pub press_diff : f32 , pub temperature : i16 , } impl SCALED_PRESSURE_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , press_abs : 0.0_f32 , press_diff : 0.0_f32 , temperature : 0_i16 , } ; } impl Default for SCALED_PRESSURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_PRESSURE_DATA { type Message = MavMessage ; const ID : u32 = 29u32 ; const NAME : & 'static str = "SCALED_PRESSURE" ; const EXTRA_CRC : u8 = 115u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . press_abs = buf . get_f32_le () ; __struct . press_diff = buf . get_f32_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . press_abs) ; __tmp . put_f32_le (self . press_diff) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RESOURCE_REQUEST_DATA { pub request_id : u8 , pub uri_type : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uri : [u8 ; 120] , pub transfer_type : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage : [u8 ; 120] , } impl RESOURCE_REQUEST_DATA { pub const ENCODED_LEN : usize = 243usize ; pub const DEFAULT : Self = Self { request_id : 0_u8 , uri_type : 0_u8 , uri : [0_u8 ; 120usize] , transfer_type : 0_u8 , storage : [0_u8 ; 120usize] , } ; } impl Default for RESOURCE_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RESOURCE_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 142u32 ; const NAME : & 'static str = "RESOURCE_REQUEST" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 243usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . request_id = buf . get_u8 () ; __struct . uri_type = buf . get_u8 () ; for v in & mut __struct . uri { let val = buf . get_u8 () ; * v = val ; } __struct . transfer_type = buf . get_u8 () ; for v in & mut __struct . storage { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . request_id) ; __tmp . put_u8 (self . uri_type) ; for val in & self . uri { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . transfer_type) ; for val in & self . storage { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 40u32 ; const NAME : & 'static str = "MISSION_REQUEST" ; const EXTRA_CRC : u8 = 230u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_TRIGGER_DATA { pub time_usec : u64 , pub seq : u32 , } impl CAMERA_TRIGGER_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , seq : 0_u32 , } ; } impl Default for CAMERA_TRIGGER_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_TRIGGER_DATA { type Message = MavMessage ; const ID : u32 = 112u32 ; const NAME : & 'static str = "CAMERA_TRIGGER" ; const EXTRA_CRC : u8 = 174u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . seq = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { pub operator_latitude : i32 , pub operator_longitude : i32 , pub operator_altitude_geo : f32 , pub timestamp : u32 , pub target_system : u8 , pub target_component : u8 , } impl OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { operator_latitude : 0_i32 , operator_longitude : 0_i32 , operator_altitude_geo : 0.0_f32 , timestamp : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_SYSTEM_UPDATE_DATA { type Message = MavMessage ; const ID : u32 = 12919u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_SYSTEM_UPDATE" ; const EXTRA_CRC : u8 = 7u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . operator_latitude = buf . get_i32_le () ; __struct . operator_longitude = buf . get_i32_le () ; __struct . operator_altitude_geo = buf . get_f32_le () ; __struct . timestamp = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . operator_latitude) ; __tmp . put_i32_le (self . operator_longitude) ; __tmp . put_f32_le (self . operator_altitude_geo) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_PRESSURE_DATA { pub time_usec : u64 , pub press_abs : i16 , pub press_diff1 : i16 , pub press_diff2 : i16 , pub temperature : i16 , } impl RAW_PRESSURE_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , press_abs : 0_i16 , press_diff1 : 0_i16 , press_diff2 : 0_i16 , temperature : 0_i16 , } ; } impl Default for RAW_PRESSURE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_PRESSURE_DATA { type Message = MavMessage ; const ID : u32 = 28u32 ; const NAME : & 'static str = "RAW_PRESSURE" ; const EXTRA_CRC : u8 = 67u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . press_abs = buf . get_i16_le () ; __struct . press_diff1 = buf . get_i16_le () ; __struct . press_diff2 = buf . get_i16_le () ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i16_le (self . press_abs) ; __tmp . put_i16_le (self . press_diff1) ; __tmp . put_i16_le (self . press_diff2) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ACTUATOR_CONTROL_TARGET_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub controls : [f32 ; 8] , pub group_mlx : u8 , } impl ACTUATOR_CONTROL_TARGET_DATA { pub const ENCODED_LEN : usize = 41usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , controls : [0.0_f32 ; 8usize] , group_mlx : 0_u8 , } ; } impl Default for ACTUATOR_CONTROL_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ACTUATOR_CONTROL_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 140u32 ; const NAME : & 'static str = "ACTUATOR_CONTROL_TARGET" ; const EXTRA_CRC : u8 = 181u8 ; const ENCODED_LEN : usize = 41usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . controls { let val = buf . get_f32_le () ; * v = val ; } __struct . group_mlx = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . controls { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . group_mlx) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_AUTHENTICATION_DATA { pub timestamp : u32 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub authentication_type : MavOdidAuthType , pub data_page : u8 , pub last_page_index : u8 , pub length : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub authentication_data : [u8 ; 23] , } impl OPEN_DRONE_ID_AUTHENTICATION_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { timestamp : 0_u32 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , authentication_type : MavOdidAuthType :: DEFAULT , data_page : 0_u8 , last_page_index : 0_u8 , length : 0_u8 , authentication_data : [0_u8 ; 23usize] , } ; } impl Default for OPEN_DRONE_ID_AUTHENTICATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_AUTHENTICATION_DATA { type Message = MavMessage ; const ID : u32 = 12902u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_AUTHENTICATION" ; const EXTRA_CRC : u8 = 140u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . authentication_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidAuthType" , value : tmp as u32 }) ? ; __struct . data_page = buf . get_u8 () ; __struct . last_page_index = buf . get_u8 () ; __struct . length = buf . get_u8 () ; for v in & mut __struct . authentication_data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . authentication_type as u8) ; __tmp . put_u8 (self . data_page) ; __tmp . put_u8 (self . last_page_index) ; __tmp . put_u8 (self . length) ; for val in & self . authentication_data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , } impl LOCAL_POSITION_NED_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , } ; } impl Default for LOCAL_POSITION_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_DATA { type Message = MavMessage ; const ID : u32 = 32u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED" ; const EXTRA_CRC : u8 = 185u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_VISION_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl GLOBAL_VISION_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for GLOBAL_VISION_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_VISION_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 101u32 ; const NAME : & 'static str = "GLOBAL_VISION_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 102u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MAG_CAL_REPORT_DATA { pub fitness : f32 , pub ofs_x : f32 , pub ofs_y : f32 , pub ofs_z : f32 , pub diag_x : f32 , pub diag_y : f32 , pub diag_z : f32 , pub offdiag_x : f32 , pub offdiag_y : f32 , pub offdiag_z : f32 , pub compass_id : u8 , pub cal_mask : u8 , pub cal_status : MagCalStatus , pub autosaved : u8 , } impl MAG_CAL_REPORT_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { fitness : 0.0_f32 , ofs_x : 0.0_f32 , ofs_y : 0.0_f32 , ofs_z : 0.0_f32 , diag_x : 0.0_f32 , diag_y : 0.0_f32 , diag_z : 0.0_f32 , offdiag_x : 0.0_f32 , offdiag_y : 0.0_f32 , offdiag_z : 0.0_f32 , compass_id : 0_u8 , cal_mask : 0_u8 , cal_status : MagCalStatus :: DEFAULT , autosaved : 0_u8 , } ; } impl Default for MAG_CAL_REPORT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MAG_CAL_REPORT_DATA { type Message = MavMessage ; const ID : u32 = 192u32 ; const NAME : & 'static str = "MAG_CAL_REPORT" ; const EXTRA_CRC : u8 = 36u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . fitness = buf . get_f32_le () ; __struct . ofs_x = buf . get_f32_le () ; __struct . ofs_y = buf . get_f32_le () ; __struct . ofs_z = buf . get_f32_le () ; __struct . diag_x = buf . get_f32_le () ; __struct . diag_y = buf . get_f32_le () ; __struct . diag_z = buf . get_f32_le () ; __struct . offdiag_x = buf . get_f32_le () ; __struct . offdiag_y = buf . get_f32_le () ; __struct . offdiag_z = buf . get_f32_le () ; __struct . compass_id = buf . get_u8 () ; __struct . cal_mask = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . cal_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MagCalStatus" , value : tmp as u32 }) ? ; __struct . autosaved = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . fitness) ; __tmp . put_f32_le (self . ofs_x) ; __tmp . put_f32_le (self . ofs_y) ; __tmp . put_f32_le (self . ofs_z) ; __tmp . put_f32_le (self . diag_x) ; __tmp . put_f32_le (self . diag_y) ; __tmp . put_f32_le (self . diag_z) ; __tmp . put_f32_le (self . offdiag_x) ; __tmp . put_f32_le (self . offdiag_y) ; __tmp . put_f32_le (self . offdiag_z) ; __tmp . put_u8 (self . compass_id) ; __tmp . put_u8 (self . cal_mask) ; __tmp . put_u8 (self . cal_status as u8) ; __tmp . put_u8 (self . autosaved) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CELLULAR_STATUS_DATA { pub mcc : u16 , pub mnc : u16 , pub lac : u16 , pub status : CellularStatusFlag , pub failure_reason : CellularNetworkFailedReason , pub mavtype : CellularNetworkRadioType , pub quality : u8 , } impl CELLULAR_STATUS_DATA { pub const ENCODED_LEN : usize = 10usize ; pub const DEFAULT : Self = Self { mcc : 0_u16 , mnc : 0_u16 , lac : 0_u16 , status : CellularStatusFlag :: DEFAULT , failure_reason : CellularNetworkFailedReason :: DEFAULT , mavtype : CellularNetworkRadioType :: DEFAULT , quality : 0_u8 , } ; } impl Default for CELLULAR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CELLULAR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 334u32 ; const NAME : & 'static str = "CELLULAR_STATUS" ; const EXTRA_CRC : u8 = 72u8 ; const ENCODED_LEN : usize = 10usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mcc = buf . get_u16_le () ; __struct . mnc = buf . get_u16_le () ; __struct . lac = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularStatusFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . failure_reason = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularNetworkFailedReason" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CellularNetworkRadioType" , value : tmp as u32 }) ? ; __struct . quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . mcc) ; __tmp . put_u16_le (self . mnc) ; __tmp . put_u16_le (self . lac) ; __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . failure_reason as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_FLOAT_ARRAY_DATA { pub time_usec : u64 , pub array_id : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl DEBUG_FLOAT_ARRAY_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , array_id : 0_u16 , name : [0_u8 ; 10usize] , } ; } impl Default for DEBUG_FLOAT_ARRAY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_FLOAT_ARRAY_DATA { type Message = MavMessage ; const ID : u32 = 350u32 ; const NAME : & 'static str = "DEBUG_FLOAT_ARRAY" ; const EXTRA_CRC : u8 = 232u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . array_id = buf . get_u16_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u16_le (self . array_id) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub failure_flags : GimbalDeviceErrorFlags , pub flags : GimbalDeviceFlags , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { pub const ENCODED_LEN : usize = 40usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , failure_flags : GimbalDeviceErrorFlags :: DEFAULT , flags : GimbalDeviceFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 285u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_ATTITUDE_STATUS" ; const EXTRA_CRC : u8 = 137u8 ; const ENCODED_LEN : usize = 40usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . failure_flags = GimbalDeviceErrorFlags :: from_bits (tmp & GimbalDeviceErrorFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceErrorFlags" , value : tmp as u32 }) ? ; let tmp = buf . get_u16_le () ; __struct . flags = GimbalDeviceFlags :: from_bits (tmp & GimbalDeviceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u32_le (self . failure_flags . bits ()) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_MESSAGE_PACK_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub single_message_size : u8 , pub msg_pack_size : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub messages : [u8 ; 225] , } impl OPEN_DRONE_ID_MESSAGE_PACK_DATA { pub const ENCODED_LEN : usize = 249usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , single_message_size : 0_u8 , msg_pack_size : 0_u8 , messages : [0_u8 ; 225usize] , } ; } impl Default for OPEN_DRONE_ID_MESSAGE_PACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_MESSAGE_PACK_DATA { type Message = MavMessage ; const ID : u32 = 12915u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_MESSAGE_PACK" ; const EXTRA_CRC : u8 = 94u8 ; const ENCODED_LEN : usize = 249usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } __struct . single_message_size = buf . get_u8 () ; __struct . msg_pack_size = buf . get_u8 () ; for v in & mut __struct . messages { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . single_message_size) ; __tmp . put_u8 (self . msg_pack_size) ; for val in & self . messages { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_DEVICE_SET_ATTITUDE_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub angular_velocity_x : f32 , pub angular_velocity_y : f32 , pub angular_velocity_z : f32 , pub flags : GimbalDeviceFlags , pub target_system : u8 , pub target_component : u8 , } impl GIMBAL_DEVICE_SET_ATTITUDE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { q : [0.0_f32 ; 4usize] , angular_velocity_x : 0.0_f32 , angular_velocity_y : 0.0_f32 , angular_velocity_z : 0.0_f32 , flags : GimbalDeviceFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for GIMBAL_DEVICE_SET_ATTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_DEVICE_SET_ATTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 284u32 ; const NAME : & 'static str = "GIMBAL_DEVICE_SET_ATTITUDE" ; const EXTRA_CRC : u8 = 99u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . angular_velocity_x = buf . get_f32_le () ; __struct . angular_velocity_y = buf . get_f32_le () ; __struct . angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = GimbalDeviceFlags :: from_bits (tmp & GimbalDeviceFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "GimbalDeviceFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . angular_velocity_x) ; __tmp . put_f32_le (self . angular_velocity_y) ; __tmp . put_f32_le (self . angular_velocity_z) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_INT_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub seq : u16 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl MISSION_ITEM_INT_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , seq : 0_u16 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for MISSION_ITEM_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_INT_DATA { type Message = MavMessage ; const ID : u32 = 73u32 ; const NAME : & 'static str = "MISSION_ITEM_INT" ; const EXTRA_CRC : u8 = 38u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; __struct . seq = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_CHECK_DATA { pub lat : i32 , pub lon : i32 , } impl TERRAIN_CHECK_DATA { pub const ENCODED_LEN : usize = 8usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , } ; } impl Default for TERRAIN_CHECK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_CHECK_DATA { type Message = MavMessage ; const ID : u32 = 135u32 ; const NAME : & 'static str = "TERRAIN_CHECK" ; const EXTRA_CRC : u8 = 203u8 ; const ENCODED_LEN : usize = 8usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SAFETY_SET_ALLOWED_AREA_DATA { pub p1x : f32 , pub p1y : f32 , pub p1z : f32 , pub p2x : f32 , pub p2y : f32 , pub p2z : f32 , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , } impl SAFETY_SET_ALLOWED_AREA_DATA { pub const ENCODED_LEN : usize = 27usize ; pub const DEFAULT : Self = Self { p1x : 0.0_f32 , p1y : 0.0_f32 , p1z : 0.0_f32 , p2x : 0.0_f32 , p2y : 0.0_f32 , p2z : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , } ; } impl Default for SAFETY_SET_ALLOWED_AREA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SAFETY_SET_ALLOWED_AREA_DATA { type Message = MavMessage ; const ID : u32 = 54u32 ; const NAME : & 'static str = "SAFETY_SET_ALLOWED_AREA" ; const EXTRA_CRC : u8 = 15u8 ; const ENCODED_LEN : usize = 27usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . p1x = buf . get_f32_le () ; __struct . p1y = buf . get_f32_le () ; __struct . p1z = buf . get_f32_le () ; __struct . p2x = buf . get_f32_le () ; __struct . p2y = buf . get_f32_le () ; __struct . p2z = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . p1x) ; __tmp . put_f32_le (self . p1y) ; __tmp . put_f32_le (self . p1z) ; __tmp . put_f32_le (self . p2x) ; __tmp . put_f32_le (self . p2y) ; __tmp . put_f32_le (self . p2z) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVIONIX_ADSB_OUT_DYNAMIC_DATA { pub utcTime : u32 , pub gpsLat : i32 , pub gpsLon : i32 , pub gpsAlt : i32 , pub baroAltMSL : i32 , pub accuracyHor : u32 , pub accuracyVert : u16 , pub accuracyVel : u16 , pub velVert : i16 , pub velNS : i16 , pub VelEW : i16 , pub state : UavionixAdsbOutDynamicState , pub squawk : u16 , pub gpsFix : UavionixAdsbOutDynamicGpsFix , pub numSats : u8 , pub emergencyStatus : UavionixAdsbEmergencyStatus , } impl UAVIONIX_ADSB_OUT_DYNAMIC_DATA { pub const ENCODED_LEN : usize = 41usize ; pub const DEFAULT : Self = Self { utcTime : 0_u32 , gpsLat : 0_i32 , gpsLon : 0_i32 , gpsAlt : 0_i32 , baroAltMSL : 0_i32 , accuracyHor : 0_u32 , accuracyVert : 0_u16 , accuracyVel : 0_u16 , velVert : 0_i16 , velNS : 0_i16 , VelEW : 0_i16 , state : UavionixAdsbOutDynamicState :: DEFAULT , squawk : 0_u16 , gpsFix : UavionixAdsbOutDynamicGpsFix :: DEFAULT , numSats : 0_u8 , emergencyStatus : UavionixAdsbEmergencyStatus :: DEFAULT , } ; } impl Default for UAVIONIX_ADSB_OUT_DYNAMIC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVIONIX_ADSB_OUT_DYNAMIC_DATA { type Message = MavMessage ; const ID : u32 = 10002u32 ; const NAME : & 'static str = "UAVIONIX_ADSB_OUT_DYNAMIC" ; const EXTRA_CRC : u8 = 186u8 ; const ENCODED_LEN : usize = 41usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . utcTime = buf . get_u32_le () ; __struct . gpsLat = buf . get_i32_le () ; __struct . gpsLon = buf . get_i32_le () ; __struct . gpsAlt = buf . get_i32_le () ; __struct . baroAltMSL = buf . get_i32_le () ; __struct . accuracyHor = buf . get_u32_le () ; __struct . accuracyVert = buf . get_u16_le () ; __struct . accuracyVel = buf . get_u16_le () ; __struct . velVert = buf . get_i16_le () ; __struct . velNS = buf . get_i16_le () ; __struct . VelEW = buf . get_i16_le () ; let tmp = buf . get_u16_le () ; __struct . state = UavionixAdsbOutDynamicState :: from_bits (tmp & UavionixAdsbOutDynamicState :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UavionixAdsbOutDynamicState" , value : tmp as u32 }) ? ; __struct . squawk = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . gpsFix = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutDynamicGpsFix" , value : tmp as u32 }) ? ; __struct . numSats = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . emergencyStatus = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbEmergencyStatus" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . utcTime) ; __tmp . put_i32_le (self . gpsLat) ; __tmp . put_i32_le (self . gpsLon) ; __tmp . put_i32_le (self . gpsAlt) ; __tmp . put_i32_le (self . baroAltMSL) ; __tmp . put_u32_le (self . accuracyHor) ; __tmp . put_u16_le (self . accuracyVert) ; __tmp . put_u16_le (self . accuracyVel) ; __tmp . put_i16_le (self . velVert) ; __tmp . put_i16_le (self . velNS) ; __tmp . put_i16_le (self . VelEW) ; __tmp . put_u16_le (self . state . bits ()) ; __tmp . put_u16_le (self . squawk) ; __tmp . put_u8 (self . gpsFix as u8) ; __tmp . put_u8 (self . numSats) ; __tmp . put_u8 (self . emergencyStatus as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_POSITION_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl VISION_POSITION_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for VISION_POSITION_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_POSITION_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 102u32 ; const NAME : & 'static str = "VISION_POSITION_ESTIMATE" ; const EXTRA_CRC : u8 = 158u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ORBIT_EXECUTION_STATUS_DATA { pub time_usec : u64 , pub radius : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub frame : MavFrame , } impl ORBIT_EXECUTION_STATUS_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , radius : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , frame : MavFrame :: DEFAULT , } ; } impl Default for ORBIT_EXECUTION_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ORBIT_EXECUTION_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 360u32 ; const NAME : & 'static str = "ORBIT_EXECUTION_STATUS" ; const EXTRA_CRC : u8 = 11u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . radius = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . radius) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_POSITION_TARGET_LOCAL_NED_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub target_system : u8 , pub target_component : u8 , pub coordinate_frame : MavFrame , } impl SET_POSITION_TARGET_LOCAL_NED_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for SET_POSITION_TARGET_LOCAL_NED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_POSITION_TARGET_LOCAL_NED_DATA { type Message = MavMessage ; const ID : u32 = 84u32 ; const NAME : & 'static str = "SET_POSITION_TARGET_LOCAL_NED" ; const EXTRA_CRC : u8 = 143u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ALTITUDE_DATA { pub time_usec : u64 , pub altitude_monotonic : f32 , pub altitude_amsl : f32 , pub altitude_local : f32 , pub altitude_relative : f32 , pub altitude_terrain : f32 , pub bottom_clearance : f32 , } impl ALTITUDE_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , altitude_monotonic : 0.0_f32 , altitude_amsl : 0.0_f32 , altitude_local : 0.0_f32 , altitude_relative : 0.0_f32 , altitude_terrain : 0.0_f32 , bottom_clearance : 0.0_f32 , } ; } impl Default for ALTITUDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ALTITUDE_DATA { type Message = MavMessage ; const ID : u32 = 141u32 ; const NAME : & 'static str = "ALTITUDE" ; const EXTRA_CRC : u8 = 47u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . altitude_monotonic = buf . get_f32_le () ; __struct . altitude_amsl = buf . get_f32_le () ; __struct . altitude_local = buf . get_f32_le () ; __struct . altitude_relative = buf . get_f32_le () ; __struct . altitude_terrain = buf . get_f32_le () ; __struct . bottom_clearance = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . altitude_monotonic) ; __tmp . put_f32_le (self . altitude_amsl) ; __tmp . put_f32_le (self . altitude_local) ; __tmp . put_f32_le (self . altitude_relative) ; __tmp . put_f32_le (self . altitude_terrain) ; __tmp . put_f32_le (self . bottom_clearance) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CHANGE_OPERATOR_CONTROL_DATA { pub target_system : u8 , pub control_request : u8 , pub version : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub passkey : [u8 ; 25] , } impl CHANGE_OPERATOR_CONTROL_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , control_request : 0_u8 , version : 0_u8 , passkey : [0_u8 ; 25usize] , } ; } impl Default for CHANGE_OPERATOR_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CHANGE_OPERATOR_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 5u32 ; const NAME : & 'static str = "CHANGE_OPERATOR_CONTROL" ; const EXTRA_CRC : u8 = 217u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . control_request = buf . get_u8 () ; __struct . version = buf . get_u8 () ; for v in & mut __struct . passkey { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . control_request) ; __tmp . put_u8 (self . version) ; for val in & self . passkey { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_INT_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_INT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_INT_DATA { type Message = MavMessage ; const ID : u32 = 51u32 ; const NAME : & 'static str = "MISSION_REQUEST_INT" ; const EXTRA_CRC : u8 = 196u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_LIST_DATA { pub start : u16 , pub end : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start : 0_u16 , end : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 117u32 ; const NAME : & 'static str = "LOG_REQUEST_LIST" ; const EXTRA_CRC : u8 = 128u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start = buf . get_u16_le () ; __struct . end = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . start) ; __tmp . put_u16_le (self . end) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_DATA { pub time_boot_ms : u32 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub chan9_raw : u16 , pub chan10_raw : u16 , pub chan11_raw : u16 , pub chan12_raw : u16 , pub chan13_raw : u16 , pub chan14_raw : u16 , pub chan15_raw : u16 , pub chan16_raw : u16 , pub chan17_raw : u16 , pub chan18_raw : u16 , pub chancount : u8 , pub rssi : u8 , } impl RC_CHANNELS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , chan9_raw : 0_u16 , chan10_raw : 0_u16 , chan11_raw : 0_u16 , chan12_raw : 0_u16 , chan13_raw : 0_u16 , chan14_raw : 0_u16 , chan15_raw : 0_u16 , chan16_raw : 0_u16 , chan17_raw : 0_u16 , chan18_raw : 0_u16 , chancount : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_DATA { type Message = MavMessage ; const ID : u32 = 65u32 ; const NAME : & 'static str = "RC_CHANNELS" ; const EXTRA_CRC : u8 = 118u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . chan9_raw = buf . get_u16_le () ; __struct . chan10_raw = buf . get_u16_le () ; __struct . chan11_raw = buf . get_u16_le () ; __struct . chan12_raw = buf . get_u16_le () ; __struct . chan13_raw = buf . get_u16_le () ; __struct . chan14_raw = buf . get_u16_le () ; __struct . chan15_raw = buf . get_u16_le () ; __struct . chan16_raw = buf . get_u16_le () ; __struct . chan17_raw = buf . get_u16_le () ; __struct . chan18_raw = buf . get_u16_le () ; __struct . chancount = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u16_le (self . chan9_raw) ; __tmp . put_u16_le (self . chan10_raw) ; __tmp . put_u16_le (self . chan11_raw) ; __tmp . put_u16_le (self . chan12_raw) ; __tmp . put_u16_le (self . chan13_raw) ; __tmp . put_u16_le (self . chan14_raw) ; __tmp . put_u16_le (self . chan15_raw) ; __tmp . put_u16_le (self . chan16_raw) ; __tmp . put_u16_le (self . chan17_raw) ; __tmp . put_u16_le (self . chan18_raw) ; __tmp . put_u8 (self . chancount) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIDEO_STREAM_STATUS_DATA { pub framerate : f32 , pub bitrate : u32 , pub flags : VideoStreamStatusFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub rotation : u16 , pub hfov : u16 , pub stream_id : u8 , } impl VIDEO_STREAM_STATUS_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { framerate : 0.0_f32 , bitrate : 0_u32 , flags : VideoStreamStatusFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , rotation : 0_u16 , hfov : 0_u16 , stream_id : 0_u8 , } ; } impl Default for VIDEO_STREAM_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIDEO_STREAM_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 270u32 ; const NAME : & 'static str = "VIDEO_STREAM_STATUS" ; const EXTRA_CRC : u8 = 59u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . framerate = buf . get_f32_le () ; __struct . bitrate = buf . get_u32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "VideoStreamStatusFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . rotation = buf . get_u16_le () ; __struct . hfov = buf . get_u16_le () ; __struct . stream_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . framerate) ; __tmp . put_u32_le (self . bitrate) ; __tmp . put_u16_le (self . flags as u16) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . rotation) ; __tmp . put_u16_le (self . hfov) ; __tmp . put_u8 (self . stream_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_WRITE_PARTIAL_LIST_DATA { pub start_index : i16 , pub end_index : i16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_WRITE_PARTIAL_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start_index : 0_i16 , end_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_WRITE_PARTIAL_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_WRITE_PARTIAL_LIST_DATA { type Message = MavMessage ; const ID : u32 = 38u32 ; const NAME : & 'static str = "MISSION_WRITE_PARTIAL_LIST" ; const EXTRA_CRC : u8 = 9u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start_index = buf . get_i16_le () ; __struct . end_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . start_index) ; __tmp . put_i16_le (self . end_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATT_POS_MOCAP_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub x : f32 , pub y : f32 , pub z : f32 , } impl ATT_POS_MOCAP_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , q : [0.0_f32 ; 4usize] , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , } ; } impl Default for ATT_POS_MOCAP_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATT_POS_MOCAP_DATA { type Message = MavMessage ; const ID : u32 = 138u32 ; const NAME : & 'static str = "ATT_POS_MOCAP" ; const EXTRA_CRC : u8 = 109u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVCAN_NODE_STATUS_DATA { pub time_usec : u64 , pub uptime_sec : u32 , pub vendor_specific_status_code : u16 , pub health : UavcanNodeHealth , pub mode : UavcanNodeMode , pub sub_mode : u8 , } impl UAVCAN_NODE_STATUS_DATA { pub const ENCODED_LEN : usize = 17usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime_sec : 0_u32 , vendor_specific_status_code : 0_u16 , health : UavcanNodeHealth :: DEFAULT , mode : UavcanNodeMode :: DEFAULT , sub_mode : 0_u8 , } ; } impl Default for UAVCAN_NODE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVCAN_NODE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 310u32 ; const NAME : & 'static str = "UAVCAN_NODE_STATUS" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 17usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime_sec = buf . get_u32_le () ; __struct . vendor_specific_status_code = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . health = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavcanNodeHealth" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavcanNodeMode" , value : tmp as u32 }) ? ; __struct . sub_mode = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime_sec) ; __tmp . put_u16_le (self . vendor_specific_status_code) ; __tmp . put_u8 (self . health as u8) ; __tmp . put_u8 (self . mode as u8) ; __tmp . put_u8 (self . sub_mode) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ONBOARD_COMPUTER_STATUS_DATA { pub time_usec : u64 , pub uptime : u32 , pub ram_usage : u32 , pub ram_total : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_type : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_usage : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub storage_total : [u32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_type : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_tx_rate : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_rx_rate : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_tx_max : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub link_rx_max : [u32 ; 6] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub fan_speed : [i16 ; 4] , pub mavtype : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cpu_cores : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cpu_combined : [u8 ; 10] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub gpu_cores : [u8 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub gpu_combined : [u8 ; 10] , pub temperature_board : i8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub temperature_core : [i8 ; 8] , } impl ONBOARD_COMPUTER_STATUS_DATA { pub const ENCODED_LEN : usize = 238usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime : 0_u32 , ram_usage : 0_u32 , ram_total : 0_u32 , storage_type : [0_u32 ; 4usize] , storage_usage : [0_u32 ; 4usize] , storage_total : [0_u32 ; 4usize] , link_type : [0_u32 ; 6usize] , link_tx_rate : [0_u32 ; 6usize] , link_rx_rate : [0_u32 ; 6usize] , link_tx_max : [0_u32 ; 6usize] , link_rx_max : [0_u32 ; 6usize] , fan_speed : [0_i16 ; 4usize] , mavtype : 0_u8 , cpu_cores : [0_u8 ; 8usize] , cpu_combined : [0_u8 ; 10usize] , gpu_cores : [0_u8 ; 4usize] , gpu_combined : [0_u8 ; 10usize] , temperature_board : 0_i8 , temperature_core : [0_i8 ; 8usize] , } ; } impl Default for ONBOARD_COMPUTER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ONBOARD_COMPUTER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 390u32 ; const NAME : & 'static str = "ONBOARD_COMPUTER_STATUS" ; const EXTRA_CRC : u8 = 156u8 ; const ENCODED_LEN : usize = 238usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime = buf . get_u32_le () ; __struct . ram_usage = buf . get_u32_le () ; __struct . ram_total = buf . get_u32_le () ; for v in & mut __struct . storage_type { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . storage_usage { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . storage_total { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_type { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_tx_rate { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_rx_rate { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_tx_max { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . link_rx_max { let val = buf . get_u32_le () ; * v = val ; } for v in & mut __struct . fan_speed { let val = buf . get_i16_le () ; * v = val ; } __struct . mavtype = buf . get_u8 () ; for v in & mut __struct . cpu_cores { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . cpu_combined { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . gpu_cores { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . gpu_combined { let val = buf . get_u8 () ; * v = val ; } __struct . temperature_board = buf . get_i8 () ; for v in & mut __struct . temperature_core { let val = buf . get_i8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime) ; __tmp . put_u32_le (self . ram_usage) ; __tmp . put_u32_le (self . ram_total) ; for val in & self . storage_type { __tmp . put_u32_le (* val) ; } for val in & self . storage_usage { __tmp . put_u32_le (* val) ; } for val in & self . storage_total { __tmp . put_u32_le (* val) ; } for val in & self . link_type { __tmp . put_u32_le (* val) ; } for val in & self . link_tx_rate { __tmp . put_u32_le (* val) ; } for val in & self . link_rx_rate { __tmp . put_u32_le (* val) ; } for val in & self . link_tx_max { __tmp . put_u32_le (* val) ; } for val in & self . link_rx_max { __tmp . put_u32_le (* val) ; } for val in & self . fan_speed { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . mavtype) ; for val in & self . cpu_cores { __tmp . put_u8 (* val) ; } for val in & self . cpu_combined { __tmp . put_u8 (* val) ; } for val in & self . gpu_cores { __tmp . put_u8 (* val) ; } for val in & self . gpu_combined { __tmp . put_u8 (* val) ; } __tmp . put_i8 (self . temperature_board) ; for val in & self . temperature_core { __tmp . put_i8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RAW_IMU_DATA { pub time_usec : u64 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl RAW_IMU_DATA { pub const ENCODED_LEN : usize = 26usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for RAW_IMU_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RAW_IMU_DATA { type Message = MavMessage ; const ID : u32 = 27u32 ; const NAME : & 'static str = "RAW_IMU" ; const EXTRA_CRC : u8 = 144u8 ; const ENCODED_LEN : usize = 26usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { pub time_boot_us : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub q_estimated_delay_us : u32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub v_estimated_delay_us : u32 , pub feed_forward_angular_velocity_z : f32 , pub estimator_status : EstimatorStatusFlags , pub target_system : u8 , pub target_component : u8 , pub landed_state : MavLandedState , } impl AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_us : 0_u64 , q : [0.0_f32 ; 4usize] , q_estimated_delay_us : 0_u32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , v_estimated_delay_us : 0_u32 , feed_forward_angular_velocity_z : 0.0_f32 , estimator_status : EstimatorStatusFlags :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , landed_state : MavLandedState :: DEFAULT , } ; } impl Default for AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA { type Message = MavMessage ; const ID : u32 = 286u32 ; const NAME : & 'static str = "AUTOPILOT_STATE_FOR_GIMBAL_DEVICE" ; const EXTRA_CRC : u8 = 210u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_us = buf . get_u64_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . q_estimated_delay_us = buf . get_u32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . v_estimated_delay_us = buf . get_u32_le () ; __struct . feed_forward_angular_velocity_z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . estimator_status = EstimatorStatusFlags :: from_bits (tmp & EstimatorStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EstimatorStatusFlags" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . landed_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavLandedState" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_boot_us) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_u32_le (self . q_estimated_delay_us) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_u32_le (self . v_estimated_delay_us) ; __tmp . put_f32_le (self . feed_forward_angular_velocity_z) ; __tmp . put_u16_le (self . estimator_status . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . landed_state as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MANUAL_CONTROL_DATA { pub x : i16 , pub y : i16 , pub z : i16 , pub r : i16 , pub buttons : u16 , pub target : u8 , } impl MANUAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 11usize ; pub const DEFAULT : Self = Self { x : 0_i16 , y : 0_i16 , z : 0_i16 , r : 0_i16 , buttons : 0_u16 , target : 0_u8 , } ; } impl Default for MANUAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MANUAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 69u32 ; const NAME : & 'static str = "MANUAL_CONTROL" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 11usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . x = buf . get_i16_le () ; __struct . y = buf . get_i16_le () ; __struct . z = buf . get_i16_le () ; __struct . r = buf . get_i16_le () ; __struct . buttons = buf . get_u16_le () ; __struct . target = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . x) ; __tmp . put_i16_le (self . y) ; __tmp . put_i16_le (self . z) ; __tmp . put_i16_le (self . r) ; __tmp . put_u16_le (self . buttons) ; __tmp . put_u8 (self . target) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SERVO_OUTPUT_RAW_DATA { pub time_usec : u32 , pub servo1_raw : u16 , pub servo2_raw : u16 , pub servo3_raw : u16 , pub servo4_raw : u16 , pub servo5_raw : u16 , pub servo6_raw : u16 , pub servo7_raw : u16 , pub servo8_raw : u16 , pub port : u8 , } impl SERVO_OUTPUT_RAW_DATA { pub const ENCODED_LEN : usize = 21usize ; pub const DEFAULT : Self = Self { time_usec : 0_u32 , servo1_raw : 0_u16 , servo2_raw : 0_u16 , servo3_raw : 0_u16 , servo4_raw : 0_u16 , servo5_raw : 0_u16 , servo6_raw : 0_u16 , servo7_raw : 0_u16 , servo8_raw : 0_u16 , port : 0_u8 , } ; } impl Default for SERVO_OUTPUT_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SERVO_OUTPUT_RAW_DATA { type Message = MavMessage ; const ID : u32 = 36u32 ; const NAME : & 'static str = "SERVO_OUTPUT_RAW" ; const EXTRA_CRC : u8 = 222u8 ; const ENCODED_LEN : usize = 21usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u32_le () ; __struct . servo1_raw = buf . get_u16_le () ; __struct . servo2_raw = buf . get_u16_le () ; __struct . servo3_raw = buf . get_u16_le () ; __struct . servo4_raw = buf . get_u16_le () ; __struct . servo5_raw = buf . get_u16_le () ; __struct . servo6_raw = buf . get_u16_le () ; __struct . servo7_raw = buf . get_u16_le () ; __struct . servo8_raw = buf . get_u16_le () ; __struct . port = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_usec) ; __tmp . put_u16_le (self . servo1_raw) ; __tmp . put_u16_le (self . servo2_raw) ; __tmp . put_u16_le (self . servo3_raw) ; __tmp . put_u16_le (self . servo4_raw) ; __tmp . put_u16_le (self . servo5_raw) ; __tmp . put_u16_le (self . servo6_raw) ; __tmp . put_u16_le (self . servo7_raw) ; __tmp . put_u16_le (self . servo8_raw) ; __tmp . put_u8 (self . port) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ATTITUDE_QUATERNION_DATA { pub time_boot_ms : u32 , pub q1 : f32 , pub q2 : f32 , pub q3 : f32 , pub q4 : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , } impl ATTITUDE_QUATERNION_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q1 : 0.0_f32 , q2 : 0.0_f32 , q3 : 0.0_f32 , q4 : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , } ; } impl Default for ATTITUDE_QUATERNION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ATTITUDE_QUATERNION_DATA { type Message = MavMessage ; const ID : u32 = 31u32 ; const NAME : & 'static str = "ATTITUDE_QUATERNION" ; const EXTRA_CRC : u8 = 246u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . q1 = buf . get_f32_le () ; __struct . q2 = buf . get_f32_le () ; __struct . q3 = buf . get_f32_le () ; __struct . q4 = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . q1) ; __tmp . put_f32_le (self . q2) ; __tmp . put_f32_le (self . q3) ; __tmp . put_f32_le (self . q4) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_ITEM_REACHED_DATA { pub seq : u16 , } impl MISSION_ITEM_REACHED_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , } ; } impl Default for MISSION_ITEM_REACHED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_ITEM_REACHED_DATA { type Message = MavMessage ; const ID : u32 = 46u32 ; const NAME : & 'static str = "MISSION_ITEM_REACHED" ; const EXTRA_CRC : u8 = 11u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DATA_TRANSMISSION_HANDSHAKE_DATA { pub size : u32 , pub width : u16 , pub height : u16 , pub packets : u16 , pub mavtype : MavlinkDataStreamType , pub payload : u8 , pub jpg_quality : u8 , } impl DATA_TRANSMISSION_HANDSHAKE_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { size : 0_u32 , width : 0_u16 , height : 0_u16 , packets : 0_u16 , mavtype : MavlinkDataStreamType :: DEFAULT , payload : 0_u8 , jpg_quality : 0_u8 , } ; } impl Default for DATA_TRANSMISSION_HANDSHAKE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DATA_TRANSMISSION_HANDSHAKE_DATA { type Message = MavMessage ; const ID : u32 = 130u32 ; const NAME : & 'static str = "DATA_TRANSMISSION_HANDSHAKE" ; const EXTRA_CRC : u8 = 29u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . size = buf . get_u32_le () ; __struct . width = buf . get_u16_le () ; __struct . height = buf . get_u16_le () ; __struct . packets = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavlinkDataStreamType" , value : tmp as u32 }) ? ; __struct . payload = buf . get_u8 () ; __struct . jpg_quality = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . size) ; __tmp . put_u16_le (self . width) ; __tmp . put_u16_le (self . height) ; __tmp . put_u16_le (self . packets) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . payload) ; __tmp . put_u8 (self . jpg_quality) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct STATUSTEXT_DATA { pub severity : MavSeverity , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub text : [u8 ; 50] , } impl STATUSTEXT_DATA { pub const ENCODED_LEN : usize = 51usize ; pub const DEFAULT : Self = Self { severity : MavSeverity :: DEFAULT , text : [0_u8 ; 50usize] , } ; } impl Default for STATUSTEXT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for STATUSTEXT_DATA { type Message = MavMessage ; const ID : u32 = 253u32 ; const NAME : & 'static str = "STATUSTEXT" ; const EXTRA_CRC : u8 = 83u8 ; const ENCODED_LEN : usize = 51usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u8 () ; __struct . severity = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavSeverity" , value : tmp as u32 }) ? ; for v in & mut __struct . text { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . severity as u8) ; for val in & self . text { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_DATA_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , pub length : u8 , pub first_message_offset : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 249] , } impl LOGGING_DATA_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , length : 0_u8 , first_message_offset : 0_u8 , data : [0_u8 ; 249usize] , } ; } impl Default for LOGGING_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_DATA_DATA { type Message = MavMessage ; const ID : u32 = 266u32 ; const NAME : & 'static str = "LOGGING_DATA" ; const EXTRA_CRC : u8 = 193u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . length = buf . get_u8 () ; __struct . first_message_offset = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . length) ; __tmp . put_u8 (self . first_message_offset) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_SCALED_DATA { pub time_boot_ms : u32 , pub chan1_scaled : i16 , pub chan2_scaled : i16 , pub chan3_scaled : i16 , pub chan4_scaled : i16 , pub chan5_scaled : i16 , pub chan6_scaled : i16 , pub chan7_scaled : i16 , pub chan8_scaled : i16 , pub port : u8 , pub rssi : u8 , } impl RC_CHANNELS_SCALED_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_scaled : 0_i16 , chan2_scaled : 0_i16 , chan3_scaled : 0_i16 , chan4_scaled : 0_i16 , chan5_scaled : 0_i16 , chan6_scaled : 0_i16 , chan7_scaled : 0_i16 , chan8_scaled : 0_i16 , port : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_SCALED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_SCALED_DATA { type Message = MavMessage ; const ID : u32 = 34u32 ; const NAME : & 'static str = "RC_CHANNELS_SCALED" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_scaled = buf . get_i16_le () ; __struct . chan2_scaled = buf . get_i16_le () ; __struct . chan3_scaled = buf . get_i16_le () ; __struct . chan4_scaled = buf . get_i16_le () ; __struct . chan5_scaled = buf . get_i16_le () ; __struct . chan6_scaled = buf . get_i16_le () ; __struct . chan7_scaled = buf . get_i16_le () ; __struct . chan8_scaled = buf . get_i16_le () ; __struct . port = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . chan1_scaled) ; __tmp . put_i16_le (self . chan2_scaled) ; __tmp . put_i16_le (self . chan3_scaled) ; __tmp . put_i16_le (self . chan4_scaled) ; __tmp . put_i16_le (self . chan5_scaled) ; __tmp . put_i16_le (self . chan6_scaled) ; __tmp . put_i16_le (self . chan7_scaled) ; __tmp . put_i16_le (self . chan8_scaled) ; __tmp . put_u8 (self . port) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MEMORY_VECT_DATA { pub address : u16 , pub ver : u8 , pub mavtype : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub value : [i8 ; 32] , } impl MEMORY_VECT_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { address : 0_u16 , ver : 0_u8 , mavtype : 0_u8 , value : [0_i8 ; 32usize] , } ; } impl Default for MEMORY_VECT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MEMORY_VECT_DATA { type Message = MavMessage ; const ID : u32 = 249u32 ; const NAME : & 'static str = "MEMORY_VECT" ; const EXTRA_CRC : u8 = 204u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . address = buf . get_u16_le () ; __struct . ver = buf . get_u8 () ; __struct . mavtype = buf . get_u8 () ; for v in & mut __struct . value { let val = buf . get_i8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . address) ; __tmp . put_u8 (self . ver) ; __tmp . put_u8 (self . mavtype) ; for val in & self . value { __tmp . put_i8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_ENTRY_DATA { pub time_utc : u32 , pub size : u32 , pub id : u16 , pub num_logs : u16 , pub last_log_num : u16 , } impl LOG_ENTRY_DATA { pub const ENCODED_LEN : usize = 14usize ; pub const DEFAULT : Self = Self { time_utc : 0_u32 , size : 0_u32 , id : 0_u16 , num_logs : 0_u16 , last_log_num : 0_u16 , } ; } impl Default for LOG_ENTRY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_ENTRY_DATA { type Message = MavMessage ; const ID : u32 = 118u32 ; const NAME : & 'static str = "LOG_ENTRY" ; const EXTRA_CRC : u8 = 56u8 ; const ENCODED_LEN : usize = 14usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_utc = buf . get_u32_le () ; __struct . size = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . num_logs = buf . get_u16_le () ; __struct . last_log_num = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_utc) ; __tmp . put_u32_le (self . size) ; __tmp . put_u16_le (self . id) ; __tmp . put_u16_le (self . num_logs) ; __tmp . put_u16_le (self . last_log_num) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_CONTROLS_DATA { pub time_usec : u64 , pub roll_ailerons : f32 , pub pitch_elevator : f32 , pub yaw_rudder : f32 , pub throttle : f32 , pub aux1 : f32 , pub aux2 : f32 , pub aux3 : f32 , pub aux4 : f32 , pub mode : MavMode , pub nav_mode : u8 , } impl HIL_CONTROLS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , roll_ailerons : 0.0_f32 , pitch_elevator : 0.0_f32 , yaw_rudder : 0.0_f32 , throttle : 0.0_f32 , aux1 : 0.0_f32 , aux2 : 0.0_f32 , aux3 : 0.0_f32 , aux4 : 0.0_f32 , mode : MavMode :: DEFAULT , nav_mode : 0_u8 , } ; } impl Default for HIL_CONTROLS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_CONTROLS_DATA { type Message = MavMessage ; const ID : u32 = 91u32 ; const NAME : & 'static str = "HIL_CONTROLS" ; const EXTRA_CRC : u8 = 63u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . roll_ailerons = buf . get_f32_le () ; __struct . pitch_elevator = buf . get_f32_le () ; __struct . yaw_rudder = buf . get_f32_le () ; __struct . throttle = buf . get_f32_le () ; __struct . aux1 = buf . get_f32_le () ; __struct . aux2 = buf . get_f32_le () ; __struct . aux3 = buf . get_f32_le () ; __struct . aux4 = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . mode = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavMode" , value : tmp as u32 }) ? ; __struct . nav_mode = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . roll_ailerons) ; __tmp . put_f32_le (self . pitch_elevator) ; __tmp . put_f32_le (self . yaw_rudder) ; __tmp . put_f32_le (self . throttle) ; __tmp . put_f32_le (self . aux1) ; __tmp . put_f32_le (self . aux2) ; __tmp . put_f32_le (self . aux3) ; __tmp . put_f32_le (self . aux4) ; __tmp . put_u8 (self . mode as u8) ; __tmp . put_u8 (self . nav_mode) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_REQUEST_DATA_DATA { pub ofs : u32 , pub count : u32 , pub id : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOG_REQUEST_DATA_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { ofs : 0_u32 , count : 0_u32 , id : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_REQUEST_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_REQUEST_DATA_DATA { type Message = MavMessage ; const ID : u32 = 119u32 ; const NAME : & 'static str = "LOG_REQUEST_DATA" ; const EXTRA_CRC : u8 = 116u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ofs = buf . get_u32_le () ; __struct . count = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ofs) ; __tmp . put_u32_le (self . count) ; __tmp . put_u16_le (self . id) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_REQUEST_DATA { pub mask : u64 , pub lat : i32 , pub lon : i32 , pub grid_spacing : u16 , } impl TERRAIN_REQUEST_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { mask : 0_u64 , lat : 0_i32 , lon : 0_i32 , grid_spacing : 0_u16 , } ; } impl Default for TERRAIN_REQUEST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_REQUEST_DATA { type Message = MavMessage ; const ID : u32 = 133u32 ; const NAME : & 'static str = "TERRAIN_REQUEST" ; const EXTRA_CRC : u8 = 6u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . mask = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . grid_spacing = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . mask) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . grid_spacing) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ISBD_LINK_STATUS_DATA { pub timestamp : u64 , pub last_heartbeat : u64 , pub failed_sessions : u16 , pub successful_sessions : u16 , pub signal_quality : u8 , pub ring_pending : u8 , pub tx_session_pending : u8 , pub rx_session_pending : u8 , } impl ISBD_LINK_STATUS_DATA { pub const ENCODED_LEN : usize = 24usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , last_heartbeat : 0_u64 , failed_sessions : 0_u16 , successful_sessions : 0_u16 , signal_quality : 0_u8 , ring_pending : 0_u8 , tx_session_pending : 0_u8 , rx_session_pending : 0_u8 , } ; } impl Default for ISBD_LINK_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ISBD_LINK_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 335u32 ; const NAME : & 'static str = "ISBD_LINK_STATUS" ; const EXTRA_CRC : u8 = 225u8 ; const ENCODED_LEN : usize = 24usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . last_heartbeat = buf . get_u64_le () ; __struct . failed_sessions = buf . get_u16_le () ; __struct . successful_sessions = buf . get_u16_le () ; __struct . signal_quality = buf . get_u8 () ; __struct . ring_pending = buf . get_u8 () ; __struct . tx_session_pending = buf . get_u8 () ; __struct . rx_session_pending = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u64_le (self . last_heartbeat) ; __tmp . put_u16_le (self . failed_sessions) ; __tmp . put_u16_le (self . successful_sessions) ; __tmp . put_u8 (self . signal_quality) ; __tmp . put_u8 (self . ring_pending) ; __tmp . put_u8 (self . tx_session_pending) ; __tmp . put_u8 (self . rx_session_pending) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_POSITION_TARGET_GLOBAL_INT_DATA { pub time_boot_ms : u32 , pub lat_int : i32 , pub lon_int : i32 , pub alt : f32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , pub afx : f32 , pub afy : f32 , pub afz : f32 , pub yaw : f32 , pub yaw_rate : f32 , pub type_mask : PositionTargetTypemask , pub target_system : u8 , pub target_component : u8 , pub coordinate_frame : MavFrame , } impl SET_POSITION_TARGET_GLOBAL_INT_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat_int : 0_i32 , lon_int : 0_i32 , alt : 0.0_f32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , afx : 0.0_f32 , afy : 0.0_f32 , afz : 0.0_f32 , yaw : 0.0_f32 , yaw_rate : 0.0_f32 , type_mask : PositionTargetTypemask :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , coordinate_frame : MavFrame :: DEFAULT , } ; } impl Default for SET_POSITION_TARGET_GLOBAL_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_POSITION_TARGET_GLOBAL_INT_DATA { type Message = MavMessage ; const ID : u32 = 86u32 ; const NAME : & 'static str = "SET_POSITION_TARGET_GLOBAL_INT" ; const EXTRA_CRC : u8 = 5u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat_int = buf . get_i32_le () ; __struct . lon_int = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; __struct . afx = buf . get_f32_le () ; __struct . afy = buf . get_f32_le () ; __struct . afz = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . type_mask = PositionTargetTypemask :: from_bits (tmp & PositionTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "PositionTargetTypemask" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . coordinate_frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat_int) ; __tmp . put_i32_le (self . lon_int) ; __tmp . put_f32_le (self . alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; __tmp . put_f32_le (self . afx) ; __tmp . put_f32_le (self . afy) ; __tmp . put_f32_le (self . afz) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u16_le (self . type_mask . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . coordinate_frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_SENSOR_DATA { pub time_usec : u64 , pub xacc : f32 , pub yacc : f32 , pub zacc : f32 , pub xgyro : f32 , pub ygyro : f32 , pub zgyro : f32 , pub xmag : f32 , pub ymag : f32 , pub zmag : f32 , pub abs_pressure : f32 , pub diff_pressure : f32 , pub pressure_alt : f32 , pub temperature : f32 , pub fields_updated : HilSensorUpdatedFlags , } impl HIL_SENSOR_DATA { pub const ENCODED_LEN : usize = 64usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , xacc : 0.0_f32 , yacc : 0.0_f32 , zacc : 0.0_f32 , xgyro : 0.0_f32 , ygyro : 0.0_f32 , zgyro : 0.0_f32 , xmag : 0.0_f32 , ymag : 0.0_f32 , zmag : 0.0_f32 , abs_pressure : 0.0_f32 , diff_pressure : 0.0_f32 , pressure_alt : 0.0_f32 , temperature : 0.0_f32 , fields_updated : HilSensorUpdatedFlags :: DEFAULT , } ; } impl Default for HIL_SENSOR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_SENSOR_DATA { type Message = MavMessage ; const ID : u32 = 107u32 ; const NAME : & 'static str = "HIL_SENSOR" ; const EXTRA_CRC : u8 = 108u8 ; const ENCODED_LEN : usize = 64usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . xacc = buf . get_f32_le () ; __struct . yacc = buf . get_f32_le () ; __struct . zacc = buf . get_f32_le () ; __struct . xgyro = buf . get_f32_le () ; __struct . ygyro = buf . get_f32_le () ; __struct . zgyro = buf . get_f32_le () ; __struct . xmag = buf . get_f32_le () ; __struct . ymag = buf . get_f32_le () ; __struct . zmag = buf . get_f32_le () ; __struct . abs_pressure = buf . get_f32_le () ; __struct . diff_pressure = buf . get_f32_le () ; __struct . pressure_alt = buf . get_f32_le () ; __struct . temperature = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . fields_updated = HilSensorUpdatedFlags :: from_bits (tmp & HilSensorUpdatedFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HilSensorUpdatedFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . xacc) ; __tmp . put_f32_le (self . yacc) ; __tmp . put_f32_le (self . zacc) ; __tmp . put_f32_le (self . xgyro) ; __tmp . put_f32_le (self . ygyro) ; __tmp . put_f32_le (self . zgyro) ; __tmp . put_f32_le (self . xmag) ; __tmp . put_f32_le (self . ymag) ; __tmp . put_f32_le (self . zmag) ; __tmp . put_f32_le (self . abs_pressure) ; __tmp . put_f32_le (self . diff_pressure) ; __tmp . put_f32_le (self . pressure_alt) ; __tmp . put_f32_le (self . temperature) ; __tmp . put_u32_le (self . fields_updated . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct V2_EXTENSION_DATA { pub message_type : u16 , pub target_network : u8 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub payload : [u8 ; 249] , } impl V2_EXTENSION_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { message_type : 0_u16 , target_network : 0_u8 , target_system : 0_u8 , target_component : 0_u8 , payload : [0_u8 ; 249usize] , } ; } impl Default for V2_EXTENSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for V2_EXTENSION_DATA { type Message = MavMessage ; const ID : u32 = 248u32 ; const NAME : & 'static str = "V2_EXTENSION" ; const EXTRA_CRC : u8 = 8u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . message_type = buf . get_u16_le () ; __struct . target_network = buf . get_u8 () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . payload { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . message_type) ; __tmp . put_u8 (self . target_network) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . payload { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_LONG_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub param5 : f32 , pub param6 : f32 , pub param7 : f32 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub confirmation : u8 , } impl COMMAND_LONG_DATA { pub const ENCODED_LEN : usize = 33usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , param5 : 0.0_f32 , param6 : 0.0_f32 , param7 : 0.0_f32 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , confirmation : 0_u8 , } ; } impl Default for COMMAND_LONG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_LONG_DATA { type Message = MavMessage ; const ID : u32 = 76u32 ; const NAME : & 'static str = "COMMAND_LONG" ; const EXTRA_CRC : u8 = 152u8 ; const ENCODED_LEN : usize = 33usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . param5 = buf . get_f32_le () ; __struct . param6 = buf . get_f32_le () ; __struct . param7 = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . confirmation = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_f32_le (self . param5) ; __tmp . put_f32_le (self . param6) ; __tmp . put_f32_le (self . param7) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . confirmation) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVIONIX_ADSB_OUT_CFG_DATA { pub ICAO : u32 , pub stallSpeed : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 9] , pub emitterType : AdsbEmitterType , pub aircraftSize : UavionixAdsbOutCfgAircraftSize , pub gpsOffsetLat : UavionixAdsbOutCfgGpsOffsetLat , pub gpsOffsetLon : UavionixAdsbOutCfgGpsOffsetLon , pub rfSelect : UavionixAdsbOutRfSelect , } impl UAVIONIX_ADSB_OUT_CFG_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { ICAO : 0_u32 , stallSpeed : 0_u16 , callsign : [0_u8 ; 9usize] , emitterType : AdsbEmitterType :: DEFAULT , aircraftSize : UavionixAdsbOutCfgAircraftSize :: DEFAULT , gpsOffsetLat : UavionixAdsbOutCfgGpsOffsetLat :: DEFAULT , gpsOffsetLon : UavionixAdsbOutCfgGpsOffsetLon :: DEFAULT , rfSelect : UavionixAdsbOutRfSelect :: DEFAULT , } ; } impl Default for UAVIONIX_ADSB_OUT_CFG_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVIONIX_ADSB_OUT_CFG_DATA { type Message = MavMessage ; const ID : u32 = 10001u32 ; const NAME : & 'static str = "UAVIONIX_ADSB_OUT_CFG" ; const EXTRA_CRC : u8 = 209u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ICAO = buf . get_u32_le () ; __struct . stallSpeed = buf . get_u16_le () ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . emitterType = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AdsbEmitterType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . aircraftSize = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutCfgAircraftSize" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . gpsOffsetLat = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutCfgGpsOffsetLat" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . gpsOffsetLon = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UavionixAdsbOutCfgGpsOffsetLon" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . rfSelect = UavionixAdsbOutRfSelect :: from_bits (tmp & UavionixAdsbOutRfSelect :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UavionixAdsbOutRfSelect" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ICAO) ; __tmp . put_u16_le (self . stallSpeed) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . emitterType as u8) ; __tmp . put_u8 (self . aircraftSize as u8) ; __tmp . put_u8 (self . gpsOffsetLat as u8) ; __tmp . put_u8 (self . gpsOffsetLon as u8) ; __tmp . put_u8 (self . rfSelect . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct ESTIMATOR_STATUS_DATA { pub time_usec : u64 , pub vel_ratio : f32 , pub pos_horiz_ratio : f32 , pub pos_vert_ratio : f32 , pub mag_ratio : f32 , pub hagl_ratio : f32 , pub tas_ratio : f32 , pub pos_horiz_accuracy : f32 , pub pos_vert_accuracy : f32 , pub flags : EstimatorStatusFlags , } impl ESTIMATOR_STATUS_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , vel_ratio : 0.0_f32 , pos_horiz_ratio : 0.0_f32 , pos_vert_ratio : 0.0_f32 , mag_ratio : 0.0_f32 , hagl_ratio : 0.0_f32 , tas_ratio : 0.0_f32 , pos_horiz_accuracy : 0.0_f32 , pos_vert_accuracy : 0.0_f32 , flags : EstimatorStatusFlags :: DEFAULT , } ; } impl Default for ESTIMATOR_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for ESTIMATOR_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 230u32 ; const NAME : & 'static str = "ESTIMATOR_STATUS" ; const EXTRA_CRC : u8 = 163u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . vel_ratio = buf . get_f32_le () ; __struct . pos_horiz_ratio = buf . get_f32_le () ; __struct . pos_vert_ratio = buf . get_f32_le () ; __struct . mag_ratio = buf . get_f32_le () ; __struct . hagl_ratio = buf . get_f32_le () ; __struct . tas_ratio = buf . get_f32_le () ; __struct . pos_horiz_accuracy = buf . get_f32_le () ; __struct . pos_vert_accuracy = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . flags = EstimatorStatusFlags :: from_bits (tmp & EstimatorStatusFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "EstimatorStatusFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . vel_ratio) ; __tmp . put_f32_le (self . pos_horiz_ratio) ; __tmp . put_f32_le (self . pos_vert_ratio) ; __tmp . put_f32_le (self . mag_ratio) ; __tmp . put_f32_le (self . hagl_ratio) ; __tmp . put_f32_le (self . tas_ratio) ; __tmp . put_f32_le (self . pos_horiz_accuracy) ; __tmp . put_f32_le (self . pos_vert_accuracy) ; __tmp . put_u16_le (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIGH_LATENCY2_DATA { pub timestamp : u32 , pub latitude : i32 , pub longitude : i32 , pub custom_mode : u16 , pub altitude : i16 , pub target_altitude : i16 , pub target_distance : u16 , pub wp_num : u16 , pub failure_flags : HlFailureFlag , pub mavtype : MavType , pub autopilot : MavAutopilot , pub heading : u8 , pub target_heading : u8 , pub throttle : u8 , pub airspeed : u8 , pub airspeed_sp : u8 , pub groundspeed : u8 , pub windspeed : u8 , pub wind_heading : u8 , pub eph : u8 , pub epv : u8 , pub temperature_air : i8 , pub climb_rate : i8 , pub battery : i8 , pub custom0 : i8 , pub custom1 : i8 , pub custom2 : i8 , } impl HIGH_LATENCY2_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { timestamp : 0_u32 , latitude : 0_i32 , longitude : 0_i32 , custom_mode : 0_u16 , altitude : 0_i16 , target_altitude : 0_i16 , target_distance : 0_u16 , wp_num : 0_u16 , failure_flags : HlFailureFlag :: DEFAULT , mavtype : MavType :: DEFAULT , autopilot : MavAutopilot :: DEFAULT , heading : 0_u8 , target_heading : 0_u8 , throttle : 0_u8 , airspeed : 0_u8 , airspeed_sp : 0_u8 , groundspeed : 0_u8 , windspeed : 0_u8 , wind_heading : 0_u8 , eph : 0_u8 , epv : 0_u8 , temperature_air : 0_i8 , climb_rate : 0_i8 , battery : 0_i8 , custom0 : 0_i8 , custom1 : 0_i8 , custom2 : 0_i8 , } ; } impl Default for HIGH_LATENCY2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIGH_LATENCY2_DATA { type Message = MavMessage ; const ID : u32 = 235u32 ; const NAME : & 'static str = "HIGH_LATENCY2" ; const EXTRA_CRC : u8 = 179u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u32_le () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . custom_mode = buf . get_u16_le () ; __struct . altitude = buf . get_i16_le () ; __struct . target_altitude = buf . get_i16_le () ; __struct . target_distance = buf . get_u16_le () ; __struct . wp_num = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . failure_flags = HlFailureFlag :: from_bits (tmp & HlFailureFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "HlFailureFlag" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . autopilot = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavAutopilot" , value : tmp as u32 }) ? ; __struct . heading = buf . get_u8 () ; __struct . target_heading = buf . get_u8 () ; __struct . throttle = buf . get_u8 () ; __struct . airspeed = buf . get_u8 () ; __struct . airspeed_sp = buf . get_u8 () ; __struct . groundspeed = buf . get_u8 () ; __struct . windspeed = buf . get_u8 () ; __struct . wind_heading = buf . get_u8 () ; __struct . eph = buf . get_u8 () ; __struct . epv = buf . get_u8 () ; __struct . temperature_air = buf . get_i8 () ; __struct . climb_rate = buf . get_i8 () ; __struct . battery = buf . get_i8 () ; __struct . custom0 = buf . get_i8 () ; __struct . custom1 = buf . get_i8 () ; __struct . custom2 = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . timestamp) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_u16_le (self . custom_mode) ; __tmp . put_i16_le (self . altitude) ; __tmp . put_i16_le (self . target_altitude) ; __tmp . put_u16_le (self . target_distance) ; __tmp . put_u16_le (self . wp_num) ; __tmp . put_u16_le (self . failure_flags . bits ()) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . autopilot as u8) ; __tmp . put_u8 (self . heading) ; __tmp . put_u8 (self . target_heading) ; __tmp . put_u8 (self . throttle) ; __tmp . put_u8 (self . airspeed) ; __tmp . put_u8 (self . airspeed_sp) ; __tmp . put_u8 (self . groundspeed) ; __tmp . put_u8 (self . windspeed) ; __tmp . put_u8 (self . wind_heading) ; __tmp . put_u8 (self . eph) ; __tmp . put_u8 (self . epv) ; __tmp . put_i8 (self . temperature_air) ; __tmp . put_i8 (self . climb_rate) ; __tmp . put_i8 (self . battery) ; __tmp . put_i8 (self . custom0) ; __tmp . put_i8 (self . custom1) ; __tmp . put_i8 (self . custom2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AUTOPILOT_VERSION_DATA { pub capabilities : MavProtocolCapability , pub uid : u64 , pub flight_sw_version : u32 , pub middleware_sw_version : u32 , pub os_sw_version : u32 , pub board_version : u32 , pub vendor_id : u16 , pub product_id : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub flight_custom_version : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub middleware_custom_version : [u8 ; 8] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub os_custom_version : [u8 ; 8] , } impl AUTOPILOT_VERSION_DATA { pub const ENCODED_LEN : usize = 60usize ; pub const DEFAULT : Self = Self { capabilities : MavProtocolCapability :: DEFAULT , uid : 0_u64 , flight_sw_version : 0_u32 , middleware_sw_version : 0_u32 , os_sw_version : 0_u32 , board_version : 0_u32 , vendor_id : 0_u16 , product_id : 0_u16 , flight_custom_version : [0_u8 ; 8usize] , middleware_custom_version : [0_u8 ; 8usize] , os_custom_version : [0_u8 ; 8usize] , } ; } impl Default for AUTOPILOT_VERSION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AUTOPILOT_VERSION_DATA { type Message = MavMessage ; const ID : u32 = 148u32 ; const NAME : & 'static str = "AUTOPILOT_VERSION" ; const EXTRA_CRC : u8 = 178u8 ; const ENCODED_LEN : usize = 60usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u64_le () ; __struct . capabilities = MavProtocolCapability :: from_bits (tmp & MavProtocolCapability :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavProtocolCapability" , value : tmp as u32 }) ? ; __struct . uid = buf . get_u64_le () ; __struct . flight_sw_version = buf . get_u32_le () ; __struct . middleware_sw_version = buf . get_u32_le () ; __struct . os_sw_version = buf . get_u32_le () ; __struct . board_version = buf . get_u32_le () ; __struct . vendor_id = buf . get_u16_le () ; __struct . product_id = buf . get_u16_le () ; for v in & mut __struct . flight_custom_version { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . middleware_custom_version { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . os_custom_version { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . capabilities . bits ()) ; __tmp . put_u64_le (self . uid) ; __tmp . put_u32_le (self . flight_sw_version) ; __tmp . put_u32_le (self . middleware_sw_version) ; __tmp . put_u32_le (self . os_sw_version) ; __tmp . put_u32_le (self . board_version) ; __tmp . put_u16_le (self . vendor_id) ; __tmp . put_u16_le (self . product_id) ; for val in & self . flight_custom_version { __tmp . put_u8 (* val) ; } for val in & self . middleware_custom_version { __tmp . put_u8 (* val) ; } for val in & self . os_custom_version { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct DEBUG_VECT_DATA { pub time_usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 10] , } impl DEBUG_VECT_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , name : [0_u8 ; 10usize] , } ; } impl Default for DEBUG_VECT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for DEBUG_VECT_DATA { type Message = MavMessage ; const ID : u32 = 250u32 ; const NAME : & 'static str = "DEBUG_VECT" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMPONENT_INFORMATION_DATA { pub time_boot_ms : u32 , pub general_metadata_file_crc : u32 , pub peripherals_metadata_file_crc : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub general_metadata_uri : [u8 ; 100] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub peripherals_metadata_uri : [u8 ; 100] , } impl COMPONENT_INFORMATION_DATA { pub const ENCODED_LEN : usize = 212usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , general_metadata_file_crc : 0_u32 , peripherals_metadata_file_crc : 0_u32 , general_metadata_uri : [0_u8 ; 100usize] , peripherals_metadata_uri : [0_u8 ; 100usize] , } ; } impl Default for COMPONENT_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMPONENT_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 395u32 ; const NAME : & 'static str = "COMPONENT_INFORMATION" ; const EXTRA_CRC : u8 = 0u8 ; const ENCODED_LEN : usize = 212usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . general_metadata_file_crc = buf . get_u32_le () ; __struct . peripherals_metadata_file_crc = buf . get_u32_le () ; for v in & mut __struct . general_metadata_uri { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . peripherals_metadata_uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . general_metadata_file_crc) ; __tmp . put_u32_le (self . peripherals_metadata_file_crc) ; for val in & self . general_metadata_uri { __tmp . put_u8 (* val) ; } for val in & self . peripherals_metadata_uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_MAP_RC_DATA { pub param_value0 : f32 , pub scale : f32 , pub param_value_min : f32 , pub param_value_max : f32 , pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , pub parameter_rc_channel_index : u8 , } impl PARAM_MAP_RC_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { param_value0 : 0.0_f32 , scale : 0.0_f32 , param_value_min : 0.0_f32 , param_value_max : 0.0_f32 , param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , parameter_rc_channel_index : 0_u8 , } ; } impl Default for PARAM_MAP_RC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_MAP_RC_DATA { type Message = MavMessage ; const ID : u32 = 50u32 ; const NAME : & 'static str = "PARAM_MAP_RC" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_value0 = buf . get_f32_le () ; __struct . scale = buf . get_f32_le () ; __struct . param_value_min = buf . get_f32_le () ; __struct . param_value_max = buf . get_f32_le () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } __struct . parameter_rc_channel_index = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param_value0) ; __tmp . put_f32_le (self . scale) ; __tmp . put_f32_le (self . param_value_min) ; __tmp . put_f32_le (self . param_value_max) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . parameter_rc_channel_index) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_INFORMATION_DATA { pub time_boot_ms : u32 , pub firmware_version : u32 , pub focal_length : f32 , pub sensor_size_h : f32 , pub sensor_size_v : f32 , pub flags : CameraCapFlags , pub resolution_h : u16 , pub resolution_v : u16 , pub cam_definition_version : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vendor_name : [u8 ; 32] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub model_name : [u8 ; 32] , pub lens_id : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub cam_definition_uri : [u8 ; 140] , } impl CAMERA_INFORMATION_DATA { pub const ENCODED_LEN : usize = 235usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , firmware_version : 0_u32 , focal_length : 0.0_f32 , sensor_size_h : 0.0_f32 , sensor_size_v : 0.0_f32 , flags : CameraCapFlags :: DEFAULT , resolution_h : 0_u16 , resolution_v : 0_u16 , cam_definition_version : 0_u16 , vendor_name : [0_u8 ; 32usize] , model_name : [0_u8 ; 32usize] , lens_id : 0_u8 , cam_definition_uri : [0_u8 ; 140usize] , } ; } impl Default for CAMERA_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 259u32 ; const NAME : & 'static str = "CAMERA_INFORMATION" ; const EXTRA_CRC : u8 = 92u8 ; const ENCODED_LEN : usize = 235usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . firmware_version = buf . get_u32_le () ; __struct . focal_length = buf . get_f32_le () ; __struct . sensor_size_h = buf . get_f32_le () ; __struct . sensor_size_v = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . flags = CameraCapFlags :: from_bits (tmp & CameraCapFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "CameraCapFlags" , value : tmp as u32 }) ? ; __struct . resolution_h = buf . get_u16_le () ; __struct . resolution_v = buf . get_u16_le () ; __struct . cam_definition_version = buf . get_u16_le () ; for v in & mut __struct . vendor_name { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . model_name { let val = buf . get_u8 () ; * v = val ; } __struct . lens_id = buf . get_u8 () ; for v in & mut __struct . cam_definition_uri { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . firmware_version) ; __tmp . put_f32_le (self . focal_length) ; __tmp . put_f32_le (self . sensor_size_h) ; __tmp . put_f32_le (self . sensor_size_v) ; __tmp . put_u32_le (self . flags . bits ()) ; __tmp . put_u16_le (self . resolution_h) ; __tmp . put_u16_le (self . resolution_v) ; __tmp . put_u16_le (self . cam_definition_version) ; for val in & self . vendor_name { __tmp . put_u8 (* val) ; } for val in & self . model_name { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . lens_id) ; for val in & self . cam_definition_uri { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VIBRATION_DATA { pub time_usec : u64 , pub vibration_x : f32 , pub vibration_y : f32 , pub vibration_z : f32 , pub clipping_0 : u32 , pub clipping_1 : u32 , pub clipping_2 : u32 , } impl VIBRATION_DATA { pub const ENCODED_LEN : usize = 32usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , vibration_x : 0.0_f32 , vibration_y : 0.0_f32 , vibration_z : 0.0_f32 , clipping_0 : 0_u32 , clipping_1 : 0_u32 , clipping_2 : 0_u32 , } ; } impl Default for VIBRATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VIBRATION_DATA { type Message = MavMessage ; const ID : u32 = 241u32 ; const NAME : & 'static str = "VIBRATION" ; const EXTRA_CRC : u8 = 90u8 ; const ENCODED_LEN : usize = 32usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . vibration_x = buf . get_f32_le () ; __struct . vibration_y = buf . get_f32_le () ; __struct . vibration_z = buf . get_f32_le () ; __struct . clipping_0 = buf . get_u32_le () ; __struct . clipping_1 = buf . get_u32_le () ; __struct . clipping_2 = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . vibration_x) ; __tmp . put_f32_le (self . vibration_y) ; __tmp . put_f32_le (self . vibration_z) ; __tmp . put_u32_le (self . clipping_0) ; __tmp . put_u32_le (self . clipping_1) ; __tmp . put_u32_le (self . clipping_2) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OBSTACLE_DISTANCE_DATA { pub time_usec : u64 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub distances : [u16 ; 72] , pub min_distance : u16 , pub max_distance : u16 , pub sensor_type : MavDistanceSensor , pub increment : u8 , } impl OBSTACLE_DISTANCE_DATA { pub const ENCODED_LEN : usize = 158usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , distances : [0_u16 ; 72usize] , min_distance : 0_u16 , max_distance : 0_u16 , sensor_type : MavDistanceSensor :: DEFAULT , increment : 0_u8 , } ; } impl Default for OBSTACLE_DISTANCE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OBSTACLE_DISTANCE_DATA { type Message = MavMessage ; const ID : u32 = 330u32 ; const NAME : & 'static str = "OBSTACLE_DISTANCE" ; const EXTRA_CRC : u8 = 23u8 ; const ENCODED_LEN : usize = 158usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; for v in & mut __struct . distances { let val = buf . get_u16_le () ; * v = val ; } __struct . min_distance = buf . get_u16_le () ; __struct . max_distance = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . sensor_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavDistanceSensor" , value : tmp as u32 }) ? ; __struct . increment = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; for val in & self . distances { __tmp . put_u16_le (* val) ; } __tmp . put_u16_le (self . min_distance) ; __tmp . put_u16_le (self . max_distance) ; __tmp . put_u8 (self . sensor_type as u8) ; __tmp . put_u8 (self . increment) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_RAW_DATA { pub time_boot_ms : u32 , pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub port : u8 , pub rssi : u8 , } impl RC_CHANNELS_RAW_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , port : 0_u8 , rssi : 0_u8 , } ; } impl Default for RC_CHANNELS_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_RAW_DATA { type Message = MavMessage ; const ID : u32 = 35u32 ; const NAME : & 'static str = "RC_CHANNELS_RAW" ; const EXTRA_CRC : u8 = 244u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . port = buf . get_u8 () ; __struct . rssi = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u8 (self . port) ; __tmp . put_u8 (self . rssi) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UAVCAN_NODE_INFO_DATA { pub time_usec : u64 , pub uptime_sec : u32 , pub sw_vcs_commit : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 80] , pub hw_version_major : u8 , pub hw_version_minor : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub hw_unique_id : [u8 ; 16] , pub sw_version_major : u8 , pub sw_version_minor : u8 , } impl UAVCAN_NODE_INFO_DATA { pub const ENCODED_LEN : usize = 116usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , uptime_sec : 0_u32 , sw_vcs_commit : 0_u32 , name : [0_u8 ; 80usize] , hw_version_major : 0_u8 , hw_version_minor : 0_u8 , hw_unique_id : [0_u8 ; 16usize] , sw_version_major : 0_u8 , sw_version_minor : 0_u8 , } ; } impl Default for UAVCAN_NODE_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UAVCAN_NODE_INFO_DATA { type Message = MavMessage ; const ID : u32 = 311u32 ; const NAME : & 'static str = "UAVCAN_NODE_INFO" ; const EXTRA_CRC : u8 = 95u8 ; const ENCODED_LEN : usize = 116usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . uptime_sec = buf . get_u32_le () ; __struct . sw_vcs_commit = buf . get_u32_le () ; for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } __struct . hw_version_major = buf . get_u8 () ; __struct . hw_version_minor = buf . get_u8 () ; for v in & mut __struct . hw_unique_id { let val = buf . get_u8 () ; * v = val ; } __struct . sw_version_major = buf . get_u8 () ; __struct . sw_version_minor = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_u32_le (self . uptime_sec) ; __tmp . put_u32_le (self . sw_vcs_commit) ; for val in & self . name { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . hw_version_major) ; __tmp . put_u8 (self . hw_version_minor) ; for val in & self . hw_unique_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . sw_version_major) ; __tmp . put_u8 (self . sw_version_minor) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EVENT_DATA { pub id : u32 , pub event_time_boot_ms : u32 , pub sequence : u16 , pub destination_component : u8 , pub destination_system : u8 , pub log_levels : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub arguments : [u8 ; 40] , } impl EVENT_DATA { pub const ENCODED_LEN : usize = 53usize ; pub const DEFAULT : Self = Self { id : 0_u32 , event_time_boot_ms : 0_u32 , sequence : 0_u16 , destination_component : 0_u8 , destination_system : 0_u8 , log_levels : 0_u8 , arguments : [0_u8 ; 40usize] , } ; } impl Default for EVENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EVENT_DATA { type Message = MavMessage ; const ID : u32 = 410u32 ; const NAME : & 'static str = "EVENT" ; const EXTRA_CRC : u8 = 160u8 ; const ENCODED_LEN : usize = 53usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . event_time_boot_ms = buf . get_u32_le () ; __struct . sequence = buf . get_u16_le () ; __struct . destination_component = buf . get_u8 () ; __struct . destination_system = buf . get_u8 () ; __struct . log_levels = buf . get_u8 () ; for v in & mut __struct . arguments { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_u32_le (self . event_time_boot_ms) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . destination_component) ; __tmp . put_u8 (self . destination_system) ; __tmp . put_u8 (self . log_levels) ; for val in & self . arguments { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FLIGHT_INFORMATION_DATA { pub arming_time_utc : u64 , pub takeoff_time_utc : u64 , pub flight_uuid : u64 , pub time_boot_ms : u32 , } impl FLIGHT_INFORMATION_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { arming_time_utc : 0_u64 , takeoff_time_utc : 0_u64 , flight_uuid : 0_u64 , time_boot_ms : 0_u32 , } ; } impl Default for FLIGHT_INFORMATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FLIGHT_INFORMATION_DATA { type Message = MavMessage ; const ID : u32 = 264u32 ; const NAME : & 'static str = "FLIGHT_INFORMATION" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . arming_time_utc = buf . get_u64_le () ; __struct . takeoff_time_utc = buf . get_u64_le () ; __struct . flight_uuid = buf . get_u64_le () ; __struct . time_boot_ms = buf . get_u32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . arming_time_utc) ; __tmp . put_u64_le (self . takeoff_time_utc) ; __tmp . put_u64_le (self . flight_uuid) ; __tmp . put_u32_le (self . time_boot_ms) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_SET_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , } impl PARAM_EXT_SET_DATA { pub const ENCODED_LEN : usize = 147usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , } ; } impl Default for PARAM_EXT_SET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_SET_DATA { type Message = MavMessage ; const ID : u32 = 323u32 ; const NAME : & 'static str = "PARAM_EXT_SET" ; const EXTRA_CRC : u8 = 78u8 ; const ENCODED_LEN : usize = 147usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAMERA_CAPTURE_STATUS_DATA { pub time_boot_ms : u32 , pub image_interval : f32 , pub recording_time_ms : u32 , pub available_capacity : f32 , pub image_status : u8 , pub video_status : u8 , } impl CAMERA_CAPTURE_STATUS_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , image_interval : 0.0_f32 , recording_time_ms : 0_u32 , available_capacity : 0.0_f32 , image_status : 0_u8 , video_status : 0_u8 , } ; } impl Default for CAMERA_CAPTURE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAMERA_CAPTURE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 262u32 ; const NAME : & 'static str = "CAMERA_CAPTURE_STATUS" ; const EXTRA_CRC : u8 = 12u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . image_interval = buf . get_f32_le () ; __struct . recording_time_ms = buf . get_u32_le () ; __struct . available_capacity = buf . get_f32_le () ; __struct . image_status = buf . get_u8 () ; __struct . video_status = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . image_interval) ; __tmp . put_u32_le (self . recording_time_ms) ; __tmp . put_f32_le (self . available_capacity) ; __tmp . put_u8 (self . image_status) ; __tmp . put_u8 (self . video_status) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LANDING_TARGET_DATA { pub time_usec : u64 , pub angle_x : f32 , pub angle_y : f32 , pub distance : f32 , pub size_x : f32 , pub size_y : f32 , pub target_num : u8 , pub frame : MavFrame , } impl LANDING_TARGET_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , angle_x : 0.0_f32 , angle_y : 0.0_f32 , distance : 0.0_f32 , size_x : 0.0_f32 , size_y : 0.0_f32 , target_num : 0_u8 , frame : MavFrame :: DEFAULT , } ; } impl Default for LANDING_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LANDING_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 149u32 ; const NAME : & 'static str = "LANDING_TARGET" ; const EXTRA_CRC : u8 = 200u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . angle_x = buf . get_f32_le () ; __struct . angle_y = buf . get_f32_le () ; __struct . distance = buf . get_f32_le () ; __struct . size_x = buf . get_f32_le () ; __struct . size_y = buf . get_f32_le () ; __struct . target_num = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . angle_x) ; __tmp . put_f32_le (self . angle_y) ; __tmp . put_f32_le (self . distance) ; __tmp . put_f32_le (self . size_x) ; __tmp . put_f32_le (self . size_y) ; __tmp . put_u8 (self . target_num) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TIMESYNC_DATA { pub tc1 : i64 , pub ts1 : i64 , } impl TIMESYNC_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { tc1 : 0_i64 , ts1 : 0_i64 , } ; } impl Default for TIMESYNC_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TIMESYNC_DATA { type Message = MavMessage ; const ID : u32 = 111u32 ; const NAME : & 'static str = "TIMESYNC" ; const EXTRA_CRC : u8 = 34u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . tc1 = buf . get_i64_le () ; __struct . ts1 = buf . get_i64_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i64_le (self . tc1) ; __tmp . put_i64_le (self . ts1) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct EFI_STATUS_DATA { pub ecu_index : f32 , pub rpm : f32 , pub fuel_consumed : f32 , pub fuel_flow : f32 , pub engine_load : f32 , pub throttle_position : f32 , pub spark_dwell_time : f32 , pub barometric_pressure : f32 , pub intake_manifold_pressure : f32 , pub intake_manifold_temperature : f32 , pub cylinder_head_temperature : f32 , pub ignition_timing : f32 , pub injection_time : f32 , pub exhaust_gas_temperature : f32 , pub throttle_out : f32 , pub pt_compensation : f32 , pub health : u8 , } impl EFI_STATUS_DATA { pub const ENCODED_LEN : usize = 65usize ; pub const DEFAULT : Self = Self { ecu_index : 0.0_f32 , rpm : 0.0_f32 , fuel_consumed : 0.0_f32 , fuel_flow : 0.0_f32 , engine_load : 0.0_f32 , throttle_position : 0.0_f32 , spark_dwell_time : 0.0_f32 , barometric_pressure : 0.0_f32 , intake_manifold_pressure : 0.0_f32 , intake_manifold_temperature : 0.0_f32 , cylinder_head_temperature : 0.0_f32 , ignition_timing : 0.0_f32 , injection_time : 0.0_f32 , exhaust_gas_temperature : 0.0_f32 , throttle_out : 0.0_f32 , pt_compensation : 0.0_f32 , health : 0_u8 , } ; } impl Default for EFI_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for EFI_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 225u32 ; const NAME : & 'static str = "EFI_STATUS" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 65usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ecu_index = buf . get_f32_le () ; __struct . rpm = buf . get_f32_le () ; __struct . fuel_consumed = buf . get_f32_le () ; __struct . fuel_flow = buf . get_f32_le () ; __struct . engine_load = buf . get_f32_le () ; __struct . throttle_position = buf . get_f32_le () ; __struct . spark_dwell_time = buf . get_f32_le () ; __struct . barometric_pressure = buf . get_f32_le () ; __struct . intake_manifold_pressure = buf . get_f32_le () ; __struct . intake_manifold_temperature = buf . get_f32_le () ; __struct . cylinder_head_temperature = buf . get_f32_le () ; __struct . ignition_timing = buf . get_f32_le () ; __struct . injection_time = buf . get_f32_le () ; __struct . exhaust_gas_temperature = buf . get_f32_le () ; __struct . throttle_out = buf . get_f32_le () ; __struct . pt_compensation = buf . get_f32_le () ; __struct . health = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . ecu_index) ; __tmp . put_f32_le (self . rpm) ; __tmp . put_f32_le (self . fuel_consumed) ; __tmp . put_f32_le (self . fuel_flow) ; __tmp . put_f32_le (self . engine_load) ; __tmp . put_f32_le (self . throttle_position) ; __tmp . put_f32_le (self . spark_dwell_time) ; __tmp . put_f32_le (self . barometric_pressure) ; __tmp . put_f32_le (self . intake_manifold_pressure) ; __tmp . put_f32_le (self . intake_manifold_temperature) ; __tmp . put_f32_le (self . cylinder_head_temperature) ; __tmp . put_f32_le (self . ignition_timing) ; __tmp . put_f32_le (self . injection_time) ; __tmp . put_f32_le (self . exhaust_gas_temperature) ; __tmp . put_f32_le (self . throttle_out) ; __tmp . put_f32_le (self . pt_compensation) ; __tmp . put_u8 (self . health) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct VISION_SPEED_ESTIMATE_DATA { pub usec : u64 , pub x : f32 , pub y : f32 , pub z : f32 , } impl VISION_SPEED_ESTIMATE_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { usec : 0_u64 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , } ; } impl Default for VISION_SPEED_ESTIMATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for VISION_SPEED_ESTIMATE_DATA { type Message = MavMessage ; const ID : u32 = 103u32 ; const NAME : & 'static str = "VISION_SPEED_ESTIMATE" ; const EXTRA_CRC : u8 = 208u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . usec = buf . get_u64_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . usec) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS2_RAW_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub dgps_age : u32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub cog : u16 , pub fix_type : GpsFixType , pub satellites_visible : u8 , pub dgps_numch : u8 , } impl GPS2_RAW_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , dgps_age : 0_u32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , cog : 0_u16 , fix_type : GpsFixType :: DEFAULT , satellites_visible : 0_u8 , dgps_numch : 0_u8 , } ; } impl Default for GPS2_RAW_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS2_RAW_DATA { type Message = MavMessage ; const ID : u32 = 124u32 ; const NAME : & 'static str = "GPS2_RAW" ; const EXTRA_CRC : u8 = 87u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . dgps_age = buf . get_u32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . cog = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . satellites_visible = buf . get_u8 () ; __struct . dgps_numch = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u32_le (self . dgps_age) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type as u8) ; __tmp . put_u8 (self . satellites_visible) ; __tmp . put_u8 (self . dgps_numch) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COMMAND_INT_DATA { pub param1 : f32 , pub param2 : f32 , pub param3 : f32 , pub param4 : f32 , pub x : i32 , pub y : i32 , pub z : f32 , pub command : MavCmd , pub target_system : u8 , pub target_component : u8 , pub frame : MavFrame , pub current : u8 , pub autocontinue : u8 , } impl COMMAND_INT_DATA { pub const ENCODED_LEN : usize = 35usize ; pub const DEFAULT : Self = Self { param1 : 0.0_f32 , param2 : 0.0_f32 , param3 : 0.0_f32 , param4 : 0.0_f32 , x : 0_i32 , y : 0_i32 , z : 0.0_f32 , command : MavCmd :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , frame : MavFrame :: DEFAULT , current : 0_u8 , autocontinue : 0_u8 , } ; } impl Default for COMMAND_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COMMAND_INT_DATA { type Message = MavMessage ; const ID : u32 = 75u32 ; const NAME : & 'static str = "COMMAND_INT" ; const EXTRA_CRC : u8 = 158u8 ; const ENCODED_LEN : usize = 35usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param1 = buf . get_f32_le () ; __struct . param2 = buf . get_f32_le () ; __struct . param3 = buf . get_f32_le () ; __struct . param4 = buf . get_f32_le () ; __struct . x = buf . get_i32_le () ; __struct . y = buf . get_i32_le () ; __struct . z = buf . get_f32_le () ; let tmp = buf . get_u16_le () ; __struct . command = FromPrimitive :: from_u16 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCmd" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; __struct . current = buf . get_u8 () ; __struct . autocontinue = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . param1) ; __tmp . put_f32_le (self . param2) ; __tmp . put_f32_le (self . param3) ; __tmp . put_f32_le (self . param4) ; __tmp . put_i32_le (self . x) ; __tmp . put_i32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_u16_le (self . command as u16) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . frame as u8) ; __tmp . put_u8 (self . current) ; __tmp . put_u8 (self . autocontinue) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_SET_CURRENT_DATA { pub seq : u16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_SET_CURRENT_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { seq : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_SET_CURRENT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_SET_CURRENT_DATA { type Message = MavMessage ; const ID : u32 = 41u32 ; const NAME : & 'static str = "MISSION_SET_CURRENT" ; const EXTRA_CRC : u8 = 28u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . seq = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . seq) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_ERASE_DATA { pub target_system : u8 , pub target_component : u8 , } impl LOG_ERASE_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOG_ERASE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_ERASE_DATA { type Message = MavMessage ; const ID : u32 = 121u32 ; const NAME : & 'static str = "LOG_ERASE" ; const EXTRA_CRC : u8 = 237u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { pub time_boot_ms : u32 , pub x : f32 , pub y : f32 , pub z : f32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA { type Message = MavMessage ; const ID : u32 = 89u32 ; const NAME : & 'static str = "LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET" ; const EXTRA_CRC : u8 = 231u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HIL_STATE_DATA { pub time_usec : u64 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub rollspeed : f32 , pub pitchspeed : f32 , pub yawspeed : f32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , } impl HIL_STATE_DATA { pub const ENCODED_LEN : usize = 56usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , rollspeed : 0.0_f32 , pitchspeed : 0.0_f32 , yawspeed : 0.0_f32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , } ; } impl Default for HIL_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HIL_STATE_DATA { type Message = MavMessage ; const ID : u32 = 90u32 ; const NAME : & 'static str = "HIL_STATE" ; const EXTRA_CRC : u8 = 183u8 ; const ENCODED_LEN : usize = 56usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . rollspeed = buf . get_f32_le () ; __struct . pitchspeed = buf . get_f32_le () ; __struct . yawspeed = buf . get_f32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . rollspeed) ; __tmp . put_f32_le (self . pitchspeed) ; __tmp . put_f32_le (self . yawspeed) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BUTTON_CHANGE_DATA { pub time_boot_ms : u32 , pub last_change_ms : u32 , pub state : u8 , } impl BUTTON_CHANGE_DATA { pub const ENCODED_LEN : usize = 9usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , last_change_ms : 0_u32 , state : 0_u8 , } ; } impl Default for BUTTON_CHANGE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BUTTON_CHANGE_DATA { type Message = MavMessage ; const ID : u32 = 257u32 ; const NAME : & 'static str = "BUTTON_CHANGE" ; const EXTRA_CRC : u8 = 131u8 ; const ENCODED_LEN : usize = 9usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . last_change_ms = buf . get_u32_le () ; __struct . state = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . last_change_ms) ; __tmp . put_u8 (self . state) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_RAW_INT_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub eph : u16 , pub epv : u16 , pub vel : u16 , pub cog : u16 , pub fix_type : GpsFixType , pub satellites_visible : u8 , } impl GPS_RAW_INT_DATA { pub const ENCODED_LEN : usize = 30usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , eph : 0_u16 , epv : 0_u16 , vel : 0_u16 , cog : 0_u16 , fix_type : GpsFixType :: DEFAULT , satellites_visible : 0_u8 , } ; } impl Default for GPS_RAW_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_RAW_INT_DATA { type Message = MavMessage ; const ID : u32 = 24u32 ; const NAME : & 'static str = "GPS_RAW_INT" ; const EXTRA_CRC : u8 = 24u8 ; const ENCODED_LEN : usize = 30usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . eph = buf . get_u16_le () ; __struct . epv = buf . get_u16_le () ; __struct . vel = buf . get_u16_le () ; __struct . cog = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . fix_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GpsFixType" , value : tmp as u32 }) ? ; __struct . satellites_visible = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_u16_le (self . eph) ; __tmp . put_u16_le (self . epv) ; __tmp . put_u16_le (self . vel) ; __tmp . put_u16_le (self . cog) ; __tmp . put_u8 (self . fix_type as u8) ; __tmp . put_u8 (self . satellites_visible) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct COLLISION_DATA { pub id : u32 , pub time_to_minimum_delta : f32 , pub altitude_minimum_delta : f32 , pub horizontal_minimum_delta : f32 , pub src : MavCollisionSrc , pub action : MavCollisionAction , pub threat_level : MavCollisionThreatLevel , } impl COLLISION_DATA { pub const ENCODED_LEN : usize = 19usize ; pub const DEFAULT : Self = Self { id : 0_u32 , time_to_minimum_delta : 0.0_f32 , altitude_minimum_delta : 0.0_f32 , horizontal_minimum_delta : 0.0_f32 , src : MavCollisionSrc :: DEFAULT , action : MavCollisionAction :: DEFAULT , threat_level : MavCollisionThreatLevel :: DEFAULT , } ; } impl Default for COLLISION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for COLLISION_DATA { type Message = MavMessage ; const ID : u32 = 247u32 ; const NAME : & 'static str = "COLLISION" ; const EXTRA_CRC : u8 = 81u8 ; const ENCODED_LEN : usize = 19usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . id = buf . get_u32_le () ; __struct . time_to_minimum_delta = buf . get_f32_le () ; __struct . altitude_minimum_delta = buf . get_f32_le () ; __struct . horizontal_minimum_delta = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . src = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionSrc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . action = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionAction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . threat_level = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavCollisionThreatLevel" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . id) ; __tmp . put_f32_le (self . time_to_minimum_delta) ; __tmp . put_f32_le (self . altitude_minimum_delta) ; __tmp . put_f32_le (self . horizontal_minimum_delta) ; __tmp . put_u8 (self . src as u8) ; __tmp . put_u8 (self . action as u8) ; __tmp . put_u8 (self . threat_level as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct AIS_VESSEL_DATA { pub MMSI : u32 , pub lat : i32 , pub lon : i32 , pub COG : u16 , pub heading : u16 , pub velocity : u16 , pub dimension_bow : u16 , pub dimension_stern : u16 , pub tslc : u16 , pub flags : AisFlags , pub turn_rate : i8 , pub navigational_status : AisNavStatus , pub mavtype : AisType , pub dimension_port : u8 , pub dimension_starboard : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub callsign : [u8 ; 7] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub name : [u8 ; 20] , } impl AIS_VESSEL_DATA { pub const ENCODED_LEN : usize = 58usize ; pub const DEFAULT : Self = Self { MMSI : 0_u32 , lat : 0_i32 , lon : 0_i32 , COG : 0_u16 , heading : 0_u16 , velocity : 0_u16 , dimension_bow : 0_u16 , dimension_stern : 0_u16 , tslc : 0_u16 , flags : AisFlags :: DEFAULT , turn_rate : 0_i8 , navigational_status : AisNavStatus :: DEFAULT , mavtype : AisType :: DEFAULT , dimension_port : 0_u8 , dimension_starboard : 0_u8 , callsign : [0_u8 ; 7usize] , name : [0_u8 ; 20usize] , } ; } impl Default for AIS_VESSEL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for AIS_VESSEL_DATA { type Message = MavMessage ; const ID : u32 = 301u32 ; const NAME : & 'static str = "AIS_VESSEL" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 58usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . MMSI = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . COG = buf . get_u16_le () ; __struct . heading = buf . get_u16_le () ; __struct . velocity = buf . get_u16_le () ; __struct . dimension_bow = buf . get_u16_le () ; __struct . dimension_stern = buf . get_u16_le () ; __struct . tslc = buf . get_u16_le () ; let tmp = buf . get_u16_le () ; __struct . flags = AisFlags :: from_bits (tmp & AisFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AisFlags" , value : tmp as u32 }) ? ; __struct . turn_rate = buf . get_i8 () ; let tmp = buf . get_u8 () ; __struct . navigational_status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AisNavStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "AisType" , value : tmp as u32 }) ? ; __struct . dimension_port = buf . get_u8 () ; __struct . dimension_starboard = buf . get_u8 () ; for v in & mut __struct . callsign { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . MMSI) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . COG) ; __tmp . put_u16_le (self . heading) ; __tmp . put_u16_le (self . velocity) ; __tmp . put_u16_le (self . dimension_bow) ; __tmp . put_u16_le (self . dimension_stern) ; __tmp . put_u16_le (self . tslc) ; __tmp . put_u16_le (self . flags . bits ()) ; __tmp . put_i8 (self . turn_rate) ; __tmp . put_u8 (self . navigational_status as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_u8 (self . dimension_port) ; __tmp . put_u8 (self . dimension_starboard) ; for val in & self . callsign { __tmp . put_u8 (* val) ; } for val in & self . name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct TERRAIN_DATA_DATA { pub lat : i32 , pub lon : i32 , pub grid_spacing : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [i16 ; 16] , pub gridbit : u8 , } impl TERRAIN_DATA_DATA { pub const ENCODED_LEN : usize = 43usize ; pub const DEFAULT : Self = Self { lat : 0_i32 , lon : 0_i32 , grid_spacing : 0_u16 , data : [0_i16 ; 16usize] , gridbit : 0_u8 , } ; } impl Default for TERRAIN_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for TERRAIN_DATA_DATA { type Message = MavMessage ; const ID : u32 = 134u32 ; const NAME : & 'static str = "TERRAIN_DATA" ; const EXTRA_CRC : u8 = 229u8 ; const ENCODED_LEN : usize = 43usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . grid_spacing = buf . get_u16_le () ; for v in & mut __struct . data { let val = buf . get_i16_le () ; * v = val ; } __struct . gridbit = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_u16_le (self . grid_spacing) ; for val in & self . data { __tmp . put_i16_le (* val) ; } __tmp . put_u8 (self . gridbit) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GPS_GLOBAL_ORIGIN_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , } impl GPS_GLOBAL_ORIGIN_DATA { pub const ENCODED_LEN : usize = 12usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , } ; } impl Default for GPS_GLOBAL_ORIGIN_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GPS_GLOBAL_ORIGIN_DATA { type Message = MavMessage ; const ID : u32 = 49u32 ; const NAME : & 'static str = "GPS_GLOBAL_ORIGIN" ; const EXTRA_CRC : u8 = 39u8 ; const ENCODED_LEN : usize = 12usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_LOCATION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude_barometric : f32 , pub altitude_geodetic : f32 , pub height : f32 , pub timestamp : f32 , pub direction : u16 , pub speed_horizontal : u16 , pub speed_vertical : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub status : MavOdidStatus , pub height_reference : MavOdidHeightRef , pub horizontal_accuracy : MavOdidHorAcc , pub vertical_accuracy : MavOdidVerAcc , pub barometer_accuracy : MavOdidVerAcc , pub speed_accuracy : MavOdidSpeedAcc , pub timestamp_accuracy : MavOdidTimeAcc , } impl OPEN_DRONE_ID_LOCATION_DATA { pub const ENCODED_LEN : usize = 59usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude_barometric : 0.0_f32 , altitude_geodetic : 0.0_f32 , height : 0.0_f32 , timestamp : 0.0_f32 , direction : 0_u16 , speed_horizontal : 0_u16 , speed_vertical : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , status : MavOdidStatus :: DEFAULT , height_reference : MavOdidHeightRef :: DEFAULT , horizontal_accuracy : MavOdidHorAcc :: DEFAULT , vertical_accuracy : MavOdidVerAcc :: DEFAULT , barometer_accuracy : MavOdidVerAcc :: DEFAULT , speed_accuracy : MavOdidSpeedAcc :: DEFAULT , timestamp_accuracy : MavOdidTimeAcc :: DEFAULT , } ; } impl Default for OPEN_DRONE_ID_LOCATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_LOCATION_DATA { type Message = MavMessage ; const ID : u32 = 12901u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_LOCATION" ; const EXTRA_CRC : u8 = 254u8 ; const ENCODED_LEN : usize = 59usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude_barometric = buf . get_f32_le () ; __struct . altitude_geodetic = buf . get_f32_le () ; __struct . height = buf . get_f32_le () ; __struct . timestamp = buf . get_f32_le () ; __struct . direction = buf . get_u16_le () ; __struct . speed_horizontal = buf . get_u16_le () ; __struct . speed_vertical = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . status = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidStatus" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . height_reference = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidHeightRef" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . horizontal_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidHorAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . vertical_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidVerAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . barometer_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidVerAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . speed_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidSpeedAcc" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . timestamp_accuracy = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidTimeAcc" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_f32_le (self . altitude_barometric) ; __tmp . put_f32_le (self . altitude_geodetic) ; __tmp . put_f32_le (self . height) ; __tmp . put_f32_le (self . timestamp) ; __tmp . put_u16_le (self . direction) ; __tmp . put_u16_le (self . speed_horizontal) ; __tmp . put_i16_le (self . speed_vertical) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . status as u8) ; __tmp . put_u8 (self . height_reference as u8) ; __tmp . put_u8 (self . horizontal_accuracy as u8) ; __tmp . put_u8 (self . vertical_accuracy as u8) ; __tmp . put_u8 (self . barometer_accuracy as u8) ; __tmp . put_u8 (self . speed_accuracy as u8) ; __tmp . put_u8 (self . timestamp_accuracy as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU2_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU2_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU2_DATA { type Message = MavMessage ; const ID : u32 = 116u32 ; const NAME : & 'static str = "SCALED_IMU2" ; const EXTRA_CRC : u8 = 76u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RESPONSE_EVENT_ERROR_DATA { pub sequence : u16 , pub sequence_oldest_available : u16 , pub target_system : u8 , pub target_component : u8 , pub reason : MavEventErrorReason , } impl RESPONSE_EVENT_ERROR_DATA { pub const ENCODED_LEN : usize = 7usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , sequence_oldest_available : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , reason : MavEventErrorReason :: DEFAULT , } ; } impl Default for RESPONSE_EVENT_ERROR_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RESPONSE_EVENT_ERROR_DATA { type Message = MavMessage ; const ID : u32 = 413u32 ; const NAME : & 'static str = "RESPONSE_EVENT_ERROR" ; const EXTRA_CRC : u8 = 77u8 ; const ENCODED_LEN : usize = 7usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . sequence_oldest_available = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . reason = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEventErrorReason" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u16_le (self . sequence_oldest_available) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . reason as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_STATUS_DATA { pub time_boot_ms : u32 , pub flags : GimbalManagerFlags , pub gimbal_device_id : u8 , pub primary_control_sysid : u8 , pub primary_control_compid : u8 , pub secondary_control_sysid : u8 , pub secondary_control_compid : u8 , } impl GIMBAL_MANAGER_STATUS_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , flags : GimbalManagerFlags :: DEFAULT , gimbal_device_id : 0_u8 , primary_control_sysid : 0_u8 , primary_control_compid : 0_u8 , secondary_control_sysid : 0_u8 , secondary_control_compid : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 281u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_STATUS" ; const EXTRA_CRC : u8 = 48u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . gimbal_device_id = buf . get_u8 () ; __struct . primary_control_sysid = buf . get_u8 () ; __struct . primary_control_compid = buf . get_u8 () ; __struct . secondary_control_sysid = buf . get_u8 () ; __struct . secondary_control_compid = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_u8 (self . gimbal_device_id) ; __tmp . put_u8 (self . primary_control_sysid) ; __tmp . put_u8 (self . primary_control_compid) ; __tmp . put_u8 (self . secondary_control_sysid) ; __tmp . put_u8 (self . secondary_control_compid) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SERIAL_CONTROL_DATA { pub baudrate : u32 , pub timeout : u16 , pub device : SerialControlDev , pub flags : SerialControlFlag , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 70] , } impl SERIAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 79usize ; pub const DEFAULT : Self = Self { baudrate : 0_u32 , timeout : 0_u16 , device : SerialControlDev :: DEFAULT , flags : SerialControlFlag :: DEFAULT , count : 0_u8 , data : [0_u8 ; 70usize] , } ; } impl Default for SERIAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SERIAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 126u32 ; const NAME : & 'static str = "SERIAL_CONTROL" ; const EXTRA_CRC : u8 = 220u8 ; const ENCODED_LEN : usize = 79usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . baudrate = buf . get_u32_le () ; __struct . timeout = buf . get_u16_le () ; let tmp = buf . get_u8 () ; __struct . device = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "SerialControlDev" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = SerialControlFlag :: from_bits (tmp & SerialControlFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "SerialControlFlag" , value : tmp as u32 }) ? ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . baudrate) ; __tmp . put_u16_le (self . timeout) ; __tmp . put_u8 (self . device as u8) ; __tmp . put_u8 (self . flags . bits ()) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct WINCH_STATUS_DATA { pub time_usec : u64 , pub line_length : f32 , pub speed : f32 , pub tension : f32 , pub voltage : f32 , pub current : f32 , pub status : MavWinchStatusFlag , pub temperature : i16 , } impl WINCH_STATUS_DATA { pub const ENCODED_LEN : usize = 34usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , line_length : 0.0_f32 , speed : 0.0_f32 , tension : 0.0_f32 , voltage : 0.0_f32 , current : 0.0_f32 , status : MavWinchStatusFlag :: DEFAULT , temperature : 0_i16 , } ; } impl Default for WINCH_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for WINCH_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 9005u32 ; const NAME : & 'static str = "WINCH_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 34usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . line_length = buf . get_f32_le () ; __struct . speed = buf . get_f32_le () ; __struct . tension = buf . get_f32_le () ; __struct . voltage = buf . get_f32_le () ; __struct . current = buf . get_f32_le () ; let tmp = buf . get_u32_le () ; __struct . status = MavWinchStatusFlag :: from_bits (tmp & MavWinchStatusFlag :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "MavWinchStatusFlag" , value : tmp as u32 }) ? ; __struct . temperature = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . line_length) ; __tmp . put_f32_le (self . speed) ; __tmp . put_f32_le (self . tension) ; __tmp . put_f32_le (self . voltage) ; __tmp . put_f32_le (self . current) ; __tmp . put_u32_le (self . status . bits ()) ; __tmp . put_i16_le (self . temperature) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_REQUEST_LIST_DATA { pub target_system : u8 , pub target_component : u8 , } impl PARAM_REQUEST_LIST_DATA { pub const ENCODED_LEN : usize = 2usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for PARAM_REQUEST_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_REQUEST_LIST_DATA { type Message = MavMessage ; const ID : u32 = 21u32 ; const NAME : & 'static str = "PARAM_REQUEST_LIST" ; const EXTRA_CRC : u8 = 159u8 ; const ENCODED_LEN : usize = 2usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_DATA_ACKED_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , pub length : u8 , pub first_message_offset : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 249] , } impl LOGGING_DATA_ACKED_DATA { pub const ENCODED_LEN : usize = 255usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , length : 0_u8 , first_message_offset : 0_u8 , data : [0_u8 ; 249usize] , } ; } impl Default for LOGGING_DATA_ACKED_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_DATA_ACKED_DATA { type Message = MavMessage ; const ID : u32 = 267u32 ; const NAME : & 'static str = "LOGGING_DATA_ACKED" ; const EXTRA_CRC : u8 = 35u8 ; const ENCODED_LEN : usize = 255usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . length = buf . get_u8 () ; __struct . first_message_offset = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . length) ; __tmp . put_u8 (self . first_message_offset) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_POSITION_INT_COV_DATA { pub time_usec : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub vx : f32 , pub vy : f32 , pub vz : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub covariance : [f32 ; 36] , pub estimator_type : MavEstimatorType , } impl GLOBAL_POSITION_INT_COV_DATA { pub const ENCODED_LEN : usize = 181usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , vx : 0.0_f32 , vy : 0.0_f32 , vz : 0.0_f32 , covariance : [0.0_f32 ; 36usize] , estimator_type : MavEstimatorType :: DEFAULT , } ; } impl Default for GLOBAL_POSITION_INT_COV_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_POSITION_INT_COV_DATA { type Message = MavMessage ; const ID : u32 = 63u32 ; const NAME : & 'static str = "GLOBAL_POSITION_INT_COV" ; const EXTRA_CRC : u8 = 119u8 ; const ENCODED_LEN : usize = 181usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . vx = buf . get_f32_le () ; __struct . vy = buf . get_f32_le () ; __struct . vz = buf . get_f32_le () ; for v in & mut __struct . covariance { let val = buf . get_f32_le () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . estimator_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavEstimatorType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_f32_le (self . vx) ; __tmp . put_f32_le (self . vy) ; __tmp . put_f32_le (self . vz) ; for val in & self . covariance { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . estimator_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOGGING_ACK_DATA { pub sequence : u16 , pub target_system : u8 , pub target_component : u8 , } impl LOGGING_ACK_DATA { pub const ENCODED_LEN : usize = 4usize ; pub const DEFAULT : Self = Self { sequence : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for LOGGING_ACK_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOGGING_ACK_DATA { type Message = MavMessage ; const ID : u32 = 268u32 ; const NAME : & 'static str = "LOGGING_ACK" ; const EXTRA_CRC : u8 = 14u8 ; const ENCODED_LEN : usize = 4usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . sequence = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . sequence) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LOG_DATA_DATA { pub ofs : u32 , pub id : u16 , pub count : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub data : [u8 ; 90] , } impl LOG_DATA_DATA { pub const ENCODED_LEN : usize = 97usize ; pub const DEFAULT : Self = Self { ofs : 0_u32 , id : 0_u16 , count : 0_u8 , data : [0_u8 ; 90usize] , } ; } impl Default for LOG_DATA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LOG_DATA_DATA { type Message = MavMessage ; const ID : u32 = 120u32 ; const NAME : & 'static str = "LOG_DATA" ; const EXTRA_CRC : u8 = 134u8 ; const ENCODED_LEN : usize = 97usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . ofs = buf . get_u32_le () ; __struct . id = buf . get_u16_le () ; __struct . count = buf . get_u8 () ; for v in & mut __struct . data { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . ofs) ; __tmp . put_u16_le (self . id) ; __tmp . put_u8 (self . count) ; for val in & self . data { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_VALUE_DATA { pub param_count : u16 , pub param_index : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_value : [u8 ; 128] , pub param_type : MavParamExtType , } impl PARAM_EXT_VALUE_DATA { pub const ENCODED_LEN : usize = 149usize ; pub const DEFAULT : Self = Self { param_count : 0_u16 , param_index : 0_u16 , param_id : [0_u8 ; 16usize] , param_value : [0_u8 ; 128usize] , param_type : MavParamExtType :: DEFAULT , } ; } impl Default for PARAM_EXT_VALUE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_VALUE_DATA { type Message = MavMessage ; const ID : u32 = 322u32 ; const NAME : & 'static str = "PARAM_EXT_VALUE" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 149usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_count = buf . get_u16_le () ; __struct . param_index = buf . get_u16_le () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . param_value { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . param_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavParamExtType" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . param_count) ; __tmp . put_u16_le (self . param_index) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } for val in & self . param_value { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . param_type as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PLAY_TUNE_V2_DATA { pub format : TuneFormat , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub tune : [u8 ; 248] , } impl PLAY_TUNE_V2_DATA { pub const ENCODED_LEN : usize = 254usize ; pub const DEFAULT : Self = Self { format : TuneFormat :: DEFAULT , target_system : 0_u8 , target_component : 0_u8 , tune : [0_u8 ; 248usize] , } ; } impl Default for PLAY_TUNE_V2_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PLAY_TUNE_V2_DATA { type Message = MavMessage ; const ID : u32 = 400u32 ; const NAME : & 'static str = "PLAY_TUNE_V2" ; const EXTRA_CRC : u8 = 110u8 ; const ENCODED_LEN : usize = 254usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . format = TuneFormat :: from_bits (tmp & TuneFormat :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "TuneFormat" , value : tmp as u32 }) ? ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . tune { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . format . bits ()) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . tune { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_GPS_GLOBAL_ORIGIN_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub target_system : u8 , } impl SET_GPS_GLOBAL_ORIGIN_DATA { pub const ENCODED_LEN : usize = 13usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , target_system : 0_u8 , } ; } impl Default for SET_GPS_GLOBAL_ORIGIN_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_GPS_GLOBAL_ORIGIN_DATA { type Message = MavMessage ; const ID : u32 = 48u32 ; const NAME : & 'static str = "SET_GPS_GLOBAL_ORIGIN" ; const EXTRA_CRC : u8 = 41u8 ; const ENCODED_LEN : usize = 13usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . target_system = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_u8 (self . target_system) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct FOLLOW_TARGET_DATA { pub timestamp : u64 , pub custom_state : u64 , pub lat : i32 , pub lon : i32 , pub alt : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub acc : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub attitude_q : [f32 ; 4] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub rates : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub position_cov : [f32 ; 3] , pub est_capabilities : u8 , } impl FOLLOW_TARGET_DATA { pub const ENCODED_LEN : usize = 93usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , custom_state : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0.0_f32 , vel : [0.0_f32 ; 3usize] , acc : [0.0_f32 ; 3usize] , attitude_q : [0.0_f32 ; 4usize] , rates : [0.0_f32 ; 3usize] , position_cov : [0.0_f32 ; 3usize] , est_capabilities : 0_u8 , } ; } impl Default for FOLLOW_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for FOLLOW_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 144u32 ; const NAME : & 'static str = "FOLLOW_TARGET" ; const EXTRA_CRC : u8 = 127u8 ; const ENCODED_LEN : usize = 93usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . custom_state = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_f32_le () ; for v in & mut __struct . vel { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . acc { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . attitude_q { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . rates { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . position_cov { let val = buf . get_f32_le () ; * v = val ; } __struct . est_capabilities = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u64_le (self . custom_state) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_f32_le (self . alt) ; for val in & self . vel { __tmp . put_f32_le (* val) ; } for val in & self . acc { __tmp . put_f32_le (* val) ; } for val in & self . attitude_q { __tmp . put_f32_le (* val) ; } for val in & self . rates { __tmp . put_f32_le (* val) ; } for val in & self . position_cov { __tmp . put_f32_le (* val) ; } __tmp . put_u8 (self . est_capabilities) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MANUAL_SETPOINT_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , pub thrust : f32 , pub mode_switch : u8 , pub manual_override_switch : u8 , } impl MANUAL_SETPOINT_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , thrust : 0.0_f32 , mode_switch : 0_u8 , manual_override_switch : 0_u8 , } ; } impl Default for MANUAL_SETPOINT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MANUAL_SETPOINT_DATA { type Message = MavMessage ; const ID : u32 = 81u32 ; const NAME : & 'static str = "MANUAL_SETPOINT" ; const EXTRA_CRC : u8 = 106u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; __struct . mode_switch = buf . get_u8 () ; __struct . manual_override_switch = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . mode_switch) ; __tmp . put_u8 (self . manual_override_switch) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct RC_CHANNELS_OVERRIDE_DATA { pub chan1_raw : u16 , pub chan2_raw : u16 , pub chan3_raw : u16 , pub chan4_raw : u16 , pub chan5_raw : u16 , pub chan6_raw : u16 , pub chan7_raw : u16 , pub chan8_raw : u16 , pub target_system : u8 , pub target_component : u8 , } impl RC_CHANNELS_OVERRIDE_DATA { pub const ENCODED_LEN : usize = 18usize ; pub const DEFAULT : Self = Self { chan1_raw : 0_u16 , chan2_raw : 0_u16 , chan3_raw : 0_u16 , chan4_raw : 0_u16 , chan5_raw : 0_u16 , chan6_raw : 0_u16 , chan7_raw : 0_u16 , chan8_raw : 0_u16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for RC_CHANNELS_OVERRIDE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for RC_CHANNELS_OVERRIDE_DATA { type Message = MavMessage ; const ID : u32 = 70u32 ; const NAME : & 'static str = "RC_CHANNELS_OVERRIDE" ; const EXTRA_CRC : u8 = 124u8 ; const ENCODED_LEN : usize = 18usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . chan1_raw = buf . get_u16_le () ; __struct . chan2_raw = buf . get_u16_le () ; __struct . chan3_raw = buf . get_u16_le () ; __struct . chan4_raw = buf . get_u16_le () ; __struct . chan5_raw = buf . get_u16_le () ; __struct . chan6_raw = buf . get_u16_le () ; __struct . chan7_raw = buf . get_u16_le () ; __struct . chan8_raw = buf . get_u16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u16_le (self . chan1_raw) ; __tmp . put_u16_le (self . chan2_raw) ; __tmp . put_u16_le (self . chan3_raw) ; __tmp . put_u16_le (self . chan4_raw) ; __tmp . put_u16_le (self . chan5_raw) ; __tmp . put_u16_le (self . chan6_raw) ; __tmp . put_u16_le (self . chan7_raw) ; __tmp . put_u16_le (self . chan8_raw) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct LINK_NODE_STATUS_DATA { pub timestamp : u64 , pub tx_rate : u32 , pub rx_rate : u32 , pub messages_sent : u32 , pub messages_received : u32 , pub messages_lost : u32 , pub rx_parse_err : u16 , pub tx_overflows : u16 , pub rx_overflows : u16 , pub tx_buf : u8 , pub rx_buf : u8 , } impl LINK_NODE_STATUS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { timestamp : 0_u64 , tx_rate : 0_u32 , rx_rate : 0_u32 , messages_sent : 0_u32 , messages_received : 0_u32 , messages_lost : 0_u32 , rx_parse_err : 0_u16 , tx_overflows : 0_u16 , rx_overflows : 0_u16 , tx_buf : 0_u8 , rx_buf : 0_u8 , } ; } impl Default for LINK_NODE_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for LINK_NODE_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 8u32 ; const NAME : & 'static str = "LINK_NODE_STATUS" ; const EXTRA_CRC : u8 = 117u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . timestamp = buf . get_u64_le () ; __struct . tx_rate = buf . get_u32_le () ; __struct . rx_rate = buf . get_u32_le () ; __struct . messages_sent = buf . get_u32_le () ; __struct . messages_received = buf . get_u32_le () ; __struct . messages_lost = buf . get_u32_le () ; __struct . rx_parse_err = buf . get_u16_le () ; __struct . tx_overflows = buf . get_u16_le () ; __struct . rx_overflows = buf . get_u16_le () ; __struct . tx_buf = buf . get_u8 () ; __struct . rx_buf = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . timestamp) ; __tmp . put_u32_le (self . tx_rate) ; __tmp . put_u32_le (self . rx_rate) ; __tmp . put_u32_le (self . messages_sent) ; __tmp . put_u32_le (self . messages_received) ; __tmp . put_u32_le (self . messages_lost) ; __tmp . put_u16_le (self . rx_parse_err) ; __tmp . put_u16_le (self . tx_overflows) ; __tmp . put_u16_le (self . rx_overflows) ; __tmp . put_u8 (self . tx_buf) ; __tmp . put_u8 (self . rx_buf) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GLOBAL_POSITION_INT_DATA { pub time_boot_ms : u32 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub hdg : u16 , } impl GLOBAL_POSITION_INT_DATA { pub const ENCODED_LEN : usize = 28usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , hdg : 0_u16 , } ; } impl Default for GLOBAL_POSITION_INT_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GLOBAL_POSITION_INT_DATA { type Message = MavMessage ; const ID : u32 = 33u32 ; const NAME : & 'static str = "GLOBAL_POSITION_INT" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 28usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . hdg = buf . get_u16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . hdg) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CAN_FILTER_MODIFY_DATA { # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub ids : [u16 ; 16] , pub target_system : u8 , pub target_component : u8 , pub bus : u8 , pub operation : CanFilterOp , pub num_ids : u8 , } impl CAN_FILTER_MODIFY_DATA { pub const ENCODED_LEN : usize = 37usize ; pub const DEFAULT : Self = Self { ids : [0_u16 ; 16usize] , target_system : 0_u8 , target_component : 0_u8 , bus : 0_u8 , operation : CanFilterOp :: DEFAULT , num_ids : 0_u8 , } ; } impl Default for CAN_FILTER_MODIFY_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CAN_FILTER_MODIFY_DATA { type Message = MavMessage ; const ID : u32 = 388u32 ; const NAME : & 'static str = "CAN_FILTER_MODIFY" ; const EXTRA_CRC : u8 = 8u8 ; const ENCODED_LEN : usize = 37usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; for v in & mut __struct . ids { let val = buf . get_u16_le () ; * v = val ; } __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . bus = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . operation = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "CanFilterOp" , value : tmp as u32 }) ? ; __struct . num_ids = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; for val in & self . ids { __tmp . put_u16_le (* val) ; } __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . bus) ; __tmp . put_u8 (self . operation as u8) ; __tmp . put_u8 (self . num_ids) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct PARAM_EXT_REQUEST_READ_DATA { pub param_index : i16 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub param_id : [u8 ; 16] , } impl PARAM_EXT_REQUEST_READ_DATA { pub const ENCODED_LEN : usize = 20usize ; pub const DEFAULT : Self = Self { param_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , param_id : [0_u8 ; 16usize] , } ; } impl Default for PARAM_EXT_REQUEST_READ_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for PARAM_EXT_REQUEST_READ_DATA { type Message = MavMessage ; const ID : u32 = 320u32 ; const NAME : & 'static str = "PARAM_EXT_REQUEST_READ" ; const EXTRA_CRC : u8 = 243u8 ; const ENCODED_LEN : usize = 20usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . param_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . param_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . param_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . param_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct UTM_GLOBAL_POSITION_DATA { pub time : u64 , pub lat : i32 , pub lon : i32 , pub alt : i32 , pub relative_alt : i32 , pub next_lat : i32 , pub next_lon : i32 , pub next_alt : i32 , pub vx : i16 , pub vy : i16 , pub vz : i16 , pub h_acc : u16 , pub v_acc : u16 , pub vel_acc : u16 , pub update_rate : u16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uas_id : [u8 ; 18] , pub flight_state : UtmFlightState , pub flags : UtmDataAvailFlags , } impl UTM_GLOBAL_POSITION_DATA { pub const ENCODED_LEN : usize = 70usize ; pub const DEFAULT : Self = Self { time : 0_u64 , lat : 0_i32 , lon : 0_i32 , alt : 0_i32 , relative_alt : 0_i32 , next_lat : 0_i32 , next_lon : 0_i32 , next_alt : 0_i32 , vx : 0_i16 , vy : 0_i16 , vz : 0_i16 , h_acc : 0_u16 , v_acc : 0_u16 , vel_acc : 0_u16 , update_rate : 0_u16 , uas_id : [0_u8 ; 18usize] , flight_state : UtmFlightState :: DEFAULT , flags : UtmDataAvailFlags :: DEFAULT , } ; } impl Default for UTM_GLOBAL_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for UTM_GLOBAL_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 340u32 ; const NAME : & 'static str = "UTM_GLOBAL_POSITION" ; const EXTRA_CRC : u8 = 99u8 ; const ENCODED_LEN : usize = 70usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time = buf . get_u64_le () ; __struct . lat = buf . get_i32_le () ; __struct . lon = buf . get_i32_le () ; __struct . alt = buf . get_i32_le () ; __struct . relative_alt = buf . get_i32_le () ; __struct . next_lat = buf . get_i32_le () ; __struct . next_lon = buf . get_i32_le () ; __struct . next_alt = buf . get_i32_le () ; __struct . vx = buf . get_i16_le () ; __struct . vy = buf . get_i16_le () ; __struct . vz = buf . get_i16_le () ; __struct . h_acc = buf . get_u16_le () ; __struct . v_acc = buf . get_u16_le () ; __struct . vel_acc = buf . get_u16_le () ; __struct . update_rate = buf . get_u16_le () ; for v in & mut __struct . uas_id { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . flight_state = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "UtmFlightState" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . flags = UtmDataAvailFlags :: from_bits (tmp & UtmDataAvailFlags :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "UtmDataAvailFlags" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time) ; __tmp . put_i32_le (self . lat) ; __tmp . put_i32_le (self . lon) ; __tmp . put_i32_le (self . alt) ; __tmp . put_i32_le (self . relative_alt) ; __tmp . put_i32_le (self . next_lat) ; __tmp . put_i32_le (self . next_lon) ; __tmp . put_i32_le (self . next_alt) ; __tmp . put_i16_le (self . vx) ; __tmp . put_i16_le (self . vy) ; __tmp . put_i16_le (self . vz) ; __tmp . put_u16_le (self . h_acc) ; __tmp . put_u16_le (self . v_acc) ; __tmp . put_u16_le (self . vel_acc) ; __tmp . put_u16_le (self . update_rate) ; for val in & self . uas_id { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . flight_state as u8) ; __tmp . put_u8 (self . flags . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct OPEN_DRONE_ID_BASIC_ID_DATA { pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub id_or_mac : [u8 ; 20] , pub id_type : MavOdidIdType , pub ua_type : MavOdidUaType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub uas_id : [u8 ; 20] , } impl OPEN_DRONE_ID_BASIC_ID_DATA { pub const ENCODED_LEN : usize = 44usize ; pub const DEFAULT : Self = Self { target_system : 0_u8 , target_component : 0_u8 , id_or_mac : [0_u8 ; 20usize] , id_type : MavOdidIdType :: DEFAULT , ua_type : MavOdidUaType :: DEFAULT , uas_id : [0_u8 ; 20usize] , } ; } impl Default for OPEN_DRONE_ID_BASIC_ID_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for OPEN_DRONE_ID_BASIC_ID_DATA { type Message = MavMessage ; const ID : u32 = 12900u32 ; const NAME : & 'static str = "OPEN_DRONE_ID_BASIC_ID" ; const EXTRA_CRC : u8 = 114u8 ; const ENCODED_LEN : usize = 44usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . id_or_mac { let val = buf . get_u8 () ; * v = val ; } let tmp = buf . get_u8 () ; __struct . id_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidIdType" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . ua_type = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavOdidUaType" , value : tmp as u32 }) ? ; for v in & mut __struct . uas_id { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . id_or_mac { __tmp . put_u8 (* val) ; } __tmp . put_u8 (self . id_type as u8) ; __tmp . put_u8 (self . ua_type as u8) ; for val in & self . uas_id { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SET_ATTITUDE_TARGET_DATA { pub time_boot_ms : u32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub body_roll_rate : f32 , pub body_pitch_rate : f32 , pub body_yaw_rate : f32 , pub thrust : f32 , pub target_system : u8 , pub target_component : u8 , pub type_mask : AttitudeTargetTypemask , } impl SET_ATTITUDE_TARGET_DATA { pub const ENCODED_LEN : usize = 39usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , q : [0.0_f32 ; 4usize] , body_roll_rate : 0.0_f32 , body_pitch_rate : 0.0_f32 , body_yaw_rate : 0.0_f32 , thrust : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , type_mask : AttitudeTargetTypemask :: DEFAULT , } ; } impl Default for SET_ATTITUDE_TARGET_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SET_ATTITUDE_TARGET_DATA { type Message = MavMessage ; const ID : u32 = 82u32 ; const NAME : & 'static str = "SET_ATTITUDE_TARGET" ; const EXTRA_CRC : u8 = 49u8 ; const ENCODED_LEN : usize = 39usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . body_roll_rate = buf . get_f32_le () ; __struct . body_pitch_rate = buf . get_f32_le () ; __struct . body_yaw_rate = buf . get_f32_le () ; __struct . thrust = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . type_mask = AttitudeTargetTypemask :: from_bits (tmp & AttitudeTargetTypemask :: all () . bits ()) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidFlag { flag_type : "AttitudeTargetTypemask" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . body_roll_rate) ; __tmp . put_f32_le (self . body_pitch_rate) ; __tmp . put_f32_le (self . body_yaw_rate) ; __tmp . put_f32_le (self . thrust) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . type_mask . bits ()) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct BATTERY_STATUS_DATA { pub current_consumed : i32 , pub energy_consumed : i32 , pub temperature : i16 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub voltages : [u16 ; 10] , pub current_battery : i16 , pub id : u8 , pub battery_function : MavBatteryFunction , pub mavtype : MavBatteryType , pub battery_remaining : i8 , } impl BATTERY_STATUS_DATA { pub const ENCODED_LEN : usize = 36usize ; pub const DEFAULT : Self = Self { current_consumed : 0_i32 , energy_consumed : 0_i32 , temperature : 0_i16 , voltages : [0_u16 ; 10usize] , current_battery : 0_i16 , id : 0_u8 , battery_function : MavBatteryFunction :: DEFAULT , mavtype : MavBatteryType :: DEFAULT , battery_remaining : 0_i8 , } ; } impl Default for BATTERY_STATUS_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for BATTERY_STATUS_DATA { type Message = MavMessage ; const ID : u32 = 147u32 ; const NAME : & 'static str = "BATTERY_STATUS" ; const EXTRA_CRC : u8 = 154u8 ; const ENCODED_LEN : usize = 36usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . current_consumed = buf . get_i32_le () ; __struct . energy_consumed = buf . get_i32_le () ; __struct . temperature = buf . get_i16_le () ; for v in & mut __struct . voltages { let val = buf . get_u16_le () ; * v = val ; } __struct . current_battery = buf . get_i16_le () ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . battery_function = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryFunction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryType" , value : tmp as u32 }) ? ; __struct . battery_remaining = buf . get_i8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . current_consumed) ; __tmp . put_i32_le (self . energy_consumed) ; __tmp . put_i16_le (self . temperature) ; for val in & self . voltages { __tmp . put_u16_le (* val) ; } __tmp . put_i16_le (self . current_battery) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . battery_function as u8) ; __tmp . put_u8 (self . mavtype as u8) ; __tmp . put_i8 (self . battery_remaining) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SCALED_IMU3_DATA { pub time_boot_ms : u32 , pub xacc : i16 , pub yacc : i16 , pub zacc : i16 , pub xgyro : i16 , pub ygyro : i16 , pub zgyro : i16 , pub xmag : i16 , pub ymag : i16 , pub zmag : i16 , } impl SCALED_IMU3_DATA { pub const ENCODED_LEN : usize = 22usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , xacc : 0_i16 , yacc : 0_i16 , zacc : 0_i16 , xgyro : 0_i16 , ygyro : 0_i16 , zgyro : 0_i16 , xmag : 0_i16 , ymag : 0_i16 , zmag : 0_i16 , } ; } impl Default for SCALED_IMU3_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SCALED_IMU3_DATA { type Message = MavMessage ; const ID : u32 = 129u32 ; const NAME : & 'static str = "SCALED_IMU3" ; const EXTRA_CRC : u8 = 46u8 ; const ENCODED_LEN : usize = 22usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . xacc = buf . get_i16_le () ; __struct . yacc = buf . get_i16_le () ; __struct . zacc = buf . get_i16_le () ; __struct . xgyro = buf . get_i16_le () ; __struct . ygyro = buf . get_i16_le () ; __struct . zgyro = buf . get_i16_le () ; __struct . xmag = buf . get_i16_le () ; __struct . ymag = buf . get_i16_le () ; __struct . zmag = buf . get_i16_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_i16_le (self . xacc) ; __tmp . put_i16_le (self . yacc) ; __tmp . put_i16_le (self . zacc) ; __tmp . put_i16_le (self . xgyro) ; __tmp . put_i16_le (self . ygyro) ; __tmp . put_i16_le (self . zgyro) ; __tmp . put_i16_le (self . xmag) ; __tmp . put_i16_le (self . ymag) ; __tmp . put_i16_le (self . zmag) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MISSION_REQUEST_PARTIAL_LIST_DATA { pub start_index : i16 , pub end_index : i16 , pub target_system : u8 , pub target_component : u8 , } impl MISSION_REQUEST_PARTIAL_LIST_DATA { pub const ENCODED_LEN : usize = 6usize ; pub const DEFAULT : Self = Self { start_index : 0_i16 , end_index : 0_i16 , target_system : 0_u8 , target_component : 0_u8 , } ; } impl Default for MISSION_REQUEST_PARTIAL_LIST_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MISSION_REQUEST_PARTIAL_LIST_DATA { type Message = MavMessage ; const ID : u32 = 37u32 ; const NAME : & 'static str = "MISSION_REQUEST_PARTIAL_LIST" ; const EXTRA_CRC : u8 = 212u8 ; const ENCODED_LEN : usize = 6usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . start_index = buf . get_i16_le () ; __struct . end_index = buf . get_i16_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i16_le (self . start_index) ; __tmp . put_i16_le (self . end_index) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SETUP_SIGNING_DATA { pub initial_timestamp : u64 , pub target_system : u8 , pub target_component : u8 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub secret_key : [u8 ; 32] , } impl SETUP_SIGNING_DATA { pub const ENCODED_LEN : usize = 42usize ; pub const DEFAULT : Self = Self { initial_timestamp : 0_u64 , target_system : 0_u8 , target_component : 0_u8 , secret_key : [0_u8 ; 32usize] , } ; } impl Default for SETUP_SIGNING_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SETUP_SIGNING_DATA { type Message = MavMessage ; const ID : u32 = 256u32 ; const NAME : & 'static str = "SETUP_SIGNING" ; const EXTRA_CRC : u8 = 71u8 ; const ENCODED_LEN : usize = 42usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . initial_timestamp = buf . get_u64_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; for v in & mut __struct . secret_key { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . initial_timestamp) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; for val in & self . secret_key { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SMART_BATTERY_INFO_DATA { pub capacity_full_specification : i32 , pub capacity_full : i32 , pub cycle_count : u16 , pub weight : u16 , pub discharge_minimum_voltage : u16 , pub charging_minimum_voltage : u16 , pub resting_minimum_voltage : u16 , pub id : u8 , pub battery_function : MavBatteryFunction , pub mavtype : MavBatteryType , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub serial_number : [u8 ; 16] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub device_name : [u8 ; 50] , } impl SMART_BATTERY_INFO_DATA { pub const ENCODED_LEN : usize = 87usize ; pub const DEFAULT : Self = Self { capacity_full_specification : 0_i32 , capacity_full : 0_i32 , cycle_count : 0_u16 , weight : 0_u16 , discharge_minimum_voltage : 0_u16 , charging_minimum_voltage : 0_u16 , resting_minimum_voltage : 0_u16 , id : 0_u8 , battery_function : MavBatteryFunction :: DEFAULT , mavtype : MavBatteryType :: DEFAULT , serial_number : [0_u8 ; 16usize] , device_name : [0_u8 ; 50usize] , } ; } impl Default for SMART_BATTERY_INFO_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SMART_BATTERY_INFO_DATA { type Message = MavMessage ; const ID : u32 = 370u32 ; const NAME : & 'static str = "SMART_BATTERY_INFO" ; const EXTRA_CRC : u8 = 75u8 ; const ENCODED_LEN : usize = 87usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . capacity_full_specification = buf . get_i32_le () ; __struct . capacity_full = buf . get_i32_le () ; __struct . cycle_count = buf . get_u16_le () ; __struct . weight = buf . get_u16_le () ; __struct . discharge_minimum_voltage = buf . get_u16_le () ; __struct . charging_minimum_voltage = buf . get_u16_le () ; __struct . resting_minimum_voltage = buf . get_u16_le () ; __struct . id = buf . get_u8 () ; let tmp = buf . get_u8 () ; __struct . battery_function = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryFunction" , value : tmp as u32 }) ? ; let tmp = buf . get_u8 () ; __struct . mavtype = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavBatteryType" , value : tmp as u32 }) ? ; for v in & mut __struct . serial_number { let val = buf . get_u8 () ; * v = val ; } for v in & mut __struct . device_name { let val = buf . get_u8 () ; * v = val ; } Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . capacity_full_specification) ; __tmp . put_i32_le (self . capacity_full) ; __tmp . put_u16_le (self . cycle_count) ; __tmp . put_u16_le (self . weight) ; __tmp . put_u16_le (self . discharge_minimum_voltage) ; __tmp . put_u16_le (self . charging_minimum_voltage) ; __tmp . put_u16_le (self . resting_minimum_voltage) ; __tmp . put_u8 (self . id) ; __tmp . put_u8 (self . battery_function as u8) ; __tmp . put_u8 (self . mavtype as u8) ; for val in & self . serial_number { __tmp . put_u8 (* val) ; } for val in & self . device_name { __tmp . put_u8 (* val) ; } if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct MOUNT_ORIENTATION_DATA { pub time_boot_ms : u32 , pub roll : f32 , pub pitch : f32 , pub yaw : f32 , } impl MOUNT_ORIENTATION_DATA { pub const ENCODED_LEN : usize = 16usize ; pub const DEFAULT : Self = Self { time_boot_ms : 0_u32 , roll : 0.0_f32 , pitch : 0.0_f32 , yaw : 0.0_f32 , } ; } impl Default for MOUNT_ORIENTATION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for MOUNT_ORIENTATION_DATA { type Message = MavMessage ; const ID : u32 = 265u32 ; const NAME : & 'static str = "MOUNT_ORIENTATION" ; const EXTRA_CRC : u8 = 26u8 ; const ENCODED_LEN : usize = 16usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_boot_ms = buf . get_u32_le () ; __struct . roll = buf . get_f32_le () ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . time_boot_ms) ; __tmp . put_f32_le (self . roll) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct HOME_POSITION_DATA { pub latitude : i32 , pub longitude : i32 , pub altitude : i32 , pub x : f32 , pub y : f32 , pub z : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub approach_x : f32 , pub approach_y : f32 , pub approach_z : f32 , } impl HOME_POSITION_DATA { pub const ENCODED_LEN : usize = 52usize ; pub const DEFAULT : Self = Self { latitude : 0_i32 , longitude : 0_i32 , altitude : 0_i32 , x : 0.0_f32 , y : 0.0_f32 , z : 0.0_f32 , q : [0.0_f32 ; 4usize] , approach_x : 0.0_f32 , approach_y : 0.0_f32 , approach_z : 0.0_f32 , } ; } impl Default for HOME_POSITION_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for HOME_POSITION_DATA { type Message = MavMessage ; const ID : u32 = 242u32 ; const NAME : & 'static str = "HOME_POSITION" ; const EXTRA_CRC : u8 = 104u8 ; const ENCODED_LEN : usize = 52usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . latitude = buf . get_i32_le () ; __struct . longitude = buf . get_i32_le () ; __struct . altitude = buf . get_i32_le () ; __struct . x = buf . get_f32_le () ; __struct . y = buf . get_f32_le () ; __struct . z = buf . get_f32_le () ; for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . approach_x = buf . get_f32_le () ; __struct . approach_y = buf . get_f32_le () ; __struct . approach_z = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_i32_le (self . latitude) ; __tmp . put_i32_le (self . longitude) ; __tmp . put_i32_le (self . altitude) ; __tmp . put_f32_le (self . x) ; __tmp . put_f32_le (self . y) ; __tmp . put_f32_le (self . z) ; for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . approach_x) ; __tmp . put_f32_le (self . approach_y) ; __tmp . put_f32_le (self . approach_z) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct SAFETY_ALLOWED_AREA_DATA { pub p1x : f32 , pub p1y : f32 , pub p1z : f32 , pub p2x : f32 , pub p2y : f32 , pub p2z : f32 , pub frame : MavFrame , } impl SAFETY_ALLOWED_AREA_DATA { pub const ENCODED_LEN : usize = 25usize ; pub const DEFAULT : Self = Self { p1x : 0.0_f32 , p1y : 0.0_f32 , p1z : 0.0_f32 , p2x : 0.0_f32 , p2y : 0.0_f32 , p2z : 0.0_f32 , frame : MavFrame :: DEFAULT , } ; } impl Default for SAFETY_ALLOWED_AREA_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for SAFETY_ALLOWED_AREA_DATA { type Message = MavMessage ; const ID : u32 = 55u32 ; const NAME : & 'static str = "SAFETY_ALLOWED_AREA" ; const EXTRA_CRC : u8 = 3u8 ; const ENCODED_LEN : usize = 25usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . p1x = buf . get_f32_le () ; __struct . p1y = buf . get_f32_le () ; __struct . p1z = buf . get_f32_le () ; __struct . p2x = buf . get_f32_le () ; __struct . p2y = buf . get_f32_le () ; __struct . p2z = buf . get_f32_le () ; let tmp = buf . get_u8 () ; __struct . frame = FromPrimitive :: from_u8 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "MavFrame" , value : tmp as u32 }) ? ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_f32_le (self . p1x) ; __tmp . put_f32_le (self . p1y) ; __tmp . put_f32_le (self . p1z) ; __tmp . put_f32_le (self . p2x) ; __tmp . put_f32_le (self . p2y) ; __tmp . put_f32_le (self . p2z) ; __tmp . put_u8 (self . frame as u8) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { pub flags : GimbalManagerFlags , pub pitch : f32 , pub yaw : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , pub target_system : u8 , pub target_component : u8 , pub gimbal_device_id : u8 , } impl GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { pub const ENCODED_LEN : usize = 23usize ; pub const DEFAULT : Self = Self { flags : GimbalManagerFlags :: DEFAULT , pitch : 0.0_f32 , yaw : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , target_system : 0_u8 , target_component : 0_u8 , gimbal_device_id : 0_u8 , } ; } impl Default for GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA { type Message = MavMessage ; const ID : u32 = 288u32 ; const NAME : & 'static str = "GIMBAL_MANAGER_SET_MANUAL_CONTROL" ; const EXTRA_CRC : u8 = 20u8 ; const ENCODED_LEN : usize = 23usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; let tmp = buf . get_u32_le () ; __struct . flags = FromPrimitive :: from_u32 (tmp) . ok_or (:: mavlink_core :: error :: ParserError :: InvalidEnum { enum_type : "GimbalManagerFlags" , value : tmp as u32 }) ? ; __struct . pitch = buf . get_f32_le () ; __struct . yaw = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; __struct . target_system = buf . get_u8 () ; __struct . target_component = buf . get_u8 () ; __struct . gimbal_device_id = buf . get_u8 () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u32_le (self . flags as u32) ; __tmp . put_f32_le (self . pitch) ; __tmp . put_f32_le (self . yaw) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; __tmp . put_u8 (self . target_system) ; __tmp . put_u8 (self . target_component) ; __tmp . put_u8 (self . gimbal_device_id) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Debug , Clone , PartialEq)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] pub struct CONTROL_SYSTEM_STATE_DATA { pub time_usec : u64 , pub x_acc : f32 , pub y_acc : f32 , pub z_acc : f32 , pub x_vel : f32 , pub y_vel : f32 , pub z_vel : f32 , pub x_pos : f32 , pub y_pos : f32 , pub z_pos : f32 , pub airspeed : f32 , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub vel_variance : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub pos_variance : [f32 ; 3] , # [cfg_attr (feature = "serde" , serde (with = "serde_arrays"))] pub q : [f32 ; 4] , pub roll_rate : f32 , pub pitch_rate : f32 , pub yaw_rate : f32 , } impl CONTROL_SYSTEM_STATE_DATA { pub const ENCODED_LEN : usize = 100usize ; pub const DEFAULT : Self = Self { time_usec : 0_u64 , x_acc : 0.0_f32 , y_acc : 0.0_f32 , z_acc : 0.0_f32 , x_vel : 0.0_f32 , y_vel : 0.0_f32 , z_vel : 0.0_f32 , x_pos : 0.0_f32 , y_pos : 0.0_f32 , z_pos : 0.0_f32 , airspeed : 0.0_f32 , vel_variance : [0.0_f32 ; 3usize] , pos_variance : [0.0_f32 ; 3usize] , q : [0.0_f32 ; 4usize] , roll_rate : 0.0_f32 , pitch_rate : 0.0_f32 , yaw_rate : 0.0_f32 , } ; } impl Default for CONTROL_SYSTEM_STATE_DATA { fn default () -> Self { Self :: DEFAULT . clone () } } impl MessageData for CONTROL_SYSTEM_STATE_DATA { type Message = MavMessage ; const ID : u32 = 146u32 ; const NAME : & 'static str = "CONTROL_SYSTEM_STATE" ; const EXTRA_CRC : u8 = 103u8 ; const ENCODED_LEN : usize = 100usize ; fn deser (_version : MavlinkVersion , __input : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { let avail_len = __input . len () ; let mut payload_buf = [0 ; Self :: ENCODED_LEN] ; let mut buf = if avail_len < Self :: ENCODED_LEN { payload_buf [0 .. avail_len] . copy_from_slice (__input) ; Bytes :: new (& payload_buf) } else { Bytes :: new (__input) } ; let mut __struct = Self :: default () ; __struct . time_usec = buf . get_u64_le () ; __struct . x_acc = buf . get_f32_le () ; __struct . y_acc = buf . get_f32_le () ; __struct . z_acc = buf . get_f32_le () ; __struct . x_vel = buf . get_f32_le () ; __struct . y_vel = buf . get_f32_le () ; __struct . z_vel = buf . get_f32_le () ; __struct . x_pos = buf . get_f32_le () ; __struct . y_pos = buf . get_f32_le () ; __struct . z_pos = buf . get_f32_le () ; __struct . airspeed = buf . get_f32_le () ; for v in & mut __struct . vel_variance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . pos_variance { let val = buf . get_f32_le () ; * v = val ; } for v in & mut __struct . q { let val = buf . get_f32_le () ; * v = val ; } __struct . roll_rate = buf . get_f32_le () ; __struct . pitch_rate = buf . get_f32_le () ; __struct . yaw_rate = buf . get_f32_le () ; Ok (__struct) } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { let mut __tmp = BytesMut :: new (bytes) ; __tmp . put_u64_le (self . time_usec) ; __tmp . put_f32_le (self . x_acc) ; __tmp . put_f32_le (self . y_acc) ; __tmp . put_f32_le (self . z_acc) ; __tmp . put_f32_le (self . x_vel) ; __tmp . put_f32_le (self . y_vel) ; __tmp . put_f32_le (self . z_vel) ; __tmp . put_f32_le (self . x_pos) ; __tmp . put_f32_le (self . y_pos) ; __tmp . put_f32_le (self . z_pos) ; __tmp . put_f32_le (self . airspeed) ; for val in & self . vel_variance { __tmp . put_f32_le (* val) ; } for val in & self . pos_variance { __tmp . put_f32_le (* val) ; } for val in & self . q { __tmp . put_f32_le (* val) ; } __tmp . put_f32_le (self . roll_rate) ; __tmp . put_f32_le (self . pitch_rate) ; __tmp . put_f32_le (self . yaw_rate) ; if matches ! (version , MavlinkVersion :: V2) { let len = __tmp . len () ; :: mavlink_core :: utils :: remove_trailing_zeroes (& bytes [.. len]) } else { __tmp . len () } } } # [derive (Clone , PartialEq , Debug)] # [cfg_attr (feature = "serde" , derive (Serialize , Deserialize))] # [cfg_attr (feature = "serde" , serde (tag = "type"))] # [repr (u32)] pub enum MavMessage { MISSION_ACK (MISSION_ACK_DATA) , COMMAND_CANCEL (COMMAND_CANCEL_DATA) , CAMERA_TRACKING_IMAGE_STATUS (CAMERA_TRACKING_IMAGE_STATUS_DATA) , PARAM_VALUE (PARAM_VALUE_DATA) , SUPPORTED_TUNES (SUPPORTED_TUNES_DATA) , OPEN_DRONE_ID_OPERATOR_ID (OPEN_DRONE_ID_OPERATOR_ID_DATA) , SET_HOME_POSITION (SET_HOME_POSITION_DATA) , CAMERA_TRACKING_GEO_STATUS (CAMERA_TRACKING_GEO_STATUS_DATA) , MISSION_ITEM (MISSION_ITEM_DATA) , MISSION_CURRENT (MISSION_CURRENT_DATA) , RAW_RPM (RAW_RPM_DATA) , VIDEO_STREAM_INFORMATION (VIDEO_STREAM_INFORMATION_DATA) , CELLULAR_CONFIG (CELLULAR_CONFIG_DATA) , PLAY_TUNE (PLAY_TUNE_DATA) , CURRENT_EVENT_SEQUENCE (CURRENT_EVENT_SEQUENCE_DATA) , ESC_STATUS (ESC_STATUS_DATA) , GPS2_RTK (GPS2_RTK_DATA) , DEBUG (DEBUG_DATA) , GIMBAL_MANAGER_INFORMATION (GIMBAL_MANAGER_INFORMATION_DATA) , NAV_CONTROLLER_OUTPUT (NAV_CONTROLLER_OUTPUT_DATA) , PARAM_EXT_ACK (PARAM_EXT_ACK_DATA) , TERRAIN_REPORT (TERRAIN_REPORT_DATA) , HIL_RC_INPUTS_RAW (HIL_RC_INPUTS_RAW_DATA) , ODOMETRY (ODOMETRY_DATA) , HIGH_LATENCY (HIGH_LATENCY_DATA) , PARAM_REQUEST_READ (PARAM_REQUEST_READ_DATA) , ATTITUDE (ATTITUDE_DATA) , PARAM_SET (PARAM_SET_DATA) , HIGHRES_IMU (HIGHRES_IMU_DATA) , SIM_STATE (SIM_STATE_DATA) , SCALED_PRESSURE3 (SCALED_PRESSURE3_DATA) , PROTOCOL_VERSION (PROTOCOL_VERSION_DATA) , GPS_RTK (GPS_RTK_DATA) , CHANGE_OPERATOR_CONTROL_ACK (CHANGE_OPERATOR_CONTROL_ACK_DATA) , CANFD_FRAME (CANFD_FRAME_DATA) , CAMERA_SETTINGS (CAMERA_SETTINGS_DATA) , TRAJECTORY_REPRESENTATION_WAYPOINTS (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA) , OPTICAL_FLOW (OPTICAL_FLOW_DATA) , GPS_INPUT (GPS_INPUT_DATA) , WIND_COV (WIND_COV_DATA) , HYGROMETER_SENSOR (HYGROMETER_SENSOR_DATA) , CAN_FRAME (CAN_FRAME_DATA) , CAMERA_IMAGE_CAPTURED (CAMERA_IMAGE_CAPTURED_DATA) , HIL_STATE_QUATERNION (HIL_STATE_QUATERNION_DATA) , OPEN_DRONE_ID_ARM_STATUS (OPEN_DRONE_ID_ARM_STATUS_DATA) , MESSAGE_INTERVAL (MESSAGE_INTERVAL_DATA) , SCALED_IMU (SCALED_IMU_DATA) , STORAGE_INFORMATION (STORAGE_INFORMATION_DATA) , FENCE_STATUS (FENCE_STATUS_DATA) , NAMED_VALUE_INT (NAMED_VALUE_INT_DATA) , VFR_HUD (VFR_HUD_DATA) , ESC_INFO (ESC_INFO_DATA) , RADIO_STATUS (RADIO_STATUS_DATA) , TIME_ESTIMATE_TO_TARGET (TIME_ESTIMATE_TO_TARGET_DATA) , HIL_GPS (HIL_GPS_DATA) , GPS_RTCM_DATA (GPS_RTCM_DATA_DATA) , LOG_REQUEST_END (LOG_REQUEST_END_DATA) , FILE_TRANSFER_PROTOCOL (FILE_TRANSFER_PROTOCOL_DATA) , TRAJECTORY_REPRESENTATION_BEZIER (TRAJECTORY_REPRESENTATION_BEZIER_DATA) , POWER_STATUS (POWER_STATUS_DATA) , ATTITUDE_QUATERNION_COV (ATTITUDE_QUATERNION_COV_DATA) , COMPONENT_METADATA (COMPONENT_METADATA_DATA) , GPS_INJECT_DATA (GPS_INJECT_DATA_DATA) , GIMBAL_MANAGER_SET_ATTITUDE (GIMBAL_MANAGER_SET_ATTITUDE_DATA) , POSITION_TARGET_GLOBAL_INT (POSITION_TARGET_GLOBAL_INT_DATA) , ENCAPSULATED_DATA (ENCAPSULATED_DATA_DATA) , VICON_POSITION_ESTIMATE (VICON_POSITION_ESTIMATE_DATA) , OPEN_DRONE_ID_SELF_ID (OPEN_DRONE_ID_SELF_ID_DATA) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA) , PARAM_EXT_REQUEST_LIST (PARAM_EXT_REQUEST_LIST_DATA) , SET_MODE (SET_MODE_DATA) , SYSTEM_TIME (SYSTEM_TIME_DATA) , ADSB_VEHICLE (ADSB_VEHICLE_DATA) , POSITION_TARGET_LOCAL_NED (POSITION_TARGET_LOCAL_NED_DATA) , HIL_OPTICAL_FLOW (HIL_OPTICAL_FLOW_DATA) , MISSION_REQUEST_LIST (MISSION_REQUEST_LIST_DATA) , PING (PING_DATA) , NAMED_VALUE_FLOAT (NAMED_VALUE_FLOAT_DATA) , HIL_ACTUATOR_CONTROLS (HIL_ACTUATOR_CONTROLS_DATA) , CAMERA_FOV_STATUS (CAMERA_FOV_STATUS_DATA) , SCALED_PRESSURE2 (SCALED_PRESSURE2_DATA) , TUNNEL (TUNNEL_DATA) , DATA_STREAM (DATA_STREAM_DATA) , GPS_STATUS (GPS_STATUS_DATA) , COMMAND_ACK (COMMAND_ACK_DATA) , DISTANCE_SENSOR (DISTANCE_SENSOR_DATA) , WIFI_CONFIG_AP (WIFI_CONFIG_AP_DATA) , OPEN_DRONE_ID_SYSTEM (OPEN_DRONE_ID_SYSTEM_DATA) , MISSION_CLEAR_ALL (MISSION_CLEAR_ALL_DATA) , OPTICAL_FLOW_RAD (OPTICAL_FLOW_RAD_DATA) , ACTUATOR_OUTPUT_STATUS (ACTUATOR_OUTPUT_STATUS_DATA) , WHEEL_DISTANCE (WHEEL_DISTANCE_DATA) , ATTITUDE_TARGET (ATTITUDE_TARGET_DATA) , HEARTBEAT (HEARTBEAT_DATA) , MISSION_COUNT (MISSION_COUNT_DATA) , AUTH_KEY (AUTH_KEY_DATA) , SET_ACTUATOR_CONTROL_TARGET (SET_ACTUATOR_CONTROL_TARGET_DATA) , REQUEST_DATA_STREAM (REQUEST_DATA_STREAM_DATA) , EXTENDED_SYS_STATE (EXTENDED_SYS_STATE_DATA) , GIMBAL_MANAGER_SET_PITCHYAW (GIMBAL_MANAGER_SET_PITCHYAW_DATA) , SYS_STATUS (SYS_STATUS_DATA) , GENERATOR_STATUS (GENERATOR_STATUS_DATA) , GIMBAL_DEVICE_INFORMATION (GIMBAL_DEVICE_INFORMATION_DATA) , REQUEST_EVENT (REQUEST_EVENT_DATA) , LOCAL_POSITION_NED_COV (LOCAL_POSITION_NED_COV_DATA) , SCALED_PRESSURE (SCALED_PRESSURE_DATA) , RESOURCE_REQUEST (RESOURCE_REQUEST_DATA) , MISSION_REQUEST (MISSION_REQUEST_DATA) , CAMERA_TRIGGER (CAMERA_TRIGGER_DATA) , OPEN_DRONE_ID_SYSTEM_UPDATE (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA) , RAW_PRESSURE (RAW_PRESSURE_DATA) , ACTUATOR_CONTROL_TARGET (ACTUATOR_CONTROL_TARGET_DATA) , OPEN_DRONE_ID_AUTHENTICATION (OPEN_DRONE_ID_AUTHENTICATION_DATA) , LOCAL_POSITION_NED (LOCAL_POSITION_NED_DATA) , GLOBAL_VISION_POSITION_ESTIMATE (GLOBAL_VISION_POSITION_ESTIMATE_DATA) , MAG_CAL_REPORT (MAG_CAL_REPORT_DATA) , CELLULAR_STATUS (CELLULAR_STATUS_DATA) , DEBUG_FLOAT_ARRAY (DEBUG_FLOAT_ARRAY_DATA) , GIMBAL_DEVICE_ATTITUDE_STATUS (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA) , OPEN_DRONE_ID_MESSAGE_PACK (OPEN_DRONE_ID_MESSAGE_PACK_DATA) , GIMBAL_DEVICE_SET_ATTITUDE (GIMBAL_DEVICE_SET_ATTITUDE_DATA) , MISSION_ITEM_INT (MISSION_ITEM_INT_DATA) , TERRAIN_CHECK (TERRAIN_CHECK_DATA) , SAFETY_SET_ALLOWED_AREA (SAFETY_SET_ALLOWED_AREA_DATA) , UAVIONIX_ADSB_OUT_DYNAMIC (UAVIONIX_ADSB_OUT_DYNAMIC_DATA) , VISION_POSITION_ESTIMATE (VISION_POSITION_ESTIMATE_DATA) , ORBIT_EXECUTION_STATUS (ORBIT_EXECUTION_STATUS_DATA) , SET_POSITION_TARGET_LOCAL_NED (SET_POSITION_TARGET_LOCAL_NED_DATA) , ALTITUDE (ALTITUDE_DATA) , CHANGE_OPERATOR_CONTROL (CHANGE_OPERATOR_CONTROL_DATA) , MISSION_REQUEST_INT (MISSION_REQUEST_INT_DATA) , LOG_REQUEST_LIST (LOG_REQUEST_LIST_DATA) , RC_CHANNELS (RC_CHANNELS_DATA) , VIDEO_STREAM_STATUS (VIDEO_STREAM_STATUS_DATA) , MISSION_WRITE_PARTIAL_LIST (MISSION_WRITE_PARTIAL_LIST_DATA) , ATT_POS_MOCAP (ATT_POS_MOCAP_DATA) , UAVCAN_NODE_STATUS (UAVCAN_NODE_STATUS_DATA) , ONBOARD_COMPUTER_STATUS (ONBOARD_COMPUTER_STATUS_DATA) , RAW_IMU (RAW_IMU_DATA) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA) , MANUAL_CONTROL (MANUAL_CONTROL_DATA) , SERVO_OUTPUT_RAW (SERVO_OUTPUT_RAW_DATA) , ATTITUDE_QUATERNION (ATTITUDE_QUATERNION_DATA) , MISSION_ITEM_REACHED (MISSION_ITEM_REACHED_DATA) , DATA_TRANSMISSION_HANDSHAKE (DATA_TRANSMISSION_HANDSHAKE_DATA) , STATUSTEXT (STATUSTEXT_DATA) , LOGGING_DATA (LOGGING_DATA_DATA) , RC_CHANNELS_SCALED (RC_CHANNELS_SCALED_DATA) , MEMORY_VECT (MEMORY_VECT_DATA) , LOG_ENTRY (LOG_ENTRY_DATA) , HIL_CONTROLS (HIL_CONTROLS_DATA) , LOG_REQUEST_DATA (LOG_REQUEST_DATA_DATA) , TERRAIN_REQUEST (TERRAIN_REQUEST_DATA) , ISBD_LINK_STATUS (ISBD_LINK_STATUS_DATA) , SET_POSITION_TARGET_GLOBAL_INT (SET_POSITION_TARGET_GLOBAL_INT_DATA) , HIL_SENSOR (HIL_SENSOR_DATA) , V2_EXTENSION (V2_EXTENSION_DATA) , COMMAND_LONG (COMMAND_LONG_DATA) , UAVIONIX_ADSB_OUT_CFG (UAVIONIX_ADSB_OUT_CFG_DATA) , ESTIMATOR_STATUS (ESTIMATOR_STATUS_DATA) , HIGH_LATENCY2 (HIGH_LATENCY2_DATA) , AUTOPILOT_VERSION (AUTOPILOT_VERSION_DATA) , DEBUG_VECT (DEBUG_VECT_DATA) , COMPONENT_INFORMATION (COMPONENT_INFORMATION_DATA) , PARAM_MAP_RC (PARAM_MAP_RC_DATA) , CAMERA_INFORMATION (CAMERA_INFORMATION_DATA) , VIBRATION (VIBRATION_DATA) , OBSTACLE_DISTANCE (OBSTACLE_DISTANCE_DATA) , RC_CHANNELS_RAW (RC_CHANNELS_RAW_DATA) , UAVCAN_NODE_INFO (UAVCAN_NODE_INFO_DATA) , EVENT (EVENT_DATA) , FLIGHT_INFORMATION (FLIGHT_INFORMATION_DATA) , PARAM_EXT_SET (PARAM_EXT_SET_DATA) , CAMERA_CAPTURE_STATUS (CAMERA_CAPTURE_STATUS_DATA) , LANDING_TARGET (LANDING_TARGET_DATA) , TIMESYNC (TIMESYNC_DATA) , EFI_STATUS (EFI_STATUS_DATA) , VISION_SPEED_ESTIMATE (VISION_SPEED_ESTIMATE_DATA) , GPS2_RAW (GPS2_RAW_DATA) , COMMAND_INT (COMMAND_INT_DATA) , MISSION_SET_CURRENT (MISSION_SET_CURRENT_DATA) , LOG_ERASE (LOG_ERASE_DATA) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA) , HIL_STATE (HIL_STATE_DATA) , BUTTON_CHANGE (BUTTON_CHANGE_DATA) , GPS_RAW_INT (GPS_RAW_INT_DATA) , COLLISION (COLLISION_DATA) , AIS_VESSEL (AIS_VESSEL_DATA) , TERRAIN_DATA (TERRAIN_DATA_DATA) , GPS_GLOBAL_ORIGIN (GPS_GLOBAL_ORIGIN_DATA) , OPEN_DRONE_ID_LOCATION (OPEN_DRONE_ID_LOCATION_DATA) , SCALED_IMU2 (SCALED_IMU2_DATA) , RESPONSE_EVENT_ERROR (RESPONSE_EVENT_ERROR_DATA) , GIMBAL_MANAGER_STATUS (GIMBAL_MANAGER_STATUS_DATA) , SERIAL_CONTROL (SERIAL_CONTROL_DATA) , WINCH_STATUS (WINCH_STATUS_DATA) , PARAM_REQUEST_LIST (PARAM_REQUEST_LIST_DATA) , LOGGING_DATA_ACKED (LOGGING_DATA_ACKED_DATA) , GLOBAL_POSITION_INT_COV (GLOBAL_POSITION_INT_COV_DATA) , LOGGING_ACK (LOGGING_ACK_DATA) , LOG_DATA (LOG_DATA_DATA) , PARAM_EXT_VALUE (PARAM_EXT_VALUE_DATA) , PLAY_TUNE_V2 (PLAY_TUNE_V2_DATA) , SET_GPS_GLOBAL_ORIGIN (SET_GPS_GLOBAL_ORIGIN_DATA) , FOLLOW_TARGET (FOLLOW_TARGET_DATA) , MANUAL_SETPOINT (MANUAL_SETPOINT_DATA) , RC_CHANNELS_OVERRIDE (RC_CHANNELS_OVERRIDE_DATA) , LINK_NODE_STATUS (LINK_NODE_STATUS_DATA) , GLOBAL_POSITION_INT (GLOBAL_POSITION_INT_DATA) , CAN_FILTER_MODIFY (CAN_FILTER_MODIFY_DATA) , PARAM_EXT_REQUEST_READ (PARAM_EXT_REQUEST_READ_DATA) , UTM_GLOBAL_POSITION (UTM_GLOBAL_POSITION_DATA) , OPEN_DRONE_ID_BASIC_ID (OPEN_DRONE_ID_BASIC_ID_DATA) , SET_ATTITUDE_TARGET (SET_ATTITUDE_TARGET_DATA) , BATTERY_STATUS (BATTERY_STATUS_DATA) , SCALED_IMU3 (SCALED_IMU3_DATA) , MISSION_REQUEST_PARTIAL_LIST (MISSION_REQUEST_PARTIAL_LIST_DATA) , SETUP_SIGNING (SETUP_SIGNING_DATA) , SMART_BATTERY_INFO (SMART_BATTERY_INFO_DATA) , MOUNT_ORIENTATION (MOUNT_ORIENTATION_DATA) , HOME_POSITION (HOME_POSITION_DATA) , SAFETY_ALLOWED_AREA (SAFETY_ALLOWED_AREA_DATA) , GIMBAL_MANAGER_SET_MANUAL_CONTROL (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA) , CONTROL_SYSTEM_STATE (CONTROL_SYSTEM_STATE_DATA) , } impl Message for MavMessage { fn parse (version : MavlinkVersion , id : u32 , payload : & [u8]) -> Result < Self , :: mavlink_core :: error :: ParserError > { match id { MISSION_ACK_DATA :: ID => MISSION_ACK_DATA :: deser (version , payload) . map (Self :: MISSION_ACK) , COMMAND_CANCEL_DATA :: ID => COMMAND_CANCEL_DATA :: deser (version , payload) . map (Self :: COMMAND_CANCEL) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => CAMERA_TRACKING_IMAGE_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_TRACKING_IMAGE_STATUS) , PARAM_VALUE_DATA :: ID => PARAM_VALUE_DATA :: deser (version , payload) . map (Self :: PARAM_VALUE) , SUPPORTED_TUNES_DATA :: ID => SUPPORTED_TUNES_DATA :: deser (version , payload) . map (Self :: SUPPORTED_TUNES) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => OPEN_DRONE_ID_OPERATOR_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_OPERATOR_ID) , SET_HOME_POSITION_DATA :: ID => SET_HOME_POSITION_DATA :: deser (version , payload) . map (Self :: SET_HOME_POSITION) , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => CAMERA_TRACKING_GEO_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_TRACKING_GEO_STATUS) , MISSION_ITEM_DATA :: ID => MISSION_ITEM_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM) , MISSION_CURRENT_DATA :: ID => MISSION_CURRENT_DATA :: deser (version , payload) . map (Self :: MISSION_CURRENT) , RAW_RPM_DATA :: ID => RAW_RPM_DATA :: deser (version , payload) . map (Self :: RAW_RPM) , VIDEO_STREAM_INFORMATION_DATA :: ID => VIDEO_STREAM_INFORMATION_DATA :: deser (version , payload) . map (Self :: VIDEO_STREAM_INFORMATION) , CELLULAR_CONFIG_DATA :: ID => CELLULAR_CONFIG_DATA :: deser (version , payload) . map (Self :: CELLULAR_CONFIG) , PLAY_TUNE_DATA :: ID => PLAY_TUNE_DATA :: deser (version , payload) . map (Self :: PLAY_TUNE) , CURRENT_EVENT_SEQUENCE_DATA :: ID => CURRENT_EVENT_SEQUENCE_DATA :: deser (version , payload) . map (Self :: CURRENT_EVENT_SEQUENCE) , ESC_STATUS_DATA :: ID => ESC_STATUS_DATA :: deser (version , payload) . map (Self :: ESC_STATUS) , GPS2_RTK_DATA :: ID => GPS2_RTK_DATA :: deser (version , payload) . map (Self :: GPS2_RTK) , DEBUG_DATA :: ID => DEBUG_DATA :: deser (version , payload) . map (Self :: DEBUG) , GIMBAL_MANAGER_INFORMATION_DATA :: ID => GIMBAL_MANAGER_INFORMATION_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_INFORMATION) , NAV_CONTROLLER_OUTPUT_DATA :: ID => NAV_CONTROLLER_OUTPUT_DATA :: deser (version , payload) . map (Self :: NAV_CONTROLLER_OUTPUT) , PARAM_EXT_ACK_DATA :: ID => PARAM_EXT_ACK_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_ACK) , TERRAIN_REPORT_DATA :: ID => TERRAIN_REPORT_DATA :: deser (version , payload) . map (Self :: TERRAIN_REPORT) , HIL_RC_INPUTS_RAW_DATA :: ID => HIL_RC_INPUTS_RAW_DATA :: deser (version , payload) . map (Self :: HIL_RC_INPUTS_RAW) , ODOMETRY_DATA :: ID => ODOMETRY_DATA :: deser (version , payload) . map (Self :: ODOMETRY) , HIGH_LATENCY_DATA :: ID => HIGH_LATENCY_DATA :: deser (version , payload) . map (Self :: HIGH_LATENCY) , PARAM_REQUEST_READ_DATA :: ID => PARAM_REQUEST_READ_DATA :: deser (version , payload) . map (Self :: PARAM_REQUEST_READ) , ATTITUDE_DATA :: ID => ATTITUDE_DATA :: deser (version , payload) . map (Self :: ATTITUDE) , PARAM_SET_DATA :: ID => PARAM_SET_DATA :: deser (version , payload) . map (Self :: PARAM_SET) , HIGHRES_IMU_DATA :: ID => HIGHRES_IMU_DATA :: deser (version , payload) . map (Self :: HIGHRES_IMU) , SIM_STATE_DATA :: ID => SIM_STATE_DATA :: deser (version , payload) . map (Self :: SIM_STATE) , SCALED_PRESSURE3_DATA :: ID => SCALED_PRESSURE3_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE3) , PROTOCOL_VERSION_DATA :: ID => PROTOCOL_VERSION_DATA :: deser (version , payload) . map (Self :: PROTOCOL_VERSION) , GPS_RTK_DATA :: ID => GPS_RTK_DATA :: deser (version , payload) . map (Self :: GPS_RTK) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => CHANGE_OPERATOR_CONTROL_ACK_DATA :: deser (version , payload) . map (Self :: CHANGE_OPERATOR_CONTROL_ACK) , CANFD_FRAME_DATA :: ID => CANFD_FRAME_DATA :: deser (version , payload) . map (Self :: CANFD_FRAME) , CAMERA_SETTINGS_DATA :: ID => CAMERA_SETTINGS_DATA :: deser (version , payload) . map (Self :: CAMERA_SETTINGS) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: deser (version , payload) . map (Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS) , OPTICAL_FLOW_DATA :: ID => OPTICAL_FLOW_DATA :: deser (version , payload) . map (Self :: OPTICAL_FLOW) , GPS_INPUT_DATA :: ID => GPS_INPUT_DATA :: deser (version , payload) . map (Self :: GPS_INPUT) , WIND_COV_DATA :: ID => WIND_COV_DATA :: deser (version , payload) . map (Self :: WIND_COV) , HYGROMETER_SENSOR_DATA :: ID => HYGROMETER_SENSOR_DATA :: deser (version , payload) . map (Self :: HYGROMETER_SENSOR) , CAN_FRAME_DATA :: ID => CAN_FRAME_DATA :: deser (version , payload) . map (Self :: CAN_FRAME) , CAMERA_IMAGE_CAPTURED_DATA :: ID => CAMERA_IMAGE_CAPTURED_DATA :: deser (version , payload) . map (Self :: CAMERA_IMAGE_CAPTURED) , HIL_STATE_QUATERNION_DATA :: ID => HIL_STATE_QUATERNION_DATA :: deser (version , payload) . map (Self :: HIL_STATE_QUATERNION) , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => OPEN_DRONE_ID_ARM_STATUS_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_ARM_STATUS) , MESSAGE_INTERVAL_DATA :: ID => MESSAGE_INTERVAL_DATA :: deser (version , payload) . map (Self :: MESSAGE_INTERVAL) , SCALED_IMU_DATA :: ID => SCALED_IMU_DATA :: deser (version , payload) . map (Self :: SCALED_IMU) , STORAGE_INFORMATION_DATA :: ID => STORAGE_INFORMATION_DATA :: deser (version , payload) . map (Self :: STORAGE_INFORMATION) , FENCE_STATUS_DATA :: ID => FENCE_STATUS_DATA :: deser (version , payload) . map (Self :: FENCE_STATUS) , NAMED_VALUE_INT_DATA :: ID => NAMED_VALUE_INT_DATA :: deser (version , payload) . map (Self :: NAMED_VALUE_INT) , VFR_HUD_DATA :: ID => VFR_HUD_DATA :: deser (version , payload) . map (Self :: VFR_HUD) , ESC_INFO_DATA :: ID => ESC_INFO_DATA :: deser (version , payload) . map (Self :: ESC_INFO) , RADIO_STATUS_DATA :: ID => RADIO_STATUS_DATA :: deser (version , payload) . map (Self :: RADIO_STATUS) , TIME_ESTIMATE_TO_TARGET_DATA :: ID => TIME_ESTIMATE_TO_TARGET_DATA :: deser (version , payload) . map (Self :: TIME_ESTIMATE_TO_TARGET) , HIL_GPS_DATA :: ID => HIL_GPS_DATA :: deser (version , payload) . map (Self :: HIL_GPS) , GPS_RTCM_DATA_DATA :: ID => GPS_RTCM_DATA_DATA :: deser (version , payload) . map (Self :: GPS_RTCM_DATA) , LOG_REQUEST_END_DATA :: ID => LOG_REQUEST_END_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_END) , FILE_TRANSFER_PROTOCOL_DATA :: ID => FILE_TRANSFER_PROTOCOL_DATA :: deser (version , payload) . map (Self :: FILE_TRANSFER_PROTOCOL) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: deser (version , payload) . map (Self :: TRAJECTORY_REPRESENTATION_BEZIER) , POWER_STATUS_DATA :: ID => POWER_STATUS_DATA :: deser (version , payload) . map (Self :: POWER_STATUS) , ATTITUDE_QUATERNION_COV_DATA :: ID => ATTITUDE_QUATERNION_COV_DATA :: deser (version , payload) . map (Self :: ATTITUDE_QUATERNION_COV) , COMPONENT_METADATA_DATA :: ID => COMPONENT_METADATA_DATA :: deser (version , payload) . map (Self :: COMPONENT_METADATA) , GPS_INJECT_DATA_DATA :: ID => GPS_INJECT_DATA_DATA :: deser (version , payload) . map (Self :: GPS_INJECT_DATA) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_ATTITUDE) , POSITION_TARGET_GLOBAL_INT_DATA :: ID => POSITION_TARGET_GLOBAL_INT_DATA :: deser (version , payload) . map (Self :: POSITION_TARGET_GLOBAL_INT) , ENCAPSULATED_DATA_DATA :: ID => ENCAPSULATED_DATA_DATA :: deser (version , payload) . map (Self :: ENCAPSULATED_DATA) , VICON_POSITION_ESTIMATE_DATA :: ID => VICON_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VICON_POSITION_ESTIMATE) , OPEN_DRONE_ID_SELF_ID_DATA :: ID => OPEN_DRONE_ID_SELF_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SELF_ID) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: deser (version , payload) . map (Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT) , PARAM_EXT_REQUEST_LIST_DATA :: ID => PARAM_EXT_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_REQUEST_LIST) , SET_MODE_DATA :: ID => SET_MODE_DATA :: deser (version , payload) . map (Self :: SET_MODE) , SYSTEM_TIME_DATA :: ID => SYSTEM_TIME_DATA :: deser (version , payload) . map (Self :: SYSTEM_TIME) , ADSB_VEHICLE_DATA :: ID => ADSB_VEHICLE_DATA :: deser (version , payload) . map (Self :: ADSB_VEHICLE) , POSITION_TARGET_LOCAL_NED_DATA :: ID => POSITION_TARGET_LOCAL_NED_DATA :: deser (version , payload) . map (Self :: POSITION_TARGET_LOCAL_NED) , HIL_OPTICAL_FLOW_DATA :: ID => HIL_OPTICAL_FLOW_DATA :: deser (version , payload) . map (Self :: HIL_OPTICAL_FLOW) , MISSION_REQUEST_LIST_DATA :: ID => MISSION_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_LIST) , PING_DATA :: ID => PING_DATA :: deser (version , payload) . map (Self :: PING) , NAMED_VALUE_FLOAT_DATA :: ID => NAMED_VALUE_FLOAT_DATA :: deser (version , payload) . map (Self :: NAMED_VALUE_FLOAT) , HIL_ACTUATOR_CONTROLS_DATA :: ID => HIL_ACTUATOR_CONTROLS_DATA :: deser (version , payload) . map (Self :: HIL_ACTUATOR_CONTROLS) , CAMERA_FOV_STATUS_DATA :: ID => CAMERA_FOV_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_FOV_STATUS) , SCALED_PRESSURE2_DATA :: ID => SCALED_PRESSURE2_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE2) , TUNNEL_DATA :: ID => TUNNEL_DATA :: deser (version , payload) . map (Self :: TUNNEL) , DATA_STREAM_DATA :: ID => DATA_STREAM_DATA :: deser (version , payload) . map (Self :: DATA_STREAM) , GPS_STATUS_DATA :: ID => GPS_STATUS_DATA :: deser (version , payload) . map (Self :: GPS_STATUS) , COMMAND_ACK_DATA :: ID => COMMAND_ACK_DATA :: deser (version , payload) . map (Self :: COMMAND_ACK) , DISTANCE_SENSOR_DATA :: ID => DISTANCE_SENSOR_DATA :: deser (version , payload) . map (Self :: DISTANCE_SENSOR) , WIFI_CONFIG_AP_DATA :: ID => WIFI_CONFIG_AP_DATA :: deser (version , payload) . map (Self :: WIFI_CONFIG_AP) , OPEN_DRONE_ID_SYSTEM_DATA :: ID => OPEN_DRONE_ID_SYSTEM_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SYSTEM) , MISSION_CLEAR_ALL_DATA :: ID => MISSION_CLEAR_ALL_DATA :: deser (version , payload) . map (Self :: MISSION_CLEAR_ALL) , OPTICAL_FLOW_RAD_DATA :: ID => OPTICAL_FLOW_RAD_DATA :: deser (version , payload) . map (Self :: OPTICAL_FLOW_RAD) , ACTUATOR_OUTPUT_STATUS_DATA :: ID => ACTUATOR_OUTPUT_STATUS_DATA :: deser (version , payload) . map (Self :: ACTUATOR_OUTPUT_STATUS) , WHEEL_DISTANCE_DATA :: ID => WHEEL_DISTANCE_DATA :: deser (version , payload) . map (Self :: WHEEL_DISTANCE) , ATTITUDE_TARGET_DATA :: ID => ATTITUDE_TARGET_DATA :: deser (version , payload) . map (Self :: ATTITUDE_TARGET) , HEARTBEAT_DATA :: ID => HEARTBEAT_DATA :: deser (version , payload) . map (Self :: HEARTBEAT) , MISSION_COUNT_DATA :: ID => MISSION_COUNT_DATA :: deser (version , payload) . map (Self :: MISSION_COUNT) , AUTH_KEY_DATA :: ID => AUTH_KEY_DATA :: deser (version , payload) . map (Self :: AUTH_KEY) , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => SET_ACTUATOR_CONTROL_TARGET_DATA :: deser (version , payload) . map (Self :: SET_ACTUATOR_CONTROL_TARGET) , REQUEST_DATA_STREAM_DATA :: ID => REQUEST_DATA_STREAM_DATA :: deser (version , payload) . map (Self :: REQUEST_DATA_STREAM) , EXTENDED_SYS_STATE_DATA :: ID => EXTENDED_SYS_STATE_DATA :: deser (version , payload) . map (Self :: EXTENDED_SYS_STATE) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_PITCHYAW) , SYS_STATUS_DATA :: ID => SYS_STATUS_DATA :: deser (version , payload) . map (Self :: SYS_STATUS) , GENERATOR_STATUS_DATA :: ID => GENERATOR_STATUS_DATA :: deser (version , payload) . map (Self :: GENERATOR_STATUS) , GIMBAL_DEVICE_INFORMATION_DATA :: ID => GIMBAL_DEVICE_INFORMATION_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_INFORMATION) , REQUEST_EVENT_DATA :: ID => REQUEST_EVENT_DATA :: deser (version , payload) . map (Self :: REQUEST_EVENT) , LOCAL_POSITION_NED_COV_DATA :: ID => LOCAL_POSITION_NED_COV_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED_COV) , SCALED_PRESSURE_DATA :: ID => SCALED_PRESSURE_DATA :: deser (version , payload) . map (Self :: SCALED_PRESSURE) , RESOURCE_REQUEST_DATA :: ID => RESOURCE_REQUEST_DATA :: deser (version , payload) . map (Self :: RESOURCE_REQUEST) , MISSION_REQUEST_DATA :: ID => MISSION_REQUEST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST) , CAMERA_TRIGGER_DATA :: ID => CAMERA_TRIGGER_DATA :: deser (version , payload) . map (Self :: CAMERA_TRIGGER) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_SYSTEM_UPDATE) , RAW_PRESSURE_DATA :: ID => RAW_PRESSURE_DATA :: deser (version , payload) . map (Self :: RAW_PRESSURE) , ACTUATOR_CONTROL_TARGET_DATA :: ID => ACTUATOR_CONTROL_TARGET_DATA :: deser (version , payload) . map (Self :: ACTUATOR_CONTROL_TARGET) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => OPEN_DRONE_ID_AUTHENTICATION_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_AUTHENTICATION) , LOCAL_POSITION_NED_DATA :: ID => LOCAL_POSITION_NED_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: GLOBAL_VISION_POSITION_ESTIMATE) , MAG_CAL_REPORT_DATA :: ID => MAG_CAL_REPORT_DATA :: deser (version , payload) . map (Self :: MAG_CAL_REPORT) , CELLULAR_STATUS_DATA :: ID => CELLULAR_STATUS_DATA :: deser (version , payload) . map (Self :: CELLULAR_STATUS) , DEBUG_FLOAT_ARRAY_DATA :: ID => DEBUG_FLOAT_ARRAY_DATA :: deser (version , payload) . map (Self :: DEBUG_FLOAT_ARRAY) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_ATTITUDE_STATUS) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_MESSAGE_PACK) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: deser (version , payload) . map (Self :: GIMBAL_DEVICE_SET_ATTITUDE) , MISSION_ITEM_INT_DATA :: ID => MISSION_ITEM_INT_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM_INT) , TERRAIN_CHECK_DATA :: ID => TERRAIN_CHECK_DATA :: deser (version , payload) . map (Self :: TERRAIN_CHECK) , SAFETY_SET_ALLOWED_AREA_DATA :: ID => SAFETY_SET_ALLOWED_AREA_DATA :: deser (version , payload) . map (Self :: SAFETY_SET_ALLOWED_AREA) , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: deser (version , payload) . map (Self :: UAVIONIX_ADSB_OUT_DYNAMIC) , VISION_POSITION_ESTIMATE_DATA :: ID => VISION_POSITION_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VISION_POSITION_ESTIMATE) , ORBIT_EXECUTION_STATUS_DATA :: ID => ORBIT_EXECUTION_STATUS_DATA :: deser (version , payload) . map (Self :: ORBIT_EXECUTION_STATUS) , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => SET_POSITION_TARGET_LOCAL_NED_DATA :: deser (version , payload) . map (Self :: SET_POSITION_TARGET_LOCAL_NED) , ALTITUDE_DATA :: ID => ALTITUDE_DATA :: deser (version , payload) . map (Self :: ALTITUDE) , CHANGE_OPERATOR_CONTROL_DATA :: ID => CHANGE_OPERATOR_CONTROL_DATA :: deser (version , payload) . map (Self :: CHANGE_OPERATOR_CONTROL) , MISSION_REQUEST_INT_DATA :: ID => MISSION_REQUEST_INT_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_INT) , LOG_REQUEST_LIST_DATA :: ID => LOG_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_LIST) , RC_CHANNELS_DATA :: ID => RC_CHANNELS_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS) , VIDEO_STREAM_STATUS_DATA :: ID => VIDEO_STREAM_STATUS_DATA :: deser (version , payload) . map (Self :: VIDEO_STREAM_STATUS) , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => MISSION_WRITE_PARTIAL_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_WRITE_PARTIAL_LIST) , ATT_POS_MOCAP_DATA :: ID => ATT_POS_MOCAP_DATA :: deser (version , payload) . map (Self :: ATT_POS_MOCAP) , UAVCAN_NODE_STATUS_DATA :: ID => UAVCAN_NODE_STATUS_DATA :: deser (version , payload) . map (Self :: UAVCAN_NODE_STATUS) , ONBOARD_COMPUTER_STATUS_DATA :: ID => ONBOARD_COMPUTER_STATUS_DATA :: deser (version , payload) . map (Self :: ONBOARD_COMPUTER_STATUS) , RAW_IMU_DATA :: ID => RAW_IMU_DATA :: deser (version , payload) . map (Self :: RAW_IMU) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE) , MANUAL_CONTROL_DATA :: ID => MANUAL_CONTROL_DATA :: deser (version , payload) . map (Self :: MANUAL_CONTROL) , SERVO_OUTPUT_RAW_DATA :: ID => SERVO_OUTPUT_RAW_DATA :: deser (version , payload) . map (Self :: SERVO_OUTPUT_RAW) , ATTITUDE_QUATERNION_DATA :: ID => ATTITUDE_QUATERNION_DATA :: deser (version , payload) . map (Self :: ATTITUDE_QUATERNION) , MISSION_ITEM_REACHED_DATA :: ID => MISSION_ITEM_REACHED_DATA :: deser (version , payload) . map (Self :: MISSION_ITEM_REACHED) , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => DATA_TRANSMISSION_HANDSHAKE_DATA :: deser (version , payload) . map (Self :: DATA_TRANSMISSION_HANDSHAKE) , STATUSTEXT_DATA :: ID => STATUSTEXT_DATA :: deser (version , payload) . map (Self :: STATUSTEXT) , LOGGING_DATA_DATA :: ID => LOGGING_DATA_DATA :: deser (version , payload) . map (Self :: LOGGING_DATA) , RC_CHANNELS_SCALED_DATA :: ID => RC_CHANNELS_SCALED_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_SCALED) , MEMORY_VECT_DATA :: ID => MEMORY_VECT_DATA :: deser (version , payload) . map (Self :: MEMORY_VECT) , LOG_ENTRY_DATA :: ID => LOG_ENTRY_DATA :: deser (version , payload) . map (Self :: LOG_ENTRY) , HIL_CONTROLS_DATA :: ID => HIL_CONTROLS_DATA :: deser (version , payload) . map (Self :: HIL_CONTROLS) , LOG_REQUEST_DATA_DATA :: ID => LOG_REQUEST_DATA_DATA :: deser (version , payload) . map (Self :: LOG_REQUEST_DATA) , TERRAIN_REQUEST_DATA :: ID => TERRAIN_REQUEST_DATA :: deser (version , payload) . map (Self :: TERRAIN_REQUEST) , ISBD_LINK_STATUS_DATA :: ID => ISBD_LINK_STATUS_DATA :: deser (version , payload) . map (Self :: ISBD_LINK_STATUS) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => SET_POSITION_TARGET_GLOBAL_INT_DATA :: deser (version , payload) . map (Self :: SET_POSITION_TARGET_GLOBAL_INT) , HIL_SENSOR_DATA :: ID => HIL_SENSOR_DATA :: deser (version , payload) . map (Self :: HIL_SENSOR) , V2_EXTENSION_DATA :: ID => V2_EXTENSION_DATA :: deser (version , payload) . map (Self :: V2_EXTENSION) , COMMAND_LONG_DATA :: ID => COMMAND_LONG_DATA :: deser (version , payload) . map (Self :: COMMAND_LONG) , UAVIONIX_ADSB_OUT_CFG_DATA :: ID => UAVIONIX_ADSB_OUT_CFG_DATA :: deser (version , payload) . map (Self :: UAVIONIX_ADSB_OUT_CFG) , ESTIMATOR_STATUS_DATA :: ID => ESTIMATOR_STATUS_DATA :: deser (version , payload) . map (Self :: ESTIMATOR_STATUS) , HIGH_LATENCY2_DATA :: ID => HIGH_LATENCY2_DATA :: deser (version , payload) . map (Self :: HIGH_LATENCY2) , AUTOPILOT_VERSION_DATA :: ID => AUTOPILOT_VERSION_DATA :: deser (version , payload) . map (Self :: AUTOPILOT_VERSION) , DEBUG_VECT_DATA :: ID => DEBUG_VECT_DATA :: deser (version , payload) . map (Self :: DEBUG_VECT) , COMPONENT_INFORMATION_DATA :: ID => COMPONENT_INFORMATION_DATA :: deser (version , payload) . map (Self :: COMPONENT_INFORMATION) , PARAM_MAP_RC_DATA :: ID => PARAM_MAP_RC_DATA :: deser (version , payload) . map (Self :: PARAM_MAP_RC) , CAMERA_INFORMATION_DATA :: ID => CAMERA_INFORMATION_DATA :: deser (version , payload) . map (Self :: CAMERA_INFORMATION) , VIBRATION_DATA :: ID => VIBRATION_DATA :: deser (version , payload) . map (Self :: VIBRATION) , OBSTACLE_DISTANCE_DATA :: ID => OBSTACLE_DISTANCE_DATA :: deser (version , payload) . map (Self :: OBSTACLE_DISTANCE) , RC_CHANNELS_RAW_DATA :: ID => RC_CHANNELS_RAW_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_RAW) , UAVCAN_NODE_INFO_DATA :: ID => UAVCAN_NODE_INFO_DATA :: deser (version , payload) . map (Self :: UAVCAN_NODE_INFO) , EVENT_DATA :: ID => EVENT_DATA :: deser (version , payload) . map (Self :: EVENT) , FLIGHT_INFORMATION_DATA :: ID => FLIGHT_INFORMATION_DATA :: deser (version , payload) . map (Self :: FLIGHT_INFORMATION) , PARAM_EXT_SET_DATA :: ID => PARAM_EXT_SET_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_SET) , CAMERA_CAPTURE_STATUS_DATA :: ID => CAMERA_CAPTURE_STATUS_DATA :: deser (version , payload) . map (Self :: CAMERA_CAPTURE_STATUS) , LANDING_TARGET_DATA :: ID => LANDING_TARGET_DATA :: deser (version , payload) . map (Self :: LANDING_TARGET) , TIMESYNC_DATA :: ID => TIMESYNC_DATA :: deser (version , payload) . map (Self :: TIMESYNC) , EFI_STATUS_DATA :: ID => EFI_STATUS_DATA :: deser (version , payload) . map (Self :: EFI_STATUS) , VISION_SPEED_ESTIMATE_DATA :: ID => VISION_SPEED_ESTIMATE_DATA :: deser (version , payload) . map (Self :: VISION_SPEED_ESTIMATE) , GPS2_RAW_DATA :: ID => GPS2_RAW_DATA :: deser (version , payload) . map (Self :: GPS2_RAW) , COMMAND_INT_DATA :: ID => COMMAND_INT_DATA :: deser (version , payload) . map (Self :: COMMAND_INT) , MISSION_SET_CURRENT_DATA :: ID => MISSION_SET_CURRENT_DATA :: deser (version , payload) . map (Self :: MISSION_SET_CURRENT) , LOG_ERASE_DATA :: ID => LOG_ERASE_DATA :: deser (version , payload) . map (Self :: LOG_ERASE) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: deser (version , payload) . map (Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET) , HIL_STATE_DATA :: ID => HIL_STATE_DATA :: deser (version , payload) . map (Self :: HIL_STATE) , BUTTON_CHANGE_DATA :: ID => BUTTON_CHANGE_DATA :: deser (version , payload) . map (Self :: BUTTON_CHANGE) , GPS_RAW_INT_DATA :: ID => GPS_RAW_INT_DATA :: deser (version , payload) . map (Self :: GPS_RAW_INT) , COLLISION_DATA :: ID => COLLISION_DATA :: deser (version , payload) . map (Self :: COLLISION) , AIS_VESSEL_DATA :: ID => AIS_VESSEL_DATA :: deser (version , payload) . map (Self :: AIS_VESSEL) , TERRAIN_DATA_DATA :: ID => TERRAIN_DATA_DATA :: deser (version , payload) . map (Self :: TERRAIN_DATA) , GPS_GLOBAL_ORIGIN_DATA :: ID => GPS_GLOBAL_ORIGIN_DATA :: deser (version , payload) . map (Self :: GPS_GLOBAL_ORIGIN) , OPEN_DRONE_ID_LOCATION_DATA :: ID => OPEN_DRONE_ID_LOCATION_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_LOCATION) , SCALED_IMU2_DATA :: ID => SCALED_IMU2_DATA :: deser (version , payload) . map (Self :: SCALED_IMU2) , RESPONSE_EVENT_ERROR_DATA :: ID => RESPONSE_EVENT_ERROR_DATA :: deser (version , payload) . map (Self :: RESPONSE_EVENT_ERROR) , GIMBAL_MANAGER_STATUS_DATA :: ID => GIMBAL_MANAGER_STATUS_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_STATUS) , SERIAL_CONTROL_DATA :: ID => SERIAL_CONTROL_DATA :: deser (version , payload) . map (Self :: SERIAL_CONTROL) , WINCH_STATUS_DATA :: ID => WINCH_STATUS_DATA :: deser (version , payload) . map (Self :: WINCH_STATUS) , PARAM_REQUEST_LIST_DATA :: ID => PARAM_REQUEST_LIST_DATA :: deser (version , payload) . map (Self :: PARAM_REQUEST_LIST) , LOGGING_DATA_ACKED_DATA :: ID => LOGGING_DATA_ACKED_DATA :: deser (version , payload) . map (Self :: LOGGING_DATA_ACKED) , GLOBAL_POSITION_INT_COV_DATA :: ID => GLOBAL_POSITION_INT_COV_DATA :: deser (version , payload) . map (Self :: GLOBAL_POSITION_INT_COV) , LOGGING_ACK_DATA :: ID => LOGGING_ACK_DATA :: deser (version , payload) . map (Self :: LOGGING_ACK) , LOG_DATA_DATA :: ID => LOG_DATA_DATA :: deser (version , payload) . map (Self :: LOG_DATA) , PARAM_EXT_VALUE_DATA :: ID => PARAM_EXT_VALUE_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_VALUE) , PLAY_TUNE_V2_DATA :: ID => PLAY_TUNE_V2_DATA :: deser (version , payload) . map (Self :: PLAY_TUNE_V2) , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => SET_GPS_GLOBAL_ORIGIN_DATA :: deser (version , payload) . map (Self :: SET_GPS_GLOBAL_ORIGIN) , FOLLOW_TARGET_DATA :: ID => FOLLOW_TARGET_DATA :: deser (version , payload) . map (Self :: FOLLOW_TARGET) , MANUAL_SETPOINT_DATA :: ID => MANUAL_SETPOINT_DATA :: deser (version , payload) . map (Self :: MANUAL_SETPOINT) , RC_CHANNELS_OVERRIDE_DATA :: ID => RC_CHANNELS_OVERRIDE_DATA :: deser (version , payload) . map (Self :: RC_CHANNELS_OVERRIDE) , LINK_NODE_STATUS_DATA :: ID => LINK_NODE_STATUS_DATA :: deser (version , payload) . map (Self :: LINK_NODE_STATUS) , GLOBAL_POSITION_INT_DATA :: ID => GLOBAL_POSITION_INT_DATA :: deser (version , payload) . map (Self :: GLOBAL_POSITION_INT) , CAN_FILTER_MODIFY_DATA :: ID => CAN_FILTER_MODIFY_DATA :: deser (version , payload) . map (Self :: CAN_FILTER_MODIFY) , PARAM_EXT_REQUEST_READ_DATA :: ID => PARAM_EXT_REQUEST_READ_DATA :: deser (version , payload) . map (Self :: PARAM_EXT_REQUEST_READ) , UTM_GLOBAL_POSITION_DATA :: ID => UTM_GLOBAL_POSITION_DATA :: deser (version , payload) . map (Self :: UTM_GLOBAL_POSITION) , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => OPEN_DRONE_ID_BASIC_ID_DATA :: deser (version , payload) . map (Self :: OPEN_DRONE_ID_BASIC_ID) , SET_ATTITUDE_TARGET_DATA :: ID => SET_ATTITUDE_TARGET_DATA :: deser (version , payload) . map (Self :: SET_ATTITUDE_TARGET) , BATTERY_STATUS_DATA :: ID => BATTERY_STATUS_DATA :: deser (version , payload) . map (Self :: BATTERY_STATUS) , SCALED_IMU3_DATA :: ID => SCALED_IMU3_DATA :: deser (version , payload) . map (Self :: SCALED_IMU3) , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => MISSION_REQUEST_PARTIAL_LIST_DATA :: deser (version , payload) . map (Self :: MISSION_REQUEST_PARTIAL_LIST) , SETUP_SIGNING_DATA :: ID => SETUP_SIGNING_DATA :: deser (version , payload) . map (Self :: SETUP_SIGNING) , SMART_BATTERY_INFO_DATA :: ID => SMART_BATTERY_INFO_DATA :: deser (version , payload) . map (Self :: SMART_BATTERY_INFO) , MOUNT_ORIENTATION_DATA :: ID => MOUNT_ORIENTATION_DATA :: deser (version , payload) . map (Self :: MOUNT_ORIENTATION) , HOME_POSITION_DATA :: ID => HOME_POSITION_DATA :: deser (version , payload) . map (Self :: HOME_POSITION) , SAFETY_ALLOWED_AREA_DATA :: ID => SAFETY_ALLOWED_AREA_DATA :: deser (version , payload) . map (Self :: SAFETY_ALLOWED_AREA) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: deser (version , payload) . map (Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL) , CONTROL_SYSTEM_STATE_DATA :: ID => CONTROL_SYSTEM_STATE_DATA :: deser (version , payload) . map (Self :: CONTROL_SYSTEM_STATE) , _ => { Err (:: mavlink_core :: error :: ParserError :: UnknownMessage { id }) } , } } fn message_name (& self) -> & 'static str { match self { Self :: MISSION_ACK (..) => MISSION_ACK_DATA :: NAME , Self :: COMMAND_CANCEL (..) => COMMAND_CANCEL_DATA :: NAME , Self :: CAMERA_TRACKING_IMAGE_STATUS (..) => CAMERA_TRACKING_IMAGE_STATUS_DATA :: NAME , Self :: PARAM_VALUE (..) => PARAM_VALUE_DATA :: NAME , Self :: SUPPORTED_TUNES (..) => SUPPORTED_TUNES_DATA :: NAME , Self :: OPEN_DRONE_ID_OPERATOR_ID (..) => OPEN_DRONE_ID_OPERATOR_ID_DATA :: NAME , Self :: SET_HOME_POSITION (..) => SET_HOME_POSITION_DATA :: NAME , Self :: CAMERA_TRACKING_GEO_STATUS (..) => CAMERA_TRACKING_GEO_STATUS_DATA :: NAME , Self :: MISSION_ITEM (..) => MISSION_ITEM_DATA :: NAME , Self :: MISSION_CURRENT (..) => MISSION_CURRENT_DATA :: NAME , Self :: RAW_RPM (..) => RAW_RPM_DATA :: NAME , Self :: VIDEO_STREAM_INFORMATION (..) => VIDEO_STREAM_INFORMATION_DATA :: NAME , Self :: CELLULAR_CONFIG (..) => CELLULAR_CONFIG_DATA :: NAME , Self :: PLAY_TUNE (..) => PLAY_TUNE_DATA :: NAME , Self :: CURRENT_EVENT_SEQUENCE (..) => CURRENT_EVENT_SEQUENCE_DATA :: NAME , Self :: ESC_STATUS (..) => ESC_STATUS_DATA :: NAME , Self :: GPS2_RTK (..) => GPS2_RTK_DATA :: NAME , Self :: DEBUG (..) => DEBUG_DATA :: NAME , Self :: GIMBAL_MANAGER_INFORMATION (..) => GIMBAL_MANAGER_INFORMATION_DATA :: NAME , Self :: NAV_CONTROLLER_OUTPUT (..) => NAV_CONTROLLER_OUTPUT_DATA :: NAME , Self :: PARAM_EXT_ACK (..) => PARAM_EXT_ACK_DATA :: NAME , Self :: TERRAIN_REPORT (..) => TERRAIN_REPORT_DATA :: NAME , Self :: HIL_RC_INPUTS_RAW (..) => HIL_RC_INPUTS_RAW_DATA :: NAME , Self :: ODOMETRY (..) => ODOMETRY_DATA :: NAME , Self :: HIGH_LATENCY (..) => HIGH_LATENCY_DATA :: NAME , Self :: PARAM_REQUEST_READ (..) => PARAM_REQUEST_READ_DATA :: NAME , Self :: ATTITUDE (..) => ATTITUDE_DATA :: NAME , Self :: PARAM_SET (..) => PARAM_SET_DATA :: NAME , Self :: HIGHRES_IMU (..) => HIGHRES_IMU_DATA :: NAME , Self :: SIM_STATE (..) => SIM_STATE_DATA :: NAME , Self :: SCALED_PRESSURE3 (..) => SCALED_PRESSURE3_DATA :: NAME , Self :: PROTOCOL_VERSION (..) => PROTOCOL_VERSION_DATA :: NAME , Self :: GPS_RTK (..) => GPS_RTK_DATA :: NAME , Self :: CHANGE_OPERATOR_CONTROL_ACK (..) => CHANGE_OPERATOR_CONTROL_ACK_DATA :: NAME , Self :: CANFD_FRAME (..) => CANFD_FRAME_DATA :: NAME , Self :: CAMERA_SETTINGS (..) => CAMERA_SETTINGS_DATA :: NAME , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (..) => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: NAME , Self :: OPTICAL_FLOW (..) => OPTICAL_FLOW_DATA :: NAME , Self :: GPS_INPUT (..) => GPS_INPUT_DATA :: NAME , Self :: WIND_COV (..) => WIND_COV_DATA :: NAME , Self :: HYGROMETER_SENSOR (..) => HYGROMETER_SENSOR_DATA :: NAME , Self :: CAN_FRAME (..) => CAN_FRAME_DATA :: NAME , Self :: CAMERA_IMAGE_CAPTURED (..) => CAMERA_IMAGE_CAPTURED_DATA :: NAME , Self :: HIL_STATE_QUATERNION (..) => HIL_STATE_QUATERNION_DATA :: NAME , Self :: OPEN_DRONE_ID_ARM_STATUS (..) => OPEN_DRONE_ID_ARM_STATUS_DATA :: NAME , Self :: MESSAGE_INTERVAL (..) => MESSAGE_INTERVAL_DATA :: NAME , Self :: SCALED_IMU (..) => SCALED_IMU_DATA :: NAME , Self :: STORAGE_INFORMATION (..) => STORAGE_INFORMATION_DATA :: NAME , Self :: FENCE_STATUS (..) => FENCE_STATUS_DATA :: NAME , Self :: NAMED_VALUE_INT (..) => NAMED_VALUE_INT_DATA :: NAME , Self :: VFR_HUD (..) => VFR_HUD_DATA :: NAME , Self :: ESC_INFO (..) => ESC_INFO_DATA :: NAME , Self :: RADIO_STATUS (..) => RADIO_STATUS_DATA :: NAME , Self :: TIME_ESTIMATE_TO_TARGET (..) => TIME_ESTIMATE_TO_TARGET_DATA :: NAME , Self :: HIL_GPS (..) => HIL_GPS_DATA :: NAME , Self :: GPS_RTCM_DATA (..) => GPS_RTCM_DATA_DATA :: NAME , Self :: LOG_REQUEST_END (..) => LOG_REQUEST_END_DATA :: NAME , Self :: FILE_TRANSFER_PROTOCOL (..) => FILE_TRANSFER_PROTOCOL_DATA :: NAME , Self :: TRAJECTORY_REPRESENTATION_BEZIER (..) => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: NAME , Self :: POWER_STATUS (..) => POWER_STATUS_DATA :: NAME , Self :: ATTITUDE_QUATERNION_COV (..) => ATTITUDE_QUATERNION_COV_DATA :: NAME , Self :: COMPONENT_METADATA (..) => COMPONENT_METADATA_DATA :: NAME , Self :: GPS_INJECT_DATA (..) => GPS_INJECT_DATA_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_ATTITUDE (..) => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: NAME , Self :: POSITION_TARGET_GLOBAL_INT (..) => POSITION_TARGET_GLOBAL_INT_DATA :: NAME , Self :: ENCAPSULATED_DATA (..) => ENCAPSULATED_DATA_DATA :: NAME , Self :: VICON_POSITION_ESTIMATE (..) => VICON_POSITION_ESTIMATE_DATA :: NAME , Self :: OPEN_DRONE_ID_SELF_ID (..) => OPEN_DRONE_ID_SELF_ID_DATA :: NAME , Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (..) => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: NAME , Self :: PARAM_EXT_REQUEST_LIST (..) => PARAM_EXT_REQUEST_LIST_DATA :: NAME , Self :: SET_MODE (..) => SET_MODE_DATA :: NAME , Self :: SYSTEM_TIME (..) => SYSTEM_TIME_DATA :: NAME , Self :: ADSB_VEHICLE (..) => ADSB_VEHICLE_DATA :: NAME , Self :: POSITION_TARGET_LOCAL_NED (..) => POSITION_TARGET_LOCAL_NED_DATA :: NAME , Self :: HIL_OPTICAL_FLOW (..) => HIL_OPTICAL_FLOW_DATA :: NAME , Self :: MISSION_REQUEST_LIST (..) => MISSION_REQUEST_LIST_DATA :: NAME , Self :: PING (..) => PING_DATA :: NAME , Self :: NAMED_VALUE_FLOAT (..) => NAMED_VALUE_FLOAT_DATA :: NAME , Self :: HIL_ACTUATOR_CONTROLS (..) => HIL_ACTUATOR_CONTROLS_DATA :: NAME , Self :: CAMERA_FOV_STATUS (..) => CAMERA_FOV_STATUS_DATA :: NAME , Self :: SCALED_PRESSURE2 (..) => SCALED_PRESSURE2_DATA :: NAME , Self :: TUNNEL (..) => TUNNEL_DATA :: NAME , Self :: DATA_STREAM (..) => DATA_STREAM_DATA :: NAME , Self :: GPS_STATUS (..) => GPS_STATUS_DATA :: NAME , Self :: COMMAND_ACK (..) => COMMAND_ACK_DATA :: NAME , Self :: DISTANCE_SENSOR (..) => DISTANCE_SENSOR_DATA :: NAME , Self :: WIFI_CONFIG_AP (..) => WIFI_CONFIG_AP_DATA :: NAME , Self :: OPEN_DRONE_ID_SYSTEM (..) => OPEN_DRONE_ID_SYSTEM_DATA :: NAME , Self :: MISSION_CLEAR_ALL (..) => MISSION_CLEAR_ALL_DATA :: NAME , Self :: OPTICAL_FLOW_RAD (..) => OPTICAL_FLOW_RAD_DATA :: NAME , Self :: ACTUATOR_OUTPUT_STATUS (..) => ACTUATOR_OUTPUT_STATUS_DATA :: NAME , Self :: WHEEL_DISTANCE (..) => WHEEL_DISTANCE_DATA :: NAME , Self :: ATTITUDE_TARGET (..) => ATTITUDE_TARGET_DATA :: NAME , Self :: HEARTBEAT (..) => HEARTBEAT_DATA :: NAME , Self :: MISSION_COUNT (..) => MISSION_COUNT_DATA :: NAME , Self :: AUTH_KEY (..) => AUTH_KEY_DATA :: NAME , Self :: SET_ACTUATOR_CONTROL_TARGET (..) => SET_ACTUATOR_CONTROL_TARGET_DATA :: NAME , Self :: REQUEST_DATA_STREAM (..) => REQUEST_DATA_STREAM_DATA :: NAME , Self :: EXTENDED_SYS_STATE (..) => EXTENDED_SYS_STATE_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_PITCHYAW (..) => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: NAME , Self :: SYS_STATUS (..) => SYS_STATUS_DATA :: NAME , Self :: GENERATOR_STATUS (..) => GENERATOR_STATUS_DATA :: NAME , Self :: GIMBAL_DEVICE_INFORMATION (..) => GIMBAL_DEVICE_INFORMATION_DATA :: NAME , Self :: REQUEST_EVENT (..) => REQUEST_EVENT_DATA :: NAME , Self :: LOCAL_POSITION_NED_COV (..) => LOCAL_POSITION_NED_COV_DATA :: NAME , Self :: SCALED_PRESSURE (..) => SCALED_PRESSURE_DATA :: NAME , Self :: RESOURCE_REQUEST (..) => RESOURCE_REQUEST_DATA :: NAME , Self :: MISSION_REQUEST (..) => MISSION_REQUEST_DATA :: NAME , Self :: CAMERA_TRIGGER (..) => CAMERA_TRIGGER_DATA :: NAME , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (..) => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: NAME , Self :: RAW_PRESSURE (..) => RAW_PRESSURE_DATA :: NAME , Self :: ACTUATOR_CONTROL_TARGET (..) => ACTUATOR_CONTROL_TARGET_DATA :: NAME , Self :: OPEN_DRONE_ID_AUTHENTICATION (..) => OPEN_DRONE_ID_AUTHENTICATION_DATA :: NAME , Self :: LOCAL_POSITION_NED (..) => LOCAL_POSITION_NED_DATA :: NAME , Self :: GLOBAL_VISION_POSITION_ESTIMATE (..) => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: NAME , Self :: MAG_CAL_REPORT (..) => MAG_CAL_REPORT_DATA :: NAME , Self :: CELLULAR_STATUS (..) => CELLULAR_STATUS_DATA :: NAME , Self :: DEBUG_FLOAT_ARRAY (..) => DEBUG_FLOAT_ARRAY_DATA :: NAME , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (..) => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: NAME , Self :: OPEN_DRONE_ID_MESSAGE_PACK (..) => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: NAME , Self :: GIMBAL_DEVICE_SET_ATTITUDE (..) => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: NAME , Self :: MISSION_ITEM_INT (..) => MISSION_ITEM_INT_DATA :: NAME , Self :: TERRAIN_CHECK (..) => TERRAIN_CHECK_DATA :: NAME , Self :: SAFETY_SET_ALLOWED_AREA (..) => SAFETY_SET_ALLOWED_AREA_DATA :: NAME , Self :: UAVIONIX_ADSB_OUT_DYNAMIC (..) => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: NAME , Self :: VISION_POSITION_ESTIMATE (..) => VISION_POSITION_ESTIMATE_DATA :: NAME , Self :: ORBIT_EXECUTION_STATUS (..) => ORBIT_EXECUTION_STATUS_DATA :: NAME , Self :: SET_POSITION_TARGET_LOCAL_NED (..) => SET_POSITION_TARGET_LOCAL_NED_DATA :: NAME , Self :: ALTITUDE (..) => ALTITUDE_DATA :: NAME , Self :: CHANGE_OPERATOR_CONTROL (..) => CHANGE_OPERATOR_CONTROL_DATA :: NAME , Self :: MISSION_REQUEST_INT (..) => MISSION_REQUEST_INT_DATA :: NAME , Self :: LOG_REQUEST_LIST (..) => LOG_REQUEST_LIST_DATA :: NAME , Self :: RC_CHANNELS (..) => RC_CHANNELS_DATA :: NAME , Self :: VIDEO_STREAM_STATUS (..) => VIDEO_STREAM_STATUS_DATA :: NAME , Self :: MISSION_WRITE_PARTIAL_LIST (..) => MISSION_WRITE_PARTIAL_LIST_DATA :: NAME , Self :: ATT_POS_MOCAP (..) => ATT_POS_MOCAP_DATA :: NAME , Self :: UAVCAN_NODE_STATUS (..) => UAVCAN_NODE_STATUS_DATA :: NAME , Self :: ONBOARD_COMPUTER_STATUS (..) => ONBOARD_COMPUTER_STATUS_DATA :: NAME , Self :: RAW_IMU (..) => RAW_IMU_DATA :: NAME , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (..) => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: NAME , Self :: MANUAL_CONTROL (..) => MANUAL_CONTROL_DATA :: NAME , Self :: SERVO_OUTPUT_RAW (..) => SERVO_OUTPUT_RAW_DATA :: NAME , Self :: ATTITUDE_QUATERNION (..) => ATTITUDE_QUATERNION_DATA :: NAME , Self :: MISSION_ITEM_REACHED (..) => MISSION_ITEM_REACHED_DATA :: NAME , Self :: DATA_TRANSMISSION_HANDSHAKE (..) => DATA_TRANSMISSION_HANDSHAKE_DATA :: NAME , Self :: STATUSTEXT (..) => STATUSTEXT_DATA :: NAME , Self :: LOGGING_DATA (..) => LOGGING_DATA_DATA :: NAME , Self :: RC_CHANNELS_SCALED (..) => RC_CHANNELS_SCALED_DATA :: NAME , Self :: MEMORY_VECT (..) => MEMORY_VECT_DATA :: NAME , Self :: LOG_ENTRY (..) => LOG_ENTRY_DATA :: NAME , Self :: HIL_CONTROLS (..) => HIL_CONTROLS_DATA :: NAME , Self :: LOG_REQUEST_DATA (..) => LOG_REQUEST_DATA_DATA :: NAME , Self :: TERRAIN_REQUEST (..) => TERRAIN_REQUEST_DATA :: NAME , Self :: ISBD_LINK_STATUS (..) => ISBD_LINK_STATUS_DATA :: NAME , Self :: SET_POSITION_TARGET_GLOBAL_INT (..) => SET_POSITION_TARGET_GLOBAL_INT_DATA :: NAME , Self :: HIL_SENSOR (..) => HIL_SENSOR_DATA :: NAME , Self :: V2_EXTENSION (..) => V2_EXTENSION_DATA :: NAME , Self :: COMMAND_LONG (..) => COMMAND_LONG_DATA :: NAME , Self :: UAVIONIX_ADSB_OUT_CFG (..) => UAVIONIX_ADSB_OUT_CFG_DATA :: NAME , Self :: ESTIMATOR_STATUS (..) => ESTIMATOR_STATUS_DATA :: NAME , Self :: HIGH_LATENCY2 (..) => HIGH_LATENCY2_DATA :: NAME , Self :: AUTOPILOT_VERSION (..) => AUTOPILOT_VERSION_DATA :: NAME , Self :: DEBUG_VECT (..) => DEBUG_VECT_DATA :: NAME , Self :: COMPONENT_INFORMATION (..) => COMPONENT_INFORMATION_DATA :: NAME , Self :: PARAM_MAP_RC (..) => PARAM_MAP_RC_DATA :: NAME , Self :: CAMERA_INFORMATION (..) => CAMERA_INFORMATION_DATA :: NAME , Self :: VIBRATION (..) => VIBRATION_DATA :: NAME , Self :: OBSTACLE_DISTANCE (..) => OBSTACLE_DISTANCE_DATA :: NAME , Self :: RC_CHANNELS_RAW (..) => RC_CHANNELS_RAW_DATA :: NAME , Self :: UAVCAN_NODE_INFO (..) => UAVCAN_NODE_INFO_DATA :: NAME , Self :: EVENT (..) => EVENT_DATA :: NAME , Self :: FLIGHT_INFORMATION (..) => FLIGHT_INFORMATION_DATA :: NAME , Self :: PARAM_EXT_SET (..) => PARAM_EXT_SET_DATA :: NAME , Self :: CAMERA_CAPTURE_STATUS (..) => CAMERA_CAPTURE_STATUS_DATA :: NAME , Self :: LANDING_TARGET (..) => LANDING_TARGET_DATA :: NAME , Self :: TIMESYNC (..) => TIMESYNC_DATA :: NAME , Self :: EFI_STATUS (..) => EFI_STATUS_DATA :: NAME , Self :: VISION_SPEED_ESTIMATE (..) => VISION_SPEED_ESTIMATE_DATA :: NAME , Self :: GPS2_RAW (..) => GPS2_RAW_DATA :: NAME , Self :: COMMAND_INT (..) => COMMAND_INT_DATA :: NAME , Self :: MISSION_SET_CURRENT (..) => MISSION_SET_CURRENT_DATA :: NAME , Self :: LOG_ERASE (..) => LOG_ERASE_DATA :: NAME , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (..) => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: NAME , Self :: HIL_STATE (..) => HIL_STATE_DATA :: NAME , Self :: BUTTON_CHANGE (..) => BUTTON_CHANGE_DATA :: NAME , Self :: GPS_RAW_INT (..) => GPS_RAW_INT_DATA :: NAME , Self :: COLLISION (..) => COLLISION_DATA :: NAME , Self :: AIS_VESSEL (..) => AIS_VESSEL_DATA :: NAME , Self :: TERRAIN_DATA (..) => TERRAIN_DATA_DATA :: NAME , Self :: GPS_GLOBAL_ORIGIN (..) => GPS_GLOBAL_ORIGIN_DATA :: NAME , Self :: OPEN_DRONE_ID_LOCATION (..) => OPEN_DRONE_ID_LOCATION_DATA :: NAME , Self :: SCALED_IMU2 (..) => SCALED_IMU2_DATA :: NAME , Self :: RESPONSE_EVENT_ERROR (..) => RESPONSE_EVENT_ERROR_DATA :: NAME , Self :: GIMBAL_MANAGER_STATUS (..) => GIMBAL_MANAGER_STATUS_DATA :: NAME , Self :: SERIAL_CONTROL (..) => SERIAL_CONTROL_DATA :: NAME , Self :: WINCH_STATUS (..) => WINCH_STATUS_DATA :: NAME , Self :: PARAM_REQUEST_LIST (..) => PARAM_REQUEST_LIST_DATA :: NAME , Self :: LOGGING_DATA_ACKED (..) => LOGGING_DATA_ACKED_DATA :: NAME , Self :: GLOBAL_POSITION_INT_COV (..) => GLOBAL_POSITION_INT_COV_DATA :: NAME , Self :: LOGGING_ACK (..) => LOGGING_ACK_DATA :: NAME , Self :: LOG_DATA (..) => LOG_DATA_DATA :: NAME , Self :: PARAM_EXT_VALUE (..) => PARAM_EXT_VALUE_DATA :: NAME , Self :: PLAY_TUNE_V2 (..) => PLAY_TUNE_V2_DATA :: NAME , Self :: SET_GPS_GLOBAL_ORIGIN (..) => SET_GPS_GLOBAL_ORIGIN_DATA :: NAME , Self :: FOLLOW_TARGET (..) => FOLLOW_TARGET_DATA :: NAME , Self :: MANUAL_SETPOINT (..) => MANUAL_SETPOINT_DATA :: NAME , Self :: RC_CHANNELS_OVERRIDE (..) => RC_CHANNELS_OVERRIDE_DATA :: NAME , Self :: LINK_NODE_STATUS (..) => LINK_NODE_STATUS_DATA :: NAME , Self :: GLOBAL_POSITION_INT (..) => GLOBAL_POSITION_INT_DATA :: NAME , Self :: CAN_FILTER_MODIFY (..) => CAN_FILTER_MODIFY_DATA :: NAME , Self :: PARAM_EXT_REQUEST_READ (..) => PARAM_EXT_REQUEST_READ_DATA :: NAME , Self :: UTM_GLOBAL_POSITION (..) => UTM_GLOBAL_POSITION_DATA :: NAME , Self :: OPEN_DRONE_ID_BASIC_ID (..) => OPEN_DRONE_ID_BASIC_ID_DATA :: NAME , Self :: SET_ATTITUDE_TARGET (..) => SET_ATTITUDE_TARGET_DATA :: NAME , Self :: BATTERY_STATUS (..) => BATTERY_STATUS_DATA :: NAME , Self :: SCALED_IMU3 (..) => SCALED_IMU3_DATA :: NAME , Self :: MISSION_REQUEST_PARTIAL_LIST (..) => MISSION_REQUEST_PARTIAL_LIST_DATA :: NAME , Self :: SETUP_SIGNING (..) => SETUP_SIGNING_DATA :: NAME , Self :: SMART_BATTERY_INFO (..) => SMART_BATTERY_INFO_DATA :: NAME , Self :: MOUNT_ORIENTATION (..) => MOUNT_ORIENTATION_DATA :: NAME , Self :: HOME_POSITION (..) => HOME_POSITION_DATA :: NAME , Self :: SAFETY_ALLOWED_AREA (..) => SAFETY_ALLOWED_AREA_DATA :: NAME , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (..) => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: NAME , Self :: CONTROL_SYSTEM_STATE (..) => CONTROL_SYSTEM_STATE_DATA :: NAME , } } fn message_id (& self) -> u32 { match self { Self :: MISSION_ACK (..) => MISSION_ACK_DATA :: ID , Self :: COMMAND_CANCEL (..) => COMMAND_CANCEL_DATA :: ID , Self :: CAMERA_TRACKING_IMAGE_STATUS (..) => CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID , Self :: PARAM_VALUE (..) => PARAM_VALUE_DATA :: ID , Self :: SUPPORTED_TUNES (..) => SUPPORTED_TUNES_DATA :: ID , Self :: OPEN_DRONE_ID_OPERATOR_ID (..) => OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID , Self :: SET_HOME_POSITION (..) => SET_HOME_POSITION_DATA :: ID , Self :: CAMERA_TRACKING_GEO_STATUS (..) => CAMERA_TRACKING_GEO_STATUS_DATA :: ID , Self :: MISSION_ITEM (..) => MISSION_ITEM_DATA :: ID , Self :: MISSION_CURRENT (..) => MISSION_CURRENT_DATA :: ID , Self :: RAW_RPM (..) => RAW_RPM_DATA :: ID , Self :: VIDEO_STREAM_INFORMATION (..) => VIDEO_STREAM_INFORMATION_DATA :: ID , Self :: CELLULAR_CONFIG (..) => CELLULAR_CONFIG_DATA :: ID , Self :: PLAY_TUNE (..) => PLAY_TUNE_DATA :: ID , Self :: CURRENT_EVENT_SEQUENCE (..) => CURRENT_EVENT_SEQUENCE_DATA :: ID , Self :: ESC_STATUS (..) => ESC_STATUS_DATA :: ID , Self :: GPS2_RTK (..) => GPS2_RTK_DATA :: ID , Self :: DEBUG (..) => DEBUG_DATA :: ID , Self :: GIMBAL_MANAGER_INFORMATION (..) => GIMBAL_MANAGER_INFORMATION_DATA :: ID , Self :: NAV_CONTROLLER_OUTPUT (..) => NAV_CONTROLLER_OUTPUT_DATA :: ID , Self :: PARAM_EXT_ACK (..) => PARAM_EXT_ACK_DATA :: ID , Self :: TERRAIN_REPORT (..) => TERRAIN_REPORT_DATA :: ID , Self :: HIL_RC_INPUTS_RAW (..) => HIL_RC_INPUTS_RAW_DATA :: ID , Self :: ODOMETRY (..) => ODOMETRY_DATA :: ID , Self :: HIGH_LATENCY (..) => HIGH_LATENCY_DATA :: ID , Self :: PARAM_REQUEST_READ (..) => PARAM_REQUEST_READ_DATA :: ID , Self :: ATTITUDE (..) => ATTITUDE_DATA :: ID , Self :: PARAM_SET (..) => PARAM_SET_DATA :: ID , Self :: HIGHRES_IMU (..) => HIGHRES_IMU_DATA :: ID , Self :: SIM_STATE (..) => SIM_STATE_DATA :: ID , Self :: SCALED_PRESSURE3 (..) => SCALED_PRESSURE3_DATA :: ID , Self :: PROTOCOL_VERSION (..) => PROTOCOL_VERSION_DATA :: ID , Self :: GPS_RTK (..) => GPS_RTK_DATA :: ID , Self :: CHANGE_OPERATOR_CONTROL_ACK (..) => CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID , Self :: CANFD_FRAME (..) => CANFD_FRAME_DATA :: ID , Self :: CAMERA_SETTINGS (..) => CAMERA_SETTINGS_DATA :: ID , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (..) => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID , Self :: OPTICAL_FLOW (..) => OPTICAL_FLOW_DATA :: ID , Self :: GPS_INPUT (..) => GPS_INPUT_DATA :: ID , Self :: WIND_COV (..) => WIND_COV_DATA :: ID , Self :: HYGROMETER_SENSOR (..) => HYGROMETER_SENSOR_DATA :: ID , Self :: CAN_FRAME (..) => CAN_FRAME_DATA :: ID , Self :: CAMERA_IMAGE_CAPTURED (..) => CAMERA_IMAGE_CAPTURED_DATA :: ID , Self :: HIL_STATE_QUATERNION (..) => HIL_STATE_QUATERNION_DATA :: ID , Self :: OPEN_DRONE_ID_ARM_STATUS (..) => OPEN_DRONE_ID_ARM_STATUS_DATA :: ID , Self :: MESSAGE_INTERVAL (..) => MESSAGE_INTERVAL_DATA :: ID , Self :: SCALED_IMU (..) => SCALED_IMU_DATA :: ID , Self :: STORAGE_INFORMATION (..) => STORAGE_INFORMATION_DATA :: ID , Self :: FENCE_STATUS (..) => FENCE_STATUS_DATA :: ID , Self :: NAMED_VALUE_INT (..) => NAMED_VALUE_INT_DATA :: ID , Self :: VFR_HUD (..) => VFR_HUD_DATA :: ID , Self :: ESC_INFO (..) => ESC_INFO_DATA :: ID , Self :: RADIO_STATUS (..) => RADIO_STATUS_DATA :: ID , Self :: TIME_ESTIMATE_TO_TARGET (..) => TIME_ESTIMATE_TO_TARGET_DATA :: ID , Self :: HIL_GPS (..) => HIL_GPS_DATA :: ID , Self :: GPS_RTCM_DATA (..) => GPS_RTCM_DATA_DATA :: ID , Self :: LOG_REQUEST_END (..) => LOG_REQUEST_END_DATA :: ID , Self :: FILE_TRANSFER_PROTOCOL (..) => FILE_TRANSFER_PROTOCOL_DATA :: ID , Self :: TRAJECTORY_REPRESENTATION_BEZIER (..) => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID , Self :: POWER_STATUS (..) => POWER_STATUS_DATA :: ID , Self :: ATTITUDE_QUATERNION_COV (..) => ATTITUDE_QUATERNION_COV_DATA :: ID , Self :: COMPONENT_METADATA (..) => COMPONENT_METADATA_DATA :: ID , Self :: GPS_INJECT_DATA (..) => GPS_INJECT_DATA_DATA :: ID , Self :: GIMBAL_MANAGER_SET_ATTITUDE (..) => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID , Self :: POSITION_TARGET_GLOBAL_INT (..) => POSITION_TARGET_GLOBAL_INT_DATA :: ID , Self :: ENCAPSULATED_DATA (..) => ENCAPSULATED_DATA_DATA :: ID , Self :: VICON_POSITION_ESTIMATE (..) => VICON_POSITION_ESTIMATE_DATA :: ID , Self :: OPEN_DRONE_ID_SELF_ID (..) => OPEN_DRONE_ID_SELF_ID_DATA :: ID , Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (..) => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID , Self :: PARAM_EXT_REQUEST_LIST (..) => PARAM_EXT_REQUEST_LIST_DATA :: ID , Self :: SET_MODE (..) => SET_MODE_DATA :: ID , Self :: SYSTEM_TIME (..) => SYSTEM_TIME_DATA :: ID , Self :: ADSB_VEHICLE (..) => ADSB_VEHICLE_DATA :: ID , Self :: POSITION_TARGET_LOCAL_NED (..) => POSITION_TARGET_LOCAL_NED_DATA :: ID , Self :: HIL_OPTICAL_FLOW (..) => HIL_OPTICAL_FLOW_DATA :: ID , Self :: MISSION_REQUEST_LIST (..) => MISSION_REQUEST_LIST_DATA :: ID , Self :: PING (..) => PING_DATA :: ID , Self :: NAMED_VALUE_FLOAT (..) => NAMED_VALUE_FLOAT_DATA :: ID , Self :: HIL_ACTUATOR_CONTROLS (..) => HIL_ACTUATOR_CONTROLS_DATA :: ID , Self :: CAMERA_FOV_STATUS (..) => CAMERA_FOV_STATUS_DATA :: ID , Self :: SCALED_PRESSURE2 (..) => SCALED_PRESSURE2_DATA :: ID , Self :: TUNNEL (..) => TUNNEL_DATA :: ID , Self :: DATA_STREAM (..) => DATA_STREAM_DATA :: ID , Self :: GPS_STATUS (..) => GPS_STATUS_DATA :: ID , Self :: COMMAND_ACK (..) => COMMAND_ACK_DATA :: ID , Self :: DISTANCE_SENSOR (..) => DISTANCE_SENSOR_DATA :: ID , Self :: WIFI_CONFIG_AP (..) => WIFI_CONFIG_AP_DATA :: ID , Self :: OPEN_DRONE_ID_SYSTEM (..) => OPEN_DRONE_ID_SYSTEM_DATA :: ID , Self :: MISSION_CLEAR_ALL (..) => MISSION_CLEAR_ALL_DATA :: ID , Self :: OPTICAL_FLOW_RAD (..) => OPTICAL_FLOW_RAD_DATA :: ID , Self :: ACTUATOR_OUTPUT_STATUS (..) => ACTUATOR_OUTPUT_STATUS_DATA :: ID , Self :: WHEEL_DISTANCE (..) => WHEEL_DISTANCE_DATA :: ID , Self :: ATTITUDE_TARGET (..) => ATTITUDE_TARGET_DATA :: ID , Self :: HEARTBEAT (..) => HEARTBEAT_DATA :: ID , Self :: MISSION_COUNT (..) => MISSION_COUNT_DATA :: ID , Self :: AUTH_KEY (..) => AUTH_KEY_DATA :: ID , Self :: SET_ACTUATOR_CONTROL_TARGET (..) => SET_ACTUATOR_CONTROL_TARGET_DATA :: ID , Self :: REQUEST_DATA_STREAM (..) => REQUEST_DATA_STREAM_DATA :: ID , Self :: EXTENDED_SYS_STATE (..) => EXTENDED_SYS_STATE_DATA :: ID , Self :: GIMBAL_MANAGER_SET_PITCHYAW (..) => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID , Self :: SYS_STATUS (..) => SYS_STATUS_DATA :: ID , Self :: GENERATOR_STATUS (..) => GENERATOR_STATUS_DATA :: ID , Self :: GIMBAL_DEVICE_INFORMATION (..) => GIMBAL_DEVICE_INFORMATION_DATA :: ID , Self :: REQUEST_EVENT (..) => REQUEST_EVENT_DATA :: ID , Self :: LOCAL_POSITION_NED_COV (..) => LOCAL_POSITION_NED_COV_DATA :: ID , Self :: SCALED_PRESSURE (..) => SCALED_PRESSURE_DATA :: ID , Self :: RESOURCE_REQUEST (..) => RESOURCE_REQUEST_DATA :: ID , Self :: MISSION_REQUEST (..) => MISSION_REQUEST_DATA :: ID , Self :: CAMERA_TRIGGER (..) => CAMERA_TRIGGER_DATA :: ID , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (..) => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID , Self :: RAW_PRESSURE (..) => RAW_PRESSURE_DATA :: ID , Self :: ACTUATOR_CONTROL_TARGET (..) => ACTUATOR_CONTROL_TARGET_DATA :: ID , Self :: OPEN_DRONE_ID_AUTHENTICATION (..) => OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID , Self :: LOCAL_POSITION_NED (..) => LOCAL_POSITION_NED_DATA :: ID , Self :: GLOBAL_VISION_POSITION_ESTIMATE (..) => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID , Self :: MAG_CAL_REPORT (..) => MAG_CAL_REPORT_DATA :: ID , Self :: CELLULAR_STATUS (..) => CELLULAR_STATUS_DATA :: ID , Self :: DEBUG_FLOAT_ARRAY (..) => DEBUG_FLOAT_ARRAY_DATA :: ID , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (..) => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID , Self :: OPEN_DRONE_ID_MESSAGE_PACK (..) => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID , Self :: GIMBAL_DEVICE_SET_ATTITUDE (..) => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID , Self :: MISSION_ITEM_INT (..) => MISSION_ITEM_INT_DATA :: ID , Self :: TERRAIN_CHECK (..) => TERRAIN_CHECK_DATA :: ID , Self :: SAFETY_SET_ALLOWED_AREA (..) => SAFETY_SET_ALLOWED_AREA_DATA :: ID , Self :: UAVIONIX_ADSB_OUT_DYNAMIC (..) => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID , Self :: VISION_POSITION_ESTIMATE (..) => VISION_POSITION_ESTIMATE_DATA :: ID , Self :: ORBIT_EXECUTION_STATUS (..) => ORBIT_EXECUTION_STATUS_DATA :: ID , Self :: SET_POSITION_TARGET_LOCAL_NED (..) => SET_POSITION_TARGET_LOCAL_NED_DATA :: ID , Self :: ALTITUDE (..) => ALTITUDE_DATA :: ID , Self :: CHANGE_OPERATOR_CONTROL (..) => CHANGE_OPERATOR_CONTROL_DATA :: ID , Self :: MISSION_REQUEST_INT (..) => MISSION_REQUEST_INT_DATA :: ID , Self :: LOG_REQUEST_LIST (..) => LOG_REQUEST_LIST_DATA :: ID , Self :: RC_CHANNELS (..) => RC_CHANNELS_DATA :: ID , Self :: VIDEO_STREAM_STATUS (..) => VIDEO_STREAM_STATUS_DATA :: ID , Self :: MISSION_WRITE_PARTIAL_LIST (..) => MISSION_WRITE_PARTIAL_LIST_DATA :: ID , Self :: ATT_POS_MOCAP (..) => ATT_POS_MOCAP_DATA :: ID , Self :: UAVCAN_NODE_STATUS (..) => UAVCAN_NODE_STATUS_DATA :: ID , Self :: ONBOARD_COMPUTER_STATUS (..) => ONBOARD_COMPUTER_STATUS_DATA :: ID , Self :: RAW_IMU (..) => RAW_IMU_DATA :: ID , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (..) => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID , Self :: MANUAL_CONTROL (..) => MANUAL_CONTROL_DATA :: ID , Self :: SERVO_OUTPUT_RAW (..) => SERVO_OUTPUT_RAW_DATA :: ID , Self :: ATTITUDE_QUATERNION (..) => ATTITUDE_QUATERNION_DATA :: ID , Self :: MISSION_ITEM_REACHED (..) => MISSION_ITEM_REACHED_DATA :: ID , Self :: DATA_TRANSMISSION_HANDSHAKE (..) => DATA_TRANSMISSION_HANDSHAKE_DATA :: ID , Self :: STATUSTEXT (..) => STATUSTEXT_DATA :: ID , Self :: LOGGING_DATA (..) => LOGGING_DATA_DATA :: ID , Self :: RC_CHANNELS_SCALED (..) => RC_CHANNELS_SCALED_DATA :: ID , Self :: MEMORY_VECT (..) => MEMORY_VECT_DATA :: ID , Self :: LOG_ENTRY (..) => LOG_ENTRY_DATA :: ID , Self :: HIL_CONTROLS (..) => HIL_CONTROLS_DATA :: ID , Self :: LOG_REQUEST_DATA (..) => LOG_REQUEST_DATA_DATA :: ID , Self :: TERRAIN_REQUEST (..) => TERRAIN_REQUEST_DATA :: ID , Self :: ISBD_LINK_STATUS (..) => ISBD_LINK_STATUS_DATA :: ID , Self :: SET_POSITION_TARGET_GLOBAL_INT (..) => SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID , Self :: HIL_SENSOR (..) => HIL_SENSOR_DATA :: ID , Self :: V2_EXTENSION (..) => V2_EXTENSION_DATA :: ID , Self :: COMMAND_LONG (..) => COMMAND_LONG_DATA :: ID , Self :: UAVIONIX_ADSB_OUT_CFG (..) => UAVIONIX_ADSB_OUT_CFG_DATA :: ID , Self :: ESTIMATOR_STATUS (..) => ESTIMATOR_STATUS_DATA :: ID , Self :: HIGH_LATENCY2 (..) => HIGH_LATENCY2_DATA :: ID , Self :: AUTOPILOT_VERSION (..) => AUTOPILOT_VERSION_DATA :: ID , Self :: DEBUG_VECT (..) => DEBUG_VECT_DATA :: ID , Self :: COMPONENT_INFORMATION (..) => COMPONENT_INFORMATION_DATA :: ID , Self :: PARAM_MAP_RC (..) => PARAM_MAP_RC_DATA :: ID , Self :: CAMERA_INFORMATION (..) => CAMERA_INFORMATION_DATA :: ID , Self :: VIBRATION (..) => VIBRATION_DATA :: ID , Self :: OBSTACLE_DISTANCE (..) => OBSTACLE_DISTANCE_DATA :: ID , Self :: RC_CHANNELS_RAW (..) => RC_CHANNELS_RAW_DATA :: ID , Self :: UAVCAN_NODE_INFO (..) => UAVCAN_NODE_INFO_DATA :: ID , Self :: EVENT (..) => EVENT_DATA :: ID , Self :: FLIGHT_INFORMATION (..) => FLIGHT_INFORMATION_DATA :: ID , Self :: PARAM_EXT_SET (..) => PARAM_EXT_SET_DATA :: ID , Self :: CAMERA_CAPTURE_STATUS (..) => CAMERA_CAPTURE_STATUS_DATA :: ID , Self :: LANDING_TARGET (..) => LANDING_TARGET_DATA :: ID , Self :: TIMESYNC (..) => TIMESYNC_DATA :: ID , Self :: EFI_STATUS (..) => EFI_STATUS_DATA :: ID , Self :: VISION_SPEED_ESTIMATE (..) => VISION_SPEED_ESTIMATE_DATA :: ID , Self :: GPS2_RAW (..) => GPS2_RAW_DATA :: ID , Self :: COMMAND_INT (..) => COMMAND_INT_DATA :: ID , Self :: MISSION_SET_CURRENT (..) => MISSION_SET_CURRENT_DATA :: ID , Self :: LOG_ERASE (..) => LOG_ERASE_DATA :: ID , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (..) => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID , Self :: HIL_STATE (..) => HIL_STATE_DATA :: ID , Self :: BUTTON_CHANGE (..) => BUTTON_CHANGE_DATA :: ID , Self :: GPS_RAW_INT (..) => GPS_RAW_INT_DATA :: ID , Self :: COLLISION (..) => COLLISION_DATA :: ID , Self :: AIS_VESSEL (..) => AIS_VESSEL_DATA :: ID , Self :: TERRAIN_DATA (..) => TERRAIN_DATA_DATA :: ID , Self :: GPS_GLOBAL_ORIGIN (..) => GPS_GLOBAL_ORIGIN_DATA :: ID , Self :: OPEN_DRONE_ID_LOCATION (..) => OPEN_DRONE_ID_LOCATION_DATA :: ID , Self :: SCALED_IMU2 (..) => SCALED_IMU2_DATA :: ID , Self :: RESPONSE_EVENT_ERROR (..) => RESPONSE_EVENT_ERROR_DATA :: ID , Self :: GIMBAL_MANAGER_STATUS (..) => GIMBAL_MANAGER_STATUS_DATA :: ID , Self :: SERIAL_CONTROL (..) => SERIAL_CONTROL_DATA :: ID , Self :: WINCH_STATUS (..) => WINCH_STATUS_DATA :: ID , Self :: PARAM_REQUEST_LIST (..) => PARAM_REQUEST_LIST_DATA :: ID , Self :: LOGGING_DATA_ACKED (..) => LOGGING_DATA_ACKED_DATA :: ID , Self :: GLOBAL_POSITION_INT_COV (..) => GLOBAL_POSITION_INT_COV_DATA :: ID , Self :: LOGGING_ACK (..) => LOGGING_ACK_DATA :: ID , Self :: LOG_DATA (..) => LOG_DATA_DATA :: ID , Self :: PARAM_EXT_VALUE (..) => PARAM_EXT_VALUE_DATA :: ID , Self :: PLAY_TUNE_V2 (..) => PLAY_TUNE_V2_DATA :: ID , Self :: SET_GPS_GLOBAL_ORIGIN (..) => SET_GPS_GLOBAL_ORIGIN_DATA :: ID , Self :: FOLLOW_TARGET (..) => FOLLOW_TARGET_DATA :: ID , Self :: MANUAL_SETPOINT (..) => MANUAL_SETPOINT_DATA :: ID , Self :: RC_CHANNELS_OVERRIDE (..) => RC_CHANNELS_OVERRIDE_DATA :: ID , Self :: LINK_NODE_STATUS (..) => LINK_NODE_STATUS_DATA :: ID , Self :: GLOBAL_POSITION_INT (..) => GLOBAL_POSITION_INT_DATA :: ID , Self :: CAN_FILTER_MODIFY (..) => CAN_FILTER_MODIFY_DATA :: ID , Self :: PARAM_EXT_REQUEST_READ (..) => PARAM_EXT_REQUEST_READ_DATA :: ID , Self :: UTM_GLOBAL_POSITION (..) => UTM_GLOBAL_POSITION_DATA :: ID , Self :: OPEN_DRONE_ID_BASIC_ID (..) => OPEN_DRONE_ID_BASIC_ID_DATA :: ID , Self :: SET_ATTITUDE_TARGET (..) => SET_ATTITUDE_TARGET_DATA :: ID , Self :: BATTERY_STATUS (..) => BATTERY_STATUS_DATA :: ID , Self :: SCALED_IMU3 (..) => SCALED_IMU3_DATA :: ID , Self :: MISSION_REQUEST_PARTIAL_LIST (..) => MISSION_REQUEST_PARTIAL_LIST_DATA :: ID , Self :: SETUP_SIGNING (..) => SETUP_SIGNING_DATA :: ID , Self :: SMART_BATTERY_INFO (..) => SMART_BATTERY_INFO_DATA :: ID , Self :: MOUNT_ORIENTATION (..) => MOUNT_ORIENTATION_DATA :: ID , Self :: HOME_POSITION (..) => HOME_POSITION_DATA :: ID , Self :: SAFETY_ALLOWED_AREA (..) => SAFETY_ALLOWED_AREA_DATA :: ID , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (..) => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID , Self :: CONTROL_SYSTEM_STATE (..) => CONTROL_SYSTEM_STATE_DATA :: ID , } } fn message_id_from_name (name : & str) -> Result < u32 , & 'static str > { match name { MISSION_ACK_DATA :: NAME => Ok (MISSION_ACK_DATA :: ID) , COMMAND_CANCEL_DATA :: NAME => Ok (COMMAND_CANCEL_DATA :: ID) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: NAME => Ok (CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID) , PARAM_VALUE_DATA :: NAME => Ok (PARAM_VALUE_DATA :: ID) , SUPPORTED_TUNES_DATA :: NAME => Ok (SUPPORTED_TUNES_DATA :: ID) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID) , SET_HOME_POSITION_DATA :: NAME => Ok (SET_HOME_POSITION_DATA :: ID) , CAMERA_TRACKING_GEO_STATUS_DATA :: NAME => Ok (CAMERA_TRACKING_GEO_STATUS_DATA :: ID) , MISSION_ITEM_DATA :: NAME => Ok (MISSION_ITEM_DATA :: ID) , MISSION_CURRENT_DATA :: NAME => Ok (MISSION_CURRENT_DATA :: ID) , RAW_RPM_DATA :: NAME => Ok (RAW_RPM_DATA :: ID) , VIDEO_STREAM_INFORMATION_DATA :: NAME => Ok (VIDEO_STREAM_INFORMATION_DATA :: ID) , CELLULAR_CONFIG_DATA :: NAME => Ok (CELLULAR_CONFIG_DATA :: ID) , PLAY_TUNE_DATA :: NAME => Ok (PLAY_TUNE_DATA :: ID) , CURRENT_EVENT_SEQUENCE_DATA :: NAME => Ok (CURRENT_EVENT_SEQUENCE_DATA :: ID) , ESC_STATUS_DATA :: NAME => Ok (ESC_STATUS_DATA :: ID) , GPS2_RTK_DATA :: NAME => Ok (GPS2_RTK_DATA :: ID) , DEBUG_DATA :: NAME => Ok (DEBUG_DATA :: ID) , GIMBAL_MANAGER_INFORMATION_DATA :: NAME => Ok (GIMBAL_MANAGER_INFORMATION_DATA :: ID) , NAV_CONTROLLER_OUTPUT_DATA :: NAME => Ok (NAV_CONTROLLER_OUTPUT_DATA :: ID) , PARAM_EXT_ACK_DATA :: NAME => Ok (PARAM_EXT_ACK_DATA :: ID) , TERRAIN_REPORT_DATA :: NAME => Ok (TERRAIN_REPORT_DATA :: ID) , HIL_RC_INPUTS_RAW_DATA :: NAME => Ok (HIL_RC_INPUTS_RAW_DATA :: ID) , ODOMETRY_DATA :: NAME => Ok (ODOMETRY_DATA :: ID) , HIGH_LATENCY_DATA :: NAME => Ok (HIGH_LATENCY_DATA :: ID) , PARAM_REQUEST_READ_DATA :: NAME => Ok (PARAM_REQUEST_READ_DATA :: ID) , ATTITUDE_DATA :: NAME => Ok (ATTITUDE_DATA :: ID) , PARAM_SET_DATA :: NAME => Ok (PARAM_SET_DATA :: ID) , HIGHRES_IMU_DATA :: NAME => Ok (HIGHRES_IMU_DATA :: ID) , SIM_STATE_DATA :: NAME => Ok (SIM_STATE_DATA :: ID) , SCALED_PRESSURE3_DATA :: NAME => Ok (SCALED_PRESSURE3_DATA :: ID) , PROTOCOL_VERSION_DATA :: NAME => Ok (PROTOCOL_VERSION_DATA :: ID) , GPS_RTK_DATA :: NAME => Ok (GPS_RTK_DATA :: ID) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: NAME => Ok (CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID) , CANFD_FRAME_DATA :: NAME => Ok (CANFD_FRAME_DATA :: ID) , CAMERA_SETTINGS_DATA :: NAME => Ok (CAMERA_SETTINGS_DATA :: ID) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: NAME => Ok (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID) , OPTICAL_FLOW_DATA :: NAME => Ok (OPTICAL_FLOW_DATA :: ID) , GPS_INPUT_DATA :: NAME => Ok (GPS_INPUT_DATA :: ID) , WIND_COV_DATA :: NAME => Ok (WIND_COV_DATA :: ID) , HYGROMETER_SENSOR_DATA :: NAME => Ok (HYGROMETER_SENSOR_DATA :: ID) , CAN_FRAME_DATA :: NAME => Ok (CAN_FRAME_DATA :: ID) , CAMERA_IMAGE_CAPTURED_DATA :: NAME => Ok (CAMERA_IMAGE_CAPTURED_DATA :: ID) , HIL_STATE_QUATERNION_DATA :: NAME => Ok (HIL_STATE_QUATERNION_DATA :: ID) , OPEN_DRONE_ID_ARM_STATUS_DATA :: NAME => Ok (OPEN_DRONE_ID_ARM_STATUS_DATA :: ID) , MESSAGE_INTERVAL_DATA :: NAME => Ok (MESSAGE_INTERVAL_DATA :: ID) , SCALED_IMU_DATA :: NAME => Ok (SCALED_IMU_DATA :: ID) , STORAGE_INFORMATION_DATA :: NAME => Ok (STORAGE_INFORMATION_DATA :: ID) , FENCE_STATUS_DATA :: NAME => Ok (FENCE_STATUS_DATA :: ID) , NAMED_VALUE_INT_DATA :: NAME => Ok (NAMED_VALUE_INT_DATA :: ID) , VFR_HUD_DATA :: NAME => Ok (VFR_HUD_DATA :: ID) , ESC_INFO_DATA :: NAME => Ok (ESC_INFO_DATA :: ID) , RADIO_STATUS_DATA :: NAME => Ok (RADIO_STATUS_DATA :: ID) , TIME_ESTIMATE_TO_TARGET_DATA :: NAME => Ok (TIME_ESTIMATE_TO_TARGET_DATA :: ID) , HIL_GPS_DATA :: NAME => Ok (HIL_GPS_DATA :: ID) , GPS_RTCM_DATA_DATA :: NAME => Ok (GPS_RTCM_DATA_DATA :: ID) , LOG_REQUEST_END_DATA :: NAME => Ok (LOG_REQUEST_END_DATA :: ID) , FILE_TRANSFER_PROTOCOL_DATA :: NAME => Ok (FILE_TRANSFER_PROTOCOL_DATA :: ID) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: NAME => Ok (TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID) , POWER_STATUS_DATA :: NAME => Ok (POWER_STATUS_DATA :: ID) , ATTITUDE_QUATERNION_COV_DATA :: NAME => Ok (ATTITUDE_QUATERNION_COV_DATA :: ID) , COMPONENT_METADATA_DATA :: NAME => Ok (COMPONENT_METADATA_DATA :: ID) , GPS_INJECT_DATA_DATA :: NAME => Ok (GPS_INJECT_DATA_DATA :: ID) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID) , POSITION_TARGET_GLOBAL_INT_DATA :: NAME => Ok (POSITION_TARGET_GLOBAL_INT_DATA :: ID) , ENCAPSULATED_DATA_DATA :: NAME => Ok (ENCAPSULATED_DATA_DATA :: ID) , VICON_POSITION_ESTIMATE_DATA :: NAME => Ok (VICON_POSITION_ESTIMATE_DATA :: ID) , OPEN_DRONE_ID_SELF_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_SELF_ID_DATA :: ID) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: NAME => Ok (UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID) , PARAM_EXT_REQUEST_LIST_DATA :: NAME => Ok (PARAM_EXT_REQUEST_LIST_DATA :: ID) , SET_MODE_DATA :: NAME => Ok (SET_MODE_DATA :: ID) , SYSTEM_TIME_DATA :: NAME => Ok (SYSTEM_TIME_DATA :: ID) , ADSB_VEHICLE_DATA :: NAME => Ok (ADSB_VEHICLE_DATA :: ID) , POSITION_TARGET_LOCAL_NED_DATA :: NAME => Ok (POSITION_TARGET_LOCAL_NED_DATA :: ID) , HIL_OPTICAL_FLOW_DATA :: NAME => Ok (HIL_OPTICAL_FLOW_DATA :: ID) , MISSION_REQUEST_LIST_DATA :: NAME => Ok (MISSION_REQUEST_LIST_DATA :: ID) , PING_DATA :: NAME => Ok (PING_DATA :: ID) , NAMED_VALUE_FLOAT_DATA :: NAME => Ok (NAMED_VALUE_FLOAT_DATA :: ID) , HIL_ACTUATOR_CONTROLS_DATA :: NAME => Ok (HIL_ACTUATOR_CONTROLS_DATA :: ID) , CAMERA_FOV_STATUS_DATA :: NAME => Ok (CAMERA_FOV_STATUS_DATA :: ID) , SCALED_PRESSURE2_DATA :: NAME => Ok (SCALED_PRESSURE2_DATA :: ID) , TUNNEL_DATA :: NAME => Ok (TUNNEL_DATA :: ID) , DATA_STREAM_DATA :: NAME => Ok (DATA_STREAM_DATA :: ID) , GPS_STATUS_DATA :: NAME => Ok (GPS_STATUS_DATA :: ID) , COMMAND_ACK_DATA :: NAME => Ok (COMMAND_ACK_DATA :: ID) , DISTANCE_SENSOR_DATA :: NAME => Ok (DISTANCE_SENSOR_DATA :: ID) , WIFI_CONFIG_AP_DATA :: NAME => Ok (WIFI_CONFIG_AP_DATA :: ID) , OPEN_DRONE_ID_SYSTEM_DATA :: NAME => Ok (OPEN_DRONE_ID_SYSTEM_DATA :: ID) , MISSION_CLEAR_ALL_DATA :: NAME => Ok (MISSION_CLEAR_ALL_DATA :: ID) , OPTICAL_FLOW_RAD_DATA :: NAME => Ok (OPTICAL_FLOW_RAD_DATA :: ID) , ACTUATOR_OUTPUT_STATUS_DATA :: NAME => Ok (ACTUATOR_OUTPUT_STATUS_DATA :: ID) , WHEEL_DISTANCE_DATA :: NAME => Ok (WHEEL_DISTANCE_DATA :: ID) , ATTITUDE_TARGET_DATA :: NAME => Ok (ATTITUDE_TARGET_DATA :: ID) , HEARTBEAT_DATA :: NAME => Ok (HEARTBEAT_DATA :: ID) , MISSION_COUNT_DATA :: NAME => Ok (MISSION_COUNT_DATA :: ID) , AUTH_KEY_DATA :: NAME => Ok (AUTH_KEY_DATA :: ID) , SET_ACTUATOR_CONTROL_TARGET_DATA :: NAME => Ok (SET_ACTUATOR_CONTROL_TARGET_DATA :: ID) , REQUEST_DATA_STREAM_DATA :: NAME => Ok (REQUEST_DATA_STREAM_DATA :: ID) , EXTENDED_SYS_STATE_DATA :: NAME => Ok (EXTENDED_SYS_STATE_DATA :: ID) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID) , SYS_STATUS_DATA :: NAME => Ok (SYS_STATUS_DATA :: ID) , GENERATOR_STATUS_DATA :: NAME => Ok (GENERATOR_STATUS_DATA :: ID) , GIMBAL_DEVICE_INFORMATION_DATA :: NAME => Ok (GIMBAL_DEVICE_INFORMATION_DATA :: ID) , REQUEST_EVENT_DATA :: NAME => Ok (REQUEST_EVENT_DATA :: ID) , LOCAL_POSITION_NED_COV_DATA :: NAME => Ok (LOCAL_POSITION_NED_COV_DATA :: ID) , SCALED_PRESSURE_DATA :: NAME => Ok (SCALED_PRESSURE_DATA :: ID) , RESOURCE_REQUEST_DATA :: NAME => Ok (RESOURCE_REQUEST_DATA :: ID) , MISSION_REQUEST_DATA :: NAME => Ok (MISSION_REQUEST_DATA :: ID) , CAMERA_TRIGGER_DATA :: NAME => Ok (CAMERA_TRIGGER_DATA :: ID) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: NAME => Ok (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID) , RAW_PRESSURE_DATA :: NAME => Ok (RAW_PRESSURE_DATA :: ID) , ACTUATOR_CONTROL_TARGET_DATA :: NAME => Ok (ACTUATOR_CONTROL_TARGET_DATA :: ID) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: NAME => Ok (OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID) , LOCAL_POSITION_NED_DATA :: NAME => Ok (LOCAL_POSITION_NED_DATA :: ID) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: NAME => Ok (GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID) , MAG_CAL_REPORT_DATA :: NAME => Ok (MAG_CAL_REPORT_DATA :: ID) , CELLULAR_STATUS_DATA :: NAME => Ok (CELLULAR_STATUS_DATA :: ID) , DEBUG_FLOAT_ARRAY_DATA :: NAME => Ok (DEBUG_FLOAT_ARRAY_DATA :: ID) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: NAME => Ok (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: NAME => Ok (OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: NAME => Ok (GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID) , MISSION_ITEM_INT_DATA :: NAME => Ok (MISSION_ITEM_INT_DATA :: ID) , TERRAIN_CHECK_DATA :: NAME => Ok (TERRAIN_CHECK_DATA :: ID) , SAFETY_SET_ALLOWED_AREA_DATA :: NAME => Ok (SAFETY_SET_ALLOWED_AREA_DATA :: ID) , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: NAME => Ok (UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID) , VISION_POSITION_ESTIMATE_DATA :: NAME => Ok (VISION_POSITION_ESTIMATE_DATA :: ID) , ORBIT_EXECUTION_STATUS_DATA :: NAME => Ok (ORBIT_EXECUTION_STATUS_DATA :: ID) , SET_POSITION_TARGET_LOCAL_NED_DATA :: NAME => Ok (SET_POSITION_TARGET_LOCAL_NED_DATA :: ID) , ALTITUDE_DATA :: NAME => Ok (ALTITUDE_DATA :: ID) , CHANGE_OPERATOR_CONTROL_DATA :: NAME => Ok (CHANGE_OPERATOR_CONTROL_DATA :: ID) , MISSION_REQUEST_INT_DATA :: NAME => Ok (MISSION_REQUEST_INT_DATA :: ID) , LOG_REQUEST_LIST_DATA :: NAME => Ok (LOG_REQUEST_LIST_DATA :: ID) , RC_CHANNELS_DATA :: NAME => Ok (RC_CHANNELS_DATA :: ID) , VIDEO_STREAM_STATUS_DATA :: NAME => Ok (VIDEO_STREAM_STATUS_DATA :: ID) , MISSION_WRITE_PARTIAL_LIST_DATA :: NAME => Ok (MISSION_WRITE_PARTIAL_LIST_DATA :: ID) , ATT_POS_MOCAP_DATA :: NAME => Ok (ATT_POS_MOCAP_DATA :: ID) , UAVCAN_NODE_STATUS_DATA :: NAME => Ok (UAVCAN_NODE_STATUS_DATA :: ID) , ONBOARD_COMPUTER_STATUS_DATA :: NAME => Ok (ONBOARD_COMPUTER_STATUS_DATA :: ID) , RAW_IMU_DATA :: NAME => Ok (RAW_IMU_DATA :: ID) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: NAME => Ok (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID) , MANUAL_CONTROL_DATA :: NAME => Ok (MANUAL_CONTROL_DATA :: ID) , SERVO_OUTPUT_RAW_DATA :: NAME => Ok (SERVO_OUTPUT_RAW_DATA :: ID) , ATTITUDE_QUATERNION_DATA :: NAME => Ok (ATTITUDE_QUATERNION_DATA :: ID) , MISSION_ITEM_REACHED_DATA :: NAME => Ok (MISSION_ITEM_REACHED_DATA :: ID) , DATA_TRANSMISSION_HANDSHAKE_DATA :: NAME => Ok (DATA_TRANSMISSION_HANDSHAKE_DATA :: ID) , STATUSTEXT_DATA :: NAME => Ok (STATUSTEXT_DATA :: ID) , LOGGING_DATA_DATA :: NAME => Ok (LOGGING_DATA_DATA :: ID) , RC_CHANNELS_SCALED_DATA :: NAME => Ok (RC_CHANNELS_SCALED_DATA :: ID) , MEMORY_VECT_DATA :: NAME => Ok (MEMORY_VECT_DATA :: ID) , LOG_ENTRY_DATA :: NAME => Ok (LOG_ENTRY_DATA :: ID) , HIL_CONTROLS_DATA :: NAME => Ok (HIL_CONTROLS_DATA :: ID) , LOG_REQUEST_DATA_DATA :: NAME => Ok (LOG_REQUEST_DATA_DATA :: ID) , TERRAIN_REQUEST_DATA :: NAME => Ok (TERRAIN_REQUEST_DATA :: ID) , ISBD_LINK_STATUS_DATA :: NAME => Ok (ISBD_LINK_STATUS_DATA :: ID) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: NAME => Ok (SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID) , HIL_SENSOR_DATA :: NAME => Ok (HIL_SENSOR_DATA :: ID) , V2_EXTENSION_DATA :: NAME => Ok (V2_EXTENSION_DATA :: ID) , COMMAND_LONG_DATA :: NAME => Ok (COMMAND_LONG_DATA :: ID) , UAVIONIX_ADSB_OUT_CFG_DATA :: NAME => Ok (UAVIONIX_ADSB_OUT_CFG_DATA :: ID) , ESTIMATOR_STATUS_DATA :: NAME => Ok (ESTIMATOR_STATUS_DATA :: ID) , HIGH_LATENCY2_DATA :: NAME => Ok (HIGH_LATENCY2_DATA :: ID) , AUTOPILOT_VERSION_DATA :: NAME => Ok (AUTOPILOT_VERSION_DATA :: ID) , DEBUG_VECT_DATA :: NAME => Ok (DEBUG_VECT_DATA :: ID) , COMPONENT_INFORMATION_DATA :: NAME => Ok (COMPONENT_INFORMATION_DATA :: ID) , PARAM_MAP_RC_DATA :: NAME => Ok (PARAM_MAP_RC_DATA :: ID) , CAMERA_INFORMATION_DATA :: NAME => Ok (CAMERA_INFORMATION_DATA :: ID) , VIBRATION_DATA :: NAME => Ok (VIBRATION_DATA :: ID) , OBSTACLE_DISTANCE_DATA :: NAME => Ok (OBSTACLE_DISTANCE_DATA :: ID) , RC_CHANNELS_RAW_DATA :: NAME => Ok (RC_CHANNELS_RAW_DATA :: ID) , UAVCAN_NODE_INFO_DATA :: NAME => Ok (UAVCAN_NODE_INFO_DATA :: ID) , EVENT_DATA :: NAME => Ok (EVENT_DATA :: ID) , FLIGHT_INFORMATION_DATA :: NAME => Ok (FLIGHT_INFORMATION_DATA :: ID) , PARAM_EXT_SET_DATA :: NAME => Ok (PARAM_EXT_SET_DATA :: ID) , CAMERA_CAPTURE_STATUS_DATA :: NAME => Ok (CAMERA_CAPTURE_STATUS_DATA :: ID) , LANDING_TARGET_DATA :: NAME => Ok (LANDING_TARGET_DATA :: ID) , TIMESYNC_DATA :: NAME => Ok (TIMESYNC_DATA :: ID) , EFI_STATUS_DATA :: NAME => Ok (EFI_STATUS_DATA :: ID) , VISION_SPEED_ESTIMATE_DATA :: NAME => Ok (VISION_SPEED_ESTIMATE_DATA :: ID) , GPS2_RAW_DATA :: NAME => Ok (GPS2_RAW_DATA :: ID) , COMMAND_INT_DATA :: NAME => Ok (COMMAND_INT_DATA :: ID) , MISSION_SET_CURRENT_DATA :: NAME => Ok (MISSION_SET_CURRENT_DATA :: ID) , LOG_ERASE_DATA :: NAME => Ok (LOG_ERASE_DATA :: ID) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: NAME => Ok (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID) , HIL_STATE_DATA :: NAME => Ok (HIL_STATE_DATA :: ID) , BUTTON_CHANGE_DATA :: NAME => Ok (BUTTON_CHANGE_DATA :: ID) , GPS_RAW_INT_DATA :: NAME => Ok (GPS_RAW_INT_DATA :: ID) , COLLISION_DATA :: NAME => Ok (COLLISION_DATA :: ID) , AIS_VESSEL_DATA :: NAME => Ok (AIS_VESSEL_DATA :: ID) , TERRAIN_DATA_DATA :: NAME => Ok (TERRAIN_DATA_DATA :: ID) , GPS_GLOBAL_ORIGIN_DATA :: NAME => Ok (GPS_GLOBAL_ORIGIN_DATA :: ID) , OPEN_DRONE_ID_LOCATION_DATA :: NAME => Ok (OPEN_DRONE_ID_LOCATION_DATA :: ID) , SCALED_IMU2_DATA :: NAME => Ok (SCALED_IMU2_DATA :: ID) , RESPONSE_EVENT_ERROR_DATA :: NAME => Ok (RESPONSE_EVENT_ERROR_DATA :: ID) , GIMBAL_MANAGER_STATUS_DATA :: NAME => Ok (GIMBAL_MANAGER_STATUS_DATA :: ID) , SERIAL_CONTROL_DATA :: NAME => Ok (SERIAL_CONTROL_DATA :: ID) , WINCH_STATUS_DATA :: NAME => Ok (WINCH_STATUS_DATA :: ID) , PARAM_REQUEST_LIST_DATA :: NAME => Ok (PARAM_REQUEST_LIST_DATA :: ID) , LOGGING_DATA_ACKED_DATA :: NAME => Ok (LOGGING_DATA_ACKED_DATA :: ID) , GLOBAL_POSITION_INT_COV_DATA :: NAME => Ok (GLOBAL_POSITION_INT_COV_DATA :: ID) , LOGGING_ACK_DATA :: NAME => Ok (LOGGING_ACK_DATA :: ID) , LOG_DATA_DATA :: NAME => Ok (LOG_DATA_DATA :: ID) , PARAM_EXT_VALUE_DATA :: NAME => Ok (PARAM_EXT_VALUE_DATA :: ID) , PLAY_TUNE_V2_DATA :: NAME => Ok (PLAY_TUNE_V2_DATA :: ID) , SET_GPS_GLOBAL_ORIGIN_DATA :: NAME => Ok (SET_GPS_GLOBAL_ORIGIN_DATA :: ID) , FOLLOW_TARGET_DATA :: NAME => Ok (FOLLOW_TARGET_DATA :: ID) , MANUAL_SETPOINT_DATA :: NAME => Ok (MANUAL_SETPOINT_DATA :: ID) , RC_CHANNELS_OVERRIDE_DATA :: NAME => Ok (RC_CHANNELS_OVERRIDE_DATA :: ID) , LINK_NODE_STATUS_DATA :: NAME => Ok (LINK_NODE_STATUS_DATA :: ID) , GLOBAL_POSITION_INT_DATA :: NAME => Ok (GLOBAL_POSITION_INT_DATA :: ID) , CAN_FILTER_MODIFY_DATA :: NAME => Ok (CAN_FILTER_MODIFY_DATA :: ID) , PARAM_EXT_REQUEST_READ_DATA :: NAME => Ok (PARAM_EXT_REQUEST_READ_DATA :: ID) , UTM_GLOBAL_POSITION_DATA :: NAME => Ok (UTM_GLOBAL_POSITION_DATA :: ID) , OPEN_DRONE_ID_BASIC_ID_DATA :: NAME => Ok (OPEN_DRONE_ID_BASIC_ID_DATA :: ID) , SET_ATTITUDE_TARGET_DATA :: NAME => Ok (SET_ATTITUDE_TARGET_DATA :: ID) , BATTERY_STATUS_DATA :: NAME => Ok (BATTERY_STATUS_DATA :: ID) , SCALED_IMU3_DATA :: NAME => Ok (SCALED_IMU3_DATA :: ID) , MISSION_REQUEST_PARTIAL_LIST_DATA :: NAME => Ok (MISSION_REQUEST_PARTIAL_LIST_DATA :: ID) , SETUP_SIGNING_DATA :: NAME => Ok (SETUP_SIGNING_DATA :: ID) , SMART_BATTERY_INFO_DATA :: NAME => Ok (SMART_BATTERY_INFO_DATA :: ID) , MOUNT_ORIENTATION_DATA :: NAME => Ok (MOUNT_ORIENTATION_DATA :: ID) , HOME_POSITION_DATA :: NAME => Ok (HOME_POSITION_DATA :: ID) , SAFETY_ALLOWED_AREA_DATA :: NAME => Ok (SAFETY_ALLOWED_AREA_DATA :: ID) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: NAME => Ok (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID) , CONTROL_SYSTEM_STATE_DATA :: NAME => Ok (CONTROL_SYSTEM_STATE_DATA :: ID) , _ => { Err ("Invalid message name.") } } } fn default_message_from_id (id : u32) -> Result < Self , & 'static str > { match id { MISSION_ACK_DATA :: ID => Ok (Self :: MISSION_ACK (MISSION_ACK_DATA :: default ())) , COMMAND_CANCEL_DATA :: ID => Ok (Self :: COMMAND_CANCEL (COMMAND_CANCEL_DATA :: default ())) , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => Ok (Self :: CAMERA_TRACKING_IMAGE_STATUS (CAMERA_TRACKING_IMAGE_STATUS_DATA :: default ())) , PARAM_VALUE_DATA :: ID => Ok (Self :: PARAM_VALUE (PARAM_VALUE_DATA :: default ())) , SUPPORTED_TUNES_DATA :: ID => Ok (Self :: SUPPORTED_TUNES (SUPPORTED_TUNES_DATA :: default ())) , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_OPERATOR_ID (OPEN_DRONE_ID_OPERATOR_ID_DATA :: default ())) , SET_HOME_POSITION_DATA :: ID => Ok (Self :: SET_HOME_POSITION (SET_HOME_POSITION_DATA :: default ())) , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => Ok (Self :: CAMERA_TRACKING_GEO_STATUS (CAMERA_TRACKING_GEO_STATUS_DATA :: default ())) , MISSION_ITEM_DATA :: ID => Ok (Self :: MISSION_ITEM (MISSION_ITEM_DATA :: default ())) , MISSION_CURRENT_DATA :: ID => Ok (Self :: MISSION_CURRENT (MISSION_CURRENT_DATA :: default ())) , RAW_RPM_DATA :: ID => Ok (Self :: RAW_RPM (RAW_RPM_DATA :: default ())) , VIDEO_STREAM_INFORMATION_DATA :: ID => Ok (Self :: VIDEO_STREAM_INFORMATION (VIDEO_STREAM_INFORMATION_DATA :: default ())) , CELLULAR_CONFIG_DATA :: ID => Ok (Self :: CELLULAR_CONFIG (CELLULAR_CONFIG_DATA :: default ())) , PLAY_TUNE_DATA :: ID => Ok (Self :: PLAY_TUNE (PLAY_TUNE_DATA :: default ())) , CURRENT_EVENT_SEQUENCE_DATA :: ID => Ok (Self :: CURRENT_EVENT_SEQUENCE (CURRENT_EVENT_SEQUENCE_DATA :: default ())) , ESC_STATUS_DATA :: ID => Ok (Self :: ESC_STATUS (ESC_STATUS_DATA :: default ())) , GPS2_RTK_DATA :: ID => Ok (Self :: GPS2_RTK (GPS2_RTK_DATA :: default ())) , DEBUG_DATA :: ID => Ok (Self :: DEBUG (DEBUG_DATA :: default ())) , GIMBAL_MANAGER_INFORMATION_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_INFORMATION (GIMBAL_MANAGER_INFORMATION_DATA :: default ())) , NAV_CONTROLLER_OUTPUT_DATA :: ID => Ok (Self :: NAV_CONTROLLER_OUTPUT (NAV_CONTROLLER_OUTPUT_DATA :: default ())) , PARAM_EXT_ACK_DATA :: ID => Ok (Self :: PARAM_EXT_ACK (PARAM_EXT_ACK_DATA :: default ())) , TERRAIN_REPORT_DATA :: ID => Ok (Self :: TERRAIN_REPORT (TERRAIN_REPORT_DATA :: default ())) , HIL_RC_INPUTS_RAW_DATA :: ID => Ok (Self :: HIL_RC_INPUTS_RAW (HIL_RC_INPUTS_RAW_DATA :: default ())) , ODOMETRY_DATA :: ID => Ok (Self :: ODOMETRY (ODOMETRY_DATA :: default ())) , HIGH_LATENCY_DATA :: ID => Ok (Self :: HIGH_LATENCY (HIGH_LATENCY_DATA :: default ())) , PARAM_REQUEST_READ_DATA :: ID => Ok (Self :: PARAM_REQUEST_READ (PARAM_REQUEST_READ_DATA :: default ())) , ATTITUDE_DATA :: ID => Ok (Self :: ATTITUDE (ATTITUDE_DATA :: default ())) , PARAM_SET_DATA :: ID => Ok (Self :: PARAM_SET (PARAM_SET_DATA :: default ())) , HIGHRES_IMU_DATA :: ID => Ok (Self :: HIGHRES_IMU (HIGHRES_IMU_DATA :: default ())) , SIM_STATE_DATA :: ID => Ok (Self :: SIM_STATE (SIM_STATE_DATA :: default ())) , SCALED_PRESSURE3_DATA :: ID => Ok (Self :: SCALED_PRESSURE3 (SCALED_PRESSURE3_DATA :: default ())) , PROTOCOL_VERSION_DATA :: ID => Ok (Self :: PROTOCOL_VERSION (PROTOCOL_VERSION_DATA :: default ())) , GPS_RTK_DATA :: ID => Ok (Self :: GPS_RTK (GPS_RTK_DATA :: default ())) , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => Ok (Self :: CHANGE_OPERATOR_CONTROL_ACK (CHANGE_OPERATOR_CONTROL_ACK_DATA :: default ())) , CANFD_FRAME_DATA :: ID => Ok (Self :: CANFD_FRAME (CANFD_FRAME_DATA :: default ())) , CAMERA_SETTINGS_DATA :: ID => Ok (Self :: CAMERA_SETTINGS (CAMERA_SETTINGS_DATA :: default ())) , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => Ok (Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: default ())) , OPTICAL_FLOW_DATA :: ID => Ok (Self :: OPTICAL_FLOW (OPTICAL_FLOW_DATA :: default ())) , GPS_INPUT_DATA :: ID => Ok (Self :: GPS_INPUT (GPS_INPUT_DATA :: default ())) , WIND_COV_DATA :: ID => Ok (Self :: WIND_COV (WIND_COV_DATA :: default ())) , HYGROMETER_SENSOR_DATA :: ID => Ok (Self :: HYGROMETER_SENSOR (HYGROMETER_SENSOR_DATA :: default ())) , CAN_FRAME_DATA :: ID => Ok (Self :: CAN_FRAME (CAN_FRAME_DATA :: default ())) , CAMERA_IMAGE_CAPTURED_DATA :: ID => Ok (Self :: CAMERA_IMAGE_CAPTURED (CAMERA_IMAGE_CAPTURED_DATA :: default ())) , HIL_STATE_QUATERNION_DATA :: ID => Ok (Self :: HIL_STATE_QUATERNION (HIL_STATE_QUATERNION_DATA :: default ())) , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_ARM_STATUS (OPEN_DRONE_ID_ARM_STATUS_DATA :: default ())) , MESSAGE_INTERVAL_DATA :: ID => Ok (Self :: MESSAGE_INTERVAL (MESSAGE_INTERVAL_DATA :: default ())) , SCALED_IMU_DATA :: ID => Ok (Self :: SCALED_IMU (SCALED_IMU_DATA :: default ())) , STORAGE_INFORMATION_DATA :: ID => Ok (Self :: STORAGE_INFORMATION (STORAGE_INFORMATION_DATA :: default ())) , FENCE_STATUS_DATA :: ID => Ok (Self :: FENCE_STATUS (FENCE_STATUS_DATA :: default ())) , NAMED_VALUE_INT_DATA :: ID => Ok (Self :: NAMED_VALUE_INT (NAMED_VALUE_INT_DATA :: default ())) , VFR_HUD_DATA :: ID => Ok (Self :: VFR_HUD (VFR_HUD_DATA :: default ())) , ESC_INFO_DATA :: ID => Ok (Self :: ESC_INFO (ESC_INFO_DATA :: default ())) , RADIO_STATUS_DATA :: ID => Ok (Self :: RADIO_STATUS (RADIO_STATUS_DATA :: default ())) , TIME_ESTIMATE_TO_TARGET_DATA :: ID => Ok (Self :: TIME_ESTIMATE_TO_TARGET (TIME_ESTIMATE_TO_TARGET_DATA :: default ())) , HIL_GPS_DATA :: ID => Ok (Self :: HIL_GPS (HIL_GPS_DATA :: default ())) , GPS_RTCM_DATA_DATA :: ID => Ok (Self :: GPS_RTCM_DATA (GPS_RTCM_DATA_DATA :: default ())) , LOG_REQUEST_END_DATA :: ID => Ok (Self :: LOG_REQUEST_END (LOG_REQUEST_END_DATA :: default ())) , FILE_TRANSFER_PROTOCOL_DATA :: ID => Ok (Self :: FILE_TRANSFER_PROTOCOL (FILE_TRANSFER_PROTOCOL_DATA :: default ())) , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => Ok (Self :: TRAJECTORY_REPRESENTATION_BEZIER (TRAJECTORY_REPRESENTATION_BEZIER_DATA :: default ())) , POWER_STATUS_DATA :: ID => Ok (Self :: POWER_STATUS (POWER_STATUS_DATA :: default ())) , ATTITUDE_QUATERNION_COV_DATA :: ID => Ok (Self :: ATTITUDE_QUATERNION_COV (ATTITUDE_QUATERNION_COV_DATA :: default ())) , COMPONENT_METADATA_DATA :: ID => Ok (Self :: COMPONENT_METADATA (COMPONENT_METADATA_DATA :: default ())) , GPS_INJECT_DATA_DATA :: ID => Ok (Self :: GPS_INJECT_DATA (GPS_INJECT_DATA_DATA :: default ())) , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_ATTITUDE (GIMBAL_MANAGER_SET_ATTITUDE_DATA :: default ())) , POSITION_TARGET_GLOBAL_INT_DATA :: ID => Ok (Self :: POSITION_TARGET_GLOBAL_INT (POSITION_TARGET_GLOBAL_INT_DATA :: default ())) , ENCAPSULATED_DATA_DATA :: ID => Ok (Self :: ENCAPSULATED_DATA (ENCAPSULATED_DATA_DATA :: default ())) , VICON_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: VICON_POSITION_ESTIMATE (VICON_POSITION_ESTIMATE_DATA :: default ())) , OPEN_DRONE_ID_SELF_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SELF_ID (OPEN_DRONE_ID_SELF_ID_DATA :: default ())) , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID => Ok (Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: default ())) , PARAM_EXT_REQUEST_LIST_DATA :: ID => Ok (Self :: PARAM_EXT_REQUEST_LIST (PARAM_EXT_REQUEST_LIST_DATA :: default ())) , SET_MODE_DATA :: ID => Ok (Self :: SET_MODE (SET_MODE_DATA :: default ())) , SYSTEM_TIME_DATA :: ID => Ok (Self :: SYSTEM_TIME (SYSTEM_TIME_DATA :: default ())) , ADSB_VEHICLE_DATA :: ID => Ok (Self :: ADSB_VEHICLE (ADSB_VEHICLE_DATA :: default ())) , POSITION_TARGET_LOCAL_NED_DATA :: ID => Ok (Self :: POSITION_TARGET_LOCAL_NED (POSITION_TARGET_LOCAL_NED_DATA :: default ())) , HIL_OPTICAL_FLOW_DATA :: ID => Ok (Self :: HIL_OPTICAL_FLOW (HIL_OPTICAL_FLOW_DATA :: default ())) , MISSION_REQUEST_LIST_DATA :: ID => Ok (Self :: MISSION_REQUEST_LIST (MISSION_REQUEST_LIST_DATA :: default ())) , PING_DATA :: ID => Ok (Self :: PING (PING_DATA :: default ())) , NAMED_VALUE_FLOAT_DATA :: ID => Ok (Self :: NAMED_VALUE_FLOAT (NAMED_VALUE_FLOAT_DATA :: default ())) , HIL_ACTUATOR_CONTROLS_DATA :: ID => Ok (Self :: HIL_ACTUATOR_CONTROLS (HIL_ACTUATOR_CONTROLS_DATA :: default ())) , CAMERA_FOV_STATUS_DATA :: ID => Ok (Self :: CAMERA_FOV_STATUS (CAMERA_FOV_STATUS_DATA :: default ())) , SCALED_PRESSURE2_DATA :: ID => Ok (Self :: SCALED_PRESSURE2 (SCALED_PRESSURE2_DATA :: default ())) , TUNNEL_DATA :: ID => Ok (Self :: TUNNEL (TUNNEL_DATA :: default ())) , DATA_STREAM_DATA :: ID => Ok (Self :: DATA_STREAM (DATA_STREAM_DATA :: default ())) , GPS_STATUS_DATA :: ID => Ok (Self :: GPS_STATUS (GPS_STATUS_DATA :: default ())) , COMMAND_ACK_DATA :: ID => Ok (Self :: COMMAND_ACK (COMMAND_ACK_DATA :: default ())) , DISTANCE_SENSOR_DATA :: ID => Ok (Self :: DISTANCE_SENSOR (DISTANCE_SENSOR_DATA :: default ())) , WIFI_CONFIG_AP_DATA :: ID => Ok (Self :: WIFI_CONFIG_AP (WIFI_CONFIG_AP_DATA :: default ())) , OPEN_DRONE_ID_SYSTEM_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SYSTEM (OPEN_DRONE_ID_SYSTEM_DATA :: default ())) , MISSION_CLEAR_ALL_DATA :: ID => Ok (Self :: MISSION_CLEAR_ALL (MISSION_CLEAR_ALL_DATA :: default ())) , OPTICAL_FLOW_RAD_DATA :: ID => Ok (Self :: OPTICAL_FLOW_RAD (OPTICAL_FLOW_RAD_DATA :: default ())) , ACTUATOR_OUTPUT_STATUS_DATA :: ID => Ok (Self :: ACTUATOR_OUTPUT_STATUS (ACTUATOR_OUTPUT_STATUS_DATA :: default ())) , WHEEL_DISTANCE_DATA :: ID => Ok (Self :: WHEEL_DISTANCE (WHEEL_DISTANCE_DATA :: default ())) , ATTITUDE_TARGET_DATA :: ID => Ok (Self :: ATTITUDE_TARGET (ATTITUDE_TARGET_DATA :: default ())) , HEARTBEAT_DATA :: ID => Ok (Self :: HEARTBEAT (HEARTBEAT_DATA :: default ())) , MISSION_COUNT_DATA :: ID => Ok (Self :: MISSION_COUNT (MISSION_COUNT_DATA :: default ())) , AUTH_KEY_DATA :: ID => Ok (Self :: AUTH_KEY (AUTH_KEY_DATA :: default ())) , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => Ok (Self :: SET_ACTUATOR_CONTROL_TARGET (SET_ACTUATOR_CONTROL_TARGET_DATA :: default ())) , REQUEST_DATA_STREAM_DATA :: ID => Ok (Self :: REQUEST_DATA_STREAM (REQUEST_DATA_STREAM_DATA :: default ())) , EXTENDED_SYS_STATE_DATA :: ID => Ok (Self :: EXTENDED_SYS_STATE (EXTENDED_SYS_STATE_DATA :: default ())) , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_PITCHYAW (GIMBAL_MANAGER_SET_PITCHYAW_DATA :: default ())) , SYS_STATUS_DATA :: ID => Ok (Self :: SYS_STATUS (SYS_STATUS_DATA :: default ())) , GENERATOR_STATUS_DATA :: ID => Ok (Self :: GENERATOR_STATUS (GENERATOR_STATUS_DATA :: default ())) , GIMBAL_DEVICE_INFORMATION_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_INFORMATION (GIMBAL_DEVICE_INFORMATION_DATA :: default ())) , REQUEST_EVENT_DATA :: ID => Ok (Self :: REQUEST_EVENT (REQUEST_EVENT_DATA :: default ())) , LOCAL_POSITION_NED_COV_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED_COV (LOCAL_POSITION_NED_COV_DATA :: default ())) , SCALED_PRESSURE_DATA :: ID => Ok (Self :: SCALED_PRESSURE (SCALED_PRESSURE_DATA :: default ())) , RESOURCE_REQUEST_DATA :: ID => Ok (Self :: RESOURCE_REQUEST (RESOURCE_REQUEST_DATA :: default ())) , MISSION_REQUEST_DATA :: ID => Ok (Self :: MISSION_REQUEST (MISSION_REQUEST_DATA :: default ())) , CAMERA_TRIGGER_DATA :: ID => Ok (Self :: CAMERA_TRIGGER (CAMERA_TRIGGER_DATA :: default ())) , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: default ())) , RAW_PRESSURE_DATA :: ID => Ok (Self :: RAW_PRESSURE (RAW_PRESSURE_DATA :: default ())) , ACTUATOR_CONTROL_TARGET_DATA :: ID => Ok (Self :: ACTUATOR_CONTROL_TARGET (ACTUATOR_CONTROL_TARGET_DATA :: default ())) , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_AUTHENTICATION (OPEN_DRONE_ID_AUTHENTICATION_DATA :: default ())) , LOCAL_POSITION_NED_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED (LOCAL_POSITION_NED_DATA :: default ())) , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: GLOBAL_VISION_POSITION_ESTIMATE (GLOBAL_VISION_POSITION_ESTIMATE_DATA :: default ())) , MAG_CAL_REPORT_DATA :: ID => Ok (Self :: MAG_CAL_REPORT (MAG_CAL_REPORT_DATA :: default ())) , CELLULAR_STATUS_DATA :: ID => Ok (Self :: CELLULAR_STATUS (CELLULAR_STATUS_DATA :: default ())) , DEBUG_FLOAT_ARRAY_DATA :: ID => Ok (Self :: DEBUG_FLOAT_ARRAY (DEBUG_FLOAT_ARRAY_DATA :: default ())) , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: default ())) , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_MESSAGE_PACK (OPEN_DRONE_ID_MESSAGE_PACK_DATA :: default ())) , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => Ok (Self :: GIMBAL_DEVICE_SET_ATTITUDE (GIMBAL_DEVICE_SET_ATTITUDE_DATA :: default ())) , MISSION_ITEM_INT_DATA :: ID => Ok (Self :: MISSION_ITEM_INT (MISSION_ITEM_INT_DATA :: default ())) , TERRAIN_CHECK_DATA :: ID => Ok (Self :: TERRAIN_CHECK (TERRAIN_CHECK_DATA :: default ())) , SAFETY_SET_ALLOWED_AREA_DATA :: ID => Ok (Self :: SAFETY_SET_ALLOWED_AREA (SAFETY_SET_ALLOWED_AREA_DATA :: default ())) , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID => Ok (Self :: UAVIONIX_ADSB_OUT_DYNAMIC (UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: default ())) , VISION_POSITION_ESTIMATE_DATA :: ID => Ok (Self :: VISION_POSITION_ESTIMATE (VISION_POSITION_ESTIMATE_DATA :: default ())) , ORBIT_EXECUTION_STATUS_DATA :: ID => Ok (Self :: ORBIT_EXECUTION_STATUS (ORBIT_EXECUTION_STATUS_DATA :: default ())) , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => Ok (Self :: SET_POSITION_TARGET_LOCAL_NED (SET_POSITION_TARGET_LOCAL_NED_DATA :: default ())) , ALTITUDE_DATA :: ID => Ok (Self :: ALTITUDE (ALTITUDE_DATA :: default ())) , CHANGE_OPERATOR_CONTROL_DATA :: ID => Ok (Self :: CHANGE_OPERATOR_CONTROL (CHANGE_OPERATOR_CONTROL_DATA :: default ())) , MISSION_REQUEST_INT_DATA :: ID => Ok (Self :: MISSION_REQUEST_INT (MISSION_REQUEST_INT_DATA :: default ())) , LOG_REQUEST_LIST_DATA :: ID => Ok (Self :: LOG_REQUEST_LIST (LOG_REQUEST_LIST_DATA :: default ())) , RC_CHANNELS_DATA :: ID => Ok (Self :: RC_CHANNELS (RC_CHANNELS_DATA :: default ())) , VIDEO_STREAM_STATUS_DATA :: ID => Ok (Self :: VIDEO_STREAM_STATUS (VIDEO_STREAM_STATUS_DATA :: default ())) , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => Ok (Self :: MISSION_WRITE_PARTIAL_LIST (MISSION_WRITE_PARTIAL_LIST_DATA :: default ())) , ATT_POS_MOCAP_DATA :: ID => Ok (Self :: ATT_POS_MOCAP (ATT_POS_MOCAP_DATA :: default ())) , UAVCAN_NODE_STATUS_DATA :: ID => Ok (Self :: UAVCAN_NODE_STATUS (UAVCAN_NODE_STATUS_DATA :: default ())) , ONBOARD_COMPUTER_STATUS_DATA :: ID => Ok (Self :: ONBOARD_COMPUTER_STATUS (ONBOARD_COMPUTER_STATUS_DATA :: default ())) , RAW_IMU_DATA :: ID => Ok (Self :: RAW_IMU (RAW_IMU_DATA :: default ())) , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => Ok (Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: default ())) , MANUAL_CONTROL_DATA :: ID => Ok (Self :: MANUAL_CONTROL (MANUAL_CONTROL_DATA :: default ())) , SERVO_OUTPUT_RAW_DATA :: ID => Ok (Self :: SERVO_OUTPUT_RAW (SERVO_OUTPUT_RAW_DATA :: default ())) , ATTITUDE_QUATERNION_DATA :: ID => Ok (Self :: ATTITUDE_QUATERNION (ATTITUDE_QUATERNION_DATA :: default ())) , MISSION_ITEM_REACHED_DATA :: ID => Ok (Self :: MISSION_ITEM_REACHED (MISSION_ITEM_REACHED_DATA :: default ())) , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => Ok (Self :: DATA_TRANSMISSION_HANDSHAKE (DATA_TRANSMISSION_HANDSHAKE_DATA :: default ())) , STATUSTEXT_DATA :: ID => Ok (Self :: STATUSTEXT (STATUSTEXT_DATA :: default ())) , LOGGING_DATA_DATA :: ID => Ok (Self :: LOGGING_DATA (LOGGING_DATA_DATA :: default ())) , RC_CHANNELS_SCALED_DATA :: ID => Ok (Self :: RC_CHANNELS_SCALED (RC_CHANNELS_SCALED_DATA :: default ())) , MEMORY_VECT_DATA :: ID => Ok (Self :: MEMORY_VECT (MEMORY_VECT_DATA :: default ())) , LOG_ENTRY_DATA :: ID => Ok (Self :: LOG_ENTRY (LOG_ENTRY_DATA :: default ())) , HIL_CONTROLS_DATA :: ID => Ok (Self :: HIL_CONTROLS (HIL_CONTROLS_DATA :: default ())) , LOG_REQUEST_DATA_DATA :: ID => Ok (Self :: LOG_REQUEST_DATA (LOG_REQUEST_DATA_DATA :: default ())) , TERRAIN_REQUEST_DATA :: ID => Ok (Self :: TERRAIN_REQUEST (TERRAIN_REQUEST_DATA :: default ())) , ISBD_LINK_STATUS_DATA :: ID => Ok (Self :: ISBD_LINK_STATUS (ISBD_LINK_STATUS_DATA :: default ())) , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => Ok (Self :: SET_POSITION_TARGET_GLOBAL_INT (SET_POSITION_TARGET_GLOBAL_INT_DATA :: default ())) , HIL_SENSOR_DATA :: ID => Ok (Self :: HIL_SENSOR (HIL_SENSOR_DATA :: default ())) , V2_EXTENSION_DATA :: ID => Ok (Self :: V2_EXTENSION (V2_EXTENSION_DATA :: default ())) , COMMAND_LONG_DATA :: ID => Ok (Self :: COMMAND_LONG (COMMAND_LONG_DATA :: default ())) , UAVIONIX_ADSB_OUT_CFG_DATA :: ID => Ok (Self :: UAVIONIX_ADSB_OUT_CFG (UAVIONIX_ADSB_OUT_CFG_DATA :: default ())) , ESTIMATOR_STATUS_DATA :: ID => Ok (Self :: ESTIMATOR_STATUS (ESTIMATOR_STATUS_DATA :: default ())) , HIGH_LATENCY2_DATA :: ID => Ok (Self :: HIGH_LATENCY2 (HIGH_LATENCY2_DATA :: default ())) , AUTOPILOT_VERSION_DATA :: ID => Ok (Self :: AUTOPILOT_VERSION (AUTOPILOT_VERSION_DATA :: default ())) , DEBUG_VECT_DATA :: ID => Ok (Self :: DEBUG_VECT (DEBUG_VECT_DATA :: default ())) , COMPONENT_INFORMATION_DATA :: ID => Ok (Self :: COMPONENT_INFORMATION (COMPONENT_INFORMATION_DATA :: default ())) , PARAM_MAP_RC_DATA :: ID => Ok (Self :: PARAM_MAP_RC (PARAM_MAP_RC_DATA :: default ())) , CAMERA_INFORMATION_DATA :: ID => Ok (Self :: CAMERA_INFORMATION (CAMERA_INFORMATION_DATA :: default ())) , VIBRATION_DATA :: ID => Ok (Self :: VIBRATION (VIBRATION_DATA :: default ())) , OBSTACLE_DISTANCE_DATA :: ID => Ok (Self :: OBSTACLE_DISTANCE (OBSTACLE_DISTANCE_DATA :: default ())) , RC_CHANNELS_RAW_DATA :: ID => Ok (Self :: RC_CHANNELS_RAW (RC_CHANNELS_RAW_DATA :: default ())) , UAVCAN_NODE_INFO_DATA :: ID => Ok (Self :: UAVCAN_NODE_INFO (UAVCAN_NODE_INFO_DATA :: default ())) , EVENT_DATA :: ID => Ok (Self :: EVENT (EVENT_DATA :: default ())) , FLIGHT_INFORMATION_DATA :: ID => Ok (Self :: FLIGHT_INFORMATION (FLIGHT_INFORMATION_DATA :: default ())) , PARAM_EXT_SET_DATA :: ID => Ok (Self :: PARAM_EXT_SET (PARAM_EXT_SET_DATA :: default ())) , CAMERA_CAPTURE_STATUS_DATA :: ID => Ok (Self :: CAMERA_CAPTURE_STATUS (CAMERA_CAPTURE_STATUS_DATA :: default ())) , LANDING_TARGET_DATA :: ID => Ok (Self :: LANDING_TARGET (LANDING_TARGET_DATA :: default ())) , TIMESYNC_DATA :: ID => Ok (Self :: TIMESYNC (TIMESYNC_DATA :: default ())) , EFI_STATUS_DATA :: ID => Ok (Self :: EFI_STATUS (EFI_STATUS_DATA :: default ())) , VISION_SPEED_ESTIMATE_DATA :: ID => Ok (Self :: VISION_SPEED_ESTIMATE (VISION_SPEED_ESTIMATE_DATA :: default ())) , GPS2_RAW_DATA :: ID => Ok (Self :: GPS2_RAW (GPS2_RAW_DATA :: default ())) , COMMAND_INT_DATA :: ID => Ok (Self :: COMMAND_INT (COMMAND_INT_DATA :: default ())) , MISSION_SET_CURRENT_DATA :: ID => Ok (Self :: MISSION_SET_CURRENT (MISSION_SET_CURRENT_DATA :: default ())) , LOG_ERASE_DATA :: ID => Ok (Self :: LOG_ERASE (LOG_ERASE_DATA :: default ())) , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => Ok (Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: default ())) , HIL_STATE_DATA :: ID => Ok (Self :: HIL_STATE (HIL_STATE_DATA :: default ())) , BUTTON_CHANGE_DATA :: ID => Ok (Self :: BUTTON_CHANGE (BUTTON_CHANGE_DATA :: default ())) , GPS_RAW_INT_DATA :: ID => Ok (Self :: GPS_RAW_INT (GPS_RAW_INT_DATA :: default ())) , COLLISION_DATA :: ID => Ok (Self :: COLLISION (COLLISION_DATA :: default ())) , AIS_VESSEL_DATA :: ID => Ok (Self :: AIS_VESSEL (AIS_VESSEL_DATA :: default ())) , TERRAIN_DATA_DATA :: ID => Ok (Self :: TERRAIN_DATA (TERRAIN_DATA_DATA :: default ())) , GPS_GLOBAL_ORIGIN_DATA :: ID => Ok (Self :: GPS_GLOBAL_ORIGIN (GPS_GLOBAL_ORIGIN_DATA :: default ())) , OPEN_DRONE_ID_LOCATION_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_LOCATION (OPEN_DRONE_ID_LOCATION_DATA :: default ())) , SCALED_IMU2_DATA :: ID => Ok (Self :: SCALED_IMU2 (SCALED_IMU2_DATA :: default ())) , RESPONSE_EVENT_ERROR_DATA :: ID => Ok (Self :: RESPONSE_EVENT_ERROR (RESPONSE_EVENT_ERROR_DATA :: default ())) , GIMBAL_MANAGER_STATUS_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_STATUS (GIMBAL_MANAGER_STATUS_DATA :: default ())) , SERIAL_CONTROL_DATA :: ID => Ok (Self :: SERIAL_CONTROL (SERIAL_CONTROL_DATA :: default ())) , WINCH_STATUS_DATA :: ID => Ok (Self :: WINCH_STATUS (WINCH_STATUS_DATA :: default ())) , PARAM_REQUEST_LIST_DATA :: ID => Ok (Self :: PARAM_REQUEST_LIST (PARAM_REQUEST_LIST_DATA :: default ())) , LOGGING_DATA_ACKED_DATA :: ID => Ok (Self :: LOGGING_DATA_ACKED (LOGGING_DATA_ACKED_DATA :: default ())) , GLOBAL_POSITION_INT_COV_DATA :: ID => Ok (Self :: GLOBAL_POSITION_INT_COV (GLOBAL_POSITION_INT_COV_DATA :: default ())) , LOGGING_ACK_DATA :: ID => Ok (Self :: LOGGING_ACK (LOGGING_ACK_DATA :: default ())) , LOG_DATA_DATA :: ID => Ok (Self :: LOG_DATA (LOG_DATA_DATA :: default ())) , PARAM_EXT_VALUE_DATA :: ID => Ok (Self :: PARAM_EXT_VALUE (PARAM_EXT_VALUE_DATA :: default ())) , PLAY_TUNE_V2_DATA :: ID => Ok (Self :: PLAY_TUNE_V2 (PLAY_TUNE_V2_DATA :: default ())) , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => Ok (Self :: SET_GPS_GLOBAL_ORIGIN (SET_GPS_GLOBAL_ORIGIN_DATA :: default ())) , FOLLOW_TARGET_DATA :: ID => Ok (Self :: FOLLOW_TARGET (FOLLOW_TARGET_DATA :: default ())) , MANUAL_SETPOINT_DATA :: ID => Ok (Self :: MANUAL_SETPOINT (MANUAL_SETPOINT_DATA :: default ())) , RC_CHANNELS_OVERRIDE_DATA :: ID => Ok (Self :: RC_CHANNELS_OVERRIDE (RC_CHANNELS_OVERRIDE_DATA :: default ())) , LINK_NODE_STATUS_DATA :: ID => Ok (Self :: LINK_NODE_STATUS (LINK_NODE_STATUS_DATA :: default ())) , GLOBAL_POSITION_INT_DATA :: ID => Ok (Self :: GLOBAL_POSITION_INT (GLOBAL_POSITION_INT_DATA :: default ())) , CAN_FILTER_MODIFY_DATA :: ID => Ok (Self :: CAN_FILTER_MODIFY (CAN_FILTER_MODIFY_DATA :: default ())) , PARAM_EXT_REQUEST_READ_DATA :: ID => Ok (Self :: PARAM_EXT_REQUEST_READ (PARAM_EXT_REQUEST_READ_DATA :: default ())) , UTM_GLOBAL_POSITION_DATA :: ID => Ok (Self :: UTM_GLOBAL_POSITION (UTM_GLOBAL_POSITION_DATA :: default ())) , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => Ok (Self :: OPEN_DRONE_ID_BASIC_ID (OPEN_DRONE_ID_BASIC_ID_DATA :: default ())) , SET_ATTITUDE_TARGET_DATA :: ID => Ok (Self :: SET_ATTITUDE_TARGET (SET_ATTITUDE_TARGET_DATA :: default ())) , BATTERY_STATUS_DATA :: ID => Ok (Self :: BATTERY_STATUS (BATTERY_STATUS_DATA :: default ())) , SCALED_IMU3_DATA :: ID => Ok (Self :: SCALED_IMU3 (SCALED_IMU3_DATA :: default ())) , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => Ok (Self :: MISSION_REQUEST_PARTIAL_LIST (MISSION_REQUEST_PARTIAL_LIST_DATA :: default ())) , SETUP_SIGNING_DATA :: ID => Ok (Self :: SETUP_SIGNING (SETUP_SIGNING_DATA :: default ())) , SMART_BATTERY_INFO_DATA :: ID => Ok (Self :: SMART_BATTERY_INFO (SMART_BATTERY_INFO_DATA :: default ())) , MOUNT_ORIENTATION_DATA :: ID => Ok (Self :: MOUNT_ORIENTATION (MOUNT_ORIENTATION_DATA :: default ())) , HOME_POSITION_DATA :: ID => Ok (Self :: HOME_POSITION (HOME_POSITION_DATA :: default ())) , SAFETY_ALLOWED_AREA_DATA :: ID => Ok (Self :: SAFETY_ALLOWED_AREA (SAFETY_ALLOWED_AREA_DATA :: default ())) , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => Ok (Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: default ())) , CONTROL_SYSTEM_STATE_DATA :: ID => Ok (Self :: CONTROL_SYSTEM_STATE (CONTROL_SYSTEM_STATE_DATA :: default ())) , _ => { Err ("Invalid message id.") } } } fn ser (& self , version : MavlinkVersion , bytes : & mut [u8]) -> usize { match self { Self :: MISSION_ACK (body) => body . ser (version , bytes) , Self :: COMMAND_CANCEL (body) => body . ser (version , bytes) , Self :: CAMERA_TRACKING_IMAGE_STATUS (body) => body . ser (version , bytes) , Self :: PARAM_VALUE (body) => body . ser (version , bytes) , Self :: SUPPORTED_TUNES (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_OPERATOR_ID (body) => body . ser (version , bytes) , Self :: SET_HOME_POSITION (body) => body . ser (version , bytes) , Self :: CAMERA_TRACKING_GEO_STATUS (body) => body . ser (version , bytes) , Self :: MISSION_ITEM (body) => body . ser (version , bytes) , Self :: MISSION_CURRENT (body) => body . ser (version , bytes) , Self :: RAW_RPM (body) => body . ser (version , bytes) , Self :: VIDEO_STREAM_INFORMATION (body) => body . ser (version , bytes) , Self :: CELLULAR_CONFIG (body) => body . ser (version , bytes) , Self :: PLAY_TUNE (body) => body . ser (version , bytes) , Self :: CURRENT_EVENT_SEQUENCE (body) => body . ser (version , bytes) , Self :: ESC_STATUS (body) => body . ser (version , bytes) , Self :: GPS2_RTK (body) => body . ser (version , bytes) , Self :: DEBUG (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_INFORMATION (body) => body . ser (version , bytes) , Self :: NAV_CONTROLLER_OUTPUT (body) => body . ser (version , bytes) , Self :: PARAM_EXT_ACK (body) => body . ser (version , bytes) , Self :: TERRAIN_REPORT (body) => body . ser (version , bytes) , Self :: HIL_RC_INPUTS_RAW (body) => body . ser (version , bytes) , Self :: ODOMETRY (body) => body . ser (version , bytes) , Self :: HIGH_LATENCY (body) => body . ser (version , bytes) , Self :: PARAM_REQUEST_READ (body) => body . ser (version , bytes) , Self :: ATTITUDE (body) => body . ser (version , bytes) , Self :: PARAM_SET (body) => body . ser (version , bytes) , Self :: HIGHRES_IMU (body) => body . ser (version , bytes) , Self :: SIM_STATE (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE3 (body) => body . ser (version , bytes) , Self :: PROTOCOL_VERSION (body) => body . ser (version , bytes) , Self :: GPS_RTK (body) => body . ser (version , bytes) , Self :: CHANGE_OPERATOR_CONTROL_ACK (body) => body . ser (version , bytes) , Self :: CANFD_FRAME (body) => body . ser (version , bytes) , Self :: CAMERA_SETTINGS (body) => body . ser (version , bytes) , Self :: TRAJECTORY_REPRESENTATION_WAYPOINTS (body) => body . ser (version , bytes) , Self :: OPTICAL_FLOW (body) => body . ser (version , bytes) , Self :: GPS_INPUT (body) => body . ser (version , bytes) , Self :: WIND_COV (body) => body . ser (version , bytes) , Self :: HYGROMETER_SENSOR (body) => body . ser (version , bytes) , Self :: CAN_FRAME (body) => body . ser (version , bytes) , Self :: CAMERA_IMAGE_CAPTURED (body) => body . ser (version , bytes) , Self :: HIL_STATE_QUATERNION (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_ARM_STATUS (body) => body . ser (version , bytes) , Self :: MESSAGE_INTERVAL (body) => body . ser (version , bytes) , Self :: SCALED_IMU (body) => body . ser (version , bytes) , Self :: STORAGE_INFORMATION (body) => body . ser (version , bytes) , Self :: FENCE_STATUS (body) => body . ser (version , bytes) , Self :: NAMED_VALUE_INT (body) => body . ser (version , bytes) , Self :: VFR_HUD (body) => body . ser (version , bytes) , Self :: ESC_INFO (body) => body . ser (version , bytes) , Self :: RADIO_STATUS (body) => body . ser (version , bytes) , Self :: TIME_ESTIMATE_TO_TARGET (body) => body . ser (version , bytes) , Self :: HIL_GPS (body) => body . ser (version , bytes) , Self :: GPS_RTCM_DATA (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_END (body) => body . ser (version , bytes) , Self :: FILE_TRANSFER_PROTOCOL (body) => body . ser (version , bytes) , Self :: TRAJECTORY_REPRESENTATION_BEZIER (body) => body . ser (version , bytes) , Self :: POWER_STATUS (body) => body . ser (version , bytes) , Self :: ATTITUDE_QUATERNION_COV (body) => body . ser (version , bytes) , Self :: COMPONENT_METADATA (body) => body . ser (version , bytes) , Self :: GPS_INJECT_DATA (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_ATTITUDE (body) => body . ser (version , bytes) , Self :: POSITION_TARGET_GLOBAL_INT (body) => body . ser (version , bytes) , Self :: ENCAPSULATED_DATA (body) => body . ser (version , bytes) , Self :: VICON_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SELF_ID (body) => body . ser (version , bytes) , Self :: UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT (body) => body . ser (version , bytes) , Self :: PARAM_EXT_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: SET_MODE (body) => body . ser (version , bytes) , Self :: SYSTEM_TIME (body) => body . ser (version , bytes) , Self :: ADSB_VEHICLE (body) => body . ser (version , bytes) , Self :: POSITION_TARGET_LOCAL_NED (body) => body . ser (version , bytes) , Self :: HIL_OPTICAL_FLOW (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: PING (body) => body . ser (version , bytes) , Self :: NAMED_VALUE_FLOAT (body) => body . ser (version , bytes) , Self :: HIL_ACTUATOR_CONTROLS (body) => body . ser (version , bytes) , Self :: CAMERA_FOV_STATUS (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE2 (body) => body . ser (version , bytes) , Self :: TUNNEL (body) => body . ser (version , bytes) , Self :: DATA_STREAM (body) => body . ser (version , bytes) , Self :: GPS_STATUS (body) => body . ser (version , bytes) , Self :: COMMAND_ACK (body) => body . ser (version , bytes) , Self :: DISTANCE_SENSOR (body) => body . ser (version , bytes) , Self :: WIFI_CONFIG_AP (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SYSTEM (body) => body . ser (version , bytes) , Self :: MISSION_CLEAR_ALL (body) => body . ser (version , bytes) , Self :: OPTICAL_FLOW_RAD (body) => body . ser (version , bytes) , Self :: ACTUATOR_OUTPUT_STATUS (body) => body . ser (version , bytes) , Self :: WHEEL_DISTANCE (body) => body . ser (version , bytes) , Self :: ATTITUDE_TARGET (body) => body . ser (version , bytes) , Self :: HEARTBEAT (body) => body . ser (version , bytes) , Self :: MISSION_COUNT (body) => body . ser (version , bytes) , Self :: AUTH_KEY (body) => body . ser (version , bytes) , Self :: SET_ACTUATOR_CONTROL_TARGET (body) => body . ser (version , bytes) , Self :: REQUEST_DATA_STREAM (body) => body . ser (version , bytes) , Self :: EXTENDED_SYS_STATE (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_PITCHYAW (body) => body . ser (version , bytes) , Self :: SYS_STATUS (body) => body . ser (version , bytes) , Self :: GENERATOR_STATUS (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_INFORMATION (body) => body . ser (version , bytes) , Self :: REQUEST_EVENT (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED_COV (body) => body . ser (version , bytes) , Self :: SCALED_PRESSURE (body) => body . ser (version , bytes) , Self :: RESOURCE_REQUEST (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST (body) => body . ser (version , bytes) , Self :: CAMERA_TRIGGER (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_SYSTEM_UPDATE (body) => body . ser (version , bytes) , Self :: RAW_PRESSURE (body) => body . ser (version , bytes) , Self :: ACTUATOR_CONTROL_TARGET (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_AUTHENTICATION (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED (body) => body . ser (version , bytes) , Self :: GLOBAL_VISION_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: MAG_CAL_REPORT (body) => body . ser (version , bytes) , Self :: CELLULAR_STATUS (body) => body . ser (version , bytes) , Self :: DEBUG_FLOAT_ARRAY (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_ATTITUDE_STATUS (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_MESSAGE_PACK (body) => body . ser (version , bytes) , Self :: GIMBAL_DEVICE_SET_ATTITUDE (body) => body . ser (version , bytes) , Self :: MISSION_ITEM_INT (body) => body . ser (version , bytes) , Self :: TERRAIN_CHECK (body) => body . ser (version , bytes) , Self :: SAFETY_SET_ALLOWED_AREA (body) => body . ser (version , bytes) , Self :: UAVIONIX_ADSB_OUT_DYNAMIC (body) => body . ser (version , bytes) , Self :: VISION_POSITION_ESTIMATE (body) => body . ser (version , bytes) , Self :: ORBIT_EXECUTION_STATUS (body) => body . ser (version , bytes) , Self :: SET_POSITION_TARGET_LOCAL_NED (body) => body . ser (version , bytes) , Self :: ALTITUDE (body) => body . ser (version , bytes) , Self :: CHANGE_OPERATOR_CONTROL (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_INT (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: RC_CHANNELS (body) => body . ser (version , bytes) , Self :: VIDEO_STREAM_STATUS (body) => body . ser (version , bytes) , Self :: MISSION_WRITE_PARTIAL_LIST (body) => body . ser (version , bytes) , Self :: ATT_POS_MOCAP (body) => body . ser (version , bytes) , Self :: UAVCAN_NODE_STATUS (body) => body . ser (version , bytes) , Self :: ONBOARD_COMPUTER_STATUS (body) => body . ser (version , bytes) , Self :: RAW_IMU (body) => body . ser (version , bytes) , Self :: AUTOPILOT_STATE_FOR_GIMBAL_DEVICE (body) => body . ser (version , bytes) , Self :: MANUAL_CONTROL (body) => body . ser (version , bytes) , Self :: SERVO_OUTPUT_RAW (body) => body . ser (version , bytes) , Self :: ATTITUDE_QUATERNION (body) => body . ser (version , bytes) , Self :: MISSION_ITEM_REACHED (body) => body . ser (version , bytes) , Self :: DATA_TRANSMISSION_HANDSHAKE (body) => body . ser (version , bytes) , Self :: STATUSTEXT (body) => body . ser (version , bytes) , Self :: LOGGING_DATA (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_SCALED (body) => body . ser (version , bytes) , Self :: MEMORY_VECT (body) => body . ser (version , bytes) , Self :: LOG_ENTRY (body) => body . ser (version , bytes) , Self :: HIL_CONTROLS (body) => body . ser (version , bytes) , Self :: LOG_REQUEST_DATA (body) => body . ser (version , bytes) , Self :: TERRAIN_REQUEST (body) => body . ser (version , bytes) , Self :: ISBD_LINK_STATUS (body) => body . ser (version , bytes) , Self :: SET_POSITION_TARGET_GLOBAL_INT (body) => body . ser (version , bytes) , Self :: HIL_SENSOR (body) => body . ser (version , bytes) , Self :: V2_EXTENSION (body) => body . ser (version , bytes) , Self :: COMMAND_LONG (body) => body . ser (version , bytes) , Self :: UAVIONIX_ADSB_OUT_CFG (body) => body . ser (version , bytes) , Self :: ESTIMATOR_STATUS (body) => body . ser (version , bytes) , Self :: HIGH_LATENCY2 (body) => body . ser (version , bytes) , Self :: AUTOPILOT_VERSION (body) => body . ser (version , bytes) , Self :: DEBUG_VECT (body) => body . ser (version , bytes) , Self :: COMPONENT_INFORMATION (body) => body . ser (version , bytes) , Self :: PARAM_MAP_RC (body) => body . ser (version , bytes) , Self :: CAMERA_INFORMATION (body) => body . ser (version , bytes) , Self :: VIBRATION (body) => body . ser (version , bytes) , Self :: OBSTACLE_DISTANCE (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_RAW (body) => body . ser (version , bytes) , Self :: UAVCAN_NODE_INFO (body) => body . ser (version , bytes) , Self :: EVENT (body) => body . ser (version , bytes) , Self :: FLIGHT_INFORMATION (body) => body . ser (version , bytes) , Self :: PARAM_EXT_SET (body) => body . ser (version , bytes) , Self :: CAMERA_CAPTURE_STATUS (body) => body . ser (version , bytes) , Self :: LANDING_TARGET (body) => body . ser (version , bytes) , Self :: TIMESYNC (body) => body . ser (version , bytes) , Self :: EFI_STATUS (body) => body . ser (version , bytes) , Self :: VISION_SPEED_ESTIMATE (body) => body . ser (version , bytes) , Self :: GPS2_RAW (body) => body . ser (version , bytes) , Self :: COMMAND_INT (body) => body . ser (version , bytes) , Self :: MISSION_SET_CURRENT (body) => body . ser (version , bytes) , Self :: LOG_ERASE (body) => body . ser (version , bytes) , Self :: LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET (body) => body . ser (version , bytes) , Self :: HIL_STATE (body) => body . ser (version , bytes) , Self :: BUTTON_CHANGE (body) => body . ser (version , bytes) , Self :: GPS_RAW_INT (body) => body . ser (version , bytes) , Self :: COLLISION (body) => body . ser (version , bytes) , Self :: AIS_VESSEL (body) => body . ser (version , bytes) , Self :: TERRAIN_DATA (body) => body . ser (version , bytes) , Self :: GPS_GLOBAL_ORIGIN (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_LOCATION (body) => body . ser (version , bytes) , Self :: SCALED_IMU2 (body) => body . ser (version , bytes) , Self :: RESPONSE_EVENT_ERROR (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_STATUS (body) => body . ser (version , bytes) , Self :: SERIAL_CONTROL (body) => body . ser (version , bytes) , Self :: WINCH_STATUS (body) => body . ser (version , bytes) , Self :: PARAM_REQUEST_LIST (body) => body . ser (version , bytes) , Self :: LOGGING_DATA_ACKED (body) => body . ser (version , bytes) , Self :: GLOBAL_POSITION_INT_COV (body) => body . ser (version , bytes) , Self :: LOGGING_ACK (body) => body . ser (version , bytes) , Self :: LOG_DATA (body) => body . ser (version , bytes) , Self :: PARAM_EXT_VALUE (body) => body . ser (version , bytes) , Self :: PLAY_TUNE_V2 (body) => body . ser (version , bytes) , Self :: SET_GPS_GLOBAL_ORIGIN (body) => body . ser (version , bytes) , Self :: FOLLOW_TARGET (body) => body . ser (version , bytes) , Self :: MANUAL_SETPOINT (body) => body . ser (version , bytes) , Self :: RC_CHANNELS_OVERRIDE (body) => body . ser (version , bytes) , Self :: LINK_NODE_STATUS (body) => body . ser (version , bytes) , Self :: GLOBAL_POSITION_INT (body) => body . ser (version , bytes) , Self :: CAN_FILTER_MODIFY (body) => body . ser (version , bytes) , Self :: PARAM_EXT_REQUEST_READ (body) => body . ser (version , bytes) , Self :: UTM_GLOBAL_POSITION (body) => body . ser (version , bytes) , Self :: OPEN_DRONE_ID_BASIC_ID (body) => body . ser (version , bytes) , Self :: SET_ATTITUDE_TARGET (body) => body . ser (version , bytes) , Self :: BATTERY_STATUS (body) => body . ser (version , bytes) , Self :: SCALED_IMU3 (body) => body . ser (version , bytes) , Self :: MISSION_REQUEST_PARTIAL_LIST (body) => body . ser (version , bytes) , Self :: SETUP_SIGNING (body) => body . ser (version , bytes) , Self :: SMART_BATTERY_INFO (body) => body . ser (version , bytes) , Self :: MOUNT_ORIENTATION (body) => body . ser (version , bytes) , Self :: HOME_POSITION (body) => body . ser (version , bytes) , Self :: SAFETY_ALLOWED_AREA (body) => body . ser (version , bytes) , Self :: GIMBAL_MANAGER_SET_MANUAL_CONTROL (body) => body . ser (version , bytes) , Self :: CONTROL_SYSTEM_STATE (body) => body . ser (version , bytes) , } } fn extra_crc (id : u32) -> u8 { match id { MISSION_ACK_DATA :: ID => MISSION_ACK_DATA :: EXTRA_CRC , COMMAND_CANCEL_DATA :: ID => COMMAND_CANCEL_DATA :: EXTRA_CRC , CAMERA_TRACKING_IMAGE_STATUS_DATA :: ID => CAMERA_TRACKING_IMAGE_STATUS_DATA :: EXTRA_CRC , PARAM_VALUE_DATA :: ID => PARAM_VALUE_DATA :: EXTRA_CRC , SUPPORTED_TUNES_DATA :: ID => SUPPORTED_TUNES_DATA :: EXTRA_CRC , OPEN_DRONE_ID_OPERATOR_ID_DATA :: ID => OPEN_DRONE_ID_OPERATOR_ID_DATA :: EXTRA_CRC , SET_HOME_POSITION_DATA :: ID => SET_HOME_POSITION_DATA :: EXTRA_CRC , CAMERA_TRACKING_GEO_STATUS_DATA :: ID => CAMERA_TRACKING_GEO_STATUS_DATA :: EXTRA_CRC , MISSION_ITEM_DATA :: ID => MISSION_ITEM_DATA :: EXTRA_CRC , MISSION_CURRENT_DATA :: ID => MISSION_CURRENT_DATA :: EXTRA_CRC , RAW_RPM_DATA :: ID => RAW_RPM_DATA :: EXTRA_CRC , VIDEO_STREAM_INFORMATION_DATA :: ID => VIDEO_STREAM_INFORMATION_DATA :: EXTRA_CRC , CELLULAR_CONFIG_DATA :: ID => CELLULAR_CONFIG_DATA :: EXTRA_CRC , PLAY_TUNE_DATA :: ID => PLAY_TUNE_DATA :: EXTRA_CRC , CURRENT_EVENT_SEQUENCE_DATA :: ID => CURRENT_EVENT_SEQUENCE_DATA :: EXTRA_CRC , ESC_STATUS_DATA :: ID => ESC_STATUS_DATA :: EXTRA_CRC , GPS2_RTK_DATA :: ID => GPS2_RTK_DATA :: EXTRA_CRC , DEBUG_DATA :: ID => DEBUG_DATA :: EXTRA_CRC , GIMBAL_MANAGER_INFORMATION_DATA :: ID => GIMBAL_MANAGER_INFORMATION_DATA :: EXTRA_CRC , NAV_CONTROLLER_OUTPUT_DATA :: ID => NAV_CONTROLLER_OUTPUT_DATA :: EXTRA_CRC , PARAM_EXT_ACK_DATA :: ID => PARAM_EXT_ACK_DATA :: EXTRA_CRC , TERRAIN_REPORT_DATA :: ID => TERRAIN_REPORT_DATA :: EXTRA_CRC , HIL_RC_INPUTS_RAW_DATA :: ID => HIL_RC_INPUTS_RAW_DATA :: EXTRA_CRC , ODOMETRY_DATA :: ID => ODOMETRY_DATA :: EXTRA_CRC , HIGH_LATENCY_DATA :: ID => HIGH_LATENCY_DATA :: EXTRA_CRC , PARAM_REQUEST_READ_DATA :: ID => PARAM_REQUEST_READ_DATA :: EXTRA_CRC , ATTITUDE_DATA :: ID => ATTITUDE_DATA :: EXTRA_CRC , PARAM_SET_DATA :: ID => PARAM_SET_DATA :: EXTRA_CRC , HIGHRES_IMU_DATA :: ID => HIGHRES_IMU_DATA :: EXTRA_CRC , SIM_STATE_DATA :: ID => SIM_STATE_DATA :: EXTRA_CRC , SCALED_PRESSURE3_DATA :: ID => SCALED_PRESSURE3_DATA :: EXTRA_CRC , PROTOCOL_VERSION_DATA :: ID => PROTOCOL_VERSION_DATA :: EXTRA_CRC , GPS_RTK_DATA :: ID => GPS_RTK_DATA :: EXTRA_CRC , CHANGE_OPERATOR_CONTROL_ACK_DATA :: ID => CHANGE_OPERATOR_CONTROL_ACK_DATA :: EXTRA_CRC , CANFD_FRAME_DATA :: ID => CANFD_FRAME_DATA :: EXTRA_CRC , CAMERA_SETTINGS_DATA :: ID => CAMERA_SETTINGS_DATA :: EXTRA_CRC , TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: ID => TRAJECTORY_REPRESENTATION_WAYPOINTS_DATA :: EXTRA_CRC , OPTICAL_FLOW_DATA :: ID => OPTICAL_FLOW_DATA :: EXTRA_CRC , GPS_INPUT_DATA :: ID => GPS_INPUT_DATA :: EXTRA_CRC , WIND_COV_DATA :: ID => WIND_COV_DATA :: EXTRA_CRC , HYGROMETER_SENSOR_DATA :: ID => HYGROMETER_SENSOR_DATA :: EXTRA_CRC , CAN_FRAME_DATA :: ID => CAN_FRAME_DATA :: EXTRA_CRC , CAMERA_IMAGE_CAPTURED_DATA :: ID => CAMERA_IMAGE_CAPTURED_DATA :: EXTRA_CRC , HIL_STATE_QUATERNION_DATA :: ID => HIL_STATE_QUATERNION_DATA :: EXTRA_CRC , OPEN_DRONE_ID_ARM_STATUS_DATA :: ID => OPEN_DRONE_ID_ARM_STATUS_DATA :: EXTRA_CRC , MESSAGE_INTERVAL_DATA :: ID => MESSAGE_INTERVAL_DATA :: EXTRA_CRC , SCALED_IMU_DATA :: ID => SCALED_IMU_DATA :: EXTRA_CRC , STORAGE_INFORMATION_DATA :: ID => STORAGE_INFORMATION_DATA :: EXTRA_CRC , FENCE_STATUS_DATA :: ID => FENCE_STATUS_DATA :: EXTRA_CRC , NAMED_VALUE_INT_DATA :: ID => NAMED_VALUE_INT_DATA :: EXTRA_CRC , VFR_HUD_DATA :: ID => VFR_HUD_DATA :: EXTRA_CRC , ESC_INFO_DATA :: ID => ESC_INFO_DATA :: EXTRA_CRC , RADIO_STATUS_DATA :: ID => RADIO_STATUS_DATA :: EXTRA_CRC , TIME_ESTIMATE_TO_TARGET_DATA :: ID => TIME_ESTIMATE_TO_TARGET_DATA :: EXTRA_CRC , HIL_GPS_DATA :: ID => HIL_GPS_DATA :: EXTRA_CRC , GPS_RTCM_DATA_DATA :: ID => GPS_RTCM_DATA_DATA :: EXTRA_CRC , LOG_REQUEST_END_DATA :: ID => LOG_REQUEST_END_DATA :: EXTRA_CRC , FILE_TRANSFER_PROTOCOL_DATA :: ID => FILE_TRANSFER_PROTOCOL_DATA :: EXTRA_CRC , TRAJECTORY_REPRESENTATION_BEZIER_DATA :: ID => TRAJECTORY_REPRESENTATION_BEZIER_DATA :: EXTRA_CRC , POWER_STATUS_DATA :: ID => POWER_STATUS_DATA :: EXTRA_CRC , ATTITUDE_QUATERNION_COV_DATA :: ID => ATTITUDE_QUATERNION_COV_DATA :: EXTRA_CRC , COMPONENT_METADATA_DATA :: ID => COMPONENT_METADATA_DATA :: EXTRA_CRC , GPS_INJECT_DATA_DATA :: ID => GPS_INJECT_DATA_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_ATTITUDE_DATA :: ID => GIMBAL_MANAGER_SET_ATTITUDE_DATA :: EXTRA_CRC , POSITION_TARGET_GLOBAL_INT_DATA :: ID => POSITION_TARGET_GLOBAL_INT_DATA :: EXTRA_CRC , ENCAPSULATED_DATA_DATA :: ID => ENCAPSULATED_DATA_DATA :: EXTRA_CRC , VICON_POSITION_ESTIMATE_DATA :: ID => VICON_POSITION_ESTIMATE_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SELF_ID_DATA :: ID => OPEN_DRONE_ID_SELF_ID_DATA :: EXTRA_CRC , UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: ID => UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT_DATA :: EXTRA_CRC , PARAM_EXT_REQUEST_LIST_DATA :: ID => PARAM_EXT_REQUEST_LIST_DATA :: EXTRA_CRC , SET_MODE_DATA :: ID => SET_MODE_DATA :: EXTRA_CRC , SYSTEM_TIME_DATA :: ID => SYSTEM_TIME_DATA :: EXTRA_CRC , ADSB_VEHICLE_DATA :: ID => ADSB_VEHICLE_DATA :: EXTRA_CRC , POSITION_TARGET_LOCAL_NED_DATA :: ID => POSITION_TARGET_LOCAL_NED_DATA :: EXTRA_CRC , HIL_OPTICAL_FLOW_DATA :: ID => HIL_OPTICAL_FLOW_DATA :: EXTRA_CRC , MISSION_REQUEST_LIST_DATA :: ID => MISSION_REQUEST_LIST_DATA :: EXTRA_CRC , PING_DATA :: ID => PING_DATA :: EXTRA_CRC , NAMED_VALUE_FLOAT_DATA :: ID => NAMED_VALUE_FLOAT_DATA :: EXTRA_CRC , HIL_ACTUATOR_CONTROLS_DATA :: ID => HIL_ACTUATOR_CONTROLS_DATA :: EXTRA_CRC , CAMERA_FOV_STATUS_DATA :: ID => CAMERA_FOV_STATUS_DATA :: EXTRA_CRC , SCALED_PRESSURE2_DATA :: ID => SCALED_PRESSURE2_DATA :: EXTRA_CRC , TUNNEL_DATA :: ID => TUNNEL_DATA :: EXTRA_CRC , DATA_STREAM_DATA :: ID => DATA_STREAM_DATA :: EXTRA_CRC , GPS_STATUS_DATA :: ID => GPS_STATUS_DATA :: EXTRA_CRC , COMMAND_ACK_DATA :: ID => COMMAND_ACK_DATA :: EXTRA_CRC , DISTANCE_SENSOR_DATA :: ID => DISTANCE_SENSOR_DATA :: EXTRA_CRC , WIFI_CONFIG_AP_DATA :: ID => WIFI_CONFIG_AP_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SYSTEM_DATA :: ID => OPEN_DRONE_ID_SYSTEM_DATA :: EXTRA_CRC , MISSION_CLEAR_ALL_DATA :: ID => MISSION_CLEAR_ALL_DATA :: EXTRA_CRC , OPTICAL_FLOW_RAD_DATA :: ID => OPTICAL_FLOW_RAD_DATA :: EXTRA_CRC , ACTUATOR_OUTPUT_STATUS_DATA :: ID => ACTUATOR_OUTPUT_STATUS_DATA :: EXTRA_CRC , WHEEL_DISTANCE_DATA :: ID => WHEEL_DISTANCE_DATA :: EXTRA_CRC , ATTITUDE_TARGET_DATA :: ID => ATTITUDE_TARGET_DATA :: EXTRA_CRC , HEARTBEAT_DATA :: ID => HEARTBEAT_DATA :: EXTRA_CRC , MISSION_COUNT_DATA :: ID => MISSION_COUNT_DATA :: EXTRA_CRC , AUTH_KEY_DATA :: ID => AUTH_KEY_DATA :: EXTRA_CRC , SET_ACTUATOR_CONTROL_TARGET_DATA :: ID => SET_ACTUATOR_CONTROL_TARGET_DATA :: EXTRA_CRC , REQUEST_DATA_STREAM_DATA :: ID => REQUEST_DATA_STREAM_DATA :: EXTRA_CRC , EXTENDED_SYS_STATE_DATA :: ID => EXTENDED_SYS_STATE_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_PITCHYAW_DATA :: ID => GIMBAL_MANAGER_SET_PITCHYAW_DATA :: EXTRA_CRC , SYS_STATUS_DATA :: ID => SYS_STATUS_DATA :: EXTRA_CRC , GENERATOR_STATUS_DATA :: ID => GENERATOR_STATUS_DATA :: EXTRA_CRC , GIMBAL_DEVICE_INFORMATION_DATA :: ID => GIMBAL_DEVICE_INFORMATION_DATA :: EXTRA_CRC , REQUEST_EVENT_DATA :: ID => REQUEST_EVENT_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_COV_DATA :: ID => LOCAL_POSITION_NED_COV_DATA :: EXTRA_CRC , SCALED_PRESSURE_DATA :: ID => SCALED_PRESSURE_DATA :: EXTRA_CRC , RESOURCE_REQUEST_DATA :: ID => RESOURCE_REQUEST_DATA :: EXTRA_CRC , MISSION_REQUEST_DATA :: ID => MISSION_REQUEST_DATA :: EXTRA_CRC , CAMERA_TRIGGER_DATA :: ID => CAMERA_TRIGGER_DATA :: EXTRA_CRC , OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: ID => OPEN_DRONE_ID_SYSTEM_UPDATE_DATA :: EXTRA_CRC , RAW_PRESSURE_DATA :: ID => RAW_PRESSURE_DATA :: EXTRA_CRC , ACTUATOR_CONTROL_TARGET_DATA :: ID => ACTUATOR_CONTROL_TARGET_DATA :: EXTRA_CRC , OPEN_DRONE_ID_AUTHENTICATION_DATA :: ID => OPEN_DRONE_ID_AUTHENTICATION_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_DATA :: ID => LOCAL_POSITION_NED_DATA :: EXTRA_CRC , GLOBAL_VISION_POSITION_ESTIMATE_DATA :: ID => GLOBAL_VISION_POSITION_ESTIMATE_DATA :: EXTRA_CRC , MAG_CAL_REPORT_DATA :: ID => MAG_CAL_REPORT_DATA :: EXTRA_CRC , CELLULAR_STATUS_DATA :: ID => CELLULAR_STATUS_DATA :: EXTRA_CRC , DEBUG_FLOAT_ARRAY_DATA :: ID => DEBUG_FLOAT_ARRAY_DATA :: EXTRA_CRC , GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: ID => GIMBAL_DEVICE_ATTITUDE_STATUS_DATA :: EXTRA_CRC , OPEN_DRONE_ID_MESSAGE_PACK_DATA :: ID => OPEN_DRONE_ID_MESSAGE_PACK_DATA :: EXTRA_CRC , GIMBAL_DEVICE_SET_ATTITUDE_DATA :: ID => GIMBAL_DEVICE_SET_ATTITUDE_DATA :: EXTRA_CRC , MISSION_ITEM_INT_DATA :: ID => MISSION_ITEM_INT_DATA :: EXTRA_CRC , TERRAIN_CHECK_DATA :: ID => TERRAIN_CHECK_DATA :: EXTRA_CRC , SAFETY_SET_ALLOWED_AREA_DATA :: ID => SAFETY_SET_ALLOWED_AREA_DATA :: EXTRA_CRC , UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: ID => UAVIONIX_ADSB_OUT_DYNAMIC_DATA :: EXTRA_CRC , VISION_POSITION_ESTIMATE_DATA :: ID => VISION_POSITION_ESTIMATE_DATA :: EXTRA_CRC , ORBIT_EXECUTION_STATUS_DATA :: ID => ORBIT_EXECUTION_STATUS_DATA :: EXTRA_CRC , SET_POSITION_TARGET_LOCAL_NED_DATA :: ID => SET_POSITION_TARGET_LOCAL_NED_DATA :: EXTRA_CRC , ALTITUDE_DATA :: ID => ALTITUDE_DATA :: EXTRA_CRC , CHANGE_OPERATOR_CONTROL_DATA :: ID => CHANGE_OPERATOR_CONTROL_DATA :: EXTRA_CRC , MISSION_REQUEST_INT_DATA :: ID => MISSION_REQUEST_INT_DATA :: EXTRA_CRC , LOG_REQUEST_LIST_DATA :: ID => LOG_REQUEST_LIST_DATA :: EXTRA_CRC , RC_CHANNELS_DATA :: ID => RC_CHANNELS_DATA :: EXTRA_CRC , VIDEO_STREAM_STATUS_DATA :: ID => VIDEO_STREAM_STATUS_DATA :: EXTRA_CRC , MISSION_WRITE_PARTIAL_LIST_DATA :: ID => MISSION_WRITE_PARTIAL_LIST_DATA :: EXTRA_CRC , ATT_POS_MOCAP_DATA :: ID => ATT_POS_MOCAP_DATA :: EXTRA_CRC , UAVCAN_NODE_STATUS_DATA :: ID => UAVCAN_NODE_STATUS_DATA :: EXTRA_CRC , ONBOARD_COMPUTER_STATUS_DATA :: ID => ONBOARD_COMPUTER_STATUS_DATA :: EXTRA_CRC , RAW_IMU_DATA :: ID => RAW_IMU_DATA :: EXTRA_CRC , AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: ID => AUTOPILOT_STATE_FOR_GIMBAL_DEVICE_DATA :: EXTRA_CRC , MANUAL_CONTROL_DATA :: ID => MANUAL_CONTROL_DATA :: EXTRA_CRC , SERVO_OUTPUT_RAW_DATA :: ID => SERVO_OUTPUT_RAW_DATA :: EXTRA_CRC , ATTITUDE_QUATERNION_DATA :: ID => ATTITUDE_QUATERNION_DATA :: EXTRA_CRC , MISSION_ITEM_REACHED_DATA :: ID => MISSION_ITEM_REACHED_DATA :: EXTRA_CRC , DATA_TRANSMISSION_HANDSHAKE_DATA :: ID => DATA_TRANSMISSION_HANDSHAKE_DATA :: EXTRA_CRC , STATUSTEXT_DATA :: ID => STATUSTEXT_DATA :: EXTRA_CRC , LOGGING_DATA_DATA :: ID => LOGGING_DATA_DATA :: EXTRA_CRC , RC_CHANNELS_SCALED_DATA :: ID => RC_CHANNELS_SCALED_DATA :: EXTRA_CRC , MEMORY_VECT_DATA :: ID => MEMORY_VECT_DATA :: EXTRA_CRC , LOG_ENTRY_DATA :: ID => LOG_ENTRY_DATA :: EXTRA_CRC , HIL_CONTROLS_DATA :: ID => HIL_CONTROLS_DATA :: EXTRA_CRC , LOG_REQUEST_DATA_DATA :: ID => LOG_REQUEST_DATA_DATA :: EXTRA_CRC , TERRAIN_REQUEST_DATA :: ID => TERRAIN_REQUEST_DATA :: EXTRA_CRC , ISBD_LINK_STATUS_DATA :: ID => ISBD_LINK_STATUS_DATA :: EXTRA_CRC , SET_POSITION_TARGET_GLOBAL_INT_DATA :: ID => SET_POSITION_TARGET_GLOBAL_INT_DATA :: EXTRA_CRC , HIL_SENSOR_DATA :: ID => HIL_SENSOR_DATA :: EXTRA_CRC , V2_EXTENSION_DATA :: ID => V2_EXTENSION_DATA :: EXTRA_CRC , COMMAND_LONG_DATA :: ID => COMMAND_LONG_DATA :: EXTRA_CRC , UAVIONIX_ADSB_OUT_CFG_DATA :: ID => UAVIONIX_ADSB_OUT_CFG_DATA :: EXTRA_CRC , ESTIMATOR_STATUS_DATA :: ID => ESTIMATOR_STATUS_DATA :: EXTRA_CRC , HIGH_LATENCY2_DATA :: ID => HIGH_LATENCY2_DATA :: EXTRA_CRC , AUTOPILOT_VERSION_DATA :: ID => AUTOPILOT_VERSION_DATA :: EXTRA_CRC , DEBUG_VECT_DATA :: ID => DEBUG_VECT_DATA :: EXTRA_CRC , COMPONENT_INFORMATION_DATA :: ID => COMPONENT_INFORMATION_DATA :: EXTRA_CRC , PARAM_MAP_RC_DATA :: ID => PARAM_MAP_RC_DATA :: EXTRA_CRC , CAMERA_INFORMATION_DATA :: ID => CAMERA_INFORMATION_DATA :: EXTRA_CRC , VIBRATION_DATA :: ID => VIBRATION_DATA :: EXTRA_CRC , OBSTACLE_DISTANCE_DATA :: ID => OBSTACLE_DISTANCE_DATA :: EXTRA_CRC , RC_CHANNELS_RAW_DATA :: ID => RC_CHANNELS_RAW_DATA :: EXTRA_CRC , UAVCAN_NODE_INFO_DATA :: ID => UAVCAN_NODE_INFO_DATA :: EXTRA_CRC , EVENT_DATA :: ID => EVENT_DATA :: EXTRA_CRC , FLIGHT_INFORMATION_DATA :: ID => FLIGHT_INFORMATION_DATA :: EXTRA_CRC , PARAM_EXT_SET_DATA :: ID => PARAM_EXT_SET_DATA :: EXTRA_CRC , CAMERA_CAPTURE_STATUS_DATA :: ID => CAMERA_CAPTURE_STATUS_DATA :: EXTRA_CRC , LANDING_TARGET_DATA :: ID => LANDING_TARGET_DATA :: EXTRA_CRC , TIMESYNC_DATA :: ID => TIMESYNC_DATA :: EXTRA_CRC , EFI_STATUS_DATA :: ID => EFI_STATUS_DATA :: EXTRA_CRC , VISION_SPEED_ESTIMATE_DATA :: ID => VISION_SPEED_ESTIMATE_DATA :: EXTRA_CRC , GPS2_RAW_DATA :: ID => GPS2_RAW_DATA :: EXTRA_CRC , COMMAND_INT_DATA :: ID => COMMAND_INT_DATA :: EXTRA_CRC , MISSION_SET_CURRENT_DATA :: ID => MISSION_SET_CURRENT_DATA :: EXTRA_CRC , LOG_ERASE_DATA :: ID => LOG_ERASE_DATA :: EXTRA_CRC , LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: ID => LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_DATA :: EXTRA_CRC , HIL_STATE_DATA :: ID => HIL_STATE_DATA :: EXTRA_CRC , BUTTON_CHANGE_DATA :: ID => BUTTON_CHANGE_DATA :: EXTRA_CRC , GPS_RAW_INT_DATA :: ID => GPS_RAW_INT_DATA :: EXTRA_CRC , COLLISION_DATA :: ID => COLLISION_DATA :: EXTRA_CRC , AIS_VESSEL_DATA :: ID => AIS_VESSEL_DATA :: EXTRA_CRC , TERRAIN_DATA_DATA :: ID => TERRAIN_DATA_DATA :: EXTRA_CRC , GPS_GLOBAL_ORIGIN_DATA :: ID => GPS_GLOBAL_ORIGIN_DATA :: EXTRA_CRC , OPEN_DRONE_ID_LOCATION_DATA :: ID => OPEN_DRONE_ID_LOCATION_DATA :: EXTRA_CRC , SCALED_IMU2_DATA :: ID => SCALED_IMU2_DATA :: EXTRA_CRC , RESPONSE_EVENT_ERROR_DATA :: ID => RESPONSE_EVENT_ERROR_DATA :: EXTRA_CRC , GIMBAL_MANAGER_STATUS_DATA :: ID => GIMBAL_MANAGER_STATUS_DATA :: EXTRA_CRC , SERIAL_CONTROL_DATA :: ID => SERIAL_CONTROL_DATA :: EXTRA_CRC , WINCH_STATUS_DATA :: ID => WINCH_STATUS_DATA :: EXTRA_CRC , PARAM_REQUEST_LIST_DATA :: ID => PARAM_REQUEST_LIST_DATA :: EXTRA_CRC , LOGGING_DATA_ACKED_DATA :: ID => LOGGING_DATA_ACKED_DATA :: EXTRA_CRC , GLOBAL_POSITION_INT_COV_DATA :: ID => GLOBAL_POSITION_INT_COV_DATA :: EXTRA_CRC , LOGGING_ACK_DATA :: ID => LOGGING_ACK_DATA :: EXTRA_CRC , LOG_DATA_DATA :: ID => LOG_DATA_DATA :: EXTRA_CRC , PARAM_EXT_VALUE_DATA :: ID => PARAM_EXT_VALUE_DATA :: EXTRA_CRC , PLAY_TUNE_V2_DATA :: ID => PLAY_TUNE_V2_DATA :: EXTRA_CRC , SET_GPS_GLOBAL_ORIGIN_DATA :: ID => SET_GPS_GLOBAL_ORIGIN_DATA :: EXTRA_CRC , FOLLOW_TARGET_DATA :: ID => FOLLOW_TARGET_DATA :: EXTRA_CRC , MANUAL_SETPOINT_DATA :: ID => MANUAL_SETPOINT_DATA :: EXTRA_CRC , RC_CHANNELS_OVERRIDE_DATA :: ID => RC_CHANNELS_OVERRIDE_DATA :: EXTRA_CRC , LINK_NODE_STATUS_DATA :: ID => LINK_NODE_STATUS_DATA :: EXTRA_CRC , GLOBAL_POSITION_INT_DATA :: ID => GLOBAL_POSITION_INT_DATA :: EXTRA_CRC , CAN_FILTER_MODIFY_DATA :: ID => CAN_FILTER_MODIFY_DATA :: EXTRA_CRC , PARAM_EXT_REQUEST_READ_DATA :: ID => PARAM_EXT_REQUEST_READ_DATA :: EXTRA_CRC , UTM_GLOBAL_POSITION_DATA :: ID => UTM_GLOBAL_POSITION_DATA :: EXTRA_CRC , OPEN_DRONE_ID_BASIC_ID_DATA :: ID => OPEN_DRONE_ID_BASIC_ID_DATA :: EXTRA_CRC , SET_ATTITUDE_TARGET_DATA :: ID => SET_ATTITUDE_TARGET_DATA :: EXTRA_CRC , BATTERY_STATUS_DATA :: ID => BATTERY_STATUS_DATA :: EXTRA_CRC , SCALED_IMU3_DATA :: ID => SCALED_IMU3_DATA :: EXTRA_CRC , MISSION_REQUEST_PARTIAL_LIST_DATA :: ID => MISSION_REQUEST_PARTIAL_LIST_DATA :: EXTRA_CRC , SETUP_SIGNING_DATA :: ID => SETUP_SIGNING_DATA :: EXTRA_CRC , SMART_BATTERY_INFO_DATA :: ID => SMART_BATTERY_INFO_DATA :: EXTRA_CRC , MOUNT_ORIENTATION_DATA :: ID => MOUNT_ORIENTATION_DATA :: EXTRA_CRC , HOME_POSITION_DATA :: ID => HOME_POSITION_DATA :: EXTRA_CRC , SAFETY_ALLOWED_AREA_DATA :: ID => SAFETY_ALLOWED_AREA_DATA :: EXTRA_CRC , GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: ID => GIMBAL_MANAGER_SET_MANUAL_CONTROL_DATA :: EXTRA_CRC , CONTROL_SYSTEM_STATE_DATA :: ID => CONTROL_SYSTEM_STATE_DATA :: EXTRA_CRC , _ => { 0 } , } } }
 
\ No newline at end of file diff --git a/src/mavlink_core/bytes.rs.html b/src/mavlink_core/bytes.rs.html index fa22cc88ad..1e7a0a8c28 100644 --- a/src/mavlink_core/bytes.rs.html +++ b/src/mavlink_core/bytes.rs.html @@ -1,4 +1,4 @@ -bytes.rs - source
1
+bytes.rs - source
1
 2
 3
 4
@@ -117,22 +117,6 @@
 117
 118
 119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
 
pub struct Bytes<'a> {
     data: &'a [u8],
     pos: usize,
@@ -148,13 +132,11 @@
         self.data.len() - self.pos
     }
 
-    #[inline]
-    pub fn remaining_bytes(&self) -> &'a [u8] {
+    pub fn remaining_bytes(&self) -> &'a [u8] {
         &self.data[self.pos..]
     }
 
-    #[inline]
-    fn check_remaining(&self, count: usize) {
+    fn check_remaining(&self, count: usize) {
         assert!(
             self.remaining() >= count,
             "read buffer exhausted; remaining {} bytes, try read {} bytes",
@@ -163,8 +145,7 @@
         );
     }
 
-    #[inline]
-    pub fn get_bytes(&mut self, count: usize) -> &[u8] {
+    pub fn get_bytes(&mut self, count: usize) -> &[u8] {
         self.check_remaining(count);
 
         let bytes = &self.data[self.pos..(self.pos + count)];
@@ -172,8 +153,7 @@
         bytes
     }
 
-    #[inline]
-    pub fn get_array<const SIZE: usize>(&mut self) -> [u8; SIZE] {
+    pub fn get_array<const SIZE: usize>(&mut self) -> [u8; SIZE] {
         let bytes = self.get_bytes(SIZE);
         let mut arr = [0u8; SIZE];
 
@@ -184,8 +164,7 @@
         arr
     }
 
-    #[inline]
-    pub fn get_u8(&mut self) -> u8 {
+    pub fn get_u8(&mut self) -> u8 {
         self.check_remaining(1);
 
         let val = self.data[self.pos];
@@ -193,8 +172,7 @@
         val
     }
 
-    #[inline]
-    pub fn get_i8(&mut self) -> i8 {
+    pub fn get_i8(&mut self) -> i8 {
         self.check_remaining(1);
 
         let val = self.data[self.pos] as i8;
@@ -202,18 +180,15 @@
         val
     }
 
-    #[inline]
-    pub fn get_u16_le(&mut self) -> u16 {
+    pub fn get_u16_le(&mut self) -> u16 {
         u16::from_le_bytes(self.get_array())
     }
 
-    #[inline]
-    pub fn get_i16_le(&mut self) -> i16 {
+    pub fn get_i16_le(&mut self) -> i16 {
         i16::from_le_bytes(self.get_array())
     }
 
-    #[inline]
-    pub fn get_u24_le(&mut self) -> u32 {
+    pub fn get_u24_le(&mut self) -> u32 {
         const SIZE: usize = 3;
         self.check_remaining(SIZE);
 
@@ -225,8 +200,7 @@
         u32::from_le_bytes(val)
     }
 
-    #[inline]
-    pub fn get_i24_le(&mut self) -> i32 {
+    pub fn get_i24_le(&mut self) -> i32 {
         const SIZE: usize = 3;
         self.check_remaining(SIZE);
 
@@ -238,33 +212,27 @@
         i32::from_le_bytes(val)
     }
 
-    #[inline]
-    pub fn get_u32_le(&mut self) -> u32 {
+    pub fn get_u32_le(&mut self) -> u32 {
         u32::from_le_bytes(self.get_array())
     }
 
-    #[inline]
-    pub fn get_i32_le(&mut self) -> i32 {
+    pub fn get_i32_le(&mut self) -> i32 {
         i32::from_le_bytes(self.get_array())
     }
 
-    #[inline]
-    pub fn get_u64_le(&mut self) -> u64 {
+    pub fn get_u64_le(&mut self) -> u64 {
         u64::from_le_bytes(self.get_array())
     }
 
-    #[inline]
-    pub fn get_i64_le(&mut self) -> i64 {
+    pub fn get_i64_le(&mut self) -> i64 {
         i64::from_le_bytes(self.get_array())
     }
 
-    #[inline]
-    pub fn get_f32_le(&mut self) -> f32 {
+    pub fn get_f32_le(&mut self) -> f32 {
         f32::from_le_bytes(self.get_array())
     }
 
-    #[inline]
-    pub fn get_f64_le(&mut self) -> f64 {
+    pub fn get_f64_le(&mut self) -> f64 {
         f64::from_le_bytes(self.get_array())
     }
 }
diff --git a/src/mavlink_core/bytes_mut.rs.html b/src/mavlink_core/bytes_mut.rs.html
index d9037e8a4f..465cf94875 100644
--- a/src/mavlink_core/bytes_mut.rs.html
+++ b/src/mavlink_core/bytes_mut.rs.html
@@ -1,4 +1,4 @@
-bytes_mut.rs - source
1
+bytes_mut.rs - source
1
 2
 3
 4
@@ -170,19 +170,6 @@
 170
 171
 172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
 
pub struct BytesMut<'a> {
     data: &'a mut [u8],
     len: usize,
@@ -218,8 +205,7 @@
         );
     }
 
-    #[inline]
-    pub fn put_slice(&mut self, src: &[u8]) {
+    pub fn put_slice(&mut self, src: &[u8]) {
         self.check_remaining(src.len());
 
         unsafe {
@@ -228,24 +214,21 @@
         self.len += src.len();
     }
 
-    #[inline]
-    pub fn put_u8(&mut self, val: u8) {
+    pub fn put_u8(&mut self, val: u8) {
         self.check_remaining(1);
 
         self.data[self.len] = val;
         self.len += 1;
     }
 
-    #[inline]
-    pub fn put_i8(&mut self, val: i8) {
+    pub fn put_i8(&mut self, val: i8) {
         self.check_remaining(1);
 
         self.data[self.len] = val as u8;
         self.len += 1;
     }
 
-    #[inline]
-    pub fn put_u16_le(&mut self, val: u16) {
+    pub fn put_u16_le(&mut self, val: u16) {
         const SIZE: usize = core::mem::size_of::<u16>();
         self.check_remaining(SIZE);
 
@@ -254,8 +237,7 @@
         self.len += SIZE;
     }
 
-    #[inline]
-    pub fn put_i16_le(&mut self, val: i16) {
+    pub fn put_i16_le(&mut self, val: i16) {
         const SIZE: usize = core::mem::size_of::<i16>();
         self.check_remaining(SIZE);
 
@@ -264,8 +246,7 @@
         self.len += SIZE;
     }
 
-    #[inline]
-    pub fn put_u24_le(&mut self, val: u32) {
+    pub fn put_u24_le(&mut self, val: u32) {
         const SIZE: usize = 3;
         const MAX: u32 = 2u32.pow(24) - 1;
 
@@ -282,8 +263,7 @@
         self.len += SIZE;
     }
 
-    #[inline]
-    pub fn put_i24_le(&mut self, val: i32) {
+    pub fn put_i24_le(&mut self, val: i32) {
         const SIZE: usize = 3;
         const MIN: i32 = 2i32.pow(23);
         const MAX: i32 = 2i32.pow(23) - 1;
@@ -308,8 +288,7 @@
         self.len += SIZE;
     }
 
-    #[inline]
-    pub fn put_u32_le(&mut self, val: u32) {
+    pub fn put_u32_le(&mut self, val: u32) {
         const SIZE: usize = core::mem::size_of::<u32>();
         self.check_remaining(SIZE);
 
@@ -318,8 +297,7 @@
         self.len += SIZE;
     }
 
-    #[inline]
-    pub fn put_i32_le(&mut self, val: i32) {
+    pub fn put_i32_le(&mut self, val: i32) {
         const SIZE: usize = core::mem::size_of::<i32>();
         self.check_remaining(SIZE);
 
@@ -328,8 +306,7 @@
         self.len += SIZE;
     }
 
-    #[inline]
-    pub fn put_u64_le(&mut self, val: u64) {
+    pub fn put_u64_le(&mut self, val: u64) {
         const SIZE: usize = core::mem::size_of::<u64>();
         self.check_remaining(SIZE);
 
@@ -338,8 +315,7 @@
         self.len += SIZE;
     }
 
-    #[inline]
-    pub fn put_i64_le(&mut self, val: i64) {
+    pub fn put_i64_le(&mut self, val: i64) {
         const SIZE: usize = core::mem::size_of::<i64>();
         self.check_remaining(SIZE);
 
@@ -348,8 +324,7 @@
         self.len += SIZE;
     }
 
-    #[inline]
-    pub fn put_f32_le(&mut self, val: f32) {
+    pub fn put_f32_le(&mut self, val: f32) {
         const SIZE: usize = core::mem::size_of::<f32>();
         self.check_remaining(SIZE);
 
@@ -358,8 +333,7 @@
         self.len += SIZE;
     }
 
-    #[inline]
-    pub fn put_f64_le(&mut self, val: f64) {
+    pub fn put_f64_le(&mut self, val: f64) {
         const SIZE: usize = core::mem::size_of::<f64>();
         self.check_remaining(SIZE);
 
diff --git a/src/mavlink_core/connection/direct_serial.rs.html b/src/mavlink_core/connection/direct_serial.rs.html
index a4500f2099..cefa1da95f 100644
--- a/src/mavlink_core/connection/direct_serial.rs.html
+++ b/src/mavlink_core/connection/direct_serial.rs.html
@@ -1,4 +1,4 @@
-direct_serial.rs - source
1
+direct_serial.rs - source
1
 2
 3
 4
diff --git a/src/mavlink_core/connection/file.rs.html b/src/mavlink_core/connection/file.rs.html
index 19b7ebc092..3fa923b90b 100644
--- a/src/mavlink_core/connection/file.rs.html
+++ b/src/mavlink_core/connection/file.rs.html
@@ -1,4 +1,4 @@
-file.rs - source
1
+file.rs - source
1
 2
 3
 4
diff --git a/src/mavlink_core/connection/mod.rs.html b/src/mavlink_core/connection/mod.rs.html
index 783664022c..54f7cf5fb2 100644
--- a/src/mavlink_core/connection/mod.rs.html
+++ b/src/mavlink_core/connection/mod.rs.html
@@ -1,4 +1,4 @@
-mod.rs - source
1
+mod.rs - source
1
 2
 3
 4
diff --git a/src/mavlink_core/connection/tcp.rs.html b/src/mavlink_core/connection/tcp.rs.html
index b51715dc75..f7a3ed5641 100644
--- a/src/mavlink_core/connection/tcp.rs.html
+++ b/src/mavlink_core/connection/tcp.rs.html
@@ -1,4 +1,4 @@
-tcp.rs - source
1
+tcp.rs - source
1
 2
 3
 4
diff --git a/src/mavlink_core/connection/udp.rs.html b/src/mavlink_core/connection/udp.rs.html
index 512c55da45..aca0357826 100644
--- a/src/mavlink_core/connection/udp.rs.html
+++ b/src/mavlink_core/connection/udp.rs.html
@@ -1,4 +1,4 @@
-udp.rs - source
1
+udp.rs - source
1
 2
 3
 4
diff --git a/src/mavlink_core/error.rs.html b/src/mavlink_core/error.rs.html
index 7af585cda7..475221e4be 100644
--- a/src/mavlink_core/error.rs.html
+++ b/src/mavlink_core/error.rs.html
@@ -1,4 +1,4 @@
-error.rs - source
1
+error.rs - source
1
 2
 3
 4
diff --git a/src/mavlink_core/lib.rs.html b/src/mavlink_core/lib.rs.html
index 673cc9b74f..dccc896080 100644
--- a/src/mavlink_core/lib.rs.html
+++ b/src/mavlink_core/lib.rs.html
@@ -1,4 +1,4 @@
-lib.rs - source
1
+lib.rs - source
1
 2
 3
 4
@@ -890,19 +890,6 @@
 890
 891
 892
-893
-894
-895
-896
-897
-898
-899
-900
-901
-902
-903
-904
-905
 
//! The MAVLink message set.
 //!
 //! # Message sets and the `Message` trait
@@ -1395,7 +1382,6 @@
 }
 
 const MAVLINK_IFLAG_SIGNED: u8 = 0x01;
-const MAVLINK_SUPPORTED_IFLAGS: u8 = MAVLINK_IFLAG_SIGNED;
 
 #[derive(Debug, Copy, Clone, PartialEq, Eq)]
 // Follow protocol definition: `<https://mavlink.io/en/guide/serialization.html#mavlink2_packet_format>`
@@ -1583,12 +1569,6 @@
         let header = &reader.peek_exact(MAVLinkV2MessageRaw::HEADER_SIZE)?
             [..MAVLinkV2MessageRaw::HEADER_SIZE];
         message.mut_header().copy_from_slice(header);
-
-        if message.incompatibility_flags() & !MAVLINK_SUPPORTED_IFLAGS > 0 {
-            // if there are incompatibility flags set that we do not know discard the message
-            continue;
-        }
-
         let packet_length = message.raw_bytes().len() - 1;
         let payload_and_checksum_and_sign =
             &reader.peek_exact(packet_length)?[MAVLinkV2MessageRaw::HEADER_SIZE..packet_length];
@@ -1632,12 +1612,6 @@
             .read_exact(message.mut_header())
             .await
             .map_err(|_| error::MessageReadError::Io)?;
-
-        if message.incompatibility_flags() & !MAVLINK_SUPPORTED_IFLAGS > 0 {
-            // if there are incompatibility flags set that we do not know discard the message
-            continue;
-        }
-
         reader
             .read_exact(message.mut_payload_and_checksum_and_sign())
             .await
diff --git a/src/mavlink_core/peek_reader.rs.html b/src/mavlink_core/peek_reader.rs.html
index fee011a650..8798f9a667 100644
--- a/src/mavlink_core/peek_reader.rs.html
+++ b/src/mavlink_core/peek_reader.rs.html
@@ -1,4 +1,4 @@
-peek_reader.rs - source
1
+peek_reader.rs - source
1
 2
 3
 4
diff --git a/src/mavlink_core/utils.rs.html b/src/mavlink_core/utils.rs.html
index ed803ef57c..d9941ea257 100644
--- a/src/mavlink_core/utils.rs.html
+++ b/src/mavlink_core/utils.rs.html
@@ -1,4 +1,4 @@
-utils.rs - source
1
+utils.rs - source
1
 2
 3
 4