當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于Linux的嵌入式POS的GUI及數(shù)據(jù)庫研究

POS(PointofSale)是目前各商場、飯店、加油站等廣泛提供的刷卡消費業(yè)務(wù)的輔助工具,位于商場、加油站等地的POS機將獲得的用戶*的數(shù)據(jù)(卡號、業(yè)務(wù)資料等)通過通信線路傳給*服務(wù)處理系統(tǒng)上,經(jīng)過處理的信息返回到POS機,從而完成用戶的刷卡消費業(yè)務(wù)。為了實現(xiàn)上述數(shù)據(jù)交換過程,在POS機與銀行主機之間必須進行數(shù)據(jù)通信。

目前使用最廣泛的POS機接入方式是有線接入方式,而有線接入方式主要有兩種:一是基于電話網(wǎng)的點到點撥號接入方式和基于DDN的專線接入方式。無線POS機是目前POS機行業(yè)的一項新技術(shù),移動性強,平均交易時間短,并能隨身攜帶。目前在全國各大商場和超市內(nèi)隨處可見POS刷卡機,但它們大多都是通過電話線聯(lián)網(wǎng)進行通信,移動性差,不靈活,限制了業(yè)務(wù)發(fā)展。無線POS機成功的解決了這一難題,它通過一個POS和無線調(diào)制解調(diào)器的一體機在GPRS/CDMA網(wǎng)上聯(lián)網(wǎng)傳輸信息。

1 Linux下的圖形用戶開發(fā)工具Q t

Qt是Trolltech(挪威)公司的產(chǎn)品。Qt是一個多平臺的C++圖形用戶界面應(yīng)用程序框架,它能給用戶提供精美的圖形用戶界面所需要的所有元素,而

且它是基于一種面向?qū)ο蟮乃枷?所以用戶對其對象的擴展是相當(dāng)容易的,并且它還支持真正的組件編程。

在一臺裝有Linux操作系統(tǒng)的機器上建立Qt/Embeded開發(fā)環(huán)境:首先需要擁有三個軟件安裝包: tmake工具安裝包,Qt/Embeded安裝包,Qt的X11版安裝包。

Qt包含了許多支持嵌入式系統(tǒng)開發(fā)的工具,其中兩個最實用的工具是qmake和Qtdesigner(圖形設(shè)計器)。Qt中有三個主要的基類:QObject、QapplicaTION和QW idget。

在Qt中編程,利用Signal和Slot進行對象之間的通信是Qt的主要特征。它與W indows中的消息機制非常類似,但是Signal和Slot機制真正實現(xiàn)了一種消息的封裝。當(dāng)對象的狀態(tài)改變時,發(fā)出Signa,l通知所有的Slot接受Signa,l盡管它不知道哪些函數(shù)是Slot。一個Signal可以發(fā)給多個Slo,t Slot也可以接收多個Signal。Slot除了可以接收Signal以外,與其他的成員函數(shù)沒有區(qū)別。這種機制比使用回調(diào)函數(shù)要靈活,但是會減慢程序的運行速度。不過在現(xiàn)在高速CPU的面前,這種損失是無足輕重的,而且它還能保證程序的簡明性和靈活性,非常便利。

QT支持包括Unix、Linux、W indows在內(nèi)的多種操作系統(tǒng)平臺。Linux下常用的KDE桌面環(huán)境就是基于QT編寫的。QT使用了Unicode作為內(nèi)部編碼,可以同時支持多種編碼。目前的版本對國際化標(biāo)準(zhǔn)支持非常完備,這就為本地化提供了可能[4]。

2 小型嵌入式數(shù)據(jù)庫M ySQL /SQLite

SQLite作為一個嵌入式的數(shù)據(jù)庫,主要的是程序小(200多K),速度快,支持ANSISQL-92的大部分標(biāo)準(zhǔn)功能。SQLite使用文件作為數(shù)據(jù)庫,查詢出的所有記錄都放在內(nèi)存中,它的sql句法比較簡單易用,支持的類型也比較全。字符串和blob類型可以支持4GB的長度。它還支持事務(wù)處理。在單用戶情況下,它的速度是最快的。多用戶下,速度不及別的數(shù)據(jù)庫。

特點:①支持符合acid(原子性,一致性,隔離性,持久性)特性的事務(wù)處理;②0配置,不需要任何安裝和管理;③符合SQL92的絕大多數(shù)標(biāo)準(zhǔn);④完整的數(shù)據(jù)庫只存儲在單個磁盤文件當(dāng)中;⑤數(shù)據(jù)庫文件可以被不同的機器共享,并與字節(jié)序無關(guān);⑥string和BLOB的大小只受到可用內(nèi)存的限制;⑦總共不到30000行代碼。代碼空間不到250K;⑧比現(xiàn)在的C/S結(jié)構(gòu)的大部分?jǐn)?shù)據(jù)庫要快;⑨不依賴于任何其他的庫;⑩支持?jǐn)?shù)據(jù)庫大小可以達到2的41次方,即2個TB。

SQLite的弱點:①沒有專有的安全措施,數(shù)據(jù)庫是一個文件;②沒有內(nèi)嵌的壓縮、解壓機制,數(shù)據(jù)庫文件看上去太大。

