Coder Social home page Coder Social logo

meta-opendds's Introduction

OpenDDS

OpenDDS

Coverity Scan Build Status

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 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 the capabilities of TAO for IDL compilation and the OpenDDS DCPS Information Repository.

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.

Table of Contents:

Documentation

Other documentation can be found in docs directory.

Support

For commercial support, please see https://opendds.org/support.html.

Questions concerning OpenDDS should be directed to GitHub Discussions.

If you wish to file a bug report:

  1. Fork OpenDDS on GitHub.
  2. Add a minimum working example that demonstrates the problem.
  3. Create a pull request.
  4. Fill out the PROBLEM-REPORT-FORM and attach it to the pull request.
  1. Create a directory tests/DCPS/MyExample (MyExample is a placeholder.)
  2. Add the IDL, code, and configuration files for the example programs. Be sure to exclude any proprietary information as the submitted example will be public.
  3. Add an MPC file that builds the test programs.
  4. Add a launcher script run_test.pl. Be sure to document the options. See tests/DCPS/HelloWorld/run_test.pl for inspiration.
  5. Add a README.rst file that gives a high-level overview of the example and the problem that it illustrates.

It should be possible to build and run the example using run_test.pl as in the quickstarts for Windows and Linux. If the problem lies in the example, then GitHub's Pull Request interface will allow people to discuss, comment on, and propose changes to get the example working. If the problem lies in OpenDDS, then the example is a new test case.

Features

This release of OpenDDS is based on the DDS Specification formal/2015-04-10 (version 1.4). It features the following transport protocols:

  • TCP/IP
  • UDP/IP
  • IP multicast
  • RTPS over UDP/IP (unicast and multicast)
  • Shared memory

RTPS (Interoperability) features are based on the DDS-RTPS Specification formal/2019-04-03 (version 2.3). See the OpenDDS Developer's Guide and the file docs/design/RTPS for more details on RTPS.

See the Developer's Guide for information on OpenDDS compliance with the DDS specification. If you would like to contribute a feature or sponsor the developers to add a feature please see the Support section above for contact information.

Dependencies

These are just the required dependencies. For a complete detailed list of dependencies, including optional ones, see https://opendds.readthedocs.io/en/latest-release/devguide/building/dependencies.html.

ACE/TAO

OpenDDS requires TAO for both IDL compilation as well as interaction with the DCPSInfoRepo. ACE is also required, but it is always included with TAO. If you will be using the configure script for OpenDDS, you do not need to download TAO first -- the configure script will download it for you.

Perl

Perl is used for the configure script, running the automated tests and examples included in this source tree, and generating Makefiles or Visual Studio project files.

On Windows we recommend the use of Strawberry Perl.

Supported Platforms

Operating Systems

This release of OpenDDS has been tested under the following platforms:

Linux family:

  • Red Hat EL and CentOS 6.6, 6.8, 6.9 (x86_64)
  • Red Hat EL and CentOS 7.2, 7.3, 7.4 (x86_64)
  • Red Hat EL 8.0 (x86_64)
  • Fedora 24 and 31 (x86_64)
  • Debian 9.4 (i686)
  • Ubuntu 22.04 LTS (x86_64)
  • openSUSE 42.1 (x86_64)
  • Yocto 3.4.4 (ARMv8)

Windows family:

  • Windows 7 (32-bit, 64-bit)
  • Windows Server 2012 R2 (64-bit)
  • Windows 10 (64-bit)

Embedded/Mobile/IoT:

We have built OpenDDS for VxWorks 6.9, 7, and 21.03 and have run basic system and performance tests (but not the entire regression test suite). Please see the OpenDDS Support page for more information on support for ACE, TAO, and OpenDDS on VxWorks. Download VxWorks RPM packages for ACE, TAO, and OpenDDS here.

Compilers

