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. Robert Bosch GmbH, Leonberg
  2. ETAS GmbH, Stuttgart
  3. über Hays AG, München
  4. Bechtle Clouds GmbH, Frankfurt am Main


Anzeige
Hardware-Angebote
  1. 2099,99€ statt 2399,99€ bei razerzone.com
  2. (reduzierte Überstände, Restposten & Co.)
  3. und Destiny 2 gratis erhalten

Folgen Sie uns
       


  1. Staingate

    Austauschprogramm für fleckige Macbooks wird verlängert

  2. Digitale Infrastruktur

    Ralph Dommermuth kritisiert deutsche Netzpolitik

  3. Elektroauto

    VW will weitere Milliarden in Elektromobilität investieren

  4. Elektroauto

    Walmart will den Tesla-Truck

  5. Die Woche im Video

    Ausgefuchst, abgezockt und abgefahren

  6. Siri-Lautsprecher

    Apple versemmelt den Homepod-Start

  7. Open Routing

    Facebook gibt interne Plattform für Backbone-Routing frei

  8. Übernahme

    Vivendi lässt Ubisoft ein halbes Jahr in Ruhe

  9. Boston Dynamics

    Humanoider Roboter Atlas macht Salto rückwärts

  10. Projekthoster

    Github zeigt Sicherheitswarnungen für Projektabhängigkeiten



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Smartphoneversicherungen im Überblick: Teuer und meistens überflüssig
Smartphoneversicherungen im Überblick
Teuer und meistens überflüssig
  1. Winphone 5.0 Trekstor will es nochmal mit Windows 10 Mobile versuchen
  2. Librem 5 Das freie Linux-Smartphone ist finanziert
  3. Aquaris-V- und U2-Reihe BQ stellt neue Smartphones ab 180 Euro vor

Erneuerbare Energien: Siemens leitet die neue Steinzeit ein
Erneuerbare Energien
Siemens leitet die neue Steinzeit ein
  1. Siemens und Schunk Akkufahrzeuge werden mit 600 bis 1.000 Kilowatt aufgeladen
  2. Parkplatz-Erkennung Bosch und Siemens scheitern mit Pilotprojekten

Cubesats: Startup steuert riesigen Satellitenschwarm von Berlin aus
Cubesats
Startup steuert riesigen Satellitenschwarm von Berlin aus
  1. Arkyd-6 Planetary Resources startet bald ein neues Weltraumteleskop
  2. SAEx Internet-Seekabel für Südatlantikinsel St. Helena
  3. Sputnik Piep, piep, kleiner Satellit

  1. Re: Schieber auf Scrollbalken

    LinuxMcBook | 02:07

  2. Re: Ladeleistung

    m9898 | 02:01

  3. Re: Pro Gerät soll der Austausch maximal zweimal...

    peter0815 | 01:58

  4. Re: Ich war auch betroffen...

    ML82 | 01:50

  5. Re: Vorsicht !

    Thunderbird1400 | 01:32


  1. 17:14

  2. 13:36

  3. 12:22

  4. 10:48

  5. 09:02

  6. 19:05

  7. 17:08

  8. 16:30


  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