《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Qt的電腦橫機上位機的設計
基于Qt的電腦橫機上位機的設計
來源:微型機與應用2012年第19期
賀 青,李鵬飛
(西安工程大學 電子信息學院,陜西 西安 710048)
摘要: 通過研究電腦橫機主控系統的工作流程、分析電腦橫機工作時的數據流向,針對電腦橫機的需求,提出一種以開源的Linux為操作系統、ARM處理器為硬件平臺的電腦橫機上位機軟件的設計方法,并且使用Qt對電腦橫機的圖形用戶界面進行設計。給出了圖形用戶界面的設計步驟及界面之間相互轉換的方法。
Abstract:
Key words :

摘  要: 通過研究電腦橫機主控系統的工作流程、分析電腦橫機工作時的數據流向,針對電腦橫機的需求,提出一種以開源的Linux為操作系統、ARM處理器為硬件平臺的電腦橫機上位機軟件的設計方法,并且使用Qt對電腦橫機的圖形用戶界面進行設計。給出了圖形用戶界面的設計步驟及界面之間相互轉換的方法。
關鍵詞: 電腦橫機;上位機;人機交互界面Linux-ARM;Qt

 電腦橫機是生產羊毛衫的主要設備,市場對電腦橫機的需求在逐年加大,近兩年來,我國每年進口數千臺電腦自動橫機。但是對于我國的羊毛衫生產企業來說,國外所生產的電腦橫機價格比較昂貴,而國內生產的電腦橫機又主要集中在中低端產品,且電腦橫機的人機交互界面非常簡單而又不夠友好[1]。
本文針對三層控制系統的電腦橫機進行設計。通過研究電腦橫機控制系統的工作流程、橫機工作時數據的流向以及操作人員對電腦橫機上位機的需求,提出一種上位機的設計方法。該上位機軟件是以開源的Linux為操作系統,ARM處理器為硬件平臺,用Qt對圖形用戶界面進行設計,使得電腦橫機人機交互界面更加友好,提高了電腦橫機的水平。
1 電腦橫機上位機軟件的總體設計
 由于在電腦橫機上位機的設計中所要考慮到的內容很多,本文只從以下三個方面對電腦橫機進行研究。
1.1 電腦橫機主控系統的工作流程
 電腦橫機主控系統的工作流程如下:首先對電腦橫機進行上電,顯示初始界面,電腦橫機通過自檢檢查機器是否正常,若有異常,則報警停機;若沒有異常則進行初始化設置。設置完成后,對輸入的花型文件進行編譯和解析,經編譯后的花型文件中的每一個花型可以生成一行或者多行的CNT動作行,每個控制代碼CNT行對應相應的PAT文件行,若符合要求則傳遞給下面的DSP控制層[2]。另一方面也可以對下位機的狀態進行反饋,若下位機發出請求,則將信息傳遞給DSP層。
 電腦橫機主控系統的流程圖如圖1所示。

1.2 電腦橫機控制數據的流程
 橫機工作時數據的流向如圖2所示。首先工作人員通過對樣品的研究從花型準備系統中產生CNT文件和PAT文件[3]。通過上位機軟件的文件編譯判斷是否有文件的語法錯誤,若有錯誤則顯示出來,通過對文件的解析,將文件中的CNT動作行和PAT花樣行相互對應,生成可以直接用于控制電腦橫機的數據,將數據通過I/O模塊傳遞給DSP主控層,再由DSP主控層傳遞給DSP機頭控制層,接收各種數據的反饋并且通過界面顯示給操作人員。若發生中斷,則中斷源發送信號將中斷信號傳遞給控制器,并且從界面上進行顯示。
1.3 電腦橫機軟件設計的要求
 操作人員對電腦橫機上位機的功能需求主要包括:(1)為用戶提供一個良好的界面,便于工作人員的操作;(2)對由花型準備系統所產生的CNT文件和PAT文件進行讀取和分析,產生電腦橫機工作時所需要的花型控制信息;(3)電腦橫機運行前的初始化工作;(4)將解析好的數據傳送給控制系統中的DSP控制層用來控制各種電機等;(5)實時接收由傳感器反饋的各種信息,并且顯示在界面上,使操作人員可以實時地了解和處理;(6)返回中斷信息并及時處理。
