#!/bin/sh
### BEGIN INIT INFO
# Provides:          hardware-monitoring
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Configure hardware and run the system watchdog monitor
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/system_watchdog.sh
TEMP_DAEMON=/usr/bin/cpu_temperature_monitor.sh
NAME=hardware-monitoring
DESC="hardware monitoring"
PIDFILE=/var/run/$NAME.pid
TEMP_PIDFILE=/var/run/cpu-temperature-monitor.pid

start_service() {
    echo userspace > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
    echo 648000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_setspeed
    echo 358 > /sys/class/gpio/export
    echo out > /sys/class/gpio/gpio358/direction
    echo 1 > /sys/class/gpio/gpio358/value

    start-stop-daemon -S -q -b -m -p "$PIDFILE" -a "$DAEMON"
    start-stop-daemon -S -q -b -m -p "$TEMP_PIDFILE" -a "$TEMP_DAEMON"
}

stop_service() {
    start-stop-daemon -K -q -p "$TEMP_PIDFILE"
    start-stop-daemon -K -q -p "$PIDFILE"
    rm -f "$PIDFILE" "$TEMP_PIDFILE"
}

case "$1" in
    start)
        echo -n "Starting $DESC: "
        start_service
        echo "$NAME."
        ;;
    stop)
        echo -n "Stopping $DESC: "
        stop_service
        echo "$NAME."
        ;;
    restart|force-reload)
        echo -n "Restarting $DESC: "
        stop_service
        sleep 1
        start_service
        echo "$NAME."
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0
