From 91a6aa6933606be82cf22e833b0b31ddb5bb25b4 Mon Sep 17 00:00:00 2001 From: IgrikXD Date: Mon, 1 Feb 2021 18:43:33 +0300 Subject: [PATCH] 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