#!/bin/sh if [ $# -ne 2 ]; then echo 'usage: tlapse.r1 ' exit 0 fi function tidy_exit () { echo exit 0 } trap tidy_exit SIGINT trap tidy_exit SIGHUP brem=$(grep /proc/acpi/battery/BAT0/state -e remaining | sed -e 's/^.* \([0-9]\+\) .*$/\1/') echo $(date), PC Battery = $brem modprobe ftdi_sio stty -F /dev/ttyUSB0 110 cstopb i=1 n=$1 t=$2 b=$(date +%s) st=0 while [ $i -le $n ]; do echo -e '\000\000\000\000\000\000\000\000\000\000' > /dev/ttyUSB0 brem=$(grep /proc/acpi/battery/BAT0/state -e remaining | sed -e 's/^.* \([0-9]\+\) .*$/\1/') a=$(date +%s) if [ $st -eq 0 ]; then st=$a oldbrem=$brem echo -e -n \\r$i - $(date), PC Battery = $brem else brate=$[($oldbrem - $brem) * 60 / ($a - $st)] if [ $brate -gt 0 ]; then ml=$[$brem / $brate] fi echo -e -n \\r$i - $(date), PC Battery = $brem "($brate/minute, $ml minutes left)" fi i=$[$i + 1] if [ $t -gt $[$a - $b] -a $i -le $n ]; then echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sleep $[$t - ($a - $b)] echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor fi b=$(date +%s) done tidy_exit