Fast-DDS-docs

所属分类:视频会议
开发工具:C++
文件大小:0KB
下载次数:0
上传日期:2023-07-17 19:18:35
上 传 者sh-1993
说明:  快速RTPS(标记文件)文档,
(Documentation of Fast RTPS (MarkDown Files),)

文件列表:
CMakeLists.txt (6224, 2023-12-20)
LICENSE (11358, 2023-12-20)
code/ (0, 2023-12-20)
code/CMakeLists.txt (8281, 2023-12-20)
code/CodeTester.cpp (84392, 2023-12-20)
code/DDSCodeTester.cpp (227237, 2023-12-20)
code/Examples/ (0, 2023-12-20)
code/Examples/C++/ (0, 2023-12-20)
code/Examples/C++/DDSHelloWorld/ (0, 2023-12-20)
code/Examples/C++/DDSHelloWorld/CMakeLists.txt (1647, 2023-12-20)
code/Examples/C++/DDSHelloWorld/src/ (0, 2023-12-20)
code/Examples/C++/DDSHelloWorld/src/HelloWorld.cxx (3360, 2023-12-20)
code/Examples/C++/DDSHelloWorld/src/HelloWorld.h (4785, 2023-12-20)
code/Examples/C++/DDSHelloWorld/src/HelloWorld.idl (68, 2023-12-20)
code/Examples/C++/DDSHelloWorld/src/HelloWorldCdrAux.hpp (1333, 2023-12-20)
code/Examples/C++/DDSHelloWorld/src/HelloWorldCdrAux.ipp (4243, 2023-12-20)
code/Examples/C++/DDSHelloWorld/src/HelloWorldPubSubTypes.cxx (6163, 2023-12-20)
code/Examples/C++/DDSHelloWorld/src/HelloWorldPubSubTypes.h (3862, 2023-12-20)
code/Examples/C++/DDSHelloWorld/src/HelloWorldPublisher.cpp (5090, 2023-12-20)
code/Examples/C++/DDSHelloWorld/src/HelloWorldSubscriber.cpp (5071, 2023-12-20)
code/Examples/Python/ (0, 2023-12-20)
code/Examples/Python/HelloWorld/ (0, 2023-12-20)
code/Examples/Python/HelloWorld/HelloWorldPublisher.py (4044, 2023-12-20)
code/Examples/Python/HelloWorld/HelloWorldSubscriber.py (3287, 2023-12-20)
code/FastDDSGenCodeTester.cpp (3163, 2023-12-20)
code/GovernanceTester.xml (4352, 2023-12-20)
code/PermissionsTester.xml (3144, 2023-12-20)
code/StaticTester.xml (3032, 2023-12-20)
code/XMLTester.xml (134004, 2023-12-20)
code/XMLTesterExample.xml (43395, 2023-12-20)
code/XMLTesterSkipValidation.xml (2726, 2023-12-20)
code/certs/ (0, 2023-12-20)
code/certs/1C6AA2B87BFB8346B9F3999E583478C43921FB3E.pem (2246, 2023-12-20)
code/certs/app.cnf (290, 2023-12-20)
... ...

