feat(mavlink): adopt the kaptan-native dialect
This commit is contained in:
1 parent
1c90870634
commit
5f91465e66
87 files changed
+7733
-6850
No files matched your search
Whitespace-only changes.
@@ -1,8 +1,13 @@
|
||||
<?xml version="1.0"?>
|
||||
<mavlink>
|
||||
<!-- The root is the only bindgen input. Feature domains remain independent
|
||||
fragments so their message catalogs can evolve without a monolith. -->
|
||||
<include>kaptan/config.xml</include>
|
||||
<include>kaptan/log.xml</include>
|
||||
<include>kaptan/error.xml</include>
|
||||
<!-- The root is the only bindgen input. Every current message has one leaf
|
||||
under its interaction contract. exchange/ intentionally has no message. -->
|
||||
<include>publish/log.xml</include>
|
||||
<include>publish/error.xml</include>
|
||||
<include>publish/heartbeat.xml</include>
|
||||
<include>publish/imu.xml</include>
|
||||
<include>publish/range.xml</include>
|
||||
<include>publish/optical_flow.xml</include>
|
||||
<include>transfer/file_control.xml</include>
|
||||
<include>transfer/file_data.xml</include>
|
||||
</mavlink>
|
||||
@@ -1,237 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<mavlink>
|
||||
<version>3</version>
|
||||
<dialect>0</dialect>
|
||||
<!-- Kaptan configuration dialect. Register the development IDs before release. 42000
|
||||
belongs to Icarous and is deliberately not used here. -->
|
||||
<enums>
|
||||
<enum name="KAPTAN_CONFIG_VALUE_KIND">
|
||||
<entry value="1" name="KAPTAN_CONFIG_VALUE_KIND_BOOL"/>
|
||||
<entry value="2" name="KAPTAN_CONFIG_VALUE_KIND_I32"/>
|
||||
<entry value="3" name="KAPTAN_CONFIG_VALUE_KIND_U32"/>
|
||||
<entry value="4" name="KAPTAN_CONFIG_VALUE_KIND_U64"/>
|
||||
<entry value="5" name="KAPTAN_CONFIG_VALUE_KIND_F32"/>
|
||||
<entry value="6" name="KAPTAN_CONFIG_VALUE_KIND_F64"/>
|
||||
</enum>
|
||||
<enum name="KAPTAN_CONFIG_STATE">
|
||||
<entry value="0" name="KAPTAN_CONFIG_STATE_ACTIVE"/>
|
||||
<entry value="1" name="KAPTAN_CONFIG_STATE_EDITING"/>
|
||||
<entry value="2" name="KAPTAN_CONFIG_STATE_RESTART_REQUIRED"/>
|
||||
</enum>
|
||||
<enum name="KAPTAN_CONFIG_VALUE_SOURCE">
|
||||
<entry value="0" name="KAPTAN_CONFIG_VALUE_SOURCE_ACTIVE"/>
|
||||
<entry value="1" name="KAPTAN_CONFIG_VALUE_SOURCE_COMMITTED"/>
|
||||
<entry value="2" name="KAPTAN_CONFIG_VALUE_SOURCE_TRANSACTION"/>
|
||||
</enum>
|
||||
<enum name="KAPTAN_CONFIG_OPERATION">
|
||||
<entry value="1" name="KAPTAN_CONFIG_OPERATION_QUERY"/>
|
||||
<entry value="2" name="KAPTAN_CONFIG_OPERATION_BEGIN"/>
|
||||
<entry value="3" name="KAPTAN_CONFIG_OPERATION_SET"/>
|
||||
<entry value="4" name="KAPTAN_CONFIG_OPERATION_VALIDATE"/>
|
||||
<entry value="5" name="KAPTAN_CONFIG_OPERATION_COMMIT"/>
|
||||
<entry value="6" name="KAPTAN_CONFIG_OPERATION_ABORT"/>
|
||||
</enum>
|
||||
<enum name="KAPTAN_CONFIG_RESULT">
|
||||
<entry value="0" name="KAPTAN_CONFIG_RESULT_ACCEPTED"/>
|
||||
<entry value="1" name="KAPTAN_CONFIG_RESULT_COMMITTED_RESTART_REQUIRED"/>
|
||||
<entry value="2" name="KAPTAN_CONFIG_RESULT_REJECTED"/>
|
||||
</enum>
|
||||
<enum name="KAPTAN_CONFIG_ERROR">
|
||||
<entry value="0" name="KAPTAN_CONFIG_ERROR_NONE"/>
|
||||
<entry value="1" name="KAPTAN_CONFIG_ERROR_BAD_TARGET"/>
|
||||
<entry value="4" name="KAPTAN_CONFIG_ERROR_SESSION_BUSY">
|
||||
<description>The target configuration lease or transaction slot belongs to a client.</description>
|
||||
</entry>
|
||||
<entry value="5" name="KAPTAN_CONFIG_ERROR_INVALID_SESSION"/>
|
||||
<entry value="6" name="KAPTAN_CONFIG_ERROR_STALE_REVISION"/>
|
||||
<entry value="7" name="KAPTAN_CONFIG_ERROR_BAD_STATE"/>
|
||||
<entry value="8" name="KAPTAN_CONFIG_ERROR_UNKNOWN_FIELD"/>
|
||||
<entry value="9" name="KAPTAN_CONFIG_ERROR_TYPE_MISMATCH"/>
|
||||
<entry value="10" name="KAPTAN_CONFIG_ERROR_NON_FINITE"/>
|
||||
<entry value="11" name="KAPTAN_CONFIG_ERROR_BELOW_MINIMUM"/>
|
||||
<entry value="12" name="KAPTAN_CONFIG_ERROR_ABOVE_MAXIMUM"/>
|
||||
<entry value="13" name="KAPTAN_CONFIG_ERROR_CROSS_FIELD"/>
|
||||
<entry value="14" name="KAPTAN_CONFIG_ERROR_UNSUPPORTED_CAPABILITY"/>
|
||||
<entry value="16" name="KAPTAN_CONFIG_ERROR_STORAGE_FAILURE"/>
|
||||
<entry value="17" name="KAPTAN_CONFIG_ERROR_INTERNAL"/>
|
||||
<entry value="18" name="KAPTAN_CONFIG_ERROR_REQUEST_CONFLICT"/>
|
||||
<entry value="24" name="KAPTAN_CONFIG_ERROR_INVALID_QUERY"/>
|
||||
<entry value="25" name="KAPTAN_CONFIG_ERROR_INVALID_ENUM_VALUE"/>
|
||||
</enum>
|
||||
</enums>
|
||||
<messages>
|
||||
<message id="51000" name="KAPTAN_CONFIG_INFO">
|
||||
<description>Correlated configuration protocol and schema metadata.</description>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint8_t[16]" name="schema_id"/>
|
||||
<field type="uint16_t" name="field_count"/>
|
||||
<field type="uint8_t" name="protocol_major"/>
|
||||
<field type="uint8_t" name="protocol_minor"/>
|
||||
<field type="uint8_t" name="config_state" enum="KAPTAN_CONFIG_STATE"/>
|
||||
</message>
|
||||
<message id="51014" name="KAPTAN_CONFIG_INFO_REQUEST">
|
||||
<description>Requests correlated configuration protocol and schema metadata.</description>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
<message id="51001" name="KAPTAN_CONFIG_DESCRIPTOR_REQUEST">
|
||||
<description>Requests one field descriptor by stable schema index.</description>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint16_t" name="descriptor_index"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
<message id="51002" name="KAPTAN_CONFIG_DESCRIPTOR">
|
||||
<description>One self-describing editable scalar field.</description>
|
||||
<field type="uint64_t" name="minimum_bits"/>
|
||||
<field type="uint64_t" name="maximum_bits"/>
|
||||
<field type="uint64_t" name="default_bits"/>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint16_t" name="descriptor_index"/>
|
||||
<field type="uint16_t" name="field_id"/>
|
||||
<field type="uint8_t" name="enum_option_count">Number of named enum choices available for indexed retrieval.</field>
|
||||
<field type="char[48]" name="display_key"/>
|
||||
<field type="char[16]" name="unit"/>
|
||||
<field type="uint8_t" name="value_kind" enum="KAPTAN_CONFIG_VALUE_KIND"/>
|
||||
<field type="uint8_t" name="flags">Bit 0 marks minimum_bits present; bit 1 marks maximum_bits present. Other bits are reserved.</field>
|
||||
</message>
|
||||
<message id="51023" name="KAPTAN_CONFIG_ENUM_OPTION">
|
||||
<description>One named choice for the explicitly identified enum-backed descriptor.</description>
|
||||
<field type="uint8_t" name="value"/>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint16_t" name="descriptor_index"/>
|
||||
<field type="uint16_t" name="field_id"/>
|
||||
<field type="uint8_t" name="option_index"/>
|
||||
<field type="char[32]" name="label"/>
|
||||
</message>
|
||||
<message id="51024" name="KAPTAN_CONFIG_ENUM_OPTION_REQUEST">
|
||||
<description>Requests one named choice by descriptor and option index.</description>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint16_t" name="descriptor_index"/>
|
||||
<field type="uint8_t" name="option_index"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
<message id="51003" name="KAPTAN_CONFIG_VALUE_REQUEST">
|
||||
<description>Reads one active, committed, or transaction value.</description>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint32_t" name="session_id"/>
|
||||
<field type="uint16_t" name="field_id"/>
|
||||
<field type="uint8_t" name="source" enum="KAPTAN_CONFIG_VALUE_SOURCE"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
<message id="51004" name="KAPTAN_CONFIG_VALUE">
|
||||
<description>One typed configuration scalar as canonical raw bits.</description>
|
||||
<field type="uint64_t" name="value_bits"/>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint32_t" name="session_id"/>
|
||||
<field type="uint32_t" name="revision"/>
|
||||
<field type="uint16_t" name="field_id"/>
|
||||
<field type="uint8_t" name="value_kind" enum="KAPTAN_CONFIG_VALUE_KIND"/>
|
||||
</message>
|
||||
<message id="51005" name="KAPTAN_CONFIG_BEGIN">
|
||||
<description>Opens the one lease-bound edit transaction.</description>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
<message id="51006" name="KAPTAN_CONFIG_SET_F32">
|
||||
<description>Writes one f32 field in the open transaction.</description>
|
||||
<field type="float" name="value"/>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint32_t" name="session_id"/>
|
||||
<field type="uint32_t" name="expected_revision"/>
|
||||
<field type="uint16_t" name="field_id"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
<message id="51007" name="KAPTAN_CONFIG_SET_I32">
|
||||
<description>Writes one i32 field in the open transaction.</description>
|
||||
<field type="int32_t" name="value"/>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint32_t" name="session_id"/>
|
||||
<field type="uint32_t" name="expected_revision"/>
|
||||
<field type="uint16_t" name="field_id"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
<message id="51008" name="KAPTAN_CONFIG_SET_U32">
|
||||
<description>Writes one u32 field in the open transaction.</description>
|
||||
<field type="uint32_t" name="value"/>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint32_t" name="session_id"/>
|
||||
<field type="uint32_t" name="expected_revision"/>
|
||||
<field type="uint16_t" name="field_id"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
<message id="51009" name="KAPTAN_CONFIG_SET_U64">
|
||||
<description>Writes one u64 field in the open transaction.</description>
|
||||
<field type="uint64_t" name="value"/>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint32_t" name="session_id"/>
|
||||
<field type="uint32_t" name="expected_revision"/>
|
||||
<field type="uint16_t" name="field_id"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
<message id="51010" name="KAPTAN_CONFIG_VALIDATE">
|
||||
<description>Validates the complete open transaction.</description>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint32_t" name="session_id"/>
|
||||
<field type="uint32_t" name="expected_revision"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
<message id="51011" name="KAPTAN_CONFIG_COMMIT">
|
||||
<description>Validates then atomically persists the open transaction.</description>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint32_t" name="session_id"/>
|
||||
<field type="uint32_t" name="expected_revision"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
<message id="51012" name="KAPTAN_CONFIG_ABORT">
|
||||
<description>Discards the open RAM transaction.</description>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint32_t" name="session_id"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
<message id="51013" name="KAPTAN_CONFIG_RESULT">
|
||||
<description>Authoritative typed completion for a configuration request.</description>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint32_t" name="session_id"/>
|
||||
<field type="uint32_t" name="revision"/>
|
||||
<field type="uint16_t" name="primary_field"/>
|
||||
<field type="uint16_t" name="related_field"/>
|
||||
<field type="uint16_t" name="validation_rule"/>
|
||||
<field type="uint8_t" name="operation" enum="KAPTAN_CONFIG_OPERATION"/>
|
||||
<field type="uint8_t" name="result" enum="KAPTAN_CONFIG_RESULT"/>
|
||||
<field type="uint8_t" name="error" enum="KAPTAN_CONFIG_ERROR"/>
|
||||
<field type="uint8_t" name="config_state" enum="KAPTAN_CONFIG_STATE"/>
|
||||
</message>
|
||||
<message id="51015" name="KAPTAN_CONFIG_SET_BOOL">
|
||||
<description>Writes one boolean field in the open transaction.</description>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint32_t" name="session_id"/>
|
||||
<field type="uint32_t" name="expected_revision"/>
|
||||
<field type="uint16_t" name="field_id"/>
|
||||
<field type="uint8_t" name="value"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
<message id="51016" name="KAPTAN_CONFIG_SET_F64">
|
||||
<description>Writes one f64 field in the open transaction.</description>
|
||||
<field type="double" name="value"/>
|
||||
<field type="uint32_t" name="request_id"/>
|
||||
<field type="uint32_t" name="session_id"/>
|
||||
<field type="uint32_t" name="expected_revision"/>
|
||||
<field type="uint16_t" name="field_id"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
</message>
|
||||
</messages>
|
||||
</mavlink>
|
||||
+2
-3
@@ -2,10 +2,9 @@
|
||||
<mavlink>
|
||||
<version>3</version>
|
||||
<dialect>0</dialect>
|
||||
<!-- Kaptan-reserved development block. Register these IDs before release. -->
|
||||
<messages>
|
||||
<message id="51021" name="KAPTAN_ERROR">
|
||||
<description>Reportable firmware error emitted when an Err leaves an annotated reporting point. This is distinct from every logging macro, which emits KAPTAN_LOG. The stable ID is explicitly assigned to the Rust error variant. Structured configuration failures remain authoritative in KAPTAN_CONFIG_RESULT.</description>
|
||||
<message id="51021" name="ERROR">
|
||||
<description>Reportable firmware error emitted when an Err leaves an annotated reporting point. This is distinct from every logging macro, which emits LOG. The stable ID is explicitly assigned to the Rust error variant. Protocol failures remain authoritative in their owning response.</description>
|
||||
<field type="uint16_t" name="error_id">Stable explicitly assigned error catalog ID. Zero is reserved.</field>
|
||||
<field type="uint8_t[96]" name="raised_at">Zero-padded compile-time file:line of the reporting point.</field>
|
||||
</message>
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<mavlink>
|
||||
<version>3</version>
|
||||
<dialect>0</dialect>
|
||||
<enums>
|
||||
<enum name="HEARTBEAT_STATE">
|
||||
<entry value="1" name="HEARTBEAT_STATE_INITIALIZED_OUTPUTS_INHIBITED">
|
||||
<description>Initialization completed and the physical output routes remain inhibited.</description>
|
||||
</entry>
|
||||
</enum>
|
||||
</enums>
|
||||
<messages>
|
||||
<message id="51027" name="HEARTBEAT">
|
||||
<description>Periodic liveness and discovery publication for the initialized output-inhibited firmware composition.</description>
|
||||
<field type="uint8_t" name="state" enum="HEARTBEAT_STATE"/>
|
||||
</message>
|
||||
</messages>
|
||||
</mavlink>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0"?>
|
||||
<mavlink>
|
||||
<version>3</version>
|
||||
<dialect>0</dialect>
|
||||
<messages>
|
||||
<message id="51028" name="IMU">
|
||||
<description>One accepted body-frame inertial observation in the native bounded sensor representation.</description>
|
||||
<field type="uint64_t" name="time_us">Flight-controller monotonic acquisition time in microseconds.</field>
|
||||
<field type="int16_t[3]" name="acceleration_milligravity">Body-frame acceleration in milligravity.</field>
|
||||
<field type="int16_t[3]" name="angular_rate_milliradians_per_second">Body-frame angular rate in milliradians per second.</field>
|
||||
<field type="int16_t" name="temperature_centidegrees_celsius">Sensor temperature in centidegrees Celsius.</field>
|
||||
</message>
|
||||
</messages>
|
||||
</mavlink>
|
||||
+14
-8
@@ -2,22 +2,28 @@
|
||||
<mavlink>
|
||||
<version>3</version>
|
||||
<dialect>0</dialect>
|
||||
<!-- Kaptan-reserved development block. Register these IDs before release. -->
|
||||
<enums>
|
||||
<enum name="KAPTAN_LOG_FLAGS" bitmask="true">
|
||||
<entry value="1" name="KAPTAN_LOG_FLAG_TRACE">
|
||||
<description>Record originated at Kaptan trace level and uses MAVLink DEBUG severity.</description>
|
||||
<enum name="LOG_LEVEL">
|
||||
<entry value="0" name="LOG_LEVEL_OFF">
|
||||
<description>Filter-only sentinel. A LOG event must not use this value.</description>
|
||||
</entry>
|
||||
<entry value="2" name="KAPTAN_LOG_FLAG_TRUNCATED">
|
||||
<entry value="1" name="LOG_LEVEL_TRACE"/>
|
||||
<entry value="2" name="LOG_LEVEL_DEBUG"/>
|
||||
<entry value="3" name="LOG_LEVEL_INFO"/>
|
||||
<entry value="4" name="LOG_LEVEL_WARN"/>
|
||||
<entry value="5" name="LOG_LEVEL_ERROR"/>
|
||||
</enum>
|
||||
<enum name="LOG_FLAGS" bitmask="true">
|
||||
<entry value="1" name="LOG_FLAG_TRUNCATED">
|
||||
<description>Message text was truncated to the bounded on-wire buffer.</description>
|
||||
</entry>
|
||||
</enum>
|
||||
</enums>
|
||||
<messages>
|
||||
<message id="51020" name="KAPTAN_LOG">
|
||||
<message id="51020" name="LOG">
|
||||
<description>Bounded human-readable runtime log emitted by every Kaptan logging macro, including error. The receiver needs only level, flags, and the valid UTF-8 text prefix. MAVLink framing, bounded admission, DMA, and retries remain platform-owned.</description>
|
||||
<field type="uint8_t" name="level">Kaptan level encoded with MAVLink values: ERROR=3, WARNING=4, INFO=6, DEBUG=7; TRACE uses DEBUG=7 plus the TRACE flag. Other values are invalid.</field>
|
||||
<field type="uint8_t" name="flags" enum="KAPTAN_LOG_FLAGS">Known bits are TRACE=1 and TRUNCATED=2. Receivers ignore unknown future bits.</field>
|
||||
<field type="uint8_t" name="level" enum="LOG_LEVEL">Kaptan wire level.</field>
|
||||
<field type="uint8_t" name="flags" enum="LOG_FLAGS">TRUNCATED=1. Receivers ignore unrecognized bits.</field>
|
||||
<field type="uint8_t" name="message_length">Number of valid UTF-8 bytes in message; at most 160.</field>
|
||||
<field type="uint8_t[160]" name="message">Bounded UTF-8 message bytes. Bytes after message_length are zero.</field>
|
||||
</message>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0"?>
|
||||
<mavlink>
|
||||
<version>3</version>
|
||||
<dialect>0</dialect>
|
||||
<messages>
|
||||
<message id="51030" name="OPTICAL_FLOW">
|
||||
<description>One accepted ground-referenced optical-flow observation from the board's selected vertical sensor route.</description>
|
||||
<field type="uint64_t" name="time_us">Flight-controller monotonic reception time in microseconds.</field>
|
||||
<field type="int32_t[2]" name="velocity_millimetres_per_second">Ground-referenced sensor-frame X/Y velocity in millimetres per second.</field>
|
||||
<field type="uint32_t" name="ground_distance_millimetres">Ground distance in millimetres.</field>
|
||||
<field type="uint8_t" name="quality">Device-reported observation quality.</field>
|
||||
</message>
|
||||
</messages>
|
||||
</mavlink>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
<mavlink>
|
||||
<version>3</version>
|
||||
<dialect>0</dialect>
|
||||
<messages>
|
||||
<message id="51029" name="RANGE">
|
||||
<description>One accepted downward range observation from the board's selected vertical sensor route.</description>
|
||||
<field type="uint64_t" name="time_us">Flight-controller monotonic measurement-request time in microseconds.</field>
|
||||
<field type="uint32_t" name="distance_millimetres">Measured downward distance in millimetres.</field>
|
||||
</message>
|
||||
</messages>
|
||||
</mavlink>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0"?>
|
||||
<mavlink>
|
||||
<version>3</version>
|
||||
<dialect>0</dialect>
|
||||
<enums>
|
||||
<enum name="FILE_OPERATION">
|
||||
<entry value="1" name="FILE_OPERATION_OPEN_READ"/>
|
||||
<entry value="2" name="FILE_OPERATION_OPEN_WRITE"/>
|
||||
<entry value="3" name="FILE_OPERATION_READ"/>
|
||||
<entry value="4" name="FILE_OPERATION_WRITE_ACK"/>
|
||||
<entry value="5" name="FILE_OPERATION_CLOSE"/>
|
||||
<entry value="6" name="FILE_OPERATION_ABORT"/>
|
||||
</enum>
|
||||
<enum name="FILE_STATUS">
|
||||
<entry value="0" name="FILE_STATUS_UNSPECIFIED"/>
|
||||
<entry value="1" name="FILE_STATUS_OK"/>
|
||||
<entry value="2" name="FILE_STATUS_BUSY"/>
|
||||
<entry value="3" name="FILE_STATUS_INVALID_TRANSFER"/>
|
||||
<entry value="4" name="FILE_STATUS_INVALID_STATE"/>
|
||||
<entry value="5" name="FILE_STATUS_INVALID_PATH"/>
|
||||
<entry value="6" name="FILE_STATUS_NOT_FOUND"/>
|
||||
<entry value="7" name="FILE_STATUS_TOO_LARGE"/>
|
||||
<entry value="8" name="FILE_STATUS_INVALID_POSITION"/>
|
||||
<entry value="9" name="FILE_STATUS_CHECKSUM_MISMATCH"/>
|
||||
<entry value="10" name="FILE_STATUS_CONTENT_REJECTED"/>
|
||||
<entry value="11" name="FILE_STATUS_STORAGE_FAILURE"/>
|
||||
<entry value="12" name="FILE_STATUS_REQUEST_CONFLICT"/>
|
||||
<entry value="13" name="FILE_STATUS_INTERNAL"/>
|
||||
</enum>
|
||||
</enums>
|
||||
<messages>
|
||||
<message id="51025" name="FILE_CONTROL">
|
||||
<description>Opens, advances, completes, or aborts one bounded Kaptan virtual-file transfer.</description>
|
||||
<field type="uint32_t" name="position">Requested or next accepted byte position.</field>
|
||||
<field type="uint32_t" name="file_size">Exact complete file size advertised when the transfer is opened.</field>
|
||||
<field type="uint32_t" name="checksum_crc32c">CRC-32C of the complete file.</field>
|
||||
<field type="uint16_t" name="transfer_id">Client-selected nonzero transfer identity retained for the complete transfer and not reused by that source during the ten-second replay lease.</field>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
<field type="uint8_t" name="operation" enum="FILE_OPERATION"/>
|
||||
<field type="uint8_t" name="status" enum="FILE_STATUS">Requests use UNSPECIFIED; responses carry the authoritative outcome.</field>
|
||||
<field type="uint8_t" name="content_length">Logical bytes initialized in content.</field>
|
||||
<field type="uint8_t[64]" name="content">Canonical path for open requests or bounded outcome detail in responses.</field>
|
||||
</message>
|
||||
</messages>
|
||||
</mavlink>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0"?>
|
||||
<mavlink>
|
||||
<version>3</version>
|
||||
<dialect>0</dialect>
|
||||
<messages>
|
||||
<message id="51026" name="FILE_DATA">
|
||||
<description>One directed file chunk. Its logical length is min(246, file_size - position) from the open transfer.</description>
|
||||
<field type="uint32_t" name="position"/>
|
||||
<field type="uint16_t" name="transfer_id"/>
|
||||
<field type="uint8_t" name="target_system"/>
|
||||
<field type="uint8_t" name="target_component"/>
|
||||
<field type="uint8_t" name="status" enum="FILE_STATUS">Upload requests use UNSPECIFIED; read responses use OK.</field>
|
||||
<field type="uint8_t[246]" name="data"/>
|
||||
</message>
|
||||
</messages>
|
||||
</mavlink>
|
||||
Reference in new issue
Block a user