From 7f164af532f66aff71419682c5b3f531b606983a Mon Sep 17 00:00:00 2001
From: zhaochongyi <11111>
Date: 星期五, 30 八月 2024 18:56:13 +0800
Subject: [PATCH] 修改初始化

---
 frontend/src/views/communication/index.vue |  115 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 97 insertions(+), 18 deletions(-)

diff --git a/frontend/src/views/communication/index.vue b/frontend/src/views/communication/index.vue
index 73a39c8..63f99c8 100644
--- a/frontend/src/views/communication/index.vue
+++ b/frontend/src/views/communication/index.vue
@@ -1,13 +1,93 @@
 <script setup>
-
-  import {ref} from "vue";
+  import {ipc} from '@/utils/ipcRenderer'
+  import {onBeforeUnmount, ref} from "vue";
+  import {useStore} from "@/stores/icrfStore";
+  const store = useStore();
   // 杩炴帴妯″紡
-  const mode = ref(2);
+  const mode = ref(store.mode);
   // 璁惧缂栧彿
-  const deviceId = ref(1);
-  const com = ref();
+  const deviceId = ref(store.deviceId);
+  // 涓插彛鍦板潃
+  const com = ref(store.com);
+  // 娉㈢壒鐜�
+  const serialBaud = ref(store.serialBaud);
+  const serialBaudList = ref([
+      9600,19200,38400,57600,115200
+  ])
   const data = ref( [
   ]);
+  //com鍒楄〃
+  const comList = ref([]);
+  const isLJ = ref(store.isLJ)
+  const icdev = ref();
+
+  const initListPort = () =>{
+    ipc.invoke('controller.port.initPort',1).then(res=>{
+      console.log(res)
+      comList.value = res;
+
+      if (comList.value.length > 0){
+        com.value = 0;
+      }
+    })
+  }
+  /**
+   * 杩炴帴璁惧
+   */
+  const setLocalICRF = () => {
+    if(mode.value === 1){
+      ipc.invoke('controller.icrf.connectUsb',{number:deviceId.value});
+    }else{
+      let port = comList.value[com.value];
+      let portNum = port.path.slice(3);
+      ipc.invoke('controller.icrf.connectSerialPort',{port:(Number(portNum) -1),baud:serialBaud.value});
+    }
+
+  }
+  /**
+   * 鏂紑璁惧
+   */
+  const disconnectLocalICRF =()=>{
+    ipc.invoke('controller.icrf.connectExit').then(res=>{
+      if (res.code === 0){
+        isLJ.value = false;
+        store.$reset();
+      }
+      data.value.unshift(res.msg);
+    });
+
+  }
+
+  const resetLocal = ()=>{
+    ipc.invoke('controller.icrf.connectExit').then(res=>{
+      isLJ.value = false;
+      store.$reset();
+      data.value.unshift("閲嶇疆杩炴帴鎴愬姛");
+    });
+
+  }
+
+  ipc.on('controller.icrf.communication',(event,ret)=>{
+      if (Number(ret.handle) > 0){
+        icdev.value = Number(ret.handle)
+        isLJ.value = true;
+        store.$patch({
+          mode: mode.value,
+          deviceId: deviceId.value,
+          com: com.value,
+          serialBaud: serialBaud.value,
+          icdev: icdev.value,
+          isLJ: true,
+        })
+      }
+     data.value.unshift(ret.msg);
+  })
+  onBeforeUnmount(()=>{
+    ipc.removeAllListeners('controller.icrf.communication')
+  })
+
+
+  initListPort();
 </script>
 
 <template>
@@ -16,42 +96,39 @@
       <div class="card-box">
         <div class="flex-1 " style="margin-right: 10px">
           <Section title="杩炴帴妯″紡">
-            <a-radio-group v-model:value="mode">
+            <a-radio-group v-model:value="mode" :disabled="isLJ">
               <a-radio :value="1">USB</a-radio>
               <a-radio :value="2">Serial Port</a-radio>
             </a-radio-group>
           </Section>
 
           <Section title="璁惧缂栧彿">
-            <a-input     v-model:value="deviceId" placeholder="璇疯緭鍏�" />
+            <a-input :disabled="mode !== 1 || isLJ"  v-model:value="deviceId" placeholder="璇疯緭鍏�" />
           </Section>
 
           <Section title="涓插彛鍙�">
-            <a-select
+            <a-select :disabled="mode !== 2 || isLJ"
                 ref="select"
                 v-model:value="com"
                 style="width: 100%;"
-                @change="handleChange"
             >
-              <a-select-option value="jack">COM1</a-select-option>
-              <a-select-option value="lucy">COM2</a-select-option>
+              <a-select-option :value="index" v-for="(item,index) in comList">{{ item.path }}</a-select-option>
             </a-select>
           </Section>
 
           <Section title="娉㈢壒鐜�">
-            <a-select
+            <a-select :disabled="mode !== 2 || isLJ"
                 ref="select"
-                v-model:value="com"
+                v-model:value="serialBaud"
                 style="width: 100%;"
-                @change="handleChange"
             >
-              <a-select-option value="jack">COM1</a-select-option>
-              <a-select-option value="lucy">COM2</a-select-option>
+              <a-select-option :value="item" v-for="(item,index) in serialBaudList" :key="index">{{ item }}</a-select-option>
             </a-select>
           </Section>
           <div style="margin-top: 20px;text-align: right;">
-            <a-button style="margin-right: 20px;width: 150px">杩炴帴璁惧</a-button>
-            <a-button style="width: 150px">鏂紑杩炴帴</a-button>
+            <a-button style="margin-right: 20px;width: 150px" :disabled="isLJ" @click="setLocalICRF">杩炴帴璁惧</a-button>
+            <a-button style="width: 150px" :disabled="!isLJ" @click="disconnectLocalICRF">鏂紑杩炴帴</a-button>
+            <a-button style="margin-left: 20px;width: 150px;margin-top: 10px" @click="resetLocal">閲嶇疆</a-button>
           </div>
         </div>
         <div class="flex-1 box-right">
@@ -93,6 +170,8 @@
     .aList{
       overflow: auto;
       height: 330px;
+      max-height: 100%;
+      min-height: 100%;
     }
   }
 }

--
Gitblit v1.8.0