概要
複数のTI SensorTag(BLEデバイス)を同時に取り扱う方法です
コード全体はgistにアップしています。ここでは解説のみです
TI SensorTag(CC2541DK-Sensor, CC2650STK)とnode-sensortagで検証しましたが、noble-deviceを使う場合全般において有効な方法だと思われます (未検証)
解説
ポイントは1点だけです
SensorTag.discoverで発見できたデバイスのsensorTag.connectAndSetUpにおいて、完了時のコールバック内で再度SensorTag.discoverを開始
最小コード
var onDiscover = function(sensorTag) {
sensorTag.connectAndSetUp(function() {
SensorTag.discover(onDiscover);
...
});
};
// entrypoint
SensorTag.discover(onDiscover);
※gistのコードではasync.seriesを使っているため若干違いますが、最小コードは上記のようになります
注意点
SensorTag.discoverAllを使ってもうまく行きません
SensorTag.discoverAllで見つかったデバイスはconnectAndSetUpが動かない(※)ため、enableIrTemperatureとかが実行できないからです
※原因はちゃんと調べてません、ゴメンナサイ
あとがき
1台のPCでどのくらいBLEデバイスが接続できるか、ちょっと試してみますね