From 9daaaa29592fbf0e2772e1fd3b37e4141ad724f5 Mon Sep 17 00:00:00 2001
From: Federico Lolli <federico.lolli@skywarder.eu>
Date: Mon, 22 Jan 2024 10:24:11 +0100
Subject: [PATCH] refactored a bit

---
 src/main.rs | 61 ++++++++++++++++++++++++++---------------------------
 1 file changed, 30 insertions(+), 31 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 9f2359c..cabf90e 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -9,31 +9,6 @@ use serialport::SerialPort;
 
 const EOT: u8 = 0x04;
 
-trait MavLinkPort {
-    fn write_packet(&mut self, packet: MavlinkPayloadFlightTM);
-}
-
-impl<T: AsRef<dyn SerialPort> + std::io::Write> MavLinkPort for T {
-    fn write_packet(&mut self, packet: MavlinkPayloadFlightTM) {
-        self.write_all(&packet.into_le_bytes())
-            .expect("Failed to write to serial port");
-    }
-}
-
-fn get_first_stm32_serial_port() -> Option<String> {
-    let ports = serialport::available_ports().expect("No serial ports found!");
-    for port in ports {
-        if let serialport::SerialPortType::UsbPort(info) = port.port_type {
-            if let Some(p) = info.product {
-                if p.contains("STM32") {
-                    return Some(port.port_name);
-                }
-            }
-        }
-    }
-    None
-}
-
 fn main() {
     let mut packets = Vec::new();
 
@@ -88,18 +63,42 @@ fn main() {
                 if i == 580 {
                     break;
                 }
-                // for line in input.lines() {
-                //     if !line.contains("[WAITING]") {
-                //         println!("{}", line);
-                //     }
-                // }
             }
             Err(ref e) if e.kind() == io::ErrorKind::TimedOut => (),
             Err(e) => eprintln!("{:?}", e),
         }
     }
 
-    // print stats (mean, median, std, etc)
+    print_stats(times);
+}
+
+trait MavLinkPort {
+    fn write_packet(&mut self, packet: MavlinkPayloadFlightTM);
+}
+
+impl<T: AsRef<dyn SerialPort> + std::io::Write> MavLinkPort for T {
+    fn write_packet(&mut self, packet: MavlinkPayloadFlightTM) {
+        self.write_all(&packet.into_le_bytes())
+            .expect("Failed to write to serial port");
+    }
+}
+
+fn get_first_stm32_serial_port() -> Option<String> {
+    let ports = serialport::available_ports().expect("No serial ports found!");
+    for port in ports {
+        if let serialport::SerialPortType::UsbPort(info) = port.port_type {
+            if let Some(p) = info.product {
+                if p.contains("STM32") {
+                    return Some(port.port_name);
+                }
+            }
+        }
+    }
+    None
+}
+
+/// print stats (mean, median, std, etc)
+fn print_stats(times: Vec<u128>) {
     let mean = times.iter().sum::<u128>() as f64 / times.len() as f64;
     let median = times[times.len() / 2] as f64;
     let std = times
-- 
GitLab