Skip to main content

时间同步

时间同步相关功能的头文件为 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 错误码