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
# Date : 24 October 2024
# Updated : 1 November 2024
# Updated : 12 November 2024
# Purpose : Wrapper script for starting JS8Call with PnP support
#
# Preconditions
# 1. Supported radio and audio interface are connected and properly detected
#
# Postconditions
# 1. JS8Call audio settings updated
# 2. JS8Call started
# 1. Stop all running EmComm Tools modes and services
# 2. JS8Call audio settings updated
# 3. JS8Call started
usage() {
echo "usage: $(basename $0) <command>"
@@ -31,7 +32,7 @@ notify_user() {
}
start() {
update-config && /usr/bin/js8call &
/opt/emcomm-tools/bin/et-kill-all && update-config && /usr/bin/js8call &
}
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
# Date : 6 November 2024
# Updated : 8 November 2024
# Updated : 12 November 2024
# Purpose : Configures the system for a specific mode of operation
# 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_PACKET="winlink-packet"
# 1. Attempt to stop all EmComm Tools services regardless if they are running.
# 2. Stop the applications first, then the modems.
# Attempt to stop all EmComm Tools services regardless if they are running.
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-kill-all
}
exit_on_service_failure() {