博客
关于我
Openwrt LuCI模块练习详细步骤
阅读量:793 次
发布时间:2023-02-24

本文共 2797 字,大约阅读时间需要 9 分钟。

OpenWrt?Luci?????????

OpenWrt??

OpenWrt ?????Linux???????????????????????????????????????Luci?Lua Configuration Interface?? OpenWrt ????????????Lua??????????????

MVC??

MVC?Model-View-Controller????????????Web?????Model ??????????View ?????????Controller ?????????? OpenWrt ???????? Lua ??????????

Luci????

Luci ????? Lua ????? HTML?CSS ? JavaScript????? Web ?????Luci ????????????????? Luci ??????

module("luci.controller.addtest", package.seeall)function index()    entry({        "admin", "system", "addtest"    }, alias("admin", "system", "addtest", "set"), _("AddTest"), 99).index = true    entry({        "admin", "system", "addtest", "set"    }, cbi("addtest"), _("Set"), 1)    entry({        "admin", "system", "addtest", "info"    }, call("action_info"), _("Info"), 2)endfunction action_info()    if not nixio.fs.access("/tmp/addtest") then        return    end    local info = nixio.fs.readfile("/tmp/addtest")    luci.template.render("addtest_info", { info = info })end

UCI??

UCI?Unified Configuration Interface?? OpenWrt ??????????? /etc/config/ ??????????????? UCI ???

config arguments    option interval ''    option content ''

Model??

???Model?? OpenWrt ????? Lua ??????????????????

m = Map("addtest", translate("Luci??"), translate("fat cheng's test"))s = m:section(TypedSection, "arguments", "")s.addremove = trues.anonymous = falses:option(Flag, "enable", translate("??"))s:option(Value, "interval", translate("??"))s:option(Value, "content", translate("??"))local apply = luci.http.formvalue("cbi.apply")if apply then    io.popen("/etc/init.d/addtestd restart")endreturn m

Init??

??????????????????????????? init ???

#!/bin/sh/etc/rc.commonSTART=50run_addtest() {    local enable=$1    config_get_bool enable $1 enable    if [ $enable ]; then        local interval=$2        local content=$3        addtest $interval $content    fi}start() {    config_load addtest    config_foreach run_addtest arguments}stop() {    result=$(pidof addtest)    kill -9 $result    echo "addtest has stopped"}$0 $@ 2>/dev/null

?????

???????????????????????????? Makefile?

addtest: addtest.o    $(CC) addtest.o -o addtestaddtest.o: addtest.c    $(CC) -c addtest.cclean:    rm -f *.o addtest

?????

??????? HTML?CSS ? JavaScript ????????????????

    AddTest Info    

AddTest Info

?????

? OpenWrt ?????????????

  • ???Include???????? OpenWrt ??????
  • ???Compile????????
  • ???Sign??????????
  • ???Package???????????????
  • ????

    Q&A

  • MVC????

    • MVC ? Model-View-Controller ???????????????????????
  • Luci ? UCI ??????

    • Luci ? OpenWrt ???????? Lua ???
    • UCI ? OpenWrt ????????????????????
  • ???? OpenWrt ?????????

    • ?? /etc/rc.local ? /etc/init.d/ ?????????????????
  • ??

    ??????????OpenWrt ? Luci ??????????????????????????????????????????????????????????????????????????? OpenWrt ?????????????????

    转载地址:http://rnpfk.baihongyu.com/

    你可能感兴趣的文章
    opencv30-图像矩
    查看>>
    opencv32-基于距离变换和分水岭的图像分割
    查看>>
    opencv4-图像操作
    查看>>
    opencv5-图像混合
    查看>>
    opencv6-调整图像亮度和对比度
    查看>>
    opencv7-绘制形状和文字
    查看>>
    opencv8-图像模糊
    查看>>
    opencv9-膨胀和腐蚀
    查看>>
    OpenCV_ cv2.imshow()
    查看>>
    opencv——图像缩放1(resize)
    查看>>
    opencv——最简单的视频读取
    查看>>
    Opencv——模块介绍
    查看>>
    OpenCV与AI深度学习 | 2024年AI初学者需要掌握的热门技能有哪些?
    查看>>
    OpenCV与AI深度学习 | CIB-SE-YOLOv8: 优化的YOLOv8, 用于施工现场的安全设备实时检测 !
    查看>>
    OpenCV与AI深度学习 | OpenCV中八种不同的目标追踪算法
    查看>>
    OpenCV与AI深度学习 | OpenCV图像拼接--Stitching detailed使用与参数介绍
    查看>>
    OpenCV与AI深度学习 | OpenCV常用图像拼接方法(一) :直接拼接
    查看>>
    OpenCV与AI深度学习 | OpenCV快速傅里叶变换(FFT)用于图像和视频流的模糊检测(建议收藏!)
    查看>>
    OpenCV与AI深度学习 | SAM2(Segment Anything Model 2)新一代分割一切大模型介绍与使用(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | YOLO11介绍及五大任务推理演示(目标检测,图像分割,图像分类,姿态检测,带方向目标检测)
    查看>>