![]() |
Datenaustausch über USB Schnittstelle
Welche Möglichkeiten habe ich in Delphi für den Datenaustausch über die USB Schnittstelle???
Gibt es vielleicht ähnlich wie bei Sockets zB OnRead, OnWrite Events??? Wäre super wenn mir jemand ein Demo bereitstellen könnte! Hab bis jetzt leider noch kein geeignetes gefunden. mfg Cu00 :bouncing4: |
Re: Datenaustausch über USB Schnittstelle
Was möchtest du genau machen ?
Wenn du einen Seriellen Port auslesen willst ohne über einen Seriellen Driver zu gehen, versuchs mal mit http:\\ ![]() dort kannst du dir auch die Treiber und eine Komponente für die DLL Version ziehen. mfg Rumpi |
Re: Datenaustausch über USB Schnittstelle
Hi,
Soweit ich weiß, muss man ne USB Schnittstelle genauso handhaben wie eine Serielle. Is ziemlich kompliziert, sich da reinzuarbeiten. Hab mal mit meinem Onkel was versucht. Wir haben uns nen normalen COMPort- Stecker genommen, und ne Funkuhr. Da war zum Glück ne Anleitung dabei welche Anschlüsse an der Uhr man per Kabel an welche Stelle am ComStecker löten muss. Das Problem ist dabei (zumindest war es das damals noch), man muss erstmal wissen welche Schnittstelle man überhaupt ansprechen will. Die haben dann Hex- Adressen. Ich glaube die beiden COMs hatten damals 2F8 und 3F8. Ich weiß nicht ob wir das damals mit Assembler gemacht haben, auf jeden Fall mussten wir wirklich für jedes einzelne Bit was wir senden wollten die Schnittstelle ansprechen. Und man musste wissen auf welcher Leitung das Signal versendet werden musste. Man muss dann jedes mal sich drum kümmern, dass man Strom auf die Leitung bekommt und ihn auch wieder ausmacht. Leider weiß ich nicht mehr, wie wir damals rausgefunden haben ob die Uhr uns ein Signal geschickt hat (wir wollten die Zeit auf dem PC anhand der Funkuhr umstellen). Das war noch in TP 7. Jedenfalls - und damit komme ich zum nächsten Punkt - hat die Uhr das nicht lange mitgemacht. Du musst nämlich höllisch aufpassen, dass du zur richtigen Zeit auf der richtigen Leitung den Strom anstellst. War bei uns nicht so. Wir haben nämlich den Plan beim Löten falschrum gehalten :oops: :oops: :oops: und haben eins der ersten Signale an die falsche Stelle der Uhr geschickt. Naja, war wohl total falsch, denn die Uhr zeigte zwar noch was an, hat seit dem aber nie mehr auf irgendwelche Signale vom PC reagiert. Ich weiß nicht wie robust USB- Geräte da heutzutage sind, aber es kann wahrscheinlich auch da noch irgendwie passieren dass du bspw die Datenschnittstelle deiner Digicam zu Grunde richtest. Ich sag mal so, wenns funktioniert und man ne vernünftige Doku dazu hat, machts nen riesen Spaß, aber sone Doku zu finden is nich leicht. Ich würde dir also abraten, dass irgendwie selber aufzubauen. Wenn du die Möglichkeit dazu hast, versuche lieber darauf auszuweichen dass du irgendwelche Treiber ansprichst. Noch kurzer Hinweis; das is bei mir -ich schätz mal- 2 oder 3 Jahre her, das meiste weiß ich nicht mehr. Und genaues darüber, wie das heute so aussieht, kann ich dir leider auch nicht sagen. Aber das waren so meine Erlebnisse die ich damit hatte. Bis dann, S - tefano |
Re: Datenaustausch über USB Schnittstelle
Hallo!
Zunächst eine wichtige Bemerkung: USB ist nicht nur eine Hardware-Schnittstelle (Stecker mit Leitungen), sondern auch ein hochkomplexes Treibersystem. Das System erkennt automatisch, wenn etwas angestöpselt oder herausgezogen wird und läd bzw. entläd dann auch die passenden Treiber. Nebenbei: Bei mir trat mal ein Wackelkontakt auf. Jedesmal, wenn es wackelte, sagte Defrag: "Dateisystem geändert, Neustart" - defragmentieren unmöglich. Klar, TReiber laden/entladen ändert die Swap-Datei. Auf sowas muß man erst mal kommen! Eine Gefahr für die Hardware sehe ich nicht. USB hat nur noch 4 Leitungen (die serielle hatte 9 oder 25), das sind Spannung, Masse, Daten+ und Daten-. Wer sich an "zugelassene", also den Spezifikationen entsprechende, Kabel hält, kann nichts falsch machen. Zum Gerät sollte doch wohl ein Kabel gehören - außerdem gibt es die Dinger in jedem Kaufhaus. Sogar im Bereich "Branchenfremde Aktionangebote" im Lebensmittel-Supermarkt habe ich schon sowas gefunden. Bitte darauf achten, daß an einer Seite der flache A-Stecker und am anderen Ende der fast quadratische B-Stecker ist. A kommt in den Rechner (oder Hub-Ausgang), B in das Gerät (oder Hub-Eingang). Die zugehörigen Buchsen sollten nach Spezifikation NUR in den Geräten eingebaut sein, aber nicht am Kabel oder als Adapter vorhanden sein! Neben der Software sollte einem USB-Gerät auch ein Treiber beigelegt werden. Viele Treiber sind in Windows bereits vorhanden oder müssen nur bis Win98se installiert werden. Da beginnt unser Problem: manche Hersteller integrieren die Treiber in ihr tolles Anwenderprogramm. Andere betrachten die Schnittstellen zwischen Treiber und Anwenderprogramm als "wertvolle Geschäftsgeheimnisse" - Essig mit Selberprogrammieren. Man müßte (Achtung: ist ILLEGAL!) den Treiber analysieren (disassemblieren), um die Schnittstellen rauszukriegen. Das isr, abgesehen von der Rechtslage, ein sinnloses Unterfangen - wer will da durchsteigen? Bei der irgendwo erwähnten Digicam kommt es auf die Konstruktion an. Fotoapparate (Standbilder) werden oft als Scanner über die genormte TWAIN-Schnittstelle angesprochen - was ist der Unterschied zwischen einem Scanner, der auf Kommando abtastet; und einer Kamera, die auf Kommando einen Speicher ausliest? Leider weiß ich nicht, wie digitale Videokameras ihre Ergebnisse ausgeben. Eine Möglichkeit: Die Kamera wird wie eine Festplatte betrieben und man kann mit dem normalen Windows-Explorer, unter DOS per XCOPY, mit einem eigenen Programm zum kompletten Kopieren und Verifizieren, oder mit sonstigen Methoden die Dateien kopieren. Wer also die Bilder auslesen will, kann ein Scannerprogramm bauen. Damit können Scanner und Kameras angesprochen werden. Vorteil: Wenn man (auch als Freeware) ein besseres Programm als das zum Gerät gehörende findet, kann man es problemlos einsetzen und spart das Programmieren. Sollte zu irgendeinem Gerät (Controller zum Selbstbau z.B.) kein Treiber vorhanden sein, wird mit Sicherheit eine Doku mitgeliefert. Allerdings: mit Delphi kann man keine Treiber schreiben! Irgendwo kam mir mal eine Anleitung für einen USB-Baustein unter, ich weiß aber nicht mehr, wo das war. Dieser Baustein war für einen Joystick gedacht, 2 Analog- und mehrere Digitaleingänge - Ausgänge weiß ich nicht mehr. Kauft man den Stein lose, kann man irgendwas zur Ein- und ggf. Ausgabe realisieren. Möglich ist, daß sowas als Joy erkannt wird und dann auch so abgefragt wird - keine Ahnung! Grundsätzlich ist es also nicht möglich, am USB einfach 'nen Transistor und ein Relais zu hängen (an Ser und Par geht das). Controller (und Treiber) müssen immer sein. Gruß Dietmar Brügendiek |
Re: Datenaustausch über USB Schnittstelle
Hello,
bei meiner Suche nach Möglichkeiten meine Digitalcamera am USB zu identifizieren, habe ich auch feststellen müssen, das es keine Componenten oder DLLs gibt, die einem USB-mäßig unter die Arme greifen. Das einzige, was ich in dieser Richtung gefunden habe, ist der "WinDriver" von Jungo ( ![]() Gruß Wormid |
Re: Datenaustausch über USB Schnittstelle
Aus Sicht eines Programmes gibt es den USB ueberhaupt nicht.
Man kommuniziert mit Geraeten. USB ist in Unterklassen eingeteilt. Die meisten Unterklassen haben einen fertigen Windows-Klassentreiber. Fuer die Unterklasse HID gibt es ein extensives API, das von meiner HID Komponente erschlossen wird. die uebliche Downloadadresse ![]() Die meisten Unterklassen bieten kein eigenes USB-API sondern werden ueber andere APIs angesprochen. Ein USB Stick ist einfach eine Wechselplatte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz