Project

General

Profile

FAQ's

Common


Q: Where does ADTF set or search for license ?

ADTF search on specific path for your license file, depending on your OS and permissions.

On Windows:
  • HKCU\Software\Audi Electronics Venture GmbH\ADTF\<ADTF_MAJOR_VERSION>\license_file
  • HKLM\Software\Audi Electronics Venture GmbH\ADTF\<ADTF_MAJOR_VERSION>\license_file
On Linux:
  • <home>/.adtf/adtf<ADTF_MAJOR_VERSION>.lic
  • /etc/adtf<ADTF_MAJOR_VERSION>.lic

If you have a file, you can copy it or set there.
But we recommend to use the license mechanism/licenseviewer/licenser tool delivered by ADTF.


Q: How is the support workflow and what are the duties of the customer ?

Generally the support will do all the work but please answer if feedback is required - please also have a look at the detailed view

Support Workflow


ADTF 3.x


Core


Q: I cannot load toolboxes due to invalid major version in ADTF 3.2.0

Known Problem - please use ADTF 3.2.1 instead

Due to a wrong version check it is not possible to load components lower than build against ADTF 3.2.0.
The bugfix will be patched in ADTF 3.2.1.

Please also have a look at #1415.


Q: Since ADTF 3.4.0 I cannot install Toolboxes (Device 3.0.0, Calibration 3.0.0 and Display 3.2.0) into ADTF

Known Problem - please install seperate and then refer to directory or copy manually in addons folder)

This issue is regarding to the change of archive delivery.
With the upcoming toolboxes (Device 3.1.0, Calibration 3.1.0 and Display 3.3.0) this obsolete because they will also be archives instead of installer.

*Note:*

The example sessions are searching for the plugins in the addons folder under a specific name.
Maybe you have to adapt the paths in the .adtfsystem file or use the Remove All / Autofill From Config method in ADTF Configuration Editor.


Q: Which class ids (CID) are changed in ADTF 3.3.0

  • Note: We implement a small tool to update your class ids