2 電腦橫機軟件的具體設計
2.1 上位機軟件的體系結構

 上位機軟件的體系結構如圖3所示。

 電腦橫機上位機基于ARM的硬件平臺,采用的是ARM9處理器,選取的芯片是三星公司的S3C2440芯片。在此基礎上移植開源可剪裁的Linux操作系統,在操作系統上進行各種驅動程序的設計。應用層主要包括圖形用戶界面和編織控制軟件,主要完成編譯和解析花型文件、進行人機交互和界面的顯示。人機界面的設計采用的是Qt。編織控制軟件根據橫機的工藝將輸入的CNT文件和PAT文件編譯和解析成為一系列的底層設備動作,使得兩個文件相互對應,從而完成編織的完整動作。
2.2 軟件模塊的劃分
 根據電腦橫機軟件的功能和要求,軟件采用模塊化的設計思想。各功能模塊的劃分如圖4所示。


 文件的讀取和編譯模塊:通過USB口將花型準備系統中所得到的花型文件讀入上位機軟件,并且進行編譯,檢查文件是否有語法錯誤。
 文件解析模塊:生成可以直接控制電腦橫機的數據,使CNT文件和PAT文件相互對應。
 編織過程的調整:對編織過程進行實時顯示并且進行調整,如有錯誤則進行報警。
 中斷信號的反饋:對中斷信號進行實時地反饋。
 動作的控制:在人機交互界面中對橫機工作時的動作進行實時監控和在線修改。
 工作信息的顯示:將電腦橫機傳感器所感應到的信息及時反饋,使操作人員能更好地控制電腦橫機的生產。
3 電腦橫機圖形用戶界面的設計
 界面的信息顯示是人機交互界面的一個重要部分,通過它可以使人們更好地運用機器,因此良好的圖形界面是必不可少的[4]。目前,面向嵌入式Linux系統的有代表性的GUI系統有MiniGUI、Micro Windows、Qt/Embedded等。在本文的嵌入式Linux系統下選擇用Qt/Embedded來實現對電腦橫機上位機的人機界面的設計[5]。
 電腦橫機圖形用戶界面框圖如圖5所示。

 Qt提供了兩種實現用戶界面的方法,一種是通過傳統的編碼方式實現用戶界面;另一種是通過Qt designer快速實現。Qt界面的設計主要包括以下三個方面:(1)用戶界面的設計實現;(2)建立信號與槽之間的關系;(3)實現自定義的槽函數。
 由于電腦橫機所涉及的界面非常多,在此主要介紹主界面的設計以及主界面與其他子界面之間相互跳轉的方法。主界面的顯示圖如圖6所示,機器運行界面如圖7所示。

 

 

 在電腦橫機的主窗口的設計中,所要實現的功能是通過點擊界面上的按鈕可以切換到相應的界面去。其具體的設計過程如下。
3.1 用戶界面的設計
 使用designer可以快速設計出所需要的用戶界面。通過從工具欄中拖動相應的部件到主窗口就可以完成用戶界面的設計。通過Qt designer設計好界面之后,編譯器會將該文件轉換成能被C++所識別的.h文件。為了實現之后信號與槽函數的關聯,對于Qt窗口部件已經提供的信號,可按照以下規范命名:
 void on_<窗口部件名稱>_<信號名稱>_(<信號參數>);
 由于本設計要實現的功能是通過點擊各個按鈕就可以跳轉到相應的窗口,所以6個按鈕就對應6個槽函數,觸發這幾個槽函數的信號為clicked()。在頭文件.h文件中添加的私有槽函數的定義如下:
private slots:
 void on_ runButton _clicked();
 void on_ prefsButton _clicked();
 void on_ fileButton _clicked();
 void on_ designButton _clicked();
 void on_ shutdownButton _clicked();
 void on_ testButton _clicked();
