Borland C++ Builder und der IO-Warrior 24
Moderator: Guido Körber
-
Tasm-Devil
- Posts: 38
- Joined: Tue Oct 18, 2005 4:52 pm
- Contact:
Borland C++ Builder und der IO-Warrior 24
Ist es schwer mit dem BCB 5 oder 6 den Warrior zu steuern oder zu empfangen.
Wie viele Schritte benötigt es bis die Sache läuft. Ich frag nur weil ich vor habe mir in nächster Zeit 1-2 Warrior zu zulegen.
Kann mar einer helfen?
Wie viele Schritte benötigt es bis die Sache läuft. Ich frag nur weil ich vor habe mir in nächster Zeit 1-2 Warrior zu zulegen.
Kann mar einer helfen?
-
Robert Marquardt
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
Man muss sich nur ein iowkit.lib aus der iowkit.dll bauen.
Dazu liefert aber Borland ein Tool mit (IMPLIB).
iowkit.h laesst sich in BCB verwenden.
Ansonsten studiert man noch die Delphi-Beispiele. Diese sollten sich mit dem dcc32.exe Delphi Kommandozeilen Compiler uebersetzen lassen.
Mit ein bischen Geschick lassen sich die Beispiele auch nach BCB umsetzen.
Die HID-Komponente geht auch, aber es ist ein bichchen schwieriger sie einzubinden und zu verstehen.
Dazu liefert aber Borland ein Tool mit (IMPLIB).
iowkit.h laesst sich in BCB verwenden.
Ansonsten studiert man noch die Delphi-Beispiele. Diese sollten sich mit dem dcc32.exe Delphi Kommandozeilen Compiler uebersetzen lassen.
Mit ein bischen Geschick lassen sich die Beispiele auch nach BCB umsetzen.
Die HID-Komponente geht auch, aber es ist ein bichchen schwieriger sie einzubinden und zu verstehen.
-
Tasm-Devil
- Posts: 38
- Joined: Tue Oct 18, 2005 4:52 pm
- Contact:
-
Robert Marquardt
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
Die HID-Komponente ist eine Delphi-Komponente (BCB kompatibel), die alle HID-Geraete umfassend erschliesst. Entsprechend ist sie erheblich komplexer strukturiert und folgt auch nicht den Standardpfaden des Komponentendesigns.
Der wichtigste Unterschied ist das die HID-Geraete dynamisch verwaltet werden und daher ist es moeglich das An- und Abstecken von HID-Geraeten zu behandeln.
Der wichtigste Unterschied ist das die HID-Geraete dynamisch verwaltet werden und daher ist es moeglich das An- und Abstecken von HID-Geraeten zu behandeln.
-
Tasm-Devil
- Posts: 38
- Joined: Tue Oct 18, 2005 4:52 pm
- Contact:
Hi Leute,
mitlerweile habe ich mir den IO Warrior 24 gekauft und bin am Probieren. Allerdings hab ich schon mit dem MD5-Demo-Programmen problem, die ich aber in einem anderen Topik erörten möchte. Was ich euch hier nun fragen möchte ist folgendes:
Ich habe die HidDeviceControl Komponente erstaunlicherweise ohne Probleme in den BCB6 integriert und möchte Sie jetzt teste. Zum probieren habe ich ein auf der CD mitgeliefertes Demo Projekt geladen. Zu meiner überaschung Compiliert er es ohne zu murren aber der Linker streikt mit folgender Fehlermeldung:
[Linker Fatal Error] Fatal: Could not open ..\..\..\bin\BasicDemo.exe (error code 5)
Kann mir einer helfen. (BasicDemp.exe soll er machen, die gibt es logischerweise nicht)
mitlerweile habe ich mir den IO Warrior 24 gekauft und bin am Probieren. Allerdings hab ich schon mit dem MD5-Demo-Programmen problem, die ich aber in einem anderen Topik erörten möchte. Was ich euch hier nun fragen möchte ist folgendes:
Ich habe die HidDeviceControl Komponente erstaunlicherweise ohne Probleme in den BCB6 integriert und möchte Sie jetzt teste. Zum probieren habe ich ein auf der CD mitgeliefertes Demo Projekt geladen. Zu meiner überaschung Compiliert er es ohne zu murren aber der Linker streikt mit folgender Fehlermeldung:
[Linker Fatal Error] Fatal: Could not open ..\..\..\bin\BasicDemo.exe (error code 5)
Kann mir einer helfen. (BasicDemp.exe soll er machen, die gibt es logischerweise nicht)
-
Robert Marquardt
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
-
Tasm-Devil
- Posts: 38
- Joined: Tue Oct 18, 2005 4:52 pm
- Contact:
ok danke das hat mir ein bisschen weitergeholfen. der fehler ist weg aber das demo-programm sagt mit es findet keinen IO-Warrior obwohl er definitif angeschlossen ist. Ich habe es mit einem Fertigkompiliertem Programm von der CD getestet.
Hier hab ich 2 Screenshoots gemacht
http://www.bsc-birkenheide.de/codemercs.htm
Hier hab ich 2 Screenshoots gemacht
http://www.bsc-birkenheide.de/codemercs.htm
-
Tasm-Devil
- Posts: 38
- Joined: Tue Oct 18, 2005 4:52 pm
- Contact:
Eins versteh ich nicht. Mitlerweile funktionieren alle demos (ma ausgeschlossen von den LCD dingern, die ich nicht probieren kann) außer dieses IO-Warrior demo.
Darum hätte ich mal eine Frage:
Ich brauche den Warrior im Grunde genommen nur für einen Zweck. Und zwar möchte ich lediglich 3bit an den ausgängen P0.0 bis P0.2 ausgeben um damit 3 Relais zu schalten. Kann mir jemand ein klize kleines Prog im BCB6 schreiben das in der lage dazu ist? Mit oder ohne HidDeviceControl
Wenn nicht, dann möchte ich um ein klein bisschen hilfe bitten, damit ich das selbst auf die Reihe kriege.
Darum hätte ich mal eine Frage:
Ich brauche den Warrior im Grunde genommen nur für einen Zweck. Und zwar möchte ich lediglich 3bit an den ausgängen P0.0 bis P0.2 ausgeben um damit 3 Relais zu schalten. Kann mir jemand ein klize kleines Prog im BCB6 schreiben das in der lage dazu ist? Mit oder ohne HidDeviceControl
Wenn nicht, dann möchte ich um ein klein bisschen hilfe bitten, damit ich das selbst auf die Reihe kriege.
-
Robert Marquardt
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
Der Fehler ist ganz schlicht.
Diese Funktion akzeptiert nur IO-Warror 40. " == 5" durch " == 3" ersetzen und es sollte funktionieren.
Das Programm stammt noch aus der Zeit als es keine IO-Warrior 24 gab.
Bei der HID-Komponente erscheint ein IO-Warrior als zwei getrennte Geraete. "InputReportByteLength == 8" ist das Geraet fuer die Special Modes. Die IO-Pins haben "InputReportByteLength == 5" fuer IO-Warrior 40 und "InputReportByteLength == 3" fuer IO-Warrior 24.
Code: Select all
bool __stdcall FindIOWarrior(TJvHidDevice *HidDev)
{
// the IO-Warrior shows up as two devices
// we want access to the IO-Warrior device for the IO pins
// the other one with a InputReportByteLength of 8 is for access to
// the optional LCD module
return (HidDev->Attributes.VendorID == cCodeMercenariesVID &&
HidDev->Attributes.ProductID == cIOWarriorPID &&
HidDev->Caps.InputReportByteLength == 5);
}
Das Programm stammt noch aus der Zeit als es keine IO-Warrior 24 gab.
Bei der HID-Komponente erscheint ein IO-Warrior als zwei getrennte Geraete. "InputReportByteLength == 8" ist das Geraet fuer die Special Modes. Die IO-Pins haben "InputReportByteLength == 5" fuer IO-Warrior 40 und "InputReportByteLength == 3" fuer IO-Warrior 24.
-
Tasm-Devil
- Posts: 38
- Joined: Tue Oct 18, 2005 4:52 pm
- Contact:
-
Guido Körber
- Site Admin
- Posts: 2880
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
-
Robert Marquardt
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
-
Tasm-Devil
- Posts: 38
- Joined: Tue Oct 18, 2005 4:52 pm
- Contact:
Also ich habe jetzt alles so gemacht wie ihr es gesagt habt. es hat sich auch was getan. Mitlerweile zeigt das Programm an es finde den IO Warrior aber wenn ich auf die LED-Buttons drücke passiert nichts.
Ich zeige euch jetzt was ich geändert habe
und:
Funktioniert es bei euch?
Ich zeige euch jetzt was ich geändert habe
Code: Select all
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "JvHidControllerClass.hpp"
#include <Buttons.hpp>
//---------------------------------------------------------------------------
#define cCodeMercenariesVID 0x07C0
#define cIOWarriorPID 0x1501
#define cLEDByte
Code: Select all
bool __stdcall FindIOWarrior(TJvHidDevice *HidDev)
{
// the IO-Warrior shows up as two devices
// we want access to the IO-Warrior device for the IO pins
// the other one with a InputReportByteLength of 8 is for access to
// the optional LCD module
return (HidDev->Attributes.VendorID == cCodeMercenariesVID &&
HidDev->Attributes.ProductID == cIOWarriorPID &&
HidDev->Caps.InputReportByteLength == 3);
}
-
Guido Körber
- Site Admin
- Posts: 2880
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
-
Robert Marquardt
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
Mit den LED-Buttons meint er die Buttons im Programm, auf denen ein Bild einer LED ist.
#define cLEDByte 3
aendern in
#define cLEDByte 0
Beim IOW40 Starter Kit sind die LEDs am Port 3 angeschlossen, waehrend die LED des IOW 24 Starterkits am Pin 3 des Ports 0 haengt.
Ansonsten ist es guenstig das gleichnamige Delphi-Beispiel durchzulesen. Die BCB-Beispiele wurden von einer frueheren Version der Delphi-Beispiele abgeleitet.
#define cLEDByte 3
aendern in
#define cLEDByte 0
Beim IOW40 Starter Kit sind die LEDs am Port 3 angeschlossen, waehrend die LED des IOW 24 Starterkits am Pin 3 des Ports 0 haengt.
Ansonsten ist es guenstig das gleichnamige Delphi-Beispiel durchzulesen. Die BCB-Beispiele wurden von einer frueheren Version der Delphi-Beispiele abgeleitet.