zqy 2 years ago
parent
commit
a4eea30718
100 changed files with 2402 additions and 0 deletions
  1. 21 0
      docs/DistShedule_Profile/README.md
  2. 30 0
      docs/DistShedule_Profile/alarm_info.md
  3. 143 0
      docs/DistShedule_Profile/护花使者profile定义.md
  4. 28 0
      docs/DistShedule_Profile/智能体重秤profile.md
  5. 40 0
      docs/DistShedule_Profile/智能保险柜profile定义.md
  6. 68 0
      docs/DistShedule_Profile/智能养花机profile定义.md
  7. 77 0
      docs/DistShedule_Profile/智能加湿器profile定义.md
  8. 47 0
      docs/DistShedule_Profile/智能可燃气体检测系统profile定义.md
  9. 78 0
      docs/DistShedule_Profile/智能台灯profile定义.md
  10. 31 0
      docs/DistShedule_Profile/智能垃圾桶profile定义.md
  11. 71 0
      docs/DistShedule_Profile/智能手表profile定义.md
  12. 63 0
      docs/DistShedule_Profile/智能扫地机profile定义.md
  13. 50 0
      docs/DistShedule_Profile/智能烟雾检测系统profile定义.md
  14. 55 0
      docs/DistShedule_Profile/智能煤气检测系统profile定义.md
  15. 59 0
      docs/DistShedule_Profile/智能甲醛检测系统profile定义.md
  16. 75 0
      docs/DistShedule_Profile/智能电子锁profile定义.md
  17. 64 0
      docs/DistShedule_Profile/智能窗帘profile定义.md
  18. 53 0
      docs/DistShedule_Profile/智能门铃profile定义.md
  19. 66 0
      docs/DistShedule_Profile/智能风扇profile定义.md
  20. 345 0
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/README.md
  21. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/board.png
  22. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/build.png
  23. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/build_ok.png
  24. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/build_success.png
  25. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/ccode.png
  26. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/demo.jpg
  27. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/device.png
  28. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/file_all.png
  29. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/hap.png
  30. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/hap_zip.png
  31. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/hb_set.png
  32. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/ing.png
  33. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/out.png
  34. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/process.png
  35. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/select.png
  36. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/serial.png
  37. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/set.png
  38. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/success.png
  39. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/tree_bes2600.png
  40. BIN
      docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/windows.png
  41. 113 0
      docs/MiniSystemApplicationDevelopment_02_GasDetectionUI/README.md
  42. BIN
      docs/MiniSystemApplicationDevelopment_02_GasDetectionUI/resource/gas_detection.gif
  43. BIN
      docs/MiniSystemApplicationDevelopment_02_GasDetectionUI/resource/gas_structure.jpg
  44. 427 0
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/README.md
  45. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/build_fa.png
  46. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/build_succ.png
  47. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/burning.png
  48. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/burning_succ_pic.png
  49. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/data_trans_route.png
  50. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/dev_js_file.png
  51. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/gas_detection.gif
  52. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/gas_detection_hardware.jpg
  53. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/hb_set_image.png
  54. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/image-reset.png
  55. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/jsi_description.png
  56. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/operate_res.png
  57. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/proj_dirs.png
  58. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/sel_and_load.png
  59. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/the_del_file.png
  60. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/usb_serial_port.png
  61. BIN
      docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/wifi_download_main.png
  62. 139 0
      docs/NFC_label_definition/README.md
  63. 59 0
      docs/NFC_label_definition/more_nfc_netconfig_info.md
  64. BIN
      docs/NFC_label_definition/resource/0.png
  65. BIN
      docs/NFC_label_definition/resource/1.png
  66. BIN
      docs/NFC_label_definition/resource/10.png
  67. BIN
      docs/NFC_label_definition/resource/11.png
  68. BIN
      docs/NFC_label_definition/resource/12.png
  69. BIN
      docs/NFC_label_definition/resource/13.png
  70. BIN
      docs/NFC_label_definition/resource/14.png
  71. BIN
      docs/NFC_label_definition/resource/15.png
  72. BIN
      docs/NFC_label_definition/resource/2.png
  73. BIN
      docs/NFC_label_definition/resource/3.png
  74. BIN
      docs/NFC_label_definition/resource/4.png
  75. BIN
      docs/NFC_label_definition/resource/5.png
  76. BIN
      docs/NFC_label_definition/resource/6.png
  77. BIN
      docs/NFC_label_definition/resource/7.jpg
  78. BIN
      docs/NFC_label_definition/resource/8.png
  79. BIN
      docs/NFC_label_definition/resource/9.png
  80. BIN
      docs/NFC_label_definition/resource/NFC_Lamp.jpg
  81. BIN
      docs/NFC_label_definition/resource/nfc_tool.png
  82. 29 0
      docs/NFC_label_definition/数字管家NFC信息生成器.md
  83. 171 0
      docs/RTSPServer/RTSPServer.md
  84. BIN
      docs/RTSPServer/figures/_20211231155410.png
  85. BIN
      docs/RTSPServer/figures/_20211231164256.png
  86. BIN
      docs/RTSPServer/figures/_20220104095638.png
  87. BIN
      docs/RTSPServer/figures/_20220104101004.png
  88. BIN
      docs/RTSPServer/figures/_20220104104509.png
  89. BIN
      docs/RTSPServer/figures/_20220104142410.png
  90. BIN
      docs/RTSPServer/figures/_20220104143327.png
  91. BIN
      docs/RTSPServer/figures/_20220104143330.png
  92. BIN
      docs/RTSPServer/figures/_20220104143339.png
  93. BIN
      docs/RTSPServer/figures/_20220104143946.png
  94. BIN
      docs/RTSPServer/figures/_20220104150345.png
  95. BIN
      docs/RTSPServer/figures/_20220104152141.png
  96. BIN
      docs/RTSPServer/figures/_20220104155903.png
  97. BIN
      docs/RTSPServer/figures/_20220104160446.png
  98. BIN
      docs/RTSPServer/figures/_20220104161434.png
  99. BIN
      docs/RTSPServer/figures/_20220105113750.png
  100. BIN
      docs/SeetaFace2/media/1.jpg

+ 21 - 0
docs/DistShedule_Profile/README.md

@@ -0,0 +1,21 @@
+# 设备模型定义
+
+### 简介
+
+​    profile 设备模型是一种设备与手机应用之间沟通的统一语言。本目录下的设备profile模型文件描述了各种智能设备(例如:智能家务类设备、告警检测设备等)与数字管家应用之间的交互信息。
+
+### 信息交互分类    
+
+其中信息交互主要包括如下三部分:
+
+#####   1)设备命令接收:
+
+​        以智能风扇设备为例,profile 定义了设置风风扇开关、设置风扇挡位、设置风扇相关日程操作命令。
+
+#####   2)设备属性上报:
+
+​        以智能风扇设备为例,profile 定义了设备上报当前的风扇开关状态和风扇挡位信息给到数字管家应用。
+
+#####   3)设备告警上报:
+
+​        以智能烟雾检测设备为例,profile 定义了在超过预先设定好的阈值后,设备发送告警给到数字管家应用。

+ 30 - 0
docs/DistShedule_Profile/alarm_info.md

@@ -0,0 +1,30 @@
+# 关于设备告警信息
+
+#### 简述
+
+为解决服务部能够很好的气氛设备的一般信息(比方亮度,当前燃气值)与紧急信息(电量低,煤气泄漏),特在每个设备模型做一个通用服务。
+
+#### 通用服务 定义如下
+
+```
+{
+	"serviceId":"DeviceAlarm",
+	"properties":
+	{
+		"AlarmType":2,									 // 告警类型(类型int)
+		"ALarmMsg":{"msg_en":"OnFire","msg_zh":"着火"}	// 告警描述(类型json对象)
+	}
+}
+```
+
+告警类型规划如下:
+
+```
+0 -- 一般通知类, FA前端展示为不太紧急的消息,如灯丝寿命提示;每个极端只会上报一次,FA端消除对应通知信息即可
+1 -- 告警类事情,FA前端展示为重要信息,如电量低等,电量剩余20/10/8/6 都会上报一次
+2 -- 紧急事情,FA前端展示为紧急事件,必须操作对应的设备的业务才能消除,否则设备会一直上报该消息(上报周期随业务部同而不同),如燃气告警,除非我们检测到燃气值低,或者设置燃气的报警阈值较高,才会消除这个告警。
+```
+
+告警描述信息:
+
+告警描述信息用于准确的描述该设备告警的具体原因,用于FA前端展示。

+ 143 - 0
docs/DistShedule_Profile/护花使者profile定义.md

@@ -0,0 +1,143 @@
+# 数字管家护花使者设备profile定义说明
+
+##### 下发命令定义
+
+###### 开关浇水(SetMotor)
+
+```
+{ 
+	"service_id": "SmartWatering",                  // 产品服务ID,固定为SmartWatering
+	"command_name": "SetMotor",       				// 命令名称,固定为SetMotor
+	"paras":
+	{
+   		"MotorStatus": "ON"               			// 命令值(类型String):ON/OFF
+   		"Capacity": 200 							// 浇水的容量(类型int) : 1 - 500, 一次浇水不能超过500ml
+	}
+}
+```
+
+###### 开关补光灯(SetLampStatus)
+
+```
+{ 
+	"service_id": "SmartWatering",                  // 产品服务ID,固定为SmartWatering
+	"command_name": "SetLampStatus",       			// 命令名称,固定为SetLampStatus
+	"paras":
+	{
+   		"LampStatus": "ON"               			// 命令值(类型String):ON/OFF
+   		"DutyCycle": 200 							// 灯亮度(类型int) : 0-100
+	}
+}
+```
+
+###### 开关风扇(SetSpeedLevel)
+
+```
+{ 
+	"service_id": "SmartWatering",                  // 产品服务ID,固定为SmartWatering
+	"command_name": "SetSpeedLevel",       			// 命令名称,固定为SetSpeedLevel
+	"paras":
+	{
+   		"LampStatus": "FanStatus"               	// 命令值(类型String):ON/OFF
+   		"SpeedLevel": 0 							// 风扇电机转速(类型int) : 0-4
+	}
+}
+```
+
+
+
+###### 日程设置(SetSchedule)
+
+```
+{
+	"service_id": "SmartWatering",      // 产品服务ID,固定为SmartWatering
+	"command_name": "SetSchedule",     	// 命令名称,固定为SetSchedule
+	"paras":
+ 	{
+ 		"ScheduleID":0			// 日程ID号(类型int): 0 - 65535
+ 		"option":"A"			// 日程操作(类型string):长度为1,暂指定3个操作:A(新增日程),U(更新日程),D(删除日程)
+		"Day": "1,3,5",   		// 开始浇水的日期,以星期为单位 
+								// 取值(类型string): "1,2,3,4,5,6,7", 1-7代表周一到周日,每天之间用逗号(,)隔开,可以只设1天,也可以设置多天
+		"StartHour": 18,     	// 开始浇水的小时时间(类型int) : 0 - 23
+		"StartMinute": 12,   	// 开始浇水的分钟时间(类型int) : 0-59
+		"Command":"{"MotorStatus":"ON", "Capacity": 200}"	// 日程到点后需要执行的命令。 MotorStatus:打开/关闭浇水功能,Capacity:浇水容量
+	}
+}
+```
+
+##### 属性获取定义
+
+属性是指设备当前的一些状态,由设备端主动上报到云端
+
+```
+{
+	serviceId: SmartWatering,      // 产品服务ID,固定为SmartWatering
+	data: 
+	{
+		"MotorStatus":"ON",   		// 当前浇水状态,是否在浇水(类型String):ON/OFF
+		"FanStatus":"ON",   		// 当前风扇电机状态(类型String):ON/OFF
+		"LampStatus":"ON",   		// 当前灯状态状态(类型String):ON/OFF
+		"Temperature":38,			// 当前空气的温度(类型int) 0 - 65535
+		"Humidity":58,         		// 当前空气的湿度(类型int):0 - 65535
+		"Moisture":6    			// 当前土壤的水分(类型int):0 - 65535
+		"Lux":6    			        // 当前光照的强度(类型int):0 - 65535
+		"SpeedLevel":0    			// 当前风扇电机转速(类型int):0 - 4
+  		"DutyCycle":0    			// 当前灯亮度(类型int):0 - 100
+		"Capacity":0    			// 当前水容量(类型int):0 - 500
+	}
+}
+```
+
+
+
+##### 备注
+
+护花使者设备相关信息
+
+| 标签 | 名字                | 描述                                                         | 样例                     |
+| :--: | ------------------- | ------------------------------------------------------------ | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 61f26336de9933029be4e155 |
+|  2   | NodeID              | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节 | Watering01               |
+|  3   | DevicePwd           | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节 | 12345678                 |
+|  4   | 配网标识            | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID              | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-Watering01         |
+
+
+
+FA中Commandutil.java文件里修改补光灯、风扇的serviceId
+
+例如getLampStatusCommand中补光灯设置。
+
+原补光灯serviceId
+
+```
+    public static Command getLampStatusCommand(boolean isOn, int dutyCycle) {
+        JSONObject params = new JSONObject();
+        if (isOn) {
+            params.put("LampStatus", "ON");
+            params.put("DutyCycle", dutyCycle);
+        } else {
+            params.put("LampStatus", "OFF");
+            params.put("DutyCycle", 1);
+        }
+        return new Command("SetLampStatus","SmartLamp", JSONObject.toJSONString(params));
+    }
+```
+
+修改后,补光灯serviceId
+
+```
+    public static Command getLampStatusCommand(boolean isOn, int dutyCycle) {
+        JSONObject params = new JSONObject();
+        if (isOn) {
+            params.put("LampStatus", "ON");
+            params.put("DutyCycle", dutyCycle);
+        } else {
+            params.put("LampStatus", "OFF");
+            params.put("DutyCycle", 0);
+        }
+        return new Command("SetLampStatus", "SmartWatering", JSONObject.toJSONString(params));
+    }
+```
+
+同理可设置风扇的serviceId

+ 28 - 0
docs/DistShedule_Profile/智能体重秤profile.md

@@ -0,0 +1,28 @@
+### 智能体重秤
+
+#### 属性获取定义
+
+属性是指设备当前的一些状态,由设备端主动上报到云端
+
+```
+{
+   serviceId: SmartElectronicScale,
+   data:
+   {
+       "weight":"0", //设备当前称得的重量(类型string),单位kg
+	   “height”:"0"//设备当前测得的高度(类型string),单位m
+   }
+}
+```
+
+#### 备注
+
+智能电子秤设备相关信息,用于写入NFC自定义数据之中
+
+|  标签  | 名字            | 描述                                       | 定义值                        |
+| :--: | ------------- | ---------------------------------------- | -------------------------- |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 61b738902b2aa20288b92ad4   |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | SmartElectronicScale       |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                   |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 2                          |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-SmartElectronicScale |

+ 40 - 0
docs/DistShedule_Profile/智能保险柜profile定义.md

@@ -0,0 +1,40 @@
+智能保险柜profile定义说明
+
+##### 下发命令定义
+
+
+```
+{
+    "service_id": "SmartSafe",       // 产品服务ID,
+    "command_name": "SetDetectionStatus",// 命令名称,
+    "paras": {
+        "VibrationStatus": "ON"                // 命令值(类型String):ON --打开检测 / OFF --关闭检测
+    }
+}
+
+```
+
+##### 上报属性定义
+
+属性是指设备当前的一些状态,由设备端主动上报到云端
+
+```
+{ 
+	"service_id": "SmartSafe",          // 产品服务ID,
+	"data":{
+   		"VibrationValue":"ON",             // 检测振动状态 ON --有振动 OFF --无振动
+	 }
+}
+```
+
+##### 备注
+
+智能保险柜报警设备相关信息,用于写入NFC自定义数据之中
+
+|  标签  | 名字            | 描述                                       | 定义值                      |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 61bc57222b2aa20288caf888 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | Vibra01                  |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-Vibra01            |

+ 68 - 0
docs/DistShedule_Profile/智能养花机profile定义.md

@@ -0,0 +1,68 @@
+# 数字管家自动浇花设备profile定义说明
+
+##### 下发命令定义
+
+###### 开关浇水(SetMotor)
+
+```
+{ 
+	"service_id": "SmartWatering",                  // 产品服务ID,固定为SmartWatering
+	"command_name": "SetMotor",       				// 命令名称,固定为SetMotor
+	"paras":
+	{
+   		"MotorStatus": "ON"               			// 命令值(类型String):ON/OFF
+   		"Capacity": 200 							// 浇水的容量(类型int) : 1 - 500, 一次浇水不能超过500ml
+	}
+}
+```
+
+###### 日程设置(SetSchedule)
+
+```
+{
+	"service_id": "SmartWatering",      // 产品服务ID,固定为SmartWatering
+	"command_name": "SetSchedule",     	// 命令名称,固定为SetSchedule
+	"paras":
+ 	{
+ 		"ScheduleID":0			// 日程ID号(类型int): 0 - 65535
+ 		"option":"A"			// 日程操作(类型string):长度为1,暂指定3个操作:A(新增日程),U(更新日程),D(删除日程)
+		"Day": "1,3,5",   		// 开始浇水的日期,以星期为单位 
+								// 取值(类型string): "1,2,3,4,5,6,7", 1-7代表周一到周日,每天之间用逗号(,)隔开,可以只设1天,也可以设置多天
+		"StartHour": 18,     	// 开始浇水的小时时间(类型int) : 0 - 23
+		"StartMinute": 12,   	// 开始浇水的分钟时间(类型int) : 0-59
+		"Command":"{"MotorStatus":"ON", "Capacity": 200}"	// 日程到点后需要执行的命令。 MotorStatus:打开/关闭浇水功能,Capacity:浇水容量
+	}
+}
+```
+
+##### 属性获取定义
+
+属性是指设备当前的一些状态,由设备端主动上报到云端
+
+```
+{
+	serviceId: SmartWatering,      // 产品服务ID,固定为SmartWatering
+	data: 
+	{
+		"MotorStatus":"ON",   		// 当前浇水状态,是否在浇水(类型String):ON/OFF
+		"Temperature":38,			// 当前空气的温度(类型int) 0 - 65535
+		"Humidity":58,         		// 当前空气的湿度(类型int):0 - 65535
+		"Moisture":6    			// 当前土壤的水分(类型int):0 - 65535
+	}
+}
+```
+
+
+
+##### 备注
+
+自动浇花设备相关信息
+
+|  标签  | 名字            | 描述                                       | 样例                       |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 6135e8fc2cce4f028625ccc9 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | Watering01               |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-Watering01         |
+

+ 77 - 0
docs/DistShedule_Profile/智能加湿器profile定义.md

@@ -0,0 +1,77 @@
+# 分布式日程加湿器profile定义说明
+
+##### 命令下发定义
+
+###### 开关加湿器(SmartHumidifierStatus)
+
+```
+{ 
+	"service_id": "SmartHumidifier",                  // 产品服务ID,固定为SmartHumidifier
+	"command_name": "SetHumidifierStatus",       		// 命令名称,固定为SetHumidifierStatus
+	"paras":
+	{
+   		"HumidifierStatus": "ON"               		// 命令值(类型String):ON/OFF
+	}
+}
+```
+
+###### 阈值设置(SetHumidityThreshold)
+
+```
+{ 
+	"service_id": "SmartHumidifier",            // 产品服务ID,固定为SmartLamp
+	"command_name": "SetHumidityThreshold",   // 命令名称,固定为SetHumidityThreshold
+	"paras": 
+	{
+		"HumidityHig": 60,              	  // 最高湿度阈值,高于设定值,关闭加湿:40-70
+	} 
+} 
+```
+
+####  日程预约提醒模式:
+
+```
+{
+    "service_id":"SmartHumidifier",// 产品服务ID,固定
+    "command_name":"SetSchedule",// 日程预约命令名字,固定
+    "paras":{
+        "ScheduleID":"0", // 日程ID号(int),取值为0-65535, 用于服务端对设备日程的增、删、改
+        "option":"A", // 日程操作类型(string),取值为“A”(增加)、“D”(删除)、“U”(更新)
+        "Day":"1,2,3,4,5,6,7",// 日程的天(星期几)类型(string),已逗号区分的数字,“1,2,3,4,5,6,7”,或者下划线连接的数字,比方“1-7”标识周一到周日
+        "StartHour":11, // 日程的起始时辰,类型(int),取值为0-23
+        "StartMinute":59, // 日程的起始分,类型(int), 取值为0-59
+  	     "Command":{"HumidifierStatus":"ON"}, // 日程的预约动作,类型(string),取值为“ON”(打开)、“OFF”(关闭),
+        "DurationMinutes":5// 日程的预约提醒持续时间,类型(int)
+    }
+}
+```
+
+
+
+##### 属性获取定义
+
+属性是指设备当前的一些状态,由设备端主动上报到云端
+
+```
+{
+	"serviceId": "SmartHumidifier",      // 产品服务ID,固定为SmartHumidifier
+	"data": 
+	{
+		"HumidifierStatus":"ON",   	// 加湿器当前开关状态(类型String):ON/OFF
+		"Humidity":45,              // 当前环境湿度(类型int):0 - 200
+		"HumidityHig": 90,          // 最高湿度阈值:90-120
+	}
+}
+```
+
+##### 设备信息
+
+智能加湿器设备相关信息,用于写入NFC自定义数据之中
+
+|  标签  | 名字            | 描述                                       | 定义值                      |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 61b953b52b2aa20288c07fa9 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | SmartHumidifier01        |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 2                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-SmartHumidifier01  |

+ 47 - 0
docs/DistShedule_Profile/智能可燃气体检测系统profile定义.md

@@ -0,0 +1,47 @@
+# 可燃气体检测profile定义说明
+
+##### 下发命令定义
+
+
+```
+{ 
+	"service_id": "GasDetection",                  // 产品服务ID,
+	"command_name": "SetBeep",       			   // 命令名称,
+	"paras":
+	{
+   		"BeepStatus": "OFF"               		   // 命令值(类型String):ON --响铃 / OFF --关闭响铃
+	}
+}
+```
+
+##### 属性获取定义
+
+属性是指设备当前的一些状态,由设备端主动上报到云端
+
+```
+{ 
+	"service_id": "GasDetection",                  // 产品服务ID,
+	"data":{
+	    "BeepStatus":"ON",   // 当前状态,类型(string),取值为“ON”(打开)、“OFF”(关闭)
+   		"MQ5": 20,           // 当前可燃气体浓度值,类型(int), 取值 0-65535
+   		"Threshold":100,     // 当前TVOC甲醛报警门限,类型(float), 取值0-65535
+	 }
+}
+```
+
+
+
+##### 备注
+
+告警消息见:[告警定义文件](./alarm_info.md)
+
+可燃气体检测设备相关信息,用于写入NFC自定义数据之中
+
+|  标签  | 名字            | 描述                                       | 定义值                      |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 61445c41f74139027d2233e5 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | GasDet01                 |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-GasDet01           |
+

+ 78 - 0
docs/DistShedule_Profile/智能台灯profile定义.md

@@ -0,0 +1,78 @@
+# 数字管家台灯profile定义说明
+
+##### 命令下发定义
+
+###### 开关灯(SetLampStatus)
+
+```
+{ 
+	"service_id": "SmartLamp",                  // 产品服务ID,固定为SmartLamp
+	"command_name": "SetLampStatus",       		// 命令名称,固定为SetLampStatus
+	"paras":
+	{
+   		"LampStatus": "ON"               		// 命令值(类型String):ON/OFF
+   		"DutyCycle":99							// 灯亮度(类型int):1-99
+	}
+}
+```
+
+###### 亮度设置(SetLampDutyCycle)
+
+```
+{ 
+	"service_id": "SmartLamp",            // 产品服务ID,固定为SmartLamp
+	"command_name": "SetLampDutyCycle",   // 命令名称,固定为SetLampDutyCycle
+	"paras": 
+	{
+		"DutyCycle": 99               	  // 命令值:1-99
+	} 
+} 
+```
+
+###### 日程设置(SetSchedule)
+
+```
+{ 
+	"service_id": "SmartLamp",            // 产品服务ID,固定为SmartLamp
+	"command_name": "SetLampShedule",     // 命令名称,固定为SetLampShedule
+	"paras":
+ 	{
+ 		"ScheduleID":0			// 日程ID号(类型int): 0 - 65535
+ 		"option":"A"			// 日程操作(类型string):长度为1,暂指定3个操作:A(新增日程),U(更新日程),D(删除日程)
+		"Day": "1,3,5",   		// 开始亮灯的日期,以星期为单位 
+								// 取值(类型string): "1,2,3,4,5,6,7", 1-7代表周一到周日,每天之间用逗号(,)隔开,可以只设1天,也可以设置多天
+		"StartHour": 18,     	// 开始亮灯的小时时间(类型int) : 0 - 23
+		"StartMinute": 12,   	// 开始亮灯的分钟时间(类型int) : 0-59
+		"DurationMinutes": 1 	// 亮灯持续时间(类型int) : 0 - 1440
+		"Command":"{"LampStatus":"ON","DutyCycle":99}"	// 日程到点后需要执行的命令。
+														// (LampStatus:灯的开关状态,DutyCycle 灯的亮度,取值参照SetLampStatus)
+	}
+}
+```
+
+##### 属性获取定义
+
+属性是指设备当前的一些状态,由设备端主动上报到云端
+
+```
+{
+	serviceId: SmartLamp,      // 产品服务ID,固定为SmartLamp
+	data: 
+	{
+		"LampStatus":"ON",   	// 台灯当前开关状态(类型String):ON/OFF
+		"DutyCycle":99,         // 台灯当前亮度(类型int):0 - 65535
+		"LightIntensity":341    // 台灯当前光强度(类型int):0 - 65535
+	}
+}
+```
+
+##### 产品信息定义
+
+|  标签  | 名字            | 描述                                       | 定义值                      |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 6128c7b60ad1ed0286680f19 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | Lamp01                   |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-Lamp01             |
+