This release of OpenDDS has been tested using the following compilers:

  • Microsoft Visual C++ 10 with SP1 (Visual Studio 2010)
  • Microsoft Visual C++ 11 (Visual Studio 2012) - Update 4
  • Microsoft Visual C++ 12 (Visual Studio 2013) - Update 5
  • Microsoft Visual C++ 14 (Visual Studio 2015) - Update 3
  • Microsoft Visual C++ 14.1 (Visual Studio 2017) cl 19.16.27048
  • Microsoft Visual C++ 14.2 (Visual Studio 2019) cl 19.29.30146
  • gcc 4.4.7, 4.8.5
  • gcc 6.2.1, 6.3.0
  • gcc 7.2.0, 7.3.0, 7.5.0
  • gcc 8.2.0, 8.2.1
  • gcc 9.3.1
  • gcc 12.2.0
  • Ubuntu clang 14.0.6
  • Ubuntu clang 15.0.0

Building and Installing

For building and installation instructions see https://opendds.readthedocs.io/en/latest-release/devguide/building/index.html

Quick Start with Docker

See the Docker Quick Start for how to use the pre-built docker image.

meta-opendds's People

Contributors

ahmedhossamopsy avatar dependabot[bot] avatar gbroeckaert avatar iguessthislldo avatar jrw972 avatar kdopen avatar mitza-oci avatar plabanca avatar vermaete avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meta-opendds's Issues

cmake

Why would you install the cmake files? My guess it these could be remove?

ERROR: opendds-3.14-r0 do_package: QA Issue: opendds: Files/directories were installed but not shipped in any package:
  /usr/lib/cmake
  /usr/lib/cmake/OpenDDS
  /usr/lib/cmake/OpenDDS/api_macros.cmake
  /usr/lib/cmake/OpenDDS/config.cmake
  /usr/lib/cmake/OpenDDS/dds_idl_sources.cmake
  /usr/lib/cmake/OpenDDS/init.cmake
  /usr/lib/cmake/OpenDDS/OpenDDSConfig.cmake
  /usr/lib/cmake/OpenDDS/OpenDDSConfigVersion.cmake
  /usr/lib/cmake/OpenDDS/options.cmake
  /usr/lib/cmake/OpenDDS/tao_idl_sources.cmake
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
opendds: 10 installed and not shipped files. [installed-vs-shipped]
ERROR: opendds-3.14-r0 do_package: Fatal QA errors found, failing task.
ERROR: opendds-3.14-r0 do_package: Function failed: do_package

CI

Add script for Azure Pipelines CI (or similar) to validate the build.

DEPENDS needed?

DEPENDS at the top of recipes-connectivity/opendds/opendds.inc lists glib and boost, but these shouldn't be needed unless optional components within OpenDDS are enabled in the configure script.

compile error for opendds

Hi
I downloaded the source and tried compiling.
The following error occurs.

Do I need to make any additional changes?

Thank you.

