diff --git a/data_style/1001.json b/data_style/1001.json
new file mode 100644
index 0000000..e8fb6df
--- /dev/null
+++ b/data_style/1001.json
@@ -0,0 +1,203 @@
+{
+	"code": 1001,
+	"gateway_info": {
+		"id": "F23FACD2-7D85-4FCC-88E3-C5B78931A26D",
+		"version": "yunhron_gw_c_v1",
+		"localtion": [113.960347, 22.54143],
+		"单位": "深圳市云兴科技",
+		"congfig": [{
+				"id": "EC13C2D9-6A93-4894-BB5B-89BDAA786D8A",
+				"version": "yunhorn_kgl_c8_v1",
+				"data": [
+					["男厕位", 1],
+					["男厕位", 2],
+					["男厕位", 3],
+					["男厕位", 4],
+					["男厕位", 5],
+					["男厕位", 6],
+					["男厕位", 7],
+					["男厕位", 8]
+				]
+			},
+			{
+				"id": "00DD66A6-378E-450D-98AA-44AC02741980",
+				"version": "yunhorn_kgl_c16_v1",
+				"data": [
+					["女厕位", 1],
+					["女厕位", 2],
+					["女厕位", 3],
+					["女厕位", 4],
+					["女厕位", 5],
+					["女厕位", 6],
+					["女厕位", 7],
+					["女厕位", 8],
+					["女厕位", 9],
+					["女厕位", 20],
+					["女厕位", 11],
+					["女厕位", 12],
+					["女厕位", 13],
+					["男便池", 1],
+					["男便池", 2],
+					["男便池", 3]
+				]
+			}
+		]
+	},
+	"devices": [{
+		"id": "52A79B3D-D9D9-48AF-AEB4-7D456BA22B31",
+		"version": "yunhron_db_c_v1",
+		"online": true,
+		"data": {
+			"totalElectric": 1222
+		}
+	}, {
+		"id": "607E11C4-8986-4F8E-807E-FFA655A6F677",
+		"version": "yunhron_sb_c_v1",
+		"online": true,
+		"data": {
+			"totalWater": 112
+		}
+	}, {
+		"id": "066BB944-AFA2-4E5D-86FA-61D9080A97BB",
+		"version": "yunhron_kq_c_v1",
+		"online": true,
+		"data": {
+			"二氧化碳": 20,
+			"PM2.5": 10,
+			"甲醛": 1,
+			"温度": 23,
+			"湿度": 49,
+			"tvoc": 222
+		}
+	}, {
+		"id": "22E175B2-8DD5-4740-B428-0297F409AA47",
+		"version": "yunhron_lhq_c_v1",
+		"online": true,
+		"data": {
+			"硫化氢": 122
+		}
+	}, {
+		"id": "20F44B9C-E4A1-478E-B28F-0B7B14A2AF64",
+		"version": "yunhron_aq_c_v1",
+		"online": true,
+		"data": {
+			"氨气": 23
+		}
+	}, {
+		"id": "EC13C2D9-6A93-4894-BB5B-89BDAA786D8A",
+		"version": "yunhron_kgl_c8_v1",
+		"online": true,
+		"data": {
+			"data1": 0,
+			"data2": 0,
+			"data3": 0,
+			"data4": 0,
+			"data5": 0,
+			"data6": 0,
+			"data7": 0,
+			"data8": 0
+		}
+	}, {
+		"id": "00DD66A6-378E-450D-98AA-44AC02741980",
+		"version": "yunhron_kgl_c16_v1",
+		"online": true,
+		"data": {
+			"data1": 0,
+			"data2": 0,
+			"data3": 0,
+			"data4": 0,
+			"data5": 0,
+			"data6": 0,
+			"data7": 0,
+			"data8": 0,
+			"data9": 0,
+			"data10": 0,
+			"data11": 0,
+			"data12": 0,
+			"data13": 0,
+			"data14": 0,
+			"data15": 0,
+			"data16": 0
+		}
+	}, {
+		"id": "B1B40122-53B0-43FD-BDE6-2184F29CDF97",
+		"version": "yunhron_db_s_v1",
+		"online": true,
+		"data": {
+			"电表": 12
+		}
+	}, {
+		"id": "93E27D52-3D90-498B-BA06-BFF6EEA12757",
+		"version": "yunhron_sb_s_v1",
+		"online": true,
+		"data": {
+			"水表": 22
+		}
+	}, {
+		"id": "FFA26D19-FE4F-461B-9F86-7DABB54F23F1",
+		"version": "yunhron_hjshy_s_v1",
+		"online": true,
+		"data": {
+			"温度": 25,
+			"湿度": 40,
+			"硫化氢": 10,
+			"氨气": 20
+		}
+	}, {
+		"id": "122BB8F7-C202-4529-B1B1-8A8780AB113A",
+		"version": "yunhron_mc_s_v1",
+		"online": true,
+		"data": {
+			"state": 0
+		}
+	}, {
+		"id": "B0E88321-2BFA-4EB1-A1E2-86E2F28BD824",
+		"version": "yunhron_mc_s_v1",
+		"online": true,
+		"data": {
+			"state": 0
+		}
+	}, {
+		"id": "378B4F0A-C2E3-4BBF-9D38-F85E275CA982",
+		"version": "yunhron_mc_s_v1",
+		"online": true,
+		"data": {
+			"state": 0
+		}
+	}, {
+		"id": "963DD0A7-35C8-45F6-A5F7-BF28B56FA91E",
+		"version": "yunhron_mc_s_v1",
+		"online": true,
+		"data": {
+			"state": 0
+		}
+	}, {
+		"id": "995A077E-35B6-4C2E-AE6A-7D7AFD0B3DC8",
+		"version": "yunhron_mc_s_v1",
+		"online": true,
+		"data": {
+			"state": 0
+		}
+	}, {
+		"id": "D2202C72-99C0-44E7-8812-D6658947DFBA",
+		"version": "yunhron_mcs_s_v1",
+		"online": true,
+		"data": {
+			"state": 0
+		}
+	}, {
+		"id": "89A476F6-EFD2-4C82-91FB-E25A4E74CC90",
+		"version": "yunhron_mcs_s_v1",
+		"online": true,
+		"data": {
+			"state": 0
+		}
+	}, {
+		"id": "B0A75CAE-256D-4E1B-B280-E44C915BAC63",
+		"version": "yunhron_mcs_s_v1",
+		"online": true,
+		"data": {
+			"state": 0
+		}
+	}]
+}
\ No newline at end of file
diff --git a/data_style/1004.json b/data_style/1004.json
new file mode 100644
index 0000000..7da1bf7
--- /dev/null
+++ b/data_style/1004.json
@@ -0,0 +1,14 @@
+{
+	"code": 1004,
+	"id": "817A5F96-5648-4AB4-B2F8-E09D4130E377",
+	"version": "hk_kll_v1",
+	"online": true,
+	"data": {
+		"starttime": "time",
+		"endtime": "time",
+		"enter": 9,
+		"pass": 9,
+		"exit": 2
+	}
+}
+//海康双目摄像头 客流量
\ No newline at end of file
diff --git a/data_style/1005.json b/data_style/1005.json
new file mode 100644
index 0000000..ccfad8b
--- /dev/null
+++ b/data_style/1005.json
@@ -0,0 +1,55 @@
+{
+	"code": 1005,
+	"id": "122BB8F7-C202-4529-B1B1-8A8780AB113A",
+	"version": "yunhron_mc_s_v1",
+	"online": true,
+	"data": {
+		"state": 1
+	}
+}
+
+{
+	"code": 1005,
+	"id": "D2202C72-99C0-44E7-8812-D6658947DFBA",
+	"version": "yunhron_mcs_s_v1",
+	"online": true,
+	"data": {
+		"state": 255
+	}
+}
+
+{
+	"code": 1005,
+	"id": "FFA26D19-FE4F-461B-9F86-7DABB54F23F1",
+	"version": "yunhron_hjshy_s_v1",
+	"online": true,
+	"data": {
+		"温度": 25,
+		"湿度": 40,
+		"硫化氢": 10,
+		"氨气": 20
+	}
+}
+
+{
+	"code": 1005,
+	"id": "93E27D52-3D90-498B-BA06-BFF6EEA12757",
+	"version": "yunhron_sb_s_v1",
+	"online": true,
+	"data": {
+		"水表": 22
+	}
+}
+
+{
+	"code": 1005,
+	"id": "B1B40122-53B0-43FD-BDE6-2184F29CDF97",
+	"version": "yunhron_db_s_v1",
+	"online": true,
+	"data": {
+		"电表": 12
+	}
+}
+
+//当设备发生数据发生变化时,发送改包,此文件包括不包含所有设备
+
diff --git a/data_style/1006.json b/data_style/1006.json
new file mode 100644
index 0000000..66e3e56
--- /dev/null
+++ b/data_style/1006.json
@@ -0,0 +1,11 @@
+{
+	"code": 1006,
+	"id": "B1B40122-53B0-43FD-BDE6-2184F29CDF97",
+	"version": "yunhron_pj_c_v1",
+	"online": true,
+	"data": {
+		"feedback": "棒棒哒"
+	}
+}
+
+//评价(魔镜),当评价屏触发时发送该包
\ No newline at end of file
diff --git a/data_style/conf/gateway.conf b/data_style/conf/gateway.conf
new file mode 100644
index 0000000..3ee2519
--- /dev/null
+++ b/data_style/conf/gateway.conf
@@ -0,0 +1,87 @@
+{
+	"gateway_info": {
+		"id": "F23FACD2-7D85-4FCC-88E3-C5B78931A26D",
+		"version": "yunhorn_gw_c_v1",
+		"localtion": [113.960347, 22.54143],
+		"单位": "深圳市云兴科技",
+		"config": [{
+				"id": "EC13C2D9-6A93-4894-BB5B-89BDAA786D8A",
+				"version": "yunhorn_kgl_c8_v1",
+				"data": [
+					["男厕位", 1],
+					["男厕位", 2],
+					["男厕位", 3],
+					["男厕位", 4],
+					["男厕位", 5],
+					["男厕位", 6],
+					["男厕位", 7],
+					["男厕位", 8]
+				]
+			}, {
+				"id": "82BF7B5E-EC0D-4DB6-807F-B097C3C84073",
+				"version": "yunhorn_kgl_c8_v1",
+				"data": [
+					["母婴", 1],
+					["残卫", 1],
+					["残卫", 2],
+					["男便池", 4],
+					["男便池", 5],
+					["男便池", 6],
+					["男便池", 7],
+					["男便池", 8]
+				]
+			}, {
+				"id": "F5B7FDCC-79A8-499E-A925-F2FF357BE30D",
+				"version": "yunhorn_kgl_c8_v1",
+				"data": [
+					["男厕位", 9],
+					["男厕位", 10],
+					["女厕位", 14],
+					["女厕位", 15],
+					["女厕位", 16],
+					["女厕位", 17],
+					["女厕位", 18],
+					[null, null]
+				]
+			},
+			{
+				"id": "00DD66A6-378E-450D-98AA-44AC02741980",
+				"version": "yunhorn_kgl_c16_v1",
+				"data": [
+					["女厕位", 1],
+					["女厕位", 2],
+					["女厕位", 3],
+					["女厕位", 4],
+					["女厕位", 5],
+					["女厕位", 6],
+					["女厕位", 7],
+					["女厕位", 8],
+					["女厕位", 9],
+					["女厕位", 10],
+					["女厕位", 11],
+					["女厕位", 12],
+					["女厕位", 13],
+					["男便池", 1],
+					["男便池", 2],
+					["男便池", 3]
+				]
+			}
+		]
+	},
+	"devices_list": [
+		["EC13C2D9-6A93-4894-BB5B-89BDAA786D8A", "yunhorn_kgl_c8_v1", "1"],
+		["00DD66A6-378E-450D-98AA-44AC02741980", "yunhorn_kgl_c16_v1", "1"],
+		["52A79B3D-D9D9-48AF-AEB4-7D456BA22B31", "yunhorn_db_c_v1", "1"],
+		["607E11C4-8986-4F8E-807E-FFA655A6F677", "yunhorn_sb_c_v1", "1"],
+		["066BB944-AFA2-4E5D-86FA-61D9080A97BB", "yunhorn_kq_c_v1", "1"],
+		["22E175B2-8DD5-4740-B428-0297F409AA47", "yunhorn_lhq_c_v1", "1"],
+		["20F44B9C-E4A1-478E-B28F-0B7B14A2AF64", "yunhorn_aq_c_v1", "1"]
+	],
+	"serialports_list": [
+		"/dev/cu.wchusbserial141430",
+		"/dev/cu.wchusbserial141420",
+		"/dev/cu.wchusbserial141410"
+	],
+	"iconurl": "http://192.168.3.188/icons/",
+	"websocketurl": ["192.168.3.216:8080", "/echo"]
+}
\ No newline at end of file
diff --git a/data_style/localapi.txt/localapi.txt b/data_style/localapi.txt/localapi.txt
new file mode 100644
index 0000000..f76d97a
--- /dev/null
+++ b/data_style/localapi.txt/localapi.txt
@@ -0,0 +1,255 @@
+##
+##
+##		本地api,只供本地二层访问,及转发
+##
+##
+
+##########################################
+##  http://192.168.3.188:10086/api/v1/  ##
+##########################################
+
+1	获取用水量
+	GET http://192.168.3.188:10086/api/v1/totalWater
+	RESULT:
+	{
+	    "data": {
+	        "totalWater": 1
+	    },
+	    "status": 200
+	}
+
+2	获取用电量
+	GET http://192.168.3.188:10086/api/v1/totalElectricity
+	RESULT:
+	{
+	    "data": {
+	    	"totalElectric": 99.9
+	    },
+	    "status": 200
+	}
+
+3	获取臭味级别
+	GET http://192.168.3.188:10086/api/v1/stink
+	RESULT:
+	{
+	    "data": {
+	        "stink": "无味"
+	    },
+	    "status": 200
+	}
+
+4	获取环境信息
+	GET http://192.168.3.188:10086/api/v1/environmentDate
+	RESULT:
+	{
+	    "data": {
+	        "PM10": 14,
+	        "pm2.5": 11,
+	        "TVOC": 9.8,
+	        "二氧化碳": 457,
+	        "温度": 26.6,
+	        "湿度": 45.2,
+	        "甲醛": 4
+	    },
+	    "status": 200
+	}
+
+5	获取满意度
+	GET http://192.168.3.188:10086/api/v1/satisfaction
+	RESULT:
+	{
+	    "data": {
+	        "satisfaction": 1    // 浮点型,1为100%
+	    },
+	    "status": 200
+	}
+
+6	获取当日人流量
+	GET http://192.168.3.188:10086/api/v1/traffic
+	RESULT:
+	{
+	    "data": {
+	        "traffic": 100
+	    },
+	    "status": 200
+	}
+
+7	获取厕位状况
+	##################################################
+	##  http://192.168.3.188:10086/api/v1/seat/:id  ##
+	##  id 取值在[1, 2, 3, 4, 5]					    ##
+	##  1 : 获取男厕位								##
+	##  2 : 获取男便池								##
+	##  3 : 获取女厕位								##
+	##  4 : 获取母婴								    ##
+	##  5 : 获取残卫								    ##
+	##################################################
+
+	7.1 获取男厕位
+		GET http://192.168.3.188:10086/api/v1/seat/1
+		RESULT:
+		{
+		    "data": {
+		        "positionList": [
+		            1,
+		            2,
+		            3,
+		            4,
+		            5,
+		            6,
+		            7,
+		            8
+		        ],
+		        "hasPersonList": [
+		            0,
+		            1,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0
+		        ],
+		        "emptyPosition": 7,
+		        "occupyPosition": 1
+		    },
+		    "status": 200
+		}
+
+	7.2	获取男便池
+		GET http://192.168.3.188:10086/api/v1/seat/2
+		RESULT:
+		{
+		    "data": {
+		        "positionList": [
+		            4,
+		            5,
+		            6,
+		            7,
+		            8,
+		            1,
+		            2,
+		            3
+		        ],
+		        "hasPersonList": [
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0
+		        ],
+		        "emptyPosition": 8,
+		        "occupyPosition": 0
+		    },
+		    "status": 200
+		}
+
+	7.3 获取女厕位
+		GET http://192.168.3.188:10086/api/v1/seat/3
+		RESULT:
+		{
+		    "data": {
+		        "positionList": [
+		            1,
+		            2,
+		            3,
+		            4,
+		            5,
+		            6,
+		            7,
+		            8,
+		            9,
+		            10,
+		            11,
+		            12,
+		            13
+		        ],
+		        "hasPersonList": [
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0
+		        ],
+		        "emptyPosition": 13,
+		        "occupyPosition": 0
+		    },
+		    "status": 200
+		}
+
+	7.4	获取母婴
+		GET http://192.168.3.188:10086/api/v1/seat/4
+		RESULT:
+		{
+		    "data": {
+		        "positionList": [
+		            1
+		        ],
+		        "hasPersonList": [
+		            0
+		        ],
+		        "emptyPosition": 1,
+		        "occupyPosition": 0
+		    },
+		    "status": 200
+		}
+
+	7.5 获取残卫
+		GET http://192.168.3.188:10086/api/v1/seat/5
+		RESULT:
+		{
+		    "data": [
+		        [
+		            1,
+		            0
+		        ],
+		        [
+		            2,
+		            0
+		        ]
+		    ],
+		    "status": 200
+		}
+
+8	获取天气情况
+	GET http://192.168.3.188:10086/api/v1/weather
+	RESULT:
+	{
+	    "data": {
+	        "skycon": "CLOUDY",
+	        "icon_url": "http://192.168.3.188:10080/icon/CLOUDY.png",
+	        "o3": 26,
+	        "co": 0.5,
+	        "so2": 7,
+	        "no2": 30,
+	        "temperature": 21.21,
+	        "humidity": 0.74,
+	        "pm25": 21,
+	        "pm10": 32,
+	        "cloudrate": 0.9,
+	        "aqi": 32,
+	        "dswrf": 31.2,
+	        "visibility": 28.7,
+	        "ultraviolet_desc": "很弱",
+	        "pres": 101158.33,
+	        "comfort_desc": "舒适",
+	        "wind_direction": 30.18,
+	        "wind_speed": 19.56,
+	        "temperature_indoor": 26.6,
+	        "humidity_indoor": 44.9
+	    },
+	    "status": 200
+	}
+
+
diff --git a/localapi.txt/localapi.txt b/localapi.txt/localapi.txt
new file mode 100644
index 0000000..f76d97a
--- /dev/null
+++ b/localapi.txt/localapi.txt
@@ -0,0 +1,255 @@
+##
+##
+##		本地api,只供本地二层访问,及转发
+##
+##
+
+##########################################
+##  http://192.168.3.188:10086/api/v1/  ##
+##########################################
+
+1	获取用水量
+	GET http://192.168.3.188:10086/api/v1/totalWater
+	RESULT:
+	{
+	    "data": {
+	        "totalWater": 1
+	    },
+	    "status": 200
+	}
+
+2	获取用电量
+	GET http://192.168.3.188:10086/api/v1/totalElectricity
+	RESULT:
+	{
+	    "data": {
+	    	"totalElectric": 99.9
+	    },
+	    "status": 200
+	}
+
+3	获取臭味级别
+	GET http://192.168.3.188:10086/api/v1/stink
+	RESULT:
+	{
+	    "data": {
+	        "stink": "无味"
+	    },
+	    "status": 200
+	}
+
+4	获取环境信息
+	GET http://192.168.3.188:10086/api/v1/environmentDate
+	RESULT:
+	{
+	    "data": {
+	        "PM10": 14,
+	        "pm2.5": 11,
+	        "TVOC": 9.8,
+	        "二氧化碳": 457,
+	        "温度": 26.6,
+	        "湿度": 45.2,
+	        "甲醛": 4
+	    },
+	    "status": 200
+	}
+
+5	获取满意度
+	GET http://192.168.3.188:10086/api/v1/satisfaction
+	RESULT:
+	{
+	    "data": {
+	        "satisfaction": 1    // 浮点型,1为100%
+	    },
+	    "status": 200
+	}
+
+6	获取当日人流量
+	GET http://192.168.3.188:10086/api/v1/traffic
+	RESULT:
+	{
+	    "data": {
+	        "traffic": 100
+	    },
+	    "status": 200
+	}
+
+7	获取厕位状况
+	##################################################
+	##  http://192.168.3.188:10086/api/v1/seat/:id  ##
+	##  id 取值在[1, 2, 3, 4, 5]					    ##
+	##  1 : 获取男厕位								##
+	##  2 : 获取男便池								##
+	##  3 : 获取女厕位								##
+	##  4 : 获取母婴								    ##
+	##  5 : 获取残卫								    ##
+	##################################################
+
+	7.1 获取男厕位
+		GET http://192.168.3.188:10086/api/v1/seat/1
+		RESULT:
+		{
+		    "data": {
+		        "positionList": [
+		            1,
+		            2,
+		            3,
+		            4,
+		            5,
+		            6,
+		            7,
+		            8
+		        ],
+		        "hasPersonList": [
+		            0,
+		            1,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0
+		        ],
+		        "emptyPosition": 7,
+		        "occupyPosition": 1
+		    },
+		    "status": 200
+		}
+
+	7.2	获取男便池
+		GET http://192.168.3.188:10086/api/v1/seat/2
+		RESULT:
+		{
+		    "data": {
+		        "positionList": [
+		            4,
+		            5,
+		            6,
+		            7,
+		            8,
+		            1,
+		            2,
+		            3
+		        ],
+		        "hasPersonList": [
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0
+		        ],
+		        "emptyPosition": 8,
+		        "occupyPosition": 0
+		    },
+		    "status": 200
+		}
+
+	7.3 获取女厕位
+		GET http://192.168.3.188:10086/api/v1/seat/3
+		RESULT:
+		{
+		    "data": {
+		        "positionList": [
+		            1,
+		            2,
+		            3,
+		            4,
+		            5,
+		            6,
+		            7,
+		            8,
+		            9,
+		            10,
+		            11,
+		            12,
+		            13
+		        ],
+		        "hasPersonList": [
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0,
+		            0
+		        ],
+		        "emptyPosition": 13,
+		        "occupyPosition": 0
+		    },
+		    "status": 200
+		}
+
+	7.4	获取母婴
+		GET http://192.168.3.188:10086/api/v1/seat/4
+		RESULT:
+		{
+		    "data": {
+		        "positionList": [
+		            1
+		        ],
+		        "hasPersonList": [
+		            0
+		        ],
+		        "emptyPosition": 1,
+		        "occupyPosition": 0
+		    },
+		    "status": 200
+		}
+
+	7.5 获取残卫
+		GET http://192.168.3.188:10086/api/v1/seat/5
+		RESULT:
+		{
+		    "data": [
+		        [
+		            1,
+		            0
+		        ],
+		        [
+		            2,
+		            0
+		        ]
+		    ],
+		    "status": 200
+		}
+
+8	获取天气情况
+	GET http://192.168.3.188:10086/api/v1/weather
+	RESULT:
+	{
+	    "data": {
+	        "skycon": "CLOUDY",
+	        "icon_url": "http://192.168.3.188:10080/icon/CLOUDY.png",
+	        "o3": 26,
+	        "co": 0.5,
+	        "so2": 7,
+	        "no2": 30,
+	        "temperature": 21.21,
+	        "humidity": 0.74,
+	        "pm25": 21,
+	        "pm10": 32,
+	        "cloudrate": 0.9,
+	        "aqi": 32,
+	        "dswrf": 31.2,
+	        "visibility": 28.7,
+	        "ultraviolet_desc": "很弱",
+	        "pres": 101158.33,
+	        "comfort_desc": "舒适",
+	        "wind_direction": 30.18,
+	        "wind_speed": 19.56,
+	        "temperature_indoor": 26.6,
+	        "humidity_indoor": 44.9
+	    },
+	    "status": 200
+	}
+
+