Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   bluetooth comports mit LAZARUS (https://www.delphipraxis.net/212031-bluetooth-comports-mit-lazarus.html)

joacim 6. Dez 2022 10:41

bluetooth comports mit LAZARUS
 
Es geht um eine Portierung eines Delphi-Projekts nach Lazarus.
Ich verwende LAZARUS 2.0.6 und darin LazSerial.
An meinem PC (WIN10) steckt ein USB zu Bluetooth-Adpater.

Im Gerätemanager erscheinen dazu 2 Ports
z.B. COM5, COM6.
Soweit ich weiß wird lesen und schreiben auf den COM-Ports getrennt verwaltet (?)

Da ich in meiner Anwendung nicht weiß an welchem Port das „richtige“ Gerät angeschlossen ist
und ev. noch andere Geräte über Bluetooth gekoppeöt sei können, versuche ich nacheinander alle
Ports zu öffnen un dann auf einen bestimmten string zu warten.
Bei normalen (nicht Bluetooth) Ports klapp das auch wunderbar.

Bei einem der Bluetooth-Ports dauert da öffnen (comPortxxx.open) ca. 20 Sekunden, bei den anderen Ports gefühlt unter einer Sekunde. Die Ports mit der langen Zeit enden dann in einer exception.

Gibt es eine Möglichkeit die „bösen “ Ports vorab zu erkennen?

Zusatz: Bei einem neuen pairing (BT Gerät vorher entfernt) erscheinen 4!! COM-Ports im Gerätemanageer

itblumi 6. Dez 2022 17:10

AW: bluetooth comports mit LAZARUS
 
Hallo joacim,

du könntest dies über die Registry (HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM) heraus finden oder du versuchst den "user-friendly name" über SetupDi Funktionen und der WMI zu ermitteln und vergleichst diese dann. Die erste Variante sollte aber deutlich einfacher umzusetzen sein.

joacim 7. Dez 2022 05:48

AW: bluetooth comports mit LAZARUS
 
Danke.
Die Anwendung läuft unter Delphi seit Jahren, daher hatte ich nicht mit sowas gerechnet.
Natürlich habe ich die ComPort-Unit austauschen müssen und ich habe jetzt auch gefunden,
was man machen muss:

comPort1.SynSer.DeadlockTimeout := 5000; {default 30000 ms}

damit wird dann der Versuch den "falschen" Bluetooth Port zu öffne nach 5 Sekunden beendet.


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