Merge pull request #104 from thetechprepper/feature/et-wwv

feature/et-wwv
This commit is contained in:
thetechprepper
2026-04-16 18:40:34 -07:00
committed by GitHub
11 changed files with 114 additions and 7 deletions
+3 -2
View File
@@ -1,7 +1,7 @@
# ETC Regression Tests
- **Build**: ETC R6 Build 12
- **Date**: 27 March 2026
- **Build**: ETC R7 Build 1
- **Date**: 16 April 2026
## Desktop/Launcher Icons
@@ -82,6 +82,7 @@
* [ ] RMS station listed
* [ ] Select RMS gateway => VFO updated
* [ ] Connect
* [ ] wwv
## Bluetooth TNC
+2 -1
View File
@@ -1,6 +1,6 @@
# Author : Gaston Gonzalez
# Date : 23 April 2024
# Updated : 18 March 2025
# Updated : 16 April 2026
# Description : bash profile
# All user accounts should be in the 'et-data' group to allow data sharing with
@@ -13,6 +13,7 @@ xset b off
alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'
alias et-clock='tty-clock -c -s -b'
RED='\x1B[1;31m'
BLUE='\x1B[1;34m'
+1
View File
@@ -0,0 +1 @@
%sudo ALL=(ALL) NOPASSWD: /opt/emcomm-tools/sbin/wrapper-et-wwv.sh
+23
View File
@@ -0,0 +1,23 @@
#/bin/bash
# Author : Gaston Gonzalez
# Date : 7 January 2025
# Purpose : Generates an authentication table
top=( {A..M} )
side=( {N..Z} )
chars=( {A..Z} {0..9} )
printf "%2s " ""
for col in "${top[@]}"; do
printf "%2s " "$col"
done
printf "\n"
for row in "${side[@]}"; do
printf "%2s " "$row"
for col in "${top[@]}"; do
rand_index=$(( RANDOM % ${#chars[@]} ))
printf "%2s " "${chars[$rand_index]}"
done
printf "\n"
done
+8 -1
View File
@@ -1,7 +1,7 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 1 February 2025
# Updated : 7 October 2025
# Updated : 16 April 2026
# Purpose : Common environment variables and functions
# Standardized device paths for supported hardware
@@ -40,6 +40,13 @@ exit_if_no_sdr() {
fi
}
exit_if_no_audio() {
if [[ ! -e ${ET_DEVICE_AUDIO} ]]; then
et-log "No ${ET_DEVICE_AUDIO} detected."
exit 1
fi
}
exit_on_service_failure() {
local systemd_unit_name="$1"
systemctl is-active --user --quiet "${systemd_unit_name}"
+13 -1
View File
@@ -2,7 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 6 November 2024
# Updated : 25 March 2025
# Updated : 16 March 2026
# Purpose : Configures the system for a specific mode of operation
# Use a simple text file to save the state of the last mode selected
@@ -23,6 +23,7 @@ MODE_ID_WINLINK_ARDOP="winlink-ardop"
MODE_ID_WINLINK_PACKET="winlink-packet"
MODE_ID_WINLINK_VARA_HF="winlink-vara-hf"
MODE_ID_WINLINK_VARA_FM="winlink-vara-fm"
MODE_ID_TIME_WWV="time-wwv"
# Default to 1200 baud packet for terminal sessions
TERM_MODE=1200
@@ -128,6 +129,11 @@ select_term_mode () {
fi
}
wwv_mode () {
dialog --title "Note on WWV" --msgbox "Manually set your radio to AM and tune it to one of the WWV frequencies appropriate for this operating time.\n\nTry: 2.5, 5, 10, 15 or 20 MHz." 0 0
tput sgr 0 && clear
}
# Build list of options
options=()
options+=("${MODE_ID_NONE}" "No mode selected")
@@ -150,6 +156,8 @@ if [ -e "${HOME}/.wine32/drive_c/VARA/VARA.exe" ]; then
options+=("${MODE_ID_WINLINK_VARA_HF}" "Winlink over HF (VARA HF)")
fi
options+=("${MODE_ID_TIME_WWV}" "Sync clock to WWV")
# Prompt user for option and save exit status
SELECTED_MODE=$(dialog --clear --menu "Select a mode:" 18 65 10 "${options[@]}" 3>&1 1>&2 2>&3)
exit_status=$?
@@ -263,6 +271,10 @@ if [ $exit_status -eq 0 ]; then
sleep 1
min http://localhost:8080 2>/dev/null
;;
${MODE_ID_TIME_WWV})
wwv_mode
sudo /opt/emcomm-tools/sbin/wrapper-et-wwv.sh
;;
*)
et-log "Mode ${SELECTED_MODE} not yet supported"
exit 1
+19
View File
@@ -0,0 +1,19 @@
#!/bin/bash
#
# Author : Gaston Gonzalez
# Date : 16 April 2026
# Purpose : Wrapper script for setting the system time using et-wwv
#
# Preconditions
# 1. Supported radio and audio interface are connected and properly detected
# 2. Radio is set to AM and a WWV frequency (2.5, 5, 10, 15, or 20 MHz)
#
# Postconditions
# 1. System clock is aligned to the top-of-the-minute
. /opt/emcomm-tools/bin/et-common
exit_if_no_audio
ALSA_DEVICE=$(/opt/emcomm-tools/bin/et-system-info et-audio-card)
et-wwv -a --device "hw:${ALSA_DEVICE}"
+2 -1
View File
@@ -2,7 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 16 March 2024
# Updated : 28 February 2025
# Updated : 16 April 2026
# Purpose : Install base tools and configuration
set -e
@@ -30,4 +30,5 @@ apt install \
stow \
xsel \
tree \
tty-clock \
-y
+32
View File
@@ -0,0 +1,32 @@
#!/bin/bash
#
# Author : Gaston Gonzalez
# Date : 16 April 2026
# Purpose : Install et-wwv
set -e
trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG
trap 'et-log "\"${last_command}\" command failed with exit code $?."' ERR
. ./env.sh
. ../overlay/opt/emcomm-tools/bin/et-common
APP=et-wwv
REPO=https://github.com/thetechprepper/et-wwv.git
REPO_DIR="${ET_SRC_DIR}/${APP}"
CWD_DIR=`pwd`
if [[ ! -e "${REPO_DIR}" ]]; then
et-log "Cloning ${APP} repository..."
cd ${ET_SRC_DIR} && git clone ${REPO}
fi
et-log "Building ${APP}..."
cd ${REPO_DIR} && ./build.sh
mkdir -p "/opt/${APP}/bin"
cp build/et-wwv /opt/${APP}/bin/
stow -v -d /opt ${APP} -t /usr/local
cd ${CWD_DIR}
+4 -1
View File
@@ -2,7 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 16 March 2024
# Updated : 27 March 2026
# Updated : 16 April 2026
# Purpose : Main installer for EmComm Tools Community (ETC)
. ./env.sh
@@ -112,3 +112,6 @@ exitIfNotRoot
# Install WSJT-X (FT8)
./install-wsjtx.sh
# Install simple WWV util
./install-et-wwv.sh
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 16 April 2026
# Purpose : Test et-wwv installation
OUT=$(which et-wwv)
exit $?