Merge pull request #2 from F5OEO/master

Update my fork
pull/254/head
Mihajlo Petković 2021-04-18 00:46:35 +02:00 zatwierdzone przez GitHub
commit 182a4e771b
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
23 zmienionych plików z 408 dodań i 169 usunięć

Wyświetl plik

@ -25,6 +25,7 @@ do_stop_transmit()
sudo killall freedv 2>/dev/null
sudo killall pisstv 2>/dev/null
sudo killall csdr 2>/dev/null
sudo killall pirtty 2>/dev/null
case "$menuchoice" in
@ -40,6 +41,7 @@ do_stop_transmit()
9\ *) sudo killall testsstv.sh >/dev/null 2>/dev/null ;;
10\ *) sudo killall testpocsag.sh >/dev/null 2>/dev/null ;;
11\ *) sudo killall testopera.sh >/dev/null 2>/dev/null ;;
12\ *) sudo killall testrtty.sh >/dev/null 2>/dev/null ;;
esac
}
@ -71,6 +73,7 @@ do_freq_setup
"9 SSTV" "Pattern picture" \
"10 Pocsag" "Pager message" \
"11 Opera" "Like morse but need Opera decoder" \
"12 RTTY" "Radioteletype" \
3>&2 2>&1 1>&3)
RET=$?
if [ $RET -eq 1 ]; then
@ -102,6 +105,8 @@ do_freq_setup
do_status;;
11\ *) "./testopera.sh" "$OUTPUT_FREQ""e6">/dev/null 2>/dev/null &
do_status;;
12\ *) "./testrtty.sh" "$OUTPUT_FREQ""e6">/dev/null 2>/dev/null &
do_status;;
*) status=1
whiptail --title "Bye bye" --msgbox "Thx for using rpitx" 8 78
;;

Wyświetl plik

@ -16,11 +16,15 @@ cd ../ || exit
cd src || exit
git clone https://github.com/F5OEO/librpitx
cd librpitx/src || exit
make
make && sudo make install
cd ../../ || exit
cd pift8
git clone https://github.com/kgoba/ft8_lib
git clone https://github.com/F5OEO/ft8_lib
cd ft8_lib
make && sudo make install
cd ../
make
cd ../
make

Wyświetl plik

