JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
本文介绍有关JavaScript获取电子秤串口数据的编程代码。
有关JavaScript获取电子秤串口数据的完整代码
//创建MSComm对象
functionuf_GetSerPortData()
{
try
{
MSComm1=newActiveXObject(“MSCOMMLib.MSComm.1”);
if((typeof(MSComm1)==“undefined”)||(MSComm1==null))
{
alert(“创建MSComm1对象失败!”);
}
else
{
//绑定事件
fn();
}
}
catch(err)
{
alert(err.description);
}
}
varfn=function(){
functionMSComm1::OnComm(){
MSComm1_OnComm();
}
}
//事件响应
functionMSComm1_OnComm()
{
switch(MSComm1.CommEvent)
{
case1:{window.alert(“SendOK!”);break;}//发送事件
case2:{Receive();break;}//接收事件
default:alert(“EventRaised!”+MSComm1.CommEvent);;
}
}
functionOperatePort()
{
if(MSComm1.PortOpen==true)
{
try{MSComm1.PortOpen=false;
SKButton1.value=“打开串口”;
}catch(ex)
{alert(ex.message);}
}
else{
try{MSComm1.PortOpen=true;
MSComm1.InBufferCount=0;
SKButton1.value=“关闭串口”;
}catch(ex)
{alert(ex.message);}
}
}
functionConfigPort()
{
varcomport=“”;
varboundRate=“”;
varjiaoyanwei=“”;
varshujuwei=“”;
vartingzhiwei=“”;
comport=SKDBcombobox1.value;
boundRate=SKDBcombobox2.value;
jiaoyanwei=SKDBcombobox3.value;
shujuwei=SKDBedit5.value;
tingzhiwei=SKDBedit6.value;
if(MSComm1.PortOpen==false)
{
try{
/*
MSComm1.CommPort=comport;
MSComm1.Settings=boundRate+“,”+jiaoyanwei+“,”+shujuwei+“,”+tingzhiwei;
MSComm1.OutBufferCount=0;//清空发送缓冲区
MSComm1.InBufferCount=0;//滑空接收缓冲区
*/
MSComm1.CommPort=“4”;
switch(SKDBcombobox1.value)
{
case“COM1”:
MSComm1.CommPort=“1”;
break;
case“COM2”:
MSComm1.CommPort=“2”;
break;
case“COM3”:
MSComm1.CommPort=“3”;
break;
}
MSComm1.Settings=“9600”+
“,”+“n”+
“,”+“8”+
“,”+“1”;
MSComm1.OutBufferCount=0;//清空发送缓冲区
MSComm1.InBufferCount=0;//滑空接收缓冲区
MSComm1.RThreshold=1;//接收一个字节就触发omcom事件
alert(“已配置串口COM”+MSComm1.CommPort+“ 参数:”+MSComm1.Settings);
}catch(ex){alert(ex.message);}
}
else{alert(“请先关闭串口后再设置!”);}
}
vartmpWeight=“”;
//接收数据
functionReceive()
{
//alert(“InBufferCount::”+MSComm1.InBufferCount);
varinputvalue=MSComm1.Input;
if(inputvalue.indexOf(‘g’)》=0){
return;
}
//alert(inputvalue);
tmpWeight+=inputvalue.replace(‘-’,‘’);
if(tmpWeight.length》16)
{
if(tmpWeight.indexOf(‘000’))
{
varweight=trim(tmpWeight.substr(5,5));
if(weight.indexOf(‘0’)==0)
{
weight=weight.replace(“0”,“0.”)
}
SKDBedit7.value=weight;
tmpWeight=“”;
}
}
//alert(“InBufferCount::”+MSComm1.InBufferCount);
}
/*
varweight;
varmyArray=newArray();
functionGetWeight()
{
}
*/
functionserPortInit()
{
SKDBcombobox1.value=“COM4”;
SKDBcombobox2.value=“9600”;
SKDBcombobox3.value=“无NONE”;
SKDBedit5.value=“8”;
SKDBedit6.value=“1”;
//初始化创建MSComm1对象
uf_GetSerPortData();
}
functiontrim(str){//删除左右两端的空格
returnstr.replace(/(^s*)|(s*$)/g,“”);
}
functionltrim(str){//删除左边的空格
returnstr.replace(/(^s*)/g,“”);
}
functionrtrim(str){//删除右边的空格
returnstr.replace(/(s*$)/g,“”);
}
评论
查看更多