3.2 建立信號與槽之間的關系
 實現了用戶界面的設計之后,需要建立信號和槽之間的連接。信號和槽是一種高級接口,應用于對象之間的通信,是Qt的核心特性,也是Qt區別于其他的重要部分。此外,信號和槽是Qt自行定義的一種通信機制,它獨立于標準的C/C++語言,一個類要使用信號與插槽機制,就必須是從QObject或者QObject的子類繼承,而且在類的定義中必須加上Q_OBJECT宏。信號被定義在類的信號部分,而插槽則定義在public slots、protected slots 或者 private slots 部分。
 這里的信號相當于用戶所引發的事件,而槽本質上就是一個函數,它實現了這個動作所對應的功能。Qt中使用connect函數來建立信號和槽之間的鏈接。通常一個信號可以鏈接多個槽,多個信號也可以鏈接同一個槽,并且一個信號還可以與另一個信號相連接。
 信號與槽的關系如圖8所示。

 在主界面的設計中,通過connect()函數來完成信號與槽的連接。并且通過信號與槽的連接可以完成對界面的相互跳轉,其代碼如下:
connect(ui-> runButton,SIGNAL(clicked()),this,SLOT(on_ runButton _clicked()));
connect(ui-> prefsButton,SIGNAL(clicked()),this,SLOT(on_ prefsButton _clicked()));
connect(ui-> fileButton,SIGNAL(clicked()),this,
SLOT(on_ fileButton _clicked()));
connect(ui->designButton,SIGNAL(clicked()),this,SLOT(on_designButton_clicked()));
connect(ui->shutdownButton,SIGNAL(clicked()),this,SLOT(on_shutdownButton_clicked()));
connect(ui->testButton,SIGNAL(clicked()),this,SLOT(on_testButton_clicked()));
3.3 實現自定義的槽函數
 在主界面的設計中,根據主界面的具體功能實現相應的槽函數,所以在頭文件中要自定義槽函數;在主界面中切換各個窗體時,可以通過show()和hide()類來完成;需要在實現.cpp文件中添加代碼。例如,主界面中的runBotton按鈕的自定義槽函數代碼為:
void MainWindow:: on_ runButton _clicked()
{
  form4.show();
  this->hide();
}
    其他自定義槽函數與其類似。通過上面的方法,可以實現主界面的設計和多窗體之間的切換。
本文提出了一種以開源的Linux為操作系統、ARM處理器為硬件平臺的電腦橫機上位機軟件的設計方法,并且對電腦橫機圖形用戶界面的設計進行了詳細的研究,給出了界面設計的步驟以及界面之間的相互轉換的方法。
參考文獻
[1] 呂建飛,傅建中.新型電腦橫機的開發研制[J].針織工業,2005,13(5):13-15.
[2] 朱文俊,鄭建林.電腦橫機編織技術[M].北京:中國紡織出版社,2011:30-31.
[3] 丁永生,石金華,萬慶萱.針織橫機電腦控制器的設計[J].中國紡織大學學報,1995,21(4):70-74.
[4] 丁林松,黃麗琴.Qt4圖形設計與嵌入式開發[M].北京:人民郵電出版社,2009:5-8.
[5] 鄭阿奇,陳超.Qt4開發實踐[M].北京:電子工業出版社,2011:121-123.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 中文字幕在线影院| 亚洲精品无码专区在线在线播放| 无限资源视频手机在线观看| 成人免费一级片| 亚洲av女人18毛片水真多| 狠狠色狠狠色综合伊人| 国产丰满麻豆videossexhd| 最新国产你懂的在线网址| 好吊妞国产欧美日韩免费观看| 久久天天躁狠狠躁夜夜呲| 欧美破处视频在线| 全部三片在线观看直播| 韩国精品一区二区三区无码视频 | 麻豆精品不卡国产免费看| 在线观看www日本免费网站| 中文字幕一区二区三区人妻少妇| 最近2019中文字幕免费看最新 | 在线观看国产人视频免费中国| 中文字幕永久视频| 明星造梦一区二区| 亚洲欧美日韩另类在线一| 粉色视频下载观看视频| 国产一卡二卡≡卡四卡免费乱码| 欧美日韩一道本| 国产老妇伦国产熟女老妇高清| 一本大道一卡二大卡三卡免费| 日本高清视频色wwwwww色| 亚洲午夜无码久久久久小说| 爱豆传媒视频在线网址最新| 午夜激情小视频| 色欲aⅴ亚洲情无码AV| 国产成人综合久久精品| 2022欧美高清中文字幕在线看| 女人被免费网站视频在线| 中文字幕在线观看亚洲日韩| 日韩在线视频一区| 亚洲乱码中文字幕综合| 欧美精品在欧美一区二区| 亚洲资源最新版在线观看| 精品免费一区二区三区| 国产aⅴ无码专区亚洲av麻豆|