国产精品自在在线香蕉-国产精品自在线拍国产-国产精品自在线拍-国产精品自在线-国产精品自在欧美一区-国产精品自线在线播放

行業動態

當前位置:首頁>>新聞中心>>行業動態 發布時間:2017-06-22 06:56:52

基于Android平臺的收銀秤系統的設計與實現

時間:2017-06-22 06:56:52 來源:本站 點擊數:608

針對傳統收銀秤系統功能簡單、操作復雜的問題,研究了在Android開發平臺下收銀秤系統的設計與 實現。該系統利用Android集成的小型嵌入式數據庫SQLite的開發接口、基于Java語言開發完成,實現了收銀 秤系統的稱重、計價和收銀等功能,內置了相應的商品資料庫,也允許用戶導入需要的商品,導出相應的統計數 ,并且已經在設備模擬器上測試通過。

0.引言

目前,集稱重、打印與收銀機管理功能于一體的收銀秤已廣泛應用于商業流通領域、百貨超市、 便利店、酒店、餐飲、快餐連鎖等多個領域。

這些品牌的收銀秤大都以單片機作為主控CPU, 沒有使用操作系統或者使用UCOS系統,功能較 為簡單,響應速度慢,操作比較復雜,不適合計算 機水平程度較低的操作人員使用。

而使用Wintel系統收銀秤單價太高,是其難 以取代單片機或ARM的重要原因。一臺采用 Intel核心與Microsoft平臺的收銀秤的到港報價 3000?5000元人民幣,終端市場的報價6000? 20000元人民幣,對于規模較小的生鮮及食品專 賣店而言是一筆不小的資本負擔。

200711月,Google推出基于Linux的操作 系統Android。Android開放了源代碼,這給全世 界的應用程序開發人員提供了開放的開發平臺, 出現了基于Android平臺的各種各樣的應用程序, 應用領域廣泛、內容豐富,也使得Android很快就 統治了手機、平板電腦等領域。

1.收銀秤系統的硬件設計與實現

根據收銀秤的功能需求,系統采用三星公司 高性價比的、基于ARM Cortex-A8內核的 S5PV210處理器設計的硬件平臺。S5PV210處理 器采用了 32/64位的內部總線結構和最大833 MHz的運算速度。包括強大的硬件加速器,支持多 種格式的硬件編解碼等。S5PV210開發平臺具有 豐富的硬件資源,包含如下:512MB NAND Flash, 512MB DDR2 內存,HDMI 顯示接口, USB Host2.0,USB OTG2.0 接口,1  SDIO   (Micro SD卡接口),支持1RS232串口接口 (調試串口)等。整個收銀秤系統硬件總體設計 框圖如圖1。利用該片內的512 MBFlash 512MBRAM分別實現控制程序和上萬個商品 PLU信息的存儲,外接I/O器件實現USB以太網 無線網絡的通訊以及支持7.0177.80mm) 10.1256.54mm)規格的LCD液晶顯示。利用 RS232串口外接電子秤器件和常見的LP-50打印 機和內置連續熱敏紙打印機接口,內置熱敏標簽 打印機接口,利用PS2接口連接掃描槍等。

體重1.jpg

2.系統功能和總體架構

按照收銀秤系統的功能需求及軟件的特點, 本收銀秤系統劃分為5個功能模塊,每個模塊有 多個子模塊,詳細說明如下。

收銀模塊:包含稱重、去皮、清零、付款、折 扣、掛單、取單等功能,可接錢箱,進行現金的收支 和管理,可外接掃描槍掃描稱重或者非稱重商品, 進行收銀,可自動計算單品折扣或者總價的比例 折扣。

基礎數據模塊:包含部門的管理、商品分 組管理、商品類別的管理、商品PLU的管理、商品 批量添加和更新管理、商品折扣的管理、會員管理 和商品庫存管理等。

系統設置模塊:1)網絡設置;)用戶權限 的控制:收銀員的角色管理,包含銷售員、店鋪經 理等;收銀員的管理;設置收銀員的業務操作權限, 包括退貨、退款、掛單、取單、取消商品訂單和刪除 商品訂單等;設置商店名稱、地址和聯系電話等。

打印設置模塊:打印機的配置;打印格式 的配置,如打印頭信息、打印尾信息、打印日期時 間格式和打印字體信息的配置等。

