时间同步
时间同步相关功能的头文件为dji_time_sync.h
,本文档描述了dji_time_sync.h
文件中结构体和函数原型的关键信息和使用方法。
目录
宏定义、枚举与结构体
DjiGetNewestPpsTriggerLocalTimeUsCallback
T_DjiTimeSyncAircraftTime函数原型
DjiTimeSync_Init
DjiTimeSync_RegGetNewestPpsTriggerTimeCallback
DjiTimeSync_TransferToAircraftTime
宏定义、枚举与结构体
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; 月,1~12
uint8_t day; 日,1~31
uint8_t hour; 小时,0~23
uint8_t minute; 分钟,0~59
uint8_t second; 秒,0~59
uint32_t microsecond; 微秒,0~999999.
} 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