# eProsima Fast DDS Documentation [![Releases](https://img.shields.io/github/release/eProsima/Fast-DDS.svg)](https://github.com/eProsima/Fast-DDS/releases) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Linux Build Status](http://jenkins.eprosima.com:8080/job/nightly_fastdds-docs_master/badge/icon?subject=CI%20testing%20)](http://jenkins.eprosima.com:8080/job/nightly_fastdds-docs_master/) *eprosima Fast DDS* (formerly Fast RTPS) is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group). eProsima Fast DDS implements the RTPS (Real Time Publish Subscribe) protocol, which provides publisher-subscriber communications over unreliable transports such as UDP, as defined and maintained by the Object Management Group (OMG) consortium. RTPS is also the wire interoperability protocol defined for the Data Distribution Service (DDS) standard. *eProsima Fast DDS* exposes an API to access the RTPS protocol directly, giving the user full access to the protocol internals. Some of the main features of this library are: * Configurable best-effort and reliable publish-subscribe communication policies for real-time applications. * Plug and play connectivity so that any new applications are automatically discovered by any other members of the network. * Modularity and scalability to allow continuous growth with complex and simple devices in the network. * Configurable network behavior and interchangeable transport layer: Choose the best protocol and system input/output channel combination for each deployment. * Two API Layers: a high-level Publisher-Subscriber one focused on usability (DDS) and a lower-level Writer-Reader one that provides finer access to the inner workings of the RTPS protocol. *eProsima Fast DDS* has been adopted by multiple organizations in many sectors including these important cases: * Robotics: ROS (Robotic Operating System) as their default middleware for ROS2. * EU R&D: FIWARE Incubated GE. You can find all the library's source code on our [GitHub repository](https://github.com/eProsima/Fast-DDS). The documentation is built using [Sphinx](https://www.sphinx-doc.org), and it is hosted at [Read the Docs](https://readthedocs.org). The online documentation generated with this project can be found in [Fast DDS documentation](https://fast-dds.docs.eprosima.com). 1. [Installation Guide](#installation-guide) 1. [Project structure](#project-structure) 1. [Contributing](#contributing) ## Installation Guide The following guide has been developed and tested in Ubuntu 20.04. It covers two mechanisms for build and testing the documentation (colcon and CMake), and one that just generates the HTML, which can be used to simulate the process followed in ReadTheDocs. Contributors are asked to not only generate the HTML, but to also build and test their changes locally following one of the two first methods. 1. [Install common dependencies](#install-common-dependencies) 1. [Python virtual environment](#python-virtual-environment) 1. [Colcon installation](#colcon-installation) 1. [CMake installation](#cmake-installation) 1. [Simulating Read the Docs](#simulating-read-the-docs) 1. [Generating documentation in other formats](#generating-documentation-in-other-formats) ### Install common dependencies Install dependencies common to all methods: ```bash sudo apt update sudo apt install -y \ git \ curl \ wget \ doxygen \ python3-doc8 \ python3 \ python3-pip \ python3-venv \ imagemagick \ libenchant-2-2 \ plantuml ``` ### Python virtual environment In order to build the documentation, some python3 dependencies are required. This guide uses a python3 virtual environment to install such dependencies, thus avoiding polluting the user's installation. Create a virtual environment and install python3 dependencies. ```bash python3 -m venv fastdds-docs-venv source fastdds-docs-venv/bin/activate wget https://raw.githubusercontent.com/eProsima/Fast-DDS-docs/master/docs/requirements.txt pip3 install -r requirements.txt ``` The version of python3 used in the virtual environment can be seen by running the following command within the virtual environment: ```bash python3 -V ``` ### Colcon installation 1. Fast DDS-docs depends on Fast DDS, so its dependencies must be installed alongside some required building tools. ```bash sudo apt update sudo apt install -y \ # Build tools gcc \ g++ \ cmake \ # Fast DDS dependencies libasio-dev \ libtinyxml2-dev \ libssl-dev \ # Fast DDS-Docs dependencies python3-sphinx ``` 1. Create a colcon workspace containing Fast DDS and Fast DDS-docs: ```bash mkdir -p /fastdds-docs_ws/src cd /fastdds-docs_ws wget https://raw.githubusercontent.com/eProsima/Fast-DDS-docs//colcon.meta wget https://raw.githubusercontent.com/eProsima/Fast-DDS//fastrtps.repos vcs import src < fastrtps.repos cd src git clone https://github.com/eProsima/Fast-DDS-docs fastdds-docs ``` 1. [OPTIONAL]: You can checkout to different Fast DDS and Fast DDS-docs branches within the appropriate repositories located in `/fastdds-docs_ws/src` 1. Build the workspace using colcon[^colcon_ignore] ```bash source /fastdds-docs-venv/bin/activate cd /fastdds-docs_ws colcon build ``` [^colcon_ignore]: If the virtual environment is placed within the colcon workspace, it is recommended to add an empty `COLCON_IGNORE` file in the root of the virtual environment so that colcon does not inspect it. 1. Run documentation tests: ```bash source /fastdds-docs-venv/bin/activate cd /fastdds-docs_ws colcon test --packages-select fastdds-docs --event-handlers=console_direct+ ``` ### CMake installation Fast DDS-docs is a CMake project, and as such it can be build using CMake directly. This guide does not cover building Fast DDS or installing its dependencies. However, it is required to have a Fast DDS installation built with option `-DSECURITY=ON`. It is up to the user to link to the appropriate Fast DDS installation using, for instance, `CMAKE_PREFIX_PATH`. ```bash source /fastdds-docs-venv/bin/activate git clone https://github.com/eProsima/Fast-DDS-docs fastdds-docs cd fastdds-docs mkdir build cd build cmake .. -DBUILD_DOCUMENTATION=ON -DCOMPILE_TESTS=ON cmake --build . ``` Now, you can run documentation tests: ```bash source /fastdds-docs-venv/bin/activate cd /fastdds-docs/build ctest -VV ``` ### Simulating Read the Docs ReadTheDocs generates the documentation using Sphinx and [conf.py](docs/conf.py). This means that it does not execute any colcon or CMake commands. Furthermore, Fast DDS is not available for API reference documentation generation. [conf.py](docs/conf.py) provides some extra logic to download Fast DDS and generate the Doxygen documentation when running on a Read the Docs environment. This is done by means of the environment variable `READTHEDOCS`. When this variable is set to `True`, [conf.py](docs/conf.py) will clone Fast DDS in `build/fastdds/` and will set it to a specific branch according to the following criteria: 1. Try to checkout to the branch specified by environment variable `FASTDDS_BRANCH`. 1. If the variable is not set, or the branch does not exist, try to checkout to a branch with the same name as the current branch on this repository. 1. If the previous fails, fallback to `master`. Also Fast DDS Python bindings is cloned and follows a similar criteria: 1. Try to checkout to the branch specified by environment variable `FASTDDS_PYTHON_BRANCH`. 1. If the variable is not set, or the branch does not exist, try to checkout to a branch with the same name as the current branch on this repository. 1. If the previous fails, fallback to `main`. To simulate ReadTheDocs operation, make sure you do not have a `build` directory. Then, set `READTHEDOCS`, `FASTDDS_BRANCH` and `FASTDDS_PYTHON_BRANCH` and run sphinx: ```bash source /fastdds-docs-venv/bin/activate cd /fastdds-docs rm -rf build READTHEDOCS=True FASTDDS_BRANCH= FASTDDS_PYTHON_BRANCH= sphinx-build \ -b html \ -D breathe_projects.FastDDS=/fastdds-docs/build/doxygen/xml \ -d /fastdds-docs/build/doctrees \ docs /fastdds-docs/build/html ``` ### Generating documentation in other formats Using either CMake or colcon, the documentation is built using Sphinx's `html` builder. However, Sphinx supports several other building formats, which are enabled through [Sphinx builders](https://www.sphinx-doc.org/en/master/usage/builders/index.html). Once a builder is selected, the documentation can be built using the [Simulating Read the Docs](#simulating-read-the-docs) approach, specifying the appropriate builder with the `-b` CLI option ## Project structure The project is structured as follows: 1. The root directory contains global scope files, such as this one. 1. The [docs directory](#docs-directory) contains all documentation source code. 1. Code snippets and testing code is located in the [code directory](#code-directory). ### `doc` directory The [docs](docs) directory contains: * [_static](docs/_static): For HTML theme related files. * [01-figures](docs/01-figures): For all the documentation figures. SVG files are the preferred format since the XML can be modified or otherwise checked for differences. * [02-formalia](docs/02-formalia): Must-have pages such as Introduction. * [03-exports](docs/03-exports): Files for common aliases so they can be included when needed * [fastdds](docs/fastdds): Fast DDS documentation. * [fastddscli](docs/fastddscli): Fast DDS CLI documentation. * [fastddsgen](docs/fastddsgen): Fast DDS-Gen documentation. * [installation](docs/installation): Installation manual. * [notes](docs/notes): Release notes. All new documentation must fall into one of these directories, with the exception of those contributions which are not related to any of the given descriptions. Keep in mind that this is an Sphinx based project, and as such, all the documentation is written in `reStructuredText`. All unrecognized words must be added to the [spelling_wordlist.txt](docs/spelling_wordlist.txt) dictionary in alphabetical order, with exception of the ones coming from the API reference documentation, which must be added to [docs/fastdds/api_reference/spelling_wordlist.txt](docs/fastdds/api_reference/spelling_wordlist.txt). ### `code` directory The [code](code) directory contains all the files related to code snippets and CI testing. Files of particular importance are: * [CodeTester.cpp](code/CodeTester.cpp): Contains all Fast DDS pub-sub and RTPS layer snippets. It is a buildable file, so it can be compiled and linked against the Fast DDS to verify that all samples of code are up to date. Furthermore, it is used to create an executable that is then used to generate Ctest tests. * [DDSCodeTester.cpp](code/DDSCodeTester.cpp): Contains Fast DDS DDS layer snippets. * [XMLTester.xml](code/XMLTester.xml): Contains XML snippets. * [doxygen-config.in](code/doxygen-config.in): Doxyfile to configure Doxygen for creating Fast DDS API reference. ## Contributing If you are interested in making some contributions, either in the form of an issue or a pull request, please refer to our [Contribution Guidelines](https://github.com/eProsima/all-docs/blob/master/CONTRIBUTING.md).

近期下载者

相关文件


收藏者