報表設置模塊:可以查看各種銷售報表, 如實時查看單個商品日銷售報表、當日銷售報表、 當曰銷售明細報表和店員銷售統計報表等。能對 銷售的各類商品進行銷存管理,查看打印商品庫 存報表,統計庫存量,根據單據來盤點庫存,扣除 合理的損耗。

如上所述,該收銀秤系統基本上實現了市場 上收銀秤的所有功能,甚至包含了簡單的進銷存 和會員管理功能,能夠滿足大多數客戶的需求。

3.系統的關鍵功能具體實現

3.1商品管理的實現

商品管理包含商品名、商品編碼和商品價格 等基本信息的保存修改操作,它是收銀秤系統的 基礎。對于小型連鎖生鮮食品店、休閑食品專賣 店,中小型的商場、超市或商品數量較多的賣場, 商品管理是一個很繁重的任務。用戶需要將所有 商品進行編碼并逐個錄入到收銀秤系統中,以備 銷售。一個良好的商品管理模塊應能夠提供用戶 錄入商品,優化銷售報表,方便計算銷售利潤等。

3.1.1商品表的設計

商品表是整個收銀秤系統設計的核心與基 礎。通過梳理實際銷售業務流程,可分析各個功能 模塊所需要存儲的數據,整理相互之間的關聯, 而設計對應的商品表。根據收銀秤系統的需求,設 計了商品管理的數據表如表1。

3.1.2表現層設計

商品管理列表界面采用LinearLayout布局, 并使用了自定義翻頁列表組件ListViewPage, 組件繼承自ListViewListViewAndroid界面設計中比較常用的組件它以列表的形式展示數據 庫表中的具體內容,并且能夠根據數據的長度和 屏幕的大小自適應顯示。ListView本身沒有顯示 上一頁和下一頁的按鈕,可通過手滑動方式動態 地加載數據,當向下滾動時,最下邊顯示Loading …,數據加載結束后,所顯示的Loading底欄消 失。本項目因為經常會用到顯示上一頁和下一頁 按鈕的分頁列表,所以自定義了 ListViewPage ,可以在多個模塊的列表中使用。ListViewPage 實現了 onPrevPageonNextPage函數,對應兩個 按鈕上一頁下一頁的方法。設置兩個變 iPageSize10、iPageid默認為1,代表每頁只 顯示10條記錄,默認從第一頁開始。

體重2.jpg

商品信息界面采用LinearLayout布局,里面 包含ScrollView支持垂直滾動。使用Tablelayout 類以表格的形式對控件進行管理,有多個行和列, 每一行為個TableRow對象,在TableRow下根 據需要添加子控件標簽或輸入框或單選框或下拉 框做為列,默認情況下,每個子控件占據一列。

3.1.3業務邏輯層設計

針對收銀秤系統的硬件內存等資源有限問 題,通過SQLite嵌入式數據庫引擎來實現結構 化數據存儲,封裝了 SQLite提供的API,編寫了 DBHelper工具類,進行數據庫增刪改查和事務處 理的基本操作。在商品添加或者編輯的界面中,使 用產品類別的下拉框。下拉框中的內容通過 DBHelper獲取時間放在字符串數組中,將字符串 數組與ArrayAdapter連接起來,然后通過 setDropDownViewResource可以設置下拉列表的 風格,最后通過setAdapterAdapter添加到 Spinner,而使用 setOnltemSelectedListener Spinner添加事件監聽函數。為自動計算商品在收 銀銷售主界面的顯示位置,定義getShowPosit() 數,函數循環從數據庫中的同類商品中查找該類 別商品的頁面數及最小的空位置數。

3.1.4商品的批量增加和更新

針對收銀秤系統的商品品種較多問題,系統 設計了商品的批量增加和更新的功能,利用常用 .txt或者.csv文件保存商品的基本信息,含商品 的PLU碼、類別、名稱、價格及計量單位;同時將 商品的圖片命名為相應的PLU編碼的圖片,如商 APLU編碼為2201134則其圖片名稱為 2201134.jpg ;把商品信息和相應的圖片存放在同 個目錄下,通過網絡或U盤將文件夾拷貝到系統 data目錄中,就可以實現自動導入和更新數據。

3.2收銀功能的實現

