psdk时间同步功能

已完成

评论

13 条评论

  • Neil

    是否可以不使用PPS线,在任意时候使用DjiTimeSync_TransferToAircraftTime()来获取飞机时间?

    0
    评论操作 固定链接
  • 1、关于时间不对,这边没有查看到图片,获取到的是GPS时间(UTC),再确认一下是不是跟北京时间相差8小时,不对再提供一下图片(确保GPS信号良好)。 2、PPS是采用硬脉冲来对齐飞机和负载设备的时间,然后基于PPS对齐后来计算时间偏移,对于精度要求较高的时间同步功能必须使用PPS信号线来对齐时间。 具体时间同步功能请参考: 5.16 时间同步(time_sync) https://sdk-forum.dji.net/hc/zh-cn/articles/7025264281241
    0
    评论操作 固定链接
  • Neil

    添加时区后时间是正确的。我这样理解是正确的吗:我是否可以不需要用到PPS引脚,在自己创建的任务中软件调用原本psdklib调用的回调函数,传入任意的时间,然后调用DjiTimeSync_TransferToAircraftTime来获取飞机时间即可。

    同时我尝试了subscription里的GPSDate和GPSTime,订阅没有错误但是返回都是0.

    0
    评论操作 固定链接
  • Neil

    或者可否这样理解:psdk底层记录了一个本地时间与飞机时间的差值。PPS的作用就是调用回调函数来更新这个差值。

    API DjiTimeSync_TransferToAircraftTime就是在current time的基础上加上这个差值并转化为年月日等格式而已

    0
    评论操作 固定链接
  • PPS信号可以看做是一个标记,标记了一个飞机时间和本地时间,同一个PPS下标记的飞机时间和PPS时间是同一个时间点。 飞机发出PPS信号时会记录此时飞机的时间并将这个飞机时间发送给PSDK设备端,但是PSDK软件运行和与飞机的通信都是存在耗时的,PSDK收到飞机时间时,此时飞机的时间实际上已经对不齐了,就会引入误差。PSDK设备端收到PPS信号时记录的本地时间对应到飞机送过来的飞机时间(发出PPS信号),然后设备端本地会基于PPS标记的时间进行时间偏移计算,就可以精确转化到飞机时间。 PPS可以提供时间精度,时间同步功能中是必须要用到的,如果不要求高精度,直接订阅GPS时间就可以了。订阅TOPIC是可以用的,在GPS信号较好的环境再试试。
    0
    评论操作 固定链接
  • Neil

    我明白了。那么如果不使用PPS脚,又不在意传输时间这个精确的对齐,psdk是否还可以获取到飞机发过来的时间?

    也就是说软件打开时间同步功能,在DjiTest_GetNewestPpsTriggerLocalTimeUs给到psdklib固定的一个值(比如1),然后使用DjiTimeSync_TransferToAircraftTime再传入currenttime值为1,仍然可以得到一个偏差值小于500ms的相对准确的时间?

    0
    评论操作 固定链接
  • **时间同步必须连接PPS信号线,不需要精度直接订阅GPS时间即可。**DjiTest_GetNewestPpsTriggerLocalTimeUs按1s间隔传入本地时间也是可以的,但是这个时间没有办法保证是与飞机PPS信号时间小于500ms,会概率性的出现大量的时间无效的报错。
    0
    评论操作 固定链接
  • Neil

    好的。我想显示北京时间的话  在这个输入的基础上加上8*60*60*1000好像不太正常,这样用是可以的吗

    0
    评论操作 固定链接
  • 在获取的飞机时间后加上时区,不要在转换成飞机时间前加时区。
    0
    评论操作 固定链接
  • Neil

    订阅模块里有可以根据GPS获取时区或者经纬度的功能吗?

    0
    评论操作 固定链接
  • 不能订阅时区,可以订阅GPS经纬度。
    0
    评论操作 固定链接
  • Neil
    是否T_DjiFcSubscriptionRtkPosition这个TOPIC?是否需要网络RTK?
    0
    评论操作 固定链接

请先登录再写评论。