diff --git a/overlay/etc/skel/.config/systemd/user/et-service-mercury-winlink.service b/overlay/etc/skel/.config/systemd/user/et-service-mercury-winlink.service new file mode 100644 index 0000000..24bbef7 --- /dev/null +++ b/overlay/etc/skel/.config/systemd/user/et-service-mercury-winlink.service @@ -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 diff --git a/overlay/etc/skel/.config/systemd/user/et-service-winlink-mercury.service b/overlay/etc/skel/.config/systemd/user/et-service-winlink-mercury.service new file mode 100644 index 0000000..d1f5c39 --- /dev/null +++ b/overlay/etc/skel/.config/systemd/user/et-service-winlink-mercury.service @@ -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 diff --git a/overlay/opt/emcomm-tools/bin/et-kill-all b/overlay/opt/emcomm-tools/bin/et-kill-all index 35c1a77..13fcd43 100755 --- a/overlay/opt/emcomm-tools/bin/et-kill-all +++ b/overlay/opt/emcomm-tools/bin/et-kill-all @@ -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 diff --git a/overlay/opt/emcomm-tools/bin/et-mercury b/overlay/opt/emcomm-tools/bin/et-mercury index 7f625a4..a51401d 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 : 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." diff --git a/overlay/opt/emcomm-tools/bin/et-mode b/overlay/opt/emcomm-tools/bin/et-mode index be31cff..d4bb6bf 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 : 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 diff --git a/overlay/opt/emcomm-tools/bin/et-winlink b/overlay/opt/emcomm-tools/bin/et-winlink index 1089a8b..1494425 100755 --- a/overlay/opt/emcomm-tools/bin/et-winlink +++ b/overlay/opt/emcomm-tools/bin/et-winlink @@ -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