IO-Warrior einzelnen Pin auslesen

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
Richard Schulz
Posts: 4
Joined: Fri Mar 07, 2014 10:13 pm

IO-Warrior einzelnen Pin auslesen

Post by Richard Schulz »

Moin,

ich habe mir einen IO-Warrior 24 gekauft und auch fertig aufgebaut.

Nun möchte ich ihn gerne in ein Programm einbinden aber irgendwie
komme ich mit der Library bzw den Funktionen nicht so ganz klar.

Ich möchte einfach permanent einen einzelnen Pin abfragen ob dort eine
Spannung anliegt. Falls dies der fall ist soll das Programm weiterlaufen.

Gibt es irgendwie eine Anleitung die mir da etwas Licht ins Dunkle bringen kann?

Auch die Beispielcodes helfen mir irgendwie garnicht.

Ich arbeite mit C++.
Ich hoffe einer hat einen Tipp.

Vielen dank schon einmal.
Gruß
Richard
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IO-Warrior einzelnen Pin auslesen

Post by Christoph Jung »

Ein Weg führt über IowKitReadNonBlocking() und liest einfach die Daten sofort ein ohne auf irgend etwas zu warten.
Man kann das noch mit IowKitRead() lösen, was auf eine Änderung am Zustand der IO-Pins wartet. Allerdings wenn sich nichts ändert
hat es den Anschein, als ob das Programm hängt / einfriert. Darum dort IowKitSetTimeout() verwenden.

Hier der Weg mit IowKitReadNonBlocking()

Code: Select all

IOWKIT_HANDLE handle = IowKitOpenDevice();
IOWKIT24_IO_REPORT report;

memset(&report, 0x00, IOWKIT24_IO_REPORT_SIZE);

IowKitSetTimeout(handle, 1000); //Ist nur für IowKitRead / IowKitWrite wichtig um nach 1000ms abzubrechen

report.ReportID = 0x00;
IowKitReadNonBlocking(handle, IOW_PIPE_IO_PINS, (char*) &report, IOWKIT24_IO_REPORT_SIZE);

//Daten sind dann in report.Bytes[0] und report.Bytes[1] hinterlegt.

//Beim Beenden des Programms nicht vergessen!
IowKitCloseDevice(handle);
Das ist aber eigentlich auch im Beispiel Simple-IO vorhanden.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
Richard Schulz
Posts: 4
Joined: Fri Mar 07, 2014 10:13 pm

Re: IO-Warrior einzelnen Pin auslesen

Post by Richard Schulz »

Danke für die schnelle Antwort.

Ich werde das heute Abend mal testen.
Prinzipiell ist es mir auch egal ob das Programm
aussieht als würde es hängen.

Vielen dank.
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Re: IO-Warrior einzelnen Pin auslesen

Post by Guido Körber »

Einzelne Pins auslesen geht nicht, es wird immer der Status von allen Pins gleichzeitig geliefert.
Richard Schulz
Posts: 4
Joined: Fri Mar 07, 2014 10:13 pm

Re: IO-Warrior einzelnen Pin auslesen

Post by Richard Schulz »

Das ist ansich auch egal da ich den IO-Warrior nur dazu nutzte.
Richard Schulz
Posts: 4
Joined: Fri Mar 07, 2014 10:13 pm

Re: IO-Warrior einzelnen Pin auslesen

Post by Richard Schulz »

Moin,

ich komme einfach nicht weiter, ich weis das ich noch recht wenig Erfahrung mit C++ habe,
aber ich bemühe mich wirklich.

Ich bekomme immer die Fehlermeldung das der Typenspezifizierer fehlt (C4430).
Das ganze wird mir auf die main() ausgegeben, was habe ich vergessen?

Ansonsten habe ich das ganze ja auch verstanden.

Ich hoffe ihr könnt mir noch einmal helfen.

Gruß
Richard
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IO-Warrior einzelnen Pin auslesen

Post by Christoph Jung »

Allein mit dieser Fehlermeldung kann man nicht viel Anfangen.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
Post Reply