riebl / vanetza

Open-source implementation of the ETSI C-ITS protocol stack
Other
197 stars 157 forks source link

Guidanced needed: dependence of components and basic tutorial #186

Open HuyTyskland opened 1 year ago

HuyTyskland commented 1 year ago

Hello everyone,

First of all, thank you @riebl and other contributor of Vanetza project. Currently, I am working on implementing Vanetza into my Omnet++ project. To be specific, I am writing my service to use Vanetza. I have two questions that need some guidance on the usage of Vanetza:

  1. According to section Project Layout from this, components depends on other components within Vanetza. For example, dcc depends on access and net. When I look into CaService.cc from Artery project, the dcc component was used. However, I did not see the presence of access and net components. Did I misunderstand the term "dependence" or I look at the wrong place?. The answer would help me in using Vanetza components.
  2. I really appreciate if the authors or someone have a note on how to implement Vanetza (implement a component, for example). The API document helped me but I haven't had a clear image of Vanetza. Documents on dcc component would be nice.

Thank you and best regards, Huy Nguyen.

riebl commented 1 year ago

Hi @HuyTyskland,

Yes, Vanetza is structured in components, and each of these components is a C++ library essentially. We have a add_vanetza_component CMake macro for this purpose which you can find here: https://github.com/riebl/vanetza/blob/master/cmake/UseVanetza.cmake As long as you are using CMake (as Artery does), you don't have to worry about the dependencies. For example, if you use the Vanetza::dcc CMake target, all its dependencies are transitively included. Artery includes all Vanetza components by linking to Vanetza::vanetza (see https://github.com/riebl/artery/blob/a7f8f099bf0031b0a26e1271168604791279ff4c/src/artery/CMakeLists.txt#L87), so you can simply use any of its components without additional effort.

Vanetza resembles most of the ETSI ITS architecture described in the ETSI documents. Often, these documents are referenced in the Vanetza headers. Thus, the ETSI documents on DCC should give you a good overview in the first place. You may also want to have a look at the paper "Vanetza: Boosting Research on Inter-Vehicle Communication", which is freely available online.

HuyTyskland commented 1 year ago

Hello @riebl

Thank you for your suggestion and clarification. I will research on those sources.

Kind regards, Huy Nguyen.