Vincenzo Comito
/
AEB
AEB
AEB0.cpp@3:4bb49a5dfa47, 2016-07-30 (annotated)
- Committer:
- clynamen
- Date:
- Sat Jul 30 13:58:52 2016 +0000
- Revision:
- 3:4bb49a5dfa47
- Parent:
- 2:5811e080f41d
m;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
clynamen | 1:45911e86ffee | 1 | /* |
clynamen | 1:45911e86ffee | 2 | * Academic License - for use in teaching, academic research, and meeting |
clynamen | 1:45911e86ffee | 3 | * course requirements at degree granting institutions only. Not for |
clynamen | 1:45911e86ffee | 4 | * government, commercial, or other organizational use. |
clynamen | 1:45911e86ffee | 5 | * |
clynamen | 1:45911e86ffee | 6 | * File: AEB0.c |
clynamen | 1:45911e86ffee | 7 | * |
clynamen | 1:45911e86ffee | 8 | * Code generated for Simulink model 'AEB0'. |
clynamen | 1:45911e86ffee | 9 | * |
clynamen | 2:5811e080f41d | 10 | * Model version : 1.77 |
clynamen | 1:45911e86ffee | 11 | * Simulink Coder version : 8.10 (R2016a) 10-Feb-2016 |
clynamen | 2:5811e080f41d | 12 | * C/C++ source code generated on : Thu Jul 28 19:46:51 2016 |
clynamen | 1:45911e86ffee | 13 | * |
clynamen | 1:45911e86ffee | 14 | * Target selection: ert.tlc |
clynamen | 1:45911e86ffee | 15 | * Embedded hardware selection: Intel->x86-64 (Windows64) |
clynamen | 1:45911e86ffee | 16 | * Code generation objectives: Unspecified |
clynamen | 1:45911e86ffee | 17 | * Validation result: Not run |
clynamen | 1:45911e86ffee | 18 | */ |
clynamen | 1:45911e86ffee | 19 | |
clynamen | 1:45911e86ffee | 20 | #include "AEB0.h" |
clynamen | 1:45911e86ffee | 21 | #include "AEB0_private.h" |
clynamen | 1:45911e86ffee | 22 | |
clynamen | 1:45911e86ffee | 23 | /* Named constants for Chart: '<Root>/AEB ' */ |
clynamen | 1:45911e86ffee | 24 | #define AEB0_IN_AEB_misbehaviour ((uint8_T)1U) |
clynamen | 1:45911e86ffee | 25 | #define AEB0_IN_AEB_ok ((uint8_T)2U) |
clynamen | 1:45911e86ffee | 26 | #define AEB0_IN_NO_ACTIVE_CHILD ((uint8_T)0U) |
clynamen | 1:45911e86ffee | 27 | #define AEB0_IN_brake_fault ((uint8_T)1U) |
clynamen | 1:45911e86ffee | 28 | #define AEB0_IN_brake_off_ ((uint8_T)1U) |
clynamen | 1:45911e86ffee | 29 | #define AEB0_IN_brake_on_ ((uint8_T)2U) |
clynamen | 1:45911e86ffee | 30 | #define AEB0_IN_ok ((uint8_T)1U) |
clynamen | 1:45911e86ffee | 31 | #define AEB0_IN_ok2 ((uint8_T)3U) |
clynamen | 1:45911e86ffee | 32 | #define AEB0_IN_zero_dist ((uint8_T)2U) |
clynamen | 1:45911e86ffee | 33 | #define AEB0_IN_zero_dist_fault ((uint8_T)3U) |
clynamen | 1:45911e86ffee | 34 | #define AEB0_div (100.0) |
clynamen | 1:45911e86ffee | 35 | |
clynamen | 1:45911e86ffee | 36 | /* Block states (auto storage) */ |
clynamen | 1:45911e86ffee | 37 | DW_AEB0_T AEB0_DW; |
clynamen | 1:45911e86ffee | 38 | |
clynamen | 1:45911e86ffee | 39 | /* External inputs (root inport signals with auto storage) */ |
clynamen | 1:45911e86ffee | 40 | ExtU_AEB0_T AEB0_U; |
clynamen | 1:45911e86ffee | 41 | |
clynamen | 1:45911e86ffee | 42 | /* External outputs (root outports fed by signals with auto storage) */ |
clynamen | 1:45911e86ffee | 43 | ExtY_AEB0_T AEB0_Y; |
clynamen | 1:45911e86ffee | 44 | |
clynamen | 1:45911e86ffee | 45 | /* Real-time model */ |
clynamen | 1:45911e86ffee | 46 | RT_MODEL_AEB0_T AEB0_M_; |
clynamen | 1:45911e86ffee | 47 | RT_MODEL_AEB0_T *const AEB0_M = &AEB0_M_; |
clynamen | 1:45911e86ffee | 48 | |
clynamen | 1:45911e86ffee | 49 | /* Model step function */ |
clynamen | 1:45911e86ffee | 50 | void AEB0_step(void) |
clynamen | 1:45911e86ffee | 51 | { |
clynamen | 1:45911e86ffee | 52 | /* Chart: '<Root>/AEB ' incorporates: |
clynamen | 1:45911e86ffee | 53 | * Inport: '<Root>/distance_m' |
clynamen | 2:5811e080f41d | 54 | * Inport: '<Root>/speed_km_h' |
clynamen | 1:45911e86ffee | 55 | */ |
clynamen | 1:45911e86ffee | 56 | if (AEB0_DW.temporalCounter_i1 < 7U) { |
clynamen | 1:45911e86ffee | 57 | AEB0_DW.temporalCounter_i1++; |
clynamen | 1:45911e86ffee | 58 | } |
clynamen | 1:45911e86ffee | 59 | |
clynamen | 1:45911e86ffee | 60 | if (AEB0_DW.temporalCounter_i2 < 7U) { |
clynamen | 1:45911e86ffee | 61 | AEB0_DW.temporalCounter_i2++; |
clynamen | 1:45911e86ffee | 62 | } |
clynamen | 1:45911e86ffee | 63 | |
clynamen | 1:45911e86ffee | 64 | /* Gateway: AEB |
clynamen | 1:45911e86ffee | 65 | */ |
clynamen | 1:45911e86ffee | 66 | /* During: AEB |
clynamen | 1:45911e86ffee | 67 | */ |
clynamen | 1:45911e86ffee | 68 | if (AEB0_DW.is_active_c3_AEB0 == 0U) { |
clynamen | 1:45911e86ffee | 69 | /* Entry: AEB |
clynamen | 1:45911e86ffee | 70 | */ |
clynamen | 1:45911e86ffee | 71 | AEB0_DW.is_active_c3_AEB0 = 1U; |
clynamen | 1:45911e86ffee | 72 | |
clynamen | 1:45911e86ffee | 73 | /* Entry Internal: AEB |
clynamen | 1:45911e86ffee | 74 | */ |
clynamen | 1:45911e86ffee | 75 | /* Transition: '<S1>:37' */ |
clynamen | 1:45911e86ffee | 76 | AEB0_DW.is_AEB_distance_sensor_fault_de = AEB0_IN_ok; |
clynamen | 1:45911e86ffee | 77 | |
clynamen | 2:5811e080f41d | 78 | /* Outport: '<Root>/fault' */ |
clynamen | 2:5811e080f41d | 79 | /* Entry 'ok': '<S1>:21' */ |
clynamen | 2:5811e080f41d | 80 | /* '<S1>:21:1' fault=0 */ |
clynamen | 2:5811e080f41d | 81 | AEB0_Y.fault = 0.0; |
clynamen | 2:5811e080f41d | 82 | |
clynamen | 1:45911e86ffee | 83 | /* Entry Internal 'AEB_brake_fault_detection': '<S1>:41' */ |
clynamen | 1:45911e86ffee | 84 | /* Transition: '<S1>:44' */ |
clynamen | 1:45911e86ffee | 85 | AEB0_DW.is_AEB_brake_fault_detection = AEB0_IN_ok2; |
clynamen | 1:45911e86ffee | 86 | |
clynamen | 1:45911e86ffee | 87 | /* Entry Internal 'AEB_ALGO': '<S1>:40' */ |
clynamen | 1:45911e86ffee | 88 | /* Transition: '<S1>:4' */ |
clynamen | 1:45911e86ffee | 89 | AEB0_DW.is_AEB_ALGO = AEB0_IN_AEB_ok; |
clynamen | 1:45911e86ffee | 90 | AEB0_DW.is_AEB_ok = AEB0_IN_brake_off_; |
clynamen | 1:45911e86ffee | 91 | |
clynamen | 1:45911e86ffee | 92 | /* Outport: '<Root>/brake' */ |
clynamen | 1:45911e86ffee | 93 | /* Entry 'brake_off_': '<S1>:3' */ |
clynamen | 1:45911e86ffee | 94 | /* '<S1>:3:1' brake=0 */ |
clynamen | 1:45911e86ffee | 95 | AEB0_Y.brake = 0.0; |
clynamen | 1:45911e86ffee | 96 | } else { |
clynamen | 1:45911e86ffee | 97 | /* During 'AEB': '<S1>:39' */ |
clynamen | 1:45911e86ffee | 98 | /* During 'AEB_fault_detection': '<S1>:43' */ |
clynamen | 1:45911e86ffee | 99 | /* During 'AEB_distance_sensor_fault_detection': '<S1>:42' */ |
clynamen | 1:45911e86ffee | 100 | switch (AEB0_DW.is_AEB_distance_sensor_fault_de) { |
clynamen | 1:45911e86ffee | 101 | case AEB0_IN_ok: |
clynamen | 1:45911e86ffee | 102 | /* During 'ok': '<S1>:21' */ |
clynamen | 1:45911e86ffee | 103 | /* '<S1>:23:1' sf_internal_predicateOutput = ... */ |
clynamen | 1:45911e86ffee | 104 | /* '<S1>:23:1' distance_m == 0; */ |
clynamen | 1:45911e86ffee | 105 | if (AEB0_U.distance_m == 0.0) { |
clynamen | 1:45911e86ffee | 106 | /* Transition: '<S1>:23' */ |
clynamen | 1:45911e86ffee | 107 | AEB0_DW.is_AEB_distance_sensor_fault_de = AEB0_IN_zero_dist; |
clynamen | 1:45911e86ffee | 108 | AEB0_DW.temporalCounter_i1 = 0U; |
clynamen | 1:45911e86ffee | 109 | } |
clynamen | 1:45911e86ffee | 110 | break; |
clynamen | 1:45911e86ffee | 111 | |
clynamen | 1:45911e86ffee | 112 | case AEB0_IN_zero_dist: |
clynamen | 1:45911e86ffee | 113 | /* During 'zero_dist': '<S1>:28' */ |
clynamen | 1:45911e86ffee | 114 | /* '<S1>:24:1' sf_internal_predicateOutput = ... */ |
clynamen | 1:45911e86ffee | 115 | /* '<S1>:24:1' distance_m > 0; */ |
clynamen | 1:45911e86ffee | 116 | if (AEB0_U.distance_m > 0.0) { |
clynamen | 1:45911e86ffee | 117 | /* Transition: '<S1>:24' */ |
clynamen | 1:45911e86ffee | 118 | AEB0_DW.is_AEB_distance_sensor_fault_de = AEB0_IN_ok; |
clynamen | 2:5811e080f41d | 119 | |
clynamen | 2:5811e080f41d | 120 | /* Outport: '<Root>/fault' */ |
clynamen | 2:5811e080f41d | 121 | /* Entry 'ok': '<S1>:21' */ |
clynamen | 2:5811e080f41d | 122 | /* '<S1>:21:1' fault=0 */ |
clynamen | 2:5811e080f41d | 123 | AEB0_Y.fault = 0.0; |
clynamen | 1:45911e86ffee | 124 | } else { |
clynamen | 1:45911e86ffee | 125 | /* '<S1>:26:1' sf_internal_predicateOutput = ... */ |
clynamen | 1:45911e86ffee | 126 | /* '<S1>:26:1' after(500, msec); */ |
clynamen | 1:45911e86ffee | 127 | if (AEB0_DW.temporalCounter_i1 >= 5U) { |
clynamen | 1:45911e86ffee | 128 | /* Transition: '<S1>:26' */ |
clynamen | 1:45911e86ffee | 129 | AEB0_DW.is_AEB_distance_sensor_fault_de = AEB0_IN_zero_dist_fault; |
clynamen | 1:45911e86ffee | 130 | |
clynamen | 1:45911e86ffee | 131 | /* Outport: '<Root>/fault' */ |
clynamen | 1:45911e86ffee | 132 | /* Entry 'zero_dist_fault': '<S1>:25' */ |
clynamen | 1:45911e86ffee | 133 | /* '<S1>:25:1' fault=1 */ |
clynamen | 1:45911e86ffee | 134 | AEB0_Y.fault = 1.0; |
clynamen | 1:45911e86ffee | 135 | } |
clynamen | 1:45911e86ffee | 136 | } |
clynamen | 1:45911e86ffee | 137 | break; |
clynamen | 1:45911e86ffee | 138 | |
clynamen | 1:45911e86ffee | 139 | default: |
clynamen | 1:45911e86ffee | 140 | /* During 'zero_dist_fault': '<S1>:25' */ |
clynamen | 1:45911e86ffee | 141 | break; |
clynamen | 1:45911e86ffee | 142 | } |
clynamen | 1:45911e86ffee | 143 | |
clynamen | 1:45911e86ffee | 144 | /* During 'AEB_brake_fault_detection': '<S1>:41' */ |
clynamen | 1:45911e86ffee | 145 | switch (AEB0_DW.is_AEB_brake_fault_detection) { |
clynamen | 1:45911e86ffee | 146 | case AEB0_IN_brake_fault: |
clynamen | 1:45911e86ffee | 147 | /* During 'brake_fault': '<S1>:34' */ |
clynamen | 1:45911e86ffee | 148 | break; |
clynamen | 1:45911e86ffee | 149 | |
clynamen | 1:45911e86ffee | 150 | case AEB0_IN_brake_on_: |
clynamen | 1:45911e86ffee | 151 | /* During 'brake_on_': '<S1>:32' */ |
clynamen | 1:45911e86ffee | 152 | /* '<S1>:35:1' sf_internal_predicateOutput = ... */ |
clynamen | 2:5811e080f41d | 153 | /* '<S1>:35:1' (after(500, msec)) && (speed_km_h>=speed_at_brake_start && speed_km_h > 0 && brake>0.1); */ |
clynamen | 2:5811e080f41d | 154 | if ((AEB0_DW.temporalCounter_i2 >= 5U) && (AEB0_U.speed_km_h >= |
clynamen | 2:5811e080f41d | 155 | AEB0_DW.speed_at_brake_start) && (AEB0_U.speed_km_h > 0.0) && |
clynamen | 2:5811e080f41d | 156 | (AEB0_Y.brake > 0.1)) { |
clynamen | 1:45911e86ffee | 157 | /* Transition: '<S1>:35' */ |
clynamen | 1:45911e86ffee | 158 | AEB0_DW.is_AEB_brake_fault_detection = AEB0_IN_brake_fault; |
clynamen | 1:45911e86ffee | 159 | |
clynamen | 1:45911e86ffee | 160 | /* Outport: '<Root>/fault' */ |
clynamen | 1:45911e86ffee | 161 | /* Entry 'brake_fault': '<S1>:34' */ |
clynamen | 1:45911e86ffee | 162 | /* '<S1>:34:1' fault=1 */ |
clynamen | 1:45911e86ffee | 163 | AEB0_Y.fault = 1.0; |
clynamen | 1:45911e86ffee | 164 | } else { |
clynamen | 1:45911e86ffee | 165 | /* '<S1>:46:1' sf_internal_predicateOutput = ... */ |
clynamen | 2:5811e080f41d | 166 | /* '<S1>:46:1' (after(500, msec)) && (speed_km_h<speed_at_brake_start); */ |
clynamen | 2:5811e080f41d | 167 | if ((AEB0_DW.temporalCounter_i2 >= 5U) && (AEB0_U.speed_km_h < |
clynamen | 1:45911e86ffee | 168 | AEB0_DW.speed_at_brake_start)) { |
clynamen | 1:45911e86ffee | 169 | /* Transition: '<S1>:46' */ |
clynamen | 1:45911e86ffee | 170 | AEB0_DW.is_AEB_brake_fault_detection = AEB0_IN_brake_on_; |
clynamen | 1:45911e86ffee | 171 | AEB0_DW.temporalCounter_i2 = 0U; |
clynamen | 1:45911e86ffee | 172 | |
clynamen | 1:45911e86ffee | 173 | /* Entry 'brake_on_': '<S1>:32' */ |
clynamen | 2:5811e080f41d | 174 | /* '<S1>:32:1' speed_at_brake_start = speed_km_h */ |
clynamen | 2:5811e080f41d | 175 | AEB0_DW.speed_at_brake_start = AEB0_U.speed_km_h; |
clynamen | 1:45911e86ffee | 176 | } else { |
clynamen | 1:45911e86ffee | 177 | /* '<S1>:47:1' sf_internal_predicateOutput = ... */ |
clynamen | 1:45911e86ffee | 178 | /* '<S1>:47:1' brake==0; */ |
clynamen | 1:45911e86ffee | 179 | if (AEB0_Y.brake == 0.0) { |
clynamen | 1:45911e86ffee | 180 | /* Transition: '<S1>:47' */ |
clynamen | 1:45911e86ffee | 181 | AEB0_DW.is_AEB_brake_fault_detection = AEB0_IN_ok2; |
clynamen | 1:45911e86ffee | 182 | } |
clynamen | 1:45911e86ffee | 183 | } |
clynamen | 1:45911e86ffee | 184 | } |
clynamen | 1:45911e86ffee | 185 | break; |
clynamen | 1:45911e86ffee | 186 | |
clynamen | 1:45911e86ffee | 187 | default: |
clynamen | 1:45911e86ffee | 188 | /* During 'ok2': '<S1>:31' */ |
clynamen | 1:45911e86ffee | 189 | /* '<S1>:33:1' sf_internal_predicateOutput = ... */ |
clynamen | 1:45911e86ffee | 190 | /* '<S1>:33:1' brake==1; */ |
clynamen | 1:45911e86ffee | 191 | if (AEB0_Y.brake == 1.0) { |
clynamen | 1:45911e86ffee | 192 | /* Transition: '<S1>:33' */ |
clynamen | 1:45911e86ffee | 193 | AEB0_DW.is_AEB_brake_fault_detection = AEB0_IN_brake_on_; |
clynamen | 1:45911e86ffee | 194 | AEB0_DW.temporalCounter_i2 = 0U; |
clynamen | 1:45911e86ffee | 195 | |
clynamen | 1:45911e86ffee | 196 | /* Entry 'brake_on_': '<S1>:32' */ |
clynamen | 2:5811e080f41d | 197 | /* '<S1>:32:1' speed_at_brake_start = speed_km_h */ |
clynamen | 2:5811e080f41d | 198 | AEB0_DW.speed_at_brake_start = AEB0_U.speed_km_h; |
clynamen | 1:45911e86ffee | 199 | } |
clynamen | 1:45911e86ffee | 200 | break; |
clynamen | 1:45911e86ffee | 201 | } |
clynamen | 1:45911e86ffee | 202 | |
clynamen | 1:45911e86ffee | 203 | /* During 'AEB_ALGO': '<S1>:40' */ |
clynamen | 1:45911e86ffee | 204 | if (AEB0_DW.is_AEB_ALGO != AEB0_IN_AEB_misbehaviour) { |
clynamen | 1:45911e86ffee | 205 | /* During 'AEB_ok': '<S1>:14' */ |
clynamen | 1:45911e86ffee | 206 | /* '<S1>:16:1' sf_internal_predicateOutput = ... */ |
clynamen | 1:45911e86ffee | 207 | /* '<S1>:16:1' fault==1; */ |
clynamen | 1:45911e86ffee | 208 | if (AEB0_Y.fault == 1.0) { |
clynamen | 1:45911e86ffee | 209 | /* Transition: '<S1>:16' */ |
clynamen | 1:45911e86ffee | 210 | /* Exit Internal 'AEB_ok': '<S1>:14' */ |
clynamen | 1:45911e86ffee | 211 | AEB0_DW.is_AEB_ok = AEB0_IN_NO_ACTIVE_CHILD; |
clynamen | 1:45911e86ffee | 212 | AEB0_DW.is_AEB_ALGO = AEB0_IN_AEB_misbehaviour; |
clynamen | 1:45911e86ffee | 213 | |
clynamen | 1:45911e86ffee | 214 | /* Outport: '<Root>/brake' */ |
clynamen | 1:45911e86ffee | 215 | /* Entry 'AEB_misbehaviour': '<S1>:15' */ |
clynamen | 1:45911e86ffee | 216 | /* '<S1>:15:1' brake=0 */ |
clynamen | 1:45911e86ffee | 217 | AEB0_Y.brake = 0.0; |
clynamen | 1:45911e86ffee | 218 | } else if (AEB0_DW.is_AEB_ok == AEB0_IN_brake_off_) { |
clynamen | 1:45911e86ffee | 219 | /* During 'brake_off_': '<S1>:3' */ |
clynamen | 1:45911e86ffee | 220 | /* '<S1>:5:1' sf_internal_predicateOutput = ... */ |
clynamen | 2:5811e080f41d | 221 | /* '<S1>:5:1' speed_km_h^2/div>distance_m; */ |
clynamen | 2:5811e080f41d | 222 | if (AEB0_U.speed_km_h * AEB0_U.speed_km_h / AEB0_div > AEB0_U.distance_m) |
clynamen | 2:5811e080f41d | 223 | { |
clynamen | 1:45911e86ffee | 224 | /* Transition: '<S1>:5' */ |
clynamen | 1:45911e86ffee | 225 | AEB0_DW.is_AEB_ok = AEB0_IN_brake_on_; |
clynamen | 1:45911e86ffee | 226 | |
clynamen | 1:45911e86ffee | 227 | /* Outport: '<Root>/brake' */ |
clynamen | 1:45911e86ffee | 228 | /* Entry 'brake_on_': '<S1>:1' */ |
clynamen | 2:5811e080f41d | 229 | /* brake is proportional to the inverse of distance */ |
clynamen | 2:5811e080f41d | 230 | /* and to the speed. This was required */ |
clynamen | 2:5811e080f41d | 231 | /* since it was requested that the led frequency */ |
clynamen | 2:5811e080f41d | 232 | /* must be proportional to the brake request */ |
clynamen | 2:5811e080f41d | 233 | /* '<S1>:1:3' brake=1 */ |
clynamen | 1:45911e86ffee | 234 | AEB0_Y.brake = 1.0; |
clynamen | 1:45911e86ffee | 235 | } |
clynamen | 1:45911e86ffee | 236 | } else { |
clynamen | 1:45911e86ffee | 237 | /* During 'brake_on_': '<S1>:1' */ |
clynamen | 1:45911e86ffee | 238 | /* '<S1>:6:1' sf_internal_predicateOutput = ... */ |
clynamen | 2:5811e080f41d | 239 | /* '<S1>:6:1' speed_km_h^2/div<distance_m; */ |
clynamen | 2:5811e080f41d | 240 | if (AEB0_U.speed_km_h * AEB0_U.speed_km_h / AEB0_div < AEB0_U.distance_m) |
clynamen | 2:5811e080f41d | 241 | { |
clynamen | 1:45911e86ffee | 242 | /* Transition: '<S1>:6' */ |
clynamen | 1:45911e86ffee | 243 | AEB0_DW.is_AEB_ok = AEB0_IN_brake_off_; |
clynamen | 1:45911e86ffee | 244 | |
clynamen | 1:45911e86ffee | 245 | /* Outport: '<Root>/brake' */ |
clynamen | 1:45911e86ffee | 246 | /* Entry 'brake_off_': '<S1>:3' */ |
clynamen | 1:45911e86ffee | 247 | /* '<S1>:3:1' brake=0 */ |
clynamen | 1:45911e86ffee | 248 | AEB0_Y.brake = 0.0; |
clynamen | 1:45911e86ffee | 249 | } |
clynamen | 1:45911e86ffee | 250 | } |
clynamen | 1:45911e86ffee | 251 | } else { |
clynamen | 1:45911e86ffee | 252 | /* During 'AEB_misbehaviour': '<S1>:15' */ |
clynamen | 1:45911e86ffee | 253 | } |
clynamen | 1:45911e86ffee | 254 | } |
clynamen | 1:45911e86ffee | 255 | |
clynamen | 1:45911e86ffee | 256 | /* End of Chart: '<Root>/AEB ' */ |
clynamen | 1:45911e86ffee | 257 | } |
clynamen | 1:45911e86ffee | 258 | |
clynamen | 1:45911e86ffee | 259 | /* Model initialize function */ |
clynamen | 1:45911e86ffee | 260 | void AEB0_initialize(void) |
clynamen | 1:45911e86ffee | 261 | { |
clynamen | 1:45911e86ffee | 262 | /* Registration code */ |
clynamen | 1:45911e86ffee | 263 | |
clynamen | 1:45911e86ffee | 264 | /* initialize error status */ |
clynamen | 1:45911e86ffee | 265 | rtmSetErrorStatus(AEB0_M, (NULL)); |
clynamen | 1:45911e86ffee | 266 | |
clynamen | 1:45911e86ffee | 267 | /* states (dwork) */ |
clynamen | 1:45911e86ffee | 268 | (void) memset((void *)&AEB0_DW, 0, |
clynamen | 1:45911e86ffee | 269 | sizeof(DW_AEB0_T)); |
clynamen | 1:45911e86ffee | 270 | |
clynamen | 1:45911e86ffee | 271 | /* external inputs */ |
clynamen | 1:45911e86ffee | 272 | (void) memset((void *)&AEB0_U, 0, |
clynamen | 1:45911e86ffee | 273 | sizeof(ExtU_AEB0_T)); |
clynamen | 1:45911e86ffee | 274 | |
clynamen | 1:45911e86ffee | 275 | /* external outputs */ |
clynamen | 1:45911e86ffee | 276 | (void) memset((void *)&AEB0_Y, 0, |
clynamen | 1:45911e86ffee | 277 | sizeof(ExtY_AEB0_T)); |
clynamen | 1:45911e86ffee | 278 | |
clynamen | 1:45911e86ffee | 279 | /* SystemInitialize for Chart: '<Root>/AEB ' */ |
clynamen | 1:45911e86ffee | 280 | AEB0_DW.is_AEB_ALGO = AEB0_IN_NO_ACTIVE_CHILD; |
clynamen | 1:45911e86ffee | 281 | AEB0_DW.is_AEB_ok = AEB0_IN_NO_ACTIVE_CHILD; |
clynamen | 1:45911e86ffee | 282 | AEB0_DW.is_AEB_brake_fault_detection = AEB0_IN_NO_ACTIVE_CHILD; |
clynamen | 1:45911e86ffee | 283 | AEB0_DW.temporalCounter_i2 = 0U; |
clynamen | 1:45911e86ffee | 284 | AEB0_DW.is_AEB_distance_sensor_fault_de = AEB0_IN_NO_ACTIVE_CHILD; |
clynamen | 1:45911e86ffee | 285 | AEB0_DW.temporalCounter_i1 = 0U; |
clynamen | 1:45911e86ffee | 286 | AEB0_DW.is_active_c3_AEB0 = 0U; |
clynamen | 1:45911e86ffee | 287 | |
clynamen | 1:45911e86ffee | 288 | /* SystemInitialize for Outport: '<Root>/fault' incorporates: |
clynamen | 1:45911e86ffee | 289 | * SystemInitialize for Chart: '<Root>/AEB ' |
clynamen | 1:45911e86ffee | 290 | */ |
clynamen | 1:45911e86ffee | 291 | AEB0_Y.fault = 0.0; |
clynamen | 1:45911e86ffee | 292 | } |
clynamen | 1:45911e86ffee | 293 | |
clynamen | 1:45911e86ffee | 294 | /* Model terminate function */ |
clynamen | 1:45911e86ffee | 295 | void AEB0_terminate(void) |
clynamen | 1:45911e86ffee | 296 | { |
clynamen | 1:45911e86ffee | 297 | /* (no terminate code required) */ |
clynamen | 1:45911e86ffee | 298 | } |
clynamen | 1:45911e86ffee | 299 | |
clynamen | 1:45911e86ffee | 300 | /* |
clynamen | 1:45911e86ffee | 301 | * File trailer for generated code. |
clynamen | 1:45911e86ffee | 302 | * |
clynamen | 1:45911e86ffee | 303 | * [EOF] |
clynamen | 1:45911e86ffee | 304 | */ |