### 获取串口
`
window.getComList(e=>{console.log(e)})
`
![](https://img.kancloud.cn/f0/2f/f02fdfb8d03e428abfae254c1dd55cec_277x107.png)
* 成功`code`为0
### 监听串口数据【对应调用参数位】
raw\_data 非必填 写入的数据#16进制字符串 写入模式下必填
com 必填 串口号 例如COM2
baudrate 必填 波特率例如9600
timeout 非必填 超时时间默认0.1
bytesize 必填 字节大小 例如8
stopbites 必填 停止位 例如1
ReadWriteMode 必填 读写模式【只读模式 r、读写模式(单次写入)rw、读写模式(持续写入根据超时时间)rw+】
ResultMode 必填 结果获取模式【单次获取o、持续获取o+】
EvnetName 非必填 事件名称 未定义时间自动使用\[EventSerialWeight\]事件名 与 匿名回调函数共存
ResultType 必填 结果类型【ASCII(默认) Hex】
**readBytesSize 必填 读取字节大小 建议-1 可自动按行分割读取\n结束符 如果指定了字节大小需要自行处理数据分割问题**
callback 非必填 回调函数
* 如果为空的参数使用null占位即可
* 注意事项 如果已打开comx口 在此执行的时候会复用打开的句柄 如果是多个命令会有多个返回可能要自己判断返回数据是否是自己需要的
* 如果是复用串口时 注意自定义回调事件名不要重复 不然读取可能存在异常数据
### 注意对获取结果为空字符串导致NaN计算问题的处理
* 监听重量仅能调用一次 要么使用单次获取重量 要么全局监听一个重量 不得一起使用 建议使用**全局一次监听重量 通过挂载共享重量数据 例如vuex**
* 对于去皮置零等非监听重量命令执行时需要保证一个命令一个事件名
### 某电子秤调用示例如下
* 获取重量命令 `\x02\x41\x4e\x03`
* 置零命令 `\x02\x41\x5a\x03`
* 去皮命令 `\x02\x41\x54\x03`
```
window.onSerialWeight(
'\x02\x41\x4e\x03', //表示读取重量命令
'COM2',
9600,
0.1,
8,
1,
'rw+',
'o+',
'EventSerialWeight',
'ASCII',
26,
e=>{
//对某电子秤返回结果解析
if(e.code === 0){
//截取4-10的字符串
let mystr = e.data.slice(3,10)
//对字符串左右颠倒
mystr = mystr.split('').reverse().join('');
//转为数字类型浮点数
weight = Number(mystr)
console.log(weight ,'KG')
}
}
)
```
### 事件方式
```
window.onSerialWeight(
'\x02\x41\x4e\x03', //表示读取重量命令
'COM2',
9600,
0.1,
8,
1,
'rw+',
'o+',
'EventSerialWeight',
'ASCII',
26,
null
)
addEvent('EventSerialWeight',function(e){
if(e.code === 0){
//截取4-10的字符串
let mystr = e.data.slice(3,10)
//对字符串左右颠倒
mystr = mystr.split('').reverse().join('');
//转为数字类型浮点数
weight = Number(mystr)
console.log(weight ,'KG')
}
})
```
![](https://img.kancloud.cn/ba/61/ba6197d18dc428530ca291b68ed47df9_422x340.png)
![](https://img.kancloud.cn/f3/b8/f3b8f8fddfcc19d8eb0d89cfbb78e2a8_223x301.png)
### 其他示例(“健坤”电子秤示例)
* 无命令 持续获取重量
```
window.onSerialWeight(
null,
'COM3',
9600,
5,
8,
1,
'r',
'o+',
'EventSerialWeight',
'ASCII',
17,
e=>{
console.log(e)
}
)
```
* 去皮
```
window.onSerialWeight(
"\x02\x54\x03",
'COM3',
9600,
5,
8,
1,
'rw',
'o',
'EventSerialWeight_qupi',
'ASCII',
17,
null
)
```
* 置零
```
window.onSerialWeight(
"\x02\x5A\x03",
'COM3',
9600,
5,
8,
1,
'rw',
'o',
'EventSerialWeight_zhiling',
'ASCII',
17,
null
)
```
## 对以上电子秤重量结果处理方式演示
```
window.onSerialWeight(
null,
'COM3',
9600,
5,
8,
1,
'r',
'o+',
'EventSerialWeight',
'ASCII',
-1,
e=>{
//对于NaN问题 请注意上面的问题 避免因为监听等导致NaN发生 监听重量保持一次 对电子秤操作事件不要重复即可
weight = parseFloat(e.data)
if(!isNaN(weight)){
console.log(weight)
}
}
)
```
- 简介
- 系统变量
- Ext核心对象
- 调用php对数组js升序排序
- 获取并格式化当前时间
- md5加密
- 输出php所有定义函数
- 多参数传递
- 数据库
- 介绍
- 原生sql
- 抽象层
- 抽象层-增加数据
- 抽象层-删除数据
- 抽象层-更新数据
- 抽象层-查询单条数据
- 抽象层-查询结果集
- 电子秤
- 大华条码电子秤-本地预打包条码专用与PLU
- 大华电子秤-PLU导入
- ip电子秤
- 一体机称重称(串口电子秤)
- 大华电子秤-扫描
- 大华电子秤-初始化配置
- PLU文件导入
- 串口称或串口地磅称
- 大华电子秤基本操作
- 托利多PC一体称台秤
- 通知栏
- 窗口操作
- 打印机
- 切纸
- 固定模板打印
- html模板打印
- 对照表
- html打印
- web打印控件
- 建议打印机
- 收银扫码
- pos机发起收款
- API发起收银
- 系统配置
- 播放声音
- 注意事项
- 键盘监听
- 实体会员卡
- 钱箱
- 全屏显示
- 串口
- 硬件
- 客显
- browser对象
- 相关知识
- 区位码
- 相关硬件
- 扫码枪
- 副屏