PacMaster 2.0(r200)
Controls digital PAC measurements and collects the results

iowkit.h

Go to the documentation of this file.
00001 //
00002 // IO-Warrior kit library V1.5 include file
00003 //
00004 
00005 // IOW Library definitions
00006 #ifndef _IOW_KIT_H_
00007 #define _IOW_KIT_H_
00008 
00009 #ifndef _IOWKIT_BUILD_RUN
00010 #ifdef _IOWKIT2_H_
00011 #error "including both iowkit2.h and iowkit.h is not allowed"
00012 #endif // _IOWKIT2_H_
00013 #endif // _IOWKIT_BUILD_RUN
00014 
00015 //#ifdef _WIN32
00016 
00017 //#define IOWKIT_API __stdcall
00018 
00019 //#else
00020 
00021 #define IOWKIT_API
00022 
00023 // the following legacy types can only be defined once
00024 #ifndef _IOW_WINTYPES_H_
00025 #define _IOW_WINTYPES_H_
00026 
00027 /*
00028  * Windows specific types and defines
00029  */
00030 typedef unsigned long          ULONG;
00031 typedef long                   LONG;
00032 typedef unsigned short         USHORT;
00033 typedef unsigned short         WORD;
00034 typedef unsigned char          UCHAR;
00035 typedef unsigned char          BYTE;
00036 typedef char *                 PCHAR;
00037 typedef unsigned short *       PWCHAR;
00038 typedef int                    BOOL;
00039 typedef unsigned char          BOOLEAN;
00040 typedef unsigned int          DWORD;
00041 typedef DWORD *                PDWORD;
00042 typedef void *                 PVOID;
00043 typedef DWORD                  HANDLE;
00044 typedef ULONG *                PULONG;
00045 typedef const char *           PCSTR;
00046 typedef const unsigned short * PWCSTR;
00047 
00048 //#define FALSE 0
00049 //#define TRUE 1
00050 
00051 #endif // _IOW_WINTYPES_H_
00052 
00053 //#endif // _WIN32
00054 
00055 // IO-Warrior vendor & product IDs
00056 #define IOWKIT_VENDOR_ID         0x07c0
00057 #define IOWKIT_VID               IOWKIT_VENDOR_ID
00058 // IO-Warrior 40
00059 #define IOWKIT_PRODUCT_ID_IOW40  0x1500
00060 #define IOWKIT_PID_IOW40         IOWKIT_PRODUCT_ID_IOW40
00061 // IO-Warrior 24
00062 #define IOWKIT_PRODUCT_ID_IOW24  0x1501
00063 #define IOWKIT_PID_IOW24         IOWKIT_PRODUCT_ID_IOW24
00064 // IO-Warrior PowerVampire
00065 #define IOWKIT_PRODUCT_ID_IOWPV1 0x1511
00066 #define IOWKIT_PID_IOWPV1        IOWKIT_PRODUCT_ID_IOWPV1
00067 #define IOWKIT_PRODUCT_ID_IOWPV2 0x1512
00068 #define IOWKIT_PID_IOWPV2        IOWKIT_PRODUCT_ID_IOWPV2
00069 // IO-Warrior 56
00070 #define IOWKIT_PRODUCT_ID_IOW56  0x1503
00071 #define IOWKIT_PID_IOW56         IOWKIT_PRODUCT_ID_IOW56
00072 
00073 // Max number of pipes per IOW device
00074 #define IOWKIT_MAX_PIPES    2
00075 
00076 // pipe names
00077 #define IOW_PIPE_IO_PINS      0
00078 #define IOW_PIPE_SPECIAL_MODE 1
00079 
00080 // Max number of IOW devices in system
00081 #define IOWKIT_MAX_DEVICES  16
00082 // IOW Legacy devices open modes
00083 #define IOW_OPEN_SIMPLE     1
00084 #define IOW_OPEN_COMPLEX    2
00085 
00086 // first IO-Warrior revision with serial numbers
00087 #define IOW_NON_LEGACY_REVISION 0x1010
00088 
00089 // Don't forget to pack it!
00090 #pragma pack(push, 1)
00091 
00092 typedef struct _IOWKIT_REPORT
00093  {
00094   UCHAR ReportID;
00095   union
00096    {
00097     DWORD Value;
00098     BYTE Bytes[4];
00099    };
00100  }
00101   IOWKIT_REPORT, *PIOWKIT_REPORT;
00102 
00103 typedef struct _IOWKIT40_IO_REPORT
00104  {
00105   UCHAR ReportID;
00106   union
00107    {
00108     DWORD Value;
00109     BYTE Bytes[4];
00110    };
00111  }
00112   IOWKIT40_IO_REPORT, *PIOWKIT40_IO_REPORT;
00113 
00114 typedef struct _IOWKIT24_IO_REPORT
00115  {
00116   UCHAR ReportID;
00117   union
00118    {
00119     WORD Value;
00120     BYTE Bytes[2];
00121    };
00122  }
00123   IOWKIT24_IO_REPORT, *PIOWKIT24_IO_REPORT;
00124 
00125 typedef struct _IOWKIT_SPECIAL_REPORT
00126  {
00127   UCHAR ReportID;
00128   UCHAR Bytes[7];
00129  }
00130   IOWKIT_SPECIAL_REPORT, *PIOWKIT_SPECIAL_REPORT;
00131 
00132 typedef struct _IOWKIT56_IO_REPORT
00133  {
00134   UCHAR ReportID;
00135   UCHAR Bytes[7];
00136  }
00137   IOWKIT56_IO_REPORT, *PIOWKIT56_IO_REPORT;
00138 
00139 typedef struct _IOWKIT56_SPECIAL_REPORT
00140  {
00141   UCHAR ReportID;
00142   UCHAR Bytes[63];
00143  }
00144   IOWKIT56_SPECIAL_REPORT, *PIOWKIT56_SPECIAL_REPORT;
00145 
00146 #define IOWKIT_REPORT_SIZE sizeof(IOWKIT_REPORT)
00147 #define IOWKIT40_IO_REPORT_SIZE sizeof(IOWKIT40_IO_REPORT)
00148 #define IOWKIT24_IO_REPORT_SIZE sizeof(IOWKIT24_IO_REPORT)
00149 #define IOWKIT_SPECIAL_REPORT_SIZE sizeof(IOWKIT_SPECIAL_REPORT)
00150 #define IOWKIT56_IO_REPORT_SIZE sizeof(IOWKIT56_IO_REPORT)
00151 #define IOWKIT56_SPECIAL_REPORT_SIZE sizeof(IOWKIT56_SPECIAL_REPORT)
00152 
00153 #pragma pack(pop)
00154 
00155 // Opaque IO-Warrior handle
00156 typedef PVOID IOWKIT_HANDLE;
00157 
00158 // Function prototypes
00159 
00160 #ifdef  __cplusplus
00161 extern "C" {
00162 #endif // __cplusplus
00163 
00164 IOWKIT_HANDLE IOWKIT_API IowKitOpenDevice(void);
00165 void IOWKIT_API IowKitCloseDevice(IOWKIT_HANDLE devHandle);
00166 ULONG IOWKIT_API IowKitWrite(IOWKIT_HANDLE devHandle, ULONG numPipe,
00167   PCHAR buffer, ULONG length);
00168 ULONG IOWKIT_API IowKitRead(IOWKIT_HANDLE devHandle, ULONG numPipe,
00169   PCHAR buffer, ULONG length);
00170 ULONG IOWKIT_API IowKitReadNonBlocking(IOWKIT_HANDLE devHandle, ULONG numPipe,
00171   PCHAR buffer, ULONG length);
00172 BOOL IOWKIT_API IowKitReadImmediate(IOWKIT_HANDLE devHandle, PDWORD value);
00173 ULONG IOWKIT_API IowKitGetNumDevs(void);
00174 IOWKIT_HANDLE IOWKIT_API IowKitGetDeviceHandle(ULONG numDevice);
00175 BOOL IOWKIT_API IowKitSetLegacyOpenMode(ULONG legacyOpenMode);
00176 ULONG IOWKIT_API IowKitGetProductId(IOWKIT_HANDLE devHandle);
00177 ULONG IOWKIT_API IowKitGetRevision(IOWKIT_HANDLE devHandle);
00178 HANDLE IOWKIT_API IowKitGetThreadHandle(IOWKIT_HANDLE devHandle);
00179 BOOL IOWKIT_API IowKitGetSerialNumber(IOWKIT_HANDLE devHandle, PWCHAR serialNumber);
00180 BOOL IOWKIT_API IowKitSetTimeout(IOWKIT_HANDLE devHandle, ULONG timeout);
00181 BOOL IOWKIT_API IowKitSetWriteTimeout(IOWKIT_HANDLE devHandle, ULONG timeout);
00182 BOOL IOWKIT_API IowKitCancelIo(IOWKIT_HANDLE devHandle, ULONG numPipe);
00183 PCSTR IOWKIT_API IowKitVersion(void);
00184 
00185 #ifdef  __cplusplus
00186 }
00187 #endif // __cplusplus
00188 
00189 #endif // _IOW_KIT_H_
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Friends Defines