Skip to content

Commit

Permalink
receiver voting in monitor (-s command line option)
Browse files Browse the repository at this point in the history
Monitor shows frequency, mode and SNR, extracted from radiod output status beacons
Caller now allocates input and output filter structures
  • Loading branch information
ka9q committed Apr 4, 2024
1 parent 85ea829 commit 19e7c3d
Show file tree
Hide file tree
Showing 27 changed files with 819 additions and 593 deletions.
8 changes: 3 additions & 5 deletions Makefile.debug
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ LOGROTATE_FILES = aprsfeed.rotate ft8.rotate ft4.rotate wspr.rotate

BLACKLIST=airspy-blacklist.conf

CFILES = airspy.c airspyhf.c aprs.c aprsfeed.c attr.c audio.c avahi.c avahi_browse.c ax25.c bandplan.c config.c control.c cwd.c decimate.c dump.c ezusb.c fcd.c filter.c fm.c funcube.c hid-libusb.c iir.c jt-decoded.c linear.c main.c metadump.c misc.c modes.c monitor.c morse.c multicast.c opusd.c opussend.c osc.c packetd.c pcmcat.c pcmrecord.c pcmsend.c pcmspawn.c pl.c powers.c radio.c radio_status.c rdsd.c rtcp.c rtlsdr.c rx888.c setfilt.c show-pkt.c show-sig.c sig_gen.c spectrum.c status.c stereod.c tune.c wd-record.c wfm.c
CFILES = airspy.c airspyhf.c aprs.c aprsfeed.c attr.c audio.c avahi.c avahi_browse.c ax25.c bandplan.c config.c control.c cwd.c decimate.c decode_status.c dump.c ezusb.c fcd.c filter.c fm.c funcube.c hid-libusb.c iir.c jt-decoded.c linear.c main.c metadump.c misc.c modes.c monitor.c morse.c multicast.c opusd.c opussend.c osc.c packetd.c pcmcat.c pcmrecord.c pcmsend.c pcmspawn.c pl.c powers.c radio.c radio_status.c rdsd.c rtcp.c rtlsdr.c rx888.c setfilt.c show-pkt.c show-sig.c sig_gen.c spectrum.c status.c stereod.c tune.c wd-record.c wfm.c

HFILES = attr.h ax25.h bandplan.h conf.h config.h decimate.h ezusb.h fcd.h fcdhidcmd.h filter.h hidapi.h iir.h misc.h morse.h multicast.h osc.h radio.h rx888.h status.h

