main() {
processArguments "$@" # Process arguments.
if checkapp gpspipe && checkdir "$DIROUT"; then
- # Determine output file paths
- 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
declare debugCounter; debugCounter="0"
while [[ "$SECONDS" -lt "$scriptTTL" ]]; do
((debugCounter++))
+ # Determine output file paths (time is start of buffer period)
+ FILEOUT_BASENAME="$(dateTimeShort)--P$(bufferTTL)S..$SCRIPT_HOSTNAME_location" ;
+ FILEOUT_NMEA="$FILEOUT_BASENAME".nmea ;
+ FILEOUT_GPX="$FILEOUT_BASENAME".gpx ;
+ FILEOUT_KML="$FILEOUT_BASENAME".kml ;
# Fill buffer
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
+ # Process and save buffers
+ echo "$buffer" > "$DIROUT"/"$FILEOUT_NMEA" & # Save NMEA format
+ echo "$buffer" | gpsbabel -i nmea -f - -o gpx -F - > "$DIROUT"/"$FILEOUT_GPX" & # Save GPX format
+ echo "$buffer" | gpsbabel -i nmea -f - -o kml -F - > "$DIROUT"/"$FILEOUT_KML" & # Save KML format
vbm "DEBUG:Completed buffer session $debugCounter ." 1>&2;
- # Reset buffer
- unset buffer
+ # Reset buffer and filenames
+ unset buffer buffer_GPX buffer_KML FILEOUT_BASENAME FILEOUT_NMEA FILEOUT_GPX FILEOUT_KML;
done
fi
} # Main function.