int WriteSimple (IOWKIT_HANDLE devHandle, DWORD value) { IOWKIT_REPORT rep; IOWKIT56_IO_REPORT rep56; /* Init report */ switch (IowKitGetProductId(devHandle)) { /* Write simple value to IOW40*/ case IOWKIT_PRODUCT_ID_IOW40: memset(&rep, 0xff, sizeof(rep)); rep.ReportID = 0; rep.Bytes[3] = (UCHAR) value; return IowKitWrite(devHandle, IOW_PIPE_IO_PINS, (PCHAR) &rep, IOWKIT40_IO_REPORT_SIZE) == IOWKIT40_IO_REPORT_SIZE; /* Write simple value to IOW24*/ case IOWKIT_PRODUCT_ID_IOW24: memset(&rep, 0xff, sizeof(rep)); rep.ReportID = 0; rep.Bytes[0] = (UCHAR) value; return IowKitWrite(devHandle, IOW_PIPE_IO_PINS, (PCHAR) &rep, IOWKIT24_IO_REPORT_SIZE) == IOWKIT24_IO_REPORT_SIZE; /* Write simple value to IOW56*/ case IOWKIT_PRODUCT_ID_IOW56: memset(&rep56, 0xff, sizeof(rep56)); rep56.ReportID = 0; rep56.Bytes[6] = (UCHAR) value; return IowKitWrite(devHandle, IOW_PIPE_IO_PINS, (PCHAR) &rep56, IOWKIT56_IO_REPORT_SIZE) == IOWKIT56_IO_REPORT_SIZE; default: return 0; } }
int init() { if (iow == NULL) { iow = IowKitOpenDevice(); if (iow == NULL) { printf("No device!\n"); fflush(stdout); return 2; } else { WCHAR sn[9]; IowKitGetSerialNumber(iow, sn); printf("PID %x, S/N \"%ws\"\n\n", IowKitGetProductId(iow), sn); fflush(stdout); return 1; } //else } else { IowKitCloseDevice(iow); return 0; } //else } //init