Link Kit C-SDK  4.0.0
aiot_ntp_api.h
浏览该文件的文档.
1 
22 #ifndef __AIOT_NTP_API_H__
23 #define __AIOT_NTP_API_H__
24 
25 #if defined(__cplusplus)
26 extern "C" {
27 #endif
28 
29 #include <stdint.h>
30 
34 #define STATE_NTP_BASE (-0x1100)
35 
39 #define STATE_NTP_MISSING_MQTT_HANDLE (-0x1101)
40 
44 typedef enum {
47 
51 typedef struct {
56  union {
60  struct {
61  uint64_t timestamp;
62  uint32_t year;
63  uint32_t mon;
64  uint32_t day;
65  uint32_t hour;
66  uint32_t min;
67  uint32_t sec;
68  uint32_t msec;
69  } local_time;
70  } data;
72 
82 typedef void (* aiot_ntp_recv_handler_t)(void *handle,
83  const aiot_ntp_recv_t *packet, void *userdata);
84 
88 typedef enum {
98 
102 typedef struct {
109 
118 typedef void (*aiot_ntp_event_handler_t)(void *handle, const aiot_ntp_event_t *event, void *userdata);
119 
135 typedef enum {
144 
155 
164 
173 
182 
197 
206 void *aiot_ntp_init(void);
207 
230 int32_t aiot_ntp_setopt(void *handle, aiot_ntp_option_t option, void *data);
231 
242 int32_t aiot_ntp_deinit(void **handle);
243 
257 int32_t aiot_ntp_send_request(void *handle);
258 
259 #if defined(__cplusplus)
260 }
261 #endif
262 
263 #endif /* __AIOT_NTP_API_H__ */
264 
AIOT_MQTTOPT_APPEND_TOPIC_MAP
可在MQTT建立连接之前配置MQTT topic与其对应的回调函数
Definition: aiot_mqtt_api.h:659
_core_ntp_exec_inc
static void _core_ntp_exec_inc(ntp_handle_t *ntp_handle)
Definition: aiot_ntp_api.c:18
aiot_ntp_deinit
int32_t aiot_ntp_deinit(void **handle)
结束ntp会话, 销毁实例并回收资源
Definition: aiot_ntp_api.c:246
STATE_NTP_MISSING_MQTT_HANDLE
#define STATE_NTP_MISSING_MQTT_HANDLE
MQTT会话句柄未设置, 请通过 aiot_ntp_setopt 设置MQTT会话句柄
Definition: aiot_ntp_api.h:39
AIOT_NTPEVT_INVALID_TIME_FORMAT
收到的ntp应答中时间字段格式错误
Definition: aiot_ntp_api.h:96
AIOT_NTPOPT_MAX
Definition: aiot_ntp_api.h:195
_ntp_operate_topic_map
static int32_t _ntp_operate_topic_map(ntp_handle_t *ntp_handle, aiot_mqtt_option_t option)
Definition: aiot_ntp_api.c:101
aiot_mqtt_setopt
int32_t aiot_mqtt_setopt(void *handle, aiot_mqtt_option_t option, void *data)
设置mqtt参数
Definition: aiot_mqtt_api.c:2397
aiot_ntp_recv_t::type
aiot_ntp_recv_type_t type
报文内容所对应的报文类型, 更多信息请参考aiot_ntp_recv_type_t
Definition: aiot_ntp_api.h:55
aiot_ntp_recv_t::sec
uint32_t sec
Definition: aiot_ntp_api.h:67
aiot_sysdep_get_portfile
aiot_sysdep_portfile_t * aiot_sysdep_get_portfile(void)
aiot_ntp_recv_t::local_time
struct aiot_ntp_recv_t::@33::@34 local_time
utc事件戳以及时区换算后的日期, 以 AIOT_NTPOPT_TIME_ZONE 设置的时区为准
AIOT_NTPOPT_DEINIT_TIMEOUT_MS
销毁ntp实例时, 等待其他api执行完毕的时间
Definition: aiot_ntp_api.h:194
aiot_ntp_event_handler_t
void(* aiot_ntp_event_handler_t)(void *handle, const aiot_ntp_event_t *event, void *userdata)
ntp事件回调函数
Definition: aiot_ntp_api.h:118
aiot_ntp_event_type_t
aiot_ntp_event_type_t
ntp内部事件类型
Definition: aiot_ntp_api.h:88
aiot_ntp_recv_t::timestamp
uint64_t timestamp
Definition: aiot_ntp_api.h:61
_ntp_core_mqtt_operate_process_handler
static int32_t _ntp_core_mqtt_operate_process_handler(ntp_handle_t *ntp_handle, core_mqtt_option_t option)
Definition: aiot_ntp_api.c:146
AIOT_MQTTOPT_REMOVE_TOPIC_MAP
取消之前建立的MQTT topic与其回调函数的对应关系
Definition: aiot_mqtt_api.h:668
core_mqtt_get_product_key
char * core_mqtt_get_product_key(void *handle)
Definition: aiot_mqtt_api.c:3676
aiot_mqtt_event_t
MQTT内部事件
Definition: aiot_mqtt_api.h:309
aiot_ntp_option_t
aiot_ntp_option_t
aiot_ntp_setopt 接口的option参数可选值.
Definition: aiot_ntp_api.h:135
aiot_ntp_init
void * aiot_ntp_init(void)
创建ntp会话实例, 并以默认值配置会话参数
Definition: aiot_ntp_api.c:157
aiot_ntp_send_request
int32_t aiot_ntp_send_request(void *handle)
向ntp服务器发送ntp消息请求
Definition: aiot_ntp_api.c:287
AIOT_MQTTRECV_PUB
MQTT PUBLISH报文
Definition: aiot_mqtt_api.h:54
aiot_ntp_setopt
int32_t aiot_ntp_setopt(void *handle, aiot_ntp_option_t option, void *data)
配置ntp会话
Definition: aiot_ntp_api.c:183
AIOT_NTPOPT_MQTT_HANDLE
ntp会话 需要的MQTT句柄, 需要先建立MQTT连接, 再设置MQTT句柄
Definition: aiot_ntp_api.h:143
aiot_ntp_event_t
NTP内部事件
Definition: aiot_ntp_api.h:102
aiot_mqtt_recv_t::type
aiot_mqtt_recv_type_t type
MQTT报文类型, 更多信息请参考aiot_mqtt_recv_type_t
Definition: aiot_mqtt_api.h:211
aiot_sysdep_portfile_t
用以向SDK描述其运行硬件平台的资源如何使用的方法结构体
Definition: aiot_sysdep_api.h:72
STATE_USER_INPUT_EXEC_DISABLED
#define STATE_USER_INPUT_EXEC_DISABLED
用户已调用销毁函数销毁了实例(如aiot_mqtt_deinit), 其余对该实例操作的API不应该再被调用
Definition: aiot_state_api.h:97
aiot_ntp_recv_t::year
uint32_t year
Definition: aiot_ntp_api.h:62
AIOT_NTPEVT_INVALID_RESPONSE
收到的ntp应答中字段不合法
Definition: aiot_ntp_api.h:92
STATE_USER_INPUT_NULL_POINTER
#define STATE_USER_INPUT_NULL_POINTER
用户输入参数中包含非法的空指针
Definition: aiot_state_api.h:49
aiot_sysdep_portfile_t::core_sysdep_mutex_init
void *(* core_sysdep_mutex_init)(void)
创建互斥锁
Definition: aiot_sysdep_api.h:123
aiot_mqtt_topic_map_t::handler
aiot_mqtt_recv_handler_t handler
Definition: aiot_mqtt_api.h:346
aiot_ntp_recv_t::hour
uint32_t hour
Definition: aiot_ntp_api.h:65
_ntp_core_mqtt_process_handler
static void _ntp_core_mqtt_process_handler(void *context, aiot_mqtt_event_t *event, core_mqtt_event_t *core_event)
Definition: aiot_ntp_api.c:127
aiot_ntp_recv_handler_t
void(* aiot_ntp_recv_handler_t)(void *handle, const aiot_ntp_recv_t *packet, void *userdata)
ntp模块收到从网络上来的报文时, 通知用户所调用的数据回调函数
Definition: aiot_ntp_api.h:82
STATE_SUCCESS
#define STATE_SUCCESS
API执行成功
Definition: aiot_state_api.h:37
aiot_ntp_recv_t::msec
uint32_t msec
Definition: aiot_ntp_api.h:68
aiot_sysdep_portfile_t::core_sysdep_malloc
void *(* core_sysdep_malloc)(uint32_t size, char *name)
申请内存
Definition: aiot_sysdep_api.h:76
STATE_MQTT_DEINIT_TIMEOUT
#define STATE_MQTT_DEINIT_TIMEOUT
执行aiot_mqtt_deinit 时, 为等待其他API执行结束, 超过设定的超时时间, MQTT实例销毁失败
Definition: aiot_state_api.h:283
core_mqtt_setopt
int32_t core_mqtt_setopt(void *handle, core_mqtt_option_t option, void *data)
Definition: aiot_mqtt_api.c:2304
aiot_mqtt_topic_map_t::topic
char * topic
Definition: aiot_mqtt_api.h:345
aiot_ntp_recv_t::min
uint32_t min
Definition: aiot_ntp_api.h:66
aiot_mqtt_pub
int32_t aiot_mqtt_pub(void *handle, char *topic, uint8_t *payload, uint32_t payload_len, uint8_t qos)
发送一条PUBLISH报文到MQTT服务器, QoS为0, 用于发布指定的消息
Definition: aiot_mqtt_api.c:3325
aiot_ntp_deinit
int32_t aiot_ntp_deinit(void **handle)
结束ntp会话, 销毁实例并回收资源
Definition: aiot_ntp_api.c:246
aiot_ntp_event_t::type
aiot_ntp_event_type_t type
NTP内部事件类型. 更多信息请参考aiot_ntp_event_type_t
Definition: aiot_ntp_api.h:107
core_mqtt_get_device_name
char * core_mqtt_get_device_name(void *handle)
Definition: aiot_mqtt_api.c:3687
aiot_mqtt_topic_map_t::userdata
void * userdata
Definition: aiot_mqtt_api.h:347
aiot_ntp_recv_t::day
uint32_t day
Definition: aiot_ntp_api.h:64
aiot_ntp_recv_type_t
aiot_ntp_recv_type_t
ntp模块收到从网络上来的报文时, 通知用户的报文类型
Definition: aiot_ntp_api.h:44
aiot_ntp_init
void * aiot_ntp_init(void)
创建ntp会话实例, 并以默认值配置会话参数
Definition: aiot_ntp_api.c:157
_core_ntp_exec_dec
static void _core_ntp_exec_dec(ntp_handle_t *ntp_handle)
Definition: aiot_ntp_api.c:25
aiot_ntp_send_request
int32_t aiot_ntp_send_request(void *handle)
向ntp服务器发送ntp消息请求
Definition: aiot_ntp_api.c:287
_ntp_recv_handler
static void _ntp_recv_handler(void *handle, const aiot_mqtt_recv_t *packet, void *userdata)
Definition: aiot_ntp_api.c:32
STATE_USER_INPUT_UNKNOWN_OPTION
#define STATE_USER_INPUT_UNKNOWN_OPTION
用户输入的配置项不能被SDK的模块所理解
Definition: aiot_state_api.h:61
AIOT_NTPRECV_LOCAL_TIME
Definition: aiot_ntp_api.h:45
aiot_mqtt_recv_t::data
union aiot_mqtt_recv_t::@4 data
MQTT报文联合体, 内容根据type进行选择
aiot_mqtt_recv_t::pub
struct aiot_mqtt_recv_t::@4::@5 pub
MQTT PUBLISH报文
aiot_mqtt_recv_t
Definition: aiot_mqtt_api.h:207
AIOT_NTPOPT_RECV_HANDLER
设置回调, 它在SDK收到网络报文的时候被调用, 告知用户
Definition: aiot_ntp_api.h:163
AIOT_NTPOPT_TIME_ZONE
ntp会话 获取到utc时间后会根据此时区值转换成本地时间, 再通过 aiot_ntp_recv_handler_t 通知
Definition: aiot_ntp_api.h:154
aiot_ntp_recv_t::mon
uint32_t mon
Definition: aiot_ntp_api.h:63
aiot_ntp_recv_t
ntp模块收到从网络上来的报文时, 通知用户的报文内容
Definition: aiot_ntp_api.h:51
aiot_ntp_recv_t::data
union aiot_ntp_recv_t::@33 data
aiot_mqtt_option_t
aiot_mqtt_option_t
aiot_mqtt_setopt 函数的option参数. 对于下文每一个选项中的数据类型, 指的是aiot_mqtt_setopt 中的data参数的数据类型
Definition: aiot_mqtt_api.h:367
aiot_ntp_setopt
int32_t aiot_ntp_setopt(void *handle, aiot_ntp_option_t option, void *data)
配置ntp会话
Definition: aiot_ntp_api.c:183
AIOT_NTPOPT_EVENT_HANDLER
ntp内部发生的事件会从此回调函数进行通知
Definition: aiot_ntp_api.h:172
STATE_USER_INPUT_OUT_RANGE
#define STATE_USER_INPUT_OUT_RANGE
用户输入参数中包含越界的值
Definition: aiot_state_api.h:55
aiot_mqtt_topic_map_t
使用 aiot_mqtt_setopt 配置 AIOT_MQTTOPT_APPEND_TOPIC_MAP 时的数据
Definition: aiot_mqtt_api.h:344
AIOT_NTPOPT_USERDATA
用户需要SDK暂存的上下文
Definition: aiot_ntp_api.h:181