1. 名词解释

  • Lua:解释性脚本语言

    openwrt实践 | Lua快速入门教程

  • Uci:(Unified Configuration Interface),OpenWrt中为实现所有系统配置的一个统一接口,如/etc/config/network的部分配置

    config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'
  • Luci:(Lua ConfigurationInterface ),由Lua实现的Openwrt网页系统配置接口

    Openwrt开发与Luci介绍

  • MVC 框架:(model+view+controller ),要开发一个新的功能页面,开发者只要根据 MVC 框架写些简单的 Lua 脚本,剩下的部分由Openwrt为你自动完成

  • CBI:(Configuration Binding Interface),CBI模型位于lua\luci\model\cbi

    openwrt的CBI控件简单说明

    luci cbi模块详解

2. 实例

在Luci界面上添加一个欢迎页面和两个按钮,并调用系统shell脚本控制舵机(硬件使用Widora)

  • 第一步:/usr/lib/lua/luci/controller/admin/switch.lua中注册选模块

    -- vim switch.lua
    module("luci.controller.admin.switch", package.seeall)
    function index()entry({"admin", "switch"}, firstchild(), "Light", 30).dependent=falseentry({"admin", "switch", "welcome"}, template("switch"), _("Welcome"), 1) --调用view目录下的switch.htm文件entry({"admin", "switch", "on"}, call("turn_on"), _("TurnON"), 2) --调用函数entry({"admin", "switch", "off"}, call("turn_off"), _("TurnOFF"), 3)
    endfunction turn_on()
    luci.util.exec("/usr/pwm.sh 1500000") --运行脚本
    endfunction turn_off()
    luci.util.exec("/usr/pwm.sh 2500000") --运行脚本
    end
  • 第二步:在 view 目录下添加相应的 switch.htm 文件,以显示欢迎界面(网上随便抄一个)

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript">
    function getTime() {var dateObj = new Date();var year = dateObj.getFullYear();//年var month = dateObj.getMonth()+1;//月  (注意:月份+1)var date = dateObj.getDate();//日var day = dateObj.getDay();var weeks = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var week = weeks[day];//根据day值,获取星期数组中的星期数。var hours = dateObj.getHours();//小时var minutes = dateObj.getMinutes();//分钟var seconds = dateObj.getSeconds();//秒if(month<10){month = "0"+month;}if(date<10){date = "0"+date;}if(hours<10){hours = "0"+hours;}if(minutes<10){minutes = "0"+minutes;}if(seconds<10){seconds = "0"+seconds;}var newDate = year+"-"+month+"-"+date+"&nbsp &nbsp"+hours+":"+minutes+":"+seconds+"&nbsp &nbsp"+week;document.getElementById("date1").innerHTML = "Welcome To Switch &nbsp &nbsp" + newDate;//在div中写入时间setTimeout('getTime()', 500);//每隔500ms执行一次getTime()
    }
    </script><title>Welcome</title>
    </head>
    <body onload="getTime()"><div style="width:100%;text-align:center" id="date1"></div>
    </body><body  text=#d22370  bgcolor=#282923>
    <marquee direction=left>You say that you love rain</marquee> <p>
    <marquee direction=right>but you open your umbrella when it rains...</marquee> <p>
    <marquee direction =left behavior=scroll>You say that you love the sun,</marquee > <p>
    <marquee direction=right>but you find a shadow spot when the sun shines...</marquee> <p>
    <marquee direction =left behavior=scroll>You say that you love the wind,</marquee > <p>
    <marquee direction =right behavior=scroll>But you close your windows when wind blows...</marquee > <p>
    </marquee > <p>
    </body></html>
  • 第三步:编写pwm.sh脚本

    
    #vim /usr/pwm.shcd /sys/class/pwm/pwmchip0
    echo 0 > export
    cd pwm0
    echo 1 > enable
    echo 20000000 > period
    echo ${1} > duty_cycle
    exit 0#chmod 755 pwm.sh
    
  • 重启生效

3. 其他参考

开发OpenWrt路由器上LuCI的模块
OpenWrt Luci编写小技巧

