From 2f065ddf184e1a712bc9165cb2b4f5b40b2bba33 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Mon, 8 Apr 2019 13:33:45 +0200 Subject: powerwindow from tacle-bench --- .../powerwindow_PW_Control_PSG_BackL.c | 163 +++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 test/monniaux/tacle-bench-powerwindow/powerwindow_PW_Control_PSG_BackL.c (limited to 'test/monniaux/tacle-bench-powerwindow/powerwindow_PW_Control_PSG_BackL.c') diff --git a/test/monniaux/tacle-bench-powerwindow/powerwindow_PW_Control_PSG_BackL.c b/test/monniaux/tacle-bench-powerwindow/powerwindow_PW_Control_PSG_BackL.c new file mode 100644 index 00000000..e2f9be2f --- /dev/null +++ b/test/monniaux/tacle-bench-powerwindow/powerwindow_PW_Control_PSG_BackL.c @@ -0,0 +1,163 @@ +/* + + This program is part of the TACLeBench benchmark suite. + Version V 1.x + + Name: powerwindow_PW_Control_PSG_BackL.c + + Author: CoSys-Lab, University of Antwerp + + Function: PW_Control_DRV realizes the functionality of back-left passenger side powerwindow. It connects the 3 smaller modules together. + + Source: https://github.com/tacle/tacle-bench/blob/master/bench/app/PowerWindow//powerwindow_powerwindow_control.c + + Changes: a brief summary of major functional changes and formatting) + + License: GNU General Public License + +*/ + + +#include "wcclib.h" +#include "powerwindow_HeaderFiles/powerwindow_PW_Control_PSG_BackL.h" +#include "powerwindow_HeaderFiles/powerwindow_PW_Control_PSG_BackL_private.h" + +/* + Forward declaration of functions +*/ + +void powerwindow_PW_Control_PSG_BackL_initialize(void); +void powerwindow_PW_Control_PSG_BackL_terminate(void); +void powerwindow_PW_Control_PSG_BackL_main(void); + + +/* Block states (auto storage) */ +powerwindow_D_Work_PW_Control_PSG_BackL powerwindow_PW_Control_PSG_BackL_DWork; + +/* External inputs (root inport signals with auto storage) */ +powerwindow_ExternalInputs_PW_Control_PSG_BackL powerwindow_PW_Control_PSG_BackL_U; + +/* External outputs (root outports fed by signals with auto storage) */ +powerwindow_ExternalOutputs_PW_Control_PSG_BackL powerwindow_PW_Control_PSG_BackL_Y; + +/* Real-time model */ +powerwindow_RT_MODEL_PW_Control_PSG_BackL powerwindow_PW_Control_PSG_BackL_M_; +powerwindow_RT_MODEL_PW_Control_PSG_BackL *const powerwindow_PW_Control_PSG_BackL_M = &powerwindow_PW_Control_PSG_BackL_M_; + +/* Model step function */ +void powerwindow_PW_Control_PSG_BackL_main(void) +{ + /* local block i/o variables */ + powerwindow_boolean_T rtb_debounce_Up; + powerwindow_boolean_T rtb_debounce_Down; + powerwindow_boolean_T powerwindow_rtb_ControlEx_PSG_BackL_o1; + powerwindow_boolean_T powerwindow_rtb_ControlEx_PSG_BackL_o2; + + /* ModelReference: '/debounce_Up' */ + powerwindow_debounce_main(&powerwindow_PW_Control_PSG_BackL_U.Up_PSG_BackL, &rtb_debounce_Up, + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Down_DWORK1.rtb), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Up_DWORK1.rtdw), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Up_DWORK1.rtzce)); + + /* ModelReference: '/debounce_Down' */ + powerwindow_debounce_main(&powerwindow_PW_Control_PSG_BackL_U.Down_PSG_BackL, &rtb_debounce_Down, + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Down_DWORK1.rtb), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Down_DWORK1.rtdw), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Down_DWORK1.rtzce)); + + /* ModelReference: '/ControlEx_PSG_BackL' */ + powerwindow_controlexclusion_main(&powerwindow_PW_Control_PSG_BackL_U.Up_DRV, &powerwindow_PW_Control_PSG_BackL_U.Down_DRV, + &rtb_debounce_Up, &rtb_debounce_Down, + &powerwindow_rtb_ControlEx_PSG_BackL_o1, &powerwindow_rtb_ControlEx_PSG_BackL_o2); + + /* ModelReference: '/PW_PSG_BackL' */ + powerwindow_powerwindow_control_main(&powerwindow_rtb_ControlEx_PSG_BackL_o1, &powerwindow_rtb_ControlEx_PSG_BackL_o2, + &powerwindow_PW_Control_PSG_BackL_U.endofdetectionrange, + &powerwindow_PW_Control_PSG_BackL_U.currentsense, + &powerwindow_PW_Control_PSG_BackL_Y.window_up, &powerwindow_PW_Control_PSG_BackL_Y.window_down, + &powerwindow_PW_Control_PSG_BackL_Y.overcurrent, &powerwindow_PW_Control_PSG_BackL_Y.pinch, + &powerwindow_PW_Control_PSG_BackL_Y.wake, + &(powerwindow_PW_Control_PSG_BackL_DWork.PW_PSG_BackL_DWORK1.rtb), + &(powerwindow_PW_Control_PSG_BackL_DWork.PW_PSG_BackL_DWORK1.rtdw), + &(powerwindow_PW_Control_PSG_BackL_DWork.PW_PSG_BackL_DWORK1.rtzce)); +} + +/* Model initialize function */ +void powerwindow_PW_Control_PSG_BackL_initialize(void) +{ + /* Registration code */ + + /* initialize error status */ + powerwindow_PW_PSG_BackL_rtmSetErrorStatus(powerwindow_PW_Control_PSG_BackL_M, (NULL)); + + /* states (dwork) */ + (void) memset((void *)&powerwindow_PW_Control_PSG_BackL_DWork, 0, + sizeof(powerwindow_D_Work_PW_Control_PSG_BackL)); + + /* external inputs */ + (void) memset((void *)&powerwindow_PW_Control_PSG_BackL_U, 0, + sizeof(powerwindow_ExternalInputs_PW_Control_PSG_BackL)); + + /* external outputs */ + (void) memset((void *)&powerwindow_PW_Control_PSG_BackL_Y, 0, + sizeof(powerwindow_ExternalOutputs_PW_Control_PSG_BackL)); + + /* Model Initialize fcn for ModelReference Block: '/ControlEx_PSG_BackL' */ + powerwindow_controlexclusion_initialize(); + + /* Model Initialize fcn for ModelReference Block: '/debounce_Down' */ + powerwindow_debounce_initialize(powerwindow_PW_PSG_BackL_rtmGetErrorStatusPointer(powerwindow_PW_Control_PSG_BackL_M), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Down_DWORK1.rtm), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Down_DWORK1.rtb), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Down_DWORK1.rtdw), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Down_DWORK1.rtzce)); + + /* Model Initialize fcn for ModelReference Block: '/debounce_Up' */ + powerwindow_debounce_initialize(powerwindow_PW_PSG_BackL_rtmGetErrorStatusPointer(powerwindow_PW_Control_PSG_BackL_M), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Up_DWORK1.rtm), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Up_DWORK1.rtb), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Up_DWORK1.rtdw), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Up_DWORK1.rtzce)); + + /* Model Initialize fcn for ModelReference Block: '/PW_PSG_BackL' */ + powerwindow_powerwindow_control_initialize(powerwindow_PW_PSG_BackL_rtmGetErrorStatusPointer(powerwindow_PW_Control_PSG_BackL_M), + &(powerwindow_PW_Control_PSG_BackL_DWork.PW_PSG_BackL_DWORK1.rtm), + &(powerwindow_PW_Control_PSG_BackL_DWork.PW_PSG_BackL_DWORK1.rtb), + &(powerwindow_PW_Control_PSG_BackL_DWork.PW_PSG_BackL_DWORK1.rtdw), + &(powerwindow_PW_Control_PSG_BackL_DWork.PW_PSG_BackL_DWORK1.rtzce)); + + /* Start for ModelReference: '/debounce_Up' */ + powerwindow_debounce_Start(&(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Up_DWORK1.rtdw)); + + /* Start for ModelReference: '/debounce_Down' */ + powerwindow_debounce_Start(&(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Down_DWORK1.rtdw)); + + /* Start for ModelReference: '/PW_PSG_BackL' */ + powerwindow_powerwindow_control_Start(&(powerwindow_PW_Control_PSG_BackL_DWork.PW_PSG_BackL_DWORK1.rtdw)); + + /* InitializeConditions for ModelReference: '/debounce_Up' */ + powerwindow_debounce_Init(&(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Up_DWORK1.rtb), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Up_DWORK1.rtdw)); + + /* InitializeConditions for ModelReference: '/debounce_Down' */ + powerwindow_debounce_Init(&(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Down_DWORK1.rtb), + &(powerwindow_PW_Control_PSG_BackL_DWork.Debounce_Down_DWORK1.rtdw)); + + /* InitializeConditions for ModelReference: '/PW_PSG_BackL' */ + powerwindow_powerwindow_control_Init(&powerwindow_PW_Control_PSG_BackL_Y.window_up, + &powerwindow_PW_Control_PSG_BackL_Y.window_down, &powerwindow_PW_Control_PSG_BackL_Y.overcurrent, + &powerwindow_PW_Control_PSG_BackL_Y.pinch, &powerwindow_PW_Control_PSG_BackL_Y.wake, + &(powerwindow_PW_Control_PSG_BackL_DWork.PW_PSG_BackL_DWORK1.rtdw)); +} + +/* Model terminate function */ +void powerwindow_PW_Control_PSG_BackL_terminate(void) +{ + /* (no terminate code required) */ +} + +/* + * File trailer for generated code. + * + * [EOF] + */ -- cgit