在“视图”目录中如何执行触发ubus方法的用户操作?

时间:2019-06-14 08:20:09

标签: view lua gpio openwrt

我正在尝试使用openwrt和luci为GUI实现一些代码。 我想知道如何实现在用户提交时触发lua命令的按钮或公式。

我使用ubus编写了一个lua脚本来控制gpios和中继,现在我正在尝试制作一个GUI,在该GUI中将允许用户控制每个GPIO并通过ubus命令进行中继。

我知道通过GUI调用ubus方法的命令。 我做了一个新页面,其中包含几个图形项。是否可以实现将变量更改为按钮/形式,并且lua脚本将使用此变量?

谢谢。

2 个答案:

答案 0 :(得分:1)

是的,有两种简单方法可以实现这一目标:

  1. 对控制器的POST / GET请求。
  2. 在HTM中使用Lua功能。

第一个应该在概念上不难理解,您可以在这里阅读有关JavaScript(AJAX)中的POST / GET请求的信息:https://www.w3schools.com/jquery/jquery_ajax_get_post.asp

第二个选项对非常简单的东西(或用于测试目的)很好,但是我建议不要在第一个选项上使用它,因为这会减少键入的内容。您所需要做的只是用<% (code goes here) %>包围Lua代码。

但是,还有另一种方法完全不依赖Lua / JavaScript。您可以制作一个配置文件(好像您确实要保存一些东西),并使用procd对配置文件进行任何更改后,使init脚本启动服务/更改一些参数。以下是操作方法的示例:https://openwrt.org/docs/guide-developer/procd-init-scripts

答案 1 :(得分:0)

使用curl命令,可以在按下按钮时触发curl命令,从而可以实现功能