Senden eines Kommandos an ein HID-USB Gerät

Hardware- und Elektronikbasteleien, Ansteuerung von Schnittstellen und Peripherie.
Fragen zu "Consumer"-Problemen kommen in Offtopic.
Benutzeravatar
Falko
Admin
Beiträge: 3531
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.0
Kontaktdaten:

Re: Senden eines Kommandos an ein HID-USB Gerät

Beitrag von Falko »

da auf dieser Seite kein MSR609 zu finden ist habe ich mal überall gesucht ob ich da
was passendes zu finden kann. Diese Seite zeigt in der Tabelle an, das es ein USB-Gerät sein soll, aber wohl per Standard RS232 kommunizieren soll.

Hier mal der Link wo weiter unten das in der Tabelle steht:
http://www.dhgate.com/msr609-magnetic-r ... 62852.html
Communication Standard RS232 or USB with USB-to-RS232
Normal müsstest du im Gerätemanager dann sehen können, sobald du das Gerät in USB steckst, das unter COM ein neues serielles Gerät angemeldet worden sein müsste. Wenn das so ist, solltest du wie beim MR206 das MSR605 seriell über PB das nutzen können.

Interessant ist auch, das nur dieses Teil über China vertrieben wird und vielleicht ein Nachbau des 206 sein könnte, welches dann aber über ein USB2Serial-Adaptierung funktionieren könnte. Ich bin mir da aber nicht sicher.

Leider findet man dieses Modell nicht unter diesem gekürzten Link, welchen du am Anfang gepostet hattest.
http://www.dhtechnology.com.au/pdfs/card%20readers/


Gruß, Falko
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic
Tombi
Beiträge: 369
Registriert: 05.03.2008 22:05

Re: Senden eines Kommandos an ein HID-USB Gerät

Beitrag von Tombi »

Folgendes habe ich derzeit herausgefunden:

Das MSR605 und MSR609 ist eigentlich ziemlich gleich. Einzigster Unterschied: Das MSR609 ist mit HID, das MSR605 nicht.
Beide Geräte sind "voll kompatibel" zum MSR206. Scheinen also Nachbauten aus China zu sein.

Der originale Hersteller des Gerätes:
http://www.card-device.com

Problem:
- Ich erhalte keine Antwort vom Hersteller selbst.
- Ich kann keine Informationen finden.


Deine Idee ist garnichtmal so schlecht. Aber das ganze ist doch per USB angeschlossen. Da kann ich doch nicht einfach das Gerät seriell ansprechen? :-/
Wenn ich mit der Library für USB-HID arbeite, kann ich das Gerät beim einstecken ausmachen und damit kommunizieren, aber das Gerät reagiert wie bereits erwähnt kein bisschen auf meine Anfragen.
Es scheinen einfach diese Informationen zu fehlen, wie das Gerät kommuniziert.

Ich habe ja das originale Tool, welches ebenfalls mit dem Gerät kommuniziert. Könnte man da irgendwie recht einfach das analysieren, was an das Gerät geschickt wird ?

Ich kann gerne mal schauen was genau im Gerätemanager passiert, wenn ich das Gerät anschließe..


Mit freundlichen Grüßen,
Tombi


Edit:
Wenn ich das Gerät einstecke (man möchte hinzufügen das ich Win7 x64 nutze) taucht im Gerätemanager eine neue Kategorie mit 2 Einträgen auf:

* Eingabegeräte (Human Interface Device)
- HID-konformes Gerät
- USB-Eingabgerät

Der zweite Eintrag ist mit dem Ort "Port_#0001.Hub_#0003" gekennzeichnet. Dabei ändert sich jedoch der Port entsprechend des Anschlusses, stellt also den benutzen Anschluss dar.
Bild Bild Bild
Intel Pentium 4 630 (3 GHZ)
Benutzeravatar
Falko
Admin
Beiträge: 3531
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.0
Kontaktdaten:

Re: Senden eines Kommandos an ein HID-USB Gerät

Beitrag von Falko »

Also so wie es aussieht, läuft das über USB und nicht, wie ich dachte, als RS232-USB-Interface.
auf der Seite ist das Gerät zwar gut beschrieben wie auf jeder anderen Webseite, aber leider gibt
es unten auf dem Link kein Download. Ich habe selbst mal einen Versuch gestartet um betreffend den
Link (ganz unten) von denen eine Antwort zu bekommen.

http://www.card-device.com/products_info.asp?Nid=65

Vielleicht haben wir ja Glück.

Wegen Verbindungen abfangen oder ähnlich, müsste so was vielleicht mit einem Portsniffer gehen.
z.B. so was hier: http://www.hhdsoftware.com/usb-monitor
Aber dafür extra Geld auszugeben wäre blödsinn.

