galmon/ubxtool.sh

52 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
runDir="/run/ubxtool"
CONSTELLATIONS="--galileo --gps --glonass"
# CONSTELLATIONS="--galileo --gps --beidou"
# CONSTELLATIONS="--galileo --gps --glonass --beidou" # only on the F9P
if [ -e /usr/local/ubxtool/constellations ]
then
CONSTELLATIONS=$(cat /usr/local/ubxtool/constellations)
fi
# DEVICE="/dev/ttyACM0" # comment out or leave blank to auto-search
#########################################################################
rotate() {
logt=$1
cd ${runDir}
if [ -r ${logt}.log ]; # only rotate if there's a current logfile
then
if [ -r ${logt}.log.4 ]; then mv ${logt}.log.4 ${logt}.log.5 ; fi;
if [ -r ${logt}.log.3 ]; then mv ${logt}.log.3 ${logt}.log.4 ; fi;
if [ -r ${logt}.log.2 ]; then mv ${logt}.log.2 ${logt}.log.3 ; fi;
if [ -r ${logt}.log.1 ]; then mv ${logt}.log.1 ${logt}.log.2 ; fi;
if [ -r ${logt}.log ]; then mv ${logt}.log ${logt}.log.1 ; fi;
fi
}
if [ -z "${DEVICE}" ];
then
# programmatically find the interface
SYSD=$(grep -il u-blox /sys/bus/usb/devices/*/manufacturer)
SYSD=${SYSD//manufacturer/}
DEVD=$(find ${SYSD} -type d -iname 'ttyACM*')
DEVICE="/dev/${DEVD##*/}"
fi
DESTINATION=$(cat /usr/local/ubxtool/destination)
STATION=$(cat /usr/local/ubxtool/station)
# systemctl script will do this, but if you don't use systemctl, we need to take care of it
[[ -d ${runDir} ]] || mkdir -p ${runDir}
for logFile in stdout stderr logfile
do
rotate ${logFile}
done
exec /usr/local/ubxtool/ubxtool ${CONSTELLATIONS} --port ${DEVICE} --station ${STATION} --destination ${DESTINATION} >> ${runDir}/stdout.log 2>> ${runDir}/stderr.log < /dev/null