Skip to content
This repository has been archived by the owner on Aug 1, 2019. It is now read-only.

Commit

Permalink
BugFix: Zählung der Clients am Node korrigiert
Browse files Browse the repository at this point in the history
Wenn der Link Typ = client ist, sind beide vorherigen Bedingungen false.
Wenn man hier also ohne die else if Bedingung über alle Knoten iterieren würde, bekämen die Gateways fälschlicher Weise zusätzliche Clients addiert.
Da hingegen bei jedem Client aber die Source und die Target ID jeweils in der Liste der Nodes enthalten ist, werden für alle Clients die beiden ersten Bedingungen false werden.
Obacht: Ein "else" reicht nicht aus, da es noch andere Typen gibt!
--> man hat im hinzugefügten Else If Zweig tatsächlich genau die Client Links angesprochen. Hier wird die source interessant, da eine Verbindung zum Client immer vom FF-Knoten aus geht.

link ist das aktuelle Linkelement aus der .json Datei.
link.source ist das zugehörige LinkConnector Objekt. (Siehe link.py)
link.source.id ist in diesem Fall die Position des Nodes in der Node-Liste in der aktuellen .json Datei. (Array Index)
db.get_nodes()[link.source.id] ist also der entsprechende Eintrag der Node-List der aktuellen .json Datei. (zu obigem Index)
db.get_nodes()[link.source.id].id ist wiederrum die "ID" (in diesem Fall ID = die MAC Adresse) des entsprechenden Knotens in der Node-List der aktuellen .json Datei.
Die nodes Tabelle trägt als Index eben jene ID (MAC), daher muss dass "clients" Attribut dieser Stelle um 1 hochgezählt werden.

Die Daten landen danach korrekt in den .rrd Dateien, die Generierung der Graphen funktioniert korrekt, sodass das Problem der leeren Knoten-Graphen damit behoben ist.
  • Loading branch information
Dunstkreis committed Aug 21, 2014
1 parent 4fc8d74 commit 494047e
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions rrd.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ def update_database(self,db):
nodes[source].clients += 1
elif target in nodes and not source in nodes:
nodes[target].clients += 1
elif link.type == 'client':
nodes[db.get_nodes()[link.source.id].id].clients += 1

self.globalDb.update(len(nodes), clientCount)
for node in nodes.values():
Expand Down

0 comments on commit 494047e

Please sign in to comment.