#ifndef __XWBOARDSDK_H #define __XWBOARDSDK_H #ifdef __cplusplus extern "C" { #endif #ifdef XWBOARDSDK_EXPORTS #define XWBOARDSDK_API extern "C" __declspec(dllexport) #else #define XWBOARDSDK_API extern "C" __declspec(dllimport) #endif #define XWBOARDSDK_PRIVATE_API XWBOARDSDK_API typedef struct { int iDITotalchannel; int iDOTotalchannel; int iAITotalchannel; int iAOTotalchannel; int iCounterTotalchannel; int iSerialTotalchannel; int itype; //1: DIO , 2:AIO (some with DIO) 5: COM char Name[10]; }Type_Structure; //============================================================================= // System Functions //============================================================================= XWBOARDSDK_API void pac_GetXWBOARDSDKVersion(LPSTR sdk_version); //============================================================================= // GPIO Functions //============================================================================= #define XWBUS_GPIO11 11 //GPIO pin 11 #define XWBUS_GPIO16 16 //GPIO pin 16 #define XWBUS_GPIO17 17 //GPIO pin 17 #define XWBUS_GPIO81 81 //GPIO pin 81 #define XWBUS_GPIO86 86 //GPIO pin 86 #define XWBUS_GPIO87 87 //GPIO pin 87 #define XWBUS_GPIO117 117 //GPIO pin 117 #define XWBUS_GPIO118 118 //GPIO pin 118 XWBOARDSDK_API int Get_GPIO_Pin_Status(unsigned int pin); /* Get the status of the GPIO input pin Pin: 11: GPIO 11 - 48MHz Clock 16: GPIO 16 17: GPIO 17 81: GPIO 81 86: GPIO 86 87: GPIO 87 117: GPIO 117 118: GPIO 118 Return : 0: Low level 1: High level < 0 : error */ XWBOARDSDK_API void Set_GPIO_Pin_Status(unsigned int pin, unsigned int value); /* Set GPIO output pin to high or low level Pin: 11: GPIO 11 - 48MHz Clock 16: GPIO 16 17: GPIO 17 81: GPIO 81 86: GPIO 86 87: GPIO 87 117: GPIO 117 118: GPIO 118 value: 0: output 0 1: output 1 */ XWBOARDSDK_API void setGPIOInput(unsigned int pin); /* GPIO pin configured as an input Pin: 11: GPIO 11 - 48MHz Clock 16: GPIO 16 17: GPIO 17 81: GPIO 81 86: GPIO 86 87: GPIO 87 117: GPIO 117 118: GPIO 118 */ XWBOARDSDK_API void setGPIOOutput(unsigned int pin, unsigned int value); /* GPIO pin configured as an output Pin: 11: GPIO 11 - 48MHz Clock 16: GPIO 16 17: GPIO 17 81: GPIO 81 86: GPIO 86 87: GPIO 87 117: GPIO 117 118: GPIO 118 value: 0: output 0 1: output 1 */ XWBOARDSDK_API void setGPIOAltFunc(unsigned int pin, unsigned int af, unsigned int mode); /* Set GPIO alternate function Pin: 11: GPIO 11 - 48MHz Clock 16: GPIO 16 17: GPIO 17 81: GPIO 81 86: GPIO 86 87: GPIO 87 117: GPIO 117 118: GPIO 118 af: 0 : Alternate Function 0 -->The corresponding GPIO pin is used for as a general purpose I/O 1 : Alternate Function 1 -->The corresponding GPIO pin is used for its alternate function 1 2 : Alternate Function 1 -->The corresponding GPIO pin is used for its alternate function 2 3 : Alternate Function 1 -->The corresponding GPIO pin is used for its alternate function 3 mode: 0: output mode 1: input mode */ XWBOARDSDK_API void setGPIO11_ClockOut(unsigned int enable); /* Set GPIO11 to genernate 48M Hz clock output . Enable: 0: disable 1: enable */ XWBOARDSDK_API void setGPIO_PWM(unsigned int pin,DWORD dwFrequency,unsigned int Duty,int Enable); /* Set GPIO16/17 to genernate PWM signal output . Pin: 16: GPIO 16 17: GPIO 17 dwFrequency: Duty: 1~100 */ //============================================================================= // XWboard EEPROM //============================================================================= #define _XW107_ 107 #define _XW110_ 110 #define _XW200_ 200 #define _XW201_ 201 #define _XW202_ 202 #define _XW203_ 203 #define _XW205_ 205 #define _XW206_ 206 #define _XW300_ 300 #define _XW301_ 301 #define _XW302_ 302 #define _XW303_ 303 #define _XW304_ 304 #define _XW305_ 305 #define _XW306_ 306 #define _XW307_ 307 #define _XW308_ 308 #define _XW309_ 309 #define _XW310_ 310 #define _XW314_ 314 XWBOARDSDK_API int XEE_Init(int clk_pin,int sda_pin,int wp_pin,int need_pullhigh); XWBOARDSDK_API int XEE_InitByName(int Xboard); XWBOARDSDK_API void XEE_WriteEnable(void); XWBOARDSDK_API void XEE_WriteProtect(void); XWBOARDSDK_API int XEE_RandomRead(int Block,int Addr); XWBOARDSDK_API int XEE_ReadNext(int Block); XWBOARDSDK_API int XEE_MultiRead(int StartBlock,int StartAddr,int no,unsigned char *databuf); XWBOARDSDK_API int XEE_RandomWrite(int Block,int Addr,int Data); XWBOARDSDK_API int XEE_MultiWrite(int Block,int Addr,int no,char *Data); //============================================================================= // Run L1~L2 LED Functions //============================================================================= XWBOARDSDK_API void pac_EnableLed(int Ln,bool bFlag); XWBOARDSDK_API void pac_ToggleLED(int Ln); //============================================================================= // XWboard I/O //============================================================================= XWBOARDSDK_API int XWB_Init(int iXWID); XWBOARDSDK_API bool XWB_WriteDO(int iTotalChannel,DWORD lDO_Value); XWBOARDSDK_API bool XWB_WriteDOBit(int iTotalChannel,int iChannel, int iBitValue); XWBOARDSDK_API bool XWB_ReadDO(int iTotalChannel,DWORD *lDO_Value); XWBOARDSDK_API bool XWB_ReadDI(int iTotalChannel,DWORD *lDI_Value); XWBOARDSDK_API bool XWB_ReadDILatch(int iTotalChannel, int iLatchType, DWORD *lDI_Latch_Value); XWBOARDSDK_API bool XWB_ClearDILatch(); XWBOARDSDK_API bool XWB_ReadDICNT(int iTotalChannel,int iChannel, DWORD *lCounter_Value); XWBOARDSDK_API bool XWB_ClearDICNT(int iTotalChannel,int iChannel); XWBOARDSDK_API bool XWB_ReadDICNTOverflow(int iTotalChannel,int iChannel, int *iOverflow); XWBOARDSDK_API bool XWB_WriteAO(int iTotalChannel,int iChannel,float fValue); XWBOARDSDK_API bool XWB_ReadAO(int iTotalChannel,int iChannel,float *fValue); XWBOARDSDK_API bool XWB_ReadAI(int iTotalChannel,int iChannel, float *fValue); XWBOARDSDK_API bool XWB_ReadAIHex(int iTotalChannel,int iChannel,int *iValue); XWBOARDSDK_API bool XWB_ReadAIAll(float fValue[]); XWBOARDSDK_API bool XWB_ReadAIAllHex(int iValue[]); //============================================================================= // Error Handling API //============================================================================= #if 0 XWBOARDSDK_API DWORD pac_GetLastError(); XWBOARDSDK_API void pac_SetLastError(DWORD errno); XWBOARDSDK_API void pac_ClearLastError(DWORD errno); XWBOARDSDK_API void pac_GetErrorMessage(DWORD dwMessageID, LPTSTR lpBuffer); #endif #ifdef __cplusplus } #endif #ifndef XWBOARDSDK_EXPORTS #pragma comment(lib, "XWBoardSDK.lib") #endif #endif // __XWBOARDSDK_H