vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

C# Ecke
C# Bluetooth und virtuelle COM Ports 
Autor: Woellmi
Datum: 24.01.19 17:41

Hallo zusammen,

aktuell habe ich ein Gerät, welches über über eine serielle
Schnittstelle verfügt mit einem Bluetooth Adapter ausgestattet.
Das bisher verwendete Programm, welches die serielle Schnittstelle
nutzt, soll erstmal weiterhin genutzt werden. Dazu verwende ich das
Modul der Fa. Hantz "BT-BluSer1H".

Im Ergebnis funktioniert erstmal alles Prima.
Also BT Adapter konfiguriert, auf die RS232 meines Gerätes gesteckt,
auf dem PC den Adapter gesucht und verbunden. Nach erfolgter Verbindung
werden 4 virtuelle COM Ports angelegt (Bluetooth erweiterte Eigenschaften COM-Ports).
Einfach den korrekten Port auswählen (SPP) und los geht es. Toll!

Nun möchte ich aber, dass in meinem Programm nur der COM Port angezeigt wird, der auch
tatsächlich das SPP-Protokoll unterstützt, damit der Anwender nur die wirklich sinnvollen
Ports zur Auswahl hat. Und hier scheitere ich aktuell.

Im Gerätemanager werden unter Ports zwar alle Ports korrekt gelistet, aber man sieht nur:
 
'z.B.:
Standardmäßige Seriell über Bluetooth Verbindung (COM6)
Standardmäßige Seriell über Bluetooth Verbindung (COM7)
Standardmäßige Seriell über Bluetooth Verbindung (COM8)
Standardmäßige Seriell über Bluetooth Verbindung (COM9)
Erst im Dialog "weitere Bluetooth Optionen => COM Anschlüsse"
wird zusätzlich z.B. COM7 Ausgehend Name 'SPP slave'
COM7 Ausgehend Name 'SPP slave'
bei dem nutzbaren Port angezeigt.

Jetzt habe ich mir über den 'ManagementObjectSearcher' alle Eigenschaften
der verfügbaren COM-Ports anzeigen lassen, finde jedoch diese Erweiterung
'SPP slave' nirgends.

using (var searcher = new ManagementObjectSearcher
      ("root\\CIMV2", "SELECT * FROM Win32_PnPEntity"))
{
   foreach (ManagementObject queryObj in searcher.Get())
   {
     try
     {
        if (queryObj["Caption"].ToString().Contains("(COM"))
        {
           Console.WriteLine("");
           Console.WriteLine("Caption: {0}", queryObj["Caption"]);
           Console.WriteLine("Description: {0}", queryObj["Description"]);
           Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]);
           Console.WriteLine( _
             "--------------------------------------------------------");
           foreach (PropertyData prop in queryObj.Properties)
           {
             Console.WriteLine(" => {0}: {1}", prop.Name, prop.Value);
           }
         }
      }
      catch { };
   }
}
Console.WriteLine("");
Console.WriteLine("Press enter to exit");
Console.ReadLine();
Hat jemand eine Idee wie man an die gewünschte Info gelangt?
Dann könnte die Auswahl derart eingegrenzt werden, dass wirklich nur SPP-Ports bei Bluetooth
gelistet werden und man spart sich die ewige Klickerei.

Vielen Dank schon jetzt.

Tschaui
Woellmi

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: C# Bluetooth und virtuelle COM Ports 
Autor: Spike40
Datum: 01.02.19 07:07

Hallo,

ich würde mal das probieren:
https://dotnetcodr.com/2014/11/25/finding-all-wmi-class-properties-with-net-c/

Es sieht ja so aus, als hättest Du schon das richtige Objekt, jedoch kennst Du die Eigenschaft nicht.
Ich würde mir eine Möglichkeit suchen und alle Eigenschaften des Objekts und aller eventuell vorhandenen Kindobjekte ausgeben.
Wenn man das im Windows sieht, wird es wohl in irgendeiner Eigenschaft des ManagementObject stehen.

Man kann nicht verlieren,
entweder man gewinnt oder man lernt

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: C# Bluetooth und virtuelle COM Ports 
Autor: Woellmi
Datum: 01.02.19 22:02

Hi Spike40,

ja, das sieht gut aus. Ich werde mal sehen, ob ich hier
fündig werde.

Ich habe zwischenzeitlich mal "32feet.net" über den NugetPackageManger gefunden.
Hier komme ich an die gewünschten Infos.
Nur eben funzt das Ganze natürlich nur über den gefundenen Bluetooth Adapter,
also genau aus der anderen Richtung.

Die erste Suche, also der erste Post sucht über die virtuellen COM Ports und
da fehlt die Eigenschaft (muss also noch suchen) über die ich an den verbunden
Bluetooth Adapter gelange.
Suche ich über "32feet.net" (using InTheHand.Net.Bluetooth und
using InTheHand.Net.Sockets) rüchwärts vom Adapter beginnend, so finde ich die GUID
für die SPP Verbindung, doch fehlt mir noch der Bezug zum COM-Port.
Das läuft dann irgendwie über die registry.
Ich werde mal weiter probieren und dann mal posten, wenn ich irgendwie näher ran gekommen bin.

Danke für den tipp, mal sehen ob darüber die "Brücke" gefunden werden kann.

Viele Grüße

Tschaui
Woellmi

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel