摘 要:在凌動(dòng)嵌入式系統(tǒng)UP-ATOM510平臺(tái)上,結(jié)合LS1902系列手持激光條碼掃描器,實(shí)現(xiàn)了QT集成開發(fā)環(huán)境下條碼掃描器的應(yīng)用。
關(guān)鍵詞:凌動(dòng)嵌入式系統(tǒng);QT編程;LS1902條碼掃描器
引言
條形碼技術(shù)具有輸入速度快、采集信息量大、制作使用成本低廉等優(yōu)點(diǎn),并被認(rèn)為是目前最經(jīng)濟(jì)實(shí)用的自動(dòng)識(shí)別技術(shù)之一[1]。它廣泛應(yīng)用在工商業(yè)、倉(cāng)儲(chǔ)物流、交通運(yùn)輸、醫(yī)療衛(wèi)生等領(lǐng)域。文章在UP-ATOM510嵌入式平臺(tái)上實(shí)現(xiàn)了LS1902系列手持激光條碼掃描器的應(yīng)用,并利用QT實(shí)現(xiàn)了界面設(shè)計(jì)。
1 系統(tǒng)開發(fā)環(huán)境
1.1 QT軟件開發(fā)環(huán)境
QT是一種跨平臺(tái)圖形用戶界面開發(fā)庫(kù),和同類型的其他產(chǎn)品相比,它具有優(yōu)良的跨平臺(tái)特性、高度的模塊化、支持2D/3D圖形渲染,并且允許真正地組件編程等優(yōu)良特性。因此,可以說QT提供給應(yīng)用程序開發(fā)者建立藝術(shù)級(jí)的圖形用戶界面所需的所有功能。
1.2 UP-ATOM510硬件平臺(tái)
UP-Atom510采用凌動(dòng)Z系列處理器搭配Intel us15w單芯片系統(tǒng)控制器,功耗遠(yuǎn)遠(yuǎn)低于傳統(tǒng)的x86雙橋片架構(gòu),而且保持X86的兼容性,其操作系統(tǒng)采用以桌面應(yīng)用為主的Ubuntu操作系統(tǒng)[2]。
1.3 LS1902條碼掃描器
LS1902系列手持激光條碼掃描器是Symbol公司制造的新一代的商用激光條碼掃描器。它掃描線清晰可見,掃描速度達(dá)到每秒44次,并且價(jià)格適中。同時(shí),具有RS232,USB 等多種接口,有利于主機(jī)擴(kuò)展設(shè)備。
2 QT圖形界面設(shè)計(jì)及初始化
本設(shè)計(jì)涉及到存儲(chǔ)的項(xiàng)目有條碼號(hào)、商品名稱、單價(jià)、數(shù)量這四項(xiàng),所以要預(yù)設(shè)settings.txt存儲(chǔ)格式。然后,建立QT工程文件Widget并進(jìn)行UI界面設(shè)計(jì),設(shè)計(jì)界面如1所示。
圖1 條碼掃描系統(tǒng)QT界面
程序在使用過程中讀取到條碼號(hào)之后,需要將條碼號(hào)及相關(guān)信息保存,這需要建立一個(gè)配置文件來進(jìn)行保存。QT提供的bool QFile::open(Open Mode mode)[virtual]的函數(shù)可以完成此功能。
3 掃描器串口通訊
首先需要建立串口讀取函數(shù),條碼掃描器通過串口發(fā)送的信號(hào)為標(biāo)準(zhǔn)13位或其他非標(biāo)準(zhǔn)位商品編碼,通過串口程序,將條碼掃描器掃描結(jié)果進(jìn)行處理。即做好接收條碼掃描器發(fā)送的字符串,并將之與我們需要的功能結(jié)合起來,編寫產(chǎn)品程序。由于這里我們做的是QT圖形界面程序,在保證實(shí)時(shí)讀取串口信息的前提下,還要做到不影響程序的其他操作,比如:保存商品信息、刪除商品記錄等操作。這樣就必須在主線程基礎(chǔ)上另建立一個(gè)線程來運(yùn)行不停地讀串口操作,實(shí)現(xiàn)對(duì)多線程的調(diào)用功能[3]。
由于QT中提供了使用start()函數(shù)來調(diào)用run()函數(shù)的方法,所以只要在run()函數(shù)中添加我們讀串口的代碼就可以實(shí)現(xiàn)串口調(diào)用,并利用stopped變量來控制線程的起止。
4 QT文件讀寫及其處理函數(shù)
收到從串口發(fā)送過來的條形碼,需要根據(jù)條碼號(hào)來讀取商品,即從文件中讀取相關(guān)信息并將之輸出到界面上。由于條形碼信息不光涉及到讀寫,更重要的內(nèi)容是修改它。此處,文件的修改主要應(yīng)用于刪除一條記錄,即每刪除一個(gè)商品對(duì)應(yīng)的條碼號(hào)、名稱、單價(jià)、數(shù)量這四組值,都要進(jìn)行一次文件修改。這里我們需要注意的是:如果當(dāng)前文件包含目標(biāo)文件,則將文件中其他內(nèi)容復(fù)制到臨時(shí)文件中(即跳過該文件),然后再將舊的刪除,重命名新文件,既可得到更新后的配置文件。具體修改流程圖如2所示。
需要注意的是,文件在打開狀態(tài)下,每次讀取文件都會(huì)自動(dòng)將指針移動(dòng)到下一行,故而才有了第二次判斷是否是目標(biāo)文件,如果是則繼續(xù)讀取文件的操作。即跳過該行,繼續(xù)向下讀取。
5 結(jié)束語(yǔ)
在UP-Atom510平臺(tái)上,通過QT實(shí)現(xiàn)了將條碼掃描器程序以圖形界面形式展現(xiàn)出來。該設(shè)計(jì)通過串口編程實(shí)現(xiàn)不停地讀取條碼掃描器傳遞過來的字符串,并且通過QT提供的函數(shù)實(shí)現(xiàn)記錄文件的保存、修改等操作,易于實(shí)現(xiàn)。
參考文獻(xiàn)
[1]吳凱.基于android平臺(tái)的條碼掃描軟件的設(shè)計(jì)與實(shí)現(xiàn)[D].北京郵電大學(xué),2013.
[2]梁麗秀,杜傳紅.基于ATOM嵌入式平臺(tái)指紋識(shí)別系統(tǒng)的實(shí)現(xiàn)[J].科技創(chuàng)新與應(yīng)用,2012,05Z:15-16.
[3]王明哲.基于Atom和ARM的在線式實(shí)時(shí)振動(dòng)檢測(cè)[D].哈爾濱工程大學(xué),2012.