import {invoke} from "@tauri-apps/api/tauri"; import {ref} from "vue"; import CommanDeffine from "./serportdefine.js"; import EventBus from "../eventBus.js"; import SerialportMethod from "./SerialPort/SerialportMethod.js"; export default { async listSerialPorts() { let that=this; var i=0; var aa=await invoke("getportnames"); invoke("getportnames").then((message) => { message.forEach(function (port) { console.log(port.path); that.options.push({value:port,label:port,index:i++}) }) }); }, async initserialport() { if (this.Comname == "请选择") { alert("请选择串口"); return } var selectitem = document.getElementById("selectitem"); var btn = document.getElementById("opencom"); //禁用 selectitem.disabled = true; var btnn = document.getElementById("closecomeside"); btnn.disabled = false; this.cssme.comportvariant = "success"; // let buffer = Buffer.alloc(0); let portinfo ={ portname: this.Comname, // baudrate: 115200, baudrate: 921600, } let ret= await invoke("opencom",portinfo); if (ret!="Port is open") { EventBus.emit('showbox',{title:"设备",body:"打开串口失败"}); return } var isopen=await this.GetSenSorInfo(); this.SerialInfo.isopen=isopen; if (isopen) { btn.disabled = true; EventBus.emit('showbox',{title:"设备",body:"打开串口成功"}); }else { btn.disabled = false; EventBus.emit('showbox',{title:"设备",body:"打开串口失败,请更换串口 或者检查设备是否连接"}); } // alert("打开串口成功"); }, async closecomport() { var btn = document.getElementById("opencom"); btn.disabled = false; var btnn = document.getElementById("closecomeside"); btnn.disabled = true; alert(await invoke("closecome")); this.SerialInfo.isopen=false; }, async Dingbiao_OPT(){ this.iscollecting=true; this.ShutterTime[0]=await SerialportMethod.Dev_Opt(); this.ShutterTime[1]=this.ShutterTime[0]; this.iscollecting=false; }, async GetoneData(event,caijiavgNumber=1){ let caijimoshi=this.Devinfo.work_mode; if (caijimoshi=="manual_mode") { await this.GetoneDataall(); } if (caijimoshi=="advanced_mode") { if (this.caijidirection=="UP") { await this.GetDataDrection("UP",caijiavgNumber); await delay(100) } if (this.caijidirection=="DOWN") { await this.GetDataDrection("DOWN",caijiavgNumber); await delay(100) } if (this.caijidirection=="ALL") { await this.GetDataDrection("UP",caijiavgNumber); await delay(100) await this.GetDataDrection("DOWN",caijiavgNumber); await delay(100) } if(this.caijidirection=="DARK") { await this.GetDataDrection("DARK",caijiavgNumber); await delay(100) } } }, async GetDataDrection(drection,avgnumber=1){ this.iscollecting=true; var shuttertimes=1; if (drection=="UP") { shuttertimes=Number(this.ShutterTime[0]); }else if (drection=="DOWN") { shuttertimes=Number(this.ShutterTime[1]); }else if(drection=="DARK") { shuttertimes=Number(this.ShutterTime[0]); } //获取波长系数 let coeffweave1=this.Devinfo.bochangxishu.a0; let coeffweave2=this.Devinfo.bochangxishu.a1; let coeffweave3=this.Devinfo.bochangxishu.a2; let coeffweave4=this.Devinfo.bochangxishu.a3; //获取数据 UPDN let datatoshow=await SerialportMethod.Get_Date_on_Derction(drection,shuttertimes,this.autoremovedark,avgnumber); if (this.dataprocessconfig.useSG) { datatoshow.data= await invoke("sg_smooth",{data:datatoshow.data,window:31,order:7}); // console.log(smooth); } if (this.dataprocessconfig.usehighpass) { datatoshow.data=await invoke("gaussian_filter_high",{data:datatoshow.data,sigma:30}); //console.log(aaa); } let lenthofdata=datatoshow.data.length; var temp=[]; // for (var i=0;i setTimeout(resolve, ms)); }