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 tInterrupt extends tSystem
009    {
010    
011       public tInterrupt(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    // Accessors for TimeStamp
041    //////////////////////////////////////////////////////////////////////////////////////////////////
042       private static final int kInterrupt0_TimeStamp_Address = 0x83D4;
043       private static final int kInterrupt1_TimeStamp_Address = 0x83DC;
044       private static final int kInterrupt2_TimeStamp_Address = 0x83E4;
045       private static final int kInterrupt3_TimeStamp_Address = 0x83EC;
046       private static final int kInterrupt4_TimeStamp_Address = 0x83F4;
047       private static final int kInterrupt5_TimeStamp_Address = 0x83FC;
048       private static final int kInterrupt6_TimeStamp_Address = 0x8404;
049       private static final int kInterrupt7_TimeStamp_Address = 0x840C;
050       private static final int kTimeStamp_Addresses [] =
051       {
052          kInterrupt0_TimeStamp_Address,
053          kInterrupt1_TimeStamp_Address,
054          kInterrupt2_TimeStamp_Address,
055          kInterrupt3_TimeStamp_Address,
056          kInterrupt4_TimeStamp_Address,
057          kInterrupt5_TimeStamp_Address,
058          kInterrupt6_TimeStamp_Address,
059          kInterrupt7_TimeStamp_Address,
060       };
061    
062       public long readTimeStamp()
063       {
064    
065          return (long)((NiFpga.readU32(m_DeviceHandle, kTimeStamp_Addresses[m_SystemIndex], status)) & 0xFFFFFFFFl);
066       }
067    
068    //////////////////////////////////////////////////////////////////////////////////////////////////
069    // Accessors for Config
070    //////////////////////////////////////////////////////////////////////////////////////////////////
071       private static final int kConfig_Source_Channel_BitfieldMask = 0x000001E0;
072       private static final int kConfig_Source_Channel_BitfieldOffset = 5;
073       private static final int kConfig_Source_Module_BitfieldMask = 0x00000010;
074       private static final int kConfig_Source_Module_BitfieldOffset = 4;
075       private static final int kConfig_Source_AnalogTrigger_BitfieldMask = 0x00000008;
076       private static final int kConfig_Source_AnalogTrigger_BitfieldOffset = 3;
077       private static final int kConfig_RisingEdge_BitfieldMask = 0x00000004;
078       private static final int kConfig_RisingEdge_BitfieldOffset = 2;
079       private static final int kConfig_FallingEdge_BitfieldMask = 0x00000002;
080       private static final int kConfig_FallingEdge_BitfieldOffset = 1;
081       private static final int kConfig_WaitForAck_BitfieldMask = 0x00000001;
082       private static final int kConfig_WaitForAck_BitfieldOffset = 0;
083       private static final int kInterrupt0_Config_Address = 0x83D0;
084       private static final int kInterrupt1_Config_Address = 0x83D8;
085       private static final int kInterrupt2_Config_Address = 0x83E0;
086       private static final int kInterrupt3_Config_Address = 0x83E8;
087       private static final int kInterrupt4_Config_Address = 0x83F0;
088       private static final int kInterrupt5_Config_Address = 0x83F8;
089       private static final int kInterrupt6_Config_Address = 0x8400;
090       private static final int kInterrupt7_Config_Address = 0x8408;
091       private static final int kConfig_Addresses [] =
092       {
093          kInterrupt0_Config_Address,
094          kInterrupt1_Config_Address,
095          kInterrupt2_Config_Address,
096          kInterrupt3_Config_Address,
097          kInterrupt4_Config_Address,
098          kInterrupt5_Config_Address,
099          kInterrupt6_Config_Address,
100          kInterrupt7_Config_Address,
101       };
102    
103       public void writeConfig(final int value)
104       {
105    
106          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], value, status);
107       }
108       public void writeConfig_Source_Channel(final int value)
109       {
110    
111          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
112          regValue &= ~kConfig_Source_Channel_BitfieldMask;
113          regValue |= ((value) << kConfig_Source_Channel_BitfieldOffset) & kConfig_Source_Channel_BitfieldMask;
114          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
115       }
116       public void writeConfig_Source_Module(final int value)
117       {
118    
119          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
120          regValue &= ~kConfig_Source_Module_BitfieldMask;
121          regValue |= ((value) << kConfig_Source_Module_BitfieldOffset) & kConfig_Source_Module_BitfieldMask;
122          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
123       }
124       public void writeConfig_Source_AnalogTrigger(final boolean value)
125       {
126    
127          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
128          regValue &= ~kConfig_Source_AnalogTrigger_BitfieldMask;
129          regValue |= (((value ? 1 : 0)) << kConfig_Source_AnalogTrigger_BitfieldOffset) & kConfig_Source_AnalogTrigger_BitfieldMask;
130          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
131       }
132       public void writeConfig_RisingEdge(final boolean value)
133       {
134    
135          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
136          regValue &= ~kConfig_RisingEdge_BitfieldMask;
137          regValue |= (((value ? 1 : 0)) << kConfig_RisingEdge_BitfieldOffset) & kConfig_RisingEdge_BitfieldMask;
138          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
139       }
140       public void writeConfig_FallingEdge(final boolean value)
141       {
142    
143          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
144          regValue &= ~kConfig_FallingEdge_BitfieldMask;
145          regValue |= (((value ? 1 : 0)) << kConfig_FallingEdge_BitfieldOffset) & kConfig_FallingEdge_BitfieldMask;
146          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
147       }
148       public void writeConfig_WaitForAck(final boolean value)
149       {
150    
151          int regValue = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
152          regValue &= ~kConfig_WaitForAck_BitfieldMask;
153          regValue |= (((value ? 1 : 0)) << kConfig_WaitForAck_BitfieldOffset) & kConfig_WaitForAck_BitfieldMask;
154          NiFpga.writeU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], regValue, status);
155       }
156       public int readConfig()
157       {
158    
159          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
160          int regValue = result ;
161          return (int)(regValue);
162       }
163       public byte readConfig_Source_Channel()
164       {
165    
166          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
167          int regValue = result ;
168          int bitfieldValue = ((regValue & kConfig_Source_Channel_BitfieldMask) >>> kConfig_Source_Channel_BitfieldOffset);
169          return (byte)((bitfieldValue) & 0x0000000F);
170       }
171       public byte readConfig_Source_Module()
172       {
173    
174          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
175          int regValue = result ;
176          int bitfieldValue = ((regValue & kConfig_Source_Module_BitfieldMask) >>> kConfig_Source_Module_BitfieldOffset);
177          return (byte)((bitfieldValue) & 0x00000001);
178       }
179       public boolean readConfig_Source_AnalogTrigger()
180       {
181    
182          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
183          int regValue = result ;
184          int bitfieldValue = ((regValue & kConfig_Source_AnalogTrigger_BitfieldMask) >>> kConfig_Source_AnalogTrigger_BitfieldOffset);
185          return ((bitfieldValue) != 0 ? true : false);
186       }
187       public boolean readConfig_RisingEdge()
188       {
189    
190          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
191          int regValue = result ;
192          int bitfieldValue = ((regValue & kConfig_RisingEdge_BitfieldMask) >>> kConfig_RisingEdge_BitfieldOffset);
193          return ((bitfieldValue) != 0 ? true : false);
194       }
195       public boolean readConfig_FallingEdge()
196       {
197    
198          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
199          int regValue = result ;
200          int bitfieldValue = ((regValue & kConfig_FallingEdge_BitfieldMask) >>> kConfig_FallingEdge_BitfieldOffset);
201          return ((bitfieldValue) != 0 ? true : false);
202       }
203       public boolean readConfig_WaitForAck()
204       {
205    
206          int result = NiFpga.readU32(m_DeviceHandle, kConfig_Addresses[m_SystemIndex], status);
207          int regValue = result ;
208          int bitfieldValue = ((regValue & kConfig_WaitForAck_BitfieldMask) >>> kConfig_WaitForAck_BitfieldOffset);
209          return ((bitfieldValue) != 0 ? true : false);
210       }
211    
212    
213    
214    
215    
216    }