ql_ntp_client.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*================================================================
  2. Copyright (c) 2021, Quectel Wireless Solutions Co., Ltd. All rights reserved.
  3. Quectel Wireless Solutions Proprietary and Confidential.
  4. =================================================================*/
  5. #ifndef QL_NTP_CLIENT_H
  6. #define QL_NTP_CLIENT_H
  7. typedef int ntp_client_id;
  8. typedef struct{
  9. int pdp_cid;
  10. int sim_id;
  11. int retry_cnt;//表示ntp请求的最大重传次数
  12. int retry_interval_tm;//表示ntp请求超时重传的时间间隔,单位为S
  13. }ql_ntp_sync_option;
  14. typedef enum{
  15. QL_NTP_SUCCESS = 0,
  16. QL_NTP_ERROR_UNKNOWN = 550 | (QL_COMPONENT_LWIP_QNTP << 16),
  17. QL_NTP_ERROR_WODBLOCK = 551 | (QL_COMPONENT_LWIP_QNTP << 16),
  18. QL_NTP_ERROR_INVALID_PARAM = 552 | (QL_COMPONENT_LWIP_QNTP << 16),
  19. QL_NTP_ERROR_OUT_OF_MEM = 553 | (QL_COMPONENT_LWIP_QNTP << 16),
  20. QL_NTP_ERROR_SOCKET_ALLOC_FAIL = 554 | (QL_COMPONENT_LWIP_QNTP << 16),
  21. QL_NTP_ERROR_SOCKET_SEND_FAIL = 558 | (QL_COMPONENT_LWIP_QNTP << 16),
  22. QL_NTP_ERROR_SOCKET_RECV_FAIL = 559 | (QL_COMPONENT_LWIP_QNTP << 16),
  23. QL_NTP_ERROR_OPEN_PDP_FAIL = 561 | (QL_COMPONENT_LWIP_QNTP << 16),
  24. QL_NTP_ERROR_DNS_FAIL = 565 | (QL_COMPONENT_LWIP_QNTP << 16),
  25. QL_NTP_ERROR_TIMEOUT = 569 | (QL_COMPONENT_LWIP_QNTP << 16),
  26. }ql_ntp_error_code_e;
  27. typedef void(*ql_ntp_sync_result_cb)(ntp_client_id cli_id, int result, struct tm *sync_time, void *arg);
  28. /*****************************************************************
  29. * Function: ql_ntp_sync
  30. *
  31. * Description: ntp时间同步函数,启用ntp服务功能
  32. *
  33. * Parameters:
  34. * host [in] ntp服务器IP地址或域名地址,以及端口号.
  35. * user_option [in] 记录pdp相关信息,以及是否同步ntp时间的配置信息
  36. * cb [in] ntp事件回调函数,设置事件类型为ntp,以及对回调结果的判断
  37. * arg [in] 自定义传参
  38. * error_code [out] 返回ntp服务过程中错误代码
  39. *
  40. * Return:
  41. * 记录ntp服务信息的上下文id号
  42. *
  43. *****************************************************************/
  44. ntp_client_id ql_ntp_sync(const char* host, ql_ntp_sync_option *user_option,ql_ntp_sync_result_cb cb, void *arg, int *error_code);
  45. #endif