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. operational services GmbH & Co. KG, Berlin, Dresden
  2. über JobLeads GmbH, Zürich
  3. Detecon International GmbH, Dresden
  4. dSPACE GmbH, Paderborn


Anzeige
Blu-ray-Angebote
  1. 49,99€ mit Vorbesteller-Preisgarantie
  2. Einzelne Folge für 2,99€ oder ganze Staffel für 19,99€ kaufen (Amazon Video)

Folgen Sie uns
       


  1. Auftragsfertiger

    Intel zeigt 10-nm-Wafer und verliert Kunden

  2. Google Home Mini

    Google plant Echo-Dot-Konkurrenten mit Google Assistant

  3. Drei Modelle vorgestellt

    Elektrokleinwagen e.Go erhöht die Spannung

  4. Apple iOS 11 im Test

    Alte Apps weg, Daten weg, aber sonst alles gut

  5. Bitkom

    Ausbau mit Glasfaser kann noch 20 Jahre dauern

  6. Elektroauto

    Nikolas E-Trucks bekommen einen Antrieb von Bosch

  7. HHVM

    Facebook konzentriert sich künftig auf Hack statt PHP

  8. EU-Datenschutzreform

    Bitkom warnt Firmen vor Millionen-Bußgeldern

  9. Keybase Teams

    Opensource-Teamchat verschlüsselt Gesprächsverläufe

  10. Elektromobilität

    In Norwegen fehlen Ladesäulen



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Lenovo Thinkstation P320 Tiny im Test: Viel Leistung in der Zigarrenschachtel
Lenovo Thinkstation P320 Tiny im Test
Viel Leistung in der Zigarrenschachtel
  1. Adware Lenovo zahlt Millionenstrafe wegen Superfish
  2. Lenovo Smartphone- und Servergeschäft sorgen für Verlust
  3. Lenovo Patent beschreibt selbstheilendes Smartphone-Display

Galaxy Note 8 im Test: Samsungs teure Dual-Kamera-Premiere
Galaxy Note 8 im Test
Samsungs teure Dual-Kamera-Premiere
  1. Galaxy S8 und Note 8 Bixby-Button lässt sich teilweise deaktivieren
  2. Videos Youtube bringt HDR auf Smartphones
  3. Galaxy Note 8 im Hands on Auch das Galaxy Note sieht jetzt doppelt - für 1.000 Euro

Mobilestudio Pro 16 im Test: Wacom nennt 2,2-Kilogramm-Grafiktablet "mobil"
Mobilestudio Pro 16 im Test
Wacom nennt 2,2-Kilogramm-Grafiktablet "mobil"
  1. Wacom Vorschau auf Cintiq-Stift-Displays mit 32 und 24 Zoll

  1. Re: Meine Vision sieht anders aus...

    quineloe | 09:10

  2. Re: Als Nicht-Smartphone-Besitzer

    nightmar17 | 09:08

  3. Re: Achja, diese Uni-Spinoffs

    longthinker | 09:08

  4. Längst gängig

    pommesmatte | 09:07

  5. Re: Macht das überhaupt Sinn, eTrucks?

    nille02 | 09:05


  1. 08:45

  2. 08:32

  3. 07:00

  4. 19:04

  5. 18:51

  6. 18:41

  7. 17:01

  8. 16:46


  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