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

Arduino Stream API for the Olivia and Contestia modems (compatible with fldigi): print() transmits, flush() completes the last block, read() receives. See BasicModemStream. More...

#include <ModemStream.h>

Inheritance diagram for tinymodem::OliviaStream:
Collaboration diagram for tinymodem::OliviaStream:

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< OliviaEncoder, OliviaDecoder, OliviaConfig >
 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.
OliviaConfig defaultConfig ()
bool begin (OliviaConfig 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
OliviaEncoder & getEncoder ()
OliviaDecoder & getDecoder ()

Additional Inherited Members

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

Detailed Description

Arduino Stream API for the Olivia and Contestia modems (compatible with fldigi): print() transmits, flush() completes the last block, 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: