Browse Source

ver:0.0.5
desc:1.新增类似ble小工具收发页面
2.添加 log4js
poster:张晓宇

xiaoyuzhang 5 years ago
parent
commit
5a243f8612

+ 169 - 60
package-lock.json

@@ -1,6 +1,6 @@
1
 {
1
 {
2
   "name": "zxy",
2
   "name": "zxy",
3
-  "version": "0.0.4",
3
+  "version": "0.0.5",
4
   "lockfileVersion": 1,
4
   "lockfileVersion": 1,
5
   "requires": true,
5
   "requires": true,
6
   "dependencies": {
6
   "dependencies": {
@@ -4560,10 +4560,9 @@
4560
       "optional": true
4560
       "optional": true
4561
     },
4561
     },
4562
     "date-format": {
4562
     "date-format": {
4563
-      "version": "1.2.0",
4564
-      "resolved": "https://registry.npm.taobao.org/date-format/download/date-format-1.2.0.tgz",
4565
-      "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=",
4566
-      "dev": true
4563
+      "version": "3.0.0",
4564
+      "resolved": "https://registry.npm.taobao.org/date-format/download/date-format-3.0.0.tgz",
4565
+      "integrity": "sha1-64eANlx9KxURB4+0keZHl4DzrZU="
4567
     },
4566
     },
4568
     "dateformat": {
4567
     "dateformat": {
4569
       "version": "1.0.12",
4568
       "version": "1.0.12",
@@ -6732,6 +6731,11 @@
6732
         }
6731
         }
6733
       }
6732
       }
6734
     },
6733
     },
6734
+    "flatted": {
6735
+      "version": "2.0.2",
6736
+      "resolved": "https://registry.npm.taobao.org/flatted/download/flatted-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz",
6737
+      "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg="
6738
+    },
6735
     "flatten": {
6739
     "flatten": {
6736
       "version": "1.0.3",
6740
       "version": "1.0.3",
6737
       "resolved": "https://registry.npm.taobao.org/flatten/download/flatten-1.0.3.tgz?cache=0&sync_timestamp=1572489877048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatten%2Fdownload%2Fflatten-1.0.3.tgz",
6741
       "resolved": "https://registry.npm.taobao.org/flatten/download/flatten-1.0.3.tgz?cache=0&sync_timestamp=1572489877048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatten%2Fdownload%2Fflatten-1.0.3.tgz",
@@ -9655,12 +9659,28 @@
9655
         "useragent": "2.2.1"
9659
         "useragent": "2.2.1"
9656
       },
9660
       },
9657
       "dependencies": {
9661
       "dependencies": {
9662
+        "axios": {
9663
+          "version": "0.15.3",
9664
+          "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.15.3.tgz",
9665
+          "integrity": "sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=",
9666
+          "dev": true,
9667
+          "optional": true,
9668
+          "requires": {
9669
+            "follow-redirects": "1.0.0"
9670
+          }
9671
+        },
9658
         "base64id": {
9672
         "base64id": {
9659
           "version": "1.0.0",
9673
           "version": "1.0.0",
9660
           "resolved": "https://registry.npm.taobao.org/base64id/download/base64id-1.0.0.tgz",
9674
           "resolved": "https://registry.npm.taobao.org/base64id/download/base64id-1.0.0.tgz",
9661
           "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
9675
           "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
9662
           "dev": true
9676
           "dev": true
9663
         },
9677
         },
9678
+        "date-format": {
9679
+          "version": "1.2.0",
9680
+          "resolved": "https://registry.npm.taobao.org/date-format/download/date-format-1.2.0.tgz",
9681
+          "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=",
9682
+          "dev": true
9683
+        },
9664
         "debug": {
9684
         "debug": {
9665
           "version": "2.6.9",
9685
           "version": "2.6.9",
9666
           "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
9686
           "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
@@ -9739,6 +9759,16 @@
9739
             "has-binary2": "~1.0.2"
9759
             "has-binary2": "~1.0.2"
9740
           }
9760
           }
9741
         },
9761
         },
