表1的定义给消息定义提供一个依据。按功能键送入一个OK消息,按取消键则发送了一个CANCEL消息,其他按键事件以此类推。于是我们便得到一个消息枚举量的定义。
界面状态定义。把人机交互工作分为工作、验证和设置状态。每种状态用一个MenuStatus枚举常量表示,NORMAL表示工作状态,CHECKI-NG表示验证状态,SETHNG表示设置状态。正常工作时处于NORMAL状态,一旦按下功能键会进入菜单成为验证或设置态。
交互行为定义如下:
1)常态时默认为各通道实时数据循环显示,有报警时,可显示报警标识;
2)默认常态下按功能键进入1层菜单,按上翻键、下翻键显示1-、2-、3-、…、14-Reset;
3)状态2-和状态4-可用作扩展;
4)状态3-时,按功能键进入日期时间设置菜单,按上翻键、下翻键显示日期、时间,设置好后,按功能键确定退出;
5)状态4-时,按功能键进入参数设置菜单,按上翻键、下翻键显示4-1、4-2、4-3……、4-19,表示通道选择;
状态4-x时,按功能键进入x通道的参数设置菜单,按上翻键、下翻键显示4-x-O、4-x-2、4-x-3、…、4-x-8时,按功能键进入x通道的y(0≤y≤8)参数设置菜单,按加1键、减1键和移位可以进行参数修改操作;修改好参数按功能键确定退出;
6)在任一状态时,按Key7则返回上层;
7)在任一状态时,按取消键可返回常态。
然后按照上面定义的交互行为,定义菜单节点的功能函数。在菜单的创建时把函数的指针赋值给节点。该模型同样可以用于实现通过通信进行的交互。
上述HCI的实例,不但实现简洁,开发效率高,而且是结构开放性的,便于界面规模的控制。
6 结束语
通过工程实践验证,该基于可适应性考虑的嵌入式HCI方案有如下特点:
1)易于维护,在拓扑结构不变的情况下,随按键或输入的不同,数据结构易于加以修改。菜单节点可以随实际项目需求增减成员,代理类也可随实际需求修改。
2)开放性好,便于扩展。只要内存容量允许,菜单规模理论上不受限,并且增删节点容易实现。菜单结构可以静态声明,也可以使用动态内存分配。
3)通用性强,不但适应于Led数码管与按键的组合,而且适应于LCD屏幕与按键或触摸屏。只要是用户与系统交互,能产生消息驱动的地方都可以使用。
4)效率高,从根节点到任一节点的路由不需要软件实现,由用户交互决定。虽然是网状模型,但对用户而言,从功能上仍是个层状结构,脉络比较清楚,容易被开发人员掌握。
另外,在具体应用中,可适应性的实现还可能以混合的模式出现。
未来的研究是考察在宿主机与目标机交互的情况下,如何实现HCI方案到目标机的迁移,实现目标机HCI动态配置。
上一篇:64位MIPS的起源,回顾及展望