OLD NEW
playback_input.streaming_services.adtf.cid adtfdat_file_player.streaming_source.adtf.cid
reference_clock.services.adtf.cid reference_clock.service.adtf.cid
kernel.services.adtf.cid kernel.service.adtf.cid
media_description.services.adtf.cid media_description.service.adtf.cid
demo_data_triggered_filter.demo.adtf.cid demo_data_trigger.filter.adtf.cid
demo_thread_triggered_filter.demo.adtf.cid demo_thread_trigger.filter.adtf.cid
demo_time_triggered_filter.demo.adtf.cid demo_time_trigger.filter.adtf.cid
default_sample_stream.ant.streaming.adtf.cid default_sample_stream.streaming.adtf.cid
default_binding_proxy.ant.streaming.adtf.cid default_binding_proxy.streaming.adtf.cid
default_thread_runner.ant.core.adtf.cid default_thread_runner.streaming.adtf.cid
default_timer_runner.ant.core.adtf.cid default_timer_runner.streaming.adtf.cid
demo_interface_binding_filter.demo.adtf.cid demo_interface_binding.filter.adtf.cid
demo_interface_source.demo.adtf.cid demo_interface_printer.streaming_source.adtf.cid
java_script_filter.filter.adtf.cid java_script_processor.filter.adtf.cid
demo_qt_video_display.demo.adtf.cid demo_qt_video_display.ui_filter.adtf.cid
demo_media_description_display.demo.adtf.cid demo_qt_media_description_display.ui_filter.adtf.cid
recorder.streaming_services.adtf.cid adtfdat_file_recorder.streaming_sink.adtf.cid
demo_sdl_video_display_sink.demo.adtf.cid demo_sdl_video_display.streaming_sink.adtf.cid
demo_synchronizer_filter.demo.adtf.cid demo_timestamp_synchronizer.filter.adtf.cid
gui_control.ant.tool.adtf.cid gui_control.ui_tool.adtf.cid
logview.ant.tool.adtf.cid logview.ui_tool.adtf.cid
statusmonitor.devil.tool.adtf.cid statusmonitor.ui_tool.adtf.cid
ce.ant.tool.adtf.cid configuration_editor.ui_tool.adtf.cid
licenseviewer.ant.tool.adtf.cid licenseviewer.ui_tool.adtf.cid
host_only_sink.streaming_services.adtf.cid host_only_sender.streaming_sink.adtf.cid
host_only_source.streaming_services.adtf.cid host_only_receiver.streaming_source.adtf.cid
sctp_sink.streaming_services.adtf.cid sctp_sender.streaming_sink.adtf.cid
sctp_source.streaming_services.adtf.cid sctp_receiver.streaming_source.adtf.cid
tcp_sink.streaming_services.adtf.cid tcp_sender.streaming_sink.adtf.cid
tcp_source.streaming_services.adtf.cid tcp_receiver.streaming_source.adtf.cid
udp_sink.streaming_services.adtf.cid udp_sender.streaming_sink.adtf.cid
udp_source.streaming_services.adtf.cid udp_receiver.streaming_source.adtf.cid
udp_multicast_sink.streaming_services.adtf.cid udp_multicast_sender.streaming_sink.adtf.cid
udp_multicast_source.streaming_services.adtf.cid udp_multicast_receiver.streaming_source.adtf.cid
demo_legacy_data_filter.demo.adtf.cid demo_legacy_data_trigger.filter.adtf.cid
demo_signal_provider_filter.demo.adtf.cid demo_signal_provider.filter.adtf.cid
demo_legacy_udp_receiver.demo.adtf.cid demo_legacy_udp_receiver.streaming_source.adtf.cid
demo_legacy_udp_sender.demo.adtf.cid demo_legacy_udp_sender.streaming_sink.adtf.cid
demo_legacy_virtual_clock.demo.adtf.cid demo_legacy_virtual_clock_input.streaming_source.adtf.cid
demo_sample_data_reference.demo.adtf.cid demo_sample_data_reference_generator.streaming_source.adtf.cid
demo_virtual_clock.demo.adtf.cid demo_virtual_clock_input.streaming_source.adtf.cid
demo_player_control_view.ui.adtf.cid demo_qt_player_control_view.ui_service.adtf.cid
demo_recorder_control_view.ui.adtf.cid demo_qt_recorder_control_view.ui_service.adtf.cid
demo_sdl_application_service.demo.adft demo_sdl_application.service.adtf.cid
calculator_rpc_client.demo.adft demo_calculator_rpc_client.service.adtf.cid
calculator_rpc_server.demo.adft demo_calculator_rpc_server.service.adtf.cid
demo_signal_listener.demo.adft demo_signal_listener.service.adtf.cid
rpc_object_registry.services.adtf.cid rpc_object_registry.service.adtf.cid
adtf_xsystem.service.adtf.cid qt_xsystem.ui_service.adtf.cid
signal_registry.services.adtf.cid signal_registry.service.adtf.cid
default_sample_stream_in_port.ant.streaming.adtf.cid default_sample_stream_in_port.streaming.adtf.cid
default_sample_stream_out_port.ant.streaming.adtf.cid default_sample_stream_out_port.streaming.adtf.cid
binding_type.ant.streaming.adtf.cid binding_type.streaming.adtf.cid
sample.ant.streaming.adtf.cid sample.streaming.adtf.cid
sample_pool.services.adtf.cid sample_pool.service.adtf.cid
memory_allocator.services.adtf.cid memory_allocator.service.adtf.cid
session_manager.services.adtf.cid session_manager.service.adtf.cid
adtf2_support.services.adtf.cid adtf_file_support.service.adtf.cid
clock_synchronization.services.adtf.cid clock_synchronization.service.adtf.cid
logging_rpc.services.adtf.cid logging_rpc.service.adtf.cid
playback.services.adtf.cid playback.service.adtf.cid
sample_stream_tracer.services.adtf.cid sample_stream_tracer.service.adtf.cid
recording.service.adtf.cid adtfdat_file_recorder.streaming_sink.adtf.cid
system_status.streaming_services.adtf.cid system_status_input.streaming_source.adtf.cid
log_view.ui.adtf.cid log_view.ui_service.adtf.cid
sample_stream_trace_view_ui.services.adtf.cid sample_stream_trace_view.ui_service.adtf.cid
adtf_file_support.services.adtf.cid adtf_file_support.service.adtf.cid
foreign_udp_source.demo.adtf.cid demo_foreign_application_udp_receiver.streaming_source.adtf.cid
foreign_udp_sink.demo.adtf.cid demo_foreign_application_udp_sender.streaming_sink.adtf.cid

Q: ADTF GUI Control does not start on Ubuntu 16.4 with a NVIDIA grafic card

This is a well-known bug with nVidia drivers on Ubuntu.

This is not an ADTF problem, it is a well-known bug with nVidia drivers on Ubuntu, and can be resolved by following the instructions given here:
https://github.com/Ultimaker/Cura/pull/131
https://github.com/Ultimaker/Cura/pull/131#issuecomment-176088664
The Ubuntu bug report which gives more detail and alternative fixes is here:
https://bugs.launchpad.net/ubuntu/+source/python-qt4/+bug/941826


Q: The ADTF Configuration Editor starts but the window content is either black or corrupted.

This can happen when the system's OpenGL configuration is faulty or not supported by QtQuick.)

To work around this issue, try setting the environment variable QT_QUICK_BACKEND=software to enable software rendering.


Q: Can I use ADTF in VM's (VirtualBox, Hyperv)

Maybe there are some restrictions in visualization, rendering and device support, but it should work except for problems with video drivers.

If you have problems with viewing ADTF Tool, please see the questions above.


Q: After migrating to ADTF >= 3.8 my session could be launched without errors but seems that functionality is missing ?

In ADTF 3.8.0 the connection establishment has been corrected to between adtf::streaming::ant::cFilterLevelmachine::StageNormal and adtf::streaming::ant::cFilterLevelmachine::StageGraphReady.

Usually you will get an error, if not - e.g. in case interface binding are implemented wrong - it could not be detected in some cases (e.g. using cutom or delivered Drawer from Display Toolbox <= 3.5.0, see also Q: Content of Drawers are missing since upgrading to ADTF >= 3.8 ?-
Please correct it and compile your adtfplugin with at least ADTF >= 3.8 (and/or Display Toolbox >= 3.6, depends on your use case).
Workaround:
  • You can change back to the old behaviour of the ADTF Session Manager by setting the ADTF_CONNECTION_CREATION_STATE environment variable to '2' (either in the System Editor or via your environment)
  • This must be done e.g. for 2D OpenGL Display and its Drawers and Sessions in ADTF Display Toolbox <= 3.5.0 and all other components using incorrect "old" behaviour
  • See also adtf::filter::hollow::cFilter::Init

Q: ADTF3 Generating plugindescription fails with "Result code '-38 '(ERR_FAILED) - unknown exception"

One common known problem for this Error is the usage of not allowed characters in the property descriptions (e.g. µ).


Tools


Q: Creating plugin modules for CE does not work anymore since ADTF 3.11

We had to remove the SDK package ce_utils and move the CMake macro adtf_add_ce_plugin to SDK package ui.
If you change you dependencies from ce_utils to ui, it will work again.

Calibration TB


Device TB


Q: Which class ids (CID) are changed in ADTF Device Toolbox 3.0.0 (BETA 4)

  • Note: We implement a small tool to update your class ids
OLD NEW
can_support.services.adtf.cid can_support.service.adtf_devtb.cid
can_config_encoder.devicetb.adtf.cid can_config_encoder.filter.adtf_devtb.cid
can_config_decoder.devicetb.adtf.cid can_config_decoder.filter.adtf_devtb.cid
can_signal_provider.services.adtf.cid can_signal_provider.service.adtf_devtb.cid
vector_can_xl_source.streaming_services.adtf.cid vector_can_device_receiver.streaming_source.adtf_devtb.cid
vector_can_xl_sink.streaming_services.adtf.cid vector_can_device_transmitter.streaming_sink.adtf_devtb.cid
random_can_generator.demo.adtf.cid demo_can_random_data_generator.streaming_source.adtf_devtb.cid
demo_can_encoder_filter.demo.adtf.cid demo_can_encoder.filter.adtf_devtb.cid
demo_can_decoder_filter.demo.adtf.cid demo_can_decoder.filter.adtf_devtb.cid
flexray_support.services.adtf.cid flexray_support.service.adtf_devtb.cid
flexray_config_encoder.devicetb.adtf.cid flexray_config_encoder.filter.adtf_devtb.cid
flexray_config_decoder.devicetb.adtf.cid flexray_config_decoder.filter.adtf_devtb.cid
flexray_signal_provider.services.adtf.cid flexray_signal_provider.service.adtf_devtb.cid
vector_flexray_source.streaming_services.adtf.cid vector_flexray_device_receiver.streaming_source.adtf_devtb.cid
vector_flexray_sink.streaming_services.adtf.cid vector_flexray_device_transmitter.streaming_sink.adtf_devtb.cid
flexray_generator_streaming_source.demo.adtf.cid demo_flexray_random_data_generator.streaming_source.adtf_devtb.cid
demo_flexray_decoder_filter.demo.adtf.cid demo_flexray_decoder.filter.adtf_devtb.cid
demo_direct_show_capture_source.demo.adft.cid demo_direct_show_video_device.streaming_source.adtf_devtb.cid
demo_video4linux_capture_source.demo.adtf.cid demo_video4linux_capture_device.streaming_source.adtf_devtb.cid

Q: Which interface ids (IID) are changed in ADTF Device Toolbox 3.0.0 (BETA 4)

  • Note: We implement a small tool which also updates the IIDs
OLD NEW
icansupport.devicetb.iid can.service.adtf_devtb.iid
cancoder.services.adtf.iid cancoder.service.adtf_devtb.iid
candatabase.services.adtf.iid candatabase.service.adtf_devtb.iid
candatabaselist.services.adtf.iid candatabaselist.service.adtf_devtb.iid
flexraysupport.adtf_devicetb.iid flexray.service.adtf_devtb.iid
flexraycoder.services.adtf.iid flexraycoder.service.adtf_devtb.iid
flexraydatabase.services.adtf.iid flexraydatabase.service.adtf_devtb.iid

Display TB


Q: Which class ids (CID) are changed in ADTF Display Toolbox 3.1.0

  • Note: We implement a small tool to update your class ids
OLD NEW
signal_tree_view_srv.ui.displaytb.adtf.cid signal_tree_view.ui_service.adtf_disptb.cid
signal_table_view_srv.ui.displaytb.adtf.cid signal_table_view.ui_service.adtf_disptb.cid
signal_scope_view_srv.ui.displaytb.adtf.cid signal_scope_view.ui_service.adtf_disptb.cid

Q: Content of Drawers are missing since upgrading to ADTF >= 3.8 ?

In ADTF 3.8.0 the connection establishment has been corrected and must be corrected with upcoming Display Toolbox 3.6.0

Workaround for Display Toolbox <= 3.5.0

  • You can change back to the old behaviour of the ADTF Session Manager by setting the ADTF_CONNECTION_CREATION_STATE environment variable to '2' (either in the System Editor or via your environment)
  • This must be done e.g. for 2D OpenGL Display and its Drawers and Sessions in ADTF Display Toolbox <= 3.5.0 and all other components using incorrect "old" behaviour
  • See also adtf::filter::hollow::cFilter::Init

ADTF Libraries


ADTF File Library / IFHD

Q: What is the base reference and format of the timestamp ?

{{collapse(A: The timestamp is in microseconds and the base is Julian Day)

The timestamp is used in DateTime::ToTimeStamp and DateTime::Set.
As base reference zero point please refer to Julian Day.

To convert the value to e.g. unix timestamp please substract the unix value based on Julian timestamp.
For more details please have a look at #1424.


Streaming Library


ADTF 2.x

Core

Q: Will there still be licenses for ADTF 2.x after EOL ?

Yes. ADTF 2.x discontinuation at 2021-12-31 will only effect updates/maintainance/bugfixes or support BUT NOT license handling - it will still be possible to use ADTF 2.x after 2021

ADTF 2.x Discontinuation


Q: Can I compile ADTF Filters with Visual Studio 2010 Express

Yes but we don't know any conditions to this different developer environment which is and will neither be tested nor supported

It might be possible to set up an environment for ADTF 2.x on Win64 with Visual Studio 2010 SP1 Express or Visual Studio Express 2008 SP1 for ADTF 2.x 32Bit.
But we can not support this setup because the environment is not the same as for Visual Studio 2010 SP1 Professional.

There might be problems such as:
  • Installation of VisualStudio Express, WindowsSDK, ServicePack or Patches might fail
  • Building of ADTF Filter fails
  • ADTF doesn't start (e.g. in debug)
  • ...

The same conditions regarding support and recommendations take place in all other products, e.g. ADTF 3.x.
Each product comes with an overwiew and dependencies and requirements regarding your developer environment.

For more information, please have a look in the relative documentation, see Access_to_ADTF_Documentation.


Q: ADTF does not start, I get a license error

  • No license file loaded:

Use the load license mechanism to load your license file.
If you don't have a license file yet, please contact the support.

  • Some services could not be loaded

You are using some components (toolboxes), usually in your addons directory, which are under license.
These license flags are missing in your current license file.
Please contact the support for the following progress.


  • Your license file does not match to host

Usually this error occures if the MAC address of the license file does not match to your machine.
The ADTF license should base on standard ethernet adapter of your machine.
Make sure that adapter with the ADTF MAC address is set on top (see advanced adapter settings).
Another reason could be that you are working with several network adapters (physical and virtual).
Please deactivate all adapters except the one with the ADTF license MAC address and restart.
If everything starts, you can reactivate your adapters and everything should now work as expected.


Q: ADTF does not start (or starts and quits immediately)

Usually there is problem regarding python

Since ADTF 2.13 we do not provide Python within the ADTF installer.

So please keep in mind that you download the right Python Version according to your ADTF System.

First of all, open a shell and type in

python

What is the result ? There should be the correct python version on the correct OS be shown.

Possible Solutions are (verify step by step):
  • Check your Python Version -> We use Python 2.7.6 (we only support this version!)
  • It must be the same as your ADTF System (32Bit/64Bit)
  • Sometimes it is useful to install it here: C:\Python27
  • Provide the path to the python.exe and python27.dll in your PATH Environment Variable
  • On some machines it is necessary to copy the python27.dll to C:\Windows\System32
  • On some machines it is necessary to set additional PYTHONHOME as new Environment Variable to your Python installation directory
  • Check your manifest file of ADTF according to the Python Entries
    • If you do not need Python Support, you can delete/comment out the Python Support Service and its provided classes within the used .manifest file
  • Set PYTHONPATH
    • Win32: PYTHONPATH=<python_folder>\Lib;<python_folder>\PCbuild;<python_folder>\Lib\lib-tk.
    • Win64: PYTHONPATH=<python_folder>\Lib;<python_folder>\PCbuild\amd64;<python_folder>\Lib\lib-tk

If this won't work for you, you can set a Python Logging:
open a shell and type in following two steps:

set PYTHONVERBOSE=1
%ADTF_DIR%\bin\adtf_devenv.exe -stdout

Alternative way: you can pipe the output into a log file:

set PYTHONVERBOSE=1
%ADTF_DIR%\bin\adtf_devenv.exe -logfile=log.txt

You will get a log.txt and log_stderr.txt for possible hints.


Q: ADTF does not start on Ubuntu 18.04

Errors like Unable to load library "/path/to/adtf/bin/libQtGui.so" appear.

ADTF 2.x uses QT 4.7.1. The QtGui Library depends on libpng12, which is no longer provided by Ubuntu 18.04

To make it run, please follow this instructions

NOTE: ADTF 2.x is not developed or tested on Ubuntu 18.04, we recommend to use the supported Ubunut 14.04 version.


Q: What do I need to build ADTF 2.x PLB-files

To be able to build ADTF 2.x PLB-files you have to make sure that the following packages are installed on your system:

gcc / g++ compiler
Qt 4.7.1
make
CMake 2.8.10 (this is the official supported version to generate Makefile projects)
libxrender1
libfontconfig1
libfontconfig1-dev
libglu1-mesa-dev

To develop and debug your filters you can use the QtCreator IDE.
Please make sure that the Qt Development-Kit configuration of the IDE points to the Qt 4.7.1 toolset!


Q: How can I use debug plugins using Qt

I use ADTF 2.11 on Windows 7 64Bit with Visual Studio 2010 Professional.

I'm working on a Filter using QT to do some GUI stuff.

If I build the filter in Release or RelWithDebInfo I can load the .plb in ADTF without any problems.
If I build it in Debug-mode ADTF tells me "Could not register Plugin "...plb"!".
I guess it has something to do with missing linked libraries, but I can't track down the problem.

I generate the Visual Studio solution with CMake:

project(myTestProject)
find_package(ADTF REQUIRED)
adtf_use_qt(QtCore QtGui)
adtf_add_moc(myTestProject src/myQtWidget.h)

adtf_add_filter(myTestProject 
                src/stdafx.cpp
                src/stdafx.h
                src/myQtWidgetFilter.h 
                src/myQtWidgetFilter.cpp 
                src/myQtWidget.h 
                src/myQtWidget.cpp)

If I check both PLBs with the dependency walker, the Debug plb seems to be fine. The release PLB generates some error messages (s. attached picture).

Any ideas on what I am missing here?

You have to use RelWithDebInfo plugins within <ADTF_DIR>\bin\adtf_devenv and Debug plugins within \adtf\bin\debug\adtf_devenv)

Usually it is possible to mix up debug and release libraries/plugins.
But if they have no dependencies to 3rd Party libraries, like Qt, who uses also release and debug libraries (e.g. QtCored4 instead of QtCore4).


Q: How to react on a defined keyboard input

I neeed a filter, which gives me a certain output, if a certain key was pressed (e.g. if 'w' was pressed send ...).
Does anyone now what kind of function I need to use for this?

I wrote a similar filter back in 2010, where I used something like

tResult cReadKeyboardInput::OnEvent( tEventInfo* psEventInfo )
{
    if(adtf::IEvent::EC_KeyPressed == psEventInfo->i32EventCode)
    {
        LOG_INFO("KEY PRESSED");
    }

    RETURN_NOERROR
}

in combination with this function

tResult cReadKeyboardInput::QueryInterface( tGUID riid, tVoid** ppvObject )
{
    tResult eResult = cBaseFilter::QueryInterface( riid, ppvObject);
    if ( IS_FAILED( eResult ) && ( IID_ADTF_EVENT_SINK == riid ) && ( ppvObject != 0 ) )
    {
        // zusätzlich unterstütztes Interface: adtf::IEventSink
        AddRef();
        ppvObject[0] = static_cast<adtf::IEventSink*>( this ); 
        RETURN_NOERROR;
    }
    else
    {
        return( eResult );
    }
}

But as a lot of things changed since 2010, QueryInterface is not a meber of cFilter anymore.
Does anyone has any suggestions?

The IKeyEventHandler will solve your use case

Please have a look at IKeyEventHandler Class Reference in teh ADTF SDK Documentation.
Here you have to overwrite OnKeyEvent.

As an example please refer to:

Q: How can I use legacy or deprecated components

Just use some CMake Flags to enable legacy/deprecated code

Note: Best way is to exchange/update your code and don't use legacy or deprecated code.
Also that this code will not be supported anymore.

Please keep in mind that some parts of ADTF (in its libraries) could become legacy code or macros. E.g. if you get compiler errors like these:

error C3861: 'A_UTIL_ASSERT': identifier not found

In case you need time or anything else to update your code, you can enable/disable

legacy flags
  • ADTF_USE_A_UTILS_LEGACY_NAMES
  • ADTF_USE_LEGACY_CONSTANTS_MACROS
  • ADTF_USE_LEGACY_TEST_MACROS
and deprecated warnings
  • ADTF_ENABLE_DEPRECATED_SDK
  • ADTF_ENABLE_DEPRECATED_UCOM
  • ADTF_ENABLE_DEPRECATED_UTILS

in CMake.


Q: How to build ADTF 2.x Qt-Filters on a newly installed Linux Ubuntu 12.04 system

Here is a step-by-step instructions

This howto describes initial steps to be able to build ADTF 2 Qt-Filters on an Ubuntu 12.04 LTS system, which was newly installed.

1) Installation of needed basic packages

Before the Qt 4.7.1 sources can be built, several basic packages must be installed previously:
  • cmake
  • cmake-gui
  • libglu1-mesa-dev
  • mesa-common-dev
  • libxext-dev
  • libfontconfig1-dev
  • libasound2-dev
  • imagemagick
sudo apt-get install <Paket(e)>

2) Build an install Qt 4.7.1 environment

