读书人

客户端施用VB控件mscomm32.ocx实现自动

发布时间: 2012-08-30 09:55:54 作者: rapoo

客户端使用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测试页面。

?

1 楼 xiaoliu52013 2012-04-23 请问您这个程序是适用于所有串口电子称吗?
是否需要配置与电子称相关的信息?在哪配置?
谢谢!

2 楼 liyan0524 2012-05-01 xiaoliu52013 写道请问您这个程序是适用于所有串口电子称吗?
是否需要配置与电子称相关的信息?在哪配置?
谢谢!


所有的。手动传输,还是自动时时监听传送数据,就需更改电子称配置了。

读书人网 >VB

热点推荐