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

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

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

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

JavaScript

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

Q&A

0回答

1217閲覧

nobleでsubscribeができない

mamamamama

総合スコア7

Bluetooth

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

JavaScript

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

0グッド

0クリップ

投稿2019/12/11 06:28

nobleを使用してbleデバイスと接続しデータを定期的に取得しようとしています。
以下のようなソースコード(一部「***」で隠しています)で実行時に引数を指定することでUUIDを切り替えているのですが、SERVICE_UUID1のsubscribeができません。
SERVICE_UUID2のほうはデータが定期的に受信できているので、ロジックの問題はないと思っているのですが、UUIDによってsubscribeがうまくいかないなんてことあるんでしょうか。
androidアプリで同じようにUUIDを指定してデータを取得することはできているので、bleデバイスの問題でもないと思っています。

javascript

1var noble = require('noble'); 2 3var DEVICE_NAME = "*********"; 4var SERVICE_UUID1 = "********************************"; 5var SERVICE_CHARACTERISTIC_UUID1 = "********************************"; 6var SERVICE_UUID2 = "********************************"; 7var SERVICE_CHARACTERISTIC_UUID2 = "********************************"; 8 9if (process.argv[2] == "*****") { 10 var SERVICE_UUID = SERVICE_UUID1; 11 var SERVICE_CHARACTERISTIC_UUID = SERVICE_CHARACTERISTIC_UUID1; 12} else if (process.argv[2] == "*****") { 13 var SERVICE_UUID = SERVICE_UUID2; 14 var SERVICE_CHARACTERISTIC_UUID = SERVICE_CHARACTERISTIC_UUID2; 15} 16 17//start ble 18noble.on('stateChange', function(state) { 19 if (state === 'poweredOn') { 20 noble.startScanning([],false); 21 } else { 22 noble.stopScanning(); 23 } 24}); 25 26//search ble 27noble.on('discover', function(peripheral) { 28 if(peripheral.advertisement.localName == DEVICE_NAME){ 29 noble.stopScanning(); 30 peripheral.connect(function(error){ 31 peripheral.discoverServices(SERVICE_UUID, function(error, services) { 32 var deviceInformationService = services[0]; 33 deviceInformationService.discoverCharacteristics(SERVICE_CHARACTERISTIC_UUID, function(error, characteristics) { 34 characteristics[0].on('data', function(data, isNotification) { 35 console.log(data, isNotification);36 }); 37 console.log("subscribe start"); 38 characteristics[0].subscribe(function(error) { 39 console.log('notify'); 40 }); 41 }); 42 }); 43 }); 44 } 45}); 46

・SERVICE_UUID1
「subscribe start」のログから進まない。
・SERVICE_UUID2
「subscribe start」→「notify」→★のログが定期的に送られてくる

subscribeの処理の中で止まっていると思うんですが、デバッグの方法などがわかりません。
どのあたりに目をつけてみていったらいいかなどアドバイスがあればお願いします。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問