为同时连接多个串口设备,每次连接设备前需创建 TComm 对象,然后再进行数据收发,不同的连接对应不同的串口设备,如同时连接电子秤和条码枪等。
var tcomm = new TComm("COM1" //串口号 ,"9600,N,8,1" //串口设置 ,"hex" //收发数据格式,hex,utf-8 ,10 //读超时设置,对于发送较快的设备需设置较小值如电子秤 一般设置10 ,0 //是否启用RTS ); var tcomm2 = new TComm("COM2" //串口号 ,"9600,N,8,1" //串口设置 ,"hex" //收发数据格式,hex,utf-8 ,10 //读超时设置,对于发送较快的设备需设置较小值如电子秤 一般设置10 ,0 //是否启用RTS );
插件注册
tcomm.Register("注册码", function (dat) { if (dat.STAT == 11) { console.log("注册成功"); } else if (dat.STAT == -99) { console.log("插件未安装!"); }else{ console.log("注册失败!"); } });
获取可用串口列表
tcomm.getComList(function (dat) { if (dat.COMS.length > 0) { $(dat.COMS).each(function (i) { console.log(dat.COMS[i].PName); //串口名称 如:COM1 console.log(dat.COMS[i].FName); //完整的串口名称 }); } });
串口列表返回数据为JSON(dat.COMS),格式如下
[ { "PName": "COM1", "FName": "ELTIMA Virtual Serial Port", "HWID": "EVSERIAL" }, { "PName": "COM2", "FName": "ELTIMA Virtual Serial Port", "HWID": "PID/VID" } ]
HWID为硬件ID,可根据HWID判断设备类型
设置串口数据接收处理
tcomm.OnDataIn = function (dat) { //接收串口返回数据 if (dat.MSTAT != "") { //接收串口返回的状态消息 console.log(dat.MSTAT); } if (dat.data == "") return; console.log(dat.data); //串口收到的数据 }
打开串口(连接串口)
tcomm.init(function (ret) { if (ret.STAT == 1) { console.log("打开成功"); } else { console.log("打开串口失败!"); } });
发送数据到串口
tcomm.Send("010101");
VUE框架下使用同上。