Please make sure, that all basic packages (see above) were installed properly.

a) Download Qt 4.7.1 source tar ball

https://download.qt.io/archive/qt/4.7/qt-everywhere-opensource-src-4.7.1.tar.gz

b) Extract the tar ball

tar xf qt-everywhere-opensource-src-4.7.1.tar.gz

c) Configuration (for example the installation directory is: "/opt/qt-4.7.1" --> Check your access rights!)

./configure -prefix /opt/qt-4.7.1 -debug-and-release -no-qt3support -no-phonon -no-phonon-backend -opensource -no-webkit -developer-build -fast

d) Build it

make -j8 ("-j8" gives the availability to trigger parallel builds on an 8 processor machine)

e) Installation

make install

After the installation was successful, the "cmake-gui" configuration can be started to generate the "ADTF-Examples" project/solution.
During the configuration navigate to /opt/qt-4.7.1/bin/qmake for setting up the Qt environment.

On Linux also check if the CMAKE_BUILD_TYPE property is set to either "Debug" or "RelWithDebInfo".


Q: How to get the name of the playbacked DAT file

Just use CMD_HDS_GET_FILENAME as command

You can work with Harddisk Player Events and Script Commands.
For detailed overview have a look at the ADTF SDK Documentation, page Harddisk Player - Events received and emitted
Here you find a snippet which solves exactly your use case.

