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