askin 2 роки тому
батько
коміт
9889c59834
52 змінених файлів з 647 додано та 287 видалено
  1. 18 4
      sources/client/vrv-moblie/pages/project/projectInfo/projectInfo.vue
  2. BIN
      sources/client/vrv-moblie/static/按钮/启用@2x.png
  3. BIN
      sources/client/vrv-moblie/static/按钮/禁用@2x.png
  4. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  5. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/components/best-gauge/best-gauge.js.map
  6. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/alarm/alarm.js.map
  7. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/alarmRecord/alarmRecord.js.map
  8. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/dataCurve/dataCurve.js.map
  9. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/device/device.js.map
  10. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/device/deviceInfo/deviceInfo.js.map
  11. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map
  12. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/maintenanceRecord/maintenanceRecord.js.map
  13. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/operator/operator.js.map
  14. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/operator/operatorInfo/operatorInfo.js.map
  15. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/operatorLog/operatorLog.js.map
  16. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/parameterSetting/parameterSetting.js.map
  17. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/power/power.js.map
  18. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/project/project.js.map
  19. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/project/projectEdit/projectEdit.js.map
  20. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/project/projectInfo/projectInfo.js.map
  21. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/rolePower/rolePower.js.map
  22. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/roleShowPower/roleShowPower.js.map
  23. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/runningState/runningState.js.map
  24. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/staticProject/staticProject.js.map
  25. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/systemParameter/systemParameter.js.map
  26. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/systemSet/systemSet.js.map
  27. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/user/user.js.map
  28. 72 71
      sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/app.json
  29. 5 5
      sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/common/vendor.js
  30. 14 14
      sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/components/best-gauge/best-gauge.js
  31. 2 2
      sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/pages/dataCurve/dataCurve.js
  32. 16 16
      sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/pages/project/projectEdit/projectEdit.js
  33. 18 4
      sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/pages/project/projectInfo/projectInfo.js
  34. 1 1
      sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/pages/project/projectInfo/projectInfo.wxml
  35. 1 18
      sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/project.config.json
  36. 0 20
      sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/project.private.config.json
  37. BIN
      sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/static/按钮/启用@2x.png
  38. BIN
      sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/static/按钮/禁用@2x.png
  39. 1 1
      sources/client/vrv-platform/src/config/api.js
  40. 1 1
      sources/server/vrv/run/application.pid
  41. 22 0
      sources/server/vrv/vrv-core-api/src/main/java/com/kuyuntech/vrv/coreapi/bean/mqtt/MyMessage.java
  42. 0 3
      sources/server/vrv/vrv-core-service/src/main/java/com/kuyuntech/vrv/coreservice/domain/core/DeviceParam.java
  43. 12 6
      sources/server/vrv/vrv-platform/pom.xml
  44. 121 0
      sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/configuration/core/MqttConfiguration.java
  45. 18 0
      sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/configuration/core/MqttGateway.java
  46. 49 0
      sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/controller/core/DeviceParamController.java
  47. 25 0
      sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/controller/mqtt/MqttController.java
  48. 38 0
      sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/readJson/Test.java
  49. 40 0
      sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/readJson/readDeviceParams.java
  50. 47 0
      sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/util/core/FileUtils.java
  51. 1 1
      sources/server/vrv/vrv-platform/src/main/resources/application.properties
  52. 101 96
      sources/server/vrv/vrv-platform/src/main/resources/static/device-params.json

+ 18 - 4
sources/client/vrv-moblie/pages/project/projectInfo/projectInfo.vue

@@ -40,7 +40,7 @@
 
 			<view class="col">
 				<view class="switch">
-					<switch :checked="item.useStatus" color="#007AFE" @change="switchChange"/>
+					<switch :checked="gatewayData.useStatus" color="#007AFE" @change="switchChange" />
 				</view>
 				<view class="list" @tap="showDevice" :data-code="item.code">设备列表 ></view>
 			</view>
@@ -81,6 +81,18 @@
 					city: '',
 					operatorCode: '',
 					operatorNumber: ''
+				},
+
+				gatewayData: {
+					code: '',
+					ip: '',
+					location: '',
+					useStatus: '1',
+					number: '',
+					operatorCode: '',
+					operatorNumber: '',
+					projectCode: '',
+					projectNumber: '',
 				}
 			}
 		},
@@ -135,9 +147,11 @@
 		},
 		methods: {
 			switchChange(e) {
-				console.log(e);
-				var usestatus = e.currentTarget.dataset.usestatus;
-				console.log(usestatus);
+				console.log(e.detail.value);
+
+				if (e.detail.value == true) {
+				} else {
+				}
 			},
 
 			showEdit(e) {

BIN
sources/client/vrv-moblie/static/按钮/启用@2x.png


BIN
sources/client/vrv-moblie/static/按钮/禁用@2x.png


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/components/best-gauge/best-gauge.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/alarm/alarm.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/alarmRecord/alarmRecord.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/dataCurve/dataCurve.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/device/device.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/device/deviceInfo/deviceInfo.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/maintenanceRecord/maintenanceRecord.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/operator/operator.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/operator/operatorInfo/operatorInfo.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/operatorLog/operatorLog.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/parameterSetting/parameterSetting.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/power/power.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/project/project.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/project/projectEdit/projectEdit.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/project/projectInfo/projectInfo.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/rolePower/rolePower.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/roleShowPower/roleShowPower.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/runningState/runningState.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/staticProject/staticProject.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/systemParameter/systemParameter.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/systemSet/systemSet.js.map


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/.sourcemap/mp-weixin/pages/user/user.js.map


+ 72 - 71
sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/app.json

@@ -1,73 +1,74 @@
 {
-  "pages": [
-    "pages/operator/operator",
-    "pages/login/login",
-    "pages/operator/operatorInfo/operatorInfo",
-    "pages/device/device",
-    "pages/device/deviceInfo/deviceInfo",
-    "pages/staticProject/staticProject",
-    "pages/project/project",
-    "pages/project/projectInfo/projectInfo",
-    "pages/alarm/alarm",
-    "pages/operatorLog/operatorLog",
-    "pages/systemSet/systemSet",
-    "pages/error/error",
-    "pages/parameterSetting/parameterSetting",
-    "pages/systemParameter/systemParameter",
-    "pages/alarmRecord/alarmRecord",
-    "pages/maintenanceRecord/maintenanceRecord",
-    "pages/user/user",
-    "pages/rolePower/rolePower",
-    "pages/roleShowPower/roleShowPower",
-    "pages/runningState/runningState",
-    "pages/dataCurve/dataCurve",
-    "pages/power/power",
-    "pages/project/projectEdit/projectEdit"
-  ],
-  "subPackages": [],
-  "window": {
-    "navigationBarTextStyle": "black",
-    "navigationBarTitleText": "uni-app",
-    "navigationBarBackgroundColor": "#F8F8F8",
-    "backgroundColor": "#F8F8F8"
-  },
-  "tabBar": {
-    "color": "#7A7E83",
-    "selectedColor": "#3cc51f",
-    "borderStyle": "black",
-    "backgroundColor": "#ffffff",
-    "list": [
-      {
-        "pagePath": "pages/operator/operator",
-        "iconPath": "static/底部按钮/项目管理@2x.png",
-        "selectedIconPath": "static/底部按钮/项目管理@2x.png",
-        "text": "运营商管理"
-      },
-      {
-        "pagePath": "pages/project/project",
-        "iconPath": "static/底部按钮/项目管理@2x.png",
-        "selectedIconPath": "static/底部按钮/项目管理@2x.png",
-        "text": "项目管理"
-      },
-      {
-        "pagePath": "pages/alarm/alarm",
-        "iconPath": "static/底部按钮/报警管理@2x.png",
-        "selectedIconPath": "static/底部按钮/报警管理@2x.png",
-        "text": "报警管理"
-      },
-      {
-        "pagePath": "pages/operatorLog/operatorLog",
-        "iconPath": "static/底部按钮/操作日志@2x.png",
-        "selectedIconPath": "static/底部按钮/操作日志@2x.png",
-        "text": "操作日志"
-      },
-      {
-        "pagePath": "pages/systemSet/systemSet",
-        "iconPath": "static/底部按钮/系统设置@2x.png",
-        "selectedIconPath": "static/底部按钮/系统设置@2x.png",
-        "text": "系统设置"
-      }
-    ]
-  },
-  "usingComponents": {}
+    "pages": [
+        "pages/operator/operator",
+        "pages/login/login",
+        "pages/operator/operatorInfo/operatorInfo",
+        "pages/device/device",
+        "pages/device/deviceInfo/deviceInfo",
+        "pages/staticProject/staticProject",
+        "pages/project/project",
+        "pages/project/projectInfo/projectInfo",
+        "pages/alarm/alarm",
+        "pages/operatorLog/operatorLog",
+        "pages/systemSet/systemSet",
+        "pages/error/error",
+        "pages/parameterSetting/parameterSetting",
+        "pages/systemParameter/systemParameter",
+        "pages/alarmRecord/alarmRecord",
+        "pages/maintenanceRecord/maintenanceRecord",
+        "pages/user/user",
+        "pages/rolePower/rolePower",
+        "pages/roleShowPower/roleShowPower",
+        "pages/runningState/runningState",
+        "pages/dataCurve/dataCurve",
+        "pages/power/power",
+        "pages/project/projectEdit/projectEdit"
+    ],
+    "subPackages": [],
+    "window": {
+        "navigationBarTextStyle": "black",
+        "navigationBarTitleText": "uni-app",
+        "navigationBarBackgroundColor": "#F8F8F8",
+        "backgroundColor": "#F8F8F8"
+    },
+    "tabBar": {
+        "color": "#7A7E83",
+        "selectedColor": "#3cc51f",
+        "borderStyle": "black",
+        "backgroundColor": "#ffffff",
+        "list": [
+            {
+                "pagePath": "pages/operator/operator",
+                "iconPath": "static/底部按钮/项目管理@2x.png",
+                "selectedIconPath": "static/底部按钮/项目管理@2x.png",
+                "text": "运营商管理"
+            },
+            {
+                "pagePath": "pages/project/project",
+                "iconPath": "static/底部按钮/项目管理@2x.png",
+                "selectedIconPath": "static/底部按钮/项目管理@2x.png",
+                "text": "项目管理"
+            },
+            {
+                "pagePath": "pages/alarm/alarm",
+                "iconPath": "static/底部按钮/报警管理@2x.png",
+                "selectedIconPath": "static/底部按钮/报警管理@2x.png",
+                "text": "报警管理"
+            },
+            {
+                "pagePath": "pages/operatorLog/operatorLog",
+                "iconPath": "static/底部按钮/操作日志@2x.png",
+                "selectedIconPath": "static/底部按钮/操作日志@2x.png",
+                "text": "操作日志"
+            },
+            {
+                "pagePath": "pages/systemSet/systemSet",
+                "iconPath": "static/底部按钮/系统设置@2x.png",
+                "selectedIconPath": "static/底部按钮/系统设置@2x.png",
+                "text": "系统设置"
+            }
+        ]
+    },
+    "usingComponents": {},
+    "sitemapLocation": "sitemap.json"
 }

+ 5 - 5
sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/common/vendor.js

@@ -1430,7 +1430,7 @@ function initData(vueOptions, context) {
     try {
       data = data.call(context); // 支持 Vue.prototype 上挂的数据
     } catch (e) {
-      if (Object({"VUE_APP_NAME":"vrv-platform","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
+      if (Object({"NODE_ENV":"development","VUE_APP_NAME":"vrv-platform","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG) {
         console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);
       }
     }
@@ -14679,7 +14679,7 @@ function type(obj) {
 
 function flushCallbacks$1(vm) {
     if (vm.__next_tick_callbacks && vm.__next_tick_callbacks.length) {
-        if (Object({"VUE_APP_NAME":"vrv-platform","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
+        if (Object({"NODE_ENV":"development","VUE_APP_NAME":"vrv-platform","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG) {
             var mpInstance = vm.$scope;
             console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +
                 ']:flushCallbacks[' + vm.__next_tick_callbacks.length + ']');
@@ -14700,14 +14700,14 @@ function nextTick$1(vm, cb) {
     //1.nextTick 之前 已 setData 且 setData 还未回调完成
     //2.nextTick 之前存在 render watcher
     if (!vm.__next_tick_pending && !hasRenderWatcher(vm)) {
-        if(Object({"VUE_APP_NAME":"vrv-platform","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG){
+        if(Object({"NODE_ENV":"development","VUE_APP_NAME":"vrv-platform","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG){
             var mpInstance = vm.$scope;
             console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +
                 ']:nextVueTick');
         }
         return nextTick(cb, vm)
     }else{
-        if(Object({"VUE_APP_NAME":"vrv-platform","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG){
+        if(Object({"NODE_ENV":"development","VUE_APP_NAME":"vrv-platform","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG){
             var mpInstance$1 = vm.$scope;
             console.log('[' + (+new Date) + '][' + (mpInstance$1.is || mpInstance$1.route) + '][' + vm._uid +
                 ']:nextMPTick');
@@ -14793,7 +14793,7 @@ var patch = function(oldVnode, vnode) {
     });
     var diffData = this.$shouldDiffData === false ? data : diff(data, mpData);
     if (Object.keys(diffData).length) {
-      if (Object({"VUE_APP_NAME":"vrv-platform","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
+      if (Object({"NODE_ENV":"development","VUE_APP_NAME":"vrv-platform","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG) {
         console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + this._uid +
           ']差量更新',
           JSON.stringify(diffData));

Різницю між файлами не показано, бо вона завелика
+ 14 - 14
sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/components/best-gauge/best-gauge.js


Різницю між файлами не показано, бо вона завелика
+ 2 - 2
sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/pages/dataCurve/dataCurve.js


Різницю між файлами не показано, бо вона завелика
+ 16 - 16
sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/pages/project/projectEdit/projectEdit.js


+ 18 - 4
sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/pages/project/projectInfo/projectInfo.js

@@ -214,7 +214,19 @@ var _default =
         province: '',
         city: '',
         operatorCode: '',
-        operatorNumber: '' } };
+        operatorNumber: '' },
+
+
+      gatewayData: {
+        code: '',
+        ip: '',
+        location: '',
+        useStatus: '1',
+        number: '',
+        operatorCode: '',
+        operatorNumber: '',
+        projectCode: '',
+        projectNumber: '' } };
 
 
   },
@@ -269,9 +281,11 @@ var _default =
   },
   methods: {
     switchChange: function switchChange(e) {
-      console.log(e);
-      var usestatus = e.currentTarget.dataset.usestatus;
-      console.log(usestatus);
+      console.log(e.detail.value);
+
+      if (e.detail.value == true) {
+      } else {
+      }
     },
 
     showEdit: function showEdit(e) {

Різницю між файлами не показано, бо вона завелика
+ 1 - 1
sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/pages/project/projectInfo/projectInfo.wxml


+ 1 - 18
sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/project.config.json

@@ -19,24 +19,7 @@
     "libVersion": "2.26.0",
     "appid": "wx95c3daeeb44f85f6",
     "projectname": "vrv-platform",
-    "condition": {
-        "search": {
-            "current": -1,
-            "list": []
-        },
-        "conversation": {
-            "current": -1,
-            "list": []
-        },
-        "game": {
-            "current": -1,
-            "list": []
-        },
-        "miniprogram": {
-            "current": -1,
-            "list": []
-        }
-    },
+    "condition": {},
     "editorSetting": {
         "tabIndent": "insertSpaces",
         "tabSize": 4

+ 0 - 20
sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/project.private.config.json

@@ -3,25 +3,5 @@
     "projectname": "vrv-platform",
     "setting": {
         "compileHotReLoad": true
-    },
-    "condition": {
-        "miniprogram": {
-            "list": [
-                {
-                    "name": "",
-                    "pathName": "pages/project/projectEdit/projectEdit",
-                    "query": "",
-                    "launchMode": "default",
-                    "scene": null
-                },
-                {
-                    "name": "",
-                    "pathName": "pages/login/login",
-                    "query": "",
-                    "launchMode": "default",
-                    "scene": null
-                }
-            ]
-        }
     }
 }

BIN
sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/static/按钮/启用@2x.png


BIN
sources/client/vrv-moblie/unpackage/dist/dev/mp-weixin/static/按钮/禁用@2x.png


+ 1 - 1
sources/client/vrv-platform/src/config/api.js

@@ -1,5 +1,5 @@
 //路径
-const root = "http://127.0.0.1:8088";
+const root = "http://127.0.0.1:8888";
 
 //接口auth
 const api = {

+ 1 - 1
sources/server/vrv/run/application.pid

@@ -1 +1 @@
-13612
+17892

+ 22 - 0
sources/server/vrv/vrv-core-api/src/main/java/com/kuyuntech/vrv/coreapi/bean/mqtt/MyMessage.java

@@ -0,0 +1,22 @@
+package com.kuyuntech.vrv.coreapi.bean.mqtt;
+
+public class MyMessage {
+    private String topic;
+    private String content;
+
+    public String getTopic() {
+        return topic;
+    }
+
+    public void setTopic(String topic) {
+        this.topic = topic;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+}

+ 0 - 3
sources/server/vrv/vrv-core-service/src/main/java/com/kuyuntech/vrv/coreservice/domain/core/DeviceParam.java

@@ -45,7 +45,4 @@ public class DeviceParam extends FastbootEntity {
 
     @Column(columnDefinition = "varchar(255) COMMENT '参数值'")
     private String value;
-
-    @Column(columnDefinition = "varchar(255) COMMENT '选择模式'")
-    private String mode;
 }

+ 12 - 6
sources/server/vrv/vrv-platform/pom.xml

@@ -4,14 +4,14 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
- 
+
     <!-- 父模块配置 -->
     <parent>
         <groupId>com.wbspool</groupId>
         <artifactId>fastboot-core</artifactId>
         <version>0.0.1-SNAPSHOT</version>
     </parent>
- 
+
 
     <!-- 项目信息 -->
     <groupId>com.kuyuntech</groupId>
@@ -28,6 +28,12 @@
 
     <!-- 项目依赖 -->
     <dependencies>
+        <!--mqtt包-->
+        <dependency>
+            <groupId>org.springframework.integration</groupId>
+            <artifactId>spring-integration-mqtt</artifactId>
+        </dependency>
+
 
 
         <!-- 项目基础依赖 -->
@@ -148,15 +154,15 @@
             <artifactId>fastboot-dubbo</artifactId>
         </dependency>
 
-            
+
         <dependency>
             <groupId>com.kuyuntech</groupId>
             <artifactId>vrv-core-api</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
-        
 
-        
+
+
         <dependency>
             <groupId>com.kuyuntech</groupId>
             <artifactId>vrv-core-service</artifactId>
@@ -199,7 +205,7 @@
 
 
 
-    
+
 
 
 

+ 121 - 0
sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/configuration/core/MqttConfiguration.java

@@ -0,0 +1,121 @@
+package com.kuyuntech.vrv.platform.configuration.core;
+
+import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.integration.annotation.ServiceActivator;
+import org.springframework.integration.channel.DirectChannel;
+import org.springframework.integration.core.MessageProducer;
+import org.springframework.integration.mqtt.core.DefaultMqttPahoClientFactory;
+import org.springframework.integration.mqtt.core.MqttPahoClientFactory;
+import org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter;
+import org.springframework.integration.mqtt.outbound.MqttPahoMessageHandler;
+import org.springframework.integration.mqtt.support.DefaultPahoMessageConverter;
+import org.springframework.messaging.MessageChannel;
+import org.springframework.messaging.MessageHandler;
+
+@Configuration
+public class MqttConfiguration {
+
+    // 消费消息
+
+    /**
+     * 创建MqttPahoClientFactory,设置MQTT Broker连接属性,如果使用SSL验证,也在这里设置。
+     *
+     * @return factory
+     */
+    @Bean
+    public MqttPahoClientFactory mqttClientFactory() {
+        DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory();
+        MqttConnectOptions options = new MqttConnectOptions();
+
+        // 设置代理端的URL地址,可以是多个
+        options.setServerURIs(new String[]{"tcp://47.107.255.78:1883"});
+
+        factory.setConnectionOptions(options);
+        return factory;
+    }
+
+    /**
+     * 入站通道
+     */
+    @Bean
+    public MessageChannel mqttInputChannel() {
+        return new DirectChannel();
+    }
+
+    /**
+     * 入站
+     */
+    @Bean
+    public MessageProducer inbound() {
+        // Paho客户端消息驱动通道适配器,主要用来订阅主题
+        MqttPahoMessageDrivenChannelAdapter adapter = new MqttPahoMessageDrivenChannelAdapter("consumerClient-paho",
+                mqttClientFactory(), "mqtt/335102012203A500/data", "collector", "battery", "+/sensor");
+        adapter.setCompletionTimeout(5000);
+
+        // Paho消息转换器
+        DefaultPahoMessageConverter defaultPahoMessageConverter = new DefaultPahoMessageConverter();
+        // 按字节接收消息
+//        defaultPahoMessageConverter.setPayloadAsBytes(true);
+        adapter.setConverter(defaultPahoMessageConverter);
+        adapter.setQos(1); // 设置QoS
+        adapter.setOutputChannel(mqttInputChannel());
+        return adapter;
+    }
+
+    @Bean
+    // ServiceActivator注解表明:当前方法用于处理MQTT消息,inputChannel参数指定了用于消费消息的channel。
+    @ServiceActivator(inputChannel = "mqttInputChannel")
+    public MessageHandler handler() {
+        return message -> {
+            String payload = message.getPayload().toString();
+
+            // byte[] bytes = (byte[]) message.getPayload(); // 收到的消息是字节格式
+            String topic = message.getHeaders().get("mqtt_receivedTopic").toString();
+
+            // 根据主题分别进行消息处理。
+            if (topic.matches(".+/sensor")) { // 匹配:1/sensor
+                String sensorSn = topic.split("/")[0];
+                System.out.println("传感器" + sensorSn + ": 的消息: " + payload);
+            } else if (topic.equals("collector")) {
+                System.out.println("采集器的消息:" + payload);
+            } else {
+                System.out.println("丢弃消息:主题[" + topic + "],负载:" + payload);
+            }
+
+        };
+    }
+
+    // 发送消息
+
+    /**
+     * 出站通道
+     */
+    @Bean
+    public MessageChannel mqttOutboundChannel() {
+        return new DirectChannel();
+    }
+
+    /**
+     * 出站
+     */
+    @Bean
+    @ServiceActivator(inputChannel = "mqttOutboundChannel")
+    public MessageHandler outbound() {
+
+        // 发送消息和消费消息Channel可以使用相同MqttPahoClientFactory
+        MqttPahoMessageHandler messageHandler = new MqttPahoMessageHandler("publishClient", mqttClientFactory());
+        messageHandler.setAsync(true); // 如果设置成true,即异步,发送消息时将不会阻塞。
+        messageHandler.setDefaultTopic("command");
+        messageHandler.setDefaultQos(1); // 设置默认QoS
+
+        // Paho消息转换器
+        DefaultPahoMessageConverter defaultPahoMessageConverter = new DefaultPahoMessageConverter();
+
+        // defaultPahoMessageConverter.setPayloadAsBytes(true); // 发送默认按字节类型发送消息
+        messageHandler.setConverter(defaultPahoMessageConverter);
+        return messageHandler;
+    }
+
+}

+ 18 - 0
sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/configuration/core/MqttGateway.java

@@ -0,0 +1,18 @@
+package com.kuyuntech.vrv.platform.configuration.core;
+
+import org.springframework.integration.annotation.MessagingGateway;
+import org.springframework.integration.mqtt.support.MqttHeaders;
+import org.springframework.messaging.handler.annotation.Header;
+
+@MessagingGateway(defaultRequestChannel = "mqttOutboundChannel")
+public interface MqttGateway {
+    // 定义重载方法,用于消息发送
+    void sendToMqtt(String payload);
+
+    // 指定topic进行消息发送
+    void sendToMqtt(@Header(MqttHeaders.TOPIC) String topic, String payload);
+
+    void sendToMqtt(@Header(MqttHeaders.TOPIC) String topic, @Header(MqttHeaders.QOS) int qos, String payload);
+
+    void sendToMqtt(@Header(MqttHeaders.TOPIC) String topic, @Header(MqttHeaders.QOS) int qos, byte[] payload);
+}

+ 49 - 0
sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/controller/core/DeviceParamController.java

@@ -1,7 +1,10 @@
 package com.kuyuntech.vrv.platform.controller.core;
 
+import com.alibaba.fastjson.JSONObject;
 import com.kuyuntech.vrv.coreapi.bean.core.DeviceParamBean;
 import com.kuyuntech.vrv.coreapi.service.core.DeviceParamService;
+import com.kuyuntech.vrv.platform.readJson.Test;
+import com.kuyuntech.vrv.platform.util.core.FileUtils;
 import com.wbspool.fastboot.core.common.bean.PagerBean;
 import com.wbspool.fastboot.core.common.bean.ResponseBean;
 import com.wbspool.fastboot.core.common.builder.MapBuilder;
@@ -17,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -32,6 +36,50 @@ public class DeviceParamController {
     @Autowired
     DeviceParamService deviceParamService;
 
+    /**
+     * 新增参数
+     * TODO 待实现
+     *
+     * @param deviceParamBean 新增参数
+     * @return
+     */
+    @RequestMapping
+    @ParamErrorAutoResponse
+    public Object addParams(@Validated(ValidGroup.Add.class) DeviceParamBean deviceParamBean) {
+        String dataFromJsonFile = FileUtils.getDataFromJsonFile("C:\\Users\\askin\\IdeaProjects\\airconditioner\\sources\\server\\vrv\\vrv-platform\\src\\main\\resources\\static\\device-params.json");
+
+        JSONObject jsonObject = JSONObject.parseObject(dataFromJsonFile);
+
+        String devices = jsonObject.getString("devices");
+
+        //取里面
+        List<Test> list = JSONObject.parseArray(devices, Test.class);
+//        String deviceId = list.get(0).getDeviceId();
+//        int deviceState = list.get(0).getDeviceState();
+
+        HashMap<String, String> deviceData = list.get(0).getDeviceData();
+
+//        System.out.println(deviceId + "::" + deviceState);
+
+        for (Map.Entry<String, String> entry : deviceData.entrySet()) {
+            String name = entry.getKey();
+            String value = entry.getValue();
+
+            deviceParamBean.setName(name);
+            deviceParamBean.setValue(value);
+
+            deviceParamBean = this.deviceParamService.add(deviceParamBean);
+        }
+
+
+        if (deviceParamBean == null) {
+            return ResponseBean.serverError("操作失败!");
+        }
+
+        return ResponseBean.success("操作成功!").addData("code", deviceParamBean.getCode());
+
+    }
+
 
     /**
      * 新增
@@ -55,6 +103,7 @@ public class DeviceParamController {
 
     }
 
+
     /**
      * 更新
      * TODO 待实现

+ 25 - 0
sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/controller/mqtt/MqttController.java

@@ -0,0 +1,25 @@
+package com.kuyuntech.vrv.platform.controller.mqtt;
+
+import com.kuyuntech.vrv.coreapi.bean.mqtt.MyMessage;
+import com.kuyuntech.vrv.platform.configuration.core.MqttGateway;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+
+@RestController
+public class MqttController {
+
+    @Resource
+    private MqttGateway mqttGateway;
+
+    @PostMapping("/send")
+    public String send(@RequestBody MyMessage myMessage) {
+        // 发送消息到指定主题
+        mqttGateway.sendToMqtt(myMessage.getTopic(), 1, myMessage.getContent());
+        return "send topic: " + myMessage.getTopic()+ ", message : " + myMessage.getContent();
+    }
+
+}

+ 38 - 0
sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/readJson/Test.java

@@ -0,0 +1,38 @@
+package com.kuyuntech.vrv.platform.readJson;
+
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+public class Test {
+
+
+    private String deviceId;
+    private int deviceState;
+
+    private HashMap<String, String> deviceData;
+
+    public HashMap<String, String> getDeviceData() {
+        return deviceData;
+    }
+
+    public void setDeviceData(HashMap<String, String> deviceData) {
+        this.deviceData = deviceData;
+    }
+
+    public String getDeviceId() {
+        return deviceId;
+    }
+
+    public void setDeviceId(String deviceId) {
+        this.deviceId = deviceId;
+    }
+
+    public int getDeviceState() {
+        return deviceState;
+    }
+
+    public void setDeviceState(int deviceState) {
+        this.deviceState = deviceState;
+    }
+}

+ 40 - 0
sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/readJson/readDeviceParams.java

@@ -0,0 +1,40 @@
+package com.kuyuntech.vrv.platform.readJson;
+
+import com.alibaba.fastjson.JSONObject;
+import com.kuyuntech.vrv.platform.util.core.FileUtils;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class readDeviceParams {
+    public static void main(String[] args) throws IOException {
+        String dataFromJsonFile = FileUtils.getDataFromJsonFile("C:\\Users\\askin\\IdeaProjects\\airconditioner\\sources\\server\\vrv\\vrv-platform\\src\\main\\resources\\static\\device-params.json");
+//        System.out.println(dataFromJsonFile);
+
+        JSONObject jsonObject = JSONObject.parseObject(dataFromJsonFile);
+
+        String devices = jsonObject.getString("devices");
+//        System.out.println(devices);
+
+
+//取里面的state
+        List<Test> list = JSONObject.parseArray(devices, Test.class);
+        String deviceId = list.get(0).getDeviceId();
+        int deviceState = list.get(0).getDeviceState();
+        HashMap<String, String> deviceData = list.get(0).getDeviceData();
+        System.out.println(deviceData);
+
+        System.out.println(deviceId + "::" + deviceState);
+
+        for (Map.Entry<String, String> entry : deviceData.entrySet()) {
+            String name = entry.getKey();
+            String value = entry.getValue();
+
+            System.out.println(name + "------" + value);
+        }
+
+
+    }
+}

+ 47 - 0
sources/server/vrv/vrv-platform/src/main/java/com/kuyuntech/vrv/platform/util/core/FileUtils.java

@@ -0,0 +1,47 @@
+package com.kuyuntech.vrv.platform.util.core;
+
+import java.io.*;
+import java.nio.charset.StandardCharsets;
+
+/**
+ * @Description 文件工具类
+ * @ClassName FileUtils
+ */
+public class FileUtils {
+    /**
+     * 从json文件中读取数据
+     *
+     * @param jsonFilePath
+     * @return
+     */
+    public static String getDataFromJsonFile(String jsonFilePath) {
+        StringBuilder jsonString = new StringBuilder();
+        File file = new File(jsonFilePath);
+
+        if (file.exists()) {
+            BufferedReader bufferedReader = null;
+
+            try {
+                bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8));
+                char[] chars = new char[8192];
+                int length;
+                while ((length = bufferedReader.read(chars)) != -1) {
+                    String temp = new String(chars, 0, length);
+                    jsonString.append(temp);
+                }
+            } catch (IOException e) {
+                System.out.println("=====获取数据异常=====" + e);
+            } finally {
+                if (null != bufferedReader) {
+                    try {
+                        bufferedReader.close();
+                    } catch (IOException ex) {
+                        System.out.println("=======获取数据时,关闭流异常=======" + ex);
+                    }
+                }
+            }
+        }
+        return jsonString.toString();
+    }
+}
+

+ 1 - 1
sources/server/vrv/vrv-platform/src/main/resources/application.properties

@@ -17,4 +17,4 @@ server.port=9999
 #fastboot.dubbo.consumer.check=true
 #fastboot.dubbo.registry.check=true
 #fastboot.dubbo.registry.address=zookeeper://localhost:3000
-#fastboot.dubbo.protocol.port=20880
+#fastboot.dubbo.protocol.port=20880

+ 101 - 96
sources/server/vrv/vrv-platform/src/main/resources/static/device-params.json

@@ -1,111 +1,116 @@
 {
+  "version": "5.0",
   "devices": [
     {
       "deviceId": "CK1",
       "deviceState": 1,
       "deviceData": {
-        "WD_1": 0.0,
-        "SD_1": 0.0,
-        "WD_SD": 0.0,
-        "SD_SD": 0.0,
-        "WD1_XZ": 0.0,
-        "SD1_XZ": 0.0,
-        "ZL_P": 0.0,
-        "ZL_I": 0.0,
-        "CS_P": 0.0,
-        "CS_I": 0.0,
-        "JR_P": 0.0,
-        "JR_I": 0.0,
-        "JS_P": 0.0,
-        "JS_I": 0.0,
-        "RSF_SDKD": 0.0,
-        "LSF_SDKD": 0.0,
-        "JSF_SDKD": 0.0,
-        "LSF": 0.0,
-        "RSF": 0.0,
-        "JSF": 0.0,
-        "HSL_SD": 0.0,
-        "HSL": 0.0,
-        "QF_YSBJ": 0,
-        "JZ_YSTZ": 0,
-        "SFJ_YSQD": 0,
-        "PFJ_YSQD": 0,
-        "QD_XQ": 0,
+        "WD_1": 28.42,
+        "SD_1": 51.21,
+        "WD_SD": 26,
+        "SD_SD": 58,
+        "WD1_XZ": 0,
+        "SD1_XZ": 0,
+        "ZL_P": -7,
+        "ZL_I": 1,
+        "CS_P": -7,
+        "CS_I": 1,
+        "JR_P": -7,
+        "JR_I": 1,
+        "JS_P": -7,
+        "JS_I": 1,
+        "RSF_SDKD": 0,
+        "LSF_SDKD": 0,
+        "JSF_SDKD": 0,
+        "LSF": 21.7,
+        "RSF": 21.7,
+        "JSF": 0,
+        "HSL_SD": 12.2,
+        "HSL": 12.43,
+        "QF_YSBJ": 2,
+        "JZ_YSTZ": 2,
+        "SFJ_YSQD": 2,
+        "PFJ_YSQD": 2,
+        "QD_XQ": 2,
         "QD_S": 0,
         "QD_F": 0,
-        "QD_S": 0,
-        "TZ_XQ": 0,
-        "TZ_S": 0,
-        "TZ_F": 0,
-        "TZ_S": 0,
-        "MS_XZ": 0,
-        "JZ_XZ": 0,
-        "JZ_KGJ": 0,
-        "DS_QT": 0,
-        "GZ_FW": 0,
-        "SFF_SZXZ": 0,
-        "SFF_SDQD": 0,
-        "PFF_SZXZ": 0,
-        "PFF_SDQD": 0,
-        "SFJ_SZXZ": 0,
-        "SFJ_SDQD": 0,
-        "PFJ_SZXZ": 0,
-        "PFJ_SDQD": 0,
-        "FLZJ_SZXZ": 0,
-        "FLZJ_SDQD": 0,
+        "TZ_XQ": 6,
+        "TZ_S": 59,
+        "TZ_F": 59,
         "YJDJR_SZXZ": 0,
-        "YJDJR_SDQD": 0,
-        "EJDJR_SZXZ": 0,
-        "EJDJR_SDQD": 0,
-        "SJDJR_SZXZ": 0,
-        "SJDJR_SDQD": 0,
-        "RSF_SZXZ": 0,
-        "LSF_SZXZ": 0,
-        "JSF_SZXZ": 0,
-        "HF_CC": 0,
-        "WS_YXXZ": 0,
+        "FLZJ_SDQD": 0,
+        "FLZJ_SZXZ": 0,
+        "PFJ_SDQD": 0,
+        "PFJ_SZXZ": 0,
+        "SFJ_SDQD": 0,
+        "SFJ_SZXZ": 0,
+        "PFF_SDQD": 0,
+        "PFF_SZXZ": 0,
+        "SFF_SDQD": 0,
+        "SFF_SZXZ": 0,
+        "GZ_FW": 0,
+        "DS_QT": 0,
+        "JZ_KGJ": 0,
+        "JZ_XZ": 0,
+        "MS_XZ": 0,
         "DX_XZ": 0,
-        "WD_GBJ": 0,
-        "WD_DBJ": 0,
-        "SD_GBJ": 0,
-        "SD_DBJ": 0,
-        "LWDS_CX": 0,
-        "LWDS_ZX": 0,
-        "SFJ_GZ": 0,
-        "PFJ_GZ": 0,
-        "FLZJ_GZ": 0,
-        "GW_BJ": 0,
-        "QFYC_BJ": 0,
+        "WS_YXXZ": 0,
+        "HF_CC": 0,
+        "JSF_SZXZ": 0,
+        "LSF_SZXZ": 0,
+        "RSF_SZXZ": 0,
+        "SJDJR_SDQD": 0,
+        "SJDJR_SZXZ": 0,
+        "EJDJR_SDQD": 0,
+        "EJDJR_SZXZ": 0,
+        "YJDJR_SDQD": 0,
         "JZ_JT": 0,
-        "JZ_YX": 0,
-        "JZ_GZ": 0,
-        "SFJ_QT": 0,
-        "PFJ_QT": 0,
-        "YJDJR_QT": 0,
-        "EJDJR_QT": 0,
-        "SJDJR_QT": 0,
-        "SFF_KGKZ": 0,
-        "PFF_KGKZ": 0,
+        "QFYC_BJ": 0,
+        "GW_BJ": 0,
+        "FLZJ_GZ": 0,
+        "PFJ_GZ": 0,
+        "SFJ_GZ": 0,
+        "LWDS_ZX": 0,
+        "LWDS_CX": 0,
+        "SD_DBJ": 0,
+        "SD_GBJ": 0,
+        "WD_DBJ": 0,
+        "WD_GBJ": 0,
         "FLZJ_QT": 0,
-        "WD_2": 0.0,
-        "SD_2": 0.0,
-        "SFJ_PLSD": 0.0,
-        "PFJ_PLSD": 0.0,
-        "SFJ_PLFH": 0.0,
-        "PFJ_PLFH": 0.0,
-        "SFJ_PLSX": 0.0,
-        "SFJ_PLXX": 0.0,
-        "PFJ_PLSX": 0.0,
-        "PFJ_PLXX": 0.0,
-        "WDBJ_SX": 0.0,
-        "WDBJ_XX": 0.0,
-        "SDBJ_SX": 0.0,
-        "SDBJ_XX": 0.0,
-        "SFJ_PLXZ": 0.0,
-        "PFJ_PLXZ": 0.0
+        "PFF_KGKZ": 0,
+        "SFF_KGKZ": 0,
+        "SJDJR_QT": 0,
+        "EJDJR_QT": 0,
+        "YJDJR_QT": 0,
+        "PFJ_QT": 0,
+        "SFJ_QT": 0,
+        "JZ_GZ": 0,
+        "JZ_YX": 0,
+        "WD_2": 0,
+        "SD_2": 0,
+        "SFJ_PLSD": 0,
+        "PFJ_PLSD": 0,
+        "SFJ_PLFH": 22.36,
+        "PFJ_PLFH": 22.35,
+        "SFJ_PLSX": 100,
+        "SFJ_PLXX": 0,
+        "PFJ_PLSX": 100,
+        "PFJ_PLXX": 0,
+        "WDBJ_SX": 25,
+        "WDBJ_XX": 21,
+        "SDBJ_SX": 65,
+        "SDBJ_XX": 45,
+        "SFJ_PLXZ": 0,
+        "PFJ_PLXZ": 0
+      }
+    },
+    {
+      "deviceId": "CK2",
+      "deviceState": 0,
+      "deviceData": {
+        "WD_1": "bad",
+        "SD_1": "bad"
       }
     }
   ]
-}
-
-
+}