欢迎来到学术参考网

基于ARM LINUX的嵌入式GUI的设计与开发

发布时间:2015-11-30 10:40

摘 要:GUI设计在嵌入式系统设计中占据着举足轻重的地位,MiniGUI为一种适合于嵌入式系统的、功能强大的GUI,本文介绍了基于ARM和Linux的MiniGUI移植方法以及在ARM开发板上实现普通手机操作界面的设计过程,并提出了相应功能的实现方法,给出了设计的效果。

关键词:嵌入式系统;ARM;Linux;MiniGUI
1、引言
  目前,嵌入式应用非常广泛。嵌入式系统由硬件和软件两大部分组成。硬件方面的主要核心是嵌入式处理器,以ARM为核的32位RISC处理器是中高端嵌入式应用的代表。软件方面一般由嵌入式操作系统和应用软件组成。嵌入式操作系统种类众多,比如Linux、uCLinux,其具有开放源码、免费授权和资源丰富等优点,备受开发者的青睐。应用软件根据产品需求会用到图形界面(GUI)、文件系统(FS)、网络(TCP/IP协议栈)等软件功能,其中,GUI对于提高人机交互友好性,易操作性具有很好的效果,而随着图形显示设备的广泛应用,目标产品对GUI的需求越来越多。
2、系统环境和构架
  系统实现环境采用SmartARM2200开发板及运行在ARM上的uCLinux操作系统。
  SmartARM2200开发板:CPU型号为LPC2210,内核规格为ARM7TDMI-S,60M,支持uCLinux操作系统
  InitMainWindow();      // 设置各项属性,并建立主窗口
  ShowWindow(hMainWnd, SW_SHOWNORMAL);    // 显示主窗口
  2)消息循环
  while(GetMessage(&Msg, hMainWnd))
      {  TranslateMessage(&Msg);  DispatchMessage(&Msg);}
  3)填充背景色和显示汉字
  LoadBitmapFromFile( HDC_SCREEN, &mainskin, “res/skin2.bmp”);
  FillBoxWithBitmap(hdc, 0, 0, MWINDOW_RX, 283, &mainskin); 
  TextOut(hdc, 30, 295, “信息”); // 显示文字     
  其中资源图片一般在MiniGUI建立主窗口的过程中发送MSG_CREATE消息时加载(逻辑字体也在此时创建),而背景色的填充和汉字的显示则是在窗口初始显示,发送MSG_PAINT消息时绘制,而且必须在指定的设备上下文中操作:
  hdc = BeginPaint(hWnd);        // 获得设备hdc
  EndPaint(hWnd, hdc);          // 释放设备hdc
  4)时间操作
  在MSG_CREATE消息时,启动1s的定时器:SetTimer (hWnd,ID_TIME,100);在定时器消息MSG_TIMER中获取当前时间,并显示出来。
  4.2.2图形选择界面的功能实现
  当有键盘按下时,系统会发送MSG_KEYDOWN,处理此消息时,通过判断按键方向,确定当前选择的图标,当选择图标发生变化时,即用背景色重绘原有边框,用另一种颜色绘制新的边框,并将标签文字重写在右下角的位置。
  4.2.3电话本管理模块完成的功能:
1) 显示电话本名单,通过上下键移动可选中不同的名单,同时显示其电话号码;
2) 选中一个名单时,可以查看其详细信息(姓名,手机,固话,住址,排序,类型等),并且可以编辑修改;
3) 当选中“新建”时,可以创建一个新的电话名单和其详细信息;
4) 姓名和住址的编辑支持中文拼音输入法,通过2~9按键上标注的26个字母组合,可以输入常见的汉字。
  电话本管理模块的实现方法如下:
  1)电话本列表框实现:
  {CTRL_LISTBOX,//列表框控件定义:
    WS_VISIBLE WS_VSCROLL WS_BORDER LBS_NOTIFY , //LBS_SORT,//                                                                            L BS_AUTOCHECKBOX,1,0,238,263,ID_PhoneList,”“,0,}
  在初始化和更新条目时需要填充列表框,清空列表框和填充函数分别为:
  SendDlgItemMessage(hWnd,ID,LB_RESETCONTENT,0,0);
  SendDlgItemMessage(hWnd,ID,LB_ADDSTRING,0,
      (LPARAM)myphonenote北京飞漫软件技术有限公司.MiniGUI编程指南.

上一篇:多媒体课件的设计与制作

下一篇:对网页设计中Flash动画互动性的艺术设计思考