已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
条码的开发使用介绍文档第一部分 条码的简介绍1介绍条码的生成和使用方法识别过程:激光发射 反射采集 放大译码条形码检测信号二值化信号二进制数值编码条形码转换成编码5 3 2 2 5 4 6=条码是由一组按一定编码规则排列的条、空符号,用以表示一定的字符、数字及符号组成的信息。条码系统是由条码符号设计、制作及扫描阅读组成的自动识别系统。它的主要好处是:1.可靠准确,2。数据传输速度快,3。经济便宜,4。灵活,实用,5。自由度大,6。设备简单,7。易于制作。条码的识别原理如下:由于不同颜色的物体,其反射的可见光的波长不同,白色物体能反射各种波长的可见光,黑色物体则吸收各种波长的可见光,所以当条码扫描器光源发出的光经光阑及凸透镜后,照射到黑白相间的条码上时,反射光经凸透镜2聚焦后,照射到光电转换器上,于是光电转换器接收到与白条和黑条相应的强弱不同的反射光信号,并转换成相应的电信号输出到放大整形电路。白条、黑条的宽度不同,相应的电信号持续时间长短也不同。但是,由光电转换器输出的与条码的条和空相应的电信号一般仅10mV左右,不能直接使用,因而先要将光电转换器输出的电信号送放大器放大放大后的电信号仍然是一个模拟电信号,为了避免由条码中的疵点和污点导致错误信号,在放大电路后需加一整形电路,把模拟信号转换成数字电信号,以便计算机系统能准确判读。整形电路的脉冲数字信号经译码器译成数字、字符信息。它通过识别起始、终止字符来判别出条码符号的码制及扫描方向;通过测量脉冲数字电信号0、1的数目来判别出条和空的数目通过测量0、1信号持续的时间来判别条和空的宽度。这样便得到了被辩读的条码符号的条和空的数目及相应的宽度和所用码制,根据码制所对应的编码规则,便可将条形符号换成相应的数字、字符信息,通过接口电路送给计算机系统进行数据处理与管理,便完成了条码辨读的全过程。2条码的码制种类一维条码:EAN 8 (2 or 5 digit supplement)EAN 13(2 or 5 digit supplement)Codabar (Monarch, NW-7, USD-4, 2 of 7 code)Code 39 StandardCode 39 ExtendedCode 93 StandardCode 93 ExtendedCode 128AbcCodabar2/5 Datalogic,Code25, 2 of 5Code 11 (USD-8)Code25, 2 of 5, ITFCode25, 2/5 MatrixCode25, 2/5 IndustrialCode25, 2/5 IATACode25, 2/5 INVERTITF6, ITF14 (SSC14), ITF16ISBN (International Standard Book Number)ISSN (International Standard Serial Number)ISMN (International Standard Music Number)UPC-A (with or without supplements)UPC-E0 (with or without supplements)UPC-E1 (with or without supplements)UPC-ShippingPostNet (ZIP, ZIP+4, DPBC)OPC (Optical Industry Association)UCC/EAN 128 说明:EAN码EAN条码是国际物品编码协会制定的一种条码,已用有于全球90多个国家和地区,EAN条码符号有标准版和缩短版两种,标准版是由13位数字构成,缩短版是由8位数字构成,我国于1991年加入EAN组织。UPC码和EAN条码一样,UPC条码也是一种用于商品的条码,UPC条码是由美国统一代码委员会制定的一种条码,主要用于美国和拿大地区。我国有些出口到北美地区的商品为适应北美地区的需要,也申请了UPC条码。UPC条码有标准版和缩短版两种,标准版由12位数字构成,缩短版的由8位数字构成。三九码:三九码是一种条、空均表示信息的非连续型打码,它可表示数字0-9、字母A-Z和八个控制字符(-,空格,/,+,%,*)等44个字符,主要用于工业、图书以及票据的自动化管理上。库德巴(Codebar)码:库德巴(Codebar)码是一种条、空均表示信息的非连续、可变长度、双向自检的条码,可表示数字0-9、字母A-D及特殊字符(+,$,:,/,)。主要用于医疗卫生、图书情报、物资等领域的自动认别。二五码:二五条码是一种只有条表示信息的非连续型条码,每个字符由五个条组成,其中两个宽条,萨那个窄条。用来表示数字0-9。符号结构如图五:交叉二五码:交叉二五码的编码优良同二五码、只是将条码与之间的间隔作为信息的一部分进行编制一种连续码。二维条码:一维条码所携带的信息量有限,如商品上的条码仅能容纳13位(EAN-13码)阿拉伯数字,更多的信息只能依赖商品数据库的支持,离开了预先建立的数据库,这种条码就没有意义了,因此在一定程度上也限制了条码的应用范围。基于这个原因,啊90年代发明了二维条码。二维条码除了具有一维条码的优点外,同时还有信息量大、可靠性高,保密、防伪性强等优点。从诞生之日起,即受到国际社会的广泛关注。目前二维条码主要有PDF417码、Code49码、Code 16k码、Data MatxiCode码等,主要分为堆积或层排式和棋盘或矩阵式两大类。PDF417码: PDF417码是由美国SYMBOL公司研制的,是目前应用最为广泛的一种二维码。Data Matrix码: Data Matrix主要用于电子行业小零件的标识,如Intel的奔腾处理器的背面就印制了这种码。Maxi Code码 : Maxi Code是由美国联合包裹服务(UPS)公司研制的,用于包裹的分拣和跟踪等领域。第二部分 条码的开发(分别针对Motorolor MC3090和Honeywell 6100)一 环境的搭建开发平台VS2005或者VS2008,安装其中的任意一个。安装过程省略。微软提供的平台发包“Windows Mobile 5.0 Pocket PC SDK.msi” ,安装过程省略获得针对MC3090的激光头接口函数包“Symbol.Barcode.Design.dll”和Honeywell 6100的激光接口函数包“Honeywell.DataCollection.WinCE.Common.dll”和“Honeywell.DataCollection.WinCE.Decoding.dll”使用过程如下:1. 运行VS2008,文件新建项目这里的目标平台显示的就是刚才安装的微软提供的平台SDK包。2添加引用对用的采集器的激光头的DLL文件3激光头的调用程序部分代码MC3090的应用全局参数的初始化 Barcode.Barcode barcode1 = new Barcode.Barcode(); 激光头的开始 barcode1.EnableScanner = true;激光头的关闭,在窗体关闭时, 一定将该窗体开始的激光头资源关闭。 barcode1.EnableScanner = false;Honeywell 6100的激光头启动步骤,两个DLL文件的调用如上。using Honeywell.DataCollection.Decoding;using Honeywell.DataCollection.WinCE.Decoding;/界面初始化时,激光头的初始化同步进行 try this.DecodeAssemblyInitialize(); this.KeyPreview = true; catch (Exception ex) MessageBox.Show(ex.ToString(); private DecodeControl oDecode; private void DecodeAssemblyInitialize() try oDecode = new DecodeControl(); oDecode.DecodeEvent += new DecodeBase.DecodeEventHandler(oDecode_DecodeEvent); oDecode.TriggerKey = TriggerKeyEnum.TK_ONSCAN; oDecode.EnableSymbology(SymID.SYM_ALL, true); oDecode.ScanTimeout = 2147483647; oDecode.AutoSounds = false; oDecode.LightsMode = ScanLightsMode.LM_ILLUM_AIMER; SymbologyConfig code39 = new SymbologyConfig(SymID.SYM_CODE39); code39.ReadConfig(SetupType.ST_CURRENT); code39.flags |= SymFlags.SYMBOLOGY_ENABLE_FULLASCII; code39.WriteConfig(); oDecode.AutoSounds = true; oDecode.Connect(); catch (DecodeException dex) MessageBox.Show(dex.ToString(); private void DecodeAssemblyRelease() try oDecode.DecodeEvent -= new DecodeBase.DecodeEventHandler(oDecode_DecodeEvent); oDecode.CancelScanBarcode(); oDecode.Disconnect(); oDecode.Dispose(); catch (DecodeException dex) MessageBox.Show(dex.ToString(); private void oDecode_DecodeEvent(object sender, DecodeBase.DecodeEventArgs e) try if (this.InvokeRequired = true) this.Invoke(new DelegateMethodAccessDecodeData(this.OnAccessDecode), new object e ); else this.OnAccessDecode(e); catch (Exception ex) MessageBox.Show(ex.Message); internal void OnAccessDecode(DecodeBase.DecodeEventArgs e) try if (e.DecodeResults.rResult != Result.RESULT_ERR_NODECODE) /这里就是激光读条码得到的结果。 textBox2.Text = e.DecodeResults.pchMessage; catch (DecodeException dex) MessageBox.Show(dex.ToString(); /窗体响应按钮按下时的事件 private void check_KeyDown(object sender, KeyEventArgs e) if (oDecode.TriggerKeyIsDown() = true) this.KeyDown -= new KeyEventHandler(check_KeyDown); try oDecode.ScanBarcode(true); e.Handled = true; catch (DecodeException dex) MessageBox.Show(dex.ToString(); /窗体响应按钮弹起来时事件 private void check_KeyUp(object sender, KeyEventArgs e) if (e.KeyCode = (Keys)oDecode.TriggerKey) if (oDecode.ContinuousScan) oDecode.ContinuousScan = false; oDecode.CancelScanBarcode(); this.KeyDown += new KeyEventHandler(check_KeyDown); /窗体关闭时一定要将该窗体打开的激光头资源关闭 try this.DecodeAssemblyRelease(); catch (Exception ex) MessageBox.Show(ex.ToString(); 4条码采集器通过OpenNETCF.Desktop.Communication.dll和PC机进行数据的交换OpenNETCF.Desktop.Communication 命名空间提供以下类OpenNETCF.Desktop.Communication 命名空间中提供的类 类说明ActiveSync提供对 Microsoft ActiveSync 底层功能的访问。AutoStartApps提供配置 ActiveSync 会话开始时运行的应用程序的功能及相关信息。FileInformation描述 FindFirstFile 和 FindNextFile 方法返回的文件信息结构。FileListFileInformation 类的集合。桌面应用程序经常用它查询和管理连接设备的文件结构。RAPI提供对基础 RAPI 函数的简便包装。RAPIException定义 RAPI 类发生的例外。Registry提供对基础 RegistryKey 类的访问,这些类反过来又用来访问并修改连接设备的注册表值和注册表子项。RegistryKey定义连接设备注册表中的一个项节点。如上表所示,OpenNETCF.Desktop.Communication 命名空间提供了大量的桌面功能,这些无法在一篇文章中详细说明。本文的重点是 RAPI 类,特别是 RAPI 类的 3 个主要功能: 管理设备中的目录文件。 启动设备中的应用程序。 检索设备中的系统信息。 之所以选择这 3 项,是因为这 3 部分在开发移动解决方案中起着特别的帮助作用。 使用 OpenNETCF 的 Communication 库OpenNETCF Communication 库是通过 OpenNETCF.Desktop.Communication.DLL 文件提供的。您需要在桌面应用程序中包括这个库的引用。要添加引用,请执行以下步骤: 1. 在“解决方案资源管理器”中,右键单击“References”文件夹。显示弹出菜单。 2. 在菜单中,选择“添加引用”。 3. 显示“添加引用”对话框。选择“OpenNETCF.Desktop.Communication”组件。 单击“确定”按钮,将所选组件添加到您的项目中。RAPI 类表 2 列出的 RAPI 类方法对开发移动应用程序最有帮助。表 2:对开发移动应用程序有用的 RAPI 类方法。 方法说明Connect建立与设备的同步连接。CopyFileF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 红花的活血活性研究
- 蒸汽清洗机锅炉保养
- 工程赔偿合同协议书
- 工程涂料承包协议书
- 灭火机购买合同范本
- 建筑质保协议书范本
- 演员预付款合同范本
- 小学安全协议书范本
- 动物类检疫员职业岗位技能资格知识考试题与答案
- 工程聘请顾问协议书
- 2025年阿克苏辅警招聘考试题库及完整答案详解一套
- 锚索冬季施工方案
- 学习宪法精神争做守法青年
- 2025中华联合财产保险股份有限公司社会招聘笔试历年常考点试题专练附带答案详解2卷
- 供配电系统运行维护年度总结与分析报告
- 电厂五星班组建设汇报
- 梅毒课件教学课件
- 2025年生产经营单位主要负责人和安管人员考试综合试题及答案
- (2025年)公安基础知识专业科目考试模拟试题(附答案)
- 酒店毒品预防知识培训课件
- 兽医药品知识培训内容课件
评论
0/150
提交评论