设计用于嵌入式系统的图形用户界面
时间:12-20
来源:互联网
点击:
从工业自动化到医疗设备,从家用电器到车载娱乐信息系统,嵌入式系统对于日益增多的现代产品的运行和功能而言至关重要。在这个充满变幻不定的期望以及几乎所有公司都在尽力追求浮华“酷炫”的用户界面的世界中,此类嵌入式系统的设计员面临着重重压力,不仅要不断满足适用性要求,还要打造出令人惊叹的用户体验。尽管编码很明显是建造嵌入式系统界面的关键元素,但仅凭优秀的编码本身已远远不够,理解用户和选择合适的开发工具已成为两项至关重要的成功因素。
图1.车载人机交互界面示例
嵌入式系统用户界面的演变
以前,许多嵌入式系统很少需要或不需要与终端用户直接关联,因此仅具有基本的用户界面要求(如有)。但随着嵌入式装置的性能逐渐增强并成为几乎所有电子系统的核心组件,它们的功能也应更便于用户操作。但自相矛盾的是,这会使它们的使用难度变得更高,进而导致更高的工作量用于避免用户面对复杂的操作。增添了诸如触屏控制、动态内容管理和网络访问等功能,用户界面设计(一般通过图形用户界面进行)目前很明显已成为嵌入式系统开发至关重要的元素。
但由于我们都已习惯了手机和平板电脑的易于使用性,即使是最基本的非消费电子产品设计也要满足直观、清楚、全面、快速和可靠的图形用户界面预期。这就为项目开发团队带来了压力,不仅是因为图形用户界面的开发在编码层面变得更复杂(并非始终有合适的“建造板块”可供许多嵌入式操作系统使用),还由于尽管任何具有优质显示器和充分处理能力的系统均可部署美观诱人的图形界面,但如果没有合适的功能工具,要创建互动式动态图形用户界面却十分困难。然而另一个未被充分认识的问题是,除合适的工具外,开发最佳的图形用户界面还需要额外的设计技能,这一点软件工程团队并非随时都具备。
当然,尽管功能是核心要素,但真正将最佳图形用户界面与基本可用的界面区别开来的还是“适用性”。软件工程师一般能实施满足功能规格的用户界面,但最佳的用户体验却只能源自更高级别的思考和理解,即该界面怎样才能有助于用户更出色地完成工作,或者以最简单或最快捷或最直观的方式取得预期结果。这正是界面编码与界面设计有所区别的原因,以及在这个不再使用难学或难用的设备和系统的世界中,开始编码前要进行大量工作的原因。
预编码考虑事项
任何优秀用户界面设计的第一阶段都应明确用户要求,并分析用户会执行必要任务的方式。因此至关重要的是要理解用户应完成的任务,以及他们会如何按优先顺序处理关键任务。从本质上讲,这一点适用于所有设计工作,但在医疗或航天系统等任务和安全关键型应用中尤其显得重要,因为其中的用户界面良好情况的确事关生死。有鉴于此,观察或记录用户处理类似任务的方式十分重要,而且考虑他们在现有系统中可能会遇到的问题和失败也往往大有裨益。
一旦他们了解了用户需要什么功能,设计员就能接着考虑界面的外观和体验,以及随后的工作流程。应与用户一起创建和讨论脚本及界面原型,并基于其反馈创建新的迭代次数。现代工具可对此提供帮助,不仅可协助实现原型的快速开发,还能让该作品用于成品而非一切从头开始。在整个过程中,设计员应努力创建一种直观、样式和功能一致且避免凌乱的界面。
除用户要求和任务分析以外,会影响用户界面设计的其他因素从操作环境(高强度环境光或像在许多医疗或工业自动化应用中,例如需要戴手套使用触摸屏以免影响图标尺寸、颜色和位置),到硬件和软件平台中的可移植性需要等不一而足。在此阶段还应考虑有必要使用多种语言版本的全球部署要求或网络功能整合需求。
图2.VIBXPERT II双通道FFT数据收集器和信号分析器采用图形用户界面并有效运用色彩。
设计环境和工具
设计员确定嵌入式用户界面的“大图片”要求后,接下来就需要软件工程师将该界面转变成现实。此时的设计环境及相关工具的选择会导致十分不同的结果,不仅对于成品,而且在项目开发成本和速度方面均会产生重大差别。
对于图形用户界面设计,设计环境必须是分开的;其中图形在一侧,源代码在另一侧。将此两者联系到一起可成功架接图形用户界面创建中设计与开发的工作,从上述的预编码问题开始推进。支持设计(美学)和开发(编码)图形策略的图形用户界面设计环境在此方面特别有利。在此类环境中,以图形方式表示的用户控制项同样会理想的以内在方式在目标平台包含所有所需代码以激活它们。在工程方面,这意味着面向对象的设计策略;通过选择元素,其固有的全部特征都将被激活,并且通过此“内在特征”,使用这些元素建造的任何内容都将确切无疑地可以访问单独元素的特征和功能。从表面上看,此类策略并不仅限于视觉元素;使用面向对象的方法开发的任何“组件”都可毫无疑问地继承其组件的特征,并将这些特征按照等级方式传递给使用它的任何其他组件。
这会对面向对象的编程语言(例如C++)架构起到支撑作用,并可从概念上扩展至支持面向对象的编程的图形设计环境。重要的是,面向对象的软件具有固有的可移植性,因为“组件”包含(通过遗传)为确定其功能所需的全部特征,从而降低了面向对象的代码对硬件的依赖。在大多数情况下,移植面向对象的软件只是一种针对不同架构的简单重新编译,至少无需使用针对具体功能的任何硬件或操作系统。在提供真正的交叉平台支持的现代框架中(例如Qt),该流程得到了进一步简化。此类可移植性可将新设计的开发开支降至最低,并在为嵌入式开发人员提供针对不同硅片价格点的不同路径的同时,使迁移现有设计变得更简单。例如,Qt可用于为采用低功耗和经济实惠型处理器的便携医疗装置创建界面,相同的代码可充分运用于较此更大型的器械,例如采用更高功率处理器的CAT或MRI扫描仪。
当今使用的一种处于领先地位的面向对象的程序语言是C++。在普遍应用的C语言基础上,C++ 是许多希望采用面向对象的方法的工程师的自然进展。通过采用面向对象的策略,将可创建一种开发“框架”,其中的模块库包含图形用户界面向导“组件”(或称为“类”),例如按钮、滑动条、窗口或标度盘以及嵌入式设备需要的其他功能性元素,包括联网、多媒体支持(视频编解码器)和国际化(语言)。这种解释型语言(例如Java)的优势可造成卓越或中等用户体验之间的差别。
图1.车载人机交互界面示例
嵌入式系统用户界面的演变
以前,许多嵌入式系统很少需要或不需要与终端用户直接关联,因此仅具有基本的用户界面要求(如有)。但随着嵌入式装置的性能逐渐增强并成为几乎所有电子系统的核心组件,它们的功能也应更便于用户操作。但自相矛盾的是,这会使它们的使用难度变得更高,进而导致更高的工作量用于避免用户面对复杂的操作。增添了诸如触屏控制、动态内容管理和网络访问等功能,用户界面设计(一般通过图形用户界面进行)目前很明显已成为嵌入式系统开发至关重要的元素。
但由于我们都已习惯了手机和平板电脑的易于使用性,即使是最基本的非消费电子产品设计也要满足直观、清楚、全面、快速和可靠的图形用户界面预期。这就为项目开发团队带来了压力,不仅是因为图形用户界面的开发在编码层面变得更复杂(并非始终有合适的“建造板块”可供许多嵌入式操作系统使用),还由于尽管任何具有优质显示器和充分处理能力的系统均可部署美观诱人的图形界面,但如果没有合适的功能工具,要创建互动式动态图形用户界面却十分困难。然而另一个未被充分认识的问题是,除合适的工具外,开发最佳的图形用户界面还需要额外的设计技能,这一点软件工程团队并非随时都具备。
当然,尽管功能是核心要素,但真正将最佳图形用户界面与基本可用的界面区别开来的还是“适用性”。软件工程师一般能实施满足功能规格的用户界面,但最佳的用户体验却只能源自更高级别的思考和理解,即该界面怎样才能有助于用户更出色地完成工作,或者以最简单或最快捷或最直观的方式取得预期结果。这正是界面编码与界面设计有所区别的原因,以及在这个不再使用难学或难用的设备和系统的世界中,开始编码前要进行大量工作的原因。
预编码考虑事项
任何优秀用户界面设计的第一阶段都应明确用户要求,并分析用户会执行必要任务的方式。因此至关重要的是要理解用户应完成的任务,以及他们会如何按优先顺序处理关键任务。从本质上讲,这一点适用于所有设计工作,但在医疗或航天系统等任务和安全关键型应用中尤其显得重要,因为其中的用户界面良好情况的确事关生死。有鉴于此,观察或记录用户处理类似任务的方式十分重要,而且考虑他们在现有系统中可能会遇到的问题和失败也往往大有裨益。
一旦他们了解了用户需要什么功能,设计员就能接着考虑界面的外观和体验,以及随后的工作流程。应与用户一起创建和讨论脚本及界面原型,并基于其反馈创建新的迭代次数。现代工具可对此提供帮助,不仅可协助实现原型的快速开发,还能让该作品用于成品而非一切从头开始。在整个过程中,设计员应努力创建一种直观、样式和功能一致且避免凌乱的界面。
除用户要求和任务分析以外,会影响用户界面设计的其他因素从操作环境(高强度环境光或像在许多医疗或工业自动化应用中,例如需要戴手套使用触摸屏以免影响图标尺寸、颜色和位置),到硬件和软件平台中的可移植性需要等不一而足。在此阶段还应考虑有必要使用多种语言版本的全球部署要求或网络功能整合需求。
图2.VIBXPERT II双通道FFT数据收集器和信号分析器采用图形用户界面并有效运用色彩。
设计环境和工具
设计员确定嵌入式用户界面的“大图片”要求后,接下来就需要软件工程师将该界面转变成现实。此时的设计环境及相关工具的选择会导致十分不同的结果,不仅对于成品,而且在项目开发成本和速度方面均会产生重大差别。
对于图形用户界面设计,设计环境必须是分开的;其中图形在一侧,源代码在另一侧。将此两者联系到一起可成功架接图形用户界面创建中设计与开发的工作,从上述的预编码问题开始推进。支持设计(美学)和开发(编码)图形策略的图形用户界面设计环境在此方面特别有利。在此类环境中,以图形方式表示的用户控制项同样会理想的以内在方式在目标平台包含所有所需代码以激活它们。在工程方面,这意味着面向对象的设计策略;通过选择元素,其固有的全部特征都将被激活,并且通过此“内在特征”,使用这些元素建造的任何内容都将确切无疑地可以访问单独元素的特征和功能。从表面上看,此类策略并不仅限于视觉元素;使用面向对象的方法开发的任何“组件”都可毫无疑问地继承其组件的特征,并将这些特征按照等级方式传递给使用它的任何其他组件。
这会对面向对象的编程语言(例如C++)架构起到支撑作用,并可从概念上扩展至支持面向对象的编程的图形设计环境。重要的是,面向对象的软件具有固有的可移植性,因为“组件”包含(通过遗传)为确定其功能所需的全部特征,从而降低了面向对象的代码对硬件的依赖。在大多数情况下,移植面向对象的软件只是一种针对不同架构的简单重新编译,至少无需使用针对具体功能的任何硬件或操作系统。在提供真正的交叉平台支持的现代框架中(例如Qt),该流程得到了进一步简化。此类可移植性可将新设计的开发开支降至最低,并在为嵌入式开发人员提供针对不同硅片价格点的不同路径的同时,使迁移现有设计变得更简单。例如,Qt可用于为采用低功耗和经济实惠型处理器的便携医疗装置创建界面,相同的代码可充分运用于较此更大型的器械,例如采用更高功率处理器的CAT或MRI扫描仪。
当今使用的一种处于领先地位的面向对象的程序语言是C++。在普遍应用的C语言基础上,C++ 是许多希望采用面向对象的方法的工程师的自然进展。通过采用面向对象的策略,将可创建一种开发“框架”,其中的模块库包含图形用户界面向导“组件”(或称为“类”),例如按钮、滑动条、窗口或标度盘以及嵌入式设备需要的其他功能性元素,包括联网、多媒体支持(视频编解码器)和国际化(语言)。这种解释型语言(例如Java)的优势可造成卓越或中等用户体验之间的差别。
自动化 嵌入式 电子 平板电脑 显示器 触摸屏 C语言 解码器 相关文章:
- 基于dsPIC30F2010的土壤水分测量仪的设计研究(08-27)
- 基于嵌入式系统的数据记录分析仪的硬件设计(06-28)
- 基于DSP的小型直流风扇自动化测试系统 (06-28)
- 基于DSP的变电站综合自动化系统(01-10)
- 基于DSP的变电站综合自动化系统设计(01-27)
- 功能原型设计系列:算法工程(03-19)