* Hi! Does anyone have experience using serialport-rs on a PC program that interfaces with embedded devices over USB? I am having trouble with messages reading not at the start, and after debugging have narrowed it down to the PC program. 3 types of signal. Signal starts on a MCU. Goes over CAN to another MCU. Goes over UART to a dedicated RF MCU. The fabric of reality oscillates. Another device listens, and sends it over PC to USB. I've read the message on PC in Putty, and it looks good. I've tried several attempts to read it in Rust, and always get lots of misaligned packets. General read code: ```rust let mut rx_buf_mav_header = [0; 10]; port.read_exact(&mut rx_buf_mav_header)?; let message_id = u32::from_le_bytes([ rx_buf_mav_header[7], rx_buf_mav_header[8], rx_buf_mav_header[9], 0, ]); if rx_buf_mav_header[0] != MAVLINK_MSG_START { // (Ommitted error handling. This happens about 10x more often than correct messages) } match message_id { 1_000 => { // (Sometimes works) let mut rx_buf = [0; TELEM_VEHICLE_TO_GC_SIZE]; port.read_exact(&mut rx_buf)?; // (handle) } ``` Any idea? Of note, this is run in a continuous loop. Is there such thing as the equivalent of a char match interrupt? For example, that's how know when to start reading on the CAN MCU. I've also tried reading the whole message at once instead of with the header as a separate read. Either way, the message is misaligned more often than not. Like, it shows correct bytes, but not with the right starting point. Thank you!