• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Linux的遠(yuǎn)程控制系統(tǒng)綜合實(shí)驗(yàn)設(shè)計(jì)

      2019-03-19 13:13:14鄭紅黨劉燦斌孫彥景
      關(guān)鍵詞:圖形界面內(nèi)網(wǎng)蜂鳴器

      鄭紅黨, 劉燦斌, 孫彥景, 李 松

      (中國(guó)礦業(yè)大學(xué) 信息與控制工程學(xué)院, 江蘇 徐州 221116)

      隨著“三網(wǎng)融合”的提速,手機(jī)、數(shù)字電視、信息家電、網(wǎng)絡(luò)電話、汽車(chē)電子、醫(yī)療電子等行業(yè)成為嵌入式系統(tǒng)的重要應(yīng)用領(lǐng)域[1-3]。盡管高校開(kāi)設(shè)了嵌入式系統(tǒng)課程,但學(xué)生的軟件開(kāi)發(fā)能力仍顯不足[4-5]。因此,相關(guān)實(shí)驗(yàn)教學(xué)需更具直觀性和實(shí)用性[6],使學(xué)生能夠掌握嵌入式軟件開(kāi)發(fā)的方法,具備計(jì)算機(jī)網(wǎng)絡(luò)、圖形界面設(shè)計(jì)、嵌入式服務(wù)器等技術(shù)的研發(fā)能力[7]。

      常用嵌入式操作系統(tǒng)有Linux、Windows Mobile、VxWorks等。Linux開(kāi)放源代碼,有GNU下的各種開(kāi)源軟件的支持,且支持幾乎所有的嵌入式CPU,具有低開(kāi)發(fā)成本、高開(kāi)發(fā)效率的優(yōu)勢(shì),是目前應(yīng)用最為廣泛的嵌入式操作系統(tǒng)[8]。本文基于Linux操作系統(tǒng)設(shè)計(jì)了遠(yuǎn)程控制系統(tǒng)綜合實(shí)驗(yàn)。下位機(jī)的應(yīng)用軟件基于Linux操作系統(tǒng)開(kāi)發(fā),搭建了可外網(wǎng)訪問(wèn)的Web服務(wù)器和簡(jiǎn)單的圖形界面;上位機(jī)應(yīng)用軟件基于Web和Electron技術(shù)開(kāi)發(fā),構(gòu)建了桌面應(yīng)用程序。

      1 系統(tǒng)設(shè)計(jì)分析

      遠(yuǎn)程控制系統(tǒng)綜合實(shí)驗(yàn)的功能為:用電腦或手機(jī)對(duì)嵌入式開(kāi)發(fā)板中的LED燈、蜂鳴器和電位計(jì)進(jìn)行遠(yuǎn)程控制和狀態(tài)顯示,嵌入式開(kāi)發(fā)板也可通過(guò)操作本地LCD面板界面控制設(shè)備和顯示設(shè)備狀態(tài)。設(shè)計(jì)包括上位機(jī)和下位機(jī)兩部分,如圖1所示。

      圖1 系統(tǒng)設(shè)計(jì)

      上位機(jī)提供桌面應(yīng)用程序,對(duì)下位機(jī)中的LED燈和蜂鳴器進(jìn)行遠(yuǎn)程控制,并顯示下位機(jī)的狀態(tài)以及輔助性說(shuō)明等內(nèi)容。

      下位機(jī)硬件采用三星Exynos4412嵌入式平臺(tái),軟件設(shè)計(jì)選用Linux操作系統(tǒng),運(yùn)用QTE技術(shù)設(shè)計(jì)LCD面板的圖形用戶界面(GUI)。用戶可通過(guò)GUI操作,實(shí)現(xiàn)對(duì)下位機(jī)中LED燈、蜂鳴器的控制,實(shí)現(xiàn)電位計(jì)的數(shù)據(jù)采集,并在LCD面板中顯示各設(shè)備狀態(tài)。下位機(jī)還需搭建Boa Web服務(wù)器并使用內(nèi)網(wǎng)透?jìng)骷夹g(shù)實(shí)現(xiàn)上位機(jī)的遠(yuǎn)程訪問(wèn)。

      綜上,實(shí)驗(yàn)內(nèi)容具體包括:

      (1) 嵌入式Linux開(kāi)發(fā)環(huán)境的搭建及操作系統(tǒng)移植;

      (2) 設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā);

      (3) 嵌入式圖形界面的設(shè)計(jì);

      (4) 嵌入式Web服務(wù)器的搭建;

      (5) 內(nèi)網(wǎng)透?jìng)骷夹g(shù)的實(shí)現(xiàn);

      (6) 上位機(jī)軟件設(shè)計(jì)。

      有關(guān)嵌入式Linux環(huán)境的搭建、移植及設(shè)備驅(qū)動(dòng)設(shè)計(jì)方面的文獻(xiàn)較多,本文不再贅述,重點(diǎn)介紹上述(3)—(6)項(xiàng)內(nèi)容的實(shí)現(xiàn)。

      2 圖形界面設(shè)計(jì)

      2.1 圖形界面

      采用QTE(Qt/Embedded)平臺(tái)設(shè)計(jì)面板的圖形界面。QTE是Qt平臺(tái)專門(mén)針對(duì)嵌入式Linux提供的API,可在嵌入式環(huán)境下構(gòu)建GUI圖形界面。Qt Creator是跨平臺(tái)的Qt集成開(kāi)發(fā)環(huán)境(IDE),有良好的圖形界面,通過(guò)“所見(jiàn)即所得”的開(kāi)發(fā)方式,放置好控件并進(jìn)行參數(shù)設(shè)定,即可生成Qt界面的XML文件[9]。

      QMainWindow控件是窗體控件,是圖形界面的載體。根據(jù)開(kāi)發(fā)板平臺(tái)顯示面板的分辨率,設(shè)置窗體的長(zhǎng)寬為480×272像素,并且刪除無(wú)關(guān)的標(biāo)題欄、信息欄、選單欄、達(dá)到簡(jiǎn)約的效果。

      下位機(jī)布置了3個(gè)Check Box控件:checkBox_led1、checkBox_led2、checkBox_beep,Check Box控件有“勾選”和“未勾選”兩種選擇,分別表示2個(gè)LED燈和蜂鳴器運(yùn)行與否。

      QLCDNumber控件是一個(gè)類似數(shù)碼管顯示效果的數(shù)字顯示控件,它支持配置顯示樣式以及數(shù)字的位數(shù)。該實(shí)驗(yàn)中,能實(shí)時(shí)顯示電位計(jì)的AD采樣值,實(shí)例化為L(zhǎng)CDNumber。

      Label控件是可以顯示圖片、文字的標(biāo)簽控件。在完成上述主要控件布置后,需要對(duì)軟件名稱、按鍵操作、顯示數(shù)字進(jìn)行指引,故添加了若干Label控件。

      2.2 通信機(jī)制

      信號(hào)和槽是Qt自行定義的一種通信機(jī)制,應(yīng)用于對(duì)象之間的通信[10]。當(dāng)某個(gè)信號(hào)對(duì)其客戶或所有者的內(nèi)部狀態(tài)發(fā)生改變,信號(hào)則被對(duì)象發(fā)射,和其相關(guān)聯(lián)的槽將被即時(shí)執(zhí)行,就像一個(gè)正常的函數(shù)調(diào)用。信號(hào)和槽的關(guān)系如圖2所示。

      圖2 信號(hào)與槽

      設(shè)計(jì)中一共有3個(gè)控制控件及1個(gè)數(shù)字顯示控件,信號(hào)與槽的設(shè)計(jì)見(jiàn)表1。為實(shí)現(xiàn)電位計(jì)數(shù)值的動(dòng)態(tài)變化,采用Timer定時(shí)器每隔500 ms觸發(fā)一次timerEvent事件。

      表1 信號(hào)與槽函數(shù)對(duì)應(yīng)關(guān)系

      在MainWindow.cpp窗體對(duì)象中,進(jìn)行Signal和Slot的連接:

      connect(ui->checkBox_led1,SIGNAL(toggled(bool)),

      this,SLOT(LED1_Toggle()));

      connect(ui->checkBox_led2,SIGNAL(toggled(bool)),

      this,SLOT(LED2_Togg,le())); connect(ui->checkBox_beep,SIGNAL(toggled(bool)),

      this,SLOT(BUZZER_Toggle()));

      startTimer(500);

      對(duì)應(yīng)的check_Box_ledx發(fā)出toggled信號(hào),將執(zhí)行LEDx_Toggled()函數(shù):

      LEDx_Toggled()

      {LEDx=~LEDx;

      if(LEDx==0)

      {ioctl(fb_led,1,1);}

      else

      {ioctl(fb_led,0,1);}

      }

      3 遠(yuǎn)程控制

      為實(shí)現(xiàn)上位機(jī)(本地計(jì)算機(jī)或手機(jī))的遠(yuǎn)程控制,搭建了BOA服務(wù)器。BOA是一個(gè)小型的嵌入式Web服務(wù)器,可以有效減少資源的占用,提高Web服務(wù)器的穩(wěn)定性與可靠性,支持CGI編程和單線程處理用戶的訪問(wèn)[11]。

      為實(shí)現(xiàn)上位機(jī)與下位機(jī)不在同一局域網(wǎng)內(nèi)的遠(yuǎn)程控制,設(shè)計(jì)中搭建了NGROK服務(wù)器,使用內(nèi)網(wǎng)透?jìng)骷夹g(shù)實(shí)現(xiàn)局域網(wǎng)內(nèi)的服務(wù)器被外網(wǎng)訪問(wèn)。NGROK是一款開(kāi)源的軟件,內(nèi)網(wǎng)透?jìng)鞯脑頌榉聪虼?。服?wù)端要求有公網(wǎng)的IP地址,內(nèi)網(wǎng)設(shè)備有相對(duì)固定的訪問(wèn)接口,內(nèi)網(wǎng)與公網(wǎng)NGROK服務(wù)端之間建立通道,進(jìn)行反向代理,實(shí)現(xiàn)對(duì)客戶端的動(dòng)態(tài)域名解析[12]。

      從NGROK官方網(wǎng)站ngrok.org可以得到免費(fèi)的NGROK服務(wù),下載對(duì)應(yīng)平臺(tái)的客戶端并運(yùn)行,就可以通過(guò)域名訪問(wèn)內(nèi)網(wǎng)的資源。設(shè)計(jì)中將本地的80端口映射為test.ngrok.cucb17.cn。

      下位機(jī)軟件包括BOA服務(wù)器和QTE的GUI軟件。模擬Linux設(shè)備驅(qū)動(dòng)程序的方法,使用了共享文件的方式實(shí)現(xiàn)兩者的通信,程序流程如圖3所示。

      圖3 程序流程圖

      4 上位機(jī)軟件設(shè)計(jì)

      使用Web技術(shù)設(shè)計(jì)上位機(jī)界面,再用Electron構(gòu)建一個(gè)桌面應(yīng)用程序。Electron是使用Web前端技術(shù)開(kāi)發(fā)跨平臺(tái)桌面應(yīng)用的開(kāi)源庫(kù),它將Chromium和Node.js整合為一體,由Chromiun負(fù)責(zé)渲染前端界面,Node.js負(fù)責(zé)后臺(tái)的數(shù)據(jù)處理,并支持將Electron環(huán)境下運(yùn)行的程序打包為Mac,為Windows和Linux系統(tǒng)下無(wú)環(huán)境依賴的桌面應(yīng)用程序[13]。

      上位機(jī)界面包括控制操作以及下位機(jī)狀態(tài)顯示。根據(jù)需求,將上位機(jī)界面劃分為幾個(gè)區(qū)域:

      (1) 標(biāo)題信息區(qū):用于顯示基本的標(biāo)題和信息;

      (2) 控制操作區(qū):用于顯示控制界面;

      (3) 數(shù)據(jù)接收區(qū):用于接收下位機(jī)返回的數(shù)據(jù);

      (4) 時(shí)延顯示區(qū):用于顯示連接時(shí)延;

      (5) IP配置區(qū):用于進(jìn)行遠(yuǎn)程IP地址的配置。

      使用屬性,添加了訪問(wèn)設(shè)備地址的選擇區(qū)域。訪問(wèn)設(shè)備地址IP有2種選項(xiàng):(1)本地控制,上位機(jī)與下位機(jī)在同一局域網(wǎng)內(nèi);(2)遠(yuǎn)程控制模式,NGROK服務(wù)器主機(jī)位于紐約。

      根據(jù)手機(jī)和PC端的兩種應(yīng)用場(chǎng)景,分別進(jìn)行界面布局。以手機(jī)為例,手機(jī)通常是屏幕較小的手機(jī),豎屏顯示,其典型的顯示分辨率為360×640像素,界面設(shè)計(jì)如圖4所示。

      圖4 手機(jī)控制界面

      桌面應(yīng)用程序?qū)嶋H運(yùn)行方式為命令行,輸入eletron main.js執(zhí)行,main.js為主程序。配置窗體信息以及進(jìn)行數(shù)據(jù)處理的主要代碼如下:

      function createWindow() {

      mainWindow = new BrowserWindow({width: 360, height: 640})

      mainWindow.loadURL(url.format({

      pathname:path.join(__dirname, ′index.html′),

      protocol: ′file:′,

      slashes: true

      }))

      ……}

      5 結(jié)語(yǔ)

      基于Linux遠(yuǎn)程控制系統(tǒng)的綜合實(shí)驗(yàn)內(nèi)容既有Linux系統(tǒng)移植、驅(qū)動(dòng)開(kāi)發(fā)基本實(shí)驗(yàn),也有應(yīng)用層軟件嵌入式圖形界面、Web服務(wù)器以及上位機(jī)應(yīng)用程序的開(kāi)發(fā)實(shí)驗(yàn)。通過(guò)LCD面板界面和上位機(jī)軟件可同時(shí)控制LED燈和蜂鳴器并顯示其狀態(tài),實(shí)驗(yàn)結(jié)果具有直觀性。

      猜你喜歡
      圖形界面內(nèi)網(wǎng)蜂鳴器
      Epigallocatechin-3-gallate exerts antihypertensive effects and improves endothelial function in spontaneously hypertensive rats
      電動(dòng)自行車(chē)產(chǎn)品車(chē)速提示音檢測(cè)現(xiàn)狀和整改技術(shù)研究(2)
      掌控板制作簡(jiǎn)易鋼琴
      單片機(jī)驅(qū)動(dòng)蜂鳴器的程序設(shè)計(jì)
      用VMRun快速置備千臺(tái)虛擬機(jī)
      企業(yè)內(nèi)網(wǎng)中的數(shù)據(jù)隔離與交換技術(shù)探索
      科技資訊(2017年5期)2017-04-12 15:24:45
      地下車(chē)庫(kù)柱網(wǎng)布置設(shè)計(jì)思路
      山西建筑(2016年20期)2016-11-22 03:10:21
      QoS技術(shù)在企業(yè)內(nèi)網(wǎng)實(shí)踐探索
      科技資訊(2016年19期)2016-11-15 08:17:44
      豐田凱美瑞240V車(chē)間隙警告蜂鳴器異常鳴響
      重看圖形界面“扁平化”與“擬物化”之爭(zhēng)——關(guān)于設(shè)計(jì)思維的探討
      全椒县| 射洪县| 息烽县| 香港| 嫩江县| 抚宁县| 吉林省| 衡南县| 米林县| 合川市| 兰西县| 柘城县| 金门县| 乳源| 沙雅县| 东源县| 靖江市| 澄江县| 伊金霍洛旗| 泸水县| 阳东县| 兴海县| 永和县| 襄汾县| 洪湖市| 浙江省| 余江县| 水富县| 无棣县| 蒲城县| 枞阳县| 镇雄县| 铁力市| 绥阳县| 荔波县| 丰原市| 隆昌县| 吐鲁番市| 阿合奇县| 布尔津县| 夏河县|