Odysseus with DDS or RTPS interfaces

User avatar
Marco Grawunder
Posts: 272
Joined: Tue Jul 29, 2014 10:29 am
Location: Oldenburg, Germany
Contact:

Re: Odysseus with DDS or RTPS interfaces

Post by Marco Grawunder » Tue Nov 25, 2014 3:35 pm

Ok, I will have a look at it, but this seems not to be a thing to do in a few days ;-)

If I get it right, there are some IDL files that define the format of the object that is sent ... somehow similar to Google protobuf ...
Ideally, Odysseus reads this IDL file and can access the objects, without generating Java code.

User avatar
Marco Grawunder
Posts: 272
Joined: Tue Jul 29, 2014 10:29 am
Location: Oldenburg, Germany
Contact:

Re: Odysseus with DDS or RTPS interfaces

Post by Marco Grawunder » Wed Dec 10, 2014 3:58 pm

Took a deeper look into this and it seems indeed very useful for Odysseus, so we will implement at least some subset of the DDS specification. I am not really sure how long it takes, but wanted to give some feedback :-)

User avatar
Marco Grawunder
Posts: 272
Joined: Tue Jul 29, 2014 10:29 am
Location: Oldenburg, Germany
Contact:

Re: Odysseus with DDS or RTPS interfaces

Post by Marco Grawunder » Fri Dec 12, 2014 5:44 pm

Just a short status report.

I got the demo running with DynamicDatatype, so no need to compile IDL files to Java files anymore. Next step will the creation of a translator that creates dynamic datatypes from IDL to allow the usage inside the access operator of Odysseus. After that, it should be possible to connect Odysseus to DDS sources.

Can you provide me the IDL files for the HelloICE demo?

User avatar
Marco Grawunder
Posts: 272
Joined: Tue Jul 29, 2014 10:29 am
Location: Oldenburg, Germany
Contact:

Re: Odysseus with DDS or RTPS interfaces

Post by Marco Grawunder » Thu Dec 18, 2014 1:29 pm

Ok. A prototype version is now available.

If you install the DDS Feature you can use.

Code: Select all

#PARSER PQL
#RUNQUERY
sampleArray = RECEIVE({
                  source = 'SampleArray',
                  transport = 'dds',
                  datahandler = 'tuple',
                  options=[
                    ['qosFile','${WORKSPACEPROJECT}/USER_QOS_PROFILES.xml'],
                    ['idlFile','${WORKSPACEPROJECT}/ice.idl'],
                    ['topic','SampleArray'],
                    ['topicType','SampleArray'],
                    ['qosLibrary','ice_library'],
                    ['qosProfile','waveform_data']
                  ],
                  schema = [
                  	['unique_device_identifier', 'String'],
                  	['metric_id', 'String'],
                  	['instance_id','Long'],
                  	['unit_id','String'],
                  	['frequency','long'],
                  	['values','List<Double>'],
                  	['time','String']
                  ]          	          
                }                  
              )
The idl and xml files are from your repository and can be found here:
http://sourceforge.net/p/mdpnp/code/ci/ ... ce/ice.idl
https://github.com/mdpnp/hello-openice/ ... OFILES.xml


Remark: The time attribute is a tuple, but currently we cannot express this. I will look at this later.

User avatar
Marco Grawunder
Posts: 272
Joined: Tue Jul 29, 2014 10:29 am
Location: Oldenburg, Germany
Contact:

Re: Odysseus with DDS or RTPS interfaces

Post by Marco Grawunder » Thu Dec 18, 2014 4:12 pm

The tuple is now working, too :-)
#PARSER PQL
#RUNQUERY
sampleArray = RECEIVE({
source = 'SampleArray',
transport = 'dds',
datahandler = 'tuple',
options=[
['qosFile','${WORKSPACEPROJECT}/USER_QOS_PROFILES.xml'],
['idlFile','${WORKSPACEPROJECT}/ice.idl'],
['topic','SampleArray'],
['topicType','SampleArray'],
['qosLibrary','ice_library'],
['qosProfile','waveform_data']
],
schema = [
['unique_device_identifier', 'String'],
['metric_id', 'String'],
['instance_id','Long'],
['unit_id','String'],
['frequency','long'],
['values','List<Double>'],
['time','Tuple<Long,Long>']
]
}
)

map = MAP({
expressions = [
'unique_device_identifier',
'metric_id',
'instance_id',
'unit_id',
'frequency',
['values[0]','value_0'],
'values',
['toLong(time[0])','Time.sec'],
['toLong(time[1])','Time.nanosec']
]
},
sampleArray
)
To subscribe to another source, simply change the topic, the topic_type and the outputschema. In a future version, the output schema can be created automatically from the idl files ... but not this year anymore ;-)

kauerbach
Posts: 30
Joined: Fri Aug 22, 2014 4:52 pm

Re: Odysseus with DDS or RTPS interfaces

Post by kauerbach » Fri Dec 19, 2014 5:30 pm

Hello Marco,

When I try to update the software I get the message that the repository (http://odysseus.informatik.uni-oldenburg.de/update/) is not currently available although it says in the preferences that it is enabled.

Thank you.
Ken.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest