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
InformationsquelleAutor | 2014-07-27
Schreibe einen Kommentar