Browse Source

修改智能对话不出结果

[plg137200.] 1 year ago
parent
commit
9a5100ed51

+ 79 - 103
src/renderer/components/AnimationDes.vue

@@ -475,9 +475,20 @@ export default {
     this.initWebsocket();
     //当点击开始时调用方法开发发送游戏数据
     //上来就查询已连接列表
-    that.listTimeFlag = setInterval(that.connectList, 2000);
+    
     //根据扫描列表和已连接列表看看哪些是重复的//重复的就是已连接的
     that.mergeTimeFlag = setInterval(that.mergeDataFun, 1000);
+    //进入页面就开始扫描
+
+    //进入生物反馈页面扫描设备
+    this.queryScan();
+    that.listTimeFlag = setInterval(that.connectList, 2000);
+
+    
+  },
+  beforeDestroy() {
+    //关闭扫描
+    this.closeScan();
   },
   destroyed() {
     clearTimeout(this.mergeTimeFlag);
@@ -497,6 +508,7 @@ export default {
       let that = this;
       let scanDataTmp = JSON.stringify(this.scanData);
       let scanDataTmpFin = JSON.parse(scanDataTmp);
+
       let list = [];
       for (let i = 0; i < scanDataTmpFin.length; i++) {
         let obj = {
@@ -504,14 +516,17 @@ export default {
           name: "",
           mac: "",
           connent: false,
-          deviceType: "",
-          userNum: "",
+          type: "",
+          ai: "",
+          at: "",
         };
         obj.rssi = scanDataTmpFin[i].rssi;
         obj.name = scanDataTmpFin[i].name;
         obj.mac = scanDataTmpFin[i].mac;
         obj.connent = false;
-        obj.deviceType = scanDataTmpFin[i].deviceType;
+        obj.type = scanDataTmpFin[i].type;
+        obj.ai = scanDataTmpFin[i].ai;
+        obj.at = scanDataTmpFin[i].at;
         list.push(obj);
       }
       //判断某个
@@ -559,19 +574,20 @@ export default {
       //然后合并两个数组
 
       let listFin = list.concat(listBarring);
-
+      console.log("------1111111111111111111");
+      console.log(listFin);
       //判断当前选择的是脑电还是心电
       let currentDeviceList = [];
       if (this.equipment == "1") {
         //当是脑电时
         for (let i = 0; i < listFin.length; i++) {
-          if (listFin[i].deviceType == "0") {
+          if (listFin[i].type == "0") {
             currentDeviceList.push(listFin[i]);
           }
         }
       } else {
         for (let i = 0; i < listFin.length; i++) {
-          if (listFin[i].deviceType == "1") {
+          if (listFin[i].type == "1") {
             currentDeviceList.push(listFin[i]);
           }
         }
@@ -586,6 +602,7 @@ export default {
       }
       //将数组其他选项
       // console.log(listFin);
+
       this.mergeData = currentDeviceList;
     },
     //脑电图渲染
@@ -746,12 +763,11 @@ export default {
       let that = this;
       that.buttonLinkFlag = true;
       that.$http.postTmp(
-        `/v1/device/connection`,
+        `/v2/device/conn`,
         {
-          chip: val.deviceType,
+          ai: val.ai+'',
           mac: val.mac,
-          addrType: "public",
-          filterName: val.deviceType,
+          at: val.at+'',
         },
         (res) => {
           that.disableStatus();
@@ -760,8 +776,8 @@ export default {
             //如果是脑电的话直接调用打开数据接口
             //如果是心电需要先调用写入输入数据-发送指令接口
 
-            if (val.deviceType == "1") {
-              this.writeData(val);
+            if (val.type == "1") {
+              // this.writeData(val);
               that.userLink.mac = val.mac;
             } else {
               //判断脑电设备
@@ -843,7 +859,7 @@ export default {
     //查询连接列表
     connectList() {
       let that = this;
-      that.$http.getTmp(`v1/device/connected`, {}, (res) => {
+      that.$http.getTmp(`v2/device/connected/list`, {}, (res) => {
         // console.log(res)
         //判断当前的列表是否存在该用户已点击的列表
         if (res.code == 200) {
@@ -896,7 +912,7 @@ export default {
     },
     typeFormatter(val) {
       // console.log(val.deviceType)
-      if (val.deviceType == "1") {
+      if (val.type == "1") {
         return "心电";
       } else {
         return "脑电";
@@ -907,7 +923,7 @@ export default {
       //调用扫描接口
       // this.queryScan();
     },
-    //扫描设备
+    //开启扫描扫描
     queryScan() {
       let that = this;
       let filter_name = null;
@@ -916,20 +932,19 @@ export default {
       } else {
         filter_name = 1;
       }
-      that.$http.postTmp(
-        `/v1/device/scan`,
-        {},
-        // { filter_name: filter_name, filter_rssi: -99 },
-        (res) => {
-          // if (res.code == 200) {
-          //   console.log(res.data);
-          //   if (this.equipment == 1) {
-          //   }
-          // } else {
-          //   this.$message.error("访问服务器失败!");
-          // }
-        }
-      );
+      that.$http.getTmp(`/v2/device/scan`, {}, (res) => {});
+    },
+
+    //关闭扫描
+    closeScan() {
+      let that = this;
+      let filter_name = null;
+      if (this.equipment == 1) {
+        filter_name = 0;
+      } else {
+        filter_name = 1;
+      }
+      that.$http.getTmp(`/v2/device/scan`, {}, (res) => {});
     },
     //进来后先连接websocket
     //连上后进行扫描
@@ -937,8 +952,9 @@ export default {
     //列表出现后点击连接并打开数据如果有数据才算成功
     //初始化websocket
     initWebsocket() {
-      // const wsuri = "ws://192.168.2.101:8000/ws?uid=client&to_uid=server";
-      const wsuri = "ws://localhost:8000/ws?uid=client&to_uid=server";
+      // const wsuri = "ws://192.168.1.103:8000/ws?uid=client&to_uid=server";
+      // const wsuri = "ws://localhost:8000/ws?uid=client&to_uid=server";
+      const wsuri = "ws://192.168.1.102:8000/ws?uid=client&to_uid=server";
       this.websock = new WebSocket(wsuri);
       this.websock.onmessage = this.websocketonmessage;
       this.websock.onopen = this.websocketonopen;
@@ -952,7 +968,7 @@ export default {
     },
     websocketonerror() {
       //连接建立失败重连
-      this.initWebSocket();
+      // this.initWebSocket();
     },
     websocketsend(Data) {
       //数据发送
@@ -962,30 +978,39 @@ export default {
       let that = this;
       //数据接收
       const redata = JSON.parse(e.data);
+      console.log(redata);
       // console.log(redata);
-      if (redata.content != "Successful connection to socket service") {
+      if (
+        redata.content != "开启扫描成功" &&
+        redata.content != "设置过滤成功" &&
+        redata.content != "Successful connection to socket service" &&
+        redata.content != "关闭扫描成功" &&
+        redata.content != "设置UUID成功"&&
+        redata.content != "设备连接成功"
+      ) {
         //首先判断是否redata.content是否是未定义
         // console.log(redata.content)
         if (redata.hasOwnProperty("content")) {
           let dataLin = JSON.parse(redata.content);
           if (redata.msgType == "device") {
             // let dataLin = JSON.parse(redata.content);
-            let list = [];
-            for (var key in dataLin) {
-              let a = {
-                mac: dataLin[key]["MAC"],
-                name: dataLin[key].Name,
-                rssi: dataLin[key].Rssi,
-                deviceType: dataLin[key].DeviceType,
-                chip: dataLin[key].Chip,
-              };
-              that.changeList(a);
-            }
+            console.log("-------------");
+            console.log(dataLin);
+            let a = {
+              mac: dataLin.m,
+              name: dataLin.n,
+              rssi: dataLin.rssi,
+              ai: dataLin.ai,
+              at: dataLin.at,
+              type: dataLin.t, //当type为1时为心电
+            };
+            that.changeList(a);
             //获取到很多数据,取每秒最大的包含量
           } else if (redata.msgType == "eegData") {
             // let dataLin = JSON.parse(redata.content);
             // console.log(dataLin);
-
+            console.log("11111111111111111111");
+            console.log(dataLin.value);
             ///先判断第一个用户是否有mac---有mac代表已连接
             if (that.userLink.mac !== "" && that.userLink.mac == dataLin.id) {
               ipcRenderer.send("asynchronoushrv-naoData", {
@@ -1027,6 +1052,10 @@ export default {
                 }
               });
             }
+          }else if(redata.msgType == "connectedList"){
+            //数组储存每次返回的已选列表
+            
+
           }
         }
       }
@@ -1037,16 +1066,10 @@ export default {
       // console.log(obj);
       let that = this;
       that.listTmp.push(obj);
+      //让两个变量不是指向一个地址
       let arrayStr = JSON.stringify(that.listTmp);
       let array = JSON.parse(arrayStr);
-      //取list中不相同的
-      // console.log(array)
-      // array = array.reduce(function (item, next) {
-      //   obj[next.MAC] ? "" : (obj[next.MAC] = true && item.push(next));
-      //   return item;
-      // }, []);
-      //循环数组arr
-      //设置储存不一样的数组
+
       var newArr = new Array();
       var flag = false;
       for (var i = 0; i < array.length; i++) {
@@ -1070,53 +1093,6 @@ export default {
       // console.log(JSON.stringify(newArr));
       //listTmp即使最大扫描列表
       that.scanData = newArr;
-
-      //目前无法知道当前设备是脑电还是脉搏
-
-      // listShaking:false,
-
-      //判断标志是true或false
-      // if (that.listShaking) {
-      //   let flagTime = setTimeout(() => {
-      //     that.listShaking = true;
-      //     let arrayStr = JSON.stringify(that.listTmp);
-      //     let array = JSON.parse(arrayStr);
-      //     //取list中不相同的
-      //     console.log(array)
-      //     // array = array.reduce(function (item, next) {
-      //     //   obj[next.MAC] ? "" : (obj[next.MAC] = true && item.push(next));
-      //     //   return item;
-      //     // }, []);
-      //     //循环数组arr
-      //     //设置储存不一样的数组
-      //     var newArr = new Array();
-      //     var flag = false;
-      //     for (var i = 0; i < array.length; i++) {
-      //       for (var j = 0; j < newArr.length; j++) {
-      //         if (array[i].mac == newArr[j].mac) {
-      //           newArr[j] = array[i];
-      //           flag = true;
-      //           break;
-      //         }
-      //       }
-      //       if (!flag) {
-      //         newArr.push(array[i]);
-      //       }
-      //     }
-      //     // newArr=JSON.parse(newArr)
-      //     // let newArr = {}
-      //     // array.forEach(item => {
-      //     //   newArr[item.MAC] = item
-      //     // })
-      //     that.listTmp = JSON.parse(JSON.stringify(newArr));
-      //     console.log(JSON.stringify(newArr));
-      //     //listTmp即使最大扫描列表
-      //     that.scanData = newArr;
-      //     //当前扫描列表
-      //     clearTimeout(flagTime);
-      //   }, 1000);
-      // }
-      // that.listShaking = false;
     },
     websocketclose(e) {
       if (e.code == 1005) {
@@ -1578,7 +1554,7 @@ export default {
         case 1:
           //this.urlThreeP = this.pubSrc + "/candle/index.html";
           // this.urlThreeP = pubSrc+ + "/candle/index.html";
-           this.urlThreeP = __static + "/candle/index.html";
+          this.urlThreeP = __static + "/candle/index.html";
           this.delayTime();
           break;
         case 2:
@@ -1608,7 +1584,7 @@ export default {
           break;
         default:
           // this.urlThreeP = this.pubSrc + "/candle/index.html";
-        this.urlThreeP = __static + "/candle/index.html";
+          this.urlThreeP = __static + "/candle/index.html";
       }
       this.gameScene = val;
       this.flag = this.gameScene;

+ 31 - 12
src/renderer/components/Smart1.vue

@@ -242,9 +242,9 @@ export default {
     // this.selectScale("20220805135201");
     scrollview.addEventListener("scroll", this.handleScroll, true);
     // /menu/evaluation
-    this.askEndMul(
-      '	轻度:建议您使用系统中的虚拟现实、生物反馈训练<span onclick="jumpPage(1)" style="color:blue;cursor:pointer">(点击跳转)</span>、认知行为干预<span  onclick="jumpPage(2)" style="color:blue;cursor:pointer">(点击跳转--走出抑郁)</span>功能进行心理状态调'
-    );
+    // this.askEndMul(
+    //   '	轻度:建议您使用系统中的虚拟现实、生物反馈训练<span onclick="jumpPage(1)" style="color:blue;cursor:pointer">(点击跳转)</span>、认知行为干预<span  onclick="jumpPage(2)" style="color:blue;cursor:pointer">(点击跳转--走出抑郁)</span>功能进行心理状态调'
+    // );
   },
   beforeDestroy() {
     let that = this;
@@ -360,7 +360,6 @@ export default {
         _this.scaleSelectFlag = true;
         if (res.data.code == 200 && res.data.data) {
           _this.resultJsonParams = res.data.data;
-          debugger;
           let testResult = JSON.parse(
             res.data.data.userRecordEntity.testResult
           )[0].version;
@@ -411,15 +410,16 @@ export default {
                   this.askEndMul("抑郁建议:" + sleep[i].value[0] + " ");
                 }
               }
+            }
+            for (let i = 0; i < sleep.length; i++) {
               if (sleep[i].name === "总分") {
-                let score = JSON.parseInt(sleep[i].value[0]);
+                let score = parseInt(sleep[i].value[0]);
                 if (score >= 0 && score <= 20) {
                   this.askEndMul(
                     '	轻度:建议您使用系统中的虚拟现实、生物反馈训练<span onclick="jumpPage(1)" style="color:blue;cursor:pointer">(点击跳转)</span>、认知行为干预<span  onclick="jumpPage(2)" style="color:blue;cursor:pointer">(点击跳转--走出抑郁)</span>功能进行心理状态调'
                   );
                 }
               }
-              //}
             }
             console.log(sleep);
             // _this.askEnd(str);
@@ -746,6 +746,9 @@ export default {
     },
     getMood(val) {
       // http://127.0.0.1:9999/sentiment
+      //http://127.0.0.1:9999
+      //`http://127.0.0.1:9999/sentiment
+      //http://aagvs5.natappfree.cc/sentiment
       let that = this;
       axios
         .post(`http://127.0.0.1:9999/sentiment`, { text: val })
@@ -777,13 +780,27 @@ export default {
 
       //循环当前问题
       let list = [];
-      for (let i = 0; i < this.chatContents.length; i++) {
-        if (this.chatContents[i].from == 1) {
-          list.push(this.chatContents[i].question);
-        } else {
-          list.push(this.chatContents[i].answer);
+
+      //传输到后台的上下文.最大限制6条吧
+      //当回显的条数小于6条时走下边的逻辑
+      if (this.chatContents.length < 5) {
+        for (let i = 0; i < this.chatContents.length; i++) {
+          if (this.chatContents[i].from == 1) {
+            list.push(this.chatContents[i].question);
+          } else {
+            list.push(this.chatContents[i].answer);
+          }
+          // list.push(chatContents.question)
+        }
+      } else {
+        for (let i = 5; i > 0; i--) {
+          if (this.chatContents[this.chatContents.length - i].from == 1) {
+            list.push(this.chatContents[this.chatContents.length - i].question);
+          } else {
+            list.push(this.chatContents[this.chatContents.length - i].answer);
+          }
+          // list.push(chatContents.question);
         }
-        // list.push(chatContents.question)
       }
       // 进入页面后调用加载中的方法
       //三个点轮询播放
@@ -794,6 +811,8 @@ export default {
       });
       this.pFun("......", false);
       //`http://127.0.0.1:9998/chat`
+      //http://127.0.0.1:9998/chat
+      //http://ray-thunder.natapp1.cc/chat
       HTTP_AXIOS({
         method: "post",
         url: `http://127.0.0.1:9998/chat`,

+ 2 - 1
src/renderer/components/treatDepression.vue

@@ -396,9 +396,10 @@ export default {
               //当是第一次进来时,需要调用question  获取第一次问答信息,但是传输的是type为5
               if (res.data.intelligentDialogueEntities.content.length == 0) {
                 //将当前的设置为5
-                that.interveneId = 5;
+                // that.interveneId = 5;
                 that.getQuestion('');
               } else {
+                 that.getQuestion('');
               }
             }
           } else {

+ 1 - 1
src/utils/http.js

@@ -14,7 +14,7 @@ axios.defaults.baseURL = global.dev;
 // 创建一个 Axios 实例并设置 baseURL 适应不同服务器的baseUrl
 const apiInstance = axios.create({
   baseURL: 'http://localhost:8000/'
-  // baseURL: 'http://192.168.2.101:8000/'
+  // baseURL: 'http://192.168.1.102:8000/'
 });
 
 // axios.defaults.baseURL = "/api";