0
0
mirror of https://github.com/Doodle3D/doodle3d-firmware.git synced 2024-12-22 11:03:48 +01:00

Fix wlan state information (and add a number of extra fields).

This commit is contained in:
Wouter R 2013-07-08 18:12:05 +02:00
parent 115e6a7eff
commit b861f43e11
3 changed files with 19 additions and 6 deletions

View File

@ -1,6 +1,5 @@
--[[ --[[
TODO: TODO:
- network/state returns awfully little information (only station mode)
- document REST API (mention rq IDs and endpoint information, list endpoints+args+CRUD type, unknown values are empty fields) - document REST API (mention rq IDs and endpoint information, list endpoints+args+CRUD type, unknown values are empty fields)
- use a slightly more descriptive success/error definition (e.g. errortype=system/missing-arg/generic) - use a slightly more descriptive success/error definition (e.g. errortype=system/missing-arg/generic)
- how to handle requests which need a restart of uhttpd? (e.g. network/openap) - how to handle requests which need a restart of uhttpd? (e.g. network/openap)
@ -14,6 +13,7 @@ TODO:
in any case, arguments should be put in a new table to pass to the function (since order is undefined it must be an assoc array) in any case, arguments should be put in a new table to pass to the function (since order is undefined it must be an assoc array)
NOTES: NOTES:
- using iwinfo with interface name 'radio0' yields very little 'info' output while wlan0 works fine
- The endpoint function info in response objects is incorrect when the global function is called with a blank argument, - The endpoint function info in response objects is incorrect when the global function is called with a blank argument,
to cleanly solve this, module/function resolution should be moved from main() to the request object to cleanly solve this, module/function resolution should be moved from main() to the request object
]]-- ]]--

View File

@ -6,7 +6,7 @@ local iwinfo = require("iwinfo")
local M = {} local M = {}
M.DFL_DEVICE = "radio0" -- was wlan0 M.DFL_DEVICE = "wlan0" -- was radio0
M.AP_SSID = "d3d-ap" M.AP_SSID = "d3d-ap"
M.AP_ADDRESS = "192.168.10.1" M.AP_ADDRESS = "192.168.10.1"
M.AP_NETMASK = "255.255.255.0" M.AP_NETMASK = "255.255.255.0"
@ -60,9 +60,16 @@ end
function M.getDeviceState() function M.getDeviceState()
local iw = iwinfo[dev_api] local iw = iwinfo[dev_api]
local result = { local result = {
["mode"] = M.mapDeviceMode(iw.mode(dev), true),
["ssid"] = iw.ssid(dev), ["ssid"] = iw.ssid(dev),
["bssid"] = iw.bssid(dev) ["bssid"] = iw.bssid(dev),
["channel"] = iw.channel(dev),
["mode"] = M.mapDeviceMode(iw.mode(dev), true),
["encryption"] = M.mapEncryptionType(iw.encryption(dev).description),
["quality"] = iw.quality(dev),
["quality_max"] = iw.quality_max(dev),
["txpower"] = iw.txpower(dev),
["signal"] = iw.signal(dev),
["noise"] = iw.noise(dev)
} }
return result return result
end end

View File

@ -64,7 +64,7 @@ function M.known(d)
netInfo["bssid"] = net.bssid or "" netInfo["bssid"] = net.bssid or ""
netInfo["channel"] = net.channel or "" netInfo["channel"] = net.channel or ""
netInfo["encryption"] = net.encryption netInfo["encryption"] = net.encryption
netInfo["raw"] = l:dump(net) --TEMP for debugging only --netInfo["raw"] = l:dump(net) --TEMP for debugging only
table.insert(netInfoList, netInfo) table.insert(netInfoList, netInfo)
end end
end end
@ -83,7 +83,13 @@ function M.state(d)
r:addData("bssid", ds.bssid or "") r:addData("bssid", ds.bssid or "")
r:addData("channel", ds.channel or "") r:addData("channel", ds.channel or "")
r:addData("mode", ds.mode) r:addData("mode", ds.mode)
r:addData("raw", l:dump(ds)) --TEMP for debugging only r:addData("encryption", ds.encryption)
r:addData("quality", ds.quality)
r:addData("quality_max", ds.quality_max)
r:addData("txpower", ds.txpower)
r:addData("signal", ds.signal)
r:addData("noise", ds.noise)
--r:addData("raw", l:dump(ds)) --TEMP for debugging only
return r return r
end end