Procházet zdrojové kódy

Merge pull request #28 from misonyo/master

[更新]文档格式调整
朱天龙 (Armink) před 7 roky
rodič
revize
848ef6368e
9 změnil soubory, kde provedl 118 přidání a 86 odebrání
  1. 3 3
      README.md
  2. 1 1
      docs/README.md
  3. 72 40
      docs/api.md
  4. 1 1
      docs/introduction.md
  5. 17 9
      docs/port.md
  6. 0 2
      docs/principle.md
  7. 12 15
      docs/samples.md
  8. 11 14
      docs/user-guide.md
  9. 1 1
      docs/version.md

+ 3 - 3
README.md

@@ -18,7 +18,7 @@ OneNET 软件包是 RT-Thread 针对 OneNET 平台连接做的的适配,通过
 
 ### 1.1 目录结构
 
-``` {.c}
+```c
 OneNET
 │   README.md                       // 软件包使用说明
 │   SConscript                      // RT-Thread 默认的构建脚本
@@ -55,7 +55,7 @@ OneNET package  遵循 GUN GPL 许可,详见 `LICENSE` 文件。
 
 使用 `OneNET package` 需要在 RT-Thread 的包管理中选中它,具体路径如下:
 
-```{.c}
+```c
 RT-Thread online packages
     IoT - internet of things  --->
         IoT Cloud  --->
@@ -64,7 +64,7 @@ RT-Thread online packages
 
 进入 onenet 软件包的配置菜单按下图所示配置,里面的信息依据自己的产品和设备的**实际情况**填写
 
-```{.c}
+```c
 --- OneNET: China Mobile OneNet cloud SDK for RT-Thread                            
     [ ]   Enable OneNET sample                                                  
     [*]   Enable support MQTT protocol                                                 

+ 1 - 1
docs/README.md

@@ -2,7 +2,7 @@
 
 ## 文档列表
 
-|文件名                             |描述|
+|**文件名**                             |**描述**|
 |:-----                             |:----|
 |[version.md](version.md)           |版本信息|
 |[introduction.md](introduction.md) |详细介绍|

+ 72 - 40
docs/api.md

@@ -4,21 +4,24 @@
 
 ### OneNET 初始化
 
-> int onenet_mqtt_init(void);
-
+```c
+int onenet_mqtt_init(void);
+```
 OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 
 | **参数**  | **描述**  |
 | :-----   | :-----    |
 |无         | 无       |
-| **返回**  | **描述**  |
+| **返回**  | **--**  |
 |0         | 成功                |
 |-1        | 获得设备信息失败      |
 |-2        | mqtt 客户端初始化失败 |
 
 ### 设置命令响应函数
 
-> void onenet_set_cmd_rsp_cb(void(*cmd_rsp_cb)(uint8_t *recv_data, size_t recv_size, uint8_t **resp_data, size_t *resp_size));
+```c
+void onenet_set_cmd_rsp_cb(void(*cmd_rsp_cb)(uint8_t *recv_data, size_t recv_size, uint8_t **resp_data, size_t *resp_size));
+```
 
 设置命令响应回调函数。
 
@@ -28,14 +31,16 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 |recv_size   | 数据的长度    |
 |resp_data   | 响应数据      |
 |resp_size   | 响应数据的长度 |
-| **返回**    | **描述**     |
+| **返回**  | **--**  |
 |无           | 无          |
 
 ## 数据上传
 
 ### mqtt 上传数据到指定主题
 
-> rt_err_t onenet_mqtt_publish(const char *topic, const uint8_t *msg, size_t len);
+```c
+rt_err_t onenet_mqtt_publish(const char *topic, const uint8_t *msg, size_t len);
+```
 
 利用 mqtt 向指定 topic 发送消息。
 
@@ -44,13 +49,15 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 |topic     | 主题       	|
 |msg       | 要上传的数据   |
 |len       | 数据长度      |
-| **返回**  | **描述**     |
+| **返回**  | **--**  |
 |0         | 上传成功 	   |
 |-1        | 上传失败 	   |
 
 ### mqtt 上传字符串到 OneNET
 
