This is the latest WPILib src, VisionSample2013, cRIO image, ... pulled down from firstforge.wpi.edu.
There might be risks in using the top of tree rather than an official release, but the commit messages do mention fixes for some deadlocks and race conditions.
git-svn-id: https://robotics.mvla.net/svn/frc971/2013/trunk/src@4066 f308d9b7-e957-4cde-b6ac-9a88185e7312
diff --git a/azaleasource/WPILibCProgramming/trunk/WPILib/ChipObject/tDIO.h b/azaleasource/WPILibCProgramming/trunk/WPILib/ChipObject/tDIO.h
new file mode 100644
index 0000000..2bf15fc
--- /dev/null
+++ b/azaleasource/WPILibCProgramming/trunk/WPILib/ChipObject/tDIO.h
@@ -0,0 +1,296 @@
+// Copyright (c) National Instruments 2008. All Rights Reserved.
+// Do Not Edit... this file is generated!
+
+#ifndef __nFRC_2012_1_6_4_DIO_h__
+#define __nFRC_2012_1_6_4_DIO_h__
+
+#include "tSystemInterface.h"
+
+namespace nFPGA
+{
+namespace nFRC_2012_1_6_4
+{
+
+class tDIO
+{
+public:
+ tDIO(){}
+ virtual ~tDIO(){}
+
+ virtual tSystemInterface* getSystemInterface() = 0;
+ static tDIO* create(unsigned char sys_index, tRioStatusCode *status);
+ virtual unsigned char getSystemIndex() = 0;
+
+
+ typedef enum
+ {
+ kNumSystems = 2,
+ } tIfaceConstants;
+
+ typedef
+ union{
+ struct{
+ unsigned Period : 16;
+ unsigned MinHigh : 16;
+ };
+ struct{
+ unsigned value : 32;
+ };
+ } tPWMConfig;
+ typedef
+ union{
+ struct{
+ unsigned RelayFwd : 8;
+ unsigned RelayRev : 8;
+ unsigned I2CHeader : 4;
+ };
+ struct{
+ unsigned value : 20;
+ };
+ } tSlowValue;
+ typedef
+ union{
+ struct{
+ unsigned Transaction : 1;
+ unsigned Done : 1;
+ unsigned Aborted : 1;
+ unsigned DataReceivedHigh : 24;
+ };
+ struct{
+ unsigned value : 27;
+ };
+ } tI2CStatus;
+ typedef
+ union{
+ struct{
+ unsigned PeriodPower : 4;
+ unsigned OutputSelect_0 : 4;
+ unsigned OutputSelect_1 : 4;
+ unsigned OutputSelect_2 : 4;
+ unsigned OutputSelect_3 : 4;
+ };
+ struct{
+ unsigned value : 20;
+ };
+ } tDO_PWMConfig;
+ typedef
+ union{
+ struct{
+ unsigned Address : 8;
+ unsigned BytesToRead : 3;
+ unsigned BytesToWrite : 3;
+ unsigned DataToSendHigh : 16;
+ unsigned BitwiseHandshake : 1;
+ };
+ struct{
+ unsigned value : 31;
+ };
+ } tI2CConfig;
+
+
+ typedef enum
+ {
+ } tI2CDataToSend_IfaceConstants;
+
+ virtual void writeI2CDataToSend(unsigned int value, tRioStatusCode *status) = 0;
+ virtual unsigned int readI2CDataToSend(tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ } tDO_IfaceConstants;
+
+ virtual void writeDO(unsigned short value, tRioStatusCode *status) = 0;
+ virtual unsigned short readDO(tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ kNumFilterSelectElements = 16,
+ } tFilterSelect_IfaceConstants;
+
+ virtual void writeFilterSelect(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
+ virtual unsigned char readFilterSelect(unsigned char bitfield_index, tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ kNumFilterPeriodElements = 3,
+ } tFilterPeriod_IfaceConstants;
+
+ virtual void writeFilterPeriod(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
+ virtual unsigned char readFilterPeriod(unsigned char bitfield_index, tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ } tOutputEnable_IfaceConstants;
+
+ virtual void writeOutputEnable(unsigned short value, tRioStatusCode *status) = 0;
+ virtual unsigned short readOutputEnable(tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ } tSlowValue_IfaceConstants;
+
+ virtual void writeSlowValue(tSlowValue value, tRioStatusCode *status) = 0;
+ virtual void writeSlowValue_RelayFwd(unsigned char value, tRioStatusCode *status) = 0;
+ virtual void writeSlowValue_RelayRev(unsigned char value, tRioStatusCode *status) = 0;
+ virtual void writeSlowValue_I2CHeader(unsigned char value, tRioStatusCode *status) = 0;
+ virtual tSlowValue readSlowValue(tRioStatusCode *status) = 0;
+ virtual unsigned char readSlowValue_RelayFwd(tRioStatusCode *status) = 0;
+ virtual unsigned char readSlowValue_RelayRev(tRioStatusCode *status) = 0;
+ virtual unsigned char readSlowValue_I2CHeader(tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ } tI2CStatus_IfaceConstants;
+
+ virtual tI2CStatus readI2CStatus(tRioStatusCode *status) = 0;
+ virtual unsigned char readI2CStatus_Transaction(tRioStatusCode *status) = 0;
+ virtual bool readI2CStatus_Done(tRioStatusCode *status) = 0;
+ virtual bool readI2CStatus_Aborted(tRioStatusCode *status) = 0;
+ virtual unsigned int readI2CStatus_DataReceivedHigh(tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ } tI2CDataReceived_IfaceConstants;
+
+ virtual unsigned int readI2CDataReceived(tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ } tDI_IfaceConstants;
+
+ virtual unsigned short readDI(tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ } tPulse_IfaceConstants;
+
+ virtual void writePulse(unsigned short value, tRioStatusCode *status) = 0;
+ virtual unsigned short readPulse(tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ kNumPWMPeriodScaleElements = 10,
+ } tPWMPeriodScale_IfaceConstants;
+
+ virtual void writePWMPeriodScale(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
+ virtual unsigned char readPWMPeriodScale(unsigned char bitfield_index, tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ kNumDO_PWMDutyCycleElements = 4,
+ } tDO_PWMDutyCycle_IfaceConstants;
+
+ virtual void writeDO_PWMDutyCycle(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status) = 0;
+ virtual unsigned char readDO_PWMDutyCycle(unsigned char bitfield_index, tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ } tBFL_IfaceConstants;
+
+ virtual void writeBFL(bool value, tRioStatusCode *status) = 0;
+ virtual bool readBFL(tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ } tI2CStart_IfaceConstants;
+
+ virtual void strobeI2CStart(tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ } tDO_PWMConfig_IfaceConstants;
+
+ virtual void writeDO_PWMConfig(tDO_PWMConfig value, tRioStatusCode *status) = 0;
+ virtual void writeDO_PWMConfig_PeriodPower(unsigned char value, tRioStatusCode *status) = 0;
+ virtual void writeDO_PWMConfig_OutputSelect_0(unsigned char value, tRioStatusCode *status) = 0;
+ virtual void writeDO_PWMConfig_OutputSelect_1(unsigned char value, tRioStatusCode *status) = 0;
+ virtual void writeDO_PWMConfig_OutputSelect_2(unsigned char value, tRioStatusCode *status) = 0;
+ virtual void writeDO_PWMConfig_OutputSelect_3(unsigned char value, tRioStatusCode *status) = 0;
+ virtual tDO_PWMConfig readDO_PWMConfig(tRioStatusCode *status) = 0;
+ virtual unsigned char readDO_PWMConfig_PeriodPower(tRioStatusCode *status) = 0;
+ virtual unsigned char readDO_PWMConfig_OutputSelect_0(tRioStatusCode *status) = 0;
+ virtual unsigned char readDO_PWMConfig_OutputSelect_1(tRioStatusCode *status) = 0;
+ virtual unsigned char readDO_PWMConfig_OutputSelect_2(tRioStatusCode *status) = 0;
+ virtual unsigned char readDO_PWMConfig_OutputSelect_3(tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ } tPulseLength_IfaceConstants;
+
+ virtual void writePulseLength(unsigned char value, tRioStatusCode *status) = 0;
+ virtual unsigned char readPulseLength(tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ } tI2CConfig_IfaceConstants;
+
+ virtual void writeI2CConfig(tI2CConfig value, tRioStatusCode *status) = 0;
+ virtual void writeI2CConfig_Address(unsigned char value, tRioStatusCode *status) = 0;
+ virtual void writeI2CConfig_BytesToRead(unsigned char value, tRioStatusCode *status) = 0;
+ virtual void writeI2CConfig_BytesToWrite(unsigned char value, tRioStatusCode *status) = 0;
+ virtual void writeI2CConfig_DataToSendHigh(unsigned short value, tRioStatusCode *status) = 0;
+ virtual void writeI2CConfig_BitwiseHandshake(bool value, tRioStatusCode *status) = 0;
+ virtual tI2CConfig readI2CConfig(tRioStatusCode *status) = 0;
+ virtual unsigned char readI2CConfig_Address(tRioStatusCode *status) = 0;
+ virtual unsigned char readI2CConfig_BytesToRead(tRioStatusCode *status) = 0;
+ virtual unsigned char readI2CConfig_BytesToWrite(tRioStatusCode *status) = 0;
+ virtual unsigned short readI2CConfig_DataToSendHigh(tRioStatusCode *status) = 0;
+ virtual bool readI2CConfig_BitwiseHandshake(tRioStatusCode *status) = 0;
+
+
+
+ typedef enum
+ {
+ } tLoopTiming_IfaceConstants;
+
+ virtual unsigned short readLoopTiming(tRioStatusCode *status) = 0;
+
+
+ typedef enum
+ {
+ } tPWMConfig_IfaceConstants;
+
+ virtual void writePWMConfig(tPWMConfig value, tRioStatusCode *status) = 0;
+ virtual void writePWMConfig_Period(unsigned short value, tRioStatusCode *status) = 0;
+ virtual void writePWMConfig_MinHigh(unsigned short value, tRioStatusCode *status) = 0;
+ virtual tPWMConfig readPWMConfig(tRioStatusCode *status) = 0;
+ virtual unsigned short readPWMConfig_Period(tRioStatusCode *status) = 0;
+ virtual unsigned short readPWMConfig_MinHigh(tRioStatusCode *status) = 0;
+
+
+
+ typedef enum
+ {
+ kNumPWMValueRegisters = 10,
+ } tPWMValue_IfaceConstants;
+
+ virtual void writePWMValue(unsigned char reg_index, unsigned char value, tRioStatusCode *status) = 0;
+ virtual unsigned char readPWMValue(unsigned char reg_index, tRioStatusCode *status) = 0;
+
+
+
+private:
+ tDIO(const tDIO&);
+ void operator=(const tDIO&);
+};
+
+}
+}
+
+#endif // __nFRC_2012_1_6_4_DIO_h__