ERROR: opendds-3.14-r0 do_package_qa: QA Issue: /usr/bin/DCPSInfoRepo contained in package opendds requires libOpenDDS_InfoRepoServ.so.3.14.0()(64bit), but no providers found in RDEPENDS_opendds? [file-rdeps]
ERROR: opendds-3.14-r0 do_package_qa: QA Issue: /usr/bin/DCPSInfoRepo contained in package opendds requires libTAO_Svc_Utils.so.2.2a_p19()(64bit), but no providers found in RDEPENDS_opendds? [file-rdeps]
ERROR: opendds-3.14-r0 do_package_qa: QA Issue: /usr/bin/DCPSInfoRepo contained in package opendds requires libOpenDDS_Dcps.so.3.14.0()(64bit), but no providers found in RDEPENDS_opendds? [file-rdeps]
ERROR: opendds-3.14-r0 do_package_qa: QA Issue: /usr/bin/DCPSInfoRepo contained in package opendds requires libTAO_PortableServer.so.2.2a_p19()(64bit), but no providers found in RDEPENDS_opendds? [file-rdeps]
ERROR: opendds-3.14-r0 do_package_qa: QA Issue: /usr/bin/DCPSInfoRepo contained in package opendds requires libTAO.so.2.2a_p19()(64bit), but no providers found in RDEPENDS_opendds? [file-rdeps]
ERROR: opendds-3.14-r0 do_package_qa: QA Issue: /usr/bin/DCPSInfoRepo contained in package opendds requires libACE.so.6.2a_p19()(64bit), but no providers found in RDEPENDS_opendds? [file-rdeps]
WARNING: opendds-3.14-r0 do_package_qa: QA Issue: opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_Multicast.so.3.14.0
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_Valuetype.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_Tcp.so.3.14.0
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_IORTable.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libACE.so.6.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_CSD_ThreadPool.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_Rtps_Udp.so.3.14.0
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_PortableServer.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_Dcps.so.3.14.0
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_CSD_Framework.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_IDL_FE.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_Messaging.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_Federator.so.3.14.0
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_ImR_Client.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_Svc_Utils.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_DynamicInterface.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_AnyTypeCode.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_BiDirGIOP.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_PI.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_Udp.so.3.14.0
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_Async_IORTable.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_IORManip.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_Shmem.so.3.14.0
opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_Model.so.3.14.0
opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_InfoRepoDiscovery.so.3.14.0
opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_InfoRepoLib.so.3.14.0
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_CodecFactory.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libTAO_Codeset.so.2.2a_p19
opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_monitor.so.3.14.0
opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_InfoRepoServ.so.3.14.0
opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_Rtps.so.3.14.0
opendds-dbg: found library in wrong location: /usr/lib/.debug/libOpenDDS_FACE.so.3.14.0 [libdir]
ERROR: opendds-3.14-r0 do_package_qa: QA run found fatal errors. Please consider fixing them.
ERROR: opendds-3.14-r0 do_package_qa: Function failed: do_package_qa

Update for 3.13.3

What needs to be changed to support 3.13.3? Will we keep 3.13.2 as well, or just have the latest release?

Missing bblayers.conf

Hi,

trying to build with Yocto and while trying to add the layer to my build env I get that unable to find bblayers.conf

what am I doing wrong?

Issue while running subscriber, publisher running on Qemu with yocto opendds recipe (opendds 3.20, ACE 7.0.8)