-> rt_err_t onenet_mqtt_upload_string(const char *ds_name, const char *str);
+```c
+rt_err_t onenet_mqtt_upload_string(const char *ds_name, const char *str);
+```
 
 利用 mqtt 向 OneNET 平台发送字符串数据。
 
@@ -58,13 +65,15 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 | :-----   	| :-----  	   |
 |ds_name    | 数据流名称    |
 |str        | 要上传的字符串 |
-| **返回**   | **描述**  	|
+| **返回**  | **--**  |
 |0       	| 上传成功 		|
 |-5      	| 内存不足 		|
 
 ### mqtt 上传数字到 OneNET
 
-> rt_err_t onenet_mqtt_upload_digit(const char *ds_name, const double digit);
+```c
+rt_err_t onenet_mqtt_upload_digit(const char *ds_name, const double digit);
+```
 
 利用 mqtt 向 OneNET 平台发送数字数据。
 
@@ -72,13 +81,15 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 | :-----   	| :-----  	  |
 |ds_name    | 数据流名称   |
 |digit      | 要上传的数字  |
-| **返回**   | **描述**    |
+| **返回**  | **--**  |
 |0       	| 上传成功 	   |
 |-5      	| 内存不足 	   |
 
 ### mqtt 上传二进制文件到 OneNET
 
-> rt_err_t onenet_mqtt_upload_bin(const char *ds_name, const uint8_t *bin, size_t len);
+```c
+rt_err_t onenet_mqtt_upload_bin(const char *ds_name, const uint8_t *bin, size_t len);
+```
 
 利用 mqtt 向 OneNET 平台发送二进制文件。会动态申请内存来保存二进制文件,使用前请确保有足够的内存。
 
@@ -87,13 +98,15 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 |ds_name    | 数据流名称    |
 |bin		| 二进制文件	   |
 |len		| 二进制文件大小 |
-| **返回**   | **描述**     |
+| **返回**  | **--**  |
 |0       	| 上传成功      |
 |-1      	| 上传失败      |
 
 ### mqtt 通过路径上传二进制文件到 OneNET
 
-> rt_err_t onenet_mqtt_upload_bin_by_path(const char *ds_name, const char *bin_path);
+```c
+rt_err_t onenet_mqtt_upload_bin_by_path(const char *ds_name, const char *bin_path);
+```
 
 利用 mqtt 向 OneNET 平台发送二进制文件。
 
@@ -101,13 +114,15 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 | :-----   	| :-----  	  |
 |ds_name    | 数据流名称    |
 |bin_path   | 二进制文件路径 |
-| **返回**   | **描述**     |
+| **返回**  | **--**  |
 |0       	| 上传成功      |
 |-1      	| 上传失败      |
 
 ### http 上传字符串到 OneNET
 
-> rt_err_t onenet_http_upload_string(const char *ds_name, const char *str);
+```c
+rt_err_t onenet_http_upload_string(const char *ds_name, const char *str);
+```
 
 利用 http 向 OneNET 平台发送字符串数据,不推荐使用,推荐使用mqtt上传。
 
@@ -115,13 +130,15 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 | :-----   	| :-----      	|
 |ds_name    | 数据流名称   	 |
 |str        | 要上传的字符串   |
-| **返回**   | **描述**  	  |
+| **返回**  | **--**  |
 |0       	| 上传成功 		  |
 |-5      	| 内存不足	 	  |
 
 ### http 上传数字到 OneNET
 
-> rt_err_t onenet_http_upload_digit(const char *ds_name, const double digit);
+```c
+rt_err_t onenet_http_upload_digit(const char *ds_name, const double digit);
+```
 
 利用 http 向 OneNET 平台发送数字数据,不推荐使用,推荐使用mqtt上传。
 
@@ -129,7 +146,7 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 | :-----   	| :-----  	  |
 |ds_name    | 数据流名称   |
 |digit      | 要上传的数字  |
