Abo
  • Services:
Anzeige
Raspberry Pi mit Bluetooth-Dongle und Breadboard
Raspberry Pi mit Bluetooth-Dongle und Breadboard (Bild: Golem.de)

Das Central-Modul

Anzeige

Die Bibliothek Noble funktioniert ganz ähnlich wie Bleno. Es beginnt mit der Suche nach BluetoothLE-Geräten und dem Aufruf unserer Funktion discover(), wenn das Gerät gefunden wurde.

  1. var noble = require('noble');
  2.  
  3. noble.on('discover', discover);
  4.  
  5. noble.startScanning([], false);

Der startScaning()-Methode kann ein Array mit Service-UUIDs gegeben werden, um gezielt nur jene Peripheral-Module zu finden, die auch mit dem Central-Skript verwendet können. Darauf verzichten wir. Der zweite Parameter bestimmt, ob gefundene Peripherals mehrfach der discover()-Funktion gemeldet werden sollen (false) oder nur einmal (true).

  1. function discover(peripherial) {
  2.  
  3. peripherial.connect(function(error) {
  4. if(error) {
  5. return;
  6. }
  7.  
  8. peripherial.discoverServices([], function(error, services) {
  9. if(error) {
  10. return;
  11. }
  12.  
  13. for(var i = 0, l = services.length; l > i; i++) {
  14.  
  15. var service = services[i];
  16.  
  17. if(SERVICE == service.uuid) {
  18. handleService(service);
  19. }
  20. }
  21. });
  22. });
  23. };

Die discover()-Methode ist recht übersichtlich. Findet Noble ein Peripheral, übergibt es der Methode ein entsprechendes Objekt. Über dieses Objekt verbinden wir uns mit ihm per connect() und fragen die verfügbaren Services ab. Haben wir eine Liste der Services erhalten, suchen wir nach dem Service, dessen UUID unserem oben definierten LedService entspricht. Ist die Suche erfolgreich, wird unsere Funktion handleService() aufgerufen.

Einen Tick schneller und energiesparender

Auch wenn diese Zeilen nicht allzu schwierig sind - es geht noch einfacher: Wenn das Peripheral den Service als Teil der Erkennung ausgibt, kann das Central-Modul bereits an dieser Stelle filtern. Im Peripheral-Skript muss die UUID im Array der Methode bleno.startAdvertising('led', ['Die_UUID']) angegeben werden. Dann kann im Central-Skript noble.startScanning(['Die_UUID'], false) ebenfalls die UUID des Services im Array angegeben werden und wir wissen sofort, ob es unser Peripheral ist. Eine Verbindung zu jedem erkannten Gerät und der nachfolgende Test auf die Services kann dann entfallen, es ist nur eine Verbindung zu unserem Gerät notwendig.

In unserer aktuellen Implementierung verzichten wir darauf, um die API besser vorzustellen.

 LED an- und ausschaltenDie Characteristics abfragen 

eye home zur Startseite
Panzergerd 25. Sep 2015

Inzwischen gibt es bei BlueZ auch GATT-Support via D-Bus. Mit den Beispielprogrammen...

pUiE 10. Jun 2014

Um eine Verbindung von Android Smartphone zu µC herzustellen (zu testzwecken...

Tylon 25. Apr 2014

Sehr schön! An den Threadersteller: wer benötigt auch dB als Angabe bei den...

MarioWario 24. Apr 2014

Ja, im Bereich der Kraft-/Leistungsmesser ist ANT+ noch wichtig (momentan; http://www...



Anzeige

Stellenmarkt
  1. VITRONIC Dr.-Ing. Stein Bildverarbeitungssysteme GmbH, Wiesbaden
  2. FILIADATA GmbH, Karlsruhe (Home-Office)
  3. über Mentis International Human Resources GmbH, Nordbayern
  4. STAHLGRUBER GmbH, Poing, Raum München


Anzeige
Top-Angebote
  1. (u. a. Laptops, Werkzeuge, Outdoor-Spielzeug, Grills usw.)
  2. (u. a. Bose Soundlink Mini Bluetooth Speaker II 149,90€, Bose SOUNDSPORT PULSE WIRELESS 174,90€)

Folgen Sie uns
       


  1. ZTE

    Chinas großes 5G-Testprojekt läuft weiter

  2. Ubisoft

    Far Cry 5 bietet Kampf gegen Sekte in und über Montana

  3. Rockstar Games

    Waffenschiebereien in GTA 5

  4. Browser-Games

    Unreal Engine 4.16 unterstützt Wasm und WebGL 2.0

  5. Hasskommentare

    Bundesrat fordert zahlreiche Änderungen an Maas-Gesetz

  6. GVFS

    Windows-Team nutzt fast vollständig Git

  7. Netzneutralität

    Verbraucherschützer wollen Verbot von Stream On der Telekom

  8. Wahlprogramm

    SPD fordert Anzeigepflicht für "relevante Inhalte" im Netz

  9. Funkfrequenzen

    Bundesnetzagentur und Alibaba wollen Produkte sperren

  10. Elektromobilität

    Qualcomm lädt E-Autos während der Fahrt auf



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Panasonic Lumix GH5 im Test: Die Kamera, auf die wir gewartet haben
Panasonic Lumix GH5 im Test
Die Kamera, auf die wir gewartet haben
  1. Die Woche im Video Scharfes Video, spartanisches Windows, spaßige Switch

Asus B9440 im Test: Leichtes Geschäftsnotebook liefert zu wenig Business
Asus B9440 im Test
Leichtes Geschäftsnotebook liefert zu wenig Business
  1. ROG-Event in Berlin Asus zeigt gekrümmtes 165-Hz-Quantum-Dot-Display und mehr

Elektromobilität: Wie kommt der Strom in die Tiefgarage?
Elektromobilität
Wie kommt der Strom in die Tiefgarage?
  1. Elektroauto Tesla gewährt rückwirkend Supercharger-Gratisnutzung
  2. Elektroautos Merkel hofft auf Bau von Batteriezellen in Deutschland
  3. Strategische Entscheidung Volvo setzt voll auf Elektro und trennt sich vom Diesel

  1. Re: Es ist übrigens das erste Far Cry, das in den...

    quineloe | 00:39

  2. Re: Was habe ich von Netzneutralität als Kunde?

    tsp | 00:37

  3. Re: Noch ein Argument

    dieser_post_ist... | 00:36

  4. Re: Mit Stream On gibt es noch ein ganz anderes...

    dieser_post_ist... | 00:30

  5. Re: Gesundheitsrisiken?

    xProcyonx | 00:28


  1. 17:40

  2. 16:40

  3. 16:29

  4. 16:27

  5. 15:15

  6. 13:35

  7. 13:17

  8. 13:05


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel