Common (xmavlink_util v0.4.3)

View Source

Common 3.0 generated by MAVLink mix task from config/common.xml on 2023-01-02 06:05:58.143767Z

Summary

Functions

Return the atom representation of a MAVLink enumeration value from the enumeration type and encoded integer

Return a String description of a MAVLink enumeration

Return keyword list of mav_cmd parameters

Return encoded integer value used in a MAVLink message for an enumeration value

MAVLink dialect

MAVLink version

Return the message checksum and size in bytes for a message with a specified id

Helper function for messages to pack bitmask fields

Unpack a MAVLink message given a MAVLink frame's message id and payload

Helper function for decode() to unpack bitmask fields

Functions

decode(value, arg2)

@spec decode(0 | 1 | 2 | 3 | 4 | 5, :actuator_configuration) ::
  Common.Types.actuator_configuration()
@spec decode(
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 33
  | 34
  | 35
  | 36
  | 37
  | 38
  | 39
  | 40
  | 41
  | 42
  | 43
  | 44
  | 45
  | 46
  | 47
  | 48,
  :actuator_output_function
) :: Common.Types.actuator_output_function()
@spec decode(0 | 1, :adsb_altitude_type) :: Common.Types.adsb_altitude_type()
@spec decode(
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 17
  | 18
  | 19,
  :adsb_emitter_type
) :: Common.Types.adsb_emitter_type()
@spec decode(1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 32768, :adsb_flags) ::
  Common.Types.adsb_flags()
@spec decode(
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096,
  :ais_flags
) ::
  Common.Types.ais_flags()
@spec decode(
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15,
  :ais_nav_status
) ::
  Common.Types.ais_nav_status()
@spec decode(
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 17
  | 18
  | 19
  | 20
  | 21
  | 22
  | 23
  | 24
  | 25
  | 26
  | 27
  | 28
  | 29
  | 30
  | 31
  | 32
  | 33
  | 34
  | 35
  | 36
  | 37
  | 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
  | 70
  | 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,
  :ais_type
) :: Common.Types.ais_type()
@spec decode(1 | 2 | 4 | 32 | 64 | 128, :attitude_target_typemask) ::
  Common.Types.attitude_target_typemask()
@spec decode(0 | 1 | 2 | 4, :autotune_axis) :: Common.Types.autotune_axis()
@spec decode(
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048,
  :camera_cap_flags
) ::
  Common.Types.camera_cap_flags()
@spec decode(0 | 1 | 2, :camera_mode) :: Common.Types.camera_mode()
@spec decode(0 | 1 | 2, :camera_tracking_mode) :: Common.Types.camera_tracking_mode()
@spec decode(0 | 1 | 2, :camera_tracking_status_flags) ::
  Common.Types.camera_tracking_status_flags()
@spec decode(0 | 1 | 2 | 4, :camera_tracking_target_data) ::
  Common.Types.camera_tracking_target_data()
@spec decode(0 | 1 | 2 | 3, :camera_zoom_type) :: Common.Types.camera_zoom_type()
@spec decode(0 | 1 | 2, :can_filter_op) :: Common.Types.can_filter_op()
@spec decode(0 | 1 | 2 | 3 | 4, :cellular_config_response) ::
  Common.Types.cellular_config_response()
@spec decode(0 | 1 | 2 | 3, :cellular_network_failed_reason) ::
  Common.Types.cellular_network_failed_reason()
@spec decode(0 | 1 | 2 | 3 | 4, :cellular_network_radio_type) ::
  Common.Types.cellular_network_radio_type()
@spec decode(
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12,
  :cellular_status_flag
) ::
  Common.Types.cellular_status_flag()
@spec decode(0 | 1 | 2 | 3 | 4 | 5, :comp_metadata_type) ::
  Common.Types.comp_metadata_type()
@spec decode(0 | 1 | 2 | 3 | 4 | 5, :esc_connection_type) ::
  Common.Types.esc_connection_type()
@spec decode(0 | 1 | 2 | 4 | 8 | 16 | 32 | 64, :esc_failure_flags) ::
  Common.Types.esc_failure_flags()
@spec decode(
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048,
  :estimator_status_flags
) ::
  Common.Types.estimator_status_flags()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7, :failure_type) ::
  Common.Types.failure_type()
@spec decode(
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 100 | 101 | 102 | 103 | 104 | 105,
  :failure_unit
) ::
  Common.Types.failure_unit()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7, :fence_action) ::
  Common.Types.fence_action()
@spec decode(0 | 1 | 2 | 3, :fence_breach) :: Common.Types.fence_breach()
@spec decode(0 | 1 | 2, :fence_mitigate) :: Common.Types.fence_mitigate()
@spec decode(0 | 64 | 128 | 192 | 255, :firmware_version_type) ::
  Common.Types.firmware_version_type()
@spec decode(
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192,
  :gimbal_device_cap_flags
) :: Common.Types.gimbal_device_cap_flags()
@spec decode(
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512,
  :gimbal_device_error_flags
) ::
  Common.Types.gimbal_device_error_flags()
@spec decode(1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512, :gimbal_device_flags) ::
  Common.Types.gimbal_device_flags()
@spec decode(
  1
  | 2
  | 4
  | 8
  | 16
  | 32
  | 64
  | 128
  | 256
  | 512
  | 1024
  | 2048
  | 4096
  | 8192
  | 65536
  | 131_072,
  :gimbal_manager_cap_flags
) :: Common.Types.gimbal_manager_cap_flags()
@spec decode(1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512, :gimbal_manager_flags) ::
  Common.Types.gimbal_manager_flags()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8, :gps_fix_type) ::
  Common.Types.gps_fix_type()
@spec decode(1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, :gps_input_ignore_flags) ::
  Common.Types.gps_input_ignore_flags()
@spec decode(0 | 1, :gripper_actions) :: Common.Types.gripper_actions()
@spec decode(
  0
  | 1
  | 2
  | 4
  | 8
  | 16
  | 32
  | 64
  | 128
  | 256
  | 512
  | 1024
  | 2048
  | 4096
  | 65535,
  :highres_imu_updated_flags
) :: Common.Types.highres_imu_updated_flags()
@spec decode(
  0
  | 1
  | 2
  | 4
  | 8
  | 16
  | 32
  | 64
  | 128
  | 256
  | 512
  | 1024
  | 2048
  | 4096
  | 2_147_483_648,
  :hil_sensor_updated_flags
) :: Common.Types.hil_sensor_updated_flags()
@spec decode(
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192,
  :hl_failure_flag
) :: Common.Types.hl_failure_flag()
@spec decode(0 | 1 | 2 | 3, :landing_target_type) ::
  Common.Types.landing_target_type()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7, :mag_cal_status) ::
  Common.Types.mag_cal_status()
@spec decode(0 | 1 | 2 | 3 | 4 | 5, :mav_arm_auth_denied_reason) ::
  Common.Types.mav_arm_auth_denied_reason()
@spec decode(
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 17
  | 18
  | 19
  | 20,
  :mav_autopilot
) :: Common.Types.mav_autopilot()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7, :mav_battery_charge_state) ::
  Common.Types.mav_battery_charge_state()
@spec decode(1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256, :mav_battery_fault) ::
  Common.Types.mav_battery_fault()
@spec decode(0 | 1 | 2 | 3 | 4, :mav_battery_function) ::
  Common.Types.mav_battery_function()
@spec decode(0 | 1 | 2, :mav_battery_mode) :: Common.Types.mav_battery_mode()
@spec decode(0 | 1 | 2 | 3 | 4, :mav_battery_type) :: Common.Types.mav_battery_type()
@spec decode(
  16
  | 17
  | 18
  | 19
  | 20
  | 21
  | 22
  | 23
  | 24
  | 25
  | 30
  | 31
  | 32
  | 33
  | 34
  | 80
  | 81
  | 82
  | 84
  | 85
  | 92
  | 93
  | 94
  | 95
  | 112
  | 113
  | 114
  | 115
  | 159
  | 176
  | 177
  | 178
  | 179
  | 180
  | 181
  | 182
  | 183
  | 184
  | 185
  | 186
  | 187
  | 189
  | 190
  | 191
  | 192
  | 193
  | 194
  | 195
  | 196
  | 197
  | 198
  | 200
  | 201
  | 202
  | 203
  | 204
  | 205
  | 206
  | 207
  | 208
  | 209
  | 210
  | 211
  | 212
  | 213
  | 214
  | 220
  | 221
  | 222
  | 223
  | 224
  | 240
  | 241
  | 242
  | 243
  | 245
  | 246
  | 252
  | 260
  | 300
  | 310
  | 311
  | 400
  | 401
  | 405
  | 410
  | 420
  | 500
  | 510
  | 511
  | 512
  | 519
  | 520
  | 521
  | 522
  | 525
  | 526
  | 527
  | 528
  | 529
  | 530
  | 531
  | 532
  | 533
  | 600
  | 601
  | 1000
  | 1001
  | 2000
  | 2001
  | 2002
  | 2003
  | 2004
  | 2005
  | 2010
  | 2500
  | 2501
  | 2502
  | 2503
  | 2504
  | 2505
  | 2510
  | 2511
  | 2520
  | 2600
  | 2800
  | 3000
  | 3001
  | 4000
  | 4001
  | 4501
  | 5000
  | 5001
  | 5002
  | 5003
  | 5004
  | 5100
  | 5200
  | 10001
  | 30001
  | 30002
  | 42006
  | 42600
  | 31000
  | 31001
  | 31002
  | 31003
  | 31004
  | 31005
  | 31006
  | 31007
  | 31008
  | 31009
  | 31010
  | 31011
  | 31012
  | 31013
  | 31014
  | 32000,
  :mav_cmd
) :: Common.Types.mav_cmd()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8, :mav_cmd_ack) ::
  Common.Types.mav_cmd_ack()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6, :mav_collision_action) ::
  Common.Types.mav_collision_action()
@spec decode(0 | 1, :mav_collision_src) :: Common.Types.mav_collision_src()
@spec decode(0 | 1 | 2, :mav_collision_threat_level) ::
  Common.Types.mav_collision_threat_level()
@spec decode(
  0
  | 1
  | 25
  | 26
  | 27
  | 28
  | 29
  | 30
  | 31
  | 32
  | 33
  | 34
  | 35
  | 36
  | 37
  | 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
  | 70
  | 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
  | 140
  | 141
  | 142
  | 143
  | 144
  | 145
  | 146
  | 147
  | 148
  | 149
  | 150
  | 151
  | 152
  | 153
  | 154
  | 155
  | 156
  | 157
  | 158
  | 159
  | 160
  | 161
  | 169
  | 171
  | 172
  | 173
  | 174
  | 175
  | 180
  | 181
  | 189
  | 190
  | 191
  | 192
  | 193
  | 194
  | 195
  | 196
  | 197
  | 198
  | 200
  | 201
  | 202
  | 220
  | 221
  | 236
  | 237
  | 238
  | 240
  | 241
  | 242
  | 250,
  :mav_component
) :: Common.Types.mav_component()
@spec decode(0 | 1 | 2 | 3 | 4 | 6 | 10 | 11 | 12, :mav_data_stream) ::
  Common.Types.mav_data_stream()
