1 | /* |
2 | * File: EV3Control_sil_sil_ec.h |
3 | * |
4 | * Code generated for Simulink model 'EV3Control_sil_sil_ec'. |
5 | * |
6 | * Model version : 1.2 |
7 | * Simulink Coder version : 9.0 (R2018b) 24-May-2018 |
8 | * C/C++ source code generated on : Tue Oct 29 09:31:45 2019 |
9 | * |
10 | * Target selection: ert.tlc |
11 | * Embedded hardware selection: Intel->x86-64 (Windows64) |
12 | * Code generation objectives: |
13 | * 1. RAM efficiency |
14 | * 2. Execution efficiency |
15 | * 3. ROM efficiency |
16 | * Validation result: Not run |
17 | */ |
18 | |
19 | #ifndef RTW_HEADER_EV3Control_sil_sil_ec_h_ |
20 | #define RTW_HEADER_EV3Control_sil_sil_ec_h_ |
21 | #include "rtwtypes.h" |
22 | #include <math.h> |
23 | #ifndef EV3Control_sil_sil_ec_COMMON_INCLUDES_ |
24 | # define EV3Control_sil_sil_ec_COMMON_INCLUDES_ |
25 | #include "rtwtypes.h" |
26 | #endif /* EV3Control_sil_sil_ec_COMMON_INCLUDES_ */ |
27 | |
28 | /* Child system includes */ |
29 | #include "ObstacleDetection_demo_ec.h" |
30 | #include "GlobalPosition_demo_ec.h" |
31 | #include "rtGetInf.h" |
32 | #include "rt_nonfinite.h" |
33 | #include "rtGetNaN.h" |
34 | |
35 | /* Macros for accessing real-time model data structure */ |
36 | #ifndef rtmGetErrorStatus |
37 | # define rtmGetErrorStatus(rtm) ((rtm)->errorStatus) |
38 | #endif |
39 | |
40 | #ifndef rtmSetErrorStatus |
41 | # define rtmSetErrorStatus(rtm, val) ((rtm)->errorStatus = (val)) |
42 | #endif |
43 | |
44 | #ifndef rtmGetErrorStatusPointer |
45 | # define rtmGetErrorStatusPointer(rtm) ((const char_T **)(&((rtm)->errorStatus))) |
46 | #endif |
47 | |
48 | /* Forward declaration for rtModel */ |
49 | typedef struct tag_RTM_EV3Control_sil_sil_ec_T RT_MODEL_EV3Control_sil_sil_e_T; |
50 | |
51 | #ifndef DEFINED_TYPEDEF_FOR_sensorBusRaw_ |
52 | #define DEFINED_TYPEDEF_FOR_sensorBusRaw_ |
53 | |
54 | typedef struct { |
55 | int8_T sensorRaw_RemoteControl; |
56 | int32_T sensorRaw_SteeringMotor; |
57 | int32_T sensorRaw_DriveMotor; |
58 | int32_T sensorRaw_Gyro; |
59 | uint8_T sensorRaw_UltrasoundFront; |
60 | uint8_T sensorRaw_UltrasoundRight; |
61 | uint8_T sensorRaw_UltrasoundLeft; |
62 | } sensorBusRaw; |
63 | |
64 | #endif |
65 | |
66 | #ifndef DEFINED_TYPEDEF_FOR_VehicleStates_ |
67 | #define DEFINED_TYPEDEF_FOR_VehicleStates_ |
68 | |
69 | typedef struct { |
70 | boolean_T VehicleControlOn; |
71 | boolean_T VehicleControlOff; |
72 | boolean_T EmergencyStop; |
73 | boolean_T VehicleIdle; |
74 | } VehicleStates; |
75 | |
76 | #endif |
77 | |
78 | #ifndef DEFINED_TYPEDEF_FOR_actuatorBusOut_ |
79 | #define DEFINED_TYPEDEF_FOR_actuatorBusOut_ |
80 | |
81 | typedef struct { |
82 | int8_T driveMotor; |
83 | int8_T steeringMotor; |
84 | real_T volume; |
85 | real_T frequency; |
86 | uint8_T statusLight; |
87 | } actuatorBusOut; |
88 | |
89 | #endif |
90 | |
91 | #ifndef DEFINED_TYPEDEF_FOR_sensorBus_ |
92 | #define DEFINED_TYPEDEF_FOR_sensorBus_ |
93 | |
94 | typedef struct { |
95 | int8_T remoteCtrlCmd; |
96 | int32_T steeringEncoder; |
97 | int32_T driveEncoder; |
98 | real_T gyroAngleRad; |
99 | uint8_T usSensorFront; |
100 | uint8_T usSensorRight; |
101 | uint8_T usSensorLeft; |
102 | } sensorBus; |
103 | |
104 | #endif |
105 | |
106 | /* Block signals and states (default storage) for system '<Root>' */ |
107 | typedef struct { |
108 | MdlrefDW_GlobalPosition_demo__T GlobalPosition_InstanceData;/* '<S11>/GlobalPosition' */ |
109 | MdlrefDW_ObstacleDetection_de_T ObstacleDetection_InstanceData;/* '<S5>/ObstacleDetection' */ |
110 | real_T distances[51]; |
111 | real_T rotMat[4]; /* '<S51>/MATLAB_Function' */ |
112 | real_T goalPointGlobal[2]; |
113 | real_T SteeringAngleCommand; /* '<S43>/Merge' */ |
114 | real_T gear; /* '<S9>/Chart' */ |
115 | real_T UnitDelay_DSTATE; /* '<S8>/Unit Delay' */ |
116 | real_T UnitDelay1_DSTATE; /* '<S8>/Unit Delay1' */ |
117 | real_T UnitDelay2_DSTATE; /* '<S8>/Unit Delay2' */ |
118 | real_T volume_m; /* '<S2>/Switch2' */ |
119 | real_T UnitDelay; /* '<S8>/Unit Delay' */ |
120 | real_T UnitDelay1; /* '<S8>/Unit Delay1' */ |
121 | real_T frequency_c; |
122 | real_T volume_k; |
123 | real_T distances_c; |
124 | real_T rtb_rotMat_tmp; |
125 | int8_T Merge; /* '<S21>/Merge' */ |
126 | int8_T Merge_o; /* '<S39>/Merge' */ |
127 | int8_T UnitDelay_DSTATE_p; /* '<S14>/Unit Delay' */ |
128 | uint8_T tp_FWD; /* '<S9>/Chart' */ |
129 | uint8_T tp_REV; /* '<S9>/Chart' */ |
130 | uint8_T tp_ControlledDrive; /* '<S9>/Chart' */ |
131 | uint8_T is_active_c6_EV3Control_sil_sil;/* '<S9>/Chart' */ |
132 | uint8_T is_c6_EV3Control_sil_sil_ec; /* '<S9>/Chart' */ |
133 | uint8_T is_VehicleControlOn; /* '<S9>/Chart' */ |
134 | uint8_T is_ManualDrive; /* '<S9>/Chart' */ |
135 | boolean_T VehicleControlOn; /* '<S9>/Chart' */ |
136 | boolean_T VehicleControlOff; /* '<S9>/Chart' */ |
137 | boolean_T EmergencyStop; /* '<S9>/Chart' */ |
138 | boolean_T VehicleIdle; /* '<S9>/Chart' */ |
139 | } DW_EV3Control_sil_sil_ec_T; |
140 | |
141 | /* External inputs (root inport signals with default storage) */ |
142 | typedef struct { |
143 | sensorBusRaw sensorBusRaw_m; /* '<Root>/sensorBusRaw' */ |
144 | } ExtU_EV3Control_sil_sil_ec_T; |
145 | |
146 | /* External outputs (root outports fed by signals with default storage) */ |
147 | typedef struct { |
148 | real_T posGlobal[2]; /* '<Root>/posGlobal' */ |
149 | real_T steeringAngleCmdRad; /* '<Root>/steeringAngleCmdRad' */ |
150 | actuatorBusOut actuatorBusOut_k; /* '<Root>/actuatorBusOut' */ |
151 | VehicleStates VehicleStates_m; /* '<Root>/VehicleStates' */ |
152 | } ExtY_EV3Control_sil_sil_ec_T; |
153 | |
154 | /* Parameters for system: '<S17>/HonkIfObstacleDetected' */ |
155 | struct P_HonkIfObstacleDetected_EV3C_T_ { |
156 | real_T speaker_Y0; /* Expression: 0 |
157 | * Referenced by: '<S23>/speaker' |
158 | */ |
159 | }; |
160 | |
161 | /* Parameters for system: '<S17>/HonkIfObstacleDetected' */ |
162 | typedef struct P_HonkIfObstacleDetected_EV3C_T_ P_HonkIfObstacleDetected_EV3C_T; |
163 | |
164 | /* Parameters (default storage) */ |
165 | struct P_EV3Control_sil_sil_ec_T_ { |
166 | real_T steeringAngleCmd_Y0; /* Expression: 0 |
167 | * Referenced by: '<S50>/steeringAngleCmd' |
168 | */ |
169 | real_T Gain_Gain; /* Expression: 2 |
170 | * Referenced by: '<S59>/Gain' |
171 | */ |
172 | real_T steeringAngleCmd_Y0_a; /* Expression: 0 |
173 | * Referenced by: '<S47>/steeringAngleCmd' |
174 | */ |
175 | real_T steeringAngleCmd_Y0_l; /* Expression: 0 |
176 | * Referenced by: '<S49>/steeringAngleCmd' |
177 | */ |
178 | real_T Constant_Value; /* Expression: 0 |
179 | * Referenced by: '<S49>/Constant' |
180 | */ |
181 | real_T goalPointAdapted_Y0; /* Expression: 0 |
182 | * Referenced by: '<S72>/goalPointAdapted' |
183 | */ |
184 | real_T goalPointGlobal_Y0; /* Expression: 0 |
185 | * Referenced by: '<S74>/goalPointGlobal' |
186 | */ |
187 | real_T Gain_Gain_f; /* Expression: 1 |
188 | * Referenced by: '<S74>/Gain' |
189 | */ |
190 | real_T steeringAngleCmdRad_Y0; /* Expression: 0 |
191 | * Referenced by: '<S38>/steeringAngleCmdRad' |
192 | */ |
193 | real_T Merge_InitialOutput; /* Expression: 0 |
194 | * Referenced by: '<S69>/Merge' |
195 | */ |
196 | real_T Merge_InitialOutput_j; /* Expression: 0 |
197 | * Referenced by: '<S43>/Merge' |
198 | */ |
199 | real_T Gain_Gain_k; /* Expression: -1 |
200 | * Referenced by: '<S45>/Gain' |
201 | */ |
202 | real_T Gain1_Gain; /* Expression: 1 |
203 | * Referenced by: '<S45>/Gain1' |
204 | */ |
205 | real_T Constant_Value_d; /* Expression: 0 |
206 | * Referenced by: '<S94>/Constant' |
207 | */ |
208 | real_T UnitDelay_InitialCondition; /* Expression: 0 |
209 | * Referenced by: '<S8>/Unit Delay' |
210 | */ |
211 | real_T UnitDelay1_InitialCondition; /* Expression: 0 |
212 | * Referenced by: '<S8>/Unit Delay1' |
213 | */ |
214 | real_T UnitDelay2_InitialCondition; /* Expression: 0 |
215 | * Referenced by: '<S8>/Unit Delay2' |
216 | */ |
217 | real_T Constant2_Value; /* Expression: 0 |
218 | * Referenced by: '<S2>/Constant2' |
219 | */ |
220 | real_T Constant2_Value_k; /* Expression: 440 |
221 | * Referenced by: '<S17>/Constant2' |
222 | */ |
223 | real_T Constant3_Value; /* Expression: 0 |
224 | * Referenced by: '<S17>/Constant3' |
225 | */ |
226 | real_T Constant1_Value; /* Expression: 0 |
227 | * Referenced by: '<S17>/Constant1' |
228 | */ |
229 | real_T Merge_2_InitialOutput; /* Expression: 0 |
230 | * Referenced by: '<S17>/Merge' |
231 | */ |
232 | real_T Merge_1_InitialOutput; /* Expression: 0 |
233 | * Referenced by: '<S17>/Merge' |
234 | */ |
235 | int32_T Gain1_Gain_a; /* Computed Parameter: Gain1_Gain_a |
236 | * Referenced by: '<S4>/Gain1' |
237 | */ |
238 | int32_T Gain_Gain_a; /* Computed Parameter: Gain_Gain_a |
239 | * Referenced by: '<S4>/Gain' |
240 | */ |
241 | uint16_T LightStop_Y0; /* Computed Parameter: LightStop_Y0 |
242 | * Referenced by: '<S30>/LightStop' |
243 | */ |
244 | uint16_T obstacleLight_Y0; /* Computed Parameter: obstacleLight_Y0 |
245 | * Referenced by: '<S32>/obstacleLight' |
246 | */ |
247 | uint16_T lightIdle_Y0; /* Computed Parameter: lightIdle_Y0 |
248 | * Referenced by: '<S31>/lightIdle' |
249 | */ |
250 | uint16_T OffLight_Y0; /* Computed Parameter: OffLight_Y0 |
251 | * Referenced by: '<S28>/OffLight' |
252 | */ |
253 | uint16_T lightDefault_Y0; /* Computed Parameter: lightDefault_Y0 |
254 | * Referenced by: '<S29>/lightDefault' |
255 | */ |
256 | uint16_T Merge_InitialOutput_i; /* Computed Parameter: Merge_InitialOutput_i |
257 | * Referenced by: '<S19>/Merge' |
258 | */ |
259 | int8_T steerLeft_Y0; /* Computed Parameter: steerLeft_Y0 |
260 | * Referenced by: '<S77>/steerLeft' |
261 | */ |
262 | int8_T steerRight_Y0; /* Computed Parameter: steerRight_Y0 |
263 | * Referenced by: '<S78>/steerRight' |
264 | */ |
265 | int8_T NoSteer_Y0; /* Computed Parameter: NoSteer_Y0 |
266 | * Referenced by: '<S80>/NoSteer' |
267 | */ |
268 | int8_T Constant2_Value_n; /* Computed Parameter: Constant2_Value_n |
269 | * Referenced by: '<S80>/Constant2' |
270 | */ |
271 | int8_T steeringMotor_Y0; /* Computed Parameter: steeringMotor_Y0 |
272 | * Referenced by: '<S38>/steeringMotor' |
273 | */ |
274 | int8_T Merge_InitialOutput_l; /* Computed Parameter: Merge_InitialOutput_l |
275 | * Referenced by: '<S45>/Merge' |
276 | */ |
277 | int8_T noSteer_Y0; /* Computed Parameter: noSteer_Y0 |
278 | * Referenced by: '<S85>/noSteer' |
279 | */ |
280 | int8_T Constant2_Value_h; /* Computed Parameter: Constant2_Value_h |
281 | * Referenced by: '<S85>/Constant2' |
282 | */ |
283 | int8_T steerLeft_Y0_f; /* Computed Parameter: steerLeft_Y0_f |
284 | * Referenced by: '<S86>/steerLeft' |
285 | */ |
286 | int8_T steerRight_Y0_m; /* Computed Parameter: steerRight_Y0_m |
287 | * Referenced by: '<S87>/steerRight' |
288 | */ |
289 | int8_T steeringMotor_Y0_n; /* Computed Parameter: steeringMotor_Y0_n |
290 | * Referenced by: '<S39>/steeringMotor' |
291 | */ |
292 | int8_T Constant2_Value_kp; /* Computed Parameter: Constant2_Value_kp |
293 | * Referenced by: '<S39>/Constant2' |
294 | */ |
295 | int8_T Merge_InitialOutput_m; /* Computed Parameter: Merge_InitialOutput_m |
296 | * Referenced by: '<S39>/Merge' |
297 | */ |
298 | int8_T driveMotor_Y0; /* Computed Parameter: driveMotor_Y0 |
299 | * Referenced by: '<S91>/driveMotor' |
300 | */ |
301 | int8_T driveMotor_Y0_e; /* Computed Parameter: driveMotor_Y0_e |
302 | * Referenced by: '<S93>/driveMotor' |
303 | */ |
304 | int8_T Constant1_Value_c; /* Computed Parameter: Constant1_Value_c |
305 | * Referenced by: '<S93>/Constant1' |
306 | */ |
307 | int8_T UnitDelay_InitialCondition_f; /* Computed Parameter: UnitDelay_InitialCondition_f |
308 | * Referenced by: '<S14>/Unit Delay' |
309 | */ |
310 | int8_T Constant_Value_k; /* Computed Parameter: Constant_Value_k |
311 | * Referenced by: '<S8>/Constant' |
312 | */ |
313 | int8_T Constant_Value_a; /* Computed Parameter: Constant_Value_a |
314 | * Referenced by: '<S2>/Constant' |
315 | */ |
316 | int8_T Merge_InitialOutput_h; /* Computed Parameter: Merge_InitialOutput_h |
317 | * Referenced by: '<S21>/Merge' |
318 | */ |
319 | int8_T Constant1_Value_g; /* Computed Parameter: Constant1_Value_g |
320 | * Referenced by: '<S2>/Constant1' |
321 | */ |
322 | int8_T Merge_InitialOutput_e; /* Computed Parameter: Merge_InitialOutput_e |
323 | * Referenced by: '<S20>/Merge' |
324 | */ |
325 | int8_T Gain5_Gain; /* Computed Parameter: Gain5_Gain |
326 | * Referenced by: '<S4>/Gain5' |
327 | */ |
328 | uint8_T Gain_Gain_j; /* Computed Parameter: Gain_Gain_j |
329 | * Referenced by: '<S30>/Gain' |
330 | */ |
331 | uint8_T Gain_Gain_b; /* Computed Parameter: Gain_Gain_b |
332 | * Referenced by: '<S32>/Gain' |
333 | */ |
334 | uint8_T Gain_Gain_ke; /* Computed Parameter: Gain_Gain_ke |
335 | * Referenced by: '<S31>/Gain' |
336 | */ |
337 | uint8_T Gain_Gain_d; /* Computed Parameter: Gain_Gain_d |
338 | * Referenced by: '<S28>/Gain' |
339 | */ |
340 | uint8_T Gain_Gain_n; /* Computed Parameter: Gain_Gain_n |
341 | * Referenced by: '<S29>/Gain' |
342 | */ |
343 | uint8_T Gain2_Gain; /* Computed Parameter: Gain2_Gain |
344 | * Referenced by: '<S4>/Gain2' |
345 | */ |
346 | uint8_T Gain3_Gain; /* Computed Parameter: Gain3_Gain |
347 | * Referenced by: '<S4>/Gain3' |
348 | */ |
349 | uint8_T Gain4_Gain; /* Computed Parameter: Gain4_Gain |
350 | * Referenced by: '<S4>/Gain4' |
351 | */ |
352 | P_HonkIfObstacleDetected_EV3C_T DoNotHonk;/* '<S17>/DoNotHonk' */ |
353 | P_HonkIfObstacleDetected_EV3C_T HonkIfObstacleDetected;/* '<S17>/HonkIfObstacleDetected' */ |
354 | }; |
355 | |
356 | /* Parameters (default storage) */ |
357 | typedef struct P_EV3Control_sil_sil_ec_T_ P_EV3Control_sil_sil_ec_T; |
358 | |
359 | /* Real-time Model Data Structure */ |
360 | struct tag_RTM_EV3Control_sil_sil_ec_T { |
361 | const char_T *errorStatus; |
362 | }; |
363 | |
364 | /* Block parameters (default storage) */ |
365 | extern P_EV3Control_sil_sil_ec_T EV3Control_sil_sil_ec_P; |
366 | |
367 | /* Block signals and states (default storage) */ |
368 | extern DW_EV3Control_sil_sil_ec_T EV3Control_sil_sil_ec_DW; |
369 | |
370 | /* External inputs (root inport signals with default storage) */ |
371 | extern ExtU_EV3Control_sil_sil_ec_T EV3Control_sil_sil_ec_U; |
372 | |
373 | /* External outputs (root outports fed by signals with default storage) */ |
374 | extern ExtY_EV3Control_sil_sil_ec_T EV3Control_sil_sil_ec_Y; |
375 | |
376 | /* Model block global parameters (default storage) */ |
377 | extern real_T rtP_CL_EST_STEER_ANGLE_RAD[4];/* Variable: CL_EST_STEER_ANGLE_RAD |
378 | * Referenced by: '<S41>/1-D Lookup Table' |
379 | */ |
380 | extern real_T rtP_CL_EST_STEER_ENC_DEG[4];/* Variable: CL_EST_STEER_ENC_DEG |
381 | * Referenced by: '<S41>/1-D Lookup Table' |
382 | */ |
383 | extern real_T rtP_CTRL_TRK_LOOKAHEAD; /* Variable: CTRL_TRK_LOOKAHEAD |
384 | * Referenced by: |
385 | * '<S67>/Constant1' |
386 | * '<S59>/Constant1' |
387 | */ |
388 | extern real_T rtP_CTRL_TRK_STEER_ANGLE_DEADZONE_RAD;/* Variable: CTRL_TRK_STEER_ANGLE_DEADZONE_RAD |
389 | * Referenced by: |
390 | * '<S45>/Constant' |
391 | * '<S45>/Constant1' |
392 | */ |
393 | extern real_T rtP_DEG2RAD; /* Variable: DEG2RAD |
394 | * Referenced by: '<S4>/deg2rad' |
395 | */ |
396 | extern real_T rtP_DIST_OBSTACLE_STOP; /* Variable: DIST_OBSTACLE_STOP |
397 | * Referenced by: '<S5>/ObstacleDetection' |
398 | */ |
399 | extern real_T rtP_LATERAL_EVADE_INCREMENT;/* Variable: LATERAL_EVADE_INCREMENT |
400 | * Referenced by: '<S72>/Constant2' |
401 | */ |
402 | extern real_T rtP_MOTOR_DRIVE_TRANSMISSION_RATIO;/* Variable: MOTOR_DRIVE_TRANSMISSION_RATIO |
403 | * Referenced by: '<S11>/GlobalPosition' |
404 | */ |
405 | extern real_T rtP_PATH_COORDS_XY[102]; /* Variable: PATH_COORDS_XY |
406 | * Referenced by: '<S67>/Constant2' |
407 | */ |
408 | extern real_T rtP_REMOTE_DRIVE_REV; /* Variable: REMOTE_DRIVE_REV |
409 | * Referenced by: |
410 | * '<S5>/ObstacleDetection' |
411 | * '<S9>/Chart' |
412 | */ |
413 | extern real_T rtP_REMOTE_STEER_LEFT; /* Variable: REMOTE_STEER_LEFT |
414 | * Referenced by: '<S39>/Constant' |
415 | */ |
416 | extern real_T rtP_REMOTE_STEER_RIGHT; /* Variable: REMOTE_STEER_RIGHT |
417 | * Referenced by: '<S39>/Constant1' |
418 | */ |
419 | extern real_T rtP_STEER_ANGLE_MAX_RAD; /* Variable: STEER_ANGLE_MAX_RAD |
420 | * Referenced by: '<S43>/Saturation' |
421 | */ |
422 | extern real_T rtP_STEER_ANGLE_MIN_RAD; /* Variable: STEER_ANGLE_MIN_RAD |
423 | * Referenced by: '<S43>/Saturation' |
424 | */ |
425 | extern real_T rtP_WHEEL_BASE; /* Variable: WHEEL_BASE |
426 | * Referenced by: '<S59>/Constant2' |
427 | */ |
428 | extern real_T rtP_WHEEL_SIZE_DEG; /* Variable: WHEEL_SIZE_DEG |
429 | * Referenced by: '<S11>/GlobalPosition' |
430 | */ |
431 | extern boolean_T rtP_CTRL_TRK_METHOD; /* Variable: CTRL_TRK_METHOD |
432 | * Referenced by: '<S43>/Constant1' |
433 | */ |
434 | extern int8_T rtP_MOTOR_DRIVE_DEFAULT_FWD;/* Variable: MOTOR_DRIVE_DEFAULT_FWD |
435 | * Referenced by: '<S91>/Constant1' |
436 | */ |
437 | extern int8_T rtP_MOTOR_DRIVE_DEFAULT_REV;/* Variable: MOTOR_DRIVE_DEFAULT_REV |
438 | * Referenced by: '<S91>/Constant2' |
439 | */ |
440 | extern int8_T rtP_MOTOR_DRIVE_MAX; /* Variable: MOTOR_DRIVE_MAX |
441 | * Referenced by: '<S21>/Saturation' |
442 | */ |
443 | extern int8_T rtP_MOTOR_DRIVE_MIN; /* Variable: MOTOR_DRIVE_MIN |
444 | * Referenced by: '<S21>/Saturation' |
445 | */ |
446 | extern int8_T rtP_MOTOR_STEER_AUTO_LEFT;/* Variable: MOTOR_STEER_AUTO_LEFT |
447 | * Referenced by: '<S77>/Constant2' |
448 | */ |
449 | extern int8_T rtP_MOTOR_STEER_AUTO_RIGHT;/* Variable: MOTOR_STEER_AUTO_RIGHT |
450 | * Referenced by: '<S78>/Constant2' |
451 | */ |
452 | extern int8_T rtP_MOTOR_STEER_MANUAL_LEFT;/* Variable: MOTOR_STEER_MANUAL_LEFT |
453 | * Referenced by: '<S86>/Constant2' |
454 | */ |
455 | extern int8_T rtP_MOTOR_STEER_MANUAL_RIGHT;/* Variable: MOTOR_STEER_MANUAL_RIGHT |
456 | * Referenced by: '<S87>/Constant2' |
457 | */ |
458 | extern int8_T rtP_MOTOR_STEER_MAX; /* Variable: MOTOR_STEER_MAX |
459 | * Referenced by: '<S39>/Saturation' |
460 | */ |
461 | extern int8_T rtP_MOTOR_STEER_MIN; /* Variable: MOTOR_STEER_MIN |
462 | * Referenced by: '<S39>/Saturation' |
463 | */ |
464 | extern int8_T rtP_REMOTE_DRIVE_AUTO_OFF;/* Variable: REMOTE_DRIVE_AUTO_OFF |
465 | * Referenced by: '<S9>/Chart' |
466 | */ |
467 | extern int8_T rtP_REMOTE_DRIVE_AUTO_ON;/* Variable: REMOTE_DRIVE_AUTO_ON |
468 | * Referenced by: '<S9>/Chart' |
469 | */ |
470 | extern int8_T rtP_REMOTE_DRIVE_FWD; /* Variable: REMOTE_DRIVE_FWD |
471 | * Referenced by: '<S9>/Chart' |
472 | */ |
473 | extern int8_T rtP_REMOTE_START; /* Variable: REMOTE_START |
474 | * Referenced by: '<S9>/Chart' |
475 | */ |
476 | extern int8_T rtP_REMOTE_STOP; /* Variable: REMOTE_STOP |
477 | * Referenced by: '<S9>/Chart' |
478 | */ |
479 | extern uint8_T rtP_DIST_OBSTACLE_EVADE;/* Variable: DIST_OBSTACLE_EVADE |
480 | * Referenced by: '<S5>/ObstacleDetection' |
481 | */ |
482 | extern uint8_T rtP_STATUS_LIGHT_DEFAULT;/* Variable: STATUS_LIGHT_DEFAULT |
483 | * Referenced by: '<S19>/Constant2' |
484 | */ |
485 | extern uint8_T rtP_STATUS_LIGHT_EMERGENCY_STOP;/* Variable: STATUS_LIGHT_EMERGENCY_STOP |
486 | * Referenced by: |
487 | * '<S2>/Constant3' |
488 | * '<S19>/Constant4' |
489 | */ |
490 | extern uint8_T rtP_STATUS_LIGHT_IDLE; /* Variable: STATUS_LIGHT_IDLE |
491 | * Referenced by: '<S19>/Constant3' |
492 | */ |
493 | extern uint8_T rtP_STATUS_LIGHT_OBSTACLE_DETECTED;/* Variable: STATUS_LIGHT_OBSTACLE_DETECTED |
494 | * Referenced by: '<S19>/Constant1' |
495 | */ |
496 | extern uint8_T rtP_STATUS_LIGHT_VEHICLE_CTRL_OFF;/* Variable: STATUS_LIGHT_VEHICLE_CTRL_OFF |
497 | * Referenced by: '<S19>/Constant5' |
498 | */ |
499 | |
500 | /* Model entry point functions */ |
501 | extern void EV3Control_sil_sil_ec_initialize(void); |
502 | extern void EV3Control_sil_sil_ec_step(void); |
503 | extern void EV3Control_sil_sil_ec_terminate(void); |
504 | |
505 | /* Real-time Model object */ |
506 | extern RT_MODEL_EV3Control_sil_sil_e_T *const EV3Control_sil_sil_ec_M; |
507 | |
508 | /*- |
509 | * The generated code includes comments that allow you to trace directly |
510 | * back to the appropriate location in the model. The basic format |
511 | * is <system>/block_name, where system is the system number (uniquely |
512 | * assigned by Simulink) and block_name is the name of the block. |
513 | * |
514 | * Note that this particular code originates from a subsystem build, |
515 | * and has its own system numbers different from the parent model. |
516 | * Refer to the system hierarchy for this subsystem below, and use the |
517 | * MATLAB hilite_system command to trace the generated code back |
518 | * to the parent model. For example, |
519 | * |
520 | * hilite_system('Frame_EV3C_ec/EV3Control_sil_sil_ec') - opens subsystem Frame_EV3C_ec/EV3Control_sil_sil_ec |
521 | * hilite_system('Frame_EV3C_ec/EV3Control_sil_sil_ec/Kp') - opens and selects block Kp |
522 | * |
523 | * Here is the system hierarchy for this model |
524 | * |
525 | * '<Root>' : 'Frame_EV3C_ec' |
526 | * '<S1>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec' |
527 | * '<S2>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/EmergencyStopSwitch' |
528 | * '<S3>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/Model_Info' |
529 | * '<S4>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/SensorDataPreprocessing' |
530 | * '<S5>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager' |
531 | * '<S6>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/EmergencyStopSwitch/Model_Info' |
532 | * '<S7>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/SensorDataPreprocessing/Model_Info' |
533 | * '<S8>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/GyroInitialization' |
534 | * '<S9>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/ManageVehicleStates' |
535 | * '<S10>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/Model_Info' |
536 | * '<S11>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl' |
537 | * '<S12>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/GyroInitialization/Model_Info' |
538 | * '<S13>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/ManageVehicleStates/Chart' |
539 | * '<S14>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/ManageVehicleStates/HoldAfterTouch' |
540 | * '<S15>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/ManageVehicleStates/Model_Info' |
541 | * '<S16>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/ManageVehicleStates/HoldAfterTouch/Model_Info' |
542 | * '<S17>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/HornControl' |
543 | * '<S18>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/Model_Info' |
544 | * '<S19>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/StatusLightControl' |
545 | * '<S20>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl' |
546 | * '<S21>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/VelocityControl' |
547 | * '<S22>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/HornControl/DoNotHonk' |
548 | * '<S23>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/HornControl/HonkIfObstacleDetected' |
549 | * '<S24>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/HornControl/Model_Info' |
550 | * '<S25>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/HornControl/DoNotHonk/Model_Info' |
551 | * '<S26>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/HornControl/HonkIfObstacleDetected/Model_Info' |
552 | * '<S27>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/StatusLightControl/Model_Info' |
553 | * '<S28>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/StatusLightControl/StatusLightCtrlOff' |
554 | * '<S29>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/StatusLightControl/StatusLightDefault' |
555 | * '<S30>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/StatusLightControl/StatusLightEmergency' |
556 | * '<S31>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/StatusLightControl/StatusLightIdle' |
557 | * '<S32>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/StatusLightControl/StatusLightObstacle' |
558 | * '<S33>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/StatusLightControl/StatusLightCtrlOff/Model_Info' |
559 | * '<S34>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/StatusLightControl/StatusLightDefault/Model_Info' |
560 | * '<S35>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/StatusLightControl/StatusLightEmergency/Model_Info' |
561 | * '<S36>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/StatusLightControl/StatusLightIdle/Model_Info' |
562 | * '<S37>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/StatusLightControl/StatusLightObstacle/Model_Info' |
563 | * '<S38>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering' |
564 | * '<S39>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/ManualSteering' |
565 | * '<S40>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/Model_Info' |
566 | * '<S41>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/EstimatedSteeringAngle' |
567 | * '<S42>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/Model_Info' |
568 | * '<S43>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower' |
569 | * '<S44>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathPlanner' |
570 | * '<S45>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/SteeringMotorControllerSimple' |
571 | * '<S46>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/EstimatedSteeringAngle/Model_Info' |
572 | * '<S47>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/FollowTheCarrotAlgorithm' |
573 | * '<S48>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/Model_Info' |
574 | * '<S49>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/NoPathFollowing' |
575 | * '<S50>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/PurePursuitAlgorithm' |
576 | * '<S51>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/RotationMatrix' |
577 | * '<S52>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/FollowTheCarrotAlgorithm/ComputeSteeringNecessarySteeringAngle' |
578 | * '<S53>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/FollowTheCarrotAlgorithm/GetGoalPointLocal' |
579 | * '<S54>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/FollowTheCarrotAlgorithm/Model_Info' |
580 | * '<S55>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/FollowTheCarrotAlgorithm/ComputeSteeringNecessarySteeringAngle/Model_Info' |
581 | * '<S56>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/FollowTheCarrotAlgorithm/GetGoalPointLocal/FollowTheCarrotAlgorithm' |
582 | * '<S57>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/FollowTheCarrotAlgorithm/GetGoalPointLocal/Model_Info' |
583 | * '<S58>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/NoPathFollowing/Model_Info' |
584 | * '<S59>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/PurePursuitAlgorithm/ComputeSteeringNecessarySteeringAngle' |
585 | * '<S60>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/PurePursuitAlgorithm/GetGoalPointLocal' |
586 | * '<S61>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/PurePursuitAlgorithm/Model_Info' |
587 | * '<S62>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/PurePursuitAlgorithm/ComputeSteeringNecessarySteeringAngle/Model_Info' |
588 | * '<S63>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/PurePursuitAlgorithm/GetGoalPointLocal/Model_Info' |
589 | * '<S64>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/PurePursuitAlgorithm/GetGoalPointLocal/TransformGoalPointToLocal' |
590 | * '<S65>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/RotationMatrix/MATLAB_Function' |
591 | * '<S66>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathFollower/RotationMatrix/Model_Info' |
592 | * '<S67>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathPlanner/GetNextGoalPointGlobal' |
593 | * '<S68>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathPlanner/Model_Info' |
594 | * '<S69>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathPlanner/ShiftNextGoalPointGlobal' |
595 | * '<S70>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathPlanner/GetNextGoalPointGlobal/GoalPointGlobal' |
596 | * '<S71>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathPlanner/GetNextGoalPointGlobal/Model_Info' |
597 | * '<S72>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathPlanner/ShiftNextGoalPointGlobal/LateralShift' |
598 | * '<S73>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathPlanner/ShiftNextGoalPointGlobal/Model_Info' |
599 | * '<S74>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathPlanner/ShiftNextGoalPointGlobal/NoShift' |
600 | * '<S75>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathPlanner/ShiftNextGoalPointGlobal/LateralShift/Model_Info' |
601 | * '<S76>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/PathPlanner/ShiftNextGoalPointGlobal/NoShift/Model_Info' |
602 | * '<S77>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/SteeringMotorControllerSimple/AutoSteerLeft' |
603 | * '<S78>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/SteeringMotorControllerSimple/AutoSteerRight' |
604 | * '<S79>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/SteeringMotorControllerSimple/Model_Info' |
605 | * '<S80>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/SteeringMotorControllerSimple/NoSteer' |
606 | * '<S81>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/SteeringMotorControllerSimple/AutoSteerLeft/Model_Info' |
607 | * '<S82>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/SteeringMotorControllerSimple/AutoSteerRight/Model_Info' |
608 | * '<S83>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/AutoSteering/SteeringMotorControllerSimple/NoSteer/Model_Info' |
609 | * '<S84>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/ManualSteering/Model_Info' |
610 | * '<S85>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/ManualSteering/NoSteer' |
611 | * '<S86>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/ManualSteering/SteerLeft' |
612 | * '<S87>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/ManualSteering/SteerRight' |
613 | * '<S88>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/ManualSteering/NoSteer/Model_Info' |
614 | * '<S89>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/ManualSteering/SteerLeft/Model_Info' |
615 | * '<S90>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/SteeringControl/ManualSteering/SteerRight/Model_Info' |
616 | * '<S91>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/VelocityControl/EnabledDriveController' |
617 | * '<S92>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/VelocityControl/Model_Info' |
618 | * '<S93>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/VelocityControl/NoInput' |
619 | * '<S94>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/VelocityControl/EnabledDriveController/Compare_To_Zero' |
620 | * '<S95>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/VelocityControl/EnabledDriveController/Model_Info' |
621 | * '<S96>' : 'Frame_EV3C_ec/EV3Control_sil_sil_ec/VehicleManager/VehicleControl/VelocityControl/NoInput/Model_Info' |
622 | */ |
623 | #endif /* RTW_HEADER_EV3Control_sil_sil_ec_h_ */ |
624 | |
625 | /* |
626 | * File trailer for generated code. |
627 | * |
628 | * [EOF] |
629 | */ |
630 |