Visualize your data! 1

Ok, I have to admit right from the start that I’m very excited about this feature. I’ve wanted a high-performance, platform-independent visualization for DDS data for more than a decade. When I was an RTI customer (we started with the 3.x version), I built a small UI to display data. It used generated code and was quite basic but still useful. Just the other day I heard from a person working on that project that they still use it! I can’t wait to show them what we now ship with Admin Console!

What can you do with it?

First things first, subscribe to your Topic of interest.


If you don’t have a data type, no problem. You can specify it through one (or more) XML files. Use rtiddsgen to generate them from your IDL or XML type file with the -convertToXml option. You can also specify more advanced settings including overriding QoS, setting a content filter, or picking from which DataWriters to receive data.


Here you can set the DataWriter filter.


Once you’ve picked your QoS and subscribed to the Topic, you’ll see the instances start filling in from the DataWriter(s). Instances? If you’re not familiar with this DDS concept, an instance is a unique piece of data within a Topic. In the Triangle topic (below), there are 3 instances, “ORANGE,” “MAGENTA,” AND “CYAN.” Each instance is shown in its own row. This display (which we call the Topic Data Tab) chooses a few fields to show by default but you can customize this to show the fields that you prefer.


But, I want to look at all of the fields. Of course, who wouldn’t?! To see all of the data, select an instance (a row in the Topic Data Tab) and then look at the Sample Inspector. This view shows all of the fields in a tree view. You can view all nested structures and you can see all of the metadata (SampleInfo) as well!


That’s very helpful but I want to see more than just the current value. There are two more views and they can show historical data. Let’s talk first about the Sample Log. This view shows each sample in its own row (regardless of which instance it is). This view stores sample data (10,000 samples by default) so you can look back at captured data (perhaps after using the pause feature). And this view works with the Sample Inspector so when you select a sample (row), the Sample Inspector displays all of the data fields. And, you can display multiple Topics in this view too!

I mentioned that there were two views which show historical data, the second one is the Time Chart. The Time Chart plots numerical field values as a function of time. You can use this view to compare data fields (either from different instances in the same Topic or instances in any number of other Topics). Or you can use it to look for trends in your data. The Time Chart also stores displayed data (1,000,000 values by default for each trace). You can put the Time Chart in historical mode to view this archived data.

This is also cool but how can I save my data to disk? Each of the views contains an export button image01. This button will export the data contained in the view into a comma-separated value (CSV) file (Topic Data Tab, Sample Log, & Time Chart) or a text file (Sample Inspector). You can also export the chart as an image from the Time Chart (using the button that looks like a camera).

What about performance? Data Visualization exhibits very good performance characteristics. But I’ll cover that in detail in a future blog post.

Is that all? There are many things that I haven’t covered here. If you want to see more right away, you can check out Data Visualization => Getting Started section of the Admin Console Help.

One comment

  1. Pingback: Useful Tools to Debug DDS Issues « RTI Blog

Submit a comment

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s