Bit tuning
authorTomas Mudrunka <tomas@mudrunka.cz>
Fri, 3 Aug 2012 03:02:01 +0000 (05:02 +0200)
committerTomas Mudrunka <tomas@mudrunka.cz>
Fri, 3 Aug 2012 03:02:01 +0000 (05:02 +0200)
c/goertzel/sleepmon.sh
c/goertzel/sleepplot.sh

index 9ac62f9f7ce623abf46d5848f0a3e10799908475..f4685dc7be3fb36a26f28a27166ee6ecd875dd61 100755 (executable)
@@ -12,8 +12,8 @@
 # Wake up
 # Enjoy your data
 
-
 out=/tmp/sleeplog-"$(date +%F_%T)".txt
+graphout="${out%%.*}.png"
 speaker-test -t sine &>/dev/null &
 pid_test=$!
 tresh=10
@@ -23,10 +23,16 @@ history='';
 historymax=120;
 historylen='10 30 120'
 screen=false
-while getopts "s" OPT; do
+graph=false
+
+while getopts "sg" OPT; do
        test "$OPT" == 's' && screen=true;
+       test "$OPT" == 'g' && graph=true;
 done
-echo "Writing to file: $out";
+
+echo "Writing log to: $out";
+$graph && echo "Writing graph to: $graphout"
+echo
 arecord | ./goertzel -n i -q -l c -t $tresh -d 4 | while read line; do
        date="$(date +%s)"
        time="$(echo "$line" | cut -f 1)"
@@ -57,12 +63,16 @@ arecord | ./goertzel -n i -q -l c -t $tresh -d 4 | while read line; do
        } || {
                $screen && xset dpms force on;
        }
-       ./sleepplot.sh "$out" &>/dev/null &
+       $graph && ./sleepplot.sh "$out" "$graphout" &>/dev/null &
 
        #Prepare invariants for next round
        lastdate="$date";
        laststate="$statenum";
 done | tee "$out"
-kill $pid_test
+kill $pid_test; sleep 0.2
 echo
-echo "Your file: $out"
+echo "Your log: $out"
+$graph && {
+       ./sleepplot.sh "$out" "$graphout" &>/dev/null
+       echo "Your graph: $graphout"
+}
index 3dcfec65f9d6de53ab04f2aa7f13b04c057118ed..6d682a8337d7adbd4c6502098fa7a6eb0c781a67 100755 (executable)
@@ -5,14 +5,18 @@ test -z "$1" && {
        exit 23
 }
 
+in="$1";
+graphout="${in%%.*}.png"
+test -n "$2" && graphout="$2";
+
 #Approximate size of graph
-size="$(tail -n 1 "$1" | cut -d . -f 1)"
+size="$(tail -n 1 "$in" | cut -d . -f 1)"
 test $size -gt 3600 && size="$(( $size/10 ))" #For prolonged periods
 size="$(( 600 + $size ))"
 
 #Plot it
 gnuplot << EOF
-set output "$1.png"
+set output "$graphout"
 set terminal png size $size,300
 
 set title "Sleep motions"
@@ -28,10 +32,11 @@ set timefmt "%s"
 set grid
 
 #set pointsize 0.5
-plot "$1" using 2:5 title "Sensor state" with steps,\
-"" using 2:(\$6*3) title "Avg last last 10 seconds" with lines,\
-"" using 2:(\$7*3) title "Avg last last 30 seconds" with lines,\
-"" using 2:(\$8*3) title "Avg last last 120 seconds" with lines\
+plot\
+"$in" using 2:5 title "Sensor state" with steps,\
+"" using 2:(\$6*3) title "Avg. 10s" with lines,\
+"" using 2:(\$7*3) title "Avg. 30s" with lines,\
+"" using 2:(\$8*3) title "Avg. 120s" smooth bezier\
 
 EOF
 
This page took 0.132059 seconds and 4 git commands to generate.