map/router.html: Indicate ethernet mesh connections by color

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
Adrian Schmutzler 2018-04-29 15:33:31 +02:00
parent 3034fd9e2c
commit 166cad518a
6 changed files with 28 additions and 11 deletions

View File

@ -23,6 +23,10 @@
</Rule> </Rule>
</Style> </Style>
<Style name="color" filter-mode="first"> <Style name="color" filter-mode="first">
<Rule>
<Filter>([quality] &lt; 1)</Filter>
<LineSymbolizer stroke-width="3" stroke="#008c00" stroke-linecap="butt" clip="false" />
</Rule>
<Rule> <Rule>
<Filter>([quality] &lt; 105)</Filter> <Filter>([quality] &lt; 105)</Filter>
<LineSymbolizer stroke-width="3" stroke="#ff1e1e" stroke-linecap="butt" clip="false" /> <LineSymbolizer stroke-width="3" stroke="#ff1e1e" stroke-linecap="butt" clip="false" />

View File

@ -23,6 +23,10 @@
</Rule> </Rule>
</Style> </Style>
<Style name="color" filter-mode="first"> <Style name="color" filter-mode="first">
<Rule>
<Filter>([quality] &lt; 1)</Filter>
<LineSymbolizer stroke-width="3" stroke="#008c00" stroke-linecap="butt" clip="false" />
</Rule>
<Rule> <Rule>
<Filter>([quality] &lt; 105)</Filter> <Filter>([quality] &lt; 105)</Filter>
<LineSymbolizer stroke-width="3" stroke="#ff1e1e" stroke-linecap="butt" clip="false" /> <LineSymbolizer stroke-width="3" stroke="#ff1e1e" stroke-linecap="butt" clip="false" />

View File

@ -137,14 +137,23 @@ def update_mapnik_csv(mysql):
else: else:
# Check for duplicate # Check for duplicate
if row["nid"] in dictl2.keys() and row["rid"] in dictl2[row["nid"]].keys(): if row["nid"] in dictl2.keys() and row["rid"] in dictl2[row["nid"]].keys():
# Check for ethernet (ethernet always wins)
if dictl2[row["nid"]][row["rid"]]["data"][4] == 0:
continue
row["quality"] = int(0.5 * (dictl2[row["nid"]][row["rid"]]["data"][4] + row["quality"])) row["quality"] = int(0.5 * (dictl2[row["nid"]][row["rid"]]["data"][4] + row["quality"]))
del dictl2[row["nid"]][row["rid"]] # Delete old entry, as we create a new one with averaged quality del dictl2[row["nid"]][row["rid"]] # Delete old entry, as we create a new one with averaged quality
if row["rid"] in dictl2.keys() and row["nid"] in dictl2[row["rid"]].keys(): if row["rid"] in dictl2.keys() and row["nid"] in dictl2[row["rid"]].keys():
# Check for ethernet (ethernet always wins)
if dictl2[row["rid"]][row["nid"]]["data"][4] == 0:
continue
row["quality"] = int(0.5 * (dictl2[row["rid"]][row["nid"]]["data"][4] + row["quality"])) row["quality"] = int(0.5 * (dictl2[row["rid"]][row["nid"]]["data"][4] + row["quality"]))
# No need to delete, since we overwrite later # No need to delete, since we overwrite later
# Write current set to dict # Write current set to dict
if not row["rid"] in dictl2.keys(): if not row["rid"] in dictl2.keys():
dictl2[row["rid"]] = {} dictl2[row["rid"]] = {}
# Check for ethernet
if row["netif"].startswith("eth"):
row["quality"] = 0
tmp = ( tmp = (
row["rlng"], row["rlng"],

View File

@ -16,12 +16,10 @@ def writefulllog(content):
with open(CONFIG["debug_dir"] + "/fulllog.log", "a") as csv: with open(CONFIG["debug_dir"] + "/fulllog.log", "a") as csv:
csv.write(time.strftime('{%Y-%m-%d %H:%M:%S}') + " - " + content + "\n") csv.write(time.strftime('{%Y-%m-%d %H:%M:%S}') + " - " + content + "\n")
def neighbor_color(quality,rt_protocol): def neighbor_color(quality,netif,rt_protocol):
color = "#04ff0a"
if rt_protocol=="BATMAN_V": if rt_protocol=="BATMAN_V":
color = "#04ff0a" if quality < 10:
if quality < 0:
color = "#06a4f4"
elif quality < 10:
color = "#ff1e1e" color = "#ff1e1e"
elif quality < 20: elif quality < 20:
color = "#ff4949" color = "#ff4949"
@ -32,10 +30,7 @@ def neighbor_color(quality,rt_protocol):
elif quality < 1000: elif quality < 1000:
color = "#ffeb79" color = "#ffeb79"
else: else:
color = "#04ff0a" if quality < 105:
if quality < 0:
color = "#06a4f4"
elif quality < 105:
color = "#ff1e1e" color = "#ff1e1e"
elif quality < 130: elif quality < 130:
color = "#ff4949" color = "#ff4949"
@ -47,6 +42,11 @@ def neighbor_color(quality,rt_protocol):
color = "#ffeb79" color = "#ffeb79"
elif quality < 230: elif quality < 230:
color = "#79ff7c" color = "#79ff7c"
if netif.startswith("eth"):
#color = "#999999"
color = "#008c00"
if quality < 0:
color = "#06a4f4"
return color return color
def defrag_table(mysql,table,sleep): def defrag_table(mysql,table,sleep):

View File

@ -105,7 +105,7 @@ def get_nearest_router():
WHERE nb.router = %s""",(router["id"],)) WHERE nb.router = %s""",(router["id"],))
mysql.close() mysql.close()
for n in router["neighbours"]: for n in router["neighbours"]:
n["color"] = neighbor_color(n["quality"],router["routing_protocol"]) n["color"] = neighbor_color(n["quality"],n["netif"],router["routing_protocol"])
r = make_response(bson2json(router)) r = make_response(bson2json(router))
r.mimetype = 'application/json' r.mimetype = 'application/json'

View File

@ -226,7 +226,7 @@ def router_info(dbid):
## Set color for neighbors AFTER json if clause ## Set color for neighbors AFTER json if clause
for n in router["neighbours"]: for n in router["neighbours"]:
n["color"] = neighbor_color(n["quality"],router["routing_protocol"]) n["color"] = neighbor_color(n["quality"],n["netif"],router["routing_protocol"])
router["stats"] = mysql.fetchall("""SELECT * FROM router_stats WHERE router = %s""",(dbid,)) router["stats"] = mysql.fetchall("""SELECT * FROM router_stats WHERE router = %s""",(dbid,))
for s in router["stats"]: for s in router["stats"]: