/*@!Encoding:1252*/
includes
{
  /* You can source out constants, variables and functions 
     that are needed identically in multiple CAPL programs.*/
  #include "..\CAPL Includes\DoorInclFile.CIN"
  #include "..\CAPL Includes\NM_Observer_Include.cin"
}

variables
{
}

on start
{
  ILSetOperationMode(2,0);
  // set to 2 to get more information into write-window
  setWriteDbgLevel(1);
  writeDbgLevel(2,"%NODE_NAME%");

  SetMoveTimer();
}

on timer tMoveDownTimer
{
  if(gPosWN > 15 || gPosWN < 0 ) runError(1003,1003);

  if(gPosWN < 15  && gMoveDown == gTrue)
  { 
    $DOOR_r::WN_Position_r = gPosWN;
    gPosWN++;
  }

  setTimer(this,cMoveTime);
}

on timer tMoveUpTimer
{
  if(gPosWN > 15 || gPosWN < 0) runError(1004,1004);
  
  if(gPosWN > 0 && gMoveUp == gTrue) 
  {
    gPosWN--;
    $DOOR_r::WN_Position_r = gPosWN;
  }

  setTimer(this,cMoveTime);
}

on PDU Console_1
{
  if(this.WN_right_up && gPosWN > 0)
  { 
    gMoveUp = gTrue;
    NM_ReinitSleepTimer();
  }
  else gMoveUp = gFalse;


  if(this.WN_right_down && gPosWN < 15)
  {
    gMoveDown = gTrue;
    NM_ReinitSleepTimer();
  }
  else gMoveDown = gFalse;
}

on preStart
{
  //fs canOffline(3);
}

on PDU Gateway_1
{
   if(this.Ig_15  == 1)  canOnline(3);
   if(this.Ig_15R == 1)  canOnline(3);
}

on sysvar_update sysvar::NMTester::NMOnOff28
{
  if(@this) 
  {
    canOffline(3); 
    TraceNMState(getBusContext(),8);
  }
  else 
  {
    canOnline(3); 
    TraceNMState(getBusContext(), Nm_GetState());
  } 
}

