43template <
class Encoder,
class Decoder,
class Config>
59 if (mode & audio_tools::TX_MODE)
setOutput(audio);
60 if (mode & audio_tools::RX_MODE)
setInput(audio);
74 bool begin(Config cfg,
int rx_buffer_size = 256) {
94 size_t write(uint8_t ch)
override {
return encoder.write(&ch, 1); }
96 size_t write(
const uint8_t* data,
size_t len)
override {
97 return encoder.write(data, len);
162 if (len <= 0)
return 0;
165 if (len <= 0)
return 0;
Arduino Stream API for the AX.25 packet radio modem (APRS): print() transmits the frames,...
Definition ModemStream.h:196
BasicModemStream()=default
size_t update()
Definition ModemStream.h:135
int read() override
Definition ModemStream.h:108
Print * p_audio_out
Definition ModemStream.h:151
void flush() override
Sends the trailer: call this at the end of a message.
Definition ModemStream.h:101
size_t write(uint8_t ch) override
Definition ModemStream.h:94
Encoder encoder
Definition ModemStream.h:153
BasicModemStream()=default
BasicModemStream(Print &audio_out)
transmit only
Definition ModemStream.h:50
Encoder & getEncoder()
Definition ModemStream.h:145
void end()
Definition ModemStream.h:89
ByteQueue ReceiveQueue
Definition ModemStream.h:149
Config defaultConfig()
Definition ModemStream.h:70
void setStatusOutput(Print &out)
Defines the output for the ### CARRIER / ### NOCARRIER messages.
Definition ModemStream.h:68
bool isCarrier()
true while a carrier is detected
Definition ModemStream.h:143
size_t readBytes(uint8_t *data, size_t len)
Reads the available data (does not wait for more data).
Definition ModemStream.h:119
int peek() override
Definition ModemStream.h:113
void setInput(Stream &audio_in)
Defines the audio input (receiver).
Definition ModemStream.h:66
int available() override
Definition ModemStream.h:103
ReceiveQueue rx_queue
Definition ModemStream.h:155
size_t write(const uint8_t *data, size_t len) override
Definition ModemStream.h:96
uint8_t copy_buffer[256]
Definition ModemStream.h:157
size_t readBytes(char *data, size_t len)
Definition ModemStream.h:129
Decoder & getDecoder()
Definition ModemStream.h:146
int rx_limit
Definition ModemStream.h:156
BasicModemStream(Print &audio_out, Stream &audio_in)
transmit and receive with separate output and input
Definition ModemStream.h:52
Config ConfigType
Definition ModemStream.h:46
BasicModemStream(Stream &audio, audio_tools::RxTxMode mode)
Definition ModemStream.h:58
Decoder decoder
Definition ModemStream.h:154
size_t readInput()
Reads the available audio input and feeds it to the decoder.
Definition ModemStream.h:160
Stream * p_audio_in
Definition ModemStream.h:152
bool begin(Config cfg, int rx_buffer_size=256)
Definition ModemStream.h:74
void setOutput(Print &audio_out)
Defines the audio output (transmitter).
Definition ModemStream.h:64
FIFO for received data which grows when needed: e.g. one decoding step can produce more data than exp...
Definition ModemBase.h:249
Arduino Stream API for the chirp spread spectrum modem (LoRa-like): print() collects the data,...
Definition ModemStream.h:251
BasicModemStream()=default
Arduino Stream API for the DTMF (touch tone) modem: print() sends the keys 0-9, *,...
Definition ModemStream.h:273
BasicModemStream()=default
Arduino Stream API for the ggwave compatible modem: print() collects the data (up to 140 bytes),...
Definition ModemStream.h:228
BasicModemStream()=default
Arduino Stream API for the multi-tone FSK modem: print() transmits, read() receives....
Definition ModemStream.h:185
BasicModemStream()=default
Arduino Stream API for the minimodem compatible FSK modem: print() transmits, read() receives....
Definition ModemStream.h:175
BasicModemStream()=default
Arduino Stream API for Morse code (International or American): print() transmits, read() receives....
Definition ModemStream.h:262
BasicModemStream()=default
Arduino Stream API for the OFDM modem: print() collects the data, flush() sends it as frame,...
Definition ModemStream.h:216
BasicModemStream()=default
Arduino Stream API for the Olivia and Contestia modems (compatible with fldigi): print() transmits,...
Definition ModemStream.h:240
BasicModemStream()=default
Arduino Stream API for the PSK modem (PSK31 to PSK500): print() transmits, read() receives....
Definition ModemStream.h:206
BasicModemStream()=default
TinyModem: software audio modems and packets with error correction.
Definition AX25.h:11