时间同步
时间同步相关功能的头文件为 uav_time_sync.h
,本文档描述了 uav_time_sync.h
文件中结构体和函数原型的关键信息和使用方法。
目录
宏定义、枚举与结构体
E_UAVTimeSyncType
UAVGetNewestPpsTriggerLocalTimeUsCallback
T_UAVTimeSyncAircraftTime函数原型
UAV_TimeSync_Init
UAV_TimeSync_Deinit<
UAV_TimeSync_SetType
UAV_TimeSync_RegGetNewestPpsTriggerTimeCallback
UAV_TimeSync_TransferToAircraftTime
宏定义、枚举与结构体
typedef enum E_UAVTimeSyncType
时间同步类型。
typedef enum {
UAV_TIME_SYNC_TYPE_UNKNOW = 0,
UAV_TIME_SYNC_TYPE_NTP = 1,
UAV_TIME_SYNC_TYPE_PPS_CLOCK = 2
} E_UAVTimeSyncType;
typedef struct T_UAVTimeSyncAircraftTime
无人机中时间系统的数据结构。
typedef struct {
uint16_t year; /*!< Specifies year. */
uint8_t month; /*!< Specifies month. */
uint8_t day; /*!< Specifies day. */
uint8_t hour; /*!< Specifies hour. */
uint8_t minute; /*!< Specifies minute. */
uint8_t second; /*!< Specifies second. */
uint16_t microseconds; /*!< Specifies mircroseconds. */
}T_UAVTimeSyncAircraftTime;
typedef function UAVGetNewestPpsTriggerLocalTimeUsCallback
- 功能: 获取最新的PPS触发的时间戳。
- product: all。
用于获取最新 PPS 触发时间戳的回调函数原型。
说明:
- 用户不能在回调函数中执行阻塞式操作或函数,因为这会阻塞 UAV_ 根线程,导致系统响应慢、负载断开或死循环等问题。
typedef T_UAVReturnCode (*UAVGetNewestPpsTriggerLocalTimeUsCallback)(uint64_t *localTimeUs);
- 参数loacalTimeUs:指向用于存储 PPS 触发时间戳的内存空间的指针。
- 返回值 根据程序执行的情况输出对应的返回值,详情请参见:UAV 错误码。
函数原型
function UAV_TimeSync_Init
- 功能: 初始化时间同步模块。
- product: all。
在阻塞模式下初始化时间同步模块。 用户应在所有其他时间同步操作之前调用此函数,就像传输时间一样。
说明:
- 该函数的最大执行时间略大于 2000ms。
- 该函数必须在用户任务中调用,而不是 main() 函数,并且在调度程序启动后调用。
T_UAVReturnCode UAV_TimeSync_Init(void);
- 参数none:
- 返回值 根据程序执行的情况输出对应的返回值,详情请参见:UAV 错误码。
function UAV_TimeSync_Deinit
- 功能: 去初始化时间同步模块。
- product: all。
T_UAVReturnCode UAV_TimeSync_Deinit(void);
- 参数none:
- 返回值 根据程序执行的情况输出对应的返回值,详情请参见:UAV 错误码。
function UAV_TimeSync_SetType
- 功能: 设置时间同步类型。
- product: all。
设置时间同步类型函数。
T_UAVReturnCode UAV_TimeSync_SetType(E_UAVTimeSyncType type);
- 参数type:时间同步类型。
- 返回值 根据程序执行的情况输出对应的返回值,详情请参见:UAV 错误码。
function UAV_TimeSync_RegGetNewestPpsTriggerTimeCallback
- 功能: 获取最新的时间戳。
- product: all。
注册回调函数,用于在检测到 PPS 上升沿信号时获取本地时间系统中的最新时间戳。
T_UAVReturnCode UAV_TimeSync_RegGetNewestPpsTriggerTimeCallback(UAVGetNewestPpsTriggerLocalTimeUsCallback callback);<br />
- 参数callback:指向回调函数的指针。
- 返回值 根据程序执行的情况输出对应的返回值,详情请参见:UAV 错误码。
function UAV_TimeSync_TransferToAircraftTime
- 功能: 将负载设备的本地时间转换为无人机上的时间。
- product: all。
说明:
- 在使用本接口时,请调用
UAV_TimeSync_RegGetNewestPpsTriggerTimeCallback()
注册用于获取负载设备检测到 PPS 信号上升沿时,负载设备本地最新的时间戳的回调函数。
T_UAVReturnCode UAV_TimeSync_TransferToAircraftTime(uint64_t localTimeUs, T_UAVTimeSyncAircraftTime *aircraftTime);
- 参数timestamp:负载设备中的本地时间,单位:微秒。aircraft_time:指向用于存储无人机系统时间的内存空间。
- 返回值 根据程序执行的情况输出对应的返回值,详情请参见:UAV 错误码。