Releases: GNATN/ONOD
HotFix
Build #3
Build #3
Introduction
The team has been busy pushing out new features and further developing existing ones. Below will outline what build 2 has implement including, improvements. known bugs and the future.
Description
Features
- The Dashboard Page
With this build we have introduced a new tab! This tab will allow users to view all graphs associated with each node to quickly access the nodes current performance in the network
- Node Wireless Scan Page - Analytical Graph
With this build we have introduced a new graph to the Wireless Scan Page! This graph will allow users to view Wireless Scan snapshots and graph them in a way will show interference clearly.
- Node Wireless RSSI Tab
With this build we have introduced a new tab to the status page! This graph will allow users to view the Received Signal Strength Indication Tab from all given nodes.
- Hide Graphs
With this build we have implemented a feature that allows the user to hide a graph so that the user can see the graphs that matter to them.
- Tool-tips/Alerts/Pop overs
With this feature we have been able to populate the User Interface with tool tips, alerts and pop-overs that informs the user with information about how to use the page or display any error that may be happening.
- Client side live host-names
With this build we have implemented a feature that updates the host names of all the graphs titles with the real node host name.
- Announcer
This build includes a script that will update a JSON log file that will show all nodes in the mesh that are running the logger. This intern updates a client side interface that allows the user to swap between nodes that are running the logger.
Improvements
- Server-side log management (hard-constraints and cleaning)
With this build we have implemented a feature that actively controls the logger's hard limits on what the file size the total logs can write too, this can be configed per build and edited server side. Increasing stability. - Robustness/stability
With this build we hunted and killed many bugs and have placed some error handling throughout the program to stop critical failure, though we intend to further this. This build also includes stabilization of other browsers; other then chrome. While this software currently works best in chrome. You should be able to operate this in later versions of Firefox and Internet Explorer.
TODO
- Informational Text
- More Error-handling
- store logs on external device
There will be a wiki up to support all these features. Shorty
Remember.
Feedback is wanted!
v0.25: HotFix:
HotFix:
- Added analyical Graph to the Wireless Scan Page
- Added robustness to the Dispatcher
- Fixed a bug with the jquery and modal callbacks with Firefox and IE
Build #2
Build #2
Introduction
This build cycle was a big one! The team has been busy pushing out new features and further developing existing ones. Below will outline what build 2 has implement including, improvements. known bugs and the future.
Description
Features
- Bootstrap 3.0 migration
In this feature, we have moved completely over to the new bootstrap 3.0, and with it formalized the layout.
- Node Wireless Scan Page
With this build we have introduced a new tab! This tab will allow users to view wireless Scan snapshots of their node's wireless environment
- Resizing of graphs and tab content
With this build we have implemented a feature that allows the graphs to self organize, on the size of the window they are currently in.
- Client-Side Logger Configuration Modal
With this feature you will be able to configure the logger that is running on the node! From what log files you wish to make, to settings on how you want the logger to operate. We put this to you, to config the logger the way you want.
- host file
This build also includes a feature that allow the node's name to be dynamically updated based on the node's mac address, allowing easy reading for any user.
{
"a2:18:6b:0d:7b:c7": {hName: "TP-4", iface: "bat0"},
"f8:1a:67:90:fb:70": {hName: "TP-4", iface: "wlan0"},
"fa:1a:67:90:fb:71": {hName: "TP-4", iface: "wlan0-1"},
"f8:1a:67:90:fb:6f": {hName: "TP-4", iface: "eth0"},
"f8:1a:67:90:fb:71": {hName: "TP-4", iface: "eth1"},
"f8:1a:67:de:2b:5e": {hName: "Node-4", iface: "wlan0"},
"f8:1a:67:de:2b:5d": {hName: "Node-4", iface: "eth0"},
"fa:1a:67:de:2b:5e": {hName: "Node-4", iface: "wlan0-1"},
"36:3c:37:f3:02:a8": {hName: "Node-4", iface: "bat0"},
"f8:1a:67:de:2b:5f": {hName: "Node-4", iface: "eth1"},
"f8:1a:67:7c:d3:9d": {hName: "Node-3", iface: "eth1"},
"62:9a:91:d5:3b:00": {hName: "Node-3", iface: "bat0"},
"fa:1a:67:7c:d3:9c": {hName: "Node-3", iface: "wlan0-1"},
"f8:1a:67:7c:d3:9b": {hName: "Node-3", iface: "eth0"},
"f8:1a:67:7c:d3:9c": {hName: "Node-3", iface: "wlan0"},
"32:20:be:a9:19:a8": {hName: "Node-2", iface: "bat0"},
"fa:1a:67:90:ed:c8": {hName: "Node-2", iface: "wlan0-1"},
"f8:1a:67:90:ed:c7": {hName: "Node-2", iface: "eth0"},
"f8:1a:67:90:ed:c9": {hName: "Node-2", iface: "eth1"},
"f8:1a:67:90:ed:c8": {hName: "Node-2", iface: "wlan0"}
}
- Announcer
This build includes a script that will update a JSON log file that will show all nodes in the mesh that are running the logger. This will allow us in the feature to let the user swap between nodes.
{"hosts":[
{"ipaddr":"192.168.15.4","hostname":"TP-4"},
{"ipaddr":"192.168.15.6","hostname":"Node-3"}
]}
Improvements
- Dropped Encoder Dependency
We have dropped the dkjson library dependency in this build. Lowering our storage requirement footprint. - Logger operating footprint
In this build we were able to significantly lower the CPU and Memory footprint, due to reworking the way we generate our logs. - Log Size Reduction
We also pruned what we put in each log file to minimize the size of the file. - Robustness/stability
With this build we hunted and killed many bugs and have placed some error handling throughout the program to stop critical failure, though we intend to further this. This build also includes stabilization of other browsers; other then chrome. While this software currently works best in chrome. You should be able to operate this in later versions of Firefox and Internet Explorer.
Backlog
- Hide button for graphs
- Client side updating the host-name
- Node Neighbourhood (Dashboard)
- Node Wireless RSSI Tab
- Sorting graphs by a metric
TODO
- Section to allow to you switch between nodes that are running the logging tool
- Tooltips
- Alerts
- Informational Text
- Channel Analyser graph
- Server-side log management (hard-constraints and cleaning)
- More Error-handling
- store logs on external device
Wish List
These features that may not be finished and are not critical to the project's success.
- Tab for Packet Loss
- Node Lag Graph
- Link Quantity Graph
- Hop Penalty and the OGM interval in the footer
- Minstrel log
Log Files
These are the formate examples of the the log file s that we currently use. These are currently subject to change, and there may be additional logs added in the future
Associate List
{"items":[
{"time":"Sun Sep 22 15:03:57 2013","data":{"FA:1A:67:DE:2B:5E":{"noise":-95,"signal":-7},"FA:1A:67:7C:D3:9C":{"noise":-95,"signal":-13},"FA:1A:67:90:FB:71":{"noise":-95,"signal":-82}}},
{"time":"Sun Sep 22 15:04:05 2013","data":{"FA:1A:67:DE:2B:5E":{"noise":-95,"signal":-11},"FA:1A:67:7C:D3:9C":{"noise":-95,"signal":-16},"FA:1A:67:90:FB:71":{"noise":-95,"signal":-82}}},
{"time":"Sun Sep 22 15:04:12 2013","data":{"FA:1A:67:DE:2B:5E":{"noise":-95,"signal":-13},"FA:1A:67:7C:D3:9C":{"noise":-95,"signal":-16},"FA:1A:67:90:FB:71":{"noise":-95,"signal":-83}}},
{"time":"Sun Sep 22 15:04:19 2013","data":{"FA:1A:67:DE:2B:5E":{"noise":-95,"signal":-8},"FA:1A:67:7C:D3:9C":{"noise":-95,"signal":-15},"FA:1A:67:90:FB:71":{"noise":-95,"signal":-85}}},
...
{"time":"Sun Sep 22 15:04:26 2013","data":{"FA:1A:67:DE:2B:5E":{"noise":-95,"signal":-8},"FA:1A:67:7C:D3:9C":{"noise":-95,"signal":-13},"FA:1A:67:90:FB:71":{"noise":-95,"signal":-83}}},
{"time":"Sun Sep 22 15:04:34 2013","data":{"FA:1A:67:DE:2B:5E":{"noise":-95,"signal":-11},"FA:1A:67:7C:D3:9C":{"noise":-95,"signal":-15},"FA:1A:67:90:FB:71":{"noise":-95,"signal":-83}}}
]}
Batman Scores
{"items":[
{"time":"Sun Sep 22 15:03:57 2013","originNodes":[["FA:1A:67:7C:D3:9C",0.860,255],["FA:1A:67:DE:2B:5E",0.730,254],["FA:1A:67:90:FB:71",0.450,212]]},
{"time":"Sun Sep 22 15:04:05 2013","originNodes":[["FA:1A:67:7C:D3:9C",0.200,255],["FA:1A:67:DE:2B:5E",0.050,254],["FA:1A:67:90:FB:71",0.810,215]]},
{"time":"Sun Sep 22 15:04:12 2013","originNodes":[["FA:1A:67:7C:D3:9C",0.380,255],["FA:1A:67:DE:2B:5E",0.140,255],["FA:1A:67:90:FB:71",0.120,242]]},
{"time":"Sun Sep 22 15:04:19 2013","originNodes":[["FA:1A:67:7C:D3:9C",0.610,255],["FA:1A:67:DE:2B:5E",0.400,255],["FA:1A:67:90:FB:71",0.480,250]]},
{"time":"Sun Sep 22 15:04:26 2013","originNodes":[["FA:1A:67:7C:D3:9C",0.820,255],["FA:1A:67:DE:2B:5E",0.580,255],["FA:1A:67:90:FB:71",0.820,248]]},
...
{"time":"Sun Sep 22 15:04:34 2013","originNodes":[["FA:1A:67:7C:D3:9C",0.100,255],["FA:1A:67:DE:2B:5E",0.840,255],["FA:1A:67:90:FB:71",0.220,251]]},
{"time":"Sun Sep 22 15:04:41 2013","originNodes":[["FA:1A:67:7C:D3:9C",0.390,255],["FA:1A:67:DE:2B:5E",0.240,255],["FA:1A:67:90:FB:71",1.510,251]]}
]}
Wireless Scan Log
{"items":[
{"time":"Sun Sep 22 15:03:57 2013","wScan":[{"signal":-76,"quality_max":70,"ssid":"vt-mesh","encryption":"None","channel":1,"bssid":"02:CA:FF:EE:BA:BE","mode":"Ad-Hoc","quality":34},{"signal":-77,"quality_max":70,"ssid":"VT-SECN-AP","encryption":"WPA PSK (TKIP)","channel":1,"bssid":"F8:1A:67:DE:2B:5E","mode":"Master","quality":33},{"signal":-85,"quality_max":70,"ssid":"VT-SECN-AP","encryption":"WPA PSK (TKIP)","channel":1,"bssid":"F8:1A:67:7C:D3:9C","mode":"Master","quality":25},{"signal":-84,"quality_max":70,"ssid":"VT-SECN-AP","encryption":"WPA PSK (TKIP)","channel":1,"bssid":"F8:1A:67:90:FB:70","mode":"Master","quality":26},{"signal":-56,"quality_max":70,"ssid":"HomeNet","encryption":"WPA2 PSK (CCMP)","channel":6,"bssid":"D4:A0:2A:31:12:AA","mode":"Master","quality":54},{"signal":-89,"quality_max":70,"ssid":"ComedyCentral","encryption":"WPA2 PSK (CCMP)","channel":1,"bssid":"44:D8:84:69:B6:8D","mode":"Master","quality":21}]},
{"time":"Sun Sep 22 15:04:05 2013","wScan":[{"signal":-72,"quality_max":70,"ssid":"vt-mesh","encryption":"None","channel":1,"bssid":"02:CA:FF:EE:BA:BE","mode":"Ad-Hoc","quality":38},{"signal":-83,"quality_max":70,"ssid":"VT-SECN-AP","encryption":"WPA PSK (TKIP)","channel":1,"bssid":"F8:1A:67:DE:2B:5E","mode":"Master","quality":27},{"signal":-81,"quality_max":70,"ssid":"VT-SECN-AP","encryption":"WPA PSK (TKIP)","channel":1,"bssid":"F8:1A:67:7C:D3:9C","mode":"Master","quality":29},{"signal":-82,"quality_max":70,"ssid":"VT-SECN-AP","encryption":"WPA PSK (TKIP)","channel":1,"bssid":"F8:1A:67:90:FB:70","mode":"Master","quality":28},{"signal":-55,"quality_max":70,"ssid":"HomeNet","encryption":"WPA2 PSK (CCMP)","channel":6,"bssid":"D4:A0:2A:31:12:AA","mode":"Master","quality":55},{"signal":-88,"quality_max":70,"ssid":"ComedyCentral","encryption":"WPA2 PSK (CCMP)","channel":1,"bssid":"44:D8:84:69:B6:8D","mode":"Master","quality":22}]},
{"time":"Sun Sep 22 15:04:12 2013","wScan":[{"signal":-70,"quality_max":70,"ssid":"vt-mesh","encryption":"None","channel":1,"bssid":"02:CA:FF:EE:BA:BE","mode":"Ad-Hoc","quality":40},{"signal":-62,"quality_max":70,"ssid":"VT-SECN-AP","encryption":"WPA PSK (TKIP)","channel":1,"bssid":"F8:1A:67:DE:2B:5E","mode":"Master","quality":48},{"signal":-84,"quality_max":70,"ssid":"VT-SECN-AP","encryption":"WPA PSK (TKIP)","channel":1,"bssid":"F8:1A:67:7C:D3:9C","mode":"Master","quality":26},{"signal":-85,"quality_max":70,"ssid":"VT-SECN-AP","encryption":"WPA PSK (TKIP)","channel":1,"bssid":"F8:1A:67:90:FB:70","mode":"Master","quality":25},{"signal":-55,"quality_max":70,"ssid":"HomeNet","encryption"...
HotFixs
Build 1
ONOD
Open Node Observation Deck
For you guys to use this on your router will need the below packages:
uhttpd-mod-lua - it's used to allow tthe front end to send commands to the uhttpd server to start the logger
lua
libiwinfo-lua - Used to poll data from the router
To install those packages, you should be able to use it opkg update & opkg install .
you will also need to reinstall uhttp AFTER uhttpd-mod-lua has been installed. You can do this by opkg install uhttpd --force-reinstall. you won't lose your configuration of the uhttpd server it just needs to be restalled so the lua binds to the uhttpd server.
https://github.com/GNATN/ONOD.git
What's not in here?
Configure menu for changing the settings of the logger, currently you can only start or stop the logger to run forever and scans every 5 seconds. ( Build two)
Wireless Scan tab did not get re factored in time for build one (will be in build two!) + we are waiting for the bar graph!
Obviously other tabs will be in build two.
Alfred generated host names. (plus being able to edit them, Possibly build two, probably build three)
Known issues
Because this is build 1, there still some bugs in the system that we are sorting out. Build One is just a initial taste tester of the system, and to get it in the hands of as many people as possible.
Currently there is a memory leak in firefox, so it's best to not use firefox to the view the status page currently, though if you think you can hunt down the leak, that would be great. But we hope to kill it by build two.
Graphs don't rescale to the change of the browser window. (Build Two)
Error handling of the tab switching when in between graph updates, it should stop you. But we need to make that a little more robust (YAY for ajax).
Logger still requires pruning of the actual log.
As always, feedback is welcome!
Josh.