From 47a2c2f51f709e7a04db2656c0ee2b5d1b9b272a Mon Sep 17 00:00:00 2001 From: Federico Lolli <federico.lolli@skywarder.eu> Date: Mon, 22 Jan 2024 10:24:09 +0100 Subject: [PATCH] added auto-discovery of first STM32 serial device connected --- src/main.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 1f34d6d..ff7c0a1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -18,9 +18,23 @@ impl<T: AsRef<dyn SerialPort> + std::io::Write> MavLinkPort for T { } } +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() { // Open the first serialport available. - let port_name = "/dev/tty.usbmodem143203"; + let port_name = get_first_stm32_serial_port().expect("No STM32 serial port found!"); let mut port = serialport::new(port_name, 115200) .open() .expect("Failed to open serial port"); -- GitLab