kartben / cyclonedds

Eclipse Cyclone DDS IoT project

Home Page:http://eclipse.org/cyclonedds

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cyclone DDS

Cyclone DDS is by far the most performant and robust DDS implementation available on the market.

Beside, Cyclone DDS is developed completely in the open and is undergoing the acceptance process to become part of Eclipse IoT (see eclipse-cyclone-dds).

Getting Started

Building Cyclone DDS

In order to build cyclone DDS you need to have installed on your host cmake v3.6.0 or higher, the Java 8 JDK or simply the Java 8 RE, and Apache Maven 3.5.x or higher.

Assuming that git is also available on your machine then, simply do:

$ git clone https://github.com/eclipse/cyclonedds.git 
$ cd cyclonedds
$ mkdir build
$ cd build
$ cmake ../src
$ make
$ make install

At this point you are ready to use cyclonedds for your next DDS project!

Examples

Now that you have built and installed cyclonecdds it is time to experiment with some examples.

Building and Running the Roundtrip Example

The first example we will show you how to build and run, measures cyclonedds latency and will allow you to see with your eyes how fast it is!

Do as follows:

$ cd cyclonedds/src/examples/roundtrip
$ mkdir build
$ cd build
$ cmake ..
$ make

Now that you've build the roundtrip example it is time to run it.

On one terminal start the applications that will be responding to cyclonedds pings. $ ./RoundtripPong

On another terminal, start the application that will be sending the ping.

$ ./RoundtripPing 0 0 0 
# payloadSize: 0 | numSamples: 0 | timeOut: 0
# Waiting for startup jitter to stabilise
# Warm up complete.
# Round trip measurements (in us)
#             Round trip time [us]                           Write-access time [us]       Read-access time [us]
# Seconds     Count   median      min      99%      max      Count   median      min      Count   median      min
        1     17382       56       50       77      269      17382       10        9      17382        1        1
        2     17502       55       50       75      137      17502       10        9      17502        1        1
        3     17482       56       50       73      165      17482       10        9      17482        1        1
        4     17429       56       50       73      135      17429       10        9      17429        1        1
        5     17514       56       50       73      146      17514       10        9      17514        1        1
        6     17566       55       50       74      256      17566       10        9      17566        1        1
        7     17555       55       51       74      119      17555       10        9      17555        1        1
        8     17551       55       51       74      137      17551       10        9      17551        1        1
        9     17562       55       50       72      193      17562       10        9      17562        1        1
       10     17461       56       50       74      143      17461       10        9      17461        1        1

The number above were measure on Mac running a 4,2 GHz Intel Core i7. From these number you can see how the roundtrip is incredibly stable and the minimal latency is about 25 micro-seconds (on this HW).

Documentation

The Cyclone DDS documentation is available here.

About

Eclipse Cyclone DDS IoT project

http://eclipse.org/cyclonedds

License:Other


Languages

Language:C 85.0%Language:Java 10.3%Language:CMake 2.2%Language:C++ 1.0%Language:GAP 0.6%Language:ANTLR 0.4%Language:Smalltalk 0.2%Language:Shell 0.2%Language:Makefile 0.0%Language:HTML 0.0%