9762
+        "follow-redirects": {
9763
+          "version": "1.0.0",
9764
+          "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.0.0.tgz?cache=0&sync_timestamp=1585479417937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.0.0.tgz",
9765
+          "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=",
9766
+          "dev": true,
9767
+          "optional": true,
9768
+          "requires": {
9769
+            "debug": "^2.2.0"
9770
+          }
9771
+        },
9742
         "isbinaryfile": {
9772
         "isbinaryfile": {
9743
           "version": "3.0.3",
9773
           "version": "3.0.3",
9744
           "resolved": "https://registry.npm.taobao.org/isbinaryfile/download/isbinaryfile-3.0.3.tgz?cache=0&sync_timestamp=1585923989927&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisbinaryfile%2Fdownload%2Fisbinaryfile-3.0.3.tgz",
9774
           "resolved": "https://registry.npm.taobao.org/isbinaryfile/download/isbinaryfile-3.0.3.tgz?cache=0&sync_timestamp=1585923989927&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisbinaryfile%2Fdownload%2Fisbinaryfile-3.0.3.tgz",
@@ -9748,6 +9778,44 @@
9748
             "buffer-alloc": "^1.2.0"
9778
             "buffer-alloc": "^1.2.0"
9749
           }
9779
           }
9750
         },
9780
         },
9781
+        "log4js": {
9782
+          "version": "2.11.0",
9783
+          "resolved": "https://registry.npm.taobao.org/log4js/download/log4js-2.11.0.tgz?cache=0&sync_timestamp=1587337864733&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog4js%2Fdownload%2Flog4js-2.11.0.tgz",
9784
+          "integrity": "sha1-vzkC7/ZcaSPZzpz70ttUFg40AFo=",
9785
+          "dev": true,
9786
+          "requires": {
9787
+            "amqplib": "^0.5.2",
9788
+            "axios": "^0.15.3",
9789
+            "circular-json": "^0.5.4",
9790
+            "date-format": "^1.2.0",
9791
+            "debug": "^3.1.0",
9792
+            "hipchat-notifier": "^1.1.0",
9793
+            "loggly": "^1.1.0",
9794
+            "mailgun-js": "^0.18.0",
9795
+            "nodemailer": "^2.5.0",
9796
+            "redis": "^2.7.1",
9797
+            "semver": "^5.5.0",
9798
+            "slack-node": "~0.2.0",
9799
+            "streamroller": "0.7.0"
9800
+          },
9801
+          "dependencies": {
9802
+            "debug": {
9803
+              "version": "3.2.6",
9804
+              "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz",
9805
+              "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=",
9806
+              "dev": true,
9807
+              "requires": {
9808
+                "ms": "^2.1.1"
9809
+              }
9810
+            },
9811
+            "ms": {
9812
+              "version": "2.1.2",
9813
+              "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz",
9814
+              "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=",
9815
+              "dev": true
9816
+            }
9817
+          }
9818
+        },
9751
         "mime": {
9819
         "mime": {
9752
           "version": "1.6.0",
9820
           "version": "1.6.0",
9753
           "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz",
9821
           "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz",
@@ -9817,6 +9885,35 @@
9817
           "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
9885
           "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
9818
           "dev": true
9886
           "dev": true
9819
         },
9887
         },
9888
+        "streamroller": {
9889
+          "version": "0.7.0",
9890
+          "resolved": "https://registry.npm.taobao.org/streamroller/download/streamroller-0.7.0.tgz",
9891
+          "integrity": "sha1-odG3z4PTmvsNYwSaWsv5NJO99ks=",
9892
+          "dev": true,
9893
+          "requires": {
9894
+            "date-format": "^1.2.0",
9895
+            "debug": "^3.1.0",
9896
+            "mkdirp": "^0.5.1",
9897
+            "readable-stream": "^2.3.0"
9898
+          },
9899
+          "dependencies": {
9900
+            "debug": {
9901
+              "version": "3.2.6",
9902
+              "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz",
9903
+              "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=",
9904
+              "dev": true,
9905
+              "requires": {
9906
+                "ms": "^2.1.1"
9907
+              }
9908
+            },
9909
+            "ms": {
9910
+              "version": "2.1.2",
9911
+              "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz",
9912
+              "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=",
9913
+              "dev": true
9914
+            }
9915
+          }
9916
+        },
9820
         "ws": {
9917
         "ws": {
9821
           "version": "3.3.3",
9918
           "version": "3.3.3",
9822
           "resolved": "https://registry.npm.taobao.org/ws/download/ws-3.3.3.tgz",
9919
           "resolved": "https://registry.npm.taobao.org/ws/download/ws-3.3.3.tgz",
@@ -10435,57 +10532,29 @@
10435
       }
10532
       }
10436
     },
10533
     },
