| | |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | import { ElMessage, ElMessageBox, ElNotification } from 'element-plus' |
| | | const { SerialPort } = require('serialport') |
| | | const { DelimiterParser } = require('@serialport/parser-delimiter') |
| | | const { ReadyParser } = require('@serialport/parser-ready') |
| | | import {sockteStore} from '@/stores/sockteInfo' |
| | | import { ipcRenderer } from 'electron' |
| | | import console from 'console' |
| | | |
| | | |
| | | // 设置重连间隔和最大重试次数 |
| | |
| | | if(reconnectAttempts!==0){ |
| | | console.log('ssss',reconnectAttempts) |
| | | ipcRenderer.invoke('logger', '串口重连第${reconnectAttempts}次') |
| | | ElMessage({ |
| | | ElMessage.warning({ |
| | | message: `串口重连第${reconnectAttempts}次启动`, |
| | | type: 'success', |
| | | }) |
| | |
| | | if (err) { |
| | | console.log(err) |
| | | ipcRenderer.invoke('logger', 'M503体重秤端口打开失败!') |
| | | ElMessage({ |
| | | ElNotification.warning({ |
| | | title: '警告', |
| | | message: 'M503体重秤端口打开失败!', |
| | | type: 'error', |
| | | }) |
| | | showClose: false, |
| | | duration:10000 |
| | | }) |
| | | setTimeout(()=>{ |
| | | initPort(path,baudRate) |
| | | }, RECONNECT_INTERVAL); |
| | |
| | | //ST,GS 70.4kg |
| | | // |
| | | // |
| | | //53 54 2C 47 53 20 20 20 20 20 30 2E 30 6B 67 0D 0A |
| | | //53 54 2C 47 53 20 20 20 20 20 30 2E 30 6B 67 0D 0A 0.0kg |
| | | // |
| | | // 55 53 2C 47 53 20 20 20 20 31 33 30 2E 35 6B 67 0D 0A 135 |
| | | // 53 54 2C 47 53 20 20 20 31 33 39 2E 39 6B 67 0D 0A |
| | | // 53 54 2C 47 53 20 20 20 31 33 39 2E 39 6B 67 0D 0A ST,GS 139.9kg |
| | | // 55 53 2C 47 53 20 20 20 20 36 30 2E 35 6B 67 0D 0A HEX |
| | | const parser = serialport.pipe(new DelimiterParser({ delimiter:Buffer.from([13,10]),includeDelimiter:true })) |
| | | parser.on('data', (value: string | any[])=>{ |
| | | console.log(value.toString()) |
| | | const str=value.toString() |
| | | const list=str.split(' ') |
| | | console.log(list) |
| | | console.log('解析体重数值',list) |
| | | if(list.length>=4&&list[0].search('ST,GS')!==-1){ |
| | | const re=list[list.length-1].trim() |
| | | const res=re.substring(0,re.length-2) |
| | | console.log(res,'获取到的体重') |
| | | console.log('提前到有用的体重数值',res) |
| | | if(Number(res)>=20){ |
| | | console.log('更新体重',res) |
| | | sockteStore().setweightSockte( |
| | | { |
| | | deviceName:'台衡M503', |
| | |
| | | } |
| | | ) |
| | | }else{ |
| | | console.log('体重小于30KG') |
| | | const retst=Number(res) |
| | | if(retst<1){ |
| | | // 体重接收小于1 就算初始化了 |
| | | sockteStore().setis测量准备(true) |
| | | console.log('体重小于1千克,体重归零状态打开',) |
| | | } |
| | | |
| | | } |
| | | |
| | | }else{ |
| | | console.log('数据格式不对') |
| | | // console.log('数据格式不对') |
| | | } |
| | | }) // all data after READY is received |
| | | } |