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,“”);
}
評論
查看更多