質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Bluetooth

Bluetoothとは短距離の間でデータを交換するための無線通信規格である。固定・モバイル両方のデバイスから、短波の電波送信を行うことで、高いセキュリティをもつパーソナルエリアネットワーク(PAN)を構築する。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1467閲覧

nobleのstartScanningでデバイスを検出できません。

mamamamama

総合スコア7

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Bluetooth

Bluetoothとは短距離の間でデータを交換するための無線通信規格である。固定・モバイル両方のデバイスから、短波の電波送信を行うことで、高いセキュリティをもつパーソナルエリアネットワーク(PAN)を構築する。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/11/29 01:03

windows10でnobleを使ってBLEデバイスの検出を行っています。

nobleのstartScanningをしても見つけたいデバイスを検出できません。
ほかのデバイスはたくさん検出されているようでひたすらログが流れています。

javascript

1var noble = require('noble'); 2 3noble.on('stateChange', function(state) { 4 if (state === 'poweredOn') { 5 noble.startScanning(); 6 } else { 7 noble.stopScanning(); 8 } 9}); 10 11noble.on('discover', function(peripheral) { 12 console.log('Found device with local name: ' + peripheral.advertisement.localName); 13});

デバイス側の設定が必要だったりしますか?
ほかのPCやスマートフォンからはこのデバイスを検出できています。
https://github.com/noble/noble/wiki/Compatible-Devices
に対応しているBLEデバイスが載っていますが、
このデバイスしかつなげないってことあるんでしょうか。

1つ気になっているのは、
最初に「No compatible USB Bluetooth 4.0 device found!」のエラーが出ていたので、
https://github.com/noble/noble/issues/670
を参考にwinUSBドライバーをインストールしました。

USB VID/PIDが下記に記載されていないものでしたので、
ソースを直接いじってVID/PIDを追加してしまいました。
https://github.com/noble/node-bluetooth-hci-socket#windows

この修正で一応エラーは解消されて動くようになったので大丈夫だと思っていたのですが、ここに問題があったりするでしょうか。
修正したコードはこんな感じです。(★部分を追加)

javascript

1BluetoothHciSocket.prototype.bindUser = function(devId) { 2 this._mode = 'user'; 3 4 if (process.env.BLUETOOTH_HCI_SOCKET_USB_VID && process.env.BLUETOOTH_HCI_SOCKET_USB_PID) { 5 var usbVid = parseInt(process.env.BLUETOOTH_HCI_SOCKET_USB_VID); 6 var usbPid = parseInt(process.env.BLUETOOTH_HCI_SOCKET_USB_PID); 7 8 debug('using USB VID = ' + usbVid + ', PID = ' + usbPid); 9 10 if (process.env.BLUETOOTH_HCI_SOCKET_USB_BUS && process.env.BLUETOOTH_HCI_SOCKET_USB_ADDRESS) { 11 var usbBus = parseInt(process.env.BLUETOOTH_HCI_SOCKET_USB_BUS); 12 var usbAddress = parseInt(process.env.BLUETOOTH_HCI_SOCKET_USB_ADDRESS); 13 14 debug('using USB BUS = ' + usbBus + ', Address = ' + usbAddress); 15 16 var usbDevices = usb.getDeviceList(); 17 18 for (var i = 0; i < usbDevices.length; i++) { 19 var usbDeviceDesc = usbDevices[i].deviceDescriptor; 20 21 if ((usbDeviceDesc.idVendor == usbVid) && 22 (usbDeviceDesc.idProduct == usbPid) && 23 (usbDevices[i].busNumber == usbBus) && 24 (usbDevices[i].deviceAddress == usbAddress)) { 25 this._usbDevice = usbDevices[i]; 26 } 27 } 28 } else { 29 this._usbDevice = usb.findByIds(usbVid, usbPid); 30 } 31 } else { 32 this._usbDevice = usb.findByIds(0x0a5c, 0x21e8) || usb.findByIds(0x19ff, 0x0239) || usb.findByIds(0x0a12, 0x0001) || usb.findByIds(0x0b05, 0x17cb) || usb.findByIds(0x8087, 0x07dc)|| usb.findByIds(0x****, 0x****); 33 } 34 35 if (!this._usbDevice) { 36 throw new Error('No compatible USB Bluetooth 4.0 device found!'); 37 } 38 39 this._usbDevice.open(); 40 41 this._usbDeviceInterface = this._usbDevice.interfaces[0]; 42 43 this._aclDataOutEndpoint = this._usbDeviceInterface.endpoint(0x02); 44 45 this._hciEventEndpoint = this._usbDeviceInterface.endpoint(0x81); 46 this._aclDataInEndpoint = this._usbDeviceInterface.endpoint(0x82); 47 48 this._usbDeviceInterface.claim(); 49};

npm install bluetooth-hci-socket

でインストールしたんですが、下記と実装が違うのも気になっています。
https://github.com/noble/node-bluetooth-hci-socket/blob/master/lib/usb.js

知識不足で申し訳ありませんが、
どこかヒントになったりする情報をお持ちでしたらお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問