Bluetooth - Ansprechen / Ansteuern von BLE-Geräten

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Takafusa.

    Bluetooth - Ansprechen / Ansteuern von BLE-Geräten

    Hallo Leute,

    ich habe die Frage (siehe unten) schon ein in einem anderen Forum gestellt, daher bitte nicht wundern, wenn das dem einem oder anderem
    bekannt vorkommt, aber ich wollte das jetzt nicht noch einmal umschreiben (daher nur Copy & Paste) :)

    Vielleicht hat ja jemand einen heissen Tip zum Thema Bluetooth LE.

    Ich habe einige Geräte , die ich über Bluetooth ansprechen möchte bzw. ich will mich damit mal beschäftigen.

    Seit Tagen versuche irgendwie , einfach nur Blutooth-Geräte , die an meinem Windows PC angeschlossen sind (Kopplung geht schon, aber das ist ja Windows nativ) anzusprechen.

    Es gibt da Verweise , die ich verwenden kann. (Habe ich aus einen Beispiel DaydreamsUWP_VB)

    Imports Windows.Devices.Bluetooth
    Imports Windows.Devices.Bluetooth.GenericAttributeProfile
    Imports Windows.Devices.Enumeration
    Imports Windows.UI.Core

    Aber ich kann zum verrecken diese Verweise nicht finden geschweige denn zuweisen (Ich weiss auch noch nicht einmal , ob das unter reinem VB.NET funktionieren würde).

    Mein Kopf ist schon ganz weich von der Sucherei im Internet. Ich habe schon einiges ausprobiert, aber ich möchte mir mein VS 2017 auch nicht völlig verhunzen.

    Hat jemand einen Tip oder Link für mich, wie ich das als "normale" Desktop-Anwendung realisieren kann ?

    Ich muss natürlich auch dazu sagen, daß ich kein reiner Entwickler bin, sondern ein Admin , der seit 20 Jahren in VB-NET programmiert. Ich habe mir ein eigenes
    Framework geschrieben und auch einen hochflexiblen TCP-Server mit eigenem Befehlssatz und einen zugehörigen Script-Client , also ich bin nicht ganz unbeleckt,
    aber Bluetooth bzw. BLE ist Neuland für mich.

    Mir würde es für den Anfang reichen, wenn ich erst einmal die Geräte bzw. auflisten kann, bzw. noch besser , wenn das Programm "paarungswillige" Geräte anzeigen würde.

    Vielleicht gibt es ja unter euch jemanden, der mir da weiterhelfen könnte.

    home38 schrieb:


    Imports Windows.Devices.Bluetooth
    Imports Windows.Devices.Bluetooth.GenericAttributeProfile
    Imports Windows.Devices.Enumeration
    Imports Windows.UI.Core


    Naja, das sind ja nur die Imports, die sagen, dass du den Inhalt dieser Namespaces in der aktuellen Datei verwenden kannst, ohne jedesmal den kompletten Namespace auszuschreiben.
    Also z.B:

    VB.NET-Quellcode

    1. 'Ohne Imports:
    2. Class Foo
    3. Inherits System.Windows.Forms.Form
    4. Public Sub New()
    5. Me.Controls.Add(New System.Windows.Forms.TextBox)
    6. Me.Controls.Add(New System.Windows.Forms.Label)
    7. End Sub
    8. End Class
    9. 'Mit Imports:
    10. Imports System.Windows.Forms
    11. Class Foo
    12. Inherits Form
    13. Public Sub New()
    14. Me.Controls.Add(New TextBox)
    15. Me.Controls.Add(New Label)
    16. End Sub
    17. End Class


    In den importierten Namespaces ist nur dann was zu finden, wenn auf Assemblies verwiesen wird, die irgendwas in diesen Namespaces deklarieren.
    Ob du dann einen Import verwendest, macht dabei keinen Unterschied. Wenn du keinen Verweis auf die System.Windows.Forms.dll setzt, dann wirst du Inherits System.Windows.Forms.Form weder vollständig ausgeschrieben verwenden können, noch wenn du Imports System.Windows.Forms hast und dann nur Inherits Form schreibst.

    Die Verwirrung kommt vermutlich daher, dass die Namen der Assemblies und die Namen der Namespaces darin typischerweise übereinstimmen (aber nicht immer!).
    Wenn du den Namespace Windows.Devices.Bluetooth importieren willst, aber der nicht gefunden wurde, dann musst du vermutlih einen Verweis auf Windows.Devices.Bluetooth.dll hinzufügen. Du kannst das einfach mal so versuchen:

    Bei mir wird die Assembly nicht gefunden. Kann also sein, dass es die wirklich nicht gibt, oder dass die bei meinem Visual Studio einfach nicht bekannt ist. Aber das ist ein guter erster Ansatz, der meistens funktioniert.

    Wenn du da aber nichts findest, dann musst du in der Dokumentation suchen, welche Assembly du brauchst.
    Suche einfach nach dem Namespace bei Google. Dann sollte direkt als erstes Ergebnis ein Link zu docs.microsoft.com kommen:
    docs.microsoft.com/en-us/uwp/a…luetooth?view=winrt-19041
    Da suchen wir uns irgendeine Klasse aus, die wichtig aussieht. BluetoothDevice klingt gut.
    docs.microsoft.com/en-us/uwp/a…thdevice?view=winrt-19041
    Und dann siehst du ganz oben, dass..... die "Assembly:"-Zeile fehlt.
    Ja da bin ich jetzt auch baff.
    Bei BigInteger z.B. steht da "Assembly: System.Runtime.Numerics.dll"
    docs.microsoft.com/en-us/dotne…s.biginteger?view=net-5.0
    Ich reiche mal Feedback ein, dass das fehlt.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Hi,

    ich hab noch mal nachgesehen und bin jetzt schon einen klinen Schritt weiter , hatte ich auch selbst drauf kommen können 8o , war doch ganz einfach :

    stackoverflow.com/questions/53…ws-devices-bluetooth-name

    Diese Verweise müssen hinzugefügt werden, dann ist Windows Bluetooth sichtbar, zumindest wird kein Fehler angezeigt.

    C:\Program Files (x86)\Windows Kits\10\UnionMetadata\Windows.winmd
    C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll
    Hallo home38,

    hast du dein Problem gelöst? Wenn ja, vielleicht kannst du mir da helfen. Ich habe das gleiche Problem. Den zweiten Verweis finde ich bei mir nicht.

    Ich habe ein Projekt, welches Bilder in Braille, tastbare Grafiken für Blinde umwandelt. Nun möchte ich ein Brailledisplay, welches aus 48x76 Punkten besteht ansteuern. Ich habe mich in das Theme UWP eingelesen und auch das gleiche Projekt heruntergeladen, welches du oben erwähnt hast. Egal, was ich mache, welche Pakete ich nachinstalliere, ich kann die entsprechenden Namespaces bei mir nicht importieren.

    Ich habe hier im Forum auch schon ein Thema, namens "Daten über Bluetooth senden und empfangen" eröffnet. Dort habe ich auch Hilfe bekommen, aber entweder bin ich zu blöd oder das Thema zu kompliziert. Im Internet habe ich auch gelesen, dass man ein UWP-Projekt in sein Programm integrieren kann, um darüber dann Bluetooth ansteuern zu können. Da funktioniert das mit den Namespaces auch nicht.

    Könntest du mir anhand eines Beispiels zeigen, wie das ganze funktioniert?

    Ich wäre dir sehr dankbar.

    tron25 schrieb:

    Könntest du mir anhand eines Beispiels zeigen, wie das ganze funktioniert?


    Ich habe dir bereits gesagt, was zu tun ist. Wenn ich ein UWP-Projekt erstelle, kann ich ohne Probleme die BT-Sachen importieren. Du sagtest ja du hast Probleme mit der Sehkraft. Also lade dir aus deinem Thread meine Dateianhänge runter, öffne sie in einem Paint-Programm oder in einen Betrachter-Programm das zoomem kann und vergrößere sie, so das du erkennen kannst, was drin ist. Wenn du das wie ich in deinem Thread sagte machst, funktioniert es. Hier wieder ein Screenshot von einen leeren Projekt, keiner der Importe wird bemängelt(diesmal stark vergrößert, klicke auf's Bild für noch größer). Ich habe wieder nur wiederhohlt, was ich schon im deinem Thread sagte.
    Bilder
    • Unbenannt.jpg

      132,71 kB, 1.242×686, 195 mal angesehen