mirror of https://github.com/wb2osz/direwolf.git
added support for multiple instances, tweaked screen execution
This commit is contained in:
parent
8619b74c7b
commit
314cddca8c
|
@ -17,6 +17,7 @@
|
||||||
|
|
||||||
# Versioning (this file, not direwolf version)
|
# Versioning (this file, not direwolf version)
|
||||||
#-----------
|
#-----------
|
||||||
|
# v1.4 - OK1BIL - added support for multiple instances, tweaked screen execution
|
||||||
# v1.3 - KI6ZHD - added variable support for direwolf binary location
|
# v1.3 - KI6ZHD - added variable support for direwolf binary location
|
||||||
# v1.2 - KI6ZHD - support different versions of VNC
|
# v1.2 - KI6ZHD - support different versions of VNC
|
||||||
# v1.1 - KI6ZHD - expanded version to support running on text-only displays with
|
# v1.1 - KI6ZHD - expanded version to support running on text-only displays with
|
||||||
|
@ -24,6 +25,9 @@
|
||||||
# v1.0 - WB2OSZ - original version for Xwindow displays only
|
# v1.0 - WB2OSZ - original version for Xwindow displays only
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Configuration
|
||||||
|
#-------------------------------------
|
||||||
|
|
||||||
#How are you running Direwolf : within a GUI (Xwindows / VNC) or CLI mode
|
#How are you running Direwolf : within a GUI (Xwindows / VNC) or CLI mode
|
||||||
#
|
#
|
||||||
|
@ -36,7 +40,7 @@
|
||||||
# CLI mode is suited for say a Raspberry Pi running the Jessie LITE version
|
# CLI mode is suited for say a Raspberry Pi running the Jessie LITE version
|
||||||
# where it will run from the CLI w/o requiring Xwindows - uses screen
|
# where it will run from the CLI w/o requiring Xwindows - uses screen
|
||||||
|
|
||||||
RUNMODE=AUTO
|
RUNMODE="AUTO"
|
||||||
|
|
||||||
# Location of the direwolf binary. Depends on $PATH as shown.
|
# Location of the direwolf binary. Depends on $PATH as shown.
|
||||||
# change this if you want to use some other specific location.
|
# change this if you want to use some other specific location.
|
||||||
|
@ -44,32 +48,69 @@ RUNMODE=AUTO
|
||||||
|
|
||||||
DIREWOLF="direwolf"
|
DIREWOLF="direwolf"
|
||||||
|
|
||||||
|
# In case direwolf is run in CLI, it is running in a screen session in the background.
|
||||||
|
# Each screen session has a name. If you want to run multiple instances of direwolf
|
||||||
|
# in parallel (i.e. two SDRs over STDIN), you need to specify unique names for the sessions.
|
||||||
|
# Note: screen is a linux tool to run user-interactive software in background.
|
||||||
|
|
||||||
|
|
||||||
|
INSTANCE="direwolf"
|
||||||
|
|
||||||
|
|
||||||
|
# Parameters for the direwolf binary can be set here. This replaces the DWCMD variable.
|
||||||
|
# Uncomment onlye on of the variables.
|
||||||
|
|
||||||
#Direwolf start up command :: Uncomment only one of the examples.
|
|
||||||
#
|
|
||||||
# 1. For normal operation as TNC, digipeater, IGate, etc.
|
# 1. For normal operation as TNC, digipeater, IGate, etc.
|
||||||
# Print audio statistics each 100 seconds for troubleshooting.
|
# Print audio statistics each 100 seconds for troubleshooting.
|
||||||
# Change this command to however you wish to start Direwolf
|
# Change this command to however you wish to start Direwolf
|
||||||
|
|
||||||
DWCMD="$DIREWOLF -a 100"
|
DWPARAMS="-a 100"
|
||||||
|
|
||||||
# 2. FX.25 Forward Error Correction (FEC) will allow your signal to
|
# 2. FX.25 Forward Error Correction (FEC) will allow your signal to
|
||||||
# go farther under poor radio conditions. Add "-X 1" to the command line.
|
# go farther under poor radio conditions. Add "-X 1" to the command line.
|
||||||
|
|
||||||
#DWCMD="$DIREWOLF -a 100 -X 1"
|
#DWPARAMS="-a 100 -X 1"
|
||||||
|
|
||||||
#---------------------------------------------------------------
|
# 3. Alternative for running with SDR receiver. In case of using this, please pay attention
|
||||||
#
|
# to variable DWSTDIN below.
|
||||||
# 3. Alternative for running with SDR receiver.
|
|
||||||
# Piping one application into another makes it a little more complicated.
|
|
||||||
# We need to use bash for the | to be recognized.
|
|
||||||
|
|
||||||
#DWCMD="bash -c 'rtl_fm -f 144.39M - | direwolf -c sdr.conf -r 24000 -D 1 -'"
|
#DWPARAMS="-c /etc/direwolf/ok1abc-sdr.conf -t 0 -r 24000 -D 1 -"
|
||||||
|
|
||||||
|
# A command to be fed into the STDIN of the direwolf binary. Main use for this is to configure rtl-sdr input.
|
||||||
|
# Leave commented if using soundcard inputs. If using rtl-sdr, uncomment folllowing lines and set parameters as needed.
|
||||||
|
|
||||||
|
#QRG="144.8M"
|
||||||
|
#GAIN="43"
|
||||||
|
#PPM="1"
|
||||||
|
#DWSTDIN="rtl_fm -f $QRG -g $GAIN -p $PPM -"
|
||||||
|
|
||||||
|
|
||||||
#Where will logs go - needs to be writable by non-root users
|
# Where will logs go - needs to be writable by non-root users
|
||||||
LOGFILE=/var/tmp/dw-start.log
|
LOGFILE="/var/tmp/dw-start.log"
|
||||||
|
|
||||||
|
# Startup delay in seconds - how long should the script wait before executing (default 30)
|
||||||
|
STARTUP_DELAY=30
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Internal use functions
|
||||||
|
#-------------------------------------
|
||||||
|
|
||||||
|
# This function is to be recursively called from outside of this script. Its purpose
|
||||||
|
# is to avoid passing commands to screen or bash as strings, which is tricky.
|
||||||
|
|
||||||
|
function RUN_CLI () {
|
||||||
|
|
||||||
|
PARAMS=$1
|
||||||
|
STDIN=$2
|
||||||
|
|
||||||
|
if [ -z "$2" ]; then
|
||||||
|
$DIREWOLF $PARAMS
|
||||||
|
else
|
||||||
|
$STDIN | $DIREWOLF $PARAMS
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#-------------------------------------
|
#-------------------------------------
|
||||||
# Main functions of the script
|
# Main functions of the script
|
||||||
|
@ -91,11 +132,15 @@ function CLI {
|
||||||
# Screen commands
|
# Screen commands
|
||||||
# -d m :: starts the command in detached mode
|
# -d m :: starts the command in detached mode
|
||||||
# -S :: name the session
|
# -S :: name the session
|
||||||
$SCREEN -d -m -S direwolf $DWCMD >> $LOGFILE
|
#
|
||||||
|
# Screen is instructed to run this script again with a parameter (to execute direwolf with
|
||||||
|
# necessary parameters). This way commands do not need to be passed as string. Additionally,
|
||||||
|
# this allows for some pre-flight checks withing the screen session, should they be needed.
|
||||||
|
$SCREEN -d -m -S $INSTANCE $0 -runcli >> $LOGFILE
|
||||||
SUCCESS=1
|
SUCCESS=1
|
||||||
|
|
||||||
$SCREEN -list direwolf
|
$SCREEN -list $INSTANCE
|
||||||
$SCREEN -list direwolf >> $LOGFILE
|
$SCREEN -list $INSTANCE >> $LOGFILE
|
||||||
|
|
||||||
echo "-----------------------"
|
echo "-----------------------"
|
||||||
echo "-----------------------" >> $LOGFILE
|
echo "-----------------------" >> $LOGFILE
|
||||||
|
@ -165,14 +210,14 @@ date >> $LOGFILE
|
||||||
# First wait a little while in case we just rebooted
|
# First wait a little while in case we just rebooted
|
||||||
# and the desktop hasn't started up yet.
|
# and the desktop hasn't started up yet.
|
||||||
#
|
#
|
||||||
sleep 30
|
sleep $STARTUP_DELAY
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Nothing to do if Direwolf is already running.
|
# Nothing to do if Direwolf is already running.
|
||||||
#
|
#
|
||||||
|
|
||||||
a=`ps ax | grep direwolf | grep -vi -e bash -e screen -e grep | awk '{print $1}'`
|
a=`ps ax | grep $INSTANCE | grep -vi -e bash -e screen -e grep | awk '{print $1}'`
|
||||||
if [ -n "$a" ]
|
if [ -n "$a" ]
|
||||||
then
|
then
|
||||||
#date >> /tmp/dw-start.log
|
#date >> /tmp/dw-start.log
|
||||||
|
@ -180,6 +225,12 @@ then
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check for parameter to recursively run this script and execute direwolf in cli
|
||||||
|
if [ $# -eq 1 ] && [ $1 == "-runcli" ]; then
|
||||||
|
RUN_CLI "$DWPARAMS" "$DWSTDIN"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Main execution of the script
|
# Main execution of the script
|
||||||
|
|
||||||
if [ $RUNMODE == "AUTO" ];then
|
if [ $RUNMODE == "AUTO" ];then
|
||||||
|
|
Loading…
Reference in New Issue