![]() |
Re: Dynamisch ComPort ermitteln...
Das Thema kann ich deshalb nicht dem User überlassen, weil wie ich schon oben ausgeführt hatte, der User damit überfodert sein wird. Ich hab selber den Test gemacht:
Steck mal den USB-Hub an einen anderen USB-Anschluß am PC und das Windows vergibt für die Anschlüsse am Hub bereits andere Nummern. Jetzt wird es immer wiedermal passieren, daß der Anwender halt mal einen anderen USB-Anschluß für seinen Hub wählt und dann müßte er jedesmal wieder neue ComPort-Nr. vergeben?? Das kanns nicht sein.... Es geht auch von da her nicht, weil der Hub in der Zwischenzeit wiedermal abgesteckt wird und unterschiedliche Personen darauf arbeiten werden und das dann jemand den Hub an einen anderen USB-Anschluß anschließt ist vorprogrammiert. Darum mein Posting!! |
Re: Dynamisch ComPort ermitteln...
Zitat:
Es bleibt nur die Moeglichkeit die Geraete via RS232 zu fragen. Wenn sie ein Info-Kommando haben, dann geht es. Von ![]() |
Re: Dynamisch ComPort ermitteln...
Hallo Experten!!
Wenn ich einen Char an den ComPort schicke, wird OnTriggerAvail ausgelöst, wenn der ComPort verfügbar ist. Gibt es einen Trigger der auf das Senden eines Chars reagiert, auch wenn der Port nicht verfügbar ist?? LG Thomas |
Re: Dynamisch ComPort ermitteln...
Hallo Bingo72,
imho dürfte ein Open auf einen nicht vorhandenen (aktiven?) Port eine Exception auslösen. Er läßt sich gar nicht erst öffnen. Somit erübrigt sich jedes weitere Ereignis. Ist der Port vorhanden, so kannst du ihn sicher öffnen. Danach stelt sich die Frage, wie erkenne ich meine Endgeräte. Ich rate aber zur Vorsicht mit dem Senden auf den Port so lange nicht klar ist, was dran hängt. Du kannst nicht wissen was dein Kunde alles an den Ports für Endgeräte hat. Können die deine Prüfzeichen ab? Was machen die damit? Du kannst sicher alles voreinstellen (Baud, Parität ...) wenn du glaubst den richtigen gefunden zu habe. Eine Bestätigung durch den User ist imho nie verkehrt. Also wie gesagt, senden deine Geräte automatisch nach dem Connecten infos, so kannst du recht sicher das Endgerät erkennen und deine automatische Auswahl treffen ohne einen eigenen Init. Ich hoffe nur, dein Kunde nutzt nicht noch andere Endgeräte gleicher Machart für andere Anwendungen an den Ports (z.B. 2. GPS-Maus). Dann klaust du unter Umständen anderen die Hardware :mrgreen: Gruß oki |
Re: Dynamisch ComPort ermitteln...
Hallo Oki!!
Deine Bedenken sind berechtigt und einen kurzen Auswahl-Dialog einzubauen ist sicher eine Überlegung wert. Andererseits wenn jemand wirklich z.b. eine 2.GPS-Maus angeschlossen hat....naja??!! :wink: LG Thomas |
Re: Dynamisch ComPort ermitteln...
Da ich noch relativ neu auf dem Gebiet bin wollte ich auch noch Fragen, wie man am Besten weitere Infos über den jeweiligen Sensor herausfindet, um sie unterscheiden zu können?? Passiert das mit einer Funktion die AsyncPro zur Verfügung stellt oder wie sonst??
Bitte um sachdienliche Hinweise erbeten an Kripo... :stupid: LG Thomas |
Re: Dynamisch ComPort ermitteln...
Delphi-Quellcode:
Damit ermittel ich alle Comports im System.
sl := TStringlist.Create;
try reg := TRegistry.Create; try reg.RootKey := HKEY_LOCAL_MACHINE; reg.OpenKeyReadOnly('hardware\devicemap\serialcomm'); reg.GetValueNames(sl); reg.CloseKey; finally FreeAndNil(reg); end; finally FreeAndNil(sl); end; |
Re: Dynamisch ComPort ermitteln...
Hallo!!
Hab jetzt mal den Code ausprobiert und dann die StringList ausgelesen....meine besetzten Com-Schnittstellen sind COM3 und COM6, bekomme aber Serial0, Serial2 und Serial3 zurück...irgendwas paßt nicht??!! LG Thomas |
Re: Dynamisch ComPort ermitteln...
Sorry hatte die falsche Funktion erwischt, da fehlte noch einiges ...
Delphi-Quellcode:
sl := TStringlist.Create;
try reg := TRegistry.Create; try reg.RootKey := HKEY_LOCAL_MACHINE; reg.OpenKeyReadOnly('hardware\devicemap\serialcomm'); reg.GetValueNames(sl); SetLength(fComPort, Length(sl)); for i := 0 to sl.Count - 1 do begin fComPort[i].Name := reg.ReadString(sl[i]); fComPort[i].Details := sl[i]; end; reg.CloseKey; finally FreeAndNil(reg); end; finally FreeAndNil(sl); end; |
Re: Dynamisch ComPort ermitteln...
Danke!!
fComPort is was?? String?? Array?? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 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 by Thomas Breitkreuz