【发布时间】:2014-09-19 02:20:58
【问题描述】:
这是我第一次尝试使用 chrome 应用程序或扩展程序进行开发。我在 USB 端口上有一个 GPS 接收器,它被模拟为串行设备。
运行此代码
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);
在控制台中获取“/dev/ttyUSB0”,因此它似乎正在查找设备。
然后如何连接到设备?我已经包含了上面的 serial.connect 行,具有以下功能:
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;
}
}
};
但我收到以下错误:
响应 serial.connect 时出错:ReferenceError: _this is not defined 在 Object.onGetDevices [作为回调]
我不确定我在这里做的是对还是错,所以任何指针表示赞赏。
【问题讨论】:
-
您的代码中似乎没有定义变量
_this。 -
代码是直接取自 chromes 教程示例,是否需要定义,如果需要定义呢?链接在这里developer.chrome.com/apps/app_serial
-
这很好,很好的问题
标签: javascript google-chrome serial-port google-chrome-app