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;
	}
}
Beispiel #2
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