aboutsummaryrefslogtreecommitdiff
path: root/sleepwalk
diff options
context:
space:
mode:
Diffstat (limited to 'sleepwalk')
-rw-r--r--sleepwalk33
1 files changed, 32 insertions, 1 deletions
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() {