@spec decode(0 | 1 | 2 | 3 | 4, :mav_distance_sensor) ::
  Common.Types.mav_distance_sensor()
@spec decode(1, :mav_do_reposition_flags) :: Common.Types.mav_do_reposition_flags()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8, :mav_estimator_type) ::
  Common.Types.mav_estimator_type()
@spec decode(1, :mav_event_current_sequence_flags) ::
  Common.Types.mav_event_current_sequence_flags()
@spec decode(0, :mav_event_error_reason) :: Common.Types.mav_event_error_reason()
@spec decode(
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 17
  | 18
  | 19
  | 20
  | 21,
  :mav_frame
) :: Common.Types.mav_frame()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10, :mav_ftp_err) ::
  Common.Types.mav_ftp_err()
@spec decode(
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 128
  | 129,
  :mav_ftp_opcode
) :: Common.Types.mav_ftp_opcode()
@spec decode(
  1
  | 2
  | 4
  | 8
  | 16
  | 32
  | 64
  | 128
  | 256
  | 512
  | 1024
  | 2048
  | 4096
  | 8192
  | 16384
  | 32768
  | 65536
  | 131_072
  | 262_144
  | 524_288
  | 1_048_576
  | 2_097_152
  | 4_194_304,
  :mav_generator_status_flag
) :: Common.Types.mav_generator_status_flag()
@spec decode(0 | 1 | 2 | 3, :mav_goto) :: Common.Types.mav_goto()
@spec decode(0 | 1 | 2 | 3 | 4, :mav_landed_state) :: Common.Types.mav_landed_state()
@spec decode(
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15,
  :mav_mission_result
) ::
  Common.Types.mav_mission_result()
@spec decode(0 | 1 | 2 | 255, :mav_mission_type) :: Common.Types.mav_mission_type()
@spec decode(0 | 80 | 208 | 64 | 192 | 88 | 216 | 92 | 220 | 66 | 194, :mav_mode) ::
  Common.Types.mav_mode()
@spec decode(128 | 64 | 32 | 16 | 8 | 4 | 2 | 1, :mav_mode_flag) ::
  Common.Types.mav_mode_flag()
@spec decode(128 | 64 | 32 | 16 | 8 | 4 | 2 | 1, :mav_mode_flag_decode_position) ::
  Common.Types.mav_mode_flag_decode_position()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6, :mav_mount_mode) ::
  Common.Types.mav_mount_mode()
@spec decode(0 | 1, :mav_odid_arm_status) :: Common.Types.mav_odid_arm_status()
@spec decode(0 | 1 | 2 | 3 | 4 | 5, :mav_odid_auth_type) ::
  Common.Types.mav_odid_auth_type()
@spec decode(0 | 1 | 2 | 3, :mav_odid_category_eu) ::
  Common.Types.mav_odid_category_eu()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7, :mav_odid_class_eu) ::
  Common.Types.mav_odid_class_eu()
@spec decode(0 | 1, :mav_odid_classification_type) ::
  Common.Types.mav_odid_classification_type()
@spec decode(0 | 1 | 2, :mav_odid_desc_type) :: Common.Types.mav_odid_desc_type()
@spec decode(0 | 1, :mav_odid_height_ref) :: Common.Types.mav_odid_height_ref()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12, :mav_odid_hor_acc) ::
  Common.Types.mav_odid_hor_acc()
@spec decode(0 | 1 | 2 | 3 | 4, :mav_odid_id_type) :: Common.Types.mav_odid_id_type()
@spec decode(0, :mav_odid_operator_id_type) ::
  Common.Types.mav_odid_operator_id_type()
@spec decode(0 | 1 | 2, :mav_odid_operator_location_type) ::
  Common.Types.mav_odid_operator_location_type()
@spec decode(0 | 1 | 2 | 3 | 4, :mav_odid_speed_acc) ::
  Common.Types.mav_odid_speed_acc()
@spec decode(0 | 1 | 2 | 3 | 4, :mav_odid_status) :: Common.Types.mav_odid_status()
@spec decode(
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15,
  :mav_odid_time_acc
) ::
  Common.Types.mav_odid_time_acc()
@spec decode(
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15,
  :mav_odid_ua_type
) ::
  Common.Types.mav_odid_ua_type()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6, :mav_odid_ver_acc) ::
  Common.Types.mav_odid_ver_acc()
@spec decode(1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11, :mav_param_ext_type) ::
  Common.Types.mav_param_ext_type()
@spec decode(1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10, :mav_param_type) ::
  Common.Types.mav_param_type()
@spec decode(1 | 2 | 4 | 8 | 16 | 32, :mav_power_status) ::
  Common.Types.mav_power_status()
@spec decode(
  1
  | 2
  | 4
  | 8
  | 16
  | 32
  | 64
  | 128
  | 256
  | 512
  | 1024
  | 2048
  | 4096
  | 8192
  | 16384
  | 32768
  | 65536
  | 131_072,
  :mav_protocol_capability
) :: Common.Types.mav_protocol_capability()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6, :mav_result) :: Common.Types.mav_result()
@spec decode(0 | 1 | 2 | 3 | 4, :mav_roi) :: Common.Types.mav_roi()
@spec decode(
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 17
  | 18
  | 19
  | 20
  | 21
  | 22
  | 23
  | 24
  | 25
  | 26
  | 27
  | 28
  | 29
  | 30
  | 31
  | 32
  | 33
  | 34
  | 35
  | 36
  | 37
  | 38
  | 39
  | 40
  | 100,
  :mav_sensor_orientation
) :: Common.Types.mav_sensor_orientation()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7, :mav_severity) ::
  Common.Types.mav_severity()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8, :mav_state) ::
  Common.Types.mav_state()
