pub async fn run_read<M: RawMutex + 'static, T: TransportRead, const N_INFLIGHT: usize, const N_POOL: usize, const N_BUF: usize>(
transport: &mut T,
crc_dev: &mut impl CrcDevice,
buffer_pool: &'static BufferPool<M, [u8; N_BUF], N_POOL>,
rx_queue: Sender<'_, M, MappedBufferGuard<M, [u8]>, N_POOL>,
acks_to_send: Sender<'_, M, Ack, N_INFLIGHT>,
acks_received: Sender<'_, M, Ack, N_INFLIGHT>,
) -> Result<(), T::Error>Expand description
Reads bytes from transport, validates CRC, reassembles DATA packets into rx_pool buffers,
forwards ACK records to acks_received, and sends local ACKs on acks_to_send.
Completed packets are sent on rx_queue as a mapped guard over the received length.