我正在做一个项目,我需要传感器数据读数从波段和一个连接的智能手机进行同步。因此,我需要能够找出两个设备之间的时钟差异。事件包含一个时间戳,我可以用于同步,但是这需要一种方法来可靠地强制Band根据请求直接发送传感器读取。
t1s1t2接收响应。现在,智能手机可以近似于连接延迟d = (t2 - t1)/2,并可以将其本地时间设置为s1 + d,使其与波段大致同步。只有当波段在合理的时间内作出响应时,此协议才能正常工作。
getSensorManager().registerXXXEventListener()是这样做的,还是有可能延迟响应(f.e。(为了节约能源)?如果它可能导致延迟,是否有其他方法来获得乐队的当前时间?
发布于 2016-12-15 10:34:59
似乎有一个自动同步。如果您将频带的时钟设置为其他时间,并打印SDK的时间戳,您将注意到它对应于电话时间,而不是频带时间。所以我想电话和频带之间不需要时间同步。
发布于 2016-09-14 17:06:56
拿起一个传感器然后挂上合适的时间戳?没有带我,但我相信ISensorReading::时间戳来自设备?
按照定义,从对象浏览器中取出..。
让我们知道这是否可行..。
namespace Microsoft.Band.Sensors
{
public class BandSensorReadingEventArgs<T> : EventArgs where T : IBandSensorReading
{
public BandSensorReadingEventArgs(T reading);
public T SensorReading { get; }
}
}System.DateTimeOffset 时间戳{ get;} Microsoft.Band.Sensors.IBandSensorReading成员
private async void HeartRate_ReadingChanged(object sender, BandSensorReadingEventArgs<IBandHeartRateReading> e)
{
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
TextBlock_HeartBeatStatus.Text = e.SensorReading.HeartRate.ToString();
DateTimeOffset timestamp = e.SensorReading.Timestamp;
});
}
private async void Accelerometer_ReadingChanged(object sender, BandSensorReadingEventArgs<IBandAccelerometerReading> e)
{
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
string status =
$"x:{e.SensorReading.AccelerationX.ToString("F1")} y:{e.SensorReading.AccelerationY.ToString("F1")} z:{e.SensorReading.AccelerationZ.ToString("F1")}";
TextBlock_AccelStatus.Text = status;
});
DateTimeOffset timestamp = e.SensorReading.Timestamp();
}https://stackoverflow.com/questions/39440530
复制相似问题