-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
399 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,230 @@ | ||
#summary Changelog | ||
= Trunk = | ||
* Fixed a bug causing streams from standard IO being categorized as "-" | ||
* Fixed a bug causing labels to go empty when edited without being changed. | ||
= Version 1.4 = | ||
* Updated ROS data backend to work with the latest version of ROS | ||
* Updated OpenTK to Version 1.0 | ||
* Now uses the Krach library | ||
* Fixed a few minor bugs | ||
* Windows is supported again | ||
= Version 1.3 = | ||
* Can now be used with ROS topics | ||
* Updated YARP interface to work with latest version of YARP | ||
* Streamlined build process | ||
= Version 1.2 = | ||
* Added possibility to use timestamps received on ports | ||
* Updated OpenTK to 1.0 RC 1 | ||
* Fixed a few bugs | ||
* Improved error handling | ||
= Version 1.1 = | ||
* Added possibility to receive data from text files and standard input | ||
* Improved data backend | ||
* Improved bahavior of packet parsing errors (now ignores packet and prints warning) | ||
* Updated OpenTK to 1.0 Beta 3 | ||
= Version 1.0 = | ||
* Fixed weird behavior of streams list context menu | ||
* Added ability to invert colors | ||
* Fixed a possible bug that could cause sources not to load correctly | ||
* Settings can now be saved to an XML file | ||
* Got rid of a few less used command-line options | ||
* Added some descriptions to items in the settings pane | ||
* Streams list now displays name and path of a stream in two columns | ||
* Old stream name and color now is preset in name and color change dialogs | ||
* Stream names can now be edited in place | ||
* Fixed bug causing selection rectangles to be closed on the press of any key | ||
= Version 0.12 = | ||
* Unified Time and Value management | ||
* Improved component model | ||
* Added panning and zooming functionality | ||
* Now adds comments containing Stream names in GNUPlot export | ||
* Improved error checking for settings | ||
* Upgraded to OpenTK 1.0 Beta 2 | ||
* Fixed unexpected behavior of zoom function | ||
* Enabled zoom rectangle to be dragged in any direction | ||
* Fixed a potential bug causing weird zoom rectangles when resizing window | ||
* Managers now retain their type-invariant properties when their types are changed | ||
* Fixed behavior of zooming outside of the Layouter area | ||
* Fixed a bug making it impossible to zoom to areas in negative time | ||
* Added function for zooming out | ||
* Added threshold for zooming so it doesn't happen accidentally | ||
* Fixed a bug causing zooming when maximizing the window | ||
* Added ability to abort zooming | ||
= Version 0.11 = | ||
* Settings pane is now collapsible | ||
* Removed old user interface elements | ||
* Added possibility to change the name of a stream through the user interface | ||
* Added icon | ||
* Added about box | ||
* Now also works with integer values | ||
* Dampened feedback loop between label widths and resampler | ||
* Fixed a bug causing some of the caches not to be cleared when the "clear data" command is executed | ||
* `TimeRange` and `ValueRange` scaling is now done on the CPU to preserve double precision | ||
* Fixed a bug causing unexpected behavior when YARP is not available | ||
* Introduced safe check for YARP | ||
= Version 0.10 = | ||
* Added possibility to name individual streams | ||
* Added possibility to scale the time axis (right mouse click + drag) | ||
* Fixed a bug causing weird behavior in the coordinate label | ||
* Improved command-line options | ||
* Corrected a few mistakes in the command-line help message | ||
* Fixed a bug causing an exception to be thrown when very short empty segments appear | ||
* Lots of settings can now be changed on-the-fly using the settings pane | ||
= Version 0.9 = | ||
* Moved to OpenTK 0.9.8.3 | ||
* Added an option to specify whether antialiasing should be used for graph lines | ||
* Added an option to specify the width (thickness) of the graph lines | ||
* Made the diagram use the available space more efficiently | ||
* Made Layouter adaptive to label sizes | ||
* Refined diagram borders | ||
* Added more error checking | ||
* Added a command-line switch to turn off vertical synchronization | ||
* Streamlined command-line parameter processing | ||
* Resampler cache is now cleared at regular intervals (every 10 diagram widths) | ||
* Added a command-line switch to turn off permanent data logging | ||
* Gave reader thread a higher priority (not implementing in mono as of 09/23/2009) | ||
* Added a command-line switch to specify whether alpha-blending should be used | ||
* Value range markers now use "nicer" values | ||
* Nice value algorithms are now used for time markers aswell | ||
* Doubleclicking the graph area now toggles minimal mode | ||
* Added coordinate display in status bar | ||
* Removed some unused code | ||
* Fixed two bugs causing exceptions to be thrown because of the coordinate label | ||
* Moved the X Axis upwards by 5 pixels | ||
* Improved random color generation | ||
= Version 0.8 = | ||
* Simpler entry buffering system | ||
* More frequent entry buffer updates | ||
* Improved behavior of graph extension feature | ||
* Reenabled graph extension feature | ||
* Reenabled exporting into GNUPlot compatible format | ||
* Resolved issue causing the visualizer to hang at regular intervals | ||
* Significantly reduced memory consumption and relocations | ||
* Reduced thread synchronization overhead | ||
* Timestamps are less prone to being screwed up because the reader thread is blocked | ||
* Added new resampling options | ||
* All incoming data is now captured and logged | ||
* Various optimizations in all parts of the application | ||
* Moved to `VertexArrays` for drawing `LineStrip`s | ||
* Moved to a more flexible dynamic caching solution | ||
* Fixed various bugs | ||
* Refactoring | ||
* Various optimizations in the new caching | ||
* Went back to using properties | ||
* Extended the `Visualizer.Plotting` design | ||
= Version 0.7 = | ||
* Multiple visualizers can now be bound to a single YARP port | ||
* Added a method to check if a specified port exists to the YARP wrapper | ||
* Added a method to find an available port with a chosen prefix | ||
* Minor cleanups in files | ||
* Added new timestamp implementation | ||
* Improved deployment (building now creates `Visualizer/bin/Debug/vis` bundled executable) | ||
= Version 0.6 = | ||
* Set yarp ports to use strict behavior | ||
* Added option to toggle vertical synchronization | ||
* Added default values for the various show items | ||
* Transformed the "Hide all graphs" command into an option to show the Diagram | ||
* Frame counter can be turned on and off | ||
* Backend improvements | ||
* When sensible, scientific notation is used for drawing numbers | ||
* Fixed a bug causing clearing of capture data not to work correctly | ||
* Fixed a bug causing minimal mode not to work correctly on mono's windows forms implementation | ||
* Font bitmap is now embedded in the `Graphics` assembly | ||
* Checked various states for OpenGL | ||
* Moved texture identifiers into array | ||
* Textures are bound less often | ||
* Nested .Designer.cs and .resx files | ||
* Extracted `Graphics` | ||
* Moved to OpenTK 0.9.8.1 | ||
* Added `Graphics` test project | ||
* Added `Data` project | ||
* Improved `Path` implementation | ||
* Implemented custom wrapper | ||
* Added `Receiver` to the solution | ||
* Renamed "yarp" to "sharpyarp" (results in "sharpyarp.dll" and "libsharpyarp.so") | ||
* Rebuilt ACE, yarp and the C# bindings (newer versions, now also using x64 in Windows) | ||
* Fixed a spelling error in the startup messages | ||
= Version 0.5 = | ||
* Added resampling of values before drawing | ||
* Added option to set horizontal resolution of the diagram | ||
* Optimized `FittingValueManager` | ||
* Improved graph extension (better graph cutting, incorporates more data entries for extension) | ||
* Fixed a bug causing crashes when trying to plot a stream containing `double.NaN` values | ||
* Removed some unnecessary formatting code | ||
* Corrected general program description | ||
* Shrinked scope of parameter error try clause so that other `InvalidOperationExceptions` won't be caught | ||
* Fixed a few bugs related to error handling | ||
= Version 0.4 = | ||
* Fixed a bug causing exceptions because of different local number styles | ||
* Removed frame timer | ||
* Added VSync support | ||
* Changed "-?" to "--help" | ||
* Fixed a bug in "--help" layouting | ||
* Added general description on "--help" | ||
* Corrected spelling error | ||
* Corrected a few errors in the "--help" description | ||
= Version 0.3 = | ||
* Better performance when displaying text (custom text printer) | ||
* Added proper error handling for invalid command-line parameters | ||
* Added proper error handling for invalid capture parameters | ||
* Added support for paths to deep streams | ||
* Added help display when "-?" is specified | ||
* Lines are now antialiased | ||
* Increased graph line thickness to 1.5 (looks better) | ||
* Minor performance improvements | ||
* Fixed issue of lines not being drawn on pixel centers | ||
* Interval counts on X and Y axes can be customized | ||
* Option to change diagram color and background color | ||
* Option to disable graph extension | ||
* Made more settings accessible from the GUI, also added hotkeys | ||
* Moved to OpenTK 0.9.7 | ||
* Fixed bug of not displaying the last interval caption on the X axis | ||
* Fixed bug in `Container.GetIndex` method (picking wrong indices under certain conditions) | ||
* Fixed bug in `Container.GetIndex` method (never picked the last index) | ||
* Moved more layouting responsibilities to `Layouter` | ||
* Removed all unused usings and references | ||
* Fixed bug of empty ports being requested when the text box in the "New Capture" dialog is left empty | ||
* `FittingValueManager` now respects graph extension feature | ||
* Flipped coordinate system to improve layouting | ||
* Removed option to hide labels | ||
* Went back to old random color generation algorithm | ||
* Removed `Yarp.Visualizer.Utilities` | ||
* Fixed a bug in `FittingValueManager` that caused hidden graphs to cause value fitting | ||
* Moved X axis down by 5 pixels | ||
* Better internal parameter handling | ||
* Proper error handling when YARP is not found | ||
* Status bar is now hidden in minimal mode aswell | ||
= Version 0.2 = | ||
* Major design changes in `Yarp.Visualizer.Plotting` | ||
* Substantially improved performance of `Container` by using binary search | ||
* Added "Wrapping" diagram type | ||
* Added fixed-scale Y-axis option | ||
* Substantial performance improvements in various parts of the plotting process | ||
* Removed "File" menu | ||
* Added "Freeze" function | ||
* Fixed potential error of streams containing consecutive entries with identical or wrongly ordered timestamps | ||
* Fixed potential error of different streams getting different timestamps on data entries from the same bottle | ||
* Graph is extended to known adjacent values on the left and right borders of the coordinate system | ||
* Fixed occasionally thrown exception on exit | ||
* Application can now be used on machines that do not have YARP installed | ||
* Moved more responsibilities to `TKDrawer` | ||
= Version 0.1 = | ||
* Initial version |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#summary Code policies | ||
#labels Phase-Implementation | ||
= Calling `ToArray` = | ||
`System.Linq.ToArray` should be called on `IEnumerable<T>` objects that either take a long time to iterate over (i.e. LINQ queries) or rely on resources that may not be valid at later times (avoid this situation if possible). | ||
|
||
It is reasonable to do this on the provider side (since the provider of the object will know whether a call to `ToArray` is necessary) as well as on the consumer side (since the consumer will know when and how often it will iterate over the enumeration). | ||
|
||
Policy is to always do the call on the consumer side, since the performance penalty of needlessly calling `ToArray` is negligible in most cases. Exceptions may be made when profiling has revealed a significant impact on performance or other reasons exist. | ||
|
||
= Providing objects to derived classes = | ||
Classes may only provide objects to derived classes when, from the perspective of the base class, it is clear that most derived classes will need them. If this is not the case, objects may be forked into fields of the derived classes while being passed down the constructor chain, even if the base class also needs them. | ||
|
||
= Deep properties = | ||
Classes may only provide deep direct access to properties of objects they contain if the intent is to encapsulate these objects inside the parent class. In this case, it should not be possible to tell that the parent class uses these objects to achieve it's functionality from the outside. | ||
|
||
= `Dispose` methods = | ||
When disposing a field, always do a null check in case the constructor threw an exception and not all fields were properly initialized. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
#summary A quick guide to using Stream Visualizer | ||
#labels Featured | ||
= The command-line interface = | ||
|
||
Stream Visualizer can be started with or without command-line parameters. You can get an overview of all available parameters by running Stream Visualizer with the `--help` option. | ||
|
||
The command-line parameters can be used to do the following: | ||
|
||
* Specify which YARP, ROS and/or text ports Stream Visualizer should visualize | ||
* Specify settings that will override the saved or default settings | ||
Both of these can also be done using the user interface after Stream Visualizer was started. | ||
|
||
= The user interface = | ||
|
||
In the main window, you can see the list of ports together with their respective streams in a list view on the left side. On the right side is a settings pane that contains all the settings available together with some descriptions. In the middle is the diagram area. | ||
|
||
The capture menu allows creating a new capture as well as opening/saving/exporting captures and clearing all recorded data of the current capture. The view menu contains some options to change the appearance of Stream Visualizer, while the diagram menu contains options to freeze the time and reset the view. The settings menu lets you save your current settings, which will be loaded when you start Stream Visualizer the next time. | ||
|
||
You can right-click on the streams in the streams list to open a context menu which allows you to change the name and/or the color of the selected stream. | ||
|
||
Double-Clicking the diagram area will toggle minimal mode, in which everything except for the diagram area is hidden. | ||
|
||
In the status bar, a label shows the current time and value at the point where the mouse is hovering. | ||
|
||
You can use your left mouse button to zoom into a specific area of the graph, the right mouse button to pan the current view and the middle mouse button to zoom out. | ||
|
||
= Visualizing white-space-separated data = | ||
|
||
If you have an application (let's assume it's called `foo`) that outputs white-space separated columns of data to the standard output, you have multiple ways to visualize this data. | ||
|
||
== On the local machine == | ||
|
||
Using the following command, you can visualize all the data that `foo` outputs on standard output on the local computer. | ||
|
||
{{{ | ||
foo |streamvis :t:- | ||
}}} | ||
|
||
== On another machine using YARP == | ||
|
||
Use the following command to send the output of `foo` to a YARP port. | ||
|
||
{{{ | ||
foo |yarp write ... /yourport | ||
}}} | ||
|
||
You can then use Stream Visualizer to draw this data on any computer that can connect to `/yourport`. | ||
|
||
{{{ | ||
streamvis :y:/yourport | ||
}}} | ||
|
||
== On another machine using netcat == | ||
|
||
Similarly, you can use netcat to send the data to another computer (let's assume that the name of the other machine is `myothermachine` and the port is `1234`. | ||
|
||
{{{ | ||
foo |nc myothermachine 1234 | ||
}}} | ||
|
||
You can receive and visualize the data with the following command. | ||
|
||
{{{ | ||
nc -l -p 1234 |streamvis :t:- | ||
}}} | ||
|
||
Note that the receiving machine should run its command first. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
#summary Installation Instructions | ||
#labels Featured | ||
= Binaries = | ||
|
||
You can get a set of platform independent binaries from the downloads section on Google Code (http://code.google.com/p/streamvis/downloads/list). These do not contain the native wrappers needed to use Stream Visualizer with YARP and/or ROS, but you will be able to get data from standard input and named pipes. You need the mono runtime (minimum version: 2.8) or the .NET framework (minimum version: 4.0) to run these binaries. | ||
|
||
= Building from source = | ||
|
||
Alternatively, you can build Stream Visualizer from source code. This is the recommended way of installing on Linux, since you can build the YARP and/or ROS data backends, and you get a bundled executable. | ||
|
||
== Linux == | ||
|
||
=== Prerequisites === | ||
|
||
Stream Visualizer needs the mono runtime (minimum version: 2.8) to run. To build Stream Visualizer, you'll also need the mono development tools. In case the mono runtime and/or mono development packages supplied by your distribution are too old, you'll have compile libgdiplus and mono from source (for more instructions, see http://mono-project.com/Compiling_Mono). In order to do a checkout from the repository, you'll need subversion. | ||
|
||
=== Instructions === | ||
|
||
# (Optional) Install YARP (http://eris.liralab.it/yarpdoc/install.html) | ||
# (Optional) Install ROS (http://www.ros.org/wiki/ROS/Installation) | ||
# Do one of the following | ||
* Do a checkout of the tag for version 1.4 from the SVN repository: `svn co http://streamvis.googlecode.com/svn/tags/Version\ 1.4 streamvis` | ||
* Download the source package for version 1.4 from the downloads section on Google Code (http://code.google.com/p/streamvis/downloads/list) | ||
# Run `make` inside your working copy | ||
=== Wrap-up === | ||
|
||
The Stream Visualizer binaries along with the wrapper libraries will be created in the `Binaries` directory of your working copy. | ||
|
||
*Note:* If YARP and/or ROS are not available, the make command of the respective wrapper libraries will fail, but it will not abort the build process so that people who don't want to use one or both of these interfaces can still build Stream Visualizer. If you do want to use YARP and/or ROS, you may want to check if they built correctly. | ||
== Mac OS X == | ||
|
||
I don't have a machine to test this on, though it should be somewhat similar to what needs to be done to get it running on Linux. | ||
|
||
If anyone has done it on Mac OS X, I'd appreciate some feedback on how to set it up. | ||
|
||
== Windows == | ||
|
||
=== Prerequisites === | ||
|
||
You need the mono runtime (minimum version: 2.8) or the .NET framework (minimum version: 4.0) and the associated development tools to build Stream Visualizer. | ||
|
||
=== Instructions === | ||
|
||
# Do one of the following | ||
* Do a checkout of the tag for version 1.4 from the SVN repository at `http://streamvis.googlecode.com/svn/tags/Version 1.4` | ||
* Download the source package for version 1.4 from the downloads section on Google Code (http://code.google.com/p/streamvis/downloads/list) | ||
# Build the `Source\Visualizer\Visualizer.sln` solution file using an IDE or command-line build tool of your choice | ||
=== YARP and ROS === | ||
|
||
Running YARP and/or ROS on Windows is somewhat adventurous, so if you want to do that and use Stream Visualizer with it, you're pretty much on your own. Once you've got YARP and/or ROS running, you'll have to compile the native wrappers in the `Source\Wrappers` directory (they'll probably need some adjusting to compile on Windows). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
#summary Full-Size Screenshots | ||
http://streamvis.googlecode.com/svn/site/screenshots/streamvis.png | ||
|
||
http://streamvis.googlecode.com/svn/site/screenshots/streamvis-zoom.png | ||
|
||
http://streamvis.googlecode.com/svn/site/screenshots/streamvis-hand-data.png |
Oops, something went wrong.