Skip to content

Commit e398ffa

Browse files
author
spikelin
committed
C-SDK v3.2.1
1. 新增rrpc同步通信功能及示例 2. 新增广播功能及示例 3. 网关增加绑定/解绑子设备接口 4. 更新文档
1 parent f800546 commit e398ffa

38 files changed

+1687
-101
lines changed

.clang-format

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ AlignConsecutiveMacros: true
55
AlignConsecutiveAssignments: true
66
AllowShortFunctionsOnASingleLine: Inline
77
AllowShortIfStatementsOnASingleLine: false
8+
SortIncludes: false
89
IndentWidth: 4
910
ColumnLimit: 120

CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,12 @@ set(FEATURE_SYSTEM_COMM_ENABLED ON)
6060
# 是否使用HTTPS下载固件
6161
set(FEATURE_OTA_USE_HTTPS ON)
6262

63+
# 是否打开广播功能
64+
set(FEATURE_BROADCAST_ENABLED ON)
65+
66+
# 是否打开RRPC功能
67+
set(FEATURE_RRPC_ENABLED ON)
68+
6369
# 是否打开AT模组TCP功能
6470
set(FEATURE_AT_TCP_ENABLED OFF)
6571

@@ -147,6 +153,8 @@ option(LOG_UPLOAD "Enable LOG_UPLOAD" ${FEATURE_LOG_UPLOAD_ENABLED})
147153
option(DEBUG_DEV_INFO_USED "Enable DEBUG_DEV_INFO_USED" ${FEATURE_DEBUG_DEV_INFO_USED})
148154
option(OTA_USE_HTTPS "Enable OTA_USE_HTTPS" ${FEATURE_OTA_USE_HTTPS})
149155
option(AT_TCP_ENABLED "Enable AT_TCP" ${FEATURE_AT_TCP_ENABLED})
156+
option(BROADCAST_ENABLED "Enable BROADCAST" ${FEATURE_BROADCAST_ENABLED})
157+
option(RRPC_ENABLED "Enable RRPC" ${FEATURE_RRPC_ENABLED})
150158

151159
if(AT_TCP_ENABLED STREQUAL "ON")
152160
option(AT_UART_RECV_IRQ "Enable AT_UART_RECV_IRQ" ${FEATURE_AT_UART_RECV_IRQ})

Makefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,14 @@ $(call CompLib_Map, AT_TCP_ENABLED, \
9090
$(SRC_DIR)/network/at_socket \
9191
)
9292

93+
$(call CompLib_Map, BROADCAST_ENABLED, \
94+
$(SRC_DIR)/services/broadcast \
95+
)
96+
97+
$(call CompLib_Map, RRPC_ENABLED, \
98+
$(SRC_DIR)/services/rrpc \
99+
)
100+
93101
IOTSDK_SRC_FILES := \
94102