收銀功能包含以下子模塊自動去皮、稱重、修 改商品售價、修改商品數量、掛單、取單、會員折扣、 計價、付款、打印、查看日報表和店員銷售報表等, 并支持收銀員登錄和暫時離開時對系統的鎖定。

3.2.1表現層設計

收銀秤的收銀界面比較復雜,筆者采用分層 結構,并使用動態生成的方法。最頂層使用 RelativeLayout 布局,設置 Theme.NoTitleBar. Fullscreen風格。讓整個應用窗口是不含標題欄并 且全屏的。內部的商品顯示界面使用Tab控件,以 實現在同個界面中分別顯示不同類別的商品。每 個Tab控件顯示一種類別的商品,使用Tab控件 顯示時首先使用TabActivtiy里的getTabHsot() 法獲取TabHost對象,接著調用tabHost.addTab (TabSpec)方法添加商品類別頁[6]。TabSpec則是通  TabHost.newTabSpec (Stringtag)類方法來創建的實例,實例化后通過setIndicator方法可對其屬 性進行設置,設置屬性標簽頁的label (顯示的名 字)的值為商品類別的值。另外通過setContent 法是指定的是Tab的內容。內容是使用 FrameLayout來設置商品顯示的位置和圖片。 FrameLayout 是通過 FragmentManager 來對 Activity 運行時Fragment的添加、刪除、替換進行操作,而 不是在XML布局文件中進行定義。

通過FrameLayout動態顯示商品的位置和圖 片的步驟如下:

通過 Activity  getFragmentManager() 獲得 FragmentManager 對象;

  FragmentManager beginFragmentTransaction ()方法獲得 FragmentTransaction 對象;

通過 FsragmentTransaction  add()方法來 添加一個Fragment到當前的Activity中;

通過 FragmentTransaction  commit() 法來提交保存一個Fragment到當前Activity中。

3.2.2業務邏輯層設計

收銀功能是核心功能。包含許多子模塊:稱 重、計價、修改價格、會員折扣、掛單、取單和收款 等。稱重功能是通過創建電子秤監聽服務類 ScaleService 來實現,ScaleService 繼承自 Service 類。在AndroidService服務類類似于Linux 的后臺進程,是用來進行后臺數據處理的進程,該 進程能夠對用戶的行動進行跟蹤,收銀秤系統要 不斷采集電子秤發送過來的稱重信息,就需要編 寫 ScaleServicec 自定義的ScaleService繼承自系 統的Service類,然后重載其中的OnCreate ()、 OnStart ()、OnDestroy ()三個方法,并需要在 AndroidManifest.xml 中注冊。

Activity 通過 Intent 啟動 ScaleService,如果 ScaleService還沒有運行,則Android先調用 onCreate ()方法然后調用OnStart ()方法;如果 ScaleService 已經運行,則只調用OnStart(),所以 一個ScaleServiceOnStart()方法可能會重復調 用多次。收銀秤系統關閉后則調用stopService() 法就會觸發ScaleServiceOnDestroy()方法。

在自定義的 ScaleService 中不能直接訪問數 據庫,只能通過ContentResolver訪問[8],實現步驟

如下:

創建 myContentProvider 繼承自ContentProvider 類;

AndroidManifest.xml中添加對應權限 并且注冊;

通過 Activity  getContentResolver()返回 ContentResolver實例對應的query函數獲得返 回為Cursor對象的數據集利用Cursor對象操作 數據庫;

ContentResolver實例提供的類似數據庫的 增刪改查的基本操作,分別對應insert()、delete()update() query()函數。

4.仿真結果和測試

4.1仿真結果

 ADT (Android Developer Tools)開發環境 ,使用Java語言,設計和實現了基于Android 臺的收銀秤系統,并在開發板上測試了各項功能, 均按要求輸出了預期的結果,采用的開發板平臺 Android4.1。2所示為程序在模擬器上運行 時的功能主界面,當用戶登錄后,可以選擇進去某 個模塊。圖3為收銀秤的收銀操作界面,具有計 價、稱重等功能。

體重3.jpg

4.2易用性測試