10437
     "log4js": {
10534
     "log4js": {
10438
-      "version": "2.11.0",
10439
-      "resolved": "https://registry.npm.taobao.org/log4js/download/log4js-2.11.0.tgz?cache=0&sync_timestamp=1587337864733&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog4js%2Fdownload%2Flog4js-2.11.0.tgz",
10440
-      "integrity": "sha1-vzkC7/ZcaSPZzpz70ttUFg40AFo=",
10441
-      "dev": true,
10535
+      "version": "6.2.1",
10536
+      "resolved": "https://registry.npm.taobao.org/log4js/download/log4js-6.2.1.tgz?cache=0&sync_timestamp=1587337864733&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog4js%2Fdownload%2Flog4js-6.2.1.tgz",
10537
+      "integrity": "sha1-/COjvyh/QPW0glmVjl4O0w1Vjus=",
10442
       "requires": {
10538
       "requires": {
10443
-        "amqplib": "^0.5.2",
10444
-        "axios": "^0.15.3",
10445
-        "circular-json": "^0.5.4",
10446
-        "date-format": "^1.2.0",
10447
-        "debug": "^3.1.0",
10448
-        "hipchat-notifier": "^1.1.0",
10449
-        "loggly": "^1.1.0",
10450
-        "mailgun-js": "^0.18.0",
10451
-        "nodemailer": "^2.5.0",
10452
-        "redis": "^2.7.1",
10453
-        "semver": "^5.5.0",
10454
-        "slack-node": "~0.2.0",
10455
-        "streamroller": "0.7.0"
10539
+        "date-format": "^3.0.0",
10540
+        "debug": "^4.1.1",
10541
+        "flatted": "^2.0.1",
10542
+        "rfdc": "^1.1.4",
10543
+        "streamroller": "^2.2.4"
10456
       },
10544
       },
10457
       "dependencies": {
10545
       "dependencies": {
10458
-        "axios": {
10459
-          "version": "0.15.3",
10460
-          "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.15.3.tgz",
10461
-          "integrity": "sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=",
10462
-          "dev": true,
10463
-          "optional": true,
10546
+        "debug": {
10547
+          "version": "4.1.1",
10548
+          "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz",
10549
+          "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=",
10464
           "requires": {
10550
           "requires": {
10465
-            "follow-redirects": "1.0.0"
10551
+            "ms": "^2.1.1"
10466
           }
10552
           }
10467
         },
10553
         },
10468
-        "follow-redirects": {
10469
-          "version": "1.0.0",
10470
-          "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.0.0.tgz?cache=0&sync_timestamp=1585479417937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.0.0.tgz",
10471
-          "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=",
10472
-          "dev": true,
10473
-          "optional": true,
10474
-          "requires": {
10475
-            "debug": "^2.2.0"
10476
-          },
10477
-          "dependencies": {
10478
-            "debug": {
10479
-              "version": "2.6.9",
10480
-              "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
10481
-              "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
10482
-              "dev": true,
10483
-              "optional": true,
10484
-              "requires": {
10485
-                "ms": "2.0.0"
10486
-              }
10487
-            }
10488
-          }
10554
+        "ms": {
10555
+          "version": "2.1.2",
10556
+          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz",
10557
+          "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk="
10489
         }
10558
         }
10490
       }
10559
       }
10491
     },
10560
     },
@@ -14343,6 +14412,11 @@
14343
       "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
14412
       "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
14344
       "dev": true
14413
       "dev": true
14345
     },
14414
     },
14415
+    "rfdc": {
14416
+      "version": "1.1.4",
14417
+      "resolved": "https://registry.npm.taobao.org/rfdc/download/rfdc-1.1.4.tgz",
14418
+      "integrity": "sha1-unLME2egzNnPgahws7WL060H+MI="
14419
+    },
14346
     "rgb2hex": {
14420
     "rgb2hex": {
14347
       "version": "0.1.10",
14421
       "version": "0.1.10",
14348
       "resolved": "https://registry.npm.taobao.org/rgb2hex/download/rgb2hex-0.1.10.tgz",
14422
       "resolved": "https://registry.npm.taobao.org/rgb2hex/download/rgb2hex-0.1.10.tgz",
@@ -15677,15 +15751,51 @@
15677
       "dev": true
15751
       "dev": true
15678
     },
15752
     },
