lkdGui是一款为单色显示屏制作的图形化界面专为工业控制领域而生

lkdgui是一款为单色显示屏制作的图形化界面,lkdgui主要定位于工业控制领域,用于简单漂亮的图形界面设计。它的源代码全部使用c语言编写,符合c99标准。它包含了常用的画图函数如画点、画线、画矩形、文字显示、按钮控件、进度条控件。它使用`窗口`进行统一管理和调度,使得各个应用显示模块之间低耦合,方便应用程序的开发。
lkdgui源码介绍
1.lkdgui_source文件夹:它包含了lkdgui的所有源码
a.include文件夹:它包含了gui所有的.h文件。移植时应将此路径加入工程项目。
a.lkdgui.h:此文件里包含所有的gui函数接口。用户使用gui函数时应该包含此头文件。
b.lkdguiconfig.h:此文件用来配置和裁剪gui.
c.lkdguitypedef.h:此文件定义了gui相关的数据结构,使用者不必看它。
b.port文件夹:它里边包含的是移植相关的文件。
a.fontdriver文件夹:它包含常用的字模库、字库芯片驱动等。使用者可以在这里面加入字体相关的驱动。
b.lcddriverport文件夹:它包含常用的液晶驱动。使用者可以在这里面加入液晶相关的驱动。
c.lcddriverport.c:gui的液晶驱动移植接口。用户应该填充里面的相关函数。
d.userfontport.c:gui的字体驱动移植接口。用户应该填充里面的相关函数。
e.userappport.c:这个输入应用层,里面包含了初始化、窗口管理等函数。永和可以直接在这里面写应用。
c.source文件夹:gui绘图、窗口管理等相关函数实现源码。
图片来源:公众号嵌入式的日常
lkdgui移植
上节的源码介绍中已经提到了移植相关的工作在port文件夹中。分为字体移植接口和液晶移植接口。1.字体移植接口:包含fontdriver文件夹和userfontport.c。移植流程如下:
a.用户先看fontdriver文件夹下有没有自己要用的字体库或字库芯片驱动。如果没有则需要添加。
b.然后修改userfontport.c。填充此文件中的相关函数。
a.getdfontdata():此函数用于获取汉字字模。字体库中应该包含获取字模的函数.用此函数调用即可。
b.getsfontdata():此函数用于获取asii码字模。使用如getdfontdata()。
c.用lkdfont结构体对象声明自己的字体->初始化->用guifontset()设置为系统默认字体。
2.液晶移植接口:包含lcddriverport文件夹和lcddriverport.c。移植流程如下:
a.用户先看lcddriverport文件夹下有没有自己要用的液晶驱动。如果没有则需要添加。
b.然后修改lcddriverport.c。填充此文件中的相关函数。(根据需求可以只填部分函数)。下面是必须要填充的。
a.guiupdatedisplayall():此函数用于将缓存的数据刷新到液晶。
b.guidrawpoint():画点函数。在液晶固定位置画点。3.修改lkdguiconfig.h中液晶大小相关宏gui_lcm_xmax,gui_lcm_ymax.
4.用户使用接口:用户可使用的接口函数都包含在lkdgui.h中。userappport.c是用户使用的模板。
lkdgui窗口介绍
lkdgui使用窗口作为管理、调度单元。用户所有的绘图都应该在具体的某个窗口里边。
1、lkdguiconfig.h中的guiwinmanage_num用于修改窗口最大嵌套数量。
2、guiwininit()系统上电时应该使用它初始化窗口相关资源。
3、guiwindisplay()是窗口调度函数,需要程序一直能执行到。
4、lkdwin是窗口的结构体。用户使用它创建任意多个窗口实体对象。lkdwin->windowfunction()是用户在此窗口里画图等的接口。
5、guiwinadd()函数用于将lkdwin结构的窗口实体对象加入到窗口调度栈中。
6、guiwindeletetop()函数用于将顶部的窗口实体对象从窗口调度栈中移除。
7、guigettopwin()函数可以获取窗口调度栈中顶部的窗口(当前显示的窗口)。
lkdgui菜单介绍
菜单是lkdgui里一个有特色的控件,而且在工业控制中经常使用。具体使用请参看例程。
lkdgui字体介绍
lkdgui可以添加很多字体库,在使用过程中使用guifontset()函数来切换。使用getcurrentfont()函数可以获取当前的字体指针;
图片来源:公众号嵌入式的日常
其他控件和绘图函数
见lkdgui.h。里面有详细的使用说明。
如何在rt-thread上使用lkdgui
听取了使用者的意见后,lkdgui在第一版的基础上对源码程序进行了整理,更新到版本v0.0.1.同时,为了方便使用,将lkdgui加入到了rt-thread的软件包中。使用者只需在rt-thread的管理工具env中选中lkdgui即可(关于rt-thread的使用请参看rt-thread官网)。下图是lkdgui在menuconfig中的位置:

解密真相!一场针对辐射消除仪消磁功效的实验
韩国4G网络速度首次出现网速下降,建设独立5G基站不可缺
确认海外版小米9青春版为小米CC9
电气维修方法论第六篇(电气设备的工作原理)
雷神911黑武士Ⅱ评测 是游戏发烧友和专业电竞玩家的不错选择
lkdGui是一款为单色显示屏制作的图形化界面专为工业控制领域而生
比亚迪能否追赶上宁德时代?电池巨头市场将发生什么样的变化?
如何注册Xilinx账户以及申请IP核license
小米赴港提交上市申请,继阿里之后全球最大的科技企业IPO
iphone8什么时候上市?iphone8最新消息:iphone8正式确定屏幕太逆天,苹果8售价大涨三星S8泪奔
小米互联网空调A开卖 售价2299元起
aux接口怎么用_aux接口可以作为输出吗
基于微流控技术的免疫检测芯片
以太坊和区块链在2019年里的发展情况分析
恩智浦推出基于DSP的超小型5V Qi无线充电器设备
Mouser备货德州仪器SIMPLE SWITCHER全系列产品
打印头电源参考设计
三款单电源转换双电源电路图分享
5G网络实现了全省地市级以上主城区连续覆盖
人工智能被用到农村带来了什么