From 1816118221caf48ab849911ab13729bb7228098f Mon Sep 17 00:00:00 2001 From: Gaston Gonzalez Date: Sun, 16 Mar 2025 09:06:16 -0700 Subject: [PATCH] Bluetooth - Removed failed prototype around a dedicated Bluetooth mode switcher --- overlay/opt/emcomm-tools/bin/et-mode-bt | 128 ------------------------ 1 file changed, 128 deletions(-) delete mode 100755 overlay/opt/emcomm-tools/bin/et-mode-bt diff --git a/overlay/opt/emcomm-tools/bin/et-mode-bt b/overlay/opt/emcomm-tools/bin/et-mode-bt deleted file mode 100755 index 6cf74d0..0000000 --- a/overlay/opt/emcomm-tools/bin/et-mode-bt +++ /dev/null @@ -1,128 +0,0 @@ -#!/bin/bash -# -# Author : Gaston Gonzalez -# Date : 10 March 2024 -# Purpose : Launches a mode using a connected Bluetooth TNC -source /opt/emcomm-tools/bin/et-common - -# Use a simple text file to save the state of the last mode selected -MODE_STATUS_FILE="${HOME}/.config/emcomm-tools/et-mode" - -QTTERMTCP_CONF_FILE="${HOME}/.config/QtTermTCP.ini" - -# List of supported modes of operation -MODE_ID_NONE="none" -MODE_ID_BBS_CLIENT2="bbs-client2" -MODE_ID_WINLINK_PACKET="winlink-packet" - -BLUETOOTH_TNC_CHECK=$(ps -ef | grep "[r]fcomm connect") -if [[ $? -ne 0 ]]; then - et-log "No Bluetooth TNC configured." - exit 1 -fi - -# Attempt to stop all EmComm Tools services regardless if they are running. -stop_all_services() { - et-kill-all -} - -exit_on_service_failure() { - local systemd_unit_name="$1" - systemctl is-active --user --quiet "${systemd_unit_name}" - if [ $? -ne 0 ]; then - et-log "Can't start mode. ${systemd_unit_name} failed to start." - exit 1 - fi -} - -TIMEOUT=15 # Total time to wait in seconds -INTERVAL=2 # Interval between checks in seconds - -start_and_wait_for_service() { - local systemd_unit_name="$1" - local elapsed=0 - - et-log "Starting ${systemd_unit_name}..." - systemctl --user start ${systemd_unit_name} - - et-log "Waiting for ${systemd_unit_name} to become active..." - - while ! systemctl is-active --user --quiet "${systemd_unit_name}"; do - sleep "$INTERVAL" - elapsed=$((elapsed + INTERVAL)) - if [ "$elapsed" -ge "$TIMEOUT" ]; then - et-log "Timeout reached. ${systemd_unit_name} failed to start." - exit 1 - fi - et-log "Waiting for ${systemd_unit_name} to become active..." - done - - # Some applications even when started still need a bit of extra time to be available. - # Add a short think time of 2 seconds. The ARDOP modem requies extra time. - sleep 2 - - # Do one more check to ensure that we are running, otherwise exit. - exit_on_service_failure ${systemd_unit_name} -} - -# Build list of options -options=() -options+=("${MODE_ID_NONE}" "No mode selected") -options+=("${MODE_ID_BBS_CLIENT2}" "BBS Client (QtTermTCP)") -options+=("${MODE_ID_WINLINK_PACKET}" "Winlink over VHF/UHF (AX.25 Packet)") - -# Prompt user for option and save exit status -SELECTED_MODE=$(dialog --clear --menu "Select a mode:" 0 0 0 "${options[@]}" 3>&1 1>&2 2>&3) -exit_status=$? - -tput sgr 0 && clear - -if [ $exit_status -eq 0 ]; then - - stop_all_services - - echo ${SELECTED_MODE} > ${MODE_STATUS_FILE} - - case ${SELECTED_MODE} in - ${MODE_ID_NONE}) - et-log "No mode selected" - ;; - ${MODE_ID_BBS_CLIENT2}) - if [[ -e /dev/rfcomm0 ]]; then - et-log "Starting KISS over TCP" - - socat -d TCP-LISTEN:8100,reuseaddr,fork FILE:/dev/rfcomm0,raw & - fi - - if [[ $? -ne 0 ]]; then - et-log "Can't start QtTermTCP. KISS over TCP failed to start." - exit 1 - fi - - et-log "Starting QtTermTCP." - et-qttermtcp start - ;; - ${MODE_ID_WINLINK_PACKET}) - KISS_OUT=$(sudo kissattach ${BT_DEVICE} ${AX25_PORT}) - - if [ $? -ne 0 ]; then - echo -e "${RED}Failed to setup KISS for Bluetooth TNC.${NC}" - exit 1 - fi - - KISS_OUT=$(sudo kissparms -c 1 -p ${AX25_PORT}) - - start_and_wait_for_service et-service-winlink-native-packet - min http://localhost:8080 - ;; - *) - et-log "Mode ${SELECTED_MODE} not yet supported" - exit 1 - ;; - esac - -else - et-log "No mode selected" - echo ${MODE_ID_NONE} > ${MODE_STATUS_FILE} - exit 1 -fi