3分に一度実行されるホステッドアプリで、
インストールされてObniz BLEを経由して
Beacon、iBS01T、LogttaCO2にアクセスしております。
各BLEでperipheralをstartAllWait()を利用して一気に取得後、
それぞれのperipheralをチェックしつつ目的の値を取得しております。
BeaconとiBS01Tについては問題なく取得できております。
LogttaCO2については、以下のようなエラーが発生してアクセスできないことがあります。
---- ここから
ObnizBleHciStateError: Connection Failed to be Established /
Synchronization Timeout {"peripheralAddress":"f0ab544baf34"}
at NobleBindings.onDisconnComplete
(/path/to/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/central/bindings.js:182:27)
at Hci.emit (/path/to/node_modules/eventemitter3/index.js:203:33)
at Hci.onHciEventData
(/path/to/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/hci.js:868:18)
at Hci.onSocketData
(/path/to/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/hci.js:934:18)
at Obniz._runUserCreatedFunction
(/path/to/node_modules/obniz/dist/src/obniz/ObnizConnection.js:286:13)
at ObnizBLEHci.notified
(/path/to/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/hci.js:66:24)
at ObnizBLE.<anonymous>
(/path/to/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/ble.js:46:26)
at ObnizBLE.emit
(/path/to/node_modules/eventemitter3/index.js:181:35)
at ObnizBLE.notifyFromObniz
(/path/to/node_modules/obniz/dist/src/obniz/libs/ComponentAbstact.js:30:22)
at Obniz.notifyToModule
(/path/to/node_modules/obniz/dist/src/obniz/ObnizComponents.js:262:37)
{
code: 10,
state: 62
}
---- ここまで
これはperipheralをチェックしたあと、Logttaであった場合に接続しにいくところで発生しているのではないかと考えております。
該当するコードは下記の箇所です。
const LOGTTA_CO2 = Obniz.getPartsClass("Logtta_CO2");
const IBS01T = Obniz.getPartsClass("iBS01T");
if (LOGTTA_CO2.isDevice(peripheral)) {
// console.log(`${obniz.id} Logtta CO2 is found.`);
const device = new LOGTTA_CO2(peripheral);
try {
await device.connectWait();
const co2 = await device.getWait();
console.log(co2);
await device.disconnectWait();
} catch (e) {
console.error(e);
} else if (IBS01T.isDevice(peripheral)) {
:
上記エラーの詳細な内容をお知らせ頂ければと思います。
また、Logtta CO2からの値の取り出し方として、
短時間で接続/切断を繰り返す方法が向いてないのでしょうか。