女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創(chuàng)信息技術ARM9 Linux智能終端菜單界面設計介紹

英創(chuàng)信息技術 ? 來源:英創(chuàng)信息技術 ? 作者:英創(chuàng)信息技術 ? 2019-11-18 10:04 ? 次閱讀

低成本的單色LCD在工業(yè)領域應用非常廣泛,英利公司提供的基于嵌入式Linux平臺的EM9160支持外接單色LCD屏,目前應用得比較多的規(guī)格包括有LCD320x240、LCD240x128、LCD128x64、LCD160x160等。在實際應用中有許多對于菜單界面操作的需求,需要客戶根據(jù)應用的具體要求自行構建菜單顯示界面,本文將重點介紹這方面的內容。

基于菜單界面操作過程實質一個簡單的交互式操作,需要實時響應鍵盤消息、定時消息等。嵌入式Linux操作系統(tǒng)是一個實時多任務系統(tǒng),可以利用多線程的方式來實現(xiàn)各個應用請求的響應。在本案例是通過創(chuàng)建多個線程的方式來實現(xiàn)對于鍵盤、定時任務的實時響應,從而實現(xiàn)對于菜單界面的操作。

下面分兩個部分來介紹該例程:

1、應用程序框架

為了便于程序的設計和管理,利用了Linux多任務的編程優(yōu)勢,利用內核的任務調度機制,采用面向對象的C++編程將各個應用功能模塊化。在該例程中需要實現(xiàn)的響應功能:鍵盤和定時任務的響應,在應用程序中通過創(chuàng)建兩個線程來實現(xiàn)。

在該程序例程中main(…)函數(shù),首先進行初始化操作,包括對于LCD屏的初始化、菜單界面的初始化操作等;然后是創(chuàng)建鍵盤處理線程、再進入主線程,主線程的功能主要是處理定時任務,在本方案中實現(xiàn)的是定時顯示界面刷新。如下圖所示:

// LCD顯示屏的初始化操作

i1 = LCD_Init( LCD_160160 );

if( i1《0 )

{

printf( ‘LCD Init fail!\n’ );

}

LCD_LoadSmallFnt( );

LCD_SetMode( 1 ); // set to XOR mode

LCD_SetFont( 12 ); // 設置漢字顯示為12點陣模式

// 加載缺省菜單界面

status = MenuManager.LoadMenu( );

if( status 《 0 )

{

printf( ‘status=%d\n’, status);

return status;

}

MenuManager.Show( );

MenuManager.Update();

// 打開鍵盤設備,并啟動鍵盤處理線程

KeyManager.Open( );

for( ExitFlag=0; ; )

{

if( ExitFlag )

{

break;

}

// 延時1S 執(zhí)行一次顯示刷新操作

sleep( 1 );

MenuManager.Update( );

}

// 關閉鍵盤設備,并卸載鍵盤處理線程

KeyManager.Close( );

LCD_DeInit( );

return 0;

其中的主線程很簡單,只是定時處理的任務,直接調用sleep(1)函數(shù)阻塞等待。

鍵盤處理線程主要檢查是否有鍵按下,一旦有鍵按下則讀取相應的鍵碼值,并作相應的響應處理。當一個鍵按下時,EM9160內核中的鍵盤驅動程序將得到的有效鍵碼存儲在內部的緩沖區(qū)中,應用程序可直接通過read函數(shù)讀取鍵碼。

應用程序打開矩陣鍵盤驅動程序的方法還是打開相應的設備文件,如下:

key_fd = open(‘/dev/em9x60_keypad’, O_RDONLY | O_NONBLOCK);

以下為讀取鍵碼值并作相應的處理代碼:

FD_ZERO(&fs_read);

FD_SET(key_fd,&fs_read);

time.tv_sec = 0;

time.tv_usec = 100000; //timeout = 100ms

fs_sel = select(key_fd+1, &fs_read, NULL, NULL, &time);

if(fs_sel)

{

//data available, so get it!

len = read(key_fd, &KeyCode, sizeof(KeyCode));

if(len 》 0)

{

//printf(‘len=%d KeyCode= 0x%x\r\n’, len, KeyCode);

switch( KeyCode )

{

case 0x011b:

KeyCmd = ESC;

MenuManager.Key_ESC( );

break;

case 0x1c0d:

KeyCmd = ENTER;

MenuManager.Key_ENTER( );

break;

case 0x0635:

KeyCmd = UP;

MenuManager.Key_SHIFT( 1 );

break;

case 0x0938:

KeyCmd = DOWN;

MenuManager.Key_SHIFT( 0 );

break;

case 0x0837:

KeyCmd = LEFT;

break;

case 0x0939:

KeyCmd = RIGHT;

break;

}

}

}

2、菜單界面設計

在本例程中主要是針對一個基于LCD160x160顯示終端所設計的二級菜單顯示界面,功能鍵有六個:Key_ESC、Key_Enter以及Key_UP、Key_Down、Key_Left、Key_Right鍵,通過Key_UP、Key_Down鍵選擇菜單項,Key_Enter確認鍵來進入下一級,Key_ESC返回上一級菜單。

菜單的顯示和管理是通過C++方式來實現(xiàn),Class Item定義菜單中各個菜單項的顯示特性以及操作特性;Class Menu定義了菜單的特性,其中包含又對于菜單中各個菜單項管理的功能;Class MenuManager是一個菜單管理類,這個類實現(xiàn)了對于各個菜單的管理和操作特性,相當于一個人機交互界面的功能。它們定義分別在 Item.h Menu.h文件中。

為了增加菜單設計的靈活性,對于各個菜單界面的顯示內容采用了讀取配置文件的方式,即在配置文件中定義各個菜單的顯示名稱和顯示位置,如:

// item的類型 顯示名稱 X位置 Y位置 下一級菜單名稱

item=101 D1 0 0

item=100 D0 100 0

item=301 測量點數(shù)據(jù)顯示 0 32 menu1

item=301 參數(shù)設置與查看 0 48 menu2

item=301 終端管理與維護 0 64 menu3

