From 8bb85619d8832b35304992468b4da2cecac15bef Mon Sep 17 00:00:00 2001 From: clemibunge Date: Tue, 18 Feb 2020 01:35:49 +0100 Subject: [PATCH] Added Foxhunt Mode --- src/foxhunt/foxhunt.cpp | 113 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 src/foxhunt/foxhunt.cpp diff --git a/src/foxhunt/foxhunt.cpp b/src/foxhunt/foxhunt.cpp new file mode 100644 index 0000000..78fb2ec --- /dev/null +++ b/src/foxhunt/foxhunt.cpp @@ -0,0 +1,113 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include "../librpitx/src/librpitx.h" + + +int FileFreqTiming; + +ngfmdmasync *fmmod; +static double GlobalTuningFrequency=00000.0; +int FifoSize=10000; //10ms +double frequencyshift=20000; +bool running=true; + +void playtone(double Frequency,uint32_t Timing)//Timing in 0.1us +{ + uint32_t SumTiming=0; + SumTiming+=Timing%100; + if(SumTiming>=100) + { + Timing+=100; + SumTiming=SumTiming-100; + } + int NbSamples=(Timing/100); + + while(NbSamples>0) + { + usleep(10); + int Available=fmmod->GetBufferAvailable(); + if(Available>FifoSize/2) + { + int Index=fmmod->GetUserMemIndex(); + if(Available>NbSamples) Available=NbSamples; + for(int j=0;jSetFrequencySample(Index+j,Frequency); + NbSamples--; + + } + } + } +} + + + + + +static void SendTones() +{ +double basefreq = 1100; +double freq2 = 1100 + frequencyshift; +while(running) +{ + playtone( 1100 , 10000000) ; + playtone( freq2 , 10000000) ; +} +} + +static void +terminate(int num) +{ + running=false; + fprintf(stderr,"Caught signal - Terminating %x\n",num); + +} + +int main(int argc, char **argv) +{ + float frequency=144.5e6; + if (argc > 1) + { + + + frequency=atof(argv[1]); + frequencyshift=atof(argv[2]); + + } + else + { + printf("usage : foxhunt frequency(Hz) frequency shift(Hz)\n"); + exit(0); + } + + for (int i = 0; i < 64; i++) { + struct sigaction sa; + + std::memset(&sa, 0, sizeof(sa)); + sa.sa_handler = terminate; + sigaction(i, &sa, NULL); + } + + fmmod=new ngfmdmasync(frequency,100000,14,FifoSize); + SendTones(); + delete fmmod; + return 0; +} + + + +