On the page in die SDK-Documentation there is another UseCase described with ISampleStream::GetUrl
Just follow the links for this solution.

Also interesting: Harddisk Recorder - Events received and emitted


Q: Is there a way to define a range of allowed values (Min/Max) for a Float or Int Property

Yes you have to use the subproperty mechanism

After defining a property, you can add some Sub Properties like adding a description or setting the property read-only.
This also works for min and max ranges, e.g.

SetPropertyFloat("MyValue", 1.0);
SetPropertyFloat("MyValue" NSSUBPROP_MIN, 0.0);
SetPropertyFloat("MyValue" NSSUBPROP_MAX, 1.0);
SetPropertyStr  ("MyValue" NSSUBPROP_DESCRIPTION, "Foo... Bar...");

The PropertyBrowser shows this range as a tooltip and configures the QT SpinBox to accept only values within this range.

For an complete overview please visit adtf_constants.h File Reference


Q: How can I retrieve the signal value from ISignalRegistryExtended

You have to register to the Signal Registry and and wait for the event RUN_SIGNAL_REGISTRY_EVENT

Snippet:

RETURN_IF_FAILED(_runtime->GetObject(OID_ADTF_SIGNAL_REGISTRY,
                                     IID_ADTF_SIGNAL_REGISTRY_EXTENDED,
                                     (tVoid**) &m_pSignalRegistry));