15679
     "streamroller": {
15753
     "streamroller": {
15680
-      "version": "0.7.0",
15681
-      "resolved": "https://registry.npm.taobao.org/streamroller/download/streamroller-0.7.0.tgz",
15682
-      "integrity": "sha1-odG3z4PTmvsNYwSaWsv5NJO99ks=",
15683
-      "dev": true,
15754
+      "version": "2.2.4",
15755
+      "resolved": "https://registry.npm.taobao.org/streamroller/download/streamroller-2.2.4.tgz",
15756
+      "integrity": "sha1-wZjO1C25QIamGTYIGHzoCl8rDlM=",
15684
       "requires": {
15757
       "requires": {
15685
-        "date-format": "^1.2.0",
15686
-        "debug": "^3.1.0",
15687
-        "mkdirp": "^0.5.1",
15688
-        "readable-stream": "^2.3.0"
15758
+        "date-format": "^2.1.0",
15759
+        "debug": "^4.1.1",
15760
+        "fs-extra": "^8.1.0"
15761
+      },
15762
+      "dependencies": {
15763
+        "date-format": {
15764
+          "version": "2.1.0",
15765
+          "resolved": "https://registry.npm.taobao.org/date-format/download/date-format-2.1.0.tgz",
15766
+          "integrity": "sha1-MdW16iEc9f12TNOLr50DPffhJc8="
15767
+        },
15768
+        "debug": {
15769
+          "version": "4.1.1",
15770
+          "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz",
15771
+          "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=",
15772
+          "requires": {
15773
+            "ms": "^2.1.1"
15774
+          }
15775
+        },
15776
+        "fs-extra": {
15777
+          "version": "8.1.0",
15778
+          "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-8.1.0.tgz",
15779
+          "integrity": "sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=",
15780
+          "requires": {
15781
+            "graceful-fs": "^4.2.0",
15782
+            "jsonfile": "^4.0.0",
15783
+            "universalify": "^0.1.0"
15784
+          }
15785
+        },
15786
+        "jsonfile": {
15787
+          "version": "4.0.0",
15788
+          "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz",
15789
+          "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
15790
+          "requires": {
15791
+            "graceful-fs": "^4.1.6"
15792
+          }
15793
+        },
15794
+        "ms": {
15795
+          "version": "2.1.2",
15796
+          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz",
15797
+          "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk="
15798
+        }
15689
       }
15799
       }
15690
     },
15800
     },
