Library for the master controller

Dependents:   Test_Controller_Master AEB

Committer:
AndreaAndreoli
Date:
Sun Jul 10 13:17:48 2016 +0000
Revision:
3:66d07e7a134a
Parent:
2:d114feef8f3b
fixed bug qa;

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