通用条形码扫描识别适配器程序的可行性应用:笔记本适配器通用吗

来源:工程科技 发布时间:2019-05-21 05:37:53 点击:

  摘要: 随着科技的发展条形码自动识别技术的应用越来越广泛,其具有输入速度快、准确度高、成本低、可靠性强等优点,在当今的自动识别技术中占有重要的地位。本文介绍了条形码扫描识别的原理,以实例应用探讨了通用条形码扫描识别适配器程序在现实应用中的可行性。
  关键词: 条形码技术;扫描识别适配器程序;可行性
  
  一.条形码技术在自动识别技术中的重要性
  
  条形码技术是在计算机应用和实践中产生并发展起来的一种广泛应用于商业、邮政、图书管理、仓储、工业生产过程控制、交通等领域的自动识别技术,具有输入速度快、准确度高、成本低、可靠性强等优点,在当今的自动识别技术中占有重要的地位。各级政府部门都保有大量的使用条形码的程序,各软件之间也有一定的关系,但是由于软件的开发年代不同,或者开发者不同很难将这些软件关联起来,于是就造成了这样一种局面:有些软件,直接扫描条形码即可快速定位到物品条目信息,但是另外一些程序却必须要手工输入才可以,无法发挥条形码的良好作用。以设备管理程序为例,某部门为所有的IT设备做了设备编码卡用来统计资产。若干年后他们又引入了一套GIS系统用来定位物品的位置,启用了带条形码的设备铭牌。在新系统内,只要扫描铭牌上的条形码就可以定位到这个设备,效率非常高。而老系统就需要手工输入一串冗长的编码才可以找到设备,输入速度低下并且错误率很高。
  
  二.条形码扫描程序的识别原理
  
  那么有没有办法使那些本来不支持条形码扫描的程序也支持呢?答案是肯定的。首先,条形码的扫描是通用的,一般使用的条形码都是标准的,任何一款扫描器都可以准确高效地识别出它们。其次,软件的输入一般采用标准的输入控件,该控件支持IME的拷贝粘贴操作。这两点决定了只要我们能够将鼠标定位到当前需要输入的位置,然后用条形码扫描器扫描,就可以将扫描内容直接粘贴至目标区域,这样就可以在任意程序上支持条形码识别了。而且一些条形码扫描器直接就具备直接的IME输出能力,我们不需要任何代码就可以完成这样的功能。通过上述的操作,我们已经使老程序具备了条形码识别的能力。如果老系统和新系统使用的不是一套码表系统的话,直接输入的条形码就无法被老系统识别,我们就有必要做一个映射转换工作,这时候就需要借助于外部程序的辅助。
  
  三.通用条形码扫描识别适配器程序可行性的应用
  
  在数据库中建立一张映射表ItemMap,两个字段Barcode(条形码),Internalcode(内部码),并且在条形码Barcode字段上建立索引,以提高查询语句的性能。影射表建立后,需要人工录入所有的条形码与老的内部码之间的联系,建成后的表格为扫描程序备用。下面可以开始扫描程序的开发,扫描程序的输入是条形码扫描器的扫描结果,一般是一串数字,假设为123456。我们现在需要做的是开发一个程序能够捕获到这个结果。条码扫描器接口目前主要有USB接口、PS/2接口、串口(RS232)等几种形式。其中USB接口最为简单,最大的好处就是即插即用,并且不会因为条码扫描器的故障造成键盘或其它外设不能使用的情况,目前该接口主要应用在与计算机的连接上。PS/2接口是最早成熟起来的条码扫描器接口,该接口除了可以与计算机连接外(具有PS/2接口的计算机),更被大量应用于与商业POS机做通讯接口,该接口最大的缺点是会因扫描器的故障造成键盘外设的无效状态。RS232接口是目前工业领域中使用的最为频繁的条码扫描器接口,因它易于编程、数据传输距离远、可构建现场总线网络等优点,可被应用到生产线条码数据采集、PLC联动顺序控制等场合。我们以RS232接口为例,程序首先打开COM端口监听,当有数据传送过来时,我们对输入的数据流进行检索,如果遇到回车就是一个数据结束,通常读卡机每组数据结尾都返回一个回车作为结束符,如果有特别的返回方式,可以参阅具体型号的扫描设备文档。涉及到的Delphi代码如下:
  Option Explicit
  Dim sData As String
  Private Sub Form_Load()"系统初始化时,与COM端口建立连接
  With MSComm1
  .CommPort = 2 "假设设备连接在COM2端口上,根据运行的系统而定,这里是演示代码,真时情况下可以提供列表让用户选择。
  .PortOpen = True"将设备通讯端口打开
  End With
  End Sub
  Private Sub MSComm1_OnComm()
  Dim EndPos As Integer
  Select Case MSComm1.CommEvent
  Case comEvReceive "当有数据传送过来时
  sData = sData & Trim(MSComm1.Input)
  EndPos = InStr(1, sData, Chr(13))
  If EndPos = 0 Then "如果未结束就继续努力
  Else "读完一组。
  "这里对读取到的数据进行处理
  sData = "" "清空
  End If
  End Select
  End Sub
  当扫描程序扫描到一个条形码时,程序通过数据库连接,首先查询相应的内码Select Internalcode From ItemMap Where Barcode="123456",然后把查询的结果拷贝到目标区域就可以了。外部程序还有更高级的应用,有时候输入区域不是很好定位,比如不是程序界面上的比较靠前的输入框,需要多次键盘tab键才可以走到。这个时候我们可以在辅助程序内编写适配器逻辑,用辅助程序接管扫描程序的输入。当一个合法的输入进来时,辅助程序根据规则自动找到目标然后粘贴。我们可以采用AutoIt这样的自动化程序来完成这个目标。如果目标应用程序使用的是非标准控件,无法采用Edit5这样的描述符定位,我们还可以采用自动模拟发送多次Tab键的方式定位到目标区域。经过这样的改造应用后,所有的程序都能享受到高速条形码扫描设备带来的便利,为老程序发挥了更大的价值,可以为社会节约更多的已有资源。
  
  参考文献:
  [1]刘志海、曾庆良、朱由锋:条形码技术与程序设计〔M〕.清华大学出版社,2009,8.
  [2]韦元华、舟子:条形码技术与应用〔M〕.中国纺织出版社,2003-06.

推荐访问:条形码 适配器 可行性 扫描
上一篇:媒体网站的建设:黑龙江建设网官网
下一篇:最后一页

Copyright @ 2013 - 2018 四八文档网-文档下载,办公室文档软件 All Rights Reserved

四八文档网-文档下载,办公室文档软件 版权所有 沪ICP备09019570号-4