首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心理工论文电子通信
   软键盘产品界面显示的通用程序设计      ★★★ 【字体: 】  
软键盘产品界面显示的通用程序设计
收集整理:佚名    来源:本站整理  时间:2009-01-10 22:42:55   点击数:[]    

[本篇论文由上帝论文网为您收集整理,上帝论文网http://paper.5var.com将为您整理更多优秀的免费论文,谢谢您的支持]
摘要:介绍如何利用状态图的分析结果把握待开发系统的软界面结构,完成软键盘控制类产品界面显示的通用程序设计。

    关键词:状态图 控制类产品 界面 数据结构

可视频程序的一个重要特点是:有大量的窗口、对话框等界面与用户进行交互,并根据用户在界面上的操作进行相应的事务处理。设计良好的用户界面不仅可以提高用户与软件的交互效率,而且可以减少用户操作与控制状态转换出错的概率。好的设计界面不但要注意屏幕布局,更在充分理解待完成工作的基础上,快速地构架系统的有效结构,使编程人员有更多的精力去实现系统的处理功能。下面介绍一种在Nucleus仿真器MNT中快速实现产品界面设计的经验。

图1 PDA产品的主界面和部分功能操作界面

1 系统分析

(1)问题的由来

嵌入式系统是一种软、硬件结合的产物。一个控制类嵌入式产品的软件开发离不开它所依赖的硬件环境。如今有了仿真软件的支持,使得嵌入式系统软件与硬件的开发可以同时进行,也因为嵌入式开发工具的强大,越来越多的软键盘产品在不断问世。无论是仿真开发硬键盘产品,还是开发软键盘产品,待开发软件除显示界面之外,主要处理的是设备与外界环境的复杂交互。由于复合控制行为的数量和种类都不可预测,导致了这类软件设计非常复杂,此时使用常规设计方法,难于充分保证实现每种控制行为的组合,更难于保证控制界面的逐级返回。例如,当开发图1所示的PDA软键盘产品时,其中每项功能的控制界面上都有众多按钮用于接受控制行为,根据用户点击行为的不同,进入下一级不同的界面,或处理不同的事务。尽管有产品可能将固定键盘做成一组固定的硬件按钮,但无论怎样,这类软件都需要为不同的界面设计许多不同的控件,并处理控制行为对应的事务。因此,开发中快速地实现界面显示,可保证有更多的精力处理所有控制行为对应的事务。

图2 系统记束本部分状态转换图

    (2)状态图

美国ATI公司的Nucleus嵌入式操作系统是一个嵌入式系统开发包。该软件包借助Visual C++的调试器和编译器进行程序的调试与编译,基本控制语句标准C语句。使用其中的Nucleus MNT仿真器提供的专用库函数,可以实现产品开发。

为了编写PDA的控制软件,首先分析整个产品的功能,并以状态转换图进行描述。图2是系统记事本部分状态转换图。

2 系统的实现

2.1 数据结构的建立

通过对状态图的分析得知,整个系统有38种功能不同的控件,共70个。在不同的界面上发生的不同控制行为决定了系统的不同转移状态,并启动响应事务处理。假设全部的数据结构预先定义在pda_init.h文件中,为了完成系统设计,主要需要设计如下数据结构:控件数组、状态控件链、显示状态链、显示状态栈。

(1)控件数组

在Nucleus MNT中,用Window CreateWindow(int wClass,char*ttl,int x,int y,int w,int h,int(*wndProc)(),unsigned long attrib)和CTRL *Control(Window wnd,int type,char name[],int x,int y,int w,int h,int id)函数,可分别创建窗口窗的各种控件,所以设计了一个二维int型控件数组。其中存储的是70个控件的相关参数,函数调用时,直接引用控件数组的不同分量就可以显示出不同的控制界面。控件数组的定义格式为:static int Controls[70][7];

 控件属性偏移值LeftTopWidthHeightID
Controls[X][Y]Y=0Y=1Y=2Y=3Y=4Y=5Y=6

Controls[X][0]:控件属性,表示控件的类型。例如,0表示按钮,13表示文本输入框,23表示图片,29表示静态文本框,51表示中英字符的三块键盘,52表示数字小键盘,53表示号码查询键盘,54表示计算器键盘。

Controls[X][1]:控件偏移植。作用是区分或设定同一类型不同控件的编号。编号从0开始。例如,对于系统中的17个按钮可分别设置为

{0,0,50,110,60,20,5501},

{0,1,150,110,60,20,5502},

……

{0,16,230,160,35,40,5517}

系统的21个静态文本框分别设置为

{29,17,10,15,50,30,5601},

{29,35,10,40,50,30,5619},

……

{29,38,10,15,50,30,5622},

偏移值指定的内容是需要显示的字符串,如图3所示。

Controls[X][2]:控件距所处窗处左边界的距离。

Controls[X][3]:控件距所处窗体右边界的距离。

Controls[X][4]:控件的宽度。

Controls[X][5]:控件的高度。

Controls[X][6]:控件的标识号码,为了系统调用方便而取的编号。

图4 界面控件链

    (2)状态控件链

控件链(static int StateControlList[53][6])是一个动态的单向链表结构。在应用程序初始化阶段,根据对pda_init.h文件中定义的界面控件静态数组的遍历动态生成。当程序进入某个界面时,只要循环显示该链表中的控件即可。

Static int StateControlList[53][6]数组的具体定义格式如下:

 Y=0Y=1Y=2Y=3Y=4Y=5
StateControlList[X][Y]控件1控件2控件3控件4控件5控件6
StateControlList[1][6]464748490NU

其中“控件1”、“控件2”……表示当前状态的第一、第二等控件。数据“46”表示控件数组的第47个控件,与Controls[46][Y]数组中的内容相对应。“0”是控件结束标志,“NULL”表示没有数据。

为了处理方面,在程序初始化的过程中,假设这个静态数组生成了一个单向链表数组,PDAStateControlsList[53]。具体格式如图4所示。

该链表的每个节点是一个pdacontrolslist型常量,具体结构如下:

struct pdacontrolslist //以下的“X”为控件数组的编号

{

int propertyvalue; //控件属性值,大小等于Controls[X][0]

int default_flag; //缺省偏移值,大小等于Controls[X][1]

int x; //控件距窗体左边界位置,大小等于Controls[X][2]

int y; //控件距离窗体上边界位置,大小等于Controls[X][3]

in w; //控件宽度,大小等于Controls[X][4]

int h; //控件高度,大小等于Controls[X][5]

int idvalue; //控件的id值,大小等于Controls[X][6]

struct pdacontrolslist *next; //指向下一条记录

};

(3)显示状态链

   

[1] [2]  下一页


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:CDMA2000基站系统中基带分配卡的设计与实现

  • 下一篇文章:μC/OS-II在S3C44BOX处理器上的移植
  • 返回上一页】【打 印】【关闭窗口
    中查找“软键盘产品界面显示的通用程序设计”更多相关内容 5VAR论文频道
    中查找“软键盘产品界面显示的通用程序设计”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››嵌入式系统的通信规约管理平台设计...
  • ››一种基于七号信令的局间话单采集系...
  • ››对于变频器的制动技术分析
  • ››电子文件管理元数据宏观结构多维分...
  • ››浅论卫星电视接收机的常见故障的检...
  • ››信息时代网络用户信息检索焦虑的心...
  • ››论GIS在高校房产管理中的实际应用
  • ››关于电力通信发展战略的思考 金李莎...
  • ››2G、3G切换精细化优化分析思路探讨...
  • ››光纤自动化生产的需求与时机
  • ››软键盘产品界面显示的通用程序设计...
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .