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_DRV.c | 291 +++++++++++++++++++++ 1 file changed, 291 insertions(+) create mode 100644 test/monniaux/tacle-bench-powerwindow/powerwindow_PW_Control_DRV.c (limited to 'test/monniaux/tacle-bench-powerwindow/powerwindow_PW_Control_DRV.c') diff --git a/test/monniaux/tacle-bench-powerwindow/powerwindow_PW_Control_DRV.c b/test/monniaux/tacle-bench-powerwindow/powerwindow_PW_Control_DRV.c new file mode 100644 index 00000000..37398528 --- /dev/null +++ b/test/monniaux/tacle-bench-powerwindow/powerwindow_PW_Control_DRV.c @@ -0,0 +1,291 @@ +/* + + This program is part of the TACLeBench benchmark suite. + Version V 1.x + + Name: powerwindow_PW_Control_DRV.c + + Author: CoSys-Lab, University of Antwerp + + Function: PW_Control_DRV realizes the functionality of driver 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_DRV.h" +#include "powerwindow_HeaderFiles/powerwindow_PW_Control_DRV_private.h" + + + +/* + Forward declaration of functions +*/ + +void powerwindow_PW_Control_DRV_initialize(void); +void powerwindow_PW_Control_DRV_terminate(void); +void powerwindow_PW_Control_DRV_main(void); + + +/* Block states (auto storage) */ +powerwindow_D_Work_powerwindow_PW_Control_D powerwindow_PW_Control_DR_DWork; + +/* External inputs (root inport signals with auto storage) */ +powerwindow_ExternalInputs_powerwindow_PW_C powerwindow_PW_Control_DRV_U; + +/* External outputs (root outports fed by signals with auto storage) */ +powerwindow_ExternalOutputs_powerwindow_PW_ powerwindow_PW_Control_DRV_Y; + +/* Real-time model */ +powerwindow_RT_MODEL_PW_Control_DRV powerwindow_PW_Control_DRV_M_; +powerwindow_RT_MODEL_PW_Control_DRV *const powerwindow_PW_Control_DRV_M = &powerwindow_PW_Control_DRV_M_; + + + +/* Model step function */ +void powerwindow_PW_Control_DRV_main(void) +{ + /* local block i/o variables */ + powerwindow_boolean_T rtb_Debounce_Up_DRV; + powerwindow_boolean_T rtb_Debounce_Down_DRV; + + /* ModelReference: '/Debounce_Up_DRV' */ + powerwindow_debounce_main(&powerwindow_PW_Control_DRV_U.In2, &rtb_Debounce_Up_DRV, + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_DRV_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_DRV_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_DRV_DWORK1.rtzce)); + + /* ModelReference: '/Debounce_Down_DRV' */ + powerwindow_debounce_main(&powerwindow_PW_Control_DRV_U.In4, &rtb_Debounce_Down_DRV, + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_DRV_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_DRV_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_DRV_DWORK1.rtzce)); + + /* ModelReference: '/Debounce_Up_PSG_BackL' */ + powerwindow_debounce_main(&powerwindow_PW_Control_DRV_U.In9, + &powerwindow_PW_Control_DRV_Y.Out10, + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackL_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackL_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackL_DWORK1.rtzce)); + + /* ModelReference: '/Debounce_Down_PSG_BackL' */ + powerwindow_debounce_main(&powerwindow_PW_Control_DRV_U.In10, + &powerwindow_PW_Control_DRV_Y.Out11, + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackL_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackL_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackL_DWORK1.rtzce)); + + /* ModelReference: '/Debounce_Up_PSG_Front' */ + powerwindow_debounce_main(&powerwindow_PW_Control_DRV_U.In5, &powerwindow_PW_Control_DRV_Y.Out6, + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_Front_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_Front_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_Front_DWORK1.rtzce)); + + /* ModelReference: '/Debounce_Down_PSG_Front' */ + powerwindow_debounce_main(&powerwindow_PW_Control_DRV_U.In6, &powerwindow_PW_Control_DRV_Y.Out7, + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_Front_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_Front_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_Front_DWORK1.rtzce)); + + /* ModelReference: '/Debounce_Up_PSG_BackR' */ + powerwindow_debounce_main(&powerwindow_PW_Control_DRV_U.In7, &powerwindow_PW_Control_DRV_Y.Out8, + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackR_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackR_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackR_DWORK1.rtzce)); + + /* ModelReference: '/Debounce_Down_PSG_BackR' */ + powerwindow_debounce_main(&powerwindow_PW_Control_DRV_U.In8, &powerwindow_PW_Control_DRV_Y.Out9, + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackR_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackR_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackR_DWORK1.rtzce)); + + /* ModelReference: '/PW_DRV' */ + powerwindow_powerwindow_control_main(&rtb_Debounce_Up_DRV, &rtb_Debounce_Down_DRV, + &powerwindow_PW_Control_DRV_U.In1, + &powerwindow_PW_Control_DRV_U.In3, + &powerwindow_PW_Control_DRV_Y.Out1, + &powerwindow_PW_Control_DRV_Y.Out2, + &powerwindow_PW_Control_DRV_Y.Out3, + &powerwindow_PW_Control_DRV_Y.Out4, + &powerwindow_PW_Control_DRV_Y.Out5, + &(powerwindow_PW_Control_DR_DWork.PW_DRV_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.PW_DRV_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.PW_DRV_DWORK1.rtzce)); +} + + +/* Model initialize function */ +void powerwindow_PW_Control_DRV_initialize(void) +{ + /* Registration code */ + + /* states (dwork) */ + (void) memset((void *)&powerwindow_PW_Control_DR_DWork, 0, + sizeof(powerwindow_D_Work_powerwindow_PW_Control_D)); + + /* external inputs */ + (void) memset((void *)&powerwindow_PW_Control_DRV_U, 0, + sizeof(powerwindow_ExternalInputs_powerwindow_PW_C)); + + /* external outputs */ + (void) memset((void *)&powerwindow_PW_Control_DRV_Y, 0, + sizeof(powerwindow_ExternalOutputs_powerwindow_PW_)); + + /* Model Initialize fcn for ModelReference Block: '/Debounce_Down_DRV' */ + powerwindow_debounce_initialize(powerwindow_PW_DRV_rtmGetErrorStatusPointer(powerwindow_PW_Control_DRV_M), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_DRV_DWORK1.rtm), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_DRV_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_DRV_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_DRV_DWORK1.rtzce)); + + /* Model Initialize fcn for ModelReference Block: '/Debounce_Down_PSG_BackL' */ + powerwindow_debounce_initialize(powerwindow_PW_DRV_rtmGetErrorStatusPointer(powerwindow_PW_Control_DRV_M), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackL_DWORK1.rtm), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackL_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackL_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackL_DWORK1.rtzce)); + + /* Model Initialize fcn for ModelReference Block: '/Debounce_Down_PSG_BackR' */ + powerwindow_debounce_initialize(powerwindow_PW_DRV_rtmGetErrorStatusPointer(powerwindow_PW_Control_DRV_M), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackR_DWORK1.rtm), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackR_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackR_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackR_DWORK1.rtzce)); + + /* Model Initialize fcn for ModelReference Block: '/Debounce_Down_PSG_Front' */ + powerwindow_debounce_initialize(powerwindow_PW_DRV_rtmGetErrorStatusPointer(powerwindow_PW_Control_DRV_M), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_Front_DWORK1.rtm), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_Front_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_Front_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_Front_DWORK1.rtzce)); + + /* Model Initialize fcn for ModelReference Block: '/Debounce_Up_DRV' */ + powerwindow_debounce_initialize(powerwindow_PW_DRV_rtmGetErrorStatusPointer(powerwindow_PW_Control_DRV_M), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_DRV_DWORK1.rtm), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_DRV_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_DRV_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_DRV_DWORK1.rtzce)); + + /* Model Initialize fcn for ModelReference Block: '/Debounce_Up_PSG_BackL' */ + powerwindow_debounce_initialize(powerwindow_PW_DRV_rtmGetErrorStatusPointer(powerwindow_PW_Control_DRV_M), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackL_DWORK1.rtm), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackL_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackL_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackL_DWORK1.rtzce)); + + /* Model Initialize fcn for ModelReference Block: '/Debounce_Up_PSG_BackR' */ + powerwindow_debounce_initialize(powerwindow_PW_DRV_rtmGetErrorStatusPointer(powerwindow_PW_Control_DRV_M), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackR_DWORK1.rtm), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackR_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackR_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackR_DWORK1.rtzce)); + + /* Model Initialize fcn for ModelReference Block: '/Debounce_Up_PSG_Front' */ + powerwindow_debounce_initialize(powerwindow_PW_DRV_rtmGetErrorStatusPointer(powerwindow_PW_Control_DRV_M), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_Front_DWORK1.rtm), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_Front_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_Front_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_Front_DWORK1.rtzce)); + + /* Model Initialize fcn for ModelReference Block: '/PW_DRV' */ + powerwindow_powerwindow_control_initialize(powerwindow_PW_DRV_rtmGetErrorStatusPointer(powerwindow_PW_Control_DRV_M), + &(powerwindow_PW_Control_DR_DWork.PW_DRV_DWORK1.rtm), + &(powerwindow_PW_Control_DR_DWork.PW_DRV_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.PW_DRV_DWORK1.rtdw), + &(powerwindow_PW_Control_DR_DWork.PW_DRV_DWORK1.rtzce)); + + /* Start for ModelReference: '/Debounce_Up_DRV' */ + powerwindow_debounce_Start(&(powerwindow_PW_Control_DR_DWork.Debounce_Up_DRV_DWORK1.rtdw)); + + /* Start for ModelReference: '/Debounce_Down_DRV' */ + powerwindow_debounce_Start(&(powerwindow_PW_Control_DR_DWork.Debounce_Down_DRV_DWORK1.rtdw)); + + /* Start for ModelReference: '/Debounce_Up_PSG_BackL' */ + powerwindow_debounce_Start + (&(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackL_DWORK1.rtdw)); + + /* Start for ModelReference: '/Debounce_Down_PSG_BackL' */ + powerwindow_debounce_Start + (&(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackL_DWORK1.rtdw)); + + /* Start for ModelReference: '/Debounce_Up_PSG_Front' */ + powerwindow_debounce_Start + (&(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_Front_DWORK1.rtdw)); + + /* Start for ModelReference: '/Debounce_Down_PSG_Front' */ + powerwindow_debounce_Start + (&(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_Front_DWORK1.rtdw)); + + /* Start for ModelReference: '/Debounce_Up_PSG_BackR' */ + powerwindow_debounce_Start + (&(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackR_DWORK1.rtdw)); + + /* Start for ModelReference: '/Debounce_Down_PSG_BackR' */ + powerwindow_debounce_Start + (&(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackR_DWORK1.rtdw)); + + /* Start for ModelReference: '/PW_DRV' */ + powerwindow_powerwindow_control_Start(&(powerwindow_PW_Control_DR_DWork.PW_DRV_DWORK1.rtdw)); + + /* SystemInitialize for ModelReference: '/Debounce_Up_DRV' */ + powerwindow_debounce_Init(&(powerwindow_PW_Control_DR_DWork.Debounce_Up_DRV_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_DRV_DWORK1.rtdw)); + + /* SystemInitialize for ModelReference: '/Debounce_Down_DRV' */ + powerwindow_debounce_Init(&(powerwindow_PW_Control_DR_DWork.Debounce_Down_DRV_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_DRV_DWORK1.rtdw)); + + /* SystemInitialize for ModelReference: '/Debounce_Up_PSG_BackL' */ + powerwindow_debounce_Init + (&(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackL_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackL_DWORK1.rtdw)); + + /* SystemInitialize for ModelReference: '/Debounce_Down_PSG_BackL' */ + powerwindow_debounce_Init + (&(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackL_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackL_DWORK1.rtdw)); + + /* SystemInitialize for ModelReference: '/Debounce_Up_PSG_Front' */ + powerwindow_debounce_Init + (&(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_Front_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_Front_DWORK1.rtdw)); + + /* SystemInitialize for ModelReference: '/Debounce_Down_PSG_Front' */ + powerwindow_debounce_Init + (&(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_Front_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_Front_DWORK1.rtdw)); + + /* SystemInitialize for ModelReference: '/Debounce_Up_PSG_BackR' */ + powerwindow_debounce_Init + (&(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackR_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Up_PSG_BackR_DWORK1.rtdw)); + + /* SystemInitialize for ModelReference: '/Debounce_Down_PSG_BackR' */ + powerwindow_debounce_Init + (&(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackR_DWORK1.rtb), + &(powerwindow_PW_Control_DR_DWork.Debounce_Down_PSG_BackR_DWORK1.rtdw)); + + /* SystemInitialize for ModelReference: '/PW_DRV' */ + powerwindow_powerwindow_control_Init(&powerwindow_PW_Control_DRV_Y.Out1, + &powerwindow_PW_Control_DRV_Y.Out2, &powerwindow_PW_Control_DRV_Y.Out3, + &powerwindow_PW_Control_DRV_Y.Out4, &powerwindow_PW_Control_DRV_Y.Out5, + &(powerwindow_PW_Control_DR_DWork.PW_DRV_DWORK1.rtdw)); +} + +/* Model terminate function */ +void powerwindow_PW_Control_DRV_terminate(void) +{ + /* (no terminate code required) */ +} + +/* + * File trailer for generated code. + * + * [EOF] + */ -- cgit