Я работаю над Raspberry pi 3, у меня есть веб-страница, которая отправляет текстовые данные в приложение Chrome, и до этого все работает.
После этого приложение Chrome должно отправить эти данные впоследовательный порт и здесь появляется ошибка:
Ошибка в обработчике события для runtime.onMessageExternal: TypeError: Невозможно прочитать свойство 'connect' из неопределенного
Проблема может заключаться в том, что это не приложение Chrome, а расширение и оно не может использовать этот API, поскольку только приложения Chrome имеют доступ к оборудованию, но я следовал этому руководству, чтобы создать свое первое приложение Chrome (https://developer.chrome.com/apps/first_app), так что, может быть, я чего-то не понял или пропустил шаг.
Вот мой код, заранее спасибо за помощь!
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);
});