OpenDDS | Object Management Group Data Distribution Service
kandi X-RAY | OpenDDS Summary
kandi X-RAY | OpenDDS Summary
OpenDDS is an open-source C++ implementation of the Object Management Group's specification "Data Distribution Service for Real-time Systems" (DDS), as well as some other related specifications. These standards define a set of interfaces and protocols for developing distributed applications based on the publish-subscribe and distributed cache models. Although OpenDDS is itself developed in C++, Java and JMS bindings are provided so that Java applications can use OpenDDS. OpenDDS also includes support for the DDS Security and XTypes specifications. OpenDDS is built on the ACE abstraction layer to provide platform portability. OpenDDS also leverages capabilities of TAO, such as its IDL compiler and as the basis of the OpenDDS DCPS Information Repository (DCPSInfoRepo). The primary development of OpenDDS was done by Object Computing, Incorporated in St. Louis and Phoenix. It is released under generous license terms similar to ACE, TAO and MPC. See the LICENSE file for details.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of OpenDDS
OpenDDS Key Features
OpenDDS Examples and Code Snippets
Community Discussions
Trending Discussions on OpenDDS
QUESTION
I am using IDLs to define data for an application using OpenDDS.
I also want to use IDLs to define interfaces for the application, but OpenDDS (and most other DDS implementations it seems) does not support interfaces in IDLs.
Are there any compilers that will generate simple stubs from IDL interfaces? I need it to support at least C++ and Java.
All of the IDL compilers that are a part of CORBA ORBs generate a lot of CORBA-specific code and boilerplate. I want something that does a simple mapping from IDL to C++/Java/etc. For example, if I have this IDL:
...ANSWER
Answered 2021-Mar-03 at 03:53Outside the interfaces in the IDL of DDS specs, DDS itself doesn't have a use for interfaces as far as I know. It's always restricted its own IDL to a subset of CORBA's. Because of this OpenDDS doesn't have support for user-defined interfaces outside the support that already comes with using tao_idl
. The optional C++11 mapping that can be generated by opendds_idl
is free of all the CORBA boilerplate like you want, but it doesn't support interfaces at the moment. I think the Java mapping only supports them for OpenDDS's specific JNI-based situation. Even when using TAO's C++ mapping, OpenDDS doesn't support using interface
types as a DDS topic type or inside one.
I can't speak as much for other DDS implementations as I can for OpenDDS, but I know this support page for Connext says they don't support interfaces either. It does say they support valuetype
, which is sorta like an interface
, but they treat it as a struct
and ignore the operations on them.
QUESTION
I found RTI DDS and OpenDDS are capable to define nested structures and complex structure in IDL file,
but couldn't find any example for CycloneDDS on defining nested structures/ complex structures in the IDL file, does Cyclone DDS support nested structures in IDL? in the cyclones developer guide they do not mention anything about it.
...ANSWER
Answered 2021-Mar-03 at 06:35It does. It is a standard OMG IDL feature and is the same across all DDS implementations.
QUESTION
I am new to DDS.... so far I have little experience in OpenDDS and CycloneDDS
Is it possible to define a class inside the idle file and have member variables and member methods? or only structure and primitive data types are supported in DDS standards?
...ANSWER
Answered 2021-Jan-19 at 15:55The IDL language is defined in the OMG IDL specification. It consists of a number of building blocks that include Core Data Types, like the structures and primitive data types that you mentioned, and Interfaces, that includes the methods you asked about.
However, only a subset of those building blocks is used by DDS. For the current version 4.2, section 9.3 DDS Profiles defines which of them are relevant for three different levels of support by DDS: Plain DDS, Extensible DDS and DDS over RPC.
You will see that the latter indeed includes Building Block Interfaces - Basic, as you might expect from RPC. However, not all DDS implementations support RPC. Plain DDS and Extensible DDS are more commonly supported and interfaces are not part of that functionality.
Since you asked about this in another question: note that the interface functionality as captured in DDS over RPC is not for the purpose of distributing objects with their methods, but for invoking methods on objects remotely -- as the name Remote Procedure Call implies.
QUESTION
I know that RTI has a code generator to create the publisher and subscriber which then allow you to create DataReaders and DataWriters. Is there any way to generate the needed code in OpenDDS? I have already established the idl file that lists the topics to be transmitted and I see here: https://objectcomputing.com/resources/publications/mnb/code-generation-with-opendds-part-i provides instructions to generate a wrapper but I am still not understanding if there is a way to simply build the idl file so that it generates the publisher and subscriber files needed for the OpenDDS architecture. For example RTI has rtiddsgen.
When I build the file using only Messenger.idl the error message comes up:
...ANSWER
Answered 2021-Jan-08 at 02:41Yes, OpenDDS has a code generator, opendds_idl
, which is one of OpenDDS's core components. It can run manually, through MPC, or in CMake using OPENDDS_TARGET_SOURCES
like you have here.
The error is pretty self explanatory. This is the CMakeLists.txt
file from the Developer's Guide Messenger example, which includes C++ files. CMake can't find them. Maybe you copied CMakeLists.txt
somewhere else without also copying the cpp files? If so you can copy the cpp files to where you copied CMakeLists.txt
.
QUESTION
When I run the Java example OpenDDS-3.14.1/java/tests/messenger I am getting tons of messages like this:
WARNING in native method: JNI call made without checking exceptions when required to from CallStaticObjectMethodV.
I am using the openjdk 11.0.9.1 2020-11-04 LTS on a Mac. But same warnings I get on Linux.
Is that just not handled well in the example?
Or is it not well handled in the DDS-Java-Wrapper?
I have to admin that I have not yet read any Developer Documentation...
ANSWER
Answered 2020-Dec-16 at 07:43JNI is what allows Java and the native C++ code to interact with one another. OpenDDS's JNI code isn't checking for Java exceptions like it should and this is what the warnings are about. They show up in the all Java tests I can see, but apparently they are ignored by the system that report errors and warnings. I think they come up because -Xcheck:jni
is one of the java
arguments in the test script framework. So if you take out that argument of the file I linked or run java
directly without that argument the warnings shouldn't be there.
QUESTION
I am running OpenDDS MPC based example stockQuoter. I deleted the run_test.pl, still the project builds and runs properly. why do we need this Perl script?
...ANSWER
Answered 2020-Oct-21 at 15:36You don't really need it and you're free to start the programs directly. All examples and tests in OpenDDS have a file called run_test.pl for the purposes of testing. Among other functions, they define what programs get called with what arguments for a certain test scenario and are responsible for killing the programs if they get stuck.
QUESTION
I am new to visual studio,(vs 2019)
I am trying to build example files in the OpenDDS directory
as in readme,
Instructions for Building the Example (assuming ACE, TAO, DDS, and MPC are installed and configured): - done
- Run Make Project Creator to generate build files:
Windows, VC 7.1: perl %ACE_ROOT%\bin\mwc.pl -type vc71 StockQuoter.mwc Unix, GNU Make: $ACE_ROOT/bin/mwc.pl -type gnuace StockQuoter.mwc
- Build the application
how to build this? I get importing window
after proceeding so many errors in vs, cannot build, why is that?
...ANSWER
Answered 2020-Oct-15 at 10:26You have to generate the solutions with the correct MPC project type, you are now generating solutions for Visual Studio 2003. Replace -type vc71
with -type vs2019
and build it again.
QUESTION
Setup
- OpenDDS -3.14
- Windows 10 64bit
- Active Perl 5.8
- VisualStudio 2019
I am trying to build OpenDDS and try out the messenger example as given in the instructions. The configure commanded executed, but I got the following error. What is this error and how to solve it?
...ANSWER
Answered 2020-Oct-12 at 15:48You could install the missing dependency. Alternatively you could try Strawberry Perl.
QUESTION
I am trying to run run_test.pl for Messenger example given in DCMS for openDDS-3.14 on linux.But getting error
./run_test.pl
/home/user/OpenDDS-3.14/bin/DCPSInfoRepo -ORBDebugLevel 10 -ORBLogFile DCPSInfoRepo.log -o repo.ior
/home/user/OpenDDS-3.14/bin/DCPSInfoRepo: error while loading shared libraries: libOpenDDS_InfoRepoServ.so.3.14.0: cannot open shared object file: No such file or directory
...ANSWER
Answered 2020-Oct-10 at 09:52Just run configure and make. Don't set a prefix for configure file on the command line.you will get Messanger example output smoothly using run_test.pl.
QUESTION
My friend is trying to compile OpenDDS from here: OpenDDS Insall Directions
...ANSWER
Answered 2020-Aug-31 at 02:00This was fixed in this PR: https://github.com/objectcomputing/OpenDDS/pull/1701, but that hasn't made it into a release yet. I can't comment in the comment chain above, but dxiv is correct that this is caused by an include dependency that broke in VS2019. It's only in the dds/DCPS/Serializer.h header though, so just having your friend change that file to how it is in the PR should allow it to build.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install OpenDDS
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page