@spec decode(
  1
  | 2
  | 4
  | 8
  | 16
  | 32
  | 64
  | 128
  | 256
  | 512
  | 1024
  | 2048
  | 4096
  | 8192
  | 16384
  | 32768
  | 65536
  | 131_072
  | 262_144
  | 524_288
  | 1_048_576
  | 2_097_152
  | 4_194_304
  | 8_388_608
  | 16_777_216
  | 33_554_432
  | 67_108_864
  | 134_217_728
  | 268_435_456
  | 536_870_912
  | 1_073_741_824
  | 2_147_483_648,
  :mav_sys_status_sensor
) :: Common.Types.mav_sys_status_sensor()
@spec decode(1, :mav_sys_status_sensor_extended) ::
  Common.Types.mav_sys_status_sensor_extended()
@spec decode(
  0 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209,
  :mav_tunnel_payload_type
) ::
  Common.Types.mav_tunnel_payload_type()
@spec decode(
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 17
  | 18
  | 19
  | 20
  | 21
  | 22
  | 23
  | 24
  | 25
  | 26
  | 27
  | 28
  | 29
  | 30
  | 31
  | 32
  | 33
  | 34
  | 35
  | 36
  | 37
  | 38
  | 39
  | 40
  | 41
  | 42,
  :mav_type
) :: Common.Types.mav_type()
@spec decode(0 | 1 | 2 | 3 | 4, :mav_vtol_state) :: Common.Types.mav_vtol_state()
@spec decode(
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192,
  :mav_winch_status_flag
) :: Common.Types.mav_winch_status_flag()
@spec decode(0 | 1 | 2 | 3 | 4 | 5, :mavlink_data_stream_type) ::
  Common.Types.mavlink_data_stream_type()
@spec decode(0 | 1 | 2 | 3 | 4 | 5, :mission_state) :: Common.Types.mission_state()
@spec decode(0 | 1 | 2, :motor_test_order) :: Common.Types.motor_test_order()
@spec decode(0 | 1 | 2 | 3, :motor_test_throttle_type) ::
  Common.Types.motor_test_throttle_type()
@spec decode(0 | 1 | 2, :nav_vtol_land_options) ::
  Common.Types.nav_vtol_land_options()
@spec decode(0 | 1 | 2 | 3 | 4, :orbit_yaw_behaviour) ::
  Common.Types.orbit_yaw_behaviour()
@spec decode(0 | 1 | 2, :parachute_action) :: Common.Types.parachute_action()
@spec decode(0 | 1 | 2 | 3, :param_ack) :: Common.Types.param_ack()
@spec decode(
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048,
  :position_target_typemask
) ::
  Common.Types.position_target_typemask()
@spec decode(0 | 1 | 2, :precision_land_mode) :: Common.Types.precision_land_mode()
@spec decode(0 | 1 | 2, :preflight_storage_mission_action) ::
  Common.Types.preflight_storage_mission_action()
@spec decode(0 | 1 | 2 | 3 | 4, :preflight_storage_parameter_action) ::
  Common.Types.preflight_storage_parameter_action()
@spec decode(0 | 1, :rc_type) :: Common.Types.rc_type()
@spec decode(0 | 1, :rtk_baseline_coordinate_system) ::
  Common.Types.rtk_baseline_coordinate_system()
@spec decode(
  0
  | 1
  | 2
  | 3
  | 10
  | 100
  | 101
  | 102
  | 103
  | 104
  | 105
  | 106
  | 107
  | 108
  | 109,
  :serial_control_dev
) :: Common.Types.serial_control_dev()
@spec decode(1 | 2 | 4 | 8 | 16, :serial_control_flag) ::
  Common.Types.serial_control_flag()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6, :set_focus_type) ::
  Common.Types.set_focus_type()
@spec decode(0 | 1 | 2 | 3, :storage_status) :: Common.Types.storage_status()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 254, :storage_type) ::
  Common.Types.storage_type()
@spec decode(1 | 2 | 4 | 8, :storage_usage_flag) :: Common.Types.storage_usage_flag()
@spec decode(1 | 2, :tune_format) :: Common.Types.tune_format()
@spec decode(0 | 1 | 2 | 3, :uavcan_node_health) :: Common.Types.uavcan_node_health()
@spec decode(0 | 1 | 2 | 3 | 7, :uavcan_node_mode) :: Common.Types.uavcan_node_mode()
@spec decode(1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, :utm_data_avail_flags) ::
  Common.Types.utm_data_avail_flags()
@spec decode(1 | 2 | 3 | 16 | 32, :utm_flight_state) ::
  Common.Types.utm_flight_state()
@spec decode(1 | 2, :video_stream_status_flags) ::
  Common.Types.video_stream_status_flags()
@spec decode(0 | 1 | 2 | 3, :video_stream_type) :: Common.Types.video_stream_type()
@spec decode(0 | 1 | 2 | 3 | 4, :vtol_transition_heading) ::
  Common.Types.vtol_transition_heading()
@spec decode(0 | 1 | 2 | 3, :wifi_config_ap_mode) ::
  Common.Types.wifi_config_ap_mode()
@spec decode(0 | 1 | 2 | 3 | 4 | 5, :wifi_config_ap_response) ::
  Common.Types.wifi_config_ap_response()
@spec decode(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9, :winch_actions) ::
  Common.Types.winch_actions()

Return the atom representation of a MAVLink enumeration value from the enumeration type and encoded integer

describe(atom)

Return a String description of a MAVLink enumeration

describe_params(atom)

Return keyword list of mav_cmd parameters

