<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.eeros.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.eeros.org/feed.php">
        <title>Real-Time Robotics Framework - for_developers</title>
        <description></description>
        <link>https://wiki.eeros.org/</link>
        <image rdf:resource="https://wiki.eeros.org/_media/logo.png" />
       <dc:date>2026-05-06T11:39:41+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.eeros.org/for_developers/bugfixprocess?rev=1593175959&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eeros.org/for_developers/commit_guidelines?rev=1723470239&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eeros.org/for_developers/contribute?rev=1548425786&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eeros.org/for_developers/json_parser?rev=1710415017&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eeros.org/for_developers/releaseprocess?rev=1776848062&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eeros.org/for_developers/releases?rev=1548842652&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eeros.org/for_developers/sharing_data?rev=1428412974&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eeros.org/for_developers/simulator?rev=1493881102&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eeros.org/for_developers/start?rev=1568106217&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eeros.org/for_developers/style_guide?rev=1623256313&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eeros.org/for_developers/testing?rev=1775144206&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eeros.org/for_developers/thread_safety?rev=1776005420&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.eeros.org/for_developers/wrapper_lib?rev=1492512182&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.eeros.org/_media/logo.png">
        <title>Real-Time Robotics Framework</title>
        <link>https://wiki.eeros.org/</link>
        <url>https://wiki.eeros.org/_media/logo.png</url>
    </image>
    <item rdf:about="https://wiki.eeros.org/for_developers/bugfixprocess?rev=1593175959&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-26T12:52:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Bug Fix Release Process</title>
        <link>https://wiki.eeros.org/for_developers/bugfixprocess?rev=1593175959&amp;do=diff</link>
        <description>Bug Fix Release Process

The following is a step-by-step procedure for creating a bug fix release.

All the planning work is done on Trello on the EEROS Tasks Board. New developers have to request access rights by submitting the contact form.

1. Announcement of a bug fix release</description>
    </item>
    <item rdf:about="https://wiki.eeros.org/for_developers/commit_guidelines?rev=1723470239&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-12T13:43:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Git Commit Guidelines</title>
        <link>https://wiki.eeros.org/for_developers/commit_guidelines?rev=1723470239&amp;do=diff</link>
        <description>Git Commit Guidelines

The EEROS Framework is developed using the following git commit guidelines.

1. Changes are as small and atomic as possible

	*  Commit each fix or task as a separate change
	*  Only commit when a block of work is complete
	*  Commit a new feature as joint commit when the additions belong together</description>
    </item>
    <item rdf:about="https://wiki.eeros.org/for_developers/contribute?rev=1548425786&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-25T14:16:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Contribute to EEROS</title>
        <link>https://wiki.eeros.org/for_developers/contribute?rev=1548425786&amp;do=diff</link>
        <description>Contribute to EEROS

The development on the EEROS Framework is done with the workflow “develop with a fork”. For contribution, EEROS must be forked. The implementation is done in the fork. Afterwards, the changes are merged into the master branch of the main project repository. The merge is initiated by the pull request feature of GitHub. This workflow allows an easy way to contribute for everyone. It also improves the code quality since the pull requests are reviewed before the merge.</description>
    </item>
    <item rdf:about="https://wiki.eeros.org/for_developers/json_parser?rev=1710415017&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-14T11:16:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JSON Parser</title>
        <link>https://wiki.eeros.org/for_developers/json_parser?rev=1710415017&amp;do=diff</link>
        <description>JSON Parser

We use libucl as JSON parser for EEROS. But we use our own fork of the libucl-Repository. There is an additional function added to libucl to support parsing with strategy function from a file. This was not supported by default but we need it to detect duplicate entries of devices, subdevices or channels and throw a Fault.</description>
    </item>
    <item rdf:about="https://wiki.eeros.org/for_developers/releaseprocess?rev=1776848062&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-22T08:54:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Release Process</title>
        <link>https://wiki.eeros.org/for_developers/releaseprocess?rev=1776848062&amp;do=diff</link>
        <description>Release Process

The following is a step-by-step procedure for releasing a new version of EEROS.

All the planning work is done on Trello on the EEROS Tasks Board. New developers have to request access rights by submitting the contact form.

1. Announcement of a new release</description>
    </item>
    <item rdf:about="https://wiki.eeros.org/for_developers/releases?rev=1548842652&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-30T10:04:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Releases</title>
        <link>https://wiki.eeros.org/for_developers/releases?rev=1548842652&amp;do=diff</link>
        <description>Releases

