You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libsdr/examples/sdr_ax25.cc

42 lines
910 B
C++

#include "wavfile.hh"
#include "autocast.hh"
#include "interpolate.hh"
#include "fsk.hh"
#include "aprs.hh"
#include "utils.hh"
using namespace sdr;
int main(int argc, char *argv[]) {
if (2 > argc) { std::cout << "USAGE: sdr_afsk1200 FILENAME" << std::endl; return -1; }
sdr::Logger::get().addHandler(
new sdr::StreamLogHandler(std::cerr, sdr::LOG_DEBUG));
Queue &queue = Queue::get();
WavSource src(argv[1], 1024);
if (! src.isOpen()) { std::cout << "Can not open file " << argv[1] << std::endl; return -1; }
AutoCast< int16_t > cast;
FSKDetector demod(1200, 1200, 2200);
BitStream bits(1200, BitStream::TRANSITION);
APRS decode;
src.connect(&cast);
cast.connect(&demod);
demod.connect(&bits);
bits.connect(&decode);
Queue::get().addIdle(&src, &WavSource::next);
src.addEOS(&queue, &Queue::stop);
Queue::get().start();
Queue::get().wait();
return 0;
}