目前市場(chǎng)上的條碼數(shù)據(jù)采集終端(簡(jiǎn)稱“手持條碼掃描儀”)大致分為兩種:
第一種,是基于AMR9處理器芯片的一系列專用數(shù)據(jù)采集終端,這種終端的特點(diǎn)是界面相對(duì)簡(jiǎn)單(大部分是黑白屏,有部分彩屏),功能比較單一,僅能實(shí)現(xiàn)數(shù)據(jù)的的手機(jī)和存儲(chǔ),有的能進(jìn)行語(yǔ)音通話和發(fā)送短信,有的不具備移動(dòng)通信功能。目前很多超市采用的就是這種終端。
第二種,是基于智能移動(dòng)終端的數(shù)據(jù)采集終端,目前最常見(jiàn)的是硼NcE操作系統(tǒng)上。這種終端的特點(diǎn)是功能強(qiáng)大,不僅能實(shí)現(xiàn)數(shù)據(jù)的采集和存儲(chǔ),還是對(duì)數(shù)據(jù)進(jìn)行分析和統(tǒng)計(jì),可以通過(guò)WIFI、藍(lán)牙、以及移動(dòng)通信網(wǎng)絡(luò)(2.G/3G)和服務(wù)器進(jìn)行實(shí)時(shí)交互。目前很多快遞公司采用的就是這種終端。
第一種方案價(jià)格低廉,但是功能簡(jiǎn)單,只能進(jìn)行簡(jiǎn)單的數(shù)據(jù)錄入和查詢。第二種方案成本較高,而且WINCE現(xiàn)在不是主流的智能移動(dòng)終端操作系統(tǒng),所不利于客戶的二次開(kāi)發(fā)。
Android操作系統(tǒng)是一種以Linux為基礎(chǔ)的開(kāi)放源碼操作系統(tǒng),2011年一季度,Android在全球的市場(chǎng)份額首次超過(guò)塞班系統(tǒng),躍居全球第一。2011年11月數(shù)據(jù),Android占據(jù)全球智能手機(jī)操作系統(tǒng)市場(chǎng)52.5%的份額,中國(guó)市場(chǎng)占有率為58%。
本項(xiàng)目準(zhǔn)備研發(fā)的數(shù)據(jù)采集終端,是基于現(xiàn)在主流的android操作系統(tǒng),android操作系統(tǒng)以其開(kāi)放的開(kāi)發(fā)方式,吸引多家廠商參與其芯片的開(kāi)發(fā),所以有效降低了整機(jī)成本,并可以給用戶提供更豐富的應(yīng)用。這樣我們既可以有強(qiáng)大的功能,又可以達(dá)到相對(duì)低廉的價(jià)格。另外,android作為開(kāi)放的系統(tǒng),也非常適合客戶做二次開(kāi)發(fā)。
以往的數(shù)據(jù)采集終端因?yàn)槭苘浖䲢l件的限制,無(wú)法實(shí)現(xiàn)強(qiáng)大的數(shù)據(jù)分析和處理功能,在本項(xiàng)目中,基于android強(qiáng)大的處理軟件處理能力,完成上層的數(shù)據(jù)分析軟件開(kāi)發(fā),實(shí)現(xiàn)數(shù)據(jù)的分析、整理,數(shù)據(jù)類型的設(shè)計(jì)以及數(shù)據(jù)庫(kù)的讀寫(xiě)。
1.智能終端軟件架構(gòu)(圖1)
整個(gè)軟件主要分為三個(gè)部分:
1)kernel層:kernel層完成的主要工作是數(shù)據(jù)采集模塊的上電初始化、開(kāi)關(guān)等驅(qū)動(dòng),初始數(shù)據(jù)的采集和轉(zhuǎn)發(fā);
圖1 是智能終端的軟件架構(gòu)圖
2)硬件抽象層(HAL):完成對(duì)硬件的抽象,使上層可以無(wú)障礙的訪問(wèn)底層硬件,在本文中主要用來(lái)轉(zhuǎn)換和轉(zhuǎn)發(fā)數(shù)據(jù);
3)JAVA層:接收硬件抽象層的數(shù)據(jù),并通過(guò)HTTP等協(xié)議和服務(wù)器交互數(shù)據(jù):
4)服務(wù)器側(cè)軟件,通過(guò)互聯(lián)網(wǎng)協(xié)議和智能終端通信,并維護(hù)數(shù)據(jù)庫(kù)。
2.關(guān)鍵部件說(shuō)明
整個(gè)系統(tǒng)涉及到從底層的數(shù)據(jù)采集、解析、接收,以及上層獲取底層的數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行保存和分析,所以對(duì)系統(tǒng)的關(guān)鍵部件進(jìn)行說(shuō)明:
1)PXA910:Marvell PXA910芯片組是2009年由Maryell公司研發(fā)推出的,是一款面向WCDMA智能手機(jī)的芯片組,主頻600Mhz,支持WCDMA,WIFI,BT。
2)Symbol SE4500:提供了顛覆成像技術(shù)定義的全面功能組合。這款產(chǎn)品針對(duì)一維和二維條碼的絕佳性能與采集靜止圖像和視頻的能力相結(jié)合,能夠進(jìn)行準(zhǔn)確快捷的一維和二維碼掃描。
3.數(shù)據(jù)處理流程
本節(jié)對(duì)智能采集終端的數(shù)據(jù)采集流程做詳細(xì)的說(shuō)明。
1)在底層kemel驅(qū)動(dòng)獲取到用戶的掃描鍵按下后,會(huì)啟動(dòng)SE4500掃描模組進(jìn)行掃描,采集到8位灰度格式的數(shù)據(jù)。
2)采集到的8bit GREY數(shù)據(jù),通過(guò)PXA9lO的8bit數(shù)據(jù)口進(jìn)入到PXA910中。
3)數(shù)據(jù)傳到PXA910的KERNEL層后。數(shù)據(jù)會(huì)保存在一塊連續(xù)的內(nèi)存地址中,這連續(xù)的一幀數(shù)據(jù)大小是752*480。
4)硬件抽象層(HAL)的previewThread線程會(huì)連續(xù)的去步驟3)所述的內(nèi)存地址取數(shù)據(jù),這個(gè)內(nèi)存地址會(huì)在上層做映射,以便于上層直接從這個(gè)地址讀取數(shù)據(jù)。
5)硬件抽象層取得數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,把8bit GREY數(shù)據(jù)轉(zhuǎn)換成YUV422Package類型的數(shù)據(jù),以便于上層進(jìn)行preview和顯示。
6)JAVA層獲取到硬件抽象層的數(shù)據(jù)以后,會(huì)把數(shù)據(jù)送到解碼庫(kù),庫(kù)的名字叫l(wèi)ibBarcodeReader.so在解碼庫(kù)中,軟件會(huì)對(duì)采集的8BIT圖像數(shù)據(jù)做模式識(shí)別處理,在模式識(shí)別的過(guò)程中,對(duì)有效的條碼進(jìn)行解析,從圖形數(shù)據(jù)得到條碼數(shù)據(jù),條碼數(shù)據(jù)包括一維條碼和二維條碼。解析到有效的條碼數(shù)據(jù)后,libBarcodeReader.so會(huì)把條碼數(shù)據(jù)通過(guò)回調(diào)函數(shù)的方式發(fā)送到上層應(yīng)用。
7)上層JAVA得到有效的條碼數(shù)據(jù)以后,把條碼發(fā)往顯示控件textview;蛘甙l(fā)往專業(yè)的APP應(yīng)用。具體顯示在哪里,主要由各自的應(yīng)用控制,需要顯示或者進(jìn)一步處理的模塊會(huì)接收這個(gè)消息來(lái)進(jìn)行顯示或處理。
手機(jī)側(cè)連接PC服務(wù)器數(shù)據(jù)庫(kù),因?yàn)閍ndroid端使用的是sqlite數(shù)據(jù)庫(kù),PC側(cè)使用的是sq/server數(shù)據(jù)庫(kù),兩者不能直接通訊,需要一個(gè)中間的webservice來(lái)傳遞數(shù)據(jù),android用http協(xié)議訪問(wèn)webservice,然后讓webservice通過(guò)JDBC訪問(wèn)sqlserver。
8)手機(jī)和PC服務(wù)器通過(guò)WIFI交換數(shù)據(jù)
手機(jī)側(cè)主要有兩個(gè)類,UiTest類完成UI界面的操作,HttpProtocol完成與服務(wù)器端的數(shù)據(jù)交互。重點(diǎn)的HttpProtocol類函數(shù)及說(shuō)明如下:
public static String uplOAdFile (String UploadString,StringRequestURL)
用POST方法完成上傳數(shù)據(jù)和取得返回?cái)?shù)據(jù)。RequestURL為webservice的網(wǎng)址,UploadString數(shù)據(jù)為手機(jī)側(cè)向webservice發(fā)送的數(shù)據(jù)流,主要是將要發(fā)的數(shù)據(jù)連接成一個(gè)長(zhǎng)字符串,每個(gè)數(shù)據(jù)之間用兩個(gè)空格隔開(kāi)(因?yàn)榭崭癫辉跅l碼的字符當(dāng)中,用其他割怕有問(wèn)題),用DataOutputStream類中的dos.writeUTF(UploadString);方法發(fā)送數(shù)據(jù),函數(shù)返回的字符串為網(wǎng)絡(luò)側(cè)的返回值,用DataInputStream類中的result=dis.readUTF():方法讀取。
9)服務(wù)器端代碼結(jié)構(gòu)
讀取手機(jī)側(cè)傳來(lái)的數(shù)據(jù)。首先判斷數(shù)據(jù)庫(kù)里是否有此條碼記錄。如果有,返回已有數(shù)據(jù),如果沒(méi)有,則往數(shù)據(jù)庫(kù)里增加一個(gè)條目,并且將上傳結(jié)果返回到手機(jī)側(cè)。
4.結(jié)語(yǔ)
智能數(shù)據(jù)采集終端以其便攜、快捷和強(qiáng)大的數(shù)據(jù)處理能力,很好的適應(yīng)了物流產(chǎn)業(yè)的發(fā)展,有效提高了物流倉(cāng)儲(chǔ)行業(yè)的運(yùn)行效率并降低了物流成本,在未來(lái)的一段時(shí)間內(nèi),智能數(shù)據(jù)終端必定能在物流領(lǐng)域發(fā)揮更大作用。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:智能數(shù)據(jù)采集終端的數(shù)據(jù)處理與分析軟件實(shí)現(xiàn)
本文網(wǎng)址:http://www.oesoe.com/html/support/11121512208.html