[luci] add a sensor configuration page
This commit is contained in:
parent
e80c9d17c8
commit
88dba6e8da
|
@ -6,6 +6,7 @@ config settings main
|
|||
option max_sensors 6
|
||||
option max_analog_sensors 3
|
||||
option reset_counters 0
|
||||
option phase 1
|
||||
|
||||
config settings daemon
|
||||
option logmask info
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
--[[
|
||||
LuCI - Lua Configuration Interface
|
||||
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
|
||||
Copyright 2011 Bart Van Der Meerssche <bart.vandermeerssche@flukso.net>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
$Id: network.lua 3672 2008-10-31 09:35:11Z Cyrus $
|
||||
]]--
|
||||
|
||||
module("luci.controller.mini.sensor", package.seeall)
|
||||
|
||||
function index()
|
||||
luci.i18n.loadc("admin-core")
|
||||
local i18n = luci.i18n.translate
|
||||
|
||||
entry({"sensor"}, cbi("mini/sensor", {autoapply=true}), i18n("sensor"), 1)
|
||||
end
|
|
@ -0,0 +1,79 @@
|
|||
--[[
|
||||
LuCI - Lua Configuration Interface
|
||||
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
|
||||
Copyright 2011 Bart Van Der Meerssche <bart.vandermeerssche@flukso.net>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
$Id: network.lua 5949 2010-03-27 14:56:35Z jow $
|
||||
]]--
|
||||
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
|
||||
local FLUKSO = uci:get_all("flukso")
|
||||
local MAX_SENSORS = tonumber(FLUKSO.main.max_sensors)
|
||||
|
||||
|
||||
m = Map("flukso", translate("Sensor"), translate("Fluksometer sensor configuration"))
|
||||
|
||||
-- sync with the sensor board after committing to the uci file
|
||||
m.on_after_commit = function(self)
|
||||
luci.util.exec("fsync")
|
||||
end
|
||||
|
||||
|
||||
s = m:section(NamedSection, "main", "settings", "general settings")
|
||||
phase = s:option(ListValue, "phase", translate("phase"))
|
||||
phase:value("1")
|
||||
phase:value("3")
|
||||
|
||||
-- (ab)use phase validation callback to assign port numbers to sensors
|
||||
function phase:validate(value, section)
|
||||
if value == "1" then
|
||||
uci:set_list("flukso", "1", "port", "1")
|
||||
uci:set_list("flukso", "2", "port", "2")
|
||||
uci:set_list("flukso", "3", "port", "3")
|
||||
elseif value == "3" then
|
||||
uci:set_list("flukso", "1", "port", { "1", "2", "3" })
|
||||
uci:delete ("flukso", "2", "port")
|
||||
uci:delete ("flukso", "3", "port")
|
||||
end
|
||||
|
||||
uci:commit("flukso")
|
||||
|
||||
return value
|
||||
end
|
||||
|
||||
|
||||
s = {}
|
||||
|
||||
for i = 1, MAX_SENSORS do
|
||||
s[i] = m:section(NamedSection, tostring(i), "sensor", "sensor #" .. i)
|
||||
s[i].addremove = false
|
||||
|
||||
s[i]:option(DummyValue, "id", translate("identifier"))
|
||||
s[i]:option(DummyValue, "class", translate("class"))
|
||||
|
||||
if FLUKSO[tostring(i)].class == "analog" then
|
||||
s[i]:option(Value, "voltage", translate("voltage"))
|
||||
current = s[i]:option(ListValue, "current", translate("current"))
|
||||
current:value("50")
|
||||
current:value("100")
|
||||
current:value("250")
|
||||
current:value("500")
|
||||
|
||||
elseif FLUKSO[tostring(i)].class == "pulse" then
|
||||
s[i]:option(Value, "constant", translate("constant"))
|
||||
end
|
||||
|
||||
enable = s[i]:option(Flag, "enable", translate("enable"))
|
||||
enable.rmempty = false
|
||||
end
|
||||
|
||||
return m
|
Loading…
Reference in New Issue