客户端使用VB控件mscomm32.ocx实现自动读取串口电子称称重数据功能

 

客户端使用VB控件mscomm32.ocx实现自动读取串口电子称称重数据功能

 

 

1.查看各不同型号电子称的数据读取格式

如:

型号1,849:    0.000 kg

型号2,kgUT NW +  14.838

 

读取【kgUT NW +  14.838】数据格式后,利用JS解析出【14.838】显示在控件上。提交给后台应用.

 

2.设置电子称自动传输数据到所监听的串口应用中。各不同型号电子称设置方式不一样,需按供应商提供的说明书设置。

3.页面加入mscomm32.ocx组件

 

<html>    
<head>    
<title>JavaScript MSCOMM32.OCX </title>    
<script type="text/javascript" >
function trim(text){
	text = text.replace(/^[ |\n|\r|\t|\x0B|\0|?]+/,""); 
	text = text.replace(/[ |\n|\r|\t|\x0B|\0|?]+$/,"");
	return text;
}

function isEmpty(str){
	return ((trim(str) == null)||(trim(str).length == 0));
}

function isNumber(str){
    if(isEmpty(str))
        return false;
 	return !isNaN(str) ;
}
</script>
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>

	function MSComm1_OnComm()    
	{    
		var len=0;    
		if(MSComm1.CommEvent==1)  
		{    
			window.alert("barcode");    
		}    
		else if(MSComm1.CommEvent==2)  
		{
			var value = MSComm1.Input;
			value = value.replace("kg","");
			value = trim(value);
			if(isNumber(value)){
				document.form1.txtReceive.value=value;  
			}
			  
		}    
	}
	
	function OpenPort()    
	{    
		if(MSComm1.PortOpen==false)    
		{    
			MSComm1.PortOpen=true;    
			MSComm1.Output="#";
		}    
		else    
		{    
			window.alert("已经开始接收数据!");    
		}    
	} 
	
	function autoPort()    
	{    
		if(!MSComm1.PortOpen)    
		{    
			MSComm1.PortOpen=true;    
			//MSComm1.Output="AA 00 03 88 18 0A 99 BB";
		}    
	}  
</SCRIPT>    

<SCRIPT LANGUAGE=javascript FOR=MSComm1 EVENT=OnComm >
	MSComm1_OnComm();
</SCRIPT>    

</head>    
<body onload="autoPort();">
<OBJECT CLASSID=clsid:648A5600-2C6E-101B-82B6-000000000014 id=MSComm1 name=MSComm1 codebase=mscomm32.ocx  type="application/x-oleobject"    
 style="border-style:outset; border-width:0px; WIDTH: 10px; HEIGHT: 10px"  >    
	<PARAM NAME="CommPort" VALUE="1">    
	<PARAM NAME="DTREnable" VALUE="1">    
	<PARAM NAME="Handshaking" VALUE="0">    
	<PARAM NAME="InBufferSize" VALUE="1024">    
	<PARAM NAME="InputLen" VALUE="0">
	<PARAM NAME="NullDiscard" VALUE="0">    
	<PARAM NAME="OutBufferSize" VALUE="512">    
	<PARAM NAME="ParityReplace" VALUE="?">    
	<PARAM NAME="RThreshold" VALUE="1">    
	<PARAM NAME="RTSEnable" VALUE="1">    
	<PARAM NAME="SThreshold" VALUE="2">    
	<PARAM NAME="EOFEnable" VALUE="0">    
	<PARAM NAME="InputMode" VALUE="0">    
	
	<PARAM NAME="DataBits" VALUE="8">    
	<PARAM NAME="StopBits" VALUE="1">    
	<PARAM NAME="BaudRate" VALUE="9600">    
	<PARAM NAME="Settings" VALUE="9600,N,8,1">    
</OBJECT>  
<form name="form1">    
<input type="button" name="Submit" value="commit" onClick="OpenPort()">    
<input type="text" name="txtReceive" size=50 value="">    
</form>    
</body>    
</html>
 

 

 

 

客户端电脑配置

1.运行register.cmd注册mscomm32.ocx至system32下。

2.如使用register.cmd未注册成功,则手工注册,将mscomm32.ocx用C:\Windows\System32\regsvr32.exe运行

3.检查注册表是否有打过安全补丁,如有删除此注册表信息

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{648A5600-2C6E-101B-82B6-000000000014}]

 

 

所有用的配置文件在附件【电子称接口】中,有一个test.html测试页面。

 

你可能感兴趣的:(java,mscomm32,电子称)