Library for the master controller

Dependents:   Test_Controller_Master AEB

Committer:
AndreaAndreoli
Date:
Sat Jun 04 18:37:52 2016 +0000
Revision:
1:03ec2e1d1008
Parent:
0:8e9e8bee3cf4
Child:
2:d114feef8f3b
fixed bug error handling

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AndreaAndreoli 0:8e9e8bee3cf4 1 /*
AndreaAndreoli 0:8e9e8bee3cf4 2 * Academic License - for use in teaching, academic research, and meeting
AndreaAndreoli 0:8e9e8bee3cf4 3 * course requirements at degree granting institutions only. Not for
AndreaAndreoli 0:8e9e8bee3cf4 4 * government, commercial, or other organizational use.
AndreaAndreoli 0:8e9e8bee3cf4 5 *
AndreaAndreoli 0:8e9e8bee3cf4 6 * File: Controller_Master.c
AndreaAndreoli 0:8e9e8bee3cf4 7 *
AndreaAndreoli 0:8e9e8bee3cf4 8 * Code generated for Simulink model 'Controller_Master'.
AndreaAndreoli 0:8e9e8bee3cf4 9 *
AndreaAndreoli 1:03ec2e1d1008 10 * Model version : 1.2
AndreaAndreoli 0:8e9e8bee3cf4 11 * Simulink Coder version : 8.10 (R2016a) 10-Feb-2016
AndreaAndreoli 1:03ec2e1d1008 12 * C/C++ source code generated on : Sat Jun 04 20:35:28 2016
AndreaAndreoli 0:8e9e8bee3cf4 13 *
AndreaAndreoli 0:8e9e8bee3cf4 14 * Target selection: ert.tlc
AndreaAndreoli 0:8e9e8bee3cf4 15 * Embedded hardware selection: NXP->Cortex-M4
AndreaAndreoli 0:8e9e8bee3cf4 16 * Code generation objectives: Unspecified
AndreaAndreoli 0:8e9e8bee3cf4 17 * Validation result: Not run
AndreaAndreoli 0:8e9e8bee3cf4 18 */
AndreaAndreoli 0:8e9e8bee3cf4 19
AndreaAndreoli 0:8e9e8bee3cf4 20 #include "Controller_Master.h"
AndreaAndreoli 0:8e9e8bee3cf4 21
AndreaAndreoli 0:8e9e8bee3cf4 22 /* Named constants for Chart: '<S1>/AEB' */
AndreaAndreoli 0:8e9e8bee3cf4 23 #define Controller_M_IN_NO_ACTIVE_CHILD ((uint8_T)0U)
AndreaAndreoli 0:8e9e8bee3cf4 24 #define Controller_Master_IN_ACTIVE ((uint8_T)1U)
AndreaAndreoli 0:8e9e8bee3cf4 25 #define Controller_Master_IN_BRAKE ((uint8_T)1U)
AndreaAndreoli 0:8e9e8bee3cf4 26 #define Controller_Master_IN_ERR ((uint8_T)1U)
AndreaAndreoli 0:8e9e8bee3cf4 27 #define Controller_Master_IN_IDLE ((uint8_T)2U)
AndreaAndreoli 0:8e9e8bee3cf4 28 #define Controller_Master_IN_OK ((uint8_T)2U)
AndreaAndreoli 0:8e9e8bee3cf4 29 #define Controller_Master_IN_READY ((uint8_T)2U)
AndreaAndreoli 0:8e9e8bee3cf4 30 #define Controller_Master_IN_WARNING ((uint8_T)3U)
AndreaAndreoli 0:8e9e8bee3cf4 31
AndreaAndreoli 0:8e9e8bee3cf4 32 /* Named constants for Chart: '<S1>/select_command' */
AndreaAndreoli 0:8e9e8bee3cf4 33 #define Controller_Master_IN_BLINK ((uint8_T)1U)
AndreaAndreoli 0:8e9e8bee3cf4 34 #define Controller_Master_IN_BLINK_OFF ((uint8_T)1U)
AndreaAndreoli 0:8e9e8bee3cf4 35 #define Controller_Master_IN_BLINK_ON ((uint8_T)2U)
AndreaAndreoli 0:8e9e8bee3cf4 36 #define Controller_Master_IN_OFF1 ((uint8_T)2U)
AndreaAndreoli 0:8e9e8bee3cf4 37 #define Controller_Master_IN_ON ((uint8_T)3U)
AndreaAndreoli 0:8e9e8bee3cf4 38
AndreaAndreoli 0:8e9e8bee3cf4 39 /*===========*
AndreaAndreoli 0:8e9e8bee3cf4 40 * Constants *
AndreaAndreoli 0:8e9e8bee3cf4 41 *===========*/
AndreaAndreoli 0:8e9e8bee3cf4 42 #define RT_PI 3.14159265358979323846
AndreaAndreoli 0:8e9e8bee3cf4 43 #define RT_PIF 3.1415927F
AndreaAndreoli 0:8e9e8bee3cf4 44 #define RT_LN_10 2.30258509299404568402
AndreaAndreoli 0:8e9e8bee3cf4 45 #define RT_LN_10F 2.3025851F
AndreaAndreoli 0:8e9e8bee3cf4 46 #define RT_LOG10E 0.43429448190325182765
AndreaAndreoli 0:8e9e8bee3cf4 47 #define RT_LOG10EF 0.43429449F
AndreaAndreoli 0:8e9e8bee3cf4 48 #define RT_E 2.7182818284590452354
AndreaAndreoli 0:8e9e8bee3cf4 49 #define RT_EF 2.7182817F
AndreaAndreoli 0:8e9e8bee3cf4 50
AndreaAndreoli 0:8e9e8bee3cf4 51 /*
AndreaAndreoli 0:8e9e8bee3cf4 52 * UNUSED_PARAMETER(x)
AndreaAndreoli 0:8e9e8bee3cf4 53 * Used to specify that a function parameter (argument) is required but not
AndreaAndreoli 0:8e9e8bee3cf4 54 * accessed by the function body.
AndreaAndreoli 0:8e9e8bee3cf4 55 */
AndreaAndreoli 0:8e9e8bee3cf4 56 #ifndef UNUSED_PARAMETER
AndreaAndreoli 0:8e9e8bee3cf4 57 # if defined(__LCC__)
AndreaAndreoli 0:8e9e8bee3cf4 58 # define UNUSED_PARAMETER(x) /* do nothing */
AndreaAndreoli 0:8e9e8bee3cf4 59 # else
AndreaAndreoli 0:8e9e8bee3cf4 60
AndreaAndreoli 0:8e9e8bee3cf4 61 /*
AndreaAndreoli 0:8e9e8bee3cf4 62 * This is the semi-ANSI standard way of indicating that an
AndreaAndreoli 0:8e9e8bee3cf4 63 * unused function parameter is required.
AndreaAndreoli 0:8e9e8bee3cf4 64 */
AndreaAndreoli 0:8e9e8bee3cf4 65 # define UNUSED_PARAMETER(x) (void) (x)
AndreaAndreoli 0:8e9e8bee3cf4 66 # endif
AndreaAndreoli 0:8e9e8bee3cf4 67 #endif
AndreaAndreoli 0:8e9e8bee3cf4 68
AndreaAndreoli 0:8e9e8bee3cf4 69 /* Model step function */
AndreaAndreoli 0:8e9e8bee3cf4 70 void Controller_Master_step(RT_MODEL_Controller_Master_T *const
AndreaAndreoli 0:8e9e8bee3cf4 71 Controller_Master_M, real_T Controller_Master_U_V, real_T
AndreaAndreoli 0:8e9e8bee3cf4 72 Controller_Master_U_D_M, uint8_T Controller_Master_U_Slave, uint8_T
AndreaAndreoli 0:8e9e8bee3cf4 73 *Controller_Master_Y_BRAKE, uint8_T *Controller_Master_Y_LED_BLUE, uint8_T
AndreaAndreoli 0:8e9e8bee3cf4 74 *Controller_Master_Y_LED_RED, uint8_T *Controller_Master_Y_MASTER)
AndreaAndreoli 0:8e9e8bee3cf4 75 {
AndreaAndreoli 0:8e9e8bee3cf4 76 B_Controller_Master_T *Controller_Master_B = ((B_Controller_Master_T *)
AndreaAndreoli 0:8e9e8bee3cf4 77 Controller_Master_M->ModelData.blockIO);
AndreaAndreoli 0:8e9e8bee3cf4 78 DW_Controller_Master_T *Controller_Master_DW = ((DW_Controller_Master_T *)
AndreaAndreoli 0:8e9e8bee3cf4 79 Controller_Master_M->ModelData.dwork);
AndreaAndreoli 0:8e9e8bee3cf4 80 real_T K;
AndreaAndreoli 0:8e9e8bee3cf4 81
AndreaAndreoli 0:8e9e8bee3cf4 82 /* Outputs for Atomic SubSystem: '<Root>/Controller_Master' */
AndreaAndreoli 0:8e9e8bee3cf4 83 /* Chart: '<S1>/AEB' incorporates:
AndreaAndreoli 0:8e9e8bee3cf4 84 * Inport: '<Root>/D_M'
AndreaAndreoli 0:8e9e8bee3cf4 85 * Inport: '<Root>/V'
AndreaAndreoli 0:8e9e8bee3cf4 86 * Memory: '<S1>/Memory'
AndreaAndreoli 0:8e9e8bee3cf4 87 */
AndreaAndreoli 0:8e9e8bee3cf4 88 /* Gateway: Controller_Master/AEB */
AndreaAndreoli 0:8e9e8bee3cf4 89 /* During: Controller_Master/AEB */
AndreaAndreoli 0:8e9e8bee3cf4 90 if (Controller_Master_DW->is_active_c3_Controller_Master == 0U) {
AndreaAndreoli 0:8e9e8bee3cf4 91 /* Entry: Controller_Master/AEB */
AndreaAndreoli 0:8e9e8bee3cf4 92 Controller_Master_DW->is_active_c3_Controller_Master = 1U;
AndreaAndreoli 0:8e9e8bee3cf4 93
AndreaAndreoli 0:8e9e8bee3cf4 94 /* Entry Internal: Controller_Master/AEB */
AndreaAndreoli 0:8e9e8bee3cf4 95 /* Entry Internal 'AEB': '<S2>:35' */
AndreaAndreoli 0:8e9e8bee3cf4 96 /* Entry Internal 'ERRORS_CHECK_THREAD': '<S2>:33' */
AndreaAndreoli 0:8e9e8bee3cf4 97 /* Transition: '<S2>:38' */
AndreaAndreoli 0:8e9e8bee3cf4 98 Controller_Master_DW->is_ERRORS_CHECK_THREAD = Controller_Master_IN_OK;
AndreaAndreoli 0:8e9e8bee3cf4 99
AndreaAndreoli 0:8e9e8bee3cf4 100 /* Outport: '<Root>/LED_RED' */
AndreaAndreoli 0:8e9e8bee3cf4 101 /* Entry 'OK': '<S2>:37' */
AndreaAndreoli 0:8e9e8bee3cf4 102 /* '<S2>:37:1' Led_Red =uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 103 *Controller_Master_Y_LED_RED = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 104
AndreaAndreoli 0:8e9e8bee3cf4 105 /* Outport: '<Root>/MASTER' */
AndreaAndreoli 0:8e9e8bee3cf4 106 /* '<S2>:37:1' Master = uint8(1); */
AndreaAndreoli 0:8e9e8bee3cf4 107 *Controller_Master_Y_MASTER = 1U;
AndreaAndreoli 0:8e9e8bee3cf4 108
AndreaAndreoli 0:8e9e8bee3cf4 109 /* Entry Internal 'APPLICATION_THREAD': '<S2>:32' */
AndreaAndreoli 0:8e9e8bee3cf4 110 /* Transition: '<S2>:27' */
AndreaAndreoli 0:8e9e8bee3cf4 111 Controller_Master_DW->is_APPLICATION_THREAD = Controller_Master_IN_READY;
AndreaAndreoli 0:8e9e8bee3cf4 112
AndreaAndreoli 0:8e9e8bee3cf4 113 /* Outport: '<Root>/BRAKE' */
AndreaAndreoli 0:8e9e8bee3cf4 114 /* Entry 'READY': '<S2>:21' */
AndreaAndreoli 0:8e9e8bee3cf4 115 /* '<S2>:21:1' Brake = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 116 *Controller_Master_Y_BRAKE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 117
AndreaAndreoli 0:8e9e8bee3cf4 118 /* '<S2>:21:1' Led_Blue = 0; */
AndreaAndreoli 0:8e9e8bee3cf4 119 Controller_Master_B->Led_Blue = 0.0;
AndreaAndreoli 0:8e9e8bee3cf4 120 } else {
AndreaAndreoli 0:8e9e8bee3cf4 121 /* During 'AEB': '<S2>:35' */
AndreaAndreoli 0:8e9e8bee3cf4 122 /* During 'ERRORS_CHECK_THREAD': '<S2>:33' */
AndreaAndreoli 0:8e9e8bee3cf4 123 if (Controller_Master_DW->is_ERRORS_CHECK_THREAD != Controller_Master_IN_ERR)
AndreaAndreoli 0:8e9e8bee3cf4 124 {
AndreaAndreoli 0:8e9e8bee3cf4 125 /* During 'OK': '<S2>:37' */
AndreaAndreoli 0:8e9e8bee3cf4 126 /* '<S2>:46:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 127 /* '<S2>:46:1' V > 180 || D > 200 || D < 0; */
AndreaAndreoli 0:8e9e8bee3cf4 128 if ((Controller_Master_U_V > 180.0) || (Controller_Master_U_D_M > 200.0) ||
AndreaAndreoli 0:8e9e8bee3cf4 129 (Controller_Master_U_D_M < 0.0)) {
AndreaAndreoli 0:8e9e8bee3cf4 130 /* Transition: '<S2>:46' */
AndreaAndreoli 0:8e9e8bee3cf4 131 Controller_Master_DW->is_ERRORS_CHECK_THREAD = Controller_Master_IN_ERR;
AndreaAndreoli 0:8e9e8bee3cf4 132
AndreaAndreoli 0:8e9e8bee3cf4 133 /* Outport: '<Root>/LED_RED' */
AndreaAndreoli 0:8e9e8bee3cf4 134 /* Entry 'ERR': '<S2>:42' */
AndreaAndreoli 0:8e9e8bee3cf4 135 /* '<S2>:42:1' Led_Red = uint8(1); */
AndreaAndreoli 0:8e9e8bee3cf4 136 *Controller_Master_Y_LED_RED = 1U;
AndreaAndreoli 0:8e9e8bee3cf4 137
AndreaAndreoli 0:8e9e8bee3cf4 138 /* Outport: '<Root>/MASTER' */
AndreaAndreoli 0:8e9e8bee3cf4 139 /* Entry 'MCU_ERR': '<S2>:40' */
AndreaAndreoli 0:8e9e8bee3cf4 140 /* '<S2>:40:1' Master = uint8(0) ; */
AndreaAndreoli 0:8e9e8bee3cf4 141 *Controller_Master_Y_MASTER = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 142
AndreaAndreoli 0:8e9e8bee3cf4 143 /* '<S2>:40:1' En = false; */
AndreaAndreoli 0:8e9e8bee3cf4 144 Controller_Master_DW->En = false;
AndreaAndreoli 0:8e9e8bee3cf4 145
AndreaAndreoli 0:8e9e8bee3cf4 146 /* Outport: '<Root>/BRAKE' */
AndreaAndreoli 0:8e9e8bee3cf4 147 /* '<S2>:40:1' Brake = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 148 *Controller_Master_Y_BRAKE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 149
AndreaAndreoli 0:8e9e8bee3cf4 150 /* '<S2>:40:3' Led_Blue = 0; */
AndreaAndreoli 0:8e9e8bee3cf4 151 Controller_Master_B->Led_Blue = 0.0;
AndreaAndreoli 0:8e9e8bee3cf4 152 } else {
AndreaAndreoli 0:8e9e8bee3cf4 153 /* '<S2>:43:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 154 /* '<S2>:43:1' D == 0; */
AndreaAndreoli 0:8e9e8bee3cf4 155 if (Controller_Master_U_D_M == 0.0) {
AndreaAndreoli 0:8e9e8bee3cf4 156 /* Transition: '<S2>:43' */
AndreaAndreoli 0:8e9e8bee3cf4 157 Controller_Master_DW->is_ERRORS_CHECK_THREAD =
AndreaAndreoli 0:8e9e8bee3cf4 158 Controller_Master_IN_ERR;
AndreaAndreoli 0:8e9e8bee3cf4 159
AndreaAndreoli 0:8e9e8bee3cf4 160 /* Outport: '<Root>/LED_RED' */
AndreaAndreoli 0:8e9e8bee3cf4 161 /* Entry 'ERR': '<S2>:42' */
AndreaAndreoli 0:8e9e8bee3cf4 162 /* '<S2>:42:1' Led_Red = uint8(1); */
AndreaAndreoli 0:8e9e8bee3cf4 163 *Controller_Master_Y_LED_RED = 1U;
AndreaAndreoli 0:8e9e8bee3cf4 164
AndreaAndreoli 0:8e9e8bee3cf4 165 /* Outport: '<Root>/MASTER' */
AndreaAndreoli 0:8e9e8bee3cf4 166 /* Entry 'SENSOR_ERR': '<S2>:39' */
AndreaAndreoli 0:8e9e8bee3cf4 167 /* '<S2>:39:1' Master = uint8(0) ; */
AndreaAndreoli 0:8e9e8bee3cf4 168 *Controller_Master_Y_MASTER = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 169
AndreaAndreoli 1:03ec2e1d1008 170 /* '<S2>:39:1' En = false; */
AndreaAndreoli 0:8e9e8bee3cf4 171 Controller_Master_DW->En = false;
AndreaAndreoli 0:8e9e8bee3cf4 172
AndreaAndreoli 0:8e9e8bee3cf4 173 /* Outport: '<Root>/BRAKE' */
AndreaAndreoli 1:03ec2e1d1008 174 /* '<S2>:39:1' Brake = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 175 *Controller_Master_Y_BRAKE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 176
AndreaAndreoli 1:03ec2e1d1008 177 /* '<S2>:39:3' Led_Blue = 0; */
AndreaAndreoli 0:8e9e8bee3cf4 178 Controller_Master_B->Led_Blue = 0.0;
AndreaAndreoli 0:8e9e8bee3cf4 179 } else {
AndreaAndreoli 0:8e9e8bee3cf4 180 /* '<S2>:45:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 181 /* '<S2>:45:1' Slave ~= 1; */
AndreaAndreoli 0:8e9e8bee3cf4 182 if (Controller_Master_DW->Memory_PreviousInput != 1) {
AndreaAndreoli 0:8e9e8bee3cf4 183 /* Transition: '<S2>:45' */
AndreaAndreoli 0:8e9e8bee3cf4 184 Controller_Master_DW->is_ERRORS_CHECK_THREAD =
AndreaAndreoli 0:8e9e8bee3cf4 185 Controller_Master_IN_ERR;
AndreaAndreoli 0:8e9e8bee3cf4 186
AndreaAndreoli 0:8e9e8bee3cf4 187 /* Outport: '<Root>/LED_RED' */
AndreaAndreoli 0:8e9e8bee3cf4 188 /* Entry 'ERR': '<S2>:42' */
AndreaAndreoli 0:8e9e8bee3cf4 189 /* '<S2>:42:1' Led_Red = uint8(1); */
AndreaAndreoli 0:8e9e8bee3cf4 190 *Controller_Master_Y_LED_RED = 1U;
AndreaAndreoli 0:8e9e8bee3cf4 191 }
AndreaAndreoli 0:8e9e8bee3cf4 192 }
AndreaAndreoli 0:8e9e8bee3cf4 193 }
AndreaAndreoli 0:8e9e8bee3cf4 194 } else {
AndreaAndreoli 0:8e9e8bee3cf4 195 /* During 'ERR': '<S2>:42' */
AndreaAndreoli 0:8e9e8bee3cf4 196 }
AndreaAndreoli 0:8e9e8bee3cf4 197
AndreaAndreoli 0:8e9e8bee3cf4 198 /* During 'APPLICATION_THREAD': '<S2>:32' */
AndreaAndreoli 0:8e9e8bee3cf4 199 if (Controller_Master_DW->is_APPLICATION_THREAD ==
AndreaAndreoli 0:8e9e8bee3cf4 200 Controller_Master_IN_ACTIVE) {
AndreaAndreoli 0:8e9e8bee3cf4 201 /* During 'ACTIVE': '<S2>:1' */
AndreaAndreoli 0:8e9e8bee3cf4 202 /* '<S2>:26:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 203 /* '<S2>:26:1' En == false; */
AndreaAndreoli 0:8e9e8bee3cf4 204 if (!Controller_Master_DW->En) {
AndreaAndreoli 0:8e9e8bee3cf4 205 /* Transition: '<S2>:26' */
AndreaAndreoli 0:8e9e8bee3cf4 206 /* Exit Internal 'ACTIVE': '<S2>:1' */
AndreaAndreoli 0:8e9e8bee3cf4 207 Controller_Master_DW->is_ACTIVE = Controller_M_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:8e9e8bee3cf4 208 Controller_Master_DW->is_APPLICATION_THREAD = Controller_Master_IN_READY;
AndreaAndreoli 0:8e9e8bee3cf4 209
AndreaAndreoli 0:8e9e8bee3cf4 210 /* Outport: '<Root>/BRAKE' */
AndreaAndreoli 0:8e9e8bee3cf4 211 /* Entry 'READY': '<S2>:21' */
AndreaAndreoli 0:8e9e8bee3cf4 212 /* '<S2>:21:1' Brake = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 213 *Controller_Master_Y_BRAKE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 214
AndreaAndreoli 0:8e9e8bee3cf4 215 /* '<S2>:21:1' Led_Blue = 0; */
AndreaAndreoli 0:8e9e8bee3cf4 216 Controller_Master_B->Led_Blue = 0.0;
AndreaAndreoli 0:8e9e8bee3cf4 217 } else {
AndreaAndreoli 0:8e9e8bee3cf4 218 /* '<S2>:1:1' K = (V^2)/D; */
AndreaAndreoli 0:8e9e8bee3cf4 219 K = Controller_Master_U_V * Controller_Master_U_V /
AndreaAndreoli 0:8e9e8bee3cf4 220 Controller_Master_U_D_M;
AndreaAndreoli 0:8e9e8bee3cf4 221 switch (Controller_Master_DW->is_ACTIVE) {
AndreaAndreoli 0:8e9e8bee3cf4 222 case Controller_Master_IN_BRAKE:
AndreaAndreoli 0:8e9e8bee3cf4 223 /* During 'BRAKE': '<S2>:3' */
AndreaAndreoli 0:8e9e8bee3cf4 224 /* '<S2>:10:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 225 /* '<S2>:10:1' K < 100; */
AndreaAndreoli 0:8e9e8bee3cf4 226 if (K < 100.0) {
AndreaAndreoli 0:8e9e8bee3cf4 227 /* Transition: '<S2>:10' */
AndreaAndreoli 0:8e9e8bee3cf4 228 Controller_Master_DW->is_ACTIVE = Controller_Master_IN_WARNING;
AndreaAndreoli 0:8e9e8bee3cf4 229
AndreaAndreoli 0:8e9e8bee3cf4 230 /* Outport: '<Root>/BRAKE' */
AndreaAndreoli 0:8e9e8bee3cf4 231 /* Entry 'WARNING': '<S2>:5' */
AndreaAndreoli 0:8e9e8bee3cf4 232 /* '<S2>:5:1' Brake = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 233 *Controller_Master_Y_BRAKE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 234 }
AndreaAndreoli 0:8e9e8bee3cf4 235 break;
AndreaAndreoli 0:8e9e8bee3cf4 236
AndreaAndreoli 0:8e9e8bee3cf4 237 case Controller_Master_IN_IDLE:
AndreaAndreoli 0:8e9e8bee3cf4 238 /* During 'IDLE': '<S2>:6' */
AndreaAndreoli 0:8e9e8bee3cf4 239 /* '<S2>:12:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 240 /* '<S2>:12:1' K >= 70; */
AndreaAndreoli 0:8e9e8bee3cf4 241 if (K >= 70.0) {
AndreaAndreoli 0:8e9e8bee3cf4 242 /* Transition: '<S2>:12' */
AndreaAndreoli 0:8e9e8bee3cf4 243 Controller_Master_DW->is_ACTIVE = Controller_Master_IN_WARNING;
AndreaAndreoli 0:8e9e8bee3cf4 244
AndreaAndreoli 0:8e9e8bee3cf4 245 /* Outport: '<Root>/BRAKE' */
AndreaAndreoli 0:8e9e8bee3cf4 246 /* Entry 'WARNING': '<S2>:5' */
AndreaAndreoli 0:8e9e8bee3cf4 247 /* '<S2>:5:1' Brake = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 248 *Controller_Master_Y_BRAKE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 249 }
AndreaAndreoli 0:8e9e8bee3cf4 250 break;
AndreaAndreoli 0:8e9e8bee3cf4 251
AndreaAndreoli 0:8e9e8bee3cf4 252 default:
AndreaAndreoli 0:8e9e8bee3cf4 253 /* During 'WARNING': '<S2>:5' */
AndreaAndreoli 0:8e9e8bee3cf4 254 /* '<S2>:9:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 255 /* '<S2>:9:1' K >= 100; */
AndreaAndreoli 0:8e9e8bee3cf4 256 if (K >= 100.0) {
AndreaAndreoli 0:8e9e8bee3cf4 257 /* Transition: '<S2>:9' */
AndreaAndreoli 0:8e9e8bee3cf4 258 Controller_Master_DW->is_ACTIVE = Controller_Master_IN_BRAKE;
AndreaAndreoli 0:8e9e8bee3cf4 259
AndreaAndreoli 0:8e9e8bee3cf4 260 /* Outport: '<Root>/BRAKE' */
AndreaAndreoli 0:8e9e8bee3cf4 261 /* Entry 'BRAKE': '<S2>:3' */
AndreaAndreoli 0:8e9e8bee3cf4 262 /* '<S2>:3:1' Brake = uint8(1); */
AndreaAndreoli 0:8e9e8bee3cf4 263 *Controller_Master_Y_BRAKE = 1U;
AndreaAndreoli 0:8e9e8bee3cf4 264
AndreaAndreoli 0:8e9e8bee3cf4 265 /* '<S2>:3:1' Led_Blue = 1; */
AndreaAndreoli 0:8e9e8bee3cf4 266 Controller_Master_B->Led_Blue = 1.0;
AndreaAndreoli 0:8e9e8bee3cf4 267 } else {
AndreaAndreoli 0:8e9e8bee3cf4 268 /* '<S2>:11:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 269 /* '<S2>:11:1' K < 70; */
AndreaAndreoli 0:8e9e8bee3cf4 270 if (K < 70.0) {
AndreaAndreoli 0:8e9e8bee3cf4 271 /* Transition: '<S2>:11' */
AndreaAndreoli 0:8e9e8bee3cf4 272 Controller_Master_DW->is_ACTIVE = Controller_Master_IN_IDLE;
AndreaAndreoli 0:8e9e8bee3cf4 273
AndreaAndreoli 0:8e9e8bee3cf4 274 /* Outport: '<Root>/BRAKE' */
AndreaAndreoli 0:8e9e8bee3cf4 275 /* Entry 'IDLE': '<S2>:6' */
AndreaAndreoli 0:8e9e8bee3cf4 276 /* '<S2>:6:1' Brake = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 277 *Controller_Master_Y_BRAKE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 278
AndreaAndreoli 0:8e9e8bee3cf4 279 /* '<S2>:6:1' Led_Blue = 0; */
AndreaAndreoli 0:8e9e8bee3cf4 280 Controller_Master_B->Led_Blue = 0.0;
AndreaAndreoli 0:8e9e8bee3cf4 281 } else {
AndreaAndreoli 0:8e9e8bee3cf4 282 /* '<S2>:5:1' Led_Blue = (K-70)/30; */
AndreaAndreoli 0:8e9e8bee3cf4 283 Controller_Master_B->Led_Blue = (K - 70.0) / 30.0;
AndreaAndreoli 0:8e9e8bee3cf4 284 }
AndreaAndreoli 0:8e9e8bee3cf4 285 }
AndreaAndreoli 0:8e9e8bee3cf4 286 break;
AndreaAndreoli 0:8e9e8bee3cf4 287 }
AndreaAndreoli 0:8e9e8bee3cf4 288 }
AndreaAndreoli 0:8e9e8bee3cf4 289 } else {
AndreaAndreoli 0:8e9e8bee3cf4 290 /* During 'READY': '<S2>:21' */
AndreaAndreoli 0:8e9e8bee3cf4 291 /* '<S2>:23:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 292 /* '<S2>:23:1' En == true; */
AndreaAndreoli 0:8e9e8bee3cf4 293 if (Controller_Master_DW->En) {
AndreaAndreoli 0:8e9e8bee3cf4 294 /* Transition: '<S2>:23' */
AndreaAndreoli 0:8e9e8bee3cf4 295 Controller_Master_DW->is_APPLICATION_THREAD =
AndreaAndreoli 0:8e9e8bee3cf4 296 Controller_Master_IN_ACTIVE;
AndreaAndreoli 0:8e9e8bee3cf4 297
AndreaAndreoli 0:8e9e8bee3cf4 298 /* Entry 'ACTIVE': '<S2>:1' */
AndreaAndreoli 0:8e9e8bee3cf4 299 /* '<S2>:1:1' K = (V^2)/D; */
AndreaAndreoli 0:8e9e8bee3cf4 300 /* Entry Internal 'ACTIVE': '<S2>:1' */
AndreaAndreoli 0:8e9e8bee3cf4 301 /* Transition: '<S2>:51' */
AndreaAndreoli 0:8e9e8bee3cf4 302 Controller_Master_DW->is_ACTIVE = Controller_Master_IN_IDLE;
AndreaAndreoli 0:8e9e8bee3cf4 303
AndreaAndreoli 0:8e9e8bee3cf4 304 /* Outport: '<Root>/BRAKE' */
AndreaAndreoli 0:8e9e8bee3cf4 305 /* Entry 'IDLE': '<S2>:6' */
AndreaAndreoli 0:8e9e8bee3cf4 306 /* '<S2>:6:1' Brake = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 307 *Controller_Master_Y_BRAKE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 308
AndreaAndreoli 0:8e9e8bee3cf4 309 /* '<S2>:6:1' Led_Blue = 0; */
AndreaAndreoli 0:8e9e8bee3cf4 310 Controller_Master_B->Led_Blue = 0.0;
AndreaAndreoli 0:8e9e8bee3cf4 311 }
AndreaAndreoli 0:8e9e8bee3cf4 312 }
AndreaAndreoli 0:8e9e8bee3cf4 313 }
AndreaAndreoli 0:8e9e8bee3cf4 314
AndreaAndreoli 0:8e9e8bee3cf4 315 /* End of Chart: '<S1>/AEB' */
AndreaAndreoli 0:8e9e8bee3cf4 316
AndreaAndreoli 0:8e9e8bee3cf4 317 /* Chart: '<S1>/select_command' */
AndreaAndreoli 0:8e9e8bee3cf4 318 if (Controller_Master_DW->temporalCounter_i1 < MAX_uint32_T) {
AndreaAndreoli 0:8e9e8bee3cf4 319 Controller_Master_DW->temporalCounter_i1++;
AndreaAndreoli 0:8e9e8bee3cf4 320 }
AndreaAndreoli 0:8e9e8bee3cf4 321
AndreaAndreoli 0:8e9e8bee3cf4 322 /* Gateway: Controller_Master/select_command */
AndreaAndreoli 0:8e9e8bee3cf4 323 /* During: Controller_Master/select_command */
AndreaAndreoli 0:8e9e8bee3cf4 324 if (Controller_Master_DW->is_active_c2_Controller_Master == 0U) {
AndreaAndreoli 0:8e9e8bee3cf4 325 /* Entry: Controller_Master/select_command */
AndreaAndreoli 0:8e9e8bee3cf4 326 Controller_Master_DW->is_active_c2_Controller_Master = 1U;
AndreaAndreoli 0:8e9e8bee3cf4 327
AndreaAndreoli 0:8e9e8bee3cf4 328 /* Entry Internal: Controller_Master/select_command */
AndreaAndreoli 0:8e9e8bee3cf4 329 /* Transition: '<S3>:2' */
AndreaAndreoli 0:8e9e8bee3cf4 330 Controller_Master_DW->is_c2_Controller_Master = Controller_Master_IN_OFF1;
AndreaAndreoli 0:8e9e8bee3cf4 331
AndreaAndreoli 0:8e9e8bee3cf4 332 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:8e9e8bee3cf4 333 /* Entry 'OFF1': '<S3>:3' */
AndreaAndreoli 0:8e9e8bee3cf4 334 /* '<S3>:3:1' led = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 335 *Controller_Master_Y_LED_BLUE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 336 } else {
AndreaAndreoli 0:8e9e8bee3cf4 337 switch (Controller_Master_DW->is_c2_Controller_Master) {
AndreaAndreoli 0:8e9e8bee3cf4 338 case Controller_Master_IN_BLINK:
AndreaAndreoli 0:8e9e8bee3cf4 339 /* During 'BLINK': '<S3>:20' */
AndreaAndreoli 0:8e9e8bee3cf4 340 /* '<S3>:7:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 341 /* '<S3>:7:1' enable == 1; */
AndreaAndreoli 0:8e9e8bee3cf4 342 if (Controller_Master_B->Led_Blue == 1.0) {
AndreaAndreoli 0:8e9e8bee3cf4 343 /* Transition: '<S3>:7' */
AndreaAndreoli 0:8e9e8bee3cf4 344 /* Exit Internal 'BLINK': '<S3>:20' */
AndreaAndreoli 0:8e9e8bee3cf4 345 Controller_Master_DW->is_BLINK = Controller_M_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:8e9e8bee3cf4 346 Controller_Master_DW->is_c2_Controller_Master = Controller_Master_IN_ON;
AndreaAndreoli 0:8e9e8bee3cf4 347
AndreaAndreoli 0:8e9e8bee3cf4 348 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:8e9e8bee3cf4 349 /* Entry 'ON': '<S3>:6' */
AndreaAndreoli 0:8e9e8bee3cf4 350 /* '<S3>:6:1' led = uint8(1); */
AndreaAndreoli 0:8e9e8bee3cf4 351 *Controller_Master_Y_LED_BLUE = 1U;
AndreaAndreoli 0:8e9e8bee3cf4 352 } else {
AndreaAndreoli 0:8e9e8bee3cf4 353 /* '<S3>:21:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 354 /* '<S3>:21:1' enable == 0; */
AndreaAndreoli 0:8e9e8bee3cf4 355 if (Controller_Master_B->Led_Blue == 0.0) {
AndreaAndreoli 0:8e9e8bee3cf4 356 /* Transition: '<S3>:21' */
AndreaAndreoli 0:8e9e8bee3cf4 357 /* Exit Internal 'BLINK': '<S3>:20' */
AndreaAndreoli 0:8e9e8bee3cf4 358 Controller_Master_DW->is_BLINK = Controller_M_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:8e9e8bee3cf4 359 Controller_Master_DW->is_c2_Controller_Master =
AndreaAndreoli 0:8e9e8bee3cf4 360 Controller_Master_IN_OFF1;
AndreaAndreoli 0:8e9e8bee3cf4 361
AndreaAndreoli 0:8e9e8bee3cf4 362 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:8e9e8bee3cf4 363 /* Entry 'OFF1': '<S3>:3' */
AndreaAndreoli 0:8e9e8bee3cf4 364 /* '<S3>:3:1' led = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 365 *Controller_Master_Y_LED_BLUE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 366 } else if (Controller_Master_DW->is_BLINK ==
AndreaAndreoli 0:8e9e8bee3cf4 367 Controller_Master_IN_BLINK_OFF) {
AndreaAndreoli 0:8e9e8bee3cf4 368 /* During 'BLINK_OFF': '<S3>:11' */
AndreaAndreoli 0:8e9e8bee3cf4 369 /* '<S3>:14:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 370 /* '<S3>:14:1' after(1-enable,sec); */
AndreaAndreoli 0:8e9e8bee3cf4 371 if (Controller_Master_DW->temporalCounter_i1 >= (uint32_T)ceil((1.0 -
AndreaAndreoli 0:8e9e8bee3cf4 372 Controller_Master_B->Led_Blue) / 0.2 - 2.0E-9)) {
AndreaAndreoli 0:8e9e8bee3cf4 373 /* Transition: '<S3>:14' */
AndreaAndreoli 0:8e9e8bee3cf4 374 Controller_Master_DW->is_BLINK = Controller_Master_IN_BLINK_ON;
AndreaAndreoli 0:8e9e8bee3cf4 375 Controller_Master_DW->temporalCounter_i1 = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 376
AndreaAndreoli 0:8e9e8bee3cf4 377 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:8e9e8bee3cf4 378 /* Entry 'BLINK_ON': '<S3>:13' */
AndreaAndreoli 0:8e9e8bee3cf4 379 /* '<S3>:13:1' led = uint8(1); */
AndreaAndreoli 0:8e9e8bee3cf4 380 *Controller_Master_Y_LED_BLUE = 1U;
AndreaAndreoli 0:8e9e8bee3cf4 381 }
AndreaAndreoli 0:8e9e8bee3cf4 382 } else {
AndreaAndreoli 0:8e9e8bee3cf4 383 /* During 'BLINK_ON': '<S3>:13' */
AndreaAndreoli 0:8e9e8bee3cf4 384 /* '<S3>:15:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 385 /* '<S3>:15:1' after(0.1,sec); */
AndreaAndreoli 0:8e9e8bee3cf4 386 if (Controller_Master_DW->temporalCounter_i1 >= 1U) {
AndreaAndreoli 0:8e9e8bee3cf4 387 /* Transition: '<S3>:15' */
AndreaAndreoli 0:8e9e8bee3cf4 388 Controller_Master_DW->is_BLINK = Controller_Master_IN_BLINK_OFF;
AndreaAndreoli 0:8e9e8bee3cf4 389 Controller_Master_DW->temporalCounter_i1 = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 390
AndreaAndreoli 0:8e9e8bee3cf4 391 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:8e9e8bee3cf4 392 /* Entry 'BLINK_OFF': '<S3>:11' */
AndreaAndreoli 0:8e9e8bee3cf4 393 /* '<S3>:11:1' led = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 394 *Controller_Master_Y_LED_BLUE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 395 }
AndreaAndreoli 0:8e9e8bee3cf4 396 }
AndreaAndreoli 0:8e9e8bee3cf4 397 }
AndreaAndreoli 0:8e9e8bee3cf4 398 break;
AndreaAndreoli 0:8e9e8bee3cf4 399
AndreaAndreoli 0:8e9e8bee3cf4 400 case Controller_Master_IN_OFF1:
AndreaAndreoli 0:8e9e8bee3cf4 401 /* During 'OFF1': '<S3>:3' */
AndreaAndreoli 0:8e9e8bee3cf4 402 /* '<S3>:22:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 403 /* '<S3>:22:1' enable == 1; */
AndreaAndreoli 0:8e9e8bee3cf4 404 if (Controller_Master_B->Led_Blue == 1.0) {
AndreaAndreoli 0:8e9e8bee3cf4 405 /* Transition: '<S3>:22' */
AndreaAndreoli 0:8e9e8bee3cf4 406 Controller_Master_DW->is_c2_Controller_Master = Controller_Master_IN_ON;
AndreaAndreoli 0:8e9e8bee3cf4 407
AndreaAndreoli 0:8e9e8bee3cf4 408 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:8e9e8bee3cf4 409 /* Entry 'ON': '<S3>:6' */
AndreaAndreoli 0:8e9e8bee3cf4 410 /* '<S3>:6:1' led = uint8(1); */
AndreaAndreoli 0:8e9e8bee3cf4 411 *Controller_Master_Y_LED_BLUE = 1U;
AndreaAndreoli 0:8e9e8bee3cf4 412 } else {
AndreaAndreoli 0:8e9e8bee3cf4 413 /* '<S3>:12:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 414 /* '<S3>:12:1' enable >0 && enable <1; */
AndreaAndreoli 0:8e9e8bee3cf4 415 if ((Controller_Master_B->Led_Blue > 0.0) &&
AndreaAndreoli 0:8e9e8bee3cf4 416 (Controller_Master_B->Led_Blue < 1.0)) {
AndreaAndreoli 0:8e9e8bee3cf4 417 /* Transition: '<S3>:12' */
AndreaAndreoli 0:8e9e8bee3cf4 418 Controller_Master_DW->is_c2_Controller_Master =
AndreaAndreoli 0:8e9e8bee3cf4 419 Controller_Master_IN_BLINK;
AndreaAndreoli 0:8e9e8bee3cf4 420
AndreaAndreoli 0:8e9e8bee3cf4 421 /* Entry Internal 'BLINK': '<S3>:20' */
AndreaAndreoli 0:8e9e8bee3cf4 422 /* Transition: '<S3>:24' */
AndreaAndreoli 0:8e9e8bee3cf4 423 Controller_Master_DW->is_BLINK = Controller_Master_IN_BLINK_OFF;
AndreaAndreoli 0:8e9e8bee3cf4 424 Controller_Master_DW->temporalCounter_i1 = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 425
AndreaAndreoli 0:8e9e8bee3cf4 426 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:8e9e8bee3cf4 427 /* Entry 'BLINK_OFF': '<S3>:11' */
AndreaAndreoli 0:8e9e8bee3cf4 428 /* '<S3>:11:1' led = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 429 *Controller_Master_Y_LED_BLUE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 430 }
AndreaAndreoli 0:8e9e8bee3cf4 431 }
AndreaAndreoli 0:8e9e8bee3cf4 432 break;
AndreaAndreoli 0:8e9e8bee3cf4 433
AndreaAndreoli 0:8e9e8bee3cf4 434 default:
AndreaAndreoli 0:8e9e8bee3cf4 435 /* During 'ON': '<S3>:6' */
AndreaAndreoli 0:8e9e8bee3cf4 436 /* '<S3>:4:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 437 /* '<S3>:4:1' enable == 0; */
AndreaAndreoli 0:8e9e8bee3cf4 438 if (Controller_Master_B->Led_Blue == 0.0) {
AndreaAndreoli 0:8e9e8bee3cf4 439 /* Transition: '<S3>:4' */
AndreaAndreoli 0:8e9e8bee3cf4 440 Controller_Master_DW->is_c2_Controller_Master =
AndreaAndreoli 0:8e9e8bee3cf4 441 Controller_Master_IN_OFF1;
AndreaAndreoli 0:8e9e8bee3cf4 442
AndreaAndreoli 0:8e9e8bee3cf4 443 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:8e9e8bee3cf4 444 /* Entry 'OFF1': '<S3>:3' */
AndreaAndreoli 0:8e9e8bee3cf4 445 /* '<S3>:3:1' led = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 446 *Controller_Master_Y_LED_BLUE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 447 } else {
AndreaAndreoli 0:8e9e8bee3cf4 448 /* '<S3>:23:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:8e9e8bee3cf4 449 /* '<S3>:23:1' enable >0 && enable <1; */
AndreaAndreoli 0:8e9e8bee3cf4 450 if ((Controller_Master_B->Led_Blue > 0.0) &&
AndreaAndreoli 0:8e9e8bee3cf4 451 (Controller_Master_B->Led_Blue < 1.0)) {
AndreaAndreoli 0:8e9e8bee3cf4 452 /* Transition: '<S3>:23' */
AndreaAndreoli 0:8e9e8bee3cf4 453 Controller_Master_DW->is_c2_Controller_Master =
AndreaAndreoli 0:8e9e8bee3cf4 454 Controller_Master_IN_BLINK;
AndreaAndreoli 0:8e9e8bee3cf4 455
AndreaAndreoli 0:8e9e8bee3cf4 456 /* Entry Internal 'BLINK': '<S3>:20' */
AndreaAndreoli 0:8e9e8bee3cf4 457 /* Transition: '<S3>:24' */
AndreaAndreoli 0:8e9e8bee3cf4 458 Controller_Master_DW->is_BLINK = Controller_Master_IN_BLINK_OFF;
AndreaAndreoli 0:8e9e8bee3cf4 459 Controller_Master_DW->temporalCounter_i1 = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 460
AndreaAndreoli 0:8e9e8bee3cf4 461 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:8e9e8bee3cf4 462 /* Entry 'BLINK_OFF': '<S3>:11' */
AndreaAndreoli 0:8e9e8bee3cf4 463 /* '<S3>:11:1' led = uint8(0); */
AndreaAndreoli 0:8e9e8bee3cf4 464 *Controller_Master_Y_LED_BLUE = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 465 }
AndreaAndreoli 0:8e9e8bee3cf4 466 }
AndreaAndreoli 0:8e9e8bee3cf4 467 break;
AndreaAndreoli 0:8e9e8bee3cf4 468 }
AndreaAndreoli 0:8e9e8bee3cf4 469 }
AndreaAndreoli 0:8e9e8bee3cf4 470
AndreaAndreoli 0:8e9e8bee3cf4 471 /* End of Chart: '<S1>/select_command' */
AndreaAndreoli 0:8e9e8bee3cf4 472
AndreaAndreoli 0:8e9e8bee3cf4 473 /* Update for Memory: '<S1>/Memory' incorporates:
AndreaAndreoli 0:8e9e8bee3cf4 474 * Update for Inport: '<Root>/SLAVE'
AndreaAndreoli 0:8e9e8bee3cf4 475 */
AndreaAndreoli 0:8e9e8bee3cf4 476 Controller_Master_DW->Memory_PreviousInput = Controller_Master_U_Slave;
AndreaAndreoli 0:8e9e8bee3cf4 477
AndreaAndreoli 0:8e9e8bee3cf4 478 /* End of Outputs for SubSystem: '<Root>/Controller_Master' */
AndreaAndreoli 0:8e9e8bee3cf4 479 }
AndreaAndreoli 0:8e9e8bee3cf4 480
AndreaAndreoli 0:8e9e8bee3cf4 481 /* Model initialize function */
AndreaAndreoli 0:8e9e8bee3cf4 482 void Controller_Master_initialize(RT_MODEL_Controller_Master_T *const
AndreaAndreoli 0:8e9e8bee3cf4 483 Controller_Master_M, real_T *Controller_Master_U_V, real_T
AndreaAndreoli 0:8e9e8bee3cf4 484 *Controller_Master_U_D_M, uint8_T *Controller_Master_U_Slave, uint8_T
AndreaAndreoli 0:8e9e8bee3cf4 485 *Controller_Master_Y_BRAKE, uint8_T *Controller_Master_Y_LED_BLUE, uint8_T
AndreaAndreoli 0:8e9e8bee3cf4 486 *Controller_Master_Y_LED_RED, uint8_T *Controller_Master_Y_MASTER)
AndreaAndreoli 0:8e9e8bee3cf4 487 {
AndreaAndreoli 0:8e9e8bee3cf4 488 DW_Controller_Master_T *Controller_Master_DW = ((DW_Controller_Master_T *)
AndreaAndreoli 0:8e9e8bee3cf4 489 Controller_Master_M->ModelData.dwork);
AndreaAndreoli 0:8e9e8bee3cf4 490 B_Controller_Master_T *Controller_Master_B = ((B_Controller_Master_T *)
AndreaAndreoli 0:8e9e8bee3cf4 491 Controller_Master_M->ModelData.blockIO);
AndreaAndreoli 0:8e9e8bee3cf4 492
AndreaAndreoli 0:8e9e8bee3cf4 493 /* Registration code */
AndreaAndreoli 0:8e9e8bee3cf4 494
AndreaAndreoli 0:8e9e8bee3cf4 495 /* block I/O */
AndreaAndreoli 0:8e9e8bee3cf4 496 (void) memset(((void *) Controller_Master_B), 0,
AndreaAndreoli 0:8e9e8bee3cf4 497 sizeof(B_Controller_Master_T));
AndreaAndreoli 0:8e9e8bee3cf4 498
AndreaAndreoli 0:8e9e8bee3cf4 499 /* states (dwork) */
AndreaAndreoli 0:8e9e8bee3cf4 500 (void) memset((void *)Controller_Master_DW, 0,
AndreaAndreoli 0:8e9e8bee3cf4 501 sizeof(DW_Controller_Master_T));
AndreaAndreoli 0:8e9e8bee3cf4 502
AndreaAndreoli 0:8e9e8bee3cf4 503 /* external inputs */
AndreaAndreoli 0:8e9e8bee3cf4 504 (*Controller_Master_U_V) = 0.0;
AndreaAndreoli 0:8e9e8bee3cf4 505 (*Controller_Master_U_D_M) = 0.0;
AndreaAndreoli 0:8e9e8bee3cf4 506 (*Controller_Master_U_Slave) = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 507
AndreaAndreoli 0:8e9e8bee3cf4 508 /* external outputs */
AndreaAndreoli 0:8e9e8bee3cf4 509 (*Controller_Master_Y_BRAKE) = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 510 (*Controller_Master_Y_LED_BLUE) = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 511 (*Controller_Master_Y_LED_RED) = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 512 (*Controller_Master_Y_MASTER) = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 513
AndreaAndreoli 0:8e9e8bee3cf4 514 /* SystemInitialize for Atomic SubSystem: '<Root>/Controller_Master' */
AndreaAndreoli 0:8e9e8bee3cf4 515 /* InitializeConditions for Memory: '<S1>/Memory' */
AndreaAndreoli 0:8e9e8bee3cf4 516 Controller_Master_DW->Memory_PreviousInput = 1U;
AndreaAndreoli 0:8e9e8bee3cf4 517
AndreaAndreoli 0:8e9e8bee3cf4 518 /* SystemInitialize for Chart: '<S1>/AEB' */
AndreaAndreoli 0:8e9e8bee3cf4 519 Controller_Master_DW->is_APPLICATION_THREAD = Controller_M_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:8e9e8bee3cf4 520 Controller_Master_DW->is_ACTIVE = Controller_M_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:8e9e8bee3cf4 521 Controller_Master_DW->is_ERRORS_CHECK_THREAD = Controller_M_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:8e9e8bee3cf4 522 Controller_Master_DW->is_active_c3_Controller_Master = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 523 Controller_Master_DW->En = true;
AndreaAndreoli 0:8e9e8bee3cf4 524
AndreaAndreoli 0:8e9e8bee3cf4 525 /* SystemInitialize for Chart: '<S1>/select_command' */
AndreaAndreoli 0:8e9e8bee3cf4 526 Controller_Master_DW->is_BLINK = Controller_M_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:8e9e8bee3cf4 527 Controller_Master_DW->temporalCounter_i1 = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 528 Controller_Master_DW->is_active_c2_Controller_Master = 0U;
AndreaAndreoli 0:8e9e8bee3cf4 529 Controller_Master_DW->is_c2_Controller_Master =
AndreaAndreoli 0:8e9e8bee3cf4 530 Controller_M_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:8e9e8bee3cf4 531
AndreaAndreoli 0:8e9e8bee3cf4 532 /* End of SystemInitialize for SubSystem: '<Root>/Controller_Master' */
AndreaAndreoli 0:8e9e8bee3cf4 533 }
AndreaAndreoli 0:8e9e8bee3cf4 534
AndreaAndreoli 0:8e9e8bee3cf4 535 /* Model terminate function */
AndreaAndreoli 0:8e9e8bee3cf4 536 void Controller_Master_terminate(RT_MODEL_Controller_Master_T *const
AndreaAndreoli 0:8e9e8bee3cf4 537 Controller_Master_M)
AndreaAndreoli 0:8e9e8bee3cf4 538 {
AndreaAndreoli 0:8e9e8bee3cf4 539 /* (no terminate code required) */
AndreaAndreoli 0:8e9e8bee3cf4 540 UNUSED_PARAMETER(Controller_Master_M);
AndreaAndreoli 0:8e9e8bee3cf4 541 }
AndreaAndreoli 0:8e9e8bee3cf4 542
AndreaAndreoli 0:8e9e8bee3cf4 543 /*
AndreaAndreoli 0:8e9e8bee3cf4 544 * File trailer for generated code.
AndreaAndreoli 0:8e9e8bee3cf4 545 *
AndreaAndreoli 0:8e9e8bee3cf4 546 * [EOF]
AndreaAndreoli 0:8e9e8bee3cf4 547 */
AndreaAndreoli 0:8e9e8bee3cf4 548