EEROS is released in the form of the source code via GitHub. All releases are found here. 

The release workflow supports multiple active releases. Every active release has its own release branch. The actual release commit is tagged with the version number. EEROS is versioned according to the</description>
    </item>
    <item rdf:about="https://wiki.eeros.org/for_developers/sharing_data?rev=1428412974&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-04-07T13:22:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sharing Data</title>
        <link>https://wiki.eeros.org/for_developers/sharing_data?rev=1428412974&amp;do=diff</link>
        <description>Sharing Data

Different processes and threads need to exchange data among them. The control system together with the safety system is executed by different threads in the same process. The simulator and various services run in their own processes to acquire signal information during runtime such as scopes.</description>
    </item>
    <item rdf:about="https://wiki.eeros.org/for_developers/simulator?rev=1493881102&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-05-04T06:58:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Extending the Simulator</title>
        <link>https://wiki.eeros.org/for_developers/simulator?rev=1493881102&amp;do=diff</link>
        <description>Extending the Simulator

How to add a new device type to sim-eeros?

	*  create class derived from SimBehaviour.hpp
	*  implement member functions according to your needs
		*  constructor: create your simulation channels
		*  run() : implement your desired simulation function</description>
    </item>
    <item rdf:about="https://wiki.eeros.org/for_developers/start?rev=1568106217&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-09-10T09:03:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>For Developers</title>
        <link>https://wiki.eeros.org/for_developers/start?rev=1568106217&amp;do=diff</link>
        <description>For Developers

This page is intended for developers. It contains material which show how to extend EEROS itself.

Interfacing with Hardware

	*  Create new Wrapper Library
	*  JSON Parser libucl
	*  Extending the Simulator

Various

	*  Coding Style Guide
	*  Git Commit Guidelines
	*  Contribute
	*  Release Process
	*  Bug Fix Release Process
	*  Releases
	*  Sharing Data
	*  EEROS types are defined in includes/types.hpp</description>
    </item>
    <item rdf:about="https://wiki.eeros.org/for_developers/style_guide?rev=1623256313&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-06-09T16:31:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Coding Style Guide</title>
        <link>https://wiki.eeros.org/for_developers/style_guide?rev=1623256313&amp;do=diff</link>
        <description>Coding Style Guide

EEROS is written primarily in C++, and its developers follow the Google C++ Style Guide with some modifications:

#define Guards

We use define guards with a naming similar to Java package names.

For example, lets look at the class Block using the following source files:</description>
    </item>
    <item rdf:about="https://wiki.eeros.org/for_developers/testing?rev=1775144206&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-02T15:36:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Testing</title>
        <link>https://wiki.eeros.org/for_developers/testing?rev=1775144206&amp;do=diff</link>
        <description>Testing

We use Google Test as our test framework. Read &lt;https://google.github.io/googletest/primer.html&gt; to understand how to use the available macros for defining test cases. 

Naming

All the tests must be named in the following manner.


TEST(testName, testMethodName) { ... }


testName should include the name of the package, e.g. controlDeMuxBlock or safetyEventTest. This allows for running only the tests in a certain package.</description>
    </item>
    <item rdf:about="https://wiki.eeros.org/for_developers/thread_safety?rev=1776005420&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-12T14:50:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Thread Safety</title>
        <link>https://wiki.eeros.org/for_developers/thread_safety?rev=1776005420&amp;do=diff</link>
        <description>Thread Safety

In EEROS, blocks are basically accessed by multiple threads. EEROS blocks feature thread safety by providing exclusive access to critical memory locations by a mutex. 

Concurrency can not be tested by Google Test framework. Therefore, test executables are needed which can be executed manually or via bash scripts.</description>
    </item>
    <item rdf:about="https://wiki.eeros.org/for_developers/wrapper_lib?rev=1492512182&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-04-18T10:43:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Create new Wrapper Library</title>
        <link>https://wiki.eeros.org/for_developers/wrapper_lib?rev=1492512182&amp;do=diff</link>
        <description>Create new Wrapper Library

The following steps have to be taken in order to create a custom wrapper library. See also flink-eeros or comedi-eeros.

	*  Create new CMake project for a shared library. 
	*  Include and link against EEROS: 
find_package(EEROS REQUIRED)
include_directories(${EEROS_INCLUDE_DIR})
link_directories(${EEROS_LIB_DIR})</description>
    </item>
</rdf:RDF>
