我正在研究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);
});
答案 0 :(得分:0)
解决了,我只是忘了把这行代码放在我的 manifest.json 中:
select id,varname, value from tablename
Unpivot
(
value for varname in (var1, var2, var3,var4)
) as UnPvt