#!/bin/sh

killall main-unix 2>/dev/null >/dev/null

clear
NO_CLEAR=""
if [ "$1" = "--no-clear" ]; then
  NO_CLEAR="yes"
fi

if [ "$1" = "help" ]; then
  echo "Galep5M Inbetriebnahme"
  echo
  echo "  --no-clear         - Bildschirm bei Benachrichtigungen nicht loeschen."
  echo
  echo
  echo
  exit 0
fi

# $1 - Error string
# $2 - Error number
error()
{
  echo
  echo
  echo
  echo
  echo
  echo "#########################>>> ERROR / FEHLER <<<######"
  echo "#                                                   #"
  echo "# Error: "$2"                                       #"
  echo "#                                                   #"
  echo "#####################################################"
  echo
  echo
  echo "$1"
  echo
  echo
  REPEAT=""
  CANCEL=""
  while [ true ]; do
    echo -n "R = Wiederholen / C = Abbrechen: "
    read x
    if [ "$x" = "R" ]; then
      REPEAT=yes
      break;
    fi
    if [ "$x" = "r" ]; then
      REPEAT=yes
      break;
    fi
    if [ "$x" = "C" ]; then
      CANCEL="yes"
      break;
    fi
    if [ "$x" = "c" ]; then
      CANCEL="yes"
      break;
    fi
  done;
}

waitUser()
{
  if [ -z "$NO_CLEAR" ]; then
    clear
  fi
  echo
  echo
  echo
  echo ">>> Please confirm  / Bitte bestaetigen <<<"
  echo
  echo -e "$1"
  echo
  echo "Fortsetzen mit Return-Taste."
  echo
  read x
}





echo "********************************************"
echo "*        GALEP5M  Inbetriebnahme           *"
echo "********************************************"
echo
echo


echo "(1) PMU test."





# (2) PS Init...
echo "(2) Power Supplies test."
waitUser "Bitte die Powerplatine aufstecken.\nDabei darauf achten, dass moeglichst alle Pins gleichzeitig kontakt erhalten."
waitUser "Stromaufnahme pruefen!\nIst der Wert groesser 350mA SOFORT Stecker ziehen!"


while [ true ]; do
  if ! psTest --initialized; then
    echo "Setting up Power Supplies..."
    psInit /fw/G5_Power.bin

    if ! psTest --initialized; then
      error "Erros while setting up power supplies!", "#020"
      if [ ! -z "$REPEAT" ]; then
        continue;
      fi
      exit 1
    fi
  fi
  break;
done;



echo "(2.2) Checking power supplies using DC supply. (uncalibrated)."
while [ true ]; do
  if ! psCheck --is-pd-installed 2>/dev/null; then
    echo "      Test skipped."
    echo "      Dieser Test kann nur ausgefuehrt werden, wenn keine Pintreiberplatine installiert ist!"
  else
    if ! psCheck --test; then
      error "PS-Check (uncalibrated; with DC) failed!", "#024"
      if [ ! -z "$REPEAT" ]; then
        continue;
      fi
      exit 1
    fi
  fi
  break;
done;




echo "(3) Checking piezzo..."
piezzoTest 1

