This guide covers your very first steps within ADTF. After reading it you will:
know where the delivered tools are located
know the different type of meta files used within an ADTF System
know how to launch a simple ADTF Session
have a basic understanding what ADTF can do for you
If not already done, this might be the last chance to get an ADTF License to completely follow this
and all upcoming guides. So please have a look at here
in this case !
Where do I find the main toolset that make up ADTF?
Have a look inside the bin folder of your ADTF directory and you will find the
executables listed in the overview.
If you need debug support, step down one directory and start the program from the debug folder.
We only deliver two debug applications for your needs:
ADTF Launcher - if you want to launch your ADTF Session using debug adtfplugins, e.g. to analyze your own implementation or reporting crashes to support
ADTF is an application development framework and toolset written in the C++ language. It is designed to
process and record data from different kind of data sources you find in modern cars (bus interfaces, camera, lidar, radar, ...),
fuse them with a referenced timestamp, transform, combine or manipulate this data and supply it to any kind of data sink.
It allows you to include new devices with little coding effort while making use of a rich set of default ADTF Components like video or image
display, recoder and player.
Please note that as of ADTF 3.8.0 and later, we are no longer advocating the use of Streaming Graphs
but encourage you to use a ADTF Filter Graph instead.
They allow for greater flexibility and reusability and can now provide all the required functionality (Streaming Services, etc.). Using a Streaming Graph
is still possible (especially to load older ADTF Sessions) but not recommended for newer setups. For your convenience, all Views about Streaming Graph are hidden per default
but you can enable them permanently within the settings options. Please note that if you are loading Sessions using Streaming Graphs, the views will be shown automatically.
The ADTF Streaming Graph defines the
ADTF System's communication interface to
other ADTF instances
non ADTF Applications
devices like cameras, CAN devices, ethernet devices,...
recording and playback of ADTF DAT Files
The definition is made within a ADTF Graph File (.adtfgraph)
and can contain one or more ADTF Streaming Graphs.
The ADTF Filter Graph defines how data and trigger flow through an ADTF Graph based system where you can
manipulate data
transforming data
calculate data
displaying data
Since ADTF 3.8.0 it is also possible to use Streaming Services within the Filter Graph.
This means you can access communication interfaces like
other ADTF instances
non ADTF Applications
devices like cameras, CAN devices, ethernet devices,...
recording and playback of ADTF DAT Files
within your Filter Graph.
We still advice to separate your ADTF Graphs info different parts (e.g. data receiver/transmitter, playback, data processing, visualization, etc) but design as
included Subgraphs in ADTF Filter Graph instead of using Streaming and ADTF Filter Graph.
Please have a look at our examples sessions ($(ADTF_DIR)/src/examples/projects/) for more inspiration.
The definition is made within a ADTF Graph File (.adtfgraph) and can contain one or more ADTF Filter Graphs.
The ADTF Project contains all kind of files described previously to run an
ADTF Launcher. An ADTF Project may contain multiple
ADTF Filter Graphs ,ADTF Sessions,
ADTF Systems but at least one:
The definition is made within a ADTF Project File (.adtfproject).
How can I launch it?
Let's launch an ADTF Session:
Open a console and go into the bin directory of ADTF and start the ADTF Configuration Editor by typing: adtf_configuration_editor.exe or
open the executable using your favorite explorer.
Next open the example project by pressing ctrl + O, Open Project button in Home view or using the menu bar (File - Open project...)
Enter the path to the project file ./src/examples/projects/adtf_example_project/adtf_example_project.adtfproject and press open
Right click on Demo Playback Session in Sessions view and choose Launch with ADTF Control. Alternate you can just select the ADTF Session by double clicking it
and using the menu bar (Launch - with ADTF Control) or pressing F6
Now you are in the Interactice Mode of ADTF Control, the ADTF Session is already launched and in the first runlevel (RL_System). Type rl running or rl 5 into the console for changig to runlevel to RL_Running
What do I see?
The ADTF Runtime / ADTF System is now in the state RL_Running. The loaded ADTF Session replays a previously recorded data stream.
The ADTF XSystem, a mashup and handler of different widgets, displays various data contained in the stream and logging.
Furthermore a player control enables the user to start, stop or seek the stream.
The XSystem is a modular view, maybe it won't appear exactly as you can see in the following picture.
This means some widgets are maybe missing or the layout is different. Feel free to move widgets by holding their
title bars to drag an drop it to different spaces, tab it to other widgets or whatever you like.
If some widgets are not visible, the widget visibility might be disabled. In this case, please use the main menu and choose the View tab,
where you can show or hide specific views as well as all at once.
Note: a second possibility for missing widgets could be that the runlevel, in which the ADTF Service is defined, has not been reached already.
Due to the fact that we have increased to RL_Running (the highest possible runlevel) in the previous section and no error has been occured,
all Services and Filters must be available. But for other upcoming setups you might be involved and widgets or functionality is missing,
please always check the current runlevel. For your convenience we provide a Runlevel tab where you can check and adapt the active Runlevel.
For headless ADTF Sessions we recommend using ADTF Control with command rl to check the
current Runlevel and de/increase it by extend the rl command by the required runlevel argument (number or name).
You can also use the auto-completion inside the Interactice Mode of ADTF Control,
see its linked guide for further information or help.
Finally you should see something like this:
Where to go next?
Have a look at the Best Practice Tooling to create
a feeling which tools fulfills your request.