时间同步
PSDK 时间同步相关功能的头文件为psdk_time_sync.h
,本文档描述了psdk_time_sync.h
文件中结构体和函数原型的关键信息和使用方法。
结构体与宏定义
typedef struct T_PsdkTimeSyncAircraftTime
无人机中时间系统的数据结构
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_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