arduino-audio-tools
Loading...
Searching...
No Matches
RadioHeadStream Class Reference

Arduino Stream which is using the RadioHead library to send and receive data. We use the driver API directly. More...

#include <RadioHeadStream.h>

Inheritance diagram for RadioHeadStream:
Stream Print Print

Public Member Functions

 RadioHeadStream (RHGenericDriver &driver, RxTxMode mode=TX_MODE)
int available () override
int availableForWrite () override
bool begin ()
bool begin (RxTxMode mode)
void end ()
void flush () override
 Sends the buffered data.
 operator bool ()
 operator bool ()
int peek () override
int read () override
size_t readBytes (uint8_t *data, size_t len) override
void setDriver (RHGenericDriver &driver)
void setMode (RxTxMode mode)
 Defines if we send (TX_MODE) or receive (RX_MODE).
size_t write (const uint8_t *data, size_t len) override
size_t write (uint8_t c) override

Protected Member Functions

bool receive ()
 Copies the next received message into the buffer.
void send ()

Protected Attributes

int _timeout = 10
SingleBuffer< uint8_t > buffer {0}
RxTxMode mode = TX_MODE
RHGenericDriver * p_driver = nullptr

Detailed Description

Arduino Stream which is using the RadioHead library to send and receive data. We use the driver API directly.

In TX_MODE the written data is collected and sent in messages of maxMessageLength() bytes: call flush() to send a partially filled message. In RX_MODE each received message is buffered, so that it can be read in chunks of any size.

Note
Supported only on Arduino platforms with support for the RadioHead library and the related hardware (e.g. ESP32 with LoRa, nRF24L01, etc.)!
Requires: 👉 https://www.airspayce.com/mikem/arduino/RadioHead/
Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ RadioHeadStream()

RadioHeadStream ( RHGenericDriver & driver,
RxTxMode mode = TX_MODE )
inline

Member Function Documentation

◆ available()

int available ( )
inlineoverridevirtual

Reimplemented from Stream.

◆ availableForWrite()

int availableForWrite ( )
inlineoverridevirtual

Reimplemented from Print.

◆ begin() [1/2]

bool begin ( )
inline

◆ begin() [2/2]

bool begin ( RxTxMode mode)
inline

◆ end()

void end ( )
inline

◆ flush()

void flush ( )
inlineoverridevirtual

Sends the buffered data.

Reimplemented from Print.

◆ operator bool() [1/2]

operator bool ( )
inlineinherited

◆ operator bool() [2/2]

operator bool ( )
inlineinherited

◆ peek()

int peek ( )
inlineoverride

◆ read()

int read ( )
inlineoverride

◆ readBytes()

size_t readBytes ( uint8_t * data,
size_t len )
inlineoverridevirtual

Reimplemented from Stream.

◆ receive()

bool receive ( )
inlineprotected

Copies the next received message into the buffer.

◆ send()

void send ( )
inlineprotected

◆ setDriver()

void setDriver ( RHGenericDriver & driver)
inline

◆ setMode()

void setMode ( RxTxMode mode)
inline

Defines if we send (TX_MODE) or receive (RX_MODE).

◆ write() [1/2]

size_t write ( const uint8_t * data,
size_t len )
inlineoverridevirtual

Reimplemented from Print.

◆ write() [2/2]

size_t write ( uint8_t c)
inlineoverride

Member Data Documentation

◆ _timeout

int _timeout = 10
protectedinherited

◆ buffer

SingleBuffer<uint8_t> buffer {0}
protected

◆ mode

RxTxMode mode = TX_MODE
protected

◆ p_driver

RHGenericDriver* p_driver = nullptr
protected

The documentation for this class was generated from the following file: