时间同步

2024-11-14
暂无评分

时间同步相关功能的头文件为dji_time_sync.h,本文档描述了dji_time_sync.h 文件中结构体和函数原型的关键信息和使用方法。

目录

宏定义、枚举与结构体

typedef function DjiGetNewestPpsTriggerLocalTimeUsCallback

功能:获取最新的PPS触发的时间戳 product:all

用于获取最新 PPS 触发时间戳的回调函数原型。

说明: 用户不能在回调函数中执行阻塞式操作或函数,因为这会阻塞 DJI 根线程,导致系统响应慢、负载断开或死循环等问题。

typedef T_PsdkReturnCode (*GetNewestPpsTriggerLocalTimeUsCallback)(uint64_t *localTimeUs);
参数
localTimeUs:指向用于存储 PPS 触发时间戳的内存空间的指针。
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode

typedef struct T_DjiTimeSyncAircraftTime

无人机中时间系统的数据结构

typedef struct {
    uint16_t year;uint8_t month;          月,112
    uint8_t day;            日,131
    uint8_t hour;           小时,023
    uint8_t minute;         分钟,059
    uint8_t second;         秒,059
    uint32_t microsecond;   微秒,0999999.
} T_DjiTimeSyncAircraftTime;

函数原型

function DjiTimeSync_Init

功能:初始化时间同步功能模块 product:all

在阻塞模式下初始化时间同步模块。 用户应在所有其他时间同步操作之前调用此函数,就像传输时间一样。

说明:

  • 该函数的最大执行时间略大于 2000ms。
  • 该函数必须在用户任务中调用,而不是 main() 函数,并且在调度程序启动后调用。
T_DjiReturnCode DjiTimeSync_Init(void);


返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode

function DjiTimeSync_RegGetNewestPpsTriggerTimeCallback

功能:获取最新的时间戳 product:all

注册回调函数,用于在检测到 PPS 上升沿信号时获取本地时间系统中的最新时间戳。

T_DjiReturnCode DjiTimeSync_RegGetNewestPpsTriggerTimeCallback(DjiGetNewestPpsTriggerLocalTimeUsCallback callback);
参数
callback:指向回调函数的指针。
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode

function DjiTimeSync_TransferToAircraftTime

功能:时间转换 product:all

将负载设备的本地时间转换为无人机上的时间。

说明: 在使用本接口时,请调用PsdkTimeSync_RegGetNewestPpsTriggerTimeCallback() 注册用于获取负载设备检测到PPS 信号上升沿时,负载设备本地最新的时间戳的回调函数。

T_DjiReturnCode DjiTimeSync_TransferToAircraftTime(uint64_t localTimeUs, T_DjiTimeSyncAircraftTime *aircraftTime);
参数
localTimeUs:负载设备中的本地时间,单位:微秒
aircraftTime:指向用于存储无人机系统时间的内存空间
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
若您对文档有意见或疑惑,点击可快速反馈,我们会与您联系。