feat(bkgpslog):Directly convert and write buffer to GPX, KML
[EVA-2020-02.git] / exec / bkgpslog
index df924e2c77a336db4f562f0d98b3cd9feaf975c8..ef7e13f393add94ca90a13aee4cd288a41f5538a 100755 (executable)
@@ -228,11 +228,7 @@ dateTimeShort(){
 main() {
     processArguments "$@" # Process arguments.
     if checkapp gpspipe && checkdir "$DIROUT"; then
 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 
 
        # 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 
@@ -245,18 +241,20 @@ main() {
        declare debugCounter; debugCounter="0"
        while [[ "$SECONDS" -lt "$scriptTTL" ]]; do
            ((debugCounter++))
        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
            # 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;
            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.
        done
     fi
 } # Main function.