2015-09-30 79 views
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); 

此代碼工作很好,這裏是一些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文檔沒有給出這個級別的細節,我真的找不到另一種方式查找......所以幫助!

我希望的代碼和數據格式在這篇文章可讀,因爲這是我第一次張貼在這個論壇 - 所以請原諒我,如果我已經在包括文本「按錯了按鈕」!

感謝您的任何幫助或洞察力,你可以給我。

回答

0

好的。以下是心率訂閱如何在所有版本的Microsoft Band SDK中起作用。

1)當你訂閱,你把心臟速率收集,除非它已經對由於活動或帶固件的被動心臟率監測。

2)當您取消訂閱,打開心臟速率收集關閉,除非固件也收集心臟速率數據由於與上述相同。

3)心臟速率訂閱的速率爲1Hz,並且不能被改變。

4)此訂閱返回的數據是由樂隊計算的心臟速率,而不是直接讀數。因此,Aquiring vs Locked表示Band認爲其閱讀是多麼準確,並且將受用戶佩帶該頻帶的更多影響(比這更緊密)比用戶使用樂隊做什麼活動

因此,延長電池壽命並獲得突發數據,所有你需要做的是訂閱,因爲你希望獲得儘可能多的事件,然後取消。

你是從文檔獲取其他數據指的是如何的心臟速率在內部使用,它不是如何通過SDK的暴露。

相關問題