From 387fd4ef982be2f715d8d35c219ed94cac60e43b Mon Sep 17 00:00:00 2001 From: David Sferruzza Date: Mon, 27 Apr 2020 17:12:06 +0200 Subject: [PATCH] Add systick to machine state snapshot --- src/software/firmware/srcs/telemetry.cpp | 7 +++++++ src/software/telemetry/src/parsers.rs | 7 +++++++ src/software/telemetry/src/structures.rs | 1 + 3 files changed, 15 insertions(+) diff --git a/src/software/firmware/srcs/telemetry.cpp b/src/software/firmware/srcs/telemetry.cpp index 403a9e76c..f2b03a9a8 100644 --- a/src/software/firmware/srcs/telemetry.cpp +++ b/src/software/firmware/srcs/telemetry.cpp @@ -269,6 +269,13 @@ void sendMachineStateSnapshot(uint32_t cycleValue, Serial6.print("\t"); + byte systick[8]; // 64 bits + uint64_t systickValue = (millis() * 1000) + (micros() % 1000); + toBytes64(systick, systickValue); + Serial6.write(systick, 8); + + Serial6.print("\t"); + byte cycle[4]; // 32 bits toBytes32(cycle, cycleValue); Serial6.write(cycle, 4); diff --git a/src/software/telemetry/src/parsers.rs b/src/software/telemetry/src/parsers.rs index e814e5300..d2fbec3c3 100644 --- a/src/software/telemetry/src/parsers.rs +++ b/src/software/telemetry/src/parsers.rs @@ -168,6 +168,8 @@ named!( >> device_id2: be_u32 >> device_id3: be_u32 >> sep + >> systick: be_u64 + >> sep >> cycle: be_u32 >> sep >> peak_command: be_u8 @@ -189,6 +191,7 @@ named!( >> (TelemetryMessage::MachineStateSnapshot(MachineStateSnapshot { version: software_version.to_string(), device_id: format!("{}-{}-{}", device_id1, device_id2, device_id3), + systick, cycle, peak_command, plateau_command, @@ -464,6 +467,7 @@ mod tests { device_id1 in (0u32..), device_id2 in (0u32..), device_id3 in (0u32..), + systick in (0u64..), cycle in (0u32..), peak_command in (0u8..), plateau_command in (0u8..), @@ -477,6 +481,7 @@ mod tests { let msg = MachineStateSnapshot { version, device_id: format!("{}-{}-{}", device_id1, device_id2, device_id3), + systick, cycle, peak_command, plateau_command, @@ -497,6 +502,8 @@ mod tests { &device_id2.to_be_bytes(), &device_id3.to_be_bytes(), b"\t", + &msg.systick.to_be_bytes(), + b"\t", &msg.cycle.to_be_bytes(), b"\t", &[msg.peak_command], diff --git a/src/software/telemetry/src/structures.rs b/src/software/telemetry/src/structures.rs index c3324e880..b265cf3ac 100644 --- a/src/software/telemetry/src/structures.rs +++ b/src/software/telemetry/src/structures.rs @@ -85,6 +85,7 @@ pub struct DataSnapshot { pub struct MachineStateSnapshot { pub version: String, pub device_id: String, + pub systick: u64, pub cycle: u32, pub peak_command: u8, pub plateau_command: u8,