3#include "AudioTools/CoreAudio/Buffers.h"
4#include "AudioTools/CoreAudio/BaseStream.h"
32 int32_t spi_speed = 8E6;
34 int frequency = 868E6;
37 int spreading_factor = 12;
38 int signal_bandwidth =
44 bool process_audio_info =
true;
75 buffer.
resize(cfg.max_size);
76 LoRa.setSignalBandwidth(cfg.signal_bandwidth);
77 LoRa.setSpreadingFactor(cfg.spreading_factor);
78 LoRa.setTxPower(cfg.tx_power);
79 LoRa.setSPIFrequency(cfg.spi_speed);
80 LoRa.setPins(cfg.pin_ss, cfg.pin_rst, cfg.pin_dio0);
81 LoRa.setSyncWord(cfg.sync_word);
82 bool rc = LoRa.begin(cfg.frequency);
83 if (cfg.process_audio_info) {
89 void end() { LoRa.end(); }
91 size_t readBytes(uint8_t* data,
size_t len) {
93 size_t packetSize = LoRa.parsePacket();
94 if (cfg.process_audio_info && packetSize ==
sizeof(AudioInfo)) {
96 packetSize = LoRa.parsePacket();
98 int toRead = min(len, packetSize);
99 int read = LoRa.readBytes(data, toRead);
103 int available() {
return cfg.max_size; }
105 int availableForWrite() {
return cfg.max_size; }
107 size_t write(
const uint8_t* data,
size_t len) {
109 for (
int j = 0; j < len; j++) {
110 buffer.
write(data[j]);
123 SingleBuffer<uint8_t> buffer;
125 void readAudioInfo() {
127 int read = LoRa.readBytes((uint8_t*)&tmp,
sizeof(AudioInfo));
131 void writeAudioInfo() {
134 LoRa.write((uint8_t*)&ai,
sizeof(ai));