mirror of
https://github.com/AG7GN/nexus-utilities.git
synced 2025-05-15 22:20:09 -07:00
Added new ARDOP + pat GUI
This commit is contained in:
parent
cbaad83871
commit
8b201581bb
10
ardop_pat_gui.desktop
Normal file
10
ardop_pat_gui.desktop
Normal file
@ -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
|
@ -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 <b>Save Settings...</b> 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[@]}"
|
||||
|
@ -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 "<b>Your current pat connection aliases are listed below.</b>\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="<b>Search for RMS stations and optionally add them to your pat \
|
||||
connection alias list</b>\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\n<span color='blue'>If you make changes: Restart pat + TNC + refresh pat web browser!</span></b>" \
|
||||
--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="<b>View/edit current pat connection aliases</b>":FBTN "$view_remove_cmd &" >/dev/null &
|
||||
--field="Mode":CB "$MODEs" \
|
||||
--field="gtk-find":FBTN "$find_cmd" \
|
||||
--field="<b>View/edit current pat connection aliases</b>":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
|
||||
|
||||
|
@ -1 +1 @@
|
||||
VERSION="2.3.4"
|
||||
VERSION="2.3.5"
|
Loading…
x
Reference in New Issue
Block a user