Comments (6)
I think your solution adds a lot of unneeded complexity.
You should have only modified the DataFeeder. The classes TimeControlDataFeeder, TimeControlDataController are useless outside CSVDataFeeder (you cannot speed up time with a real data feeder) and it's not in data controller's logic to do that.
Adding the controls to the panel: Since the right panel extends JPanel you can pass it to the Data Feeder and the feeder can add stuff to it using panel.add() instead of having a special condition inside the RightPanel.
Please don't change the names of the classes. It becomes confusing.
from netvis.
Apologies for not being clear when importing these issues to github, but can we concentrate on completeness before adding extra functionality? It would be nice to get some more visualisations done and have the backend complete before working on any enhancements in earnest.
from netvis.
Thanks for your suggestions, and sorry for misinterpreting everything. I had the time logic in the DataFeeder before, but then some of the visualisation misunderstood a "pause" for "no packets are arriving". I'll try to move things and simplify later today.
from netvis.
You can get around that problem by supplying null instead of packets from the data feeder when the system is paused. And then in the data controller when it gets null it doesn't broadcast that new packets arrived.
from netvis.
Perhaps this is the incorrect place to discuss this, but the data controller seems to be providing a lot of single-packet iterations.
By examining the traffic volume visualisation under certain time scales, on most time intervals only one packet is being sent from the data controller on each newPacketsArrived() call. The packets in question are unpredictable and often not the same protocol, but are in line with what we'd expect from that capture, so are clearly just out of position. Large numbers of packets also arrive in regular intervals, so from this view it seems as if there is a timing problem where the graph is updating too fast for the data controller, but ultimately the speed of the graph is dictated by the data controller itself.
However, by looking at the data feeder I cannot see how this problem could arise, as getNewPackets() simply retrieves the next packets from the iterator as intuition suggests is correct. Could it be that the capture really exhibits this strange behaviour? I've convinced myself that it doesn't by opening the CSV in a spreadsheet and charting packets over time. (I'm testing with eduroam.csv but skype.csv seems to do the same).
This is what I'm talking about if you're unsure:
By refusing to process iterations with <= 1 packet arriving, the graph looks like this:
(more like what I'd expect, colours are randomised)
from netvis.
Panic over, apologies for the brain ache. The data feeder was updating per second but the data controller update interval was set to 100ms.
I am now a happy bunny :)
from netvis.
Related Issues (20)
- Visualization Controls
- Visualization Factory Method HOT 1
- Protocol Filter
- Add filters for more protocols
- Dummy Visualization
- Main network map visualisation HOT 4
- Custom cube view
- Stats reset when the filter is changed HOT 1
- Application doesn't start half the time HOT 1
- JVM memory usage stats HOT 1
- Allow input from tcpdump/snort on STDIN
- Analysis components don't reset properly HOT 3
- Fix all bugs
- Data Normalization
- Traffic volume graph by protocol (similar to FlowScan) HOT 3
- Resize / Maximise / Full-screen controls HOT 3
- Data Flow Visualization
- Find some way to stop the protocol filter menu closing on selection (non-essential)
- Relevant screenshots
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from netvis.