2#include "TinyRobotics/utils/BaseStream.h"
3#include "RHGenericDriver.h"
5namespace tinyrobotics {
8
9
10
11
12
13
16 ReadioHeadStream(RHGenericDriver &driver) { setDriver(driver); }
18 void setDriver(RHGenericDriver &driver) { p_driver = &driver; }
21 if (p_driver ==
nullptr)
return false;
22 p_driver->setMode(mode == RX_MODE ? RHGenericDriver::RHMode::RHModeRx
23 : RHGenericDriver::RHMode::RHModeTx);
24 return p_driver->init();
27 void end() { p_driver->setMode(RHGenericDriver::RHMode::RHModeSleep); }
29 int available() override {
30 if (mode == TX_MODE)
return 0;
31 return p_driver->available() ? p_driver->maxMessageLength() : 0;
34 size_t readBytes(uint8_t *data, size_t len)
override {
35 if (mode == TX_MODE)
return 0;
39 uint8_t av = available();
41 p_driver->recv(data + processed, &av);
48 int availableForWrite() override {
49 if (mode == RX_MODE)
return 0;
50 return p_driver->maxMessageLength();
53 size_t write(
const uint8_t *data, size_t len)
override {
54 if (mode == RX_MODE)
return 0;
60 p_driver->send(data + processed, av);
68 RHGenericDriver *p_driver =
nullptr;
Arduino Stream which is using the RadioHead library to send and receive data. We use the river API di...
Definition: RadioHeadStream.h:14