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 tDIO extends tSystem 009 { 010 011 public tDIO(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 = 2; 033 public final int m_SystemIndex; 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 ////////////////////////////////////////////////////////////////////////////////////////////////// 057 // Accessors for FilterSelect 058 ////////////////////////////////////////////////////////////////////////////////////////////////// 059 public static final int kFilterSelect_NumElements = 16; 060 public static final int kFilterSelect_ElementSize = 2; 061 public static final int kFilterSelect_ElementMask = 0x3; 062 private static final int kDIO0_FilterSelect_Address = 0x8268; 063 private static final int kDIO1_FilterSelect_Address = 0x82D4; 064 private static final int kFilterSelect_Addresses [] = 065 { 066 kDIO0_FilterSelect_Address, 067 kDIO1_FilterSelect_Address, 068 }; 069 070 public void writeFilterSelect(final int bitfield_index, final int value) 071 { 072 if (status.isNotFatal() && bitfield_index >= kFilterSelect_NumElements) 073 { 074 status.setStatus(NiRioStatus.kRIOStatusBadSelector); 075 } 076 077 int regValue = NiFpga.readU32(m_DeviceHandle, kFilterSelect_Addresses[m_SystemIndex], status); 078 regValue &= ~(kFilterSelect_ElementMask << ((kFilterSelect_NumElements - 1 - bitfield_index) * kFilterSelect_ElementSize)); 079 regValue |= ((value & kFilterSelect_ElementMask) << ((kFilterSelect_NumElements - 1 - bitfield_index) * kFilterSelect_ElementSize)); 080 NiFpga.writeU32(m_DeviceHandle, kFilterSelect_Addresses[m_SystemIndex], regValue, status); 081 } 082 public byte readFilterSelect(final int bitfield_index) 083 { 084 if (status.isNotFatal() && bitfield_index >= kFilterSelect_NumElements) 085 { 086 status.setStatus(NiRioStatus.kRIOStatusBadSelector); 087 } 088 089 int result = NiFpga.readU32(m_DeviceHandle, kFilterSelect_Addresses[m_SystemIndex], status); 090 int arrayElementValue = ((result) 091 >>> ((kFilterSelect_NumElements - 1 - bitfield_index) * kFilterSelect_ElementSize)) & kFilterSelect_ElementMask; 092 return (byte)((arrayElementValue) & 0x00000003); 093 } 094 095 ////////////////////////////////////////////////////////////////////////////////////////////////// 096 // Accessors for I2CDataToSend 097 ////////////////////////////////////////////////////////////////////////////////////////////////// 098 private static final int kDIO0_I2CDataToSend_Address = 0x8240; 099 private static final int kDIO1_I2CDataToSend_Address = 0x82AC; 100 private static final int kI2CDataToSend_Addresses [] = 101 { 102 kDIO0_I2CDataToSend_Address, 103 kDIO1_I2CDataToSend_Address, 104 }; 105 106 public void writeI2CDataToSend(final long value) 107 { 108 109 NiFpga.writeU32(m_DeviceHandle, kI2CDataToSend_Addresses[m_SystemIndex], (int)(value), status); 110 } 111 public long readI2CDataToSend() 112 { 113 114 return (long)((NiFpga.readU32(m_DeviceHandle, kI2CDataToSend_Addresses[m_SystemIndex], status)) & 0xFFFFFFFFl); 115 } 116 117 ////////////////////////////////////////////////////////////////////////////////////////////////// 118 // Accessors for DO 119 ////////////////////////////////////////////////////////////////////////////////////////////////// 120 private static final int kDIO0_DO_Address = 0x8208; 121 private static final int kDIO1_DO_Address = 0x8274; 122 private static final int kDO_Addresses [] = 123 { 124 kDIO0_DO_Address, 125 kDIO1_DO_Address, 126 }; 127 128 public void writeDO(final int value) 129 { 130 131 NiFpga.writeU32(m_DeviceHandle, kDO_Addresses[m_SystemIndex], value, status); 132 } 133 public int readDO() 134 { 135 136 return (int)((NiFpga.readU32(m_DeviceHandle, kDO_Addresses[m_SystemIndex], status)) & 0x0000FFFF); 137 } 138 139 ////////////////////////////////////////////////////////////////////////////////////////////////// 140 // Accessors for FilterPeriod 141 ////////////////////////////////////////////////////////////////////////////////////////////////// 142 public static final int kFilterPeriod_NumElements = 3; 143 public static final int kFilterPeriod_ElementSize = 8; 144 public static final int kFilterPeriod_ElementMask = 0xFF; 145 private static final int kDIO0_FilterPeriod_Address = 0x8264; 146 private static final int kDIO1_FilterPeriod_Address = 0x82D0; 147 private static final int kFilterPeriod_Addresses [] = 148 { 149 kDIO0_FilterPeriod_Address, 150 kDIO1_FilterPeriod_Address, 151 }; 152 153 public void writeFilterPeriod(final int bitfield_index, final int value) 154 { 155 if (status.isNotFatal() && bitfield_index >= kFilterPeriod_NumElements) 156 { 157 status.setStatus(NiRioStatus.kRIOStatusBadSelector); 158 } 159 160 int regValue = NiFpga.readU32(m_DeviceHandle, kFilterPeriod_Addresses[m_SystemIndex], status); 161 regValue &= ~(kFilterPeriod_ElementMask << ((kFilterPeriod_NumElements - 1 - bitfield_index) * kFilterPeriod_ElementSize)); 162 regValue |= ((value & kFilterPeriod_ElementMask) << ((kFilterPeriod_NumElements - 1 - bitfield_index) * kFilterPeriod_ElementSize)); 163 NiFpga.writeU32(m_DeviceHandle, kFilterPeriod_Addresses[m_SystemIndex], regValue, status); 164 } 165 public short readFilterPeriod(final int bitfield_index) 166 { 167 if (status.isNotFatal() && bitfield_index >= kFilterPeriod_NumElements) 168 { 169 status.setStatus(NiRioStatus.kRIOStatusBadSelector); 170 } 171 172 int result = NiFpga.readU32(m_DeviceHandle, kFilterPeriod_Addresses[m_SystemIndex], status); 173 int arrayElementValue = ((result) 174 >>> ((kFilterPeriod_NumElements - 1 - bitfield_index) * kFilterPeriod_ElementSize)) & kFilterPeriod_ElementMask; 175 return (short)((arrayElementValue) & 0x000000FF); 176 } 177 178 ////////////////////////////////////////////////////////////////////////////////////////////////// 179 // Accessors for OutputEnable 180 ////////////////////////////////////////////////////////////////////////////////////////////////// 181 private static final int kDIO0_OutputEnable_Address = 0x8210; 182 private static final int kDIO1_OutputEnable_Address = 0x827C; 183 private static final int kOutputEnable_Addresses [] = 184 { 185 kDIO0_OutputEnable_Address, 186 kDIO1_OutputEnable_Address, 187 }; 188 189 public void writeOutputEnable(final int value) 190 { 191 192 NiFpga.writeU32(m_DeviceHandle, kOutputEnable_Addresses[m_SystemIndex], value, status); 193 } 194 public int readOutputEnable() 195 { 196 197 return (int)((NiFpga.readU32(m_DeviceHandle, kOutputEnable_Addresses[m_SystemIndex], status)) & 0x0000FFFF); 198 } 199 200 ////////////////////////////////////////////////////////////////////////////////////////////////// 201 // Accessors for Pulse 202 ////////////////////////////////////////////////////////////////////////////////////////////////// 203 private static final int kDIO0_Pulse_Address = 0x825C; 204 private static final int kDIO1_Pulse_Address = 0x82C8; 205 private static final int kPulse_Addresses [] = 206 { 207 kDIO0_Pulse_Address, 208 kDIO1_Pulse_Address, 209 }; 210 211 public void writePulse(final int value) 212 { 213 214 NiFpga.writeU32(m_DeviceHandle, kPulse_Addresses[m_SystemIndex], value, status); 215 } 216 public int readPulse() 217 { 218 219 return (int)((NiFpga.readU32(m_DeviceHandle, kPulse_Addresses[m_SystemIndex], status)) & 0x0000FFFF); 220 } 221 222 ////////////////////////////////////////////////////////////////////////////////////////////////// 223 // Accessors for SlowValue 224 ////////////////////////////////////////////////////////////////////////////////////////////////// 225 private static final int kSlowValue_RelayFwd_BitfieldMask = 0x000FF000; 226 private static final int kSlowValue_RelayFwd_BitfieldOffset = 12; 227 private static final int kSlowValue_RelayRev_BitfieldMask = 0x00000FF0; 228 private static final int kSlowValue_RelayRev_BitfieldOffset = 4; 229 private static final int kSlowValue_I2CHeader_BitfieldMask = 0x0000000F; 230 private static final int kSlowValue_I2CHeader_BitfieldOffset = 0; 231 private static final int kDIO0_SlowValue_Address = 0x8254; 232 private static final int kDIO1_SlowValue_Address = 0x82C0; 233 private static final int kSlowValue_Addresses [] = 234 { 235 kDIO0_SlowValue_Address, 236 kDIO1_SlowValue_Address, 237 }; 238 239 public void writeSlowValue(final int value) 240 { 241 242 NiFpga.writeU32(m_DeviceHandle, kSlowValue_Addresses[m_SystemIndex], value, status); 243 } 244 public void writeSlowValue_RelayFwd(final int value) 245 { 246 247 int regValue = NiFpga.readU32(m_DeviceHandle, kSlowValue_Addresses[m_SystemIndex], status); 248 regValue &= ~kSlowValue_RelayFwd_BitfieldMask; 249 regValue |= ((value) << kSlowValue_RelayFwd_BitfieldOffset) & kSlowValue_RelayFwd_BitfieldMask; 250 NiFpga.writeU32(m_DeviceHandle, kSlowValue_Addresses[m_SystemIndex], regValue, status); 251 } 252 public void writeSlowValue_RelayRev(final int value) 253 { 254 255 int regValue = NiFpga.readU32(m_DeviceHandle, kSlowValue_Addresses[m_SystemIndex], status); 256 regValue &= ~kSlowValue_RelayRev_BitfieldMask; 257 regValue |= ((value) << kSlowValue_RelayRev_BitfieldOffset) & kSlowValue_RelayRev_BitfieldMask; 258 NiFpga.writeU32(m_DeviceHandle, kSlowValue_Addresses[m_SystemIndex], regValue, status); 259 } 260 public void writeSlowValue_I2CHeader(final int value) 261 { 262 263 int regValue = NiFpga.readU32(m_DeviceHandle, kSlowValue_Addresses[m_SystemIndex], status); 264 regValue &= ~kSlowValue_I2CHeader_BitfieldMask; 265 regValue |= ((value) << kSlowValue_I2CHeader_BitfieldOffset) & kSlowValue_I2CHeader_BitfieldMask; 266 NiFpga.writeU32(m_DeviceHandle, kSlowValue_Addresses[m_SystemIndex], regValue, status); 267 } 268 public int readSlowValue() 269 { 270 271 int result = NiFpga.readU32(m_DeviceHandle, kSlowValue_Addresses[m_SystemIndex], status); 272 int regValue = result ; 273 return (int)(regValue); 274 } 275 public short readSlowValue_RelayFwd() 276 { 277 278 int result = NiFpga.readU32(m_DeviceHandle, kSlowValue_Addresses[m_SystemIndex], status); 279 int regValue = result ; 280 int bitfieldValue = ((regValue & kSlowValue_RelayFwd_BitfieldMask) >>> kSlowValue_RelayFwd_BitfieldOffset); 281 return (short)((bitfieldValue) & 0x000000FF); 282 } 283 public short readSlowValue_RelayRev() 284 { 285 286 int result = NiFpga.readU32(m_DeviceHandle, kSlowValue_Addresses[m_SystemIndex], status); 287 int regValue = result ; 288 int bitfieldValue = ((regValue & kSlowValue_RelayRev_BitfieldMask) >>> kSlowValue_RelayRev_BitfieldOffset); 289 return (short)((bitfieldValue) & 0x000000FF); 290 } 291 public byte readSlowValue_I2CHeader() 292 { 293 294 int result = NiFpga.readU32(m_DeviceHandle, kSlowValue_Addresses[m_SystemIndex], status); 295 int regValue = result ; 296 int bitfieldValue = ((regValue & kSlowValue_I2CHeader_BitfieldMask) >>> kSlowValue_I2CHeader_BitfieldOffset); 297 return (byte)((bitfieldValue) & 0x0000000F); 298 } 299 300 ////////////////////////////////////////////////////////////////////////////////////////////////// 301 // Accessors for I2CStatus 302 ////////////////////////////////////////////////////////////////////////////////////////////////// 303 private static final int kI2CStatus_Transaction_BitfieldMask = 0x04000000; 304 private static final int kI2CStatus_Transaction_BitfieldOffset = 26; 305 private static final int kI2CStatus_Done_BitfieldMask = 0x02000000; 306 private static final int kI2CStatus_Done_BitfieldOffset = 25; 307 private static final int kI2CStatus_Aborted_BitfieldMask = 0x01000000; 308 private static final int kI2CStatus_Aborted_BitfieldOffset = 24; 309 private static final int kI2CStatus_DataReceivedHigh_BitfieldMask = 0x00FFFFFF; 310 private static final int kI2CStatus_DataReceivedHigh_BitfieldOffset = 0; 311 private static final int kDIO0_I2CStatus_Address = 0x8250; 312 private static final int kDIO1_I2CStatus_Address = 0x82BC; 313 private static final int kI2CStatus_Addresses [] = 314 { 315 kDIO0_I2CStatus_Address, 316 kDIO1_I2CStatus_Address, 317 }; 318 319 public int readI2CStatus() 320 { 321 322 int result = NiFpga.readU32(m_DeviceHandle, kI2CStatus_Addresses[m_SystemIndex], status); 323 int regValue = result ; 324 return (int)(regValue); 325 } 326 public byte readI2CStatus_Transaction() 327 { 328 329 int result = NiFpga.readU32(m_DeviceHandle, kI2CStatus_Addresses[m_SystemIndex], status); 330 int regValue = result ; 331 int bitfieldValue = ((regValue & kI2CStatus_Transaction_BitfieldMask) >>> kI2CStatus_Transaction_BitfieldOffset); 332 return (byte)((bitfieldValue) & 0x00000001); 333 } 334 public boolean readI2CStatus_Done() 335 { 336 337 int result = NiFpga.readU32(m_DeviceHandle, kI2CStatus_Addresses[m_SystemIndex], status); 338 int regValue = result ; 339 int bitfieldValue = ((regValue & kI2CStatus_Done_BitfieldMask) >>> kI2CStatus_Done_BitfieldOffset); 340 return ((bitfieldValue) != 0 ? true : false); 341 } 342 public boolean readI2CStatus_Aborted() 343 { 344 345 int result = NiFpga.readU32(m_DeviceHandle, kI2CStatus_Addresses[m_SystemIndex], status); 346 int regValue = result ; 347 int bitfieldValue = ((regValue & kI2CStatus_Aborted_BitfieldMask) >>> kI2CStatus_Aborted_BitfieldOffset); 348 return ((bitfieldValue) != 0 ? true : false); 349 } 350 public int readI2CStatus_DataReceivedHigh() 351 { 352 353 int result = NiFpga.readU32(m_DeviceHandle, kI2CStatus_Addresses[m_SystemIndex], status); 354 int regValue = result ; 355 int bitfieldValue = ((regValue & kI2CStatus_DataReceivedHigh_BitfieldMask) >>> kI2CStatus_DataReceivedHigh_BitfieldOffset); 356 return (int)((bitfieldValue) & 0x00FFFFFF); 357 } 358 359 ////////////////////////////////////////////////////////////////////////////////////////////////// 360 // Accessors for I2CDataReceived 361 ////////////////////////////////////////////////////////////////////////////////////////////////// 362 private static final int kDIO0_I2CDataReceived_Address = 0x824C; 363 private static final int kDIO1_I2CDataReceived_Address = 0x82B8; 364 private static final int kI2CDataReceived_Addresses [] = 365 { 366 kDIO0_I2CDataReceived_Address, 367 kDIO1_I2CDataReceived_Address, 368 }; 369 370 public long readI2CDataReceived() 371 { 372 373 return (long)((NiFpga.readU32(m_DeviceHandle, kI2CDataReceived_Addresses[m_SystemIndex], status)) & 0xFFFFFFFFl); 374 } 375 376 ////////////////////////////////////////////////////////////////////////////////////////////////// 377 // Accessors for DI 378 ////////////////////////////////////////////////////////////////////////////////////////////////// 379 private static final int kDIO0_DI_Address = 0x820C; 380 private static final int kDIO1_DI_Address = 0x8278; 381 private static final int kDI_Addresses [] = 382 { 383 kDIO0_DI_Address, 384 kDIO1_DI_Address, 385 }; 386 387 public int readDI() 388 { 389 390 return (int)((NiFpga.readU32(m_DeviceHandle, kDI_Addresses[m_SystemIndex], status)) & 0x0000FFFF); 391 } 392 393 ////////////////////////////////////////////////////////////////////////////////////////////////// 394 // Accessors for PulseLength 395 ////////////////////////////////////////////////////////////////////////////////////////////////// 396 private static final int kDIO0_PulseLength_Address = 0x8260; 397 private static final int kDIO1_PulseLength_Address = 0x82CC; 398 private static final int kPulseLength_Addresses [] = 399 { 400 kDIO0_PulseLength_Address, 401 kDIO1_PulseLength_Address, 402 }; 403 404 public void writePulseLength(final int value) 405 { 406 407 NiFpga.writeU32(m_DeviceHandle, kPulseLength_Addresses[m_SystemIndex], value, status); 408 } 409 public short readPulseLength() 410 { 411 412 return (short)((NiFpga.readU32(m_DeviceHandle, kPulseLength_Addresses[m_SystemIndex], status)) & 0x000000FF); 413 } 414 415 ////////////////////////////////////////////////////////////////////////////////////////////////// 416 // Accessors for PWMPeriodScale 417 ////////////////////////////////////////////////////////////////////////////////////////////////// 418 public static final int kPWMPeriodScale_NumElements = 10; 419 public static final int kPWMPeriodScale_ElementSize = 2; 420 public static final int kPWMPeriodScale_ElementMask = 0x3; 421 private static final int kDIO0_PWMPeriodScale_Address = 0x823C; 422 private static final int kDIO1_PWMPeriodScale_Address = 0x82A8; 423 private static final int kPWMPeriodScale_Addresses [] = 424 { 425 kDIO0_PWMPeriodScale_Address, 426 kDIO1_PWMPeriodScale_Address, 427 }; 428 429 public void writePWMPeriodScale(final int bitfield_index, final int value) 430 { 431 if (status.isNotFatal() && bitfield_index >= kPWMPeriodScale_NumElements) 432 { 433 status.setStatus(NiRioStatus.kRIOStatusBadSelector); 434 } 435 436 int regValue = NiFpga.readU32(m_DeviceHandle, kPWMPeriodScale_Addresses[m_SystemIndex], status); 437 regValue &= ~(kPWMPeriodScale_ElementMask << ((kPWMPeriodScale_NumElements - 1 - bitfield_index) * kPWMPeriodScale_ElementSize)); 438 regValue |= ((value & kPWMPeriodScale_ElementMask) << ((kPWMPeriodScale_NumElements - 1 - bitfield_index) * kPWMPeriodScale_ElementSize)); 439 NiFpga.writeU32(m_DeviceHandle, kPWMPeriodScale_Addresses[m_SystemIndex], regValue, status); 440 } 441 public byte readPWMPeriodScale(final int bitfield_index) 442 { 443 if (status.isNotFatal() && bitfield_index >= kPWMPeriodScale_NumElements) 444 { 445 status.setStatus(NiRioStatus.kRIOStatusBadSelector); 446 } 447 448 int result = NiFpga.readU32(m_DeviceHandle, kPWMPeriodScale_Addresses[m_SystemIndex], status); 449 int arrayElementValue = ((result) 450 >>> ((kPWMPeriodScale_NumElements - 1 - bitfield_index) * kPWMPeriodScale_ElementSize)) & kPWMPeriodScale_ElementMask; 451 return (byte)((arrayElementValue) & 0x00000003); 452 } 453 454 ////////////////////////////////////////////////////////////////////////////////////////////////// 455 // Accessors for DO_PWMDutyCycle 456 ////////////////////////////////////////////////////////////////////////////////////////////////// 457 public static final int kDO_PWMDutyCycle_NumElements = 4; 458 public static final int kDO_PWMDutyCycle_ElementSize = 8; 459 public static final int kDO_PWMDutyCycle_ElementMask = 0xFF; 460 private static final int kDIO0_DO_PWMDutyCycle_Address = 0x826C; 461 private static final int kDIO1_DO_PWMDutyCycle_Address = 0x82D8; 462 private static final int kDO_PWMDutyCycle_Addresses [] = 463 { 464 kDIO0_DO_PWMDutyCycle_Address, 465 kDIO1_DO_PWMDutyCycle_Address, 466 }; 467 468 public void writeDO_PWMDutyCycle(final int bitfield_index, final int value) 469 { 470 if (status.isNotFatal() && bitfield_index >= kDO_PWMDutyCycle_NumElements) 471 { 472 status.setStatus(NiRioStatus.kRIOStatusBadSelector); 473 } 474 475 int regValue = NiFpga.readU32(m_DeviceHandle, kDO_PWMDutyCycle_Addresses[m_SystemIndex], status); 476 regValue &= ~(kDO_PWMDutyCycle_ElementMask << ((kDO_PWMDutyCycle_NumElements - 1 - bitfield_index) * kDO_PWMDutyCycle_ElementSize)); 477 regValue |= ((value & kDO_PWMDutyCycle_ElementMask) << ((kDO_PWMDutyCycle_NumElements - 1 - bitfield_index) * kDO_PWMDutyCycle_ElementSize)); 478 NiFpga.writeU32(m_DeviceHandle, kDO_PWMDutyCycle_Addresses[m_SystemIndex], regValue, status); 479 } 480 public short readDO_PWMDutyCycle(final int bitfield_index) 481 { 482 if (status.isNotFatal() && bitfield_index >= kDO_PWMDutyCycle_NumElements) 483 { 484 status.setStatus(NiRioStatus.kRIOStatusBadSelector); 485 } 486 487 int result = NiFpga.readU32(m_DeviceHandle, kDO_PWMDutyCycle_Addresses[m_SystemIndex], status); 488 int arrayElementValue = ((result) 489 >>> ((kDO_PWMDutyCycle_NumElements - 1 - bitfield_index) * kDO_PWMDutyCycle_ElementSize)) & kDO_PWMDutyCycle_ElementMask; 490 return (short)((arrayElementValue) & 0x000000FF); 491 } 492 493 ////////////////////////////////////////////////////////////////////////////////////////////////// 494 // Accessors for BFL 495 ////////////////////////////////////////////////////////////////////////////////////////////////// 496 private static final int kDIO0_BFL_Address = 0x8258; 497 private static final int kDIO1_BFL_Address = 0x82C4; 498 private static final int kBFL_Addresses [] = 499 { 500 kDIO0_BFL_Address, 501 kDIO1_BFL_Address, 502 }; 503 504 public void writeBFL(final boolean value) 505 { 506 507 NiFpga.writeU32(m_DeviceHandle, kBFL_Addresses[m_SystemIndex], (value ? 1 : 0), status); 508 } 509 public boolean readBFL() 510 { 511 512 return ((NiFpga.readU32(m_DeviceHandle, kBFL_Addresses[m_SystemIndex], status)) != 0 ? true : false); 513 } 514 515 ////////////////////////////////////////////////////////////////////////////////////////////////// 516 // Accessors for I2CConfig 517 ////////////////////////////////////////////////////////////////////////////////////////////////// 518 private static final int kI2CConfig_Address_BitfieldMask = 0x7F800000; 519 private static final int kI2CConfig_Address_BitfieldOffset = 23; 520 private static final int kI2CConfig_BytesToRead_BitfieldMask = 0x00700000; 521 private static final int kI2CConfig_BytesToRead_BitfieldOffset = 20; 522 private static final int kI2CConfig_BytesToWrite_BitfieldMask = 0x000E0000; 523 private static final int kI2CConfig_BytesToWrite_BitfieldOffset = 17; 524 private static final int kI2CConfig_DataToSendHigh_BitfieldMask = 0x0001FFFE; 525 private static final int kI2CConfig_DataToSendHigh_BitfieldOffset = 1; 526 private static final int kI2CConfig_BitwiseHandshake_BitfieldMask = 0x00000001; 527 private static final int kI2CConfig_BitwiseHandshake_BitfieldOffset = 0; 528 private static final int kDIO0_I2CConfig_Address = 0x8244; 529 private static final int kDIO1_I2CConfig_Address = 0x82B0; 530 private static final int kI2CConfig_Addresses [] = 531 { 532 kDIO0_I2CConfig_Address, 533 kDIO1_I2CConfig_Address, 534 }; 535 536 public void writeI2CConfig(final int value) 537 { 538 539 NiFpga.writeU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], value, status); 540 } 541 public void writeI2CConfig_Address(final int value) 542 { 543 544 int regValue = NiFpga.readU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], status); 545 regValue &= ~kI2CConfig_Address_BitfieldMask; 546 regValue |= ((value) << kI2CConfig_Address_BitfieldOffset) & kI2CConfig_Address_BitfieldMask; 547 NiFpga.writeU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], regValue, status); 548 } 549 public void writeI2CConfig_BytesToRead(final int value) 550 { 551 552 int regValue = NiFpga.readU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], status); 553 regValue &= ~kI2CConfig_BytesToRead_BitfieldMask; 554 regValue |= ((value) << kI2CConfig_BytesToRead_BitfieldOffset) & kI2CConfig_BytesToRead_BitfieldMask; 555 NiFpga.writeU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], regValue, status); 556 } 557 public void writeI2CConfig_BytesToWrite(final int value) 558 { 559 560 int regValue = NiFpga.readU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], status); 561 regValue &= ~kI2CConfig_BytesToWrite_BitfieldMask; 562 regValue |= ((value) << kI2CConfig_BytesToWrite_BitfieldOffset) & kI2CConfig_BytesToWrite_BitfieldMask; 563 NiFpga.writeU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], regValue, status); 564 } 565 public void writeI2CConfig_DataToSendHigh(final int value) 566 { 567 568 int regValue = NiFpga.readU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], status); 569 regValue &= ~kI2CConfig_DataToSendHigh_BitfieldMask; 570 regValue |= ((value) << kI2CConfig_DataToSendHigh_BitfieldOffset) & kI2CConfig_DataToSendHigh_BitfieldMask; 571 NiFpga.writeU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], regValue, status); 572 } 573 public void writeI2CConfig_BitwiseHandshake(final boolean value) 574 { 575 576 int regValue = NiFpga.readU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], status); 577 regValue &= ~kI2CConfig_BitwiseHandshake_BitfieldMask; 578 regValue |= (((value ? 1 : 0)) << kI2CConfig_BitwiseHandshake_BitfieldOffset) & kI2CConfig_BitwiseHandshake_BitfieldMask; 579 NiFpga.writeU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], regValue, status); 580 } 581 public int readI2CConfig() 582 { 583 584 int result = NiFpga.readU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], status); 585 int regValue = result ; 586 return (int)(regValue); 587 } 588 public short readI2CConfig_Address() 589 { 590 591 int result = NiFpga.readU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], status); 592 int regValue = result ; 593 int bitfieldValue = ((regValue & kI2CConfig_Address_BitfieldMask) >>> kI2CConfig_Address_BitfieldOffset); 594 return (short)((bitfieldValue) & 0x000000FF); 595 } 596 public byte readI2CConfig_BytesToRead() 597 { 598 599 int result = NiFpga.readU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], status); 600 int regValue = result ; 601 int bitfieldValue = ((regValue & kI2CConfig_BytesToRead_BitfieldMask) >>> kI2CConfig_BytesToRead_BitfieldOffset); 602 return (byte)((bitfieldValue) & 0x00000007); 603 } 604 public byte readI2CConfig_BytesToWrite() 605 { 606 607 int result = NiFpga.readU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], status); 608 int regValue = result ; 609 int bitfieldValue = ((regValue & kI2CConfig_BytesToWrite_BitfieldMask) >>> kI2CConfig_BytesToWrite_BitfieldOffset); 610 return (byte)((bitfieldValue) & 0x00000007); 611 } 612 public int readI2CConfig_DataToSendHigh() 613 { 614 615 int result = NiFpga.readU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], status); 616 int regValue = result ; 617 int bitfieldValue = ((regValue & kI2CConfig_DataToSendHigh_BitfieldMask) >>> kI2CConfig_DataToSendHigh_BitfieldOffset); 618 return (int)((bitfieldValue) & 0x0000FFFF); 619 } 620 public boolean readI2CConfig_BitwiseHandshake() 621 { 622 623 int result = NiFpga.readU32(m_DeviceHandle, kI2CConfig_Addresses[m_SystemIndex], status); 624 int regValue = result ; 625 int bitfieldValue = ((regValue & kI2CConfig_BitwiseHandshake_BitfieldMask) >>> kI2CConfig_BitwiseHandshake_BitfieldOffset); 626 return ((bitfieldValue) != 0 ? true : false); 627 } 628 629 ////////////////////////////////////////////////////////////////////////////////////////////////// 630 // Accessors for DO_PWMConfig 631 ////////////////////////////////////////////////////////////////////////////////////////////////// 632 private static final int kDO_PWMConfig_PeriodPower_BitfieldMask = 0x000F0000; 633 private static final int kDO_PWMConfig_PeriodPower_BitfieldOffset = 16; 634 private static final int kDO_PWMConfig_OutputSelect_0_BitfieldMask = 0x0000F000; 635 private static final int kDO_PWMConfig_OutputSelect_0_BitfieldOffset = 12; 636 private static final int kDO_PWMConfig_OutputSelect_1_BitfieldMask = 0x00000F00; 637 private static final int kDO_PWMConfig_OutputSelect_1_BitfieldOffset = 8; 638 private static final int kDO_PWMConfig_OutputSelect_2_BitfieldMask = 0x000000F0; 639 private static final int kDO_PWMConfig_OutputSelect_2_BitfieldOffset = 4; 640 private static final int kDO_PWMConfig_OutputSelect_3_BitfieldMask = 0x0000000F; 641 private static final int kDO_PWMConfig_OutputSelect_3_BitfieldOffset = 0; 642 private static final int kDIO0_DO_PWMConfig_Address = 0x8270; 643 private static final int kDIO1_DO_PWMConfig_Address = 0x82DC; 644 private static final int kDO_PWMConfig_Addresses [] = 645 { 646 kDIO0_DO_PWMConfig_Address, 647 kDIO1_DO_PWMConfig_Address, 648 }; 649 650 public void writeDO_PWMConfig(final int value) 651 { 652 653 NiFpga.writeU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], value, status); 654 } 655 public void writeDO_PWMConfig_PeriodPower(final int value) 656 { 657 658 int regValue = NiFpga.readU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], status); 659 regValue &= ~kDO_PWMConfig_PeriodPower_BitfieldMask; 660 regValue |= ((value) << kDO_PWMConfig_PeriodPower_BitfieldOffset) & kDO_PWMConfig_PeriodPower_BitfieldMask; 661 NiFpga.writeU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], regValue, status); 662 } 663 public void writeDO_PWMConfig_OutputSelect_0(final int value) 664 { 665 666 int regValue = NiFpga.readU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], status); 667 regValue &= ~kDO_PWMConfig_OutputSelect_0_BitfieldMask; 668 regValue |= ((value) << kDO_PWMConfig_OutputSelect_0_BitfieldOffset) & kDO_PWMConfig_OutputSelect_0_BitfieldMask; 669 NiFpga.writeU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], regValue, status); 670 } 671 public void writeDO_PWMConfig_OutputSelect_1(final int value) 672 { 673 674 int regValue = NiFpga.readU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], status); 675 regValue &= ~kDO_PWMConfig_OutputSelect_1_BitfieldMask; 676 regValue |= ((value) << kDO_PWMConfig_OutputSelect_1_BitfieldOffset) & kDO_PWMConfig_OutputSelect_1_BitfieldMask; 677 NiFpga.writeU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], regValue, status); 678 } 679 public void writeDO_PWMConfig_OutputSelect_2(final int value) 680 { 681 682 int regValue = NiFpga.readU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], status); 683 regValue &= ~kDO_PWMConfig_OutputSelect_2_BitfieldMask; 684 regValue |= ((value) << kDO_PWMConfig_OutputSelect_2_BitfieldOffset) & kDO_PWMConfig_OutputSelect_2_BitfieldMask; 685 NiFpga.writeU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], regValue, status); 686 } 687 public void writeDO_PWMConfig_OutputSelect_3(final int value) 688 { 689 690 int regValue = NiFpga.readU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], status); 691 regValue &= ~kDO_PWMConfig_OutputSelect_3_BitfieldMask; 692 regValue |= ((value) << kDO_PWMConfig_OutputSelect_3_BitfieldOffset) & kDO_PWMConfig_OutputSelect_3_BitfieldMask; 693 NiFpga.writeU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], regValue, status); 694 } 695 public int readDO_PWMConfig() 696 { 697 698 int result = NiFpga.readU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], status); 699 int regValue = result ; 700 return (int)(regValue); 701 } 702 public byte readDO_PWMConfig_PeriodPower() 703 { 704 705 int result = NiFpga.readU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], status); 706 int regValue = result ; 707 int bitfieldValue = ((regValue & kDO_PWMConfig_PeriodPower_BitfieldMask) >>> kDO_PWMConfig_PeriodPower_BitfieldOffset); 708 return (byte)((bitfieldValue) & 0x0000000F); 709 } 710 public byte readDO_PWMConfig_OutputSelect_0() 711 { 712 713 int result = NiFpga.readU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], status); 714 int regValue = result ; 715 int bitfieldValue = ((regValue & kDO_PWMConfig_OutputSelect_0_BitfieldMask) >>> kDO_PWMConfig_OutputSelect_0_BitfieldOffset); 716 return (byte)((bitfieldValue) & 0x0000000F); 717 } 718 public byte readDO_PWMConfig_OutputSelect_1() 719 { 720 721 int result = NiFpga.readU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], status); 722 int regValue = result ; 723 int bitfieldValue = ((regValue & kDO_PWMConfig_OutputSelect_1_BitfieldMask) >>> kDO_PWMConfig_OutputSelect_1_BitfieldOffset); 724 return (byte)((bitfieldValue) & 0x0000000F); 725 } 726 public byte readDO_PWMConfig_OutputSelect_2() 727 { 728 729 int result = NiFpga.readU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], status); 730 int regValue = result ; 731 int bitfieldValue = ((regValue & kDO_PWMConfig_OutputSelect_2_BitfieldMask) >>> kDO_PWMConfig_OutputSelect_2_BitfieldOffset); 732 return (byte)((bitfieldValue) & 0x0000000F); 733 } 734 public byte readDO_PWMConfig_OutputSelect_3() 735 { 736 737 int result = NiFpga.readU32(m_DeviceHandle, kDO_PWMConfig_Addresses[m_SystemIndex], status); 738 int regValue = result ; 739 int bitfieldValue = ((regValue & kDO_PWMConfig_OutputSelect_3_BitfieldMask) >>> kDO_PWMConfig_OutputSelect_3_BitfieldOffset); 740 return (byte)((bitfieldValue) & 0x0000000F); 741 } 742 743 ////////////////////////////////////////////////////////////////////////////////////////////////// 744 // Accessors for I2CStart 745 ////////////////////////////////////////////////////////////////////////////////////////////////// 746 private static final int kDIO0_I2CStart_Address = 0x8248; 747 private static final int kDIO1_I2CStart_Address = 0x82B4; 748 private static final int kI2CStart_Addresses [] = 749 { 750 kDIO0_I2CStart_Address, 751 kDIO1_I2CStart_Address, 752 }; 753 754 public void strobeI2CStart() 755 { 756 757 NiFpga.writeU32(m_DeviceHandle, kI2CStart_Addresses[m_SystemIndex], 1, status); 758 } 759 760 761 ////////////////////////////////////////////////////////////////////////////////////////////////// 762 // Accessors for LoopTiming 763 ////////////////////////////////////////////////////////////////////////////////////////////////// 764 private static final int kDIO_LoopTiming_Address = 0x8200; 765 766 public static int readLoopTiming() 767 { 768 769 return (int)((NiFpga.readU32(m_DeviceHandle, kDIO_LoopTiming_Address, status)) & 0x0000FFFF); 770 } 771 772 ////////////////////////////////////////////////////////////////////////////////////////////////// 773 // Accessors for PWMConfig 774 ////////////////////////////////////////////////////////////////////////////////////////////////// 775 private static final int kPWMConfig_Period_BitfieldMask = 0xFFFF0000; 776 private static final int kPWMConfig_Period_BitfieldOffset = 16; 777 private static final int kPWMConfig_MinHigh_BitfieldMask = 0x0000FFFF; 778 private static final int kPWMConfig_MinHigh_BitfieldOffset = 0; 779 private static final int kDIO_PWMConfig_Address = 0x8204; 780 781 public static void writePWMConfig(final int value) 782 { 783 784 NiFpga.writeU32(m_DeviceHandle, kDIO_PWMConfig_Address, value, status); 785 } 786 public static void writePWMConfig_Period(final int value) 787 { 788 789 int regValue = NiFpga.readU32(m_DeviceHandle, kDIO_PWMConfig_Address, status); 790 regValue &= ~kPWMConfig_Period_BitfieldMask; 791 regValue |= ((value) << kPWMConfig_Period_BitfieldOffset) & kPWMConfig_Period_BitfieldMask; 792 NiFpga.writeU32(m_DeviceHandle, kDIO_PWMConfig_Address, regValue, status); 793 } 794 public static void writePWMConfig_MinHigh(final int value) 795 { 796 797 int regValue = NiFpga.readU32(m_DeviceHandle, kDIO_PWMConfig_Address, status); 798 regValue &= ~kPWMConfig_MinHigh_BitfieldMask; 799 regValue |= ((value) << kPWMConfig_MinHigh_BitfieldOffset) & kPWMConfig_MinHigh_BitfieldMask; 800 NiFpga.writeU32(m_DeviceHandle, kDIO_PWMConfig_Address, regValue, status); 801 } 802 public static int readPWMConfig() 803 { 804 805 int result = NiFpga.readU32(m_DeviceHandle, kDIO_PWMConfig_Address, status); 806 int regValue = result ; 807 return (int)(regValue); 808 } 809 public static int readPWMConfig_Period() 810 { 811 812 int result = NiFpga.readU32(m_DeviceHandle, kDIO_PWMConfig_Address, status); 813 int regValue = result ; 814 int bitfieldValue = ((regValue & kPWMConfig_Period_BitfieldMask) >>> kPWMConfig_Period_BitfieldOffset); 815 return (int)((bitfieldValue) & 0x0000FFFF); 816 } 817 public static int readPWMConfig_MinHigh() 818 { 819 820 int result = NiFpga.readU32(m_DeviceHandle, kDIO_PWMConfig_Address, status); 821 int regValue = result ; 822 int bitfieldValue = ((regValue & kPWMConfig_MinHigh_BitfieldMask) >>> kPWMConfig_MinHigh_BitfieldOffset); 823 return (int)((bitfieldValue) & 0x0000FFFF); 824 } 825 826 827 ////////////////////////////////////////////////////////////////////////////////////////////////// 828 // Accessors for PWMValue 829 ////////////////////////////////////////////////////////////////////////////////////////////////// 830 public static final int kPWMValue_NumRegisters = 10; 831 private static final int kDIO0_PWMValue0_Address = 0x8214; 832 private static final int kDIO0_PWMValue1_Address = 0x8218; 833 private static final int kDIO0_PWMValue2_Address = 0x821C; 834 private static final int kDIO0_PWMValue3_Address = 0x8220; 835 private static final int kDIO0_PWMValue4_Address = 0x8224; 836 private static final int kDIO0_PWMValue5_Address = 0x8228; 837 private static final int kDIO0_PWMValue6_Address = 0x822C; 838 private static final int kDIO0_PWMValue7_Address = 0x8230; 839 private static final int kDIO0_PWMValue8_Address = 0x8234; 840 private static final int kDIO0_PWMValue9_Address = 0x8238; 841 private static final int kDIO1_PWMValue0_Address = 0x8280; 842 private static final int kDIO1_PWMValue1_Address = 0x8284; 843 private static final int kDIO1_PWMValue2_Address = 0x8288; 844 private static final int kDIO1_PWMValue3_Address = 0x828C; 845 private static final int kDIO1_PWMValue4_Address = 0x8290; 846 private static final int kDIO1_PWMValue5_Address = 0x8294; 847 private static final int kDIO1_PWMValue6_Address = 0x8298; 848 private static final int kDIO1_PWMValue7_Address = 0x829C; 849 private static final int kDIO1_PWMValue8_Address = 0x82A0; 850 private static final int kDIO1_PWMValue9_Address = 0x82A4; 851 private static final int kPWMValue_Addresses [] = 852 { 853 kDIO0_PWMValue0_Address, 854 kDIO0_PWMValue1_Address, 855 kDIO0_PWMValue2_Address, 856 kDIO0_PWMValue3_Address, 857 kDIO0_PWMValue4_Address, 858 kDIO0_PWMValue5_Address, 859 kDIO0_PWMValue6_Address, 860 kDIO0_PWMValue7_Address, 861 kDIO0_PWMValue8_Address, 862 kDIO0_PWMValue9_Address, 863 kDIO1_PWMValue0_Address, 864 kDIO1_PWMValue1_Address, 865 kDIO1_PWMValue2_Address, 866 kDIO1_PWMValue3_Address, 867 kDIO1_PWMValue4_Address, 868 kDIO1_PWMValue5_Address, 869 kDIO1_PWMValue6_Address, 870 kDIO1_PWMValue7_Address, 871 kDIO1_PWMValue8_Address, 872 kDIO1_PWMValue9_Address, 873 }; 874 875 public void writePWMValue(final int reg_index, final int value) 876 { 877 if (status.isNotFatal() && reg_index >= kPWMValue_NumRegisters) 878 { 879 status.setStatus(NiRioStatus.kRIOStatusBadSelector); 880 } 881 882 NiFpga.writeU32(m_DeviceHandle, kPWMValue_Addresses[m_SystemIndex * kPWMValue_NumRegisters + reg_index], value, status); 883 } 884 public short readPWMValue(final int reg_index) 885 { 886 if (status.isNotFatal() && reg_index >= kPWMValue_NumRegisters) 887 { 888 status.setStatus(NiRioStatus.kRIOStatusBadSelector); 889 } 890 891 return (short)((NiFpga.readU32(m_DeviceHandle, kPWMValue_Addresses[m_SystemIndex * kPWMValue_NumRegisters + reg_index], status)) & 0x000000FF); 892 } 893 894 895 896 }