低资源嵌入式系统中用户界面设计的思路

来源:互联网 发布:汪正扬看的编程书 编辑:程序博客网 时间:2024/04/20 06:32
有些概念先要弄清楚。你是否需要一个用户界面,通俗讲,在你的项目里设计的
这个产品到底为啥配备一个液晶显示器。到底有多少参数,多少信息需要提供给用户。
那些参数(运行参数)是可以修改的,那些参数(状态参数)是可以查看的。规划好这些之后
再来着手用户界面的设计。

归根到底,屏幕上面显示的内容大抵如下,无论再复杂,嵌套再深,最终只会归于以下三种状态:
1. 信息显示。读取某个变量值,显示给用户,如表征系统运行状态的变量,如通信参数等等。
   抑或干脆纯粹显示一些文本信息,如本机软体版本,公司信息等等。
2. 值修改。这一点应该是大家处理比较多的情况。用户需要修改一些变量值,如通信参数,
   系统各种运行变量等等,具体哪些值修改取决于各位设计的系统。
3. 执行一个任务/触发一个时间。其实这里与值修改在某些场合有一点点重合。如修改一个BOOL
   型值时,可能它的值ON时候启动了电机,OFF时候关闭了电机。而大部分情况时候是调用了
   系统预先编写的一个功能函数,或者触发一个事件给系统。

清楚了上面概念后,再来看看有关显示的:
显示类型方面其实归根到底也没有几项
1-> 数值/文本 显示
    数值显示分十进制,十六进制,定点小数等等。这里面格式根据自己需要制定
2-> 数值/文本/密码 输入
    这里的输入项即各种参数的输入,二进制量处理,如ON/OFF, SET/RESET等等。
    在嵌入式设备上比较好的方式是采用弹出子窗口方式处理输入。即不需要复杂
    的窗口管理机制,又使得输入界面对用户而言非常直观。
    当然,实际情况下大家用的方式都是直接闪烁一个光标,标识当前项处于修改
    状态。相比子窗口输入机制,这种方式其实是很笨拙的。
3-> 一些绘制性内容,如画几条线,填充几个块块,以使得界面看起来丰满,不至于
    单调。其实这里的内容与屏幕组织方式有关。个人建议是GUI组织方式以屏幕为单位。

一般说来动态添加或者删除显示项目,在90%以上的系统里是不需要的,至少目前我接触到的很少
需要这种特性。如果非常实现,也有各种折衷的办法,简单点,为每个项目增加一个visible属性
即可,这种情况下动态添加/删除其实是伪装的,即显示与否,采用这种情况,在绘制项目时候
需要考量项目显示位置,否则在各显示项目之间可能会出现空白。第二种折衷办法是采用配置文件
方式。这种方式可以实现显示与具体内容分离。实现起来可能麻烦一些。如果这些都还不行,那就
只好把RAM不当数,用链表去实现吧。

所以,最好的组织方式不是以菜单方式,而是以界面/屏幕方式进行组织。尤其对于嵌入式系统而言。
如果有人曾经做过裸机界面开发(论坛有朋友很早前已经发过裸机屏幕编写方式)一定会对此深有感触。
在某个屏幕下接收输入,刷新界面来与用户交互。这里最好的办法就是状态机去处理,这种裸机屏幕
编写方式就是一个状态机嵌套一个状态机,状态机的返回值是可以通信的....
原创粉丝点击