@ -1,97 +1,102 @@
all: ../pisstv ../piopera ../pifsq ../pichirp ../sendiq ../tune ../freedv ../pocsag ../spectrumpaint ../pifmrds ../rpitx ../corel8 ../pift8 ../sendook ../morse ../foxhunt
all: ../pisstv ../piopera ../pifsq ../pichirp ../sendiq ../tune ../freedv ../pocsag ../spectrumpaint ../pifmrds ../rpitx ../corel8 ../pift8 ../sendook ../morse ../foxhunt ../pirtty
CFLAGS = -Wall -g -O2 -Wno-unused-variable
CXXFLAGS = -std=c++11 -Wall -g -O2 -Wno-unused-variable
LDFLAGS = librpitx/src/librpitx.a -lm -lrt -lpthread -L/opt/vc/lib -lbcm_host
CCP = c++
CC = cc
CFLAGS ?= -Wall -g -O2 -Wno-unused-variable
CXXFLAGS ?= -std=c++11 -Wall -g -O2 -Wno-unused-variable
LDFLAGS ?= -L/opt/vc/lib
LDFLAGS += -lrpitx -lm -lrt -lpthread
CXX ?= c++
CC ?= cc
CFLAGS_Pissb = -Wall -g -O2 -Wno-unused-variable
LDFLAGS_Pissb = librpitx/src/librpitx.a -lm -lrt -lpthread -lsndfile -lliquid -L/opt/vc/lib -lbcm_host
LDFLAGS_Pissb = $(LDFLAGS) -lsndfile -lliquid
../pissb: ssbgen/test_ssb.c ssbgen/ssb_gen.c ssbgen/liquid_ssb.c librpitx/src/librpitx.a
../pissb: ssbgen/test_ssb.c ssbgen/ssb_gen.c ssbgen/liquid_ssb.c
$(CC) $(CFLAGS_Pissb) -o ../pissb ssbgen/liquid_ssb.c $(LDFLAGS_Pissb)
../pisstv : sstv/pisstv.cpp librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -o ../pisstv sstv/pisstv.cpp $(LDFLAGS)
../pisstv : sstv/pisstv.cpp
$(CXX) $(CXXFLAGS) -o ../pisstv sstv/pisstv.cpp $(LDFLAGS)
../foxhunt : foxhunt/foxhunt.cpp librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -o ../foxhunt foxhunt/foxhunt.cpp $(LDFLAGS)
../foxhunt : foxhunt/foxhunt.cpp
$(CXX) $(CXXFLAGS) -o ../foxhunt foxhunt/foxhunt.cpp $(LDFLAGS)
../pirtty : pirtty/pirtty.cpp
$(CXX) $(CXXFLAGS) -o ../pirtty pirtty/pirtty.cpp $(LDFLAGS)
../piopera : opera/opera.cpp librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -o ../piopera opera/opera.cpp $(LDFLAGS)
../piopera : opera/opera.cpp
$(CXX) $(CXXFLAGS) -o ../piopera opera/opera.cpp $(LDFLAGS)
../pifsq : fsq/pifsq.cpp librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -o ../pifsq fsq/pifsq.cpp $(LDFLAGS)
../pifsq : fsq/pifsq.cpp
$(CXX) $(CXXFLAGS) -o ../pifsq fsq/pifsq.cpp $(LDFLAGS)
../pichirp : chirp/chirp.cpp librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -o ../pichirp chirp/chirp.cpp $(LDFLAGS)
../pichirp : chirp/chirp.cpp
$(CXX) $(CXXFLAGS) -o ../pichirp chirp/chirp.cpp $(LDFLAGS)
../morse : morse/morse.cpp librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -o ../morse morse/morse.cpp $(LDFLAGS)
../morse : morse/morse.cpp
$(CXX) $(CXXFLAGS) -o ../morse morse/morse.cpp $(LDFLAGS)
../sendiq : sendiq.cpp librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -o ../sendiq sendiq.cpp $(LDFLAGS)
../sendiq : sendiq.cpp
$(CXX) $(CXXFLAGS) -o ../sendiq sendiq.cpp $(LDFLAGS)
../tune : tune.cpp librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -o ../tune tune.cpp $(LDFLAGS)
../tune : tune.cpp
$(CXX) $(CXXFLAGS) -o ../tune tune.cpp $(LDFLAGS)
../freedv : freedv/freedv.cpp librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -o ../freedv freedv/freedv.cpp $(LDFLAGS)
../freedv : freedv/freedv.cpp
$(CXX) $(CXXFLAGS) -o ../freedv freedv/freedv.cpp $(LDFLAGS)
../dvbrf : dvb/dvbrf.cpp dvb/dvbsenco8.s dvb/fec100.c dvb/dvbs2arm_1v30.s librpitx/src/librpitx.a
../dvbrf : dvb/dvbrf.cpp dvb/dvbsenco8.s dvb/fec100.c dvb/dvbs2arm_1v30.s
$(CC) $(CFLAGS) -c -o dvb/dvbsenco8.o dvb/dvbsenco8.s
$(CC) $(CFLAGS) -c -o dvb/dvbs2arm_1v30.o dvb/dvbs2arm_1v30.s
$(CC) $(CFLAGS) -c -o dvb/fec100.o dvb/fec100.c
$(CCP) $(CXXFLAGS) -o ../dvbrf dvb/dvbrf.cpp dvb/dvbsenco8.o dvb/fec100.o dvb/dvbs2arm_1v30.o $(LDFLAGS)
$(CXX) $(CXXFLAGS) -o ../dvbrf dvb/dvbrf.cpp dvb/dvbsenco8.o dvb/fec100.o dvb/dvbs2arm_1v30.o $(LDFLAGS)
../pocsag: pocsag/pocsag.cpp librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -o ../pocsag pocsag/pocsag.cpp $(LDFLAGS)
../pocsag: pocsag/pocsag.cpp
$(CXX) $(CXXFLAGS) -o ../pocsag pocsag/pocsag.cpp $(LDFLAGS)
../spectrumpaint: spectrumpaint/spectrum.cpp librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -o ../spectrumpaint spectrumpaint/spectrum.cpp $(LDFLAGS)
../spectrumpaint: spectrumpaint/spectrum.cpp
$(CXX) $(CXXFLAGS) -o ../spectrumpaint spectrumpaint/spectrum.cpp $(LDFLAGS)
../pifmrds: pifmrds/rds.c pifmrds/waveforms.c pifmrds/pi_fm_rds.cpp pifmrds/fm_mpx.c pifmrds/control_pipe.c librpitx/src/librpitx.a
../pifmrds: pifmrds/rds.c pifmrds/waveforms.c pifmrds/pi_fm_rds.cpp pifmrds/fm_mpx.c pifmrds/control_pipe.c
$(CC) $(CFLAGS) -c -o pifmrds/rds.o pifmrds/rds.c
$(CC) $(CFLAGS) -c -o pifmrds/control_pipe.o pifmrds/control_pipe.c
$(CC) $(CFLAGS) -c -o pifmrds/waveforms.o pifmrds/waveforms.c
$(CC) $(CFLAGS) -c -o pifmrds/rds_wav.o pifmrds/rds_wav.c
$(CC) $(CFLAGS) -c -o pifmrds/fm_mpx.o pifmrds/fm_mpx.c
$(CC) -o pifmrds/rds_wav pifmrds/rds_wav.o pifmrds/rds.o pifmrds/waveforms.o pifmrds/fm_mpx.o -lm -lsndfile
$(CCP) $(CXXFLAGS) -Wno-write-strings -o ../pifmrds pifmrds/rds.o pifmrds/waveforms.o pifmrds/pi_fm_rds.cpp pifmrds/fm_mpx.o pifmrds/control_pipe.o librpitx/src/librpitx.a -lm -lsndfile -lrt -lpthread -L/opt/vc/lib -lbcm_host
$(CXX) $(CXXFLAGS) -Wno-write-strings -o ../pifmrds pifmrds/rds.o pifmrds/waveforms.o pifmrds/pi_fm_rds.cpp pifmrds/fm_mpx.o pifmrds/control_pipe.o -lm -lsndfile -lrt -lpthread -L/opt/vc/lib -lrpitx
../rpitx: rpitxv1/rpitx.cpp librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -Wno-write-strings -o ../rpitx rpitxv1/rpitx.cpp $(LDFLAGS)
../rpitx: rpitxv1/rpitx.cpp
$(CXX) $(CXXFLAGS) -Wno-write-strings -o ../rpitx rpitxv1/rpitx.cpp $(LDFLAGS)
../corel8: corel8/corel8.cpp corel8/costas8.h librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -Wno-write-strings -o ../corel8 corel8/corel8.cpp $(LDFLAGS)
../corel8: corel8/corel8.cpp corel8/costas8.h
$(CXX) $(CXXFLAGS) -Wno-write-strings -o ../corel8 corel8/corel8.cpp $(LDFLAGS)
../pift8 : pift8/pift8.cpp pift8/ft8_lib/ft8/constants.cpp pift8/ft8_lib/ft8/text.cpp pift8/ft8_lib/ft8/pack.cpp pift8/ft8_lib/ft8/encode.cpp librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -Wno-write-strings -o ../pift8 pift8/pift8.cpp pift8/ft8_lib/ft8/constants.cpp pift8/ft8_lib/ft8/text.cpp pift8/ft8_lib/ft8/pack.cpp pift8/ft8_lib/ft8/encode.cpp $(LDFLAGS)
../pift8 : pift8/pift8.cpp
$(CXX) $(CXXFLAGS) -Wno-write-strings -o ../pift8 pift8/pift8.cpp -lft8 $(LDFLAGS)
../sendook: ook/sendook.cpp ook/optparse.c librpitx/src/librpitx.a
$(CCP) $(CXXFLAGS) -Wno-write-strings -o ../sendook ook/sendook.cpp ook/optparse.c $(LDFLAGS)
../sendook: ook/sendook.cpp ook/optparse.c
$(CXX) $(CXXFLAGS) -Wno-write-strings -o ../sendook ook/sendook.cpp ook/optparse.c $(LDFLAGS)
CFLAGS_Pifm = -Wall -g -O2 -Wno-unused-variable
LDFLAGS_Pifm = librpitx/src/librpitx.a -lm -lrt -lpthread -lsndfile -L/opt/vc/lib -lbcm_host
LDFLAGS_Pifm = $(LDFLAGS) -lsndfile
../pifm : ../fm/pifm.c
$(CC) $(CFLAGS_Pifm) -o ../pifm ../fm/pifm.c $(LDFLAGS_Pifm)
CFLAGS_Piam = -Wall -g -O2 -Wno-unused-variable
LDFLAGS_Piam = librpitx/src/librpitx.a -lm -lrt -lpthread -lsndfile -L/opt/vc/lib -lbcm_host
LDFLAGS_Piam = $(LDFLAGS_Pifm)
../piam : ../am/piam.c
$(CC) $(CFLAGS_Piam) -o ../piam ../am/piam.c $(LDFLAGS_Piam)
CFLAGS_Pidcf77 = -Wall -g -O2 -Wno-unused-variable
LDFLAGS_Pidcf77 = librpitx/src/librpitx.a -lm -lrt -lpthread -L/opt/vc/lib -lbcm_host
../pidcf77 : ../dcf77/pidcf77.c
$(CC) $(CFLAGS_Piam) -o ../pidcf77 ../dcf77/pidcf77.c $(LDFLAGS_Piam)
$(CC) $(CFLAGS_Piam) -o ../pidcf77 ../dcf77/pidcf77.c $(LDFLAGS)
clean:
rm -f ../dvbrf ../sendiq ../pissb ../pisstv ../pifsq ../pifm ../piam ../pidcf77 ../pichirp ../tune ../freedv ../piopera ../spectrumpaint ../pocsag ../pifmrds ../rpitx ../sendook
install: all
install -m 0755 ../pisstv /usr/bin
install -m 0755 ../foxhunt /usr/bin
install -m 0755 ../pirtty /usr/bin
install -m 0755 ../piopera /usr/bin
install -m 0755 ../pifsq /usr/bin
install -m 0755 ../pichirp /usr/bin

