时间同步

2022-07-25

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

结构体与宏定义

typedef struct T_PsdkTimeSyncAircraftTime

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

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_PsdkTimeSyncAircraftTime;

typedef function GetNewestPpsTriggerLocalTimeUsCallback

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

构造用于获取最近的PPS 触发的时间戳的回调函数。

说明: 为防止该函数阻塞PSDK 的主线程,导致出现程序响应缓慢、相机类负载设备断连及死循环等问题,请勿以阻塞的方式在回调函数中执行该函数。

typedef T_PsdkReturnCode (*GetNewestPpsTriggerLocalTimeUsCallback)(uint64_t *localTimeUs);

参数
localTimeUs:pointer to memory space used to store PPS triggered timestamp
返回值
根据程序执行的情况输出对应的返回值,详情请参见:PsdkErrorCode

函数原型

function PsdkTimeSync_Init

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

在使用时间同步功能时,请先以阻塞的方式初始化时间同步功能模块。

说明

  • 该接口执行的时间可能会超过 2000ms;
  • 调度器启动后,请在用户线程中调用该接口,请勿在主函数中调用该接口。
T_PsdkReturnCode PsdkTimeSync_Init(void);

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

function PsdkTimeSync_RegGetNewestPpsTriggerTimeCallback

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

注册用于获取负载设备检测到PPS 信号上升沿时,负载设备本地最新的时间戳的回调函数。

说明: PSDK 使用时间戳同步负载设备和RTK 导航定位系统的时间戳。

T_PsdkReturnCode PsdkTimeSync_RegGetNewestPpsTriggerTimeCallback(GetNewestPpsTriggerLocalTimeUsCallback callback);

参数
callback:指向用于获取负载设备检测到PPS 信号上升沿时,负载设备本地最新的时间戳的回调函数

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

function PsdkTimeSync_TransferToAircraftTime

功能:时间转换 product:all

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

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

T_PsdkReturnCode PsdkTimeSync_TransferToAircraftTime(uint64_t localTimeUs, T_PsdkTimeSyncAircraftTime *aircraftTime);

参数
localTimeUs:负载设备中的本地时间,单位:微秒
aircraftTime:指向用于存储无人机系统时间的内存空间
返回值
根据程序执行的情况输出对应的返回值,详情请参见:PsdkErrorCode