} # Define stderr message function.
showUsage() {
echoerr "USAGE:"
- echoerr " bkgpslog.sh [ options ]"
+ echoerr " bkgpslog [ options ]"
echoerr
echoerr "OPTIONS:"
echoerr " -h, --help"
processArguments "$@" # Process arguments.
if checkapp gpspipe && checkdir "$DIROUT"; then
# Determine output file paths
- FILEOUT_NMEA="$(dateTimeShort)".."$SCRIPT_HOSTNAME"_location.nmea ;
- #FILEOUT_GPX="" ;
- #FILEOUT_KML="" ;
+ FILEOUT_BASENAME="$(dateTimeShort)".."$SCRIPT_HOSTNAME"_location
+ FILEOUT_NMEA="$FILEOUT_BASENAME".nmea ;
+ FILEOUT_GPX="$FILEOUT_BASENAME".gpx ;
+ FILEOUT_KML="$FILEOUT_BASENAME".kml ;
# Determine script lifespan (note: exit if <= 0 since 'timeout' runs forever if provided "0s".
#if ! scriptTTL="$(timeUntilMidnight)"; then yell "ERROR: timeUntilMidnight exit code $?"; exit 1; fi
- scriptTTL="60"; #DEBUG DEBUG DEBUG DEBUG
+ scriptTTL="3600"; # DEBUG DEBUG DEBUG DEBUG
# Determine buffer lifespan
- #bufferTTL="60";
- bufferTTL="15"; #DEBUG DEBUG DEBUG DEBUG
+ bufferTTL="60";
# Record gps data until script lifespan ends
declare debugCounter; debugCounter="0"
while [[ "$SECONDS" -lt "$scriptTTL" ]]; do
((debugCounter++))
# Fill buffer
- buffer="$(timeout "$bufferTTL""s" gpspipe -r)"; # Record gpspipe nmea data to $buffer for bufferTTL seconds
- # Save buffer
- echo "$buffer" >> "$DIROUT"/"$FILEOUT_NMEA""$debugCounter"
- vbm "DEBUG:Completed buffer session $debugCounter" 1>&2;
+ buffer="$(timeout "$bufferTTL""s" gpspipe -r)"; # Record gpspipe nmea data to buffer for bufferTTL seconds
+ # Process buffer
+ buffer_GPX="$(echo "$buffer" | gpsbabel -i nmea -f - -o gpx -F - )"; # Convert buffer to GPX format
+ buffer_KML="$(echo "$buffer" | gpsbabel -i nmea -f - -o kml -F - )"; # Convert buffer to KML format
+ # Save processed buffer data
+ echo "$buffer" >> "$DIROUT"/"$FILEOUT_NMEA" # Save NMEA format
+ echo "$buffer_GPX" >> "$DIROUT"/"$FILEOUT_GPX" # Save GPX format
+ echo "$buffer_GPX" >> "$DIROUT"/"$FILEOUT_KML" # Save KML format
+ vbm "DEBUG:Completed buffer session $debugCounter ." 1>&2;
# Reset buffer
unset buffer
done