Wyświetl plik

@ -1,5 +1,5 @@
#include <unistd.h>
#include "../librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
#include <unistd.h>
#include "stdio.h"
#include <cstring>

Wyświetl plik

@ -14,7 +14,7 @@
#include <fcntl.h>
#include <sys/mman.h>
#include "../librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
#include "costas8.h"
float frequency=14.07e6;

Wyświetl plik

@ -1,6 +1,6 @@
#include <unistd.h>
#include "../librpitx/src/librpitx.h"
#include "stdio.h"
#include <librpitx/librpitx.h>
#include <stdio.h>
#include <cstring>
#include <signal.h>
#include <stdlib.h>

Wyświetl plik

@ -1,113 +1,87 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <cstring>
#include <errno.h>
#include <fcntl.h>
#include <math.h>
#include <signal.h>
#include <stdarg.h>
#include <stdint.h>
#include <math.h>
#include <time.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <time.h>
#include <unistd.h>
#include "../librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
int FileFreqTiming;
ngfmdmasync *fmmod;
static double GlobalTuningFrequency=00000.0;
int FifoSize=10000; //10ms
double frequencyshift=20000;
bool running=true;
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
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);
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;j<Available;j++)
{
fmmod->SetFrequencySample(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);
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; j < Available; j++) {
fmmod->SetFrequencySample(Index + j, Frequency);
NbSamples--;
}
}
fmmod=new ngfmdmasync(frequency,100000,14,FifoSize);
SendTones();
delete fmmod;
return 0;
}
}
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;
}

