我已成功地从心率传感器及心率质素传感器取得以下资料:
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;64 理查德;获取;上午8:48:19;64 理查德;获取;上午8:48:35;64 理查德;获取;上午8:48:50;64 理查德;获取;上午8:49:05;64
等-所有记录显示获取- 70的心率变化时,该设备是获取心率,而不是从读数。
理查;获取;上午8:52:08;70
记录格式是我的名字,传感器质量,时间,然后心率。";“用作平面文件中的字段分隔符。
然后,我重复了测试,但这次在“运行”锻炼模式下使用带,数据结果如下:
理查德;锁定;上午9:15:32;57 理查德;获取;上午9:15:47;67 理查德;锁定;上午9:16:03;64 理查德;获取;上午9:16:18;62 理查德;锁定;上午9:16:33;72
等等,同样的故事
理查德;锁定;上午9:24:40;73 理查德;锁定;上午9:24:55;72
救命!!以下是几个问题:
SDK文档没有给出这个级别的细节,我真的找不到另一种方法来找出.所以救救我!
我希望代码和数据格式在这篇文章中是可读的,因为这是我第一次在这个论坛上发布-所以请原谅我,如果我已经“按错了按钮”,包括文本!
谢谢你能给我的帮助或洞察力。
发布于 2016-02-02 19:07:50
好的。下面是心率订阅在Microsoft的所有版本中的工作方式。
1)订阅时,启动心率收集,除非由于某项活动或该波段固件的被动心率监视已经启动。
2)取消订阅时,关闭心率收集,除非固件也由于上述相同的原因而收集心率数据。
3)心率订阅率为1Hz,不能改变。
4)从订阅中返回的数据是由波段计算的心率,而不是直接读数。因此,询问vs Locked代表了Band认为它的读数有多精确,并且将更多地受用户戴带的方式的影响(更紧一点对此更好),而不是用户对波段所做的活动。
因此,为了节省电池寿命并以突发方式获取数据,您所要做的就是订阅,获取尽可能多的事件,然后取消订阅。
您从文档中获得的其他数据指的是内部如何使用心率,而不是SDK如何公开心率。
https://stackoverflow.com/questions/32859720
复制相似问题