Das Central-Modul

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.

Stellenmarkt
  1. Software Test Engineer (m/w/d) Video Management Software
    Securiton GmbH IPS Intelligent Video Analytics, München
  2. Testingenieure Automotive (m/w/d)
    ServiceXpert Gesellschaft für Service-Informationssysteme mbH, München
Detailsuche

  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. };

Golem Karrierewelt
  1. ITIL 4® Foundation: virtueller Zwei-Tage-Workshop
    18./19.07.2022, virtuell
  2. Azure und AWS Cloudnutzung absichern: virtueller Zwei-Tage-Workshop
    22./23.09.2022, virtuell
Weitere IT-Trainings

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.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 LED an- und ausschaltenDie Characteristics abfragen 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13.  


ronda-melmag 01. Nov 2019

Und noch heute 4 jahre danach ist das bei Bluez "experimental" das steigert bei mir...

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...



Aktuell auf der Startseite von Golem.de
SFConservancy
Open-Source-Entwickler sollen Github wegen Copilot verlassen

Ähnlich wie schon vor Jahrzehnten mit Sourceforge sollen Open-Source-Projekte nun auch Github verlassen.

SFConservancy: Open-Source-Entwickler sollen Github wegen Copilot verlassen
Artikel
  1. Softwareupdate: Teslas können Schlaglöcher erkennen und Federung anpassen
    Softwareupdate
    Teslas können Schlaglöcher erkennen und Federung anpassen

    Durch ein Softwareupdate können Teslas nach Schlaglöchern suchen und bei Bedarf die adaptive Federung ändern.

  2. Wärmeversorgung: Berlin baut Thermoskanne gegen Gasnotstand
    Wärmeversorgung
    Berlin baut Thermoskanne gegen Gasnotstand

    Der Versorger Vattenfall baut in Berlin einen riesigen Warmwasserspeicher, um Häuser im Winter heizen zu können. Das könnte beim möglichen Gasnotstand helfen.

  3. Bundeskartellamt: VW und Bosch dürfen an automatisiertem Fahren forschen
    Bundeskartellamt
    VW und Bosch dürfen an automatisiertem Fahren forschen

    Das Bundeskartellamt erlaubt es VW und Bosch, gemeinsam an der Fortentwicklung des automatisierten Fahrens zu arbeiten.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Audible 2,95€/Monat • MSI RTX 3080 12GB günstig wie nie: 948€ • AMD Ryzen 7 günstig wie nie: 259€ • Der beste 2.000€-Gaming-PC • Cooler Master 34" UWQHD 144 Hz günstig wie nie: 467,85€ • Asus RX 6900 XT OC günstig wie nie: 1.049€ • Mindstar (Gigabyte RTX 3060 399€) [Werbung]
    •  /