applications/ffwizard: Do not disable diversity because we don't know which antenna is connected. Instead show a warning on admin/freifunk/adminindex when diversity is enabled and tell the user to change that.

This commit is contained in:
Manuel Munz 2011-01-27 13:52:37 +00:00
parent 01ad52f27a
commit 3813d639de
3 changed files with 26 additions and 14 deletions

View file

@ -101,15 +101,15 @@ end
-------------------- View --------------------
f = SimpleForm("ffwizward", "Freifunkassistent",
"Dieser Assistent unterstützt Sie bei der Einrichtung des Routers für das Freifunknetz.")
translate("This wizard will assist you in setting up your router for your local Freifunk network or another similar wireless community network."))
-- if password is not set or default then force the user to set a new one
if sys.exec("diff /rom/etc/passwd /etc/passwd") == "" then
pw1 = f:field(Value, "pw1", translate("password"))
pw1 = f:field(Value, "pw1", translate("Password"))
pw1.password = true
pw1.rmempty = false
pw2 = f:field(Value, "pw2", translate("confirmation"))
pw2 = f:field(Value, "pw2", translate("Confirmation"))
pw2.password = true
pw2.rmempty = false
@ -122,13 +122,13 @@ end
local cc = uci:get(community, "wifi_device", "country") or "DE"
main = f:field(Flag, "netconfig", "Netzwerk einrichten", "Setzen Sie den Haken, wenn Sie Ihr Freifunk Netzwerk einrichten wollen.")
main = f:field(Flag, "netconfig", translate("Configure network"), translate("Select this checkbox to configure your network interfaces."))
uci:foreach("wireless", "wifi-device",
function(section)
local device = section[".name"]
local hwtype = section.type
local syscc = section.country
local syscc = uci:get("wireless", device, "country")
if not syscc then
if hwtype == "atheros" then
cc = sys.exec("grep -i '" .. cc .. "' /lib/wifi/cc_translate.txt |cut -d ' ' -f 2") or 0
@ -136,7 +136,6 @@ uci:foreach("wireless", "wifi-device",
elseif hwtype == "mac80211" then
sys.exec("iw reg set " .. cc)
elseif hwtype == "broadcom" then
-- verify that ot works!
sys.exec ("wlc country " .. cc)
end
else
@ -662,6 +661,14 @@ function main.write(self, section, value)
local hwmode = "11bg"
local bssid = uci:get_all(community, "wifi_iface", "bssid") or "02:CA:FF:EE:BA:BE"
local mrate = 5500
devconfig.diversity = sec.diversity or "1"
if sec.txantenna then
devconfig.txantenna = sec.txantenna
end
if sec.rxantenna then
devconfig.rxantenna = sec.rxantenna
end
-- set bssid, see https://kifuse02.pberg.freifunk.net/moin/channel-bssid-essid for schema
if channel and channel ~= "default" then
if devconfig.channel ~= channel then

View file

@ -8,9 +8,7 @@ set_default_config()
atheros)
uci -q batch <<-EOF
set freifunk.wifi_device.channel=1
set freifunk.wifi_device.diversity=0
set freifunk.wifi_device.txantenna=1
set freifunk.wifi_device.rxantenna=1
set freifunk.wifi_device.diversity=1
set freifunk.wifi_device.disabled=0
set freifunk.wifi_device.txpower=""
set freifunk.wifi_device.hwmode=11g
@ -27,7 +25,7 @@ set_default_config()
mac80211)
uci -q batch <<-EOF
set freifunk.wifi_device.channel=1
set freifunk.wifi_device.diversity=""
set freifunk.wifi_device.diversity=1
set freifunk.wifi_device.disabled=0
set freifunk.wifi_device.txpower=""
set freifunk.wifi_device.distance=1000
@ -43,11 +41,9 @@ set_default_config()
broadcom)
uci -q batch <<-EOF
set freifunk.wifi_device.channel=1
set freifunk.wifi_device.diversity=""
set freifunk.wifi_device.diversity=1
set freifunk.wifi_device.disabled=0
set freifunk.wifi_device.txpower=""
set freifunk.wifi_device.txantenna=0
set freifunk.wifi_device.rxantenna=0
set freifunk.wifi_device.hwmode=11g
set freifunk.wifi_device.distance=1000
set freifunk.wifi_iface=defaults

View file

@ -26,8 +26,17 @@ local basicsurl = luci.dispatcher.build_url(luci.dispatcher.context.path[1], "fr
<% if not (contact.nickname and contact.name and contact.mail) then%>
<div class="error">
<%:Contact information missing. Please go to this page and fill all required fields: %>
<a href='<%=contacturl%>'><%:Contact%></a>
<a href='<%=contacturl%>'><%:Contact%></a><p />
</div>
<%end%>
<% uci:foreach("wireless", "wifi-device", function(section)
local device = section[".name"]
local url = luci.dispatcher.build_url(luci.dispatcher.context.path[1], "network", "wireless")
if section.diversity ~= "0" and section.disabled ~= "1" then
print('<div class="error">Diversity is enabled for device <b>' .. device .. '</b>. Go to <a href="' .. url .. '">wireless settings</a> to change that.</div><p />')
end
end) %>
<%+footer%>