一种扫描枪识别扫描方法与流程

文档序号:13422405阅读:3113来源:国知局
一种扫描枪识别扫描方法与流程

本发明涉及条码扫描技术领域,尤其涉及一种扫描枪识别扫描方法。



背景技术:

传统的条码扫描方式只能一个扫描枪对应一台pc,扫描枪的扫描结果通过模拟按键的方式传送到pc端。

然而,传统的条码扫描方式,无法做到多台扫描枪对应同一个pc,硬件成本高。区分扫描的方式通过设置条码枪的前缀,操作不方便且不智能。



技术实现要素:

针对现有技术的不足,本发明提出了一种扫描枪识别扫描方法,旨在解决现有的扫描枪识别扫描方法无法做到多台扫描枪对应同一个pc以及操作不方便的问题。

为了实现上述目的,本发明技术方案如下:

一种扫描枪识别扫描方法,包括以下步骤:

s1:为各扫描枪标定id号。

s2:保存各扫描枪标定后的id号。

s3:获取当前正在做扫描作业的扫描枪的id号。

s4:将当前获取的id号与已保存的各id号进行比对,判断当前获取的id号是否被保存过;若为是,则执行s5;若为否,则执行s6。

s5:对当前正在做扫描作业的扫描枪扫描到的条码进行处理,并判断各扫描枪是否完成扫描作业;若为是,则执行s6;若为否,则执行s3。

s6:结束扫描。

进一步地,s1的具体步骤包括:

s11:将各扫描枪按位排列,将第n位扫描枪的序位号设置为0x

s12:将扫描枪的所述序位号、条码的个数、条码的位数保存到配置文件中。

s13:从所述配置文件中读取待标定的各扫描枪的所述序位号。

s14:采用按位与运算把各扫描枪的所述序位号保存在扫描枪编号变量中。

s15:将当前正在标定的扫描枪的所述序位号与所述扫描枪编号变量进行按位与运算,得到中间值。

s16:判断所述中间值与正在标定的扫描枪的所述序位号是否相等;若为是,则从所述配置文件中读取当前正在标定所对应的扫描枪的id号,执行s17;若为否,则执行s15。

s17:将所述扫描枪编号变量的与当前正在标定的扫描枪相对应的比特位置为0。

s18:判断所述扫描枪编号变量是否为0;若为是,则执行s19;若为否,则执行s15。

s19:退出标定进程。

进一步地,s5的具体步骤包括:

s51:判断当前扫到的条码与预设的条码位数是否一致;若为是,则记录当前扫描到的条码,并执行s52;若为否,则舍弃当前扫描到的条码,并执行s52。

s52:将已扫描条码的数量值加1。

s53:判断已扫描条码的数量值是否等于所述配置文件中所保存的条码的个数;若为是,则执行s6;若为否,则执行s3。

本发明的有益效果:

本发明各扫描枪标定id号,可以区分多路扫描枪,并且一次扫描多个条码并记录,减少了电脑数量、提高了生产效率,减少操作次数,避免扫描枪扫描出错。

附图说明

图1为本发明的流程示意图。

图2为图1中步骤s3的流程示意图。

图3为图1中步骤s5的流程示意图。

具体实施方式

下面结合附图和实施例,进一步阐述本发明。

如图1所示,一种扫描枪识别扫描方法,包括以下步骤:

s1:为各扫描枪标定id号。通过标定扫描枪,将各扫描枪的id号记录下来,id号是一串比较长的字符串,用于条码枪维一性id识别。

s2:保存各扫描枪标定后的id号。

s3:获取当前正在做扫描作业的扫描枪的id号。

s4:将当前获取的id号与已保存的各id号进行比对,判断当前获取的id号是否被保存过;若为是,则执行s5;若为否,则执行s6。

s5:对当前正在做扫描作业的扫描枪扫描到的条码进行处理,并判断各扫描枪是否完成扫描作业;若为是,则执行s6;若为否,则执行s3。

s6:结束扫描。

具体地,如图2所示,s1的具体步骤包括:

s11:将各扫描枪按位排列,将第n位扫描枪的序位号intgunbitn设置为0x;其中,0x表示为十六进制。

s12:将扫描枪的序位号intgunbitn、条码的个数intbarcodenum、条码的位数保存到配置文件中fatssettings.ini。

s13:从配置文件fatssettings.ini中读取待标定的各扫描枪的序位号intgunbitn。

s14:采用按位与运算把各扫描枪的序位号intgunbitn保存在扫描枪编号变量myscangunnum中。

s15:将当前正在标定的扫描枪的序位号intgunbitn与扫描枪编号变量myscangunnum进行按位与运算,得到中间值a。

s16:判断中间值a与正在标定的扫描枪的序位号intgunbitn是否相等;若为是,则从配置文件fatssettings.ini中读取当前正在标定的扫描枪所对应的id号,执行s17;若为否,则执行s15。

s17:将扫描枪编号变量myscangunnum的与当前正在标定的扫描枪相对应的比特位置为0。

s18:判断扫描枪编号变量myscangunnum是否为0;若为是,则执行s19;若为否,则执行s15。

s19:退出标定进程。

配置文件fatssettings.ini为每个扫描枪分别配置一个不同的id号。按照扫描枪的排列顺序分别为各扫描枪分配一id号,用以作为各扫描枪在做扫描作业时的唯一标识。配置文件fatssettings.ini中为每路扫描枪设置一个状态变量portn。当状态变量portn大于0(或非0)时,表示第n路的扫描枪处于工作状态。例如,当第一路扫描枪的状态变量port1>0时,表示第1路的扫描枪处于工作状态。

通过扫描枪编号变量myscangunnum就可以知道当前需要做扫描作业的扫描枪的数量,并且可以定位第几号扫描枪需要扫描。如果myscangunnum是二制制111,需要定位三个扫描枪。

具体地,如图3所示,s5的具体步骤包括:

s51:判断当前扫到的条码与预设的条码位数是否一致;若为是,则记录当前扫描到的条码,并执行s52;若为否,则舍弃当前扫描到的条码,并执行s52。

s52:将已扫描条码的数量值myscanguncount加1。

s53:判断已扫描条码的数量值myscanguncount是否等于配置文件fatssettings.ini中所保存的条码的个数intbarcodenum;若为是,则执行s6;若为否,则执行s3。

当有扫描枪枪扫描动作时,通过threadfiltermessage函数截获按键动作,通过processrawinput函数读取扫描枪id号,按键消息的传递顺序为threadfiltermessage、prekeydown、wndproc。当扫描枪结束符是回车符时则进入扫描枪字符处理流程,通过threadpool.queueuserworkitem线程把扫描的条码读取出来。

本发明可以区分多路扫描枪,并且一次扫描多个条码并记录,减少了电脑数量、提高了生产效率,减少操作次数,避免扫描枪扫描出错。

以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的基本构思的前提下直接导出或联想到的其它改进和变化均应认为包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1