./subscriber -DCPSConfigFile rtps.ini -DCPSDebugLevel 10
(383|383) INFO: set_DCPS_debug_level: set to 10
(383|383) NOTICE: Service_Participant::get_domain_participant_factory Going to load configuration from <rtps.ini>
(383|383) NOTICE: using DCPSDebugLevel value from command option (overrides value if it's in config file)
(383|383) NOTICE: Service_Participant::load_domain_ranges(): config does not have a [DomainRange] section.
(383|383) NOTICE: TransportRegistry::load_transport_templates(): config does not have a [transport_template] section.

I get the error when I ran Qemu. yocto compiled opendds. The same worked fine on Linux though(compiled on linux , 3.20)
tried adding domain range 2 to 40 and get the below errors.

Qemu gets a local ip.

(384|384) INFO: set_DCPS_debug_level: set to 10
(384|384) NOTICE: Service_Participant::get_domain_participant_factory Going to load configuration from <rtps_sub.ini>
(384|384) NOTICE: using DCPSDebugLevel value from command option (overrides value if it's in config file)
(384|384) NOTICE: Service_Participant::load_domain_ranges(): config has DomainRange sections.
(384|384) Service_Participant::parse_domain_range(): (384|384) [DomainRange/2-40]: range_start == 2
(384|384) Service_Participant::parse_domain_range(): (384|384) [DomainRange/2-40]: range_end == 40

any leads are appreciated

Add 'gatesgarth' to the layers compatibility list please?

Hello,

Just wanted to confirm that I was able to fully configure and integrate branch-DDS-3.16 using Yocto version gatesgarth without any issue.

I was therefore wondering whether it would be possible to upgrade the conf/layer.conf by adding such version to the LAYERSERIES_COMPAT_opendds-layer variable please.

Many thanks.

Kind regards
Eddy

opendds yocto do_package errer

ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_PortableServer.so.2.5.19: opendds-dev, opendds (used by files: /home/cxf/yocto-real-time-edge/build-imx-real-time-edge/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/ImR_Client/libTAO_ImR_Client.so.2.5.19)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libACE.so.6.5.19: opendds, opendds-dev (used by files: /home/cxf/yocto-real-time-edge/build-imx-real-time-edge/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/tools/repoctl/repoctl)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_IORTable.so.2.5.19: opendds-dev, opendds (used by files: /home/cxf/yocto-real-time-edge/build-imx-real-time-edge/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/InfoRepo/libOpenDDS_Federator.so.3.24.1)

WARNING: opendds-3.24-r0 do_package_qa: QA Issue: opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/TAO_IDL/.debug/libTAO_IDL_FE.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/orbsvcs/orbsvcs/.debug/libTAO_Svc_Utils.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/Messaging/.debug/libTAO_Messaging.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/CSD_Framework/.debug/libTAO_CSD_Framework.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/ImR_Client/.debug/libTAO_ImR_Client.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/IORTable/.debug/libTAO_IORTable.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/IORTable/.debug/libTAO_Async_IORTable.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/.debug/libTAO.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/CodecFactory/.debug/libTAO_CodecFactory.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/AnyTypeCode/.debug/libTAO_AnyTypeCode.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/PortableServer/.debug/libTAO_PortableServer.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/Valuetype/.debug/libTAO_Valuetype.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/IORManipulation/.debug/libTAO_IORManip.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/Codeset/.debug/libTAO_Codeset.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/PI/.debug/libTAO_PI.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/BiDir_GIOP/.debug/libTAO_BiDirGIOP.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/DynamicInterface/.debug/libTAO_DynamicInterface.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/CSD_ThreadPool/.debug/libTAO_CSD_ThreadPool.so.2.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/ace/.debug/libACE.so.6.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/ACE_wrappers/ace/XML_Utils/.debug/libACE_XML_Utils.so.6.5.19
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/tools/modeling/codegen/model/.debug/libOpenDDS_Model.so.3.24.1
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/dds/monitor/.debug/libOpenDDS_monitor.so.3.24.1
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/dds/FACE/.debug/libOpenDDS_FACE.so.3.24.1
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/dds/.debug/libOpenDDS_Dcps.so.3.24.1
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/dds/InfoRepo/.debug/libOpenDDS_InfoRepoLib.so.3.24.1
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/dds/InfoRepo/.debug/libOpenDDS_InfoRepoServ.so.3.24.1
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/dds/InfoRepo/.debug/libOpenDDS_Federator.so.3.24.1
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/dds/DCPS/RTPS/.debug/libOpenDDS_Rtps.so.3.24.1
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/dds/DCPS/security/.debug/libOpenDDS_Security.so.3.24.1
opendds-dbg: found library in wrong location: /usr/share/DDS_ROOT/dds/DCPS/trans

Compiler error

Hi ,

I get the following compiler errors in both 3.20 and 3.14 in yocto.

| ../../tao/PortableServer/Object_SArgument_T.cpp:117:1: required from here
| ../../tao/Any_Insert_Policy_T.h:44:14: error: 'void CORBA::Any::operator<<=(unsigned char)' is private within this context
| 44 | (p) <<= x;
| | ~~~~~^~~~~
| In file included from ../../tao/PortableServer/POAManagerC.h:46,
| from ../../tao/PortableServer/Object_Adapter.h:29,
| from ../../tao/PortableServer/Root_POA.h:27,
| from Servant_Base.cpp:5:
| ../../tao/AnyTypeCode/Any.h:171:10: note: declared private here
| 171 | void operator<<= (unsigned char);
| | ^~~~~~~~
| ../../tao/Any_Insert_Policy_T.h:44:14: error: invalid conversion from 'CORBA::Object
' to 'unsigned char' [-fpermissive]
| 44 | (p) <<= x;
| | ~~~~~^~~~~
| | |
| | CORBA::Object

I had checked out from github directly and made changes to bb for SHA1 of OCI_TAO alone and started compiling using bitbake opendds and got the error

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.