Wyświetl plik

@ -14,7 +14,7 @@
#include <fcntl.h>
#include <sys/mman.h>
#include "../librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
int FileVCO;
bool running=true;

Wyświetl plik

@ -40,7 +40,7 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#include "../librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
#define TONE_SPACING 8789 // ~8.7890625 Hz
#define BAUD_2 7812 // CTC value for 2 baud

Wyświetl plik

@ -13,7 +13,7 @@
#include <fcntl.h>
#include <sys/mman.h>
#include <ctype.h>
#include "../librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
#define MORSECODES 37

Wyświetl plik

@ -1,5 +1,5 @@
#include <unistd.h>
#include "../librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
#include "optparse.h"
#include <unistd.h>
#include "stdio.h"

Wyświetl plik

@ -37,7 +37,7 @@
#include "math.h"
#include <signal.h>
#include <unistd.h>
#include "../librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
bool running=true;
//#define __VCpp__ TRUE

Wyświetl plik

@ -112,7 +112,7 @@ extern "C"
#include "control_pipe.h"
}
#include "../librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
ngfmdmasync *fmmod;
// The deviation specifies how wide the signal is.

Wyświetl plik

@ -1,17 +1,15 @@
CXXFLAGS = -std=c++14 -I.
CXXFLAGS ?= -std=c++14 -I.
LDFLAGS = -lm
gen_ft8: gen_ft8.o ft8/encode.o ft8/pack.o ft8/text.o ft8/pack_77.o ft8/encode_91.o common/wave.o
$(CXX) $(LDFLAGS) -o $@ $^
pift8: pift8.o ft8/encode.o ft8/pack.o ft8/text.o ft8/pack_77.o ft8/encode_91.o common/wave.o ../librpitx/src/librpitx.a
$(CXX) $(LDFLAGS) -o $@ $^
pift8: pift8.o
$(CXX) $(LDFLAGS) -o $@ $^ -lrpitx -lft8
.PHONY: run_tests
run_tests: test
@./test
test: test.o ft8/encode.o ft8/pack.o ft8/text.o ft8/pack_77.o ft8/encode_91.o ft8/unpack.o
$(CXX) $(LDFLAGS) -o $@ $^
test: test.o
$(CXX) $(LDFLAGS) -o $@ $^ -lft8
clean :
rm pift8

