NTP 开发指导_Rev1.2

English

修订记录

版本

日期

作者

审核

修订内容

Rev1.0

2023-09-19

LJZ

zlc

创建文档

Rev1.1

2024-03-25

sxx

更改文档名称

Rev1.2

2025-05-14

LJZ

优化文档格式

1 简介

本文档介绍 LTE-EC71X NTP 接口 API 情况, API 接口位于 components/kernel/lierda_api/liot_ntp/liot_ntp.h 文件声明。

2 API 函数概览

函数

说明

liot_ntp_sync()

打开 NTP 同步时间的功能

3 类型说明

3.1 liot_ntp_sync_option

NTP 配置信息。

  1. 声明

typedef struct
{
    int pdp_cid;
    int sim_id;
    int retry_cnt;
    int retry_interval_tm;
} liot_ntp_sync_option;
  1. 参数

类型

参数

描述

int

pdp_cid

PDP上下文索引

int

sim_id

SIM卡索引,取值:0-1

int

retry_cnt

重试次数

int

retry_interval_tm

重试间隔时间

3.2 liot_ntp_error_code_e

NTP API 执行结果错误码。

  1. 声明

typedef enum
{
    LIOT_NTP_SUCCESS                 = 0,
    LIOT_NTP_ERROR_UNKNOWN           = -1,
    LIOT_NTP_ERROR_WODBLOCK          = -2,
    LIOT_NTP_ERROR_INVALID_PARAM     = -3,
    LIOT_NTP_ERROR_OUT_OF_MEM        = -4,
    LIOT_NTP_ERROR_TIMEOUT           = -5,
    LIOT_NTP_ERROR_DNS_FAIL          = -6,
    LIOT_NTP_ERROR_SOCKET_ALLOC_FAIL = -7,
    LIOT_NTP_ERROR_SOCKET_SEND_FAIL  = -8,
    LIOT_NTP_ERROR_SOCKET_RECV_FAIL  = -9,
    LIOT_NTP_ERROR_INVALID_REPLY     = -10
} liot_ntp_error_code_e;
  1. 参数

  • LIOT_NTP_SUCCESS: NTP同步成功。

  • LIOT_NTP_ERROR_UNKNOWN:未知错误  。

  • LIOT_NTP_ERROR_WODBLOCK:

  • LIOT_NTP_ERROR_INVALID_PARAM:参数错误。

  • LIOT_NTP_ERROR_OUT_OF_MEM:内存不足。

  • LIOT_NTP_ERROR_TIMEOUT:操作超时。

  • LIOT_NTP_ERROR_DNS_FAIL:DNS解析失败。

  • LIOT_NTP_ERROR_SOCKET_ALLOC_FAIL:socket内存申请失败。

  • LIOT_NTP_ERROR_SOCKET_SEND_FAIL:socket发送失败。

  • LIOT_NTP_ERROR_SOCKET_RECV_FAIL:socket接收失败。

  • LIOT_NTP_ERROR_INVALID_REPLY:回复失败。

4 API 函数详解

4.1 liot_ntp_sync_result_cb

ntp同步结果回调函数。

  1. 声明

typedef void (*liot_ntp_sync_result_cb)(ntp_client_id cli_id, int result, struct tm *sync_time, void *arg);
  1. 参数

  • p_imei:[In] ntp服务信息的上下文id号。

  • result:[In] ntp同步结果。

  • sync_time:[In] 同步时间。

  • arg:[In] 自定义传参。

4.2 liot_ntp_sync

该函数用于获取设备的固件版本。

  1. 声明

ntp_client_id liot_ntp_sync(
    const char *host, liot_ntp_sync_option *user_option, liot_ntp_sync_result_cb cb, void *arg, int *error_code);
  1. 参数

  • host:[In] ntp服务器IP地址或域名地址,以及端口号。

  • user_option:[In] 记录pdp相关信息,以及是否同步ntp时间的配置信息,见liot_ntp_sync_option。

  • cb:[In] ntp事件回调函数,设置事件类型为ntp,以及对回调结果的判断,见liot_ntp_sync_result_cb。

  • arg:[In] 自定义传参。

  • error_code:[Out] 返回ntp服务过程中错误代码。

  1. 返回值

  • ntp_client_id :记录ntp服务信息的上下文id号。

5 代码示例

  1. 示例代码参考  examples/demo/src/demo_ntp.c 文件。

  • 运行结果:

_images/ntp-guide/image_1.png

如上图所示,则说明获取所有信息正常。