-| **返回**   | **描述**    |
+| **返回**  | **--**  |
 |0       	| 上传成功     |
 |-5      	| 内存不足     |
 
@@ -137,7 +154,9 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 
 ###  获取数据流信息
 
-> rt_err_t onenet_http_get_datastream(const char *ds_name, struct rt_onenet_ds_info *datastream);
+```c
+rt_err_t onenet_http_get_datastream(const char *ds_name, struct rt_onenet_ds_info *datastream);
+```
 
 从 OneNET 平台获取指定数据流信息,并将信息保存在 datastream 结构体中。
 
@@ -145,14 +164,16 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 | :-----   			| :-----               |
 |ds_name    		| 数据流名称   			|
 |datastream 	| 保存数据流信息的结构体   |
-| **返回**   		   | **描述**  			 |
+| **返回**  | **--**  |
 |0       			| 成功 				  |
 |-1       			| 获取响应失败 		   |
 |-5      			| 内存不足 				|
 
 ###  获取最后N个数据点信息
 
-> cJSON *onenet_get_dp_by_limit(char *ds_name, size_t limit);
+```c
+cJSON *onenet_get_dp_by_limit(char *ds_name, size_t limit);
+```
 
 从 OneNET 平台获取指定数据流的 n 个数据点信息。
 
@@ -160,14 +181,15 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 | :-----	 | :-----  	   	    |
 |ds_name     | 数据流名称    	|
 |limit 		 | 要获取的数据点个数  |
-| **返回**    | **描述**  		 |
+| **返回**  | **--**  |
 |cJSON       | 数据点信息 		 |
 |RT_NULL     | 失败 			   |
 
 ###  获取指定时间内的数据点信息
 
-> cJSON *onenet_get_dp_by_start_end(char *ds_name, uint32_t start, uint32_t end, size_t limit);
-
+```c
+cJSON *onenet_get_dp_by_start_end(char *ds_name, uint32_t start, uint32_t end, size_t limit);
+```
 从 OneNET 平台获取指定数据流指定时间段内的n个数据点信息。时间参数需要填入Unix时间戳。
 
 | **参数**	| **描述**    	  |
@@ -176,14 +198,15 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 |start     	 | 开始查询的时间   	|
 |end     	 | 结束查询的时间   	|
 |limit 		 | 要获取的数据点个数   |
-| **返回**    | **描述**  		  |
+| **返回**  | **--**  |
 |cJSON       | 数据点信息 	  	  |
 |RT_NULL     | 失败 	        	|
 
 ###  获取指定时间n秒的数据点信息
 
-> cJSON *onenet_get_dp_by_start_duration(char *ds_name, uint32_t start, size_t duration, size_t limit);
-
+```c
+cJSON *onenet_get_dp_by_start_duration(char *ds_name, uint32_t start, size_t duration, size_t limit);
+```
 从 OneNET 平台获取指定数据流指定时间后n秒内的n个数据点信息。时间参数需要填入Unix时间戳。
 
 | **参数**	| **描述**    	 |
@@ -192,7 +215,7 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 |start     	 | 开始查询的时间   	|
 |duration    | 要查询的秒数   	|
 |limit 		 | 要获取的数据点个数  |
-| **返回**    | **描述**  	     |
+| **返回**  | **--**  |
 |cJSON       | 数据点信息        |
 |RT_NULL     | 失败   	  	  |
 
@@ -200,21 +223,24 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 
 ### 注册设备
 
-> rt_err_t onenet_http_register_device(const char *dev_name, const char *auth_info);
-
+```c
+rt_err_t onenet_http_register_device(const char *dev_name, const char *auth_info);
+```
 向 OneNET 平台注册设备,并返回设备 id 和 apikey。设备id 和 apikey 会调用 `onenet_port_save_device_info`交由用户处理。
 
 | **参数**	| **描述**|
 | :-----	 | :-----  |
 |dev_name    | 设备名字 |
 |auth_info   | 鉴权信息 |
-| **返回**    | **描述**|
+| **返回**  | **--**  |
 |0       	 | 注册成功 |
 |-5     	 | 内存不足 |
 
 ### 保存设备信息
 
