AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Datenaustausch über USB Schnittstelle
Thema durchsuchen
Ansicht
Themen-Optionen

Datenaustausch über USB Schnittstelle

Offene Frage von "Cu00"
Ein Thema von Cu00 · begonnen am 11. Aug 2003 · letzter Beitrag vom 5. Sep 2003
Antwort Antwort
Cu00

Registriert seit: 11. Aug 2003
1 Beiträge
 
#1

Datenaustausch über USB Schnittstelle

  Alt 11. Aug 2003, 11:15
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
  Mit Zitat antworten Zitat
Rumpi

Registriert seit: 26. Aug 2003
Ort: Berlin
72 Beiträge
 
#2

Re: Datenaustausch über USB Schnittstelle

  Alt 26. Aug 2003, 21:29
Was möchtest du genau machen ?

Wenn du einen Seriellen Port auslesen willst
ohne über einen Seriellen Driver zu gehen,
versuchs mal mit

http:\\www.ftdichip.com

dort kannst du dir auch die Treiber und eine Komponente
für die DLL Version ziehen.

mfg Rumpi
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Datenaustausch über USB Schnittstelle

  Alt 27. Aug 2003, 00:05
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 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
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#4

Re: Datenaustausch über USB Schnittstelle

  Alt 27. Aug 2003, 01:01
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
Dietmar Brüggendiek
  Mit Zitat antworten Zitat
Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Datenaustausch über USB Schnittstelle

  Alt 27. Aug 2003, 10:51
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 (Jungo.com), der einem einen generischen Treiber als Schnittstelle für den USB-Port zur Verfügung stellt. Damit kann man dann auch in Delphi "Treiber" schreiben, die ein Gerät am USB steuern können. Allerdings ist die Software sehr teuer... scheint aber sehr gut zu sein.

Gruß

Wormid
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: Datenaustausch über USB Schnittstelle

  Alt 5. Sep 2003, 13:06
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 http://www.delphi-gems.com/controls.php ist leider gerade offline. ihc verschicke sie aber auch direkt (robert_marquardt@gmx.de).
Die meisten Unterklassen bieten kein eigenes USB-API sondern werden ueber andere APIs angesprochen. Ein USB Stick ist einfach eine Wechselplatte.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz