diff --git a/ardop_pat_gui.desktop b/ardop_pat_gui.desktop new file mode 100644 index 0000000..c9373b7 --- /dev/null +++ b/ardop_pat_gui.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=ARDOP TNC and pat GUI +GenericName=ARDOP TNC and pat GUI +Comment=Configure and monitor ARDOP TNC and pat +Exec=sh -c /usr/local/bin/ardop_pat_gui.sh +Icon=/usr/share/pixmaps/CQ.png +Terminal=false +Type=Application +Categories=HamRadio; +Comment[en_US]=ARDOP TNC and pat GUI diff --git a/ardop_pat_gui.sh b/ardop_pat_gui.sh index f459d93..4abb880 100755 --- a/ardop_pat_gui.sh +++ b/ardop_pat_gui.sh @@ -16,7 +16,7 @@ #% #================================================================ #- IMPLEMENTATION -#- version ${SCRIPT_NAME} 1.0.0 +#- version ${SCRIPT_NAME} 1.0.1 #- author Steve Magnuson, AG7GN #- license CC-BY-SA Creative Commons License #- script_id 0 @@ -108,7 +108,7 @@ function setARDOPpatDefaults () { function loadSettings () { - PTTs="GPIO 12!GPIO 23!RIG 2 localhost:4532" + PTTs="GPIO 12!GPIO 23!rig control via pat" ARDOP_CONFIG="$TMPDIR/ardop.conf" if [ -s "$CONFIG_FILE" ] @@ -396,9 +396,16 @@ do then echo -e "Configure ARDOP and pat in the \"Configure ARDOP\" and \"Configure pat\" tabs,\nthen click \"Save Settings...\" button below." >&8 else # Not a first run. pat and ARDOP configured so start 'em + # Check what PTT was selected + if [[ ${F[_PTT_]} =~ GPIO ]] + then # Let piardopc control PTT gia GPIO + ARDOP_PTT="-p $(echo "${F[_PTT_]}" | tr ' ' '=')" + else # Let pat control PTT via rigctl + ARDOP_PTT="" + fi # Start piardopc - echo "Launching $ARDOP ${F[_ARDOPPORT_]} ${F[_ADEVICE_CAPTURE_]} ${F[_ADEVICE_PLAY_]} -p "$(echo "${F[_PTT_]}" | tr ' ' '=')"" >&8 - $ARDOP ${F[_ARDOPPORT_]} ${F[_ADEVICE_CAPTURE_]} ${F[_ADEVICE_PLAY_]} -p "$(echo "${F[_PTT_]}" | tr ' ' '=')" >&8 2>&8 & + echo "Launching $ARDOP ${F[_ARDOPPORT_]} ${F[_ADEVICE_CAPTURE_]} ${F[_ADEVICE_PLAY_]} $ARDOP_PTT" >&8 + $ARDOP ${F[_ARDOPPORT_]} ${F[_ADEVICE_CAPTURE_]} ${F[_ADEVICE_PLAY_]} $ARDOP_PTT >&8 2>&8 & ardop_PID=$! echo -e "\n\nARDOP has started. PID=$ardop_PID" >&8 @@ -452,7 +459,7 @@ Click the Save Settings... button below after you make your changes.\n\n" --field="Web Service Port":NUM "$PAT_HTTP_PORT!8040..8049!1!" \ --field="Telnet Service Port":NUM "$PAT_TELNET_PORT!8770..8779!1!" \ --field="Forced ARQ Bandwidth":CHK "$PAT_ARQ_BW_FORCED" \ - --field="Max ARQ Bandwidth":NUM "$PAT_ARQ_BW_MAX!50..1000!50!" \ + --field="Max ARQ Bandwidth":NUM "$PAT_ARQ_BW_MAX!50..2000!50!" \ --field="Beacon Interval (minutes)":NUM "$PAT_BEACON_INTERVAL!0..120!1!" \ --field="Enable CW ID":CHK "$PAT_CW_ID" \ --field="Start pat web service when ARDOP starts":CHK "$PAT_START_HTTP" \ @@ -550,6 +557,10 @@ EOF --argjson D ${PAT_CW_ID,,} \ '.mycall = $C | .secure_login_password = $P | .http_addr = $H | .telnet.listen_addr = $T | .locator = $L | .ardop.addr = $R | .ardop.arq_bandwidth.Max = $B | .ardop.beacon_interval = $I | .ardop.arq_bandwidth.Forced = $F | .ardop.cwid_enabled = $D' | sponge $PAT_CONFIG + # Did ARDOP config request rigctl for PTT? If so let pat handle it via rigctl + [[ ${F[_PTT_]} =~ GPIO ]] && PAT_PTT=false || PAT_PTT=true + cat $PAT_CONFIG | jq --argjson P $PAT_PTT '.ardop.ptt_ctrl = $P' | sponge $PAT_CONFIG + # Update the yad configuration file. echo "declare -gA F" > "$CONFIG_FILE" for J in "${!F[@]}" diff --git a/edit_pat_aliases.sh b/edit_pat_aliases.sh index 28bc57c..9c5b94f 100755 --- a/edit_pat_aliases.sh +++ b/edit_pat_aliases.sh @@ -18,7 +18,7 @@ #% #================================================================ #- IMPLEMENTATION -#- version ${SCRIPT_NAME} 1.4.1 +#- version ${SCRIPT_NAME} 1.4.2 #- author Steve Magnuson, AG7GN #- license CC-BY-SA Creative Commons License #- script_id 0 @@ -100,12 +100,13 @@ export -f runFind function processAlias () { local CALL="$(echo "$1" | sed 's/^ //' | cut -d' ' -f2)" local URI="$(echo "$1" | sed 's/^ //' | sed -e 's/packet/ax25/' | cut -d' ' -f1)" + local FREQ="$(echo "$1" | sed 's/^ //' | sed -e 's/packet/ax25/' | cut -d' ' -f3)" if jq -r '.connect_aliases | keys[] as $k | "\(.[$k])"' $PAT_CONFIG | grep -q "$URI" then # Alias already present yad --info --center --text-align=center --buttons-layout=center \ --text="$URI was already in aliases" --borders=20 --button="gtk-ok":0 else # Alias not in list. Add it. - cat $PAT_CONFIG | jq --arg K "$CALL" --arg U "$URI" \ + cat $PAT_CONFIG | jq --arg K "$CALL@$FREQ" --arg U "$URI" \ '.connect_aliases += {($K): $U}' | sponge $PAT_CONFIG if [[ $? == 0 ]] then @@ -126,11 +127,11 @@ function viewDeleteAliases () { # Read aliases from $PAT_CONFIG ALIASES="$(jq -r .connect_aliases $PAT_CONFIG | egrep -v "telnet|{|}" | \ sed 's/^ /FALSE|/' | tr -d ' ",' | sed 's/:/|/1' | tr '|' '\n')" - RESULT="$(yad --title="View/remove pat aliases" --list --mouse --borders=10 \ - --height=400 --width=400 --text-align=center \ + RESULT="$(yad --title="View/remove aliases" --list --mouse --borders=10 \ + --height=400 --width=500 --text-align=center \ --text "Your current pat connection aliases are listed below.\n \ Check the ones you want to remove.\n" \ - --checklist --grid-lines=hor --auto-kill --column="Pick" --column="Call" --column="Connect URI" \ + --checklist --grid-lines=hor --auto-kill --column="Pick" --column="Call@Freq" --column="Connect URI" \ <<< "$ALIASES" --buttons-layout=center --button="Exit":1 --button="Refresh list":0 --button="Remove selected aliases":0)" if [[ $? == 0 ]] then # Refresh or removal requested @@ -165,16 +166,24 @@ TMPDIR="/tmp/${SCRIPT_NAME}.$RANDOM.$RANDOM.$RANDOM.$$" } #= general variables ==# + #== general variables ==# +SCRIPT_NAME="$(basename ${0})" # scriptname without path +SCRIPT_DIR="$( cd $(dirname "$0") && pwd )" # script directory +SCRIPT_FULLPATH="${SCRIPT_DIR}/${SCRIPT_NAME}" +SCRIPT_ID="$(ScriptInfo | grep script_id | tr -s ' ' | cut -d' ' -f3)" +SCRIPT_HEADSIZE=$(grep -sn "^# END_OF_HEADER" ${0} | head -1 | cut -f1 -d:) +VERSION="$(ScriptInfo version | grep version | tr -s ' ' | cut -d' ' -f 4)" + +TITLE="Find RMS Stations $VERSION" PAT_CONFIG="$HOME/.wl2k/config.json" export PAT_CONFIG=$PAT_CONFIG -export find_cmd='@bash -c "runFind %1 %2 %3 %4"' +export find_cmd='@bash -c "runFind %1 %2 %3 %6"' export view_remove_cmd='bash -c "viewDeleteAliases"' export fpipe=$(mktemp -u --tmpdir find.XXXXXXXX) mkfifo "$fpipe" DEFAULT_SEARCH_STRING="$(jq -r .locator $PAT_CONFIG)" fkey=$(($RANDOM * $$)) YAD_PIDs=() - BANDs="^Any!70cm!1.25m!2m!6m!12m!15m!17m!20m!30m!40m!60m!80m!160m" MODEs="^Any!ARDOP!Packet!Pactor!WINMOR" @@ -266,25 +275,25 @@ trap SafeExit INT TERM EXIT yad --plug="$fkey" --tabnum=1 --text-align=center \ --text="Search for RMS stations and optionally add them to your pat \ -connection alias list\n \ -The station list is generated by running 'pat rmslist' (downloads the list from Winlink).\n \ -Internet access is required for this to work." \ +connection alias list\nIf you make changes: Restart pat + TNC + refresh pat web browser!" \ --form \ --field="Search string" "${DEFAULT_SEARCH_STRING:0:4}" \ --field="Band":CB "$BANDs" \ - --field="Mode":CB "$MODEs" --field="Sort by distance (Uncheck to sort by callsign)":CHK TRUE \ - --field="gtk-find":FBTN "$find_cmd" --field="View/edit current pat connection aliases":FBTN "$view_remove_cmd &" >/dev/null & + --field="Mode":CB "$MODEs" \ + --field="gtk-find":FBTN "$find_cmd" \ + --field="View/edit current pat connection aliases":FBTN "$view_remove_cmd &" \ + --field="Sort results by distance (Uncheck to sort by callsign)":CHK TRUE >/dev/null & YAD_PIDs+=( $! ) yad --plug="$fkey" --tabnum=2 --list --grid-lines=hor --dclick-action="bash -c \"processAlias '%s'\"" \ - --text "Search results. Double-click a Call to add it to your pat aliases." \ + --text "Search results are below. Double-click a Call to add it to your pat aliases." \ --column="URI" --column="Call" --column="Frequency (MHz)" --column="Location" --column="Distance" --column="Azimuth" \ --column="Mode" \ --search-column=2 --expand-column=7 --hide-column=1 <&4 >/dev/null & YAD_PIDs+=( $! ) yad --paned --key="$fkey" --buttons-layout=center --button="gtk-close":0 --width=700 --height=700 \ - --title="Find RMS Stations" --window-icon="system-search" + --title="$TITLE" --window-icon="system-search" SafeExit diff --git a/hampi-utilities.version b/hampi-utilities.version index f886852..d3c70fa 100644 --- a/hampi-utilities.version +++ b/hampi-utilities.version @@ -1 +1 @@ -VERSION="2.3.4" \ No newline at end of file +VERSION="2.3.5" \ No newline at end of file