15691
     "strict-uri-encode": {
15801
     "strict-uri-encode": {
@@ -16654,8 +16764,7 @@
16654
     "universalify": {
16764
     "universalify": {
16655
       "version": "0.1.2",
16765
       "version": "0.1.2",
16656
       "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1583530825899&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz",
16766
       "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1583530825899&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz",
16657
-      "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=",
16658
-      "dev": true
16767
+      "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY="
16659
     },
16768
     },
16660
     "unpipe": {
16769
     "unpipe": {
16661
       "version": "1.0.0",
16770
       "version": "1.0.0",

+ 1 - 0
package.json

@@ -59,6 +59,7 @@
59
     "echarts": "^4.7.0",
59
     "echarts": "^4.7.0",
60
     "element-ui": "^2.13.1",
60
     "element-ui": "^2.13.1",
61
     "koa": "^2.2.0",
61
     "koa": "^2.2.0",
62
+    "log4js": "^6.2.1",
62
     "noble": "^1.9.1",
63
     "noble": "^1.9.1",
63
     "socket.io": "^2.3.0",
64
     "socket.io": "^2.3.0",
64
     "vue": "^2.5.16",
65
     "vue": "^2.5.16",

+ 0 - 1
src/renderer/components/ble/bleIndex.vue

@@ -116,7 +116,6 @@
116
     watch:{
116
     watch:{
117
         blueDeviceList:function (val) {
117
         blueDeviceList:function (val) {
118
             if(val.length >0) {
118
             if(val.length >0) {
119
-                console.log(val)
120
                 this.choseDeviceIndex = 0
119
                 this.choseDeviceIndex = 0
121
                 this.characteristicsList = this.blueDeviceList[0].characteristics
120
                 this.characteristicsList = this.blueDeviceList[0].characteristics
122
             }
121
             }

+ 64 - 13
src/renderer/components/ble/characteristicsServers.vue

@@ -39,7 +39,7 @@
39
         <el-table-column
39
         <el-table-column
40
                 prop="name"
40
                 prop="name"
41
                 label="characteristicServiceUUid"
41
                 label="characteristicServiceUUid"
42
-                width="180">
42
+                width="120">
43
           <template slot-scope="scope">
43
           <template slot-scope="scope">
44
             <span>{{scope.row.characteristic.uuid}}</span>
44
             <span>{{scope.row.characteristic.uuid}}</span>
45
           </template>
45
           </template>
@@ -55,9 +55,10 @@
55
         <el-table-column
55
         <el-table-column
56
                 prop="name"
56
                 prop="name"
57
                 label="options"
57
                 label="options"
58
-                width="180">
58
+                width="280">
59
           <template slot-scope="scope">
59
           <template slot-scope="scope">
60
-            <el-button  :disabled ="!canConnect(scope.row.characteristic.properties)"  @click="writeAndRead(scope.row)">write/read</el-button>
60
+            <el-button  :disabled ="!canConnect(scope.row.characteristic.properties)" type="mini" @click="writeAndRead(scope.row)">压力数据相关</el-button>
61
+            <el-button  :disabled ="!canConnect(scope.row.characteristic.properties)" type="mini" @click="sendAndReceive(scope.row)">发送/接收数据</el-button>
61
           </template>
62
           </template>
62
         </el-table-column>
63
         </el-table-column>
63
       </el-table>
64
       </el-table>
@@ -68,6 +69,7 @@
68
                :modal-append-to-body="false"
69
                :modal-append-to-body="false"
69
                :append-to-body="true"
70
                :append-to-body="true"
70
                :show-close="false"
71
                :show-close="false"
72
+               :close-on-press-escape="false"
71
     >
73
     >
72
       <div style="text-align: center">
74
       <div style="text-align: center">
73
         <div class="head_tip">
75
         <div class="head_tip">
@@ -81,6 +83,29 @@
81
           <el-button @click="stopCollection">停止采集</el-button>
83
           <el-button @click="stopCollection">停止采集</el-button>
82
           <el-button @click="resetDevice">复位</el-button>
84
           <el-button @click="resetDevice">复位</el-button>
83
         </div>
85
         </div>
86
+        <div style="padding-bottom: 20px">
87
+          <div style="width:140px;height:140px;position:relative;margin-top:30px" >
88
+            <div ref="heatsample" style="width:540px;height:540px;position:absolute;top:0;left:0" />
89
+            <chart id="heatmap" style="width:540px;height:540px;position:absolute;top:0"  ref="heatmap"></chart>
90
+          </div>
91
+        </div>
92
+      </div>
93
+      <div slot="footer" class="dialog-footer">
94
+        <el-button @click="closeDialog">关闭dialog</el-button>
95
+      </div>
96
+    </el-dialog>
97
+    <el-dialog title="蓝牙收发" width="80%"
98
+               :close-on-click-modal="false"
99
+               :visible.sync="sendValidate"
100
+               :modal-append-to-body="false"
101
+               :append-to-body="true"
102
+               :show-close="false"
103
+               :close-on-press-escape="false"
104
+    >
105
+      <div style="text-align: center">
106
+        <div class="head_tip">
107
+        </div>
108
+        <div style="padding-bottom: 20px">
84
         <el-row>
109
         <el-row>
85
           <el-col :span="8">
110
           <el-col :span="8">
86
             <div class="grid-content bg-purple">
111
             <div class="grid-content bg-purple">
@@ -95,22 +120,21 @@
95
           <el-col :span="8">
120
           <el-col :span="8">
96
             <div class="grid-content bg-purple">
121
             <div class="grid-content bg-purple">
97
               <el-button @click="sendInputData">发送</el-button>
122
               <el-button @click="sendInputData">发送</el-button>
123
+              <el-button @click="clearInputData">清空接收数据</el-button>
98
             </div>
124
             </div>
99
           </el-col>
125
           </el-col>
100
         </el-row>
126
         </el-row>
101
-        <div style="padding-bottom: 20px">
102
-          <div style="width:140px;height:140px;position:relative;margin-top:30px" >
103
-            <div ref="heatsample" style="width:540px;height:540px;position:absolute;top:0;left:0" />
104
-            <chart id="heatmap" style="width:540px;height:540px;position:absolute;top:0"  ref="heatmap"></chart>
105
-          </div>
127
+        <div style="text-align: left">
128
+          <span>接收到的数据:</span>
129
+          <div style="white-space:pre">{{strReceiveData}}</div>
106
         </div>
130
         </div>
131
+
107
       </div>
132
       </div>
108
       <div slot="footer" class="dialog-footer">
133
       <div slot="footer" class="dialog-footer">
109
         <el-button @click="closeDialog">关闭dialog</el-button>
134
         <el-button @click="closeDialog">关闭dialog</el-button>
110
       </div>
135
       </div>
136
+      </div>
111
     </el-dialog>
137
     </el-dialog>
112
-
113
-
114
   </div>
138
   </div>
115
 
139
 
116
 </template>
140
 </template>
@@ -124,8 +148,9 @@
124
       return {
148
       return {
125
           localName:typeof (this.$route.query.localName) =='undefined' ?'N/A':this.$route.query.localName,
149
           localName:typeof (this.$route.query.localName) =='undefined' ?'N/A':this.$route.query.localName,
126
           validate:false,
150
           validate:false,
151
+          sendValidate:false,
127
           sendData:'',
152
           sendData:'',
128
-          inputData:'04 00 02 00'
153
+          inputData:'12 21'
129
       }
154
       }
130
     },
155
     },
131
     created() {
156
     created() {
@@ -195,7 +220,7 @@
195
             return bRes
220
             return bRes
196
         },
221
         },
197
         writeAndRead(row) {
222
         writeAndRead(row) {
198
-            this.$socket.emit('ble', {cmd: 'setup',data:row})
223
+            this.$socket.emit('ble', {cmd: 'setup',data:row,type:'pressure'})
199
             this.validate = true
224
             this.validate = true
200
             this.$store.dispatch('resetBlueToothData')
225
             this.$store.dispatch('resetBlueToothData')
201
             if(this.h337 !=null) {
226
             if(this.h337 !=null) {
@@ -216,9 +241,15 @@
216
                 this.h337 = heatmap;
241
                 this.h337 = heatmap;
217
             },1000)
242
             },1000)
218
         },
243
         },
244
+        sendAndReceive(row) {
245
+            this.$socket.emit('ble', {cmd: 'setup',data:row,type:'other'})
246
+            this.sendValidate = true
247
+            this.$store.dispatch('resetBlueToothData')
248
+        },
219
         closeDialog() {
249
         closeDialog() {
220
             this.$socket.emit('ble', {cmd: 'closeSetUp'})
250
             this.$socket.emit('ble', {cmd: 'closeSetUp'})
221
             this.validate = false
251
             this.validate = false
252
+            this.sendValidate = false
222
         },
253
         },
223
         startSetZero(){
254
         startSetZero(){
224
             this.$socket.emit('sendBleData', {type: 'setZero'})
255
             this.$socket.emit('sendBleData', {type: 'setZero'})
@@ -247,6 +278,9 @@
247
                 }
278
                 }
248
                 this.$socket.emit('sendBleData', {type: 'sendOwnData',data:Buffer(data)})
279
                 this.$socket.emit('sendBleData', {type: 'sendOwnData',data:Buffer(data)})
249
             }
280
             }
281
+        },
282
+        clearInputData() {
283
+            this.$store.dispatch('resetBlueReceiveData')
250
         }
284
         }
