mirror of
https://github.com/thetechprepper/emcomm-tools-os-community.git
synced 2026-09-17 15:41:44 -04:00
125 lines
2.9 KiB
Bash
Executable File
125 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Author : Gaston Gonzalez
|
|
# Date : 6 October 2024
|
|
# Updated : 21 October 2024
|
|
# Purpose : Utility script for dumping system information
|
|
|
|
function usage() {
|
|
echo "Usage: $(basename $0) <command>"
|
|
echo " active-radio - Display model of active radio"
|
|
echo " et-audio - State of audio interface"
|
|
echo " et-cat - State of CAT control interface"
|
|
echo " et-gps - State of GPS interface"
|
|
echo " ip - System IP address"
|
|
echo " release - EmComm Tools release"
|
|
}
|
|
|
|
if [ $# -ne 1 ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
case $1 in
|
|
active-radio)
|
|
if [ -L "${ET_HOME}/conf/radios.d/active-radio.json" ]; then
|
|
cat "${ET_HOME}/conf/radios.d/active-radio.json" | jq -r .model
|
|
else
|
|
echo "No radio selected"
|
|
fi
|
|
;;
|
|
et-audio)
|
|
|
|
# 1. Check if the symlink was created by the udev rules
|
|
if [ -e /dev/et-audio ]; then
|
|
echo "Connected"
|
|
else
|
|
echo "Not connected"
|
|
fi
|
|
|
|
;;
|
|
et-cat)
|
|
|
|
if [ ! -L "${ET_HOME}/conf/radios.d/active-radio.json" ]; then
|
|
echo "N/A"
|
|
exit 0
|
|
fi
|
|
|
|
# 1. Check if the symlink was created by the udev rules
|
|
if [ -e /dev/et-cat ]; then
|
|
|
|
# 2. Check if the rigctl systemd unit is running properly
|
|
systemctl status rigctld --no-pager > /dev/null
|
|
if [ $? -eq 0 ]; then
|
|
|
|
# 3. Grab and format frequency
|
|
FREQ=$(timeout 1 rigctl -m 2 f)
|
|
if [ $? -eq 0 ]; then
|
|
printf "%'d MHz\n" "$FREQ" | sed 's|,|.|g'
|
|
else
|
|
echo "Connected. Can't access VFO";
|
|
fi
|
|
else
|
|
echo "Connected. rigctld not running"
|
|
fi
|
|
else
|
|
echo "Not connected";
|
|
fi
|
|
|
|
;;
|
|
et-gps)
|
|
|
|
# 1. Check if the symlink was created by the udev rules
|
|
if [ -e /dev/et-gps ]; then
|
|
|
|
# 2. Check if the gpsd systemd unit is running properly
|
|
systemctl status gpsd --no-pager > /dev/null
|
|
if [ $? -eq 0 ]; then
|
|
|
|
# 3. Obtain the current GPS mode
|
|
GPS_JSON=$(gpspipe -w -n 10 | grep -m 1 TPV)
|
|
if [ $? -eq 0 ]; then
|
|
GPS_MODE=$(echo $GPS_JSON | jq --exit-status -r .mode)
|
|
|
|
case $GPS_MODE in
|
|
1)
|
|
echo "No fix"
|
|
;;
|
|
2)
|
|
echo "2D fix"
|
|
;;
|
|
3)
|
|
LAT=$(echo $GPS_JSON | jq -r .lat)
|
|
LON=$(echo $GPS_JSON | jq -r .lon)
|
|
printf "%.5f,%.5f\n" $LAT $LON
|
|
;;
|
|
*)
|
|
echo "Unknown mode"
|
|
;;
|
|
esac
|
|
|
|
else
|
|
echo "Connected. Can't decode"
|
|
fi
|
|
|
|
else
|
|
echo "Connected. gpsd not running"
|
|
fi
|
|
else
|
|
echo "Not connected"
|
|
fi
|
|
|
|
;;
|
|
ip)
|
|
hostname -I | awk '{print $1}'
|
|
;;
|
|
release)
|
|
grep DISTRIB_DESCRIPTION /etc/lsb-release | sed 's|"||g' | awk '{print $1}' | cut -d"=" -f2
|
|
;;
|
|
*)
|
|
echo "Command not supported."
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|