encode(atom1, atom2)

@spec encode(Common.Types.actuator_configuration(), :actuator_configuration) ::
  0 | 1 | 2 | 3 | 4 | 5
@spec encode(Common.Types.actuator_output_function(), :actuator_output_function) ::
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 33
  | 34
  | 35
  | 36
  | 37
  | 38
  | 39
  | 40
  | 41
  | 42
  | 43
  | 44
  | 45
  | 46
  | 47
  | 48
@spec encode(Common.Types.adsb_altitude_type(), :adsb_altitude_type) :: 0 | 1
@spec encode(Common.Types.adsb_emitter_type(), :adsb_emitter_type) ::
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 17
  | 18
  | 19
@spec encode(Common.Types.adsb_flags(), :adsb_flags) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 32768
@spec encode(Common.Types.ais_flags(), :ais_flags) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096
@spec encode(Common.Types.ais_nav_status(), :ais_nav_status) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15
@spec encode(Common.Types.ais_type(), :ais_type) ::
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 17
  | 18
  | 19
  | 20
  | 21
  | 22
  | 23
  | 24
  | 25
  | 26
  | 27
  | 28
  | 29
  | 30
  | 31
  | 32
  | 33
  | 34
  | 35
  | 36
  | 37
  | 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
  | 70
  | 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
@spec encode(Common.Types.attitude_target_typemask(), :attitude_target_typemask) ::
  1 | 2 | 4 | 32 | 64 | 128
@spec encode(Common.Types.autotune_axis(), :autotune_axis) :: 0 | 1 | 2 | 4
@spec encode(Common.Types.camera_cap_flags(), :camera_cap_flags) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048
@spec encode(Common.Types.camera_mode(), :camera_mode) :: 0 | 1 | 2
@spec encode(Common.Types.camera_tracking_mode(), :camera_tracking_mode) :: 0 | 1 | 2
@spec encode(
  Common.Types.camera_tracking_status_flags(),
  :camera_tracking_status_flags
) :: 0 | 1 | 2
@spec encode(Common.Types.camera_tracking_target_data(), :camera_tracking_target_data) ::
  0 | 1 | 2 | 4
@spec encode(Common.Types.camera_zoom_type(), :camera_zoom_type) :: 0 | 1 | 2 | 3
@spec encode(Common.Types.can_filter_op(), :can_filter_op) :: 0 | 1 | 2
@spec encode(Common.Types.cellular_config_response(), :cellular_config_response) ::
  0 | 1 | 2 | 3 | 4
@spec encode(
  Common.Types.cellular_network_failed_reason(),
  :cellular_network_failed_reason
) ::
  0 | 1 | 2 | 3
@spec encode(Common.Types.cellular_network_radio_type(), :cellular_network_radio_type) ::
  0 | 1 | 2 | 3 | 4
@spec encode(Common.Types.cellular_status_flag(), :cellular_status_flag) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
@spec encode(Common.Types.comp_metadata_type(), :comp_metadata_type) ::
  0 | 1 | 2 | 3 | 4 | 5
@spec encode(Common.Types.esc_connection_type(), :esc_connection_type) ::
  0 | 1 | 2 | 3 | 4 | 5
@spec encode(Common.Types.esc_failure_flags(), :esc_failure_flags) ::
  0 | 1 | 2 | 4 | 8 | 16 | 32 | 64
@spec encode(Common.Types.estimator_status_flags(), :estimator_status_flags) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048
@spec encode(Common.Types.failure_type(), :failure_type) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
@spec encode(Common.Types.failure_unit(), :failure_unit) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 100 | 101 | 102 | 103 | 104 | 105
@spec encode(Common.Types.fence_action(), :fence_action) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
@spec encode(Common.Types.fence_breach(), :fence_breach) :: 0 | 1 | 2 | 3
@spec encode(Common.Types.fence_mitigate(), :fence_mitigate) :: 0 | 1 | 2
@spec encode(Common.Types.firmware_version_type(), :firmware_version_type) ::
  0 | 64 | 128 | 192 | 255
@spec encode(Common.Types.gimbal_device_cap_flags(), :gimbal_device_cap_flags) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192
@spec encode(Common.Types.gimbal_device_error_flags(), :gimbal_device_error_flags) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512
@spec encode(Common.Types.gimbal_device_flags(), :gimbal_device_flags) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512
@spec encode(Common.Types.gimbal_manager_cap_flags(), :gimbal_manager_cap_flags) ::
  1
  | 2
  | 4
  | 8
  | 16
  | 32
  | 64
  | 128
  | 256
  | 512
  | 1024
  | 2048
  | 4096
  | 8192
  | 65536
  | 131_072
@spec encode(Common.Types.gimbal_manager_flags(), :gimbal_manager_flags) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512
@spec encode(Common.Types.gps_fix_type(), :gps_fix_type) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
@spec encode(Common.Types.gps_input_ignore_flags(), :gps_input_ignore_flags) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128
@spec encode(Common.Types.gripper_actions(), :gripper_actions) :: 0 | 1
@spec encode(Common.Types.highres_imu_updated_flags(), :highres_imu_updated_flags) ::
  0
  | 1
  | 2
  | 4
  | 8
  | 16
  | 32
  | 64
  | 128
  | 256
  | 512
  | 1024
  | 2048
  | 4096
  | 65535
@spec encode(Common.Types.hil_sensor_updated_flags(), :hil_sensor_updated_flags) ::
  0
  | 1
  | 2
  | 4
  | 8
  | 16
  | 32
  | 64
  | 128
  | 256
  | 512
  | 1024
  | 2048
  | 4096
  | 2_147_483_648
