@@ -6,6 +6,7 @@ use std::io;
66
77use async_trait:: async_trait;
88use futures:: lock:: Mutex ;
9+ use tokio:: io:: BufReader ;
910use tokio_serial:: { SerialPort , SerialPortBuilderExt , SerialStream } ;
1011
1112use super :: AsyncConnectable ;
@@ -26,7 +27,7 @@ use crate::{
2627use super :: AsyncMavConnection ;
2728
2829pub struct AsyncSerialConnection {
29- port : Mutex < AsyncPeekReader < SerialStream > > ,
30+ port : Mutex < AsyncPeekReader < BufReader < SerialStream > > > ,
3031 sequence : AtomicU8 ,
3132 protocol_version : MavlinkVersion ,
3233 recv_any_version : bool ,
@@ -141,8 +142,11 @@ impl AsyncConnectable for SerialConfig {
141142 port. set_stop_bits ( tokio_serial:: StopBits :: One ) ?;
142143 port. set_flow_control ( tokio_serial:: FlowControl :: None ) ?;
143144
145+ let read_buffer_capacity = self . buffer_capacity ( ) ;
146+ let buf_reader = BufReader :: with_capacity ( read_buffer_capacity, port) ;
147+
144148 Ok ( Box :: new ( AsyncSerialConnection {
145- port : Mutex :: new ( AsyncPeekReader :: new ( port ) ) ,
149+ port : Mutex :: new ( AsyncPeekReader :: new ( buf_reader ) ) ,
146150 sequence : AtomicU8 :: new ( 0 ) ,
147151 protocol_version : MavlinkVersion :: V2 ,
148152 recv_any_version : false ,
0 commit comments