示例#1
0
文件: NRF24L01P.cpp 项目: erictj/Cosa
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));
}
示例#2
0
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);
}