001    // Copyright (c) National Instruments 2009.  All Rights Reserved.
002    // Do Not Edit... this file is generated!
003    
004    package edu.wpi.first.wpilibj.fpga;
005    
006    import com.ni.rio.*;
007    
008    public class tCounter extends tSystem
009    {
010    
011       public tCounter(final int sys_index)
012       {
013          super();
014          m_SystemIndex = sys_index;
015          if (status.isNotFatal() && m_SystemIndex >= kNumSystems)
016          {
017             status.setStatus(NiRioStatus.kRIOStatusBadSelector);
018          }
019    
020       }
021    
022       protected void finalize()
023       {
024          super.finalize();
025       }
026    
027       public int getSystemIndex()
028       {
029          return m_SystemIndex;
030       }
031    
032       public static final int kNumSystems = 8;
033       public final int m_SystemIndex;
034    
035    
036    
037    
038    
039    
040    
041    
042    //////////////////////////////////////////////////////////////////////////////////////////////////
043    // Accessors for Output
044    //////////////////////////////////////////////////////////////////////////////////////////////////
045       private static final int kOutput_Direction_BitfieldMask = 0x80000000;
046       private static final int kOutput_Direction_BitfieldOffset = 31;
047       private static final int kOutput_Value_BitfieldMask = 0x7FFFFFFF;
048       private static final int kOutput_Value_BitfieldOffset = 0;
049       private static final int kCounter0_Output_Address = 0x82E8;
050       private static final int kCounter1_Output_Address = 0x82FC;
051       private static final int kCounter2_Output_Address = 0x8310;
052       private static final int kCounter3_Output_Address = 0x8324;
053       private static final int kCounter4_Output_Address = 0x8338;
054       private static final int kCounter5_Output_Address = 0x834C;
055       private static final int kCounter6_Output_Address = 0x8360;
056       private static final int kCounter7_Output_Address = 0x8374;
057       private static final int kOutput_Addresses [] =
058       {
059          kCounter0_Output_Address,
060          kCounter1_Output_Address,
061          kCounter2_Output_Address,
062          kCounter3_Output_Address,
063          kCounter4_Output_Address,
064          kCounter5_Output_Address,
065          kCounter6_Output_Address,
066          kCounter7_Output_Address,
067       };
068    
069       public int readOutput()
070       {
071    
072          int result = NiFpga.readU32(m_DeviceHandle, kOutput_Addresses[m_SystemIndex], status);
073          int regValue = result ;
074          return (int)(regValue);
075       }
076       public boolean readOutput_Direction()
077       {
078    
079          int result = NiFpga.readU32(m_DeviceHandle, kOutput_Addresses[m_SystemIndex], status);
080          int regValue = result ;
081          int bitfieldValue = ((regValue & kOutput_Direction_BitfieldMask) >>> kOutput_Direction_BitfieldOffset);
082          return ((bitfieldValue) != 0 ? true : false);
083       }
084       public int readOutput_Value()
085       {
086    
087          int result = NiFpga.readU32(m_DeviceHandle, kOutput_Addresses[m_SystemIndex], status);
088          int regValue = result ;
089          int bitfieldValue = ((regValue & kOutput_Value_BitfieldMask) >>> kOutput_Value_BitfieldOffset);
090          // Sign extension
091          bitfieldValue <<= 1;
092          bitfieldValue >>= 1;
093          return (int)(bitfieldValue);
094       }
095    
096    //////////////////////////////////////////////////////////////////////////////////////////////////
097    // Accessors for Config
098    //////////////////////////////////////////////////////////////////////////////////////////////////
099       private static final int kConfig_UpSource_Channel_BitfieldMask = 0xF0000000;
100       private static final int kConfig_UpSource_Channel_BitfieldOffset = 28;
101       private static final int kConfig_UpSource_Module_BitfieldMask = 0x08000000;
102       private static final int kConfig_UpSource_Module_BitfieldOffset = 27;
103       private static final int kConfig_UpSource_AnalogTrigger_BitfieldMask = 0x04000000;
104       private static final int kConfig_UpSource_AnalogTrigger_BitfieldOffset = 26;
105       private static final int kConfig_DownSource_Channel_BitfieldMask = 0x03C00000;
106       private static final int kConfig_DownSource_Channel_BitfieldOffset = 22;
107       private static final int kConfig_DownSource_Module_BitfieldMask = 0x00200000;
108       private static final int kConfig_DownSource_Module_BitfieldOffset = 21;
109       private static final int kConfig_DownSource_AnalogTrigger_BitfieldMask = 0x00100000;
110       private static final int kConfig_DownSource_AnalogTrigger_BitfieldOffset = 20;
111       private static final int kConfig_IndexSource_Channel_BitfieldMask = 0x000F0000;
112       private static final int kConfig_IndexSource_Channel_BitfieldOffset = 16;
113       private static final int kConfig_IndexSource_Module_BitfieldMask = 0x00008000;
114       private static final int kConfig_IndexSource_Module_BitfieldOffset = 15;
115       private static final int kConfig_IndexSource_AnalogTrigger_BitfieldMask = 0x00004000;
116       private static final int kConfig_IndexSource_AnalogTrigger_BitfieldOffset = 14;
117       private static final int kConfig_IndexActiveHigh_BitfieldMask = 0x00002000;
118       private static final int kConfig_IndexActiveHigh_BitfieldOffset = 13;
119       private static final int kConfig_UpRisingEdge_BitfieldMask = 0x00001000;
120       private static final int kConfig_UpRisingEdge_BitfieldOffset = 12;
121       private static final int kConfig_UpFallingEdge_BitfieldMask = 0x00000800;
122       private static final int kConfig_UpFallingEdge_BitfieldOffset = 11;
123       private static final int kConfig_DownRisingEdge_BitfieldMask = 0x00000400;
124       private static final int kConfig_DownRisingEdge_BitfieldOffset = 10;
125       private static final int kConfig_DownFallingEdge_BitfieldMask = 0x00000200;
126       private static final int kConfig_DownFallingEdge_BitfieldOffset = 9;
127       private static final int kConfig_Mode_BitfieldMask = 0x00000180;
128       private static final int kConfig_Mode_BitfieldOffset = 7;
129       private static final int kConfig_PulseLengthThreshold_BitfieldMask = 0x0000007E;
130       private static final int kConfig_PulseLengthThreshold_BitfieldOffset = 1;
131       private static final int kConfig_PulseLengthThreshold_FixedPointIntegerShift = 8;
132       private static final int kConfig_Enable_BitfieldMask = 0x00000001;
133       private static final int kConfig_Enable_BitfieldOffset = 0;
134       private static final int kCounter0_Config_Address = 0x82E0;
135       private static final int kCounter1_Config_Address = 0x82F4;
136       private static final int kCounter2_Config_Address = 0x8308;
137       private static final int kCounter3_Config_Address = 0x831C;
138       private static final int kCounter4_Config_Address = 0x8330;
139       private static final int kCounter5_Config_Address = 0x8344;
140       private static final int kCounter6_Config_Address = 0x8358;
141       private static final int kCounter7_Config_Address = 0x836C;
142       private static final int kConfig_Addresses [] =
143       {
144          kCounter0_Config_Address,
145          kCounter1_Config_Address,
146          kCounter2_Config_Address,
147          kCounter3_Config_Address,
148          kCounter4_Config_Address,
149          kCounter5_Config_Address,
150          kCounter6_Config_Address,
151          kCounter7_Config_Address,
152       };
153    
154       public void writeConfig(final int value)
155       {
156    
157          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], value, status);
158       }
159       public void writeConfig_UpSource_Channel(final int value)
160       {
161    
162          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
163          regValue &= ~kConfig_UpSource_Channel_BitfieldMask;
164          regValue |= ((value) << kConfig_UpSource_Channel_BitfieldOffset) & kConfig_UpSource_Channel_BitfieldMask;
165          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
166       }
167       public void writeConfig_UpSource_Module(final int value)
168       {
169    
170          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
171          regValue &= ~kConfig_UpSource_Module_BitfieldMask;
172          regValue |= ((value) << kConfig_UpSource_Module_BitfieldOffset) & kConfig_UpSource_Module_BitfieldMask;
173          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
174       }
175       public void writeConfig_UpSource_AnalogTrigger(final boolean value)
176       {
177    
178          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
179          regValue &= ~kConfig_UpSource_AnalogTrigger_BitfieldMask;
180          regValue |= (((value ? 1 : 0)) << kConfig_UpSource_AnalogTrigger_BitfieldOffset) & kConfig_UpSource_AnalogTrigger_BitfieldMask;
181          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
182       }
183       public void writeConfig_DownSource_Channel(final int value)
184       {
185    
186          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
187          regValue &= ~kConfig_DownSource_Channel_BitfieldMask;
188          regValue |= ((value) << kConfig_DownSource_Channel_BitfieldOffset) & kConfig_DownSource_Channel_BitfieldMask;
189          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
190       }
191       public void writeConfig_DownSource_Module(final int value)
192       {
193    
194          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
195          regValue &= ~kConfig_DownSource_Module_BitfieldMask;
196          regValue |= ((value) << kConfig_DownSource_Module_BitfieldOffset) & kConfig_DownSource_Module_BitfieldMask;
197          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
198       }
199       public void writeConfig_DownSource_AnalogTrigger(final boolean value)
200       {
201    
202          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
203          regValue &= ~kConfig_DownSource_AnalogTrigger_BitfieldMask;
204          regValue |= (((value ? 1 : 0)) << kConfig_DownSource_AnalogTrigger_BitfieldOffset) & kConfig_DownSource_AnalogTrigger_BitfieldMask;
205          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
206       }
207       public void writeConfig_IndexSource_Channel(final int value)
208       {
209    
210          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
211          regValue &= ~kConfig_IndexSource_Channel_BitfieldMask;
212          regValue |= ((value) << kConfig_IndexSource_Channel_BitfieldOffset) & kConfig_IndexSource_Channel_BitfieldMask;
213          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
214       }
215       public void writeConfig_IndexSource_Module(final int value)
216       {
217    
218          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
219          regValue &= ~kConfig_IndexSource_Module_BitfieldMask;
220          regValue |= ((value) << kConfig_IndexSource_Module_BitfieldOffset) & kConfig_IndexSource_Module_BitfieldMask;
221          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
222       }
223       public void writeConfig_IndexSource_AnalogTrigger(final boolean value)
224       {
225    
226          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
227          regValue &= ~kConfig_IndexSource_AnalogTrigger_BitfieldMask;
228          regValue |= (((value ? 1 : 0)) << kConfig_IndexSource_AnalogTrigger_BitfieldOffset) & kConfig_IndexSource_AnalogTrigger_BitfieldMask;
229          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
230       }
231       public void writeConfig_IndexActiveHigh(final boolean value)
232       {
233    
234          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
235          regValue &= ~kConfig_IndexActiveHigh_BitfieldMask;
236          regValue |= (((value ? 1 : 0)) << kConfig_IndexActiveHigh_BitfieldOffset) & kConfig_IndexActiveHigh_BitfieldMask;
237          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
238       }
239       public void writeConfig_UpRisingEdge(final boolean value)
240       {
241    
242          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
243          regValue &= ~kConfig_UpRisingEdge_BitfieldMask;
244          regValue |= (((value ? 1 : 0)) << kConfig_UpRisingEdge_BitfieldOffset) & kConfig_UpRisingEdge_BitfieldMask;
245          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
246       }
247       public void writeConfig_UpFallingEdge(final boolean value)
248       {
249    
250          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
251          regValue &= ~kConfig_UpFallingEdge_BitfieldMask;
252          regValue |= (((value ? 1 : 0)) << kConfig_UpFallingEdge_BitfieldOffset) & kConfig_UpFallingEdge_BitfieldMask;
253          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
254       }
255       public void writeConfig_DownRisingEdge(final boolean value)
256       {
257    
258          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
259          regValue &= ~kConfig_DownRisingEdge_BitfieldMask;
260          regValue |= (((value ? 1 : 0)) << kConfig_DownRisingEdge_BitfieldOffset) & kConfig_DownRisingEdge_BitfieldMask;
261          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
262       }
263       public void writeConfig_DownFallingEdge(final boolean value)
264       {
265    
266          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
267          regValue &= ~kConfig_DownFallingEdge_BitfieldMask;
268          regValue |= (((value ? 1 : 0)) << kConfig_DownFallingEdge_BitfieldOffset) & kConfig_DownFallingEdge_BitfieldMask;
269          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
270       }
271       public void writeConfig_Mode(final int value)
272       {
273    
274          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
275          regValue &= ~kConfig_Mode_BitfieldMask;
276          regValue |= ((value) << kConfig_Mode_BitfieldOffset) & kConfig_Mode_BitfieldMask;
277          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
278       }
279       public void writeConfig_PulseLengthThreshold(final int value)
280       {
281    
282          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
283          regValue &= ~kConfig_PulseLengthThreshold_BitfieldMask;
284          regValue |= ((value >>> kConfig_PulseLengthThreshold_FixedPointIntegerShift) << kConfig_PulseLengthThreshold_BitfieldOffset) & kConfig_PulseLengthThreshold_BitfieldMask;
285          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
286       }
287       public void writeConfig_Enable(final boolean value)
288       {
289    
290          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
291          regValue &= ~kConfig_Enable_BitfieldMask;
292          regValue |= (((value ? 1 : 0)) << kConfig_Enable_BitfieldOffset) & kConfig_Enable_BitfieldMask;
293          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
294       }
295       public int readConfig()
296       {
297    
298          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
299          int regValue = result ;
300          return (int)(regValue);
301       }
302       public byte readConfig_UpSource_Channel()
303       {
304    
305          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
306          int regValue = result ;
307          int bitfieldValue = ((regValue & kConfig_UpSource_Channel_BitfieldMask) >>> kConfig_UpSource_Channel_BitfieldOffset);
308          return (byte)((bitfieldValue) & 0x0000000F);
309       }
310       public byte readConfig_UpSource_Module()
311       {
312    
313          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
314          int regValue = result ;
315          int bitfieldValue = ((regValue & kConfig_UpSource_Module_BitfieldMask) >>> kConfig_UpSource_Module_BitfieldOffset);
316          return (byte)((bitfieldValue) & 0x00000001);
317       }
318       public boolean readConfig_UpSource_AnalogTrigger()
319       {
320    
321          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
322          int regValue = result ;
323          int bitfieldValue = ((regValue & kConfig_UpSource_AnalogTrigger_BitfieldMask) >>> kConfig_UpSource_AnalogTrigger_BitfieldOffset);
324          return ((bitfieldValue) != 0 ? true : false);
325       }
326       public byte readConfig_DownSource_Channel()
327       {
328    
329          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
330          int regValue = result ;
331          int bitfieldValue = ((regValue & kConfig_DownSource_Channel_BitfieldMask) >>> kConfig_DownSource_Channel_BitfieldOffset);
332          return (byte)((bitfieldValue) & 0x0000000F);
333       }
334       public byte readConfig_DownSource_Module()
335       {
336    
337          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
338          int regValue = result ;
339          int bitfieldValue = ((regValue & kConfig_DownSource_Module_BitfieldMask) >>> kConfig_DownSource_Module_BitfieldOffset);
340          return (byte)((bitfieldValue) & 0x00000001);
341       }
342       public boolean readConfig_DownSource_AnalogTrigger()
343       {
344    
345          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
346          int regValue = result ;
347          int bitfieldValue = ((regValue & kConfig_DownSource_AnalogTrigger_BitfieldMask) >>> kConfig_DownSource_AnalogTrigger_BitfieldOffset);
348          return ((bitfieldValue) != 0 ? true : false);
349       }
350       public byte readConfig_IndexSource_Channel()
351       {
352    
353          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
354          int regValue = result ;
355          int bitfieldValue = ((regValue & kConfig_IndexSource_Channel_BitfieldMask) >>> kConfig_IndexSource_Channel_BitfieldOffset);
356          return (byte)((bitfieldValue) & 0x0000000F);
357       }
358       public byte readConfig_IndexSource_Module()
359       {
360    
361          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
362          int regValue = result ;
363          int bitfieldValue = ((regValue & kConfig_IndexSource_Module_BitfieldMask) >>> kConfig_IndexSource_Module_BitfieldOffset);
364          return (byte)((bitfieldValue) & 0x00000001);
365       }
366       public boolean readConfig_IndexSource_AnalogTrigger()
367       {
368    
369          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
370          int regValue = result ;
371          int bitfieldValue = ((regValue & kConfig_IndexSource_AnalogTrigger_BitfieldMask) >>> kConfig_IndexSource_AnalogTrigger_BitfieldOffset);
372          return ((bitfieldValue) != 0 ? true : false);
373       }
374       public boolean readConfig_IndexActiveHigh()
375       {
376    
377          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
378          int regValue = result ;
379          int bitfieldValue = ((regValue & kConfig_IndexActiveHigh_BitfieldMask) >>> kConfig_IndexActiveHigh_BitfieldOffset);
380          return ((bitfieldValue) != 0 ? true : false);
381       }
382       public boolean readConfig_UpRisingEdge()
383       {
384    
385          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
386          int regValue = result ;
387          int bitfieldValue = ((regValue & kConfig_UpRisingEdge_BitfieldMask) >>> kConfig_UpRisingEdge_BitfieldOffset);
388          return ((bitfieldValue) != 0 ? true : false);
389       }
390       public boolean readConfig_UpFallingEdge()
391       {
392    
393          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
394          int regValue = result ;
395          int bitfieldValue = ((regValue & kConfig_UpFallingEdge_BitfieldMask) >>> kConfig_UpFallingEdge_BitfieldOffset);
396          return ((bitfieldValue) != 0 ? true : false);
397       }
398       public boolean readConfig_DownRisingEdge()
399       {
400    
401          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
402          int regValue = result ;
403          int bitfieldValue = ((regValue & kConfig_DownRisingEdge_BitfieldMask) >>> kConfig_DownRisingEdge_BitfieldOffset);
404          return ((bitfieldValue) != 0 ? true : false);
405       }
406       public boolean readConfig_DownFallingEdge()
407       {
408    
409          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
410          int regValue = result ;
411          int bitfieldValue = ((regValue & kConfig_DownFallingEdge_BitfieldMask) >>> kConfig_DownFallingEdge_BitfieldOffset);
412          return ((bitfieldValue) != 0 ? true : false);
413       }
414       public byte readConfig_Mode()
415       {
416    
417          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
418          int regValue = result ;
419          int bitfieldValue = ((regValue & kConfig_Mode_BitfieldMask) >>> kConfig_Mode_BitfieldOffset);
420          return (byte)((bitfieldValue) & 0x00000003);
421       }
422       public short readConfig_PulseLengthThreshold()
423       {
424    
425          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
426          int regValue = result ;
427          int bitfieldValue = ((regValue & kConfig_PulseLengthThreshold_BitfieldMask) >>> kConfig_PulseLengthThreshold_BitfieldOffset) << kConfig_PulseLengthThreshold_FixedPointIntegerShift;
428          return (short)((bitfieldValue) & 0x00003FFF);
429       }
430       public boolean readConfig_Enable()
431       {
432    
433          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
434          int regValue = result ;
435          int bitfieldValue = ((regValue & kConfig_Enable_BitfieldMask) >>> kConfig_Enable_BitfieldOffset);
436          return ((bitfieldValue) != 0 ? true : false);
437       }
438    
439    //////////////////////////////////////////////////////////////////////////////////////////////////
440    // Accessors for TimerOutput
441    //////////////////////////////////////////////////////////////////////////////////////////////////
442       private static final int kTimerOutput_Period_BitfieldMask = 0xFFFFFE00;
443       private static final int kTimerOutput_Period_BitfieldOffset = 9;
444       private static final int kTimerOutput_Period_FixedPointIntegerShift = 1;
445       private static final int kTimerOutput_Count_BitfieldMask = 0x000001FE;
446       private static final int kTimerOutput_Count_BitfieldOffset = 1;
447       private static final int kTimerOutput_Stalled_BitfieldMask = 0x00000001;
448       private static final int kTimerOutput_Stalled_BitfieldOffset = 0;
449       private static final int kCounter0_TimerOutput_Address = 0x82F0;
450       private static final int kCounter1_TimerOutput_Address = 0x8304;
451       private static final int kCounter2_TimerOutput_Address = 0x8318;
452       private static final int kCounter3_TimerOutput_Address = 0x832C;
453       private static final int kCounter4_TimerOutput_Address = 0x8340;
454       private static final int kCounter5_TimerOutput_Address = 0x8354;
455       private static final int kCounter6_TimerOutput_Address = 0x8368;
456       private static final int kCounter7_TimerOutput_Address = 0x837C;
457       private static final int kTimerOutput_Addresses [] =
458       {
459          kCounter0_TimerOutput_Address,
460          kCounter1_TimerOutput_Address,
461          kCounter2_TimerOutput_Address,
462          kCounter3_TimerOutput_Address,
463          kCounter4_TimerOutput_Address,
464          kCounter5_TimerOutput_Address,
465          kCounter6_TimerOutput_Address,
466          kCounter7_TimerOutput_Address,
467       };
468    
469       public int readTimerOutput()
470       {
471    
472          int result = NiFpga.readU32(m_DeviceHandle, kTimerOutput_Addresses[m_SystemIndex], status);
473          int regValue = result ;
474          return (int)(regValue);
475       }
476       public int readTimerOutput_Period()
477       {
478    
479          int result = NiFpga.readU32(m_DeviceHandle, kTimerOutput_Addresses[m_SystemIndex], status);
480          int regValue = result ;
481          int bitfieldValue = ((regValue & kTimerOutput_Period_BitfieldMask) >>> kTimerOutput_Period_BitfieldOffset) << kTimerOutput_Period_FixedPointIntegerShift;
482          return (int)((bitfieldValue) & 0x00FFFFFF);
483       }
484       public byte readTimerOutput_Count()
485       {
486    
487          int result = NiFpga.readU32(m_DeviceHandle, kTimerOutput_Addresses[m_SystemIndex], status);
488          int regValue = result ;
489          int bitfieldValue = ((regValue & kTimerOutput_Count_BitfieldMask) >>> kTimerOutput_Count_BitfieldOffset);
490          // Sign extension
491          bitfieldValue <<= 24;
492          bitfieldValue >>= 24;
493          return (byte)(bitfieldValue);
494       }
495       public boolean readTimerOutput_Stalled()
496       {
497    
498          int result = NiFpga.readU32(m_DeviceHandle, kTimerOutput_Addresses[m_SystemIndex], status);
499          int regValue = result ;
500          int bitfieldValue = ((regValue & kTimerOutput_Stalled_BitfieldMask) >>> kTimerOutput_Stalled_BitfieldOffset);
501          return ((bitfieldValue) != 0 ? true : false);
502       }
503    
504    //////////////////////////////////////////////////////////////////////////////////////////////////
505    // Accessors for Reset
506    //////////////////////////////////////////////////////////////////////////////////////////////////
507       private static final int kCounter0_Reset_Address = 0x82E4;
508       private static final int kCounter1_Reset_Address = 0x82F8;
509       private static final int kCounter2_Reset_Address = 0x830C;
510       private static final int kCounter3_Reset_Address = 0x8320;
511       private static final int kCounter4_Reset_Address = 0x8334;
512       private static final int kCounter5_Reset_Address = 0x8348;
513       private static final int kCounter6_Reset_Address = 0x835C;
514       private static final int kCounter7_Reset_Address = 0x8370;
515       private static final int kReset_Addresses [] =
516       {
517          kCounter0_Reset_Address,
518          kCounter1_Reset_Address,
519          kCounter2_Reset_Address,
520          kCounter3_Reset_Address,
521          kCounter4_Reset_Address,
522          kCounter5_Reset_Address,
523          kCounter6_Reset_Address,
524          kCounter7_Reset_Address,
525       };
526    
527       public void strobeReset()
528       {
529    
530           NiFpga.writeU32(m_DeviceHandle, kReset_Addresses[m_SystemIndex], 1, status);
531       }
532    
533    //////////////////////////////////////////////////////////////////////////////////////////////////
534    // Accessors for TimerConfig
535    //////////////////////////////////////////////////////////////////////////////////////////////////
536       private static final int kTimerConfig_StallPeriod_BitfieldMask = 0xFFFFFF00;
537       private static final int kTimerConfig_StallPeriod_BitfieldOffset = 8;
538       private static final int kTimerConfig_StallPeriod_FixedPointIntegerShift = 1;
539       private static final int kTimerConfig_AverageSize_BitfieldMask = 0x000000FE;
540       private static final int kTimerConfig_AverageSize_BitfieldOffset = 1;
541       private static final int kTimerConfig_UpdateWhenEmpty_BitfieldMask = 0x00000001;
542       private static final int kTimerConfig_UpdateWhenEmpty_BitfieldOffset = 0;
543       private static final int kCounter0_TimerConfig_Address = 0x82EC;
544       private static final int kCounter1_TimerConfig_Address = 0x8300;
545       private static final int kCounter2_TimerConfig_Address = 0x8314;
546       private static final int kCounter3_TimerConfig_Address = 0x8328;
547       private static final int kCounter4_TimerConfig_Address = 0x833C;
548       private static final int kCounter5_TimerConfig_Address = 0x8350;
549       private static final int kCounter6_TimerConfig_Address = 0x8364;
550       private static final int kCounter7_TimerConfig_Address = 0x8378;
551       private static final int kTimerConfig_Addresses [] =
552       {
553          kCounter0_TimerConfig_Address,
554          kCounter1_TimerConfig_Address,
555          kCounter2_TimerConfig_Address,
556          kCounter3_TimerConfig_Address,
557          kCounter4_TimerConfig_Address,
558          kCounter5_TimerConfig_Address,
559          kCounter6_TimerConfig_Address,
560          kCounter7_TimerConfig_Address,
561       };
562    
563       public void writeTimerConfig(final int value)
564       {
565    
566          NiFpga.writeU32(m_DeviceHandle, kTimerConfig_Addresses[m_SystemIndex], value, status);
567       }
568       public void writeTimerConfig_StallPeriod(final int value)
569       {
570    
571          int regValue = NiFpga.readU32(m_DeviceHandle, kTimerConfig_Addresses[m_SystemIndex], status);
572          regValue &= ~kTimerConfig_StallPeriod_BitfieldMask;
573          regValue |= ((value >>> kTimerConfig_StallPeriod_FixedPointIntegerShift) << kTimerConfig_StallPeriod_BitfieldOffset) & kTimerConfig_StallPeriod_BitfieldMask;
574          NiFpga.writeU32(m_DeviceHandle, kTimerConfig_Addresses[m_SystemIndex], regValue, status);
575       }
576       public void writeTimerConfig_AverageSize(final int value)
577       {
578    
579          int regValue = NiFpga.readU32(m_DeviceHandle, kTimerConfig_Addresses[m_SystemIndex], status);
580          regValue &= ~kTimerConfig_AverageSize_BitfieldMask;
581          regValue |= ((value) << kTimerConfig_AverageSize_BitfieldOffset) & kTimerConfig_AverageSize_BitfieldMask;
582          NiFpga.writeU32(m_DeviceHandle, kTimerConfig_Addresses[m_SystemIndex], regValue, status);
583       }
584       public void writeTimerConfig_UpdateWhenEmpty(final boolean value)
585       {
586    
587          int regValue = NiFpga.readU32(m_DeviceHandle, kTimerConfig_Addresses[m_SystemIndex], status);
588          regValue &= ~kTimerConfig_UpdateWhenEmpty_BitfieldMask;
589          regValue |= (((value ? 1 : 0)) << kTimerConfig_UpdateWhenEmpty_BitfieldOffset) & kTimerConfig_UpdateWhenEmpty_BitfieldMask;
590          NiFpga.writeU32(m_DeviceHandle, kTimerConfig_Addresses[m_SystemIndex], regValue, status);
591       }
592       public int readTimerConfig()
593       {
594    
595          int result = NiFpga.readU32(m_DeviceHandle, kTimerConfig_Addresses[m_SystemIndex], status);
596          int regValue = result ;
597          return (int)(regValue);
598       }
599       public int readTimerConfig_StallPeriod()
600       {
601    
602          int result = NiFpga.readU32(m_DeviceHandle, kTimerConfig_Addresses[m_SystemIndex], status);
603          int regValue = result ;
604          int bitfieldValue = ((regValue & kTimerConfig_StallPeriod_BitfieldMask) >>> kTimerConfig_StallPeriod_BitfieldOffset) << kTimerConfig_StallPeriod_FixedPointIntegerShift;
605          return (int)((bitfieldValue) & 0x01FFFFFF);
606       }
607       public byte readTimerConfig_AverageSize()
608       {
609    
610          int result = NiFpga.readU32(m_DeviceHandle, kTimerConfig_Addresses[m_SystemIndex], status);
611          int regValue = result ;
612          int bitfieldValue = ((regValue & kTimerConfig_AverageSize_BitfieldMask) >>> kTimerConfig_AverageSize_BitfieldOffset);
613          return (byte)((bitfieldValue) & 0x0000007F);
614       }
615       public boolean readTimerConfig_UpdateWhenEmpty()
616       {
617    
618          int result = NiFpga.readU32(m_DeviceHandle, kTimerConfig_Addresses[m_SystemIndex], status);
619          int regValue = result ;
620          int bitfieldValue = ((regValue & kTimerConfig_UpdateWhenEmpty_BitfieldMask) >>> kTimerConfig_UpdateWhenEmpty_BitfieldOffset);
621          return ((bitfieldValue) != 0 ? true : false);
622       }
623    
624    
625    
626    
627    
628    }