瀏覽代碼

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

xiaoyuzhang 5 年之前
父節點
當前提交
5a243f8612

+ 169 - 60
package-lock.json

@@ -1,6 +1,6 @@
1 1
 {
2 2
   "name": "zxy",
3
-  "version": "0.0.4",
3
+  "version": "0.0.5",
4 4
   "lockfileVersion": 1,
5 5
   "requires": true,
6 6
   "dependencies": {
@@ -4560,10 +4560,9 @@
4560 4560
       "optional": true
4561 4561
     },
4562 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 4567
     "dateformat": {
4569 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 6739
     "flatten": {
6736 6740
       "version": "1.0.3",
6737 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 9659
         "useragent": "2.2.1"
9656 9660
       },
9657 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 9672
         "base64id": {
9659 9673
           "version": "1.0.0",
9660 9674
           "resolved": "https://registry.npm.taobao.org/base64id/download/base64id-1.0.0.tgz",
9661 9675
           "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
9662 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 9684
         "debug": {
9665 9685
           "version": "2.6.9",
9666 9686
           "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
@@ -9739,6 +9759,16 @@
9739 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 9772
         "isbinaryfile": {
9743 9773
           "version": "3.0.3",
9744 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 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 9819
         "mime": {
9752 9820
           "version": "1.6.0",
9753 9821
           "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz",
@@ -9817,6 +9885,35 @@
9817 9885
           "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
9818 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 9917
         "ws": {
9821 9918
           "version": "3.3.3",
9822 9919
           "resolved": "https://registry.npm.taobao.org/ws/download/ws-3.3.3.tgz",
@@ -10435,57 +10532,29 @@
10435 10532
       }
10436 10533
     },
10437 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 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 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 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 14412
       "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
14344 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 14420
     "rgb2hex": {
14347 14421
       "version": "0.1.10",
14348 14422
       "resolved": "https://registry.npm.taobao.org/rgb2hex/download/rgb2hex-0.1.10.tgz",
@@ -15677,15 +15751,51 @@
15677 15751
       "dev": true
15678 15752
     },
15679 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 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 15801
     "strict-uri-encode": {
@@ -16654,8 +16764,7 @@
16654 16764
     "universalify": {
16655 16765
       "version": "0.1.2",
16656 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 16769
     "unpipe": {
16661 16770
       "version": "1.0.0",

+ 1 - 0
package.json

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

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

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

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

@@ -39,7 +39,7 @@
39 39
         <el-table-column
40 40
                 prop="name"
41 41
                 label="characteristicServiceUUid"
42
-                width="180">
42
+                width="120">
43 43
           <template slot-scope="scope">
44 44
             <span>{{scope.row.characteristic.uuid}}</span>
45 45
           </template>
@@ -55,9 +55,10 @@
55 55
         <el-table-column
56 56
                 prop="name"
57 57
                 label="options"
58
-                width="180">
58
+                width="280">
59 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 62
           </template>
62 63
         </el-table-column>
63 64
       </el-table>
@@ -68,6 +69,7 @@
68 69
                :modal-append-to-body="false"
69 70
                :append-to-body="true"
70 71
                :show-close="false"
72
+               :close-on-press-escape="false"
71 73
     >
72 74
       <div style="text-align: center">
73 75
         <div class="head_tip">
@@ -81,6 +83,29 @@
81 83
           <el-button @click="stopCollection">停止采集</el-button>
82 84
           <el-button @click="resetDevice">复位</el-button>
83 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 109
         <el-row>
85 110
           <el-col :span="8">
86 111
             <div class="grid-content bg-purple">
@@ -95,22 +120,21 @@
95 120
           <el-col :span="8">
96 121
             <div class="grid-content bg-purple">
97 122
               <el-button @click="sendInputData">发送</el-button>
123
+              <el-button @click="clearInputData">清空接收数据</el-button>
98 124
             </div>
99 125
           </el-col>
100 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 130
         </div>
131
+
107 132
       </div>
108 133
       <div slot="footer" class="dialog-footer">
109 134
         <el-button @click="closeDialog">关闭dialog</el-button>
110 135
       </div>
136
+      </div>
111 137
     </el-dialog>
112
-
113
-
114 138
   </div>
115 139
 
116 140
 </template>
@@ -124,8 +148,9 @@
124 148
       return {
125 149
           localName:typeof (this.$route.query.localName) =='undefined' ?'N/A':this.$route.query.localName,
126 150
           validate:false,
151
+          sendValidate:false,
127 152
           sendData:'',
128
-          inputData:'04 00 02 00'
153
+          inputData:'12 21'
129 154
       }
130 155
     },
131 156
     created() {
@@ -195,7 +220,7 @@
195 220
             return bRes
196 221
         },
197 222
         writeAndRead(row) {
198
-            this.$socket.emit('ble', {cmd: 'setup',data:row})
223
+            this.$socket.emit('ble', {cmd: 'setup',data:row,type:'pressure'})
199 224
             this.validate = true
200 225
             this.$store.dispatch('resetBlueToothData')
201 226
             if(this.h337 !=null) {
@@ -216,9 +241,15 @@
216 241
                 this.h337 = heatmap;
217 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 249
         closeDialog() {
220 250
             this.$socket.emit('ble', {cmd: 'closeSetUp'})
221 251
             this.validate = false
252
+            this.sendValidate = false
222 253
         },
223 254
         startSetZero(){
224 255
             this.$socket.emit('sendBleData', {type: 'setZero'})
@@ -247,6 +278,9 @@
247 278
                 }
248 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 290
         'scanLoading',
257 291
         'blueDeviceDisConnectStatus',
258 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 314
 </script>

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

@@ -11,6 +11,7 @@ const state = {
11 11
     blueDeviceConnectStatus:-1,  //蓝牙连接状态  1 成功 0失败 -1初始值
12 12
     blueDeviceDisConnectStatus:-1,  //蓝牙断开状态  1 成功 0失败 -1初始值
13 13
     characteristicServiceList:[],
14
+    blueReceiveData:[]
14 15
 
15 16
 }
16 17
 
@@ -32,7 +33,10 @@ const actions = {
32 33
     },
33 34
     resetBlueToothData({commit}) {
34 35
         commit('resetBlueToothData')
35
-    }
36
+    },
37
+    resetBlueReceiveData({commit}) {
38
+        commit('resetBlueReceiveData')
39
+    },
36 40
 
37 41
 }
38 42
 const mutations = {
@@ -89,6 +93,12 @@ const mutations = {
89 93
     SOCKET_pushCharacteristicServerList(state,info) {
90 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 102
     resetBlueDeviceList(state) {
93 103
         state.blueDeviceList = []
94 104
         state.scanLoading = true
@@ -107,7 +117,8 @@ const mutations = {
107 117
     },
108 118
     resetBlueToothData(state) {
109 119
         state.blueToothData = ''
110
-    }
120
+    },
121
+
111 122
 }
112 123
 
113 124
 const getters = {
@@ -121,12 +132,13 @@ const getters = {
121 132
     scanLoading:state=>state.scanLoading,
122 133
     blueDeviceList:state=>state.blueDeviceList,
123 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 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 37
 io.sockets.on('connection', function (socket) {
26 38
     // 取零
@@ -176,34 +188,37 @@ io.sockets.on('connection', function (socket) {
176 188
             // 连接蓝牙设备
177 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 223
                 // io.sockets.emit('blueToothData', buffer)
209 224
             }
@@ -236,6 +251,7 @@ io.sockets.on('connection', function (socket) {
236 251
             }
237 252
         } else if(request.cmd == 'setup') {
238 253
             if(nowConnectedBlueDeviceId !='') {
254
+                receiveType = request.type
239 255
                 nobleWrapper.setUp(request.data)
240 256
             }
241 257
         } else if(request.cmd == 'closeSetUp') {
@@ -332,6 +348,7 @@ socketServer.on('connection',(socket)=>{
332 348
 function setAllCommand(validateData) {
333 349
 let validNumByteArray = new Uint8Array(validateData);
334 350
 let allCommond = commonFunction.buf2hex(validNumByteArray);
351
+logger.info(allCommond)
335 352
 let commond = allCommond.substring(0,2)
336 353
 // 判断 帧头 e5 足压扫描
337 354
 if(commond == 'e5') {

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

@@ -46,9 +46,24 @@ module.exports = {
46 46
             }
47 47
         )
48 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 67
 function pressureDataProcess(a,scale,size) {
53 68
     var height = 60;
54 69
     var width = 60;