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