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
IO-Warrior einzelnen Pin auslesen
Moderator: Guido Körber
- Christoph Jung
- Posts: 671
- Joined: Sun Oct 08, 2006 3:43 pm
- Location: Germany / Berlin
- Contact:
Re: IO-Warrior einzelnen Pin auslesen
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()
Das ist aber eigentlich auch im Beispiel Simple-IO vorhanden.
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);
-
- Posts: 4
- Joined: Fri Mar 07, 2014 10:13 pm
Re: IO-Warrior einzelnen Pin auslesen
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.
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.
-
- Site Admin
- Posts: 2857
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Re: IO-Warrior einzelnen Pin auslesen
Einzelne Pins auslesen geht nicht, es wird immer der Status von allen Pins gleichzeitig geliefert.
-
- Posts: 4
- Joined: Fri Mar 07, 2014 10:13 pm
Re: IO-Warrior einzelnen Pin auslesen
Das ist ansich auch egal da ich den IO-Warrior nur dazu nutzte.
-
- Posts: 4
- Joined: Fri Mar 07, 2014 10:13 pm
Re: IO-Warrior einzelnen Pin auslesen
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
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
- Christoph Jung
- Posts: 671
- Joined: Sun Oct 08, 2006 3:43 pm
- Location: Germany / Berlin
- Contact:
Re: IO-Warrior einzelnen Pin auslesen
Allein mit dieser Fehlermeldung kann man nicht viel Anfangen.