Mit dem IO-Warrior der Firma Code Mercenaries
Hard- und Software GmbH
ist ein generischer, universeller I/O Controller für die USB Schnittstelle verfügbar.
Es stehen vier Starterkits mit einem SDK
zur Verfügung, welche unter den Betriebssystemen Windows,Linux und MacOS eingesetzt werden können.
Die im SDK mitgelieferte Software unterstützt unter Windows jedoch nur Microsoft Visual C++
und den Borland C Compiler, und Programmieren in Delphi oder VisualBasic ist auch nicht jedermanns
Sache (alle vorgenannten Softwareprodukte kosten Geld und sind dadurch nicht in jedem Haushalt
vorhanden ;-).
Es soll also eine Möglichkeit geschaffen werden, die Boards aus den Starterkits (oder auf Basis
der IOW-Chips designten Lösungen) unter Verwendung der Programmiersprache Java ansteuern zu
können. Dabei soll die gebotene Funktionalität der Chips in sinnvollen Methoden und Klassen
gekapselt werden.
Da mit dem SDK bereits eine DLL (iowkit.dll) mit den Grundfunktionen geliefert wird, ist es sinnvoll,
diese auch zu nutzen. Um diese Funktionen ansprechen zu können, verwende ich die so genannte Java Native
Interface- (JNI) Bindung. Weiterhin sind Java Klassen und Interfaces, welche die Möglichkeiten der
IO-Warrior Kontroller repräsentieren, zu erstellen.
Das SDK enthält
einen rudimentären Java Support. Das bedeutet, dass die Funktionen der Wrapper Bibliothek bereits in
der iowkit.dll enthalten sind. Neu ist außerdem das Äquivalent zur iowkit.dll für Linux, die libiowkit.so.
Somit ist die Einschränkung, iowj funktioniere nur unter dem Betriebssystem Windows, aufgehoben.
Normalerweise wird Software ausgeliefert, wenn sie fertig ist. IOWJ ist aber noch nicht fertig. Ich habe
mich dennoch für eine Veröffentlichung entschieden, weil es vermutlich noch Monate oder Jahre dauern wird, ehe
dieser Zustand erreicht ist und so eine frühere Reaktion der potenziellen Nutzer möglich wird.
ID | Fehler/Einschränkungen | Behoben |
---|---|---|
F1 | IOWJ ist nur unter dem Betriebssystem Windows einsetzbar. | 0.9.3 |
F2 | Die I2C-Special Mode Funktion funktioniert zur Zeit nur mit einem Chip zur selben Zeit. | 0.9.4 |
F3 | Die SPI-Special Mode Funktion ist als Basisklasse vorhanden, jedoch ohne Funktion. | 0.9.4 |
F4 | Special Mode Funktion KEY Matrix ist nicht vorhanden. | 0.9.4 |
F5 | Special Mode Funktion LED Matrix ist nicht vorhanden. | nicht geplant |
E1 | Bei der schnellen Zeichenausgabe auf LCD von mehreren Threads aus kann es zu Darstellungsfehlern kommen (siehe ThreadTest.java im test package). | 0.9.4 |
Die Klassen und die Javadoc sind noch nicht endgültig und können in Zukunft völlig anders
aussehen (nicht wirklich anders, aber vielleicht schöner ;-).
Zur Javadoc geht's hier entlang.
Die alte Javadoc (0.9.4) gibt es noch hier.
Zur Zeit ist die vierte Version (0.9.5rc1) "downloadbar". Diese ist auf das letzte SDK abgestimmt und funktioniert
mit der Iowkit Library, Version 1.4. Diese IOWJ Version unterstützt auch den IO-Warrior 56. Dann ist jedoch die
Iowkit Library, Version 1.5 zu verwenden. Wird der IOW 56 Support nicht benötigt, dann empfehle ich die Version 1.4 der dll zu benutzten. Diese bietet mehrere Vorteile. Getestet wurde unter WindowsXP.
iowj0.9.5rc1.jar enthält unter anderem einen Klasse ListDevices. Diese Klasse ist im Manifest als Hauptklasse hinterlegt und wird bei folgendem Aufruf direkt gestartet:
java -jar iowj0.9.5rc1.jarSind IO-Warrior Devices per USB angeschlossen und wird die Library Version 1.5 verwendet, könnte der Output wie folgt aussehen:
------- Version of iowkit library is 'IO-Warrior Kit V1.5' -------- Number of plugged IO-Warrior device(s): 3 Device1: IOW40,Handle[47775764],Id[5376],Rev[1021],Serial[00002632] Device2: IOW24,Handle[47801132],Id[5377],Rev[1011],Serial[00000153] Device3: IOW56,Handle[47826500],Id[5379],Rev[1001],Serial[0000011D]Sind keine Devices angeschlossen, wird folgende Meldung ausgegeben:
------- Version of iowkit library is 'IO-Warrior Kit V1.5' -------- Cannot find any plugged IO-Warrior device!Damit das ganze funktioniert, sind zwei Bedingungen zu erfüllen:
Entwickelt und getestet ist das ganze unter WindowsXP und j2sdk1.4.2_06.
zurück zum Inhalt
Zur Zeit ist die dritte Version (0.9.4) "downloadbar". Diese ist auf das neue SDK abgestimmt und funktioniert auch
nur mit der Iowkit Library, Version 1.4. Sonst funktioniert IOWJ schon relativ gut und ist unter Windows XP und
Suse Linux 9.3 getestet.
iowj0.9.4.jar enthält unter anderem einen Klasse ListDevices. Diese Klasse ist im Manifest als Hauptklasse hinterlegt und wird bei folgendem Aufruf direkt gestartet:
java -jar iowj0.9.4.jarSind IO-Warrior Devices per USB angeschlossen, könnte der Output wie folgt aussehen:
Version of iowkit library is 'IO-Warrior Kit V1.4' Number of scanned devices: 4 Device1: IOW40,Handle[268487944],Id[5376],Rev[1003],Serial[00000000] Device2: IOW40,Handle[268488260],Id[5376],Rev[1011],Serial[0000038A] Device3: IOW24,Handle[268488576],Id[5377],Rev[1011],Serial[0000016F] Device4: IOW24,Handle[268488892],Id[5377],Rev[1011],Serial[00000153]Sind keine Devices angeschlossen, wird folgende Meldung ausgegeben:
Cannot find any connected IOW device!Damit das ganze funktioniert, sind zwei Bedingungen zu erfüllen:
Entwickelt und getestet ist das ganze unter WindowsXP und j2sdk1.4.1.
zurück zum InhaltJeder Interessierte kann sich an diesem Projekt beteiligen, um Verbesserungen, Erweiterungen oder persönliche Wünsche einzubringen. Ziel ist es, ein Produkt zu entwickeln, das der Aufgabenstellung entspricht und optimale Funktionalität bei geringem Aufwand gewährleistet.
Nr | Grad | Bedeutet | Zusatz |
---|---|---|---|
1 | total interessiert | Das Thema finde ich interessant und ich mache mit. | Gebiet(e) |
2 | sehr interessiert | Nach so einer Lösung habe ich gesucht und würde sie auch einsetzen. Aber mitentwickeln kann ich nicht (ist einfach nicht meine Richtung ...) | - |
3 | interessiert | Das Thema finde ich Interessant. Wie wird daraus werden? Verwendung dafür habe ich aber nicht. | - |
4 | nicht interessiert | Ich kann mir nicht vorstellen, das der Zweck erfüllt werden kann und ich würde so etwas auch nicht benutzen. | warum? |
5 | Unfug | Wer kommt denn auf solchen Ideen? Das Problem löse ich anders. Für so etwas benutze ich doch lieber M$-Produkte. | warum? |
Also, wen das hier interessiert, der schicke doch bitte eine Mail (im Betreff "IOWJ x" ,x entspricht der Nummer des Grades) an thomas@wagner-ibw.de
zurück zum InhaltAlle veröffentlichten Ideen und Lösungen können von jedermann (und Frau) frei verwendet werden. Die Software ist frei zugänglich und steht unter der GPL.
zurück zum Inhalt
Die Software wird so zur Verfügung gestellt, wie sie ist. Die Benutzung der hier veröffentlichten
Software erfolgt auf eigene Gefahr. Für etwaige Schäden, die durch Benutzung dieser Software entstehen,
wird keine Haftung übernommen. Eine Nutzung in sicherheitskritischen Anwendungen (Medizin, Luftfahrt, ...)
ist untersagt.
(Picture was stolen from www.codemercs.com ;-)