Skip to main content

run_read

Function run_read 

Source
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.