Issue - Fixed issue to ensure that all relevant EmComm Tools modes and services are stopped before starting JS8Call. Only one application can use the audio card at a time since this platform uses ALSA

This commit is contained in:
Gaston Gonzalez
2024-11-12 07:43:20 -07:00
parent 8af6b45f5d
commit 34aea9b593
3 changed files with 28 additions and 13 deletions
+5 -4
View File
@@ -2,15 +2,16 @@
# #
# Author : Gaston Gonzalez # Author : Gaston Gonzalez
# Date : 24 October 2024 # Date : 24 October 2024
# Updated : 1 November 2024 # Updated : 12 November 2024
# Purpose : Wrapper script for starting JS8Call with PnP support # Purpose : Wrapper script for starting JS8Call with PnP support
# #
# Preconditions # Preconditions
# 1. Supported radio and audio interface are connected and properly detected # 1. Supported radio and audio interface are connected and properly detected
# #
# Postconditions # Postconditions
# 1. JS8Call audio settings updated # 1. Stop all running EmComm Tools modes and services
# 2. JS8Call started # 2. JS8Call audio settings updated
# 3. JS8Call started
usage() { usage() {
echo "usage: $(basename $0) <command>" echo "usage: $(basename $0) <command>"
@@ -31,7 +32,7 @@ notify_user() {
} }
start() { start() {
update-config && /usr/bin/js8call & /opt/emcomm-tools/bin/et-kill-all && update-config && /usr/bin/js8call &
} }
update-config () { update-config () {
+20
View File
@@ -0,0 +1,20 @@
#!/bin/bash
#
# Author : Gaston Gonzalez
# Date : 12 November 2024
# Purpose : Stops all EmComm Tools sound-based services (i.e. modems) and
# amatuer radio applications to ensure a clean start for the next mode.
# 1. Attempt to stop all EmComm Tools services regardless if they are running.
# 2. Stop the applications first, then the modems.
stop_all_services() {
systemctl --user stop et-service-winlink-ardop
systemctl --user stop et-service-winlink-packet
systemctl --user stop et-service-ardop
systemctl --user stop et-service-direwolf-simple
systemctl --user stop et-service-direwolf-aprs-digipeater
systemctl --user stop et-service-direwolf-packet-digipeater
}
et-log "Stopping all services"
stop_all_services
+3 -9
View File
@@ -2,7 +2,7 @@
# #
# Author : Gaston Gonzalez # Author : Gaston Gonzalez
# Date : 6 November 2024 # Date : 6 November 2024
# Updated : 8 November 2024 # Updated : 12 November 2024
# 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
@@ -16,15 +16,9 @@ MODE_ID_PACKET_DIGIPEATER="packet-digipeater"
MODE_ID_WINLINK_ARDOP="winlink-ardop" MODE_ID_WINLINK_ARDOP="winlink-ardop"
MODE_ID_WINLINK_PACKET="winlink-packet" MODE_ID_WINLINK_PACKET="winlink-packet"
# 1. Attempt to stop all EmComm Tools services regardless if they are running. # Attempt to stop all EmComm Tools services regardless if they are running.
# 2. Stop the applications first, then the modems.
stop_all_services() { stop_all_services() {
systemctl --user stop et-service-winlink-ardop et-kill-all
systemctl --user stop et-service-winlink-packet
systemctl --user stop et-service-ardop
systemctl --user stop et-service-direwolf-simple
systemctl --user stop et-service-direwolf-aprs-digipeater
systemctl --user stop et-service-direwolf-packet-digipeater
} }
exit_on_service_failure() { exit_on_service_failure() {