+ 31 - 0
docs/DistShedule_Profile/智能垃圾桶profile定义.md

@@ -0,0 +1,31 @@
+# 智能垃圾桶设备profile定义说明
+
+##### 属性获取定义
+
+属性是指设备当前的一些状态,由设备端主动上报到云端
+
+```
+{ 
+	"service_id": "Trashcan",                  // 产品服务ID,
+	"data":{
+   		"CapacityUsed": 20,          // 当前垃圾桶已用容量百分比,类型(int), 取值 0-100
+	 }
+}
+```
+
+
+
+##### 设备信息
+
+告警消息见:[告警定义文件](./alarm_info.md)
+
+智能垃圾桶设备相关信息,用于写入NFC自定义数据之中
+
+|  标签  | 名字            | 描述                                       | 定义值                      |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 614456cff74139027d2230ec |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | Trashcan01               |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-Trashcan01         |
+

+ 71 - 0
docs/DistShedule_Profile/智能手表profile定义.md

@@ -0,0 +1,71 @@
+### 智能手表Profile定义
+
+#### 添加电话号码:
+
+```
+{
+    "service_id":"SmartWatch",// 产品服务ID,固定
+    "command_name":"AddPhoneNumber",// 设置命令,固定,添加电话号码
+    "paras":{
+    	"name":"father",// 命令参数(string),选项为联系人名称,固定长度24
+        "PhoneNumber":"18688888888"    // 命令参数(string),选项为电话号码,固定长度11
+    }
+}
+```
+####  删除电话号码:
+
+```
+{
+    "service_id":"SmartWatch",    // 产品服务ID,固定
+    "command_name":"DeletePhoneNumber",   // 拨打号码命令名字,固定
+    "paras":{
+    	"name":"father",//命令参数(string),选项为联系人名称,固定长度24
+    }
+}
+```
+
+####  日程预约提醒模式:
+
+```
+{
+    "service_id":"SmartWatch",// 产品服务ID,固定
+    "command_name":"SetSchedule",// 日程预约命令名字,固定
+    "paras":{
+        "ScheduleID":"0", // 日程ID号(int),取值为0-65535, 用于服务端对设备日程的增、删、改
+        "option":"A", // 日程操作类型(string),取值为“A”(增加)、“D”(删除)、“U”(更新)
+        "Day":"1,2,3,4,5,6,7",// 日程的天(星期几)类型(string),已逗号区分的数字,“1,2,3,4,5,6,7”,或者下划线连接的数字,比方“1-7”标识周一到周日
+        "StartHour":11, // 日程的起始时辰,类型(int),取值为0-23
+        "StartMinute":59, // 日程的起始分,类型(int), 取值为0-59
+         "Command":{"name":"喝水"},// 日程的预约提醒内容,类型(string-UTF8格式中文),例如:起床,吃饭,睡觉,吃药,喝水,写作业
+        "DurationMinutes":5// 日程的预约提醒持续时间,类型(int)
+    }
+}
+```
+
+上报GPS地位位置和电话簿联系人信息:
+
+```
+{
+    "service_id":"SmartWatch",// 产品服务ID,固定
+    "data":{
+        "UTCdatetime":"20210916072022.000",//UTC时间,获取到的定位信息的时间
+        "logitude":"114.062765",//经度,类型(string),没有则上报为""
+        "latitude":"22.661522",//纬度,类型(string),没有则上报为""
+        "satellitesinview":"4"//卫星可见颗数,类型(int),没有则上报为""
+        "father":"18686666666",// 命令参数(string),选项为电话簿联系人,固定长度11,若未设置,上报"";
+    	"mother":"18688888888"// 命令参数(string),选项为电话簿联系人,固定长度11,若未设置,上报"";
+    }
+}
+```
+
+####  产品的其他信息定义
+
+智能手表设备相关信息,用于写入NFC自定义数据之中
+
+|  标签  | 名字            | 描述                                       | 定义值                      |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 613ad28b0109930287315230 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | SmartWatch01             |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-SmartWatch01       |

+ 63 - 0
docs/DistShedule_Profile/智能扫地机profile定义.md

@@ -0,0 +1,63 @@
+# 数字管家智能扫地机设备profile定义说明
+
+##### 下发命令定义
+
+
+```
+{ 
+	"service_id": "CleanData",                  // 产品服务ID,
+	"command_name": "CleanCmd",       			// 命令名称,
+	"paras":
+	{
+   		"GoTOClean": "ON"               			// 命令值(类型String):ON --清扫 / OFF --暂停
+	}
+}
+```
+
+###### 日程设置(SetSchedule)
+
+```
+{
+	"service_id": "CleanData",      // 产品服务ID,固定为CleanData
+	"command_name": "SetSchedule",     	// 命令名称,固定为SetSchedule
+	"paras":
+ 	{
+ 		"ScheduleID":0			// 日程ID号(类型int): 0 - 65535
+ 		"Option":"A"			// 日程操作(类型string):长度为1,暂指定3个操作:A(新增日程),U(更新日程),D(删除日程)
+		"Day": "1,3,5",   		// 日程操作扫地机的日期,以星期为单位 
+								// 取值(类型string): "1,2,3,4,5,6,7", 1-7代表周一到周日,每天之间用逗号(,)隔开,可以只设1天,也可以设置多天
+		"StartHour": 18,     	// 操作扫地机的小时时间(类型int) : 0 - 23
+		"StartMinute": 12,   	// 操作扫地机的分钟时间(类型int) : 0-59
+		"DurationMinute": 1 	// 持续清扫时间(类型int) : 0 - 1440
+		"Command": {"GoTOClean":"ON"} 		// 命令(类型string) : ON -- 启动清扫  OFF --停止清扫
+	}
+}
+```
+
+##### 属性获取定义
+
+属性是指设备当前的一些状态,由设备端主动上报到云端
+
+```
+{
+	"service_id":"CleanData",   // 产品服务ID,固定
+	"data":{
+		"CleanerStatus":"ON",         // 当前状态,类型(string),取值为“ON”(清扫)、“OFF”(停止)
+	}
+
+}
+```
+
+
+
+##### 备注
+
+智能扫地机设备相关信息,用于写入NFC自定义数据之中
+
+|  标签  | 名字            | 描述                                       | 定义值                      |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 61371e952cce4f0286262229 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | CleanRobot               |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-CleanRobot         |

+ 50 - 0
docs/DistShedule_Profile/智能烟雾检测系统profile定义.md

@@ -0,0 +1,50 @@
+### 烟雾传感器Profile定义
+
+#### 手动开关烟雾报警:
+
+```
+ {
+	"service_id":"SmartSmokeSensation",       // 产品服务ID,固定
+	"command_name":"SetBeep", // 开关命令名字,固定
+	"paras":{
+		"BeepStatus":"ON",    // 命令参数,控制开关,类型(string),选项为ON(打开)/OFF(关闭)
+	}
+}
+```
+#### 设置烟雾报警门限:
+
+```
+ {
+	"service_id":"SmartSmokeSensation",          // 产品服务ID,固定
+	"command_name":"SetThreshold", // 设置亮度命令名字,固定
+	"paras":{
+		"Threshold":100,                  // 烟雾报警门限,类型(float),取值0-65535
+	}
+}
+```
+####  上报数据:
+
+```
+{
+	"service_id":"SmartSmokeSensation",   // 产品服务ID,固定
+	"data":{
+		"BeepStatus":"ON",   // 当前状态,类型(string),取值为“ON”(打开)、“OFF”(关闭)
+		"MQ2": 20,           // 当前烟雾检测数值,类型(float), 取值0-65535
+		"Threshold":100,     // 当前烟雾报警门限,类型(float), 取值0-65535
+	}
+}
+```
+
+####  产品信息定义
+
+告警消息见:[告警定义文件](./alarm_info.md)
+
+烟雾传感器设备相关信息,用于写入NFC自定义数据之中
+
+|  标签  | 名字            | 描述                                       | 定义值                      |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 6128bdd12cce4f02861e6d98 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | smartsmokesensation01    |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-Smoke01            |

+ 55 - 0
docs/DistShedule_Profile/智能煤气检测系统profile定义.md

