1/*
2 * VisionTest.h
3 *
4 * Classroom License -- for classroom instructional use only. Not for
5 * government, commercial, academic research, or other organizational use.
6 *
7 * Code generation for model "VisionTest".
8 *
9 * Model version : 1.4
10 * Simulink Coder version : 8.11 (R2016b) 25-Aug-2016
11 * C source code generated on : Thu Dec 01 17:32:23 2016
12 *
13 * Target selection: ert.tlc
14 * Note: GRT includes extra infrastructure and instrumentation for prototyping
15 * Embedded hardware selection: ARM Compatible->ARM Cortex
16 * Code generation objectives: Unspecified
17 * Validation result: Not run
18 */
19
20#ifndef RTW_HEADER_VisionTest_h_
21#define RTW_HEADER_VisionTest_h_
22#include <float.h>
23#include <string.h>
24#include <stddef.h>
25#ifndef VisionTest_COMMON_INCLUDES_
26# define VisionTest_COMMON_INCLUDES_
27#include "rtwtypes.h"
28#include "rtw_extmode.h"
29#include "sysran_types.h"
30#include "rtw_continuous.h"
31#include "rtw_solver.h"
32#include "dt_info.h"
33#include "ext_work.h"
34#endif /* VisionTest_COMMON_INCLUDES_ */
35
36#include "VisionTest_types.h"
37
38/* Shared type includes */
39#include "multiword_types.h"
40
41/* Macros for accessing real-time model data structure */
42#ifndef rtmGetFinalTime
43# define rtmGetFinalTime(rtm) ((rtm)->Timing.tFinal)
44#endif
45
46#ifndef rtmGetRTWExtModeInfo
47# define rtmGetRTWExtModeInfo(rtm) ((rtm)->extModeInfo)
48#endif
49
50#ifndef rtmGetErrorStatus
51# define rtmGetErrorStatus(rtm) ((rtm)->errorStatus)
52#endif
53
54#ifndef rtmSetErrorStatus
55# define rtmSetErrorStatus(rtm, val) ((rtm)->errorStatus = (val))
56#endif
57
58#ifndef rtmGetStopRequested
59# define rtmGetStopRequested(rtm) ((rtm)->Timing.stopRequestedFlag)
60#endif
61
62#ifndef rtmSetStopRequested
63# define rtmSetStopRequested(rtm, val) ((rtm)->Timing.stopRequestedFlag = (val))
64#endif
65
66#ifndef rtmGetStopRequestedPtr
67# define rtmGetStopRequestedPtr(rtm) (&((rtm)->Timing.stopRequestedFlag))
68#endif
69
70#ifndef rtmGetT
71# define rtmGetT(rtm) ((rtm)->Timing.taskTime0)
72#endif
73
74#ifndef rtmGetTFinal
75# define rtmGetTFinal(rtm) ((rtm)->Timing.tFinal)
76#endif
77
78/* Block signals (auto storage) */
79typedef struct {
80 real_T MagManFoilwitherror_o1; /* '<Root>/MagMan Foil with error' */
81 real_T MagManFoilwitherror_o2; /* '<Root>/MagMan Foil with error' */
82 real_T MagManFoilwitherror_o3; /* '<Root>/MagMan Foil with error' */
83 real_T ManualSwitch1[2]; /* '<Root>/Manual Switch1' */
84 real_T Subtract[2]; /* '<Root>/Subtract' */
85 real_T X; /* '<Root>/Position transformation' */
86 real_T Y; /* '<Root>/Position transformation' */
87 int32_T MagManFoilwitherror_o4; /* '<Root>/MagMan Foil with error' */
88 int32_T Readposition_o1; /* '<S1>/Read position' */
89 int32_T Readposition_o2; /* '<S1>/Read position' */
90} B_VisionTest_T;
91
92/* Block states (auto storage) for system '<Root>' */
93typedef struct {
94 real_T MagManFoilwitherror_DSTATE; /* '<Root>/MagMan Foil with error' */
95 real_T Readposition_DSTATE; /* '<S1>/Read position' */
96 real_T Delay_DSTATE[2]; /* '<Root>/Delay' */
97 real_T Delay1_DSTATE[2]; /* '<Root>/Delay1' */
98 struct {
99 void *LoggedData[3];
100 } Scope1_PWORK; /* '<Root>/Scope1' */
101
102 struct {
103 void *LoggedData;
104 } Scope2_PWORK; /* '<Root>/Scope2' */
105
106 struct {
107 void *LoggedData;
108 } Scope3_PWORK; /* '<Root>/Scope3' */
109} DW_VisionTest_T;
110
111/* Parameters (auto storage) */
112struct P_VisionTest_T_ {
113 real_T km4pi[9]; /* Variable: km4pi
114 * Referenced by: '<Root>/Sentinel Calibration matrix'
115 */
116 real_T km4piCam[9]; /* Variable: km4piCam
117 * Referenced by: '<Root>/Raspicam Calibration matrix'
118 */
119 real_T Delay_InitialCondition; /* Expression: 0
120 * Referenced by: '<Root>/Delay'
121 */
122 real_T Delay1_InitialCondition; /* Expression: 0
123 * Referenced by: '<Root>/Delay1'
124 */
125 uint32_T Delay_DelayLength; /* Computed Parameter: Delay_DelayLength
126 * Referenced by: '<Root>/Delay'
127 */
128 uint32_T Delay1_DelayLength; /* Computed Parameter: Delay1_DelayLength
129 * Referenced by: '<Root>/Delay1'
130 */
131 uint8_T ManualSwitch_CurrentSetting; /* Computed Parameter: ManualSwitch_CurrentSetting
132 * Referenced by: '<Root>/Manual Switch'
133 */
134 uint8_T ManualSwitch1_CurrentSetting;/* Computed Parameter: ManualSwitch1_CurrentSetting
135 * Referenced by: '<Root>/Manual Switch1'
136 */
137};
138
139/* Real-time Model Data Structure */
140struct tag_RTM_VisionTest_T {
141 const char_T *errorStatus;
142 RTWExtModeInfo *extModeInfo;
143
144 /*
145 * Sizes:
146 * The following substructure contains sizes information
147 * for many of the model attributes such as inputs, outputs,
148 * dwork, sample times, etc.
149 */
150 struct {
151 uint32_T checksums[4];
152 } Sizes;
153
154 /*
155 * SpecialInfo:
156 * The following substructure contains special information
157 * related to other components that are dependent on RTW.
158 */
159 struct {
160 const void *mappingInfo;
161 } SpecialInfo;
162
163 /*
164 * Timing:
165 * The following substructure contains information regarding
166 * the timing information for the model.
167 */
168 struct {
169 time_T taskTime0;
170 uint32_T clockTick0;
171 uint32_T clockTickH0;
172 time_T stepSize0;
173 time_T tFinal;
174 boolean_T stopRequestedFlag;
175 } Timing;
176};
177
178/* Block parameters (auto storage) */
179extern P_VisionTest_T VisionTest_P;
180
181/* Block signals (auto storage) */
182extern B_VisionTest_T VisionTest_B;
183
184/* Block states (auto storage) */
185extern DW_VisionTest_T VisionTest_DW;
186
187/* Model entry point functions */
188extern void VisionTest_initialize(void);
189extern void VisionTest_step(void);
190extern void VisionTest_terminate(void);
191
192/* Real-time Model object */
193extern RT_MODEL_VisionTest_T *const VisionTest_M;
194
195/*-
196 * The generated code includes comments that allow you to trace directly
197 * back to the appropriate location in the model. The basic format
198 * is <system>/block_name, where system is the system number (uniquely
199 * assigned by Simulink) and block_name is the name of the block.
200 *
201 * Use the MATLAB hilite_system command to trace the generated code back
202 * to the model. For example,
203 *
204 * hilite_system('<S3>') - opens system 3
205 * hilite_system('<S3>/Kp') - opens and selects block Kp which resides in S3
206 *
207 * Here is the system hierarchy for this model
208 *
209 * '<Root>' : 'VisionTest'
210 * '<S1>' : 'VisionTest/Position from Camera'
211 * '<S2>' : 'VisionTest/Position transformation'
212 * '<S3>' : 'VisionTest/Position transformation1'
213 */
214#endif /* RTW_HEADER_VisionTest_h_ */
215