用C语言写HMI程序,HMI画面元素组成设计及代码生成方法与流程

技术领域本发明涉及一种HMI画面元素组成设计及代码生成方法,属于人机界面领域。

背景技术:

HMI是HumanMachineInterface的缩写,“人机接口”,也叫人机界面。嵌入式开发中HMI画面元素组成设计及代码的自动生成工具的开发是为了解决嵌入式开发中,许多嵌入式操作系统没有相应的控件及图形描画接口支持,只有简单的点、线、面、文字及简单的显示图片接口。由此造成HMI画面元素组成设计及焦点控制中,工作量大、效率低、重复工作多等问题。

技术实现要素:

本发明的目的在于提供一种HMI画面元素组成代码生成方法。本发明采用了如下技术方案:一种HMI画面元素组成设计及代码生成方法,其特征在于,包括如下步骤:步骤一、分解分解画面元素的组成结构;步骤二、在HMI的DM画面模板上填写画面信息;步骤三、在HMI的DM画面模板上填写画面的元素信息;步骤四、在HMI的DM画面模板上填写画面的元素坐标位置信息;步骤五、将步骤二到步骤四的信息写入画面数据文件;步骤六、在HMI的DM消息模板上填写消息框信息,本步骤与步骤二同时进行;步骤七、将消息框信息写入消息框数据文件中;步骤八、在步骤五和步骤七生成的数据文件中,选择需要造成代码的文档,使用代码生成工具生成代码。进一步,本发明的HMI画面元素组成设计及代码生成方法,还可以具有这样的其特征:其中,步骤一中,画面元素组成结构中的图形分为两大类,分别是画面和消息框。进一步,本发明的HMI画面元素组成设计及代码生成方法,还可以具有这样的其特征:其中,所述画面的类型包括:主画面、普通菜单画面、带按钮的菜单画面、滚动画面、时间设置画面、输入法画面。进一步,本发明的HMI画面元素组成设计及代码生成方法,还可以具有这样的其特征:其中,所述画面中的画面元素包括:文本框、可编辑文本框、单选框、多选框、图片框、标签框。进一步,本发明的HMI画面元素组成设计及代码生成方法,还可以具有这样的其特征:画面元素的信息还包括:位置、大小、背景图片和焦点位置。进一步,本发明的HMI画面元素组成设计及代码生成方法,还可以具有这样的其特征:其中,所述画面数据文件为xls格式的文件。进一步,本发明的HMI画面元素组成设计及代码生成方法,还可以具有这样的其特征:其中,所述消息框信息的数据文件为xls格式的文件。进一步,本发明的HMI画面元素组成设计及代码生成方法,还可以具有这样的其特征:其中,所述画面元素还包括:进度条和滚动条。进一步,本发明的HMI画面元素组成设计及代码生成方法,还可以具有这样的其特征:消息框包括标签框、文本框以及图片框。进一步,本发明的HMI画面元素组成设计及代码生成方法,还可以具有这样的其特征:消息框信息包括消息内容和按钮定义。发明的有益效果本发明的HMI画面元素组成设计及代码生成方法,通过对画面元素最底层的分解及结构化的处理,以及对画面表示及焦点控制的统一管理,提高了生产效率,减少了错误发生的概率。附图说明图1是HMI画面元素组成设计及代码生成方法的流程图;图2是实施例中的目的HMI界面图;图3是代码文件生成之后在终端机上运行从而形成HMI界面的过程图。具体实施方式以下结合附图来说明本发明的具体实施方式。如图1所示,HMI画面元素组成设计及代码生成方法,包括如下步骤:步骤101、分解画面元素组成结构。画面元素组成结构采用种类归纳的原则把相同的画面种类归纳为一类,如主画面、普通菜单画面、带按钮的菜单画面、滚动画面、时间设置画面、输入法画面等;并把画面中的画面元素按不同类型分解成文本框、可编辑文本框、单选框、多选框、图片框、标签框、进度条、滚动条等类型。在分解画面元素组成结构时,首先判断当前图形是属于画面还是消息框,如果是画面则分析画面类型,如画面类型是上述的主画面、普通菜单画面、带按钮的菜单画面、滚动画面、时间设置画面、输入法画面中的哪一种,通过画面内容在管理控制或操作时的共通性及差异性的特征来区分画面类型,以及位置、大小、背景图片、焦点位置等画面元素的信息,然后把画面元素信息分解后填写在模板上并填写元素的位置坐标信息。步骤102、在HMI的DM画面模板上填写画面元素的信息。DM画面是画面显示管理使用到的画面,即嵌入式系统状态变化时需要显示的画面。DM画面模板指图1中的HMI_DM_ScreenData.xls和HMI_DM_MsgboxData.xls两个文件。如果是画面则在HMI_DM_ScreenData.xls画面模板中填写内容,如果是画面中的消息框则在HMI_DM_MsgboxData.xls消息模板中填写内容。HMI_DM_ScreenData.xls是Screen(画面背景)、Item(元素部件)、Coordinate(位置坐标)的数据文件,该文件初始为空的格式模板,用户根据画面元素构成定义向模板中填写相关的画面背景、元素部件、位置坐标等信息。该文件的作用是供给数据创建工具提取解析并生成HMI_DM_ScreenInfo.h、HMI_DM_ScreenInfo.cpp、HMI_DM_ItemInfo.h、HMI_DM_ItemInfo.cpp、HMI_DM_CoordinateInfo.h、HMI_DM_CoordinateInfo.cpp等6个C语言画面结构定义文件时使用。HMI_DM_MsgboxData.xls:Msgbox的数据文件,该文件初始为空的格式模板,根据消息框的元素构成定义向模板中填写相关的消息内容及按钮定义。该文件的作用是提供给DataCreateTool工具解析提取并生成HMI_DM_MsgboxInfo.h、HMI_DM_MsgboxInfo.cpp等2个C语言消息框结构定义文件时使用。步骤103、在HMI的DM画面模板HMI_DM_ScreenData.xls文件上填写画面元素的信息。步骤104、在HMI的DM画面模板上填写画面元素的坐标位置信息。步骤105、将步骤102到步骤104的信息写入画面数据文件,形成填写好数据的HMI_DM_ScreenData.xls数据文件。步骤106、在HMI的DM消息模板上填写消息框信息,本步骤与步骤102同时进行。步骤107、将消息框信息写入数据文件中,本实施方式中消息框信息的数据文件为HMI_DM_MsgboxData.xls。步骤108、在步骤105和步骤107生成的数据文件中,选择需要形成代码的文档,使用代码生成工具生成代码。代码生成工具的工作过程是:提取解析HMI_DM_ScreenData.xls文件并生成HMI_DM_ScreenInfo.h、HMI_DM_ScreenInfo.cpp、HMI_DM_ItemInfo.h、HMI_DM_ItemInfo.cpp、HMI_DM_CoordinateInfo.h、HMI_DM_CoordinateInfo.cpp等6个画面结构定义文件。提取解析HMI_DM_MsgboxData.xls文件并生成HMI_DM_MsgboxInfo.h、HMI_DM_MsgboxInfo.cpp等2个消息框结构定义文件。下面以形成图2中的HMI界面为例,进一步说明。如图2所示,若要生成如图中所示的HMI界面的代码,步骤如下:1.定义画面ScreenID:0x0033、ScreenType:0x01(普通画面)、PreviewFlag:HMI_DM_DISPLAY(显示模式)、XStartPoint(X轴起点):0、YStartPoint(Y轴起点):0、Width(宽度):400、Height(高度):234、BackImg(背景图片):0xffffffff(无背景图片)、FocusPos(焦点):0x00(初始焦点)、InitActiveListID:0x00、ListCapacity:0x06(listitem总数)填入Screen模板。2.把画面分解为11个画面元素,0x00~0x05是Text文本、0x06是图片、0x07~0x0B是菜单,并把相关信息填入Item模板。3.把已分解的11个画面元素的坐标位置定义信息填入Coordinate模板。4.保存HMI_DM_ScreenData.xls模板文件。5.使用代码生成工具生成文件。代码文件生成之后,在终端机上运行从而形成HMI界面的过程如下,如图3所示:1.FSM有限状态机发生状态变化时通过DMInterface接口调用画面管理模块(ScreenManager)和消息框管理模块(MsgboxManager)。2.画面管理模块通过画面信息管理模块调用自动生成画面信息代码HMI_DM_ScreenInfo.h、HMI_DM_ScreenInfo.cpp、HMI_DM_ItemInfo.h、HMI_DM_ItemInfo.cpp、HMI_DM_CoordinateInfo.h、HMI_DM_CoordinateInfo.cpp组织画面信息显示数据。3.画面管理模块通过取得的画面信息显示数据直接调用GUI系统包或通过调用元素部件管理模块(ItemManager)调用GUI系统包达到HMI界面的描画。4.消息框管理模块取得自动生成的消息框代码HMI_DM_MsgboxInfo.h、HMI_DM_MsgboxInfo.cpp等2个消息框结构定义文件组织消息框显示数据并通过调用GUI系统包显示HMI消息界面。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值