問題タブ [heartrate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1903 参照

javascript - Bluetooth 心拍数モニター (Cordova) からのデータの解釈/解析

Bluetooth HR モニター (Polar H7 などの生の RR 間隔を記録できる) からのデータを解釈する必要がある Cordova を使用してアプリケーションを作成しています。私はcordova-plugin-ble-centralを使用しています

インターネットで回答を探したり、 Bluetooth Heart Rate Service Characteristic の仕様を何度も読んだりしたにもかかわらず、モニターから受信したデータを理解するのに苦労しています。

データが受信されるたびに実行される私の関数は次のとおりです。

受信したデータをバッファに記録すると、コンソールに次のように出力され ます。

RR 間隔 (黄色で強調表示) を抽出する方法は知っていますが、他の値が何を表しているのかよくわかりません。これは、ユーザーが RR 間隔などを送信しない他のモニターに接続している可能性があるため必要です。

受け取ったデータが何を意味し、それをどのように解析するかについての簡単でわかりやすい英語の説明をいただければ幸いです。たとえば、フラグ フィールドを構成する数値と、サブフィールドを抽出するためにこれをバイナリに変換する方法 (つまり、RR 間隔が存在するかどうかを確認するため - これはフラグ フィールドの 5 番目のビットによって決定されることがわかっています)。

プラグインには、「Raw データがネイティブ コードから成功コールバックに ArrayBuffer として渡される」と記載されていますが、フラグをチェックして、特定の HR モニターからのデータが 8 ビットまたは 16 ビットのどちらであるかを判断する方法がわかりません。以下は、受信したデータから Uint8 配列と Uint16 配列の両方を作成したときの別のコンソール ログです。繰り返しますが、心拍数と RR 間隔を強調しましたが、他の値が何を表しているのか、それらを正しく解析する方法を知る必要があります。

Uint8 および Uint16 出力を含むコンソール ログ

コード全体は次のとおりです。

ヘルプやアドバイスをお寄せいただきありがとうございます。