IowKitCloseDevice
Moderator: Guido Körber
IowKitCloseDevice
hallo,
habe leider im Forum nichts gefunden, was mir bei meinem Problem
helfen könnte.
Ich öffne bei meinem Programm 3 IOW-Devices und kann auch
wunderbar mit ihnen arbeiten.
Rufe ich dann beim Beenden des Programmes die CloseDevice() aus der
dll auf, hängt sich das Programm hin und wieder genau in dieser Methode auf.
Nutze derzeit noch die 1.4, für die 1.5 müsste ich alle read-funktionen
umbauen, da dann die ReadImmediate nichtmehr funktioniert und im Download fehlt leider eine Docu zur 1.5.
Danke im Voraus
habe leider im Forum nichts gefunden, was mir bei meinem Problem
helfen könnte.
Ich öffne bei meinem Programm 3 IOW-Devices und kann auch
wunderbar mit ihnen arbeiten.
Rufe ich dann beim Beenden des Programmes die CloseDevice() aus der
dll auf, hängt sich das Programm hin und wieder genau in dieser Methode auf.
Nutze derzeit noch die 1.4, für die 1.5 müsste ich alle read-funktionen
umbauen, da dann die ReadImmediate nichtmehr funktioniert und im Download fehlt leider eine Docu zur 1.5.
Danke im Voraus
-
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
ich bekomme nichts, was ich verwerten könnte zurück.
vielleicht liegt es dann auch an den write-methoden, die wir vorher aufrufen.
hab leider keine ahnung, was wirklich alles geändert wurde.
von anderer stelle habe ich auch erfahren, dass man da dann die ReadNonBlocking verwenden soll.
nur hab ich dazu nichts in der Docu finden können.
aber die eigentliche frage ist ja, warum bleibt er in der CloseDevice hängen.
vielleicht liegt es dann auch an den write-methoden, die wir vorher aufrufen.
hab leider keine ahnung, was wirklich alles geändert wurde.
von anderer stelle habe ich auch erfahren, dass man da dann die ReadNonBlocking verwenden soll.
nur hab ich dazu nichts in der Docu finden können.
aber die eigentliche frage ist ja, warum bleibt er in der CloseDevice hängen.
-
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
Kann ich die Sourcen des Programms bekommen? Ohne fleissige Debug-Sitzungen kann ich nicht sagen warum IowKitCloseDevice haengen bleibt. Bitte an marquardt att codemercs dott com schicken. Morgen bin ich allerdings nicht da.
IowKitReadNonBlocking wird in einigen Beispielen verwendet.
Wie IowKitRead, aber wenn nichts zu lesen ist, dann wird 0 geliefert und im Puffer nichts veraendert.
IowKitReadNonBlocking wird in einigen Beispielen verwendet.
Wie IowKitRead, aber wenn nichts zu lesen ist, dann wird 0 geliefert und im Puffer nichts veraendert.
-
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
-
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
-
- Site Admin
- Posts: 2876
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Einfach einen Link an: sales@codemercs.com schicken, bei der nächsten Änderung an der Site packen wir das dann mit rein.
Also, wenn ich micht recht erinner, dann lag es bei uns wohl daran, dass
wir die OpenDevice() und CloseDevice öfters aufgerufen haben.
Diese sollten nur einmal zu Beginn und am Ende des Programms
aufgerufen werden.
Der Zugriff auf die einzelnen Warriors funktioniert dann über
IowKitGetDeviceHandle().
Es könnte auch noch ein Fehler in unserer Read()-Funktion gewesen sein.
Hier ist der Lösungsansatz den uns Herr Marquardt zur Verfügung gestellt
hat:
So genau kann ich das allerdings nichtmehr sagen, da ich nicht die
Zugriffe auf den IO-Warrior programmiert habe, sondern Hauptsächlich
die Auswertung der gelesenen Daten und die Generierung der Daten, die
gesendet werden sollten.
MfG
Xanos
wir die OpenDevice() und CloseDevice öfters aufgerufen haben.
Diese sollten nur einmal zu Beginn und am Ende des Programms
aufgerufen werden.
Der Zugriff auf die einzelnen Warriors funktioniert dann über
IowKitGetDeviceHandle().
Es könnte auch noch ein Fehler in unserer Read()-Funktion gewesen sein.
Hier ist der Lösungsansatz den uns Herr Marquardt zur Verfügung gestellt
hat:
Code: Select all
ret = IowKitReadNonBlocking(this->m_iow, IOW_PIPE_IO_PINS,
&report, IOWKIT40_IO_REPORT_SIZE);
if (ret)
while (IowKitReadNonBlocking(this->m_iow, IOW_PIPE_IO_PINS,
&report, IOWKIT40_IO_REPORT_SIZE)
;
Zugriffe auf den IO-Warrior programmiert habe, sondern Hauptsächlich
die Auswertung der gelesenen Daten und die Generierung der Daten, die
gesendet werden sollten.
MfG
Xanos