This chapter will break down the usage of the FlexRay Substream Decoder.
After reading this article, you should have the knowledge:
The FlexRay Substream Decoder is used to decode FlexRay pdus, which can then be requested dynamically, at runtime from other ADTF filters. For decoding a working FlexRay Service is necessary!
So what's the reason we developed the FlexRay Substream decoder? The answer is pretty simple. You have various advantages over the old decoding with the help of the SCFE:
At first you should know which database you have to use for decoding. At this moment the FlexRay Service supports ARXML- and XML-files(Fibex). If you add the FlexRay Service two additional parser services are added.
If you click on the FlexRay Support Service you will see a window on the right side in the Configuration Editor ,where you can configure the service.
You can configure one database per channel 1 and one cluster name per channel 2 , if necessary.
The configuration depends on the database you want to use for decoding your data.
If you want to use a XML-file as a database you have to include the path of your XML-file in the desired channel. You don't have to include a cluster name, because XML-files don't describe more than one FlexRay-cluster.
If you want to use an ARXML-file as a database you have to include the path and your ARXML-file in the desired channel exactly like if you would include a XML-file. But you have to remember, that it is possible, that there are more than one FlexRay-cluster. If you have more than one FlexRay-cluster the session won't start, but give you an error message instead where you can see the names of the possible, decodable FlexRay-clusters.
So a completly configured FlexRay Service for FlexRay channel 1, for an ARXML-file with more than one FlexRay-cluster, where you want to decode the Cluster FlexRay_1 could look like this:
If you click on the FlexRay Substream Decoder in the configuration editor, you only have to write in the desired FlexRay-channel. Here for example FlexRay-channel 1 is set. You have also the possibility to ignore not supported signals, so that the ADTF session don't crash if there are not supported signals in the ARXML-file. Additionally it is possible to use the full path for the names of the substreams.
The FlexRay Substream Decoder has one input-pin input_flexray and one output-pin output-pdus.
The input streamtype must be stream_meta_type_flexray and the output streamtype is stream_meta_type_substreams.
A typical use case in working with FlexRay pdus, is decoding one specific FlexRay pdu. In the following Screenshot you can see how to decode and show one pdu with the help of the FlexRay Substream Decoder.
What you need at first is a fully configurated FlexRay Support Service, as described in the chapter before. Since the output pin of the FlexRay Substream Decoder is stream_meta_type_substreams, you need a Substream Selector 1 which you find in the Configuration Editor in Components on the left side. When you click on the Substream Selector you can configure which substream you want to request. One substream is in this case one FlexRay pdu.
For visualization of the pdu you want do decode you can use the Qt Media Description Display 2 . Of course you need a data source as well. In this example the source is an ADTFDAT file player. But the real advantages of the FlexRay Substream Decoder is the requesting of FlexRay pdus at runtime!