Skip to content

Commit

Permalink
Ambient Light Controller
Browse files Browse the repository at this point in the history
  • Loading branch information
mnemonia committed Feb 14, 2015
1 parent d12b408 commit 757e6c2
Show file tree
Hide file tree
Showing 20 changed files with 525 additions and 29 deletions.
112 changes: 112 additions & 0 deletions Findling/Workspace/AmbientLight.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@

/*********************************************************************
SYSTEM Workspace
Module for PROCESS AmbientLight
Filename: AmbientLight.c
generated by CIP Tool(R) Version 4.41.00
February 14, 2015 2:52:48 am
activated code options:
PENDING_ information
'unsigned char' for 'enum'
C-code
*********************************************************************/

/* Include Files */

#include "mTheUnit.h"

/* Process Macro Definitions */

#define SELF status_AmbientLight.write_access_
#define STATUS status_AmbientLight.read_access_
#define TIME time_mTheUnit

/* Process Definitions */

/* MODES */
#define normal 1

/* STATES */
#define Off 1
#define On 2


/* INPULSES */
#define IP_ON 1
#define IP_OFF 2


/* OUTPULSES */

#define O5_OFF 8
#define O5_ON 7
#define O3_OFF 2
#define O3_ON 1
#define O1_IS_OFF 6
#define O1_IS_ON 5
#define O2_OFF 4
#define O2_ON 3

/* External Declarations */

extern unsigned long time_mTheUnit;
extern union tCHNOUT_mTheUnit CHNOUT_mTheUnit;

void fUPDATE_Controller (void);
int fPULSE_AmbientLightDimmer (unsigned char name_);

/* Global Declarations */

union tSTATUS_AmbientLight status_AmbientLight;

/* Function Prototypes */

int fPULSE_AmbientLight (unsigned char name_);
void fINIT_AmbientLight (void);

/* Input Channel Functions */

int fPULSE_AmbientLight (unsigned char name_)
{
switch (name_)
{
/*** INPULSE OFF ***/
case O2_OFF: /*** PULSE CAST from PROCESS LightSwitch ***/
switch (status_AmbientLight.read_access_.STATE)
{
case 2: /* STATE On */
status_AmbientLight.write_access_.STATE = 1; /* STATE Off */
fPULSE_AmbientLightDimmer (O5_OFF);
break;
default:
break;
}
break;
/*** INPULSE ON ***/
case O2_ON: /*** PULSE CAST from PROCESS LightSwitch ***/
switch (status_AmbientLight.read_access_.STATE)
{
case 1: /* STATE Off */
status_AmbientLight.write_access_.STATE = 2; /* STATE On */
fPULSE_AmbientLightDimmer (O5_ON);
break;
default:
break;
}
break;
default:
return 0;
}
return 1;
}

/* Process Initialization Function */

void fINIT_AmbientLight (void)
{
status_AmbientLight.write_access_.STATE = 1; /* STATE Off */
}

/*********************************************************************
End of Module for PROCESS AmbientLight
*********************************************************************/
247 changes: 247 additions & 0 deletions Findling/Workspace/AmbientLightDimmer.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@

/*********************************************************************
SYSTEM Workspace
Module for PROCESS AmbientLightDimmer
Filename: AmbientLightDimmer.c
generated by CIP Tool(R) Version 4.41.00
February 14, 2015 2:52:48 am
activated code options:
PENDING_ information
'unsigned char' for 'enum'
C-code
*********************************************************************/

/* Include Files */

#include "mTheUnit.h"

/* Process Macro Definitions */

#define EXCEPTION return;
#define SELF status_AmbientLightDimmer.write_access_
#define STATUS status_AmbientLightDimmer.read_access_
#define TIME time_mTheUnit

/* Process Definitions */

/* MODES */
#define normal 1

/* STATES */
#define Fade_In 1
#define Fade_Out 2
#define Off 3
#define On 4


/* INPULSES */
#define IP_FADE_IN 1
#define IP_FADE_OUT 2
#define TIMEUP_ 3


/* OUTPULSES */

#define O5_OFF 8
#define O5_ON 7
#define O3_OFF 2
#define O3_ON 1
#define O1_IS_OFF 6
#define O1_IS_ON 5
#define O2_OFF 4
#define O2_ON 3

/* External Declarations */

extern unsigned long time_mTheUnit;
extern struct tTMQE_mTheUnit *tuhead_mTheUnit, *tutail_mTheUnit;
extern union tCHNOUT_mTheUnit CHNOUT_mTheUnit;
extern struct tTIMING_mTheUnit TIMING_mTheUnit[2];

void fUPDATE_Controller (void);
void fSETTIM_mTheUnit (unsigned long *delay_, struct tTMEL_mTheUnit *timer_, struct tTMQE_mTheUnit *timeup_);
void fSTOPTIM_mTheUnit (struct tTMEL_mTheUnit *timer_, struct tTMQE_mTheUnit *timeup_);

/* Global Declarations */

static unsigned long delay_;
struct tPRINST_AmbientLightDimmer IO_AmbientLightDimmer;
union tSTATUS_AmbientLightDimmer status_AmbientLightDimmer;

/* Function Prototypes */

void fICHAN_AmbientDimReply (unsigned char name_);
int fPULSE_AmbientLightDimmer (unsigned char name_);
void fINIT_AmbientLightDimmer (void);

/* Input Channel Functions */

void fICHAN_AmbientDimReply (unsigned char name_)
{
switch (name_)
{
/*** MESSAGE IS_OFF of INPORT AmbientDimmerEvents ***/
case C5_IS_OFF:
switch (status_AmbientLightDimmer.read_access_.STATE)
{
case 2: /* STATE Fade_Out */
status_AmbientLightDimmer.write_access_.STATE = 3; /* STATE Off */
fSTOPTIM_mTheUnit (&IO_AmbientLightDimmer.timer_,
&IO_AmbientLightDimmer.timeup_);
break;
default:
return;
}
break;
/*** MESSAGE IS_ON of INPORT AmbientDimmerEvents ***/
case C5_IS_ON:
switch (status_AmbientLightDimmer.read_access_.STATE)
{
case 1: /* STATE Fade_In */
status_AmbientLightDimmer.write_access_.STATE = 4; /* STATE On */
fSTOPTIM_mTheUnit (&IO_AmbientLightDimmer.timer_,
&IO_AmbientLightDimmer.timeup_);
break;
default:
return;
}
break;
default:
return;
}
fUPDATE_Controller ();
return;
}

#undef EXCEPTION

int fPULSE_AmbientLightDimmer (unsigned char name_)
{
switch (name_)
{
/*** INPULSE FADE_IN ***/
case O5_ON: /*** PULSE CAST from PROCESS AmbientLight ***/
switch (status_AmbientLightDimmer.read_access_.STATE)
{
case 3: /* STATE Off */
{
delay_ = 3; /*** DELAY AMBIENT_DIM_IN_DELAY ***/
status_AmbientLightDimmer.write_access_.STATE = 1; /* STATE Fade_In */
CHNOUT_mTheUnit.CHAN_AmbientDimAction.name_ = C4_PLUS;
OUT_.AmbientDimAction (CHNOUT_mTheUnit.CHAN_AmbientDimAction.name_);
fSETTIM_mTheUnit (&delay_,
&IO_AmbientLightDimmer.timer_,
&IO_AmbientLightDimmer.timeup_);
}
break;
default:
break;
}
break;
/*** INPULSE FADE_OUT ***/
case O5_OFF: /*** PULSE CAST from PROCESS AmbientLight ***/
switch (status_AmbientLightDimmer.read_access_.STATE)
{
case 4: /* STATE On */
{
delay_ = 5; /*** DELAY AMBIENT_DIM_OUT_DELA ***/
status_AmbientLightDimmer.write_access_.STATE = 2; /* STATE Fade_Out */
CHNOUT_mTheUnit.CHAN_AmbientDimAction.name_ = C4_MINUS;
OUT_.AmbientDimAction (CHNOUT_mTheUnit.CHAN_AmbientDimAction.name_);
fSETTIM_mTheUnit (&delay_,
&IO_AmbientLightDimmer.timer_,
&IO_AmbientLightDimmer.timeup_);
}
break;
default:
break;
}
break;
default:
return 0;
}
return 1;
}

/* Timer Functions */

