使用下面的代碼我已經成功地獲得來自心率傳感器和心率品質傳感器數據: -微軟帶心臟傳感器的採樣率和事件控制
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);
此代碼工作很好,這裏是一些48:從我寫
理查德;; 8的輸出文件樣品; 64
理查德; 04 AM獲取; 8:48:19 AM; 64
理查德;獲取; 8:48:35 AM; 64
理查德;獲取; 8:48:50 AM; 64
理查德;獲取; 8:49:05 AM; 64
等 - 記錄全部顯示獲取 - 心率的70變化來自設備獲取心率而非讀數。
理查德;收購; 8:52:08時; 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上的按鈕。因此,我可以隨時進行一次「突發樣本」,如同在運動中進行定時檢查一樣,後臺檢查可以繼續進行,以節省電量。 我可以這樣做,如果是的話,怎麼樣?
- 什麼是設置樂隊報告間隔的相關性 - 有什麼我應該在這裏改變,這將有助於控制在傳感器上並鎖定(練習模式VS時是關閉的,收購(正常模式),如果是這樣如何。 ?我應該編碼這個從我自己的測試中,它看起來像傳感器的模式無關與報告間隔 - ?但我錯了
- 做不到這一點有沒有解釋如何取樣在工作的任何文件最精細的細節?我花了大量的時間搜索網頁,發現以下內容:
- 正常模式似乎抽樣3或4次和小時
- 正常模式喚醒進入活動模式,如果帶檢測到si有意思的運動 - 例如我今天早上和一個正常模式的樂隊一起去跑步,一旦它運作了我正在做的事情,它就會自己進入鍛鍊模式 - 聰明,我越想越有用。
- 即使運動模式具有一定的「收購」事件 - 但這些似乎是預測以及剛剛過去的價值觀 - 如果我不能在一個密集的基礎上衡量 - 我想知道什麼是在心臟預測這樣我就可以踢弄清楚它是否有意義
SDK文檔沒有給出這個級別的細節,我真的找不到另一種方式查找......所以幫助!
我希望的代碼和數據格式在這篇文章可讀,因爲這是我第一次張貼在這個論壇 - 所以請原諒我,如果我已經在包括文本「按錯了按鈕」!
感謝您的任何幫助或洞察力,你可以給我。