int NRF24L01P::send(uint8_t dest, uint8_t port, const void* buf, size_t len) { iovec_t vec[2]; iovec_t* vp = vec; iovec_arg(vp, buf, len); iovec_end(vp); return (send(dest, port, vec)); }
int8_t VWI::Transceiver::recv(void* buf, uint8_t len, uint32_t ms) { // Receiver enhanced message rx.await(); int8_t res = rx.recv(buf, len, ms); if (res <= 0) return (res); // Check for no acknowledgement VWI::header_t* hp = (VWI::header_t*) buf; uint8_t nack = hp->cmd & NACK; hp->cmd = hp->cmd & ~NACK; if (nack) return (res); // Send acknowledgement; retransmit the header iovec_t vec[2]; iovec_t* vp = vec; iovec_arg(vp, buf, sizeof(VWI::header_t)); iovec_end(vp); tx.send(vec); return (res); }