配置文件

官网地址:https://lcd4linux.bulix.org/wiki/lcd4linux_conf

配置文件

配置文件 (默认位置: /etc/lcd4linux.conf) 包含LCD4Linux的配置和布局. 从0.10版本开始, 配置文件的格式发生了很大的变化, 现在已经能够更加灵活地使用它了。

注释符为符号“#”,任何在“#”号之后的文本(或空行)将会被注释掉, 如果你想要在值(value)中使用“#”号,你需要在引用它时加上反斜杠“\” . 空行或者只有空格的行也将被注释掉。

配置文件由“节”、“分支”和“参数” 组成,节和参数对于自己起名(name)并不敏感,但是键(key)的起名却不能包含空格。

配置文件中一个参数的格式是这样子的:

  1. name value

注意: 配置文件里的每个值(value)都将被视为一个表达式来处理, 所以它们会被执行。 这意味着在正常情况下,你需要把一个value用单引号括起来,以使它的计算结果为一个字符串! (PS:意思是如果value用引号括号括起来,就是str(value);不用引号括起来,就是eval(value))

例如像这样:

  1. 变量名
  2. name1 value1
  3. name2 'value2'
  4. name3 '2+3'
  5. name4 2+3
  6. name5 '42'
  7. name6 42

其中: name1 的值将会从表达式value1那里得到,它可能返回0或者一个空字符串,一般情况下它并不是你想要的。 (除非value1是一个变量的名字).

name2 返回字符串”value2“,这个才是正确的方法。

name3 返回字符串’2+3’

name4 返回表达式2+3执行后的值,也就是5

name5 返回字符串’42’(或者数字42)

name6 返回值与name5相同


“节” 看起来长这样:

  1. section_a {
  2. name1 value1
  3. }
  4. section_b name_b {
  5. name2 value2
  6. }
  7. section_c name_c {
  8. name3 value3
  9. section_d {
  10. name4 value4
  11. }
  12. }

所以说一个节是可以不具有名字的.

“节” 也可以写成 紧凑的形式 , 所以下面的语句与上面的语句是完全相同的:

  1. section_a.name1 value1
  2. section_b:name_b.name2 value2
  3. section_c:name_c.name3 value3
  4. section_c:name_c.section_d.name4 value4

和节的名称之间用冒号(‘:’)相连接;”节“,”分支“,”键“之间用点(‘.’)相连接。

这里有一个更加贴切的例子:下面两个条目(从布线结构上来说)是等效的:

  1. Wire.EX 'STROBE'
  2. Wire.IOC1 'SELECT'
  3. Wire.IOC2 'AUTOFD'
  4. Wire.GPO 'INIT'
  1. Wire {
  2. EX 'STROBE'
  3. IOC1 'SELECT'
  4. IOC2 'AUTOFD'
  5. GPO 'INIT'
  6. }


节的选择

注意,name value { }name value 是不同的: 第一个是定义一个”节“,它的名字叫value;第二个value是一个”参数“,表示把参数value传递给name,虽然它们的名字是相同,但第二种类型通常只用于选择一个特定的节。

请看下面的例子:

  1. Display My_20x4 {
  2. ...
  3. }
  4. Display My_16x2 {
  5. ...
  6. }
  7. Display My_16x2

在上面的例子中,你定义了两个显示类的节,它们具有不同的名字。然后你选择了其中的一个节。


特殊的节

有些节有一些特殊的含义:

  • ~显示设备~:用于配置显示方法的一个配置类,需要依赖于显示器(即LCD4Linux硬件)和驱动
  • 插件类:特殊插件的一个配置类(很少使用)
  • 控件类:用于定义控件的配置类
  • 布局类: 用于定义控件在显示器上显示的方法和位置
  • 变量:用于定义变量

下面是一个简单的配置示例:

  1. Display HD44780-20x2 {
  2. Driver 'HD44780'
  3. Model 'generic'
  4. UseBusy 1
  5. Port '/dev/parport0'
  6. Size '20x2'
  7. Wire {
  8. RW 'AUTOFD'
  9. RS 'INIT'
  10. ENABLE 'STROBE'
  11. ENABLE2 'GND'
  12. GPO 'GND'
  13. }
  14. }
  15. Widget CPU {
  16. class 'Text'
  17. expression uname('machine')
  18. prefix 'CPU '
  19. width 9
  20. align 'L'
  21. update tick
  22. }
  23. Layout Default {
  24. Row1 {
  25. Col1 'CPU'
  26. }
  27. }
  28. Variables {
  29. tick 500
  30. }
  31. Display 'HD44780-20x2'
  32. Layout 'Default'

总的来说,一个配置文件应该包含以下几个方面:

  • 至少包含一个 ~显示类~的节, 它用来描述和配置你的显示器。
  • 包含若干个控件类的节, 它用于定义输出到显示器的数据的内容和显示方法。
  • 包含布局类)的节,它定义了控件的显示的位置和方法。


安全方面

由于一些安全方面的原因(配置文件内可能包含邮件账户的用户名/密码), 要使配置文件生效,需要满足以下条件:

  • 配置文件是正确的(或者 /dev/null)
  • 配置文件的所有者与程序的所有者相同
  • 配置文件无法通过”组”权限访问
  • 配置文件无法通过”其它”权限访问

所以,如果你以root权限运行LCD4Linux,你应该这样设置你的配置文件(/etc/lcd4linux.conf):

  1. chmod 600
  2. chown root.root