LuCi 深入浅出示例及编译进内核

下载可直接编译文件:https://download.csdn.net/download/wzhmax/10951460 

上述文件,解压放在openwrt/package/目录下即可。

make menuconfig -> Utilities ->iiot_luci 打上* 即可自动编译进内核加载。如下图:

效果图:

 

LuCI基于Lua的MVC架构,本文基于OpenWRT 且已经编译进LuCi做开发讲解。

1. 添加导航条

如果想在添加导航条,在/usr/lib/lua/luci/controller/admin需要添加相应的lua文件

module ("luci.controller.admin.iiot", package.seeall)
function index()
        entry({"admin", "new_tab"}, firstchild(), "IIOT", 30).dependent=false
        entry({"admin", "new_tab", "ModBus"}, cbi("iiot/modbus"), "ModBus", 1)
        entry({"admin", "new_tab", "MQTT"}, cbi("iiot/mqtt"), "MQTT", 2)
end

很明显,我们添加了一个叫做iiot的导航条,并且添加了ModBus / MQTT 两个选项条,格式都为cbi

2. 现在让我们来做modbus / mqtt两个选项,根据上文创建/usr/lib/lua/luci/model/cbi/iiot选项,再分别创建mqtt.lua 和modbus.lua两个文件

modbus.lua:

m = Map("modbus", translate("ModBus Package Set"), translate("Please fill out the form below for the set of paraments setting"))

d = m:section(TypedSection, "info", "ModBus")
a = d:option(Value, "name", "Name"); a.optional=false; a.rmempty=false;
b = d:option(Value, "SlaveID", "SlaveID"); b.optional=false; b.rmempty=false;
c = d:option(Value, "FunctionID", "FunctionID"); c.optional=false; c.rmempty=false;
e = d:option(Value, "Quantity", "Quantity"); e.optional=false; e.rmempty=false;

d2 = m:section(TypedSection, "serial_info", "ModBus")
f = d2:option(Value, "BaudRate", "BaudRate"); f.optional=false; f.rmempty=false;
g = d2:option(ListValue, "Parity", "Parity"); g.optional=false; g.rmempty=false;
g:value("1", translate("Y"))
g:value("0", translate("N"))

h = d2:option(Value, "StopBit", "StopBit"); h.optional=false; h.rmempty=false;
i = d2:option(Value, "DataBit", "DataBit"); i.optional=false; i.rmempty=false;
j = d2:option(Value, "Device", "Device"); j.optional=falw; j.rmempty=false;

return m

mqtt.lua:

m = Map("mqtt", translate("MQTT Set"), translate("Please fill out the form below for the set of paraments setting"))

d = m:section(TypedSection, "info", "MQTT")
a = d:option(Value, "ClientID", "ClientID"); a.optional=false; a.rmempty=false;
b = d:option(Value, "IP", "IP"); b.optional=false; b.rmempty=false;
c = d:option(Value, "Interval", "Interval"); c.optional=false; c.rmempty=false;
e = d:option(Value, "Topic", "Topic"); e.optional=false; e.rmempty=false;
f = d:option(Flag, "Enable", "Enable"); f.optional=true; f.rmempty=false;

return m

3. 添加配置文件,在OpenWRT LuCI中都是通过/etc/config下文件来配置,所以在/etc/config需创建mqtt 和 modbus两个配置文件

config info 'ModBus'
        option name 'OpenWRT'
        option SlaveID '03'
        option FunctionID '03'
        option BaudRate '9600'
        option Quantity '10'

config serial_info 'Serial'
        option BaudRate '9600'
        option DataBit '8'
        option Device '/dev/ttyS1'
        option Parity '1'
        option StopBit '0'
config info 'MQTT'
        option ClientID 'GateWay'
        option IP '192.168.1.1'
        option Interval '1'
        option Topic 'DemoTest2'
        option Enable '1'

4. 这是基本前端通过LuCi添加界面并更改config 就完成

5.当然可以通过Makfefile编译进内核,烧写成固件,具体请见:

https://download.csdn.net/download/wzhmax/10951460

--------------------------------------------------------------------------------------------------------

2019.02.09 初稿,没有贴图,资料已经上传还未通过审核

2019.02.10 资料通过审核已经可以下载,修改了标题和下划线,前面添加了下载地址; 暂未上图片说明

2019.02.12 添加图片,和使用方法,伸手党福利。 哪个大哥下载一发,我也要点c币下载资料又不想买会员... 江湖救急啊

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值