博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#利用控件mscomm32.ocx读取串口datalogic扫描枪数据
阅读量:4958 次
发布时间:2019-06-12

本文共 1535 字,大约阅读时间需要 5 分钟。

1).开发环境VS12,语言C#

2).扫描枪品牌:datalogic 4470

3).通讯协议:串口

1.首先,第一步创建一个新工程,windows窗体应用程序,命名为TestScanner,如下:

2.选择 “工具”-“选择工具箱”,如下:

3.选择"microsoft communication control version 6.0",通过此路径可知其位于64位SysWow64下的ocx控件mscomm32.ocx;

4.从右侧工具箱“组件”中找到串口控件,拖入窗体Form1中,命名为MD_MSComm,并在界面初始化中填入相关参数:

MD_MSComm.CommPort = 11;

MD_MSComm.InputMode = MSCommLib.InputModeConstants.comInputModeText;

MD_MSComm.InBufferSize = 1024;
MD_MSComm.OutBufferSize = 512;
MD_MSComm.Settings = "9600,n,8,1";

MD_MSComm.SThreshold = 0;

MD_MSComm.RThreshold = 1;//first byte trigger oncomm event
MD_MSComm.InBufferCount = 0;
MD_MSComm.OutBufferCount = 0;
MD_MSComm.PortOpen = true;

5.在控件MD_MSComm的事件中添加“OnComm”事件,并读取扫码枪数据代码如下:

string str="";

if (MD_MSComm.CommEvent > 1000) //CommEvent属性值,不同值代表不同的串口状态,若为2,代表有数据,可供读取;
{
Log4netHelper.Error(this.GetType(), "communication error, the value is:" + MD_MSComm.CommEvent.ToString());
return;
}
if (MD_MSComm.CommEvent == 2)
{
if (MD_MSComm.InBufferCount > 0)//串口缓存区的数据长度
{
str = ((string)MD_MSComm.Input).Trim();//input方法 来读取串口枪缓冲区的数据
if (str.Length == 14)
{
AvailablePublicHelper.CurScanner = str;
Log4netHelper.Info(this.GetType(), "get the content of the scanner is:" + str);
}
else
{

Log4netHelper.Warn(this.GetType(), "get the content of the scanner is not normal:" + str);

}
}
}

6.配置硬件扫码枪的读取方式,为了调试方便,本文选择的持续读取模式,若希望选择命令触发读取形式,需每次发送读取命令“02”至串口,读取命令,可在串口配置中进行设置,具体品牌可根据扫码枪供应商来协商;

命令写入数据到扫码枪的方式为MD_MSComm.output;

7.将扫码枪串口插入到工控机硬件接口,并和程序中的comport值匹配,本文选择的comm口为11;

8.结束。

转载于:https://www.cnblogs.com/cherenshuishou4451/p/11197147.html

你可能感兴趣的文章
linux常用命令
查看>>
推荐 30 款最好的免费项目管理软件
查看>>
SDN第五次上机作业
查看>>
leetcode 657. Judge Route Circle
查看>>
Redis+MongoDB 最佳实践 做到读写分离 -摘自网络
查看>>
Gold Smith第一章
查看>>
漂在等待离职的日子(二)
查看>>
SharePoint BDC(Business Data Connectivity)服务-PowerShell
查看>>
在Lumia 950 XL上运行Windows 10 ARM64,是种什么体验?
查看>>
源 ppa
查看>>
写给五年前的自己(软件测试工程师总结)(未更新完)
查看>>
在Windows上远程运行Linux程序
查看>>
mac xcworkspace xcodebuild
查看>>
把纯真IP数据库中的记录导入Mysql数据库的PHP脚本
查看>>
ActiveMQ:JMS开源框架入门介绍
查看>>
Mac下的裁剪快捷键
查看>>
通过51degrees.mobi 2.1.15.1 检测UserAgent判断是否为手机,并获取手机硬件型号
查看>>
Windows Server 2012及以上安装IIS的步骤
查看>>
ios swift 计算文件夹大小以及清除缓存文件
查看>>
vCenter 6.5安装
查看>>