95103
$(foreach v, \

docs/C-SDK_API及可变参数说明.md

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ C-SDK 的使用可以根据具体场景需求,配置相应的参数,满足
4141
接口使用示例代码请参考samples目录下的对应代码,以及docs/IoT_Hub目录下的文档说明
4242

4343
### 1. MQTT 接口
44+
关于MQTT接口使用介绍,可以参考SDK docs/IoT_Hub/mqtt_sample_快速入门文档
4445

4546
| 序号 | 函数名 | 说明 |
4647
| ---- | -------------------- | ----------------------------------------------- |
@@ -63,6 +64,7 @@ MQTT构造时候除了提供设备信息,还需要提供一个回调函数,
6364

6465
### 2. 设备影子接口
6566
关于设备影子功能介绍,可以参考[设备影子详情](https://cloud.tencent.com/document/product/634/11918)
67+
同时可以参考SDK docs/IoT_Hub/设备影子文档
6668

6769
| 序号 | 函数名 | 说明 |
6870
| ---- | -------------------------------------------------- | ---------------------------------------------- |
@@ -85,7 +87,8 @@ MQTT构造时候除了提供设备信息,还需要提供一个回调函数,
8587
| 17 | IOT_Shadow_JSON_ConstructDesireAllNull | 在JSON文档中添加 "desired": null 字段 |
8688
| 18 | IOT_Shadow_Get_Mqtt_Client | 获取该ShadowClient对应的MQTTclient |
8789

88-
### 3. CoAP 接口
90+
### CoAP 接口
91+
关于CoAP功能介绍,可以参考SDK docs/IoT_Hub/CoAP通讯文档
8992

9093
| 序号 | 函数名 | 说明 |
9194
| ---- | ---------------------------- | ------------------------------------------------- |
@@ -98,8 +101,9 @@ MQTT构造时候除了提供设备信息,还需要提供一个回调函数,
98101
| 7 | IOT_COAP_GetMessageCode | 获取 COAP Response 消息错误码 |
99102
| 9 | IOT_COAP_GetDeviceInfo | 获取该 COAPclien对应的设备信息 |
100103

101-
### 4. OTA 接口
104+
### OTA 接口
102105
关于 OTA 固件下载功能介绍,可以参考[设备固件升级](https://cloud.tencent.com/document/product/634/14674)
106+
同时可以参考SDK docs/IoT_Hub/固件升级文档
103107

104108
| 序号 | 函数名 | 说明 |
105109
| ---- | ---------------------------- | ------------------------------------------------- |
@@ -117,8 +121,8 @@ MQTT构造时候除了提供设备信息,还需要提供一个回调函数,
117121
| 12 | IOT_OTA_ReportUpgradeSuccess | 当固件升级成功之后,向服务器上报升级成功的状态 |
118122
| 13 | IOT_OTA_ReportUpgradeFail | 当固件升级失败之后,向服务器上报升级失败的状态 |
119123

120-
### 5. 日志接口
121-
设备日志上报云端功能的详细说明可以参考SDK docs目录下物联网通信平台文档设备日志上报功能部分
124+
### 日志接口
125+
设备日志上报云端功能的说明可以参考SDK docs/IoT_Hub/设备日志上报文档
122126

123127
| 序号 | 函数名 | 说明 |
124128
| ---- | -------------------------- | --------------------------------------------- |
@@ -132,29 +136,47 @@ MQTT构造时候除了提供设备信息,还需要提供一个回调函数,
132136
| 8 | IOT_Log_Get_Upload_Level | 返回 SDK 日志上报的等级 |
133137
| 9 | Log_d/i/w/e | 按级别打印添加 SDK 日志的接口 |
134138

135-
### 6. 系统时间接口
139+
### 系统时间接口
136140

137141
| 序号 | 函数名 | 说明 |
138142
| ---- | ---------------------------- | ------------------------------------------------- |
139143
| 1 | IOT_Get_SysTime | 获取 IoT hub 后台系统时间,目前仅支持 MQTT 通道对时功能 |
140144

141-
### 7. 网关功能接口
142-
关于网关功能介绍,可以参考SDK docs目录下物联网通信平台文档网关产品部分
145+
### 网关功能接口
146+
关于网关功能介绍,可以参考SDK docs/IoT_Hub/网关功能文档
143147

144148
| 序号 | 函数名 | 说明 |
145149
| ---- | ---------------------------- | ------------------------------------------------- |
146150
| 1 | IOT_Gateway_Construct | 构造 Gateway client 并完成 MQTT 连接 |
147151
| 2 | IOT_Gateway_Destroy | 关闭 MQTT 连接并销毁 Gateway client |
148-
| 3 | IOT_Gateway_Subdev_Online | 子设备上线 |
149-
| 4 | IOT_Gateway_Subdev_Offline | 子设备下线 |
150-
| 3 | IOT_Gateway_Yield | 在当前线程上下文中,进行 MQTT 报文读取,消息处理,超时请求,心跳包及重连状态管理等任务 |
151-
| 4 | IOT_Gateway_Publish | 发布 MQTT 消息 |
152-
| 5 | IOT_Gateway_Subscribe | 订阅 MQTT 主题 |
153-
| 6 | IOT_Gateway_Unsubscribe | 取消订阅已订阅的 MQTT 主题 |
154-
| 18 | IOT_Gateway_Get_Mqtt_Client | 获取该GatewayClient对应的MQTTclient |
155-
156-
### 8. 动态注册接口
152+
| 3 | IOT_Gateway_Subdev_Bind | 网关绑定子设备 |
153+
| 4 | IOT_Gateway_Subdev_Unbind | 网关解绑子设备 |
154+
| 5 | IOT_Gateway_Subdev_Online | 代理子设备上线 |
155+
| 6 | IOT_Gateway_Subdev_Offline | 代理子设备下线 |
156+
| 7 | IOT_Gateway_Yield | 在当前线程上下文中,进行 MQTT 报文读取,消息处理,超时请求,心跳包及重连状态管理等任务 |
157+
| 8 | IOT_Gateway_Publish | 发布 MQTT 消息 |
158+
| 9 | IOT_Gateway_Subscribe | 订阅 MQTT 主题 |
159+
| 10 | IOT_Gateway_Unsubscribe | 取消订阅已订阅的 MQTT 主题 |
160+
| 11 | IOT_Gateway_Get_Mqtt_Client | 获取该GatewayClient对应的MQTTclient |
161+
162+
### 动态注册接口
163+
关于动态注册功能介绍,可以参考SDK docs/IoT_Hub/动态注册文档
157164

158165
| 序号 | 函数名 | 说明 |
159166
| ---- | ---------------------------- | ------------------------------------------------- |
160167
| 1 | IOT_DynReg_Device | 向后台动态注册设备并获取设备密钥或者证书 |
168+
169+
### 广播通信接口
170+
关于广播通信功能介绍,可以参考SDK docs/IoT_Hub/广播通信文档
171+
172+
| 序号 | 函数名 | 说明 |
173+
| ---- | ---------------------------- | ------------------------------------------------- |
174+
| 1 | IOT_Broadcast_Subscribe | 订阅接收广播消息的主题并提供消息回调处理函数 |
175+
176+
### 同步通信接口
177+
关于同步通信rrpc功能介绍,可以参考SDK docs/IoT_Hub/同步通信文档
178+
179+
| 序号 | 函数名 | 说明 |
180+
| ---- | ---------------------------- | ------------------------------------------------- |
181+
| 1 | IOT_RRPC_Init | 订阅接收rrpc消息的主题并提供消息回调处理函数 |
182+
| 2 | IOT_RRPC_Reply | 回复rrpc消息 |
Lines changed: 9 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# 腾讯云物联网通信 C-SDK
22
腾讯云物联网通信IoT Hub C-SDK 依靠安全且性能强大的数据通道,为物联网领域开发人员提供设备终端和云端的双向通信能力。
3-
本文档介绍SDK的各项功能
3+
以下为SDK各项功能对应的文档
44

55
## 快速入门
6-
请参考**mqtt_sample_快速入门.md**文档,介绍如何在腾讯云物联网通信IoT Hub控制台申请设备, 并结合本 SDK 的**mqtt_sample**快速体验设备端通过 MQTT 协议连接到腾讯云IoT Hub, 发送和接收消息。
6+
请参考**mqtt_sample_快速入门.md**文档,介绍如何在腾讯云物联网通信IoT Hub控制台创建设备, 并结合本 SDK 的**mqtt_sample**快速体验设备端通过 MQTT 协议连接到腾讯云IoT Hub, 发送和接收消息。
77

88
## 设备影子
99
请参考**shadow_sample_设备影子.md**文档,介绍设备影子功能,并结合 SDK 的**shadow_sample**展示影子的数据流和功能
@@ -20,54 +20,15 @@
2020
## 动态注册
2121
请参考**dynreg_dev_sample_动态注册.md**文档,介绍腾讯云物联网的设备接入认证以及动态注册功能。
2222

23-
## 设备日志上报功能
24-
设备端日志上报功能,可将设备端的Log通过HTTP上报到云端,并可在控制台展示,方便用户远程调试、诊断及监控设备运行状况。目前该功能仅支持MQTT模式。
25-
只要将SDK的编译宏FEATURE_LOG_UPLOAD_ENABLED置为y(默认为y),并在控制台设置上报级别,则在代码中调用Log_e/w/i/d接口的日志除了会在终端打印出来,还会上报云端并在控制台展示,如下图。
26-
![](https://main.qcloudimg.com/raw/cae7f9e7cf1e354cfc1e3578eb6746bc.png)
27-
28-
上报级别设置可参见下图,Level级别越大则上报的日志越多,比如Level3(信息)会将ERROR/WARN/INFO级别的日志都上报而DEBUG级别则不上报。控制台默认为关闭状态,则表示设备端仅在MQTT连接失败的时候才会上报ERROR级别日志。
29-
![](https://main.qcloudimg.com/raw/826b648993a267b1cc2f082148d8d073.png)
23+
## 广播通信
24+
请参考**broadcast_sample_广播通信.md**文档,介绍腾讯云物联网的广播通信功能。
3025

31-
代码具体用例可以参考mqtt_sample以及qcloud_iot_export_log.h注释说明,用户除了打开编译宏开关,还需要调用IOT_Log_Init_Uploader函数进行初始化。SDK在IOT_MQTT_Yield函数中会定时进行上报,此外,用户可根据自身需要,在程序出错退出的时候调用IOT_Log_Upload(true)强制上报。同时SDK提供在HTTP通讯出错无法上报日志时的缓存和恢复正常后重新上报机制,但需要用户根据设备具体情况提供相关回调函数,如不提供回调或回调函数提供不全则该缓存机制不生效,HTTP通讯失败时日志会被丢掉。
26+
## 同步通信
27+
请参考**rrpc_sample_同步通信.md**文档,介绍腾讯云物联网的同步通信功能。
3228

33-
打开日志上报功能,请确保编译配置文件CMakeLists.txt中使能下面选项
34-
```
35-
set(FEATURE_LOG_UPLOAD_ENABLED ON)
36-
```
29+
## 设备日志上报功能
30+
请参考**log_upload_设备日志上报.md**文档,介绍设备日志上报功能及使用
3731

3832
## CoAP通讯
39-
IoT Hub支持设备端通过CoAP协议接入,请参考[CoAP 协议说明](https://cloud.tencent.com/document/product/634/14063)
40-
41-
编译运行示例程序coap_sample,首先修改CMakeLists.txt确保以下选项存在(以密钥认证设备为例)
42-
```
43-
set(BUILD_TYPE "release")
44-
set(COMPILE_TOOLS "gcc")
45-
set(PLATFORM "linux")
46-
set(FEATURE_COAP_COMM_ENABLED ON)
47-
set(FEATURE_AUTH_MODE "KEY")
48-
set(FEATURE_AUTH_WITH_NOTLS OFF)
49-
set(FEATURE_DEBUG_DEV_INFO_USED OFF)
50-
```
51-
编译SDK,将控制台创建的设备信息填入device_info.json中
52-
再执行coap_sample
53-
```
54-
./output/release/bin/coap_sample
55-
INF|2019-09-16 23:49:36|device.c|iot_device_info_set(67): SDK_Ver: 3.1.0, Product_ID: S3EUVBRJLB, Device_Name: test_device
56-
INF|2019-09-16 23:49:38|coap_client.c|IOT_COAP_Construct(82): coap connect success
57-
INF|2019-09-16 23:49:38|coap_client_message.c|coap_message_send(402): add coap message id: 9734 into wait list ret: 0
58-
DBG|2019-09-16 23:49:38|coap_client_message.c|_coap_message_handle(295): receive coap piggy ACK message, id 9734
59-
INF|2019-09-16 23:49:38|coap_client_auth.c|_coap_client_auth_callback(43): auth token message success, code_class: 2 code_detail: 5
60-
DBG|2019-09-16 23:49:38|coap_client_auth.c|_coap_client_auth_callback(53): auth_token_len = 10, auth_token = YWAIGGUGUC
61-
DBG|2019-09-16 23:49:38|coap_client_message.c|_coap_message_list_proc(146): remove the message id 9734 from list
62-
INF|2019-09-16 23:49:38|coap_client_message.c|_coap_message_list_proc(85): remove node
63-
INF|2019-09-16 23:49:38|coap_client.c|IOT_COAP_Construct(91): device auth successfully, connid: Xy9W9
64-
INF|2019-09-16 23:49:38|coap_sample.c|main(170): topic name is S3EUVBRJLB/test_device/data
65-
INF|2019-09-16 23:49:38|coap_client_message.c|coap_message_send(402): add coap message id: 9735 into wait list ret: 0
66-
DBG|2019-09-16 23:49:38|coap_sample.c|main(177): client topic has been sent, msg_id: 9735
67-
DBG|2019-09-16 23:49:39|coap_client_message.c|_coap_message_handle(295): receive coap piggy ACK message, id 9735
68-
INF|2019-09-16 23:49:39|coap_sample.c|event_handler(78): message received ACK, msgid: 9735
69-
DBG|2019-09-16 23:49:39|coap_client_message.c|_coap_message_list_proc(146): remove the message id 9735 from list
70-
INF|2019-09-16 23:49:39|coap_client_message.c|_coap_message_list_proc(85): remove node
71-
INF|2019-09-16 23:49:39|coap_client.c|IOT_COAP_Destroy(125): coap release!
72-
```
33+
请参考**coap_sample.md**文档,介绍腾讯云物联网的CoAP协议通信功能
7334

0 commit comments

Comments
 (0)