Abo
  • Services:

Anzeigen und Senden

Da wir serverseitig JSON als Datenformat für die übertragenen Daten vorgegeben haben, wird der Parameter entsprechend geparst. Dadurch erhalten wir eine Datenstruktur, die unter anderem den Namen des aktuellen Titels und die Lautstärke enthält. Diese Informationen werden direkt in die entsprechenden HTML-Elemente eingetragen.

Stellenmarkt
  1. ASC Automotive Solution Center AG, Hamburg
  2. über unternehmensberatung monika gräter, Essen

Die Buttons sind mit onclick-Events versehen und rufen damit die send()-Funktion mit dem jeweiligen Kommando als Parameter auf. Diese Funktion ruft ihrerseits die send()-Methode des Websocket-Objekts auf. Gesendet wird dabei auch wieder eine Datenstruktur, die per JSON in Text umgewandelt wurde.

...
<button id="btnPlay" onclick="send(COMMAND_PLAY)">Play</button>
<button id="btnStop" onclick="send(COMMAND_STOP)">Stop</button>
...

  1. function send(val) {
  2.  
  3. if(con == null) {
  4. return;
  5. }
  6.  
  7. if(COMMAND_VOLUP == val) {
  8. con.send(JSON.stringify({vol:volume+1}));
  9. } else if(COMMAND_VOLDOWN == val) {
  10. con.send(JSON.stringify({vol:volume-1}));
  11. } else {
  12. var cmd_data = {cmd:val};
  13. con.send(JSON.stringify(cmd_data));
  14. }
  15. }

Das ist tatsächlich alles, mehr ist für eine bidirektionale Kommunikation nicht notwendig. AJAX und REST-APIs wirken dagegen komplizierter.

Musikplayer ansteuern

Bevor wir zur Serverkomponente für den Websocket kommen, betrachten wir noch das Skript zur Ansteuerung des Musikplayers. Es empfängt über Bluetooth Low Energy die Kommandos und steuert davon abhängig per Kommandozeile den Musikplayer. Wir setzten dazu iTunes ein, das sich im laufenden Betrieb per Applescript steuern lässt. Je nach Kommando ermittelt es auch die aktuell eingestellte Lautstärke und den laufenden Track, ebenfalls per Applescript. Beide Infos werden asynchron über BluetoothLE wieder übermittelt. Applescript und iTunes sind kein Muss, aber unter Mac OS praktisch. Unter anderen Betriebssystemen, insbesondere unter Linux, gibt es vergleichbare Optionen.

Mit dem Skript wird der Laptop zum angesteuerten BluetoothLE-Peripheral. In unserem Vorgängerartikel diente der Laptop dagegen als steuernde BluetoothLE-Central. Die Umsetzung erfolgt auf Basis der Node.js-Bibliothek Bleno.

Beim Peripheral wird ein Service mit drei Characteristics definiert: Die Kommando-Characteristic (CMD) kann beschrieben werden, darüber setzen wir das auszuführende Kommando, codiert als Zahl. Die Lautstärke-Characteristic (VOL) kann gelesen, abonniert und beschrieben werden. Das heißt: Darüber erhalten wir die aktuell eingestellte Lautstärke, oder wir können die Lautstärke in Prozent setzen (0 - 100%). Eine reine Characteristic zum Lesen ist schließlich Track (TRK) für den aktuell abgespielten Titel.

Das Kommando codieren wir aus Gründen der Datensparsamkeit als Zahl. Wer will, kann stattdessen auch Zeichenketten benutzen, was allerdings die Datenübertragung verlängert.

 Websocket öffnenMittler zwischen den Welten 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14.  


Anzeige
Blu-ray-Angebote
  1. Jetzt für 150 EUR kaufen und 75 EUR sparen
  2. (u. a. 4 Blu-rays für 20€, 2 TV-Serien für 20€)

Anonymer Nutzer 28. Jul 2014

Ich würde sagen hier könnte man eleganter und auch verhältnismäßig preiswert mit Zigbee...

savejeff 24. Jul 2014

perfekt! die Artikel sind echt zeitlos. ich werde noch ein paar Artikel nachholen.

holminger 24. Jul 2014

Meine RasPis dienen einmal als AirPrint-Server für einen 15 Jahre alten Kyocera...

currock63 23. Jul 2014

die guten alten Zeiten der c't, als es noch in fast jeder Ausgabe etwas zum selber...


Folgen Sie uns
       


Nvidia Geforce RTX 2080 und 2080 Ti - Test

Nvidia hat mit der RTX 2080 und 2080 Ti die derzeit leistungsstärksten Grafikkarten am Markt. Wir haben sie getestet.

Nvidia Geforce RTX 2080 und 2080 Ti - Test Video aufrufen
Augmented Reality: Das AR-Fabrikgelände aus dem Smartphone
Augmented Reality
Das AR-Fabrikgelände aus dem Smartphone

Derzeit ist viel von einer Augmented Reality Cloud die Rede. Golem.de hat mit dem Berliner Startup Visualix über den Stand der Technik und künftige Projekte für Unternehmenskunden gesprochen - und darüber, was die Neuerungen für Pokémon Go bedeuten könnten.
Ein Interview von Achim Fehrenbach

  1. Jarvish Motorradhelm bringt Alexa in den Kopf
  2. Patentantrag Apple plant Augmented-Reality in der Windschutzscheibe
  3. Magic Leap Lumin OS Erste Bilder des Betriebssystems für Augmented Reality

Neuer Echo Dot im Test: Amazon kann doch gute Mini-Lautsprecher bauen
Neuer Echo Dot im Test
Amazon kann doch gute Mini-Lautsprecher bauen

Echo Dot steht bisher für muffigen, schlechten Klang. Mit dem neuen Modell zeigt Amazon, dass es doch gute smarte Mini-Lautsprecher mit dem Alexa-Sprachassistenten bauen kann, die sogar gegen die Konkurrenz von Google ankommen.
Ein Test von Ingo Pakalski


    Künstliche Intelligenz: Wie Computer lernen
    Künstliche Intelligenz
    Wie Computer lernen

    Künstliche Intelligenz, Machine Learning und neuronale Netze zählen zu den wichtigen Buzzwords dieses Jahres. Oft wird der Eindruck vermittelt, dass Computer bald wie Menschen denken können. Allerdings wird bei dem Thema viel durcheinandergeworfen. Wir sortieren.
    Von Miroslav Stimac

    1. Informationsfreiheitsbeauftragte Algorithmen für Behörden müssen diskriminierungsfrei sein
    2. Innotrans KI-System identifiziert Schwarzfahrer
    3. USA Pentagon fordert KI-Strategie fürs Militär

      •  /