Chrome应用-无法读取未定义的属性“连接”

时间:2018-10-03 14:16:10

标签: serial-port google-chrome-app

我正在研究Raspberry pi 3,我有一个网页,可将文本数据发送到Chrome应用,并且一切正常。

然后,Chrome应用应将数据发送到串行端口,并在此处显示错误:

  

运行时事件处理程序中的错误。onMessageExternal:TypeError:无法读取未定义的属性“ connect”

问题可能是这不是Chrome应用,它是扩展程序,不能使用此API,因为只有Chrome应用可以访问硬件,但是我按照本指南制作了我的第一个Chrome应用({ 3}}),所以也许有些事情我不了解,或者我错过了一步。

这是我的代码,在此先感谢您的帮助!

manifest.json

{
  "name": "Send serial data",
  "description": "App to send serial data.",
  "version": "1.0",
  "manifest_version": 2,
  "app": {
    "background": {
      "scripts": ["background.js"]
    }
  },
  "icons": { "16": "img-16.png", "128": "img-128.png" },
  "externally_connectable" : {
    "matches": ["*://localhost/*"]
  }
}

background.js

var msg ;

function openSend(data) {
    var onConnect ;
    onConnect = function(connectionInfo) {
        _this.connectionId = connectionInfo.connectionId;
    }

    chrome.serial.connect("/dev/ttyAMA0", {bitrate: 115200}, onConnect);

    chrome.serial.send(connectionId, convertStringToArrayBuffer(data), function(sendInfo) {
        if(sendInfo.error) $.modal('<div id="title">Unable to send data: ' + sendInfo.error + '</div>')
    });
}

chrome.runtime.onMessageExternal.addListener((message, sender, sendResponse) => {
    console.log(message.data);
    msg = message.data ;
    openSend(msg);  
});

1 个答案:

答案 0 :(得分:0)

解决了,我只是忘了把这行代码放在我的 manifest.json 中:

select id,varname, value from tablename
Unpivot
(
  value for varname in (var1, var2, var3,var4)

) as UnPvt