软键盘产品界面显示的通用程序设计
软键盘产品界面显示的通用程序设计
摘要:介绍如何利用状态图的分析结果把握待开发系统的软界面结构,完成软键盘控制类产品界面显示的通用程序设计。关键词:状态图 控制类产品 界面 数据结构
可视频程序的一个重要特点是:有大量的窗口、对话框等界面与用户进行交互,并根据用户在界面上的操作进行相应的事务处理。设计良好的用户界面不仅可以提高用户与软件的交互效率,而且可以减少用户操作与控制状态转换出错的概率。好的设计界面不但要注意屏幕布局,更在充分理解待完成工作的基础上,快速地构架系统的有效结构,使编程人员有更多的精力去实现系统的处理功能。下面介绍一种在Nucleus仿真器MNT中快速实现产品界面设计的经验。
图1 PDA产品的主界面和部分功能操作界面
1 系统分析
(1)问题的由来
嵌入式系统是一种软、硬件结合的产物。一个控制类嵌入式产品的软件开发离不开它所依赖的硬件环境。如今有了仿真软件的支持,使得嵌入式系统软件与硬件的开发可以同时进行,也因为嵌入式开发工具的强大,越来越多的软键盘产品在不断问世。无论是仿真开发硬键盘产品,还是开发软键盘产品,待开发软件除显示界面之外,主要处理的是设备与外界环境的复杂交互。由于复合控制行为的`数量和种类都不可预测,导致了这类软件设计非常复杂,此时使用常规设计方法,难于充分保证实现每种控制行为的组合,更难于保证控制界面的逐级返回。例如,当开发图1所示的PDA软键盘产品时,其中每项功能的控制界面上都有众多按钮用于接受控制行为,根据用户点击行为的不同,进入下一级不同的界面,或处理不同的事务。尽管有产品可能将固定键盘做成一组固定的硬件按钮,但无论怎样,这类软件都需要为不同的界面设计许多不同的控件,并处理控制行为对应的事务。因此,开发中快速地实现界面显示,可保证有更多的精力处理所有控制行为对应的事务。
图2 系统记束本部分状态转换图
(2)状态图
美国ATI公司的Nucleus嵌入式操作系统是一个嵌入式系统开发包。该软件包借助Visual C++的调试器和编译器进行程序的调试与编译,基本控制语句标准C语句。使用其中的N
ucleus 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)函数,可分别创建窗口窗的各种控件,所
[1][2][3][4][5]