1

次のコードを使用して、心拍数センサーと心拍数品質センサーからデータを正常に取得しました:-

 IEnumerable<TimeSpan> supportedHeartBeatReportingIntervals = bandClient.SensorManager.HeartRate.SupportedReportingIntervals;
 bandClient.SensorManager.HeartRate.ReportingInterval = supportedHeartBeatReportingIntervals.First<TimeSpan>();
..... [other not relevant code excluded]

bandClient.SensorManager.HeartRate.ReadingChanged += (s, args) => { hrdt = args.SensorReading.HeartRate; };
{
    await bandClient.SensorManager.HeartRate.StartReadingsAsync();
    await Task.Delay(TimeSpan.FromSeconds(5));
    await bandClient.SensorManager.HeartRate.StopReadingsAsync();
    dsphr = hrdt.ToString();
}
bandClient.SensorManager.HeartRate.ReadingChanged += (s, args) =>  qltyhr = string.Format("{0}",args.SensorReading.Quality);

このコードはうまく機能しており、ここに私が書いている出力ファイルのサンプルがあります

リチャード;;8:48:04 AM;64

リチャード;取得中;8:48:19 AM;64

リチャード;取得中;8:48:35 AM;64

リチャード;取得中;8:48:50 AM;64

リチャード;取得中;8:49:05 AM;64

etc - 取得を示すすべてを記録します - 心拍数の 70 の変化は、デバイスが読み取り値からではなく、心拍数を取得していたときに発生しました。

リチャード;取得中;8:52:08 AM;70

記録形式は、私の名前、センサーの品質、時間、そして心拍数です。";" フラットファイルでフィールド区切り文字として使用されます

次に、テストを繰り返しましたが、今回は「実行」ワークアウト モードでバンドを使用し、データ結果は次のとおりです。

リチャード;ロック;9:15:32 AM;57

リチャード;取得中;9:15:47 AM;67

リチャード;ロック;9:16:03 AM;64

リチャード;取得中;9:16:18 AM;62

リチャード;ロック;9:16:33 AM;72

など同類の話

リチャード;ロック;9:24:40 AM;73

リチャード;ロック;9:24:55 AM;72

ヘルプ!!ここにいくつかの質問があります:

  • さまざまなモードによって管理されている「バッテリー寿命」の問題を理解する - 理想的な世界でやりたいことは、読み取りのためにセンサーを起動してロックし、元に戻す独自のサンプリングレートを設定することですバッテリーを節約するために再びスリープ状態にします。ファームウェアの問題を想像しているので、これは不可能だと思います。私は正しいですか?そうでない場合、どうすればよいですか?
  • 理想が持てない場合は、バンドのボタンを押すのではなく、プログラムからサンプリング モードを切り替えられるようにしたいと考えています。そのため、エクササイズ イベントのように「バースト サンプル」を定期的に実行し、残りの時間はバックグラウンド チェックを続行してバッテリーを節約することができます。私はこれを行うことができますか?
  • Band Reporting Interval を設定することの関連性は何ですか - センサーがオンでロックされているとき (エクササイズモードとオフで取得中 (通常モード) のとき) を制御するためにここで変更する必要があるものはありますか?これをコーディングしますか?私自身のテストから、センサーのモードはレポート間隔とは何の関係もないように見えますが、間違っていますか?
  • このサンプリングがどのように機能しているかを詳細に説明しているドキュメントはありますか? かなりの時間をかけてウェブを検索したところ、次のことがわかりました。
  • 通常モードは 3 ~ 4 回、1 時間サンプリングするようです
  • バンドが大きな動きを検出すると、通常モードはアクティブ モードに切り替わります。役に立つと考えてください。
  • エクササイズモードにもいくつかの「取得」イベントがありますが、これらは予測的なものであり、過去の値にすぎないようです。集中的に測定できない場合は、何が心臓の予測に影響を与えているのかを知りたいので、意味があるかどうか

SDK ドキュメンテーションにはこのレベルの詳細が記載されておらず、別の方法で見つけることができません...助けてください!

このフォーラムに投稿するのは初めてなので、この投稿でコードとデータの形式が読み取れることを願っています。テキストを含める際に「間違ったボタンを押してしまった」場合はご容赦ください。

あなたが私に与えることができる助けや洞察をありがとう.

4

1 に答える 1

0

Ok。Microsoft Band SDK のすべてのバージョンで心拍数サブスクリプションがどのように機能するかを次に示します。

1) サブスクリプションを申し込むときは、心拍数の収集をオンにします。ただし、アクティビティまたはバンドのファームウェアの受動的な心拍数モニタリングのために既にオンになっている場合を除きます。

2) サブスクリプションを解除するときは、上記と同じ理由でファームウェアが心拍数データも収集していない限り、心拍数の収集をオフにします。

3) 心拍数サブスクリプションのレートは 1 Hz で、変更できません。

4) このサブスクリプションから返されるデータは、バンドによって計算された心拍数であり、直接読み取ったものではありません。したがって、Aquiring vs Locked は、バンドが読み取り値をどれだけ正確に認識しているかを表し、ユーザーがバンドを使用して行っているアクティビティよりも、ユーザーがバンドをどのように着用しているか (タイトな方が良い) の影響を受けます。

したがって、バッテリ寿命を節約し、バーストでデータを取得するには、サブスクライブし、必要な数のイベントを取得してから、サブスクライブを解除するだけです。

ドキュメントから得られるその他のデータは、心拍数が SDK によってどのように公開されるかではなく、内部でどのように使用されるかを示しています。

于 2016-02-02T19:07:50.240 に答える