diff --git a/mavlink-core/src/connection/direct_serial.rs b/mavlink-core/src/connection/direct_serial.rs
index a3a33a0fa6a7d9f8e09c86f23a8c30a76594e3fe..2e31bda56d96c8a62211ea8fd6ea7f0c30f47824 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 35b7f09084cb4b7d260a4359fcf135d9eb72a8b1..73d456aa3b93d75c7fa51d622c72a931dbf38750 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 3ec739d3f5ecce19d5c2cd119f1722ea9dc7f1ce..91bbfaef45a69094d4aee72e3ccc62fbda3dc913 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 e6e7aec97a20fcca7476b7d099a88b2551b5c62c..fa6bea9c482b9978e6cac0c36e0add5e80700218 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 7f53335de3e15e44108646aa00ed6a3b47901f25..6b4e5c1dc17b044fe1d2ec9023af58e5474f2316 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 4a71ca8fcfd7b1e45fa766fd368683808486bb70..21b70396b13225d1cad19921d3cdd0128b4581b5 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 1c225efd09d7148c439bace4ac09de7804a8d086..5472dbb8c12ce2ec463f493759b163f90c256946 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 4cba46907af9cd0cd438b048a428620eb65034b3..332e9a1f02326a75a3bf6bd0a07bfd42043d3e27 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,