251
 
285
 
252
     },
286
     },
@@ -256,8 +290,25 @@
256
         'scanLoading',
290
         'scanLoading',
257
         'blueDeviceDisConnectStatus',
291
         'blueDeviceDisConnectStatus',
258
         'characteristicServiceList',
292
         'characteristicServiceList',
259
-        'pressureData'
293
+        'pressureData',
294
+        'blueReceiveData'
260
       ]),
295
       ]),
296
+      strReceiveData:{
297
+          get:function () {
298
+              let returnstr = ''
299
+              if(this.blueReceiveData.length>0) {
300
+                  for(let i in this.blueReceiveData) {
301
+                      returnstr += Number(Number(i)+1) +'、'+ this.blueReceiveData[i] + '\n '
302
+                  }
303
+              }
304
+              return returnstr
305
+
306
+
307
+          },
308
+          set:function (val) {
309
+
310
+          }
311
+      }
261
     },
312
     },
262
   }
313
   }
263
 </script>
314
 </script>

+ 20 - 8
src/renderer/store/modules/socket.js

@@ -11,6 +11,7 @@ const state = {
11
     blueDeviceConnectStatus:-1,  //蓝牙连接状态  1 成功 0失败 -1初始值
11
     blueDeviceConnectStatus:-1,  //蓝牙连接状态  1 成功 0失败 -1初始值
12
     blueDeviceDisConnectStatus:-1,  //蓝牙断开状态  1 成功 0失败 -1初始值
12
     blueDeviceDisConnectStatus:-1,  //蓝牙断开状态  1 成功 0失败 -1初始值
13
     characteristicServiceList:[],
13
     characteristicServiceList:[],
14
+    blueReceiveData:[]
14
 
15
 
15
 }
