液晶菜单设计(笔记)

源文件目录http://wenku.baidu.com/link?url=gUOQV-sFf-0YcSogu4aFYO3-FjBUG_OsbfyjQKksq_tm44SKQMBa5M2hn370yoGEGcuJqk397eAA8cGaS7O5ho8W-fA3DpWNT1T9pmEqzZm

/*----------------------------------------
-基于变量库和菜单库的树形拓扑液晶菜单数据结构。

----------------------------------------*/
typedef enum {INT=1;DW;FL}VarType;//INT字节型**;DW字型****;FL浮点数***.*
typedef enum {M_MAIN=1;M_VAR;M_SELCET;M_SET;M_CONST}MenuType;//显示主菜单、显示参数、显示单选项、显示设置项、显示常量

struct varlib{
u8 *V_Title;//字节型,存储某个变量的标题如“压力(Kp):";最后0表示显示的接束
VarType VType;
u8 VAddr_H;
u8 VAddr_L;
}VLIB[];

typedef struct {

u8 Menu_Level;//菜单级别
u8 Menu_Index;
u8 *M_Title;//字节型,存储某个菜单的标题如“压力显示界面:";最后0表示显示的接束
MenuType MType=M_MAIN;
u8 var_num;//本菜单要显示的变量数
u8 V_Index;//变量的索引编号即VLIB[]中的索引号
u8 UP_Menu_Index;
}M_Menu;

typedef struct {

u8 Menu_Level;//菜单级别
u8 Menu_Index;//菜单编号
u8 *M_Title;//字节型,存储某个菜单的标题如“压力显示界面:";最后0表示显示的接束
MenuType MType=M_VAR;
u8 var_num;//本菜单要显示的变量数
u8 V_Index;//变量的索引编号即VLIB[]中的索引号
u8 UP_Menu_Index;
}M_VAR;

typedef struct {

u8 Menu_Level;//菜单级别
u8 Menu_Index;//菜单编号
u8 *M_Title;//字节型,存储某个菜单的标题如“压力显示界面:";最后0表示显示的接束
MenuType MType=M_SELCET;
u8 V_Index;//变量的索引编号即VLIB[]中的索引号
u8 Dowm_Menu_Num;
u8 Dowm_Menu_Index;
u8 UP_Menu_Index;
}M_SELCET;

typedef struct {

u8 Menu_Level;//菜单级别
u8 Menu_Index;//菜单编号
u8 *M_Title;//字节型,存储某个菜单的标题如“压力显示界面:";最后0表示显示的接束
MenuType MType=M_SET;
u8 var_num;//
u8 V_Index;//变量的索引编号即VLIB[]中的索引号
}M_SET;

typedef struct {

u8 Menu_Level;//菜单级别
u8 Menu_Index;//菜单编号
u8 *M_Title;//字节型,存储某个菜单的标题如“压力显示界面:";最后0表示显示的接束
MenuType MType=CONST;
u8 Row_count;//显示几行?
u8 *pRow;//各行要显示的内容。
u8 V_Index;//变量的索引编号即VLIB[]中的索引号
}M_CONST;

/*----------------------------------------
-主菜单: 菜单编号、标题内容、菜单类型=1、下属菜单的个数/编号、上层菜单编号(若干数字标示的子菜单)
-显示参数:菜单编号、标题内容、菜单类型=2、所涉及变量的个数及对应编号、上层菜单编号
-选择菜单:菜单编号、标题内容、菜单类型=3、所涉及变量的编号、下属菜单的个数/编号、上层菜单编号(若干数字标示的子菜单)
-设定参数:菜单编号、标题内容、菜单类型=4、设定变量的个数/编号、上层菜单编号
-常量显示菜单:菜单编号、标题内容、菜单类型=5、行号、各行内容、上层菜单编号
-密码屏:密码数字要显示*的特殊处理。
----------------------------------------*/

树形多级循环显示:特点:修改不方便。分层(级)菜单做成二维数组指针void *p[]={&levle1;&levle2;&levle3},第一维为级别,因为各维的数组不一致;同时设定一个层(级别)级的菜单计数器menu_count与二维菜单一一对应,根据按键可以修改菜单计数器以便显示程序根据菜单计数器调用不容的菜单程序;

修改状态(用下划线或反白闪烁)、菜单项的选择用*或>或实心圆圈指示。根据所在的模块根据几个按键以修改和显示“选定项修改计数器”或“参数修改计数器”,注意对于这2个计数器在显示初始化和边界时的处理

屏幕ID+键盘+数据结构:定义一个数据结构:包含一个唯一的状态ID的索引,在按下各键(上、下、左、右、确定、取消、设定、菜单)转向的ID,优点调试维护方便。

左右为光标键,上下位修改值+-1键;确定为进入本级菜单项;ESC为返回上级菜单。

http://wenku.baidu.com/link?url=6SBG-fYaQJPAVr9sgaSaxukS3Hc33oU0cajLprG3jNb6WRl9jlbKXHS0t0X3IF9Sh7x8vY87IfxDGT1cchR2BUO_D9s_01djQ8jmLncyURy

或者按一定格式定义一个SIF文件(即将一整屏幕的内容按显示格式填充。不同屏的显示内容以指针区别)修改比较麻烦。