易用性測試的目的在于讓用戶容易接受使用 軟件。因為易用性是非功能性需求,有很多的主觀 成分無法量化。筆者使用B/T 16260.2-2006/ ISO/IEC 9126-2:2001軟件工程產品質量(第2 )外部度量”9]中的兩個指標:功能學習的難易 性(用戶要用多長時間學習使用一項功能)及操 作規程的減少(用戶能否減少操作規程)。測試對 象選擇CS2(LH51)收銀秤和RM-60 收銀秤在功能學習的難易性和的操作規程的減少 兩個指標上進行比較。選擇的功能集中在常用的 功能,含單個商品銷售、多個商品銷售、掛單、取 單、會員打折、修改價格、單品作廢、交易作廢和退 貨操作。收銀員的培訓時間測試情況如下:CS2 (LH51), 16h ,RM-60,16h ;Android CRS,2h培訓 時間從原來的16h大幅縮短為2h主要是由于智 能手機的廣泛使用,收銀員對于Android系統的使 用有著親切感,對于收銀秤系統更容易上手操作。

根據《CS2(LH51)收銀秤銷售操作 使用說明手冊》和《 RM-60操作培訓手冊》,估算出收銀秤的在8 常用的功能上的操作按鍵次數如表2

體重4.jpg

從表2可以看出對于常用的功能操作,按鍵 次數減少,可以大幅減少操作員的工作強度,提高 工作效率。由于界面更直觀,還能減少錯誤。

4.3響應時間測試

由于收銀秤的工作特性,在商品數量達到1 萬個時,需要收銀秤的響應時間不超過1s。筆者對 收銀秤系統的最常用的3個操作:定位商品、計 價、計重進行響應時間測試。每個操作分別在100、 100010000個商品的情況下進行30次的操 ,分別取其平均響應時間,結果見表3。

體重5.jpg

從測試結果可以獲知,由于稱重過程需要與 外部串口通信所以響應時間相對定位商品和計價較多,但是總體上滿足收銀秤操作響應時間不 超過1s的要求。

5.結束語

傳統的收銀秤系統一般采用單片機作為主控 核心,沒有采用操作系統,內存容量少,操作不方 便。筆者根據收銀秤的應用需求,采用基于ARM Cortex-A8為內核的S5PV210開發板,設計了基于 Android的收銀秤硬件系統,并實現了大屏幕、可 視化、易操作的收銀秤軟件系統,并已開發出樣 機。經過整體測試證明了提供的設計方法的可用 性和可靠性。此外,由于需求的不斷豐富和更新, 有些功能仍需完善,如銀聯卡刷卡消費和會員積 分卡管理等。此外,考慮提高系統的可擴展性以滿 足不同的應用場景,整個收銀界面的操作按鍵應 該是可配置的。

 

 


主站蜘蛛池模板: 日韩中文字幕制服丝袜黑色丝袜 | 精品久久久久久无码中文字幕_久久... | 色婷婷五月中文字幕泽村玲子| jiZZjiZZ中国高潮喷水jizjiz| 久久精品国产99久久香蕉 6.0 介绍| 午夜福利片观看猫咪| 亚洲熟妇vs亚洲熟妇AV| 亚洲综合一区无码精品不卡顿| 中文字幕资源在线第九页| 97碰碰碰人妻无码视颅内频 | 亚欧成人中文字幕一区欧洲一区在线观看_精 | 三叶草m码和欧洲码区别| 国产香蕉在线观看视频在线观看视频| 久久96精品国产app| 国产在线91精品| 国产成人精品一区二区三区免费无码高清不卡 | 亚洲国产一区二区三区在线观看第一集| 亚洲伊人久久综合一区二区... | 国产麻豆videoporono | 竹菊视频在线观看高清免费播放| 特级西西444www无码视频免费看| 色综合久久综合中文综合网,国产AⅤ | 综合无码一区二区三区色欲| 中文无码A V电| 亚洲中文字幕人成乱码福利院| 美腿丝袜一区二区三区诱惑| 久久久天堂国产精品女人| 精品人妻久久久久久88精| 一本一道AⅤ波多野极衣| 久久精品一区二区三区日韩精品性色 | 大码女胖mm加肥加大| 中文字幕无码不卡一区二区三区,亚洲大道无码高清乱码 | 国产成人18黄网站在线观看软件_第1集 | 久久久久国产一级毛片高清版版新婚91 | 国产69精品久久久久99尤物视频| www40hutv一区二区三区| 人妻中文字幕久久中文 | 日本zljzljzlj日本少妇| 中文字幕日韩一区二区不卡久青草人妻欧美| 熟女丝袜脚交综合| 中文字幕无码不卡在线合集|