Expand All @@ -47,8 +47,6 @@ install: $(DAEMONS) $(EXECS)
(cd rules;rsync -a . /etc/udev/rules.d)
(cd aux;rsync -a $(BLACKLIST) /etc/modprobe.d)
(cd aux;rsync -a $(LOGROTATE_FILES) /etc/logrotate.d;chown root:root /etc/logrotate.d/*)
# Don't overwrite existing configs that might have been modified locally. Run this manually without the '--ignore-existing' if you want to overwrite them all
(cd config;rsync --ignore-existing -a . /etc/radio)
mkdir -p /etc/fftw /etc/radio $(VARDIR)
chgrp radio $(VARDIR) /etc/radio /etc/fftw
chmod g+ws $(VARDIR) /etc/radio /etc/fftw
Expand Down Expand Up @@ -77,7 +75,7 @@ aprs: aprs.o ax25.o libradio.a
aprsfeed: aprsfeed.o ax25.o libradio.a
$(CC) $(LDOPTS) -o $@ $^ -lbsd -lm -lpthread

control: control.o modes.o bandplan.o libradio.a
control: control.o decode_status.o modes.o bandplan.o libradio.a
$(CC) $(LDOPTS) -o $@ $^ -lavahi-client -lavahi-common -lfftw3f_threads -lfftw3f -lncursesw -liniparser -lbsd -lm -lpthread

cwd: cwd.o morse.o libradio.a
Expand All @@ -98,7 +96,7 @@ show-sig: show-sig.o libradio.a
metadump: metadump.o dump.o libradio.a
$(CC) $(LDOPTS) -o $@ $^ -lbsd -lm -lpthread

monitor: monitor.o morse.o config.o libradio.a
monitor: monitor.o decode_status.o morse.o config.o libradio.a
$(CC) $(LDOPTS) -o $@ $^ -lopus -lportaudio -lasound -lncursesw -liniparser -lbsd -lm -lpthread

opusd: opusd.o libradio.a
Expand Down
6 changes: 3 additions & 3 deletions Makefile.linux
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ LOGROTATE_FILES = aprsfeed.rotate ft8.rotate ft4.rotate wspr.rotate

BLACKLIST=airspy-blacklist.conf

CFILES = airspy.c airspyhf.c aprs.c aprsfeed.c attr.c audio.c avahi.c avahi_browse.c ax25.c bandplan.c config.c control.c cwd.c decimate.c dump.c ezusb.c fcd.c filter.c fm.c funcube.c hid-libusb.c iir.c jt-decoded.c linear.c main.c metadump.c misc.c modes.c monitor.c morse.c multicast.c opusd.c opussend.c osc.c packetd.c pcmcat.c pcmrecord.c pcmsend.c pcmspawn.c pl.c powers.c radio.c radio_status.c rdsd.c rtcp.c rtlsdr.c rx888.c setfilt.c show-pkt.c show-sig.c sig_gen.c spectrum.c status.c stereod.c tune.c wd-record.c wfm.c
CFILES = airspy.c airspyhf.c aprs.c aprsfeed.c attr.c audio.c avahi.c avahi_browse.c ax25.c bandplan.c config.c control.c cwd.c decimate.c decode_status.c dump.c ezusb.c fcd.c filter.c fm.c funcube.c hid-libusb.c iir.c jt-decoded.c linear.c main.c metadump.c misc.c modes.c monitor.c morse.c multicast.c opusd.c opussend.c osc.c packetd.c pcmcat.c pcmrecord.c pcmsend.c pcmspawn.c pl.c powers.c radio.c radio_status.c rdsd.c rtcp.c rtlsdr.c rx888.c setfilt.c show-pkt.c show-sig.c sig_gen.c spectrum.c status.c stereod.c tune.c wd-record.c wfm.c

HFILES = attr.h ax25.h bandplan.h conf.h config.h decimate.h ezusb.h fcd.h fcdhidcmd.h filter.h hidapi.h iir.h misc.h morse.h multicast.h osc.h radio.h rx888.h status.h

Expand Down Expand Up @@ -75,7 +75,7 @@ aprs: aprs.o ax25.o libradio.a
aprsfeed: aprsfeed.o ax25.o libradio.a
$(CC) $(LDOPTS) -o $@ $^ -lbsd -lm -lpthread

control: control.o modes.o bandplan.o libradio.a
control: control.o decode_status.o modes.o bandplan.o libradio.a
$(CC) $(LDOPTS) -o $@ $^ -lavahi-client -lavahi-common -lfftw3f_threads -lfftw3f -lncursesw -liniparser -lbsd -lm -lpthread

cwd: cwd.o morse.o libradio.a
Expand All @@ -96,7 +96,7 @@ show-sig: show-sig.o libradio.a
metadump: metadump.o dump.o libradio.a
$(CC) $(LDOPTS) -o $@ $^ -lbsd -lm -lpthread

monitor: monitor.o morse.o config.o libradio.a
monitor: monitor.o decode_status.o morse.o config.o libradio.a
$(CC) $(LDOPTS) -o $@ $^ -lopus -lportaudio -lasound -lncursesw -liniparser -lbsd -lm -lpthread

opusd: opusd.o libradio.a
Expand Down
6 changes: 3 additions & 3 deletions Makefile.osx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ LIBDIR=/usr/local/share/ka9q-radio
LD_FLAGS=-lpthread -lm
EXECS=aprs aprsfeed cwd jt-decoded monitor opusd opussend packetd pcmrecord pcmsend pcmcat radiod control metadump pl show-pkt show-sig stereod rdsd tune powers wd-record pcmspawn setfilt powers

CFILES = airspy.c airspyhf.c aprs.c aprsfeed.c attr.c audio.c avahi.c avahi_browse.c ax25.c bandplan.c config.c control.c cwd.c decimate.c dump.c ezusb.c fcd.c filter.c fm.c funcube.c hid-libusb.c iir.c jt-decoded.c linear.c main.c metadump.c misc.c modes.c monitor.c morse.c multicast.c opusd.c opussend.c osc.c packetd.c pcmcat.c pcmrecord.c pcmsend.c pcmspawn.c pl.c powers.c radio.c radio_status.c rdsd.c rtcp.c rtlsdr.c rx888.c setfilt.c show-pkt.c show-sig.c sig_gen.c spectrum.c status.c stereod.c tune.c wd-record.c wfm.c
CFILES = airspy.c airspyhf.c aprs.c aprsfeed.c attr.c audio.c avahi.c avahi_browse.c ax25.c bandplan.c config.c control.c cwd.c decimate.c decode_status.c dump.c ezusb.c fcd.c filter.c fm.c funcube.c hid-libusb.c iir.c jt-decoded.c linear.c main.c metadump.c misc.c modes.c monitor.c morse.c multicast.c opusd.c opussend.c osc.c packetd.c pcmcat.c pcmrecord.c pcmsend.c pcmspawn.c pl.c powers.c radio.c radio_status.c rdsd.c rtcp.c rtlsdr.c rx888.c setfilt.c show-pkt.c show-sig.c sig_gen.c spectrum.c status.c stereod.c tune.c wd-record.c wfm.c

HFILES = attr.h ax25.h bandplan.h conf.h config.h decimate.h ezusb.h fcd.h fcdhidcmd.h filter.h hidapi.h iir.h misc.h morse.h multicast.h osc.h radio.h rx888.h status.h

Expand Down Expand Up @@ -41,7 +41,7 @@ aprs: aprs.o libradio.a
aprsfeed: aprsfeed.o libradio.a
$(CC) -g -o $@ $^ -lm -lpthread

control: control.o modes.o bandplan.o libradio.a
control: control.o modes.o bandplan.o decode_status.o libradio.a
$(CC) -g -o $@ $^ -lavahi-client -lavahi-common -lfftw3f_threads -lfftw3f -lncurses -liniparser -lm -lpthread

cwd: cwd.o morse.o libradio.a
Expand All @@ -55,7 +55,7 @@ metadump: metadump.o dump.o libradio.a

# should be setuid root to enable renicing to better priority, but this makes me uncomfortable
# macos doesn't have Linux-style capabilities to enable specific root-like privileges
monitor: monitor.o morse.o libradio.a
monitor: monitor.o decode_status.o morse.o libradio.a
$(CC) -g -o $@ $^ -lopus -lportaudio -lfftw3f_threads -lfftw3f -lncurses -liniparser -lm -lpthread

opusd: opusd.o libradio.a
Expand Down
4 changes: 2 additions & 2 deletions airspy.c
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ static int rx_callback(airspy_transfer *transfer){
}
assert(transfer->sample_type == AIRSPY_SAMPLE_RAW);
int const sampcount = transfer->sample_count;
float * wptr = frontend->in->input_write_pointer.r;
float * wptr = frontend->in.input_write_pointer.r;
uint32_t const *up = (uint32_t *)transfer->samples;
assert(wptr != NULL);
assert(up != NULL);
Expand Down Expand Up @@ -339,7 +339,7 @@ static int rx_callback(airspy_transfer *transfer){
}
frontend->samples += sampcount;
frontend->timestamp = gps_time_ns();
write_rfilter(frontend->in,NULL,sampcount); // Update write pointer, invoke FFT
write_rfilter(&frontend->in,NULL,sampcount); // Update write pointer, invoke FFT
frontend->if_power_instant = (float)in_energy / sampcount;
frontend->if_power = Power_smooth * (frontend->if_power_instant - frontend->if_power);
if(sdr->software_agc){
Expand Down
4 changes: 2 additions & 2 deletions airspyhf.c
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ static int rx_callback(airspyhf_transfer_t *transfer){
fprintf(stdout,"dropped %'lld\n",(long long)transfer->dropped_samples);
}
int const sampcount = transfer->sample_count;
float complex * const wptr = frontend->in->input_write_pointer.c;
float complex * const wptr = frontend->in.input_write_pointer.c;
float complex * const up = (float complex *)transfer->samples;
assert(wptr != NULL);
assert(up != NULL);
Expand All @@ -244,7 +244,7 @@ static int rx_callback(airspyhf_transfer_t *transfer){
}
frontend->samples += sampcount;
frontend->timestamp = gps_time_ns();
write_cfilter(frontend->in,NULL,sampcount); // Update write pointer, invoke FFT
write_cfilter(&frontend->in,NULL,sampcount); // Update write pointer, invoke FFT
frontend->if_power_instant = in_energy / sampcount;
frontend->if_power += Power_smooth * (frontend->if_power_instant - frontend->if_power);
return 0;
Expand Down

0 comments on commit 19e7c3d

Please sign in to comment.