sebadorn

Profilbild Seba Über mich

Using NW.js to communicate with a DS4 controller

Informatik
0

DS4 green light

NW.js still provides the Chrome Apps API which has been removed from Chrome, but not ChromeOS. This will allow us to access in a platform-independant manner devices which are connected with the PC per USB.

Without this API, a 3rd party Node.js module like node-hid could be used. This will however come with platform-dependant libraries and will have to be updated or rebuild each time the Node.js version changes.

This article concentrates on sending data to the controller. However it is also possible to retrieve data like pressed buttons using the established connection. Aside from using chrome.hid there is also the Gamepad API for read-only access.

Identifying the controller

First we need a way to identify the DS4. Devices come with a vendor Id and product Id. According to the Gentoo Wiki they are as follows:

Device Vendor Id Product Id
DS4 (1st gen) hex 054C / dec 1356 hex 05C4 / dec 1476
DS4 (2nd gen) hex 054C / dec 1356 hex 09CC / dec 2508

Having tested with both devices, I can also confirm the Ids.

Get the device

For all communication with the device, we will use the chrome.hid API. First we define a filter using the vendor and product Id, and then query the available devices:

var filter = {
    filter: [
        { vendorId: 1356, productId: 1476 },
        { vendorId: 1356, productId: 2508 }
    ]
};

chrome.hid.getDevices( filter, ( devices ) => {
    // Error handling.
    if( chrome.runtime.lastError ) {
        console.error( chrome.runtime.lastError );
        return;
    }
    if( !devices ) {
        return;
    }

    var device = devices[0];
    // Next: Connect to the device.
};
weiterlesen

Zwischendurch

3

Wie bin ich bloß vorher ohne die Kategorie Ach, so kreuz und quer ausgekommen?

Heureka, ich bin mit Die Farbe Blau so gut wie fertig. Eigentlich fehlt nur noch die schriftliche Ausarbeitung. (Dezenter Hinweis an Kurskollegen nicht zu vergessen, dass am Montag, den 21.4., Abgabe ist. ;))

Heute noch mit Matze für die Sportprüfung geübt. Mittlerweile fühle ich mich von dem Thema leicht gedemütigt … ich weiß auch nicht. *Nörgel* Ich will endlich mit Badminton anfangen.

Ich habe immer noch keinen Geheimen Ort gefunden. Vielleicht, wenn ich die Interpretationsfreiheit noch ärger strapaziere. Spätestens Morgen gibt's ein Resultat zu begutachten.

In Deutsch lesen wir nun Buntschatten und Fledermäuse von Axel Brauns. Bin erst bei Seite 22, aber wenn der Stil beibehalten wird und der Inhalt nicht plötzlich abflacht, ist das ein verdammt tolles Werk.

Seit Freitag bin ich etwas krank. Ohne Nasenspray geht's mir dreckig – mit Nasenspray bin ich (fast) topfit. Schütte seither ACE-Saft, Vitamin C und Wasser in mich rein. Prost!

Völlig zusammenhangslos packe ich noch dieses Foto in den Eintrag:

Sebas Strohhut