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. ifb KG, Seehausen am Staffelsee
  2. Deichmann SE, Essen
  3. Robert Bosch GmbH, Stuttgart
  4. DRÄXLMAIER Group, Garching bei München


Anzeige
Blu-ray-Angebote
  1. 29,99€ (Vorbesteller-Preisgarantie)
  2. 18,00€ (ohne Prime bzw. unter 29€-Einkaufswert zzgl. 3€ Versand)
  3. (u. a. Die Unfassbaren, Ghostbusters I & II, Jurassic World, Fast & Furious 7 Extended Version)

Folgen Sie uns
       


  1. Whistleblowerin

    Obama begnadigt Chelsea Manning

  2. Stadtnetz

    Straßenbeleuchtung als Wifi-Standort problematisch

  3. Netzsperren

    UK-Regierung könnte Pornozensur willkürlich beschließen

  4. Kartendienst

    Google Maps soll künftig Parksituation anzeigen

  5. PowerVR Series 8XE Plus

    Imgtechs Smartphone-GPUs erhalten ein Leistungsplus

  6. Projekt Quantum

    GPU-Prozess kann Firefox schneller und sicherer machen

  7. TV-Kabelnetz

    Tele Columbus will höhere Datenrate und mobile Conversion

  8. Fingerprinting

    Nutzer lassen sich über Browser hinweg tracken

  9. Raumfahrt

    Chinas erster Raumfrachter Tianzhou 1 ist fertig

  10. Bezahlinhalte

    Bild fordert Obergrenze für Focus Online



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
U Ultra und U Play im Hands on: HTCs intelligente Smartphones hören immer zu
U Ultra und U Play im Hands on
HTCs intelligente Smartphones hören immer zu
  1. VR-Headset HTC stellt Kopfhörerband und Tracker für Vive vor
  2. HTC 10 Evo im Kurztest HTCs eigenwillige Evolution
  3. Virtual Reality HTC stellt Drahtlos-Kit für Vive vor

Taps im Test: Aufsatz versagt bei den meisten Fingerabdrucksensoren
Taps im Test
Aufsatz versagt bei den meisten Fingerabdrucksensoren
  1. Glas Der Wunderwerkstoff
  2. Smartphone-Prognosen Das Scheitern der Marktforscher
  3. Studie Smartphones und Tablets können den Körper belasten

Wonder Workshop Dash im Test: Ein Roboter riskiert eine kesse Lippe
Wonder Workshop Dash im Test
Ein Roboter riskiert eine kesse Lippe
  1. Supermarkt-Automatisierung Einkaufskorb rechnet ab und packt ein
  2. Robot Operating System Was Bratwurst-Bot und autonome Autos gemeinsam haben
  3. Roboterarm Dobot M1 - der Industrieroboter für daheim

  1. Re: Der Typ ist größenwahnsinnig

    deadeye | 04:42

  2. Re: Snowden-Begründung kompletter Mumpitz.

    deadeye | 04:36

  3. Re: "Wir bauen mehr Glasfaser als jeder andere...

    bombinho | 04:31

  4. Re: Ist dies die Situation in der gesamtem EX...

    Golressy | 04:26

  5. Re: Dann baut man halt Schalter in die Laternen ein

    Golressy | 04:21


  1. 22:50

  2. 19:05

  3. 17:57

  4. 17:33

  5. 17:00

  6. 16:57

  7. 16:49

  8. 16:48


  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