RETURN_IF_FAILED(m_pSignalRegistry->GetSignalList(&m_pSignalDescription, &m_nSignalCount));
RETURN_IF_POINTER_NULL(m_pSignalDescription);

cString signalName;
tSignalHandle hSignalHandle;

for (size_t i = 0; i < m_nSignalCount; ++i)
{
    signalName = m_pSignalDescription[i].strName;
    if (signalName.Find("Gesuchtes_Signal") != -1)
    {
        RETURN_IF_FAILED(m_pSignalRegistry->RegisterSignalListener(signalName,
                                                                   dynamic_cast<adtf::IRunnable*>(this), 
                                                                   &hSignalHandle));
        break;
    }
}

tResult MyFilter::Run(tInt nActivationCode, const tVoid *pvUserData, tInt szUserDataSize, __exception)
{
    if (nActivationCode == RUN_SIGNAL_REGISTRY_EVENT && pvUserData != nullptr) {
        tSignalRegistryEvent const* pEvent = static_cast<tSignalRegistryEvent const*>(pvUserData);
        tInt nEventCount = szUserDataSize / sizeof(tSignalRegistryEvent);

        __synchronized_obj(m_oSignalInUse);
        LOG_INFO(cString::Format("Something clever should be displayed %f", pEvent->pValue->f64Value));
    }
    return cBaseQtFilter::Run(nActivationCode, pvUserData, szUserDataSize, __exception_ptr);
}

