Skip to content

Commit

Permalink
Release 1.0.0 (#12)
Browse files Browse the repository at this point in the history
* Modified Subscriber example.

* Minor change at client/create_session docs (#1)

* Added relevant line into create_session explanation

* Updated comment.

* Doc changes for accept branch: run session api change (#2)

* Added documentation for 'run session api change' pull request.

* Updated run_session doc

* Corrected run_session description.

* Updated docs for the new Write Access profile API (#3)

* Refs #3402. Updated docs for new Write Access profile.

* Changes to accept pull request #3

* Changes to accept pull request.

* API changes updated. (#4)

* Refs #3436. Updated with MicroCDR prefix. (#5)

* Product name changed: RTPS to XRCE-DDS (#6)

* Refs #3451. Updated RTPS occurrences to XRCE-DDS

* Refs #3451. Updated rtps occurrences to xrce-dds or xrce_dds

* Modified images for new name.

* Updated code with the name changes.

* Refs #3447. Updated with discovery API doc. (#7)

* Modified function names write -> buffer (#8)

* Modified function names write -> buffer

* Increase uxr_buffer_ functions documentation.

* api change: configure by create (#10)

* Refs 3426. Optimization doc (#9)

* Refs 3426. First attempt to optimization doc

* Modified with comments for acept pull request.

* Refs #3426. Applied the majority comments of Gasco review. (#11)
  • Loading branch information
lemunozm authored and richiware committed Oct 19, 2018
1 parent 4631526 commit a293fac
Show file tree
Hide file tree
Showing 20 changed files with 700 additions and 391 deletions.
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# eProsima Micro RTPS
# eProsima Micro XRCE-DDS

<a href="http://www.eprosima.com"><img src="https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcSd0PDlVz1U_7MgdTe0FRIWD0Jc9_YH-gGi0ZpLkr-qgCI6ZEoJZ5GBqQ" align="left" hspace="8" vspace="2" width="100" height="100" ></a>

*eProsima Micro RTPS* is a software solution which allows to communicate eXtremely Resource Constrained Environments (XRCEs) with an existing DDS network. This implementation complies with the specification proposal, "eXtremely Resource Constrained Environments DDS (DDS-XRCE)" submitted to the Object Management Group (OMG) consortium.
*eProsima Micro XRCE-DDS* is a software solution which allows to communicate eXtremely Resource Constrained Environments (XRCEs) with an existing DDS network. This implementation complies with the specification proposal, "eXtremely Resource Constrained Environments DDS (DDS-XRCE)" submitted to the Object Management Group (OMG) consortium.

*Micro RTPS* implements a client-server protocol to enable resource-constrained devices (clients) to take part in DDS communications. *Micro RTPS Agent* (server) makes possible this communication. The *Micro RTPS Agent* acts on behalf of the *Micro RTPS Clients* and enables them to take part as DDS publishers and/or subscribers in the DDS Global Data Space.
*Micro XRCE-DDS* implements a client-server protocol to enable resource-constrained devices (clients) to take part in DDS communications. *Micro XRCE-DDS Agent* (server) makes possible this communication. The *Micro XRCE-DDS Agent* acts on behalf of the *Micro XRCE-DDS Clients* and enables them to take part as DDS publishers and/or subscribers in the DDS Global Data Space.

*Micro RTPS* provides both, a plug and play *Micro RTPS Agent* and an API layer which allows you to implement your *Micro RTPS Clients*.
*Micro XRCE-DDS* provides both, a plug and play *Micro XRCE-DDS Agent* and an API layer which allows you to implement your *Micro XRCE-DDS Clients*.

![Architecture](docs/architecture.png)

## Documentation

You can access the documentation online, which is hosted on Read the Docs.

* [Start Page](http://micro-rtps.readthedocs.io)
* [Installation manual](http://micro-rtps.readthedocs.io/en/latest/installation.html)
* [User manual](http://micro-rtps.readthedocs.io/en/latest/introduction.html)
* [Start Page](http://micro-xrce-dds.readthedocs.io)
* [Installation manual](http://micro-xrce-dds.readthedocs.io/en/latest/installation.html)
* [User manual](http://micro-xrce-dds.readthedocs.io/en/latest/introduction.html)

## Getting Help

Expand Down
14 changes: 7 additions & 7 deletions docs/agent.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
.. _micro_rtps_agent_label:
.. _micro_xrce_dds_agent_label:

Micro RTPS Agent
================
Micro XRCE-DDS Agent
====================

*Micro RTPS Agent* acts as a server between the DDS Network and *Micro RTPS Clients*.
*Micro XRCE-DDS Agent* acts as a server between the DDS Network and *Micro XRCE-DDS Clients*.
Agents receive messages containing operations from clients.
Also agents keep track of the clients and the entities they create.
The Agent uses the entities to interact with the DDS Global Data Space on behalf of the client.
Expand All @@ -19,15 +19,15 @@ Once it is built successfully you just need to launch it executing the following

For serial communication: ::

$ ./MicroRTPSAgent serial <device>
$ ./MicroXRCE-DDSAgent serial <device>

For udp communication: ::

$ ./MicroRTPSAgent udp <port>
$ ./MicroXRCE-DDSAgent udp <port>

For tcp communication: ::

$ ./MicroRTPSAgent tcp <port>
$ ./MicroXRCE-DDSAgent tcp <port>

If the transport used is a reliability transport, the use of a best effort stream over it is equivalent to use a reliable stream over a not reliable transport.

Expand Down
393 changes: 270 additions & 123 deletions docs/client.rst

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
master_doc = 'index'

# General information about the project.
project = u'Micro RTPS'
project = u'Micro XRCE-DDS'
copyright = u'2017, eProsima'
author = u'eProsima'

Expand Down Expand Up @@ -240,7 +240,7 @@
# html_search_scorer = 'scorer.js'

# Output file base name for HTML help builder.
htmlhelp_basename = 'MicroRTPSManual'
htmlhelp_basename = 'MicroXRCE-DDSManual'

# -- Options for LaTeX output ---------------------------------------------

Expand All @@ -266,7 +266,7 @@
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'MicroRTPS.tex', u'MicroRTPS Documentation',
(master_doc, 'MicroXRCE-DDS.tex', u'MicroXRCE-DDS Documentation',
u'eProsima', 'manual'),
]

Expand Down Expand Up @@ -308,7 +308,7 @@
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'MicroRTPS', u'MicroRTPS Documentation',
(master_doc, 'MicroXRCE-DDS', u'MicroXRCE-DDS Documentation',
[author], 1)
]

Expand All @@ -323,8 +323,8 @@
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'MicroRTPS', u'MicroRTPS Documentation',
author, 'MicroRTPS', 'Documentation of eProsima MicroRTPS',
(master_doc, 'MicroXRCE-DDS', u'MicroXRCE-DDS Documentation',
author, 'MicroXRCE-DDS', 'Documentation of eProsima MicroXRCE-DDS',
'Miscellaneous'),
]

Expand Down
12 changes: 6 additions & 6 deletions docs/dependencies.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,26 @@ External dependencies

Required dependences
--------------------
*Micro RTPS - Client* does not require external dependencies.
*Micro XRCE-DDS - Client* does not require external dependencies.

*Micro RTPS - Agent* requires following packages to work:
*Micro XRCE-DDS - Agent* requires following packages to work:

FastRTPS
Fast RTPS
*eProsima Fast RTPS* could be installed following the instructions:
`eProsima Fast RTPS installation guide <http://eprosima-fast-rtps.readthedocs.io/en/latest/index.html#installation>`_.

Windows
~~~~~~~
Microsoft Visual C++ 2013 or 2015
*eProsima Micro RTPS* is supported on Windows over Microsoft Visual C++ 2013 or 2015 framework.
*eProsima Micro XRCE-DDS* is supported on Windows over Microsoft Visual C++ 2013 or 2015 framework.

Additional Dependencies
-----------------------
The following dependences are not necessary to run Micro RTPS.
The following dependences are not necessary to run Micro XRCE-DDS.

GTEST
Gtest is the framework used to test the code through a complete set of tests.

Java & Gradle
Java & Gradle is required to compile the code generation tool *Micro RTPS Gen*.
Java & Gradle is required to compile the code generation tool *Micro XRCE-DDS Gen*.

6 changes: 3 additions & 3 deletions docs/deployment.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Deployment example
==================

This part will show how to deploy a system using *Micro RTPS* in a real enviroment.
This part will show how to deploy a system using *Micro XRCE-DDS* in a real enviroment.
An example of this can be found into ``examples/Deployment`` folder.

Previous tutorials are based in `all in one` examples, that is, examples that create entities, publish or subscribe and then delete the resources.
Expand All @@ -13,8 +13,8 @@ One for configurating the entities in the agent, and run possibly once, only for
And other/s, that logs in the same session as the configure client (sharing the entities) and only publishes or subscribes data.

This way allows to create easy clients in production only with the purpose of send and receive data.
Related to it, exists the concept of `profile` that allow to build the client library only with the behavior choosen (only publish or only suscribe, for example).
See :ref:`micro_rtps_client_label` for more information about this.
Related to it, exists the concept of `profile` that allows to build the client library only with the behavior chosen (only publish or only subscribe, for example).
See :ref:`micro_xrce_dds_client_label` for more information about this.

Next diagram shows an example about how to configure the enviroment using a `configurator client`.

Expand Down
10 changes: 5 additions & 5 deletions docs/entities.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
Entities
========

The protocol under *Micro RTPS* (XRCE), defines entities that have a direct correspondence with their analogous actor on *Fast RTPS* (DDS).
The entities manage the communication between *Micro RTPS Client* and the DDS Global Data Space.
Entities are stored in the *Micro RTPS Agent* and the *Micro RTPS Client* can create, use and destroy these entities.
The protocol under `Micro XRCE-DDS` (XRCE), defines entities that have a direct correspondence with their analogous actors on `Fast RTPS` (DDS).
The entities manage the communication between `Micro XRCE-DDS Client` and the DDS Global Data Space.
Entities are stored in the `Micro XRCE-DDS Agent` and the `Micro XRCE-DDS Client` can create, use and destroy these entities.

The entities are uniquely identified by an ID called `Object ID`. `Object ID` is the way a *Client* refers to them inside an Agent.
In most of the *Client* requests operations is necessary to specify an ID referring to one of the *Client* entities stored in the *Agent*.
The entities are uniquely identified by an ID called `Object ID`. `Object ID` is the way a `Client` refers to them inside an Agent.
In most of the `Client` request operations is necessary to specify an ID referring to one of the `Client` entities stored in the `Agent`.

Type of Entities
----------------
Expand Down
35 changes: 17 additions & 18 deletions docs/gen.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
.. _micrortpsgen_label:
.. _microxrceddsgen_label:

Micro RTPS Gen
==============
Micro XRCE-DDS Gen
==================

*Micro RTPS Gen* is a Java application used to generate source code for the *eProsima Micro RTPS* software.
*Micro XRCE-DDS Gen* is a Java application used to generate source code for the *eProsima Micro XRCE-DDS* software.

This tool is able to generate from a given IDL specification file, the C struct associated with the
Topic, as well as, the serialization and deserialization methods.
Expand All @@ -23,7 +23,7 @@ As an example of the powerful of this tool, the following shows the source code

If we will perform the following command: ::

$ micrortpsgen ShapeType.idl
$ microxrceddsgen ShapeType.idl

it will generate the following header file and its corresponding source:

Expand Down Expand Up @@ -55,28 +55,27 @@ it will generate the following header file and its corresponding source:
} ShapeType;
struct MicroBuffer;
struct ucdrBuffer;
bool ShapeType_serialize_topic(struct MicroBuffer* writer, const ShapeType* topic);
bool ShapeType_deserialize_topic(struct MicroBuffer* reader, ShapeType* topic);
bool ShapeType_serialize_topic(struct ucdrBuffer* writer, const ShapeType* topic);
bool ShapeType_deserialize_topic(struct ucdrBuffer* reader, ShapeType* topic);
uint32_t ShapeType_size_of_topic(const ShapeType* topic, uint32_t size);
#endif // _ShapeType_H_
*Micro RTPS Gen* is also able to generate a writing function for the topic. It is enabled with the ``-write-access-profile`` option: ::
$ micrortpsgen -write-access-profile <file.idl>
*Micro XRCE-DDS Gen* is also able to generate both *publisher* and *subscriber* source code examples related with the topic speficified in the IDL file adding the flag ``-example``: ::

*Micro RTPS Gen* is also able to generate both *publisher* and *subscriber* source code examples related with the topic speficified in the IDL file adding the flag ``-example``: ::
$ microxrceddsgen -example <file.idl>

$ micrortpsgen -example <file.idl>

With the ``-example`` flag, the ``-write_access-profile`` option is automatically enabled.
In order to use these examples, the client library must be compiled with the ``WRITE_ACCESS_PROFILE`` option for the *publisher*
and the ``READ_ACCESS_PROFILE`` option for the *subscriber*.

Installation
------------

For use *Micro RTPS Gen* you have to follow the next steps:
For use *Micro XRCE-DDS Gen* you have to follow the next steps:

1. Install its dependencies:

Expand All @@ -86,8 +85,8 @@ For use *Micro RTPS Gen* you have to follow the next steps:

2. Clone the code from the GitHub repository. ::

$ git clone --recursive https://github.com/eProsima/micro-RTPS-gen.git
$ cd micro-RTPS-gen
$ git clone --recursive https://github.com/eProsima/micro-XRCE-DDS-gen.git
$ cd micro-XRCE-DDS-gen

3. Build the code with Gradle. ::

Expand All @@ -96,5 +95,5 @@ For use *Micro RTPS Gen* you have to follow the next steps:
Notes
-----

At the present time, *Micro RTPS Gen* only supports Structs composed of integer, string, array and sequence types
even though it is planned to enhance the capabilities of the *Micro RTPS Gen* tool in a near future.
At the present time, *Micro XRCE-DDS Gen* only supports Structs composed of integer, string, array and sequence types
even though it is planned to enhance the capabilities of the *Micro XRCE-DDS Gen* tool in a near future.
Loading

0 comments on commit a293fac

Please sign in to comment.