IOWarrior liefert nicht immer den richten Wert zurück

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
robert.ferralux
Posts: 8
Joined: Wed Dec 06, 2006 4:36 pm
Location: Lkrs. Augsburg

IOWarrior liefert nicht immer den richten Wert zurück

Post by robert.ferralux »

Hallo liebe IOW-Gemeinde,
jetzt habe ich schon wieder ein Problem mit dem ich nicht weiter komme und auch im Forum nicht so recht fündig wurde.

Ich benutze DELPHI 6.0 unter Win2K, den IOW40 mit IO-Kit 1.5 ...

Ich frage Zeitgesteuert (ca. 2500msek) über Timerevents die Ports des IOW ab. Dazu verwede ich "IOKitReadImmediate".
Und ab und zu bekomme ich als Rückgabewert $0000 obwohl ich $3FFE oder $3FEF erwarte.
Die Funktion IOKitReadImmediate liefert für den Vorgang .true. zurück. In diesem Fall lese zerlege ich den zurückgelesenen Wert "Value" in
seine 4 Bytes und arbeite damit weiter (und das bring mir einen "Pseudo-Fail meines Prüflings)
Wenn IOKitReadImmediate .false. zurückgeben würde würde ich einem Label den Wert "ReadImmediateError" zuweisen um den Fehler anzu-
zeigen, das passiert aber beim Rücklesen von $0000 nicht.

Was ich noch erwähnen sollte, ist das ich vor dem Read das Timeout mit "IOWKitSetTimeOut (IOWarriors[1],1000)" setze, da es mit immer
wieder passiert ist, das "ReadImmediate" nicht zurückkommt.
(siehe dazu http://www.codemercs.com/phpBB2/viewtopic.php?t=844)
Kann da ein zusammenhang bestehen?

In einem anderen Topic "659" im Forom habe ich einen Artikel von Guido Körber gelesen, der da auf Probleme in der SDK1.4 mit
"ReadImmediate" hinweist. Hier heist es:
"Um den aktuellen Portstatus zu bekommen muss man den SpecialMode Command GetStatus senden und dann die Antwort lesen."

Wie mache ich das und könnte mir das helfen?

Vielen vielen Dank an alle
ROBERT
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Da nutzt der Kerl nicht nur Delphi 6 sondern heisst auch noch wie ich ;-)
Na im Prinzip wie wie in jedem Special Mode Beispiel. Es ist ja auch sehr einfach, da es sich um Write/Read-Paare handelt. Man schreibt ein Special Mode-Kommando mit IowKitWrtie und liest dann mit IowKitRead die Antwort zurueck. Letztlich unterscheiden sich die Beispiele nur darin was man schreibt und was man mit den gelesenen Daten macht.
Post Reply