Q: How to communicate between ADTF and dSpace Autobox

Using dSPACE ADTF Interface Blockset

More information please follow: https://www.dspace.com/de/gmb/home/products/sw/impsw/adtf_blockset.cfm
  • This contains the ADTF Message Bus Implementation and DDL Support for dSpace Autobox

See also #8080


Autosar TB


Calibration TB


Q: Demo ECU Processor could not be loaded - Interface not supported

The Header must be adapted

If you getting this error:

The class 'adtf.ecu_processor.demo' can not be loaded : Interface not supported

The header of the example must be adapted and recompiled, following export interface is missing:

UCOM_EXPORT_INTERFACE_CAST(IID_ADTF_ECU_PROCESSOR, IEcuProcessor)

So it will look as follows:

UCOM_OBJECT_BEGIN(OID_DEMO_PROCESSOR, "Demo Processor")
    UCOM_EXPORT_INTERFACE_CAST(IID_ADTF_ECU_PROCESSOR, IEcuProcessor)
    UCOM_EXPORT_INTERFACE(IID_ADTF_ECU_PROCESSOR, IEcuProcessor)
    UCOM_EXPORT_INTERFACE(IID_ADTF_CONFIGURATION, IConfiguration)
UCOM_OBJECT_END()

Otherwise the IObject Interface will not be exported and the runtime could not create a instance.


Q: Could not use Calibration Toolbox within own projects - could not find compat file

This is a bug, please use following workaround

find_package(ADTF_COMPRESSION_TOOLBOX PATHS "${ADTF_DIR}/addons/adtf-compression-toolbox" REQUIRED)

leads to an error (could not find compat file).

Workaround:

set(CMAKE_MODULE_PATH ${ADTF_COMPRESSION_TOOLBOX_DIR})
find_package(ADTF_COMPRESSION_TOOLBOX)

Device TB


Q: Import of ASC Files leads to invalid media type in *.dat.description file (tCANMessage instead of tCANData)

It's a bug ADEVTB-1417 and you must adapt the *.dat.description file after generating

Workaround:
1) Work without description file (ADTF knows the tCANData) or
2) Exchange struct and stream in *.dat.description file (example shows a tCANData stream called rawcan)
(can be found at <DEV_TB_DIR>\description\adtf_device_toolbox.description)

