Slave controller for AEB and QA item

Committer:
AndreaAndreoli
Date:
Wed Jul 06 09:21:22 2016 +0000
Revision:
0:88fb7562377b
Child:
1:370626c9b451
first commit;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AndreaAndreoli 0:88fb7562377b 1 /*
AndreaAndreoli 0:88fb7562377b 2 * Academic License - for use in teaching, academic research, and meeting
AndreaAndreoli 0:88fb7562377b 3 * course requirements at degree granting institutions only. Not for
AndreaAndreoli 0:88fb7562377b 4 * government, commercial, or other organizational use.
AndreaAndreoli 0:88fb7562377b 5 *
AndreaAndreoli 0:88fb7562377b 6 * File: Controller_Slave.c
AndreaAndreoli 0:88fb7562377b 7 *
AndreaAndreoli 0:88fb7562377b 8 * Code generated for Simulink model 'Controller_Slave'.
AndreaAndreoli 0:88fb7562377b 9 *
AndreaAndreoli 0:88fb7562377b 10 * Model version : 1.6
AndreaAndreoli 0:88fb7562377b 11 * Simulink Coder version : 8.10 (R2016a) 10-Feb-2016
AndreaAndreoli 0:88fb7562377b 12 * C/C++ source code generated on : Wed Jul 06 11:19:35 2016
AndreaAndreoli 0:88fb7562377b 13 *
AndreaAndreoli 0:88fb7562377b 14 * Target selection: ert.tlc
AndreaAndreoli 0:88fb7562377b 15 * Embedded hardware selection: NXP->Cortex-M4
AndreaAndreoli 0:88fb7562377b 16 * Code generation objectives: Unspecified
AndreaAndreoli 0:88fb7562377b 17 * Validation result: Not run
AndreaAndreoli 0:88fb7562377b 18 */
AndreaAndreoli 0:88fb7562377b 19
AndreaAndreoli 0:88fb7562377b 20 #include "Controller_Slave.h"
AndreaAndreoli 0:88fb7562377b 21
AndreaAndreoli 0:88fb7562377b 22 /* Named constants for Chart: '<S1>/AEB_QA' */
AndreaAndreoli 0:88fb7562377b 23 #define Controller_S_IN_NO_ACTIVE_CHILD ((uint8_T)0U)
AndreaAndreoli 0:88fb7562377b 24 #define Controller_Slave_IN_ACCELERATE ((uint8_T)1U)
AndreaAndreoli 0:88fb7562377b 25 #define Controller_Slave_IN_AEB_ACTIVE ((uint8_T)1U)
AndreaAndreoli 0:88fb7562377b 26 #define Controller_Slave_IN_BRAKE ((uint8_T)2U)
AndreaAndreoli 0:88fb7562377b 27 #define Controller_Slave_IN_BRAKE_i ((uint8_T)1U)
AndreaAndreoli 0:88fb7562377b 28 #define Controller_Slave_IN_ERR ((uint8_T)1U)
AndreaAndreoli 0:88fb7562377b 29 #define Controller_Slave_IN_IDLE ((uint8_T)3U)
AndreaAndreoli 0:88fb7562377b 30 #define Controller_Slave_IN_IDLE_b ((uint8_T)2U)
AndreaAndreoli 0:88fb7562377b 31 #define Controller_Slave_IN_OK ((uint8_T)2U)
AndreaAndreoli 0:88fb7562377b 32 #define Controller_Slave_IN_QA_ACTIVE ((uint8_T)2U)
AndreaAndreoli 0:88fb7562377b 33 #define Controller_Slave_IN_READY ((uint8_T)3U)
AndreaAndreoli 0:88fb7562377b 34 #define Controller_Slave_IN_WARNING ((uint8_T)3U)
AndreaAndreoli 0:88fb7562377b 35 #define Controller__IN_SLAVE_ACTIVATION ((uint8_T)3U)
AndreaAndreoli 0:88fb7562377b 36
AndreaAndreoli 0:88fb7562377b 37 /* Named constants for Chart: '<S1>/select_command' */
AndreaAndreoli 0:88fb7562377b 38 #define Controller_Slave_IN_BLINK ((uint8_T)1U)
AndreaAndreoli 0:88fb7562377b 39 #define Controller_Slave_IN_BLINK_OFF ((uint8_T)1U)
AndreaAndreoli 0:88fb7562377b 40 #define Controller_Slave_IN_BLINK_ON ((uint8_T)2U)
AndreaAndreoli 0:88fb7562377b 41 #define Controller_Slave_IN_OFF1 ((uint8_T)2U)
AndreaAndreoli 0:88fb7562377b 42 #define Controller_Slave_IN_ON ((uint8_T)3U)
AndreaAndreoli 0:88fb7562377b 43
AndreaAndreoli 0:88fb7562377b 44 /* Forward declaration for local functions */
AndreaAndreoli 0:88fb7562377b 45 static void Controller_Slave_AEB_QA(const uint8_T *Memory, real_T
AndreaAndreoli 0:88fb7562377b 46 Controller_Slave_U_V, real_T Controller_Slave_U_D_S, boolean_T
AndreaAndreoli 0:88fb7562377b 47 Controller_Slave_U_QA_EN, uint8_T *Controller_Slave_Y_BRAKE, uint8_T
AndreaAndreoli 0:88fb7562377b 48 *Controller_Slave_Y_ACC, uint8_T *Controller_Slave_Y_LED_RED, uint8_T
AndreaAndreoli 0:88fb7562377b 49 *Controller_Slave_Y_LED_GREEN, uint8_T *Controller_Slave_Y_SLAVE,
AndreaAndreoli 0:88fb7562377b 50 B_Controller_Slave_T *Controller_Slave_B, DW_Controller_Slave_T
AndreaAndreoli 0:88fb7562377b 51 *Controller_Slave_DW);
AndreaAndreoli 0:88fb7562377b 52
AndreaAndreoli 0:88fb7562377b 53 /*===========*
AndreaAndreoli 0:88fb7562377b 54 * Constants *
AndreaAndreoli 0:88fb7562377b 55 *===========*/
AndreaAndreoli 0:88fb7562377b 56 #define RT_PI 3.14159265358979323846
AndreaAndreoli 0:88fb7562377b 57 #define RT_PIF 3.1415927F
AndreaAndreoli 0:88fb7562377b 58 #define RT_LN_10 2.30258509299404568402
AndreaAndreoli 0:88fb7562377b 59 #define RT_LN_10F 2.3025851F
AndreaAndreoli 0:88fb7562377b 60 #define RT_LOG10E 0.43429448190325182765
AndreaAndreoli 0:88fb7562377b 61 #define RT_LOG10EF 0.43429449F
AndreaAndreoli 0:88fb7562377b 62 #define RT_E 2.7182818284590452354
AndreaAndreoli 0:88fb7562377b 63 #define RT_EF 2.7182817F
AndreaAndreoli 0:88fb7562377b 64
AndreaAndreoli 0:88fb7562377b 65 /*
AndreaAndreoli 0:88fb7562377b 66 * UNUSED_PARAMETER(x)
AndreaAndreoli 0:88fb7562377b 67 * Used to specify that a function parameter (argument) is required but not
AndreaAndreoli 0:88fb7562377b 68 * accessed by the function body.
AndreaAndreoli 0:88fb7562377b 69 */
AndreaAndreoli 0:88fb7562377b 70 #ifndef UNUSED_PARAMETER
AndreaAndreoli 0:88fb7562377b 71 # if defined(__LCC__)
AndreaAndreoli 0:88fb7562377b 72 # define UNUSED_PARAMETER(x) /* do nothing */
AndreaAndreoli 0:88fb7562377b 73 # else
AndreaAndreoli 0:88fb7562377b 74
AndreaAndreoli 0:88fb7562377b 75 /*
AndreaAndreoli 0:88fb7562377b 76 * This is the semi-ANSI standard way of indicating that an
AndreaAndreoli 0:88fb7562377b 77 * unused function parameter is required.
AndreaAndreoli 0:88fb7562377b 78 */
AndreaAndreoli 0:88fb7562377b 79 # define UNUSED_PARAMETER(x) (void) (x)
AndreaAndreoli 0:88fb7562377b 80 # endif
AndreaAndreoli 0:88fb7562377b 81 #endif
AndreaAndreoli 0:88fb7562377b 82
AndreaAndreoli 0:88fb7562377b 83 /* Function for Chart: '<S1>/AEB_QA' */
AndreaAndreoli 0:88fb7562377b 84 static void Controller_Slave_AEB_QA(const uint8_T *Memory, real_T
AndreaAndreoli 0:88fb7562377b 85 Controller_Slave_U_V, real_T Controller_Slave_U_D_S, boolean_T
AndreaAndreoli 0:88fb7562377b 86 Controller_Slave_U_QA_EN, uint8_T *Controller_Slave_Y_BRAKE, uint8_T
AndreaAndreoli 0:88fb7562377b 87 *Controller_Slave_Y_ACC, uint8_T *Controller_Slave_Y_LED_RED, uint8_T
AndreaAndreoli 0:88fb7562377b 88 *Controller_Slave_Y_LED_GREEN, uint8_T *Controller_Slave_Y_SLAVE,
AndreaAndreoli 0:88fb7562377b 89 B_Controller_Slave_T *Controller_Slave_B, DW_Controller_Slave_T
AndreaAndreoli 0:88fb7562377b 90 *Controller_Slave_DW)
AndreaAndreoli 0:88fb7562377b 91 {
AndreaAndreoli 0:88fb7562377b 92 real_T K;
AndreaAndreoli 0:88fb7562377b 93
AndreaAndreoli 0:88fb7562377b 94 /* During 'AEB_QA': '<S2>:35' */
AndreaAndreoli 0:88fb7562377b 95 /* During 'APPLICATION_THREAD': '<S2>:32' */
AndreaAndreoli 0:88fb7562377b 96 switch (Controller_Slave_DW->is_APPLICATION_THREAD) {
AndreaAndreoli 0:88fb7562377b 97 case Controller_Slave_IN_AEB_ACTIVE:
AndreaAndreoli 0:88fb7562377b 98 /* During 'AEB_ACTIVE': '<S2>:1' */
AndreaAndreoli 0:88fb7562377b 99 /* '<S2>:26:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 100 /* '<S2>:26:1' En == false; */
AndreaAndreoli 0:88fb7562377b 101 if (!Controller_Slave_DW->En) {
AndreaAndreoli 0:88fb7562377b 102 /* Transition: '<S2>:26' */
AndreaAndreoli 0:88fb7562377b 103 /* Exit Internal 'AEB_ACTIVE': '<S2>:1' */
AndreaAndreoli 0:88fb7562377b 104 Controller_Slave_DW->is_AEB_ACTIVE = Controller_S_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:88fb7562377b 105 Controller_Slave_DW->is_APPLICATION_THREAD = Controller_Slave_IN_READY;
AndreaAndreoli 0:88fb7562377b 106
AndreaAndreoli 0:88fb7562377b 107 /* Entry 'READY': '<S2>:21' */
AndreaAndreoli 0:88fb7562377b 108 /* '<S2>:21:1' Brake = uint8(0); */
AndreaAndreoli 0:88fb7562377b 109 *Controller_Slave_Y_BRAKE = 0U;
AndreaAndreoli 0:88fb7562377b 110
AndreaAndreoli 0:88fb7562377b 111 /* '<S2>:21:1' Led_Blue = 0; */
AndreaAndreoli 0:88fb7562377b 112 Controller_Slave_B->Led_Blue = 0.0;
AndreaAndreoli 0:88fb7562377b 113
AndreaAndreoli 0:88fb7562377b 114 /* '<S2>:21:1' Led_Green = uint8(0); */
AndreaAndreoli 0:88fb7562377b 115 *Controller_Slave_Y_LED_GREEN = 0U;
AndreaAndreoli 0:88fb7562377b 116
AndreaAndreoli 0:88fb7562377b 117 /* '<S2>:21:4' Acc =uint8(0); */
AndreaAndreoli 0:88fb7562377b 118 *Controller_Slave_Y_ACC = 0U;
AndreaAndreoli 0:88fb7562377b 119 } else {
AndreaAndreoli 0:88fb7562377b 120 /* Inport: '<Root>/QA_EN' incorporates:
AndreaAndreoli 0:88fb7562377b 121 * Inport: '<Root>/V'
AndreaAndreoli 0:88fb7562377b 122 */
AndreaAndreoli 0:88fb7562377b 123 /* '<S2>:70:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 124 /* '<S2>:70:1' QA_En == true && V<30; */
AndreaAndreoli 0:88fb7562377b 125 if (Controller_Slave_U_QA_EN && (Controller_Slave_U_V < 30.0)) {
AndreaAndreoli 0:88fb7562377b 126 /* Transition: '<S2>:70' */
AndreaAndreoli 0:88fb7562377b 127 /* Exit Internal 'AEB_ACTIVE': '<S2>:1' */
AndreaAndreoli 0:88fb7562377b 128 Controller_Slave_DW->is_AEB_ACTIVE = Controller_S_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:88fb7562377b 129 Controller_Slave_DW->is_APPLICATION_THREAD =
AndreaAndreoli 0:88fb7562377b 130 Controller_Slave_IN_QA_ACTIVE;
AndreaAndreoli 0:88fb7562377b 131
AndreaAndreoli 0:88fb7562377b 132 /* Entry 'QA_ACTIVE': '<S2>:69' */
AndreaAndreoli 0:88fb7562377b 133 /* '<S2>:69:1' K = (V^2)/D; */
AndreaAndreoli 0:88fb7562377b 134 /* Entry Internal 'QA_ACTIVE': '<S2>:69' */
AndreaAndreoli 0:88fb7562377b 135 /* Transition: '<S2>:64' */
AndreaAndreoli 0:88fb7562377b 136 Controller_Slave_DW->is_QA_ACTIVE = Controller_Slave_IN_IDLE;
AndreaAndreoli 0:88fb7562377b 137
AndreaAndreoli 0:88fb7562377b 138 /* Entry 'IDLE': '<S2>:67' */
AndreaAndreoli 0:88fb7562377b 139 /* '<S2>:67:1' Brake = uint8(0); */
AndreaAndreoli 0:88fb7562377b 140 *Controller_Slave_Y_BRAKE = 0U;
AndreaAndreoli 0:88fb7562377b 141
AndreaAndreoli 0:88fb7562377b 142 /* '<S2>:67:1' Led_Blue = 0; */
AndreaAndreoli 0:88fb7562377b 143 Controller_Slave_B->Led_Blue = 0.0;
AndreaAndreoli 0:88fb7562377b 144
AndreaAndreoli 0:88fb7562377b 145 /* '<S2>:67:1' Led_Green = uint8(0); */
AndreaAndreoli 0:88fb7562377b 146 *Controller_Slave_Y_LED_GREEN = 0U;
AndreaAndreoli 0:88fb7562377b 147
AndreaAndreoli 0:88fb7562377b 148 /* '<S2>:67:4' Acc = uint8(0); */
AndreaAndreoli 0:88fb7562377b 149 *Controller_Slave_Y_ACC = 0U;
AndreaAndreoli 0:88fb7562377b 150 } else {
AndreaAndreoli 0:88fb7562377b 151 /* Inport: '<Root>/D_S' */
AndreaAndreoli 0:88fb7562377b 152 /* '<S2>:1:1' K = (V^2)/D; */
AndreaAndreoli 0:88fb7562377b 153 K = Controller_Slave_U_V * Controller_Slave_U_V / Controller_Slave_U_D_S;
AndreaAndreoli 0:88fb7562377b 154 switch (Controller_Slave_DW->is_AEB_ACTIVE) {
AndreaAndreoli 0:88fb7562377b 155 case Controller_Slave_IN_BRAKE_i:
AndreaAndreoli 0:88fb7562377b 156 /* During 'BRAKE': '<S2>:3' */
AndreaAndreoli 0:88fb7562377b 157 /* '<S2>:10:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 158 /* '<S2>:10:1' K < 100; */
AndreaAndreoli 0:88fb7562377b 159 if (K < 100.0) {
AndreaAndreoli 0:88fb7562377b 160 /* Transition: '<S2>:10' */
AndreaAndreoli 0:88fb7562377b 161 Controller_Slave_DW->is_AEB_ACTIVE = Controller_Slave_IN_WARNING;
AndreaAndreoli 0:88fb7562377b 162
AndreaAndreoli 0:88fb7562377b 163 /* Entry 'WARNING': '<S2>:5' */
AndreaAndreoli 0:88fb7562377b 164 /* '<S2>:5:1' Brake = uint8(0); */
AndreaAndreoli 0:88fb7562377b 165 *Controller_Slave_Y_BRAKE = 0U;
AndreaAndreoli 0:88fb7562377b 166 }
AndreaAndreoli 0:88fb7562377b 167 break;
AndreaAndreoli 0:88fb7562377b 168
AndreaAndreoli 0:88fb7562377b 169 case Controller_Slave_IN_IDLE_b:
AndreaAndreoli 0:88fb7562377b 170 /* During 'IDLE': '<S2>:6' */
AndreaAndreoli 0:88fb7562377b 171 /* '<S2>:12:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 172 /* '<S2>:12:1' K >= 70; */
AndreaAndreoli 0:88fb7562377b 173 if (K >= 70.0) {
AndreaAndreoli 0:88fb7562377b 174 /* Transition: '<S2>:12' */
AndreaAndreoli 0:88fb7562377b 175 Controller_Slave_DW->is_AEB_ACTIVE = Controller_Slave_IN_WARNING;
AndreaAndreoli 0:88fb7562377b 176
AndreaAndreoli 0:88fb7562377b 177 /* Entry 'WARNING': '<S2>:5' */
AndreaAndreoli 0:88fb7562377b 178 /* '<S2>:5:1' Brake = uint8(0); */
AndreaAndreoli 0:88fb7562377b 179 *Controller_Slave_Y_BRAKE = 0U;
AndreaAndreoli 0:88fb7562377b 180 }
AndreaAndreoli 0:88fb7562377b 181 break;
AndreaAndreoli 0:88fb7562377b 182
AndreaAndreoli 0:88fb7562377b 183 default:
AndreaAndreoli 0:88fb7562377b 184 /* During 'WARNING': '<S2>:5' */
AndreaAndreoli 0:88fb7562377b 185 /* '<S2>:9:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 186 /* '<S2>:9:1' K >= 100; */
AndreaAndreoli 0:88fb7562377b 187 if (K >= 100.0) {
AndreaAndreoli 0:88fb7562377b 188 /* Transition: '<S2>:9' */
AndreaAndreoli 0:88fb7562377b 189 Controller_Slave_DW->is_AEB_ACTIVE = Controller_Slave_IN_BRAKE_i;
AndreaAndreoli 0:88fb7562377b 190
AndreaAndreoli 0:88fb7562377b 191 /* Entry 'BRAKE': '<S2>:3' */
AndreaAndreoli 0:88fb7562377b 192 /* '<S2>:3:1' Brake = uint8(1); */
AndreaAndreoli 0:88fb7562377b 193 *Controller_Slave_Y_BRAKE = 1U;
AndreaAndreoli 0:88fb7562377b 194
AndreaAndreoli 0:88fb7562377b 195 /* '<S2>:3:1' Led_Blue = 1; */
AndreaAndreoli 0:88fb7562377b 196 Controller_Slave_B->Led_Blue = 1.0;
AndreaAndreoli 0:88fb7562377b 197 } else {
AndreaAndreoli 0:88fb7562377b 198 /* '<S2>:11:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 199 /* '<S2>:11:1' K < 70; */
AndreaAndreoli 0:88fb7562377b 200 if (K < 70.0) {
AndreaAndreoli 0:88fb7562377b 201 /* Transition: '<S2>:11' */
AndreaAndreoli 0:88fb7562377b 202 Controller_Slave_DW->is_AEB_ACTIVE = Controller_Slave_IN_IDLE_b;
AndreaAndreoli 0:88fb7562377b 203
AndreaAndreoli 0:88fb7562377b 204 /* Entry 'IDLE': '<S2>:6' */
AndreaAndreoli 0:88fb7562377b 205 /* '<S2>:6:1' Brake = uint8(0); */
AndreaAndreoli 0:88fb7562377b 206 *Controller_Slave_Y_BRAKE = 0U;
AndreaAndreoli 0:88fb7562377b 207
AndreaAndreoli 0:88fb7562377b 208 /* '<S2>:6:1' Led_Blue = 0; */
AndreaAndreoli 0:88fb7562377b 209 Controller_Slave_B->Led_Blue = 0.0;
AndreaAndreoli 0:88fb7562377b 210 } else {
AndreaAndreoli 0:88fb7562377b 211 /* '<S2>:5:1' Led_Blue = (K-70)/30; */
AndreaAndreoli 0:88fb7562377b 212 Controller_Slave_B->Led_Blue = (K - 70.0) / 30.0;
AndreaAndreoli 0:88fb7562377b 213 }
AndreaAndreoli 0:88fb7562377b 214 }
AndreaAndreoli 0:88fb7562377b 215 break;
AndreaAndreoli 0:88fb7562377b 216 }
AndreaAndreoli 0:88fb7562377b 217 }
AndreaAndreoli 0:88fb7562377b 218 }
AndreaAndreoli 0:88fb7562377b 219 break;
AndreaAndreoli 0:88fb7562377b 220
AndreaAndreoli 0:88fb7562377b 221 case Controller_Slave_IN_QA_ACTIVE:
AndreaAndreoli 0:88fb7562377b 222 /* Inport: '<Root>/QA_EN' incorporates:
AndreaAndreoli 0:88fb7562377b 223 * Inport: '<Root>/V'
AndreaAndreoli 0:88fb7562377b 224 */
AndreaAndreoli 0:88fb7562377b 225 /* During 'QA_ACTIVE': '<S2>:69' */
AndreaAndreoli 0:88fb7562377b 226 /* '<S2>:71:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 227 /* '<S2>:71:1' QA_En ~= true || V>=30; */
AndreaAndreoli 0:88fb7562377b 228 if ((!Controller_Slave_U_QA_EN) || (Controller_Slave_U_V >= 30.0)) {
AndreaAndreoli 0:88fb7562377b 229 /* Transition: '<S2>:71' */
AndreaAndreoli 0:88fb7562377b 230 /* Exit Internal 'QA_ACTIVE': '<S2>:69' */
AndreaAndreoli 0:88fb7562377b 231 Controller_Slave_DW->is_QA_ACTIVE = Controller_S_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:88fb7562377b 232 Controller_Slave_DW->is_APPLICATION_THREAD =
AndreaAndreoli 0:88fb7562377b 233 Controller_Slave_IN_AEB_ACTIVE;
AndreaAndreoli 0:88fb7562377b 234
AndreaAndreoli 0:88fb7562377b 235 /* Entry 'AEB_ACTIVE': '<S2>:1' */
AndreaAndreoli 0:88fb7562377b 236 /* '<S2>:1:1' K = (V^2)/D; */
AndreaAndreoli 0:88fb7562377b 237 /* Entry Internal 'AEB_ACTIVE': '<S2>:1' */
AndreaAndreoli 0:88fb7562377b 238 /* Transition: '<S2>:51' */
AndreaAndreoli 0:88fb7562377b 239 Controller_Slave_DW->is_AEB_ACTIVE = Controller_Slave_IN_IDLE_b;
AndreaAndreoli 0:88fb7562377b 240
AndreaAndreoli 0:88fb7562377b 241 /* Entry 'IDLE': '<S2>:6' */
AndreaAndreoli 0:88fb7562377b 242 /* '<S2>:6:1' Brake = uint8(0); */
AndreaAndreoli 0:88fb7562377b 243 *Controller_Slave_Y_BRAKE = 0U;
AndreaAndreoli 0:88fb7562377b 244
AndreaAndreoli 0:88fb7562377b 245 /* '<S2>:6:1' Led_Blue = 0; */
AndreaAndreoli 0:88fb7562377b 246 Controller_Slave_B->Led_Blue = 0.0;
AndreaAndreoli 0:88fb7562377b 247 } else {
AndreaAndreoli 0:88fb7562377b 248 /* '<S2>:79:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 249 /* '<S2>:79:1' En == false; */
AndreaAndreoli 0:88fb7562377b 250 if (!Controller_Slave_DW->En) {
AndreaAndreoli 0:88fb7562377b 251 /* Transition: '<S2>:79' */
AndreaAndreoli 0:88fb7562377b 252 /* Exit Internal 'QA_ACTIVE': '<S2>:69' */
AndreaAndreoli 0:88fb7562377b 253 Controller_Slave_DW->is_QA_ACTIVE = Controller_S_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:88fb7562377b 254 Controller_Slave_DW->is_APPLICATION_THREAD = Controller_Slave_IN_READY;
AndreaAndreoli 0:88fb7562377b 255
AndreaAndreoli 0:88fb7562377b 256 /* Entry 'READY': '<S2>:21' */
AndreaAndreoli 0:88fb7562377b 257 /* '<S2>:21:1' Brake = uint8(0); */
AndreaAndreoli 0:88fb7562377b 258 *Controller_Slave_Y_BRAKE = 0U;
AndreaAndreoli 0:88fb7562377b 259
AndreaAndreoli 0:88fb7562377b 260 /* '<S2>:21:1' Led_Blue = 0; */
AndreaAndreoli 0:88fb7562377b 261 Controller_Slave_B->Led_Blue = 0.0;
AndreaAndreoli 0:88fb7562377b 262
AndreaAndreoli 0:88fb7562377b 263 /* '<S2>:21:1' Led_Green = uint8(0); */
AndreaAndreoli 0:88fb7562377b 264 *Controller_Slave_Y_LED_GREEN = 0U;
AndreaAndreoli 0:88fb7562377b 265
AndreaAndreoli 0:88fb7562377b 266 /* '<S2>:21:4' Acc =uint8(0); */
AndreaAndreoli 0:88fb7562377b 267 *Controller_Slave_Y_ACC = 0U;
AndreaAndreoli 0:88fb7562377b 268 } else {
AndreaAndreoli 0:88fb7562377b 269 /* Inport: '<Root>/D_S' */
AndreaAndreoli 0:88fb7562377b 270 /* '<S2>:69:1' K = (V^2)/D; */
AndreaAndreoli 0:88fb7562377b 271 K = Controller_Slave_U_V * Controller_Slave_U_V / Controller_Slave_U_D_S;
AndreaAndreoli 0:88fb7562377b 272 switch (Controller_Slave_DW->is_QA_ACTIVE) {
AndreaAndreoli 0:88fb7562377b 273 case Controller_Slave_IN_ACCELERATE:
AndreaAndreoli 0:88fb7562377b 274 /* During 'ACCELERATE': '<S2>:68' */
AndreaAndreoli 0:88fb7562377b 275 /* '<S2>:75:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 276 /* '<S2>:75:1' K >= 100; */
AndreaAndreoli 0:88fb7562377b 277 if (K >= 100.0) {
AndreaAndreoli 0:88fb7562377b 278 /* Transition: '<S2>:75' */
AndreaAndreoli 0:88fb7562377b 279 Controller_Slave_DW->is_QA_ACTIVE = Controller_Slave_IN_IDLE;
AndreaAndreoli 0:88fb7562377b 280
AndreaAndreoli 0:88fb7562377b 281 /* Entry 'IDLE': '<S2>:67' */
AndreaAndreoli 0:88fb7562377b 282 /* '<S2>:67:1' Brake = uint8(0); */
AndreaAndreoli 0:88fb7562377b 283 *Controller_Slave_Y_BRAKE = 0U;
AndreaAndreoli 0:88fb7562377b 284
AndreaAndreoli 0:88fb7562377b 285 /* '<S2>:67:1' Led_Blue = 0; */
AndreaAndreoli 0:88fb7562377b 286 Controller_Slave_B->Led_Blue = 0.0;
AndreaAndreoli 0:88fb7562377b 287
AndreaAndreoli 0:88fb7562377b 288 /* '<S2>:67:1' Led_Green = uint8(0); */
AndreaAndreoli 0:88fb7562377b 289 *Controller_Slave_Y_LED_GREEN = 0U;
AndreaAndreoli 0:88fb7562377b 290
AndreaAndreoli 0:88fb7562377b 291 /* '<S2>:67:4' Acc = uint8(0); */
AndreaAndreoli 0:88fb7562377b 292 *Controller_Slave_Y_ACC = 0U;
AndreaAndreoli 0:88fb7562377b 293 }
AndreaAndreoli 0:88fb7562377b 294 break;
AndreaAndreoli 0:88fb7562377b 295
AndreaAndreoli 0:88fb7562377b 296 case Controller_Slave_IN_BRAKE:
AndreaAndreoli 0:88fb7562377b 297 /* During 'BRAKE': '<S2>:65' */
AndreaAndreoli 0:88fb7562377b 298 /* '<S2>:73:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 299 /* '<S2>:73:1' K <= 100; */
AndreaAndreoli 0:88fb7562377b 300 if (K <= 100.0) {
AndreaAndreoli 0:88fb7562377b 301 /* Transition: '<S2>:73' */
AndreaAndreoli 0:88fb7562377b 302 Controller_Slave_DW->is_QA_ACTIVE = Controller_Slave_IN_IDLE;
AndreaAndreoli 0:88fb7562377b 303
AndreaAndreoli 0:88fb7562377b 304 /* Entry 'IDLE': '<S2>:67' */
AndreaAndreoli 0:88fb7562377b 305 /* '<S2>:67:1' Brake = uint8(0); */
AndreaAndreoli 0:88fb7562377b 306 *Controller_Slave_Y_BRAKE = 0U;
AndreaAndreoli 0:88fb7562377b 307
AndreaAndreoli 0:88fb7562377b 308 /* '<S2>:67:1' Led_Blue = 0; */
AndreaAndreoli 0:88fb7562377b 309 Controller_Slave_B->Led_Blue = 0.0;
AndreaAndreoli 0:88fb7562377b 310
AndreaAndreoli 0:88fb7562377b 311 /* '<S2>:67:1' Led_Green = uint8(0); */
AndreaAndreoli 0:88fb7562377b 312 *Controller_Slave_Y_LED_GREEN = 0U;
AndreaAndreoli 0:88fb7562377b 313
AndreaAndreoli 0:88fb7562377b 314 /* '<S2>:67:4' Acc = uint8(0); */
AndreaAndreoli 0:88fb7562377b 315 *Controller_Slave_Y_ACC = 0U;
AndreaAndreoli 0:88fb7562377b 316 }
AndreaAndreoli 0:88fb7562377b 317 break;
AndreaAndreoli 0:88fb7562377b 318
AndreaAndreoli 0:88fb7562377b 319 default:
AndreaAndreoli 0:88fb7562377b 320 /* During 'IDLE': '<S2>:67' */
AndreaAndreoli 0:88fb7562377b 321 /* '<S2>:72:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 322 /* '<S2>:72:1' K > 100; */
AndreaAndreoli 0:88fb7562377b 323 if (K > 100.0) {
AndreaAndreoli 0:88fb7562377b 324 /* Transition: '<S2>:72' */
AndreaAndreoli 0:88fb7562377b 325 Controller_Slave_DW->is_QA_ACTIVE = Controller_Slave_IN_BRAKE;
AndreaAndreoli 0:88fb7562377b 326
AndreaAndreoli 0:88fb7562377b 327 /* Entry 'BRAKE': '<S2>:65' */
AndreaAndreoli 0:88fb7562377b 328 /* '<S2>:65:1' Brake = uint8(1); */
AndreaAndreoli 0:88fb7562377b 329 *Controller_Slave_Y_BRAKE = 1U;
AndreaAndreoli 0:88fb7562377b 330
AndreaAndreoli 0:88fb7562377b 331 /* '<S2>:65:1' Led_Blue = 1; */
AndreaAndreoli 0:88fb7562377b 332 Controller_Slave_B->Led_Blue = 1.0;
AndreaAndreoli 0:88fb7562377b 333 } else {
AndreaAndreoli 0:88fb7562377b 334 /* '<S2>:74:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 335 /* '<S2>:74:1' K < 100; */
AndreaAndreoli 0:88fb7562377b 336 if (K < 100.0) {
AndreaAndreoli 0:88fb7562377b 337 /* Transition: '<S2>:74' */
AndreaAndreoli 0:88fb7562377b 338 Controller_Slave_DW->is_QA_ACTIVE = Controller_Slave_IN_ACCELERATE;
AndreaAndreoli 0:88fb7562377b 339
AndreaAndreoli 0:88fb7562377b 340 /* Entry 'ACCELERATE': '<S2>:68' */
AndreaAndreoli 0:88fb7562377b 341 /* '<S2>:68:1' Led_Green = uint8(1); */
AndreaAndreoli 0:88fb7562377b 342 *Controller_Slave_Y_LED_GREEN = 1U;
AndreaAndreoli 0:88fb7562377b 343
AndreaAndreoli 0:88fb7562377b 344 /* '<S2>:68:1' Acc = uint8(1); */
AndreaAndreoli 0:88fb7562377b 345 *Controller_Slave_Y_ACC = 1U;
AndreaAndreoli 0:88fb7562377b 346 }
AndreaAndreoli 0:88fb7562377b 347 }
AndreaAndreoli 0:88fb7562377b 348 break;
AndreaAndreoli 0:88fb7562377b 349 }
AndreaAndreoli 0:88fb7562377b 350 }
AndreaAndreoli 0:88fb7562377b 351 }
AndreaAndreoli 0:88fb7562377b 352 break;
AndreaAndreoli 0:88fb7562377b 353
AndreaAndreoli 0:88fb7562377b 354 default:
AndreaAndreoli 0:88fb7562377b 355 /* During 'READY': '<S2>:21' */
AndreaAndreoli 0:88fb7562377b 356 /* '<S2>:23:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 357 /* '<S2>:23:1' En == true; */
AndreaAndreoli 0:88fb7562377b 358 if (Controller_Slave_DW->En) {
AndreaAndreoli 0:88fb7562377b 359 /* Transition: '<S2>:23' */
AndreaAndreoli 0:88fb7562377b 360 Controller_Slave_DW->is_APPLICATION_THREAD =
AndreaAndreoli 0:88fb7562377b 361 Controller_Slave_IN_AEB_ACTIVE;
AndreaAndreoli 0:88fb7562377b 362
AndreaAndreoli 0:88fb7562377b 363 /* Entry 'AEB_ACTIVE': '<S2>:1' */
AndreaAndreoli 0:88fb7562377b 364 /* '<S2>:1:1' K = (V^2)/D; */
AndreaAndreoli 0:88fb7562377b 365 /* Entry Internal 'AEB_ACTIVE': '<S2>:1' */
AndreaAndreoli 0:88fb7562377b 366 /* Transition: '<S2>:51' */
AndreaAndreoli 0:88fb7562377b 367 Controller_Slave_DW->is_AEB_ACTIVE = Controller_Slave_IN_IDLE_b;
AndreaAndreoli 0:88fb7562377b 368
AndreaAndreoli 0:88fb7562377b 369 /* Entry 'IDLE': '<S2>:6' */
AndreaAndreoli 0:88fb7562377b 370 /* '<S2>:6:1' Brake = uint8(0); */
AndreaAndreoli 0:88fb7562377b 371 *Controller_Slave_Y_BRAKE = 0U;
AndreaAndreoli 0:88fb7562377b 372
AndreaAndreoli 0:88fb7562377b 373 /* '<S2>:6:1' Led_Blue = 0; */
AndreaAndreoli 0:88fb7562377b 374 Controller_Slave_B->Led_Blue = 0.0;
AndreaAndreoli 0:88fb7562377b 375 }
AndreaAndreoli 0:88fb7562377b 376 break;
AndreaAndreoli 0:88fb7562377b 377 }
AndreaAndreoli 0:88fb7562377b 378
AndreaAndreoli 0:88fb7562377b 379 /* During 'ERRORS_CHECK_THREAD': '<S2>:80' */
AndreaAndreoli 0:88fb7562377b 380 switch (Controller_Slave_DW->is_ERRORS_CHECK_THREAD) {
AndreaAndreoli 0:88fb7562377b 381 case Controller_Slave_IN_ERR:
AndreaAndreoli 0:88fb7562377b 382 /* During 'ERR': '<S2>:89' */
AndreaAndreoli 0:88fb7562377b 383 break;
AndreaAndreoli 0:88fb7562377b 384
AndreaAndreoli 0:88fb7562377b 385 case Controller_Slave_IN_OK:
AndreaAndreoli 0:88fb7562377b 386 /* Inport: '<Root>/V' incorporates:
AndreaAndreoli 0:88fb7562377b 387 * Inport: '<Root>/D_S'
AndreaAndreoli 0:88fb7562377b 388 */
AndreaAndreoli 0:88fb7562377b 389 /* During 'OK': '<S2>:94' */
AndreaAndreoli 0:88fb7562377b 390 /* '<S2>:83:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 391 /* '<S2>:83:1' V > 180 || D > 200; */
AndreaAndreoli 0:88fb7562377b 392 if ((Controller_Slave_U_V > 180.0) || (Controller_Slave_U_D_S > 200.0)) {
AndreaAndreoli 0:88fb7562377b 393 /* Transition: '<S2>:83' */
AndreaAndreoli 0:88fb7562377b 394 Controller_Slave_DW->is_ERRORS_CHECK_THREAD = Controller_Slave_IN_ERR;
AndreaAndreoli 0:88fb7562377b 395
AndreaAndreoli 0:88fb7562377b 396 /* Entry 'ERR': '<S2>:89' */
AndreaAndreoli 0:88fb7562377b 397 /* '<S2>:89:1' Led_Red = uint8(1); */
AndreaAndreoli 0:88fb7562377b 398 *Controller_Slave_Y_LED_RED = 1U;
AndreaAndreoli 0:88fb7562377b 399
AndreaAndreoli 0:88fb7562377b 400 /* '<S2>:89:1' Slave = uint8(0); */
AndreaAndreoli 0:88fb7562377b 401 *Controller_Slave_Y_SLAVE = 0U;
AndreaAndreoli 0:88fb7562377b 402
AndreaAndreoli 0:88fb7562377b 403 /* '<S2>:89:3' En = false; */
AndreaAndreoli 0:88fb7562377b 404 Controller_Slave_DW->En = false;
AndreaAndreoli 0:88fb7562377b 405
AndreaAndreoli 0:88fb7562377b 406 /* '<S2>:89:3' Brake = uint8(0); */
AndreaAndreoli 0:88fb7562377b 407 *Controller_Slave_Y_BRAKE = 0U;
AndreaAndreoli 0:88fb7562377b 408
AndreaAndreoli 0:88fb7562377b 409 /* '<S2>:89:4' Led_Blue = 0; */
AndreaAndreoli 0:88fb7562377b 410 Controller_Slave_B->Led_Blue = 0.0;
AndreaAndreoli 0:88fb7562377b 411 } else {
AndreaAndreoli 0:88fb7562377b 412 /* '<S2>:82:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 413 /* '<S2>:82:1' D == 0; */
AndreaAndreoli 0:88fb7562377b 414 if (Controller_Slave_U_D_S == 0.0) {
AndreaAndreoli 0:88fb7562377b 415 /* Transition: '<S2>:82' */
AndreaAndreoli 0:88fb7562377b 416 Controller_Slave_DW->is_ERRORS_CHECK_THREAD = Controller_Slave_IN_ERR;
AndreaAndreoli 0:88fb7562377b 417
AndreaAndreoli 0:88fb7562377b 418 /* Entry 'ERR': '<S2>:89' */
AndreaAndreoli 0:88fb7562377b 419 /* '<S2>:89:1' Led_Red = uint8(1); */
AndreaAndreoli 0:88fb7562377b 420 *Controller_Slave_Y_LED_RED = 1U;
AndreaAndreoli 0:88fb7562377b 421
AndreaAndreoli 0:88fb7562377b 422 /* '<S2>:89:1' Slave = uint8(0); */
AndreaAndreoli 0:88fb7562377b 423 *Controller_Slave_Y_SLAVE = 0U;
AndreaAndreoli 0:88fb7562377b 424
AndreaAndreoli 0:88fb7562377b 425 /* '<S2>:89:3' En = false; */
AndreaAndreoli 0:88fb7562377b 426 Controller_Slave_DW->En = false;
AndreaAndreoli 0:88fb7562377b 427
AndreaAndreoli 0:88fb7562377b 428 /* '<S2>:89:3' Brake = uint8(0); */
AndreaAndreoli 0:88fb7562377b 429 *Controller_Slave_Y_BRAKE = 0U;
AndreaAndreoli 0:88fb7562377b 430
AndreaAndreoli 0:88fb7562377b 431 /* '<S2>:89:4' Led_Blue = 0; */
AndreaAndreoli 0:88fb7562377b 432 Controller_Slave_B->Led_Blue = 0.0;
AndreaAndreoli 0:88fb7562377b 433 } else {
AndreaAndreoli 0:88fb7562377b 434 /* '<S2>:85:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 435 /* '<S2>:85:1' Master ~= 1 && En == false; */
AndreaAndreoli 0:88fb7562377b 436 if ((*Memory != 1) && (!Controller_Slave_DW->En)) {
AndreaAndreoli 0:88fb7562377b 437 /* Transition: '<S2>:85' */
AndreaAndreoli 0:88fb7562377b 438 Controller_Slave_DW->is_ERRORS_CHECK_THREAD =
AndreaAndreoli 0:88fb7562377b 439 Controller__IN_SLAVE_ACTIVATION;
AndreaAndreoli 0:88fb7562377b 440
AndreaAndreoli 0:88fb7562377b 441 /* Entry 'SLAVE_ACTIVATION': '<S2>:95' */
AndreaAndreoli 0:88fb7562377b 442 /* '<S2>:95:1' En = true; */
AndreaAndreoli 0:88fb7562377b 443 Controller_Slave_DW->En = true;
AndreaAndreoli 0:88fb7562377b 444 }
AndreaAndreoli 0:88fb7562377b 445 }
AndreaAndreoli 0:88fb7562377b 446 }
AndreaAndreoli 0:88fb7562377b 447 break;
AndreaAndreoli 0:88fb7562377b 448
AndreaAndreoli 0:88fb7562377b 449 default:
AndreaAndreoli 0:88fb7562377b 450 /* During 'SLAVE_ACTIVATION': '<S2>:95' */
AndreaAndreoli 0:88fb7562377b 451 /* Transition: '<S2>:84' */
AndreaAndreoli 0:88fb7562377b 452 Controller_Slave_DW->is_ERRORS_CHECK_THREAD = Controller_Slave_IN_OK;
AndreaAndreoli 0:88fb7562377b 453
AndreaAndreoli 0:88fb7562377b 454 /* Entry 'OK': '<S2>:94' */
AndreaAndreoli 0:88fb7562377b 455 /* '<S2>:94:1' Led_Red = uint8(0); */
AndreaAndreoli 0:88fb7562377b 456 *Controller_Slave_Y_LED_RED = 0U;
AndreaAndreoli 0:88fb7562377b 457
AndreaAndreoli 0:88fb7562377b 458 /* '<S2>:94:1' Slave = uint8(1); */
AndreaAndreoli 0:88fb7562377b 459 *Controller_Slave_Y_SLAVE = 1U;
AndreaAndreoli 0:88fb7562377b 460 break;
AndreaAndreoli 0:88fb7562377b 461 }
AndreaAndreoli 0:88fb7562377b 462 }
AndreaAndreoli 0:88fb7562377b 463
AndreaAndreoli 0:88fb7562377b 464 /* Model step function */
AndreaAndreoli 0:88fb7562377b 465 void Controller_Slave_step(RT_MODEL_Controller_Slave_T *const Controller_Slave_M,
AndreaAndreoli 0:88fb7562377b 466 real_T Controller_Slave_U_V, real_T Controller_Slave_U_D_S, uint8_T
AndreaAndreoli 0:88fb7562377b 467 Controller_Slave_U_Master, boolean_T Controller_Slave_U_QA_EN, uint8_T
AndreaAndreoli 0:88fb7562377b 468 *Controller_Slave_Y_BRAKE, uint8_T *Controller_Slave_Y_ACC, uint8_T
AndreaAndreoli 0:88fb7562377b 469 *Controller_Slave_Y_LED_RED, uint8_T *Controller_Slave_Y_LED_GREEN, uint8_T
AndreaAndreoli 0:88fb7562377b 470 *Controller_Slave_Y_LED_BLUE, uint8_T *Controller_Slave_Y_SLAVE)
AndreaAndreoli 0:88fb7562377b 471 {
AndreaAndreoli 0:88fb7562377b 472 B_Controller_Slave_T *Controller_Slave_B = ((B_Controller_Slave_T *)
AndreaAndreoli 0:88fb7562377b 473 Controller_Slave_M->ModelData.blockIO);
AndreaAndreoli 0:88fb7562377b 474 DW_Controller_Slave_T *Controller_Slave_DW = ((DW_Controller_Slave_T *)
AndreaAndreoli 0:88fb7562377b 475 Controller_Slave_M->ModelData.dwork);
AndreaAndreoli 0:88fb7562377b 476 uint8_T Memory;
AndreaAndreoli 0:88fb7562377b 477
AndreaAndreoli 0:88fb7562377b 478 /* Outputs for Atomic SubSystem: '<Root>/Controller_Slave' */
AndreaAndreoli 0:88fb7562377b 479 /* Memory: '<S1>/Memory' */
AndreaAndreoli 0:88fb7562377b 480 Memory = Controller_Slave_DW->Memory_PreviousInput;
AndreaAndreoli 0:88fb7562377b 481
AndreaAndreoli 0:88fb7562377b 482 /* Chart: '<S1>/AEB_QA' */
AndreaAndreoli 0:88fb7562377b 483 /* Gateway: Controller_Slave/AEB_QA */
AndreaAndreoli 0:88fb7562377b 484 /* During: Controller_Slave/AEB_QA */
AndreaAndreoli 0:88fb7562377b 485 if (Controller_Slave_DW->is_active_c5_Controller_Slave == 0U) {
AndreaAndreoli 0:88fb7562377b 486 /* Entry: Controller_Slave/AEB_QA */
AndreaAndreoli 0:88fb7562377b 487 Controller_Slave_DW->is_active_c5_Controller_Slave = 1U;
AndreaAndreoli 0:88fb7562377b 488
AndreaAndreoli 0:88fb7562377b 489 /* Entry Internal: Controller_Slave/AEB_QA */
AndreaAndreoli 0:88fb7562377b 490 /* Entry Internal 'AEB_QA': '<S2>:35' */
AndreaAndreoli 0:88fb7562377b 491 /* Entry Internal 'APPLICATION_THREAD': '<S2>:32' */
AndreaAndreoli 0:88fb7562377b 492 /* Transition: '<S2>:27' */
AndreaAndreoli 0:88fb7562377b 493 Controller_Slave_DW->is_APPLICATION_THREAD = Controller_Slave_IN_READY;
AndreaAndreoli 0:88fb7562377b 494
AndreaAndreoli 0:88fb7562377b 495 /* Outport: '<Root>/BRAKE' */
AndreaAndreoli 0:88fb7562377b 496 /* Entry 'READY': '<S2>:21' */
AndreaAndreoli 0:88fb7562377b 497 /* '<S2>:21:1' Brake = uint8(0); */
AndreaAndreoli 0:88fb7562377b 498 *Controller_Slave_Y_BRAKE = 0U;
AndreaAndreoli 0:88fb7562377b 499
AndreaAndreoli 0:88fb7562377b 500 /* '<S2>:21:1' Led_Blue = 0; */
AndreaAndreoli 0:88fb7562377b 501 Controller_Slave_B->Led_Blue = 0.0;
AndreaAndreoli 0:88fb7562377b 502
AndreaAndreoli 0:88fb7562377b 503 /* Outport: '<Root>/LED_GREEN' */
AndreaAndreoli 0:88fb7562377b 504 /* '<S2>:21:1' Led_Green = uint8(0); */
AndreaAndreoli 0:88fb7562377b 505 *Controller_Slave_Y_LED_GREEN = 0U;
AndreaAndreoli 0:88fb7562377b 506
AndreaAndreoli 0:88fb7562377b 507 /* Outport: '<Root>/ACC' */
AndreaAndreoli 0:88fb7562377b 508 /* '<S2>:21:4' Acc =uint8(0); */
AndreaAndreoli 0:88fb7562377b 509 *Controller_Slave_Y_ACC = 0U;
AndreaAndreoli 0:88fb7562377b 510
AndreaAndreoli 0:88fb7562377b 511 /* Entry Internal 'ERRORS_CHECK_THREAD': '<S2>:80' */
AndreaAndreoli 0:88fb7562377b 512 /* Transition: '<S2>:81' */
AndreaAndreoli 0:88fb7562377b 513 Controller_Slave_DW->is_ERRORS_CHECK_THREAD = Controller_Slave_IN_OK;
AndreaAndreoli 0:88fb7562377b 514
AndreaAndreoli 0:88fb7562377b 515 /* Outport: '<Root>/LED_RED' */
AndreaAndreoli 0:88fb7562377b 516 /* Entry 'OK': '<S2>:94' */
AndreaAndreoli 0:88fb7562377b 517 /* '<S2>:94:1' Led_Red = uint8(0); */
AndreaAndreoli 0:88fb7562377b 518 *Controller_Slave_Y_LED_RED = 0U;
AndreaAndreoli 0:88fb7562377b 519
AndreaAndreoli 0:88fb7562377b 520 /* Outport: '<Root>/SLAVE' */
AndreaAndreoli 0:88fb7562377b 521 /* '<S2>:94:1' Slave = uint8(1); */
AndreaAndreoli 0:88fb7562377b 522 *Controller_Slave_Y_SLAVE = 1U;
AndreaAndreoli 0:88fb7562377b 523 } else {
AndreaAndreoli 0:88fb7562377b 524 Controller_Slave_AEB_QA(&Memory, Controller_Slave_U_V,
AndreaAndreoli 0:88fb7562377b 525 Controller_Slave_U_D_S, Controller_Slave_U_QA_EN, Controller_Slave_Y_BRAKE,
AndreaAndreoli 0:88fb7562377b 526 Controller_Slave_Y_ACC, Controller_Slave_Y_LED_RED,
AndreaAndreoli 0:88fb7562377b 527 Controller_Slave_Y_LED_GREEN, Controller_Slave_Y_SLAVE, Controller_Slave_B,
AndreaAndreoli 0:88fb7562377b 528 Controller_Slave_DW);
AndreaAndreoli 0:88fb7562377b 529 }
AndreaAndreoli 0:88fb7562377b 530
AndreaAndreoli 0:88fb7562377b 531 /* End of Chart: '<S1>/AEB_QA' */
AndreaAndreoli 0:88fb7562377b 532
AndreaAndreoli 0:88fb7562377b 533 /* Chart: '<S1>/select_command' */
AndreaAndreoli 0:88fb7562377b 534 if (Controller_Slave_DW->temporalCounter_i1 < MAX_uint32_T) {
AndreaAndreoli 0:88fb7562377b 535 Controller_Slave_DW->temporalCounter_i1++;
AndreaAndreoli 0:88fb7562377b 536 }
AndreaAndreoli 0:88fb7562377b 537
AndreaAndreoli 0:88fb7562377b 538 /* Gateway: Controller_Slave/select_command */
AndreaAndreoli 0:88fb7562377b 539 /* During: Controller_Slave/select_command */
AndreaAndreoli 0:88fb7562377b 540 if (Controller_Slave_DW->is_active_c6_Controller_Slave == 0U) {
AndreaAndreoli 0:88fb7562377b 541 /* Entry: Controller_Slave/select_command */
AndreaAndreoli 0:88fb7562377b 542 Controller_Slave_DW->is_active_c6_Controller_Slave = 1U;
AndreaAndreoli 0:88fb7562377b 543
AndreaAndreoli 0:88fb7562377b 544 /* Entry Internal: Controller_Slave/select_command */
AndreaAndreoli 0:88fb7562377b 545 /* Transition: '<S3>:2' */
AndreaAndreoli 0:88fb7562377b 546 Controller_Slave_DW->is_c6_Controller_Slave = Controller_Slave_IN_OFF1;
AndreaAndreoli 0:88fb7562377b 547
AndreaAndreoli 0:88fb7562377b 548 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:88fb7562377b 549 /* Entry 'OFF1': '<S3>:3' */
AndreaAndreoli 0:88fb7562377b 550 /* '<S3>:3:1' led = uint8(0); */
AndreaAndreoli 0:88fb7562377b 551 *Controller_Slave_Y_LED_BLUE = 0U;
AndreaAndreoli 0:88fb7562377b 552 } else {
AndreaAndreoli 0:88fb7562377b 553 switch (Controller_Slave_DW->is_c6_Controller_Slave) {
AndreaAndreoli 0:88fb7562377b 554 case Controller_Slave_IN_BLINK:
AndreaAndreoli 0:88fb7562377b 555 /* During 'BLINK': '<S3>:20' */
AndreaAndreoli 0:88fb7562377b 556 /* '<S3>:7:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 557 /* '<S3>:7:1' enable == 1; */
AndreaAndreoli 0:88fb7562377b 558 if (Controller_Slave_B->Led_Blue == 1.0) {
AndreaAndreoli 0:88fb7562377b 559 /* Transition: '<S3>:7' */
AndreaAndreoli 0:88fb7562377b 560 /* Exit Internal 'BLINK': '<S3>:20' */
AndreaAndreoli 0:88fb7562377b 561 Controller_Slave_DW->is_BLINK = Controller_S_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:88fb7562377b 562 Controller_Slave_DW->is_c6_Controller_Slave = Controller_Slave_IN_ON;
AndreaAndreoli 0:88fb7562377b 563
AndreaAndreoli 0:88fb7562377b 564 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:88fb7562377b 565 /* Entry 'ON': '<S3>:6' */
AndreaAndreoli 0:88fb7562377b 566 /* '<S3>:6:1' led = uint8(1); */
AndreaAndreoli 0:88fb7562377b 567 *Controller_Slave_Y_LED_BLUE = 1U;
AndreaAndreoli 0:88fb7562377b 568 } else {
AndreaAndreoli 0:88fb7562377b 569 /* '<S3>:21:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 570 /* '<S3>:21:1' enable == 0; */
AndreaAndreoli 0:88fb7562377b 571 if (Controller_Slave_B->Led_Blue == 0.0) {
AndreaAndreoli 0:88fb7562377b 572 /* Transition: '<S3>:21' */
AndreaAndreoli 0:88fb7562377b 573 /* Exit Internal 'BLINK': '<S3>:20' */
AndreaAndreoli 0:88fb7562377b 574 Controller_Slave_DW->is_BLINK = Controller_S_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:88fb7562377b 575 Controller_Slave_DW->is_c6_Controller_Slave = Controller_Slave_IN_OFF1;
AndreaAndreoli 0:88fb7562377b 576
AndreaAndreoli 0:88fb7562377b 577 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:88fb7562377b 578 /* Entry 'OFF1': '<S3>:3' */
AndreaAndreoli 0:88fb7562377b 579 /* '<S3>:3:1' led = uint8(0); */
AndreaAndreoli 0:88fb7562377b 580 *Controller_Slave_Y_LED_BLUE = 0U;
AndreaAndreoli 0:88fb7562377b 581 } else if (Controller_Slave_DW->is_BLINK ==
AndreaAndreoli 0:88fb7562377b 582 Controller_Slave_IN_BLINK_OFF) {
AndreaAndreoli 0:88fb7562377b 583 /* During 'BLINK_OFF': '<S3>:11' */
AndreaAndreoli 0:88fb7562377b 584 /* '<S3>:14:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 585 /* '<S3>:14:1' after(1-enable,sec); */
AndreaAndreoli 0:88fb7562377b 586 if (Controller_Slave_DW->temporalCounter_i1 >= (uint32_T)ceil((1.0 -
AndreaAndreoli 0:88fb7562377b 587 Controller_Slave_B->Led_Blue) / 0.1 - 1.0E-9)) {
AndreaAndreoli 0:88fb7562377b 588 /* Transition: '<S3>:14' */
AndreaAndreoli 0:88fb7562377b 589 Controller_Slave_DW->is_BLINK = Controller_Slave_IN_BLINK_ON;
AndreaAndreoli 0:88fb7562377b 590 Controller_Slave_DW->temporalCounter_i1 = 0U;
AndreaAndreoli 0:88fb7562377b 591
AndreaAndreoli 0:88fb7562377b 592 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:88fb7562377b 593 /* Entry 'BLINK_ON': '<S3>:13' */
AndreaAndreoli 0:88fb7562377b 594 /* '<S3>:13:1' led = uint8(1); */
AndreaAndreoli 0:88fb7562377b 595 *Controller_Slave_Y_LED_BLUE = 1U;
AndreaAndreoli 0:88fb7562377b 596 }
AndreaAndreoli 0:88fb7562377b 597 } else {
AndreaAndreoli 0:88fb7562377b 598 /* During 'BLINK_ON': '<S3>:13' */
AndreaAndreoli 0:88fb7562377b 599 /* '<S3>:15:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 600 /* '<S3>:15:1' after(0.1,sec); */
AndreaAndreoli 0:88fb7562377b 601 if (Controller_Slave_DW->temporalCounter_i1 >= 1U) {
AndreaAndreoli 0:88fb7562377b 602 /* Transition: '<S3>:15' */
AndreaAndreoli 0:88fb7562377b 603 Controller_Slave_DW->is_BLINK = Controller_Slave_IN_BLINK_OFF;
AndreaAndreoli 0:88fb7562377b 604 Controller_Slave_DW->temporalCounter_i1 = 0U;
AndreaAndreoli 0:88fb7562377b 605
AndreaAndreoli 0:88fb7562377b 606 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:88fb7562377b 607 /* Entry 'BLINK_OFF': '<S3>:11' */
AndreaAndreoli 0:88fb7562377b 608 /* '<S3>:11:1' led = uint8(0); */
AndreaAndreoli 0:88fb7562377b 609 *Controller_Slave_Y_LED_BLUE = 0U;
AndreaAndreoli 0:88fb7562377b 610 }
AndreaAndreoli 0:88fb7562377b 611 }
AndreaAndreoli 0:88fb7562377b 612 }
AndreaAndreoli 0:88fb7562377b 613 break;
AndreaAndreoli 0:88fb7562377b 614
AndreaAndreoli 0:88fb7562377b 615 case Controller_Slave_IN_OFF1:
AndreaAndreoli 0:88fb7562377b 616 /* During 'OFF1': '<S3>:3' */
AndreaAndreoli 0:88fb7562377b 617 /* '<S3>:22:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 618 /* '<S3>:22:1' enable == 1; */
AndreaAndreoli 0:88fb7562377b 619 if (Controller_Slave_B->Led_Blue == 1.0) {
AndreaAndreoli 0:88fb7562377b 620 /* Transition: '<S3>:22' */
AndreaAndreoli 0:88fb7562377b 621 Controller_Slave_DW->is_c6_Controller_Slave = Controller_Slave_IN_ON;
AndreaAndreoli 0:88fb7562377b 622
AndreaAndreoli 0:88fb7562377b 623 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:88fb7562377b 624 /* Entry 'ON': '<S3>:6' */
AndreaAndreoli 0:88fb7562377b 625 /* '<S3>:6:1' led = uint8(1); */
AndreaAndreoli 0:88fb7562377b 626 *Controller_Slave_Y_LED_BLUE = 1U;
AndreaAndreoli 0:88fb7562377b 627 } else {
AndreaAndreoli 0:88fb7562377b 628 /* '<S3>:12:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 629 /* '<S3>:12:1' enable >0 && enable <1; */
AndreaAndreoli 0:88fb7562377b 630 if ((Controller_Slave_B->Led_Blue > 0.0) &&
AndreaAndreoli 0:88fb7562377b 631 (Controller_Slave_B->Led_Blue < 1.0)) {
AndreaAndreoli 0:88fb7562377b 632 /* Transition: '<S3>:12' */
AndreaAndreoli 0:88fb7562377b 633 Controller_Slave_DW->is_c6_Controller_Slave =
AndreaAndreoli 0:88fb7562377b 634 Controller_Slave_IN_BLINK;
AndreaAndreoli 0:88fb7562377b 635
AndreaAndreoli 0:88fb7562377b 636 /* Entry Internal 'BLINK': '<S3>:20' */
AndreaAndreoli 0:88fb7562377b 637 /* Transition: '<S3>:24' */
AndreaAndreoli 0:88fb7562377b 638 Controller_Slave_DW->is_BLINK = Controller_Slave_IN_BLINK_OFF;
AndreaAndreoli 0:88fb7562377b 639 Controller_Slave_DW->temporalCounter_i1 = 0U;
AndreaAndreoli 0:88fb7562377b 640
AndreaAndreoli 0:88fb7562377b 641 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:88fb7562377b 642 /* Entry 'BLINK_OFF': '<S3>:11' */
AndreaAndreoli 0:88fb7562377b 643 /* '<S3>:11:1' led = uint8(0); */
AndreaAndreoli 0:88fb7562377b 644 *Controller_Slave_Y_LED_BLUE = 0U;
AndreaAndreoli 0:88fb7562377b 645 }
AndreaAndreoli 0:88fb7562377b 646 }
AndreaAndreoli 0:88fb7562377b 647 break;
AndreaAndreoli 0:88fb7562377b 648
AndreaAndreoli 0:88fb7562377b 649 default:
AndreaAndreoli 0:88fb7562377b 650 /* During 'ON': '<S3>:6' */
AndreaAndreoli 0:88fb7562377b 651 /* '<S3>:4:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 652 /* '<S3>:4:1' enable == 0; */
AndreaAndreoli 0:88fb7562377b 653 if (Controller_Slave_B->Led_Blue == 0.0) {
AndreaAndreoli 0:88fb7562377b 654 /* Transition: '<S3>:4' */
AndreaAndreoli 0:88fb7562377b 655 Controller_Slave_DW->is_c6_Controller_Slave = Controller_Slave_IN_OFF1;
AndreaAndreoli 0:88fb7562377b 656
AndreaAndreoli 0:88fb7562377b 657 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:88fb7562377b 658 /* Entry 'OFF1': '<S3>:3' */
AndreaAndreoli 0:88fb7562377b 659 /* '<S3>:3:1' led = uint8(0); */
AndreaAndreoli 0:88fb7562377b 660 *Controller_Slave_Y_LED_BLUE = 0U;
AndreaAndreoli 0:88fb7562377b 661 } else {
AndreaAndreoli 0:88fb7562377b 662 /* '<S3>:23:1' sf_internal_predicateOutput = ... */
AndreaAndreoli 0:88fb7562377b 663 /* '<S3>:23:1' enable >0 && enable <1; */
AndreaAndreoli 0:88fb7562377b 664 if ((Controller_Slave_B->Led_Blue > 0.0) &&
AndreaAndreoli 0:88fb7562377b 665 (Controller_Slave_B->Led_Blue < 1.0)) {
AndreaAndreoli 0:88fb7562377b 666 /* Transition: '<S3>:23' */
AndreaAndreoli 0:88fb7562377b 667 Controller_Slave_DW->is_c6_Controller_Slave =
AndreaAndreoli 0:88fb7562377b 668 Controller_Slave_IN_BLINK;
AndreaAndreoli 0:88fb7562377b 669
AndreaAndreoli 0:88fb7562377b 670 /* Entry Internal 'BLINK': '<S3>:20' */
AndreaAndreoli 0:88fb7562377b 671 /* Transition: '<S3>:24' */
AndreaAndreoli 0:88fb7562377b 672 Controller_Slave_DW->is_BLINK = Controller_Slave_IN_BLINK_OFF;
AndreaAndreoli 0:88fb7562377b 673 Controller_Slave_DW->temporalCounter_i1 = 0U;
AndreaAndreoli 0:88fb7562377b 674
AndreaAndreoli 0:88fb7562377b 675 /* Outport: '<Root>/LED_BLUE' */
AndreaAndreoli 0:88fb7562377b 676 /* Entry 'BLINK_OFF': '<S3>:11' */
AndreaAndreoli 0:88fb7562377b 677 /* '<S3>:11:1' led = uint8(0); */
AndreaAndreoli 0:88fb7562377b 678 *Controller_Slave_Y_LED_BLUE = 0U;
AndreaAndreoli 0:88fb7562377b 679 }
AndreaAndreoli 0:88fb7562377b 680 }
AndreaAndreoli 0:88fb7562377b 681 break;
AndreaAndreoli 0:88fb7562377b 682 }
AndreaAndreoli 0:88fb7562377b 683 }
AndreaAndreoli 0:88fb7562377b 684
AndreaAndreoli 0:88fb7562377b 685 /* End of Chart: '<S1>/select_command' */
AndreaAndreoli 0:88fb7562377b 686
AndreaAndreoli 0:88fb7562377b 687 /* Update for Memory: '<S1>/Memory' incorporates:
AndreaAndreoli 0:88fb7562377b 688 * Update for Inport: '<Root>/MASTER'
AndreaAndreoli 0:88fb7562377b 689 */
AndreaAndreoli 0:88fb7562377b 690 Controller_Slave_DW->Memory_PreviousInput = Controller_Slave_U_Master;
AndreaAndreoli 0:88fb7562377b 691
AndreaAndreoli 0:88fb7562377b 692 /* End of Outputs for SubSystem: '<Root>/Controller_Slave' */
AndreaAndreoli 0:88fb7562377b 693 }
AndreaAndreoli 0:88fb7562377b 694
AndreaAndreoli 0:88fb7562377b 695 /* Model initialize function */
AndreaAndreoli 0:88fb7562377b 696 void Controller_Slave_initialize(RT_MODEL_Controller_Slave_T *const
AndreaAndreoli 0:88fb7562377b 697 Controller_Slave_M, real_T *Controller_Slave_U_V, real_T
AndreaAndreoli 0:88fb7562377b 698 *Controller_Slave_U_D_S, uint8_T *Controller_Slave_U_Master, boolean_T
AndreaAndreoli 0:88fb7562377b 699 *Controller_Slave_U_QA_EN, uint8_T *Controller_Slave_Y_BRAKE, uint8_T
AndreaAndreoli 0:88fb7562377b 700 *Controller_Slave_Y_ACC, uint8_T *Controller_Slave_Y_LED_RED, uint8_T
AndreaAndreoli 0:88fb7562377b 701 *Controller_Slave_Y_LED_GREEN, uint8_T *Controller_Slave_Y_LED_BLUE, uint8_T
AndreaAndreoli 0:88fb7562377b 702 *Controller_Slave_Y_SLAVE)
AndreaAndreoli 0:88fb7562377b 703 {
AndreaAndreoli 0:88fb7562377b 704 DW_Controller_Slave_T *Controller_Slave_DW = ((DW_Controller_Slave_T *)
AndreaAndreoli 0:88fb7562377b 705 Controller_Slave_M->ModelData.dwork);
AndreaAndreoli 0:88fb7562377b 706 B_Controller_Slave_T *Controller_Slave_B = ((B_Controller_Slave_T *)
AndreaAndreoli 0:88fb7562377b 707 Controller_Slave_M->ModelData.blockIO);
AndreaAndreoli 0:88fb7562377b 708
AndreaAndreoli 0:88fb7562377b 709 /* Registration code */
AndreaAndreoli 0:88fb7562377b 710
AndreaAndreoli 0:88fb7562377b 711 /* block I/O */
AndreaAndreoli 0:88fb7562377b 712 (void) memset(((void *) Controller_Slave_B), 0,
AndreaAndreoli 0:88fb7562377b 713 sizeof(B_Controller_Slave_T));
AndreaAndreoli 0:88fb7562377b 714
AndreaAndreoli 0:88fb7562377b 715 /* states (dwork) */
AndreaAndreoli 0:88fb7562377b 716 (void) memset((void *)Controller_Slave_DW, 0,
AndreaAndreoli 0:88fb7562377b 717 sizeof(DW_Controller_Slave_T));
AndreaAndreoli 0:88fb7562377b 718
AndreaAndreoli 0:88fb7562377b 719 /* external inputs */
AndreaAndreoli 0:88fb7562377b 720 (*Controller_Slave_U_V) = 0.0;
AndreaAndreoli 0:88fb7562377b 721 (*Controller_Slave_U_D_S) = 0.0;
AndreaAndreoli 0:88fb7562377b 722 (*Controller_Slave_U_Master) = 0U;
AndreaAndreoli 0:88fb7562377b 723 (*Controller_Slave_U_QA_EN) = false;
AndreaAndreoli 0:88fb7562377b 724
AndreaAndreoli 0:88fb7562377b 725 /* external outputs */
AndreaAndreoli 0:88fb7562377b 726 (*Controller_Slave_Y_BRAKE) = 0U;
AndreaAndreoli 0:88fb7562377b 727 (*Controller_Slave_Y_ACC) = 0U;
AndreaAndreoli 0:88fb7562377b 728 (*Controller_Slave_Y_LED_RED) = 0U;
AndreaAndreoli 0:88fb7562377b 729 (*Controller_Slave_Y_LED_GREEN) = 0U;
AndreaAndreoli 0:88fb7562377b 730 (*Controller_Slave_Y_LED_BLUE) = 0U;
AndreaAndreoli 0:88fb7562377b 731 (*Controller_Slave_Y_SLAVE) = 0U;
AndreaAndreoli 0:88fb7562377b 732
AndreaAndreoli 0:88fb7562377b 733 /* SystemInitialize for Atomic SubSystem: '<Root>/Controller_Slave' */
AndreaAndreoli 0:88fb7562377b 734 /* InitializeConditions for Memory: '<S1>/Memory' */
AndreaAndreoli 0:88fb7562377b 735 Controller_Slave_DW->Memory_PreviousInput = 1U;
AndreaAndreoli 0:88fb7562377b 736
AndreaAndreoli 0:88fb7562377b 737 /* SystemInitialize for Chart: '<S1>/AEB_QA' */
AndreaAndreoli 0:88fb7562377b 738 Controller_Slave_DW->is_APPLICATION_THREAD = Controller_S_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:88fb7562377b 739 Controller_Slave_DW->is_AEB_ACTIVE = Controller_S_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:88fb7562377b 740 Controller_Slave_DW->is_QA_ACTIVE = Controller_S_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:88fb7562377b 741 Controller_Slave_DW->is_ERRORS_CHECK_THREAD = Controller_S_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:88fb7562377b 742 Controller_Slave_DW->is_active_c5_Controller_Slave = 0U;
AndreaAndreoli 0:88fb7562377b 743 Controller_Slave_DW->En = false;
AndreaAndreoli 0:88fb7562377b 744
AndreaAndreoli 0:88fb7562377b 745 /* SystemInitialize for Chart: '<S1>/select_command' */
AndreaAndreoli 0:88fb7562377b 746 Controller_Slave_DW->is_BLINK = Controller_S_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:88fb7562377b 747 Controller_Slave_DW->temporalCounter_i1 = 0U;
AndreaAndreoli 0:88fb7562377b 748 Controller_Slave_DW->is_active_c6_Controller_Slave = 0U;
AndreaAndreoli 0:88fb7562377b 749 Controller_Slave_DW->is_c6_Controller_Slave = Controller_S_IN_NO_ACTIVE_CHILD;
AndreaAndreoli 0:88fb7562377b 750
AndreaAndreoli 0:88fb7562377b 751 /* End of SystemInitialize for SubSystem: '<Root>/Controller_Slave' */
AndreaAndreoli 0:88fb7562377b 752 }
AndreaAndreoli 0:88fb7562377b 753
AndreaAndreoli 0:88fb7562377b 754 /* Model terminate function */
AndreaAndreoli 0:88fb7562377b 755 void Controller_Slave_terminate(RT_MODEL_Controller_Slave_T *const
AndreaAndreoli 0:88fb7562377b 756 Controller_Slave_M)
AndreaAndreoli 0:88fb7562377b 757 {
AndreaAndreoli 0:88fb7562377b 758 /* (no terminate code required) */
AndreaAndreoli 0:88fb7562377b 759 UNUSED_PARAMETER(Controller_Slave_M);
AndreaAndreoli 0:88fb7562377b 760 }
AndreaAndreoli 0:88fb7562377b 761
AndreaAndreoli 0:88fb7562377b 762 /*
AndreaAndreoli 0:88fb7562377b 763 * File trailer for generated code.
AndreaAndreoli 0:88fb7562377b 764 *
AndreaAndreoli 0:88fb7562377b 765 * [EOF]
AndreaAndreoli 0:88fb7562377b 766 */
AndreaAndreoli 0:88fb7562377b 767