/*@!Encoding:1252*/
includes
{
  #include "CANopenHelper.cin"
}

variables
{
  // ------------------------------------------------
  // File information
  // Copyright         : 2017, Vector Informatik GmbH
  // ------------------------------------------------

  // Globals for "I_O_Device_1" device
  BYTE gNodeId          = 10;
  char gNodeLabel[32]   = "I_O_Device_1_ID10";

  sysvarInt * gRunLEDVar;
  sysvarInt * gErrLEDVar;
  msTimer cycleTimer;
  const int sendFreq = 100;  // frequency to change values
}

on preStart
{
  gRunLEDVar = sysvar::GUIControls::Node10_State;
  gErrLEDVar = sysvar::GUIControls::Node10_ErrLed;
  @sysvar::GUIControls::Node10_ID = gNodeId;
}

on sysvar CANopen::CANopen::I_O_Device_1_ID10::Control::CommunicationState
{
  CANopenUpdateState(@this);
}

on timer cycleTimer
{
  byte val6000sub3;
  byte val6000sub4;

  val6000sub3 = @sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_3_Read_Input_8_Bit3;
  val6000sub4 = @sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_4_Read_Input_8_Bit4;
  val6000sub3++;
  val6000sub4--;
  @sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_3_Read_Input_8_Bit3 = val6000sub3;
  @sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_4_Read_Input_8_Bit4 = val6000sub4;
  SetTimer(cycleTimer, sendFreq);
}

on sysvar CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_3_Read_Input_8_Bit3
{
  DWORD value;
  value = @this;
  @sysvar::GUIControls::N10_6000_3_1 = (value & 0x01) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_3_2 = (value & 0x02) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_3_3 = (value & 0x04) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_3_4 = (value & 0x08) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_3_5 = (value & 0x10) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_3_6 = (value & 0x20) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_3_7 = (value & 0x40) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_3_8 = (value & 0x80) ? 1 : 0;
}

on sysvar CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_4_Read_Input_8_Bit4
//on envVar evN10_6000_4
{
  DWORD value;
  value = @this;
  @sysvar::GUIControls::N10_6000_4_1 = (value & 0x01) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_4_2 = (value & 0x02) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_4_3 = (value & 0x04) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_4_4 = (value & 0x08) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_4_5 = (value & 0x10) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_4_6 = (value & 0x20) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_4_7 = (value & 0x40) ? 1 : 0;
  @sysvar::GUIControls::N10_6000_4_8 = (value & 0x80) ? 1 : 0;
}

void ChangeBit(sysvarInt* mySysVar, dword biti, char b)
{
  DWORD value;
  value = @mySysVar;
  if(b)
  {
    value |= biti;
  }
  else
  {
    value &= ~biti;
  }
  @mySysVar = value;
}

on sysvar GUIControls::N10_6000_1_1
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_1_Read_Input_8_Bit1, 0x01, @this);
}

on sysvar GUIControls::N10_6000_1_2
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_1_Read_Input_8_Bit1, 0x02, @this);
}

on sysvar GUIControls::N10_6000_1_3
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_1_Read_Input_8_Bit1, 0x04, @this);
}

on sysvar GUIControls::N10_6000_1_4
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_1_Read_Input_8_Bit1, 0x08, @this);
}

on sysvar GUIControls::N10_6000_1_5
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_1_Read_Input_8_Bit1, 0x10, @this);
}

on sysvar GUIControls::N10_6000_1_6
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_1_Read_Input_8_Bit1, 0x20, @this);
}

on sysvar GUIControls::N10_6000_1_7
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_1_Read_Input_8_Bit1, 0x40, @this);
}

on sysvar GUIControls::N10_6000_1_8
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_1_Read_Input_8_Bit1, 0x80, @this);
}

//----------------------------------------------------------------------------------------------------

on sysvar GUIControls::N10_6000_2_1
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_2_Read_Input_8_Bit2, 0x01, @this);
}

on sysvar GUIControls::N10_6000_2_2
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_2_Read_Input_8_Bit2, 0x02, @this);
}

on sysvar GUIControls::N10_6000_2_3
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_2_Read_Input_8_Bit2, 0x04, @this);
}

on sysvar GUIControls::N10_6000_2_4
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_2_Read_Input_8_Bit2, 0x08, @this);
}

on sysvar GUIControls::N10_6000_2_5
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_2_Read_Input_8_Bit2, 0x10, @this);
}

on sysvar GUIControls::N10_6000_2_6
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_2_Read_Input_8_Bit2, 0x20, @this);
}

on sysvar GUIControls::N10_6000_2_7
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_2_Read_Input_8_Bit2, 0x40, @this);
}

on sysvar GUIControls::N10_6000_2_8
{
  ChangeBit(sysvar::CANopen::CANopen::I_O_Device_1_ID10::_0x6000_Read_Input_8_Bit::_0x6000_2_Read_Input_8_Bit2, 0x80, @this);
}
