// KOMDIO_API.h : main header file for the KOMDIO_API DLL
//

#ifdef __cplusplus
extern "C" {
#endif

#ifdef KOMDIO_EXPORTS
#define KOMDIO_API __declspec(dllexport)
#else
#define KOMDIO_API __declspec(dllimport)
#endif

#include <windows.h>

#define MAX_GPIO_NAME	16	//max GPIO name length
#define KOM_RCFG_DISABLED	0x0 //rear io disabled
#define KOM_RCFG_GPIO		0x10 //rear io set to COM1,GPIO
#define KOM_RCFG_COM		0x30 //rear io set to COM1,COM2

typedef struct KomGpioInfo
{
	UCHAR	Idx;					//GPIO index (zero-based)
	char	gpioName[MAX_GPIO_NAME];	//GPIO short description
	UCHAR	availSignalStates;		//GPIO available modes
}tKomGpioInfo, *ptKomGpioInfo;


KOMDIO_API DWORD KomDioAvail(boolean *pbAvail);
KOMDIO_API DWORD KomDioGetNumOfIOs(UCHAR *pInputs, UCHAR *pOutputs);
KOMDIO_API DWORD KomDioSetOutput(UCHAR PinNo, UCHAR Output);
KOMDIO_API DWORD KomDioGetInput(UCHAR PinNo, UCHAR *pInput);
KOMDIO_API DWORD KomDioGetOutput(UCHAR PinNo, UCHAR *pOutput);
KOMDIO_API DWORD KomDioSetRestoreStatus(BOOL fRestore);
KOMDIO_API DWORD KomDioGetRestoreStatus(BOOL *pfRestore);
KOMDIO_API DWORD KomDioGetIoStatus(UCHAR *pIOStatus);



#ifdef __cplusplus
}
#endif
