eProsima Micro XRCE-DDS¶
eProsima Micro XRCE-DDS is a software solution that allows communicating eXtremely Resource Constrained Environments (XRCEs) with an existing DDS network. This implementation complies with the specification proposal, “DDS for eXtremely Resource Constrained Environments” submitted to the Object Management Group (OMG) consortium.
eProsima Micro XRCE-DDS implements a client-server protocol to enable resource-constrained devices (clients) to take part in DDS communications. eProsima Micro XRCE-DDS Agent (server) makes possible this communication acting on behalf of the eProsima Micro XRCE-DDS Clients and enables them to take part as DDS publishers and/or subscribers in the DDS Global Data Space.
eProsima Micro XRCE-DDS provides both, a plug and play eProsima Micro XRCE-DDS Agent and an API layer which allows you to implement your eProsima Micro XRCE-DDS Clients.
- High performance.
- Uses a static low-level serialization library (eProsima Micro CDR) that serialize in XCDR.
- Low resources.
- The client library is dynamic and static memory free. It means that the only memory footprint is due to the stack growth. It can manage a simple publisher/subscriber with less of 2KB of RAM. Besides, the client is built with a profiles concept, that allows adding or removing functionality to the library changing the binary size.
- The OS dependencies are treated as pluggable modules. The user can easily implement his platform modules to eProsima Micro XRCE-DDS Client library in his specific platform. By default, the project can run over Linux, Windows and Nuttx.
- Compiler dependencies free.
- The client library uses pure c99 standard. No C compiler extensions are used.
- Free and Open Source.
- The client library, the agent executable, the generator tool and internal dependencies as eProsima Micro CDR or eProsima Fast RTPS are all of them free and open source.
- Easy to use.
- The project comes with examples of a publisher and a subscriber, an example of how eProsima Micro XRCE-DDS is deployed into a stage and an interactive demo that can be used with the ShapesDemo, to understand the DDS-XRCE protocol and make tests. The client API is thoroughly explained, and a guided example of how to create your client application is distributed as part of the documentation.
- Implementation of the DDS-XRCE standard.
- DDS-XRCE is a standard communication protocol of OMG consortium focused on communicating eXtremely Resource Constrained Environments with the DDS world.
- Best effort and reliable communication.
- eProsima Micro XRCE-DDS supports both, best effort for fast and light communication and reliable when the communication reliability is needed.
- Pluggable transport layer.
- eProsima Micro XRCE-DDS is not built over a specific transport protocol as Serial or UDP. It is agnostic about the transport used, and give the user the possibility of implementing his tailored transport quickly. By default, UPD, TCP, and Serial transports are provided.
- Commercial support
- Available at email@example.com
To test eProsima Micro XRCE-DDS on your computer, you can follow the Quick start instructions. This page shows how to create a simple publisher as a XRCE client that send topics into the DDS World.
Additionally, there is an interactive example called Shapes Demo that allows you to create entities and to send/receive topics by instructions given by the command line. This example is useful to understand how XRCE protocol works along with the DDS World.
To create your client, you can follow the instructions of Getting started page. It is a tutorial that describes briefly how eProsima Micro XRCE-DDS API is and how it works.
To know more about eProsima Micro XRCE-DDS, you can read the corresponding parts to the eProsima Micro XRCE-DDS Client or the eProsima Micro XRCE-DDS Agent. If you are interested in how XRCE works, read Entities and Operations pages.
- Quick start
- Getting started
- Shapes Demo
- eProsima Micro XRCE-DDS Client
- eProsima Micro XRCE-DDS Gen
- eProsima Micro XRCE-DDS Agent
- Deployment example
- Memory optimization
- P2P Communication
- Time synchronization
- Client-service application