MiniGUI配置文件解析

配置文件

运行时配置选项影响MiniGUI的一些运行行为,比如要使用的图形引擎或者输入引擎;要装载的设备字体;要装载的位图、光标资源等等。我们已经了解到,MiniGUI的运行时配置一般是通过配置文件MiniGUI.cfg指定的,但在使用内建资源方式配置并编译MiniGUI后,运行时配置选项将直接编译到函数库中,配置文件MiniGUI.cfg文件将不起作用。

路径

在MiniGUI应用程序启动时,MiniGUI优先查找当前目录下的MiniGUI.cfg文件、用户主目录下的.MiniGUI.cfg文件,其次是/usr/local/etc/MiniGUI.cfg,最后是/etc/MiniGUI.cfg文件。

查找顺序如下:

  1. MiniGUI优先查找当前目录下的 MiniGUI.cfg ⽂文件。
  2. 用户主⽬目录下的 .MiniGUI.cfg ⽂文件,
  3. /usr/local/etc/MiniGUI.cfg
  4. 最后是 /etc/MiniGUI.cfg 文件。

MiniGUI配置文件解析_第1张图片

格式简介

配置文件采用了非常简洁的格式,所以修改起来也很容易。其格式如下:

[section-name1]
key-name1=key-value1
key-name2=key-value2

[section-name2]
key-name3=key-value3
key-name4=key-value4

配置文件中由注释(#)、段(section)、键(key)和键值(Key Value)四部分组成,注释是以“#”为第一个字符开始的行,段是由[section-name]形式给出,包含若干键和键值对组合,用 key=key_value 的形式指定键和键值。下面按段介绍配置文件内容。

内容

[system]

该段指定了MiniGUI 运行时使用的输入输出引擎以及鼠标设备和协议类型。指定的输入输出引擎必须是编译配置MiniGUI库时多个引擎中的一个。

该段定义如下键:

  • gal_engine:指定使用的图形引擎
  • defaultmode:指定图形引擎的显示模式,格式为:宽x高-显示位数(bpp)
  • ial_engine:指定使用的输入引擎
  • mdev:指定鼠标设备文件
  • mtype:指定鼠标协议类型

# GAL engine and default options
gal_engine=shadow

# IAL engine
ial_engine=cisco_touchpad
mdev=/dev/input/event1
mtype=IMPS2

 图形引擎配置段
fbcon段

该段是在[system]段gal_engine的键值指定为fbcon时使用,表示运行fbcon时使用的显示模式。若该段未定义或键值为空,则使用[system]段定义的键值。该段只包含一个defaultmode键,具体含义和[system]段相同:defaultmode:指定图形引擎的显示模式,格式为:宽x高-显示位数(bpp)

BPP:Bit Per Pixel ,bpp是像素的意思。像素是指由图像的小方格组成的,这些小方块都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子。

16bpp显示模式和32bpp显示模式

8bpp、16bpp、24bpp和32bpp,一般俩将色彩深度越大,所能表项的色彩越丰富,而24bpp就被称为真彩色,能真实的表现图像的色彩(32bpp实际也只是24bpp,它是为了让每个像素都占据独立的32位双字,以对齐像素边界,加速处理速度)。缺省的色彩深度为对应于256色的8bpp,显然这不足以表现图像的色彩,在硬件能力满足的条件下应该使用更高的色彩深度(要受显存大小和分辨率大小的限制)

[fbcon] defaultmode=1024x768-16bpp

qvfb段

该段是在[system]段 gal_engine 的键值指定为 qvfb 时使用,表示运行 qvfb 时使用了XWindow 的哪个 display 及显示模式。

该段定义如下键,具体含义如下:

  • defaultmode:指定图形引擎的显示模式,格式为:宽x高-显示位数(bpp)
  • display:运行 qvfb 时使用 X Window 的哪个 display,一般取 0。

MiniGUI.cfg 文件 qvfb 段内容如下:

[qvfb]
defaultmode=640x480-16bpp
display=0
pc_xvfb 段

该段是在 [system] 段 gal_engine 的键值指定为 pc_qvfb 时使用,表示 pc_xvfb 的程序路径、显示模式以及窗口标题栏文字。Pc_xvfb 是在 PC 机上使用的一种图形引擎模式。该段定义如下键,具体含义如下:

  • Defaultmode:指定图形引擎的显示模式,格式为:宽x高-显示位数(bpp)
  • window_caption:标题栏文字
  • exec_file:图形引擎程序的安装路径

MiniGUI.cfg文件pc_xvfb段内容如下:

[pc_xvfb]
defaultmode=1024x768-16bpp
window_caption=XVFB-for-MiniGUI-3.0-(Qt-Version)
exec_file=/usr/local/bin/qvfb2
rtos_xvfb 段

该段是在 [system] 段 gal_engine 的键值指定为 rtos_qvfb 时使用,表示 rtos_xvfb 的显示模式。rtos_xvfb 是在嵌入式系统上使用的一种图形引擎模式。

该段定义如下键,具体含义如下:

  • Defaultmode:指定图形引擎的显示模式,格式为:宽x高-显示位数(bpp)

MiniGUI.cfg 文件 rtos_xvfb 段内容如下:

[rtos_xvfb]
defaultmode=800x600-16bpp
shadow 段

该段是在 [system] 段 gal_engine 的键值指定为 shadow 时使用,表示 shadow 的真实引擎、默认模式以及屏幕旋转模式。

该段定义如下键,具体含义如下:

  • real_engine: 真实图形引擎,可为: pc_xvfb , qvfb
  • defaultmode:指定图形引擎的显示模式,格式为:宽x高-显示位数(bpp)
  • rotate_screen: 指定屏幕是否旋转,值可为: normal ,cw , ccw , hflip , vflip 。

MiniGUI.cfg 文件 shadow 段内容如下:

[shadow]
real_engine=pc_xvfb
defaultmode=800x600-16bpp
rotate_screen=normal
mlshadow 段

该段是在 [system] 段 gal_engine 的键值指定为 mlshadow 时使用,表示 mlshadow 的真实引擎、默认模式、屏幕背景颜色以及刷屏时是否使用双缓冲。

该段定义如下键,具体含义如下:

  • real_engine:真实图形引擎,可为: pc_xvfb , qvfb
  • defaultmode:指定图形引擎的显示模式,格式为:宽x高-显示位数(bpp)
  • def_bgcolor: 指定背景颜色,如:0x00FF00
  • double_buffer: 刷屏时是否使用双缓冲,值可为enable , disable 。

MiniGUI.cfg文件mlshadow段内容如下:

[mlshadow]
real_engine=qvfb
defaultmode=800x600-16bpp
def_bgcolor=0x00FF00
double_buffer=enable

单缓冲和双缓冲的区别

为了提高LCD的显示效果,如果值是使用单缓冲,即一帧数据作为缓冲器的话,就会出现写数据的时候有闪屏现象,为了解决这个问题,我们为LCD缓冲区设置了两个帧的大小,如果此时LCD控制器帧缓冲区的地址指向的是第一针的数据的话,我们可以写第二帧数据,写完以后把第二帧的首地址赋给LCD控制器。

字体配置段
systemfont 段

该字段定义了MiniGUI的系统字体和字体个数。并定义了系统默认使用的字体,用于MiniGUI的标题、菜单、控件的显示。

系统字体是MiniGUI装载了由rawbitmapfonts、varbitmapfonts、qpf、upf、truetypefonts等段定义的设备字体之后,根据上述字体名称调用CreateLogFontByName函数建立的逻辑字体。

逻辑字体名称的格式如下:

--