From 1c4b4a3bf66b9bf57607731b88edd04e5f41195a Mon Sep 17 00:00:00 2001 From: IgrikXD Date: Mon, 1 Feb 2021 18:42:31 +0300 Subject: [PATCH 1/4] Structuring sample files --- .../VCO800XA.rf => resources/SAMPLE_FREEDV.rf} | 0 BBC.jpg => src/resources/SAMPLE_IMAGE.jpg | Bin .../resources/SAMPLE_MONO_AUDIO.wav | Bin .../SAMPLE_STEREO_AUDIO.wav} | Bin 4 files changed, 0 insertions(+), 0 deletions(-) rename src/{freedv/VCO800XA.rf => resources/SAMPLE_FREEDV.rf} (100%) rename BBC.jpg => src/resources/SAMPLE_IMAGE.jpg (100%) rename sampleaudio.wav => src/resources/SAMPLE_MONO_AUDIO.wav (100%) rename src/{pifmrds/stereo_44100.wav => resources/SAMPLE_STEREO_AUDIO.wav} (100%) diff --git a/src/freedv/VCO800XA.rf b/src/resources/SAMPLE_FREEDV.rf similarity index 100% rename from src/freedv/VCO800XA.rf rename to src/resources/SAMPLE_FREEDV.rf diff --git a/BBC.jpg b/src/resources/SAMPLE_IMAGE.jpg similarity index 100% rename from BBC.jpg rename to src/resources/SAMPLE_IMAGE.jpg diff --git a/sampleaudio.wav b/src/resources/SAMPLE_MONO_AUDIO.wav similarity index 100% rename from sampleaudio.wav rename to src/resources/SAMPLE_MONO_AUDIO.wav diff --git a/src/pifmrds/stereo_44100.wav b/src/resources/SAMPLE_STEREO_AUDIO.wav similarity index 100% rename from src/pifmrds/stereo_44100.wav rename to src/resources/SAMPLE_STEREO_AUDIO.wav From 91a6aa6933606be82cf22e833b0b31ddb5bb25b4 Mon Sep 17 00:00:00 2001 From: IgrikXD Date: Mon, 1 Feb 2021 18:43:33 +0300 Subject: [PATCH 2/4] Update UI functionality --- easytest.sh | 200 ++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 162 insertions(+), 38 deletions(-) diff --git a/easytest.sh b/easytest.sh index f77507a..396204a 100755 --- a/easytest.sh +++ b/easytest.sh @@ -1,13 +1,78 @@ #!/bin/sh +abort_action=0 -status="0" OUTPUT_FREQ=434.0 +DEFAUL_JPG_PICTURE_LOC=src/resources/SAMPLE_IMAGE.jpg +DEFAULT_WAV_FILE_MONO_LOC=src/resources/SAMPLE_MONO_AUDIO.wav +DEFAULT_WAV_FILE_STEREO_LOC=src/resources/SAMPLE_STEREO_AUDIO.wav +DEFAULT_RF_FREEDV_FILE_LOC=src/resources/SAMPLE_FREEDV.rf +DEFAULT_POCSAG_MESSAGE="1:YOURCALL\n2: Hello world" +DEFAULT_OPERA_CALLSIGN="F5OEO" +DEFAULT_RTTY_MESSAGE="HELLO WORLD FROM RPITX" LAST_ITEM="0 Tune" + +do_check_file_existance() +{ + + readlink -e $1 > /dev/null + if [ $? -eq 1 ]; then + whiptail --title "Error!" --msgbox "The file does not exist!" 8 78 + return 1 + fi + return 0 + +} + do_freq_setup() { -if FREQ=$(whiptail --inputbox "Choose output Frequency (in MHz) Default is 434 MHz" 8 78 $OUTPUT_FREQ --title "Rpitx transmit Frequency" 3>&1 1>&2 2>&3); then - OUTPUT_FREQ=$FREQ +if FREQ=$(whiptail --inputbox "Enter output Frequency (in MHz). Current is $OUTPUT_FREQ MHz" 8 78 $OUTPUT_FREQ --title "Rpitx transmit Frequency" 3>&1 1>&2 2>&3); then + OUTPUT_FREQ=$FREQ +fi + +} + +do_file_choose() +{ + +LAST_ITEM="$menuchoice" +if FILE_LOC=$(whiptail --inputbox "Enter $1 file location. Default is $2" 8 78 $2 --title "Select a file to transmit" 3>&1 1>&2 2>&3); then + do_check_file_existance "$FILE_LOC" + abort_action=$? +else + abort_action=1 +fi + +} + +do_enter_message() +{ + +LAST_ITEM="$menuchoice" +if MESSAGE=$(whiptail --inputbox "Type custom $1 message:" 8 78 "$2" --title "Enter message to transmit" 3>&1 1>&2 2>&3); then + abort_action=0 + if [ -z "$MESSAGE" ]; then + whiptail --title "Error!" --msgbox "Empty message!" 8 78 + abort_action=1 + fi +else + abort_action=1 +fi + +} + +do_enter_callsign() +{ + +LAST_ITEM="$menuchoice" +if CALLSIGN=$(whiptail --inputbox "Type callsign:" 8 78 "$DEFAULT_OPERA_CALLSIGN" --title "Enter callsign to transmit" 3>&1 1>&2 2>&3); then + abort_action=0 + if [ -z "$CALLSIGN" ]; then + whiptail --title "Error!" --msgbox "Empty callsign!" 8 78 + abort_action=1 + fi +else + abort_action=1 fi } @@ -33,7 +98,7 @@ do_stop_transmit() 1\ *) sudo killall testvfo.sh >/dev/null 2>/dev/null ;; 2\ *) sudo killall testspectrum.sh >/dev/null 2>/dev/null ;; 3\ *) sudo killall snap2spectrum.sh >/dev/null 2>/dev/null ;; - 4\ *) sudo killall testfmrds.sh >/dev/null 2>/dev/null ;; + 4\ *) sudo killall testfmrds.sh >/dev/null 2>/dev/null ;; 5\ *) sudo killall testnfm.sh >/dev/null 2>/dev/null ;; 6\ *) sudo killall testssb.sh >/dev/null 2>/dev/null ;; 7\ *) sudo killall testam.sh >/dev/null 2>/dev/null ;; @@ -48,18 +113,21 @@ do_stop_transmit() do_status() { - LAST_ITEM="$menuchoice" + LAST_ITEM="$menuchoice" whiptail --title "Transmit ""$LAST_ITEM"" on ""$OUTPUT_FREQ"" MHz" --msgbox "Transmitting" 8 78 do_stop_transmit } +#******************************** +# User interface initialization * +#******************************** do_freq_setup - while [ "$status" -eq 0 ] + while [ true ] do - menuchoice=$(whiptail --default-item "$LAST_ITEM" --title "Rpitx on ""$OUTPUT_FREQ"" MHz" --menu "Range frequency : 50kHz-1GHz. Choose your test" 20 82 12 \ + menuchoice=$(whiptail --default-item "$LAST_ITEM" --title "Rpitx on ""$OUTPUT_FREQ"" MHz" --menu "Range frequency : 50kHz-1GHz. Choose your test:" 20 82 12 \ "F Set frequency" "Modify frequency (actual $OUTPUT_FREQ MHz)" \ "0 Tune" "Carrier" \ "1 Chirp" "Moving carrier" \ @@ -77,43 +145,99 @@ do_freq_setup 3>&2 2>&1 1>&3) RET=$? if [ $RET -eq 1 ]; then + whiptail --title "Bye bye" --msgbox "Thx for using rpitx" 8 78 exit 0 elif [ $RET -eq 0 ]; then case "$menuchoice" in - F\ *) do_freq_setup ;; - 0\ *) "./testvfo.sh" "$OUTPUT_FREQ""e6" >/dev/null 2>/dev/null & - do_status;; - 1\ *) "./testchirp.sh" "$OUTPUT_FREQ""e6" >/dev/null 2>/dev/null & - do_status;; - 2\ *) "./testspectrum.sh" "$OUTPUT_FREQ""e6" >/dev/null 2>/dev/null & - do_status;; - 3\ *) "./snap2spectrum.sh" "$OUTPUT_FREQ""e6" >/dev/null 2>/dev/null & - do_status;; - 4\ *) "./testfmrds.sh" "$OUTPUT_FREQ" >/dev/null 2>/dev/null & - do_status;; - 5\ *) "./testnfm.sh" "$OUTPUT_FREQ""e3" >/dev/null 2>/dev/null & - do_status;; - 6\ *) "./testssb.sh" "$OUTPUT_FREQ""e6" >/dev/null 2>/dev/null & - do_status;; - 7\ *) "./testam.sh" "$OUTPUT_FREQ""e3" >/dev/null 2>/dev/null & - do_status;; - 8\ *) "./testfreedv.sh" "$OUTPUT_FREQ""e6" >/dev/null 2>/dev/null & - do_status;; - 9\ *) "./testsstv.sh" "$OUTPUT_FREQ""e6">/dev/null 2>/dev/null & - do_status;; - 10\ *) "./testpocsag.sh" "$OUTPUT_FREQ""e6">/dev/null 2>/dev/null & - 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 + + F\ *) do_freq_setup ;; + + 0\ *) "./testvfo.sh" "$OUTPUT_FREQ""e6" >/dev/null 2>/dev/null & + do_status + ;; + + 1\ *) "./testchirp.sh" "$OUTPUT_FREQ""e6" >/dev/null 2>/dev/null & + do_status + ;; + + 2\ *) do_file_choose "320x256 .jpg" "$DEFAUL_JPG_PICTURE_LOC" + if [ $abort_action -eq 0 ]; then + "./testspectrum.sh" "$OUTPUT_FREQ""e6" "$FILE_LOC" >/dev/null 2>/dev/null & + do_status + fi + ;; + + 3\ *) "./snap2spectrum.sh" "$OUTPUT_FREQ""e6" >/dev/null 2>/dev/null & + do_status + ;; + + 4\ *) do_file_choose ".wav" "$DEFAULT_WAV_FILE_STEREO_LOC" + if [ $abort_action -eq 0 ]; then + "./testfmrds.sh" "$OUTPUT_FREQ" "$FILE_LOC" >/dev/null 2>/dev/null & + do_status + fi + ;; + + 5\ *) do_file_choose ".wav (16 bit per sample, 48000 sample rate, mono)" "$DEFAULT_WAV_FILE_MONO_LOC" + if [ $abort_action -eq 0 ]; then + "./testnfm.sh" "$OUTPUT_FREQ""e3" "$FILE_LOC" >/dev/null 2>/dev/null & + do_status + fi + ;; + + 6\ *) do_file_choose ".wav (16 bit per sample, 48000 sample rate, mono)" "$DEFAULT_WAV_FILE_MONO_LOC" + if [ $abort_action -eq 0 ]; then + "./testssb.sh" "$OUTPUT_FREQ""e6" "$FILE_LOC" >/dev/null 2>/dev/null & + do_status + fi + ;; + + 7\ *) do_file_choose ".wav (16 bit per sample, 48000 sample rate, mono)" "$DEFAULT_WAV_FILE_MONO_LOC" + if [ $abort_action -eq 0 ]; then + "./testam.sh" "$OUTPUT_FREQ""e3" "$FILE_LOC" >/dev/null 2>/dev/null & + do_status + fi + ;; + + 8\ *) do_file_choose "FreeDV .rf" "$DEFAULT_RF_FREEDV_FILE_LOC" + if [ $abort_action -eq 0 ]; then + "./testfreedv.sh" "$OUTPUT_FREQ""e6" "$FILE_LOC" >/dev/null 2>/dev/null & + do_status + fi + ;; + + 9\ *) do_file_choose "320x256 .jpg" "$DEFAUL_JPG_PICTURE_LOC" + if [ $abort_action -eq 0 ]; then + "./testsstv.sh" "$OUTPUT_FREQ""e6" "$FILE_LOC" >/dev/null 2>/dev/null & + do_status + fi + ;; + + 10\ *) do_enter_message "POCSAG (ADDR:MESSAGE_BODY)" "$DEFAULT_POCSAG_MESSAGE" + if [ $abort_action -eq 0 ]; then + "./testpocsag.sh" "$OUTPUT_FREQ""e6" "$MESSAGE" >/dev/null 2>/dev/null & + do_status + fi + ;; + + 11\ *) do_enter_callsign + if [ $abort_action -eq 0 ]; then + "./testopera.sh" "$OUTPUT_FREQ""e6" "$CALLSIGN" >/dev/null 2>/dev/null & + do_status + fi + ;; + + 12\ *) do_enter_message "RTTY" "$DEFAULT_RTTY_MESSAGE" + if [ $abort_action -eq 0 ]; then + "./testrtty.sh" "$OUTPUT_FREQ""e6" "$MESSAGE" >/dev/null 2>/dev/null & + do_status + fi + ;; + esac else exit 1 fi done - exit 0 - + exit 0 \ No newline at end of file From fd710a24cb067d72cf128ecae9391d3db458614e Mon Sep 17 00:00:00 2001 From: IgrikXD Date: Mon, 1 Feb 2021 18:44:36 +0300 Subject: [PATCH 3/4] Adding the ability to work with new arguments --- testam.sh | 2 +- testfmrds.sh | 2 +- testfreedv.sh | 2 +- testnfm.sh | 2 +- testopera.sh | 2 +- testpocsag.sh | 2 +- testrtty.sh | 2 +- testspectrum.sh | 2 +- testssb.sh | 2 +- testsstv.sh | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/testam.sh b/testam.sh index efa8f99..539f01a 100755 --- a/testam.sh +++ b/testam.sh @@ -2,6 +2,6 @@ #TODO using the AM mode from librpitx echo Need to implement -(while true; do cat sampleaudio.wav; done) | csdr convert_i16_f \ +(while true; do "$2"; done) | csdr convert_i16_f \ | csdr gain_ff 4.0 | csdr dsb_fc \ | sudo ./rpitx -i - -m IQFLOAT -f "$1" -s 48000 diff --git a/testfmrds.sh b/testfmrds.sh index 8a74c73..0eccc8d 100755 --- a/testfmrds.sh +++ b/testfmrds.sh @@ -1,3 +1,3 @@ #!/bin/sh -sudo ./pifmrds -freq "$1" -audio src/pifmrds/stereo_44100.wav +sudo ./pifmrds -freq "$1" -audio "$2" diff --git a/testfreedv.sh b/testfreedv.sh index 3e4320d..f204e37 100755 --- a/testfreedv.sh +++ b/testfreedv.sh @@ -1,3 +1,3 @@ #!/bin/sh -sudo ./freedv src/freedv/VCO800XA.rf "$1" 400 +sudo ./freedv "$2" "$1" 400 diff --git a/testnfm.sh b/testnfm.sh index 8c1a2aa..15f0996 100755 --- a/testnfm.sh +++ b/testnfm.sh @@ -4,7 +4,7 @@ # Need to use a direct FM modulation with librpitx and not using IQ : TODO echo "If you need to test broadcast FM, use PiFMRDS" #(while true; do cat sampleaudio.wav; done) | csdr convert_i16_f | csdr gain_ff 2500 | sudo ./sendiq -i /dev/stdin -s 24000 -f 434e6 -t float 1 -(while true; do cat sampleaudio.wav; done) | csdr convert_i16_f \ +(while true; do cat "$2"; done) | csdr convert_i16_f \ | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 \ | sudo ./rpitx -i- -m RF -f "$1" diff --git a/testopera.sh b/testopera.sh index 57e2915..5fe2462 100755 --- a/testopera.sh +++ b/testopera.sh @@ -1,5 +1,5 @@ #!/bin/sh -sudo ./piopera F5OEO 0.5 "$1" +sudo ./piopera "$2" 0.5 "$1" diff --git a/testpocsag.sh b/testpocsag.sh index 4639c7b..8c083b9 100755 --- a/testpocsag.sh +++ b/testpocsag.sh @@ -1,3 +1,3 @@ #!/bin/sh -printf "1:YOURCALL\n2: Hello world" | sudo ./pocsag -f "$1" +printf "$2" | sudo ./pocsag -f "$1" diff --git a/testrtty.sh b/testrtty.sh index ed8dfd2..eab7b95 100755 --- a/testrtty.sh +++ b/testrtty.sh @@ -1,2 +1,2 @@ #!/bin/bash -sudo ./pirtty "$1" 1000 "the quick brown fox jumps over the lazy dog" +sudo ./pirtty "$1" 1000 "$2" diff --git a/testspectrum.sh b/testspectrum.sh index 5178284..8e24fe1 100755 --- a/testspectrum.sh +++ b/testspectrum.sh @@ -1,5 +1,5 @@ #!/bin/sh -convert BBC.jpg -flip -quantize YUV -dither FloydSteinberg -colors 4 \ +convert "$2" -flip -quantize YUV -dither FloydSteinberg -colors 4 \ -interlace partition picture.yuv sudo ./spectrumpaint picture.Y "$1" 100000 diff --git a/testssb.sh b/testssb.sh index 99acb0c..cae1c1b 100755 --- a/testssb.sh +++ b/testssb.sh @@ -1,6 +1,6 @@ #!/bin/sh -(while true; do cat sampleaudio.wav; done) | csdr convert_i16_f \ +(while true; do cat "$2"; done) | csdr convert_i16_f \ | csdr fir_interpolate_cc 2 | csdr dsb_fc \ | csdr bandpass_fir_fft_cc 0.002 0.06 0.01 | csdr fastagc_ff \ | sudo ./sendiq -i /dev/stdin -s 96000 -f "$1" -t float diff --git a/testsstv.sh b/testsstv.sh index 22f48e6..c1de579 100755 --- a/testsstv.sh +++ b/testsstv.sh @@ -1,4 +1,4 @@ #!/bin/sh -convert -depth 8 BBC.jpg picture.rgb +convert -depth 8 "$2" picture.rgb sudo ./pisstv picture.rgb "$1" From e41872619014207098007cf643741e7ff6c87de0 Mon Sep 17 00:00:00 2001 From: IgrikXD Date: Mon, 1 Feb 2021 19:26:12 +0300 Subject: [PATCH 4/4] Adding a missing command --- testam.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testam.sh b/testam.sh index 539f01a..1206ea3 100755 --- a/testam.sh +++ b/testam.sh @@ -2,6 +2,6 @@ #TODO using the AM mode from librpitx echo Need to implement -(while true; do "$2"; done) | csdr convert_i16_f \ +(while true; do cat "$2"; done) | csdr convert_i16_f \ | csdr gain_ff 4.0 | csdr dsb_fc \ | sudo ./rpitx -i - -m IQFLOAT -f "$1" -s 48000