Mit freundlichen Grüßen,
Falko
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic
Tombi
Beiträge: 369
Registriert: 05.03.2008 22:05

Re: Senden eines Kommandos an ein HID-USB Gerät

Beitrag von Tombi »

Leider liegt diese PDF auch bei der originalen Lieferung nicht dabei. Ich hoffe das sich der Hersteller doch noch meldet.
Falko hat geschrieben: Wegen Verbindungen abfangen oder ähnlich, müsste so was vielleicht mit einem Portsniffer gehen.
z.B. so was hier: http://www.hhdsoftware.com/usb-monitor
Aber dafür extra Geld auszugeben wäre blödsinn.
Dort scheint es eine Demoversion zu geben? Ich werde diese mir mal anschauen.
Gibt es keine kostengünstigere Variante o.ä. ? /:->


MFG,
Tombi


Edit:
Habe mir das Programm in der DEMO-Version mal angeschaut (14 Tage lang voller Funktionsumfang).
Nachfolgend ein Beispiel, was passiert, wenn ich den Befehl READ über das original mitgelieferte Tool gebe:
Bild

Edit²:
Die darin enthaltenen Bytes haben starke Ähnlichkeiten mit denen der Dokumentation vom MSR206.
Beispielsweiße sieht man oben im Bild "1B" = <ESC>.
Wenn ich jetzt beispielsweiße wieder in den normalen Modus wechseln möchte, steht unter anderem in den Bytes
"1B 61" - genauso wie in der Doku vom MSR206 beschrieben.
Daher scheinen die Befehle wohl ziemlich übernommen worden zu sein - so wurde wohl die Kompatibilität gebracht.
Jedoch kann ich persönlich gerade nicht viel anfangen. Wie sende ich nun den ganzen Spaß?

Edit³:
Habe mich wirklich nicht getäuscht. Oben im Bild sieht man wie bereits gesagt "1B 6D" stehen.
Dies ist der Befehl für "read raw data" - so wie in der Doku vom MSR206. Die Befehle sind also recht gleich.
Dennoch bin ich zu doof genau diesen Inhalt, den ich da rauslesen kann, an das Gerät zu schicken.
Folgende Library benutze ich: http://forums.purebasic.com/english/vie ... 14&t=41729
Verbinden etc funktioniert ja von anfang an bestens damit :)
Zuletzt geändert von Tombi am 26.04.2011 17:16, insgesamt 1-mal geändert.
Bild Bild Bild
Intel Pentium 4 630 (3 GHZ)
H.Brill
Beiträge: 356
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Re: Senden eines Kommandos an ein HID-USB Gerät

Beitrag von H.Brill »

Also, ich hab mal gerade mit meiner seriellen
Relaiskarte vom großen C rumgespielt.
Dort habe ich den USB-Seriell Wandler von
Digitus (bekommste auch vom großen C)
mal dran gehängt. Mußte zwar bedingt durch
die seriellen Verbindungsstücke zu Nullmodem
und wieder zurück zusammenstecken (muß ja das
passende Endstück zur Relaiskarte haben), aber die
funktioniert.

Wollte damit eigentlich nur sagen, daß so ein
USB-Seriell Wandler in beide Richtungen geht.

Also ich würde mal mit so einem Teil (5-10 €)
probieren. Da kannste dann problemlos mit
den PB eigenen seriellen Funktionen hantieren.
PB 5.60
Tombi
Beiträge: 369
Registriert: 05.03.2008 22:05

Re: Senden eines Kommandos an ein HID-USB Gerät

Beitrag von Tombi »

H.Brill hat geschrieben:Also, ich hab mal gerade mit meiner seriellen
Relaiskarte vom großen C rumgespielt.
Dort habe ich den USB-Seriell Wandler von
Digitus (bekommste auch vom großen C)
mal dran gehängt. Mußte zwar bedingt durch
die seriellen Verbindungsstücke zu Nullmodem
und wieder zurück zusammenstecken (muß ja das
passende Endstück zur Relaiskarte haben), aber die
funktioniert.

Wollte damit eigentlich nur sagen, daß so ein
USB-Seriell Wandler in beide Richtungen geht.

Also ich würde mal mit so einem Teil (5-10 €)
probieren. Da kannste dann problemlos mit
den PB eigenen seriellen Funktionen hantieren.
1. Habe ich oben noch paar Dinge dazu editiert. Kannste gerne durchlesen.
Ich denke wir schaffen vielleicht auch so einen Erfolg mit PureBASIC? :)

