Blame pmos/monitor.sh

Ivan Mahonin 38a1ab
#!/bin/bash
Ivan Mahonin 38a1ab
Ivan Mahonin 38a1ab
set -e
Ivan Mahonin 38a1ab
Ivan Mahonin 38a1ab
# command to make rotation
Ivan Mahonin 38a1ab
# normal, left, inverted or right will be passed as the first arg
Ivan Mahonin 38a1ab
COMMAND="$(dirname "$0")/rotate.sh"
Ivan Mahonin 38a1ab
Ivan Mahonin 38a1ab
# paths to sensor files
Ivan Mahonin 38a1ab
DEVICE=/sys/bus/iio/devices/iio:device0
Ivan Mahonin 38a1ab
DEVICE_X="$DEVICE/in_accel_x_raw"
Ivan Mahonin 38a1ab
DEVICE_Y="$DEVICE/in_accel_y_raw"
Ivan Mahonin 38a1ab
Ivan Mahonin 38a1ab
# min sensor value to call rotation
Ivan Mahonin 38a1ab
THRESHOLD=10000
Ivan Mahonin 38a1ab
# time interval in seconds
Ivan Mahonin 38a1ab
INTERVAL=2
Ivan Mahonin 38a1ab
Ivan Mahonin 38a1ab
Ivan Mahonin 38a1ab
Ivan Mahonin 38a1ab
PREV_ROT=
Ivan Mahonin 38a1ab
while true; do
Ivan Mahonin 38a1ab
    X="$(cat "$DEVICE/in_accel_x_raw")"
Ivan Mahonin 38a1ab
    Y="$(cat "$DEVICE/in_accel_y_raw")"
Ivan Mahonin 38a1ab
Ivan Mahonin 38a1ab
    ROT="$PREV_ROT"
Ivan Mahonin 38a1ab
    if [ "$X" -gt "$THRESHOLD" ]; then
Ivan Mahonin 38a1ab
        ROT="normal"
Ivan Mahonin 38a1ab
    elif [ "$X" -lt "-$THRESHOLD" ]; then
Ivan Mahonin 38a1ab
        ROT="inverted"
Ivan Mahonin 38a1ab
    elif [ "$Y" -gt "$THRESHOLD" ]; then
Ivan Mahonin 38a1ab
        ROT="right"
Ivan Mahonin 38a1ab
    elif [ "$Y" -lt "-$THRESHOLD" ]; then
Ivan Mahonin 38a1ab
        ROT="left"
Ivan Mahonin 38a1ab
    fi
Ivan Mahonin 38a1ab
Ivan Mahonin 38a1ab
    if [ "$ROT" != "$PREV_ROT" ]; then
Ivan Mahonin 38a1ab
        "$COMMAND" "$ROT"
Ivan Mahonin 38a1ab
        PREV_ROT="$ROT"
Ivan Mahonin 38a1ab
        # double wait immediatelly after rotation
Ivan Mahonin 38a1ab
        sleep "$INTERVAL"
Ivan Mahonin 38a1ab
    fi
Ivan Mahonin 38a1ab
Ivan Mahonin 38a1ab
    sleep "$INTERVAL"
Ivan Mahonin 38a1ab
done
Ivan Mahonin 38a1ab