首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种使用SDK使时钟与Microsoft同步的方法?

是否有一种使用SDK使时钟与Microsoft同步的方法?
EN

Stack Overflow用户
提问于 2016-09-11 20:52:10
回答 2查看 84关注 0票数 1

我正在做一个项目,我需要传感器数据读数从波段和一个连接的智能手机进行同步。因此,我需要能够找出两个设备之间的时钟差异。事件包含一个时间戳,我可以用于同步,但是这需要一种方法来可靠地强制Band根据请求直接发送传感器读取。

  1. 智能手机要求从波段(f.e )读取传感器。(通过注册事件侦听器)并记录请求传输的本地时间t1
  2. Band接收到请求并直接响应它,发送其本地时间戳s1
  3. 智能手机在本地时间t2接收响应。

现在,智能手机可以近似于连接延迟d = (t2 - t1)/2,并可以将其本地时间设置为s1 + d,使其与波段大致同步。只有当波段在合理的时间内作出响应时,此协议才能正常工作。

getSensorManager().registerXXXEventListener()是这样做的,还是有可能延迟响应(f.e。(为了节约能源)?如果它可能导致延迟,是否有其他方法来获得乐队的当前时间?

EN

回答 2

Stack Overflow用户

发布于 2016-12-15 10:34:59

似乎有一个自动同步。如果您将频带的时钟设置为其他时间,并打印SDK的时间戳,您将注意到它对应于电话时间,而不是频带时间。所以我想电话和频带之间不需要时间同步。

票数 1
EN

Stack Overflow用户

发布于 2016-09-14 17:06:56

拿起一个传感器然后挂上合适的时间戳?没有带我,但我相信ISensorReading::时间戳来自设备?

按照定义,从对象浏览器中取出..。

让我们知道这是否可行..。

代码语言:javascript
复制
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成员

代码语言:javascript
复制
    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();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39440530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档