🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#### 当前采用一体机 型号 POS-6000 采用串口通讯 默认为COM1 波特率9600 超时5s **注意初始化称重服务时务必使用异步非阻塞否则可能会造成页面假死的情况 假死时间视为超时时间所设置** ### 允许重复事件监听 第一步先初始化电子秤 **注意只能初始化一次 如果不在一体机上的时候时候调用一定会超时 需要自己判断或者让用户自行选择电子秤模式,网口模式、一体机串口模式,区分调用,避免导致超时情况发生** 由于称重需要实时传输 本接口采用js注册事件监听 以下为使用demo ``` 参考代码 //初始化电子秤 只能初始化一次 initPosWeigh(function(e){ //成功返true 失败返回false console.log(e) },'COM1',9600,5) //监听电子秤重量 单位kg addEvent('PosWeigh',function(e){ console.log(e) }) ``` 如果返回false则需要重新初始化 可能原因如下 * 电路接触不良 * 超重导致重置 ### **必须同时两个条件才执行本函数** * 非客户端不执行 * 非一体机收银不执行 ### **待开放功能**方便用户自行hook * 移除事件 * 事件列表 * 事件通知 * 获取当前计算机串口列表 #### 稳定总量处理 可自行实现 这里仅供参考 ``` //电子秤稳定重量量计算 var qs,weightSize; qs = [2,2,2,2,2];//模拟长度为5的队列 (请使用先进先出的方式处理) weightSize = 5;//固定队列大小 function getokweight(qs){ if(qs.length != weightSize){ return false; } let arrmap = new Map(); qs.forEach((e,index)=>{ arrmap.set(e) }) if(arrmap.size == 1){ return arrmap.valueOf().entries().next().value[0]; } } console.log(getokweight(qs)) ```