目前市場上的條碼數據采集終端(簡稱“手持條碼掃描儀”)大致分為兩種:
第一種,是基于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.vmgcyvh.cn/
本文標題:智能數據采集終端的數據處理與分析軟件實現