diff --git a/src/main.rs b/src/main.rs index 1f34d6d9dcb9dbfb903fd19841abbd862c4ac197..ff7c0a18eb205fcef40d297f5dd41618565f8b7e 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");