时间: 2024-08-30 11:20:35

液晶菜单设计(笔记)的相关文章

深入浅出面向对象分析与设计笔记

1.在搜索匹配时注意大小写问题. 2.别为了解决旧问题而产生新问题. 3.使用enum的好处:使用enum的方法或类会受到它的保护,不会有未定义的enum的值.因此不会有打错字或拼错字,对任何具有标准范围或合法值的东西都能避免取得坏数据. 4.任何时候看到重复程序代码,就找个地方进行封装. 5.委托: 6.Java匿名内部类是一种特殊的继承方式,既可以扩展类,也可以实现接口,但是不能两者兼备,而且若实现接口也只能实现一个接口.由于其没有名字,因此不会有命名构造器,但可以实例初始化.如果定义一个匿

团队项目:菜单设计

在游戏的设计过程中,进入游戏,选择关卡,退出游戏这三种基本状态间的转换控制十分重要,为此我们为菜单设计了状态机来表示不同的状态以及状态间的转换.以下是菜单状态机的详细设计: 状态0:开始菜单 start按钮:state=5;//进入状态5 manual按钮:state=2;Application.LoadLevel("manual");//进入状态2,读取场景manual quit按钮:state=3; //进入状态3 图1 开始菜单 状态1:运行关卡 reset按钮:Applicat

html和css实现一级菜单和二级菜单学习笔记

实现一级菜单: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>menu1.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta ht

何时使用汉堡包菜单设计

汉堡包菜单,也叫侧边栏菜单.它由三个堆叠线条(你可以形象的想象成汉堡包中上下的两个面包和中间的肉)的图标用于表示菜单.点击图标时,会显示可用的导航选项.很多设计师写的有关汉堡包菜单设计的文章,都不看好这种设计.总结其缺点,主要体现在:1.可发现性较低:2.效率较低:3.与系统的导航模式冲突:4.不够一目了然.大家如果感兴趣的话,可以搜索相关文章详细了解一下.但究其根本,并不是图标本身,而是隐藏在图标后面导航选项. 尽管如此,在某些情况下,汉堡包菜单设计可能是一个不错的选择. 如:汉堡包菜单作为辅

Excel 输入数据的效率 - 下拉式菜单设计 (三之二)

摘要:Excel 输入数据的效率 - 下拉式菜单设计 (三之二) 在前文"Excel输入数据的效率-下拉式菜单设计(三之一)中曾经提到单一选项菜单的设计方式.这种菜单的缺点在于:菜单中的客户编号一多,就很难记得那一个编号对应到那一家客户.如此一来,就容易告成选错的现像发生.因此,必须使"多重选项"的菜单来解决此一问题.所谓"多重选项"是指:能在菜单中同时看到客户编号和客户名称.这么一来,就不会选错客户编号了. 全文介绍:http://support.mic

.NET CORE(C#) WPF 值得推荐的动画菜单设计

微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. .NET CORE(C#) WPF 值得推荐的动画菜单设计 阅读导航 本文背景 代码实现 本文参考 源码 1. 本文背景 YouTube上老外的一个设计,站长觉得不错,分享给大家作为参考,抽屉菜单的动画做的非常不错. 运行起始界面: 站长运行操作一遍,录制了动画大家看看: 2. 代码实现 使用 .NET CORE 3.1 创建名为 "AnimatedMenu" 的WPF模板项目,添

学习响应式设计笔记

                       [email protected] Contents 1.?问题背景? 2.?什么是响应式设计和自适应设计有什么不同? 3.?如何创建响应式网站 4.?经典设计流程 5.?响应式网站的参照设计 1.?问题背景? 为不同分辨率的设备提供不同的网页,曾经的手机端与PC端分别维护一份代码,显得罗嗦,维护难,功能可能不统一等等. 只用一份代码,就可以在不同的设备上获得很好的显示效果. 每个设备都得到正确的设计 更少的工作 搜索优化 曾经手机端和PC端是两个不

【数据库设计-3】菜单设计

场景 我们在使用数据库时,经常会遇到菜单选项,比如个人信息表中有: "性别":男.女: "学历":大专以下.大专.本科.硕士及以上: "英语等级":英语四级.英语六级.专业八级: 等等: 这些菜单选项肯定需要在数据库中进行维护,当数据表很多时,菜单选项可能都会达到上百个,该如何设计呢? 下面将讲解设计方法. (设计方法不唯一,本人总结的也不代表最好的,仅供参考). 数据表设计 总共包含4个表,分别如下: 1. 2. 3. 4. 具体示例 1. 若

MXNet设计笔记之:深度学习的编程模式比较

市面上流行着各式各样的深度学习库,它们风格各异.那么这些函数库的风格在系统优化和用户体验方面又有哪些优势和缺陷呢?本文旨在于比较它们在编程模式方面的差异,讨论这些模式的基本优劣势,以及我们从中可以学到什么经验. 我们主要关注编程模式本身,而不是其具体实现.因此,本文并不是一篇关于深度学习库相互比较的文章.相反,我们根据它们所提供的接口,将这些函数库分为几大类,然后讨论各类形式的接口将会对深度学习编程的性能和灵活性产生什么影响.本文的讨论可能不只针对于深度学习,但我们会采用深度学习的例子来分析和优