#!/bin/sh

RUNDIR=/root/run
APPDIR=$RUNDIR/app
WEBDIR=$RUNDIR/web
SNMPDIR=$APPDIR/snmp

source /etc/qtenv.sh
export MIBDIRS=$SNMPDIR/mibs
export LD_LIBRARY_PATH=$APPDIR/lib:$LD_LIBRARY_PATH
export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event1:rotate=180:invertx


start_snmpd()
{
    $SNMPDIR/bin/snmpd -Cc $SNMPDIR/conf/snmpd.conf -Lo 
    chmod 777 /var/agentx/master
}
start_pdu()
{
    #run smartPDU
    $APPDIR/smartPDU &
}
led_on()
{
    #light led
    echo 98 > /sys/class/gpio/export
    echo out > /sys/class/gpio/gpio98/direction
    echo 1 > /sys/class/gpio/gpio98/value
    echo 101 > /sys/class/gpio/export
    echo in  > /sys/class/gpio/gpio101/direction
    echo 102 > /sys/class/gpio/export
    echo in  > /sys/class/gpio/gpio102/direction
    echo 103 > /sys/class/gpio/export
    echo out > /sys/class/gpio/gpio103/direction
    echo 104 > /sys/class/gpio/export
    echo in  > /sys/class/gpio/gpio104/direction
    echo 105 > /sys/class/gpio/export
    echo out > /sys/class/gpio/gpio105/direction
    echo 106 > /sys/class/gpio/export
    echo out > /sys/class/gpio/gpio106/direction
    echo 113 > /sys/class/gpio/export
    echo in  > /sys/class/gpio/gpio113/direction
    echo 115 > /sys/class/gpio/export
    echo in  > /sys/class/gpio/gpio115/direction
    echo 107 > /sys/class/gpio/export
    echo in  > /sys/class/gpio/gpio107/direction
    echo 108 > /sys/class/gpio/export
    echo in  > /sys/class/gpio/gpio108/direction
    echo 109 > /sys/class/gpio/export
    echo in  > /sys/class/gpio/gpio109/direction
    echo 110 > /sys/class/gpio/export
    echo in  > /sys/class/gpio/gpio110/direction
}
start_lcd()
{
    #light lcd
    led_on
    fbinit
    $APPDIR/Qt_Test --platform linuxfb &
}



app_start()
{
  case "$1" in
    smartPDU)
      start_pdu   
      ;;
    snmpd)
      start_snmpd
      ;;
    Qt_Test)
      start_lcd
      ;;
    all)
      start_snmpd
      start_pdu
      start_lcd
      ;;
    *)
      exit 1
  esac
}
app_stop()
{
  case "$1" in
    smartPDU)
      killall $1
      ;;
    snmpd)
      killall $1
      ;;
    Qt_Test)
      killall $1
      ;;
    all)
      killall snmpd smartPDU Qt_Test
      ;;
    *)
      exit 1
  esac
}


if [ $# -eq 0 ]; then
  app_start all
elif [ $# -eq 1 ]; then
  case "$1" in
    start)
      app_start all        
      ;;
    stop)
      app_stop all
      ;;
    restart)
      "$0" stop all
      "$0" start all
    ;;
    *)
      echo "wrong param!"
      exit 1
  esac

else
  case "$1" in
    start)
      app_start $2        
      ;;
    stop)
      app_stop $2
      ;;
    restart)
      "$0" stop $2
      "$0" start $2
      ;;
    *)
      echo "wrong param!"
      exit 1
  esac
fi



