#!/bin/sh

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 "*        GALEP5D  Inbetriebnahme           *"
echo "********************************************"
echo
echo






# (2) PS Init...
waitUser "Stromaufnahme pruefen!\nIst der Wert groesser 350mA SOFORT Stecker ziehen!"





if [ ! psCheck --is-pd-installed 2>/dev/null ]; then
  error "Pintreiber Platine nicht gefunden!", "#030"
  exit 1
fi;
 





echo "(4) Calibration..."
waitUser "Bitte das Kalibriermodul in Stellung A aufsetzen.\nDabei die Richtung Pin1 beachten!\n\nAchtung!\nDas Kalibriermodul muss aus einem Labornetzteil versorgt werden (nicht aus einem Steckernetzteil!"

echo "(4.1) Calibrate..."

while [ true ]; do
  if ! psCalib --self-calib; then
    error "Kalibrierung fehlgeschlagen!", "#041"
    if [ ! -z "$REPEAT" ]; then
      continue;
    fi
    exit 1
  fi
  break;
done;

while [ true ]; do
  echo "(4.2) Check Calibration (using external supply)."
  if ! psCalib --ps-check; then
    error "Kalibriertest fehlgeschlagen!", "#042"
    if [ ! -z "$REPEAT" ]; then
      continue;
    fi
    exit 1
  fi
  break;
done;


echo "** SUCCESS **"
echo "Den Pintreibertest nicht vergessen!"
