Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Remark: Currently (2016/06/01) not working.

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)

...

Code Block
languagepql
#PARSER PQL
#RUNQUERY
sampleArray := RECEIVEDDSSOURCE({
                    source = 'SampleArray',
                  transport = 'dds',
                  datahandler = 'tuple',
                  options=[
                    ['qosFile',' qosfile='${WORKSPACEPROJECT}/USERice_QOS_PROFILESlibrary.xml'],
                    ['idlFile','idlfile='${WORKSPACEPROJECT}/ice.idl'],
                    ['topic',='SampleArray'],
                    ['topicType','topictype='ice::SampleArray'],
                    ['qosLibrary',qoslibrary='ice_library'],
                    ['qosProfile','qosprofile='waveform_data'],
                    ['domain','0']
    =0              ],
                  schema = [
                    ['unique_device_identifier', 'String'],
                    ['metric_id', 'String'],
                    ['instance_id','Long'],
                    ['unit_id','String'],
                    ['frequency','long'],
                    ['values','List<Double>'],
}                    ['time','Tuple<Long,Long>']
                  ]                                                        
                }                                              
              )

There are two important files:

...

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

httphttps://sourceforgegithub.netcom/pmdpnp/mdpnp/code/ciblob/master/tree/data-types/x73-idl/src/main/idl/ice/ice.idl

https://github.com/mdpnp/hello-openicemdpnp/blob/master/data-types/x73-idl-rti-dds/USER_QOS_PROFILES.xml

Copy them to the workspace.

...

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

Image RemovedImage Added

As you can see, the values attribute contains a list, and the time attribute attributes a tuple.

Storing to a relational database

...

You can store complex objects to a document store like MongoDB. For this, you have to convert the tuple to a KeyValueObject. This can be done with the TupleToKeyValueOperator.

See MongoDB Feature for more information on the Mongo DB feature.

Code Block
#RUNQUERY
kv = TUPLETOKEYVALUE(sampleArray)
mongo = MONGODBSINK({PORT = port, HOST = 'host', COLLECTIONNAME = 'collectionname', DATABASE = 'database'}, kv)

 #