Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bei CPort-Kompo ziehen des USB-Steckers abfangen (https://www.delphipraxis.net/60650-bei-cport-kompo-ziehen-des-usb-steckers-abfangen.html)

Poolspieler 10. Jan 2006 15:25


Bei CPort-Kompo ziehen des USB-Steckers abfangen
 
Hi,
ich habe ein schwierige Aufgabe:
Ich benutze einen FTDI-Baustein (einen USB-Seriell-Wandler)
Dieser taucht in der Systemsteuerung als COM-Port auf.

--> Deshalb kann ich diesen Baustein wunderbar über die CPort-Komponente ansprechen.
So weit so gut.

ABER: Ich rechne leider auch mit DAUs, weshalb ich das ziehen des USB-Steckers abfangen
möchte/muss.
Aktuell kann ich mein Programm nur noch über den Taskmanager beenden, wenn der USB-Stecker
während der Kommunikation gezogen wird. Das ist unprofessionell und deshalb möchte ich
im Fall des Ziehen des USB-Stecker zumindest eine Meldung ausgeben und das Programm sauber
beenden. Noch besser währe natürlich, den Port dann neu zu inizialisieren.

Leider habe ich gerade überhaupt keine Idee, wie ich dies machen könnte.
Mit der Komponente habe ich schon rumgespielt - bisher ohne Ergebnis.

Gruß und danke,
Poolspieler

Sepp 10. Jan 2006 16:33

Re: Bei CPort-Kompo ziehen des USB-Steckers abfangen
 
Hallo Poolspieler,

welchen Chip benutzt Du genau.

Es gibt auch die Möglichkeit die Chips über einen direkten Treiber anzusprechen.

D2XX Treiber


Auf alle Fälle soltest Du mal die Datenblätter der Chips sichten.

Vieleicht kannst Du ja eine der Handshakeleitungen bzw. RI oder andere Statussignale
dazu benutzten um das ziehen bzw. das Stecken des USB Ports zu signalisieren.
Der Chip gibt ein Signal PWREN aus wenn er von Seiten des USB konfiguriert ist.
Vieleicht kanst Du damit einen der Handshakeleitungen umschalten DTR wäre wohl das beste.

Grüße

Robert Marquardt 10. Jan 2006 17:10

Re: Bei CPort-Kompo ziehen des USB-Steckers abfangen
 
http://jedi-apilib.sf.net die Module win32api und scapi ziehen.
scapi enthaelt ein Beispiel wie man die COM-Ports enumeriert.

Von http://reweb.fh-weingarten.de/toolbox/ kann man "Serial" bekommen das inzwischen das Stoepseln bei COM Ports unterstuetzt.

Das soltle als Info wie es geht ausreichen.

Poolspieler 10. Jan 2006 18:09

Re: Bei CPort-Kompo ziehen des USB-Steckers abfangen
 
Hi,
ich benutze den FT245BM Baustein.

@Sepp:
Mit den D2XX-Treiber habe ich angefangen zu testen, doch die Stabilität
hat sehr zu wünschen übrig gelassen. Auch mit diesen Treibern gab es
Problem beim ziehen/stecken des USB-Geräts. Ansonsten waren diese Treiber
natürlich schöner, weil das USB-Gerät mit der wirklichen Funktion und einem
sinnvollen Namen im Gerätemanager steht...
Es sind allerdings anfang dieses Jahres neue FTDI-Treiber rausgekommen
(die sind auch WINXP-Zertifiziert...)
Mit den neuen (falls es auch D2XX gibt) habe ich noch nicht getestet.

@Robert:
Die Sache mit den APIs habe ich mir angesehen - es ist allerdings für mich
recht viel Aufwand, mich jetzt in dieses Thema einzuarbeiten (obwohl es
mit hoher Wahrscheinlichkeit der bessere Weg wäre...) Die Zeit habe ich aber
leider gerade nicht :-(
Das Demo hab ich leider nicht zum laufen bekommen, weil eine jvcl.inc fehlte
keine Ahnung, was das ist bzw. wo ich es herbekomme - egal.
--> Dein zweiter Tip ist der entscheidende für mich! Diese TSerial-Komponente
scheint GENAU für mein Projekt zu passen. Ich habe dem Autor eine kurze Anfrage
per Mail gestellt - bei positiver Antwort werde ich mir die Kompo kaufen (bzw.
eben die Toolbox...)

Vielen Dank für eure Antworten,
Poolspieler

P.s.: Wenn Ihr wollt, kann ich meine (eventuellen) Erfahrungen mit der TSerial-Komponente
hier später noch posten...???

Sepp 10. Jan 2006 22:52

Re: Bei CPort-Kompo ziehen des USB-Steckers abfangen
 
Hallo Poolspieler,

soviel ich mitbekommen habe, gibt es leider noch keinen zertifizierten D2XX Treiber.
Mich würden Deine Erfahrungen auf jeden Fall interessieren. Möchte mit dem Chip ebenfalls
in naher Zukunft ein Design beginnen. Vieleicht können wir ja per PN in Kontakt bleiben. :)

Grüße

DerDan 11. Jan 2006 08:34

Re: Bei CPort-Kompo ziehen des USB-Steckers abfangen
 
Welche Komponente hast du den jetzt im Einsatz?


Für CPort 3.0 hab ich in meinem Terminal Program mal was nachgerüstet um beim Ziehen des USB Adapters den Port zu schließen!


Dazu hab ich den TJvDeviceChangedPlus der JCL Benutzt! funktioniert soweit ganz gut


mfg DerDan

Robert Marquardt 11. Jan 2006 08:45

Re: Bei CPort-Kompo ziehen des USB-Steckers abfangen
 
Die Komponente hatte ich ja ganz vergessen (bei der JVCL ist dann auch jvcl.inc dabei).
Letzlich ist das alles von mir :-)

Poolspieler 11. Jan 2006 10:55

Re: Bei CPort-Kompo ziehen des USB-Steckers abfangen
 
Ich habe mir gerade die TSerial-Kompo bestellt - wenn ich sie getestet habe, werde ich posten, wie das ganze funktioniert hat.
@Sepp: Du kannst mir gern schreiben...
@Robert: Danke für Deinen Hinweis, wenn ich mal wieder mehr Zeit habe, werde ich mir die Sache nochmal anschaun... ;-)

Gruß,
Poolspieler


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 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