#include "hmiworks.h"
#include "ladder2c.h"
#include "_dict.h"


static int r0_s1_c0(int en)
{
  return (!VAR_OUT_VALUE(lesson)) && (VAR_VALUE(lesson));
}

static int r0_s1(int en)
{
  int result = en;
    if (result) result &= r0_s1_c0(result);
  return result;
}

static int r0_s2_p0(int en)
{
  int result = en;
    if (result) { VAR_SET_PULSE(DO_Light_All); }
    if (result) { VAR_SET(DO_Light_All, 1); }
  return result;
}

static int r0_s2(int en)
{
  int result = en;
  r0_s2_p0(result);
  return result;
}

//======================================================================
//@rung0
//======================================================================
static int r0(int en)
{
  int result = 1;
  if (result) result &= r0_s1(en);
  return r0_s2(result);
}
//======================================================================

static int r1_s1_c0(int en)
{
  return (VAR_OUT_VALUE(lesson)) && (!VAR_VALUE(lesson));
}

static int r1_s1(int en)
{
  int result = en;
    if (result) result &= r1_s1_c0(result);
  return result;
}

static int r1_s2_p0(int en)
{
  int result = en;
    if (result) { VAR_SET(DO_Light_All, 0); }
    if (result) { VAR_SET_NOT_PULSE(DO_Light_All); }
  return result;
}

static int r1_s2(int en)
{
  int result = en;
  r1_s2_p0(result);
  return result;
}

//======================================================================
//@rung1
//======================================================================
static int r1(int en)
{
  int result = 1;
  if (result) result &= r1_s1(en);
  return r1_s2(result);
}
//======================================================================

static rung_func __rung_table[] =
{
  r0,
  r1,
};



int ladder_Lesson_ldx(int en)
{
  g_NextRung = 0;
  while (g_NextRung < 2) {
    __rung_table[g_NextRung++](en);
	if (g_NextRung < 0) break;
  }
  return 0;
}