@@ -0,0 +1,55 @@
+# 智能煤气检测profile定义说明
+
+##### 下发命令定义
+
+
+```
+{ 
+	"service_id": "SmartCoSensation",                  // 产品服务ID,
+	"command_name": "SetBeep",       			   // 命令名称,
+	"paras":
+	{
+   		"BeepStatus": "OFF"               		   // 命令值(类型String):ON --响铃 / OFF --关闭响铃
+	}
+}
+```
+
+{
+	"service_id":"SmartCoSensation",          // 产品服务ID,固定
+	"command_name":"SetThreshold", // 设置亮度命令名字,固定
+	"paras":{
+		"Threshold":100,                  // 煤气报警门限,类型(float),取值0-65535
+	}
+}
+```
+##### 属性获取定义
+
+属性是指设备当前的一些状态,由设备端主动上报到云端
+
+```
+{ 
+	"service_id": "SmartCoSensation",                  // 产品服务ID,
+	"data":{
+	    "BeepStatus":"ON",   // 当前状态,类型(string),取值为“ON”(打开)、“OFF”(关闭)
+   		"MQ7": 20,           // 当前煤气浓度值,类型(int), 取值 0-65535
+   		"Threshold":100,     // 当前煤气报警门限,类型(float), 取值0-65535
+	 }
+}
+```
+
+
+
+##### 备注
+
+告警消息见:[告警定义文件](./alarm_info.md)
+
+煤气检测设备相关信息,用于写入NFC自定义数据之中
+
+|  标签  | 名字            | 描述                                       | 定义值                      |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 61de758bc7fb24029b0be6f0 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | CoDet01                 |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-CoDet01           |
+

+ 59 - 0
docs/DistShedule_Profile/智能甲醛检测系统profile定义.md

@@ -0,0 +1,59 @@
+# TVOC甲醛检测profile定义说明
+
+##### 下发命令定义
+
+
+```
+{ 
+	"service_id": "TVOCDetection",                  // 产品服务ID,
+	"command_name": "SetBeep",       			   // 命令名称,
+	"paras":
+	{
+   		"BeepStatus": "OFF"               		   // 命令值(类型String):ON --响铃 / OFF --关闭响铃
+	}
+}
+```
+
+#### 设置甲醛气体报警门限:
+
+```
+ {
+	"service_id":"TVOCDetection",          // 产品服务ID,固定
+	"command_name":"SetThreshold",        // 设置亮度命令名字,固定
+	"paras":{
+		"Threshold":100,                  // 可燃气体报警门限,类型(float),取值0-65535
+	}
+}
+```
+
+##### 属性获取定义
+
+属性是指设备当前的一些状态,由设备端主动上报到云端
+
+```
+{ 
+	"service_id": "TVOCDetection",                  // 产品服务ID,
+	"data":{
+	    "BeepStatus":"ON",   // 当前状态,类型(string),取值为“ON”(打开)、“OFF”(关闭)
+   		"TVOC": 20,          // 当前TVOC甲醛气体浓度值,类型(float), 取值 0-65535
+		"Threshold":100,     // 当前TVOC甲醛报警门限,类型(float), 取值0-65535
+	 }
+}
+```
+
+
+
+##### 备注
+
+告警消息见:[告警定义文件](./alarm_info.md)
+
+TVOC甲醛检测设备相关信息,用于写入NFC自定义数据之中
+
+|  标签  | 名字            | 描述                                       | 定义值                      |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 61445cdadcbb87027db095d1 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | TVOCDet01                |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-TVOCDet01          |
+

+ 75 - 0
docs/DistShedule_Profile/智能电子锁profile定义.md

@@ -0,0 +1,75 @@
+#  数字管家智能电子锁设备profile定义说明
+
+#####  下发命令定义
+
+######  锁开关(SetLockStatus)
+
+```
+{ 
+	"service_id": "SmartLock",			// 产品服务ID,固定为 SmartLock
+    "command_name": "SetLockStatus",	// 命令名称,SetLockStatus
+	"paras":
+	{
+		"LockStatus": "ON"		// 命令值(类型String):ON --开锁 OFF --关锁
+		"Disposable": 1			// 是否是一次性密码(类型int)(0--非一次性密码, 1--一次性密码)
+		"LockPsk":"xxxxxxxxx"	// 开锁密码(类型string):经过加密的密码,长度6-8。
+	}
+}
+```
+
+###### 锁密码设置(SetLockPsk)
+
+```
+{ 
+	"service_id": "SmartLock",		// 产品服务ID,固定为 SmartLock
+    "command_name": "SetLockPsk",	// 命令名称,SetLockPsk
+	"paras":
+	{
+		"PskId":"xxxx"				// 密码标识(类型string),每个密码都有唯一的标识
+		"Option": "A"				// 命令值(类型String):暂指定3个操作:
+ 									// A(新增密码),U(更新密码),D(删除密码)
+ 		"Disposable":1				// 是否是一次性密码(类型int)(0--非一次性密码, 1--一次性密码)
+ 		"StartTime":0              	// 一次性密码开始时间(类型 int),单位分钟,
+ 									// 只有Disposable=1时生效
+ 		"EndTime":1               	// 一次性密码结束时间(类型 int),单位分钟,
+ 									// 只有Disposable=1时生效
+		"LockPsk":"xxxxxxxxx"		// 开锁密码(类型string):经过加密的密码,长度6-18。
+	}
+}
+```
+
+##### 属性上报定义
+
+设备状态,主要包含门锁状态以及当前密码的一个状态
+
+```
+{
+	serviceId: SmartLock,      		// 产品服务ID,固定为 SmartLock
+	data: 
+	{
+		"LockAbnormal":1, 			// 门锁是否异常(类型int) 0--门锁正常 其他--门锁状态(1 门长时间未关, 2 开锁密码错误, 8 开锁成功, 9 门已关闭) 
+		"OriginalPsk":1				// 是否是初始密码(类型int) 0--非初始密码 1--是初始密码 
+	}
+}
+```
+
+#####  产品的其他信息定义 
+
+告警消息
+
+1. 门未锁				--	开门一定时间后检测到门未关,通知到FA
+2. 密码被重置        --    某个用户重置密码后,上报通知到所有用户
+
+告警定义:[告警定义文件](./alarm_info.md)
+
+##### 备注
+
+智能电子锁设备相关信息,用于写入NFC自定义数据之中
+
+|  标签  | 名字            | 描述                                       | 定义值                      |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 61bae4814d9b0202871982f0 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | SmartLock01              |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 2                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-SmartLock01        |

+ 64 - 0
docs/DistShedule_Profile/智能窗帘profile定义.md

@@ -0,0 +1,64 @@
+# 数字管家自动窗帘设备profile定义说明
+
+##### 下发命令定义
+
+###### 窗帘开关(SetCurtainStatus)
+
+```
+{ 
+	"service_id": "SmartCurtain",                  // 产品服务ID,固定为SmartCurtain
+	"command_name": "SetCurtainStatus",       				// 命令名称,SetCurtainStatus
+	"paras":
+	{
+   		"CurtainStatus": "OPEN"               			// 命令值(类型String):OPEN --打开窗帘 / CLOSE --关闭窗帘
+	}
+}
+```
+
+###### 日程设置(SetSchedule)
+
+```
+{
+	"service_id": "SmartCurtain",      // 产品服务ID,固定为SmartCurtain
+	"command_name": "SetSchedule",     	// 命令名称,固定为SetSchedule
+	"paras":
+ 	{
+ 		"ScheduleID":0			// 日程ID号(类型int): 0 - 65535
+ 		"option":"A"			// 日程操作(类型string):长度为1,暂指定3个操作:A(新增日程),U(更新日程),D(删除日程)
+		"Day": "1,3,5",   		// 日程操作窗帘的日期,以星期为单位 
+								// 取值(类型string): "1,2,3,4,5,6,7", 1-7代表周一到周日,每天之间用逗号(,)隔开,可以只设1天,也可以设置多天
+		"StartHour": 18,     	// 操作窗帘的小时时间(类型int) : 0 - 23
+		"StartMinute": 12,   	// 操作窗帘的分钟时间(类型int) : 0-59
+		"Command": "OPEN" 		// 命令(类型string) : OPEN -- 打开窗帘  CLOSE -- 关闭窗帘
+	}
+}
+```
+
+##### 属性获取定义
+
+属性是指设备当前的一些状态,由设备端主动上报到云端
+
+```
+{
+	serviceId: SmartCurtain,      // 产品服务ID,固定为SmartCurtain
+	data: 
+	{
+		"CurtainStatus":"ON"   		// 当前窗帘的状态(类型String):OPEN -- 窗帘开  CLOSE -- 窗帘关
+	}
+}
+```
+
+
+
+##### 备注
+
+自动窗帘设备相关信息
+
+|  标签  | 名字            | 描述                                       | 样例                       |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 6136ceba0ad1ed02866fa3b2 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | Curtain01                |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-Curtain01          |
+

+ 53 - 0
docs/DistShedule_Profile/智能门铃profile定义.md

@@ -0,0 +1,53 @@
+智能门铃profile定义说明
+
+##### 下发命令定义
+
+
+```
+{
+    "service_id": "DoorBell",       // 产品服务ID,
+    "command_name": "SetBeepStatus",// 命令名称,
+    "paras": {
+        "Beep": "ON"                // 命令值(类型String):ON --响铃 / OFF --关闭响铃
+    }
+}
+
+
+{
+    "service_id": "DoorBell",       // 产品服务ID,
+    "command_name": "SetLock",      // 命令名称,
+    "paras": {
+         "Lock": "ON"               // 命令值(类型String):ON --开锁 / OFF --关锁    
+    }
+}
+```
+
+##### 属性获取定义
+
+属性是指设备当前的一些状态,由设备端主动上报到云端
+
+```
+{ 
+	"service_id": "DoorBell",          // 产品服务ID,
+	"data":{
+	    "DoorBellStatus":"CALLING_BELL",// 当前智能安防状态,类型(string),取值为“CALLING_BELL”(访客唤铃)、“UNKNOWN_PERSON_APPROACH”(不明人员靠近)、“NO_PERSON_APPROACH”(无人靠近)
+   		"Beep": ON,                    // 当前报警蜂鸣器状态,类型(string),取值为ON(打开)、OFF(关闭)
+   		"Time":"20151212T121212Z",     // 上报事件触发时间
+   		"LockStatus":"ON",             // 门锁状态 on --打开门锁 / off --关闭门锁
+	 }
+}
+```
+
+
+
+##### 设备信息
+
+智能门铃设备相关信息,用于写入NFC自定义数据之中
+
+|  标签  | 名字            | 描述                                       | 定义值                      |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 61ba9cdd2b2aa20288c4f58a |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | DoorBell01               |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 2                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-DoorBell01         |

+ 66 - 0
docs/DistShedule_Profile/智能风扇profile定义.md

@@ -0,0 +1,66 @@
+### 智能风扇  Profile定义
+
+#### 手动开关风扇:
+
+```
+ {
+	"service_id":"SmartFan",       // 产品服务ID,固定
+	"command_name":"SetFanStatus", // 开关命令名字,固定
+	"paras":{
+		"FanStatus":"ON",           // 命令参数,控制风扇开关,类型(string),选项为ON(打开)/OFF(关闭)
+		"SpeedLevel":1,              // 命令参数,风扇挡位(int 类型), 1 - 4   1:风速最小
+	}
+}
+```
+#### 手动调整风扇风速:
+
+```
+ {
+	"service_id":"SmartFan",         // 产品服务ID,固定
+	"command_name":"SetSpeedLevel",  // 设置风扇风速命令名字,固定
+	"paras":{
+		"SpeedLevel":1,              // 命令参数,风扇挡位(int 类型),1 - 4   1:风速最小
+	}
+}
+```
+####  日程预约模式:
+
+```
+{
+	"service_id":"SmartFan",    // 产品服务ID,固定
+	"command_name":"SetSchedule",   // 日程预约命令名字,固定
+    "paras":{
+  	"sheduleID":0,    // 日程ID号(int),取值为0-65535, 用于服务端对设备日程的增、删、改
+  	"option":"A",     // 日程操作类型(string),取值为“A”(增加)、“D”(删除)、“U”(更新)
+  	“Day”:"1,3,5",    // 日程的天(星期几)类型(string),已逗号区分的数字,“1,2,3,4,5,6,7”,或者下划线连接的数字,比方“1-7”标识周一到周日
+  	“StartHour”:18,   // 日程的起始时辰,类型(int),取值为0-23
+  	“StartMinute”:30, // 日程的起始分,类型(int), 取值为0-59
+  	"DurationMinutes":1, 	// 亮灯持续时间(类型int) : 0 - 1440
+  	"Command":{"FanStatus":"ON","SpeedLevel":1}, // 日程的预约动作,类型(string),取值为“ON”(打开)、“OFF”(关闭),如果打开风速,需要携带风扇的风速
+  }
+}
+```
+
+####  上报状态:
+
+```
+{
+	"service_id":"SmartFan",   // 产品服务ID,固定
+	"data":{
+		"FanStatus":"ON",        // 当前状态,类型string, 取值为“ON”(打开)、“OFF”(关闭)
+		"SpeedLevel": 1,          // 当前设置风速风速(int 类型), 取值1-4
+	}
+}
+```
+
+####  产品的其他信息定义
+
+智能风扇设备相关信息,用于写入NFC自定义数据之中
+
+|  标签  | 名字            | 描述                                       | 定义值                      |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 6150601d88056b027dd2ca47 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | Fan01                    |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-Fan01              |

+ 345 - 0
docs/MiniSystemApplicationDevelopment_01_HelloWorld/README.md

@@ -0,0 +1,345 @@
+# 轻量系统应用开发之HelloWorld
+
+## 样例简介
+
+本文档讲述的是如何轻量系统应用开发之HelloWorld的应用,以欧智通BES2600WM开发板为例,重点是带我们快速上手轻量系统应用开发。
+
+### 运行效果
+
+当设备应用启动之后,操作效果如下:
+
+&nbsp;![运行效果](media/demo.jpg)
+
+
+
+### 样例原理
+
+&nbsp;![流程图](media/process.png)
+
+如上流程图所示,样例主要通过最简单的HelloWorld应用来带我们上手如果在轻量系统上开发应用,有哪些环境准备工作,操作步骤。
+
+###  工程版本
+
+- 系统版本/API版本:OpenHarmony 3.1 release
+- IDE版本:DevEco Studio 3.0 Beta2
+
+## 快速上手
+
+### 准备硬件环境
+
+欧智通BES2600/V200Z-R开发板 *1;
+
+### 准备开发环境
+
+- 安装最新版[DevEco Studio](https://gitee.com/link?target=https%3A%2F%2Fdeveloper.harmonyos.com%2Fcn%2Fdevelop%2Fdeveco-studio%23download_beta_openharmony)。
+- 请参考[配置OpenHarmony SDK](https://gitee.com/openharmony/docs/blob/update_master_0323/zh-cn/application-dev/quick-start/configuring-openharmony-sdk.md),完成**DevEco Studio**的安装和开发环境配置。
+
+- 开发基础环境由 windows 工作台和 Linux  编译服务器组成。windows 工作台可以通过 samba 服务或 ssh 方式访问 Linux编译服务器。其中 windows 工作台用来烧录和代码编辑,Linux 编译服务器用来编译 OpenHarmony 代码,为了简化步骤,Linux 编译服务器推荐安装 Ubuntu20.04。
+
+
+#### 安装必备软件
+
+##### 安装和配置Python3
+
+1. 打开Linux终端。
+
+2. 输入如下命令,查看python版本号,需要使用python3.7以上版本,否则参考 [系统基础环境搭建](https://gitee.com/openharmony/docs/blob/OpenHarmony_1.0.1_release/zh-cn/device-dev/quick-start/%E6%90%AD%E5%BB%BA%E7%B3%BB%E7%BB%9F%E5%9F%BA%E7%A1%80%E7%8E%AF%E5%A2%83.md)。
+
+   ```
+   python3 --version
+   ```
+
+3. 安装并升级Python包管理工具(pip3)。
+
+   ```
+   sudo apt-get install python3-setuptools python3-pip -y
+   sudo pip3 install --upgrade pip
+   ```
+
+4. 设置pip的国内镜像
+
+   ```
+   pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
+   ```
+
+
+
+#### 安装交叉编译环境
+
+在Linux编译服务器上搭建好基础开发环境后,需要安装OpenHarmony 编译欧智通BES2600平台特有的开发环境。
+
+##### 安装必备库文件和工具
+
+```
+sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev git git-lfs python
+```
+
+#####  安装编译工具链arm-none-eabi-gcc
+
+1. 打开Linux终端。
+
+2. 下载[arm-none-eabi-gcc](https://gitee.com/link?target=https%3A%2F%2Fdeveloper.arm.com%2F-%2Fmedia%2FFiles%2Fdownloads%2Fgnu-rm%2F10.3-2021.10%2Fgcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2)编译工具。
+
+3. 安装[arm-none-eabi-gcc](https://gitee.com/link?target=https%3A%2F%2Fdeveloper.arm.com%2F-%2Fmedia%2FFiles%2Fdownloads%2Fgnu-rm%2F10.3-2021.10%2Fgcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2)
+
+   解压 [gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2](https://gitee.com/link?target=https%3A%2F%2Fdeveloper.arm.com%2F-%2Fmedia%2FFiles%2Fdownloads%2Fgnu-rm%2F10.3-2021.10%2Fgcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2) 安装包至~/toolchain/路径下。
+
+   ```
+   mkdir -p ~/toolchain/
+   tar -jxvf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 -C ~/toolchain/
+   ```
+
+   设置环境变量。
+
+   ```
+   vim ~/.bashrc
+   ```
+
+   将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
+
+   ```
+   export PATH=~/toolchain/gcc-arm-none-eabi-10.3-2021.10/bin:$PATH
+   ```
+
+   生效环境变量。	
+
+   ```
+   source ~/.bashrc
+   ```
+
+4. 在命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。
+
+   ```
+   arm-none-eabi-gcc -v
+   ```
+
+### 准备工程
+
+#### 准备repo
+
+```
+1)下载repo工具
+mkdir ~/bin
+curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
+chmod a+x ~/bin/repo
+
+2)设置环境变量并生效
+vim ~/.bashrc
+export PATH=~/bin:$PATH
+source ~/.bashrc 
+```
+
+#### 准备应用工程源码
+
+准备应用工程源码,可以选择创建新的工程,也可以直接下载helloWorld应用源码
+
+##### 创建工程
+
+1. 首先需要下载开发IDE选择DevEcoStudio 3.0 Beta2 版本,最新的DevEcoStudio 3.0 Beta3暂不支持轻量系统开发模板
+
+2. 选择轻量系统应用开发: "[Lite]Empty Ability"模板,如图:
+
+   ![开发模板选择](media\select.png)
+
+3. 填写工程信息,点击 “Finish”,至此,新建工程完毕,如图
+
+   ![信息](media\set.png)
+
+##### 下载工程源码
+
+```
+通过repo + https 下载到自己的虚拟机,输入如下repo命令 
+repo init -u https://gitee.com/openharmony-sig/knowledge_demo_smart_home/FA/MiniSystemApplicationDevelopment_01_HelloWorld
+```
+
+#### 编译工程源码
+
+编译工程“Build” ->Build Hap(s)/APP(s)" ->Build Haps(s)",编译通过,生成Hap文件完毕,点击“Build”可查看编译成功
+
+![编译](media\build.png)![编译成功](media\build_ok.png)
+
+#### 生成固件
+
+##### 下载系统源码
+
+```
+通过repo + https 下载到自己的虚拟机,输入如下repo命令 
+repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Release --no-repo-verify
+```
+
+注意:
+
+1.权限问题请参考[生成/添加SSH公钥](https://gitee.com/help/articles/4181)。
+
+2.若在已安装python3.8后,执行repo init 时,仍显示如下错误:
+
+```
+/usr/bin/env: ‘python’: No such file or directory
+```
+
+执行如下命令后,进行重试:
+
+```
+sudo ln -s /usr/bin/python3.8 /usr/bin/python
+```
+
+##### 安装hb
+
+1. 输入如下命令确认hb是否为version 0.4.4 版本以上
+
+   ```
+   hb -v
+   ```
+
+   a. 若提示如下内容,则表示未安装可以从第2步开始操作。
+
+   ```
+   bash: /home/***/.local/bin/hb: No such file or directory
+   ```
+
+   b.若提示如下内容,需要先卸载该版本,然后再执行第2步操作步骤。
+
+   ```
+   [OHOS INFO] hb version 0.4.3
+   ```
+
+   卸载命令:
+
+   ```
+   pip3 uninstall ohos-build
+   ```
+
+2. 运行如下命令安装hb
+
+   ```
+   pip3 install build/lite   // 该命令需在OpenHarmony源码根目录下执行
+   ```
+
+3. 设置环境变量
+
+   ```
+   vim ~/.bashrc
+   ```
+
+   将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
+
+   ```
+   export PATH=~/.local/bin:$PATH
+   ```
+
+   执行如下命令更新环境变量。
+
+   ```
+   source ~/.bashrc
+   ```
+
+4. 再次执行”hb -v“,有以下版本显示则表示安装的hb 0.4.4 以上版本正确。
+
+   ```
+   [OHOS INFO] hb version 0.4.6
+   ```
+
+##### 提取hap文件
+
+1.进入到新建的HelloWrold工程下 “\entry\build\outputs\hap\debug”目录,找到hap包:“entry-debug-lite-unsigned.hap”,为方便解压可将该.hap文件复制一份,并将后缀名修改成 “.zip”,如图:
+
+![hap包](media\hap.png)
+
+2.解压该zip包,依次进入“asset/js/default/” 目录,删除app.js.map,保存剩余的文件,如图:
+
+
+
+![编译](media\hap_zip.png)
+
+##### 集成固件源码
+
+1.下载开发板代码
+
+```
+repo init -u https://gitee.com/openharmonysig/knowledge_demo_smart_home/dev/team_x/MiniSystemApplicationDevelopment_01_HelloWorld_Device 
+```
+
+下载完成后打开bes2600_hello_world 文件如图
+
+![开发板源码](media\tree_bes2600.png)
+
+2.然后将上一节保存的Hap文件拷贝到开发板源码“bes2600_hello_world/fs/data/data/js”目录,如图
+
+![hap文件](media\ccode.png)
+
+3.拉起JS应用需要将开发板源码中的包名与JS工程的包名一致,本应用的包名为com.example.helloworld (注:拉起JS应用接口实现在bes2600_hello_world/demo_bes2600/ability/ability_device.cpp中)
+
+4.最后将修改好的开发板源码bes2600_hello_world文件夹,拷贝到系统代码“openharmony/vendor/bes2600/”  路径下,如图
+
+![最终固件源码](media\file_all.png)
+
+
+
+### 编译
+
+1.在虚拟机进入openharmony/目录,输入命令:“hb set”,需要下载hb工具选择刚才的工程名字:“bes2600_hello_world”,如图:
+
+![编译源码](media\hb_set.png)
+
+2.输入命令:“hb build”,开始编译,打印build success就说明编译通过,生成固件完成,如下图2,图3:拷贝write_flash_gui文件夹到window系统里面,进行固件烧录
+
+![编译源码完成](media\build_success.png)![固件生成](media\out.png)
+
+### 安装
+
+因为欧智通BES2600/V200Z-R 开发板的烧录程序是包含在对应out文件夹对应product目录下的,无需使用额外的烧录工具,在安装了相应驱动文件后,执行烧录可执行文件即可,下面是具体的操作步骤:
+
+1.安装[CP2102驱动](https://www.silabs.com/documents/public/software/CP210x_Windows_Drivers.zip),解压后双击与自己window 版本相匹配的可执行文件,并按相关提示安装驱动文件即可;
+
+2.查看串口com号	
+
+鼠标右键点击PC右下角,打开:“设备管理器(M)”(注: 打开设备管理器前,请确保CP210x串口驱动是否安装)搜索 “端口 -> USB SERIAL Port(COM10*)",需要记住COM*,每台设备的不一样,如图:
+
+(注:假如端口没显示,请拔掉usb口再插上或更换usb线)
+
+![串口](media\device.png)
+
+3.打开wifi烧录工具
+
+固件编译完成以后拷贝~/openharmony/out/v200zr/MiniSystemApplicationDevelopment_03_GasDetectionJSI_Device/write_flash_gui文件夹到windows下(或者利用samba服务直接访问该目录),并双击可执行文件Wifi_download_main.exe,如图:
+
+![烧录软件](media\windows.png)
+
+4.串口选择
+
+- 点击工具上的文件夹图标
+
+- 选择List按钮
+
+- 选择对应的com口,点击“OK”
+
+- 勾选需要烧录的串口, 并点击开始按钮
+
+![烧录窗口](media\serial.png)
+
+5.在开发板上点击reset按键,或者重新上电。
+
+![开发板](media\board.png)
+
+6.进入烧录状态,如图:
+
+![开始烧录](media\ing.png)
+
+7.烧录成功,如图:
+
+![烧录完成](media\success.png)
+
+​    注意:固件烧录完成后需将烧录窗口关闭,再按下设备Reset键设备才能启动。如果未将烧录窗口关闭,设备会再次进行烧写状态。
+
+### 操作体验
+
+1. 将开发板上电,待正常启动后,在开发板显示屏上展示Hello world 文字
+
+   ![gas_detection](media\demo.jpg)
+
+
+## 参考资料
+
+- [欧智通BES2600WM开发板轻量设备上手文档](https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/docs/bes2600_hello_world)
+- [知识体系](https://gitee.com/openharmony-sig/knowledge)
+

BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/board.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/build.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/build_ok.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/build_success.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/ccode.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/demo.jpg


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/device.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/file_all.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/hap.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/hap_zip.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/hb_set.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/ing.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/out.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/process.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/select.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/serial.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/set.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/success.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/tree_bes2600.png


BIN
docs/MiniSystemApplicationDevelopment_01_HelloWorld/media/windows.png


+ 113 - 0
docs/MiniSystemApplicationDevelopment_02_GasDetectionUI/README.md

@@ -0,0 +1,113 @@
+# 轻量系统应用开发之JSI
+
+## 样例简介 
+
+本文档讲述的是轻量系统应用开发之燃气告警器UI开发的快速上手。主要是针对前端界面的开发,使用的轻量系统应用开发框架是基于JS扩展的类Web开发范式。
+
+
+### 运行效果
+
+对于该燃气告警器的操作,如图:
+
+![gas_detection](resource/gas_detection.gif)
+
+
+## 快速上手
+
+### 准备软件环境
+
+首先需要下载开发IDE选择DevEcoStudio 3.0 Beta2 版本,最新的DevEcoStudio 3.0 Beta3暂不支持轻量系统开发模板
+
+创建一个HelloWorld工程
+
+### 燃气告警首页UI开发
+
+页面布局分析
+
+![gas_structure](resource/gas_structure.jpg)
+
+#### 顶部标题栏开发
+
+hml代码(页面布局,需要用到哪些组件和容器)
+
+```
+ <div class="header">
+        <text class="title">燃气报警器</text>
+        <image class="wifi-btn" src="{{ isWifi ? '/common/icon_wifi_on.png' : '/common/icon_wifi_off.png' }}"></image>
+        <image class="change-page" onclick="changePage" src="common/icon_liuzhuan.png"></image>
+    </div>
+```
+
+css代码(存放每个组件和容器所用到的样式,样式主要是设置组件或容器宽、高,字体颜色,字体大小等属性)
+
+
+```
+.header {
+    width: 100%;
+    height: 84px;
+    align-items: center;
+    background-color: #3a3d46;
+}
+
+.title {
+    width: 200px;
+    font-size: 28px;
+    text-align: center;
+    color: #ffffff;
+}
+
+.wifi-btn {
+    width: 38px;
+    height: 38px;
+    margin-left: 150px;
+
+}
+
+.change-page {
+    width: 38px;
+    height: 38px;
+    margin-left: 20px;
+}
+```
+js代码(用于实现逻辑,比如点击事件逻辑的实现,数据刷新等等)
+
+```
+changePage(operation) {
+        router.replace({
+            uri:"pages/dm/dm"
+        });
+    }
+```
+
+#### 中间进度条部分开发
+
+
+```
+    <stack class="body">
+        <div class="disc-wrapper">
+            <text class="text-concentration">{{ currentValue }}ppm</text>
+            <text class="test-dis">燃气浓度</text>
+        </div>
+        <progress class="progress" type="arc"  percent="{{ progressPercent }}"></progress>
+    </stack>
+```
+
+#### 底部设置报警阀值部分
+
+```
+   <div class="bottom-card">
+        <div class="text-body">
+            <text class="test-dis">报警阀值</text>
+            <text class="test-progress">{{ PresetValue }}ppm</text>
+        </div>
+        <image class="progress-btn" on:click="reduceProgress" src="common/icon_jian_sel.png"></image>
+        <progress class="bottom-progress" type="horizontal" class="min-progress" percent="{{ setProgress }}"></progress>
+        <image class="progress-btn" on:click="addProgress" src="common/icon_jia_sel.png"></image>
+    </div>
+
+```
+
+## 参考资料
+- [燃气告警器应用源代码](../../FA/SmartSafeKitchenSmartGasDetection/README.md)
+- [基于JS扩展的类Web开发范式](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Release/zh-cn/application-dev/reference/arkui-js/Readme-CN.md#/)
+- [知识体系](https://gitee.com/openharmony-sig/knowledge)

BIN
docs/MiniSystemApplicationDevelopment_02_GasDetectionUI/resource/gas_detection.gif


BIN
docs/MiniSystemApplicationDevelopment_02_GasDetectionUI/resource/gas_structure.jpg


+ 427 - 0
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/README.md

@@ -0,0 +1,427 @@
+# 轻量系统应用开发之JSI
+
+## 样例简介 
+
+本文档讲述的是轻量系统应用开发之JSI的原理及其样例快速上手。其中,JSI是 OpenHarmony 轻量和小型系统的一种JS API实现机制,适合封装IO、CPU密集型、OS底层等能力并对外暴露JS接口,通过JSI可以实现JS与C/C++代码互相访问。
+
+![image-20220418114657896](resource/jsi_description.png)
+
+本文档基于[轻量系统应用开发之燃气告警器UI开发](https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/docs/MiniSystemApplicationDevelopment_02_GasDetectionUI)介绍了JS端如何动态获取开发板端传送过来的燃气浓度数据,以及JS端设置的燃气浓度阈值如何发送到开发板端。
+
+### 运行效果
+
+对于该燃气告警器的操作,如图:
+
+![gas_detection](resource/gas_detection.gif)
+
+### 样例原理
+
+![image-20220418113839395](resource/data_trans_route.png)
+
+如上图所示,总体来说,据从开发板端到JS端的交互是通过异步来实现的。数据的传递流程如下:
+
+首先,应用端执行传参后,JS端将指定参数传入开发板端,开发板端在主线程中可获取JS传入的JSIValue参数。开发板端,将该获取的JSIValue参数转化为C/C++类型。初始化JSIValue数据,该数据用来保存Work线程返回给js的数据。
+
+然后,为该work线程创建异步工作项,并将该异步工作项加入到消息队列,等待调度。其中,work线程被调度的时候,work线程执行业务逻辑计算结果,将结果写入JSIValue数据。
+
+最后,work线程执行完成之后,通知EventLoop线程,EventLoop线程调用回调函数SuccessCallBack,将该JSIValue结果返回给JS端。
+
+## 快速上手
+
+### 准备硬件环境
+
+欧智通BES2600/V200Z-R开发板 *1;
+
+MQ5燃气检测传感器*1
+
+正常工作无线路由一台(请保证预设 热点名称:test_wifi  密码:12345678  ; 是否能连接互联网均可)
+
+硬件连线图:
+
+![](resource/gas_detection_hardware.jpg)
+
+### 准备开发环境
+
+开发基础环境由 windows 工作台和 Linux  编译服务器组成。windows 工作台可以通过 samba 服务或 ssh 方式访问 Linux编译服务器。其中 windows 工作台用来烧录和代码编辑,Linux 编译服务器用来编译 OpenHarmony 代码,为了简化步骤,Linux 编译服务器推荐安装 Ubuntu20.04。
+
+#### 安装必备软件
+
+##### 安装和配置Python3
+
+1. 打开Linux终端。
+
+2. 输入如下命令,查看python版本号,需要使用python3.7以上版本,否则参考 [系统基础环境搭建](https://gitee.com/openharmony/docs/blob/OpenHarmony_1.0.1_release/zh-cn/device-dev/quick-start/%E6%90%AD%E5%BB%BA%E7%B3%BB%E7%BB%9F%E5%9F%BA%E7%A1%80%E7%8E%AF%E5%A2%83.md)。
+
+   ```
+   python3 --version
+   ```
+
+3. 安装并升级Python包管理工具(pip3)。
+
+   ```
+   sudo apt-get install python3-setuptools python3-pip -y
+   sudo pip3 install --upgrade pip
+   ```
+
+4. 设置pip的国内镜像
+
+   ```
+   pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
+   ```
+
+
+
+#### 安装交叉编译环境
+
+在Linux编译服务器上搭建好基础开发环境后,需要安装OpenHarmony 编译欧智通BES2600平台特有的开发环境。
+
+##### 安装必备库文件和工具
+
+```
+sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev git git-lfs python
+```
+
+#####  安装编译工具链arm-none-eabi-gcc
+
+1. 打开Linux终端。
+
+2. 下载[arm-none-eabi-gcc](https://gitee.com/link?target=https%3A%2F%2Fdeveloper.arm.com%2F-%2Fmedia%2FFiles%2Fdownloads%2Fgnu-rm%2F10.3-2021.10%2Fgcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2)编译工具。
+
+3. 安装[arm-none-eabi-gcc](https://gitee.com/link?target=https%3A%2F%2Fdeveloper.arm.com%2F-%2Fmedia%2FFiles%2Fdownloads%2Fgnu-rm%2F10.3-2021.10%2Fgcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2)
+
+   解压 [gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2](https://gitee.com/link?target=https%3A%2F%2Fdeveloper.arm.com%2F-%2Fmedia%2FFiles%2Fdownloads%2Fgnu-rm%2F10.3-2021.10%2Fgcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2) 安装包至~/toolchain/路径下。
+
+   ```
+   mkdir -p ~/toolchain/
+   tar -jxvf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 -C ~/toolchain/
+   ```
+
+   设置环境变量。
+
+   ```
+   vim ~/.bashrc
+   ```
+
+   将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
+
+   ```
+   export PATH=~/toolchain/gcc-arm-none-eabi-10.3-2021.10/bin:$PATH
+   ```
+
+   生效环境变量。	
+
+   ```
+   source ~/.bashrc
+   ```
+
+4. 在命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。
+
+   ```
+   arm-none-eabi-gcc -v
+   ```
+
+### 准备工程
+
+#### 配置git
++ 提前注册准备码云gitee账号。
++ 生成/添加SSH密钥:生成密钥
+  使用gitee账号绑定的邮箱生成密钥对
+```
+ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
+```
++ 查看生成的密钥
+```
+cat ~/.ssh/id_ed25519.pub
+```
++ 复制生成后的 ssh key,返回gitee个人主页,通过主页 「个人设置」->「安全设置」->「SSH
+公钥」 ,将生成的“SSH密钥”添加到仓库中。
++ 配置git用户信息
+```
+git config --global user.name "yourname"
+git config --global user.email "your-email-address"
+git config --global credential.helper store
+```
+
+#### 准备repo
+
+```
+1)下载repo工具
+mkdir ~/bin
+curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
+chmod a+x ~/bin/repo
+
+2)设置环境变量并生效
+vim ~/.bashrc
+export PATH=~/bin:$PATH
+source ~/.bashrc 
+```
+
+#### 准备系统源码
+
+```
+#特别注意:请下载OpenHarmony 3.1 Release 版本代码
+mkdir ~/openharmony
+cd ~/openharmony
+repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.1-Release --no-repo-verify
+repo sync -c
+repo forall -c 'git lfs pull'
+```
+
+注意:
+
+1.权限问题请参考[生成/添加SSH公钥](https://gitee.com/help/articles/4181)。
+
+2.若在已安装python3.8后,执行repo init 时,仍显示如下错误:
+
+```
+/usr/bin/env: ‘python’: No such file or directory
+```
+
+执行如下命令后,进行重试:
+
+```
+sudo ln -s /usr/bin/python3.8 /usr/bin/python
+```
+
+#### 安装hb
+
+1. 输入如下命令确认hb是否为version 0.4.4 版本以上
+   
+   ```
+   hb -v
+   ```
+   
+   a. 若提示如下内容,则表示未安装可以从第2步开始操作。
+   
+   ```
+   bash: /home/***/.local/bin/hb: No such file or directory
+   ```
+   
+   b.若提示如下内容,需要先卸载该版本,然后再执行第2步操作步骤。
+   
+   ```
+   [OHOS INFO] hb version 0.4.3
+   ```
+   
+   卸载命令:
+   
+   ```
+   pip3 uninstall ohos-build
+   ```
+   
+2. 运行如下命令安装hb
+
+   ```
+   pip3 install build/lite   // 该命令需在OpenHarmony源码根目录下执行
+   ```
+
+3. 设置环境变量
+
+      ```
+      vim ~/.bashrc
+      ```
+
+      将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
+
+      ```
+      export PATH=~/.local/bin:$PATH
+      ```
+
+      执行如下命令更新环境变量。
+
+      ```
+      source ~/.bashrc
+      ```
+
+4. 再次执行”hb -v“,有以下版本显示则表示安装的hb 0.4.4 以上版本正确。
+
+      ```
+      [OHOS INFO] hb version 0.4.6
+      ```
+
+#### 准备设备侧应用代码
+
+1. 代码拷贝
+
+   smart_safe_kitchen-gas_detection源码拷贝
+   
+   ```
+   cd ~
+   git clone git@gitee.com:openharmony-sig/knowledge_demo_smart_home.git 
+   mkdir ~/openharmony/vendor/team_x
+   cp -rfa ~/knowledge_demo_smart_home/dev/team_x/MiniSystemApplicationDevelopment_03_GasDetectionJSI_Device  ~/openharmony/vendor/team_x
+   ```
+   
+   common库拷贝
+   
+   ```
+   cp -rfa ~/knowledge_demo_smart_home/dev/team_x/common ~/openharmony/vendor/team_x
+   ```
+   
+2. communicationkit相关修改
+
+参考下方代码修改foundation/ace/ace_engine_lite/frameworks/module_manager/ohos_module_config.h
+
+```
+diff --git a/frameworks/module_manager/ohos_module_config.h b/frameworks/module_manager/ohos_module_config.h
+index f8eb744..d0cc5d2 100644
+--- a/frameworks/module_manager/ohos_module_config.h
++++ b/frameworks/module_manager/ohos_module_config.h
+@@ -45,6 +45,7 @@ extern void InitDialogModule(JSIValue exports);
+ #if (FEATURE_MODULE_STORAGE == 1)
+ extern void InitNativeApiFs(JSIValue exports);
+ extern void InitNativeApiKv(JSIValue exports);
++extern void InitNativeApiCommunicationKit(JSIValue exports);
+ #endif
+
+ #if (FEATURE_MODULE_DEVICE == 1)
+@@ -102,6 +103,7 @@ const Module OHOS_MODULES[] = {
+ #if (FEATURE_MODULE_STORAGE == 1)
+     {"file", InitNativeApiFs},
+     {"storage", InitNativeApiKv},
++    {"CommunicationKit", InitNativeApiCommunicationKit},
+ #endif
+ #if (FEATURE_MODULE_DEVICE == 1)
+     {"device", InitDeviceModule},
+```
+
+3. hdf配置文件修改
+
+参考下方代码修改device/board/fnlink/shields/v200zr-evb-t1/v200zr-evb-t1.hcs
+```
+diff --git a/shields/v200zr-evb-t1/v200zr-evb-t1.hcs b/shields/v200zr-evb-t1/v200zr-evb-t1.hcs
+index 44212eb..4fc99da 100644
+--- a/shields/v200zr-evb-t1/v200zr-evb-t1.hcs
++++ b/shields/v200zr-evb-t1/v200zr-evb-t1.hcs
+@@ -17,12 +17,17 @@ root {
+     platform {
+         gpio_config {
+             match_attr = "gpio_config";
+-            pin = [0, 1];
++            pin = [0, 1, 2];
+             // touch_ztw523: TSP_RST - GPIO12, TSP_INT-GPIO27
+             // touch_fts: TSP_RST - GPIO05, TSP_INT-GPIO27
+-            realPin = [5, 27];
+-            config = [5, 2];
+-            pinNum = 2;
++            realPin = [5, 27, 11];
++            config = [5, 2, 5];
++            pinNum = 3;
+         }
+         i2c_config {
+             i2c0 {
+```
+
+4. flash_size 配置项确认
+
+   如果V200Z-R 开发板上相关 版本编号丝印为"V200Z-R EVB V1.0", 则在如下代码中配置flash_size选项为16,如果相关丝印编号为"V200Z-R EVB V2.0" , 则保持默认的flash_size = 32不变。 
+   
+   ```
+   device/board/fnlink/v200zr/liteos_m/config.gni
+   flash_size = 16 
+   ```
+
+5.  JS应用代码更新(可选)
+
+   本步骤为可选章节,忽略本节内容不影响智能通风设备的的展示和运行,如果需要对相关JS 应用做修改,请参考[智能窗户JS 应用开发文档](../../FA/SmartSafeKitchenSmartGasDetection/README.md),应用修改完成后,再次编译此应用([应用代码地址](https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/team_x/MiniSystemApplicationDevelopment_03_GasDetectionJSI_Device))。如下图所示:
+
+   ![image-20220418170939198](resource/build_fa.png)
+
+   编译完毕后,hap包所在路径为:MiniSystemApplicationDevelopment_03_GasDetectionJSI\entry\build\outputs\hap\debug\entry-debug-lite-unsigned.hap。
+
+   将entry-debug-lite-unsigned.hap修改后缀为zip并解压。打开解压后的目录:entry-debug-lite-unsigned/assets/js/default,如图:
+
+   ![image-20220418160345392](resource/the_del_file.png)
+   
+   将该目录中除app.js.map外的文件全部拷贝到OpenHarmonySDK中的: vendor/team_x/MiniSystemApplicationDevelopment_03_GasDetectionJSI_Device/fs/data/data/js 目录下。如图:
+   
+   ![image-20220418160827027](resource/dev_js_file.png)
+
+#### 工程效果
+
+整合并修改完成后的代码目录结构如下图:
+
+![image-20220418155207947](resource/proj_dirs.png)
+
+### 编译
+进入到OpenHarmony系统源码根目录下,输入hb set命令即可看到我们的应用,选择并确认即可。
+
+```
+cd ~/openharmony
+hb set  // 如果是第一次编译,Input code path 命令行中键入"./" 指定OpenHarmony工程编译根目录后回车。
+```
+
+如下图所示,使用键盘上下键选中智能燃气检测系统 “MiniSystemApplicationDevelopment_03_GasDetectionJSI_Device”(注:工程名字根据实际要编译的工程来):
+
+![image-20220418163423594](resource/hb_set_image.png)
+
+```
+hb build // 如果需要全量编译,可以添加-f 选项
+```
+
+出现"build success"字样,则表示编译生成固件成功,如下图所示:
+
+![image-20220418171243614](resource/build_succ.png)
+
+### 安装
+
+因为欧智通BES2600/V200Z-R 开发板的烧录程序是包含在对应out文件夹对应product目录下的,无需使用额外的烧录工具,在安装了相应驱动文件后,执行烧录可执行文件即可,下面是具体的操作步骤:
+
+1.安装[CP2102驱动](https://www.silabs.com/documents/public/software/CP210x_Windows_Drivers.zip),解压后双击与自己window 版本相匹配的可执行文件,并按相关提示安装驱动文件即可;
+
+2.查看串口com号	
+
+鼠标右键点击PC右下角,打开:“设备管理器(M)”(注: 打开设备管理器前,请确保CP210x串口驱动是否安装)搜索 “端口 -> USB SERIAL Port(COM10*)",需要记住COM*,每台设备的不一样,如图:
+
+(注:假如端口没显示,请拔掉usb口再插上或更换usb线)
+
+![image-20220418173228063](resource/usb_serial_port.png)
+
+3.打开wifi烧录工具
+
+固件编译完成以后拷贝~/openharmony/out/v200zr/MiniSystemApplicationDevelopment_03_GasDetectionJSI_Device/write_flash_gui文件夹到windows下(或者利用samba服务直接访问该目录),并双击可执行文件Wifi_download_main.exe,如图:
+
+![image-20220418171650913](resource/wifi_download_main.png)
+
+4.串口选择
+
+- 点击工具上的文件夹图标
+
+- 选择List按钮
+
+- 选择对应的com口,点击“OK”
+
+- 勾选需要烧录的串口, 并点击开始按钮
+
+![image-20220418173510927](resource/sel_and_load.png)
+
+5.在开发板上点击reset按键,或者重新上电。
+
+![](./resource/image-reset.png)
+
+6.进入烧录状态,如图:
+
+![image-20220418173948845](resource/burning.png)
+
+7.烧录成功,如图:
+
+![image-20220418174029399](resource/burning_succ_pic.png)
+
+​    注意:固件烧录完成后需将烧录窗口关闭,再按下设备Reset键设备才能启动。如果未将烧录窗口关闭,设备会再次进行烧写状态。
+
+### 操作体验
+
+1. 将燃气检测设备及其相应的开发板上电,确认两个设备应用启动正常和操作正常;
+2. 开发板端通过燃气浓度传感器获取的燃气浓度数据就会发送到到JS端动态显示;
+3. JS端设置的燃气浓度阈值也可以发送到开发板端,当开发板端检测到燃气浓度超过该阈值,就触发告警; 如图:
+
+![gas_detection](resource/gas_detection.gif)
+
+
+## 参考资料
+
+- [智能窗户JS应用开发文档](../../FA/SmartSafeKitchenSmartGasDetection/README.md)
+
+- [JS-UI框架子系统组件](https://gitee.com/openharmony/ace_engine_lite#section1096322014288)
+- [知识体系](https://gitee.com/openharmony-sig/knowledge)
+

BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/build_fa.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/build_succ.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/burning.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/burning_succ_pic.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/data_trans_route.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/dev_js_file.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/gas_detection.gif


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/gas_detection_hardware.jpg


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/hb_set_image.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/image-reset.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/jsi_description.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/operate_res.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/proj_dirs.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/sel_and_load.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/the_del_file.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/usb_serial_port.png


BIN
docs/MiniSystemApplicationDevelopment_03_GasDetectionJSI/resource/wifi_download_main.png


+ 139 - 0
docs/NFC_label_definition/README.md

@@ -0,0 +1,139 @@
+# 设备碰一碰配置指南
+
+### 一、简介
+
+碰一碰是HarmonyOS具备的多终端业务协同技术。其依托NFC短距通信协议,通过碰一碰的交互方式,将手机和全场景设备连接起来。然后通过手机端的原子化服务能力,快速完成配网、远程控制的能力,解决了应用与设备之间接续慢、配网复杂、传输难的问题,为用户带来无缝切换的流畅体验。
+
+
+
+### 二、碰一碰配置
+
+<img src="./resource/0.png" alt="image-20211027110105693" style="zoom: 67%;" />
+
+#### 前提
+
+- 已安装数字管家应用。
+- 准备已经升级至HarmonyOS 2系统的华为Mate系列或P系列手机,系统版本号为2.0.0.168及以上。
+- 在华为应用市场,下载并安装“应用调测助手”APP,用于写NFC标签。
+- 若开发板不包含NFC模块,则需准备1个NFC标签,可以用手机触碰NFC标签,提前确保NFC功能可用。
+- 打开手机**设置 > 应用和服务 > 应用管理**,搜索“智慧生活基础服务”,检测智慧生活基础服务的版本是否为12.0.2.306及以上。如果不是,请打开华为手机的“智慧生活”APP,点击“**我的 > 设置 > 检查应用更新**”,更新“智慧生活基础服务”。
+
+
+
+#### 智慧服务配置
+
+##### 申请Product ID
+
+注:本节中Product ID是碰一碰拉起标识,而非IoTDA平台的设备产品ID。
+
+![image-20211022135400830](./resource/8.png)
+
+##### 登陆[华为开发者联盟](https://developer.huawei.com/consumer/cn/)
+
+登陆华为开发者联盟,主页右上角管理中心按钮,进入管理中心。
+
+![](./resource/1.png)
+
+
+
+##### 创建智慧
+
+在管理中心页面中依次点击智慧服务->HarmonyOS服务开放平台进入智慧服务平台。
+
+![](./resource/2.png)
+
+点击右上角创建服务按钮。
+
+![image-20211022104612148](./resource/3.png)
+
+选择HarmonyOS测试服务,填写服务相关信息,点击创建按钮完成服务模型的创建。
+
+![image-20211022111355901](./resource/4.png)
+
+##### 录入服务信息
+
+在服务信息栏下的基本信息页面完善服务模型基本信息后,点击右上角保存按钮,保存服务基本信息。
+
+![image-20211022114159617](./resource/5.png)
+
+进入服务呈现信息页面完善相关信息(星标项目必填,其它项目视需要进行填写),可下载批量导入模板并填写,进行批量导入。点击右上角保存按钮,保存服务呈现信息。
+
+![image-20211022114358986](./resource/6.png)
+
+##### 录入服务配置信息
+
+点击配置栏,进行配置信息的填写。
+HarmonyOS标签页面如下图,其中产品型号填写在应用调测助手中申请的**Product ID** ,产品子型号填写00。
+
+![image-20211022135819250](./resource/9.png)
+
+FA信息页面填写信息如下图,其中**App包名、服务名**分别为FA开发中对应的IoT应用的包名,以及开发者期望通过NFC唤起的IoT应用的服务名(本项目唤起的服务为设备配网)。
+
+![image-20211022141718465](./resource/10.png)
+
+##### 录入服务测试信息
+
+点击测试栏,进入智慧服务测试页面,进行测试相关信息的填写。
+点击创建进入创建真机测试名单窗口。
+
+![image-20211022142458096](./resource/11.png)
+
+填写手机号码与描述。
+
+<img src="./resource/12.png" alt="image-20211022142818815" style="zoom: 50%;" />
+
+ 点击确定可以看到该手机已经录入名单中。
+
+![image-20211022143206440](./resource/13.png)
+
+到此,应用功能唤起信息申请和配置完成。
+
+#### 设备信息的准备
+
+##### 设备信息简介
+
+设备信息内容包括:华为IoTDA平台的Product ID、NodeID、配网方式以及对应的参数信息,如下列表格;所有信息需要写入到**调测助手的自定义数据**之中,然后通过NFC拉起应用时,数字管家FA可通过Intent中的91字段进行读取NFC数据,从而可获取到板子相关的信息。
+
+##### 存储格式
+
+设备信息采用TLV格式,即数据字段使用T+L+V进行表示。
+
+  **T:标签,1字节**
+
+  **L:T信息长度,2字节**
+
+  **V:T对应的详细信息**
+
+##### 标签分配
+
+|  标签  | 名字            | 描述                                       | 样例                       |
+| :--: | ------------- | ---------------------------------------- | ------------------------ |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 6128c7b60ad1ed0286680f19 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | Lamp01                   |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1                        |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-Lamp01             |
+|  6   | ApToken       | 设备自身热点的密码,典型值8字节,小于16字节;                 | 12345678                 |
+|  7   | BLE-MAC       | 设备蓝牙地址。典型值6字节,BLE配网下必须提供                 | 010203040506             |
+
+注:DeviceID由FA读取NFC之后,使用华为IoTDA平台设备产品ID+‘’_“+"NodeID"拼接而成,如华为IoTDA平台设备产品ID为6128c7b60ad1ed0286680f19,NodeID为Lamp01,则生成的设备ID为”6128c7b60ad1ed0286680f19_Lamp01“
+
+根据以上规则可编写TLV数据如下:
+
+![image-20211022151047257](./resource/14.png)
+
+##### 生成配网信息
+
+1. 使用[NFC信息生成器](数字管家NFC信息生成器.md)生成配网信息
+2. 手动输入生成:
+   生成实际配网数据虚须基于[profile设备模型](../../../profile) 进行编写,如以设备id为6128c7b60ad1ed0286680f19_Lamp01(华为IoTDA平台设备产品ID+‘’_“+"NodeID")的台灯配网信息如下:
+
+![image-20211022151047257](./resource/NFC_Lamp.jpg)
+
+##### 更多设备的配网信息
+
+请查看 [更多设备的配网信息](more_nfc_netconfig_info.md)
+
+### 三、NFC数据写入
+
+![image-20211022164314781](./resource/15.png)

+ 59 - 0
docs/NFC_label_definition/more_nfc_netconfig_info.md

@@ -0,0 +1,59 @@
+更多设备的NFC配网信息
+
+### 简介
+
+本文档提供多设备NFC配网信息,方便快速配置NFC数据。
+
+### NFC配网信息生成规则
+
+请参考 [设备碰一碰配置指南](README.md) 中设备信息的准备章节。
+
+### NFC配网信息
+
+以下NFC配网信息中的deviceID(productID + "_" + nodeID)与设备端设备代码中默认deviceID(nfcInfo.deviceID字段)一致。
+
+| 设备                                       | 板子型号                  | NFC配网信息(自定义)                             |
+| ---------------------------------------- | --------------------- | ---------------------------------------- |
+| [智能台灯](../../../profile/智能台灯profile定义.md) | bearpi_hm_nano        | 1246128c7b60ad1ed0286680f19206Lamp01308123456784011512teamX-Lamp01 |
+| [智能窗帘](../../../profile/智能窗帘profile定义.md) | bearpi_hm_nano        | 1246136ceba0ad1ed02866fa3b2209Curtain01308123456784011515teamX-Curtain01 |
+| [智能养花机](../../../profile/智能养花机profile定义.md) | bearpi_hm_nano(养花机套件) | 1246135e8fc2cce4f028625ccc9210Watering01308123456784011516teamX-Watering01 |
+| [智能垃圾桶](../../../profile/智能垃圾桶profile定义.md) | Hi3861(垃圾桶套件)         | 124614456cff74139027d2230ec210Trashcan01308123456784011516teamX-Trashcan01 |
+| [智能甲醛检测系统](../../../profile/智能甲醛检测系统profile定义.md) | bearpi_hm_nano        | 12461445cdadcbb87027db095d1209TVOCDet01308123456784011515teamX-TVOCDet01 |
+| [智能可燃气体检测系统](../../../profile/智能可燃气体检测系统profile定义.md) | bearpi_hm_nano        | 12461445c41f74139027d2233e5208GasDet01308123456784011514teamX-GasDet01 |
+| [智能电风扇](../../../profile/智能风扇profile定义.md) | bearpi_hm_nano        | 1246150601d88056b027dd2ca47205Fan01308123456784011511teamX-Fan01 |
+| [智能扫地机](../../../profile/智能扫地机profile定义.md) | Hi3861(小车套件)          | 12461371e952cce4f0286262229210CleanRobot308123456784011516teamX-CleanRobot |
+| [智能烟雾检测系统](../../../profile/智能烟雾检测系统profile定义.md) | bearpi_hm_nano        | 124618e63afd50ad80288613788218smoke_sensation_01308123456784011513teamX-Smoke01 |
+| [儿童手表](../../../profile/智能手表profile定义.md) | bearpi_hm_nano + 通信模组 | 124613ad28b0109930287315230212SmartWatch01308123456784011518teamX-SmartWatch01 |
+| [智能电子锁设备](../../../profile/智能电子锁profile定义.md) | XR806                 | 12461bae4814d9b0202871982f0211SmartLock01308123456784012517teamX-SmartLock01 |
+| [智能体重秤](../../../profile/智能体重秤profile.md) | XR806                 | 12461bae58c2b2aa20288c5f467220SmartElectronicScale308123456784012526teamX-SmartElectronicScale |
+| [智能加湿器](../../../profile/智能加湿器profile定义.md) | BES2600               | 12461b953b52b2aa20288c07fa9217SmartHumidifier01308123456784012523teamX-SmartHumidifier01 |
+| [智能保险柜](../../../profile/智能保险柜profile定义.md) | Hi3861                | 12461bc57222b2aa20288caf888207Vibra01308123456784011513teamX-Vibra01 |
+| [智能门铃](../../../profile/智能门铃profile定义.md) | BES2600               | 12461ba9cdd2b2aa20288c4f58a210DoorBell01308123456784012516teamX-DoorBell01 |
+
+### 注意事项
+
+1. 若自身无搭建服务端,连接数字管家默认服务端(即FA中对接接口地址仍为81.71.17.18,未做修改)
+
+   **可能存在的问题:**
+
+   那么须注意每个设备应该有自己唯一的deviceID,deviceID存在于NFC配网数据中和设备端代码中,若多人都在NFC中使用同一个deviceID并将该deviceID烧入板子中,那么会导致FA获取到的信息并非您手中设备的信息,也无法通过FA进行命令控制。
+
+   **解决方案:**
+
+   给设备配置和使用与他人不同唯一的deviceID。由于deviceID是由productID + "_" + nodeID组成,其中productID代表产品ID是无法修改的,如台灯的productId 6128c7b60ad1ed0286680f19则代表台灯这一类产品,而nodeID是可以自定义的,所以只需要修改NFC配网数据中nodeID字段,和修改设备端nfcInfo.deviceID字段,**让NFC中productID + " _ " + nodeID 等于设备端nfcInfo.deviceID字段**(位置视设备而不同,须自行全局搜索)。
+
+   ​
+
+   以智能台灯为例,将其nodeId修改为Lamp02,那么在设备端修改nfcInfo.deviceID字段(位置视设备而不同,须自行全局搜索)
+
+   ```
+   nfcInfo.deviceID = "6128c7b60ad1ed0286680f19_Lamp02"
+   ```
+
+   NFC中配网信息修改为
+
+   ```
+   1246128c7b60ad1ed0286680f19206Lamp02308123456784011512teamX-Lamp0160812345678712010203040506
+   ```
+
+2. 若使用自身搭建的服务端,则须将productID字段替换为服务端连接的IoTDA平台生成的对应产品productID

BIN
docs/NFC_label_definition/resource/0.png


BIN
docs/NFC_label_definition/resource/1.png


BIN
docs/NFC_label_definition/resource/10.png


BIN
docs/NFC_label_definition/resource/11.png


BIN
docs/NFC_label_definition/resource/12.png


BIN
docs/NFC_label_definition/resource/13.png


BIN
docs/NFC_label_definition/resource/14.png


BIN
docs/NFC_label_definition/resource/15.png


BIN
docs/NFC_label_definition/resource/2.png


BIN
docs/NFC_label_definition/resource/3.png


BIN
docs/NFC_label_definition/resource/4.png


BIN
docs/NFC_label_definition/resource/5.png


BIN
docs/NFC_label_definition/resource/6.png


BIN
docs/NFC_label_definition/resource/7.jpg


BIN
docs/NFC_label_definition/resource/8.png


BIN
docs/NFC_label_definition/resource/9.png


BIN
docs/NFC_label_definition/resource/NFC_Lamp.jpg


BIN
docs/NFC_label_definition/resource/nfc_tool.png


+ 29 - 0
docs/NFC_label_definition/数字管家NFC信息生成器.md

@@ -0,0 +1,29 @@
+### 数字管家NFC信息生成器
+
+#### 简介
+
+该工具基于设备信息TLV格式编写的生成器,可快速生成对应的设备信息用于填入调测组手自定义字段。
+
+![NFC生成器](./resource/nfc_tool.png)
+
+#### 设备信息
+
+|  标签  | 名字            | 描述                                       | 样例                                       |
+| :--: | ------------- | ---------------------------------------- | ---------------------------------------- |
+|  1   | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 6128c7b60ad1ed0286680f19                 |
+|  2   | NodeID        | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节        | Lamp01                                   |
+|  3   | DevicePwd     | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节       | 12345678                                 |
+|  4   | 配网标识          | 标识当前设备配网类型,1字节                           | 0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br /> |
+|  5   | ApSSID        | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-Lamp01                             |
+|  6   | ApToken       | 设备自身热点的密码,典型值8字节,小于16字节;                 | 12345678                                 |
+|  7   | BLE-MAC       | 设备蓝牙地址。典型值6字节,BLE配网下必须提供                 | 010203040506                             |
+
+#### 下载地址:
+
+阿里云盘:https://www.aliyundrive.com/s/CDLriGW4ntw
+
+百度网盘:https://pan.baidu.com/s/1H1oSLKOPODxySPA8aMA3Tg?pwd=enq9 
+
+#### 使用方法
+
+参考设备的[profile文件](../../../profile)进行输入相应项,便在下方生成相应自定义数据,复制到调测组手自定义数据中即可。

+ 171 - 0
docs/RTSPServer/RTSPServer.md

@@ -0,0 +1,171 @@
+# openharmony_1.0.1实现RTSPServer
+
+## 概述
+
+openharmony中实现RTSPServer播放视频主要分为如下5部分。其中视频采集与视频编码平台芯片3518EV300与3516DV300已支持,将编码后的视频数据(H.265)存放至环形缓冲区,最后通过RTSPServer发送,RTSPClient由VLC播放器实现。
+
+代码路径:[3516DV300](https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_door_viewer_3516/README.md)
+
+代码路径:[3518EV300](https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/smart_door_viewer_3518/README.md)
+
+![](figures/_20211231155410.png)
+
+## RTSPServer实现
+
+RTSP流媒体播放实现主要涉及两个线程:1、将编码后的视频数据存储在环形缓冲区内。2、创建RTSPServer发送环形缓冲区数据。
+
+
+
+![](figures/_20220104161434.png)
+
+### 环形缓冲区
+
+环形缓冲区主要目的是为了将视频编码(H.265)产生的数据通过RTSPServer实时地发送到RTSPClient端。
+
+#### H.265数据原理
+
+H.265=若干序列集。
+
+序列集=1IDR帧+1VPS帧+1SPS帧+1PPS帧+1SEI帧+若干P帧组成。
+
+每帧通过00 00 00 01分割以后的下一个字节就是NALU(网络抽象层单元)类型,
+
+- 1: 00 00 00 01 40 01 .... ,(0x40 & 0x7E)>> 1 值为 32, 语义为视频参数集     VPS
+- 2: 00 00 00 01 42 01 .... ,(0x42 & 0x7E)>> 1 值为 33, 语义为序列参数集     SPS
+- 3: 00 00 00 01 44 01 .... ,(0x44 & 0x7E)>> 1 值为 34, 语义为图像参数集     PPS
+- 4: 00 00 00 01 4E 01 ....,(0x4E & 0x7E)>> 1 值为 39, 语义为补充加强信息    SEI
+- 5: 00 00 00 01 26 01 .... ,(0x26 & 0x7E)>> 1 值为 19, 语义为可能有RADL图像的IDR图像的SS编码数据  IDR
+- 6: 00 00 00 01 02 01 .... ,(0x02 & 0x7E)>> 1 值为 1, 语义为被参考的后置图像P帧
+- 
+
+如下图,左边是h265原始数据,右边是通过RTP发送去掉头数据。
+
+![](figures/_20220105113750.png)
+
+在进行RTP分包发送时会将IDR、VPS、SPS、PPS、SEI拼凑为一起作为主要帧发送,因此头一帧数据 非常重要。
+
+为了解决视频编码与RTSP线程线程同步的问题,缓冲区设计如下:
+
+```
+文件路径:recorder_impl.cpp	
+实现函数:void VideoSourceProcess(const SourceManager *videoSourceManager, const RecorderSink *recorderSink)
+```
+
+缓冲区为16*256K长度的数组buff。put为编码线程存放缓冲区偏移值,get为RTSPServer线程获取缓冲区的偏移值。
+
+![](figures/_20220104142410.png)
+
+初始情况下put与get的位置均在开头。
+
+![](figures/_20220104143327.png)
+
+当视频编码有数据时填充buff并put向前移。
+
+![](figures/_20220104143330.png)
+
+RTSP通过get将视频编码数据发送,然后释放buff,get向前移。
+
+![](figures/_20220104143339.png)
+
+当put与get偏移超过16时重新置1,其中设置get数据的时间get与put的间隔不会超过3个buff。
+
+![](figures/_20220104143946.png)
+
+### RTSPServer
+
+RTSP(Real Time Streaming Protocol)实时流协议作为一个应用层协议,RTSP提供了一个可供扩展的框架,它的意义在于使得实时流媒体数据的受控和点播变得可能。总的说来,RTSP是一个流媒体表示协议,通过RTSP传输控制命令与RTP传输视频流达到控制具有实时特性的数据发送。RTSP可以对流媒体提供诸如播放、暂停、快进等操作,它负责定义具体的控制消息、操作方法、状态码等,此外还描述了与RTP间的交互操作。
+
+![](figures/_20220104104509.png)
+
+RTSP C(Client)与 S(Server)交互流程图解
+
+RTSP 中的 C(Client)与 S(Server)交互流程图解
+
+![](figures/_20220104095638.png)
+
+#### RTSP 关键字段说明
+
+##### 关键字:OPTIONS
+
+得到服务器提供的可用方法(OPTION、DESCRIBE、SETUP、TEARDOWN、PLAY、PAUSE、SCALE、GET_PARAMETER、SET_PARAMETER)。
+
+##### 关键字:DESCRIBE
+
+请求流的 SDP 信息。
+
+注解:此处需要了解 H265 Law Data 如何生成 SPS PPS 信息。
+
+##### 关键字:SETUP
+
+客户端提醒服务器建立会话,并建立传输模式。
+
+注解:此处确定了 RTP 传输交互式采用 TCP(面向连接)还是 UDP(无连接)模式。
+
+##### 关键字:PLAY
+
+客户端发送播放请求。
+
+注解:此处引入 RTP 协议。
+
+##### 关键字:PAUSE
+
+播放暂停请求。
+
+注解:此关键字经常用在录像回放当中,实时视频流几乎用不到。
+
+##### 关键字:TEARDOWN
+
+客户端发送关闭请求
+
+#### RTP分包
+
+其中RtpHeader(Rtp头)加payload(负载数据)。
+
+![](figures/_20220104150345.png)
+
+##### RtpHeader数据
+
+```
+csrcLen  CSC计数,在没有RTP混频器的情况下通常为0
+extension 扩展名,必须为0
+padding 填充位,不得使用填充,默认为0
+version  版本号
+
+payloadType 数据帧类型(h265)。
+marker 将一帧分片时区分头片
+	
+seq 序列号为了以每片为单位
+    
+timestamp 时间戳 以每帧为单位
+    
+ssrc  数据信源号
+```
+
+##### payload数据
+
+RTP包最大为1400个字节,因此打包分为两种。
+
+1. 一种是一个nal单元打包到一个rtp包中。
+2. 一种是nal单元比较大,分片打包在多个rtp中。
+
+单个nal直接发送即可
+
+nal单元比较大,分片打包在多个rtp中,分片格式如下:
+
+![](figures/_20220104155903.png)
+
+其中PayloadHdr固定为49。FUheader数据为:
+
+![](figures/_20220104160446.png)
+
+S置1表示起始片,E置1表示最后片,FuType就是实际的Nal type类型。
+
+实现代码函数 
+
+```
+文件:rtp.cpp
+实现函数:int Rtp::UdpSendFrame(uint8_t *pNalBuf, int s32NalBufSize)
+```
+
+
+

BIN
docs/RTSPServer/figures/_20211231155410.png


BIN
docs/RTSPServer/figures/_20211231164256.png


BIN
docs/RTSPServer/figures/_20220104095638.png


BIN
docs/RTSPServer/figures/_20220104101004.png


BIN
docs/RTSPServer/figures/_20220104104509.png


BIN
docs/RTSPServer/figures/_20220104142410.png


BIN
docs/RTSPServer/figures/_20220104143327.png


BIN
docs/RTSPServer/figures/_20220104143330.png


BIN
docs/RTSPServer/figures/_20220104143339.png


BIN
docs/RTSPServer/figures/_20220104143946.png


BIN
docs/RTSPServer/figures/_20220104150345.png


BIN
docs/RTSPServer/figures/_20220104152141.png


BIN
docs/RTSPServer/figures/_20220104155903.png


BIN
docs/RTSPServer/figures/_20220104160446.png


BIN
docs/RTSPServer/figures/_20220104161434.png


BIN
docs/RTSPServer/figures/_20220105113750.png


BIN
docs/SeetaFace2/media/1.jpg


Some files were not shown because too many files changed in this diff