@spec encode(Common.Types.hl_failure_flag(), :hl_failure_flag) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192
@spec encode(Common.Types.landing_target_type(), :landing_target_type) ::
  0 | 1 | 2 | 3
@spec encode(Common.Types.mag_cal_status(), :mag_cal_status) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
@spec encode(Common.Types.mav_arm_auth_denied_reason(), :mav_arm_auth_denied_reason) ::
  0 | 1 | 2 | 3 | 4 | 5
@spec encode(Common.Types.mav_autopilot(), :mav_autopilot) ::
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 17
  | 18
  | 19
  | 20
@spec encode(Common.Types.mav_battery_charge_state(), :mav_battery_charge_state) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
@spec encode(Common.Types.mav_battery_fault(), :mav_battery_fault) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256
@spec encode(Common.Types.mav_battery_function(), :mav_battery_function) ::
  0 | 1 | 2 | 3 | 4
@spec encode(Common.Types.mav_battery_mode(), :mav_battery_mode) :: 0 | 1 | 2
@spec encode(Common.Types.mav_battery_type(), :mav_battery_type) :: 0 | 1 | 2 | 3 | 4
@spec encode(Common.Types.mav_cmd(), :mav_cmd) ::
  16
  | 17
  | 18
  | 19
  | 20
  | 21
  | 22
  | 23
  | 24
  | 25
  | 30
  | 31
  | 32
  | 33
  | 34
  | 80
  | 81
  | 82
  | 84
  | 85
  | 92
  | 93
  | 94
  | 95
  | 112
  | 113
  | 114
  | 115
  | 159
  | 176
  | 177
  | 178
  | 179
  | 180
  | 181
  | 182
  | 183
  | 184
  | 185
  | 186
  | 187
  | 189
  | 190
  | 191
  | 192
  | 193
  | 194
  | 195
  | 196
  | 197
  | 198
  | 200
  | 201
  | 202
  | 203
  | 204
  | 205
  | 206
  | 207
  | 208
  | 209
  | 210
  | 211
  | 212
  | 213
  | 214
  | 220
  | 221
  | 222
  | 223
  | 224
  | 240
  | 241
  | 242
  | 243
  | 245
  | 246
  | 252
  | 260
  | 300
  | 310
  | 311
  | 400
  | 401
  | 405
  | 410
  | 420
  | 500
  | 510
  | 511
  | 512
  | 519
  | 520
  | 521
  | 522
  | 525
  | 526
  | 527
  | 528
  | 529
  | 530
  | 531
  | 532
  | 533
  | 600
  | 601
  | 1000
  | 1001
  | 2000
  | 2001
  | 2002
  | 2003
  | 2004
  | 2005
  | 2010
  | 2500
  | 2501
  | 2502
  | 2503
  | 2504
  | 2505
  | 2510
  | 2511
  | 2520
  | 2600
  | 2800
  | 3000
  | 3001
  | 4000
  | 4001
  | 4501
  | 5000
  | 5001
  | 5002
  | 5003
  | 5004
  | 5100
  | 5200
  | 10001
  | 30001
  | 30002
  | 42006
  | 42600
  | 31000
  | 31001
  | 31002
  | 31003
  | 31004
  | 31005
  | 31006
  | 31007
  | 31008
  | 31009
  | 31010
  | 31011
  | 31012
  | 31013
  | 31014
  | 32000
@spec encode(Common.Types.mav_cmd_ack(), :mav_cmd_ack) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
@spec encode(Common.Types.mav_collision_action(), :mav_collision_action) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6
@spec encode(Common.Types.mav_collision_src(), :mav_collision_src) :: 0 | 1
@spec encode(Common.Types.mav_collision_threat_level(), :mav_collision_threat_level) ::
  0 | 1 | 2
@spec encode(Common.Types.mav_component(), :mav_component) ::
  0
  | 1
  | 25
  | 26
  | 27
  | 28
  | 29
  | 30
  | 31
  | 32
  | 33
  | 34
  | 35
  | 36
  | 37
  | 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
  | 70
  | 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
  | 140
  | 141
  | 142
  | 143
  | 144
  | 145
  | 146
  | 147
  | 148
  | 149
  | 150
  | 151
  | 152
  | 153
  | 154
  | 155
  | 156
  | 157
  | 158
  | 159
  | 160
  | 161
  | 169
  | 171
  | 172
  | 173
  | 174
  | 175
  | 180
  | 181
  | 189
  | 190
  | 191
  | 192
  | 193
  | 194
  | 195
  | 196
  | 197
  | 198
  | 200
  | 201
  | 202
  | 220
  | 221
  | 236
  | 237
  | 238
  | 240
  | 241
  | 242
  | 250
@spec encode(Common.Types.mav_data_stream(), :mav_data_stream) ::
  0 | 1 | 2 | 3 | 4 | 6 | 10 | 11 | 12
@spec encode(Common.Types.mav_distance_sensor(), :mav_distance_sensor) ::
  0 | 1 | 2 | 3 | 4
@spec encode(Common.Types.mav_do_reposition_flags(), :mav_do_reposition_flags) :: 1
@spec encode(Common.Types.mav_estimator_type(), :mav_estimator_type) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
@spec encode(
  Common.Types.mav_event_current_sequence_flags(),
  :mav_event_current_sequence_flags
) :: 1
@spec encode(Common.Types.mav_event_error_reason(), :mav_event_error_reason) :: 0
@spec encode(Common.Types.mav_frame(), :mav_frame) ::
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 17
  | 18
  | 19
  | 20
  | 21
@spec encode(Common.Types.mav_ftp_err(), :mav_ftp_err) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
@spec encode(Common.Types.mav_ftp_opcode(), :mav_ftp_opcode) ::
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 128
  | 129