根據(jù)該配置文件所形成的顯示菜單如下:

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11456

    瀏覽量

    212742
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6096

    瀏覽量

    36135
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    VS2005與創(chuàng)ARM9嵌入式模塊連接和調試步驟

    使用VS2005連接和調試創(chuàng)ARM9嵌入式模塊
    發(fā)表于 09-27 13:05

    如何利用創(chuàng)ARM9嵌入式主板快速構建雙CAN接口的方案

    創(chuàng)提供的系列ARM9嵌入式主板,除EM9160嵌入式主板外,所有的ARM9主板上均可直接支持一個CAN接口。ETA701是
    的頭像 發(fā)表于 10-08 11:37 ?4401次閱讀
    如何利用<b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>ARM9</b>嵌入式主板快速構建雙CAN接口的方案

    創(chuàng)信息技術VS2005調試ARM9核心板簡介

    C++(簡稱EVC)作為該平臺的標準開發(fā)工具,EVC和標準PC平臺VC的開發(fā)界面基本上完全一致,因此對于工程師來說,在創(chuàng)ARM9平臺上開發(fā)應用程序和開發(fā)PC上的應用程序一樣容易。
    的頭像 發(fā)表于 10-31 15:03 ?2121次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術</b>VS2005調試<b class='flag-5'>ARM9</b>核心板簡介

    創(chuàng)信息技術ARM9工控主板WinCE應用程序遠程控制應用

    創(chuàng)公司推出的ARM9嵌入式工控主板產(chǎn)品系列,均預裝了正版的WinCE5.0操作系統(tǒng)。微軟的WINCE實時多任務操作系統(tǒng)是嵌入式領域的主流操作系統(tǒng)之一,它包括了以TCP/IP為特色的完整網(wǎng)絡通訊協(xié)議
    的頭像 發(fā)表于 11-04 09:28 ?1933次閱讀

    創(chuàng)信息技術ARM9工控主板內嵌AD概述

    創(chuàng)公司推出的ARM9 嵌入式工控主板產(chǎn)品系列,均預裝了正版WinCE5.0 操作系統(tǒng)。
    的頭像 發(fā)表于 11-04 09:43 ?2955次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術</b><b class='flag-5'>ARM9</b>工控主板內嵌AD概述

    創(chuàng)信息技術ARM9工控板在遠程監(jiān)控領域的應用

    創(chuàng)ARM9工控主板的數(shù)據(jù)采集功能通常采用板上的GPIO實現(xiàn)數(shù)字輸入輸出、通過精簡ISA總線擴展相應的AD或DA實現(xiàn)模擬數(shù)據(jù)的輸入輸出。在創(chuàng)
    的頭像 發(fā)表于 11-12 10:04 ?2059次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術</b><b class='flag-5'>ARM9</b>工控板在遠程監(jiān)控領域的應用

    創(chuàng)信息技術ARM9工控板串口設備的COM組件應用

    創(chuàng)公司的ARM9工控主板產(chǎn)品均預裝了Windows CE5.0操作系統(tǒng),支持包括EVC、C#、VB、LabView等多種開發(fā)工具。
    的頭像 發(fā)表于 11-05 10:07 ?2011次閱讀

    創(chuàng)信息技術ARM9主板上運行案例解析

    創(chuàng)今年(2009年)的市場活動中,為了讓客戶更好地完成產(chǎn)品應用開發(fā),創(chuàng)向第一次購買創(chuàng)
    的頭像 發(fā)表于 11-12 10:20 ?1690次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術</b><b class='flag-5'>ARM9</b>主板上運行案例解析

    創(chuàng)信息技術CAN接口COM組件在C#語言領域應用

     創(chuàng)ARM9工控主板的一個很大的特色就是提供了標準的CAN總線通訊接口,客戶可以方便地在工業(yè)現(xiàn)場、汽車、船舶等等領域進行CAN通信應用。由于創(chuàng)
    的頭像 發(fā)表于 11-12 10:34 ?2686次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術</b>CAN接口COM組件在C#語言領域應用

    創(chuàng)信息技術ARM9工控主板遠程操作自動更新介紹

    庫EM_FTPClient.LIB,客戶利用這個庫可以方便的編寫出適合自己應用的FTP客戶端應用程序,在《ARM9工控主板支持斷點續(xù)傳的FTP文件傳送》一文中對各庫函數(shù)做了詳細介紹。本文介紹的更新方案就是利用
    的頭像 發(fā)表于 11-13 09:26 ?1591次閱讀

    創(chuàng)信息技術ARM9工控板遠程抓拍圖像應用介紹

    創(chuàng)ARM9工控主板功能齊全、體積小巧、性能穩(wěn)定、超低價格的嵌入式主板產(chǎn)品。主板硬件完全按工業(yè)級標準設計,CPU采用了32位工業(yè)級ARM9芯片,PCB板經(jīng)精心優(yōu)化設計,除提供全面、高效
    的頭像 發(fā)表于 11-13 09:41 ?2331次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術</b><b class='flag-5'>ARM9</b>工控板遠程抓拍圖像應用<b class='flag-5'>介紹</b>

    創(chuàng)信息技術工控主板的復位管理介紹

     創(chuàng)公司的工控主板是基于ARM9 CPU、預裝正版WinCE的嵌入式主板產(chǎn)品。作為嵌入式應用,系統(tǒng)的可靠啟動是其可靠性的重要組成部分。本文針對嵌入式應用的特點、介紹
    的頭像 發(fā)表于 11-14 10:03 ?1882次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術</b>工控主板的復位管理<b class='flag-5'>介紹</b>

    創(chuàng)信息技術ARM9工控主板擴展矩陣鍵盤的方法

    鍵盤輸入,僅需要一些數(shù)字鍵或功能鍵(比如方向鍵),此時可通過外擴矩陣鍵盤來實現(xiàn)。 1、矩陣鍵盤擴展硬件電路 創(chuàng)ARM9工控主板可通過GPIO或精簡ISA總線擴展矩陣鍵盤,通過GPIO擴展時,程序直接驅動IO作為掃描輸入輸出,比
    的頭像 發(fā)表于 01-14 11:05 ?1864次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術</b><b class='flag-5'>ARM9</b>工控主板擴展矩陣鍵盤的方法

    創(chuàng)信息技術ARM9主板進行連接調試的兩種方法

    在我們提供給用戶的《使用VS2005連接和調試創(chuàng)ARM9嵌入式模塊》一文中,我們分別以在EM9000上和在EM9260上為例講述了兩種對基于WinCE的ARM9主板進行連接調試的方法
    的頭像 發(fā)表于 01-14 11:29 ?1666次閱讀

    創(chuàng)信息技術ARM9工控主板的SMS短信息應用介紹

    的應用越來越廣泛,其中主要以GPRS數(shù)據(jù)通訊及SMS短信息方式為主。GPRS數(shù)據(jù)通訊是以TCP/IP方式進行通訊,GPRS模塊發(fā)送SMS短信,是通過串口發(fā)送AT指令來實現(xiàn)。 創(chuàng)公司基于ARM
    的頭像 發(fā)表于 01-14 11:45 ?1543次閱讀