From 85d3e9a7463d515d6810b0b368d7400e765d8d1e Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Sat, 29 Aug 2026 14:51:15 -0700 Subject: [PATCH 1/6] mercury - Added Mercury HF support to BBS client 2 (i.e. QtTermTCP) --- overlay/opt/emcomm-tools/bin/et-mode | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/overlay/opt/emcomm-tools/bin/et-mode b/overlay/opt/emcomm-tools/bin/et-mode index 8071909..3ffdfd6 100755 --- a/overlay/opt/emcomm-tools/bin/et-mode +++ b/overlay/opt/emcomm-tools/bin/et-mode @@ -2,7 +2,7 @@ # # Author : Gaston Gonzalez # Date : 6 November 2024 -# Updated : 26 August 2026 +# Updated : 29 August 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 @@ -104,6 +104,7 @@ select_term_mode () { term_mode+=("1200" "1200 baud (default for VHF/UHF)") term_mode+=("9600" "9600 baud (VHF/UHF)") term_mode+=("300" "300 baud (HF)") + term_mode+=("mercury" "Mercury (HF)") # Only allow VARA terminal modes when using QtTermTCP if [[ "${SELECTED_MODE}" == "${MODE_ID_BBS_CLIENT2}" ]]; then @@ -229,6 +230,11 @@ if [ $exit_status -eq 0 ]; then sed -i "s|^VARAHF=.*|VARAHF=1|g" ${QTTERMTCP_CONF_FILE} start_and_wait_for_vara et-vara-hf ;; + "mercury") + sed -i "s|^VARAFM=.*|VARAFM=0|g" ${QTTERMTCP_CONF_FILE} + sed -i "s|^VARAHF=.*|VARAHF=1|g" ${QTTERMTCP_CONF_FILE} + start_and_wait_for_service et-service-mercury-arq + ;; esac et-log "Starting QtTermTCP." From 491fa99ec75553b55e9b3e4126a9ee3e25b54dae Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Mon, 31 Aug 2026 11:20:44 -0700 Subject: [PATCH 2/6] mercury - Switched to using JSON logging to support easier parsing of logs by third-party tools --- overlay/opt/emcomm-tools/bin/et-mercury | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/overlay/opt/emcomm-tools/bin/et-mercury b/overlay/opt/emcomm-tools/bin/et-mercury index e33bb1a..a25ed83 100755 --- a/overlay/opt/emcomm-tools/bin/et-mercury +++ b/overlay/opt/emcomm-tools/bin/et-mercury @@ -2,7 +2,7 @@ # # Author : Gaston Gonzalez # Date : 16 July 2026 -# Updated : 26 August 2026 +# Updated : 31 August 2026 # Purpose : Wrapper script for starting Mercury with PnP support # # Preconditions: @@ -12,7 +12,7 @@ # 1. Mercury started with sane defaults ET_MERCURY_HOME="${HOME}/.local/share/emcomm-tools/mercury" -ET_MERCURY_LOG="${ET_MERCURY_HOME}/session.log" +ET_MERCURY_LOG="${ET_MERCURY_HOME}/session.json" usage() { echo "usage: $(basename $0) " @@ -73,7 +73,7 @@ start() { ALSA_DEVICE=$(et-system-info et-audio-card) - CMD="mercury -C ${ET_MERCURY_INI} -L ${ET_MERCURY_LOG} -i plughw:${ALSA_DEVICE} -o plughw:${ALSA_DEVICE} ${OPTS}" + CMD="mercury -C ${ET_MERCURY_INI} -J -L ${ET_MERCURY_LOG} -i plughw:${ALSA_DEVICE} -o plughw:${ALSA_DEVICE} ${OPTS}" et-log "Starting Mercury in mode ${MODE} with: '${CMD}'" echo From a6ac1f2af12107eda02197a0aae70b4347c06c57 Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Mon, 31 Aug 2026 14:26:21 -0700 Subject: [PATCH 3/6] et-mercury-stats - Initial tool to help analyze Mercury HF logs --- REGRESSION.md | 10 ++++-- scripts/install-mercury-stats.sh | 62 ++++++++++++++++++++++++++++++++ scripts/install.sh | 3 +- tests/test-mercury-stats | 7 ++++ 4 files changed, 78 insertions(+), 4 deletions(-) create mode 100755 scripts/install-mercury-stats.sh create mode 100755 tests/test-mercury-stats diff --git a/REGRESSION.md b/REGRESSION.md index a11078d..06d83c0 100644 --- a/REGRESSION.md +++ b/REGRESSION.md @@ -1,7 +1,7 @@ # EmComm Tools Regression Tests -- **Build**: ETC R7 Build 18 -- **Date**: 23 August 2026 +- **Build**: ETC R7 Build 19 +- **Date**: 31 August 2026 ## First Login @@ -118,6 +118,11 @@ * [ ] et-mode VARA FM (Winlink) * [ ] et-mode VARA HF (Winlink) +## Mercury HF + +* [ ] et-mode Mercury HF (Winlink) +* [ ] et-mercury-stats + ## Security * [ ] gpa @@ -170,7 +175,6 @@ ## Modems * [ ] modem73 -* [ ] mercury ## Email/Internet diff --git a/scripts/install-mercury-stats.sh b/scripts/install-mercury-stats.sh new file mode 100755 index 0000000..252bd03 --- /dev/null +++ b/scripts/install-mercury-stats.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# Author : Gaston Gonzalez +# Date : 31 August 2026 +# Purpose : Install Mercury Stats +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 + +APP=mercury-stats +VERSION=0.1.0 +APP_AND_VERSION="${APP}-${VERSION}" +DOWNLOAD_FILE="${APP}-${VERSION}.tar.gz" +URL="https://github.com/thetechprepper/mercury-stats/archive/refs/tags/${VERSION}.tar.gz" +SRC_DIR="${ET_SRC_DIR}/${APP}-${VERSION}" +INSTALL_DIR="/opt/${APP}-${VERSION}" +INSTALL_BIN_DIR="${INSTALL_DIR}/bin" +INSTALL_LIB_DIR="${INSTALL_DIR}/lib/${APP}" +LINK_PATH="/opt/${APP}" + +et-log "Installing ${APP} ${VERSION}..." + +if [[ ! -e "${ET_DIST_DIR}/${DOWNLOAD_FILE}" ]]; then + + et-log "Downloading ${APP}: ${URL}" + curl -s -L -o ${DOWNLOAD_FILE} --fail ${URL} + + mv ${DOWNLOAD_FILE} ${ET_DIST_DIR} +fi + +CWD_DIR=`pwd` + +et-log "Unpacking ${APP} ${VERSION} source..." +tar -xzf "${ET_DIST_DIR}/${DOWNLOAD_FILE}" + +[ -e ${SRC_DIR} ] && rm -rf "${SRC_DIR}" +mv "${APP_AND_VERSION}" ${ET_SRC_DIR} && cd ${SRC_DIR} + +mkdir -v -p ${INSTALL_LIB_DIR} +cp -v *.py ${INSTALL_LIB_DIR} + +mkdir -v -p ${INSTALL_BIN_DIR} + +cat <<'EOF' > "${INSTALL_BIN_DIR}/et-mercury-stats" +#!/bin/bash + +APP_ROOT="/opt/mercury-stats" + +exec /usr/bin/python3 \ + "${APP_ROOT}/lib/mercury-stats/mercury_stats.py" \ + "$@" +EOF + +chmod 755 "${INSTALL_BIN_DIR}/et-mercury-stats" + +[[ -e ${LINK_PATH} ]] && rm ${LINK_PATH} +ln -v -s ${INSTALL_DIR} ${LINK_PATH} + +stow -v -d /opt ${APP} -t /usr/local + +cd $CWD_DIR diff --git a/scripts/install.sh b/scripts/install.sh index a2ce0f4..0b9ed89 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -2,7 +2,7 @@ # # Author : Gaston Gonzalez # Date : 16 March 2024 -# Updated : 9 August 2026 +# Updated : 31 August 2026 # Purpose : Main installer for EmComm Tools Community (ETC) . ./env.sh @@ -123,6 +123,7 @@ exitIfNotRoot ./install-meshchat.sh ./install-modem73.sh ./install-mercury.sh +./install-mercury-stats.sh ./install-offline-rnode-firmware.sh # Debrand Ubuntu diff --git a/tests/test-mercury-stats b/tests/test-mercury-stats new file mode 100755 index 0000000..131eba5 --- /dev/null +++ b/tests/test-mercury-stats @@ -0,0 +1,7 @@ +#!/bin/bash +# Author : Gaston Gonzalez +# Date : 31 August 2026 +# Purpose : Test et-mercury-stats installation + +OUT=$(which et-mercury-stats) +exit $? From 2e46758ff13da652d89136041681b9dedbb45b8b Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Mon, 31 Aug 2026 19:34:58 -0700 Subject: [PATCH 4/6] et-mercury-stats - Bumped version to 0.2.0 following over-the-air testing --- scripts/install-mercury-stats.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/install-mercury-stats.sh b/scripts/install-mercury-stats.sh index 252bd03..0f7da49 100755 --- a/scripts/install-mercury-stats.sh +++ b/scripts/install-mercury-stats.sh @@ -1,6 +1,7 @@ #!/bin/bash # Author : Gaston Gonzalez # Date : 31 August 2026 +# Updated : 31 August 2026 # Purpose : Install Mercury Stats set -e trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG @@ -9,7 +10,7 @@ trap 'et-log "\"${last_command}\" command failed with exit code $?."' ERR . ./env.sh APP=mercury-stats -VERSION=0.1.0 +VERSION=0.2.0 APP_AND_VERSION="${APP}-${VERSION}" DOWNLOAD_FILE="${APP}-${VERSION}.tar.gz" URL="https://github.com/thetechprepper/mercury-stats/archive/refs/tags/${VERSION}.tar.gz" From a0a03c06120d3968ea018d5fe91e2dd87f5d8224 Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Mon, 31 Aug 2026 20:01:23 -0700 Subject: [PATCH 5/6] et-mercury-stats - Bumped version to 0.2.1 following over-the-air testing --- scripts/install-mercury-stats.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install-mercury-stats.sh b/scripts/install-mercury-stats.sh index 0f7da49..57e3a77 100755 --- a/scripts/install-mercury-stats.sh +++ b/scripts/install-mercury-stats.sh @@ -10,7 +10,7 @@ trap 'et-log "\"${last_command}\" command failed with exit code $?."' ERR . ./env.sh APP=mercury-stats -VERSION=0.2.0 +VERSION=0.2.1 APP_AND_VERSION="${APP}-${VERSION}" DOWNLOAD_FILE="${APP}-${VERSION}.tar.gz" URL="https://github.com/thetechprepper/mercury-stats/archive/refs/tags/${VERSION}.tar.gz" From ee9cc15b63ade25388695708a9d4e59ef34bef0f Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Tue, 1 Sep 2026 06:47:22 -0700 Subject: [PATCH 6/6] et-mercury-stats - Bumped version to 0.2.2 following over-the-air testing --- scripts/install-mercury-stats.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/install-mercury-stats.sh b/scripts/install-mercury-stats.sh index 57e3a77..496c367 100755 --- a/scripts/install-mercury-stats.sh +++ b/scripts/install-mercury-stats.sh @@ -1,7 +1,7 @@ #!/bin/bash # Author : Gaston Gonzalez # Date : 31 August 2026 -# Updated : 31 August 2026 +# Updated : 1 September 2026 # Purpose : Install Mercury Stats set -e trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG @@ -10,7 +10,7 @@ trap 'et-log "\"${last_command}\" command failed with exit code $?."' ERR . ./env.sh APP=mercury-stats -VERSION=0.2.1 +VERSION=0.2.2 APP_AND_VERSION="${APP}-${VERSION}" DOWNLOAD_FILE="${APP}-${VERSION}.tar.gz" URL="https://github.com/thetechprepper/mercury-stats/archive/refs/tags/${VERSION}.tar.gz"