You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

In this example I will show how to connect data from a DDS (Data distribution service for Real-Time Systems). Be aware, that this is very alpha (wink)

First of all you have to install the DDS Feature:


After that, you can download the MD PnP Software from here:

Start the application


Choose Domain Id 0 (or remeber the choosen value) and run "Start ICE_Supervisor".

You can now "Create an ICE Device Adapter"


And choose e.g. Simulated Pulse Oximeter. Call "Start Simlulated Pulse Oximeter" and call "Start PO_Simulator".

Now you will get to the main screen:

When you double click on Puls Ox (Simulated) you will see:

Now back to Odysseus:

Create a new Project and add the following script:

sampleArray = RECEIVE({
                  source = 'SampleArray',
                  transport = 'dds',
                  datahandler = 'tuple',
                  schema = [
                    ['unique_device_identifier', 'String'],
                    ['metric_id', 'String'],

There are two important files:


They contain information necessary for DDS. You can download the files from the following locations:

Copy them to the workspace.

If you changed the domain, please update domain value in the options above.

Now run the query, and show as table. You should see something like:

As you can see, the values attribute contains a list, and the time attribute a tuple. If you want to store this data e.g. in a database this is not possible directly. You have to "flatten" the data. This can be done as follows:

mappedValues = MAP({
                    expressions = [
table1 = UNNEST({
              attribute = 'values'            
table1_WithNumbers = MAP({
                          expressions = [
table2 = MAP({
              expressions = [

table1_WithNumbers is only necessary if you want to keep the order of the measurements.

The output will be as:



  • No labels