-> rt_err_t onenet_port_save_device_info(char *dev_id, char *api_key); 
+```c
+rt_err_t onenet_port_save_device_info(char *dev_id, char *api_key); 
+```
 
 保存注册后返回的设备信息,需要用户实现。
 
@@ -222,13 +248,15 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 | :-----	 | :-----     |
 |dev_id      | 设备id     |
 |api_key     | 设备apikey |
-| **返回**    | **描述**   |
+| **返回**  | **--**  |
 |0       	 | 成功       |
 |-1          | 失败       |
 
 ### 获取设备注册信息
 
-> rt_err_t onenet_port_get_register_info(char *dev_name, char *auth_info);
+```c
+rt_err_t onenet_port_get_register_info(char *dev_name, char *auth_info);
+```
 
 获取注册设备需要的信息,需要用户实现。
 
@@ -236,13 +264,15 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 | :-----	 | :-----     |
 |ds_name     | 指向存放设备名字的指针 |
 |auth_info   | 指向存放鉴权信息的指针 |
-| **返回**    | **描述**   |
+| **返回**  | **--**  |
 |0       	  | 成功 		|
 |-1       	  | 失败 		|
 
 ### 获取设备信息
 
-> rt_err_t onenet_port_get_device_info(char *dev_id, char *api_key, char *auth_info);
+```c
+rt_err_t onenet_port_get_device_info(char *dev_id, char *api_key, char *auth_info);
+```
 
 获取设备信息用于登陆 OneNET 平台,需要用户实现。
 
@@ -251,19 +281,21 @@ OneNET 初始化函数,需要在使用 OneNET 功能前调用。
 |dev_id      | 指向存放设备id的指针 |
 |api_key     | 指向存放设备apikey的指针 |
 |auth_info   | 指向存放鉴权信息的指针 |
-| **返回**    | **描述**   |
+| **返回**  | **--**  |
 |0           | 成功       |
 |-1          | 失败       |
 
 ### 设备是否注册
 
-> rt_bool_t onenet_port_is_registed(void);
+```c
+rt_bool_t onenet_port_is_registed(void);
+```
 
 判断设备使用已经注册,需要用户实现。
 
 | **参数**	| **描述**  |
 | :-----	 | :-----   |
 |无   		 | 无       |
-| **返回**    | **描述** |
+| **返回**  | **--**  |
 |RT_TURE     | 已经注册  |
 |RT_FALSE    | 未注册    |

+ 1 - 1
docs/introduction.md

@@ -8,7 +8,7 @@ OneNET平台是一个基于物联网产业特点打造的生态环境,可以
 
 ## 文件目录结构
 
-``` {.c}
+```c
 OneNET
 │   README.md                       // 软件包使用说明
 │   SConscript                      // RT-Thread 默认的构建脚本

+ 17 - 9
docs/port.md

@@ -6,7 +6,7 @@ OneNET 软件包已经将硬件平台相关的特性剥离出去,因此 OneNET
 
 如果启用了自动注册,用户需要新建 **onenet_port.c**,并将文件添加至工程。**onenet_port.c** 主要是实现开启自动注册后,获取注册信息、获取设备信息和保存设备信息等功能。接口定义如下所示: 
 
-```{.c}
+```c
 /* 检查是否已经注册 */
 rt_bool_t onenet_port_is_registed(void);
 /* 获取注册信息 */
