低资源嵌入式系统中用户界面设计的思路
来源:互联网 发布:汪正扬看的编程书 编辑:程序博客网 时间:2024/04/20 06:32
有些概念先要弄清楚。你是否需要一个用户界面,通俗讲,在你的项目里设计的
这个产品到底为啥配备一个液晶显示器。到底有多少参数,多少信息需要提供给用户。
那些参数(运行参数)是可以修改的,那些参数(状态参数)是可以查看的。规划好这些之后
再来着手用户界面的设计。
归根到底,屏幕上面显示的内容大抵如下,无论再复杂,嵌套再深,最终只会归于以下三种状态:
1. 信息显示。读取某个变量值,显示给用户,如表征系统运行状态的变量,如通信参数等等。
抑或干脆纯粹显示一些文本信息,如本机软体版本,公司信息等等。
2. 值修改。这一点应该是大家处理比较多的情况。用户需要修改一些变量值,如通信参数,
系统各种运行变量等等,具体哪些值修改取决于各位设计的系统。
3. 执行一个任务/触发一个时间。其实这里与值修改在某些场合有一点点重合。如修改一个BOOL
型值时,可能它的值ON时候启动了电机,OFF时候关闭了电机。而大部分情况时候是调用了
系统预先编写的一个功能函数,或者触发一个事件给系统。
清楚了上面概念后,再来看看有关显示的:
显示类型方面其实归根到底也没有几项
1-> 数值/文本 显示
数值显示分十进制,十六进制,定点小数等等。这里面格式根据自己需要制定
2-> 数值/文本/密码 输入
这里的输入项即各种参数的输入,二进制量处理,如ON/OFF, SET/RESET等等。
在嵌入式设备上比较好的方式是采用弹出子窗口方式处理输入。即不需要复杂
的窗口管理机制,又使得输入界面对用户而言非常直观。
当然,实际情况下大家用的方式都是直接闪烁一个光标,标识当前项处于修改
状态。相比子窗口输入机制,这种方式其实是很笨拙的。
3-> 一些绘制性内容,如画几条线,填充几个块块,以使得界面看起来丰满,不至于
单调。其实这里的内容与屏幕组织方式有关。个人建议是GUI组织方式以屏幕为单位。
一般说来动态添加或者删除显示项目,在90%以上的系统里是不需要的,至少目前我接触到的很少
需要这种特性。如果非常实现,也有各种折衷的办法,简单点,为每个项目增加一个visible属性
即可,这种情况下动态添加/删除其实是伪装的,即显示与否,采用这种情况,在绘制项目时候
需要考量项目显示位置,否则在各显示项目之间可能会出现空白。第二种折衷办法是采用配置文件
方式。这种方式可以实现显示与具体内容分离。实现起来可能麻烦一些。如果这些都还不行,那就
只好把RAM不当数,用链表去实现吧。
所以,最好的组织方式不是以菜单方式,而是以界面/屏幕方式进行组织。尤其对于嵌入式系统而言。
如果有人曾经做过裸机界面开发(论坛有朋友很早前已经发过裸机屏幕编写方式)一定会对此深有感触。
在某个屏幕下接收输入,刷新界面来与用户交互。这里最好的办法就是状态机去处理,这种裸机屏幕
编写方式就是一个状态机嵌套一个状态机,状态机的返回值是可以通信的....
这个产品到底为啥配备一个液晶显示器。到底有多少参数,多少信息需要提供给用户。
那些参数(运行参数)是可以修改的,那些参数(状态参数)是可以查看的。规划好这些之后
再来着手用户界面的设计。
归根到底,屏幕上面显示的内容大抵如下,无论再复杂,嵌套再深,最终只会归于以下三种状态:
1. 信息显示。读取某个变量值,显示给用户,如表征系统运行状态的变量,如通信参数等等。
抑或干脆纯粹显示一些文本信息,如本机软体版本,公司信息等等。
2. 值修改。这一点应该是大家处理比较多的情况。用户需要修改一些变量值,如通信参数,
系统各种运行变量等等,具体哪些值修改取决于各位设计的系统。
3. 执行一个任务/触发一个时间。其实这里与值修改在某些场合有一点点重合。如修改一个BOOL
型值时,可能它的值ON时候启动了电机,OFF时候关闭了电机。而大部分情况时候是调用了
系统预先编写的一个功能函数,或者触发一个事件给系统。
清楚了上面概念后,再来看看有关显示的:
显示类型方面其实归根到底也没有几项
1-> 数值/文本 显示
数值显示分十进制,十六进制,定点小数等等。这里面格式根据自己需要制定
2-> 数值/文本/密码 输入
这里的输入项即各种参数的输入,二进制量处理,如ON/OFF, SET/RESET等等。
在嵌入式设备上比较好的方式是采用弹出子窗口方式处理输入。即不需要复杂
的窗口管理机制,又使得输入界面对用户而言非常直观。
当然,实际情况下大家用的方式都是直接闪烁一个光标,标识当前项处于修改
状态。相比子窗口输入机制,这种方式其实是很笨拙的。
3-> 一些绘制性内容,如画几条线,填充几个块块,以使得界面看起来丰满,不至于
单调。其实这里的内容与屏幕组织方式有关。个人建议是GUI组织方式以屏幕为单位。
一般说来动态添加或者删除显示项目,在90%以上的系统里是不需要的,至少目前我接触到的很少
需要这种特性。如果非常实现,也有各种折衷的办法,简单点,为每个项目增加一个visible属性
即可,这种情况下动态添加/删除其实是伪装的,即显示与否,采用这种情况,在绘制项目时候
需要考量项目显示位置,否则在各显示项目之间可能会出现空白。第二种折衷办法是采用配置文件
方式。这种方式可以实现显示与具体内容分离。实现起来可能麻烦一些。如果这些都还不行,那就
只好把RAM不当数,用链表去实现吧。
所以,最好的组织方式不是以菜单方式,而是以界面/屏幕方式进行组织。尤其对于嵌入式系统而言。
如果有人曾经做过裸机界面开发(论坛有朋友很早前已经发过裸机屏幕编写方式)一定会对此深有感触。
在某个屏幕下接收输入,刷新界面来与用户交互。这里最好的办法就是状态机去处理,这种裸机屏幕
编写方式就是一个状态机嵌套一个状态机,状态机的返回值是可以通信的....
- 低资源嵌入式系统中用户界面设计的思路
- 嵌入式系统 的低功耗设计
- 嵌入式系统中数字示波器用户图形界面的实现
- 嵌入式系统低功耗设计
- 嵌入式系统中圆角矩形填充的一种实现思路
- 单片机、桌面电脑/PC、嵌入式系统的启动思路对比。
- 影响用户体验的界面设计
- 如何设计低功耗嵌入式系统
- 嵌入式系统之低功耗设计
- 嵌入式系统之低功耗YDS算法
- 如何设计低功耗嵌入式系统
- 嵌入式系统——低功耗设计
- 界面设计资源
- 资源更新的思路
- 小菜的系统框架界面设计
- 小菜的系统框架界面设计
- 小菜的系统框架界面设计
- 低功耗设计的几个思路
- 使用lstat()判断文件类型
- Myeclipse10下载与破解
- JDK关于direct buffer与non-direct buffer的说明
- 【GCD|LCM】最大公约数和最小公倍数问题 WIKIOI1012
- 浅析JavaScript的原型链
- 低资源嵌入式系统中用户界面设计的思路
- 线性表之顺序存储结构--C实现
- iOS 消息推送
- C语言字符char和整型int的关系
- 【CXY】JAVA基础 之 异常追踪栈
- 获取图片做桌面壁纸
- 00007-----连接mini2440开发板FTP
- android中的手势探测
- xml文件中的xmlns处理