@spec encode(Common.Types.mav_generator_status_flag(), :mav_generator_status_flag) ::
  1
  | 2
  | 4
  | 8
  | 16
  | 32
  | 64
  | 128
  | 256
  | 512
  | 1024
  | 2048
  | 4096
  | 8192
  | 16384
  | 32768
  | 65536
  | 131_072
  | 262_144
  | 524_288
  | 1_048_576
  | 2_097_152
  | 4_194_304
@spec encode(Common.Types.mav_goto(), :mav_goto) :: 0 | 1 | 2 | 3
@spec encode(Common.Types.mav_landed_state(), :mav_landed_state) :: 0 | 1 | 2 | 3 | 4
@spec encode(Common.Types.mav_mission_result(), :mav_mission_result) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15
@spec encode(Common.Types.mav_mission_type(), :mav_mission_type) :: 0 | 1 | 2 | 255
@spec encode(Common.Types.mav_mode(), :mav_mode) ::
  0 | 80 | 208 | 64 | 192 | 88 | 216 | 92 | 220 | 66 | 194
@spec encode(Common.Types.mav_mode_flag(), :mav_mode_flag) ::
  128 | 64 | 32 | 16 | 8 | 4 | 2 | 1
@spec encode(
  Common.Types.mav_mode_flag_decode_position(),
  :mav_mode_flag_decode_position
) ::
  128 | 64 | 32 | 16 | 8 | 4 | 2 | 1
@spec encode(Common.Types.mav_mount_mode(), :mav_mount_mode) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6
@spec encode(Common.Types.mav_odid_arm_status(), :mav_odid_arm_status) :: 0 | 1
@spec encode(Common.Types.mav_odid_auth_type(), :mav_odid_auth_type) ::
  0 | 1 | 2 | 3 | 4 | 5
@spec encode(Common.Types.mav_odid_category_eu(), :mav_odid_category_eu) ::
  0 | 1 | 2 | 3
@spec encode(Common.Types.mav_odid_class_eu(), :mav_odid_class_eu) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
@spec encode(
  Common.Types.mav_odid_classification_type(),
  :mav_odid_classification_type
) :: 0 | 1
@spec encode(Common.Types.mav_odid_desc_type(), :mav_odid_desc_type) :: 0 | 1 | 2
@spec encode(Common.Types.mav_odid_height_ref(), :mav_odid_height_ref) :: 0 | 1
@spec encode(Common.Types.mav_odid_hor_acc(), :mav_odid_hor_acc) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
@spec encode(Common.Types.mav_odid_id_type(), :mav_odid_id_type) :: 0 | 1 | 2 | 3 | 4
@spec encode(Common.Types.mav_odid_operator_id_type(), :mav_odid_operator_id_type) ::
  0
@spec encode(
  Common.Types.mav_odid_operator_location_type(),
  :mav_odid_operator_location_type
) ::
  0 | 1 | 2
@spec encode(Common.Types.mav_odid_speed_acc(), :mav_odid_speed_acc) ::
  0 | 1 | 2 | 3 | 4
@spec encode(Common.Types.mav_odid_status(), :mav_odid_status) :: 0 | 1 | 2 | 3 | 4
@spec encode(Common.Types.mav_odid_time_acc(), :mav_odid_time_acc) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15
@spec encode(Common.Types.mav_odid_ua_type(), :mav_odid_ua_type) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15
@spec encode(Common.Types.mav_odid_ver_acc(), :mav_odid_ver_acc) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6
@spec encode(Common.Types.mav_param_ext_type(), :mav_param_ext_type) ::
  1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11
@spec encode(Common.Types.mav_param_type(), :mav_param_type) ::
  1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
@spec encode(Common.Types.mav_power_status(), :mav_power_status) ::
  1 | 2 | 4 | 8 | 16 | 32
@spec encode(Common.Types.mav_protocol_capability(), :mav_protocol_capability) ::
  1
  | 2
  | 4
  | 8
  | 16
  | 32
  | 64
  | 128
  | 256
  | 512
  | 1024
  | 2048
  | 4096
  | 8192
  | 16384
  | 32768
  | 65536
  | 131_072
@spec encode(Common.Types.mav_result(), :mav_result) :: 0 | 1 | 2 | 3 | 4 | 5 | 6
@spec encode(Common.Types.mav_roi(), :mav_roi) :: 0 | 1 | 2 | 3 | 4
@spec encode(Common.Types.mav_sensor_orientation(), :mav_sensor_orientation) ::
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 17
  | 18
  | 19
  | 20
  | 21
  | 22
  | 23
  | 24
  | 25
  | 26
  | 27
  | 28
  | 29
  | 30
  | 31
  | 32
  | 33
  | 34
  | 35
  | 36
  | 37
  | 38
  | 39
  | 40
  | 100
@spec encode(Common.Types.mav_severity(), :mav_severity) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
@spec encode(Common.Types.mav_state(), :mav_state) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
@spec encode(Common.Types.mav_sys_status_sensor(), :mav_sys_status_sensor) ::
  1
  | 2
  | 4
  | 8
  | 16
  | 32
  | 64
  | 128
  | 256
  | 512
  | 1024
  | 2048
  | 4096
  | 8192
  | 16384
  | 32768
  | 65536
  | 131_072
  | 262_144
  | 524_288
  | 1_048_576
  | 2_097_152
  | 4_194_304
  | 8_388_608
  | 16_777_216
  | 33_554_432
  | 67_108_864
  | 134_217_728
  | 268_435_456
  | 536_870_912
  | 1_073_741_824
  | 2_147_483_648