static void fTICK_AmbientLightDimmer (void)
{
if (IO_AmbientLightDimmer.timer_.set_ &&
IO_AmbientLightDimmer.timer_.end_ == time_mTheUnit)
{
IO_AmbientLightDimmer.timer_.set_ = FALSE;
--TIMING_mTheUnit[0].set_;
if (tuhead_mTheUnit != &IO_AmbientLightDimmer.timeup_ &&
!IO_AmbientLightDimmer.timeup_.preced_ &&
!IO_AmbientLightDimmer.timeup_.next_)
{
if (! tuhead_mTheUnit)
tuhead_mTheUnit = tutail_mTheUnit = &IO_AmbientLightDimmer.timeup_;
else
{
tutail_mTheUnit->next_ = &IO_AmbientLightDimmer.timeup_;
IO_AmbientLightDimmer.timeup_.preced_ = tutail_mTheUnit;
tutail_mTheUnit = &IO_AmbientLightDimmer.timeup_;
}
}
}
}

static void fTUHNDL_AmbientLightDimmer (void)
{
struct tTMQE_mTheUnit *element_ = tuhead_mTheUnit;
if (tuhead_mTheUnit == tutail_mTheUnit)
tuhead_mTheUnit = tutail_mTheUnit = 0;
else
{
tuhead_mTheUnit = element_->next_;
element_->next_ = 0;
tuhead_mTheUnit->preced_ = 0;
}
switch (status_AmbientLightDimmer.read_access_.STATE)
{
case 1: /* STATE Fade_In */
{
delay_ = 3; /*** DELAY AMBIENT_DIM_IN_DELAY ***/
status_AmbientLightDimmer.write_access_.STATE = 1; /* STATE Fade_In */
CHNOUT_mTheUnit.CHAN_AmbientDimAction.name_ = C4_PLUS;
OUT_.AmbientDimAction (CHNOUT_mTheUnit.CHAN_AmbientDimAction.name_);
fSETTIM_mTheUnit (&delay_,
&IO_AmbientLightDimmer.timer_,
&IO_AmbientLightDimmer.timeup_);
}
break;
case 2: /* STATE Fade_Out */
{
delay_ = 5; /*** DELAY AMBIENT_DIM_OUT_DELA ***/
status_AmbientLightDimmer.write_access_.STATE = 2; /* STATE Fade_Out */
CHNOUT_mTheUnit.CHAN_AmbientDimAction.name_ = C4_MINUS;
OUT_.AmbientDimAction (CHNOUT_mTheUnit.CHAN_AmbientDimAction.name_);
fSETTIM_mTheUnit (&delay_,
&IO_AmbientLightDimmer.timer_,
&IO_AmbientLightDimmer.timeup_);
}
break;
default:
break;
}
fUPDATE_Controller ();
}

/* Process Initialization Function */

void fINIT_AmbientLightDimmer (void)
{
status_AmbientLightDimmer.write_access_.STATE = 3; /* STATE Off */
IO_AmbientLightDimmer.timer_.set_ = FALSE;
IO_AmbientLightDimmer.timeup_.preced_ = 0;
IO_AmbientLightDimmer.timeup_.next_ = 0;
IO_AmbientLightDimmer.timeup_.proctype_ = 0;
TIMING_mTheUnit[0].tkhndl_ = fTICK_AmbientLightDimmer;
TIMING_mTheUnit[0].tuhndl_ = fTUHNDL_AmbientLightDimmer;
}

/*********************************************************************
End of Module for PROCESS AmbientLightDimmer
*********************************************************************/
4 changes: 3 additions & 1 deletion Findling/Workspace/Light.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Module for PROCESS Light
Filename: Light.c
generated by CIP Tool(R) Version 4.41.00
February 14, 2015 2:08:51 am
February 14, 2015 2:52:48 am
activated code options:
PENDING_ information
'unsigned char' for 'enum'
Expand Down Expand Up @@ -38,6 +38,8 @@

/* OUTPULSES */

#define O5_OFF 8
#define O5_ON 7
#define O3_OFF 2
#define O3_ON 1
#define O1_IS_OFF 6
Expand Down
Loading

0 comments on commit 757e6c2

Please sign in to comment.