基于C++的数据采集器的设计与实现
2013-09-19段卫国
段卫国,赵 佳
(渭南师范学院 数学与信息科学学院,陕西 渭南 714000)
C++是有C语言发展起来的一门语言,在各个领域都有着广泛的应用,C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言[1]。数据采集器则是普遍用在超市、商场、各大小企业之中的数据采集设备,帮助企业对防伪防窜货有很大的帮助,采集完数据之后上传至系统数据库中进行保存,用户可以随时查找所上传的数据以及辨别数据的真伪,使企业之间的恶性竞争减少。
1 可行性分析
数据采集器的使用配合特制的条码,采集完数据后上传到特定的系统数据库中,而此一套设备则都是基于数据采集器程序的开发以及使用来实现的。
典型的物流管理系统的系统流程图如图1所示。
首先产品装箱,在装箱后需要用数据采集器采集入库的数据,在此使用数据采集器采集数据,数据采集完成后将货物放入仓库。当需要出货时,又需要用采集器进行出库的扫描,完成后将扫描的数据传入物流管理系统,之后货物被投放到市场,投入到市场后,如果需要继续管控,继续在此处使用采集器,采集入库和出库的信息,将采集到的信息传到物流系统中,如需做到三级经销商,则流程一样。
图1 流程说明Fig.1 Process description
2 功能需求
入库扫描。在企业生产完货物后需要对全部货物进行入库登记,此时可使用采集器的入库扫描进行登记货物的信息,在入库扫描中需要填写单号以及货物代码,以方便跟物流系统的对接。
出库扫描。当经销商需要对自己的客户出货时,则可使用采集器的出库登记模块进行扫描登记货物的详细信息。
数据传输。当数据采集器采集完入库或者出库信息后,则需要将其扫描的数据全部的导入特定的物流管理系统,数据传输时则是基于USB(UEasyfile)协议进行实现。
保存数据。扫描完成后,则需要对所采集的数据进行保存,在此则采用自动保存的形式。
3 功能实现过程
3.1 扫描的实现
扫描时需要一系列的参数,例如:在出库扫描中,需要整个出库(即出货)的数量进行界定、客户的设置以及产品的设置等。
1)数量的界定。当采集器扫描够界定的数量后将不再继续扫描,在出库数量方面,我们可以拟定参数CUEdit m_Edit_qty,即本次需要采集的数量,拟定完成后,则在程序中可以以if语句进行实现,例如:
2)客户的设定。在出货时,肯定需要设定该货物发往哪个客户,这就需要在采集器上设定好相应的客户信息,以方便数据在上传系统的时候方便和系统进行对接,则也可设置一个参数,在扫描其扫描时,输入相应的客户代码即可.
3)产品的设定。产品的设定跟客户的设定是一样的道理,方便上传数据文件时跟系统对接。当出库扫描模块里所有需要的参数都设定好之后,则需要判断是否开始扫描。因此,在此类里即可以使用bool进行是否开始扫描的判断,例如:
此外,在上述参数的设定方面还需要进行最后一步的确认,即如果少了其中一项则不能进行扫描,此处可以继续沿用if语句进行判断,例如我们举一个产品设定的例子进行说明:
这样,在数量的控制上就可以达到我们的目标.
4)数据传输的实现过程。在数据传输时,首先需要创建该页面,例如:
此处用到参考文献[2-5]中的类的建立.而在此功能中,需要3种方式进行数据的传输,分别为USB、COM、红外连接,则在此可采用静态函数进行设置,例如:
在此类中,分别对3种方式进行判断,在此可以使用if else进行确认已达到实现的目标.
5)数据的保存。数据保存在此程序中是比较特殊的一类实现的方式,既是即时保存,可直接采用memset的方式进行保存,例如:在入库类中创建一个他的继承类.
3.2 主函数设定
首先,根据C++的语句规则建立一个全局函数,即该程序的主函数:
主函数拟定之后,建立一个类,例如:目前很多企业为了防窜货,会在货物出库之前先进行库存的统计,即出库登记,如果一个一个人力登记的话会耗费很大的人力物理财力,因为我们建立一个出库统计的类,即class CPageOutput建立此类之后,则一步一步完成相应的出库统计作用的实现,而整个防窜货系统则可通过以下的过程初步实现,如下:
出库扫描—>得到出库信息—>上传扫描信息—>信息查询
上述程序完成后,即可随时查询任意的数据的详细信息以达到防窜货的目的。
其它的客户以及单数(数量)等则使用同样的方式实现,上面则是这个类的全部实现思路过程,而在采集器中,还需要入库的登记,库存的盘点,退货的登记等等模块,而实现过程均可采用出库登记相类似的方式进行实现.
4 功能测试
4.1 扫描测试
进入扫描界面如图2所示,在扫描界面填入入库单号以及产品代码等即可,之后开始扫描,将扫描器对准条形码进行扫描。
图2 出库扫描图示Fig.2 Outbound scanning graphic
4.2 数据传输测试
将数据采集器用USB线连接至电脑,连接完成后将采集器的数据传输端口设置为 USB(UEasyfile)点击确认以完成和电脑中物流管理系统的对接,亦可对采集器中的数据格式进行查看测试,当扫描仪连接成功后,则会显示图3所示。
图3 数据传输图示Fig.3 Data transmission graphic
通过对采集器采集数据以及数据传输的测试,在采集器采集数据时,可以达到快捷灵敏的对数据进行采集,并能够成功将数据保存至采集器中,而设置好采集器端口后,也可成功将采集器连接至电脑并读出其中数据。
5 结束语
数据采集器是基于C++开发的,具有稳定性、高效性、可扩充性等特点。稳定性表现在数据采集器持续多个小时工作无异常情况,高效性则反映在数据采集器开机速度快,运行速度快,操作简单快捷,使用灵敏,可扩充性使采集器能够随时添加新的模块和功能以及特性。
[1]李春葆,章启俊.C++程序设计[M].北京:清华大学出版社,1993.
[2]霍顿.Visual C++2010入门经典[M].5版.北京:清华大学出版社,2011.
[3]周玉龙.高级语言C++程序设计[M].北京:高等教育出版社,1993.
[4]周进,朱训,张宏林.VISUAL C++实用教程[M].西安:西安交通大学出版社,1997.
[5]Bruce Eckel.C++编程思想[M].北京:机械工业出版社,1990.
[6]Bjarne.C++程序设计语言[M].北京:电子工业出版社,1993.