mirror of
https://github.com/thetechprepper/emcomm-tools-os-community.git
synced 2026-09-17 15:41:44 -04:00
Merge pull request #104 from thetechprepper/feature/et-wwv
feature/et-wwv
This commit is contained in:
+3
-2
@@ -1,7 +1,7 @@
|
|||||||
# ETC Regression Tests
|
# ETC Regression Tests
|
||||||
|
|
||||||
- **Build**: ETC R6 Build 12
|
- **Build**: ETC R7 Build 1
|
||||||
- **Date**: 27 March 2026
|
- **Date**: 16 April 2026
|
||||||
|
|
||||||
## Desktop/Launcher Icons
|
## Desktop/Launcher Icons
|
||||||
|
|
||||||
@@ -82,6 +82,7 @@
|
|||||||
* [ ] RMS station listed
|
* [ ] RMS station listed
|
||||||
* [ ] Select RMS gateway => VFO updated
|
* [ ] Select RMS gateway => VFO updated
|
||||||
* [ ] Connect
|
* [ ] Connect
|
||||||
|
* [ ] wwv
|
||||||
|
|
||||||
## Bluetooth TNC
|
## Bluetooth TNC
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Author : Gaston Gonzalez
|
# Author : Gaston Gonzalez
|
||||||
# Date : 23 April 2024
|
# Date : 23 April 2024
|
||||||
# Updated : 18 March 2025
|
# Updated : 16 April 2026
|
||||||
# Description : bash profile
|
# Description : bash profile
|
||||||
|
|
||||||
# All user accounts should be in the 'et-data' group to allow data sharing with
|
# 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 pbcopy='xsel --clipboard --input'
|
||||||
alias pbpaste='xsel --clipboard --output'
|
alias pbpaste='xsel --clipboard --output'
|
||||||
|
alias et-clock='tty-clock -c -s -b'
|
||||||
|
|
||||||
RED='\x1B[1;31m'
|
RED='\x1B[1;31m'
|
||||||
BLUE='\x1B[1;34m'
|
BLUE='\x1B[1;34m'
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
%sudo ALL=(ALL) NOPASSWD: /opt/emcomm-tools/sbin/wrapper-et-wwv.sh
|
||||||
+23
@@ -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
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Author : Gaston Gonzalez
|
# Author : Gaston Gonzalez
|
||||||
# Date : 1 February 2025
|
# Date : 1 February 2025
|
||||||
# Updated : 7 October 2025
|
# Updated : 16 April 2026
|
||||||
# Purpose : Common environment variables and functions
|
# Purpose : Common environment variables and functions
|
||||||
|
|
||||||
# Standardized device paths for supported hardware
|
# Standardized device paths for supported hardware
|
||||||
@@ -40,6 +40,13 @@ exit_if_no_sdr() {
|
|||||||
fi
|
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() {
|
exit_on_service_failure() {
|
||||||
local systemd_unit_name="$1"
|
local systemd_unit_name="$1"
|
||||||
systemctl is-active --user --quiet "${systemd_unit_name}"
|
systemctl is-active --user --quiet "${systemd_unit_name}"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Author : Gaston Gonzalez
|
# Author : Gaston Gonzalez
|
||||||
# Date : 6 November 2024
|
# Date : 6 November 2024
|
||||||
# Updated : 25 March 2025
|
# Updated : 16 March 2026
|
||||||
# Purpose : Configures the system for a specific mode of operation
|
# Purpose : Configures the system for a specific mode of operation
|
||||||
|
|
||||||
# Use a simple text file to save the state of the last mode selected
|
# 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_PACKET="winlink-packet"
|
||||||
MODE_ID_WINLINK_VARA_HF="winlink-vara-hf"
|
MODE_ID_WINLINK_VARA_HF="winlink-vara-hf"
|
||||||
MODE_ID_WINLINK_VARA_FM="winlink-vara-fm"
|
MODE_ID_WINLINK_VARA_FM="winlink-vara-fm"
|
||||||
|
MODE_ID_TIME_WWV="time-wwv"
|
||||||
|
|
||||||
# Default to 1200 baud packet for terminal sessions
|
# Default to 1200 baud packet for terminal sessions
|
||||||
TERM_MODE=1200
|
TERM_MODE=1200
|
||||||
@@ -128,6 +129,11 @@ select_term_mode () {
|
|||||||
fi
|
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
|
# Build list of options
|
||||||
options=()
|
options=()
|
||||||
options+=("${MODE_ID_NONE}" "No mode selected")
|
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)")
|
options+=("${MODE_ID_WINLINK_VARA_HF}" "Winlink over HF (VARA HF)")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
options+=("${MODE_ID_TIME_WWV}" "Sync clock to WWV")
|
||||||
|
|
||||||
# Prompt user for option and save exit status
|
# 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)
|
SELECTED_MODE=$(dialog --clear --menu "Select a mode:" 18 65 10 "${options[@]}" 3>&1 1>&2 2>&3)
|
||||||
exit_status=$?
|
exit_status=$?
|
||||||
@@ -263,6 +271,10 @@ if [ $exit_status -eq 0 ]; then
|
|||||||
sleep 1
|
sleep 1
|
||||||
min http://localhost:8080 2>/dev/null
|
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"
|
et-log "Mode ${SELECTED_MODE} not yet supported"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
+19
@@ -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,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Author : Gaston Gonzalez
|
# Author : Gaston Gonzalez
|
||||||
# Date : 16 March 2024
|
# Date : 16 March 2024
|
||||||
# Updated : 28 February 2025
|
# Updated : 16 April 2026
|
||||||
# Purpose : Install base tools and configuration
|
# Purpose : Install base tools and configuration
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
@@ -30,4 +30,5 @@ apt install \
|
|||||||
stow \
|
stow \
|
||||||
xsel \
|
xsel \
|
||||||
tree \
|
tree \
|
||||||
|
tty-clock \
|
||||||
-y
|
-y
|
||||||
|
|||||||
Executable
+32
@@ -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
@@ -2,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Author : Gaston Gonzalez
|
# Author : Gaston Gonzalez
|
||||||
# Date : 16 March 2024
|
# Date : 16 March 2024
|
||||||
# Updated : 27 March 2026
|
# Updated : 16 April 2026
|
||||||
# Purpose : Main installer for EmComm Tools Community (ETC)
|
# Purpose : Main installer for EmComm Tools Community (ETC)
|
||||||
|
|
||||||
. ./env.sh
|
. ./env.sh
|
||||||
@@ -112,3 +112,6 @@ exitIfNotRoot
|
|||||||
|
|
||||||
# Install WSJT-X (FT8)
|
# Install WSJT-X (FT8)
|
||||||
./install-wsjtx.sh
|
./install-wsjtx.sh
|
||||||
|
|
||||||
|
# Install simple WWV util
|
||||||
|
./install-et-wwv.sh
|
||||||
|
|||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Author : Gaston Gonzalez
|
||||||
|
# Date : 16 April 2026
|
||||||
|
# Purpose : Test et-wwv installation
|
||||||
|
|
||||||
|
OUT=$(which et-wwv)
|
||||||
|
exit $?
|
||||||
Reference in New Issue
Block a user