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;