Selaa lähdekoodia

完成了蓝牙连接设备得模块

yerong 4 vuotta sitten
vanhempi
commit
735b9bda63

+ 1 - 1
dist/wx

@@ -1 +1 @@
-Subproject commit 23edd7309d4196c4a8026cbaac305d8a7800bf77
+Subproject commit b458880b330cc3d73dc6ba2d905e8716ccc81cd9

+ 4 - 4
src/components/index/login.vue

@@ -51,10 +51,10 @@ export default {
       }
 
     }
-    else {
-      // 跳转到关于水母页面
-      this.$emit('changeStatus', 'scan')
-    }
+    // else {
+    //   // 跳转到关于水母页面
+    //   this.$emit('changeStatus', 'scan')
+    // }
   }
 }
 </script>

+ 2 - 2
src/components/index/regist.vue

@@ -189,8 +189,8 @@ export default {
     }
   },
   mounted() {
-    $this.invite = $this.$store.getters.get_invite_code ? $this.$store.getters.get_invite_code : wx.getStorageSync('code')
-    // $this.invite = 3
+    // $this.invite = $this.$store.getters.get_invite_code ? $this.$store.getters.get_invite_code : wx.getStorageSync('code')
+    $this.invite = 3
     console.log('regist-invite', $this.invite)
     mpvue.login({
       success($res) {

+ 1 - 1
src/pages/report/main.json

@@ -3,6 +3,6 @@
     "van-row": "../../static/vant/row/index",
     "van-col": "../../static/vant/col/index",
     "van-popup": "../../static/vant/popup/index",
-    "van-count-down": "../../static/vant/count-down/index",
+    "van-count-down": "../../static/vant/count-down/index"
   }
 }

+ 37 - 10
src/pages/start/index.vue

@@ -194,7 +194,13 @@ export default {
       _deviceId: "",
       _serviceId: "",
       _characteristicId: "",
-      toy_index: 0
+      toy_index: 0,
+      att_list: [],
+      med_list: [],
+      delta_list: [],
+      alpha_list: [],
+      beta_list: [],
+      theta_list: []
     }
   },
   methods: {
@@ -203,6 +209,10 @@ export default {
       let $deviceId = game_store.getters.getDeviceId
       let $serviceId = game_store.getters.getServiceId
       let $charatorId = game_store.getters.getCharacterId
+      console.log('delta_list',$this.delta_list)
+      console.log('alpha_list',$this.alpha_list)
+      console.log('beta_list',$this.beta_list)
+      console.log('theta_list',$this.theta_list)
       //停止控制游戏
       bluetooth.sendEnd($deviceId, $serviceId, $charatorId)
       //关闭脑环
@@ -290,9 +300,33 @@ export default {
       wx.onBLECharacteristicValueChange((characteristic) => {
         console.log("收到" + $this.ab2hex(characteristic.value));
         let hexStr = $this.ab2hex(characteristic.value)
-        let $flag = bluetooth.connect_toy(hexStr)
+        let $data = bluetooth.get_big_data(hexStr)
+        if ($data) {
+          $this.att_list.push($data['att'])
+          $this.med_list.push($data['med'])
+          $this.delta_list.push(Math.round($data['delta'] / 10000))
+          $this.alpha_list.push(Math.round($data['alpha'] / 10000))
+          $this.theta_list.push(Math.round($data['theta'] / 10000))
+          $this.beta_list.push(Math.round($data['beta']) / 10000)
+
+          //通过专注放松度 画图
+          let $option = util.getLineOption($this.att_list, $this.med_list)
+          att_charts.setOption($option)
+
+          //通过基本脑波发送数据
+          let $base_option = util.getBaseOption($this.delta_list, $this.theta_list, $this.alpha_list, $this.beta_list)
+          med_charts.setOption($base_option)
+        }
+        //获取设备电量
+        let $power = bluetooth.get_device_elc(hexStr)
+        if ($power) {
+          $this.elc_power = $power
+        }
+
+        //连接玩具
+        let $flag = bluetooth.connect_toy(hexStr, $this._deviceId, $this._serviceId, $this._characteristicId)
         if ($flag) {
-          bluetooth.sendControl($this._deviceId, $this._serviceId, $this._characteristicId)
+          console.log('info', $this._deviceId, $this._serviceId, $this._characteristicId)
         }
       })
     },
@@ -313,13 +347,6 @@ export default {
     $this._deviceId = game_store.getters.getDeviceId
     $this.toy_index = game_store.getters.getToyIndex
     $this.getBLEDeviceServices($this._deviceId)
-
-    //  模拟蓝牙输入值
-    //55 55 20 01 00 02 1b 03 33 04 18 00 15 d7 00 75 37 00 0d da 00 0d 9b 00 10 c2 00 0a f9 00 01 fb 00 04 5a 39
-    let hex = "5555200100021b033304180015d7007537000dda000d9b0010c2000af90001fb00045a39"
-    let $data = bluetooth.get_big_data(hex)
-    console.log($data)
-
   },
   created() {
     $this = this;

+ 1 - 8
src/requests/game.js

@@ -1,15 +1,8 @@
 import fly from "./main";
 import store from "@/store/index"
 
-fly.interceptors.request.use((config, promise) => {
-  let $token = wx.getStorageSync('token')
-  //给所有请求添加自定义header
-  config.headers["HTTP_TOKEN"] = $token;
-  return config;
-})
-
 // 设备列表
-export function game_devices($params) {
+export function game_devices($params = {}) {
   $params['access_token'] = wx.getStorageSync('token')
   return fly.post('game/device-list', $params)
 }

+ 32 - 22
src/utils/bluetooth.js

@@ -171,7 +171,7 @@ export default {
     })
   },
   // 通过字节码获取玩具
-  connect_toy(hexStr) {
+  connect_toy(hexStr, deviceId, serviceId, Cid) {
     let $toys = [
       {
         id: 1,
@@ -249,7 +249,7 @@ export default {
         id: 12,
         hex: 'aadd070000',
         msg: "无连接设备",
-        flag: true
+        flag: false
       },
     ]
 
@@ -258,19 +258,23 @@ export default {
         if ($val['flag']) {
           wx.hideLoading()
           wx.showToast({
-            title: $val['title'],
+            title: $val['msg'],
             icon: 'success',
             duration: 1500
           })
-          console.log($val['title'])
-
+          console.log($val['msg'])
+          this.sendControl(deviceId, serviceId, Cid)
         } else {
-          wx.hideLoading()
-          wx.showToast({
-            title: $val['title'],
-            icon: 'nones',
-            duration: 1500
-          })
+          if ($val['hex'] == 'aadd070000') {
+            this.sendOpen(deviceId, serviceId, Cid)
+          } else {
+            wx.hideLoading()
+            wx.showToast({
+              title: $val['msg'],
+              icon: 'nones',
+              duration: 1500
+            })
+          }
         }
         return $val['flag']
       }
@@ -280,29 +284,28 @@ export default {
 
   //  获取大包数据 进行绘制图表
   get_big_data(hex) {
+    if (hex.substr(0, 6) != '555520') {
+      return false
+    }
     //当s1为 00时 数据有效
     let $s1 = hex.substr(8, 2)
 
     //专注度数据
     let $att = parseInt("0x" + hex.substr(12, 2))
-    console.log('att', $att)
     //放松度数据
     let $med = parseInt("0x" + hex.substr(16, 2))
-    console.log('$med', $med)
 
     //Delta数据
     let $delta_1 = hex.substr(hex.indexOf('0418') + 4, 2)
     let $delta_2 = hex.substr(hex.indexOf('0418') + 6, 2)
     let $delta_3 = hex.substr(hex.indexOf('0418') + 8, 2)
-    let $delta = "0x" + $delta_1 << 16 | "0x" + $delta_2 << 8 | "0x" + $delta_3
-    console.log('Delta', parseInt($delta, 16))
+    let $delta = parseInt("0x" + $delta_1 << 16 | "0x" + $delta_2 << 8 | "0x" + $delta_3, 16)
 
     //Theta数据
     let $theta_1 = hex.substr(hex.indexOf('0418') + 10, 2)
     let $theta_2 = hex.substr(hex.indexOf('0418') + 12, 2)
     let $theta_3 = hex.substr(hex.indexOf('0418') + 14, 2)
-    let $theta = "0x" + $theta_1 << 16 | "0x" + $theta_2 << 8 | "0x" + $theta_3
-    console.log('Theta', parseInt($theta, 16))
+    let $theta = parseInt("0x" + $theta_1 << 16 | "0x" + $theta_2 << 8 | "0x" + $theta_3, 16)
 
 
     //low_Alpha
@@ -315,8 +318,7 @@ export default {
     let $high_alpha_2 = hex.substr(hex.indexOf('0418') + 24, 2)
     let $high_alpha_3 = hex.substr(hex.indexOf('0418') + 26, 2)
     let $high_alpha = "0x" + $high_alpha_1 << 16 | "0x" + $high_alpha_2 << 8 | "0x" + $high_alpha_3
-    let $alpha = ($high_alpha << 8) | $low_alpha
-    console.log('Alpha', parseInt($alpha, 16))
+    let $alpha = parseInt(($high_alpha << 8) | $low_alpha, 16)
 
     //low_beta
     let $low_beta_1 = hex.substr(hex.indexOf('0418') + 28, 2)
@@ -329,8 +331,9 @@ export default {
     let $high_beta_3 = hex.substr(hex.indexOf('0418') + 38, 2)
     let $high_beta = "0x" + $low_beta_1 << 16 | "0x" + $low_beta_2 << 8 | "0x" + $low_beta_3
     //Beta数据
-    let $beta = ($high_beta << 8) | $low_beta
-    console.log('Beta', parseInt($beta, 16))
+    let $beta = parseInt(($high_beta << 8) | $low_beta, 16)
+
+    console.log($att, $med, $delta, $theta, $alpha, $beta)
     return {
       att: $att,
       med: $med,
@@ -339,6 +342,13 @@ export default {
       alpha: $alpha,
       beta: $beta
     }
+  },
+  //获取设备电量
+  get_device_elc(hex) {
+    if (hex.substr(0, 8) != '55550203') {
+      return false
+    }
+    let $power = parseInt(hex.substr(8, 2))
+    return $power
   }
-
 }

+ 1 - 1
src/utils/index.js

@@ -19,7 +19,7 @@ export function formatTime(date) {
 function getLineOption(lineData_att, lineData_med) {
   const that = this
   var option = {
-    color: ["#36bffb", "#fd671e"],
+    color: ["#FFB400", "#D4327A"],
     legend: {
       data: ["Att(专注度)", "Med(放松度)"],
       top: -5,