/*@!Encoding:1252*/
includes
{
  #include "CANopenHelper.cin"
}

variables
{
  // ------------------------------------------------
  // File information
  // Copyright         : 2017, Vector Informatik GmbH
  // ------------------------------------------------

  // Globals for "Display" device
  BYTE gNodeId          = 10;
  char gNodeLabel[32]   = "Display_ID10";

  sysvarInt * gRunLEDVar;
  sysvarInt * gErrLEDVar;
}

on preStart
{
  gRunLEDVar = sysvar::GUIControls::Node10_State;
  gErrLEDVar = sysvar::GUIControls::Node10ErrLed;
}

on start
{
  @sysvar::GUIControls::Node10_ID = gNodeId;
  @sysvar::CANopen::CAN::Display_ID10::Control::Enabled = 1;
}

on sysvar CANopen::CAN::Display_ID10::Control::CommunicationState
{
  CANopenUpdateState(@this);
}

ShutDownLights()
{
  @sysvar::GUIControls::Node10_State = 0;
  @sysvar::GUIControls::Node10_ID = 0;
}

on sysvar GUIControls::DisplayConnected
{
  // write the actual state
  if(@this == 1)
  {
    sysSetVariableString(sysvar::GUIControls::Display_CnxnState, "");
  } // if
  else{
    sysSetVariableString(sysvar::GUIControls::Display_CnxnState, "!! unplugged !!");
  } // else
  
  if(@sysvar::GUIControls::MainSwitch == 0){
    return;
  } // if
  
  EnableSensor(@this);
}

void EnableSensor(byte enable)
{
  if(enable == 1)
  {
    @sysvar::CANopen::CAN::Display_ID10::Control::Enabled = 1;
    @sysvar::GUIControls::Node10_ID = gNodeId;
  }
  else
  {
    @sysvar::CANopen::CAN::Display_ID10::Control::Enabled = 0;
    ShutDownLights();
  }
}

on sysvar GUIControls::MainSwitch
{
  EnableSensor(@sysvar::GUIControls::DisplayConnected == 1 && @sysvar::GUIControls::MainSwitch);
}
