chrome-Erweiterung - Lesen von der seriellen Schnittstelle
Dies ist mein Erster Versuch, die Entwicklung mit einer chrome-app oder-Erweiterung. Ich habe einen GPS-Empfänger an den USB-port emuliert wird wie ein serielles Gerät.
Dieser code ausgeführt
var onGetDevices = function(ports) {
for (var i=0; i<ports.length; i++) {
//show me some output
console.log(ports[i].path);
//Connect to the serial port /dev/ttyUSB0
chrome.serial.connect(ports[i].path, {bitrate: 9600}, onConnect);
}
}
chrome.serial.getDevices(onGetDevices);
bekommt von mir "/dev/ttyUSB0" in der Konsole, so scheint es zu sein, das Gerät wiederzufinden.
Wie kann ich dann eine Verbindung zu dem Gerät? Ich habe den serial.line-Anschluss oben, mit folgenden Funktionen:
var onConnect = function(connectionInfo) {
//The serial port has been opened. Save its id to use later.
_this.connectionId = connectionInfo.connectionId;
//Do whatever you need to do with the opened port.
chrome.serial.onReceive.addListener(onReceiveCallback);
}
var stringReceived = '';
var onReceiveCallback = function(info) {
if (info.connectionId == expectedConnectionId && info.data) {
var str = convertArrayBufferToString(info.data);
if (str.charAt(str.length-1) === '\n') {
stringReceived += str.substring(0, str.length-1);
onLineReceived(stringReceived);
stringReceived = '';
}
else {
stringReceived += str;
}
}
};
aber ich bekomme die folgende Fehlermeldung:
Fehler in Reaktion auf Seriell.connect: ReferenceError: _diese ist nicht definiert
am Objekt.onGetDevices als [callback]
Ich bin mir nicht sicher, genau das, was ich Tue, richtig oder falsch, so dass alle Zeiger geschätzt.
- Es sieht aus wie die variable
_this
ist nicht im code definiert werden. - der code stammt direkt aus Chrome-tutorial, Beispiel wenn, muss es definieren, wenn ja, was, wie? hier der link developer.chrome.com/apps/app_serial
- das ist toll, gute Frage
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste Beispiel funktioniert nicht richtig. Versuchen Sie dies:
Nun als für das eigentliche Lesen der input von der seriellen Verbindung es wird funktionieren, aber die Umwandlung der ArrayBuffer, um ein string ist ein bisschen schwieriger als erwartet.