Как можно иметь пользовательское действие в каталоге «view», которое запускает метод ubus? - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь реализовать некоторый код для графического интерфейса, используя openwrt и luci.Я хотел бы знать, как реализовать кнопку или формуляр, которые запускают команду lua, когда пользователь отправляет ее.

Я делаю скрипт lua, используя ubus для управления gpi и реле, и теперь я пытаюсь сделатьГрафический интерфейс, в котором пользователям будет разрешено управлять каждым GPIO и реле через команды ubus.

Я знаю команды для вызова методов ubus через графический интерфейс.Я сделал новую страницу с несколькими графическими элементами.Можно ли реализовать кнопку / формуляр, который изменяет переменную, и эта переменная будет использоваться сценарием lua?

Спасибо.

Ответы [ 2 ]

1 голос
/ 14 июня 2019

Да, есть два простых метода, которые могут достичь этого:

  1. POST / GET-запрос к контроллеру.
  2. Использование функций Lua в HTM.

Первый не должен быть сложным для концептуального понимания, и вы можете прочитать о запросах POST / GET в JavaScript (AJAX) здесь: https://www.w3schools.com/jquery/jquery_ajax_get_post.asp

Второй вариант подходит для чего-тоневероятно просто (или для целей тестирования), но я бы посоветовал не использовать его поверх первого только потому, что здесь меньше текста.Все, что вам нужно сделать, это просто окружить свой код Lua <% (code goes here) %>.

Однако есть другой способ, который вообще не использует Lua / JavaScript.Вы можете создать файл конфигурации (так как кажется, что вы что-то сохраняете в нем) и сделать сценарий инициализации, запускающий службу / изменить некоторые параметры после любого изменения файла конфигурации с помощью procd.Вот пример того, как это сделать: https://openwrt.org/docs/guide-developer/procd-init-scripts

0 голосов
/ 27 июля 2019

Используйте команды скручивания, вы можете запускать команду скручивания при нажатии кнопки, и там вы можете достичь своей функциональности

...