2. Würde ich gerne bei USB bleiben, da die meisten Leute, welches ein solches Gerät nutzen
sicherlich nicht sich einen Wandler o.ä. kaufen werden und sich wünschen bei USB bleiben zu können.
Das originale Tool kann es ja auch :mrgreen:
Bild Bild Bild
Intel Pentium 4 630 (3 GHZ)
H.Brill
Beiträge: 356
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Re: Senden eines Kommandos an ein HID-USB Gerät

Beitrag von H.Brill »

Mit direkter Anteuerung per USB kenne ich
mich leider nicht so aus.
Der Vorteil dieser Wandler ist halt, daß du
per Treiber eine extra Serielle Schnittstelle
über Software hast, und somit das Ganze
besser zu handhaben ist.

Wenn das Ding über TTL-Pegel laufen würde
(wie bei den Microcontrollern), könnte man
es auch über Bluethooth machen. Damit wäre auch
der Kabelsalat weg und Windows stellt dir von
Haus aus auch so eine emulierte Ser. Schnittstelle
zur Verfügung.

http://robotrack.org/include.php?path= ... entid=279

Aber mit einem TTL Pegelwandler kann man das dann auch
wieder zu PC - Pegel hochmodulieren.
PB 5.60
Tombi
Beiträge: 369
Registriert: 05.03.2008 22:05

Re: Senden eines Kommandos an ein HID-USB Gerät

Beitrag von Tombi »

Tag zusammen,
ich habe heute Antwort direkt vom Hersteller CARD-DEVICE.COM bekommen.

Man hat mir ein SDK zugeschickt :allright:

Das möchte ich euch natürlich nicht vorenthalten!

Damit die Datei nicht so schnell verloren geht, mal auf mehreren Hostern hochgeladen:
http://www.multiupload.com/ZCSB3ICFXK


Mit freundlichen Grüßen,
Tombi
Bild Bild Bild
Intel Pentium 4 630 (3 GHZ)
Benutzeravatar
Falko
Admin
Beiträge: 3531
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.0
Kontaktdaten:

Re: Senden eines Kommandos an ein HID-USB Gerät

Beitrag von Falko »

danke @Tombi

Wenn ich das Tool demo.exe starte erhalte ich Fehlermeldungen, das mir bestimmte
Dateien fehlen. Diese habe ich mir zusammen gesucht, danach konnte ich die demo.exe
starten als auch mit dem DLL2PBLib für PB was erstellen. Normal sollte man mit der MSR_API.lib
zwar in PB aufrufen können, dazu fehlt in der SDK die Beschreibung, nach der ich ebenfalls
den Händler angeschrieben hatte, der mir zuvor die Produktbeschreibung geschickt hatte :mrgreen:
Vielleicht kommt so eine Beschreibung noch nach.

Folgende Dateien fehlten bei mir unter Windows 7 64-Bit:
borlndmm.dll
cc3260.dll
cc3260MT.dll
rtl60.bpl


[Edit]
Code wurde auf Wunsch entfernt. Das mit den longs wird vom Tool DLL2Lib (ts-soft) automatisch erzeugt und
konnte auf Wunsch angepasst werden.
Das aktuelle PB bietet aber eine bessere Funktion an, welche sich Import : EndImport (Siehe Hilfe zu pseudotypes)
nennen. Damit kann man die libs direkt importieren, welche dann in PB zur Verfügung stehen.

[/Edit]

Mit freundlichen Grüßen,
Falko
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic
Tombi
Beiträge: 369
Registriert: 05.03.2008 22:05

Re: Senden eines Kommandos an ein HID-USB Gerät

Beitrag von Tombi »

Du hast für sowas Hilftools und ich habe exakt das gleiche gerade per Hand getippt /:-> /:-> /:->

Danke dir :D


Edit:
Gibt es eine Möglichkeit das ich die ganzen 4 Dateien, welche standardmäßig zu der DLL ja eigentlich fehlen,
direkt mit in das Programm reinbekomme oder muss ich diese immer extra mit der DLL beilegen?

Am liebsten hätte ich zum Schluss gerne nur noch eine einzige EXE-Datei :)

Edit²:
Ich bitte dich darum deinen Code wieder rauszunehmen, da dieser richtig fehlerhaft ist.
Dort werden dauerhaft Variablen von Typ Long ("a.l" .. etc) übergeben, wobei endeutig stellenweiße Pointer / Strings / etc
übergeben werden müssen!
Da scheint dein Tool nicht so gut gearbeitet zu haben.
Wenn ich mit meinen Prozeduren dazu fertig bin, kann ich gerne ein fertiges und getestetes Include euch zur Verfügung stellen.


Mit freundlichen Grüßen,
Tombi
Bild Bild Bild
Intel Pentium 4 630 (3 GHZ)
Antworten