feat(bkgpslog):Implement buffer for saving gpspipe stream
[EVA-2020-02.git] / exec / bkgpslog
index 9a3744a01cb97ab64d19138356ed74953d4d714a..2b24c9046f514bffc0e2e29ce595681ff04cfb98 100755 (executable)
@@ -97,8 +97,10 @@ checkdir() {
            dirRollCall["$arg"]="true";
            #echo "DEBUG:dirRollCall[\"$arg\"]:"${dirRollCall["$arg"]}
            if ! [ "$returnState" = "false" ]; then returnState="true"; fi
            dirRollCall["$arg"]="true";
            #echo "DEBUG:dirRollCall[\"$arg\"]:"${dirRollCall["$arg"]}
            if ! [ "$returnState" = "false" ]; then returnState="true"; fi
-       else
+       elif [ "$arg" = "" ]; then
            dirRollCall["$arg"]="false"; returnState="false";
            dirRollCall["$arg"]="false"; returnState="false";
+       else
+           returnState="false";
        fi
     done
 
        fi
     done
 
@@ -174,7 +176,7 @@ processArguments() {
            --h | --help) showUsage; exit 1;; # Display usage.
            --version) showVersion; exit 1;; # Show version
            --v | --verbose) OPTION_VERBOSE="true"; vbm "DEBUG:Verbose mode enabled.";; # Enable verbose mode.
            --h | --help) showUsage; exit 1;; # Display usage.
            --version) showVersion; exit 1;; # Show version
            --v | --verbose) OPTION_VERBOSE="true"; vbm "DEBUG:Verbose mode enabled.";; # Enable verbose mode.
-           --o | --output) if [ -d "$2" ]; then DIROUT="$2"; fi ;; # Define output directory.
+           --o | --output) if [ -d "$2" ]; then DIROUT="$2"; vbm "DEBUG:DIROUT:$DIROUT"; shift; fi ;; # Define output directory.
            *) echoerr "ERROR: Unrecognized argument."; exit 1;; # Handle unrecognized options.
        esac
        shift
            *) echoerr "ERROR: Unrecognized argument."; exit 1;; # Handle unrecognized options.
        esac
        shift
@@ -236,14 +238,20 @@ main() {
        scriptTTL="60"; #DEBUG DEBUG DEBUG DEBUG        
         
        # Determine buffer lifespan
        scriptTTL="60"; #DEBUG DEBUG DEBUG DEBUG        
         
        # Determine buffer lifespan
-       bufferTTL="15";
+       #bufferTTL="60";
+       bufferTTL="15"; #DEBUG DEBUG DEBUG DEBUG
 
 
-       # Record gps data until life ends
+       # Record gps data until script lifespan ends
        declare debugCounter; debugCounter="0"
        while [[ "$SECONDS" -lt "$scriptTTL" ]]; do
            ((debugCounter++))
        declare debugCounter; debugCounter="0"
        while [[ "$SECONDS" -lt "$scriptTTL" ]]; do
            ((debugCounter++))
-           timeout "$bufferTTL""s" gpspipe -r 1>> "$DIROUT"/"$FILEOUT_NMEA""$debugCounter"
-           echo "do stuff" 1>&2;
+           # 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;
+           # Reset buffer
+           unset buffer
        done
     fi
 } # Main function.
        done
     fi
 } # Main function.