<struct alignment="1" name="tCANData" version="1">
    <element alignment="1" arraysize="1" byteorder="LE" bytepos="0" name="ui8Tag" type="eMessageTag" />
    <element alignment="1" arraysize="1" byteorder="LE" bytepos="1" name="ui8Channel" type="tUInt8" />
    <element alignment="1" arraysize="1" byteorder="LE" bytepos="2" name="tmTimeStamp" type="tUInt64" />
    <element alignment="1" arraysize="1" byteorder="LE" bytepos="10" name="ui32Id" type="tUInt32" />
    <element alignment="1" arraysize="1" byteorder="LE" bytepos="14" name="ui8Length" type="tUInt8" />
    <element alignment="1" arraysize="1" byteorder="LE" bytepos="15" name="ui8Reserved" type="tUInt8" />
    <element alignment="1" arraysize="1" byteorder="LE" bytepos="16" name="ui16Flags" type="eDataFlags" />
    <element alignment="1" arraysize="1" byteorder="LE" bytepos="18" name="ui16Reserved" type="tUInt16" />
    <element alignment="1" arraysize="1" byteorder="LE" bytepos="20" name="ui32Reserved" type="tUInt32" />
    <element alignment="1" arraysize="8" byteorder="LE" bytepos="24" name="aui8Data" type="tUInt8" />
</struct>

<stream description="can" name="rawcan" type="adtf.core.media_type">
    <struct bytepos="0" name="tCANData" type="tCANData" />
</stream>

Display TB


Q: Unequal scales in Signal view's scope view

I observed a strange (and annoying behavior) in the scope view of ADTF's Signal View Filter (ADTF: 2.11.0, Display Toolbox: 2.0.0):
The scales of the different signals differs after auto-zoom, even if only one scale is shown!

  • The first screenshot shows normal behavior after adding the different signals.

  • The second screenshot shows the same data, with one scale BEFORE pressing the auto-zoom button

  • The third screenshot shows the same data AFTER hitting the auto-zoom button

  • The forth screenshot is taken after switching to multiple scales again

The main problem is, that you cannot get any useful meanings out of the third screenshot, but even worse you get a total wrong impression about the data. For example (in the third screenshot) it looks like the blue values are above the green ones, which is totaly wrong (as green is the sum of the other ones :))!

Is this a already known bug and/or is it already fixed in newer versions?

Solved with Display TB 2.1.0

Please have a look at Display Toolbox 2.1.0 (Download / [[Access_to_ADTF_Documentation]]).
There have been some changes/bug fixes in Signal View considering the scales of signals


Video Compression TB


Q: Could not export compressed video streams on Linux in shell (GUI works fine)

Known Problem: ffmpeg could not be found - please use the additional service 'ffmpeg_enabler.srv'

Exporting compressed videos works fine in GUI (ADTF Devenv) ?
But you receiving problems while using adtf_datexporter ?

info 0x00000000: Could not deduce output format from file extension: using MPEG.
error 0x00000000: Could not find suitable output format

This means for some reasons why the ffmpeg could not be found and the initialization of the codec fails.

For that please extend your call by using attachment:ffmpeg_enabler.srv (please also have a look at the sources attachment:ffmpeg_enabler.zip)

So your call looks something like this now:

LD_LIBRARY_PATH=/path/to/ffmpeg/lib ./adtf_datexporter 
-verbose 
-export video 
-sinkid adtf.export.ffmpeg 
-output /path/to/exported/video.avi 
-property codec=mpeg4 
-service <ADTF_DIR>/addons/adtf-compression-toolbox/bin/video_compression_ffmpeg_support.srv 
-service <ADTF_DIR>/addons/adtf-compression-toolbox/bin/ffmpeg_enabler.srv 
<ADTF_DIR>/bin/templates/example_test_file.dat

VTD TB


Q: Where can i find/download the ADTF VTD Toolbox

The VTD Toolbox is not provided by Digitalwerk. It is provided by AEV-25.
In order to have access or download the VTD TB an AUDI CIP Account is necessary.
More information about how to get access to CIP can be found here: AUDI CIP ACCOUNT

With active AUDI CIP Account the VTD TB can be found in the Artifactory

More Information can be found in the AUDI CIP e.g. in the FAQs.
(AUDI CIP Account required)

FAQ - ADTF VTD Toolbox
FAQ - FEP Interface VTD

Screenshot04.png View (146 KB) hidden, 2017-11-17 11:06

Screenshot02.png View (122 KB) hidden, 2017-11-17 11:06

Screenshot03.png View (137 KB) hidden, 2017-11-17 11:06

Screenshot01.png View (130 KB) hidden, 2017-11-17 11:06

DebugRelease.png View (83.9 KB) hidden, 2017-11-17 13:44