MySQL是SQL數(shù)據(jù)庫管理系統(tǒng),MySQL是開源的,開源意味著任何人都可以使用和修改該軟件,任何人都可以從Internet上下載和使用MySQL而不需要支付任何費用。MySQL服務(wù)器工作在客戶/服務(wù)器或嵌入系統(tǒng)中,MySQL數(shù)據(jù)庫服務(wù)器是一個客戶/服務(wù)器系統(tǒng),它由多線程SQL服務(wù)器組成,支持不同的后端、多個不同的客戶程序和庫、管理工具和廣泛的應(yīng)用程序接口(APIs)。

3 POS系統(tǒng)的硬件配置

POS系統(tǒng)硬件配置,見圖1所示。

 

 

4 本POS系統(tǒng)介紹

由于我們使用的是Red hat9自帶的Qtdesigner,由于是處于研究階段,而且是免費的,所以暫時采用此軟件.此軟件沒有集成開發(fā)環(huán)境(IDE),我們采用Qt的Qt designer畫出基本的功能,然后由KDevelop修改添加源代碼,通過Qt自帶的uic(user inteRFace compiler)工具將. ui編譯成. cpp和. h文件,最后通過修改makefile,達到我們編譯此界面的目的。

(1)需要配置unixODBC,把unixODBC放到/usr/local下,解壓縮,然后運行. /configure,其中需要一些環(huán)境變量參數(shù)的設(shè)置,系統(tǒng)生成一些makefile文件,運行make將unixODBC編譯,然后make install安裝unix-ODBC,即unixODBC安裝好了。

(2)配置ODBC,選擇數(shù)據(jù)庫及其驅(qū)動。

(3)將Qt連接上數(shù)據(jù)庫,完成連接。

5 開發(fā)流程

系統(tǒng)開發(fā)流程見圖2所示。

 

 

6 具體介紹

本系統(tǒng)針對商場或?qū)Yu店而設(shè)計,系統(tǒng)的核心功能模塊是主控模塊,主要是系統(tǒng)初始化,與通信模塊,數(shù)據(jù)庫,條碼掃描,鍵盤,RFID接口,顯示器及打印機等模塊的連接。另外系統(tǒng)預(yù)留,與銀聯(lián)卡及會員卡端口,以備系統(tǒng)擴展之用。

系統(tǒng)采用消息隊列機制,

系統(tǒng)始終維持兩個數(shù)據(jù)庫的運行,主服務(wù)器的中央數(shù)據(jù)庫和本地單機的小型數(shù)據(jù)庫。

(1)通信模塊:上傳:主控模塊的響應(yīng)信息,出錯信息,日志信息,交易信息,數(shù)據(jù)庫響應(yīng),刪除日志響應(yīng)。下發(fā):控制信息,查詢?nèi)罩?刪除日志,查詢,修改,刪除數(shù)據(jù)庫信息。

 

 

其中的主要消息有:①上傳交易信息成功,上傳交易信息失敗;②本地數(shù)據(jù)庫中無該商品;③鍵盤消息的處理,主要是按鍵處理;④寫日志成功,寫日志失敗;⑤來自服務(wù)器的控制消息:刪除日志,查詢當(dāng)前機器的工作狀態(tài),日志打包發(fā)送至服務(wù)器,本地pos機重啟,關(guān)機等;⑥接受條碼信息;⑦如果本地數(shù)據(jù)庫無該商品,向服務(wù)器數(shù)據(jù)庫發(fā)送查詢信息。

(2)數(shù)據(jù)庫SQLite說明:①SQLite編譯、安裝;②SQLiteODBC編譯、安裝。這個要配置SQLite源代碼的目錄。如果出現(xiàn)找不到SQLite的情況,在Makefile文件中加上路徑;③建立SQLite中的一個數(shù)據(jù)庫。SQLite文件夾下有個demo文件,或者參照Readme直接使用SQL語言生成;④系統(tǒng)ODBC配置。在Linux中將剛剛做好的數(shù)據(jù)庫配置為系統(tǒng)數(shù)據(jù)源,即讓QT能找到;⑤QT中使用數(shù)據(jù)顯示組件,選擇上述的數(shù)據(jù)源,然后組件就可以自動顯示數(shù)據(jù)庫中的數(shù)據(jù)了。Server端采用MSQL/SQLite+Linux; Client端采用MSQL/SQLite+uCLinux;顯示通過串口實現(xiàn)。

(3)數(shù)據(jù)庫設(shè)計:

Server:

①product

PNo  Name  DescripTIon  InstockPrice

TotalNumLeftNum

②sale

ONo Total Date

③order

ONo PNo Saleprice Number

Client:①product

PNo NAME Saleprice

②sale

ONo Total Date

③order

ONo PNo Saleprice Number

使用jdbc測定了sqlite3插入數(shù)據(jù)的效率,使用整體事務(wù)與不使用整體事務(wù),差別明顯。cpu: 1G,內(nèi)存:

512MB使用整體事務(wù): 1000000條記錄,需要93s。使用逐個插入提交事務(wù): 1 min只能處理20條記錄。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