目前市场上的条码数据采集终端(简称“手持条码扫描仪”)大致分为两种:
第一种,是基于AMR9处理器芯片的一系列专用数据采集终端,这种终端的特点是界面相对简单(大部分是黑白屏,有部分彩屏),功能比较单一,仅能实现数据的的手机和存储,有的能进行语音通话和发送短信,有的不具备移动通信功能。目前很多超市采用的就是这种终端。
第二种,是基于智能移动终端的数据采集终端,目前最常见的是硼NcE操作系统上。这种终端的特点是功能强大,不仅能实现数据的采集和存储,还是对数据进行分析和统计,可以通过WIFI、蓝牙、以及移动通信网络(2.G/3G)和服务器进行实时交互。目前很多快递公司采用的就是这种终端。
第一种方案价格低廉,但是功能简单,只能进行简单的数据录入和查询。第二种方案成本较高,而且WINCE现在不是主流的智能移动终端操作系统,所不利于客户的二次开发。
Android操作系统是一种以Linux为基础的开放源码操作系统,2011年一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%。
本项目准备研发的数据采集终端,是基于现在主流的android操作系统,android操作系统以其开放的开发方式,吸引多家厂商参与其芯片的开发,所以有效降低了整机成本,并可以给用户提供更丰富的应用。这样我们既可以有强大的功能,又可以达到相对低廉的价格。另外,android作为开放的系统,也非常适合客户做二次开发。
以往的数据采集终端因为受软件条件的限制,无法实现强大的数据分析和处理功能,在本项目中,基于android强大的处理软件处理能力,完成上层的数据分析软件开发,实现数据的分析、整理,数据类型的设计以及数据库的读写。
1.智能终端软件架构(图1)
整个软件主要分为三个部分:
1)kernel层:kernel层完成的主要工作是数据采集模块的上电初始化、开关等驱动,初始数据的采集和转发;
图1 是智能终端的软件架构图
2)硬件抽象层(HAL):完成对硬件的抽象,使上层可以无障碍的访问底层硬件,在本文中主要用来转换和转发数据;
3)JAVA层:接收硬件抽象层的数据,并通过HTTP等协议和服务器交互数据:
4)服务器侧软件,通过互联网协议和智能终端通信,并维护数据库。
2.关键部件说明
整个系统涉及到从底层的数据采集、解析、接收,以及上层获取底层的数据,对数据进行保存和分析,所以对系统的关键部件进行说明:
1)PXA910:Marvell PXA910芯片组是2009年由Maryell公司研发推出的,是一款面向WCDMA智能手机的芯片组,主频600Mhz,支持WCDMA,WIFI,BT。
2)Symbol SE4500:提供了颠覆成像技术定义的全面功能组合。这款产品针对一维和二维条码的绝佳性能与采集静止图像和视频的能力相结合,能够进行准确快捷的一维和二维码扫描。
3.数据处理流程
本节对智能采集终端的数据采集流程做详细的说明。
1)在底层kemel驱动获取到用户的扫描键按下后,会启动SE4500扫描模组进行扫描,采集到8位灰度格式的数据。
2)采集到的8bit GREY数据,通过PXA9lO的8bit数据口进入到PXA910中。
3)数据传到PXA910的KERNEL层后。数据会保存在一块连续的内存地址中,这连续的一帧数据大小是752*480。
4)硬件抽象层(HAL)的previewThread线程会连续的去步骤3)所述的内存地址取数据,这个内存地址会在上层做映射,以便于上层直接从这个地址读取数据。
5)硬件抽象层取得数据后,对数据进行转换,把8bit GREY数据转换成YUV422Package类型的数据,以便于上层进行preview和显示。
6)JAVA层获取到硬件抽象层的数据以后,会把数据送到解码库,库的名字叫libBarcodeReader.so在解码库中,软件会对采集的8BIT图像数据做模式识别处理,在模式识别的过程中,对有效的条码进行解析,从图形数据得到条码数据,条码数据包括一维条码和二维条码。解析到有效的条码数据后,libBarcodeReader.so会把条码数据通过回调函数的方式发送到上层应用。
7)上层JAVA得到有效的条码数据以后,把条码发往显示控件textview。或者发往专业的APP应用。具体显示在哪里,主要由各自的应用控制,需要显示或者进一步处理的模块会接收这个消息来进行显示或处理。
手机侧连接PC服务器数据库,因为android端使用的是sqlite数据库,PC侧使用的是sq/server数据库,两者不能直接通讯,需要一个中间的webservice来传递数据,android用http协议访问webservice,然后让webservice通过JDBC访问sqlserver。
8)手机和PC服务器通过WIFI交换数据
手机侧主要有两个类,UiTest类完成UI界面的操作,HttpProtocol完成与服务器端的数据交互。重点的HttpProtocol类函数及说明如下:
public static String uplOAdFile (String UploadString,StringRequestURL)
用POST方法完成上传数据和取得返回数据。RequestURL为webservice的网址,UploadString数据为手机侧向webservice发送的数据流,主要是将要发的数据连接成一个长字符串,每个数据之间用两个空格隔开(因为空格不在条码的字符当中,用其他割怕有问题),用DataOutputStream类中的dos.writeUTF(UploadString);方法发送数据,函数返回的字符串为网络侧的返回值,用DataInputStream类中的result=dis.readUTF():方法读取。
9)服务器端代码结构
读取手机侧传来的数据。首先判断数据库里是否有此条码记录。如果有,返回已有数据,如果没有,则往数据库里增加一个条目,并且将上传结果返回到手机侧。
4.结语
智能数据采集终端以其便携、快捷和强大的数据处理能力,很好的适应了物流产业的发展,有效提高了物流仓储行业的运行效率并降低了物流成本,在未来的一段时间内,智能数据终端必定能在物流领域发挥更大作用。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:智能数据采集终端的数据处理与分析软件实现