diff --git a/sleepwalk b/sleepwalk index a87fb41..cdb93cd 100644 --- a/sleepwalk +++ b/sleepwalk @@ -7,6 +7,7 @@ SLEEP_MAX_SECS=600 WAKE_SECS=35 LOCK_DIR="/tmp/sleepwalk" CPU_STATE=1 +THRESHOLD="15.00" set_cpu_offline() { if [ $CPU_STATE -eq 1 ]; then @@ -107,8 +108,38 @@ is_screen_on() { return "$(cat /sys/class/backlight/backlight/bl_power)" } +network_activity() { + for n in $(seq 3) + do + for i in wwan0 wlan0 + do + A=$(ifstat -i $i 1 1 | tail -n1) + RX=$(echo $A | awk '{print $1}') + TX=$(echo $A | awk '{print $2}') + + if [ "$RX" = "n/a" ] || [ "$TX" = "n/a" ] + then + return 1 + fi + + for v in $RX $TX + do + C=$(echo $v $THRESHOLD | + awk '{if ($1 > $2) print "y"; else print "n"}') + + if [ "$C" = "y" ] + then + return 0 + fi + done + done + done + + return 1 +} + can_suspend() { - ! ( is_inhibitor_active || is_screen_on || is_charging ) + ! ( is_inhibitor_active || is_screen_on || is_charging || network_activity ) } led_sleep() {