前言
本来这个章节想排在最后在写,但是考虑到自身的码字速度,还是优先输出本篇文档,让大家先上手进行LUCI的相关调试。
本篇整理分为以下几个部分
LUA脚本开发
1、查找页面及需要修改的元素
LUCI的目录框架包含LUA及HTML两部分,当你不知道想要修改的页面或者节点在哪个文件里时,可以选择将LUCI页面语言切换成英文模式,然后选择页面中相应的元素,通过设备串口或者版本机输入find . -type f |xargs grep "xxxx"命令进行搜索,找到对应的文件。例如:查找“状态->总览->网络状态信息”存在哪个文件中,可以选择在“系统->语言与界面”中选择英文。然后在版本机敲写find . -type f |xargs grep “IPv4 WAN Status”查找文件。
2、LUA注释
LUA单行注释使用“--”;LUA块注释使用“--[[ 注释内容 ]]--”;
3、LUA添加log打印信息
此方法转自下列链接,主要通过在/luasrc/下创建log.lua文件,并在需要增加调试信息的LUA代码中进行引用(此处为何写LUA代码,主要因为HTML页面中也可以添加LUA语句,同样可以使用这种方法增加打印信息),引用方法如下:
local log = require "luci.log"
log.print("=====STEP1=====")
4、LUA文件引用其他LUA脚本中的函数
在LUA文件中使用require关键字进行其他LUA脚本引用,引用的起始目录在/lua/,每一个"."号相当于文件目录的"/"分隔号。例1:require "nixio.fs",引用的是/lua/nixio/fs.lua文件;例2:local uci = require("luci.model.uci").cursor()调用/lua/luci/model/uci.lua中的cursor函数,使用该函数可以进行底层uci get及set操作。
5、LUA脚本调用函数时用点号还是用冒号
(1)使用点号时,需要开发者手动把自身self值当作参数传入到函数中; (2)使用冒号时,定义函数时,给函数的添加隐藏的第一个参数self;调