首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于μCOS的预定义UI交互设计 03

基于μCOS的预定义UI交互设计 03

预定义的菜单由3部分控制:
①菜单显示区域坐标。用来定义菜单显示区域左上角字符坐标(符号常量MENU_AREA_LT_X,MENU_AREA_LT_Y,)和右下角字符坐标(符号常量MENU_AREA_RB_X,MENU_AREA_RB_Y),显示的菜单要限制在这个区域中。
②菜单定义。设计一个结构体数组,数组中的每个结构体描述一个菜单项的各项设置,这个结构体数组称为“菜单定义结构体数组”(Menu Deftne Structure,MDS),在C代码中命名为Menu_Define[]。
③当前有效菜单项指针。定义一个整型变量,称为“菜单指针”(Menu Pointer,MP),MP的值与MDS的数组下标相对应,指明了当前有效的菜单项。菜单定义采用枚举类型标识,以提高代码的可读性。
    一个预定义的菜单由若干个菜单项组成,每个菜单项可以显示主显示内容和副显示内容两部分。程序运行后,主显示内容一旦定义则不改变,副显示内容是可变的。如图4(b)中,风电电压、风电电流是主显示内容,而其对应的电压、电流值是副显示内容。MDS是一个结构体数组,数组中每个元素(即每个“菜单项”)的结构如表1所示。

   
可响应按键集也是一个结构体数组,每个元素对应一个可以响应的按键,Key_Collection_Iterm定义如下:

部分菜单定义结构体数组成员说明:
i16uMenu_ID:菜单的标识符,如果在某菜单上发生了“RT_ACT”(执行)动作,则菜单任务根据菜单标识符执行相应的功能。
I16uAccessory_Type:副显示值类型,指明副显示内容的来源类型,包括常见的变量类型(char,char*,INT16U,INT16,INT32U,INT32,float,double)。
I16uResponse_Type:按键响应动作类型,指明对当前按键的响应动作,包括:当前有效菜单项改变为上临菜单项;当前有效菜单项改变为下临菜单项;当前有效菜单项改变为右临菜单项;当前有效菜单项改变为左临菜单项;当前有效菜单项改变为父菜单项;当前有效菜单项改变为子菜单项。依据当前有效菜单项ID执行相应操作,对应的枚举类型定义如下:
返回列表