TinyModem
Header-only software audio modem library
Loading...
Searching...
No Matches
tinymodem::GGWaveStream Class Reference

Arduino Stream API for the ggwave compatible modem: print() collects the data (up to 140 bytes), flush() sends it as message, read() receives. See BasicModemStream. More...

#include <ModemStream.h>

Inheritance diagram for tinymodem::GGWaveStream:
Collaboration diagram for tinymodem::GGWaveStream:

Public Member Functions

 BasicModemStream ()=default
 BasicModemStream (Print &audio_out)
 transmit only
 BasicModemStream (Print &audio_out, Stream &audio_in)
 transmit and receive with separate output and input
 BasicModemStream (Stream &audio, audio_tools::RxTxMode mode)
Public Member Functions inherited from tinymodem::BasicModemStream< GGWaveEncoder, GGWaveDecoder, GGWaveConfig >
 BasicModemStream ()=default
void setOutput (Print &audio_out)
 Defines the audio output (transmitter).
void setInput (Stream &audio_in)
 Defines the audio input (receiver).
void setStatusOutput (Print &out)
 Defines the output for the ### CARRIER / ### NOCARRIER messages.
GGWaveConfig defaultConfig ()
bool begin (GGWaveConfig cfg, int rx_buffer_size=256)
void end ()
size_t write (uint8_t ch) override
void flush () override
 Sends the trailer: call this at the end of a message.
int available () override
int read () override
int peek () override
size_t readBytes (uint8_t *data, size_t len)
 Reads the available data (does not wait for more data).
size_t update ()
bool isCarrier ()
 true while a carrier is detected
GGWaveEncoder & getEncoder ()
GGWaveDecoder & getDecoder ()

Additional Inherited Members

Public Types inherited from tinymodem::BasicModemStream< GGWaveEncoder, GGWaveDecoder, GGWaveConfig >
using ConfigType
Protected Types inherited from tinymodem::BasicModemStream< GGWaveEncoder, GGWaveDecoder, GGWaveConfig >
using ReceiveQueue
Protected Member Functions inherited from tinymodem::BasicModemStream< GGWaveEncoder, GGWaveDecoder, GGWaveConfig >
size_t readInput ()
 Reads the available audio input and feeds it to the decoder.
Protected Attributes inherited from tinymodem::BasicModemStream< GGWaveEncoder, GGWaveDecoder, GGWaveConfig >
Print * p_audio_out
Stream * p_audio_in
GGWaveEncoder encoder
GGWaveDecoder decoder
ReceiveQueue rx_queue
int rx_limit
uint8_t copy_buffer [256]

Detailed Description

Arduino Stream API for the ggwave compatible modem: print() collects the data (up to 140 bytes), flush() sends it as message, read() receives. See BasicModemStream.

Member Function Documentation

◆ BasicModemStream() [1/4]

tinymodem::BasicModemStream< Encoder, Decoder, Config >::BasicModemStream ( )
default

◆ BasicModemStream() [2/4]

tinymodem::BasicModemStream< Encoder, Decoder, Config >::BasicModemStream ( Print & audio_out)
inline

transmit only

◆ BasicModemStream() [3/4]

tinymodem::BasicModemStream< Encoder, Decoder, Config >::BasicModemStream ( Print & audio_out,
Stream & audio_in )
inline

transmit and receive with separate output and input

◆ BasicModemStream() [4/4]

tinymodem::BasicModemStream< Encoder, Decoder, Config >::BasicModemStream ( Stream & audio,
audio_tools::RxTxMode mode )
inline

use the same audio stream: TX_MODE (transmit only), RX_MODE (receive only) or RXTX_MODE (both)


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