blob: 2bf15fce8421477530e0de472388cde1e77733f1 [file] [log] [blame]
jerrymf1579332013-02-07 01:56:28 +00001// Copyright (c) National Instruments 2008. All Rights Reserved.
2// Do Not Edit... this file is generated!
3
4#ifndef __nFRC_2012_1_6_4_DIO_h__
5#define __nFRC_2012_1_6_4_DIO_h__
6
7#include "tSystemInterface.h"
8
9namespace nFPGA
10{
11namespace nFRC_2012_1_6_4
12{
13
14class tDIO
15{
16public:
17 tDIO(){}
18 virtual ~tDIO(){}
19
20 virtual tSystemInterface* getSystemInterface() = 0;
21 static tDIO* create(unsigned char sys_index, tRioStatusCode *status);
22 virtual unsigned char getSystemIndex() = 0;
23
24
25 typedef enum
26 {
27 kNumSystems = 2,
28 } tIfaceConstants;
29
30 typedef
31 union{
32 struct{
33 unsigned Period : 16;
34 unsigned MinHigh : 16;
35 };
36 struct{
37 unsigned value : 32;
38 };
39 } tPWMConfig;
40 typedef
41 union{
42 struct{
43 unsigned RelayFwd : 8;
44 unsigned RelayRev : 8;
45 unsigned I2CHeader : 4;
46 };
47 struct{
48 unsigned value : 20;
49 };
50 } tSlowValue;
51 typedef
52 union{
53 struct{
54 unsigned Transaction : 1;
55 unsigned Done : 1;
56 unsigned Aborted : 1;
57 unsigned DataReceivedHigh : 24;
58 };
59 struct{
60 unsigned value : 27;
61 };
62 } tI2CStatus;
63 typedef
64 union{
65 struct{
66 unsigned PeriodPower : 4;
67 unsigned OutputSelect_0 : 4;
68 unsigned OutputSelect_1 : 4;
69 unsigned OutputSelect_2 : 4;
70 unsigned OutputSelect_3 : 4;
71 };
72 struct{
73 unsigned value : 20;
74 };
75 } tDO_PWMConfig;
76 typedef
77 union{
78 struct{
79 unsigned Address : 8;
80 unsigned BytesToRead : 3;
81 unsigned BytesToWrite : 3;
82 unsigned DataToSendHigh : 16;
83 unsigned BitwiseHandshake : 1;
84 };
85 struct{
86 unsigned value : 31;
87 };
88 } tI2CConfig;
89
90
91 typedef enum
92 {
93 } tI2CDataToSend_IfaceConstants;
94
95 virtual void writeI2CDataToSend(unsigned int value, tRioStatusCode *status) = 0;
96 virtual unsigned int readI2CDataToSend(tRioStatusCode *status) = 0;
97
98
99 typedef enum
100 {
101 } tDO_IfaceConstants;
102
103 virtual void writeDO(unsigned short value, tRioStatusCode *status) = 0;
104 virtual unsigned short readDO(tRioStatusCode *status) = 0;
105
106
107 typedef enum
108 {
109 kNumFilterSelectElements = 16,
110 } tFilterSelect_IfaceConstants;
111
112 virtual void writeFilterSelect(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
113 virtual unsigned char readFilterSelect(unsigned char bitfield_index, tRioStatusCode *status) = 0;
114
115
116 typedef enum
117 {
118 kNumFilterPeriodElements = 3,
119 } tFilterPeriod_IfaceConstants;
120
121 virtual void writeFilterPeriod(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
122 virtual unsigned char readFilterPeriod(unsigned char bitfield_index, tRioStatusCode *status) = 0;
123
124
125 typedef enum
126 {
127 } tOutputEnable_IfaceConstants;
128
129 virtual void writeOutputEnable(unsigned short value, tRioStatusCode *status) = 0;
130 virtual unsigned short readOutputEnable(tRioStatusCode *status) = 0;
131
132
133 typedef enum
134 {
135 } tSlowValue_IfaceConstants;
136
137 virtual void writeSlowValue(tSlowValue value, tRioStatusCode *status) = 0;
138 virtual void writeSlowValue_RelayFwd(unsigned char value, tRioStatusCode *status) = 0;
139 virtual void writeSlowValue_RelayRev(unsigned char value, tRioStatusCode *status) = 0;
140 virtual void writeSlowValue_I2CHeader(unsigned char value, tRioStatusCode *status) = 0;
141 virtual tSlowValue readSlowValue(tRioStatusCode *status) = 0;
142 virtual unsigned char readSlowValue_RelayFwd(tRioStatusCode *status) = 0;
143 virtual unsigned char readSlowValue_RelayRev(tRioStatusCode *status) = 0;
144 virtual unsigned char readSlowValue_I2CHeader(tRioStatusCode *status) = 0;
145
146
147 typedef enum
148 {
149 } tI2CStatus_IfaceConstants;
150
151 virtual tI2CStatus readI2CStatus(tRioStatusCode *status) = 0;
152 virtual unsigned char readI2CStatus_Transaction(tRioStatusCode *status) = 0;
153 virtual bool readI2CStatus_Done(tRioStatusCode *status) = 0;
154 virtual bool readI2CStatus_Aborted(tRioStatusCode *status) = 0;
155 virtual unsigned int readI2CStatus_DataReceivedHigh(tRioStatusCode *status) = 0;
156
157
158 typedef enum
159 {
160 } tI2CDataReceived_IfaceConstants;
161
162 virtual unsigned int readI2CDataReceived(tRioStatusCode *status) = 0;
163
164
165 typedef enum
166 {
167 } tDI_IfaceConstants;
168
169 virtual unsigned short readDI(tRioStatusCode *status) = 0;
170
171
172 typedef enum
173 {
174 } tPulse_IfaceConstants;
175
176 virtual void writePulse(unsigned short value, tRioStatusCode *status) = 0;
177 virtual unsigned short readPulse(tRioStatusCode *status) = 0;
178
179
180 typedef enum
181 {
182 kNumPWMPeriodScaleElements = 10,
183 } tPWMPeriodScale_IfaceConstants;
184
185 virtual void writePWMPeriodScale(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
186 virtual unsigned char readPWMPeriodScale(unsigned char bitfield_index, tRioStatusCode *status) = 0;
187
188
189 typedef enum
190 {
191 kNumDO_PWMDutyCycleElements = 4,
192 } tDO_PWMDutyCycle_IfaceConstants;
193
194 virtual void writeDO_PWMDutyCycle(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
195 virtual unsigned char readDO_PWMDutyCycle(unsigned char bitfield_index, tRioStatusCode *status) = 0;
196
197
198 typedef enum
199 {
200 } tBFL_IfaceConstants;
201
202 virtual void writeBFL(bool value, tRioStatusCode *status) = 0;
203 virtual bool readBFL(tRioStatusCode *status) = 0;
204
205
206 typedef enum
207 {
208 } tI2CStart_IfaceConstants;
209
210 virtual void strobeI2CStart(tRioStatusCode *status) = 0;
211
212
213 typedef enum
214 {
215 } tDO_PWMConfig_IfaceConstants;
216
217 virtual void writeDO_PWMConfig(tDO_PWMConfig value, tRioStatusCode *status) = 0;
218 virtual void writeDO_PWMConfig_PeriodPower(unsigned char value, tRioStatusCode *status) = 0;
219 virtual void writeDO_PWMConfig_OutputSelect_0(unsigned char value, tRioStatusCode *status) = 0;
220 virtual void writeDO_PWMConfig_OutputSelect_1(unsigned char value, tRioStatusCode *status) = 0;
221 virtual void writeDO_PWMConfig_OutputSelect_2(unsigned char value, tRioStatusCode *status) = 0;
222 virtual void writeDO_PWMConfig_OutputSelect_3(unsigned char value, tRioStatusCode *status) = 0;
223 virtual tDO_PWMConfig readDO_PWMConfig(tRioStatusCode *status) = 0;
224 virtual unsigned char readDO_PWMConfig_PeriodPower(tRioStatusCode *status) = 0;
225 virtual unsigned char readDO_PWMConfig_OutputSelect_0(tRioStatusCode *status) = 0;
226 virtual unsigned char readDO_PWMConfig_OutputSelect_1(tRioStatusCode *status) = 0;
227 virtual unsigned char readDO_PWMConfig_OutputSelect_2(tRioStatusCode *status) = 0;
228 virtual unsigned char readDO_PWMConfig_OutputSelect_3(tRioStatusCode *status) = 0;
229
230
231 typedef enum
232 {
233 } tPulseLength_IfaceConstants;
234
235 virtual void writePulseLength(unsigned char value, tRioStatusCode *status) = 0;
236 virtual unsigned char readPulseLength(tRioStatusCode *status) = 0;
237
238
239 typedef enum
240 {
241 } tI2CConfig_IfaceConstants;
242
243 virtual void writeI2CConfig(tI2CConfig value, tRioStatusCode *status) = 0;
244 virtual void writeI2CConfig_Address(unsigned char value, tRioStatusCode *status) = 0;
245 virtual void writeI2CConfig_BytesToRead(unsigned char value, tRioStatusCode *status) = 0;
246 virtual void writeI2CConfig_BytesToWrite(unsigned char value, tRioStatusCode *status) = 0;
247 virtual void writeI2CConfig_DataToSendHigh(unsigned short value, tRioStatusCode *status) = 0;
248 virtual void writeI2CConfig_BitwiseHandshake(bool value, tRioStatusCode *status) = 0;
249 virtual tI2CConfig readI2CConfig(tRioStatusCode *status) = 0;
250 virtual unsigned char readI2CConfig_Address(tRioStatusCode *status) = 0;
251 virtual unsigned char readI2CConfig_BytesToRead(tRioStatusCode *status) = 0;
252 virtual unsigned char readI2CConfig_BytesToWrite(tRioStatusCode *status) = 0;
253 virtual unsigned short readI2CConfig_DataToSendHigh(tRioStatusCode *status) = 0;
254 virtual bool readI2CConfig_BitwiseHandshake(tRioStatusCode *status) = 0;
255
256
257
258 typedef enum
259 {
260 } tLoopTiming_IfaceConstants;
261
262 virtual unsigned short readLoopTiming(tRioStatusCode *status) = 0;
263
264
265 typedef enum
266 {
267 } tPWMConfig_IfaceConstants;
268
269 virtual void writePWMConfig(tPWMConfig value, tRioStatusCode *status) = 0;
270 virtual void writePWMConfig_Period(unsigned short value, tRioStatusCode *status) = 0;
271 virtual void writePWMConfig_MinHigh(unsigned short value, tRioStatusCode *status) = 0;
272 virtual tPWMConfig readPWMConfig(tRioStatusCode *status) = 0;
273 virtual unsigned short readPWMConfig_Period(tRioStatusCode *status) = 0;
274 virtual unsigned short readPWMConfig_MinHigh(tRioStatusCode *status) = 0;
275
276
277
278 typedef enum
279 {
280 kNumPWMValueRegisters = 10,
281 } tPWMValue_IfaceConstants;
282
283 virtual void writePWMValue(unsigned char reg_index, unsigned char value, tRioStatusCode *status) = 0;
284 virtual unsigned char readPWMValue(unsigned char reg_index, tRioStatusCode *status) = 0;
285
286
287
288private:
289 tDIO(const tDIO&);
290 void operator=(const tDIO&);
291};
292
293}
294}
295
296#endif // __nFRC_2012_1_6_4_DIO_h__