Wyświetl plik

@ -10,7 +10,7 @@
#include "ft8_lib/ft8/encode.h"
#include "ft8_lib/ft8/constants.h"
#include "../librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
bool running=true;

Wyświetl plik

@ -0,0 +1,251 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <cstring>
#include <errno.h>
#include <stdarg.h>
#include <stdint.h>
#include <math.h>
#include <time.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <librpitx/librpitx.h>
#define byte uint8_t
int MARK = 2125;
int SPACE = 1955;
#define BAUDOT_SHIFT_LTRS 0x1f
#define BAUDOT_SHIFT_FIGS 0x1b
int BAUD_RATE = 22; // 45.45 baud
char BAUDOT_FIGS[] = " \r\n1234567890-\a@!&#'()\"/:;?,.";
char BAUDOT_LTRS[] = " \r\nQWERTYUIOPASDFGHJKLZXCVBNM";
uint8_t baudot[] = {0x4,0x8,0x2,0x1d,0x19,0x10,0xa,0x1,0x15,0x1c,0xc,0x3,0xd,0x18,0x14,0x12,0x16,0xb,0x5,0x1a,0x1e,0x9,0x11,0x17,0xe,0xf,0x13,0x6,0x7};
char TXTEXT[] = "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG";
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;j<Available;j++)
{
fmmod->SetFrequencySample(Index+j,Frequency);
NbSamples--;
}
}
}
}
void rtty_txbit (bool bit)
{
if(running) {
if (bit)
{
// MARK
playtone(MARK, BAUD_RATE*10000);
}
else
{
// SPACE
playtone(SPACE, BAUD_RATE*10000);
}
}
}
void rtty_txbyte (byte c)
{
rtty_txbit (0); // Start bit
// Send bits for for char MSB first
for (byte i = 5; i > 0; --i)
{
if ((c & (1 << (i-1))) != 0)
rtty_txbit(1);
else
rtty_txbit(0);
}
rtty_txbit (1); // Stop bits
rtty_txbit (1);
}
void tx(char* string)
{
char c = *string++;
byte index = 0, pos = 0;
byte shift = 0;
while (c != '\0')
{
char* index = strchr(BAUDOT_FIGS, c);
if(index != NULL) {
pos = index - BAUDOT_FIGS;
if(pos > 2 && shift != 1) {
shift = 1;
rtty_txbyte(BAUDOT_SHIFT_FIGS);
}
rtty_txbyte (baudot[pos]);
} else {
c = toupper(c);
index = strchr(BAUDOT_LTRS, c);
pos = index - BAUDOT_LTRS;
if(pos > 2 && shift != 2) {
shift = 2;
rtty_txbyte(31);
}
rtty_txbyte (baudot[pos]);
}
c = *string++;
}
}
static void SendTones()
{
double basefreq = 0;
double freq2 = 1100 + frequencyshift;
//while(running)
//{
// tone(1100);
//}
tx(TXTEXT);
}
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 > 3)
{
frequency=atof(argv[1]);
SPACE = atoi(argv[2]);
MARK = SPACE + 170;
strcpy(TXTEXT, argv[3]);
}
else
{
printf("usage : pirtty [frequency(Hz)] [Space Frequency(hz)] [text]\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;
}

Wyświetl plik

@ -33,7 +33,7 @@ Fork and modification for rpitx (c)(F5OEO 2018)
#include <strings.h>
#include <time.h>
#include <unistd.h>
#include "../librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
#define PROGRAM_VERSION "0.3"
//Check out main() at the bottom of the file

Wyświetl plik

@ -20,8 +20,8 @@
Helped by a code fragment by PE1NNZ (http://pe1nnz.nl.eu.org/2013/05/direct-ssb-generation-on-pll.html)
*/
#include <unistd.h>
#include "../librpitx/src/librpitx.h"
#include "stdio.h"
#include <librpitx/librpitx.h>
#include <stdio.h>
#include <stdarg.h> /* va_list, va_start, va_arg, va_end */
#include <cstring>
#include <signal.h>

Wyświetl plik

@ -1,5 +1,5 @@
#include <unistd.h>
#include "librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
#include "stdio.h"
#include <cstring>
#include <signal.h>

Wyświetl plik

@ -14,7 +14,7 @@
#include <fcntl.h>
#include <sys/mman.h>
#include "../librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
int FilePicture;
int FileFreqTiming;

Wyświetl plik

@ -15,7 +15,7 @@
#include <sys/mman.h>
#include "../librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
int FilePicture;
int FileFreqTiming;

Wyświetl plik

@ -1,5 +1,5 @@
#include <unistd.h>
#include "librpitx/src/librpitx.h"
#include <librpitx/librpitx.h>
#include "stdio.h"
#include <cstring>
#include <signal.h>

2
testrtty.sh 100755
Wyświetl plik

@ -0,0 +1,2 @@
#!/bin/bash
sudo ./pirtty "$1" 1000 "the quick brown fox jumps over the lazy dog"