IowKitReadNonBlocking Compiler Fehler

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
finalcu
Posts: 26
Joined: Fri Nov 13, 2009 8:53 am

IowKitReadNonBlocking Compiler Fehler

Post by finalcu »

Hallo,

ich bekomme einen Fehler, wenn ich den folgenden Code zu kompilieren versuche:

Code: Select all

ULONG res;
IOWKIT40_IO_REPORT report;
res = IowKitReadNonBlocking(iow_handle, IOW_PIPE_IO_PINS, &report, IOWKIT40_IO_REPORT_SIZE);
error: cannot convert `IOWKIT40_IO_REPORT*' to `CHAR*' for argument `3' to `ULONG IowKitReadNonBlocking(void*, ULONG, CHAR*, ULONG)'

was mache ich falsch?

Gruss,
finalcu
finalcu
Posts: 26
Joined: Fri Nov 13, 2009 8:53 am

Re: IowKitReadNonBlocking Compiler Fehler

Post by finalcu »

hab den fehler gefunden:

Code: Select all

IowKitReadNonBlocking(iow_handle, IOW_PIPE_IO_PINS,(char*) &report, IOWKIT40_IO_REPORT_SIZE)
nun habe ich aber eine andere Frage. Ich verwende den folgenden Code für die Initialisierung des IOW's:

Code: Select all

// set timeout to 2 seconds
	IowKitSetWriteTimeout(iow_handle,2000);
	// set initial (pins to be read)
	ULONG res;
	initial.ReportID = 0;
	initial.Value = 0xFFFFFFFF;
	res = IowKitWrite(iow_handle, IOW_PIPE_IO_PINS,(char*) &initial, IOWKIT40_IO_REPORT_SIZE);
	if (res != IOWKIT40_IO_REPORT_SIZE)
	{
		printf("[%s] Write error: %d\n", panel_name.c_str(),GetLastError());
	}
	// empty the buffer
	IOWKIT40_IO_REPORT report;
	while (IowKitReadNonBlocking(iow_handle, IOW_PIPE_IO_PINS,(char*) &report, IOWKIT40_IO_REPORT_SIZE) != 0) {
		// empty buffer
		printf("[%s] Empty buffer...\n", panel_name.c_str());
		//printf("REPORT: id %d value %x bytes %d %d %d %d", report.ReportID,report.Value,report.Bytes[1],report.Bytes[2],report.Bytes[3],report.Bytes[4]);
	}
	printf("[%s] Buffer empty.\n", panel_name.c_str());
	// get current pin status
	DWORD bits;
	if (IowKitReadImmediate(iow_handle, &bits))
	{
		printf("[%s] Current pin status: 0x%x\n",panel_name.c_str(),bits);
		currentReport.ReportID = 0;
		currentReport.Value = bits;
	}
der Code wird am Anfang meines Programmes ausgeführt und soll den Buffer leeren und den aktuellen Status der Pins speichern. Gemäss API soll die Funktion IowKitReadImmediate() den Wert true zurückgeben, falls ein neuer Report anliegt. Da ich zuvor aber den Buffer entleere, müsste die Funktion doch false zurückgeben, was aber nicht der Fall ist.
Post Reply