@spec encode(
  Common.Types.mav_sys_status_sensor_extended(),
  :mav_sys_status_sensor_extended
) :: 1
@spec encode(Common.Types.mav_tunnel_payload_type(), :mav_tunnel_payload_type) ::
  0 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209
@spec encode(Common.Types.mav_type(), :mav_type) ::
  0
  | 1
  | 2
  | 3
  | 4
  | 5
  | 6
  | 7
  | 8
  | 9
  | 10
  | 11
  | 12
  | 13
  | 14
  | 15
  | 16
  | 17
  | 18
  | 19
  | 20
  | 21
  | 22
  | 23
  | 24
  | 25
  | 26
  | 27
  | 28
  | 29
  | 30
  | 31
  | 32
  | 33
  | 34
  | 35
  | 36
  | 37
  | 38
  | 39
  | 40
  | 41
  | 42
@spec encode(Common.Types.mav_vtol_state(), :mav_vtol_state) :: 0 | 1 | 2 | 3 | 4
@spec encode(Common.Types.mav_winch_status_flag(), :mav_winch_status_flag) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192
@spec encode(Common.Types.mavlink_data_stream_type(), :mavlink_data_stream_type) ::
  0 | 1 | 2 | 3 | 4 | 5
@spec encode(Common.Types.mission_state(), :mission_state) :: 0 | 1 | 2 | 3 | 4 | 5
@spec encode(Common.Types.motor_test_order(), :motor_test_order) :: 0 | 1 | 2
@spec encode(Common.Types.motor_test_throttle_type(), :motor_test_throttle_type) ::
  0 | 1 | 2 | 3
@spec encode(Common.Types.nav_vtol_land_options(), :nav_vtol_land_options) ::
  0 | 1 | 2
@spec encode(Common.Types.orbit_yaw_behaviour(), :orbit_yaw_behaviour) ::
  0 | 1 | 2 | 3 | 4
@spec encode(Common.Types.parachute_action(), :parachute_action) :: 0 | 1 | 2
@spec encode(Common.Types.param_ack(), :param_ack) :: 0 | 1 | 2 | 3
@spec encode(Common.Types.position_target_typemask(), :position_target_typemask) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048
@spec encode(Common.Types.precision_land_mode(), :precision_land_mode) :: 0 | 1 | 2
@spec encode(
  Common.Types.preflight_storage_mission_action(),
  :preflight_storage_mission_action
) ::
  0 | 1 | 2
@spec encode(
  Common.Types.preflight_storage_parameter_action(),
  :preflight_storage_parameter_action
) ::
  0 | 1 | 2 | 3 | 4
@spec encode(Common.Types.rc_type(), :rc_type) :: 0 | 1
@spec encode(
  Common.Types.rtk_baseline_coordinate_system(),
  :rtk_baseline_coordinate_system
) :: 0 | 1
@spec encode(Common.Types.serial_control_dev(), :serial_control_dev) ::
  0 | 1 | 2 | 3 | 10 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109
@spec encode(Common.Types.serial_control_flag(), :serial_control_flag) ::
  1 | 2 | 4 | 8 | 16
@spec encode(Common.Types.set_focus_type(), :set_focus_type) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6
@spec encode(Common.Types.storage_status(), :storage_status) :: 0 | 1 | 2 | 3
@spec encode(Common.Types.storage_type(), :storage_type) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 254
@spec encode(Common.Types.storage_usage_flag(), :storage_usage_flag) :: 1 | 2 | 4 | 8
@spec encode(Common.Types.tune_format(), :tune_format) :: 1 | 2
@spec encode(Common.Types.uavcan_node_health(), :uavcan_node_health) :: 0 | 1 | 2 | 3
@spec encode(Common.Types.uavcan_node_mode(), :uavcan_node_mode) :: 0 | 1 | 2 | 3 | 7
@spec encode(Common.Types.utm_data_avail_flags(), :utm_data_avail_flags) ::
  1 | 2 | 4 | 8 | 16 | 32 | 64 | 128
@spec encode(Common.Types.utm_flight_state(), :utm_flight_state) ::
  1 | 2 | 3 | 16 | 32
@spec encode(Common.Types.video_stream_status_flags(), :video_stream_status_flags) ::
  1 | 2
@spec encode(Common.Types.video_stream_type(), :video_stream_type) :: 0 | 1 | 2 | 3
@spec encode(Common.Types.vtol_transition_heading(), :vtol_transition_heading) ::
  0 | 1 | 2 | 3 | 4
@spec encode(Common.Types.wifi_config_ap_mode(), :wifi_config_ap_mode) ::
  0 | 1 | 2 | 3
@spec encode(Common.Types.wifi_config_ap_response(), :wifi_config_ap_response) ::
  0 | 1 | 2 | 3 | 4 | 5
@spec encode(Common.Types.winch_actions(), :winch_actions) ::
  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Return encoded integer value used in a MAVLink message for an enumeration value

msg_attributes(arg1)

@spec msg_attributes(XMAVLink.Types.message_id()) ::
  {:ok, XMAVLink.Types.crc_extra(), pos_integer(), target_type()}
  | {:error, :unknown_message_id}

Return the message checksum and size in bytes for a message with a specified id

pack_bitmask(flag_set, enum, encode)

Helper function for messages to pack bitmask fields

unpack(_, _)

@spec unpack(XMAVLink.Types.message_id(), binary()) ::
  Common.Types.message() | {:error, :unknown_message}

unpack(arg1, arg2, arg)

Unpack a MAVLink message given a MAVLink frame's message id and payload

unpack_bitmask(value, enum, decode, acc \\ MapSet.new(), pos \\ 1)

Helper function for decode() to unpack bitmask fields