16
 }
16
 
17
 
@@ -32,7 +33,10 @@ const actions = {
32
     },
33
     },
33
     resetBlueToothData({commit}) {
34
     resetBlueToothData({commit}) {
34
         commit('resetBlueToothData')
35
         commit('resetBlueToothData')
35
-    }
36
+    },
37
+    resetBlueReceiveData({commit}) {
38
+        commit('resetBlueReceiveData')
39
+    },
36
 
40
 
37
 }
41
 }
38
 const mutations = {
42
 const mutations = {
@@ -89,6 +93,12 @@ const mutations = {
89
     SOCKET_pushCharacteristicServerList(state,info) {
93
     SOCKET_pushCharacteristicServerList(state,info) {
90
         state.characteristicServiceList.push(info)
94
         state.characteristicServiceList.push(info)
91
     },
95
     },
96
+    SOCKET_pushBlueData(state,data) {
97
+        state.blueReceiveData.push(data)
98
+    },
99
+    resetBlueReceiveData(state) {
100
+        state.blueReceiveData = []
101
+    },
92
     resetBlueDeviceList(state) {
102
     resetBlueDeviceList(state) {
93
         state.blueDeviceList = []
103
         state.blueDeviceList = []
94
         state.scanLoading = true
104
         state.scanLoading = true
@@ -107,7 +117,8 @@ const mutations = {
107
     },
117
     },
108
     resetBlueToothData(state) {
118
     resetBlueToothData(state) {
109
         state.blueToothData = ''
119
         state.blueToothData = ''
110
-    }
120
+    },
121
+
111
 }
122
 }
112
 
123
 
113
 const getters = {
124
 const getters = {
@@ -121,12 +132,13 @@ const getters = {
121
     scanLoading:state=>state.scanLoading,
132
     scanLoading:state=>state.scanLoading,
122
     blueDeviceList:state=>state.blueDeviceList,
133
     blueDeviceList:state=>state.blueDeviceList,
123
     characteristicServiceList:state=>state.characteristicServiceList,
134
     characteristicServiceList:state=>state.characteristicServiceList,
135
+    blueReceiveData:state=>state.blueReceiveData
124
 }
136
 }
125
 
137
 
126
 
138
 
127
-    export default {
128
-    state,
129
-    actions,
130
-    mutations,
131
-    getters,
132
-    }
139
+export default {
140
+state,
141
+actions,
142
+mutations,
143
+getters,
144
+}

+ 41 - 24
static/server/app.js

@@ -21,6 +21,18 @@ var lastBuffer = null;
21
 
21
 
22
 var nowConnectedBlueDeviceId = ''
22
 var nowConnectedBlueDeviceId = ''
23
 
23
 
24
+var log4js = require('log4js');
25
+
26
+var allLogPath = process.env['APPDATA'] + '/zxy/logs/'+ commonFunction.getLogDate() + '.log'
27
+log4js.configure({
28
+    appenders: { cheese: { type: 'file', filename: allLogPath } },
29
+    categories: { default: { appenders: ['cheese'], level: 'info' } }
30
+});
31
+
32
+const logger = log4js.getLogger('cheese');
33
+var receiveType = 'pressure'
34
+
35
+
24
 
36
 
25
 io.sockets.on('connection', function (socket) {
37
 io.sockets.on('connection', function (socket) {
26
     // 取零
38
     // 取零
@@ -176,34 +188,37 @@ io.sockets.on('connection', function (socket) {
176
             // 连接蓝牙设备
188
             // 连接蓝牙设备
177
             request.args.on_data_cb =  function (data) {
189
             request.args.on_data_cb =  function (data) {
178
                 // 接收数据!
190
                 // 接收数据!
179
-                if (lastBuffer !== null) {
180
-                    data = Buffer.concat([lastBuffer, data]);
181
-                }
182
-                let flag = 1;
183
-                while(flag){
184
-                    if (data.length < frame_header_and_size_bytes) {
185
-                        lastBuffer = data;
186
-                        break;
191
+                if(receiveType == 'pressure') {
192
+                    if (lastBuffer !== null) {
193
+                        data = Buffer.concat([lastBuffer, data]);
187
                     }
194
                     }
188
-                    let dataLength = data.readUIntLE(1, 2)
189
-                    let frameLength = frame_header_and_size_bytes + dataLength
190
-
191
-                    if(data.length > frameLength) {
192
-                        let frame = data.slice(0, frameLength);
193
-                        setAllCommand(frame)
194
-                        lastBuffer = data.slice(frameLength)
195
+                    let flag = 1;
196
+                    while(flag){
197
+                        if (data.length < frame_header_and_size_bytes) {
198
+                            lastBuffer = data;
199
+                            break;
200
+                        }
201
+                        let dataLength = data.readUIntLE(1, 2)
202
+                        let frameLength = frame_header_and_size_bytes + dataLength
195
 
203
 
196
-                        if(lastBuffer.length >= frame_header_and_size_bytes) {
197
-                            data = lastBuffer
198
-                            continue;
204
+                        if(data.length > frameLength) {
205
+                            let frame = data.slice(0, frameLength);
206
+                            setAllCommand(frame)
207
+                            lastBuffer = data.slice(frameLength)
208
+                            if(lastBuffer.length >= frame_header_and_size_bytes) {
209
+                                data = lastBuffer
210
+                                continue;
211
+                            }
212
+                        } else if(data.length === frameLength) {
213
+                            setAllCommand(data)
214
+                            lastBuffer = null;
215
+                        } else {
216
+                            lastBuffer = data;
199
                         }
217
                         }
200
-                    } else if(data.length === frameLength) {
201
-                        setAllCommand(data)
202
-                        lastBuffer = null;
203
-                    } else {
204
-                        lastBuffer = data;
218
+                        flag = 0;
205
                     }
219
                     }
206
-                    flag = 0;
220
+                } else {
221
+                    io.sockets.emit('pushBlueData', commonFunction.toBuffer(data).toString('hex'))
207
                 }
222
                 }
208
                 // io.sockets.emit('blueToothData', buffer)
223
                 // io.sockets.emit('blueToothData', buffer)
209
             }
224
             }
@@ -236,6 +251,7 @@ io.sockets.on('connection', function (socket) {
236
             }
251
             }
237
         } else if(request.cmd == 'setup') {
252
         } else if(request.cmd == 'setup') {
238
             if(nowConnectedBlueDeviceId !='') {
253
             if(nowConnectedBlueDeviceId !='') {
254
+                receiveType = request.type
239
                 nobleWrapper.setUp(request.data)
255
                 nobleWrapper.setUp(request.data)
240
             }
256
             }
241
         } else if(request.cmd == 'closeSetUp') {
257
         } else if(request.cmd == 'closeSetUp') {
@@ -332,6 +348,7 @@ socketServer.on('connection',(socket)=>{
332
 function setAllCommand(validateData) {
348
 function setAllCommand(validateData) {
333
 let validNumByteArray = new Uint8Array(validateData);
349
 let validNumByteArray = new Uint8Array(validateData);
334
 let allCommond = commonFunction.buf2hex(validNumByteArray);
350
 let allCommond = commonFunction.buf2hex(validNumByteArray);
351
+logger.info(allCommond)
335
 let commond = allCommond.substring(0,2)
352
 let commond = allCommond.substring(0,2)
336
 // 判断 帧头 e5 足压扫描
353
 // 判断 帧头 e5 足压扫描
337
 if(commond == 'e5') {
354
 if(commond == 'e5') {

+ 16 - 1
static/server/protocal/commonFunction.js

@@ -46,9 +46,24 @@ module.exports = {
46
             }
46
             }
47
         )
47
         )
48
         return str.join('');
48
         return str.join('');
49
+    },
50
+    // arrayBuffer to buffer
51
+    toBuffer(ab) {
52
+        var buf = new Buffer(ab.byteLength);
53
+        var view = new Uint8Array(ab);
54
+        for (var i = 0; i < buf.length; ++i) {
55
+            buf[i] = view[i];
56
+        }
57
+        return buf;
58
+    },
59
+    getLogDate() {
60
+        var myDate = new Date();
61
+        return  (myDate.getYear()-100).toString()+ '-' + addStrZero(myDate.getMonth()+1) + '-' + addStrZero(myDate.getDate()) +'_'+addStrZero(myDate.getHours())
49
     }
62
     }
50
 }
63
 }
51
-
64
+function addStrZero(num) {
65
+    return  num < 10 ? '0'+num.toString():num.toString()
66
+}
52
 function pressureDataProcess(a,scale,size) {
67
 function pressureDataProcess(a,scale,size) {
53
     var height = 60;
68
     var height = 60;
54
     var width = 60;
69
     var width = 60;