openwrt之修改Luci界面相关推荐

  1. 嵌入式linux 更新源,openwrt如何修改为国内软件源

    软件源就是一个应用程序安装库,很多很多的应用软件都在这个库里面.他可以是网络服务器,是光盘,甚至是硬盘上的一个目录.openwrt源有时候在服务器国外更新源下载速度慢,有时候因DNS问题到底无法下载, ...

  2. OpenWrt设置修改IP地址

    很多使用openwrt的新手都会遇到openwrt如何修改IP地址 查看更多关于 openwrt如何修改IP地址 的文章 的问题,今天我们就为大家来带了简单易懂的openwrt修改IP地址 查看更多关 ...

  3. C#-WinForm跨线程修改UI界面

    背景 在我做WinForm开发的过程中,经常会遇到耗时操作或阻塞操作.他们会引发软件的卡顿甚至假死,严重影响软件的使用.因此,这类耗时或阻塞的操作一般都会使用异步的方式去执行,不影响主线程(UI线程) ...

  4. 怎么改锁定计算机的背景,电脑修改登录界面背景壁纸的操作方法

    原标题:"Win7系统电脑修改登录界面背景壁纸的操作步骤"相关电脑问题教程分享. - 来源:191路由网. Win7系统电脑怎么修改电脑登录界面?有用户喜欢对系统做一些个性化设置, ...

  5. 修改QtCreater界面大小

    修改QtCreater界面大小 my_qtcreator.sh #!/bin/bash #my_qtcreator.sh export QT_SCALE_FACTOR=1.2 /home/xxx/Qt ...

  6. TuneUp2007修改启动界面的教程

    TuneUp2007修改启动界面的教程 修改之前首先要安装TuneUp Utilities软件,它支持所有格式的启动界面和登陆界面,请到以下网址下载安装.[url]http://soft.zjnu.n ...

  7. android 仿qq修改头像,Qt:小项目仿QQ修改头像界面,技术点记录

    最近写了一个修改头像功能的UI,布局参考了QQ目前的修改头像界面.如下图 这里主要说明一下两个地方的技术:1.头像图片上层的遮罩层,圆形外部为灰色,内部为全透明:2.上传图片宽高比例可以通过鼠标拖拽移 ...

  8. [SPLUSH WAVE] DragonMahjongg3~天空編~ 1.07版修改器+界面汉化

    修改器只针对游戏1.07版本,请勿升级游戏版本!! 修改器界面,上面的好理解,最下面的当你抓到第一张牌后会根据你抓的牌来给你一个和的牌,抓牌了后要等一秒才生效. 其他没啥说的了,修改器纯汇编写的没加壳 ...

  9. 如何修改安卓界面上的图片和文字

    安卓修改大师系列教程之<如何修改安卓应用中的网络下载的图片>.本视频通过专业的视角,来一步步介绍如何修改安卓界面上面的图片和文字,如果图片在安装包里面,相对修改比较容易,如果在网络上,需要 ...

  10. xcode如何将系统语言改为中文,可修改拍照界面retake和use按钮

    配置项目本地化支持简体中文和英文 工程-PROJECT-info->Localizations,点"+",选择(Chinese(Simplified))添加简体中文,英文Xc ...

最新文章

  1. flash 入门课知识小结
  2. JavaSE学习笔记(二十九)—— 其它流
  3. 如何创建和自定义SQL Server模板
  4. BZOJ 3555 [CTSC2014] 企鹅QQ Hash
  5. java 语法 —— final
  6. 生活的 tricks
  7. 一个顶N个的NextResult
  8. golang命令行贪吃蛇
  9. html希腊字符,希腊字母
  10. python learning notes(柒)
  11. python sklearn库 rnn_scikit-learn 逻辑回归类库使用小结
  12. org.eclipse.core.runtime.CoreException: Plug-in org.eclipse.jdt.ui was unable to load class org.ecli
  13. Hibernate(一)
  14. 【Rochester】MongoDB的基本语法和使用
  15. ESP32WiFi-AP 模式创建 wifi 热点
  16. 芯片封装的作用以及常见封装技术
  17. 初始C++ - auto关键字与内联函数
  18. 开源中国源码学习UI篇(一)之FragmentTabHost的使用分析
  19. 【原神】手机版原神下错版本不能登录怎么办?B服修改为官服
  20. android 开发常用apk工具

热门文章

  1. WebView 加载微信公众号文章加载失败或图片不显示
  2. verilog驱动1602液晶屏
  3. erp框架 saas_SaaS ERP和传统ERP的区别在哪里?
  4. 阿里云因发现Log4j2漏洞未及时上报,被工信部处罚!
  5. python 获取股票的交易数据
  6. 孤军大作战!疯狂DIY 1U硬件防火墙实录(转)
  7. Flask-mongoengine分页bug
  8. actionbar左上角的返回小图标
  9. 办理芯片银行卡时记得把“闪付”功能取消
  10. linux poodle漏洞,Claws Mail 3.11.0发布 修复了POODLE 漏洞