mercury - Added initial support for Winlink over Mercury HF modem

This commit is contained in:
thetechprepper
2026-08-12 18:30:46 -07:00
parent 24d13e406b
commit 8454ddbda3
6 changed files with 74 additions and 4 deletions
@@ -0,0 +1,20 @@
# Author : Gaston Gonzalez
# Date : 12 August 2026
# Purpose : User systemd unit file for EmComm Tools that starts mercury
# : in a Winlink configuration.
#
# Usage:
# Check status : systemctl --user status et-service-mercury-winlink
# Start service : systemctl --user start et-service-mercury-winlink
# Stop service : systemctl --user stop et-service-mercury-winlink
# Reload this config : systemctl --user daemon-reload
[Unit]
Description=EmComm Tools mercury default service for winlink performance
[Service]
ExecStart=/opt/emcomm-tools/bin/et-mercury winlink
Restart=no
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,19 @@
# Author : Gaston Gonzalez
# Date : 12 August 2026
# Purpose : User systemd unit file for EmComm Tools Winlink over Mercury HF
#
# Usage:
# Check status : systemctl --user status et-service-winlink-mercury
# Start service : systemctl --user start et-service-winlink-mercury
# Stop service : systemctl --user stop et-service-winlink-mercury
# Reload this config : systemctl --user daemon-reload
[Unit]
Description=EmComm Tools Winlink ARDOP service
[Service]
ExecStart=/opt/emcomm-tools/bin/et-winlink start-mercury-hf
Restart=no
[Install]
WantedBy=multi-user.target
+3 -1
View File
@@ -2,7 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 12 November 2024
# Updated : 16 July 2026
# Updated : 12 August 2026
# Purpose : Stops all EmComm Tools soundcard-based services (i.e. modems)
# and radio applications to ensure a clean start for the next mode.
@@ -19,6 +19,7 @@ stop_pat() {
# 2. Stop the applications first, then the modems.
stop_all_services() {
systemctl --user stop et-service-winlink-ardop
systemctl --user stop et-service-winlink-mercury
systemctl --user stop et-service-winlink-packet
systemctl --user stop et-service-winlink-native-packet
systemctl --user stop et-service-ardop
@@ -41,6 +42,7 @@ stop_all_services() {
systemctl --user stop et-service-mercury-balanced
systemctl --user stop et-service-mercury-reliability
systemctl --user stop et-service-mercury-fast
systemctl --user stop et-service-mercury-winlink
# Stop VARA with a sledge hammer
pkill et-winlink
+5 -1
View File
@@ -2,7 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 16 July 2026
# Updated : 17 July 2026
# Updated : 12 August 2026
# Purpose : Wrapper script for starting Mercury with PnP support
#
# Preconditions:
@@ -29,6 +29,7 @@ usage() {
echo " reliability - Max reliability (Slower Speed) [DATAC1]"
echo " balanced - Balanced (Reliability and Speed) [DATAC17]"
echo " fast - Fast (Low Reliability) [QAM16C2]"
echo " winlink - Used for Winlink [DATAC3]"
}
if [[ $# -ne 1 ]]; then
@@ -43,6 +44,9 @@ case "${MODE}" in
reliability)
MODE_INDEX="0"
;;
winlink)
MODE_INDEX="1"
;;
balanced)
MODE_INDEX="9"
et-log "Mode not yet supported."
+9 -1
View File
@@ -2,7 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 6 November 2024
# Updated : 14 June 2026
# Updated : 12 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
@@ -20,6 +20,7 @@ MODE_ID_BBS_SERVER="bbs-server"
MODE_ID_CHAT_CLIENT="chat-chattervox"
MODE_ID_PACKET_DIGIPEATER="packet-digipeater"
MODE_ID_WINLINK_ARDOP="winlink-ardop"
MODE_ID_WINLINK_MERCURY="winlink-mercury"
MODE_ID_WINLINK_PACKET="winlink-packet"
MODE_ID_WINLINK_VARA_HF="winlink-vara-hf"
MODE_ID_WINLINK_VARA_FM="winlink-vara-fm"
@@ -150,6 +151,7 @@ if [ -e "${HOME}/.wine32/drive_c/VARA FM/VARAFM.exe" ]; then
options+=("${MODE_ID_WINLINK_VARA_FM}" "Winlink over VHF/UHF (VARA FM)")
fi
options+=("${MODE_ID_WINLINK_MERCURY}" "Winlink over HF (Mercury)")
options+=("${MODE_ID_WINLINK_ARDOP}" "Winlink over HF (ARDOP)")
if [ -e "${HOME}/.wine32/drive_c/VARA/VARA.exe" ]; then
@@ -250,6 +252,12 @@ if [ $exit_status -eq 0 ]; then
start_and_wait_for_service et-service-winlink-ardop
min http://localhost:8080
;;
${MODE_ID_WINLINK_MERCURY})
et-log "Using Mercury as the modem."
start_and_wait_for_service et-service-mercury-winlink
start_and_wait_for_service et-service-winlink-mercury
min http://localhost:8080
;;
${MODE_ID_WINLINK_PACKET})
start_and_wait_for_service et-service-direwolf-simple
start_and_wait_for_service et-service-winlink-packet
+18 -1
View File
@@ -2,7 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 4 November 2024
# Updated : 4 February 2025
# Updated : 12 August 2026
# Purpose : Wrapper script for starting YAAC with PnP support
#
# Preconditions:
@@ -26,6 +26,7 @@ usage() {
echo " start-native-packet - Start Pat Winlink in native AX.25 packet mode"
echo " start-vara-fm - Start Pat Winlink in VARA FM mode"
echo " start-vara-hf - Start Pat Winlink in VARA HF mode"
echo " start-mercury-hf - Start Pat Winlink in Mercury HF mode"
}
if [ $# -ne 1 ]; then
@@ -112,6 +113,16 @@ start_vara_hf() {
${CMD}
}
start_mercury_hf() {
update_config mercury-hf
CMD="pat http"
et-log "Starting Pat with: ${CMD}"
${CMD}
}
update_config () {
[ -z "$ET_USER_CONFIG" ] && ET_USER_CONFIG="${HOME}/.config/emcomm-tools/user.json"
@@ -141,6 +152,9 @@ update_config () {
vara-hf)
PAT_CONF_FILE_TEMPLATE=/opt/emcomm-tools/conf/template.d/winlink/config.vara-hf.json
;;
mercury-hf)
PAT_CONF_FILE_TEMPLATE=/opt/emcomm-tools/conf/template.d/winlink/config.vara-hf.json
;;
esac
et-log "Updating Pat configuration file: ${PAT_CONF_FILE}..."
@@ -167,6 +181,9 @@ case $1 in
start-vara-hf)
start_vara_hf
;;
start-mercury-hf)
start_mercury_hf
;;
*)
echo "Invalid command."
usage