@@ -19,11 +19,13 @@ rt_err_t onenet_port_get_device_info(char *dev_id, char *api_key, char *auth_inf
 
 ## 获取注册信息
 
-> rt_err_t onenet_port_get_register_info(char *ds_name, char *auth_info)
+```c
+rt_err_t onenet_port_get_register_info(char *ds_name, char *auth_info);
+```
 
 开发者只需要在该接口内,实现注册信息的读取和拷贝即可。
 
-```{.c}
+```c
 onenet_port_get_register_info(char *dev_name, char *auth_info)
 {
     /* 读取或生成设备名字和鉴权信息 */
@@ -34,11 +36,13 @@ onenet_port_get_register_info(char *dev_name, char *auth_info)
 
 ## 保存设备信息
 
-> rt_err_t onenet_port_save_device_info(char *dev_id, char *api_key)
+```c
+rt_err_t onenet_port_save_device_info(char *dev_id, char *api_key);
+```
 
 开发者只需要在该接口内,将注册返回的设备信息保存在设备里即可。
 
-```{.c}
+```c
 onenet_port_save_device_info(char *dev_id, char *api_key)
 {
     /* 保存返回的 dev_id 和 api_key */
@@ -49,11 +53,13 @@ onenet_port_save_device_info(char *dev_id, char *api_key)
 
 ## 检查是否已经注册
 
-> rt_bool_t onenet_port_is_registed(void)
+```c
+rt_bool_t onenet_port_is_registed(void);
+```
 
 开发者只需要在该接口内,返回本设备是否已经在 OneNET 平台注册即可。
 
-```{.c}
+```c
 onenet_port_is_registed(void)
 {
     /* 读取并判断设备的注册状态 */
@@ -64,11 +70,13 @@ onenet_port_is_registed(void)
 
 ## 获取设备信息
 
-> rt_err_t onenet_port_get_device_info(char *dev_id, char *api_key, char *auth_info)
+```c
+rt_err_t onenet_port_get_device_info(char *dev_id, char *api_key, char *auth_info);
+```
 
 开发者只需要在该接口内,读取并返回设备信息即可
 
-```{.c}
+```c
 onenet_port_get_device_info(char *dev_id, char *api_key, char *auth_info)
 {
     /* 读取设备id,api_key和鉴权信息 */

+ 0 - 2
docs/principle.md

@@ -1,7 +1,5 @@
 # OneNET 工作原理
 
-
-
 OneNET 软件包数据的上传和命令的接收是基于 MQTT 实现的,OneNET 的初始化其实就是 MQTT 客户端的初始化,初始化完成后,MQTT 客户端会自动连接 OneNET 平台。数据的上传其实就是往特定的 topic 发布消息。当服务器有命令或者响应需要下发时,会将消息推送给设备。
 
 获取数据流、数据点,发布命令则是基于 HTTP Client 实现的,通过 POST 或 GET 将相应的请求发送给 OneNET 平台,OneNET 将对应的数据返回,这样,我们就能在网页上或者手机 APP 上看到设备上传的数据了。

+ 12 - 15
docs/samples.md

@@ -28,8 +28,6 @@
 
 ![onenet_create_device](figures/onenet_create_device.png)
 
-
-
 #### 添加 APIkey
 
 接入设备之后,可以看到设备列表的界面多了一个设备,设备的右边有一些操作设备的按钮,点击查看详情按钮
@@ -46,9 +44,9 @@
 
 #### 开启 onenet 软件包
 
-打开 env 工具输入 menuconfig 按照下面的路径开启 onenet 软件包
+打开 Env 工具输入 menuconfig 按照下面的路径开启 onenet 软件包
 
-```{.c}
+```c
 RT-Thread online packages
     IoT - internet of things  --->
         IoT Cloud  --->
@@ -57,7 +55,7 @@ RT-Thread online packages
 
 进入 onenet 软件包的配置菜单按下图所示配置,里面的信息依据自己的产品和设备的**实际情况**填写
 
-```{.c}
+```c
 --- OneNET: China Mobile OneNet cloud SDK for RT-Thread                            
     [ ]   Enable OneNET sample                                                  
     [*]   Enable support MQTT protocol                                                 
@@ -88,13 +86,13 @@ RT-Thread online packages
 
 ## 示例文件介绍 ##
 
-利用 ENV 生成工程后,我们可以在工程的 onenet 目录下看到`onenet_sample.c`文件,该文件是 **OneNET** 软件包的示例展示,主要是展示用户如何使用 **OneNET** 软件包上传数据和接收命令。
+利用 Env 生成工程后,我们可以在工程的 onenet 目录下看到`onenet_sample.c`文件,该文件是 **OneNET** 软件包的示例展示,主要是展示用户如何使用 **OneNET** 软件包上传数据和接收命令。
 
 ## 运行示例
 
 在使用 OneNET 软件包之前必须要先调用`onenet_mqtt_init`这个命令进行初始化,初始化完成后设备会自动连接 OneNET 平台。
 
-```{.c}
+```c
 msh />onenet_mqtt_init
 [D/ONENET] (mqtt_connect_callback:85) Enter mqtt_connect_callback!
 [D/[MQTT] ] ipv4 address port: 6002
@@ -108,7 +106,7 @@ msh />[I/[MQTT] ] MQTT server connect success
 
 初始化完成后,用户可以调用`onenet_upload_cycle`这个命令周期性的往云平台上传数据。输入这个命令后,设备会每隔 5s 向数据流 temperature 上传一个随机值。并将上传的数据打印到 shell 窗口。
 
-```{.c}
+```c
 msh />onenet_upload_cycle
 msh />[D/ONENET] (onenet_upload_data:106) buffer : {"temperature":32}
 [D/ONENET] (onenet_upload_data:106) buffer : {"temperature":51}
@@ -127,9 +125,9 @@ msh />[D/ONENET] (onenet_upload_data:106) buffer : {"temperature":32}
 > onenet_mqtt_publish_digit
 > onenet_mqtt_publish_string
 
-命令格式如下所示
+命令格式如下所示
 
-```{.c}
+```c
 onenet_mqtt_publish_digit 数据流名称 要上传的数据
 
 onenet_mqtt_publish_string 数据流名称 要上传的字符串
@@ -137,9 +135,9 @@ onenet_mqtt_publish_string 数据流名称 要上传的字符串
 
 输入命令后没有返回错误信息就表示上传成功。
 
-示例如下
+示例如下:
 
-```{.c}
+```c
 msh />onenet_mqtt_publish_digit test 1
 msh />onenet_mqtt_publish_string test 1
 msh />onenet_mqtt_publish_digit test 2
@@ -154,7 +152,7 @@ msh />onenet_mqtt_publish_string test 1
 
 在初始化时,命令响应回调函数默认指向了空,想要接收命令,必须设置命令响应回调函数,在 shell 中输入命令`onenet_set_cmd_rsp`,就把示例文件里的命令响应回调函数挂载上了,这个响应函数在接收到命令后会把命令打印出来。
 
-```{.c}
+```c
 msh />onenet_set_cmd_rsp
 ```
 
@@ -168,11 +166,10 @@ msh />onenet_set_cmd_rsp
 
 就可以在 shell 中看到云平台下发的命令了。
 
-```{.c}
+```c
 msh />onenet_set_cmd_rsp
 msh />[D/ONENET] (mqtt_callback:60) topic $creq/6db0c1b2-9a7e-5e4a-8897-bf62d4a3461f 
 receive a message
 [D/ONENET] (mqtt_callback:62) message length is 18
 [D/ONENET] (onenet_cmd_rsp_cb:107) recv data is hello rt-thread!
 ```
-

+ 11 - 14
docs/user-guide.md

@@ -2,9 +2,9 @@
 
 ## 准备工作
 
-### OneNET 注册及 ENV 配置
+### OneNET 注册及 Env 配置
 
-这一部分的内容请阅读软件包中示例说明文档,完成 OneNET 平台的注册和 ENV 的配置。
+这一部分的内容请阅读软件包中示例说明文档,完成 OneNET 平台的注册和 Env 的配置。
 
 ### OneNET port 接口移植(仅适用于开启自动注册功能)
 
@@ -14,13 +14,13 @@
 
 ### OneNET 初始化
 
-在 ENV 里面已经配置好了连接云平台需要的各种信息,直接调用`onenet_mqtt_init`函数进行初始化即可,设备会自动连接 OneNET 平台。
+在 Env 里面已经配置好了连接云平台需要的各种信息,直接调用`onenet_mqtt_init`函数进行初始化即可,设备会自动连接 OneNET 平台。
 
 ### 推送数据
 
 当需要上传数据时,可以按照数据类型选择对应的 API 来上传数据。代码示例如下: 
 
-```{.c}
+```c
 char str[] = { "hello world" };
 
 /* 获得温度值 */
@@ -36,7 +36,7 @@ onenet_mqtt_upload_string("string",str);
 
 可以通过`onenet_mqtt_upload_bin`或`onenet_mqtt_upload_bin_by_path`来上传二进制文件。代码示例如下
 
-```{.c}
+```c
 uint8_t buf[] = {0x01, 0x02, 0x03};
 
 /* 将根目录下的1.bin文件上传到 bin 数据流 */
@@ -45,12 +45,11 @@ onenet_mqtt_upload_bin_by_path("bin", "/1.bin");
 onenet_mqtt_upload_bin(("bin", buf, 3);
 ```
 
-
 ### 命令接收
 
 OneNET 支持下发命令,命令是用户自定义的。用户需要自己实现命令响应回调函数,然后利用`onenet_set_cmd_rsp_cb`将回调函数装载上。当设备收到平台下发的命令后,会调用用户实现的命令响应回调函数,等待回调函数执行完成后,将回调函数返回的响应内容再发给云平台。保存响应的内存必须是动态申请出来的,在发送完响应后,程序会自动释放申请的内存。代码示例如下: 
 
-```{.c}
+```c
 static void onenet_cmd_rsp_cb(uint8_t *recv_data, size_t recv_size,uint8_t **resp_data,
 size_t *resp_size)
 {
@@ -61,7 +60,6 @@ size_t *resp_size)
   /* 执行动作 */
   
   /* 返回响应 */
-  
 }
 
 int main()
@@ -83,7 +81,7 @@ int main()
 
 用户可以通过`onenet_http_get_datastream`来获取数据流的信息,包括数据流 id,数据流最后更新时间,数据流单位,数据流当前值等等,获取的数据流信息会保存在传入的 datastream 结构体指针所指向的结构体中。代码示例如下
 
-```{.c}
+```c
 struct rt_onenet_ds_info ds_temp;
 
 /* 获取到 temperature 数据流的信息后保存到 ds_temp 结构体中 */
@@ -102,7 +100,7 @@ onenet_http_get_datastream("temperature",ds_temp);
 
 这三个 API 返回的都是 cJSON 格式的数据点信息,区别只是查询的方法不一样,下面通过示例来讲解如何使用这 3 个 API。
 
-```{.c}
+```c
 /* 获取 temperature 数据流的最后10个数据点信息 */
 dp = onenet_get_dp_by_limit("temperature",10);
 
@@ -116,8 +114,7 @@ dp = onenet_get_dp_by_start_end("temperature",1531983000,1531983320,10);
 dp = onenet_get_dp_by_start_end("temperature",1531983000,50,10);
 ```
 
-## 注意事项
-
-- 设置命令响应回调函数之前必须要先调用`onenet_mqtt_init`函数,在初始化函数里会将回调函数指向RT_NULL。
-- 命令响应回调函数里存放响应内容的 buffer 必须是 malloc 出来的,在发送完响应内容后,程序会将这个 buffer 释放掉。
+!!! note "注意事项"
+    - 设置命令响应回调函数之前必须要先调用`onenet_mqtt_init`函数,在初始化函数里会将回调函数指向RT_NULL。
+    - 命令响应回调函数里存放响应内容的 buffer 必须是 malloc 出来的,在发送完响应内容后,程序会将这个 buffer 释放掉。
 

+ 1 - 1
docs/version.md

@@ -1,6 +1,6 @@
 # 版本和修订
 
-| Date       | Version | Author | Note     |
+| **Date**       | **Version** | **Author** | **Note**     |
 | ---------- | :-----: | :----- | :------- |
 | 2018-07-17 | v0.1.0  | zylx   | 初始版本 |
 | 2018-07-27 | v0.1.1  | zylx   | 添加 mqtt 上传功能 |