How to Configure Model Entry Levels and Visibility Depth
This page covers how to control where the interactive model starts and how deep the hierarchy should be displayed.
Intermediate Hierarchy Filtering
This feature is sold as a separate option on request and is not part of the standard EHB-CB tool. There is the request, that the interactive ASCET model of a function only contains sub hierarchies for which an image screenshot in the documentation is also available. However, to allow a continuous model navigation, also intermediate hierarchies without documentation has to be handled and shown in an appropriate way.
Example:
White list [H1, H3]: Hierarchies whose image screenshots are present in the documentation.
Intermediate list [H2]: Hierarchies whose parent [H1] is a white listed hierarchy and whose one or more child hierarchies [H3] are also white listed. But H2 is not present in the documentation.
To allow now a model navigation from H1 to H3, H2 will be still shown, but its contents of it are filtered out to maintain minimalist information.
Without the option -ihf, only H1 will be part of the interactive model.
The ihf feature is only an emergency solution and has some limitations. The better way would be to use the build-in view mechanisms of ASCET upfront, see View Concept.
JSON Configuration Format
The configuration is supplied as a JSON file and referenced by the -ihf command-line option during container generation.
Each JSON entry maps one model or source file (for example, .axl, .mdl, .slx) to a list of hierarchies that should be retained in the interactive model view.
[
{
"../Lcc/lcc.axl": [
"LambdaControl.Main",
"LambdaControl.Main.Two-point-controller",
"LambdaControl.Main.PID-Controller",
"PID_Limit_AWU.Main"
]
},
{
"../t2t/T2t.mdl": [
"T2t.T2t_mdl",
"T2t.T2t_mdl.ThrottleValveControl",
"T2t.T2t_mdl.WastegateControl"
]
}
]
Concept
-
Each object key represents a model or subsystem file path relative to the container build input directory.
-
Each array value lists the fully qualified hierarchy names (using dot notation) that should remain visible even if no graphical documentation exists.
-
The specified hierarchies are treated as intermediate levels and will be displayed in Navigator as structural nodes for better traceability.
|
Even if a hierarchy has no image or documentation, if it is listed in the IHF JSON, it will appear as a navigable node in the final container. |
Using the Configuration
Please refer EHB-CB usage in General
|
Known limitations:
If the ASCET model contains about 1000 references (Class instance entries) the time is increased by a factor of 5 and if model has more than 150 *.amd file entries the time is increased by a factor of 10. |
Root Level Skipping
Typically, an ASCET, ASCET-DEVELOPER or Simulink model starts with some first wrapping hierarchies, which were of no interest to the EHB-NAV user. In addition, for the seamless function wallpaper feature, it just wastes space and makes it complex. Therefore, EHB-CB provides the flexibility to change the entry level of a model type (ASCET, ASCET-DEVELOPER, SIMULINK) by using a JSON configuration file.
Considering the example below without skipping:
Same example with skipping of the first two root levels:
With the JSON file shown below (plain ASCII format), all ASCET models in the container are opened with its 2nd and ASCET-DEVELOPER, SIMULINK with 1st level.
{
"rootLevel": {
"ASCET": "2",
"Simulink": "1",
"ASCET-DEVELOPER": "1",
}
}
Conditions for level skipping:
-
Level exceeds
In case the level specified in JSON file is exceeding the one available in the model, then the tool stops at the last available level in the model. -
Multiple sub levels in parallel
In case of multiple expandable sub levels exist in an upper level, the tool stops at the immediate parent level, as there is a conflict of unambiguousness. In such cases, root-level jump option can be used. See chapter Root Level Jump.
To activate this feature, the command line option -rootlevel "path_to_jsonfile\name.json" has to be provided.
A sample file is available in the examples sub folder of the EHB-CB installation directory. (..\examples\configuration\RootLevel.json)
|
For the C-Code models, root-level skip cannot be applied. |
Root Level Jump
In order to change the entry level of ASCET (Classic) and Simulink models, when there are multiple expandable sub levels in the model, Root Level Jump configuration can be used.
Consider the example below without jumping any levels.
When root level jump is applied, the model would directly start from the specified model path, eliminating the parent levels even if the parent levels contain expandable sub levels:
The JSON configuration file could look like this. Here, either the exact model path or a regex pattern of the model path could be provided, which is the desired starting point for the model in EHANDBOOK:
{
"rootLevelJump":[
"Main_.*/Logic_.*"
]
}
Multiple regex patterns can also be provided. In that case, the first matching pattern with the model will be applied for root level jump
For example, in the following JSON, both the patterns are valid and represent different levels of the model. Here, the first pattern will be considered:
{
"rootLevelJump":[
"Main_.*/Logic_.*",
"Main_.*"
]
}
Condition for root level jump:
If a regex pattern matches multiple blocks at the same model level, root level jump will not be applied.
To activate this feature, the command line option -rootlevel "path_to_jsonfile\name.json" has to be provided.
A sample file is available in the examples sub folder of the EHB-CB installation directory. (..\examples\configuration\RootLevel.json)
|
Model Depth Skip
Model depth skip can be used to convert all Simulink models till a particular model hierarchy level starting from the root level. This may be useful, to hide know-sensitive information in deeper model hierarchies.
For this feature, the same command line parameter -simulinkview and JSON file as for the feature above is used. In this JSON file, an additional section "ModelDepth" with the required level can be provided:
{
"GlobalView": {
"ModelDepth" : 5
}
}
"ModelDepth" value must be in integers.
In this example, all Simulink models within a container will be converted up to 5 levels from the root level.