From ab82e274fd6a6ed7b4ec82fc3ed49d40d37b5351 Mon Sep 17 00:00:00 2001 From: pv42 <pv42.97@gmail.com> Date: Wed, 7 Aug 2024 23:57:47 +0200 Subject: [PATCH] feat: Add incompat flag field to MavHeader --- mavlink-core/src/connection/direct_serial.rs | 1 + mavlink-core/src/connection/tcp.rs | 1 + mavlink-core/src/connection/udp.rs | 1 + mavlink-core/src/lib.rs | 5 ++++- mavlink/examples/embedded-async-read/src/main.rs | 1 + mavlink/examples/embedded/src/main.rs | 1 + mavlink/tests/mav_frame_tests.rs | 1 + mavlink/tests/test_shared/mod.rs | 1 + 8 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mavlink-core/src/connection/direct_serial.rs b/mavlink-core/src/connection/direct_serial.rs index a3a33a0..2e31bda 100644 --- a/mavlink-core/src/connection/direct_serial.rs +++ b/mavlink-core/src/connection/direct_serial.rs @@ -77,6 +77,7 @@ impl<M: Message> MavConnection<M> for SerialConnection { let mut sequence = self.sequence.lock().unwrap(); let header = MavHeader { + incompat_flags: 0, sequence: *sequence, system_id: header.system_id, component_id: header.component_id, diff --git a/mavlink-core/src/connection/tcp.rs b/mavlink-core/src/connection/tcp.rs index 35b7f09..73d456a 100644 --- a/mavlink-core/src/connection/tcp.rs +++ b/mavlink-core/src/connection/tcp.rs @@ -95,6 +95,7 @@ impl<M: Message> MavConnection<M> for TcpConnection { let mut lock = self.writer.lock().unwrap(); let header = MavHeader { + incompat_flags: 0, sequence: lock.sequence, system_id: header.system_id, component_id: header.component_id, diff --git a/mavlink-core/src/connection/udp.rs b/mavlink-core/src/connection/udp.rs index 3ec739d..91bbfae 100644 --- a/mavlink-core/src/connection/udp.rs +++ b/mavlink-core/src/connection/udp.rs @@ -134,6 +134,7 @@ impl<M: Message> MavConnection<M> for UdpConnection { let state = &mut *guard; let header = MavHeader { + incompat_flags: 0, sequence: state.sequence, system_id: header.system_id, component_id: header.component_id, diff --git a/mavlink-core/src/lib.rs b/mavlink-core/src/lib.rs index e6e7aec..fa6bea9 100644 --- a/mavlink-core/src/lib.rs +++ b/mavlink-core/src/lib.rs @@ -93,6 +93,7 @@ pub trait MessageData: Sized { #[derive(Debug, Copy, Clone, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct MavHeader { +pub incompat_flags: u8, pub system_id: u8, pub component_id: u8, pub sequence: u8, @@ -118,6 +119,7 @@ pub const MAV_STX_V2: u8 = 0xFD; impl Default for MavHeader { fn default() -> Self { Self { + incompat_flags: 0, system_id: 255, component_id: 0, sequence: 0, @@ -211,6 +213,7 @@ impl<M: Message> MavFrame<M> { let system_id = buf.get_u8(); let component_id = buf.get_u8(); let header = MavHeader { + incompat_flags: 0, system_id, component_id, sequence, @@ -639,7 +642,7 @@ impl MAVLinkV2MessageRaw { let header_buf = self.mut_header(); header_buf.copy_from_slice(&[ payload_length as u8, - 0, //incompat_flags + header.incompat_flags, 0, //compat_flags header.sequence, header.system_id, diff --git a/mavlink/examples/embedded-async-read/src/main.rs b/mavlink/examples/embedded-async-read/src/main.rs index 7f53335..6b4e5c1 100644 --- a/mavlink/examples/embedded-async-read/src/main.rs +++ b/mavlink/examples/embedded-async-read/src/main.rs @@ -39,6 +39,7 @@ async fn main(spawner: Spawner) { // Create our mavlink header and heartbeat message let header = mavlink::MavHeader { + incompat_flags: 0, system_id: 1, component_id: 1, sequence: 42, diff --git a/mavlink/examples/embedded/src/main.rs b/mavlink/examples/embedded/src/main.rs index 4a71ca8..21b7039 100644 --- a/mavlink/examples/embedded/src/main.rs +++ b/mavlink/examples/embedded/src/main.rs @@ -82,6 +82,7 @@ fn main() -> ! { fn mavlink_header() -> mavlink::MavHeader { mavlink::MavHeader { + incompat_flags: 0, system_id: 1, component_id: 1, sequence: 42, diff --git a/mavlink/tests/mav_frame_tests.rs b/mavlink/tests/mav_frame_tests.rs index 1c225ef..5472dbb 100644 --- a/mavlink/tests/mav_frame_tests.rs +++ b/mavlink/tests/mav_frame_tests.rs @@ -96,6 +96,7 @@ mod mav_frame_tests { fn new(msg: MavMessage) -> MavFrame<MavMessage> { MavFrame { header: MavHeader { + incompat_flags: 0, system_id: 1, component_id: 2, sequence: 84, diff --git a/mavlink/tests/test_shared/mod.rs b/mavlink/tests/test_shared/mod.rs index 4cba469..332e9a1 100644 --- a/mavlink/tests/test_shared/mod.rs +++ b/mavlink/tests/test_shared/mod.rs @@ -1,6 +1,7 @@ #![allow(unused)] pub const COMMON_MSG_HEADER: mavlink::MavHeader = mavlink::MavHeader { + incompat_flags: 0, sequence: 239, system_id: 1, component_id: 2, -- GitLab