331 lines
9.6 KiB
C
331 lines
9.6 KiB
C
|
// 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{
|
||
|
#ifdef __vxworks
|
||
|
unsigned Period : 16;
|
||
|
unsigned MinHigh : 16;
|
||
|
#else
|
||
|
unsigned MinHigh : 16;
|
||
|
unsigned Period : 16;
|
||
|
#endif
|
||
|
};
|
||
|
struct{
|
||
|
unsigned value : 32;
|
||
|
};
|
||
|
} tPWMConfig;
|
||
|
typedef
|
||
|
union{
|
||
|
struct{
|
||
|
#ifdef __vxworks
|
||
|
unsigned RelayFwd : 8;
|
||
|
unsigned RelayRev : 8;
|
||
|
unsigned I2CHeader : 4;
|
||
|
#else
|
||
|
unsigned I2CHeader : 4;
|
||
|
unsigned RelayRev : 8;
|
||
|
unsigned RelayFwd : 8;
|
||
|
#endif
|
||
|
};
|
||
|
struct{
|
||
|
unsigned value : 20;
|
||
|
};
|
||
|
} tSlowValue;
|
||
|
typedef
|
||
|
union{
|
||
|
struct{
|
||
|
#ifdef __vxworks
|
||
|
unsigned Transaction : 1;
|
||
|
unsigned Done : 1;
|
||
|
unsigned Aborted : 1;
|
||
|
unsigned DataReceivedHigh : 24;
|
||
|
#else
|
||
|
unsigned DataReceivedHigh : 24;
|
||
|
unsigned Aborted : 1;
|
||
|
unsigned Done : 1;
|
||
|
unsigned Transaction : 1;
|
||
|
#endif
|
||
|
};
|
||
|
struct{
|
||
|
unsigned value : 27;
|
||
|
};
|
||
|
} tI2CStatus;
|
||
|
typedef
|
||
|
union{
|
||
|
struct{
|
||
|
#ifdef __vxworks
|
||
|
unsigned Address : 8;
|
||
|
unsigned BytesToRead : 3;
|
||
|
unsigned BytesToWrite : 3;
|
||
|
unsigned DataToSendHigh : 16;
|
||
|
unsigned BitwiseHandshake : 1;
|
||
|
#else
|
||
|
unsigned BitwiseHandshake : 1;
|
||
|
unsigned DataToSendHigh : 16;
|
||
|
unsigned BytesToWrite : 3;
|
||
|
unsigned BytesToRead : 3;
|
||
|
unsigned Address : 8;
|
||
|
#endif
|
||
|
};
|
||
|
struct{
|
||
|
unsigned value : 31;
|
||
|
};
|
||
|
} tI2CConfig;
|
||
|
typedef
|
||
|
union{
|
||
|
struct{
|
||
|
#ifdef __vxworks
|
||
|
unsigned PeriodPower : 4;
|
||
|
unsigned OutputSelect_0 : 4;
|
||
|
unsigned OutputSelect_1 : 4;
|
||
|
unsigned OutputSelect_2 : 4;
|
||
|
unsigned OutputSelect_3 : 4;
|
||
|
#else
|
||
|
unsigned OutputSelect_3 : 4;
|
||
|
unsigned OutputSelect_2 : 4;
|
||
|
unsigned OutputSelect_1 : 4;
|
||
|
unsigned OutputSelect_0 : 4;
|
||
|
unsigned PeriodPower : 4;
|
||
|
#endif
|
||
|
};
|
||
|
struct{
|
||
|
unsigned value : 20;
|
||
|
};
|
||
|
} tDO_PWMConfig;
|
||
|
|
||
|
|
||
|
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
|
||
|
{
|
||
|
} 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
|
||
|
{
|
||
|
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
|
||
|
{
|
||
|
} tPulse_IfaceConstants;
|
||
|
|
||
|
virtual void writePulse(unsigned short value, tRioStatusCode *status) = 0;
|
||
|
virtual unsigned short readPulse(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
|
||
|
{
|
||
|
} tPulseLength_IfaceConstants;
|
||
|
|
||
|
virtual void writePulseLength(unsigned char value, tRioStatusCode *status) = 0;
|
||
|
virtual unsigned char readPulseLength(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
|
||
|
{
|
||
|
} 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
|
||
|
{
|
||
|
} 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
|
||
|
{
|
||
|
} tI2CStart_IfaceConstants;
|
||
|
|
||
|
virtual void strobeI2CStart(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__
|