CN104199671A - 一种易移植小型图形系统的实现方法 - Google Patents
一种易移植小型图形系统的实现方法 Download PDFInfo
- Publication number
- CN104199671A CN104199671A CN201410470132.0A CN201410470132A CN104199671A CN 104199671 A CN104199671 A CN 104199671A CN 201410470132 A CN201410470132 A CN 201410470132A CN 104199671 A CN104199671 A CN 104199671A
- Authority
- CN
- China
- Prior art keywords
- function
- graphics system
- implementation
- parameter
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种易移植小型图形系统的实现方法,由四个部分组成:创建基础图形元素并构建其实现模型、创建更上一层图形元素并构建其实现模型、构建图形系统的功能实现模型、构建图形系统对外接口模型。创建基础图形元素并构建其实现模型、创建更上一层图形元素并构建其实现模型、构建图形系统的功能实现模型,是本发明所述一种易移植小型图形系统的核心部分,该部分独立实现,与各类操作系统无关联,与设备物理层无关联,与应用层软件无关联;构建图形系统对外接口模型,其中的对设备物理层的接口模型提供接口函数的框架,函数内部具体实现根据使用图形系统的具体环境而采用不同的设计,对外部应用层软件的接口模型提供具体的功能接口函数。
Description
技术领域
本发明属于嵌入式操作系统领域和单片机软件领域,尤其涉及一种易移植小型图形系统的实现方法。
背景技术
近些年来,随着科学技术的发展和各行各业自动化水平的不断提高,电子设备对嵌入式操作系统的应用也越来越频繁和广泛,同时电子设备中的中央处理器也由简单的不含操作系统的单片机向复杂的可运行嵌入式操作系统的CPU转型。随着用户需求的不断增加和复杂化,许多电子设备大量的升级换代,在中央处理器由单片机向嵌入式CPU转换的过程中,相应的设备软件也需要移植或者重新开发,其中通过显示屏实现的界面显示功能是需要移植的一个重要功能,而从没有图形系统的单片机上移植界面到嵌入式操作系统中几乎就是一个重新开发的过程,虽然嵌入式操作系统中的许多图形系统如GTK、QT功能都非常强大,但是这些图形系统真正运用起来却并非易事,且运行时非常消耗设备内存和CPU资源,再者许多电子设备的应用场合对界面的应用需求并非很高,绝大部分只会用到图形系统的一些基本功能,所以类似GTK、QT这样的图形系统许多复杂功能根本不会被应用,基于这种状况,市场上迫切需要一种既可以在单片机上运行也可以在嵌入式操作系统中运行的小型图形系统的实现方法。
发明内容
为了解决上述的技术问题,本发明提供了一种既可以在单片机上运行也可以在嵌入式操作系统中运行的小型图形系统的实现方法。
本发明所采用的技术方案是:一种易移植小型图形系统的实现方法,所述的小型图形系统与各类操作系统无关联,与设备物理层无关联,与应用层软件无关联,易于在各类嵌入式操作系统和单片机软件平台下移植;其特征在于,包括以下步骤:
步骤1:创建基础图形元素的数据结构,构建基础图形元素的实现模型;
步骤2:根据步骤1中创建的基础图形元素的数据结构和构建的基础图形元素的实现模型,创建更上一层图形元素的数据结构,构建更上一层图形元素的实现模型;
步骤3:根据步骤1和步骤2中创建的基础图形元素和更上一层图形元素的数据结构以及构建的各自的实现模型,构建图形系统的功能实现模型;
步骤4:根据步骤1和步骤2中创建的基础图形元素和更上一层图形元素的数据结构、构建的各自的实现模型以及步骤3中构建的图形系统的功能实现模型,构建图形系统对外接口模型。
作为优选,步骤1中所述的基础图形元素包括点、线、矩形框、矩形块、字符、图标、位图。
作为优选,步骤1中所述的基础图形元素的实现模型包括实现这些基础图形元素的C函数框架和实现方法。
作为优选,步骤2中所述的更上一层图形元素包括窗体、消息框、状态栏、各类控件,所述各类控件包括菜单、文本框、单行编辑框、多行编辑框、标签、光标、滚动条。
作为优选,步骤2中所述的更上一层图形元素的实现模型包括实现这些更上一层图形元素的C函数框架和实现方法。
作为优选,步骤3中所述的构建图形系统的功能实现模型包括构建图形系统的一般功能实现模型、构建图形系统的绘制功能实现模型和构建图形系统的输入法功能实现模型。
作为优选,所述的一般功能实现模型包括设置焦点控件、切换焦点控件、在编辑框中移动光标、向编辑框内输入字符并记录、各类控件响应确定键、窗体和消息框响应取消键、各类控件响应方向键、各类控件响应数字键这些功能的C函数框架和实现方法。
作为优选,所述的绘制功能实现模型包括绘制窗体、绘制消息框、绘制控件,所述绘制控件包括绘制图标、绘制位图、绘制菜单、绘制文本框、绘制单行编辑框、绘制多行编辑框、绘制标签这些功能的C函数框架和实现方法。
作为优选,所述的输入法功能实现模型包括数字输入、英文字母输入、符号输入、拼音法输入汉字、输入法切换这些功能实现的C函数框架和具体实现方法。
作为优选,步骤4中所述的构建图形系统对外接口模型包括构建图形系统对设备物理层的接口模型和构建图形系统对外部应用层软件的接口模型。
作为优选,所述的设备物理层指的是不包含在本图形系统中的与显示屏硬件相关的电路设计和操作逻辑,所述的对设备物理层的接口模型包括获取显示屏硬件设备句柄的接口C函数框架、获取显示屏操作物理地址的接口C函数框架、显示屏物理层初始化接口C函数框架。
作为优选,所述的外部应用层软件指的是不包含在本图形系统中的使用本图形系统来创建人机界面并完成某些界面功能的软件,所述对外部应用层软件的接口模型包括对步骤1中实现基础图形元素的C函数和步骤2中实现更上一层图形元素的C函数进一步封装、对步骤3中功能实现的C函数的进一步封装、获取当前窗体指针的接口C函数、获取当前消息框指针的接口C函数、获取当前窗体焦点控件的接口C函数。
本发明提供的方法是一种既可以在单片机上运行也可以在嵌入式操作系统中运行的小型图形系统的实现方法。本发明提供的方法能够生成很容易在单片机软件和嵌入式操作系统中运行的C语言代码。
附图说明
图1:是本实施例的易移植小型图形系统的结构组成框图。
图2:是本实施例的创建基础图形元素并构建其实现模型的框图。
图3:是本实施例的创建更上一层图形元素并构建其实现模型的框图。
图4:是本实施例的构建图形系统功能实现模型的框图。
图5:是本实施例的构建图形系统对外接口模型的框图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
请见图1、图2、图3、图4和图5,本发明提供的一种易移植小型图形系统的实现方法,由四个部分组成:创建基础图形元素并构建其实现模型、创建更上一层图形元素并构建其实现模型、构建图形系统的功能实现模型、构建图形系统对外接口模型。请见图1,框在虚线中的三个部分:创建基础图形元素并构建其实现模型、创建更上一层图形元素并构建其实现模型、构建图形系统的功能实现模型,是本发明所述一种易移植小型图形系统的核心部分,该部分独立实现,与各类操作系统无关联,与设备物理层无关联,与应用层软件无关联,第四个部分:构建图形系统对外接口模型,其中的对设备物理层的接口模型提供接口C函数的框架,函数内部具体实现根据使用图形系统的具体环境而采用不同的设计,对外部应用层软件的接口模型提供具体的、完整的接口C函数。
在显示技术中,显示单元的最小单位是单个的点,在点的基础上构造线和面。本发明中线专指直线,直线用于构造矩形框、矩形块。点也可用来直接构造面,字符、图标、位图都是由点直接构造,其中,字符是一种特殊的面。上述的这些图形元素在本发明中称为基础图形元素,在基础图形元素的基础上可再构建更上一层图形元素,这些图形元素由各种特性构成,归属于某一种图形元素的特性称为该种图形元素的属性,图形元素的属性在具体的物理显示设备上被量化后就得到期望的显示结果,这些量化的属性如果用C语言来表达则称为创建该图形元素的数据结构。而用C语言编程并在具体的物理显示设备上量化图形元素属性的统一操作方法和接口则称为构建图形元素的实现模型,量化图形元素属性的操作也可称为绘制图形元素。
本发明的具体实现包括以下步骤:
步骤1:创建基础图形元素的数据结构,构建基础图形元素的实现模型;其中基础图形元素包括点、线、矩形框、矩形块、字符、图标、位图;基础图形元素的实现模型包括实现这些基础图形元素的C函数框架和实现方法。
基础图形元素包括点、线、矩形框、矩形块、字符、图标、位图,这些基础图形元素各自包含属性列表如下表1,打钩的格子表示列表中该格子横向对应的图形元素包含该格子纵向对应的属性,未打钩的格子表示该格子横向对应的图形元素不包含该格子纵向对应的属性;
表1
各基础图形元素的C函数框架和实现方法描述如下:
绘制点的函数:
void guiLcdBspDrawDot
(
参数:点的数据结构定义的变量指针
)
{
第1步:判断点的坐标是否在显示范围内;
第2步:根据显示方向设置的数值转换点的坐标为物理坐标;
第3步:调用对外接口刷显示屏设备,将点显示在对应坐标。这里的对外接口要么是获得显示屏的硬件设备句柄,要么是获取显示屏的操作物理地址,具体在步骤4中描述。
}
绘制线的函数:
void guiLcdBspDrawLine
(
参数1:线的数据结构定义的变量指针
参数2:线的模式:0—实线,1—虚线
)
{
第1步:判断线的显示区域是否在显示范围内;
第2步:根据显示方向设置的数值转换线的坐标为物理坐标;
第3步:调用对外接口刷显示屏设备,将线在对应坐标绘出。这里的对外接口要么是获得显示屏的硬件设备句柄,要么是获取显示屏的操作物理地址,具体在步骤4中描述。
}
绘制矩形框的函数:
void guiLcdBspDrawRect
(
参数:矩形框所在范围矩形的数据结构定义的变量指针
)
{
第1步:判断矩形框的显示区域是否在显示范围内;
第2步:调用绘制线的函数依次绘制矩形框的左、右、上、下四根线段。
}
绘制矩形块的函数:
void guiLcdBspDrawBlock
(
参数:矩形块所在范围矩形的数据结构定义的变量指针
)
{
第1步:判断矩形块的显示区域是否在显示范围内;
第2步:调用绘制线的函数逐行扫描绘制横线直到矩形块绘制完毕。
}
绘制字符的函数:
int guiLcdBspDrawStr
(
参数1:待取字模的字符缓存首地址
参数2:待取字模的点阵类型
参数3:取到的字模数据存放缓存首地址
参数4:字符所在范围矩形的数据结构定义的变量指针
)
{
第1步:判断待取字模点阵类型并做分支,这里字模分为16×16、24×24、32×32点阵;
第2步:根据字符的值判断是ASCII字符还是汉字国标码,并在对应的字库中定位到该字符的字模起始地址后取出字模数据;
第3步:根据颜色模式分支,将该字符的字模数据转换成带颜色值的字模数据或不转换,若颜色模式为黑白单色则字模数据不用转换;
第4步:将转换后带颜色的字模数据填到临时的显示缓存中;
第5步:继续转换并填充下一个字符的字模数据到临时的显示缓存中;
第6步:需要显示的字符全部转换、填充完毕后,根据字符的数据结构变量中的坐标值判断字符显示区域是否在显示范围内,并根据显示方向设置的数值转换显示坐标为物理坐标;
第7步:调用对外接口刷显示屏设备,将字符在对应坐标绘出。这里的对外接口要么是获得显示屏的硬件设备句柄,要么是获取显示屏的操作物理地址,具体在步骤4中描述。
}
绘制图标的函数:
void guiLcdBspDispIcon
(
参数1:图标数据缓存首地址
参数2:图标所在范围矩形的数据结构定义的变量指针
)
{
第1步:判断图标的显示区域是否在显示范围内;
第2步:根据显示方向设置的数值转换图标的坐标为物理坐标;
第3步:调用对外接口刷显示屏设备,将图标在对应坐标绘出。这里的对外接口要么是获得显示屏的硬件设备句柄,要么是获取显示屏的操作物理地址,具体在步骤4中描述。
}
绘制位图的函数:
void guiLcdBspDrawColorBmp
(
参数1:位图数据缓存首地址
参数2:位图所在范围矩形的数据结构定义的变量指针
)
{
第1步:判断位图的显示区域是否在显示范围内;
第2步:根据显示方向设置的数值转换位图的坐标为物理坐标;
第3步:调用对外接口刷显示屏设备,将位图在对应坐标绘出。这里的对外接口要么是获得显示屏的硬件设备句柄,要么是获取显示屏的操作物理地址,具体在步骤4中描述。
}
步骤2:根据步骤1中创建的基础图形元素的数据结构和构建的基础图形元素的实现模型,创建更上一层图形元素的数据结构,构建更上一层图形元素的实现模型;
其中更上一层图形元素包括窗体、消息框、状态栏、各类控件,所述各类控件包括菜单、文本框、单行编辑框、多行编辑框、标签、光标、滚动条,这些更上一层图形元素各自包含属性列表如表2-1、表2-2、表2-3、表2-4、表2-5、表2-6、表2-7和表2-8,打钩的格子表示列表中该格子横向对应的图形元素包含该格子纵向对应的属性,未打钩的格子表示该格子横向对应的图形元素不包含该格子纵向对应的属性;
表2-1
表2-2
表2-3
表2-4
表2-5
表2-6
表2-7
表2-8
其中更上一层图形元素的实现模型包括实现这些更上一层图形元素的C函数框架和实现方法。各更上一层图形元素的C函数框架和实现方法描述如下:
定义并量化窗体函数:
int guiCreateWnd
(
参数:窗体的数据结构定义的变量指针
)
{
第1步:获取当前激活任务的窗体数据缓存指针;
第2步:保存当前窗体数据到窗体的栈缓存链表中;
第3步:将参数中的窗体数据结构定义的数据填到当前激活任务的窗体数据缓存中;
第4步:置起窗体更新标志为全部更新。
}
定义并量化消息框函数:
int guiCreateMsgbox
(
参数:消息框的数据结构定义的变量指针
)
{
第1步:获取当前激活任务的消息框数据缓存指针;
第2步:将参数中的消息框数据结构定义的数据填到当前激活任务的消息框数据缓存中;
第3步:置起消息框更新标志。
}
定义、量化并刷新状态栏函数:
void guiLoadStateBar
(
参数1:状态栏所在范围矩形的数据结构定义的变量指针
参数2:需要刷新的图标或文本标志
)
{
第1步:若为初始化状态则根据参数1刷新状态栏所在范围矩形;
第2步:根据参数2刷新对应的图标或文本。
}
定义并量化菜单控件函数:
void guiLoadMenu
(
参数1:菜单控件的数据结构定义的变量指针
参数2:当前窗体的变量指针
)
{
第1步:获取当前激活任务的控件数据缓存指针;
第2步:将参数1中的菜单控件数据结构定义的数据填到当前激活任务的控件数据缓存中;
第3步:将本控件与当前窗体下其它控件链接起来;
第4步:判断本控件是否为焦点控件并记录焦点控件;
第5步:更新所属窗体的最大偏移。
}
定义并量化文本框控件函数:
void guiLoadText
(
参数1:文本框控件的数据结构定义的变量指针
参数2:当前窗体的变量指针
)
{
第1步:获取当前激活任务的控件数据缓存指针;
第2步:将参数1中的文本框控件数据结构定义的数据填到当前激活任务的控件数据缓存中;
第3步:将本控件与当前窗体下其它控件链接起来;
第4步:判断本控件能否成为焦点控件,若能成为焦点控件则判断其当前是否为焦点控件并记录焦点控件;
第5步:更新所属窗体的最大偏移。
}
定义并量化单行编辑框控件函数:
void guiLoadSglEdit
(
参数1:单行编辑框控件的数据结构定义的变量指针
参数2:当前窗体的变量指针
)
{
第1步:获取当前激活任务的控件数据缓存指针;
第2步:将参数1中的单行编辑框控件数据结构定义的数据填到当前激活任务的控件数据缓存中;
第3步:将本控件与当前窗体下其它控件链接起来;
第4步:判断本控件是否为焦点控件并记录焦点控件;
第5步:更新所属窗体的最大偏移。
}
定义并量化多行编辑框控件函数:
void guiLoadMulEdit
(
参数1:多行编辑框控件的数据结构定义的变量指针
参数2:当前窗体的变量指针
)
{
第1步:获取当前激活任务的控件数据缓存指针;
第2步:将参数1中的多行编辑框控件数据结构定义的数据填到当前激活任务的控件数据缓存中;
第3步:将本控件与当前窗体下其它控件链接起来;
第4步:判断本控件是否为焦点控件并记录焦点控件;
第5步:更新所属窗体的最大偏移。
}
定义并量化标签控件函数:
void guiLoadTab
(
参数1:标签控件的数据结构定义的变量指针
参数2:当前窗体的变量指针
)
{
第1步:获取当前激活任务的控件数据缓存指针;
第2步:将参数1中的标签控件数据结构定义的数据填到当前激活任务的控件数据缓存中;
第3步:将本控件与当前窗体下其它控件链接起来;
第4步:判断本控件是否为焦点控件并记录焦点控件;
第5步:更新所属窗体的最大偏移。
}
绘制光标的函数:
void guiLcdBspDrawCursor
(
参数1:光标左上顶点的数据结构定义的变量指针
参数2:光标的高度
参数3:光标的方向,竖向或横向
参数4:光标操作类型,绘制或清除
)
{
第1步:判断光标的显示区域是否在显示范围内;
第2步:根据参数4分支进入绘制或者清除光标流程;
第3步:跟据参数3分支,再根据参数1和参数2绘制或清除竖向的光标或者横向的光标。
}
绘制滚动条的函数:
void guiDrawScrollBar(void)
{
第1步:获取当前窗体焦点控件指针;
第2步:判断当前窗体大小是否超过可显示区域;
第3步:绘制滚动条的矩形边框;
第4步:计算当前显示的部分窗体在整个窗体中的偏移位置,并以此来计算滚动条的位置;
第5步:绘制滚动条的矩形块。
}
步骤3:根据步骤1和步骤2中创建的基础图形元素和更上一层图形元素的数据结构以及构建的各自的实现模型,构建图形系统的功能实现模型;其中构建图形系统的功能实现模型包括构建图形系统的一般功能实现模型、构建图形系统的绘制功能实现模型和构建图形系统的输入法功能实现模型;
一般功能实现模型包括设置焦点控件、切换焦点控件、在编辑框中移动光标、向编辑框内输入字符并记录、各类控件响应确定键、窗体和消息框响应取消键、各类控件响应方向键、各类控件响应数字键这些功能的C函数框架和实现方法;这些功能的C函数框架和实现方法描述如下:
设置焦点控件函数:
void guiSetFocus
(
参数1:当前窗体的数据结构定义的变量指针
参数2:当前将要被设置为焦点的控件的变量指针
)
{
第1步:将参数1中当前窗体数据结构中指向的焦点控件指针赋值为参数2中将要被设置为焦点控件的变量指针;
第2步:根据当前焦点控件数据结构中赋值的输入法类型值,刷新状态栏中输入法图标;
第3步:判断此时焦点控件是否为单行编辑框或多行编辑框,若是则定位并设置光标的坐标。
}
切换焦点控件函数:
int guiCtrlFocusMove
(
参数1:方向键键值
参数2:原焦点控件的变量指针
)
{
第1步:根据参数2获取原焦点控件的类型;
第2步:判断是否允许焦点切换,若允许则继续执行后继操作,若不允许则退出函数;
第3步:根据参数1方向键的键值分支进入切换焦点到不同控件的流程,向上键、向下键、向左键、向右键分别切换到控件数据结构链表中对应链接的控件;
第4步:判断焦点控件是否在当前窗体显示区域内,若不在或只有一部分在当前窗体显示区域内则移动窗体,显示出完整的焦点控件。
}
在编辑框中移动光标的函数:
void guiMoveCursorInEdit
(
参数1:编辑框控件的数据结构定义的变量指针
参数2:移动的字符个数
参数3:移动方向,左移或右移
参数4:在编辑框中的动作类型,类型为输入、删除或移动光标
)
{
第1步:根据参数2、参数3、参数4,若为退格或左移光标动作则将光标向左移动参数2中字符个数的字符距离,退格则删除一个字符或汉字;
第2步:根据参数2、参数3、参数4,若为输入或右移光标动作则将光标向右移动参数2中字符个数的字符距离,输入则增加输入字符的显示;
第3步:判断光标是否进入不可见区域,若是则向左或向右移动编辑框内字符,将光标移到可见区域;
第4步:置起刷新编辑框的标志。
}
向编辑框内输入字符并记录的函数:
int guiEditInput
(
参数1:编辑框控件的数据结构定义的变量指针
参数2:输入字符数据的缓存指针
)
{
第1步:取输入字符个数和编辑框允许输入的字符个数;
第2步:判断当前是否已经输入满,若输入满则换行或焦点跳转到下一个控件上;
第3步:判断输入字符个数加上现有字符个数是否超过编辑框允许输入字符个数,计算还能输入的字符个数;
第4步:对输入数据进行格式检查;
第5步:将输入字符数据填入编辑框的字符数据缓存中;
第6步:移动光标到新的位置;
第7步:判断此时是否已经输入满,若输入满则焦点跳转到下一个控件上;
第8步:置起刷新编辑框的标志。
}
各类控件响应确定键函数:
int guiCtrlDealOK
(
参数:某类控件的数据结构定义的变量指针,这里的控件可以是菜单控件、单行编辑框控件、多行编辑框控件
)
{
第1步:判断当前控件是否为菜单控件,若是则判断该菜单控件是否有下级窗体链接;
第2步:有下级窗体链接则调用下级窗体数据;
第3步:若当前控件是单行编辑框控件或多行编辑框控件,则切换焦点控件;
第4步:置起刷新界面标志。
}
窗体响应取消键函数:
int guiWndDealCancel
(
参数:窗体的数据结构定义的变量指针
)
{
第1步:找到上级窗体;
第2步:判断上级窗体是否有效;
第3步:若上级窗体有效则调用上级窗体并刷新界面。
}
消息框响应取消键函数:
int guiMsgDealCancel
(
参数:消息框的数据结构定义的变量指针
)
{
第1步:判断该消息框是否存在;
第2步:若该消息框存在则关闭该消息框显示定时器;
第3步:清空消息框数据缓存并置起刷新界面标志。
}
各类控件响应方向键函数:
int guiCtrlDealDirect
(
参数1:方向键键值,有向上、向下、向左、向右4种方向键
参数2:某类控件的数据结构定义的变量指针,这里的控件可以是菜单控件、单行编辑框控件、多行编辑框控件
)
{
第1步:判断当前控件是否菜单控件,若是则调用切换焦点控件函数;
第2步:若当前控件是单行编辑框控件或多行编辑框控件,判断方向键键值,若为向上或向下键则调用切换焦点控件函数切换焦点控件,若为向左或向右键则根据情况移动光标。
}
各类控件响应数字键函数:
int guiCtrlDealNum
(
参数1:数字键键值,从数字0—数字9
参数2:某类控件的数据结构定义的变量指针,这里的控件可以是单行编辑框控件、多行编辑框控件
)
{
第1步:根据参数1的数字键键值产生相应的输入字符串;
第2步:调用向编辑框内输入字符并记录的函数,将输入字符串显示到编辑框中并保存在编辑框的缓存中。
}
绘制功能实现模型包括绘制窗体、绘制消息框、绘制控件,绘制控件包括绘制图标、绘制位图、绘制菜单、绘制文本框、绘制单行编辑框、绘制多行编辑框、绘制标签这些功能的C函数框架和实现方法;这些功能的C函数框架和实现方法描述如下:
绘制窗体函数:
void guiDrawWnd
(
参数1:是否先清可见区域标志
参数2:窗体的数据结构定义的变量指针
)
{
第1步:根据参数1判断是否需要清可见区域,若是则将窗体可见区域刷新为窗体底色;
第2步:调用各控件绘制函数绘制控件。
}
绘制消息框函数:
void guiDrawMsgbox
(
参数:消息框的数据结构定义的变量指针
)
{
第1步:跟据参数消息框数据结构中显示方向的值将当前消息框的坐标转换为物理坐标;
第2步:根据消息框显示风格确定消息框是否需要清可见区域以及是否需要首行反显,若是则将消息框可见区域刷新底色,或置起首行反显标志;
第3步:取消息框需要显示的字符串并调用绘制字符的函数绘制字符串;
第4步:绘制消息框边框。
}
绘制图标控件函数:
void guiDrawIcon
(
参数1:图标的左上顶点物理位置
参数2:图标控件的面积范围数据结构
参数3:图标控件的数据结构定义的变量指针
)
{
第1步:根据参数1计算图标控件的物理矩形区域;
第2步:根据参数2判断图标控件的面积范围是否在允许范围内;
第3步:根据参数3调用绘制图标的函数绘制图标。
}
绘制位图控件函数:
void guiDrawBmp
(
参数1:是否先清可见区域标志
参数2:位图控件的数据结构定义的变量指针
)
{
第1步:计算位图控件的物理矩形区域,并判断当前可见区域能否显示整个位图,若不能显示整个位图则置起滚动显示标志;
第2步:根据参数1确定是否清位图控件的可见区域,若是则将位图控件可见区域刷新为位图控件底色;
第3步:取位图数据并调用绘制位图的函数绘制位图。
}
绘制菜单控件函数:
void guiDrawMenu
(
参数1:是否先清可见区域标志
参数2:菜单控件的数据结构定义的变量指针
)
{
第1步:计算菜单控件的物理矩形区域,并判断当前可见区域能否显示菜单控件需要显示的所有字符串,若不能显示全部字符串则置起滚动显示标志;
第2步:根据参数1确定是否清菜单控件的可见区域,若是则将菜单控件可见区域刷新为菜单控件底色;
第3步:根据菜单控件显示风格确定是否需要反显,若是则置起反显标志;
第4步:取菜单控件需要显示的字符串并调用绘制字符的函数绘制字符串。
}
绘制文本框控件函数:
void guiDrawText
(
参数1:是否先清可见区域标志
参数2:文本框控件的数据结构定义的变量指针
)
{
第1步:计算文本框控件的物理矩形区域,并判断当前可见区域能否显示文本框控件需要显示的所有字符串,若不能显示全部字符串则置起绘制滚动条标志;
第2步:根据参数1确定是否清文本框控件的可见区域,若是则将文本框控件可见区域刷新为文本框控件底色;
第3步:取文本框控件需要显示的字符串并调用绘制字符的函数绘制字符串;
第4步:根据第1步的结果绘制文本框内滚动条;
第5步:绘制文本框控件的边框。
}
绘制单行编辑框控件函数:
void guiDrawSglEdit
(
参数1:是否先清可见区域标志
参数2:单行编辑框控件的数据结构定义的变量指针
)
{
第1步:根据参数1确定是否清单行编辑框控件的可见区域,若是则将单行编辑框控件可见区域刷新为单行编辑框控件底色;
第2步:根据单行编辑框控件中字符串的个数和可见区域的大小计算出能显示的字符个数和光标位置;
第3步:取单行编辑框控件需要显示的字符串并调用绘制字符的函数绘制字符串;
第4步:启动光标定时器刷光标。
}
绘制多行编辑框控件函数:
void guiDrawMulEdit
(
参数1:是否先清可见区域标志
参数2:多行编辑框控件的数据结构定义的变量指针
)
{
第1步:根据参数1确定是否清多行编辑框控件的可见区域,若是则将多行编辑框控件可见区域刷新为多行编辑框控件底色;
第2步:根据多行编辑框控件中字符串的个数和可见区域的大小计算出能显示的字符个数和光标位置;
第3步:取多行编辑框控件需要显示的字符串并调用绘制字符的函数绘制字符串;
第4步:启动光标定时器刷光标。
}
绘制标签控件函数:
void guiDrawTab
(
参数1:是否先清可见区域标志
参数2:标签控件的数据结构定义的变量指针
)
{
第1步:计算标签控件的物理矩形区域,根据参数1的设置值来清可见区域或不清可见区域;
第2步:根据标签名称字符串的个数以及物理矩形的宽度计算一行最多能放置的标签页个数;
第3步:将当前焦点标签置起反显标志;
第4步:绘制标签的外框和标签名称的字符串;
第5步:取出焦点标签的正文字符串并调用绘制字符的函数绘制。
}
输入法功能实现模型包括数字输入、英文字母输入、符号输入、拼音法输入汉字、输入法切换这些功能实现的C函数框架和具体实现方法。其中,数字输入由单行编辑框控件、多行编辑框控件或窗体截获直接处理,其它控件和消息框不响应数字输入,输入法功能的C函数框架和实现方法描述如下:
数字输入实现方法:
数字输入的实现因为不用查表,所以没有专门的处理函数,而是通过当前焦点控件判断当前输入法设置为数字输入后直接由前面描述的控件处理数字键函数来完成数字的输入和显示。
输入法切换函数:
void guiImeSwitch(void)
{
第1步:判断当前状态,只有在窗体下且符号输入法和拼音法输入汉字的提示框未弹出的状态下才允许继续执行后继操作;
第2步:判断当前焦点控件是否响应输入法切换;
第3步:判断当前焦点控件输入法范围,若只有一种输入法则不允许切换;
第4步:输入法切换到下一个输入法类型;
第5步:修改输入法图标,激活对应输入法,符号输入法和拼音法输入汉字需要弹出对应提示框。
}
英文字母输入法处理函数:
int guiImeEngInput
(
参数:输入按键键值
)
{
第1步:根据按下的数字键键值,判断是否为第一次按下,若为第一次按下则在英文字母码表中找到对应的起始英文字母,并启动定时器等待连续的下一次按下;若不为第一次按下,则转到第5步执行;
第2步:判断按键是连续第几次按下,并判断定时器是否定时时间到,若定时时间到则执行第3步;
第3步:根据按下该键的次数从第1步中找到的起始英文字母开始向后移动,以次数中的数值作为移动字母的个数,最后得到的字母即为当前输入法选中的字母,向编辑框输入该字符并退出函数;
第4步:若定时时间未到则等待下一次按键的到来,并将该按键按下次数加1,退出函数;
第5步:若按键不为第一次按下,则判断与上次按键键值是否相同,若不同则认为上次按键动作已经停止,停止定时器,计算上次按键连续按下的次数,并转到第3步执行。
}
符号输入法处理函数:
int guiImeSymbolKey
(
参数:输入按键键值
)
{
第1步:若按键键值为向上、向下、向左、向右这四类方向键,则将输入法提示框中的光标按方向指向移动到对应的位置;
第2步:若按键键值为确定键,则将输入法提示框中光标停留位置的字符输入到焦点控件中;
第3步:若按键键值为取消键,则将输入法切换回原输入法并擦除符号输入法提示框,且重绘界面上原来被遮住的部分;
第4步:若按键键值为切换输入法键,则切换到其它输入法并擦除符号输入法提示框。
}
拼音法输入汉字处理函数:
int guiImePinYinInput
(
参数:输入按键键值
)
{
第1步:若按键键值为数字键,判断此时拼音法输入汉字提示框是否弹出,若未弹出则弹出输入法提示框;
第2步:若已弹出输入法提示框且当前按下的是2-9的数字键则定位到拼音法输入汉字码表的对应字母位置,这样根据依次按下的数字键逐步定位到期望选中的拼音,从而对应到具体的汉字子码表,这里每选定一个字母就将进一步缩小范围的子码表刷新到提示框中;
第3步:若按键键值为向上、向下、向左、向右这四类方向键,则将输入法提示框中的光标按方向指向移动到对应的位置;
第4步:若按键键值为确定键,则将输入法提示框中光标停留位置的汉字输入到焦点控件中;
第5步:若按键键值为取消键,则将输入法切换回原输入法并擦除符号输入法提示框,且重绘界面上原来被遮住的部分;
第6步:若按键键值为退格键,则退回最近一次数字键按下前显示的输入法提示框界面。
}
步骤4:根据步骤1和步骤2中创建的基础图形元素和更上一层图形元素的数据结构、构建的各自的实现模型以及步骤3中构建的图形系统的功能实现模型,构建图形系统对外接口模型;其中构建图形系统对外接口模型包括构建图形系统对设备物理层的接口模型和构建图形系统对外部应用层软件的接口模型;
设备物理层指的是不包含在本图形系统中的与显示屏硬件相关的电路设计和操作逻辑,对物理层的接口模型包括获取显示屏硬件设备句柄的接口C函数框架、获取显示屏操作物理地址的接口C函数框架、显示屏物理层初始化接口C函数框架;这些功能的C函数框架和实现方法描述如下:
获取显示屏硬件设备句柄函数:
int guiGetFramebuf(void)
{
第1步:打开显示屏设备,获取设备句柄;
第2步:显示屏设备初始化设置;
第3步:获取显示缓存大小和地址指针;
第4步:存储显示缓存地址指针。
}
本函数为部分操作系统中的应用层软件提供显示设备操作接口,函数内部方法根据操作系统的机制而变化,这里仅提供框架和实例。
获取显示屏操作物理地址函数:
int guiGetLCDAddress
(
参数:输入显示屏控制寄存器或数据寄存器的地址序号
)
{
第1步:跟据显示屏物理首地址和输入的控制寄存器或数据寄存器的地址序号,计算对应寄存器的实际物理地址;
第2步:返回该寄存器实际物理地址的值。
}
本函数为部分小型操作系统中的应用层软件或不以操作系统为基础的应用层软件提供显示屏硬件设备操作物理地址。
显示屏物理层初始化接口函数:
int ET_guiInit(void)
{
第1步:图形系统信号量初始化;
第2步:设置LCD显示屏背光初始化状态;
第3步:获取显示屏硬件设备句柄或者物理地址;
第4步:初始化LCD显示屏背景,刷背景色或刷背景图片;
第5步:初始化图形系统的全局变量。
}
外部应用层软件指的是不包含在本图形系统中的使用本图形系统来创建人机界面并完成某些界面功能的软件,对外部应用层软件的接口模型包括对步骤1中实现基础图形元素的C函数和步骤2中实现更上一层图形元素的C函数的进一步封装、对步骤3中功能实现的C函数的进一步封装、获取当前窗体指针的接口C函数、获取当前消息框指针的接口C函数、获取当前窗体焦点控件的接口C函数。这些功能的C函数框架和实现方法描述如下:
绘制点的对外接口函数:
void ET_guiLcdBspDrawDot
(
参数:需要绘制点的属性值的存储地址指针
)
{
第1步:申请显示屏设备信号量保护;
第2步:调用绘制点的函数;
第3步:释放显示屏设备信号量。
}
绘制线的对外接口函数:
void ET_guiLcdBspDrawLine
(
参数1:需要绘制线的属性值的存储地址指针
参数2:需要绘制线的模式,选择实线或虚线
)
{
第1步:申请显示屏设备信号量保护;
第2步:调用绘制线的函数;
第3步:释放显示屏设备信号量。
}
绘制矩形框或矩形块的对外接口函数:
void ET_guiLcdBspFillRect
(
参数1:需要绘制矩形的属性值的存储地址指针
参数2:需要绘制矩形的模式,选择框或块
)
{
第1步:申请显示屏设备信号量保护;
第2步:判断要绘制的是矩形框还是矩形块;
第3步:若要绘制的是矩形框则调用矩形框绘制函数;
第4步:若要绘制的是矩形块则调用矩形块绘制函数;
第5步:释放显示屏设备信号量。
}
图形系统处理按键的对外接口函数:
void ET_guiInterKey
(
参数:输入的按键键值
)
{
第1步:申请显示屏设备信号量保护;
第2步:判断当前为窗体则调用窗体处理按键函数;
第3步:判断当前为消息框则调用消息框处理按键函数;
第4步:刷新处理后的窗体或消息框;
第5步:释放显示屏设备信号量。
}
构建带链表的窗体或消息框函数:
int ET_guiLoadData
(
参数:界面或消息框数据结构存储变量指针
)
{
第1步:申请显示屏设备信号量保护;
第2步:判断当前为窗体则调用读取窗体数据结构并创建一个窗体的函数;
第3步:判断当前为消息框则调用创建消息框函数;
第4步:设置当前界面状态为窗体或消息框;
第5步:释放显示屏设备信号量。
}
构建不带链表的单一窗体函数:
int ET_guiCreateWnd
(
参数:需要创建窗体的数据结构的存储变量指针
)
{
第1步:申请显示屏设备信号量保护;
第2步:获取窗体数据缓存的指针,根据输入的参数填充窗体数据缓存;
第3步:置起窗体刷新标志;
第4步:释放显示屏设备信号量。
}
设置焦点控件函数:
int ET_guiSetFocus
(
参数:焦点控件的序号ID
参数:焦点控件所属窗体的序号ID
)
{
第1步:申请显示屏设备信号量保护;
第2步:根据窗体序号的ID获取该窗体指针;
第3步:清除窗体数据结构中的焦点控件缓存;
第4步:根据要设置的焦点控件的序号ID在窗体数据结构中找到该控件的指针,并将该控件指针填到窗体数据结构的焦点控件缓存中;
第5步:释放显示屏设备信号量。
}
构建单一菜单控件函数:
guiCtrl*ET_guiCreateMenu
(
参数1:菜单控件所在窗口的序号ID
参数2:菜单控件的序号ID
参数3:菜单控件显示模式
参数4:菜单控件的面积范围数据结构
参数5:菜单控件的显示内容数据缓存指针
参数6:菜单控件响应确定键处理函数指针
)
{
第1步:申请显示屏设备信号量保护;
第2步:从控件缓存区中寻找可用的控件空间,并获取该控件空间指针;
第3步:将参数2至参数6的几个参数填入可用的控件空间;
第4步:将菜单控件与同一窗体下的其它控件顺序链接起来;
第5步:设置菜单控件的快捷键键值;
第6步:将第一个菜单控件设置为焦点控件;
第7步:更新菜单控件所属窗体的最大偏移;
第8步:释放显示屏设备信号量。
}
构建单一文本框控件函数:
guiCtrl*ET_guiCreateText
(
参数1:文本框控件所在窗口的序号ID
参数2:文本框控件的序号ID
参数3:文本框控件显示模式
参数4:文本框控件的面积范围数据结构
参数5:文本框控件的对齐方式
参数6:显示字符串的格式
参数7:文本框控件的显示内容数据缓存指针
)
{
第1步:申请显示屏设备信号量保护;
第2步:从控件缓存区中寻找可用的控件空间,并获取该控件空间指针;
第3步:将参数2至参数7的几个参数填入可用的控件空间;
第4步:将文本框控件与同一窗体下的其它控件顺序链接起来;
第5步:更新文本框控件所属窗体的最大偏移;
第6步:释放显示屏设备信号量。
}
构建单一单行编辑框控件函数:
guiCtrl*ET_guiCreateSglEdit
(
参数1:单行编辑框控件所在窗口的序号ID
参数2:单行编辑框控件的序号ID
参数3:单行编辑框控件的面积范围数据结构
参数4:单行编辑框控件的编辑文本缓存指针
参数5:是否允许焦点被切换的标志
)
{
第1步:申请显示屏设备信号量保护;
第2步:从控件缓存区中寻找可用的控件空间,并获取该控件空间指针;
第3步:将参数2至参数5的几个参数填入可用的控件空间;
第4步:将单行编辑框控件与同一窗体下的其它控件顺序链接起来;
第5步:更新单行编辑框控件所属窗体的最大偏移;
第6步:释放显示屏设备信号量。
}
构建单一标签控件函数:
guiCtrl*ET_guiCreateTab
(
参数1:标签控件所在窗口的序号ID
参数2:标签控件的序号ID
参数3:标签控件显示模式
参数4:标签控件的面积范围数据结构
参数5:标签控件的标签页页头显示偏移值,以像素点为单位
参数6:标签控件的显示内容数据缓存指针
参数7:标签控件响应确定键处理函数指针
)
{
第1步:申请显示屏设备信号量保护;
第2步:从控件缓存区中寻找可用的控件空间,并获取该控件空间指针;
第3步:将参数2至参数7的几个参数填入可用的控件空间;
第4步:将标签控件与同一窗体下的其它控件顺序链接起来;
第5步:设置标签控件的快捷键键值;
第6步:将第一个标签控件标签页设置为焦点控件;
第7步:更新标签控件所属窗体的最大偏移;
第8步:释放显示屏设备信号量。
}
构建单一位图控件函数:
guiCtrl*ET_guiCreateBmp
(
参数1:位图控件所在窗口的序号ID
参数2:位图控件的序号ID
参数3:位图控件显示模式
参数4:位图控件的面积范围数据结构
参数5:位图控件的显示偏移值,以像素点为单位
参数6:位图控件的显示内容数据缓存指针
)
{
第1步:申请显示屏设备信号量保护;
第2步:从控件缓存区中寻找可用的控件空间,并获取该控件空间指针;
第3步:将参数2至参数6的几个参数填入可用的控件空间;
第4步:将位图控件与同一窗体下的其它控件顺序链接起来;
第5步:更新位图控件所属窗体的最大偏移;
第6步:释放显示屏设备信号量。
}
构建消息框函数:
int ET_guiCreateMsgbox
(
参数:消息框数据结构缓存指针
)
{
第1步:申请显示屏设备信号量保护;
第2步:获取消息框数据缓存的指针,根据输入的参数填充消息框数据缓存;
第3步:置起消息框刷新标志;
第4步:释放显示屏设备信号量。
}
获取当前窗体的焦点控件序号ID的函数:
int ET_guiGetFocusCtrl
(
参数1:当前窗体的指针
参数2:存放当前窗体下焦点控件的序号ID的缓存指针
)
{
第1步:申请显示屏设备信号量保护;
第2步:从当前窗体的数据结构中获取焦点控件的指针,再从焦点控件的数据结构中获取其序号ID并传递给参数2输出;
第3步:释放显示屏设备信号量。
}
获取当前窗体指针的函数:
int ET_guiGetCurWnd
(
参数:存放当前窗体指针的缓存指针
)
{
第1步:申请显示屏设备信号量保护;
第2步:从窗体数据缓存中获取当前窗体指针并传递给参数输出,若当前无窗体则返回空;
第3步:释放显示屏设备信号量。
}
获取当前消息框指针的函数:
int ET_guiGetCurMsgbox
(
参数:存放当前消息框指针的缓存指针
)
{
第1步:申请显示屏设备信号量保护;
第2步:从消息框数据缓存中获取当前消息框指针并传递给参数输出,若当前无消息框则返回空;
第3步:释放显示屏设备信号量。
}
绘制、刷新状态栏图标对外接口函数:
void ET_guiInterChangeSBarIcon
(
参数1:要绘制或更新的图标的序号ID
参数2:图标数据的缓存指针
)
{
第1步:申请显示屏设备信号量保护;
第2步:调用步骤2中定义、量化并刷新状态栏函数并执行;
第3步:释放显示屏设备信号量。
}
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (12)
1.一种易移植小型图形系统的实现方法,所述的小型图形系统与各类操作系统无关联,与设备物理层无关联,与应用层软件无关联,易于在各类嵌入式操作系统和单片机软件平台下移植;其特征在于,包括以下步骤:
步骤1:创建基础图形元素的数据结构,构建基础图形元素的实现模型;
步骤2:根据步骤1中创建的基础图形元素的数据结构和构建的基础图形元素的实现模型,创建更上一层图形元素的数据结构,构建更上一层图形元素的实现模型;
步骤3:根据步骤1和步骤2中创建的基础图形元素和更上一层图形元素的数据结构以及构建的各自的实现模型,构建图形系统的功能实现模型;
步骤4:根据步骤1和步骤2中创建的基础图形元素和更上一层图形元素的数据结构、构建的各自的实现模型以及步骤3中构建的图形系统的功能实现模型,构建图形系统对外接口模型。
2.根据权利要求1所述的易移植小型图形系统的实现方法,其特征在于:步骤1中所述的基础图形元素包括点、线、矩形框、矩形块、字符、图标、位图。
3.根据权利要求1或2所述的易移植小型图形系统的实现方法,其特征在于:步骤1中所述的基础图形元素的实现模型包括实现这些基础图形元素的C函数框架和实现方法。
4.根据权利要求1所述的易移植小型图形系统的实现方法,其特征在于:步骤2中所述的更上一层图形元素包括窗体、消息框、状态栏、各类控件,所述各类控件包括菜单、文本框、单行编辑框、多行编辑框、标签、光标、滚动条。
5.根据权利要求1或4所述的易移植小型图形系统的实现方法,其特征在于:步骤2中所述的更上一层图形元素的实现模型包括实现这些更上一层图形元素的C函数框架和实现方法。
6.根据权利要求1所述的易移植小型图形系统的实现方法,其特征在于:步骤3中所述的构建图形系统的功能实现模型包括构建图形系统的一般功能实现模型、构建图形系统的绘制功能实现模型和构建图形系统的输入法功能实现模型。
7.根据权利要求6所述的易移植小型图形系统的实现方法,其特征在于:所述的一般功能实现模型包括设置焦点控件、切换焦点控件、在编辑框中移动光标、向编辑框内输入字符并记录、各类控件响应确定键、窗体和消息框响应取消键、各类控件响应方向键、各类控件响应数字键这些功能的C函数框架和实现方法。
8.根据权利要求6所述的易移植小型图形系统的实现方法,其特征在于:所述的绘制功能实现模型包括绘制窗体、绘制消息框、绘制控件,所述绘制控件包括绘制图标、绘制位图、绘制菜单、绘制文本框、绘制单行编辑框、绘制多行编辑框、绘制标签这些功能的C函数框架和实现方法。
9.根据权利要求6所述的易移植小型图形系统的实现方法,其特征在于:所述的输入法功能实现模型包括数字输入、英文字母输入、符号输入、拼音法输入汉字、输入法切换这些功能实现的C函数框架和实现方法。
10.根据权利要求1所述的易移植小型图形系统的实现方法,其特征在于:步骤4中所述的构建图形系统对外接口模型包括构建图形系统对设备物理层的接口模型和构建图形系统对外部应用层软件的接口模型。
11.根据权利要求10所述的易移植小型图形系统的实现方法,其特征在于:所述的设备物理层指的是不包含在本图形系统中的与显示屏硬件相关的电路设计和操作逻辑,所述的对设备物理层的接口模型包括获取显示屏硬件设备句柄的接口C函数框架、获取显示屏操作物理地址的接口C函数框架、显示屏物理层初始化接口C函数框架。
12.根据权利要求10所述的易移植小型图形系统的实现方法,其特征在于:所述的外部应用层软件指的是不包含在本图形系统中的使用本图形系统来创建人机界面并完成某些界面功能的软件,所述的对外部应用层软件的接口模型包括对步骤1中实现基础图形元素的C函数和步骤2中实现更上一层图形元素的C函数进一步封装、对步骤3中功能实现的C函数的进一步封装、获取当前窗体指针的接口C函数、获取当前消息框指针的接口C函数、获取当前窗体焦点控件的接口C函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410470132.0A CN104199671A (zh) | 2014-09-15 | 2014-09-15 | 一种易移植小型图形系统的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410470132.0A CN104199671A (zh) | 2014-09-15 | 2014-09-15 | 一种易移植小型图形系统的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104199671A true CN104199671A (zh) | 2014-12-10 |
Family
ID=52084968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410470132.0A Pending CN104199671A (zh) | 2014-09-15 | 2014-09-15 | 一种易移植小型图形系统的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104199671A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107608533A (zh) * | 2017-08-24 | 2018-01-19 | 广东雅达电子股份有限公司 | 一种轻量型的嵌入式输入法 |
CN111722845A (zh) * | 2020-06-04 | 2020-09-29 | 深圳中科优瑞医疗科技有限公司 | 以stm32单片机为主控的嵌入式gui框架 |
CN114185469A (zh) * | 2021-11-15 | 2022-03-15 | 郑州佛光发电设备有限公司 | 一种实时操作系统下菜单设置简易gui的软件实现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446894A (zh) * | 2007-11-27 | 2009-06-03 | 飞跃中科(台州)数控系统有限公司 | 一种基于家用电脑绣花机的嵌入式图形系统 |
CN101630251A (zh) * | 2009-08-05 | 2010-01-20 | 中国船舶重工集团公司第七○九研究所 | 跨桌面和嵌入式系统的图形界面开发方法及系统 |
-
2014
- 2014-09-15 CN CN201410470132.0A patent/CN104199671A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446894A (zh) * | 2007-11-27 | 2009-06-03 | 飞跃中科(台州)数控系统有限公司 | 一种基于家用电脑绣花机的嵌入式图形系统 |
CN101630251A (zh) * | 2009-08-05 | 2010-01-20 | 中国船舶重工集团公司第七○九研究所 | 跨桌面和嵌入式系统的图形界面开发方法及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107608533A (zh) * | 2017-08-24 | 2018-01-19 | 广东雅达电子股份有限公司 | 一种轻量型的嵌入式输入法 |
CN111722845A (zh) * | 2020-06-04 | 2020-09-29 | 深圳中科优瑞医疗科技有限公司 | 以stm32单片机为主控的嵌入式gui框架 |
CN114185469A (zh) * | 2021-11-15 | 2022-03-15 | 郑州佛光发电设备有限公司 | 一种实时操作系统下菜单设置简易gui的软件实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3220249B1 (en) | Method, device and terminal for implementing regional screen capture | |
CN104951364B (zh) | 一种基于Android平台的语言切换方法及系统 | |
US20090150822A1 (en) | Method and system for scrolling | |
EP2503437A1 (en) | Method for moving chinese input candidate word box and mobile terminal thereof | |
CN113625932A (zh) | 一种全屏手写输入的方法及装置 | |
CN112445564B (zh) | 界面显示方法及电子设备、计算机可读存储介质 | |
CN102637125A (zh) | 宫格界面的显示方法及移动终端 | |
GB2240200A (en) | Programmed interface | |
CN104199671A (zh) | 一种易移植小型图形系统的实现方法 | |
CN112148169B (zh) | 标识显示控制方法、装置及电子设备 | |
CN113885749A (zh) | 图标显示方法、装置及电子设备 | |
CN113485779A (zh) | 应用程序的操作引导方法和装置 | |
EP2990925A1 (en) | Apparatus and method for displaying a virtual keyboard | |
CN112445501A (zh) | 数据烧录方法及设备、计算机可读存储介质 | |
CN102081521A (zh) | 一种通用的武器装备操作界面开发平台 | |
CN113805708B (zh) | 信息显示方法、装置、电子设备和存储介质 | |
CN102109999B (zh) | 继电保护液晶界面实现方法 | |
CN112001995B (zh) | 渲染装置、方法、电子设备及可读存储介质 | |
CN114896208A (zh) | 应用图标的检索方法、装置、存储介质及终端设备 | |
CN102253841A (zh) | 一种小型图形用户界面系统 | |
CN102902534A (zh) | 一种透明osd软件实现方法 | |
CN101833448A (zh) | 一种基于buiw平台的信息条显示的方法及装置 | |
CN116541115B (zh) | 一种基于智能生产线可视化案例的交互式演示系统及方法 | |
CN108170475A (zh) | 一种用于移动式航向基准设备的嵌入式软件开发方法 | |
KR101423234B1 (ko) | 전자칠판용 판서프로그램의 메뉴버튼 생성 및 실시간 크기 변환방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: 430223 No. 70 Optics Valley Avenue, East Lake New Technology Development Zone, Wuhan, Hubei Applicant after: WUHAN ROUTON ELECTRONIC CO., LTD. Address before: 430223 Optics Valley Road, East Lake Development Zone, Hubei, China, No. 70, No. Applicant before: Wuhan Routon Software Co.,Ltd. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: WUHAN ROUTON SOFTWARE CO., LTD. TO: WUHAN ROUTON ELECTRIC CO., LTD. |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141210 |
|
RJ01 | Rejection of invention patent application after publication |